)]}'
{
  "log": [
    {
      "commit": "522c5ce280de6467bfdb99eeb384bf8c1c7bd49b",
      "tree": "f2cec723d1d2ebf0a9e5b3cf02ba2a29685b19be",
      "parents": [
        "4f69d5b8e976751e9dd0ff2c8bf1b385f06435c4",
        "7e547e0d72817032737909952f00acc2e777a35a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 03 20:35:11 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 03 20:35:11 2014 +0000"
      },
      "message": "am 7e547e0d: Merge \"Add --pseudo-localize option to generate resources for pseudolocales.\"\n\n* commit \u00277e547e0d72817032737909952f00acc2e777a35a\u0027:\n  Add --pseudo-localize option to generate resources for pseudolocales.\n"
    },
    {
      "commit": "a191d0464f1eb5973caa044eee288a5a3e6c4dac",
      "tree": "37784050b0f55732b6dc467704fdf735de4008dc",
      "parents": [
        "1c725866da02c3e1f62fb416ea3450caed406f2a"
      ],
      "author": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Mon Jun 02 17:16:24 2014 -0700"
      },
      "committer": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Tue Jun 03 12:07:50 2014 -0700"
      },
      "message": "Add --pseudo-localize option to generate resources for pseudolocales.\n\nUpdate help output with new option, remove mention of obsolete zz_ZZ\npseudolocale.\n\nChange-Id: Ie2cfc8d11ef6a57e2b9a2333514a7340a3a8c075\n"
    },
    {
      "commit": "867680342e12af59a26756f30cf817a131724943",
      "tree": "426404d89843b3c55b4cfa370e8669423157074e",
      "parents": [
        "f99fc5405ea909e8fdea3446646afd8b26229c18",
        "b593ad60682a6f8c945c4c2ffc3d278df3f6e360"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 06 02:31:03 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 06 02:31:03 2014 +0000"
      },
      "message": "am b593ad60: am f1f28d1d: Merge \"Skip resource files for locales en-XA and ar-XB during packaging if pseudolocalization was done automatically. This prevents attemts to add same resource twice.\"\n\n* commit \u0027b593ad60682a6f8c945c4c2ffc3d278df3f6e360\u0027:\n  Skip resource files for locales en-XA and ar-XB during packaging if pseudolocalization was done automatically. This prevents attemts to add same resource twice.\n"
    },
    {
      "commit": "47843df11fe88b30abcac324173b6c15f16cc797",
      "tree": "228316dd281263a087e6b60b071db711f5003004",
      "parents": [
        "83a538e40ed8bdcda64c4bb5a448c0357b8e5e73"
      ],
      "author": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Thu May 01 17:04:39 2014 -0700"
      },
      "committer": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Mon May 05 18:13:41 2014 -0700"
      },
      "message": "Skip resource files for locales en-XA and ar-XB\nduring packaging if pseudolocalization was done automatically.\nThis prevents attemts to add same resource twice.\n\nChange-Id: I51e17f961ac44047bf466ce4aa0d4d17f4ded0d6\n"
    },
    {
      "commit": "0472fb5882cfe55577a169a0f0ff4b8920a839b0",
      "tree": "d8096a71da7abce417c22a940065f57bc73f1682",
      "parents": [
        "9bb4df3a7d9ed479f8ef10b08bbc3354a1984aab",
        "34dd2cdd4142ca8c7463b9f831429b4366fa222a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 05 21:13:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 05 21:13:28 2014 +0000"
      },
      "message": "am 34dd2cdd: am f2d2c871: AAPT should not process XML that failed to compile\n\n* commit \u002734dd2cdd4142ca8c7463b9f831429b4366fa222a\u0027:\n  AAPT should not process XML that failed to compile\n"
    },
    {
      "commit": "34dd2cdd4142ca8c7463b9f831429b4366fa222a",
      "tree": "4ee2c2ab3f7075d2d64898d686e1b72439120b92",
      "parents": [
        "e88097bd00d5710bbfb6c24a934743c8d6cac9cf",
        "f2d2c871813656012420faa89080d8e3cda1f308"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 05 21:09:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 05 21:09:49 2014 +0000"
      },
      "message": "am f2d2c871: AAPT should not process XML that failed to compile\n\n* commit \u0027f2d2c871813656012420faa89080d8e3cda1f308\u0027:\n  AAPT should not process XML that failed to compile\n"
    },
    {
      "commit": "f2d2c871813656012420faa89080d8e3cda1f308",
      "tree": "318d71ae17dfc7712309d153a86c45548584fb45",
      "parents": [
        "fd876194cf12352545048f77f626c839cc7ef787"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Apr 08 12:01:38 2014 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Mon May 05 12:01:21 2014 -0700"
      },
      "message": "AAPT should not process XML that failed to compile\n\nAAPT would attempt to warn if an unprefixed \u0027id\u0027\nattribute was used in an XML resource file even\nif that XML file failed to compile. The result\nwas undefined behaviour, including crashing the\nprocess.\n\nChange-Id: I1a9464ec937760e8d38bbe1af8d1b5d6b2c105a2\n"
    },
    {
      "commit": "fd955f14d6c87dffd1a20c36ad8001705495f831",
      "tree": "19547f5a68684d963ba32fce10dc8b1a78d172dd",
      "parents": [
        "cd50f7294654bf04195d9d1078a984ff9462093c",
        "6a6979ad17dfb492fb85a979e8f8688e4ed973b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 30 21:35:45 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 30 21:35:45 2014 +0000"
      },
      "message": "am 6a6979ad: am 86315c45: Merge \"Fixes issue causing pseudolocalization of strings in non-translatable resource files.\"\n\n* commit \u00276a6979ad17dfb492fb85a979e8f8688e4ed973b2\u0027:\n  Fixes issue causing pseudolocalization of strings in non-translatable resource files.\n"
    },
    {
      "commit": "84410b054c7db0b6685a0f15cb2d1ffcb264f6c9",
      "tree": "e75b6010cd7a2eb70025fe4db1c2b90b798b13ee",
      "parents": [
        "56cd8dbfbdeebc36ccbd5b2beedaaaa3f13c8b07"
      ],
      "author": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Wed Apr 30 11:56:42 2014 -0700"
      },
      "committer": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Wed Apr 30 11:56:42 2014 -0700"
      },
      "message": "Fixes issue causing pseudolocalization of strings\nin non-translatable resource files.\n\nChange-Id: Ic8e5effc86226d5be00561ac71bab7695ef90376\n"
    },
    {
      "commit": "36e64ab902a6932f2711d1dff6ee273610d68e7d",
      "tree": "676e4144ff27016790036e5246764fc560477c71",
      "parents": [
        "56ca82191231f3aba1132e3db06e7e09a10ec6dc",
        "cf4d85e4786beb98743eac68b71d67e36f76c058"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 23:26:16 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 18 23:26:16 2014 +0000"
      },
      "message": "am cf4d85e4: am 90840ec2: Merge \"Fix warning introduced by recent psuedolocalizer change.\"\n\n* commit \u0027cf4d85e4786beb98743eac68b71d67e36f76c058\u0027:\n  Fix warning introduced by recent psuedolocalizer change.\n"
    },
    {
      "commit": "0a1eed394fa287523b105aa569ed6348f4986483",
      "tree": "8daa2e43b563a113b2eb12f32e9837d6958c0bb7",
      "parents": [
        "92b2d5a608f9fefc9a88eea03cd599a26c1b62ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 16:15:27 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 16:15:27 2014 -0700"
      },
      "message": "Fix warning introduced by recent psuedolocalizer change.\n\nChange-Id: I577caf6ca4261b3d044b18bc8c5915012168031d\n"
    },
    {
      "commit": "56ca82191231f3aba1132e3db06e7e09a10ec6dc",
      "tree": "bc1fb58074d536961b71686fec951fb28595fdd6",
      "parents": [
        "235fd3c9effc63643db356a593e7f77f220a5f4c",
        "ec42199a71c8309a431c22ee152806736c862c4b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 15:56:46 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 15:56:46 2014 -0700"
      },
      "message": "resolved conflicts for merge of ec42199a to klp-modular-dev-plus-aosp\n\nChange-Id: I9ecd5d51be4d073ab93dbb0bd60097735e76bf94\n"
    },
    {
      "commit": "a2ef5c0d4fb863c0382e77ae00f986a019b11cbe",
      "tree": "d6c10bedf5d762e0fc0bd10b38f381ccefefa248",
      "parents": [
        "ecdf9b199ac9659c37c34c0b23084199acea80bf"
      ],
      "author": {
        "name": "Anton Krumin",
        "email": "antkrumin@google.com",
        "time": "Wed Mar 12 14:46:44 2014 -0700"
      },
      "committer": {
        "name": "Anton Krumin",
        "email": "antkrumin@google.com",
        "time": "Wed Apr 09 16:59:48 2014 -0700"
      },
      "message": "Pseudolocalizer improvements.\n\nFixes accented pseudolocalization and adds RTL pseudolocale.\n\nThis change contains following modifications in the pseudolocalization logic:\n1) zz_ZZ pseudolocale was removed;\n2) en_XA pseudolocale was added for pseudo-accented;\n3) ar_XB pseudolocale was added for pseudo-rtl;\n4) Pseudo RTL localization functionality was implemented;\n5) Text expansion functionality was implemented;\n6) Text bracketing was implemented;\n7) Couple of issues of previous implementation were fixed.\n\nChange-Id: I9f7f27bed717e39e82717d15c398decffc8bec3c\nSigned-off-by: Anton Krumin \u003cantkrumin@google.com\u003e\n"
    },
    {
      "commit": "642421aa7f284817cc1a972a7f9c7a64696a0116",
      "tree": "e51a5b2c212bd95c4a052fcbd6b0bb0f0fce4976",
      "parents": [
        "8f81d29558bb0c97187d5ae3a7ee696ec13b264a",
        "5c31e487c4577e1c47ee7c949325d6a13f0d462e"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 19:28:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 04 19:28:09 2014 +0000"
      },
      "message": "am 5c31e487: Merge \"Introduce new UI_MODE_TYPE_WATCH and qualifier.\" into klp-modular-dev\n\n* commit \u00275c31e487c4577e1c47ee7c949325d6a13f0d462e\u0027:\n  Introduce new UI_MODE_TYPE_WATCH and qualifier.\n"
    },
    {
      "commit": "6c191299a73388cd593809c0b66bafbd08fd2982",
      "tree": "86466cc5d46bb13d87ae71c906349957edd3a7fb",
      "parents": [
        "8db6d9af58b9b81dbd764acd3f6a379afb539bf6"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Apr 03 16:37:27 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 15:21:53 2014 -0400"
      },
      "message": "Introduce new UI_MODE_TYPE_WATCH and qualifier.\n\nDefault ui mode to watch if we have FEATURE_WATCH.\n\nBug:13395758\nChange-Id: Ie5ff95de60e69e91ad3612c7d2f1fca7f49061bd\n"
    },
    {
      "commit": "587e420ea9fb5578985e32d31b8791e773a5861e",
      "tree": "15077888a74562055e0d891a898f92b27adfec6e",
      "parents": [
        "af89d7e21f5d7cbe74ff4ce014d8ab2db1a6fc27",
        "004ceaaa4d3ddfc66ba3f3635e987c2ddc7f2d09"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 27 21:05:06 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 27 21:05:06 2014 +0000"
      },
      "message": "am 004ceaaa: am 55a65509: Merge \"Reduce warning verbosity in aapt\"\n\n* commit \u0027004ceaaa4d3ddfc66ba3f3635e987c2ddc7f2d09\u0027:\n  Reduce warning verbosity in aapt\n"
    },
    {
      "commit": "e119b22146c602dac1e8bdfdb325b6c83fc66d66",
      "tree": "d318c4a106673041cf3b47733a8dea78463aaad5",
      "parents": [
        "88517170cbb09b45324d5b457a0e5e840cc7d09b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 20 18:04:57 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 24 10:50:34 2014 -0700"
      },
      "message": "Reduce warning verbosity in aapt\n\n- Attributed source of problems to the correct file.\n- Only verify string localizations against valid\n  locales.\nBug:13140015\nChange-Id: I9dabc5efa0510649caee8af0c8ebb803d6f48269\n"
    },
    {
      "commit": "8272c84cb531a4f148f0b0a31d8359d381137378",
      "tree": "bdd6ace80e9c97b8509bdcde2fd52d09e6ae9102",
      "parents": [
        "e3318addc9c42a7b6d9d1ba8eaff786236b6dec0",
        "bbf826659e8e5d0be683b2459207c495303d53b6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 10 10:47:45 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 10 10:47:45 2014 +0000"
      },
      "message": "am bbf82665: am 6e2fb587: Merge \"LP64: Make 9 patches architecture agnostic.\"\n\n* commit \u0027bbf826659e8e5d0be683b2459207c495303d53b6\u0027:\n  LP64: Make 9 patches architecture agnostic.\n"
    },
    {
      "commit": "6381dd4ff212a95be30d2b445d40ff419ab076b4",
      "tree": "ea96f7e229cafae41f7be46a3cf0345edd2dc869",
      "parents": [
        "3fc3b9fd1bf71351bf1ff2d49d6e10b6acabf068"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 03 17:12:03 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 10 10:00:02 2014 +0000"
      },
      "message": "LP64: Make 9 patches architecture agnostic.\n\nThe Res_png_9patch struct had several pointer members\nwhose size differed between 32 and 64 bit platforms.\n\nThese members have been replaced by uint32_t offsets\nto serialized data. The serialized form for 9patches\nplaces a Res_png_9patch object at the beginning of\nserialized data, followed by int32_t arrays of xDivs,\nyDivs and colors.\n\nNote that these offsets are not strictly required,\nsince they can be computed from the values of numXDivs,\nnumYDivs \u0026 numColors, however they are called in tight\nloops so having them computed once is a beneficial.\n\nThis change also removed the unused patch_equals function\nfrom aapt\u0027s Image.cpp.\n\nChange-Id: I3b9ac8ae5c05510d41377cae4dff1c69b40c2531\n"
    },
    {
      "commit": "032305fbcf1f1923030723d60621d8bbfa138511",
      "tree": "998220b89b573a4746c873824560c2883b8dc3c2",
      "parents": [
        "f5f4d9306011ea1b10d25c959334f3e62df4447e",
        "b559b37150d24411f0b5ef102ced8d5acf858a0e"
      ],
      "author": {
        "name": "Tim Kilbourn",
        "email": "tkilbourn@google.com",
        "time": "Sat Mar 08 01:55:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Mar 08 01:55:00 2014 +0000"
      },
      "message": "am b559b371: Merge \"Dump leanback info in aapt dump badging.\" into klp-modular-dev\n\n* commit \u0027b559b37150d24411f0b5ef102ced8d5acf858a0e\u0027:\n  Dump leanback info in aapt dump badging.\n"
    },
    {
      "commit": "f5f4d9306011ea1b10d25c959334f3e62df4447e",
      "tree": "2a45b283ae061b160bb55a51aaa4e5135de15ba3",
      "parents": [
        "6f9f8e7aad2f74bc2089a081139111012e62f7db",
        "74bebf6faed2d34814ffc3d46664330ea568f7b2"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Sat Mar 08 01:54:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Mar 08 01:54:52 2014 +0000"
      },
      "message": "am 74bebf6f: Exclude the host aapt and aidl from PDK build.\n\n* commit \u002774bebf6faed2d34814ffc3d46664330ea568f7b2\u0027:\n  Exclude the host aapt and aidl from PDK build.\n"
    },
    {
      "commit": "b559b37150d24411f0b5ef102ced8d5acf858a0e",
      "tree": "5bfa7c7379d56fa6ae93c5f54ffe8643b6112f43",
      "parents": [
        "74bebf6faed2d34814ffc3d46664330ea568f7b2",
        "0a5a5d6996e54a927af750e122a1275d64f77ee5"
      ],
      "author": {
        "name": "Tim Kilbourn",
        "email": "tkilbourn@google.com",
        "time": "Sat Mar 08 00:55:47 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 08 00:55:48 2014 +0000"
      },
      "message": "Merge \"Dump leanback info in aapt dump badging.\" into klp-modular-dev"
    },
    {
      "commit": "0a5a5d6996e54a927af750e122a1275d64f77ee5",
      "tree": "2530e6edb6200ff28ee87f58fbb28e2a0b15dc37",
      "parents": [
        "d1862dac05e4302761c8d741a3286fe5eb6f1174"
      ],
      "author": {
        "name": "Tim Kilbourn",
        "email": "tkilbourn@google.com",
        "time": "Fri Mar 07 15:12:50 2014 -0800"
      },
      "committer": {
        "name": "Tim Kilbourn",
        "email": "tkilbourn@google.com",
        "time": "Fri Mar 07 16:47:42 2014 -0800"
      },
      "message": "Dump leanback info in aapt dump badging.\n\nLeanback launcher activities are reported, including the banner.\n\nChange-Id: Ifa496736ad3ba4239ec95e166768af895ff4dc53\n"
    },
    {
      "commit": "74bebf6faed2d34814ffc3d46664330ea568f7b2",
      "tree": "4c77c094ba71d651e37abda346444295724a3a76",
      "parents": [
        "01b5e765e59c14cdfb62f1a8684e9116a46874d2"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Mar 07 15:55:14 2014 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Mar 07 15:56:14 2014 -0800"
      },
      "message": "Exclude the host aapt and aidl from PDK build.\n\nBug: 13028632\nChange-Id: I0f774b19be77462d0fa271088a4a5a152729d13c\n"
    },
    {
      "commit": "8c1fc83445f8dce7e6d0789feeed8bf98d33bf01",
      "tree": "b9eae6651529003e33abaea6a3f18fd17266fb42",
      "parents": [
        "982931c72b6cd00c5eea28efc4b086f47f7aca17",
        "28879bbfe89dc4bf2067a7183975ecffb82f68e6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 17 11:06:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 17 11:06:38 2014 +0000"
      },
      "message": "am 28879bbf: am be57fca4: Merge \"Extended locales in AAPT / AssetManager.\"\n\n* commit \u002728879bbfe89dc4bf2067a7183975ecffb82f68e6\u0027:\n  Extended locales in AAPT / AssetManager.\n"
    },
    {
      "commit": "788fa41482b9d398591b7db8b0b01839029611ad",
      "tree": "ab94d4040351d79cca717a8b7e21fc6be5d0fcb5",
      "parents": [
        "48620f1d1b03e1cb4e0dce4999e0a4c2daf3a1b2"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 21 15:32:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 14 14:08:57 2014 +0000"
      },
      "message": "Extended locales in AAPT / AssetManager.\n\nSupport 3 letter language codes, script codes \u0026\nvariants. The bulk of the changes are related to\nthe implementation of command line filtering of\nlocales etc. The previous code assumed that the\nvalue of each \"axis\" (locale, density, size etc.)\ncould be represented by a 4 byte type. This is\nno longer the case.\n\nThis change introduces a new class, AaptLocaleValue\nwhich holds a (normalized) locale parsed from a\ndirectory name or a filter string. This class takes\nresponsibility for parsing locales as well as\nwriting them to ResTable_config structures, which is\ntheir representation in the resource table.\n\nThis includes minor changes at the java / JNI level\nfor AssetManager. We now call locale.toLanguageTag()\nto give the native layer a well formed BCP-47 tag.\nI\u0027ve removed some duplicated parsing code in\nAssetManager.cpp and replaced them with functions on\nResTable_config. The native getLocales function has\nbeen changed to return well formed BCP-47 locales as\nwell, so that the corresponding java function can use\nLocale.forLanguageTag to construct a Locale object\nout of it.\n\nFinally, this change introduces default and copy\nconstructors for ResTable_config to prevent having\nto memset() the associated memory to 0 on every\nstack allocation.\n\n(cherry-picked from commit 91447d88f2bdf9c2bf8d1a53570efef6172fba74)\n\nChange-Id: I1b43086860661012f949fb8e5deb7df44519b854\n"
    },
    {
      "commit": "1b5b60d696dd6840406ab9d3f38522ba18273c60",
      "tree": "1c6896b824a4f9bcf2b8960048f53d4713929d70",
      "parents": [
        "1441acdd6d0f08b00493478386e1b74df47e243b",
        "203356a34a82bfc759be02dfa1caa4529dce0732"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 04 18:36:10 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 04 18:36:10 2014 +0000"
      },
      "message": "am 203356a3: Merge \"Add support for multiple asset dirs (-A)\" into klp-modular-dev\n\n* commit \u0027203356a34a82bfc759be02dfa1caa4529dce0732\u0027:\n  Add support for multiple asset dirs (-A)\n"
    },
    {
      "commit": "203356a34a82bfc759be02dfa1caa4529dce0732",
      "tree": "b7fbcede2c4901a2099de6a6a0cae86e8fced51d",
      "parents": [
        "6dea46b2e567f614244100f542dce04e44c26bee",
        "09384303dea4f3f01d5682918d7bab9bf83a02b1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 04 18:31:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 04 18:31:23 2014 +0000"
      },
      "message": "Merge \"Add support for multiple asset dirs (-A)\" into klp-modular-dev"
    },
    {
      "commit": "7c4887f66bfa3dad16f8b03dc825ade96d7de130",
      "tree": "9ed404cd4e19d5a28b75fe132fae66bce4550276",
      "parents": [
        "e05b7b50e234e8ed2471f5ad96bb3d715067e9f3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 17:32:37 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 31 13:47:27 2014 +0000"
      },
      "message": "Change ResourceType cookies to int32_t.\n\nAlso change the order of parameters in ResTable constructors\nto avoid ambiguity.\n\n(cherry picked from commit 00b314436f4fdfada4bbf1e79ec12e9fa38aeaf1)\n\nChange-Id: I874c5d03c134dc3c331fba423b5280366296287c\n"
    },
    {
      "commit": "745d4efc8369d255341d810790132660e33d3b61",
      "tree": "f28ae30721d932409fd8189ac6ef5c0289d106c2",
      "parents": [
        "9fc157a4767f54d1cff53dc9489638b67aec2da3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 11:17:22 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 11:20:24 2014 +0000"
      },
      "message": "AssetManager cookies should be int32_t and not void*.\n\nCookies are really indices into vectors and arrays, so\nthey don\u0027t need to be void*. We choose int32_t instead\nof size_t to allow their width to be well specified.\n\n(cherry picked from commit ebfdd0f467e39c3af8d92cade78263935340acb7)\n(cherry picked from commit a7fa2e592e2e579e5acdb903dba83fc074ebc215)\n(cherry picked from commit a9d5701b034ed2d9771b3f0943e1add00741d7cd)\n\nChange-Id: I2aed3db568b6fdc487bf99e2c5dd123206736fda\n"
    },
    {
      "commit": "09384303dea4f3f01d5682918d7bab9bf83a02b1",
      "tree": "8b1c7e3e736cd8e2fdc0964ea5c71d08536452eb",
      "parents": [
        "6873e17d4b565aa1d4ea2a8f1ac261f517dcc2ff"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 22 16:07:42 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 23 12:43:42 2014 -0800"
      },
      "message": "Add support for multiple asset dirs (-A)\n\nBug: 12608034\nChange-Id: I02c5a1a73b83498d799570428cca3dd914f8ac11\n"
    },
    {
      "commit": "3da645f307695949623d78f280ce12e932eb057c",
      "tree": "33b99b0a1866377ecf30495bcae74c0d6ce9783c",
      "parents": [
        "c978799c4a7cc8339d560bb47a029861230fa2a6",
        "7e1b8ff3e15b35b92978e572ccbfbc47cedce242"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 18 12:46:40 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 18 12:46:41 2013 +0000"
      },
      "message": "Merge \"Don\u0027t pseudolocalize untranslatable strings.\""
    },
    {
      "commit": "d21752dff45c7d8856e63026cfddc303a302df14",
      "tree": "2aa3f04db9bea55993977f156c4e750a063bcb75",
      "parents": [
        "4a72b3064cecc85c56b8d75bb4a2d9fedbf76ec8",
        "afd31e08299008fdc5c2813f21b2573f29dc53df"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 11 11:41:10 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 11 11:41:10 2013 +0000"
      },
      "message": "Merge \"Reimplement ZipFileRO in terms of libziparchive.\""
    },
    {
      "commit": "7e1b8ff3e15b35b92978e572ccbfbc47cedce242",
      "tree": "4393ea93637c97d20808c49f197e5ead561a645a",
      "parents": [
        "6e2d0c1d91f644ab50e0c0b7cae4306262a4ca41"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 10 09:49:59 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 10 13:37:32 2013 +0000"
      },
      "message": "Don\u0027t pseudolocalize untranslatable strings.\n\nbug: https://code.google.com/p/android/issues/detail?id\u003d63004\nChange-Id: I8e47a53d887144dc867111e42313d0e113b83ea1\n"
    },
    {
      "commit": "afd31e08299008fdc5c2813f21b2573f29dc53df",
      "tree": "7f83dd8f1e7ed71d4fe8ce280841e43ce275ac6d",
      "parents": [
        "6e2d0c1d91f644ab50e0c0b7cae4306262a4ca41"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 03 13:16:03 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Dec 09 16:23:16 2013 +0000"
      },
      "message": "Reimplement ZipFileRO in terms of libziparchive.\n\nThis lets us share zip archive processing code with both\nthe runtime (Art, dalvik) and critical java code\n(StrictJarFile).\n\nThis change also moves several utility methods to ZipUtils\nand dedups code across several zip inflation methods.\n\nOne of the side effects of this change is that several\nprocessing loops are now O(n) instead of O(n^2).\n\nbug: 10193060\n\nChange-Id: I3c7188496837a47246c4f342e45485a70fef3169\n"
    },
    {
      "commit": "dbccd44a638ae8705a5b14bff8b2dd74abc26045",
      "tree": "14bfabaf3f3c7be86dfc064e919e00433a0cf2bb",
      "parents": [
        "ecfae4f899873f224e1aeed076dc8a41f8884487",
        "b873a17ce7be0a9771c24999adca6964431728f6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "message": "Merge commit \u0027b873a17ce7be0a9771c24999adca6964431728f6\u0027 into HEAD\n\nChange-Id: I938755073e70602cc8f51ce9bd420fdcf870cecd\n"
    },
    {
      "commit": "ed84dea928a5a830a19b5bcab7ad05a7e92f3279",
      "tree": "3433335ce3be3a69f12b957130e95b4d19f74e3f",
      "parents": [
        "2fcefe45718af44452b725b61f4051f507cb7e5d",
        "8f592378a1ea7f31d57253dc202f42707ef4da36"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:35:04 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 29 13:35:04 2013 -0700"
      },
      "message": "am 8f592378: am 69920427: Merge \"Fix a variety of small publicly-reported bugs.\"\n\n* commit \u00278f592378a1ea7f31d57253dc202f42707ef4da36\u0027:\n  Fix a variety of small publicly-reported bugs.\n"
    },
    {
      "commit": "c367d48c55e5a3fa0df14fd62889e4bb6b63cb01",
      "tree": "cc6a7e56e5c5e74d66603c8170660fd99c52bff3",
      "parents": [
        "b4cae4a955ebd91cf35aaeb00ab12ce6f1d5fc48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "message": "Fix a variety of small publicly-reported bugs.\n\nPossible NULL dereference in cmds/bootanimation/BootAnimation.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61556\n\nMissing fclose in core/jni/android_os_Debug.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61546\n\nBad loop guards in core/jni/android_util_Process.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61557\n\nAssignment to wrong variable in libs/androidfw/AssetManager.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61560\n\nMissing delete[]s in libs/androidfw/ObbFile.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61549\n\nLeaks on error in tools/aapt/Images.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61552\n\nTwo missing fclose calls in tools/aapt/Resource.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61553\n\nMissing fclose in tools/aidl/aidl.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61554\n\nChange-Id: I5820f3824e72d07a9acb776cf0af3e7443f5694a\n"
    },
    {
      "commit": "91b47365f68e29467912ddfa39dea30e661aff68",
      "tree": "0bf7b5f44ec1e78850bcd0911e627a9e80e2a9a8",
      "parents": [
        "1fb5ea38533b0a163194441f4f28cd64a5835446",
        "16e8c4f7db87d743410751410c7f761350792fe2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 18 13:45:19 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 18 13:45:19 2013 -0700"
      },
      "message": "am 16e8c4f7: am 7d292145: Merge \"Prune unneeded density resources from APK\" into klp-dev\n\n* commit \u002716e8c4f7db87d743410751410c7f761350792fe2\u0027:\n  Prune unneeded density resources from APK\n"
    },
    {
      "commit": "9438c2df133710ea2364e817cfd237f7a3d69ab1",
      "tree": "19d1315592338138a75361b10345479d41faf026",
      "parents": [
        "7d91cc97d788aae9f3a6ac5540580cc95591e356"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 15 17:18:51 2013 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 15 17:18:51 2013 -0700"
      },
      "message": "Prune unneeded density resources from APK\n\nWhen a preferred density is specified, prune all but the\nclosest matching density when the exact density resource does not\nexist.\n\nIf a preferred density resource does not exist and a higher density\nresource exists, prune all but the resource with the next highest\ndensity relative to the preferred density.\n\nIf a preferred density resource does not exist and there is no\nhigher density resource, prune all but the resource with the next\nlowest density relative to the preferred density.\n\nbug:11224465\nChange-Id: I99b3950fe3d8116a5625968ed383442315ae8526\n"
    },
    {
      "commit": "f2163cb0d1b5a0c4b24c9140d226ef02ae77678a",
      "tree": "fb44d7362cf752f4193908d95c92cac336a18c7d",
      "parents": [
        "b7354bab1500f7eec9360fbabf0474af0dfaad68",
        "ea4e07518cd1844b1654175ef27cf9501e0dd7eb"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Oct 07 16:02:13 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 07 16:02:13 2013 -0700"
      },
      "message": "am ea4e0751: am c884fc9f: Merge \"AAPT emits error for res with no \\\u0027default\\\u0027 product\" into klp-dev\n\n* commit \u0027ea4e07518cd1844b1654175ef27cf9501e0dd7eb\u0027:\n  AAPT emits error for res with no \u0027default\u0027 product\n"
    },
    {
      "commit": "2b8e82fd51fca815675e7cb32c35da3932f0dc13",
      "tree": "80ffefd2ff99d2f3d129c7682b014d468a56c7dd",
      "parents": [
        "fc141ef20bf871e925fbbbe4bb9af64c67033246"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 04 12:06:38 2013 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 04 15:14:09 2013 -0700"
      },
      "message": "AAPT emits error for res with no \u0027default\u0027 product\n\nRather than ignoring resources that do not match the specified\nproduct, we keep track of the ignored ones and make sure that\nsome variant of the resource that matches the product was processed.\n\nbug:10860838\nChange-Id: I804cd04a053269a35b7e1c1cc743b77493337bf9\n"
    },
    {
      "commit": "4056c94adf97a4cbb3e8dce7caed8508f6524a0d",
      "tree": "e536d6e0ba54d0adcf8aa641a65d2d6debb3ee04",
      "parents": [
        "db239f91d6641b7cd966464250bed2f2339e9609",
        "0c923b7ce1f4e40b401bcd342f4ee4399f4ad9d7"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Sep 30 17:09:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 30 17:09:58 2013 -0700"
      },
      "message": "am 0c923b7c: Merge \"Add badging of Payment apps\" into klp-dev\n\n* commit \u00270c923b7ce1f4e40b401bcd342f4ee4399f4ad9d7\u0027:\n  Add badging of Payment apps\n"
    },
    {
      "commit": "db239f91d6641b7cd966464250bed2f2339e9609",
      "tree": "1c89e0cbbe4714277a60832fd4d24ffbad29de89",
      "parents": [
        "fb83af78faa94a4dcb0683a420f51245e91da3a5",
        "5223a5ff24bed6d0a0ac618083a3ed050bdd98b2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Sep 30 17:09:54 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 30 17:09:54 2013 -0700"
      },
      "message": "am 5223a5ff: Merge \"Add support for dumping new badging\" into klp-dev\n\n* commit \u00275223a5ff24bed6d0a0ac618083a3ed050bdd98b2\u0027:\n  Add support for dumping new badging\n"
    },
    {
      "commit": "d831e80a2fa80d18867e70927e4e8cd797ead56f",
      "tree": "6525428a18801c2062e611034b8e2194b3fece59",
      "parents": [
        "b1249b822cef4e187814b83ae788f71842b88c28"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Sep 27 11:14:57 2013 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Sep 27 11:22:46 2013 -0700"
      },
      "message": "Add badging of Payment apps\n\nHCE apps that declare themselves as payment apps will receive\nthat badge when running aapt dump badging.\n\nbug:10899864\nChange-Id: I7c095214412465ad7a925285d6167e12de16b600\n"
    },
    {
      "commit": "b1249b822cef4e187814b83ae788f71842b88c28",
      "tree": "21c5da418388527c8030fb4f44ab42f905b0f7c8",
      "parents": [
        "a9f97a0a58066a29391629da85ed25a8e876dd40"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Sep 25 17:03:50 2013 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Sep 27 11:10:37 2013 -0700"
      },
      "message": "Add support for dumping new badging\n\nAPKs with AccessibilityServices, PrintServices, and or DeviceAdmin\nwill have those services dumped when running \u0027aapt dump badging\u0027.\n\nbug:10899864\nChange-Id: I9c1f1f36c397b128dca802510368573a54977459\n"
    },
    {
      "commit": "f17e8ee37917103f1e6f96fd323605cd754dfdb3",
      "tree": "68457de8e5b3b5579a49cf6f9be1a21747f3e5cc",
      "parents": [
        "833384ba110a2310f5462df7a42749fc1ce78820",
        "86974463e9e28108e14fa255efd3c429358c0605"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Sep 05 18:31:04 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 05 18:31:04 2013 -0700"
      },
      "message": "am 86974463: Merge \"Added support for supports-input manifest element\" into klp-dev\n\n* commit \u002786974463e9e28108e14fa255efd3c429358c0605\u0027:\n  Added support for supports-input manifest element\n"
    },
    {
      "commit": "eaeb19048672337714c1724de7992be8cb3f2124",
      "tree": "aca87c34e7933b08afe7a980a99a9b85bda10074",
      "parents": [
        "56960fbd39706278dbcb9d6ee95e16fa6eff6c6e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Sep 05 18:15:57 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Sep 05 18:15:57 2013 -0700"
      },
      "message": "Added support for supports-input manifest element\n\nChange-Id: Ifa7c87908081585c1940b5a47fdf5138a287d9ea\n"
    },
    {
      "commit": "09ed0720288c8d4b97cfd182c630f142077854e9",
      "tree": "5e9f746cf931bebabd87a6f125a1309068c32680",
      "parents": [
        "465b36d82206facfc0c36079b1b45acd543f8f60",
        "49ee555f239c79871b661e5ff135061f26665e1c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 04 16:49:39 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 04 16:49:39 2013 -0700"
      },
      "message": "am 49ee555f: Merge \"Transition API changes from API council recommendations\" into klp-dev\n\n* commit \u002749ee555f239c79871b661e5ff135061f26665e1c\u0027:\n  Transition API changes from API council recommendations\n"
    },
    {
      "commit": "d82c8ac4db7091d2e976af4c89a1734465d20cd2",
      "tree": "a3ccb4d7a4325582dfe028030e4ca2d38ba4c2be",
      "parents": [
        "2a59f3f24076d96cbb10e1c00c3264dec43f19b1"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Aug 26 14:20:16 2013 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 04 14:46:38 2013 -0700"
      },
      "message": "Transition API changes from API council recommendations\n\nIssue #10460684 KLP API Review: android.view.transition and android.animation\nIssue #10570740 Transitions: inflate transition targets from xml\n\nChange-Id: I7a3f6d3aece2fcafc5efd555d033f79e86635c98\n"
    },
    {
      "commit": "c27bc4fbb2bec606d688e7eabbccf63ede5e8cf1",
      "tree": "db86b61ba3f7bcbdc30175aa1df799f558c13cd2",
      "parents": [
        "713f4914bc5bd1e822192ba4fcf78909c943c95d",
        "adae1e91de4b2be7a67a33e8f3c3161f5cec15e1"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@android.com",
        "time": "Tue Aug 27 09:57:26 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 27 09:57:26 2013 -0700"
      },
      "message": "am adae1e91: am 1b8c33c6: Merge \"Forward compatibility fixes\"\n\n* commit \u0027adae1e91de4b2be7a67a33e8f3c3161f5cec15e1\u0027:\n  Forward compatibility fixes\n"
    },
    {
      "commit": "e982b7231fcb465bd367f869fd1baaf3c27e0660",
      "tree": "4fbf08f1c76d2e853f077d78bd05a451777917a0",
      "parents": [
        "f39abeb4c4fe19bb0b83d1218e180d5ae1ef1a11"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 26 16:53:40 2013 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 26 16:53:40 2013 -0700"
      },
      "message": "Forward compatibility fixes\n\nChange-Id: Iaf387a10c387e5e157bb16d120a1e033b3d1a6e8\n"
    },
    {
      "commit": "f2c89b9ed65116888f1d4a863b7c10c007a49c5d",
      "tree": "5a2a3110e1c1c8673f1fa22b94bc59ad30316e77",
      "parents": [
        "fec4a907b1ccb667758d9e7df151d372a070fd83",
        "9516ed4598948eea5623c57e443bce08c1f48ab6"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Jul 30 12:28:05 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 30 12:28:05 2013 -0700"
      },
      "message": "am 9516ed45: am cfc23ac6: Merge \"Add support for MNC\u003d00\"\n\n* commit \u00279516ed4598948eea5623c57e443bce08c1f48ab6\u0027:\n  Add support for MNC\u003d00\n"
    },
    {
      "commit": "1d766b53217f9e45472a01e84d2f1b02af36dec7",
      "tree": "5408fa90569c4d35467ab508f7f58fd41eb832cb",
      "parents": [
        "d547bcec5634f99195a2b12522b6977f61c40d55"
      ],
      "author": {
        "name": "Mattias Petersson",
        "email": "mattias.petersson@sonyericsson.com",
        "time": "Fri Oct 07 09:33:52 2011 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Fri Jul 26 18:42:34 2013 +0000"
      },
      "message": "Add support for MNC\u003d00\n\nThis adds support for operators with MNC (Mobile Network Code) zero\nto add customized resources. For example, it makes it possible to\nadd a folder called \"/res/values-mnc00/\" in an application. This will\ncause resources in that folder to be used when MNC is zero.\n(There is a total of 14 countries that have an operator with MNC\nzero.)\n\nWithout this fix, the resource framework gets confused, because MNC 0\nis normally used when the MNC is undefined (not set).\n\nBug: 7170488\nChange-Id: Icfd39fd0c739216e89446252ea0e7ceba6f002c6\n"
    },
    {
      "commit": "9d3b1a424c5c61e24e9659d15fb353026a00d925",
      "tree": "0e543391e3ac7b6ac0bff377e08cd2e233ef7363",
      "parents": [
        "8f5e3d13e166e4873e130a5ef7c987333dbac917"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 19:07:15 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 20:11:42 2013 -0700"
      },
      "message": "Move input library code to frameworks/native.\n\nNo longer compile libandroidfw as a static library on the device\nsince it already exists as a shared library.  Keeping the static\nlibrary would force us to provide a static library version of\nlibinput for the device as well which doesn\u0027t make sense.\n\nChange-Id: I3517881b87b47dcc209d80dbd0ac6b5cf29a766f\n"
    },
    {
      "commit": "5675b97f6591310d012a013a94a0ae9bd188d975",
      "tree": "9fbffeab628e77c6689519191ed8a46ee0b9c371",
      "parents": [
        "57b867f3f568b026833c6208afdeff2168838ffd"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Jun 26 17:27:35 2013 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Jun 26 17:27:35 2013 -0700"
      },
      "message": "Switch to shared libpng/libz dependency.\n\nBug: 9593270\nChange-Id: I1eec2590cca046d6e030c73d31a6b400019e1ebd\n"
    },
    {
      "commit": "3b9831f6a2f991fb492d052cc07817db402f2340",
      "tree": "4346272d6d6258b06f9430bdcace0510176a8488",
      "parents": [
        "60e510af804b5b583d835a0f1f1e676d08b812bc",
        "823abb63145c7a7db2b766cf7bb816cbdac1de66"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed May 08 07:35:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 08 07:35:34 2013 +0000"
      },
      "message": "Merge \"aapt: move qsort_r_compat here as it is sole client\""
    },
    {
      "commit": "1f5762e646bed2290934280464832782766ee68e",
      "tree": "123bcdf3ba4c98f885631b02bb90803b7885e438",
      "parents": [
        "9f3e1175657425115e863fdb256b83cadedc33e9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 06 20:20:34 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 07 17:09:46 2013 -0700"
      },
      "message": "libutils clean-up\n\nChange-Id: I11ee943da23a66828455a9770fc3c5ceb4bbcaa9\n"
    },
    {
      "commit": "823abb63145c7a7db2b766cf7bb816cbdac1de66",
      "tree": "a1502358a0e52f92aeb41dc8293ab01c82db1fec",
      "parents": [
        "e0eb0e90630c19808429a9bcdc9ff8dff085d2e8"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon May 06 23:17:58 2013 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue May 07 16:19:41 2013 -0700"
      },
      "message": "aapt: move qsort_r_compat here as it is sole client\n\nThis code is only used on the host for MacOS X compatibility.\nApparently, glibc and Apple\u0027s libc disagree on the parameter\nordering.\n\nChange-Id: I214edcf2870b6ac88316306ac5af43f1dadf9b2e\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "f1301d86fb7f414330b08dd9514436e65ba69ceb",
      "tree": "b0a1944d373ec02db2c33e45008da173138fb8a5",
      "parents": [
        "b98212925e41e9420ce6fefc3fe204b29c8f7a83",
        "b3f6687756ffb660f834ef673bed04b2d4a26d21"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 29 15:29:13 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 29 15:29:13 2013 -0700"
      },
      "message": "Merge commit \u0027b3f66877\u0027 into afdmerge\n\nChange-Id: I319863cf23b2e6eacfa4508f7b111fba7b1cbc24\n"
    },
    {
      "commit": "21675166345646f5bb278af487e69604290f09b0",
      "tree": "61263099de1bf602d666bef3cfc6f72fdddea253",
      "parents": [
        "d334cb13d694a4f1c6b885070ec48033366a4b37",
        "bd1730dec7356e042ee885ff4a63b40f36733062"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Apr 29 15:19:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 29 15:19:24 2013 -0700"
      },
      "message": "am bd1730de: Merge \"Document the \\\u0027aapt dump strings\\\u0027 command\"\n\n* commit \u0027bd1730dec7356e042ee885ff4a63b40f36733062\u0027:\n  Document the \u0027aapt dump strings\u0027 command\n"
    },
    {
      "commit": "7bb9471ea7841dee087857b0123725bfceb83bb3",
      "tree": "832ba8c2ecdcc245648c4e16ff898bbbdd49ec8f",
      "parents": [
        "eda67299cf14de315af12cbf8d5024e02fa5b1aa",
        "fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Mon Apr 29 10:10:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 29 10:10:52 2013 +0000"
      },
      "message": "Merge \"Allow compiling aapt for the device\""
    },
    {
      "commit": "08822df147f7794559870d6de01f9a5cea6f1cd4",
      "tree": "08e556d57f9a0442f71a982675b369b683b02fe6",
      "parents": [
        "0bb497b8d1bac2206df89a878ecb7e356d21fe99"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonymobile.com",
        "time": "Thu Dec 20 10:08:54 2012 +0100"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Mon Apr 29 09:57:19 2013 +0200"
      },
      "message": "Document the \u0027aapt dump strings\u0027 command\n\nUpdate the usage page for aapt to mention \u0027strings\u0027 as a valid\nsubcommand to \u0027dump\u0027.\n\nChange-Id: Iadb2b8ce36951ff36ffbf6b5ea349ba1e2b12582\n"
    },
    {
      "commit": "5ae02e92e4ea2621ae6be6076e304a972793e2f3",
      "tree": "2efdc361f1eb6f08aaca456819c6eadad7e1ca0f",
      "parents": [
        "65e46420ea0c24f53e36b08f4e927f3d0db3f895",
        "eb6403e95d601b62be7b4610599e72fd329f2666"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 26 12:06:15 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 26 12:06:15 2013 -0700"
      },
      "message": "am eb6403e9: resolved conflicts for merge of bfdd2566 to jb-mr2-dev-plus-aosp\n\n* commit \u0027eb6403e95d601b62be7b4610599e72fd329f2666\u0027:\n  Generate SDK docs for v7 support library packages.\n"
    },
    {
      "commit": "fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4",
      "tree": "6db6caa0c8d1cb6ac02175c5e2721fc8e5e605dd",
      "parents": [
        "007d4d7040c9b41de584e79ba7dbd15d25f54971"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Mon Mar 18 21:17:26 2013 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Fri Apr 26 15:07:09 2013 +0100"
      },
      "message": "Allow compiling aapt for the device\n\nChanges:\n\n- The static device version of libandroidfw now includes\n  the extra functions needed by aapt. I could only find\n  a few host tools that use the static library, so this is\n  hopefully not a problem.\n\n- The pseudolocalization code is moved into aapt.\n  It was previously in libhost, but only used by aapt.\n\nChange-Id: Ib393ebb7dcebee8abbb628cbe5255ea1679674ac\n"
    },
    {
      "commit": "caf7b0a155f6adef1b9af6cbf7370460c55e3a3f",
      "tree": "c69a8effe9c9299b687232dc672094f9c76c7b00",
      "parents": [
        "22f6a60e62253436a4f7da1a5d59adc0f17534cc"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 25 21:24:44 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 26 00:20:42 2013 -0700"
      },
      "message": "Generate SDK docs for v7 support library packages.\n\nThis change required fixing some bugs in how AAPT handles\nqualified symbols such as \"android:layout_height\"\nwhen generating JavaDoc links.  The links were being\ngenerated using the package name of the generated R file\nrather than the package name of the referenced symbol.\nThese broken links caused the JavaDoc build to fail.\n\nBug: 8175766\nChange-Id: I52fbef27825a25abca960cb44b59c2132267e9d6\n"
    },
    {
      "commit": "faebd8f0795b7d275fb4e503533c8c0c4a9acc21",
      "tree": "464de8bb5dcd9ae99402ebb630d329dc8ce953cc",
      "parents": [
        "b3caa9200a61cde1178a2c83419de56579d3c5a5"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri May 18 14:17:57 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Apr 18 13:33:13 2013 -0700"
      },
      "message": "First draft of Scenes \u0026 Transitions feature\n\nThis checkin has preliminary API (in flux, definitely changes still\nto be made) and implementation for a new \"Scenes \u0026 Transitions\" feature.\nThe current implementation allows you to define different Scenes\n(via layout resource IDs or callbacks) and Transitions to be used when\nchanging to those scenes. By default, scene changes will use AutoTransition,\nwhich generally does the right thing.\n\nThere are no overview docs or tutorials yet. The best way to learn how things\nwork is to see the code for the various tests in\nframeworks/base/tests/TransitionTests.\n\nExpect the API to change. Expect the implementation to change (mostly to add\nmore functionality). Expect bugs, but tell me if things do not work\nas expected.\n\nChange-Id: Ib025a9f565678b225afa4759325cf6d496cc7215\n"
    },
    {
      "commit": "a068eeddc9d47af1a12afbe6efe7d00e8e903b9f",
      "tree": "df9f8663d47adc21195ea822fc107c514d514c27",
      "parents": [
        "301e95f2e17164c6f432f1b68f55e5f12aa0ca78"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sat Apr 13 09:48:01 2013 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sat Apr 13 09:48:01 2013 -0700"
      },
      "message": "Revert \"Make --non-constant-id generates non final IDs for styleable.\"\n\nThis reverts commit 8730f46ae5ba9021a0e01c068ffc6b552b6c4510.\n"
    },
    {
      "commit": "8730f46ae5ba9021a0e01c068ffc6b552b6c4510",
      "tree": "0029a29868d6ff22577549764334b6e664766fbf",
      "parents": [
        "e203384f1627f27c81ff72426498927fb9d80698"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Apr 12 16:00:49 2013 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Apr 12 16:02:54 2013 -0700"
      },
      "message": "Make --non-constant-id generates non final IDs for styleable.\n\nThis was already done for all other types of resources, but not\nfor styleable (or the constants for the styleable array indices).\n\nThis fixes this. This only affects the SDK as this is used by the\nSDK toolchain only.\n\nChange-Id: Idfc2f7915be2b0e88590f38fd660610ffc7e160c\n"
    },
    {
      "commit": "d685894212e6dbeac1fda4996903c1da115d49a6",
      "tree": "c52d05c78811e79a869afbcdbe55a906e38f2fa1",
      "parents": [
        "9fa49cc3308f6af593d780581121afc3c1d7e046"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: I746aa8258866508c3a725d0773faf4518096548f\n"
    },
    {
      "commit": "1bcc3d691fd1cb68abced62caf3024e2bb228561",
      "tree": "d0a53d0ed98af85ef76ad74ae2e837f76c9b9be7",
      "parents": [
        "55cfcd75691581ffc4f88034711a2442db619a53"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 03 09:00:02 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 03 16:32:40 2013 -0700"
      },
      "message": "aapt: add support for optional uses-permission\n\nApplications can request a permission with android:required\u003d\"false\".\nFor example:\n\n\u003cuses-permission android:name\u003d\"android.permission.READ_PHONE_STATE\" android:required\u003d\"false\" /\u003e\n\nMake aapt understand such permissions.\n\nBug: 8522021\nChange-Id: I7d3af64e7c3eca608316d5bea19c4ea639dd2b7a\n"
    },
    {
      "commit": "ec559ff78caa16cffcc7b9d688fe911e8945e17d",
      "tree": "1312b153ba9ee001ceb8ed0e09c95fa85ada9bce",
      "parents": [
        "f4b36ad1617920691def64c00179666e2e42d5fa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 25 15:42:07 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 25 15:42:07 2013 -0800"
      },
      "message": "Fix typo.\n\nChange-Id: I71c8458e02dc9b9a4c59e51ded37b57a930038f9\n"
    },
    {
      "commit": "56a2301c7a1169a0692cadaeb48b9a6385d700f5",
      "tree": "7dfa8ab456c4e2915c095383d37847caa0d013be",
      "parents": [
        "b41af58f49d371cedf041443d20a1893f7f6c840"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 12 15:41:49 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 12 15:41:49 2013 -0800"
      },
      "message": "Implement issue #6646859: 4K!!!!  4K!!!!  4K!!!!\n\nChange-Id: Ib05a2eb6a03db50074805a437a3639a7d10684a0\n"
    },
    {
      "commit": "73d94a30a25aec25e27aa1d0a328f033465461c0",
      "tree": "b3923f2399b25f84f994a014617317835c407795",
      "parents": [
        "2fd47fea3299ef122e2bc8dc92a4a628b75dfd68",
        "ba1992f8e9e50ca58f007ff528d2f6d2c2b18223"
      ],
      "author": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Wed Jan 16 16:21:28 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 16 16:21:28 2013 -0800"
      },
      "message": "am ba1992f8: Merge \"Remove doSingleCrunch call DO NOT MERGE\" into jb-mr1-aah-dev\n\n* commit \u0027ba1992f8e9e50ca58f007ff528d2f6d2c2b18223\u0027:\n  Remove doSingleCrunch call DO NOT MERGE\n"
    },
    {
      "commit": "3944abbb506bb94d8e70b8b62f30225777f50648",
      "tree": "d15f4b56b928d9b660f949106b7bc8ee019e6150",
      "parents": [
        "d50a038340935a0ea8cf8fadce7e21b640b58db0"
      ],
      "author": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Wed Jan 16 14:51:29 2013 -0800"
      },
      "committer": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Wed Jan 16 14:51:29 2013 -0800"
      },
      "message": "Remove doSingleCrunch call DO NOT MERGE\n\nRemove doSingleCrunch call as it\u0027s breaking jb-mr1-aah-dev.\n\nChange-Id: I0d8ee55344792fd868e74e07f31641a85e71168a\n"
    },
    {
      "commit": "b7de2194d54eb81b1db4b50c171ddd0339831155",
      "tree": "03a09c0ff25281d52f69c773bfc44399b68b1716",
      "parents": [
        "e45113a1564c6e701fcc076813bee276d501c576",
        "c71c678e9b6a4278337b69f2c60c0fbe9988bf93"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 15 16:41:29 2013 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 15 16:41:29 2013 -0800"
      },
      "message": "resolved conflicts for merge of c71c678e to master\n\nChange-Id: I9e1a6a1151af00f0a13e2010776276b240e0ac3a\n"
    },
    {
      "commit": "c71c678e9b6a4278337b69f2c60c0fbe9988bf93",
      "tree": "f3bbf4e077314b0bf611a2a94ea586c559d4c4cd",
      "parents": [
        "f37d9c07b258ceeea991801f9223ecf071debd08",
        "a4e10cc746caea514216f436e2065b3bbefb25ef"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 15 14:50:37 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 15 14:50:37 2013 -0800"
      },
      "message": "am a4e10cc7: am 6080cc5f: resolved conflicts for merge of dd52dfed to jb-mr1.1-ub-dev\n\n* commit \u0027a4e10cc746caea514216f436e2065b3bbefb25ef\u0027:\n  Fix the single crunch command to return the right error code.\n"
    },
    {
      "commit": "a4e10cc746caea514216f436e2065b3bbefb25ef",
      "tree": "3dce7e8ed99c06ac9483a48d660024b19b19a04d",
      "parents": [
        "b78714b5dfc871fee251db125ec5e14f4e0aff5f",
        "6080cc5fd7c332c79098a50605c0c37d99d4c481"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 15 14:48:02 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 15 14:48:02 2013 -0800"
      },
      "message": "am 6080cc5f: resolved conflicts for merge of dd52dfed to jb-mr1.1-ub-dev\n\n* commit \u00276080cc5fd7c332c79098a50605c0c37d99d4c481\u0027:\n  Fix the single crunch command to return the right error code.\n"
    },
    {
      "commit": "6080cc5fd7c332c79098a50605c0c37d99d4c481",
      "tree": "d73683e19eb9236bb62e32409ff0b742557644d2",
      "parents": [
        "5941ff03721005228072dca5b1c808cb5d12a001",
        "dd52dfed52404490d51ca5ed43c2192cbc25a7a7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 15 14:24:56 2013 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 15 14:24:56 2013 -0800"
      },
      "message": "resolved conflicts for merge of dd52dfed to jb-mr1.1-ub-dev\n\nChange-Id: I839981af97e54c39f0ea0b8141a4dd02959263a0\n"
    },
    {
      "commit": "c75d3f5c10bf6d7718ef69c6bbc1cdf64cd8ff04",
      "tree": "89c04bb1b6f41275fa71aec9bf0df80ef701e59e",
      "parents": [
        "22d7cf239d8a9b009ea7adf86d8826a8a8116d03"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 14 18:02:40 2013 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 15 10:37:20 2013 -0800"
      },
      "message": "Fix the single crunch command to return the right error code.\n\nCasting from status_t to int doesn\u0027t work for return values\nif the lower 8 bits are all 0.\n\nChange-Id: I88e910dfe46cb72acd1595352e71da3c8eff4ca9\n"
    },
    {
      "commit": "22d7cf239d8a9b009ea7adf86d8826a8a8116d03",
      "tree": "80b4db57378fff41d163e2980dd9ff0a7b6e6840",
      "parents": [
        "0dae634b06f5dc6039a5aaa9c0f00250e10c6547"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 21 09:54:02 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 02 15:41:52 2013 -0800"
      },
      "message": "Add single crunch command to aapt. do not merge.\n\nPreviously the crunch command would work on a full res folder\nand output a full res folder (with only the drawables). This\nwas only used in the SDK.\n\nThe incremental logic is moved to the SDK build system so we\nchange the crunch command (or rather add a new one) to only\ncrunch a single file.\n\n(cherry picked from commit b1f6ad82dd8d1702617a757a88430604b3131fac)\n\nChange-Id: I3653f67ee321eac37cb8a6d228b1ef6d104ff0be\n"
    },
    {
      "commit": "b1f6ad82dd8d1702617a757a88430604b3131fac",
      "tree": "becaaa8c87cba0c0bd564fdef39c93f8107a11c1",
      "parents": [
        "2d1eb74a8e5deed8b567426ce448a9e37b11cfee"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 21 09:54:02 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 02 10:30:25 2013 -0800"
      },
      "message": "Add single crunch command to aapt.\n\nPreviously the crunch command would work on a full res folder\nand output a full res folder (with only the drawables). This\nwas only used in the SDK.\n\nThe incremental logic is moved to the SDK build system so we\nchange the crunch command (or rather add a new one) to only\ncrunch a single file.\n\nChange-Id: I635ee3e871d035b9db2fb593802d914e48241abf\n"
    },
    {
      "commit": "fac7b0a60306d851d903730ccc408a0272e866db",
      "tree": "78085c2a918fc005c3e03151af27109c78a3fafa",
      "parents": [
        "4317b3418b144c162634ec647df76a484ac35612",
        "5f958e9bfc793b3b653dfc88418bbd7745e633e1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Nov 29 10:58:26 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 29 10:58:26 2012 -0800"
      },
      "message": "am 5f958e9b: am 67b38c44: Cache resource ID lookups in aapt\n\n* commit \u00275f958e9bfc793b3b653dfc88418bbd7745e633e1\u0027:\n  Cache resource ID lookups in aapt\n"
    },
    {
      "commit": "67b38c44e8b04b97e357664804d593823b2a34ed",
      "tree": "9179968cfd7e832bb87ff45e8e053e4e31ba3f9c",
      "parents": [
        "23cc5d99fcb97c5a369b3ddf7f90505f6bb29363"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Nov 16 15:58:08 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 28 15:32:46 2012 -0800"
      },
      "message": "Cache resource ID lookups in aapt\n\nThis speeds up certain workloads considerably, particularly\nthose involved in buildling apps via the SDK.  Windows-based\nuse should particularly benefit from the change.\n\n(cherry picked from commit d8dde13a63565dcd72bcf03a5088407b737ba793)\n\nChange-Id: I33835bc64ade77688d41e8bfcd371b0a5f59d8fd\n"
    },
    {
      "commit": "d8dde13a63565dcd72bcf03a5088407b737ba793",
      "tree": "671cd9a2e230b1f960e673e8c2c1bbd3b535d9cc",
      "parents": [
        "aeb6268645d571dfc9f2d387a7ad2471039ddb54"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Nov 16 15:58:08 2012 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Nov 27 18:28:49 2012 -0800"
      },
      "message": "Cache resource ID lookups in aapt\n\nThis speeds up certain workloads considerably, particularly\nthose involved in buildling apps via the SDK.  Windows-based\nuse should particularly benefit from the change.\n\nChange-Id: I29f4b3a77400b201ee219729cc28a5e359c0c5e8\n"
    },
    {
      "commit": "0122a3db313d3a7b55e0dee5eae1d7798c0d55be",
      "tree": "a09e249293ad45d890ad6c01b3481d2ddcf4ae00",
      "parents": [
        "2832136bb6fcace61ef078051e94aa0a841aac15"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 10:11:54 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 11:14:50 2012 -0700"
      },
      "message": "Fix writing text version of styleable IDs. do not merge.\n\n(cherry picked from commit d16047434bca24b2811de7ea9d22de6ee0f87f79)\n\nChange-Id: Ic679080d5157daf77c35516c8f682bd13e2b4d96\n"
    },
    {
      "commit": "05113163a9e18d863932e8913be2f203c6ab1226",
      "tree": "a09e249293ad45d890ad6c01b3481d2ddcf4ae00",
      "parents": [
        "17b71e5937b8a58e3eb9faf475d51db1c9deb0c1",
        "253f76357dc9acdb329f321190eca4f0b049b4af"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 10:46:46 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 26 10:46:46 2012 -0700"
      },
      "message": "am 253f7635: am fb34490f: Merge \"Fix writing text version of styleable IDs.\"\n\n* commit \u0027253f76357dc9acdb329f321190eca4f0b049b4af\u0027:\n  Fix writing text version of styleable IDs.\n"
    },
    {
      "commit": "253f76357dc9acdb329f321190eca4f0b049b4af",
      "tree": "d791e452faaeb3ae4e13029ee29a6fbf7fad1690",
      "parents": [
        "b079d1f28089ad4de05162b7df0ace90bc40a5f3",
        "fb34490f4dca7aac623fb9a80fe9a2371107a786"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 10:44:22 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 26 10:44:22 2012 -0700"
      },
      "message": "am fb34490f: Merge \"Fix writing text version of styleable IDs.\"\n\n* commit \u0027fb34490f4dca7aac623fb9a80fe9a2371107a786\u0027:\n  Fix writing text version of styleable IDs.\n"
    },
    {
      "commit": "d16047434bca24b2811de7ea9d22de6ee0f87f79",
      "tree": "ef2b9d05669191e2b2a5f82e8e5b3063670c2dd2",
      "parents": [
        "5e8cbdc0bd6dfc51e6b54db1d5fd61347336d862"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 10:11:54 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 10:11:54 2012 -0700"
      },
      "message": "Fix writing text version of styleable IDs.\n\nChange-Id: I3f2614689a597de3fd46628c020cf649a808c82f\n"
    },
    {
      "commit": "a41d5db2350108c1d2eceb83b677faed6b7893a8",
      "tree": "2d22f9db5827180b3864273395a96b87aa43ab45",
      "parents": [
        "9ff22e41d05aa66bede1e72767d67dcc2f2d500e",
        "79c95c3b50ff332f9c92430fd10a15eb648a0b02"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 17 12:08:36 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 12:08:36 2012 -0700"
      },
      "message": "am 79c95c3b: am 5de96035: am 31820a35: Merge \"Add --output-text-symbols option to aapt.\"\n\n* commit \u002779c95c3b50ff332f9c92430fd10a15eb648a0b02\u0027:\n  Add --output-text-symbols option to aapt.\n"
    },
    {
      "commit": "9ff22e41d05aa66bede1e72767d67dcc2f2d500e",
      "tree": "40a0c5875283ac28e0e93ffdb6bdcb92aae8696b",
      "parents": [
        "178af5948d71c841278081c712506f7a7fca34b9",
        "8a67598eb780560b7efe4e1d9944c7cbcf83bbb1"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 17 12:08:29 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 12:08:29 2012 -0700"
      },
      "message": "am 8a67598e: am cc9747ed: am d7252571: Merge \"Add --error-on-failed-insert option to aapt.\"\n\n* commit \u00278a67598eb780560b7efe4e1d9944c7cbcf83bbb1\u0027:\n  Add --error-on-failed-insert option to aapt.\n"
    },
    {
      "commit": "5de9603529ee01a416b5fa31074197565fde4482",
      "tree": "f610ba56bf685b21bbc81bbf4d6ed8b2d5640ef7",
      "parents": [
        "cc9747ed45302956a3ec9dd21f7b950b837dbfdd",
        "31820a35b2cf864a8dcb71d43e6fd21d54f49a2d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 17 12:03:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 12:03:19 2012 -0700"
      },
      "message": "am 31820a35: Merge \"Add --output-text-symbols option to aapt.\"\n\n* commit \u002731820a35b2cf864a8dcb71d43e6fd21d54f49a2d\u0027:\n  Add --output-text-symbols option to aapt.\n"
    },
    {
      "commit": "cc9747ed45302956a3ec9dd21f7b950b837dbfdd",
      "tree": "4f5bf98606f87858b78a95bd8dd09e9e6a797716",
      "parents": [
        "f5437ee86a34751fa6d441b95282feb315e19eb6",
        "d72525718ea7ef3e1f97cf557365b143c8919a5b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 17 12:03:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 12:03:12 2012 -0700"
      },
      "message": "am d7252571: Merge \"Add --error-on-failed-insert option to aapt.\"\n\n* commit \u0027d72525718ea7ef3e1f97cf557365b143c8919a5b\u0027:\n  Add --error-on-failed-insert option to aapt.\n"
    },
    {
      "commit": "f5de650ff1e161ea135c828e43515895343d2c0f",
      "tree": "4398a8d071f3322512e6c4d5f153fb9564865d6a",
      "parents": [
        "7714a2429b192c88e134ff67b969121bbaeb5457"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 14:45:22 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 18:19:00 2012 -0700"
      },
      "message": "Add --output-text-symbols option to aapt.\n\nLibrary projects in the SDK are built using --non-constant-id\nto generate a temporary R.java class.\nWhen the library is packaged with the application to generate an\napk, the R class is recreated with the proper IDs due to all the\nresources coming from the app and all the libraries.\n\nHowever for large apps with many libraries (each with their own\nR class in their package), this means a lot of unnecessary IDs:\nall R classes contains all the IDs including for resources from\nby projects they don\u0027t have access through the dependency graph.\n\nFor really large apps (X,000 resources), with lots of libraries\n(10+), this can generate tens of thousands of resources, which\ncan trigger dalvik\u0027s limit of 65K fields and methods per dex\nfiles.\n\nThis changes lets aapt generate not only the R class but a simple\ntext file containing the list of all those IDs so that it is\neasier to parse back. The SDK build system will not ask aapt\nto generate the R class of the libraries (through the\n--extra-packages option), instead it will then read this\nfile to know what IDs are needed for each library and generate\na much smaller R class for each library (using the same text\nfile output from compiling all the resources to get the final\ninteger value).\n\nChange-Id: I4db959fec372cf3ead9950e4b2b82fa1ae7eed2d\n"
    },
    {
      "commit": "7714a2429b192c88e134ff67b969121bbaeb5457",
      "tree": "13d8c0eeb0d9eee815e3444fd236924306861fe3",
      "parents": [
        "2415841c370d855d7f3a3e6a537e641c69a57097"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 05 17:49:21 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 18:17:22 2012 -0700"
      },
      "message": "Add --error-on-failed-insert option to aapt.\n\nThe new SDK build system give the ability to insert\nversionCode/Name and min/targetSdkVersion in the manifest\nbut aapt won\u0027t replace those if they already exist.\n\nThe main problem is that aapt doesn\u0027t actually fail when\nit doesn\u0027t replace them, making the output not what the\ndeveloper wanted.\n\nThis patch set adds an option to aapt to make it return\nan error if the insert failed because the attribute\nalready existed.\n\nChange-Id: I8938ec1238da407a8562c974e9598db39001ffd9\n"
    },
    {
      "commit": "e3e5349874fd1534cafe6f8c1cd28bf4f53181c3",
      "tree": "c04417c39b8415c08dc573d87bef0abd1f9fd462",
      "parents": [
        "be3267aad1faacc0ee767e746018e7b795a9b151",
        "61d09810a7b478810adc15af2495136255377e25"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 09 16:13:11 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 09 16:13:11 2012 -0700"
      },
      "message": "am 61d09810: am 3150feef: am bfe1ab82: Merge \"Fix aapt to get expat header files from the approved location.\"\n\n* commit \u002761d09810a7b478810adc15af2495136255377e25\u0027:\n  Fix aapt to get expat header files from the approved location.\n"
    },
    {
      "commit": "3150feef0b27ad34370904eb12875805f6c84e8a",
      "tree": "3ee1c94081aad597863e2b624fc3cc87efe403b6",
      "parents": [
        "3f3ce8adc7a4fcb5ec23a317c8b5063b61ac15a2",
        "bfe1ab825731d365fef169deab646d7ceeafc998"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 09 16:09:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 09 16:09:15 2012 -0700"
      },
      "message": "am bfe1ab82: Merge \"Fix aapt to get expat header files from the approved location.\"\n\n* commit \u0027bfe1ab825731d365fef169deab646d7ceeafc998\u0027:\n  Fix aapt to get expat header files from the approved location.\n"
    },
    {
      "commit": "ee15e1547531919effd77fa546daffaef94691a4",
      "tree": "c1d9284ef63cfb465dfab4151151a06a9c8bea40",
      "parents": [
        "bb60bc26020f3aabc50aa93ad9bf812af7f48f9c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 09 14:45:32 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 09 14:45:32 2012 -0700"
      },
      "message": "Fix aapt to get expat header files from the approved location.\n\nChange-Id: Ic7c796e048cfe98ee355c18b3708fee5ea716e2e\n"
    },
    {
      "commit": "8a802dbdabdfd27692c2e38b2c3adafe95566106",
      "tree": "7b933dc6d1dcfb6cd4a7d0a349ce642641712c07",
      "parents": [
        "18e876806718e28edaa3cd9bb0262a9b400bc82b"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Sep 05 13:12:02 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Sep 06 11:13:24 2012 -0700"
      },
      "message": "Use \"ldrtl\" and \"ldltr\" config qualifiers for RTL / LTR resources\n\n- we cannot use \"rtl\" / \"ltr\" qualifiers as they can conflict with ISO-639 Alpha-3\ncodespace which uses 3 letters for identifying a language code (and could use either\n\"rtl\" or \"ltr\" strings for defining a language in the future).\n\n- we are using instead \"ldrtl\" for RTL and \"ldltr\" for LTR resources. Those qualifiers\nare defined by more than 3 chars and outside of what is defined into ISO-639. They\nare also more understandable as \"ld\" prefix is for \"layoutdirection\"\n\nChange-Id: Id43e948103707e09bef63ebd54ac1779dde58e72\n"
    },
    {
      "commit": "5f7979993979466c79ab4f38d83c6f2aca361662",
      "tree": "90c8b098b3c9a53a90c039641b0b7ba379d6b4eb",
      "parents": [
        "5e8e41e41aecd2a4951659a1f3507f3371e0cc47"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Jun 15 20:16:41 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 23 14:55:33 2012 -0700"
      },
      "message": "Add support for \"-rtl\" in resources\n\n- fix bug #7035019 Need to have \"-rtl\" support for Resource\n\nChange-Id: Ic82145c2ac672729d8a6c695a5f343276a1a0a2c\n"
    }
  ],
  "next": "c1c55afb474dd85a6205bc8ab94065f3ac38aa77"
}
