Merge change 22702 into eclair

* changes:
  run the sync thread at background priority
diff --git a/api/current.xml b/api/current.xml
index 4dc4ae4..bb209c6 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -105569,7 +105569,7 @@
  abstract="false"
  static="false"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="AUTHORITY"
@@ -105579,7 +105579,7 @@
  value="&quot;contacts&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105589,7 +105589,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105600,7 +105600,7 @@
  value="1"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105611,7 +105611,7 @@
  value="3"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105622,7 +105622,7 @@
  value="4"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105633,7 +105633,7 @@
  value="5"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105644,7 +105644,7 @@
  value="2"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105654,7 +105654,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -105670,7 +105670,7 @@
  synchronized="false"
  static="false"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="context" type="android.content.Context">
@@ -105689,7 +105689,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="encodedString" type="java.lang.String">
@@ -105702,7 +105702,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="protocolString" type="java.lang.String">
@@ -105715,7 +105715,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="protocol" type="int">
@@ -105728,7 +105728,7 @@
  synchronized="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="context" type="android.content.Context">
@@ -105747,7 +105747,7 @@
  value="&quot;vnd.android.cursor.item/email&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105758,7 +105758,7 @@
  value="&quot;vnd.android.cursor.dir/email&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105768,7 +105768,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105779,7 +105779,7 @@
  value="&quot;vnd.android.cursor.item/jabber-im&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105790,7 +105790,7 @@
  value="&quot;vnd.android.cursor.item/postal-address&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105801,7 +105801,7 @@
  value="&quot;vnd.android.cursor.dir/postal-address&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105812,7 +105812,7 @@
  value="&quot;vnd.android.cursor.dir/contact-methods&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105822,7 +105822,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105833,7 +105833,7 @@
  value="&quot;name ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105844,7 +105844,7 @@
  value="&quot;person&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105855,7 +105855,7 @@
  value="&quot;data&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105866,7 +105866,7 @@
  value="&quot;aux_data&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105877,7 +105877,7 @@
  value="0"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105888,7 +105888,7 @@
  value="5"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105899,7 +105899,7 @@
  value="6"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105910,7 +105910,7 @@
  value="7"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105921,7 +105921,7 @@
  value="1"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105932,7 +105932,7 @@
  value="4"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105943,7 +105943,7 @@
  value="3"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105954,7 +105954,7 @@
  value="2"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105963,7 +105963,7 @@
  abstract="true"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="AUX_DATA"
@@ -105973,7 +105973,7 @@
  value="&quot;aux_data&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105984,7 +105984,7 @@
  value="&quot;data&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -105995,7 +105995,7 @@
  value="&quot;isprimary&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106006,7 +106006,7 @@
  value="&quot;kind&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106017,7 +106017,7 @@
  value="&quot;label&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106028,7 +106028,7 @@
  value="&quot;type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106039,7 +106039,7 @@
  value="0"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106050,7 +106050,7 @@
  value="1"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106061,7 +106061,7 @@
  value="3"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106072,7 +106072,7 @@
  value="2"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106082,7 +106082,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -106096,7 +106096,7 @@
  value="&quot;vnd.android.cursor.item/contact_extensions&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106107,7 +106107,7 @@
  value="&quot;vnd.android.cursor.dir/contact_extensions&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106117,7 +106117,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106128,7 +106128,7 @@
  value="&quot;person, name ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106139,7 +106139,7 @@
  value="&quot;person&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106148,7 +106148,7 @@
  abstract="true"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="NAME"
@@ -106158,7 +106158,7 @@
  value="&quot;name&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106169,7 +106169,7 @@
  value="&quot;value&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106179,7 +106179,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -106193,7 +106193,7 @@
  value="&quot;groupmembership&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106204,7 +106204,7 @@
  value="&quot;vnd.android.cursor.item/contactsgroupmembership&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106215,7 +106215,7 @@
  value="&quot;vnd.android.cursor.dir/contactsgroupmembership&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106225,7 +106225,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106236,7 +106236,7 @@
  value="&quot;group_id ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106247,7 +106247,7 @@
  value="&quot;group_id&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106258,7 +106258,7 @@
  value="&quot;group_sync_account&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106269,7 +106269,7 @@
  value="&quot;group_sync_account_type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106280,7 +106280,7 @@
  value="&quot;group_sync_id&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106291,7 +106291,7 @@
  value="&quot;person&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106301,7 +106301,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106311,7 +106311,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -106325,7 +106325,7 @@
  value="&quot;vnd.android.cursor.item/contactsgroup&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106336,7 +106336,7 @@
  value="&quot;vnd.android.cursor.dir/contactsgroup&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106346,7 +106346,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106357,7 +106357,7 @@
  value="&quot;name ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106367,7 +106367,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106378,7 +106378,7 @@
  value="&quot;Starred in Android&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106389,7 +106389,7 @@
  value="&quot;Contacts&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106398,7 +106398,7 @@
  abstract="true"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="NAME"
@@ -106408,7 +106408,7 @@
  value="&quot;name&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106419,7 +106419,7 @@
  value="&quot;notes&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106430,7 +106430,7 @@
  value="&quot;should_sync&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106441,7 +106441,7 @@
  value="&quot;system_id&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106451,14 +106451,14 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <constructor name="Contacts.Intents"
  type="android.provider.Contacts.Intents"
  static="false"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </constructor>
@@ -106469,7 +106469,7 @@
  value="&quot;com.android.contacts.action.ATTACH_IMAGE&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106480,7 +106480,7 @@
  value="&quot;com.android.contacts.action.CREATE_DESCRIPTION&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106491,7 +106491,7 @@
  value="&quot;com.android.contacts.action.FORCE_CREATE&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106502,7 +106502,7 @@
  value="&quot;android.provider.Contacts.SEARCH_SUGGESTION_CLICKED&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106513,7 +106513,7 @@
  value="&quot;android.provider.Contacts.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106524,7 +106524,7 @@
  value="&quot;android.provider.Contacts.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106535,7 +106535,7 @@
  value="&quot;com.android.contacts.action.SHOW_OR_CREATE_CONTACT&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106545,14 +106545,14 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <constructor name="Contacts.Intents.Insert"
  type="android.provider.Contacts.Intents.Insert"
  static="false"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </constructor>
@@ -106563,7 +106563,7 @@
  value="&quot;android.intent.action.INSERT&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106574,7 +106574,7 @@
  value="&quot;company&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106585,7 +106585,7 @@
  value="&quot;email&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106596,7 +106596,7 @@
  value="&quot;email_isprimary&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106607,7 +106607,7 @@
  value="&quot;email_type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106618,7 +106618,7 @@
  value="&quot;full_mode&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106629,7 +106629,7 @@
  value="&quot;im_handle&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106640,7 +106640,7 @@
  value="&quot;im_isprimary&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106651,7 +106651,7 @@
  value="&quot;im_protocol&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106662,7 +106662,7 @@
  value="&quot;job_title&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106673,7 +106673,7 @@
  value="&quot;name&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106684,7 +106684,7 @@
  value="&quot;notes&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106695,7 +106695,7 @@
  value="&quot;phone&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106706,7 +106706,7 @@
  value="&quot;phonetic_name&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106717,7 +106717,7 @@
  value="&quot;phone_isprimary&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106728,7 +106728,7 @@
  value="&quot;phone_type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106739,7 +106739,7 @@
  value="&quot;postal&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106750,7 +106750,7 @@
  value="&quot;postal_isprimary&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106761,7 +106761,7 @@
  value="&quot;postal_type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106772,7 +106772,7 @@
  value="&quot;secondary_email&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106783,7 +106783,7 @@
  value="&quot;secondary_email_type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106794,7 +106794,7 @@
  value="&quot;secondary_phone&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106805,7 +106805,7 @@
  value="&quot;secondary_phone_type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106816,7 +106816,7 @@
  value="&quot;tertiary_email&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106827,7 +106827,7 @@
  value="&quot;tertiary_email_type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106838,7 +106838,7 @@
  value="&quot;tertiary_phone&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106849,7 +106849,7 @@
  value="&quot;tertiary_phone_type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106859,14 +106859,14 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <constructor name="Contacts.Intents.UI"
  type="android.provider.Contacts.Intents.UI"
  static="false"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </constructor>
@@ -106877,7 +106877,7 @@
  value="&quot;com.android.contacts.action.FILTER_CONTACTS&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106888,7 +106888,7 @@
  value="&quot;com.android.contacts.extra.FILTER_TEXT&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106899,7 +106899,7 @@
  value="&quot;com.android.contacts.extra.GROUP&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106910,7 +106910,7 @@
  value="&quot;com.android.contacts.action.LIST_ALL_CONTACTS&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106921,7 +106921,7 @@
  value="&quot;com.android.contacts.action.LIST_CONTACTS_WITH_PHONES&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106932,7 +106932,7 @@
  value="&quot;com.android.contacts.action.LIST_DEFAULT&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106943,7 +106943,7 @@
  value="&quot;com.android.contacts.action.LIST_FREQUENT&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106954,7 +106954,7 @@
  value="&quot;com.android.contacts.action.LIST_GROUP&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106965,7 +106965,7 @@
  value="&quot;com.android.contacts.action.LIST_STARRED&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106976,7 +106976,7 @@
  value="&quot;com.android.contacts.action.LIST_STREQUENT&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106987,7 +106987,7 @@
  value="&quot;com.android.contacts.extra.TITLE_EXTRA&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -106996,7 +106996,7 @@
  abstract="true"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="COMPANY"
@@ -107006,7 +107006,7 @@
  value="&quot;company&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107017,7 +107017,7 @@
  value="&quot;isprimary&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107028,7 +107028,7 @@
  value="&quot;label&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107039,7 +107039,7 @@
  value="&quot;person&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107050,7 +107050,7 @@
  value="&quot;title&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107061,7 +107061,7 @@
  value="&quot;type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107072,7 +107072,7 @@
  value="0"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107083,7 +107083,7 @@
  value="2"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107094,7 +107094,7 @@
  value="1"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107104,7 +107104,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -107118,7 +107118,7 @@
  synchronized="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="context" type="android.content.Context">
@@ -107135,7 +107135,7 @@
  value="&quot;organizations&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107145,7 +107145,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107156,7 +107156,7 @@
  value="&quot;company, title, isprimary ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107166,7 +107166,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -107184,7 +107184,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="resolver" type="android.content.ContentResolver">
@@ -107201,7 +107201,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="resolver" type="android.content.ContentResolver">
@@ -107218,7 +107218,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="resolver" type="android.content.ContentResolver">
@@ -107233,7 +107233,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="resolver" type="android.content.ContentResolver">
@@ -107248,7 +107248,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="context" type="android.content.Context">
@@ -107267,7 +107267,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="resolver" type="android.content.ContentResolver">
@@ -107282,7 +107282,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="cr" type="android.content.ContentResolver">
@@ -107297,7 +107297,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="resolver" type="android.content.ContentResolver">
@@ -107312,7 +107312,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="cr" type="android.content.ContentResolver">
@@ -107328,7 +107328,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107339,7 +107339,7 @@
  value="&quot;vnd.android.cursor.item/person&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107350,7 +107350,7 @@
  value="&quot;vnd.android.cursor.dir/person&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107360,7 +107360,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107371,7 +107371,7 @@
  value="&quot;name ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107381,7 +107381,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107392,7 +107392,7 @@
  value="&quot;primary_email&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107403,7 +107403,7 @@
  value="&quot;primary_organization&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107414,7 +107414,7 @@
  value="&quot;primary_phone&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107424,7 +107424,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -107440,7 +107440,7 @@
  value="&quot;contact_methods&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107451,7 +107451,7 @@
  value="&quot;data ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107461,7 +107461,7 @@
  abstract="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -107475,7 +107475,7 @@
  value="&quot;extensions&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107486,7 +107486,7 @@
  value="&quot;name ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107497,7 +107497,7 @@
  value="&quot;person&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107507,7 +107507,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -107523,7 +107523,7 @@
  value="&quot;phones&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107534,7 +107534,7 @@
  value="&quot;number ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107543,7 +107543,7 @@
  abstract="true"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="CUSTOM_RINGTONE"
@@ -107553,7 +107553,7 @@
  value="&quot;custom_ringtone&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107564,7 +107564,7 @@
  value="&quot;display_name&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107575,7 +107575,7 @@
  value="&quot;last_time_contacted&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107586,7 +107586,7 @@
  value="&quot;name&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107597,7 +107597,7 @@
  value="&quot;notes&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107608,7 +107608,7 @@
  value="&quot;phonetic_name&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107619,7 +107619,7 @@
  value="&quot;photo_version&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107630,7 +107630,7 @@
  value="&quot;send_to_voicemail&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107641,7 +107641,7 @@
  value="&quot;starred&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107652,7 +107652,7 @@
  value="&quot;times_contacted&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107662,7 +107662,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -107678,7 +107678,7 @@
  synchronized="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="context" type="android.content.Context">
@@ -107697,7 +107697,7 @@
  synchronized="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="context" type="android.content.Context">
@@ -107713,7 +107713,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107724,7 +107724,7 @@
  value="&quot;vnd.android.cursor.item/phone&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107735,7 +107735,7 @@
  value="&quot;vnd.android.cursor.dir/phone&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107745,7 +107745,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107756,7 +107756,7 @@
  value="&quot;name ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107767,7 +107767,7 @@
  value="&quot;person&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107776,7 +107776,7 @@
  abstract="true"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="ISPRIMARY"
@@ -107786,7 +107786,7 @@
  value="&quot;isprimary&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107797,7 +107797,7 @@
  value="&quot;label&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107808,7 +107808,7 @@
  value="&quot;number&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107819,7 +107819,7 @@
  value="&quot;number_key&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107830,7 +107830,7 @@
  value="&quot;type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107841,7 +107841,7 @@
  value="0"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107852,7 +107852,7 @@
  value="5"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107863,7 +107863,7 @@
  value="4"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107874,7 +107874,7 @@
  value="1"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107885,7 +107885,7 @@
  value="2"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107896,7 +107896,7 @@
  value="7"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107907,7 +107907,7 @@
  value="6"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107918,7 +107918,7 @@
  value="3"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107928,7 +107928,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -107942,7 +107942,7 @@
  value="&quot;photo&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107952,7 +107952,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107963,7 +107963,7 @@
  value="&quot;person ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107972,7 +107972,7 @@
  abstract="true"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="DATA"
@@ -107982,7 +107982,7 @@
  value="&quot;data&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -107993,7 +107993,7 @@
  value="&quot;download_required&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108004,7 +108004,7 @@
  value="&quot;exists_on_server&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108015,7 +108015,7 @@
  value="&quot;local_version&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108026,7 +108026,7 @@
  value="&quot;person&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108037,7 +108037,7 @@
  value="&quot;sync_error&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108046,7 +108046,7 @@
  abstract="true"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="IM_ACCOUNT"
@@ -108056,7 +108056,7 @@
  value="&quot;im_account&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108067,7 +108067,7 @@
  value="&quot;im_handle&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108078,7 +108078,7 @@
  value="&quot;im_protocol&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108088,7 +108088,7 @@
  abstract="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="android.provider.BaseColumns">
@@ -108102,7 +108102,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="cr" type="android.content.ContentResolver">
@@ -108119,7 +108119,7 @@
  synchronized="false"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <parameter name="cr" type="android.content.ContentResolver">
@@ -108138,7 +108138,7 @@
  value="&quot;settings&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108148,7 +108148,7 @@
  volatile="false"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108159,7 +108159,7 @@
  value="&quot;key ASC&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108170,7 +108170,7 @@
  value="&quot;syncEverything&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108179,7 +108179,7 @@
  abstract="true"
  static="true"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <field name="KEY"
@@ -108189,7 +108189,7 @@
  value="&quot;key&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108200,7 +108200,7 @@
  value="&quot;value&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108211,7 +108211,7 @@
  value="&quot;_sync_account&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -108222,7 +108222,7 @@
  value="&quot;_sync_account_type&quot;"
  static="true"
  final="true"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 </field>
@@ -118546,19 +118546,6 @@
  synchronized="false"
  static="false"
  final="false"
- deprecated="deprecated"
- visibility="public"
->
-<parameter name="instrumentation" type="android.app.Instrumentation">
-</parameter>
-</method>
-<method name="setInstrumentation"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -118677,6 +118664,19 @@
  synchronized="false"
  static="false"
  final="false"
+ deprecated="deprecated"
+ visibility="public"
+>
+<parameter name="instrumentation" type="android.app.Instrumentation">
+</parameter>
+</method>
+<method name="setInstrumentation"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -118802,19 +118802,6 @@
  synchronized="false"
  static="false"
  final="false"
- deprecated="deprecated"
- visibility="public"
->
-<parameter name="instrumentation" type="android.app.Instrumentation">
-</parameter>
-</method>
-<method name="injectInstrumentation"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -118939,6 +118926,19 @@
  synchronized="false"
  static="false"
  final="false"
+ deprecated="deprecated"
+ visibility="public"
+>
+<parameter name="instrumentation" type="android.app.Instrumentation">
+</parameter>
+</method>
+<method name="injectInstrumentation"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -264098,7 +264098,7 @@
 </parameter>
 <parameter name="buffer" type="java.lang.StringBuffer">
 </parameter>
-<parameter name="field" type="java.text.FieldPosition">
+<parameter name="fieldPos" type="java.text.FieldPosition">
 </parameter>
 </method>
 <method name="get2DigitYearStart"
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 496ab76..9dedca6 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1696,7 +1696,6 @@
     public static final String ACTION_REBOOT =
             "android.intent.action.REBOOT";
 
-
     /**
      * Broadcast Action: a remote intent is to be broadcasted.
      *
@@ -1711,6 +1710,18 @@
     public static final String ACTION_REMOTE_INTENT =
             "android.intent.action.REMOTE_INTENT";
 
+    /**
+     * Broadcast Action: hook for permforming cleanup after a system update.
+     *
+     * The broadcast is sent when the system is booting, before the
+     * BOOT_COMPLETED broadcast.  It is only sent to receivers in the system
+     * image.  A receiver for this should do its work and then disable itself
+     * so that it does not get run again at the next boot.
+     * @hide
+     */
+    public static final String ACTION_PRE_BOOT_COMPLETED =
+            "android.intent.action.PRE_BOOT_COMPLETED";
+
     // ---------------------------------------------------------------------
     // ---------------------------------------------------------------------
     // Standard intent categories (see addCategory()).
@@ -2251,6 +2262,13 @@
      * @hide
      */
     public static final int FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT = 0x20000000;
+    /**
+     * Set when this broadcast is for a boot upgrade, a special mode that
+     * allows the broadcast to be sent before the system is ready and launches
+     * the app process with no providers running in it.
+     * @hide
+     */
+    public static final int FLAG_RECEIVER_BOOT_UPGRADE = 0x10000000;
 
     // ---------------------------------------------------------------------
     // ---------------------------------------------------------------------
diff --git a/core/java/android/provider/Contacts.java b/core/java/android/provider/Contacts.java
index c0dbf4d..1ec3416 100644
--- a/core/java/android/provider/Contacts.java
+++ b/core/java/android/provider/Contacts.java
@@ -22,42 +22,57 @@
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
-import android.content.Intent;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.net.Uri;
+import android.os.Build;
 import android.text.TextUtils;
 import android.util.Log;
 import android.widget.ImageView;
-import android.accounts.Account;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 
 /**
  * The Contacts provider stores all information about contacts.
+ *
+ * @deprecated This API has been replaced by {@link ContactsContract} as of
+ *             {@link Build.VERSION#SDK} = 5.
  */
+@Deprecated
 public class Contacts {
     private static final String TAG = "Contacts";
 
+    /**
+     * @deprecated Replaced by {@link ContactsContract#AUTHORITY}.
+     */
+    @Deprecated
     public static final String AUTHORITY = "contacts";
 
     /**
      * The content:// style URL for this provider
+     *
+     * @deprecated Replaced by {@link ContactsContract#AUTHORITY_URI}.
      */
+    @Deprecated
     public static final Uri CONTENT_URI =
         Uri.parse("content://" + AUTHORITY);
 
     /** Signifies an email address row that is stored in the ContactMethods table */
+    @Deprecated
     public static final int KIND_EMAIL = 1;
     /** Signifies a postal address row that is stored in the ContactMethods table */
+    @Deprecated
     public static final int KIND_POSTAL = 2;
     /** Signifies an IM address row that is stored in the ContactMethods table */
+    @Deprecated
     public static final int KIND_IM = 3;
     /** Signifies an Organization row that is stored in the Organizations table */
+    @Deprecated
     public static final int KIND_ORGANIZATION = 4;
     /** Signifies an Phone row that is stored in the Phones table */
+    @Deprecated
     public static final int KIND_PHONE = 5;
 
     /**
@@ -68,35 +83,41 @@
     /**
      * Columns from the Settings table that other columns join into themselves.
      */
+    @Deprecated
     public interface SettingsColumns {
         /**
          * The _SYNC_ACCOUNT to which this setting corresponds. This may be null.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String _SYNC_ACCOUNT = "_sync_account";
 
         /**
          * The _SYNC_ACCOUNT_TYPE to which this setting corresponds. This may be null.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String _SYNC_ACCOUNT_TYPE = "_sync_account_type";
 
         /**
          * The key of this setting.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String KEY = "key";
 
         /**
          * The value of this setting.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String VALUE = "value";
     }
 
     /**
      * The settings over all of the people
      */
+    @Deprecated
     public static final class Settings implements BaseColumns, SettingsColumns {
         /**
          * no public constructor since this is a utility class
@@ -106,17 +127,20 @@
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/settings");
 
         /**
          * The directory twig for this sub-table
          */
+        @Deprecated
         public static final String CONTENT_DIRECTORY = "settings";
 
         /**
          * The default sort order for this table
          */
+        @Deprecated
         public static final String DEFAULT_SORT_ORDER = "key ASC";
 
         /**
@@ -128,8 +152,10 @@
          * This is a boolean setting. It is true if it is set and it is anything other than the
          * emptry string or "0".
          */
+        @Deprecated
         public static final String SYNC_EVERYTHING = "syncEverything";
 
+        @Deprecated
         public static String getSetting(ContentResolver cr, String account, String key) {
             // For now we only support a single account and the UI doesn't know what
             // the account name is, so we're using a global setting for SYNC_EVERYTHING.
@@ -159,6 +185,7 @@
             }
         }
 
+        @Deprecated
         public static void setSetting(ContentResolver cr, String account, String key,
                 String value) {
             ContentValues values = new ContentValues();
@@ -177,11 +204,13 @@
     /**
      * Columns from the People table that other tables join into themselves.
      */
+    @Deprecated
     public interface PeopleColumns {
         /**
          * The person's name.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String NAME = "name";
 
         /**
@@ -190,6 +219,7 @@
          * Used for pronunciation and/or collation in some languages.
          * <p>Type: TEXT</P>
          */
+        @Deprecated
         public static final String PHONETIC_NAME = "phonetic_name";
 
         /**
@@ -197,6 +227,7 @@
          * else if email is not null email.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String DISPLAY_NAME = "display_name";
 
         /**
@@ -205,30 +236,35 @@
          * <P>Type: TEXT</p>
          * @hide Used only in Contacts application for now.
          */
+        @Deprecated
         public static final String SORT_STRING = "sort_string";
 
         /**
          * Notes about the person.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String NOTES = "notes";
 
         /**
          * The number of times a person has been contacted
          * <P>Type: INTEGER</P>
          */
+        @Deprecated
         public static final String TIMES_CONTACTED = "times_contacted";
 
         /**
          * The last time a person was contacted.
          * <P>Type: INTEGER</P>
          */
+        @Deprecated
         public static final String LAST_TIME_CONTACTED = "last_time_contacted";
 
         /**
          * A custom ringtone associated with a person. Not always present.
          * <P>Type: TEXT (URI to the ringtone)</P>
          */
+        @Deprecated
         public static final String CUSTOM_RINGTONE = "custom_ringtone";
 
         /**
@@ -236,24 +272,28 @@
          * present.
          * <P>Type: INTEGER (0 for false, 1 for true)</P>
          */
+        @Deprecated
         public static final String SEND_TO_VOICEMAIL = "send_to_voicemail";
 
         /**
          * Is the contact starred?
          * <P>Type: INTEGER (boolean)</P>
          */
+        @Deprecated
         public static final String STARRED = "starred";
 
         /**
          * The server version of the photo
          * <P>Type: TEXT (the version number portion of the photo URI)</P>
          */
+        @Deprecated
         public static final String PHOTO_VERSION = "photo_version";
     }
 
     /**
      * This table contains people.
      */
+    @Deprecated
     public static final class People implements BaseColumns, SyncConstValue, PeopleColumns,
             PhonesColumns, PresenceColumns {
         /**
@@ -264,6 +304,7 @@
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/people");
 
@@ -271,6 +312,7 @@
          * The content:// style URL for filtering people by name. The filter
          * argument should be passed as an additional path segment after this URI.
          */
+        @Deprecated
         public static final Uri CONTENT_FILTER_URI =
             Uri.parse("content://contacts/people/filter");
 
@@ -278,6 +320,7 @@
          * The content:// style URL for the table that holds the deleted
          * contacts.
          */
+        @Deprecated
         public static final Uri DELETED_CONTENT_URI =
             Uri.parse("content://contacts/deleted_people");
 
@@ -292,6 +335,7 @@
          * schema and do not want to have to support this.
          * @hide
          */
+        @Deprecated
         public static final Uri WITH_EMAIL_OR_IM_FILTER_URI =
             Uri.parse("content://contacts/people/with_email_or_im_filter");
 
@@ -299,23 +343,27 @@
          * The MIME type of {@link #CONTENT_URI} providing a directory of
          * people.
          */
+        @Deprecated
         public static final String CONTENT_TYPE = "vnd.android.cursor.dir/person";
 
         /**
          * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
          * person.
          */
+        @Deprecated
         public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/person";
 
         /**
          * The default sort order for this table
          */
+        @Deprecated
         public static final String DEFAULT_SORT_ORDER = People.NAME + " ASC";
 
         /**
          * The ID of the persons preferred phone number.
          * <P>Type: INTEGER (foreign key to phones table on the _ID field)</P>
          */
+        @Deprecated
         public static final String PRIMARY_PHONE_ID = "primary_phone";
 
         /**
@@ -323,6 +371,7 @@
          * <P>Type: INTEGER (foreign key to contact_methods table on the
          * _ID field)</P>
          */
+        @Deprecated
         public static final String PRIMARY_EMAIL_ID = "primary_email";
 
         /**
@@ -330,6 +379,7 @@
          * <P>Type: INTEGER (foreign key to organizations table on the
          * _ID field)</P>
          */
+        @Deprecated
         public static final String PRIMARY_ORGANIZATION_ID = "primary_organization";
 
         /**
@@ -338,6 +388,7 @@
          * @param resolver the ContentResolver to use
          * @param personId the person who was contacted
          */
+        @Deprecated
         public static void markAsContacted(ContentResolver resolver, long personId) {
             Uri uri = ContentUris.withAppendedId(CONTENT_URI, personId);
             uri = Uri.withAppendedPath(uri, "update_contact_time");
@@ -351,6 +402,7 @@
         /**
          * @hide Used in vCard parser code.
          */
+        @Deprecated
         public static long tryGetMyContactsGroupId(ContentResolver resolver) {
             Cursor groupsCursor = resolver.query(Groups.CONTENT_URI, GROUPS_PROJECTION,
                     Groups.SYSTEM_ID + "='" + Groups.GROUP_MY_CONTACTS + "'", null, null);
@@ -374,6 +426,7 @@
          * @return the URI of the group membership row
          * @throws IllegalStateException if the My Contacts group can't be found
          */
+        @Deprecated
         public static Uri addToMyContactsGroup(ContentResolver resolver, long personId) {
             long groupId = tryGetMyContactsGroupId(resolver);
             if (groupId == 0) {
@@ -392,6 +445,7 @@
          * @return the URI of the group membership row
          * @throws IllegalStateException if the group can't be found
          */
+        @Deprecated
         public static Uri addToGroup(ContentResolver resolver, long personId, String groupName) {
             long groupId = 0;
             Cursor groupsCursor = resolver.query(Groups.CONTENT_URI, GROUPS_PROJECTION,
@@ -421,6 +475,7 @@
          * @param groupId the group to add the person to
          * @return the URI of the group membership row
          */
+        @Deprecated
         public static Uri addToGroup(ContentResolver resolver, long personId, long groupId) {
             ContentValues values = new ContentValues();
             values.put(GroupMembership.PERSON_ID, personId);
@@ -439,6 +494,7 @@
          * @param values the values to use when creating the contact
          * @return the URI of the contact, or null if the operation fails
          */
+        @Deprecated
         public static Uri createPersonInMyContactsGroup(ContentResolver resolver,
                 ContentValues values) {
 
@@ -455,6 +511,7 @@
             return contactUri;
         }
 
+        @Deprecated
         public static Cursor queryGroups(ContentResolver resolver, long person) {
             return resolver.query(GroupMembership.CONTENT_URI, null, "person=?",
                     new String[]{String.valueOf(person)}, Groups.DEFAULT_SORT_ORDER);
@@ -466,6 +523,7 @@
          * @param person the Uri of the person whose photo is to be updated
          * @param data the byte[] that represents the photo
          */
+        @Deprecated
         public static void setPhotoData(ContentResolver cr, Uri person, byte[] data) {
             Uri photoUri = Uri.withAppendedPath(person, Contacts.Photos.CONTENT_DIRECTORY);
             ContentValues values = new ContentValues();
@@ -478,6 +536,7 @@
          * If the person's photo isn't present returns the placeholderImageResource instead.
          * @param person the person whose photo should be used
          */
+        @Deprecated
         public static InputStream openContactPhotoInputStream(ContentResolver cr, Uri person) {
             Uri photoUri = Uri.withAppendedPath(person, Contacts.Photos.CONTENT_DIRECTORY);
             Cursor cursor = cr.query(photoUri, new String[]{Photos.DATA}, null, null, null);
@@ -504,6 +563,7 @@
          *   have a photo
          * @param options the decoding options, can be set to null
          */
+        @Deprecated
         public static Bitmap loadContactPhoto(Context context, Uri person,
                 int placeholderImageResource, BitmapFactory.Options options) {
             if (person == null) {
@@ -530,6 +590,7 @@
         /**
          * A sub directory of a single person that contains all of their Phones.
          */
+        @Deprecated
         public static final class Phones implements BaseColumns, PhonesColumns,
                 PeopleColumns {
             /**
@@ -540,11 +601,13 @@
             /**
              * The directory twig for this sub-table
              */
+            @Deprecated
             public static final String CONTENT_DIRECTORY = "phones";
 
             /**
              * The default sort order for this table
              */
+            @Deprecated
             public static final String DEFAULT_SORT_ORDER = "number ASC";
         }
 
@@ -552,6 +615,7 @@
          * A subdirectory of a single person that contains all of their
          * ContactMethods.
          */
+        @Deprecated
         public static final class ContactMethods
                 implements BaseColumns, ContactMethodsColumns, PeopleColumns {
             /**
@@ -562,17 +626,20 @@
             /**
              * The directory twig for this sub-table
              */
+            @Deprecated
             public static final String CONTENT_DIRECTORY = "contact_methods";
 
             /**
              * The default sort order for this table
              */
+            @Deprecated
             public static final String DEFAULT_SORT_ORDER = "data ASC";
         }
 
         /**
          * The extensions for a person
          */
+        @Deprecated
         public static class Extensions implements BaseColumns, ExtensionsColumns {
             /**
              * no public constructor since this is a utility class
@@ -582,17 +649,20 @@
             /**
              * The directory twig for this sub-table
              */
+            @Deprecated
             public static final String CONTENT_DIRECTORY = "extensions";
 
             /**
              * The default sort order for this table
              */
+            @Deprecated
             public static final String DEFAULT_SORT_ORDER = "name ASC";
 
             /**
              * The ID of the person this phone number is assigned to.
              * <P>Type: INTEGER (long)</P>
              */
+            @Deprecated
             public static final String PERSON_ID = "person";
         }
     }
@@ -600,17 +670,20 @@
     /**
      * Columns from the groups table.
      */
+    @Deprecated
     public interface GroupsColumns {
         /**
          * The group name.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String NAME = "name";
 
         /**
          * Notes about the group.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String NOTES = "notes";
 
         /**
@@ -618,18 +691,21 @@
          * for this group's account.
          * <P>Type: INTEGER (boolean)</P>
          */
+        @Deprecated
         public static final String SHOULD_SYNC = "should_sync";
 
         /**
          * The ID of this group if it is a System Group, null otherwise.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String SYSTEM_ID = "system_id";
     }
 
     /**
      * This table contains the groups for an account.
      */
+    @Deprecated
     public static final class Groups
             implements BaseColumns, SyncConstValue, GroupsColumns {
         /**
@@ -640,6 +716,7 @@
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/groups");
 
@@ -647,6 +724,7 @@
          * The content:// style URL for the table that holds the deleted
          * groups.
          */
+        @Deprecated
         public static final Uri DELETED_CONTENT_URI =
             Uri.parse("content://contacts/deleted_groups");
 
@@ -654,71 +732,90 @@
          * The MIME type of {@link #CONTENT_URI} providing a directory of
          * groups.
          */
+        @Deprecated
         public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contactsgroup";
 
         /**
          * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
          * group.
          */
+        @Deprecated
         public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contactsgroup";
 
         /**
          * The default sort order for this table
          */
+        @Deprecated
         public static final String DEFAULT_SORT_ORDER = NAME + " ASC";
 
         /**
          *
          */
+        @Deprecated
         public static final String GROUP_ANDROID_STARRED = "Starred in Android";
 
         /**
          * The "My Contacts" system group.
          */
+        @Deprecated
         public static final String GROUP_MY_CONTACTS = "Contacts";
     }
 
     /**
      * Columns from the Phones table that other columns join into themselves.
      */
+    @Deprecated
     public interface PhonesColumns {
         /**
          * The type of the the phone number.
          * <P>Type: INTEGER (one of the constants below)</P>
          */
+        @Deprecated
         public static final String TYPE = "type";
 
+        @Deprecated
         public static final int TYPE_CUSTOM = 0;
+        @Deprecated
         public static final int TYPE_HOME = 1;
+        @Deprecated
         public static final int TYPE_MOBILE = 2;
+        @Deprecated
         public static final int TYPE_WORK = 3;
+        @Deprecated
         public static final int TYPE_FAX_WORK = 4;
+        @Deprecated
         public static final int TYPE_FAX_HOME = 5;
+        @Deprecated
         public static final int TYPE_PAGER = 6;
+        @Deprecated
         public static final int TYPE_OTHER = 7;
 
         /**
          * The user provided label for the phone number, only used if TYPE is TYPE_CUSTOM.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String LABEL = "label";
 
         /**
          * The phone number as the user entered it.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String NUMBER = "number";
 
         /**
          * The normalized phone number
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String NUMBER_KEY = "number_key";
 
         /**
          * Whether this is the primary phone number
          * <P>Type: INTEGER (if set, non-0 means true)</P>
          */
+        @Deprecated
         public static final String ISPRIMARY = "isprimary";
     }
 
@@ -727,6 +824,7 @@
      * contact method belongs to. Phone numbers are stored separately from
      * other contact methods to make caller ID lookup more efficient.
      */
+    @Deprecated
     public static final class Phones
             implements BaseColumns, PhonesColumns, PeopleColumns {
         /**
@@ -734,6 +832,7 @@
          */
         private Phones() {}
 
+        @Deprecated
         public static final CharSequence getDisplayLabel(Context context, int type,
                 CharSequence label, CharSequence[] labelArray) {
             CharSequence display = "";
@@ -755,6 +854,7 @@
             return display;
         }
 
+        @Deprecated
         public static final CharSequence getDisplayLabel(Context context, int type,
                 CharSequence label) {
             return getDisplayLabel(context, type, label, null);
@@ -763,12 +863,14 @@
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/phones");
 
         /**
          * The content:// style URL for filtering phone numbers
          */
+        @Deprecated
         public static final Uri CONTENT_FILTER_URL =
             Uri.parse("content://contacts/phones/filter");
 
@@ -776,26 +878,31 @@
          * The MIME type of {@link #CONTENT_URI} providing a directory of
          * phones.
          */
+        @Deprecated
         public static final String CONTENT_TYPE = "vnd.android.cursor.dir/phone";
 
         /**
          * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
          * phone.
          */
+        @Deprecated
         public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/phone";
 
         /**
          * The default sort order for this table
          */
+        @Deprecated
         public static final String DEFAULT_SORT_ORDER = "name ASC";
 
         /**
          * The ID of the person this phone number is assigned to.
          * <P>Type: INTEGER (long)</P>
          */
+        @Deprecated
         public static final String PERSON_ID = "person";
     }
 
+    @Deprecated
     public static final class GroupMembership implements BaseColumns, GroupsColumns {
         /**
          * no public constructor since this is a utility class
@@ -805,65 +912,77 @@
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/groupmembership");
 
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri RAW_CONTENT_URI =
             Uri.parse("content://contacts/groupmembershipraw");
 
         /**
          * The directory twig for this sub-table
          */
+        @Deprecated
         public static final String CONTENT_DIRECTORY = "groupmembership";
+
         /**
          * The MIME type of {@link #CONTENT_URI} providing a directory of all
          * person groups.
          */
+        @Deprecated
         public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contactsgroupmembership";
 
         /**
          * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
          * person group.
          */
+        @Deprecated
         public static final String CONTENT_ITEM_TYPE =
                 "vnd.android.cursor.item/contactsgroupmembership";
 
         /**
          * The default sort order for this table
          */
+        @Deprecated
         public static final String DEFAULT_SORT_ORDER = "group_id ASC";
 
         /**
          * The row id of the accounts group.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String GROUP_ID = "group_id";
 
         /**
          * The sync id of the group.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String GROUP_SYNC_ID = "group_sync_id";
 
         /**
          * The account of the group.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String GROUP_SYNC_ACCOUNT = "group_sync_account";
 
         /**
          * The account type of the group.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String GROUP_SYNC_ACCOUNT_TYPE = "group_sync_account_type";
 
         /**
          * The row id of the person.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String PERSON_ID = "person";
     }
 
@@ -871,57 +990,70 @@
      * Columns from the ContactMethods table that other tables join into
      * themseleves.
      */
+    @Deprecated
     public interface ContactMethodsColumns {
         /**
          * The kind of the the contact method. For example, email address,
          * postal address, etc.
          * <P>Type: INTEGER (one of the values below)</P>
          */
+        @Deprecated
         public static final String KIND = "kind";
 
         /**
          * The type of the contact method, must be one of the types below.
          * <P>Type: INTEGER (one of the values below)</P>
          */
+        @Deprecated
         public static final String TYPE = "type";
+        @Deprecated
         public static final int TYPE_CUSTOM = 0;
+        @Deprecated
         public static final int TYPE_HOME = 1;
+        @Deprecated
         public static final int TYPE_WORK = 2;
+        @Deprecated
         public static final int TYPE_OTHER = 3;
 
         /**
          * @hide This is temporal. TYPE_MOBILE should be added to TYPE in the future.
          */
+        @Deprecated
         public static final int MOBILE_EMAIL_TYPE_INDEX = 2;
 
         /**
          * @hide This is temporal. TYPE_MOBILE should be added to TYPE in the future.
          * This is not "mobile" but "CELL" since vCard uses it for identifying mobile phone.
          */
+        @Deprecated
         public static final String MOBILE_EMAIL_TYPE_NAME = "_AUTO_CELL";
 
         /**
          * The user defined label for the the contact method.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String LABEL = "label";
 
         /**
          * The data for the contact method.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String DATA = "data";
 
         /**
          * Auxiliary data for the contact method.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String AUX_DATA = "aux_data";
 
         /**
          * Whether this is the primary organization
          * <P>Type: INTEGER (if set, non-0 means true)</P>
          */
+        @Deprecated
         public static final String ISPRIMARY = "isprimary";
     }
 
@@ -929,18 +1061,21 @@
      * This table stores all non-phone contact methods and a reference to the
      * person that the contact method belongs to.
      */
+    @Deprecated
     public static final class ContactMethods
             implements BaseColumns, ContactMethodsColumns, PeopleColumns {
         /**
          * The column with latitude data for postal locations
          * <P>Type: REAL</P>
          */
+        @Deprecated
         public static final String POSTAL_LOCATION_LATITUDE = DATA;
 
         /**
          * The column with longitude data for postal locations
          * <P>Type: REAL</P>
          */
+        @Deprecated
         public static final String POSTAL_LOCATION_LONGITUDE = AUX_DATA;
 
         /**
@@ -951,23 +1086,34 @@
          *  - pre:<an integer, one of the protocols below>
          *  - custom:<a string>
          */
+        @Deprecated
         public static final int PROTOCOL_AIM = 0;
+        @Deprecated
         public static final int PROTOCOL_MSN = 1;
+        @Deprecated
         public static final int PROTOCOL_YAHOO = 2;
+        @Deprecated
         public static final int PROTOCOL_SKYPE = 3;
+        @Deprecated
         public static final int PROTOCOL_QQ = 4;
+        @Deprecated
         public static final int PROTOCOL_GOOGLE_TALK = 5;
+        @Deprecated
         public static final int PROTOCOL_ICQ = 6;
+        @Deprecated
         public static final int PROTOCOL_JABBER = 7;
 
+        @Deprecated
         public static String encodePredefinedImProtocol(int protocol) {
             return "pre:" + protocol;
         }
 
+        @Deprecated
         public static String encodeCustomImProtocol(String protocolString) {
             return "custom:" + protocolString;
         }
 
+        @Deprecated
         public static Object decodeImProtocol(String encodedString) {
             if (encodedString == null) {
                 return null;
@@ -995,6 +1141,7 @@
          * provider is defined for the given protocol
          * @hide
          */
+        @Deprecated
         public static String lookupProviderNameFromId(int protocol) {
             switch (protocol) {
                 case PROTOCOL_GOOGLE_TALK:
@@ -1022,6 +1169,7 @@
          */
         private ContactMethods() {}
 
+        @Deprecated
         public static final CharSequence getDisplayLabel(Context context, int kind,
                 int type, CharSequence label) {
             CharSequence display = "";
@@ -1074,6 +1222,7 @@
          * @param latitude the latitude for the address
          * @param longitude the longitude for the address
          */
+        @Deprecated
         public void addPostalLocation(Context context, long postalId,
                 double latitude, double longitude) {
             final ContentResolver resolver = context.getContentResolver();
@@ -1093,12 +1242,14 @@
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/contact_methods");
 
         /**
          * The content:// style URL for sub-directory of e-mail addresses.
          */
+        @Deprecated
         public static final Uri CONTENT_EMAIL_URI =
             Uri.parse("content://contacts/contact_methods/email");
 
@@ -1106,30 +1257,35 @@
          * The MIME type of {@link #CONTENT_URI} providing a directory of
          * phones.
          */
+        @Deprecated
         public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact-methods";
 
         /**
          * The MIME type of a {@link #CONTENT_EMAIL_URI} sub-directory of\
          * multiple {@link Contacts#KIND_EMAIL} entries.
          */
+        @Deprecated
         public static final String CONTENT_EMAIL_TYPE = "vnd.android.cursor.dir/email";
 
         /**
          * The MIME type of a {@link #CONTENT_EMAIL_URI} sub-directory of\
          * multiple {@link Contacts#KIND_POSTAL} entries.
          */
+        @Deprecated
         public static final String CONTENT_POSTAL_TYPE = "vnd.android.cursor.dir/postal-address";
 
         /**
          * The MIME type of a {@link #CONTENT_URI} sub-directory of a single
          * {@link Contacts#KIND_EMAIL} entry.
          */
+        @Deprecated
         public static final String CONTENT_EMAIL_ITEM_TYPE = "vnd.android.cursor.item/email";
 
         /**
          * The MIME type of a {@link #CONTENT_URI} sub-directory of a single
          * {@link Contacts#KIND_POSTAL} entry.
          */
+        @Deprecated
         public static final String CONTENT_POSTAL_ITEM_TYPE
                 = "vnd.android.cursor.item/postal-address";
 
@@ -1137,23 +1293,27 @@
          * The MIME type of a {@link #CONTENT_URI} sub-directory of a single
          * {@link Contacts#KIND_IM} entry.
          */
+        @Deprecated
         public static final String CONTENT_IM_ITEM_TYPE = "vnd.android.cursor.item/jabber-im";
 
         /**
          * The default sort order for this table
          */
+        @Deprecated
         public static final String DEFAULT_SORT_ORDER = "name ASC";
 
         /**
          * The ID of the person this contact method is assigned to.
          * <P>Type: INTEGER (long)</P>
          */
+        @Deprecated
         public static final String PERSON_ID = "person";
     }
 
     /**
      * The IM presence columns with some contacts specific columns mixed in.
      */
+    @Deprecated
     public interface PresenceColumns extends Im.CommonPresenceColumns {
         /**
          * The IM service the presence is coming from. Formatted using either
@@ -1161,6 +1321,7 @@
          * {@link Contacts.ContactMethods#encodeCustomImProtocol}.
          * <P>Type: STRING</P>
          */
+        @Deprecated
         public static final String IM_PROTOCOL = "im_protocol";
 
         /**
@@ -1168,12 +1329,14 @@
          * the {@link #IM_PROTOCOL}.
          * <P>Type: STRING</P>
          */
+        @Deprecated
         public static final String IM_HANDLE = "im_handle";
 
         /**
          * The IM account for the local user that the presence data came from.
          * <P>Type: STRING</P>
          */
+        @Deprecated
         public static final String IM_ACCOUNT = "im_account";
     }
 
@@ -1181,11 +1344,13 @@
      * Contains presence information about contacts.
      * @hide
      */
+    @Deprecated
     public static final class Presence
             implements BaseColumns, PresenceColumns, PeopleColumns {
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/presence");
 
@@ -1193,6 +1358,7 @@
          * The ID of the person this presence item is assigned to.
          * <P>Type: INTEGER (long)</P>
          */
+        @Deprecated
         public static final String PERSON_ID = "person";
 
         /**
@@ -1201,6 +1367,7 @@
          * @param status the status to get the icon for
          * @return the resource ID for the proper presence icon
          */
+        @Deprecated
         public static final int getPresenceIconResourceId(int status) {
             switch (status) {
                 case Contacts.People.AVAILABLE:
@@ -1228,6 +1395,7 @@
          * @param icon the icon to to set
          * @param serverStatus that status
          */
+        @Deprecated
         public static final void setPresenceIcon(ImageView icon, int serverStatus) {
             icon.setImageResource(getPresenceIconResourceId(serverStatus));
         }
@@ -1236,57 +1404,69 @@
     /**
      * Columns from the Organizations table that other columns join into themselves.
      */
+    @Deprecated
     public interface OrganizationColumns {
         /**
          * The type of the organizations.
          * <P>Type: INTEGER (one of the constants below)</P>
          */
+        @Deprecated
         public static final String TYPE = "type";
 
+        @Deprecated
         public static final int TYPE_CUSTOM = 0;
+        @Deprecated
         public static final int TYPE_WORK = 1;
+        @Deprecated
         public static final int TYPE_OTHER = 2;
 
         /**
          * The user provided label, only used if TYPE is TYPE_CUSTOM.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String LABEL = "label";
 
         /**
          * The name of the company for this organization.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String COMPANY = "company";
 
         /**
          * The title within this organization.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String TITLE = "title";
 
         /**
          * The person this organization is tied to.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String PERSON_ID = "person";
 
         /**
          * Whether this is the primary organization
          * <P>Type: INTEGER (if set, non-0 means true)</P>
          */
+        @Deprecated
         public static final String ISPRIMARY = "isprimary";
     }
 
     /**
      * A sub directory of a single person that contains all of their Phones.
      */
+    @Deprecated
     public static final class Organizations implements BaseColumns, OrganizationColumns {
         /**
          * no public constructor since this is a utility class
          */
         private Organizations() {}
 
+        @Deprecated
         public static final CharSequence getDisplayLabel(Context context, int type,
                 CharSequence label) {
             CharSequence display = "";
@@ -1310,34 +1490,40 @@
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/organizations");
 
         /**
          * The directory twig for this sub-table
          */
+        @Deprecated
         public static final String CONTENT_DIRECTORY = "organizations";
 
         /**
          * The default sort order for this table
          */
+        @Deprecated
         public static final String DEFAULT_SORT_ORDER = "company, title, isprimary ASC";
     }
 
     /**
      * Columns from the Photos table that other columns join into themselves.
      */
+    @Deprecated
     public interface PhotosColumns {
         /**
          * The _SYNC_VERSION of the photo that was last downloaded
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String LOCAL_VERSION = "local_version";
 
         /**
          * The person this photo is associated with.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String PERSON_ID = "person";
 
         /**
@@ -1345,12 +1531,14 @@
          * You must specify this in the columns in order to use it in the where clause.
          * <P>Type: INTEGER(boolean)</P>
          */
+        @Deprecated
         public static final String DOWNLOAD_REQUIRED = "download_required";
 
         /**
          * non-zero if this photo is known to exist on the server
          * <P>Type: INTEGER(boolean)</P>
          */
+        @Deprecated
         public static final String EXISTS_ON_SERVER = "exists_on_server";
 
         /**
@@ -1358,12 +1546,14 @@
          * the previous attempt. If null then the previous attempt succeeded.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String SYNC_ERROR = "sync_error";
 
         /**
          * The image data, or null if there is no image.
          * <P>Type: BLOB</P>
          */
+        @Deprecated
         public static final String DATA = "data";
 
     }
@@ -1371,6 +1561,7 @@
     /**
      * The photos over all of the people
      */
+    @Deprecated
     public static final class Photos implements BaseColumns, PhotosColumns, SyncConstValue {
         /**
          * no public constructor since this is a utility class
@@ -1380,37 +1571,44 @@
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/photos");
 
         /**
          * The directory twig for this sub-table
          */
+        @Deprecated
         public static final String CONTENT_DIRECTORY = "photo";
 
         /**
          * The default sort order for this table
          */
+        @Deprecated
         public static final String DEFAULT_SORT_ORDER = "person ASC";
     }
 
+    @Deprecated
     public interface ExtensionsColumns {
         /**
          * The name of this extension. May not be null. There may be at most one row for each name.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String NAME = "name";
 
         /**
          * The value of this extension. May not be null.
          * <P>Type: TEXT</P>
          */
+        @Deprecated
         public static final String VALUE = "value";
     }
 
     /**
      * The extensions for a person
      */
+    @Deprecated
     public static final class Extensions implements BaseColumns, ExtensionsColumns {
         /**
          * no public constructor since this is a utility class
@@ -1420,6 +1618,7 @@
         /**
          * The content:// style URL for this table
          */
+        @Deprecated
         public static final Uri CONTENT_URI =
             Uri.parse("content://contacts/extensions");
 
@@ -1427,22 +1626,27 @@
          * The MIME type of {@link #CONTENT_URI} providing a directory of
          * phones.
          */
+        @Deprecated
         public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact_extensions";
 
         /**
          * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
          * phone.
          */
+        @Deprecated
         public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_extensions";
+
         /**
          * The default sort order for this table
          */
+        @Deprecated
         public static final String DEFAULT_SORT_ORDER = "person, name ASC";
 
         /**
          * The ID of the person this phone number is assigned to.
          * <P>Type: INTEGER (long)</P>
          */
+        @Deprecated
         public static final String PERSON_ID = "person";
     }
 
@@ -1450,10 +1654,16 @@
      * Contains helper classes used to create or manage {@link android.content.Intent Intents}
      * that involve contacts.
      */
+    @Deprecated
     public static final class Intents {
+        @Deprecated
+        public Intents() {
+        }
+
         /**
          * This is the intent that is fired when a search suggestion is clicked on.
          */
+        @Deprecated
         public static final String SEARCH_SUGGESTION_CLICKED =
                 ContactsContract.Intents.SEARCH_SUGGESTION_CLICKED;
 
@@ -1461,6 +1671,7 @@
          * This is the intent that is fired when a search suggestion for dialing a number
          * is clicked on.
          */
+        @Deprecated
         public static final String SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED =
                 ContactsContract.Intents.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED;
 
@@ -1468,6 +1679,7 @@
          * This is the intent that is fired when a search suggestion for creating a contact
          * is clicked on.
          */
+        @Deprecated
         public static final String SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED =
                 ContactsContract.Intents.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED;
 
@@ -1475,6 +1687,7 @@
          * Starts an Activity that lets the user pick a contact to attach an image to.
          * After picking the contact it launches the image cropper in face detection mode.
          */
+        @Deprecated
         public static final String ATTACH_IMAGE = ContactsContract.Intents.ATTACH_IMAGE;
 
         /**
@@ -1500,6 +1713,7 @@
          * Passing true for the {@link #EXTRA_FORCE_CREATE} extra will skip
          * prompting the user when the contact doesn't exist.
          */
+        @Deprecated
         public static final String SHOW_OR_CREATE_CONTACT =
                 ContactsContract.Intents.SHOW_OR_CREATE_CONTACT;
 
@@ -1510,6 +1724,7 @@
          * <p>
          * Type: BOOLEAN
          */
+        @Deprecated
         public static final String EXTRA_FORCE_CREATE = ContactsContract.Intents.EXTRA_FORCE_CREATE;
 
         /**
@@ -1519,6 +1734,7 @@
          * <p>
          * Type: STRING
          */
+        @Deprecated
         public static final String EXTRA_CREATE_DESCRIPTION =
                 ContactsContract.Intents.EXTRA_CREATE_DESCRIPTION;
 
@@ -1529,49 +1745,62 @@
          *
          * @hide pending API council review
          */
+        @Deprecated
         public static final String EXTRA_TARGET_RECT = ContactsContract.Intents.EXTRA_TARGET_RECT;
 
         /**
          * Intents related to the Contacts app UI.
          */
+        @Deprecated
         public static final class UI {
+            @Deprecated
+            public UI() {
+            }
+
             /**
              * The action for the default contacts list tab.
              */
+            @Deprecated
             public static final String LIST_DEFAULT = ContactsContract.Intents.UI.LIST_DEFAULT;
 
             /**
              * The action for the contacts list tab.
              */
+            @Deprecated
             public static final String LIST_GROUP_ACTION =
                     ContactsContract.Intents.UI.LIST_GROUP_ACTION;
 
             /**
              * When in LIST_GROUP_ACTION mode, this is the group to display.
              */
+            @Deprecated
             public static final String GROUP_NAME_EXTRA_KEY =
                     ContactsContract.Intents.UI.GROUP_NAME_EXTRA_KEY;
             /**
              * The action for the all contacts list tab.
              */
+            @Deprecated
             public static final String LIST_ALL_CONTACTS_ACTION =
                     ContactsContract.Intents.UI.LIST_ALL_CONTACTS_ACTION;
 
             /**
              * The action for the contacts with phone numbers list tab.
              */
+            @Deprecated
             public static final String LIST_CONTACTS_WITH_PHONES_ACTION =
                     ContactsContract.Intents.UI.LIST_CONTACTS_WITH_PHONES_ACTION;
 
             /**
              * The action for the starred contacts list tab.
              */
+            @Deprecated
             public static final String LIST_STARRED_ACTION =
                     ContactsContract.Intents.UI.LIST_STARRED_ACTION;
 
             /**
              * The action for the frequent contacts list tab.
              */
+            @Deprecated
             public static final String LIST_FREQUENT_ACTION =
                     ContactsContract.Intents.UI.LIST_FREQUENT_ACTION;
 
@@ -1580,6 +1809,7 @@
              * contacts in alphabetical order and then the frequent contacts in descending
              * order of the number of times they have been contacted.
              */
+            @Deprecated
             public static final String LIST_STREQUENT_ACTION =
                     ContactsContract.Intents.UI.LIST_STREQUENT_ACTION;
 
@@ -1587,6 +1817,7 @@
              * A key for to be used as an intent extra to set the activity
              * title to a custom String value.
              */
+            @Deprecated
             public static final String TITLE_EXTRA_KEY =
                     ContactsContract.Intents.UI.TITLE_EXTRA_KEY;
 
@@ -1598,6 +1829,7 @@
              * <p>
              * Output: Nothing.
              */
+            @Deprecated
             public static final String FILTER_CONTACTS_ACTION =
                     ContactsContract.Intents.UI.FILTER_CONTACTS_ACTION;
 
@@ -1605,6 +1837,7 @@
              * Used as an int extra field in {@link #FILTER_CONTACTS_ACTION}
              * intents to supply the text on which to filter.
              */
+            @Deprecated
             public static final String FILTER_TEXT_EXTRA_KEY =
                     ContactsContract.Intents.UI.FILTER_TEXT_EXTRA_KEY;
         }
@@ -1613,23 +1846,34 @@
          * Convenience class that contains string constants used
          * to create contact {@link android.content.Intent Intents}.
          */
+        @Deprecated
         public static final class Insert {
+            @Deprecated
+            public Insert() {
+            }
+
             /** The action code to use when adding a contact */
+            @Deprecated
             public static final String ACTION = ContactsContract.Intents.Insert.ACTION;
+
             /**
              * If present, forces a bypass of quick insert mode.
              */
+            @Deprecated
             public static final String FULL_MODE = ContactsContract.Intents.Insert.FULL_MODE;
+
             /**
              * The extra field for the contact name.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String NAME = ContactsContract.Intents.Insert.NAME;
 
             /**
              * The extra field for the contact phonetic name.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String PHONETIC_NAME =
                     ContactsContract.Intents.Insert.PHONETIC_NAME;
 
@@ -1637,24 +1881,28 @@
              * The extra field for the contact company.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String COMPANY = ContactsContract.Intents.Insert.COMPANY;
 
             /**
              * The extra field for the contact job title.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String JOB_TITLE = ContactsContract.Intents.Insert.JOB_TITLE;
 
             /**
              * The extra field for the contact notes.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String NOTES = ContactsContract.Intents.Insert.NOTES;
 
             /**
              * The extra field for the contact phone number.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String PHONE = ContactsContract.Intents.Insert.PHONE;
 
             /**
@@ -1662,12 +1910,14 @@
              * <P>Type: Either an integer value from {@link android.provider.Contacts.PhonesColumns PhonesColumns},
              *  or a string specifying a custom label.</P>
              */
+            @Deprecated
             public static final String PHONE_TYPE = ContactsContract.Intents.Insert.PHONE_TYPE;
 
             /**
              * The extra field for the phone isprimary flag.
              * <P>Type: boolean</P>
              */
+            @Deprecated
             public static final String PHONE_ISPRIMARY =
                     ContactsContract.Intents.Insert.PHONE_ISPRIMARY;
 
@@ -1675,6 +1925,7 @@
              * The extra field for an optional second contact phone number.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String SECONDARY_PHONE =
                     ContactsContract.Intents.Insert.SECONDARY_PHONE;
 
@@ -1683,6 +1934,7 @@
              * <P>Type: Either an integer value from {@link android.provider.Contacts.PhonesColumns PhonesColumns},
              *  or a string specifying a custom label.</P>
              */
+            @Deprecated
             public static final String SECONDARY_PHONE_TYPE =
                     ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE;
 
@@ -1690,6 +1942,7 @@
              * The extra field for an optional third contact phone number.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String TERTIARY_PHONE =
                     ContactsContract.Intents.Insert.TERTIARY_PHONE;
 
@@ -1698,6 +1951,7 @@
              * <P>Type: Either an integer value from {@link android.provider.Contacts.PhonesColumns PhonesColumns},
              *  or a string specifying a custom label.</P>
              */
+            @Deprecated
             public static final String TERTIARY_PHONE_TYPE =
                     ContactsContract.Intents.Insert.TERTIARY_PHONE_TYPE;
 
@@ -1705,6 +1959,7 @@
              * The extra field for the contact email address.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String EMAIL = ContactsContract.Intents.Insert.EMAIL;
 
             /**
@@ -1712,12 +1967,14 @@
              * <P>Type: Either an integer value from {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns}
              *  or a string specifying a custom label.</P>
              */
+            @Deprecated
             public static final String EMAIL_TYPE = ContactsContract.Intents.Insert.EMAIL_TYPE;
 
             /**
              * The extra field for the email isprimary flag.
              * <P>Type: boolean</P>
              */
+            @Deprecated
             public static final String EMAIL_ISPRIMARY =
                     ContactsContract.Intents.Insert.EMAIL_ISPRIMARY;
 
@@ -1725,6 +1982,7 @@
              * The extra field for an optional second contact email address.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String SECONDARY_EMAIL =
                     ContactsContract.Intents.Insert.SECONDARY_EMAIL;
 
@@ -1733,6 +1991,7 @@
              * <P>Type: Either an integer value from {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns}
              *  or a string specifying a custom label.</P>
              */
+            @Deprecated
             public static final String SECONDARY_EMAIL_TYPE =
                     ContactsContract.Intents.Insert.SECONDARY_EMAIL_TYPE;
 
@@ -1740,6 +1999,7 @@
              * The extra field for an optional third contact email address.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String TERTIARY_EMAIL =
                     ContactsContract.Intents.Insert.TERTIARY_EMAIL;
 
@@ -1748,6 +2008,7 @@
              * <P>Type: Either an integer value from {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns}
              *  or a string specifying a custom label.</P>
              */
+            @Deprecated
             public static final String TERTIARY_EMAIL_TYPE =
                     ContactsContract.Intents.Insert.TERTIARY_EMAIL_TYPE;
 
@@ -1755,6 +2016,7 @@
              * The extra field for the contact postal address.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String POSTAL = ContactsContract.Intents.Insert.POSTAL;
 
             /**
@@ -1762,18 +2024,21 @@
              * <P>Type: Either an integer value from {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns}
              *  or a string specifying a custom label.</P>
              */
+            @Deprecated
             public static final String POSTAL_TYPE = ContactsContract.Intents.Insert.POSTAL_TYPE;
 
             /**
              * The extra field for the postal isprimary flag.
              * <P>Type: boolean</P>
              */
+            @Deprecated
             public static final String POSTAL_ISPRIMARY = ContactsContract.Intents.Insert.POSTAL_ISPRIMARY;
 
             /**
              * The extra field for an IM handle.
              * <P>Type: String</P>
              */
+            @Deprecated
             public static final String IM_HANDLE = ContactsContract.Intents.Insert.IM_HANDLE;
 
             /**
@@ -1781,12 +2046,14 @@
              * <P>Type: the result of {@link Contacts.ContactMethods#encodePredefinedImProtocol}
              * or {@link Contacts.ContactMethods#encodeCustomImProtocol}.</P>
              */
+            @Deprecated
             public static final String IM_PROTOCOL = ContactsContract.Intents.Insert.IM_PROTOCOL;
 
             /**
              * The extra field for the IM isprimary flag.
              * <P>Type: boolean</P>
              */
+            @Deprecated
             public static final String IM_ISPRIMARY = ContactsContract.Intents.Insert.IM_ISPRIMARY;
         }
     }
diff --git a/core/res/res/drawable/stat_sys_data_connected_1x.png b/core/res/res/drawable/stat_sys_data_connected_1x.png
new file mode 100644
index 0000000..130724f
--- /dev/null
+++ b/core/res/res/drawable/stat_sys_data_connected_1x.png
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_connected_1xrtt.png b/core/res/res/drawable/stat_sys_data_connected_1xrtt.png
deleted file mode 100644
index c2fbbdf..0000000
--- a/core/res/res/drawable/stat_sys_data_connected_1xrtt.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_connected_evdo.png b/core/res/res/drawable/stat_sys_data_connected_evdo.png
deleted file mode 100644
index db9f282..0000000
--- a/core/res/res/drawable/stat_sys_data_connected_evdo.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_dormant_1xrtt.png b/core/res/res/drawable/stat_sys_data_dormant_1xrtt.png
deleted file mode 100755
index 11c2eae..0000000
--- a/core/res/res/drawable/stat_sys_data_dormant_1xrtt.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_dormant_evdo.png b/core/res/res/drawable/stat_sys_data_dormant_evdo.png
deleted file mode 100755
index 811fcb5..0000000
--- a/core/res/res/drawable/stat_sys_data_dormant_evdo.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_in_1x.png b/core/res/res/drawable/stat_sys_data_in_1x.png
new file mode 100644
index 0000000..3155e632
--- /dev/null
+++ b/core/res/res/drawable/stat_sys_data_in_1x.png
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_in_1xrtt.png b/core/res/res/drawable/stat_sys_data_in_1xrtt.png
deleted file mode 100644
index a421a8a..0000000
--- a/core/res/res/drawable/stat_sys_data_in_1xrtt.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_in_evdo.png b/core/res/res/drawable/stat_sys_data_in_evdo.png
deleted file mode 100644
index 54f55ba..0000000
--- a/core/res/res/drawable/stat_sys_data_in_evdo.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_inandout_1x.png b/core/res/res/drawable/stat_sys_data_inandout_1x.png
new file mode 100644
index 0000000..1017e3bb
--- /dev/null
+++ b/core/res/res/drawable/stat_sys_data_inandout_1x.png
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_inandout_1xrtt.png b/core/res/res/drawable/stat_sys_data_inandout_1xrtt.png
deleted file mode 100644
index 1a94cdf..0000000
--- a/core/res/res/drawable/stat_sys_data_inandout_1xrtt.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_inandout_evdo.png b/core/res/res/drawable/stat_sys_data_inandout_evdo.png
deleted file mode 100644
index 7aa6f00..0000000
--- a/core/res/res/drawable/stat_sys_data_inandout_evdo.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_out_1x.png b/core/res/res/drawable/stat_sys_data_out_1x.png
new file mode 100644
index 0000000..5418791
--- /dev/null
+++ b/core/res/res/drawable/stat_sys_data_out_1x.png
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_out_1xrtt.png b/core/res/res/drawable/stat_sys_data_out_1xrtt.png
deleted file mode 100644
index 74fd351..0000000
--- a/core/res/res/drawable/stat_sys_data_out_1xrtt.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/stat_sys_data_out_evdo.png b/core/res/res/drawable/stat_sys_data_out_evdo.png
deleted file mode 100644
index 21e19a7..0000000
--- a/core/res/res/drawable/stat_sys_data_out_evdo.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 073be4f..7dc4ff9 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1648,7 +1648,7 @@
     <string name="copyUrl">Copy URL</string>
 
     <!-- EditText context menu -->
-    <string name="inputMethod">Input Method</string>
+    <string name="inputMethod">Input method</string>
 
     <!-- Item on EditText context menu, used to add a word to the
          input method dictionary. -->
diff --git a/graphics/java/android/renderscript/RSSurfaceView.java b/graphics/java/android/renderscript/RSSurfaceView.java
index 792b98d..a3f1ded 100644
--- a/graphics/java/android/renderscript/RSSurfaceView.java
+++ b/graphics/java/android/renderscript/RSSurfaceView.java
@@ -71,7 +71,6 @@
     public void surfaceCreated(SurfaceHolder holder) {
         Log.v(RenderScript.LOG_TAG, "surfaceCreated");
         mSurfaceHolder = holder;
-        //mGLThread.surfaceCreated();
     }
 
     /**
@@ -81,7 +80,6 @@
     public void surfaceDestroyed(SurfaceHolder holder) {
         // Surface will be destroyed when we return
         Log.v(RenderScript.LOG_TAG, "surfaceDestroyed");
-        //mGLThread.surfaceDestroyed();
     }
 
     /**
@@ -90,8 +88,6 @@
      */
     public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
         Log.v(RenderScript.LOG_TAG, "surfaceChanged");
-
-        //mGLThread.onWindowResize(w, h);
     }
 
     /**
@@ -102,7 +98,6 @@
      */
     public void onPause() {
         Log.v(RenderScript.LOG_TAG, "onPause");
-        //mGLThread.onPause();
     }
 
     /**
@@ -114,7 +109,6 @@
      */
     public void onResume() {
         Log.v(RenderScript.LOG_TAG, "onResume");
-        //mGLThread.onResume();
     }
 
     /**
@@ -125,7 +119,6 @@
      */
     public void queueEvent(Runnable r) {
         Log.v(RenderScript.LOG_TAG, "queueEvent");
-        //mGLThread.queueEvent(r);
     }
 
     /**
@@ -136,7 +129,6 @@
     @Override
     protected void onDetachedFromWindow() {
         super.onDetachedFromWindow();
-        //mGLThread.requestExitAndWait();
     }
 
     // ----------------------------------------------------------------------
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index 01926e9..8489003 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -206,6 +206,13 @@
         }
     }
 
+    public void destroy() {
+        nContextDestroy(mContext);
+        mContext = 0;
+
+        nDeviceDestroy(mDev);
+        mDev = 0;
+    }
 
     //////////////////////////////////////////////////////////////////////////////////
     // Triangle Mesh
diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h
index 0b94118..e4f6a4e 100644
--- a/include/media/stagefright/OMXCodec.h
+++ b/include/media/stagefright/OMXCodec.h
@@ -82,6 +82,7 @@
         kWantsNALFragments                   = 2,
         kRequiresLoadedToIdleAfterAllocation = 4,
         kRequiresAllocateBufferOnInputPorts  = 8,
+        kRequiresFlushCompleteEmulation      = 16,
     };
 
     struct BufferInfo {
@@ -165,7 +166,13 @@
     void drainInputBuffers();
     void fillOutputBuffers();
 
-    void flushPortAsync(OMX_U32 portIndex);
+    // Returns true iff a flush was initiated and a completion event is
+    // upcoming, false otherwise (A flush was not necessary as we own all
+    // the buffers on that port).
+    // This method will ONLY ever return false for a component with quirk
+    // "kRequiresFlushCompleteEmulation".
+    bool flushPortAsync(OMX_U32 portIndex);
+
     void disablePortAsync(OMX_U32 portIndex);
     void enablePortAsync(OMX_U32 portIndex);
 
diff --git a/libs/rs/java/Fountain/res/raw/fountain.c b/libs/rs/java/Fountain/res/raw/fountain.c
index e7804a5..8c1cad4 100644
--- a/libs/rs/java/Fountain/res/raw/fountain.c
+++ b/libs/rs/java/Fountain/res/raw/fountain.c
@@ -12,7 +12,6 @@
     float height = getHeight();
 
     if (rate) {
-        debugI32("rate", rate);
         int *dataI = loadArrayI32(1, 0);
         float rMax = ((float)rate) * 0.005f;
         int x = Control_x;
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index c8c69a8..52c2b78 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -76,18 +76,17 @@
     mGL.mRenderer = glGetString(GL_RENDERER);
     mGL.mExtensions = glGetString(GL_EXTENSIONS);
 
-    LOGV("EGL Version %i %i", mEGL.mMajorVersion, mEGL.mMinorVersion);
-    LOGV("GL Version %s", mGL.mVersion);
-    LOGV("GL Vendor %s", mGL.mVendor);
-    LOGV("GL Renderer %s", mGL.mRenderer);
-    LOGV("GL Extensions %s", mGL.mExtensions);
+    //LOGV("EGL Version %i %i", mEGL.mMajorVersion, mEGL.mMinorVersion);
+    //LOGV("GL Version %s", mGL.mVersion);
+    //LOGV("GL Vendor %s", mGL.mVendor);
+    //LOGV("GL Renderer %s", mGL.mRenderer);
+    //LOGV("GL Extensions %s", mGL.mExtensions);
 
-    if (memcmp(mGL.mVersion, "OpenGL ES-CM", 12)) {
+    if ((strlen((const char *)mGL.mVersion) < 12) || memcmp(mGL.mVersion, "OpenGL ES-CM", 12)) {
         LOGE("Error, OpenGL ES Lite not supported");
+    } else {
+        sscanf((const char *)mGL.mVersion + 13, "%i.%i", &mGL.mMajorVersion, &mGL.mMinorVersion);
     }
-    sscanf((const char *)mGL.mVersion + 13, "%i.%i", &mGL.mMajorVersion, &mGL.mMinorVersion);
-
-
 }
 
 bool Context::runScript(Script *s, uint32_t launchID)
@@ -115,7 +114,6 @@
     //glColor4f(1,1,1,1);
     //glEnable(GL_LIGHT0);
     glViewport(0, 0, mEGL.mWidth, mEGL.mHeight);
-#if 1
     glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
 
     glClearColor(mRootScript->mEnviroment.mClearColor[0],
@@ -129,7 +127,7 @@
     } else {
         glClear(GL_COLOR_BUFFER_BIT);
     }
-#endif
+
 #if RS_LOG_TIMES
     timerSet(RS_TIMER_SCRIPT);
 #endif
@@ -243,11 +241,13 @@
          }
      }
 
+     LOGV("RS Thread exiting");
      glClearColor(0,0,0,0);
      glClear(GL_COLOR_BUFFER_BIT);
      eglSwapBuffers(rsc->mEGL.mDisplay, rsc->mEGL.mSurface);
      eglTerminate(rsc->mEGL.mDisplay);
      rsc->objDestroyOOBRun();
+     LOGV("RS Thread exited");
      return NULL;
 }
 
@@ -298,9 +298,11 @@
 
 Context::~Context()
 {
+    LOGV("Context::~Context");
     mExit = true;
     void *res;
 
+    mIO.shutdown();
     int status = pthread_join(mThreadId, &res);
     objDestroyOOBRun();
 
diff --git a/libs/rs/rsLocklessFifo.cpp b/libs/rs/rsLocklessFifo.cpp
index c3fee54..0c403895 100644
--- a/libs/rs/rsLocklessFifo.cpp
+++ b/libs/rs/rsLocklessFifo.cpp
@@ -25,6 +25,16 @@
 
 LocklessCommandFifo::~LocklessCommandFifo()
 {
+    if (!mInShutdown) {
+        shutdown();
+    }
+    free(mBuffer);
+}
+
+void LocklessCommandFifo::shutdown()
+{
+    mInShutdown = true;
+    mSignalToWorker.set();
 }
 
 bool LocklessCommandFifo::init(uint32_t sizeInBytes)
@@ -42,6 +52,7 @@
         return false;
     }
 
+    mInShutdown = false;
     mSize = sizeInBytes;
     mPut = mBuffer;
     mGet = mBuffer;
@@ -50,7 +61,7 @@
     return true;
 }
 
-uint32_t LocklessCommandFifo::getFreeSpace() const 
+uint32_t LocklessCommandFifo::getFreeSpace() const
 {
     int32_t freeSpace = 0;
     //dumpState("getFreeSpace");
@@ -115,7 +126,7 @@
 {
     while(1) {
         //dumpState("get");
-        while(isEmpty()) {
+        while(isEmpty() && !mInShutdown) {
             mSignalToControl.set();
             mSignalToWorker.wait();
         }
@@ -126,7 +137,7 @@
             // non-zero command is valid
             return mGet+4;
         }
-    
+
         // zero command means reset to beginning.
         mGet = mBuffer;
     }
@@ -161,7 +172,7 @@
     while(getFreeSpace() < bytes) {
         sleep(1);
     }
-    
+
 }
 
 void LocklessCommandFifo::dumpState(const char *s) const
diff --git a/libs/rs/rsLocklessFifo.h b/libs/rs/rsLocklessFifo.h
index abeddf7..d0a4356 100644
--- a/libs/rs/rsLocklessFifo.h
+++ b/libs/rs/rsLocklessFifo.h
@@ -25,13 +25,14 @@
 
 // A simple FIFO to be used as a producer / consumer between two
 // threads.  One is writer and one is reader.  The common cases
-// will not require locking.  It is not threadsafe for multiple 
+// will not require locking.  It is not threadsafe for multiple
 // readers or writers by design.
 
-class LocklessCommandFifo 
+class LocklessCommandFifo
 {
 public:
     bool init(uint32_t size);
+    void shutdown();
 
     LocklessCommandFifo();
     ~LocklessCommandFifo();
@@ -59,6 +60,7 @@
     uint8_t * mBuffer;
     uint8_t * mEnd;
     uint8_t mSize;
+    bool mInShutdown;
 
     Signal mSignalToWorker;
     Signal mSignalToControl;
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index db4fd09..9419829 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -267,7 +267,7 @@
                 tmp.append(c->getComponentName());
                 sprintf(buf, " %i\n", ct2);
                 tmp.append(buf);
-                LOGD(tmp);
+                //LOGD(tmp);
                 str->append(tmp);
             }
         }
@@ -295,7 +295,7 @@
                 sprintf(buf, "%i, %i)\n", ct, ct2);
                 tmp.append(buf);
 
-                LOGD(tmp);
+                //LOGD(tmp);
                 str->append(tmp);
             }
         }
diff --git a/libs/rs/rsThreadIO.cpp b/libs/rs/rsThreadIO.cpp
index 4a1dbbb..db4bb81 100644
--- a/libs/rs/rsThreadIO.cpp
+++ b/libs/rs/rsThreadIO.cpp
@@ -30,6 +30,11 @@
 {
 }
 
+void ThreadIO::shutdown()
+{
+    mToCore.shutdown();
+}
+
 bool ThreadIO::playCoreCommands(Context *con, bool waitForCommand)
 {
     bool ret = false;
diff --git a/libs/rs/rsThreadIO.h b/libs/rs/rsThreadIO.h
index 4aab1b4..1f6a0c2 100644
--- a/libs/rs/rsThreadIO.h
+++ b/libs/rs/rsThreadIO.h
@@ -31,6 +31,8 @@
     ThreadIO();
     ~ThreadIO();
 
+    void shutdown();
+
     // Plays back commands from the client.
     // Returns true if any commands were processed.
     bool playCoreCommands(Context *con, bool waitForCommand);
diff --git a/location/java/com/android/internal/location/GpsLocationProvider.java b/location/java/com/android/internal/location/GpsLocationProvider.java
index bdef01f..0b4fb88 100755
--- a/location/java/com/android/internal/location/GpsLocationProvider.java
+++ b/location/java/com/android/internal/location/GpsLocationProvider.java
@@ -728,7 +728,7 @@
             mStarted = true;
             int positionMode;
             if (Settings.Secure.getInt(mContext.getContentResolver(),
-                    Settings.Secure.ASSISTED_GPS_ENABLED, 0) != 0) {
+                    Settings.Secure.ASSISTED_GPS_ENABLED, 1) != 0) {
                 positionMode = GPS_POSITION_MODE_MS_BASED;
             } else {
                 positionMode = GPS_POSITION_MODE_STANDALONE;
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index ec9f6d3..fec6cfb 100644
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -193,6 +193,7 @@
     }
     if (!strcmp(componentName, "OMX.TI.AAC.decode")) {
         quirks |= kNeedsFlushBeforeDisable;
+        quirks |= kRequiresFlushCompleteEmulation;
     }
     if (!strncmp(componentName, "OMX.qcom.video.encoder.", 23)) {
         quirks |= kRequiresLoadedToIdleAfterAllocation;
@@ -1163,21 +1164,38 @@
     setState(RECONFIGURING);
 
     if (mQuirks & kNeedsFlushBeforeDisable) {
-        flushPortAsync(portIndex);
+        if (!flushPortAsync(portIndex)) {
+            onCmdComplete(OMX_CommandFlush, portIndex);
+        }
     } else {
         disablePortAsync(portIndex);
     }
 }
 
-void OMXCodec::flushPortAsync(OMX_U32 portIndex) {
+bool OMXCodec::flushPortAsync(OMX_U32 portIndex) {
     CHECK(mState == EXECUTING || mState == RECONFIGURING);
 
+    LOGV("flushPortAsync(%ld): we own %d out of %d buffers already.",
+         portIndex, countBuffersWeOwn(mPortBuffers[portIndex]),
+         mPortBuffers[portIndex].size());
+
     CHECK_EQ(mPortStatus[portIndex], ENABLED);
     mPortStatus[portIndex] = SHUTTING_DOWN;
 
+    if ((mQuirks & kRequiresFlushCompleteEmulation)
+        && countBuffersWeOwn(mPortBuffers[portIndex])
+                == mPortBuffers[portIndex].size()) {
+        // No flush is necessary and this component fails to send a
+        // flush-complete event in this case.
+
+        return false;
+    }
+
     status_t err =
         mOMX->send_command(mNode, OMX_CommandFlush, portIndex);
     CHECK_EQ(err, OK);
+
+    return true;
 }
 
 void OMXCodec::disablePortAsync(OMX_U32 portIndex) {
@@ -1323,6 +1341,12 @@
 void OMXCodec::fillOutputBuffer(BufferInfo *info) {
     CHECK_EQ(info->mOwnedByComponent, false);
 
+    if (mNoMoreOutputData) {
+        LOGV("There is no more output data available, not "
+             "calling fillOutputBuffer");
+        return;
+    }
+
     LOGV("Calling fill_buffer on buffer %p", info->mBuffer);
     mOMX->fill_buffer(mNode, info->mBuffer);
 
@@ -1648,8 +1672,16 @@
 
         CHECK_EQ(mState, EXECUTING);
 
-        flushPortAsync(kPortIndexInput);
-        flushPortAsync(kPortIndexOutput);
+        bool emulateInputFlushCompletion = !flushPortAsync(kPortIndexInput);
+        bool emulateOutputFlushCompletion = !flushPortAsync(kPortIndexOutput);
+
+        if (emulateInputFlushCompletion) {
+            onCmdComplete(OMX_CommandFlush, kPortIndexInput);
+        }
+
+        if (emulateOutputFlushCompletion) {
+            onCmdComplete(OMX_CommandFlush, kPortIndexOutput);
+        }
     }
 
     while (mState != ERROR && !mNoMoreOutputData && mFilledBuffers.empty()) {
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 6a1f6f8..8f4061e 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -64,7 +64,7 @@
 
     private static final String TAG = "SettingsProvider";
     private static final String DATABASE_NAME = "settings.db";
-    private static final int DATABASE_VERSION = 38;
+    private static final int DATABASE_VERSION = 39;
 
     private Context mContext;
 
@@ -389,21 +389,6 @@
         if (upgradeVersion == 34) {
             db.beginTransaction();
             try {
-                String value =
-                        mContext.getResources().getBoolean(R.bool.assisted_gps_enabled) ? "1" : "0";
-                db.execSQL("INSERT OR IGNORE INTO secure(name,value) values('" +
-                        Settings.Secure.ASSISTED_GPS_ENABLED + "','" + value + "');");
-                db.setTransactionSuccessful();
-            } finally {
-                db.endTransaction();
-            }
-
-            upgradeVersion = 35;
-        }
-
-        if (upgradeVersion == 35) {
-            db.beginTransaction();
-            try {
                 SQLiteStatement stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"
                         + " VALUES(?,?);");
                 loadSecure35Settings(stmt);
@@ -412,8 +397,15 @@
             } finally {
                 db.endTransaction();
             }
+        }
+            // due to a botched merge from donut to eclair, the initialization of ASSISTED_GPS_ENABLED
+            // was accidentally done out of order here.
+            // to fix this, ASSISTED_GPS_ENABLED is now initialized while upgrading from 38 to 39,
+            // and we intentionally do nothing from 35 to 36 now.
+        if (upgradeVersion == 35) {
             upgradeVersion = 36;
         }
+
         if (upgradeVersion == 36) {
            // This upgrade adds the STREAM_SYSTEM_ENFORCED type to the list of
             // types affected by ringer modes (silent, vibrate, etc.)
@@ -450,6 +442,21 @@
             upgradeVersion = 38;
         }
 
+        if (upgradeVersion == 38) {
+            db.beginTransaction();
+            try {
+                String value =
+                        mContext.getResources().getBoolean(R.bool.assisted_gps_enabled) ? "1" : "0";
+                db.execSQL("INSERT OR IGNORE INTO secure(name,value) values('" +
+                        Settings.Secure.ASSISTED_GPS_ENABLED + "','" + value + "');");
+                db.setTransactionSuccessful();
+            } finally {
+                db.endTransaction();
+            }
+
+            upgradeVersion = 39;
+        }
+
         if (upgradeVersion != currentVersion) {
             Log.w(TAG, "Got stuck trying to upgrade from version " + upgradeVersion
                     + ", must wipe the settings provider");
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 4e24a4b..e26dd13 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -1111,11 +1111,13 @@
                     int j = 1;
                     for (String dns : dnsList) {
                         if (dns != null && !TextUtils.equals(dns, "0.0.0.0")) {
+                            if (DBG) Log.d(TAG, "  adding "+dns);
                             SystemProperties.set("net.dns" + j++, dns);
                         }
                     }
                     for (int k=j ; k<mNumDnsEntries; k++) {
-                        SystemProperties.set("net.dns" + j, "");
+                        if (DBG) Log.d(TAG, "erasing net.dns" + k);
+                        SystemProperties.set("net.dns" + k, "");
                     }
                     mNumDnsEntries = j;
                 } else {
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index a4b0685..23eb7c1 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -755,6 +755,8 @@
     String mTopData;
     boolean mSystemReady = false;
     boolean mBooting = false;
+    boolean mWaitingUpdate = false;
+    boolean mDidUpdate = false;
 
     Context mContext;
 
@@ -972,6 +974,8 @@
                         res.set(0);
                     }
                 }
+                
+                ensureBootCompleted();
             } break;
             case SHOW_NOT_RESPONDING_MSG: {
                 synchronized (ActivityManagerService.this) {
@@ -992,13 +996,13 @@
                     proc.anrDialog = d;
                 }
                 
-                ensureScreenEnabled();
+                ensureBootCompleted();
             } break;
             case SHOW_FACTORY_ERROR_MSG: {
                 Dialog d = new FactoryErrorDialog(
                     mContext, msg.getData().getCharSequence("msg"));
                 d.show();
-                enableScreenAfterBoot();
+                ensureBootCompleted();
             } break;
             case UPDATE_CONFIGURATION_MSG: {
                 final ContentResolver resolver = mContext.getContentResolver();
@@ -1843,12 +1847,12 @@
         }
 
         startProcessLocked(r.processName, r.info.applicationInfo, true, 0,
-                "activity", r.intent.getComponent());
+                "activity", r.intent.getComponent(), false);
     }
 
     private final ProcessRecord startProcessLocked(String processName,
             ApplicationInfo info, boolean knownToBeDead, int intentFlags,
-            String hostingType, ComponentName hostingName) {
+            String hostingType, ComponentName hostingName, boolean allowWhileBooting) {
         ProcessRecord app = getProcessRecordLocked(processName, info.uid);
         // We don't have to do anything more if:
         // (1) There is an existing application record; and
@@ -1901,7 +1905,8 @@
         // If the system is not ready yet, then hold off on starting this
         // process until it is.
         if (!mSystemReady
-                && (info.flags&ApplicationInfo.FLAG_PERSISTENT) == 0) {
+                && !isAllowedWhileBooting(info)
+                && !allowWhileBooting) {
             if (!mProcessesOnHold.contains(app)) {
                 mProcessesOnHold.add(app);
             }
@@ -1912,6 +1917,10 @@
         return (app.pid != 0) ? app : null;
     }
 
+    boolean isAllowedWhileBooting(ApplicationInfo ai) {
+        return (ai.flags&ApplicationInfo.FLAG_PERSISTENT) != 0;
+    }
+    
     private final void startProcessLocked(ProcessRecord app,
             String hostingType, String hostingNameStr) {
         if (app.pid > 0 && app.pid != MY_PID) {
@@ -5085,8 +5094,13 @@
 
         mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app);
 
-        List providers = generateApplicationProvidersLocked(app);
+        boolean normalMode = mSystemReady || isAllowedWhileBooting(app.info);
+        List providers = normalMode ? generateApplicationProvidersLocked(app) : null;
 
+        if (!normalMode) {
+            Log.i(TAG, "Launching preboot mode app: " + app);
+        }
+        
         if (localLOGV) Log.v(
             TAG, "New app record " + app
             + " thread=" + thread.asBinder() + " pid=" + pid);
@@ -5102,12 +5116,14 @@
                     mWaitForDebugger = mOrigWaitForDebugger;
                 }
             }
+            
             // If the app is being launched for restore or full backup, set it up specially
             boolean isRestrictedBackupMode = false;
             if (mBackupTarget != null && mBackupAppName.equals(processName)) {
                 isRestrictedBackupMode = (mBackupTarget.backupMode == BackupRecord.RESTORE)
                         || (mBackupTarget.backupMode == BackupRecord.BACKUP_FULL);
             }
+            
             ensurePackageDexOpt(app.instrumentationInfo != null
                     ? app.instrumentationInfo.packageName
                     : app.info.packageName);
@@ -5118,7 +5134,8 @@
                     ? app.instrumentationInfo : app.info, providers,
                     app.instrumentationClass, app.instrumentationProfileFile,
                     app.instrumentationArguments, app.instrumentationWatcher, testMode, 
-                    isRestrictedBackupMode, mConfiguration, getCommonServicesLocked());
+                    isRestrictedBackupMode || !normalMode,
+                    mConfiguration, getCommonServicesLocked());
             updateLRUListLocked(app, false);
             app.lastRequestedGc = SystemClock.uptimeMillis();
         } catch (Exception e) {
@@ -5284,6 +5301,8 @@
     }
 
     void enableScreenAfterBoot() {
+        EventLog.writeEvent(LOG_BOOT_PROGRESS_ENABLE_SCREEN,
+                SystemClock.uptimeMillis());
         mWindowManager.enableScreenAfterBoot();
     }
 
@@ -5394,26 +5413,7 @@
         }
 
         if (booting) {
-            // Ensure that any processes we had put on hold are now started
-            // up.
-            final int NP = mProcessesOnHold.size();
-            if (NP > 0) {
-                ArrayList<ProcessRecord> procs =
-                    new ArrayList<ProcessRecord>(mProcessesOnHold);
-                for (int ip=0; ip<NP; ip++) {
-                    this.startProcessLocked(procs.get(ip), "on-hold", null);
-                }
-            }
-            if (mFactoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
-                // Tell anyone interested that we are done booting!
-                synchronized (this) {
-                    broadcastIntentLocked(null, null,
-                            new Intent(Intent.ACTION_BOOT_COMPLETED, null),
-                            null, null, 0, null, null,
-                            android.Manifest.permission.RECEIVE_BOOT_COMPLETED,
-                            false, false, MY_PID, Process.SYSTEM_UID);
-                }
-            }
+            finishBooting();
         }
 
         trimApplications();
@@ -5421,22 +5421,48 @@
         //mWindowManager.dump();
 
         if (enableScreen) {
-            EventLog.writeEvent(LOG_BOOT_PROGRESS_ENABLE_SCREEN,
-                SystemClock.uptimeMillis());
             enableScreenAfterBoot();
         }
     }
 
-    final void ensureScreenEnabled() {
+    final void finishBooting() {
+        // Ensure that any processes we had put on hold are now started
+        // up.
+        final int NP = mProcessesOnHold.size();
+        if (NP > 0) {
+            ArrayList<ProcessRecord> procs =
+                new ArrayList<ProcessRecord>(mProcessesOnHold);
+            for (int ip=0; ip<NP; ip++) {
+                this.startProcessLocked(procs.get(ip), "on-hold", null);
+            }
+        }
+        if (mFactoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
+            // Tell anyone interested that we are done booting!
+            synchronized (this) {
+                broadcastIntentLocked(null, null,
+                        new Intent(Intent.ACTION_BOOT_COMPLETED, null),
+                        null, null, 0, null, null,
+                        android.Manifest.permission.RECEIVE_BOOT_COMPLETED,
+                        false, false, MY_PID, Process.SYSTEM_UID);
+            }
+        }
+    }
+    
+    final void ensureBootCompleted() {
+        boolean booting;
         boolean enableScreen;
         synchronized (this) {
+            booting = mBooting;
+            mBooting = false;
             enableScreen = !mBooted;
             mBooted = true;
         }
+        
+        if (booting) {
+            finishBooting();
+        }
 
         if (enableScreen) {
-            EventLog.writeEvent(LOG_BOOT_PROGRESS_ENABLE_SCREEN,
-                SystemClock.uptimeMillis());
             enableScreenAfterBoot();
         }
     }
@@ -5588,6 +5614,13 @@
             throw new IllegalArgumentException("File descriptors passed in Intent");
         }
 
+        if (type == INTENT_SENDER_BROADCAST) {
+            if ((intent.getFlags()&Intent.FLAG_RECEIVER_BOOT_UPGRADE) != 0) {
+                throw new IllegalArgumentException(
+                        "Can't use FLAG_RECEIVER_BOOT_UPGRADE here");
+            }
+        }
+        
         synchronized(this) {
             int callingUid = Binder.getCallingUid();
             try {
@@ -7398,7 +7431,7 @@
                     ProcessRecord proc = startProcessLocked(cpi.processName,
                             cpr.appInfo, false, 0, "content provider",
                             new ComponentName(cpi.applicationInfo.packageName,
-                                    cpi.name));
+                                    cpi.name), false);
                     if (proc == null) {
                         Log.w(TAG, "Unable to launch app "
                                 + cpi.applicationInfo.packageName + "/"
@@ -8125,17 +8158,93 @@
             if (mSystemReady) {
                 return;
             }
+            
+            // Check to see if there are any update receivers to run.
+            if (!mDidUpdate) {
+                if (mWaitingUpdate) {
+                    return;
+                }
+                Intent intent = new Intent(Intent.ACTION_PRE_BOOT_COMPLETED);
+                List<ResolveInfo> ris = null;
+                try {
+                    ris = ActivityThread.getPackageManager().queryIntentReceivers(
+                                intent, null, 0);
+                } catch (RemoteException e) {
+                }
+                if (ris != null) {
+                    for (int i=ris.size()-1; i>=0; i--) {
+                        if ((ris.get(i).activityInfo.applicationInfo.flags
+                                &ApplicationInfo.FLAG_SYSTEM) == 0) {
+                            ris.remove(i);
+                        }
+                    }
+                    intent.addFlags(Intent.FLAG_RECEIVER_BOOT_UPGRADE);
+                    for (int i=0; i<ris.size(); i++) {
+                        ActivityInfo ai = ris.get(i).activityInfo;
+                        intent.setComponent(new ComponentName(ai.packageName, ai.name));
+                        IIntentReceiver finisher = null;
+                        if (i == 0) {
+                            finisher = new IIntentReceiver.Stub() {
+                                public void performReceive(Intent intent, int resultCode,
+                                        String data, Bundle extras, boolean ordered)
+                                        throws RemoteException {
+                                    synchronized (ActivityManagerService.this) {
+                                        mDidUpdate = true;
+                                    }
+                                    systemReady();
+                                }
+                            };
+                        }
+                        Log.i(TAG, "Sending system update to: " + intent.getComponent());
+                        broadcastIntentLocked(null, null, intent, null, finisher,
+                                0, null, null, null, true, false, MY_PID, Process.SYSTEM_UID);
+                        if (i == 0) {
+                            mWaitingUpdate = true;
+                        }
+                    }
+                }
+                if (mWaitingUpdate) {
+                    return;
+                }
+                mDidUpdate = true;
+            }
+            
             mSystemReady = true;
             if (!mStartRunning) {
                 return;
             }
         }
 
+        ArrayList<ProcessRecord> procsToKill = null;
+        synchronized(mPidsSelfLocked) {
+            for (int i=mPidsSelfLocked.size()-1; i>=0; i--) {
+                ProcessRecord proc = mPidsSelfLocked.valueAt(i);
+                if (!isAllowedWhileBooting(proc.info)){
+                    if (procsToKill == null) {
+                        procsToKill = new ArrayList<ProcessRecord>();
+                    }
+                    procsToKill.add(proc);
+                }
+            }
+        }
+        
+        if (procsToKill != null) {
+            synchronized(this) {
+                for (int i=procsToKill.size()-1; i>=0; i--) {
+                    ProcessRecord proc = procsToKill.get(i);
+                    Log.i(TAG, "Removing system update proc: " + proc);
+                    removeProcessLocked(proc, true);
+                }
+            }
+        }
+        
         if (Config.LOGD) Log.d(TAG, "Start running!");
         EventLog.writeEvent(LOG_BOOT_PROGRESS_AMS_READY,
             SystemClock.uptimeMillis());
 
         synchronized(this) {
+            // Make sure we have no pre-ready processes sitting around.
+            
             if (mFactoryTest == SystemServer.FACTORY_TEST_LOW_LEVEL) {
                 ResolveInfo ri = mContext.getPackageManager()
                         .resolveActivity(new Intent(Intent.ACTION_FACTORY_TEST),
@@ -8193,6 +8302,9 @@
                 }
             }
 
+            // Start up initial activity.
+            mBooting = true;
+            
             try {
                 if (ActivityThread.getPackageManager().hasSystemUidErrors()) {
                     Message msg = Message.obtain();
@@ -8202,8 +8314,6 @@
             } catch (RemoteException e) {
             }
 
-            // Start up initial activity.
-            mBooting = true;
             resumeTopActivityLocked(null);
         }
     }
@@ -10128,7 +10238,7 @@
             // Not running -- get it started, and enqueue this service record
             // to be executed when the app comes up.
             if (startProcessLocked(appName, r.appInfo, true, intentFlags,
-                    "service", r.name) == null) {
+                    "service", r.name, false) == null) {
                 Log.w(TAG, "Unable to launch app "
                         + r.appInfo.packageName + "/"
                         + r.appInfo.uid + " for service "
@@ -10930,7 +11040,7 @@
             ComponentName hostingName = new ComponentName(app.packageName, app.backupAgentName);
             // startProcessLocked() returns existing proc's record if it's already running
             ProcessRecord proc = startProcessLocked(app.processName, app,
-                    false, 0, "backup", hostingName);
+                    false, 0, "backup", hostingName, false);
             if (proc == null) {
                 Log.e(TAG, "Unable to start backup agent process " + r);
                 return false;
@@ -11467,10 +11577,11 @@
         }
 
         synchronized(this) {
+            int flags = intent.getFlags();
+            
             if (!mSystemReady) {
                 // if the caller really truly claims to know what they're doing, go
                 // ahead and allow the broadcast without launching any receivers
-                int flags = intent.getFlags();
                 if ((flags&Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT) != 0) {
                     intent = new Intent(intent);
                     intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
@@ -11481,6 +11592,11 @@
                 }
             }
             
+            if ((flags&Intent.FLAG_RECEIVER_BOOT_UPGRADE) != 0) {
+                throw new IllegalArgumentException(
+                        "Can't use FLAG_RECEIVER_BOOT_UPGRADE here");
+            }
+            
             final ProcessRecord callerApp = getRecordForAppLocked(caller);
             final int callingPid = Binder.getCallingPid();
             final int callingUid = Binder.getCallingUid();
@@ -12075,12 +12191,13 @@
                 // restart the application.
             }
 
-            // Not running -- get it started, and enqueue this history record
-            // to be executed when the app comes up.
+            // Not running -- get it started, to be executed when the app comes up.
             if ((r.curApp=startProcessLocked(targetProcess,
                     info.activityInfo.applicationInfo, true,
                     r.intent.getFlags() | Intent.FLAG_FROM_BACKGROUND,
-                    "broadcast", r.curComponent)) == null) {
+                    "broadcast", r.curComponent,
+                    (r.intent.getFlags()&Intent.FLAG_RECEIVER_BOOT_UPGRADE) != 0))
+                            == null) {
                 // Ah, this recipient is unavailable.  Finish it if necessary,
                 // and mark the broadcast record as ready for the next.
                 Log.w(TAG, "Unable to launch app "
diff --git a/services/java/com/android/server/status/StatusBarPolicy.java b/services/java/com/android/server/status/StatusBarPolicy.java
index 65b2ddb..10680dd 100644
--- a/services/java/com/android/server/status/StatusBarPolicy.java
+++ b/services/java/com/android/server/status/StatusBarPolicy.java
@@ -253,19 +253,12 @@
     };
 
     //CDMA
-    private static final int[] sDataNetType_evdo = new int[] {
-        com.android.internal.R.drawable.stat_sys_data_connected_evdo,
-        com.android.internal.R.drawable.stat_sys_data_in_evdo,
-        com.android.internal.R.drawable.stat_sys_data_out_evdo,
-        com.android.internal.R.drawable.stat_sys_data_inandout_evdo,
-        com.android.internal.R.drawable.stat_sys_data_dormant_evdo,
-    };
-    private static final int[] sDataNetType_1xrtt = new int[] {
-        com.android.internal.R.drawable.stat_sys_data_connected_1xrtt,
-        com.android.internal.R.drawable.stat_sys_data_in_1xrtt,
-        com.android.internal.R.drawable.stat_sys_data_out_1xrtt,
-        com.android.internal.R.drawable.stat_sys_data_inandout_1xrtt,
-        com.android.internal.R.drawable.stat_sys_data_dormant_1xrtt,
+    // Use 3G icons for EVDO data and 1x icons for 1XRTT data
+    private static final int[] sDataNetType_1x = new int[] {
+        com.android.internal.R.drawable.stat_sys_data_connected_1x,
+        com.android.internal.R.drawable.stat_sys_data_in_1x,
+        com.android.internal.R.drawable.stat_sys_data_out_1x,
+        com.android.internal.R.drawable.stat_sys_data_inandout_1x,
     };
 
     // Assume it's all good unless we hear otherwise.  We don't always seem
@@ -971,14 +964,14 @@
             break;
         case TelephonyManager.NETWORK_TYPE_CDMA:
             // display 1xRTT for IS95A/B
-            mDataIconList = this.sDataNetType_1xrtt;
+            mDataIconList = this.sDataNetType_1x;
             break;
         case TelephonyManager.NETWORK_TYPE_1xRTT:
-            mDataIconList = this.sDataNetType_1xrtt;
+            mDataIconList = this.sDataNetType_1x;
             break;
         case TelephonyManager.NETWORK_TYPE_EVDO_0: //fall through
         case TelephonyManager.NETWORK_TYPE_EVDO_A:
-            mDataIconList = sDataNetType_evdo;
+            mDataIconList = sDataNetType_3g;
             break;
         default:
             mDataIconList = sDataNetType_g;
@@ -1031,8 +1024,6 @@
                         iconId = mDataIconList[3];
                         break;
                     case TelephonyManager.DATA_ACTIVITY_DORMANT:
-                        iconId = mDataIconList[4];
-                        break;
                     default:
                         iconId = mDataIconList[0];
                         break;