)]}'
{
  "log": [
    {
      "commit": "6fb2c9718cde124f10edfbf45893b5a0cd537e11",
      "tree": "474928936daf5857d1cc341861b1577c107a28ba",
      "parents": [
        "f6764fb7f7a26e202b1ebb861e095979b0f9560a"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Wed Aug 02 14:40:12 2017 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Wed Aug 02 14:49:30 2017 -0700"
      },
      "message": "Bit: Don\u0027t ignore errors and crashes\n\nBit used to only see success results and failures (\u003d\u003d assertion failures?),\nand didn\u0027t see \"errors\" (other exceptions) and test process crashes.\n\nFixed it.\n\nNow it also returns an error status code if there was a test failure.\n\nBug 64292779\nTest: manual\n\nChange-Id: Iaba93910d32abfc615ae595746a0e9be1108583a\n"
    },
    {
      "commit": "18dc03a9fd87b544eef9ef701f676a7c5306594c",
      "tree": "643a4edae66997f2f3e7d554f205bb6db26eb07b",
      "parents": [
        "7ceb8eff19f8f01f5a6fa1d1a6fe8f094d42d9da"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 24 18:19:36 2017 -0700"
      },
      "committer": {
        "name": "Andrew Solovay",
        "email": "asolovay@google.com",
        "time": "Thu Jul 27 17:22:09 2017 -0700"
      },
      "message": "Cherry-pick from master: AAPT2: Fix JavaDoc first sentence extraction.\n\nThe old algorithm for detecting the first sentence of a JavaDoc comment\nlooked for the first occurence of \u0027.\u0027. This does not work when code or a\n{@link android.R.styleable} link is encountered in the first sentence.\n\nSwitch to checking for whitespace characters after the \u0027.\u0027 character.\n\nBug: 62900335\nTest: make aapt2_tests , make ds-docs\nOriginal change-Id: I8238f6a6304c9c2f92e2e576ca8962a59c2b20ea\n\nChange-Id: Ie272d0d793d157f2a30f3ead20b2b53976661d33\n"
    },
    {
      "commit": "6d626c24e3a0f2ee41cbb0abed77c162dafedacb",
      "tree": "de86401967521f3dcca14cb2aecc2cecdf5960f0",
      "parents": [
        "bd77b8e920c72fc8ba922747a543cb1d55a67afa",
        "7beabc264b371be485b136319d54e3cfac75dc41"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Thu Jul 20 03:20:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 20 03:20:22 2017 +0000"
      },
      "message": "Merge \"Let\u0027s get a constant for O_MR1.\""
    },
    {
      "commit": "7beabc264b371be485b136319d54e3cfac75dc41",
      "tree": "29ae2658f732033538f1a1ec2ec86749d5dff599",
      "parents": [
        "1d47c55407f539d7d57ed16bd088de0a79a6ad82"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 19 13:57:35 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Thu Jul 20 03:19:33 2017 +0000"
      },
      "message": "Let\u0027s get a constant for O_MR1.\n\nTest: none\nExempt-From-Owner-Approval: HULK SMASH!\nChange-Id: I440ebae4d0891d9044bbbfb5beaaaa98639aea98\n"
    },
    {
      "commit": "9f0e7f1dbade4b35b85e23954fa2b7c31d5f2009",
      "tree": "96b29ed091ce96131997ea3814e46838c63efb77",
      "parents": [
        "91936a1d06641c26158bf074a135363082fd4213"
      ],
      "author": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Thu Jun 22 12:26:44 2017 -0700"
      },
      "committer": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Tue Jul 18 20:32:54 2017 +0000"
      },
      "message": "AAPT2: Parse artifact names from template.\n\nAdd a helper method to convert a templated artifact name to file name\nbased on the values present in an Artifact struct. The Artifact\nvalidates that all required template paramters are present.\n\nTest: Unit tests\nChange-Id: Id97ff606bb41c72a31c2d769104966be9cbca1a0\n"
    },
    {
      "commit": "bb94f32a0042c8e2ab3d6e0de1b693713d2a6eab",
      "tree": "db48ae6d8e3dd04f28fa5b17ff1c0efcf1cd36a6",
      "parents": [
        "f7f48b17cbdfffa130cdb8991a9c2b09f7659664"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jul 12 07:41:55 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jul 12 07:42:01 2017 -0700"
      },
      "message": "Revert \"AAPT2: Auto-version adaptive-icon XML\"\n\nThis reverts commit 5b7337f77cf036dda2c7218ccf22dedc774dcf76.\n\nBug: 63579299\nTest: none\nChange-Id: Ib617c4edfc16eeae3507b59b2debeae4f8bbf9a5\n"
    },
    {
      "commit": "f903d5f15ae03795a03c0e15935ffe1db8e870ae",
      "tree": "f502c097e79348de1580e4054f50c51a27534026",
      "parents": [
        "f490ae3e5961a8dfdbd779f0c764b7d44d9d1221"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 10 04:19:28 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 10 04:19:28 2017 -0700"
      },
      "message": "AAPT2: Bump version number to v2.18\n\nTest: none\nChange-Id: I6e3b4c95a7d7ba416ba368e5b19782dbffa04fd8\n"
    },
    {
      "commit": "41d8ef907af21f0001c458fb235d40a77e357e0b",
      "tree": "5664b381b49ab4de031438910f403484f8ae0fe4",
      "parents": [
        "b10b75a1cf6a5f8582c7778e873c5157ea5d1c53",
        "164e7967b1f47586338805e2ebfdee02a5de85db"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 07 23:28:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 07 23:28:10 2017 +0000"
      },
      "message": "Merge \"Bit: support running all tests in a java package.\""
    },
    {
      "commit": "fba0cf2950a91726e475fb180090cc25bcb11a7a",
      "tree": "222ec9ccc4e1710e5a269edd2fffce60ca1692d7",
      "parents": [
        "66ea8400383d5737b996a136f3aead0965f7be3d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 29 17:53:36 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jul 07 13:23:55 2017 -0700"
      },
      "message": "AAPT2: Fix processing of quotes in XML\n\nWhen processing attributes in XML, quotes can\u0027t be used to mark a\nsection as whitespace preserving, so the assumption should be that the\nentire string is whitespace preserving, which makes quote characters\nliterals.\n\nBug: 62840718\nBug: 62840406\nTest: make aapt2_tests\nChange-Id: I4afff02148b5b8e78833abf1f323c2f5325d6155\n"
    },
    {
      "commit": "66ea8400383d5737b996a136f3aead0965f7be3d",
      "tree": "d4022a48829c1ea7535c71ef61b4c7dccbdca843",
      "parents": [
        "46307b1117de4069e60c9871c7647dfd065a45dc"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 28 11:44:11 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jul 07 13:23:55 2017 -0700"
      },
      "message": "AAPT2: Accept Java unicode identifiers\n\nTest: make aapt2_tests\nChange-Id: I75a0e52d43b1785001bfe120eea7484f7bb4682b\n"
    },
    {
      "commit": "10da015d0521a9f767b3669d37dd6e6ac167b6a4",
      "tree": "0d44a60f720af9ede87ef8474779838fdcd73693",
      "parents": [
        "fa66acfd097c4fbc1b55abe69f4e0d183587df02",
        "4fb6516a55604bfbae2e8b1411e1bdd27df1866f"
      ],
      "author": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Fri Jul 07 16:42:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 07 16:42:39 2017 +0000"
      },
      "message": "Merge \"Improved word break for BiDi pseudolocalizer.\""
    },
    {
      "commit": "164e7967b1f47586338805e2ebfdee02a5de85db",
      "tree": "afb8764ccc9de450be7b195c29e3423eb24910d4",
      "parents": [
        "bfce224cd95a7019c86cf9fb1241a0c2ebf7ec42"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Jul 06 16:20:11 2017 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Jul 06 16:21:26 2017 -0700"
      },
      "message": "Bit: support running all tests in a java package.\n\nIf a target name ends with a period, treat it as a package name\nand run with \"-e package\" instead of \"-e class\".\n\nTest: bit CtsProviderTestCases:android.provider.cts.contacts.\n\nChange-Id: I3a9a0cbef76f57c46c41bf168b7e94eebecaf671\n"
    },
    {
      "commit": "5c15e65825efcefe0e3ef0acaf7062d22c8bad23",
      "tree": "df8e7be6e3c5a70ac111a97b8ac8c79e1da0e991",
      "parents": [
        "0b513504e085cd270fb70ea29523d2ed6bbf15c3",
        "5f9dc424b35e4d3b03c5e7f261f421825410ea15"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 06 22:59:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 06 22:59:47 2017 +0000"
      },
      "message": "Merge \"Have bit grant permissions to installed APKs.\""
    },
    {
      "commit": "4fb6516a55604bfbae2e8b1411e1bdd27df1866f",
      "tree": "674a09589c4a845ca4bea340335e8eb683a3ee65",
      "parents": [
        "f02beb06daf49a2113881484579a36249f5a19a1"
      ],
      "author": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Thu Jul 06 15:23:51 2017 -0700"
      },
      "committer": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Thu Jul 06 15:41:47 2017 -0700"
      },
      "message": "Improved word break for BiDi pseudolocalizer.\n\nCharacted sequences \\n and \\t are now treated as word separators\nby BiDi pseudolocalizer. This solves issues when text rendering\nengine breaks a line in the middle of a text chunk marked with\nRLM+RLO and PDF+RLM sequences.\n\nBug:34064580\nChange-Id: I52e6018785fae25479fa167440f24c534b0e3253\nFixes:34064580\nTest: make aapt2_tests\nTest: Run aapt2_tests binary\n"
    },
    {
      "commit": "afcd59b4438064726790df4828efe9cc298f5451",
      "tree": "ac3f1eacb4e996fbcfe31e88353ac03ec7ef0636",
      "parents": [
        "093062301f3d1a3b408403128faad0bd0653eccb",
        "549e437e14f3b92f02bd3abc7d1cd68387132ce1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jul 06 22:37:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 06 22:37:45 2017 +0000"
      },
      "message": "Merge \"AAPT2: Iterate over UTF-8 string by codepoints\""
    },
    {
      "commit": "dfbcd36afdae10519757a844e4f30aa1c65c5f23",
      "tree": "bd60d4d7a9acce16c12cf8711ec721650287f948",
      "parents": [
        "2fa4a346ecea162d3e694c2c53582f3cc31bcc68"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jul 06 11:47:17 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jul 06 11:47:17 2017 -0700"
      },
      "message": "Add adamlesinski@google.com as owner of AAPT2\n\nTest: none\nChange-Id: Ief971f7e85050164628d2e25bee888f035a93725\n"
    },
    {
      "commit": "5f9dc424b35e4d3b03c5e7f261f421825410ea15",
      "tree": "73568debc4699e2b78ea973e582727703aac8949",
      "parents": [
        "4f5adb9801e08f34731cfe22be3c197a5dd09ba4"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jul 06 12:13:42 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jul 06 12:15:21 2017 -0600"
      },
      "message": "Have bit grant permissions to installed APKs.\n\nOtherwise unit tests fail spectacularly when they don\u0027t get the\nruntime permissions that they expect.\n\nBug: 63391323\nTest: bit FrameworksServicesTests:com.android.server.NetworkPolicyManagerServiceTest\nChange-Id: I5307e0456865387ac14178268f543e2007b97096\n"
    },
    {
      "commit": "549e437e14f3b92f02bd3abc7d1cd68387132ce1",
      "tree": "b7f1e2089d81ad530b1e78914ad97bdedfeaa9c7",
      "parents": [
        "2fa4a346ecea162d3e694c2c53582f3cc31bcc68"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 27 18:39:07 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 29 18:17:35 2017 -0700"
      },
      "message": "AAPT2: Iterate over UTF-8 string by codepoints\n\nIterating over a UTF-8 string by codepoints ensures that\nunicode characters do not get sliced. Otherwise the resulting\nstring could contain malformed characters.\n\nBug: 62839202\nTest: make aapt2_tests\nChange-Id: Ia0c44fbceb7dcfa11e77a1a77011da0f5466e342\n"
    },
    {
      "commit": "5b7337f77cf036dda2c7218ccf22dedc774dcf76",
      "tree": "b7aab8df43eeff70759f84e45da95b507edfddcc",
      "parents": [
        "8276d0e1527ad08aae3ec39529b10477358a1dae"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jun 26 14:57:22 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 28 11:20:17 2017 -0700"
      },
      "message": "AAPT2: Auto-version adaptive-icon XML\n\nAuto version adaptive-icon XML to v26.\n\nThis change makes the logic for generating versioned resources\nsimpler by changing the comparison function of ResTable_config\nto evaluate the sdkVersion property last, making configurations\nthat differ only in sdkVersion next to each other in a sorted vector.\n\nBug: 62316340\nTest: manual (verified output of tools/aapt2/integration-tests/AppOne)\nChange-Id: I977d45821722a65d2135efb4693304eacc565c9a\n"
    },
    {
      "commit": "f762df257574231ffd08679a69e9cf62fe143dcd",
      "tree": "c4dfe1caec133b9893d0653feb7aaed49263e030",
      "parents": [
        "b2bf85b412c04ac7896b6133a5c562625bc5a8de"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jun 26 16:39:03 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 28 11:01:59 2017 -0700"
      },
      "message": "AAPT2: Emit more proguard keep rules for layouts and menus\n\n\u003cfragment\u003e tags in layouts use the class attribute to determine which\nFragment subclass to load, and fallback on android:name if class is not\nset.\n\nAAPT2 only emitted a proguard rule for the class attribute for \u003cfragment\u003e,\nwhen it should emit a proguard rule for the android:name attribute as\nwell.\n\nAAPT2 didn\u0027t handle menu XML, so support for actionViewClass,\nactionProviderClass and onClick is added.\n\nBug: 62216174\nTest: make aapt2_tests\nChange-Id: Ie8675c2bd899a5b51f3661eb0901ab8c9a16fd70\n"
    },
    {
      "commit": "87f1e0fd31585e0117715f451c379d25c5ef7cb8",
      "tree": "2d9164d349d9ac623d26da21c680e131336d7611",
      "parents": [
        "f3833d4ba05d47ee6b1a943b49a0769ea879cc8c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 27 16:21:58 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 28 10:27:06 2017 -0700"
      },
      "message": "AAPT2: Allow \u003ckey-sets\u003e tags in AndroidManifest.xml\n\nBug: 62839863\nTest: make aapt2_tests\nChange-Id: Ic38fadf3b204bf603f6770643735635cd1f1df7e\n"
    },
    {
      "commit": "0d81f701045ff24a2c6a39520629a1898d5f8b65",
      "tree": "3239380c90cfb67c12a77a9a6f1ba008638bb7fb",
      "parents": [
        "366d27d31e9341def03ba6eea310d6f56be69abd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 27 15:51:09 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 27 18:46:58 2017 -0700"
      },
      "message": "AAPT2: Honor --custom-package when writing Manifest.java\n\nBug: 62826426\nTest: manual\nChange-Id: I517ff5da2ef2a9147ddbfb13b074a1f60550f189\n"
    },
    {
      "commit": "8a3bffea4926aa691ea1fbc0e7b67ed954e83d2c",
      "tree": "fe30071c024754dba8b062afed96a21c68558c28",
      "parents": [
        "79385ec3b0b1a8753aefd2973273560f0461ff80"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 27 12:27:43 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 27 12:45:00 2017 -0700"
      },
      "message": "AAPT2: Fix issues with parsing integers + floats\n\nIf whitespace was present at the end of an integer or float, parsing\nwould fail.\n\nBug: 62902869\nTest: make aapt2_tests\nChange-Id: I6c54f25ad73913d8ea90969fca9de24f726deb96\n"
    },
    {
      "commit": "280be34fa6311de90dff6c595a147fd5a182223d",
      "tree": "0ecb9ab436f3c51f761e2a0da3997df51d130193",
      "parents": [
        "7cdccf9f2f5324346435d5d8bce44df69ed16c76"
      ],
      "author": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Wed Jun 21 15:20:15 2017 -0700"
      },
      "committer": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Wed Jun 21 16:13:02 2017 -0700"
      },
      "message": "AAPT2: Update the name of the configuration struct.\n\nMake the Configuration struct name less ambiguous. Also ran clang-format\non the change since some lines were too long and this resulted in a\nbigger diff than expected.\n\nTest: built manually\nTest: ran existing unit tests\nChange-Id: I85e78041fa78d913d47a26c85ad48b05bf935a6a\n"
    },
    {
      "commit": "5766943f558c8fccc714bb3d0a96af70816a5545",
      "tree": "fb4cf8d223e103b930e217432e8579675a02b356",
      "parents": [
        "c10f9d81f849b883eb72663bb62d344ce70a3e1e"
      ],
      "author": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Mon Jun 19 12:52:04 2017 -0700"
      },
      "committer": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Wed Jun 21 14:10:23 2017 -0700"
      },
      "message": "AAPT2: Split APK by ABI.\n\nAdded a FilterChain that can apply multiple filter steps to an APK file\nas it is being written to disk. The first filter applied is by ABI. If\na library in the APK does not match the filter it is skipped.\n\nAdded an AbiFilter that keeps files that are either not native libs or\nare for the set of wanted ABIs\n\nTest: ran unit tests locally\nTest: ran against an APK with ARM and x68 libs and diffed the results\n\nChange-Id: I3fb901d3de3513e85f2a2763a8e4487a28ed4881\n"
    },
    {
      "commit": "ea2945f416173c2837ad9e38305e9c6f3cf95a7a",
      "tree": "8049fd76cc45b385852402c3a6912cdb952f6cb0",
      "parents": [
        "0a5521016ec339109257cc890b7e1a05a6d5a26b",
        "b102727771b9ac3d28d4f9b0a4a54b98bd1af958"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 19 22:03:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 19 22:03:14 2017 +0000"
      },
      "message": "Merge \"AAPT2: Read config from disk\""
    },
    {
      "commit": "b102727771b9ac3d28d4f9b0a4a54b98bd1af958",
      "tree": "0a964992d176fcb03183d78376a85f66cf90d0d0",
      "parents": [
        "71d3509c2ff4ad304843b2c2f1851b24248c7d08"
      ],
      "author": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Wed Jun 14 09:10:28 2017 -0700"
      },
      "committer": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Mon Jun 19 12:49:48 2017 -0700"
      },
      "message": "AAPT2: Read config from disk\n\nImplement the todo left from last change to read the contents of the\nconfiguration file from disk. Since this is an operation that may fail\nthe API was changed to take return a Maybe to indicate errors reading\nthe file.\n\nTest: unit test for error condition\nTest: ran aapt2 optimize with the new code path wired in\n\nChange-Id: I93d532b4a57af9520231225eee4fc5f2b1a046b9\n"
    },
    {
      "commit": "b73f3974122d112c930383cdd3454b4e739ac3c0",
      "tree": "99e33cd59f8b2aac45b1797ce8bf498841fd0367",
      "parents": [
        "8c7999bdf80ef844cad84d10eca964987565bee1",
        "3124e7ca0f582c8d54a9b4cf560c25dfef77ac2a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 15 21:40:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 15 21:40:42 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix issue with enums and integer attributes\""
    },
    {
      "commit": "3124e7ca0f582c8d54a9b4cf560c25dfef77ac2a",
      "tree": "be1af462cdec9a4808a49901cfb87fbe47b32a24",
      "parents": [
        "52feccbf41fe58921e66686077cb5ab20b2b0b13"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 13 16:03:55 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 15 11:14:47 2017 -0700"
      },
      "message": "AAPT2: Fix issue with enums and integer attributes\n\nWhen an attribute had the format \"enum|integer\", and a max or min\nallowed value set, any value set for this attribute would have its\nenum symbol\u0027s value checked against the valid integer range.\n\nThis would lead to the following:\n\nandroid:numColumns\u003d\"autofit\"\n\nbeing interpreted as an integer value of -1, which violated the minimum\nexpected value for numColumns, which was 0.\n\nBug: 62358540\nTest: make aapt2_tests\nChange-Id: I3150410448a533d3595a08ac6b2966264db874d8\n"
    },
    {
      "commit": "9cac43b99561346fc121a73ca514d1541980ad1a",
      "tree": "809753de06175ec3c5b771be1fa9b811f2a8a8e2",
      "parents": [
        "6f813612e0827367e31ce1fff38393b345a0d897",
        "e38567480be67ac83a8f8f090704bb0d49e2eed2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 13 20:48:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 13 20:48:24 2017 +0000"
      },
      "message": "Merge \"AAPT2: Disable locale domination for deduping\""
    },
    {
      "commit": "6f813612e0827367e31ce1fff38393b345a0d897",
      "tree": "a996f5078f64e1c530c730a6d224335bebb098ff",
      "parents": [
        "6cd045754883a37694a1e9a6733dc89fc52aeb67",
        "93db63059ad5e9e1d59c8ce013559069d566ef4c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 13 20:46:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 13 20:46:53 2017 +0000"
      },
      "message": "Merge \"ASM Priority Boost Tool\""
    },
    {
      "commit": "e38567480be67ac83a8f8f090704bb0d49e2eed2",
      "tree": "1ee9f1c8840e44c0f1c1a88a3b4986bbc8aba8c6",
      "parents": [
        "52feccbf41fe58921e66686077cb5ab20b2b0b13"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jun 12 14:55:58 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 13 11:00:04 2017 -0700"
      },
      "message": "AAPT2: Disable locale domination for deduping\n\nLocale deduping isn\u0027t straightforward, as parenting rules\nchange between platform versions and the selection\npreference of a specific locale variant over the default\nconfiguration lead to incorrect results at runtime.\n\nBug: 62409213\nTest: make aapt2_tests\nChange-Id: Iec8f1cfba7ae43c847d163529891fdc15f3db826\n"
    },
    {
      "commit": "24acdf8a11a8bc7d17ddbf5204bf1725d8f5333d",
      "tree": "dfa29b0e2477415187db7665d2330e6ca9eea700",
      "parents": [
        "de3c5a25b6ac0d0db62c3a1862f1477b8723a855",
        "a45893a5c51cc26f1fd63ec1aa4c39f55911c85b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 13 00:00:41 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 13 00:00:48 2017 +0000"
      },
      "message": "Merge \"AAPT2: Clean up tests a bit\""
    },
    {
      "commit": "e7253252708587ad1d1170bdc1b45b6ef1fcb45f",
      "tree": "c95df3a586dc5fe6e2403834794b8933c7daf5b2",
      "parents": [
        "9f5812c74c068185ec006e8db0d85957bb70fbf3"
      ],
      "author": {
        "name": "yawanng",
        "email": "yawanng@google.com",
        "time": "Sat Jun 10 21:38:29 2017 -0700"
      },
      "committer": {
        "name": "yawanng",
        "email": "yawanng@google.com",
        "time": "Mon Jun 12 09:45:47 2017 -0700"
      },
      "message": "Revert work around clang-tidy segmentation fault.\n\nBug: 34740546\nTest: build with WITH_TIDY\u003d1 and\nWITH_TIDY_CHECKS\u003d\"*,-readability-*,-google-readability-*,-google-runtime-references\"\n\nChange-Id: Ie0885744bdf07d1a66792b61d8a49305162bcd71\n"
    },
    {
      "commit": "a45893a5c51cc26f1fd63ec1aa4c39f55911c85b",
      "tree": "7e54a8f6e5d328c642309b18c7dfffb083527ccc",
      "parents": [
        "594fda3161e492fb825d6bb47a8973344cc8e72e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 30 15:19:02 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 09 14:57:07 2017 -0700"
      },
      "message": "AAPT2: Clean up tests a bit\n\nSince the latest gtest has fixed support for\nexplicit bool operators, remvoe AAPT_ASSERT_* and AAPT_EXPECT_*.\n\nAlso switch to use NotNull() matchers, which are more legible.\n\nTest: make aapt2_tests\nChange-Id: Idce199ca9d567d70f7aae275fee15e04bb914c9e\n"
    },
    {
      "commit": "48a765945449c240b1aea0be40522a14b35a642e",
      "tree": "04d7800e0facee5cdea4df70bdcc01b02c5d6b44",
      "parents": [
        "4d7a29611e54d53284ca3168fdd924dd3ec6a6e6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 08 11:10:18 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 08 18:13:01 2017 +0000"
      },
      "message": "AAPT2: Mark version 2.17 and update readme\n\nTest: none\nChange-Id: I6429b1c3acbcbf2244a5a5c95bc48a5d66bdaebe\n"
    },
    {
      "commit": "93db63059ad5e9e1d59c8ce013559069d566ef4c",
      "tree": "23e032aef5479b8ddbbaf9e858e56cef3a137896",
      "parents": [
        "ceea8fdc8fb5c733f38a79a8869036d50ac813bc"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Fri May 12 17:31:13 2017 -0700"
      },
      "committer": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Wed Jun 07 14:22:22 2017 -0700"
      },
      "message": "ASM Priority Boost Tool\n\nThis tool is a replacement for the Jack plugin that allows injection\nof static method calls before lock enter and exit.\n\nA common use case would be to boost a thread\u0027s priority as soon as\nit acquires a heavily contented lock and resetting the priority upon\nrelease.\n\nThis tool is meant to be optionally invoked from /build/core/ rules\nduring the build process.\n\nTest: JUnit Tests / resulting image on a bullhead.\n\nChange-Id: If400414a0bf50f03768a1de2ebee42086a9d701f\n"
    },
    {
      "commit": "b9f0548341f98a64a87fa35ef5f58d1daf973ca7",
      "tree": "b18439dee3ec04c180e2934a0d5d6c574ee37be4",
      "parents": [
        "63c5c9462a0175143791d7a5491a67a1a645cab4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 02 16:32:37 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 06 20:02:38 2017 +0000"
      },
      "message": "AAPT2: Do not interpret %n as a format specifier in string resources\n\n%n is a special value marking a platform independent newline and is\nnot to be considered a format argument.\n\nBug: 37132275\nTest: make aapt2_tests\nChange-Id: I806521e44afe20004344dee9f18ecee6cc7086ea\n"
    },
    {
      "commit": "7a917a27ef1dae63e7747c9d00b4ff71b1a502e2",
      "tree": "ddf11d9444665c174c3cfd629117b4b3def42495",
      "parents": [
        "d034fec9cfd7521dc0edd315e7d8aef88496f9b3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 02 12:55:24 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 06 18:14:48 2017 +0000"
      },
      "message": "AAPT2: Allow \u003clayout\u003e in \u003cactivity\u003e tag in AndroidManifest.xml\n\nBug: 62189611\nTest: make AaptTestAppOne\nChange-Id: Ic090e4a002b24f2289f47dfba7439638e5848062\n"
    },
    {
      "commit": "bab4ef56d7803f3a50ccfaca2729509338fcbb23",
      "tree": "3d3c1ad103f88f6ca60c46fc31872dee40244b3e",
      "parents": [
        "d6fb3081d9ddd6384d7e764308e2967ce672d3e5"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 01 15:22:57 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 02 16:48:38 2017 -0700"
      },
      "message": "AAPT2: Allow undefined resources (placeholders)\n\nA resource defined like so:\n\n\u003citem type\u003d\"drawable\" name\u003d\"foo\" /\u003e\n\nshould be assigned the value @null.\n\nThe only exception is for \u003cstring\u003e resources, which are given the\nempty string value (since \u003cstring\u003e\u003c/string\u003e is ambiguous). The decision\nto use \"\" is based off the fact that old AAPT used to assign \"\" to all\nundefined resources, even non-string ones.\n\nBug: 38425050\nTest: make aapt2_tests\nChange-Id: Ib3e0f6f83d16ddd8b279c9fd44a07a37867b85e9\n"
    },
    {
      "commit": "127f10037bcaa445477c7690d66d68a22a05a6f2",
      "tree": "043dce2b00ba57143b75857316a7f80d64b0f988",
      "parents": [
        "fa5bfabd862f0b18a1023ab2434f684b05099361",
        "3c860ed41d2f1cb2b756558b186f6304d6e9b674"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 02 03:04:42 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 02 03:04:42 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow any value type for \u003citem\u003e without format attr\" into oc-dev am: 1ac325e4d5\nam: 3c860ed41d\n\nChange-Id: I44719ae4d742b518f59c9c9bbc226ec9773ce365\n"
    },
    {
      "commit": "3c860ed41d2f1cb2b756558b186f6304d6e9b674",
      "tree": "b35097c53b9da9dec5c6ea30a2ad9b4d68d4b96e",
      "parents": [
        "74ff0748ce6db59e01ca78aaf3877f46b95dfbc9",
        "1ac325e4d5d0e03271b4c67b56117d39bcdcfaeb"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 02 02:35:07 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 02 02:35:07 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow any value type for \u003citem\u003e without format attr\" into oc-dev\nam: 1ac325e4d5\n\nChange-Id: I1b1180f2b33a077b2c46a8466c58d83ed618576e\n"
    },
    {
      "commit": "e597d68d33c76c2b830f5497ed4ba74c5193a056",
      "tree": "699e25d86f8ed610ef1b1b640efb5b86c89d4289",
      "parents": [
        "ceb24e88cbb56aa63c990693a2d6ea35dce029f5"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 01 17:16:44 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 01 17:16:44 2017 -0700"
      },
      "message": "AAPT2: Allow any value type for \u003citem\u003e without format attr\n\nTO bring AAPT2 behavior in-line with AAPT, \u003citem\u003e has a default\nformat of \"any\", and only becomes restricted with an explicit format\nattribute.\n\nBug: 62260121\nTest: make aapt2_tests\nChange-Id: Ife416f520e6c2710bb30e3ba3f2d4463794bfa06\n"
    },
    {
      "commit": "95cad98ad547d5d52f6ece1dfe209072e124530b",
      "tree": "683335ed56ca890c4c2de950a7a4578d2fb744b6",
      "parents": [
        "1b1dd52631547970d79fcc2ca5f3c62a44f8b1ee",
        "74cdea34cd6dce8bf9b4adaa2cd7cb02330120d5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 01 07:20:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 01 07:20:59 2017 +0000"
      },
      "message": "Merge \"AAPT2: XML configuration file parser.\""
    },
    {
      "commit": "74cdea34cd6dce8bf9b4adaa2cd7cb02330120d5",
      "tree": "fb33d7640471c3e5164333e188970630757d6513",
      "parents": [
        "14c991cf97ec2505ff30d8fbb29f241a846feafe"
      ],
      "author": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Fri May 12 16:22:36 2017 -0700"
      },
      "committer": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Wed May 31 16:18:31 2017 -0700"
      },
      "message": "AAPT2: XML configuration file parser.\n\nThe XML file is parsed with the aapt::xml::XmlDom parser and actions are\nused for the elements we are interested in. This means that there are\ncases where a user could add aditional tags/elements to the document\nthat are technically invalid (acording to the schema) but are ignored by\nthe parser. This allows us to be more lenient which probably isn\u0027t a bad\nthing.\n\nDocuments have the namespace stripped before processing as the\nXmlActionExecutor ignores any elements with a namespace. The namespace\nis validated before being removed.\n\nThe test cases are all based off the previous example XML file.\n\nTest: Unit tests\n\nChange-Id: I86d7e0dc6347ace3eaa60c1842d59f3cd0d4f749\n"
    },
    {
      "commit": "7eded654549395e152ec8068c6dedf78c4f25e27",
      "tree": "ef03519aa32fa589238acc1b3e14885aea748bac",
      "parents": [
        "14c991cf97ec2505ff30d8fbb29f241a846feafe"
      ],
      "author": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Tue May 09 15:48:52 2017 -0700"
      },
      "committer": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Wed May 31 16:05:07 2017 -0700"
      },
      "message": "AAPT2: XML schema and an example configuraiton\n\nThe current iteration of the schema allows for both Split and Optimize\ncommands running off the same file. A split command is multiple optimize\ncommand, and an optimize is a split with only a single artifact. To\ncombine the two, a single file with one or more artifacts can be passed\nto either command. If multiple artifiacts are used for an optimize\ncommand, the required artifact can be specified on the command line. A\nconfiguration with only a single artifact can be used with either\ncommand to get the same result.\n\nChange-Id: Ie48eda6e2f9f8bf25d75ef7bcc3b3401a2d3e8eb\nBugs: 37847908\nTest: xmllint --noout --schema aapt2.xsd example/config.xml\n"
    },
    {
      "commit": "7a5b4068052a7cd0f79b2a21743699bf9d3a0c2a",
      "tree": "698d5370fa49f65743a05129c2def3f698c5c60c",
      "parents": [
        "eac0410e5d6df2d6d68af94e9f033cf27a5b6b6d",
        "ad227a8086bd282608a68aa133a338c11a3064b2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 21:26:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 31 21:26:17 2017 +0000"
      },
      "message": "Merge \"AAPT2: Update --no-version-vector list\" into oc-dev am: f296105e22\nam: ad227a8086\n\nChange-Id: Ie60160136d6bbca607ce98cd675ffed984b2debc\n"
    },
    {
      "commit": "eac0410e5d6df2d6d68af94e9f033cf27a5b6b6d",
      "tree": "8bb36bfc5bc707e9994cb1724c10791c988af280",
      "parents": [
        "a1a45998780ab10fc326c0b66255703db1247f47",
        "b5cdbdfcf889606bcc465e48277d6ff7f4c514c8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 21:23:46 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 31 21:23:46 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow merging of Style attributes from overlays\" into oc-dev am: f42c86660d\nam: b5cdbdfcf8\n\nChange-Id: Ifabd2f220f96f9dc4942c2cc65b24da6f2d90b13\n"
    },
    {
      "commit": "ad227a8086bd282608a68aa133a338c11a3064b2",
      "tree": "7a6ae7e1911b7ff1d069fa0daf591be0169e31d3",
      "parents": [
        "b5cdbdfcf889606bcc465e48277d6ff7f4c514c8",
        "f296105e22d3c191c014c64a3b8a19421e325267"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 21:15:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 31 21:15:32 2017 +0000"
      },
      "message": "Merge \"AAPT2: Update --no-version-vector list\" into oc-dev\nam: f296105e22\n\nChange-Id: I0cde63dfd73b50debdc56f549f7adb1318f05309\n"
    },
    {
      "commit": "b5cdbdfcf889606bcc465e48277d6ff7f4c514c8",
      "tree": "2d12f8979c0a0d906e5242365f2d34f392a6c60e",
      "parents": [
        "4e26aa36223afc649c599ce33ab52a4e61587a62",
        "f42c86660d15c50ff7431b89342e590bcc1bed37"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 21:12:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 31 21:12:58 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow merging of Style attributes from overlays\" into oc-dev\nam: f42c86660d\n\nChange-Id: I4a52a16fff3d544d8d7d63d8a482ba7e2111d01a\n"
    },
    {
      "commit": "f296105e22d3c191c014c64a3b8a19421e325267",
      "tree": "4844e3ef508a44e7fe5dba83793192b0de4ad167",
      "parents": [
        "f42c86660d15c50ff7431b89342e590bcc1bed37",
        "41ea44f63d78b03a7c323639f3b80364b65f5a13"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 31 20:48:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 31 20:49:02 2017 +0000"
      },
      "message": "Merge \"AAPT2: Update --no-version-vector list\" into oc-dev"
    },
    {
      "commit": "f42c86660d15c50ff7431b89342e590bcc1bed37",
      "tree": "ba24281263894153ec1d89b53e9ead0b0687b603",
      "parents": [
        "d8d9758363524f454cfa1b39a460e461005c84a3",
        "5924d8c9ab7bd8614e8bd99864903ce9d50f3bf7"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 20:48:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 31 20:48:06 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow merging of Style attributes from overlays\" into oc-dev"
    },
    {
      "commit": "b3419d76a69cc589981c48cf18fc4343e8f293af",
      "tree": "6c9e31c7c84e88206f214fffa8fa957b8fd2a35b",
      "parents": [
        "8051830544bb42579fb2a72c445fdf27ef39b664",
        "4e73123c5238000afed9c11ec1d2e52a8114c117"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed May 31 18:56:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 31 18:56:50 2017 +0000"
      },
      "message": "Merge changes from topic \u0027hw_bitmap\u0027 into oc-dev\nam: 4e73123c52\n\nChange-Id: Ic202387c7fddcf6cc87024812c112e5ce3a4ab7b\n"
    },
    {
      "commit": "4e73123c5238000afed9c11ec1d2e52a8114c117",
      "tree": "a7000197cde0f7b55bccefcccd7ff9dcfeb3a91d",
      "parents": [
        "42f81ee464960ff6398ddbcde9038157719b74ca",
        "aa7fa0135366b80d9bfdb7dffb6795b365a40607"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed May 31 18:46:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 31 18:46:59 2017 +0000"
      },
      "message": "Merge changes from topic \u0027hw_bitmap\u0027 into oc-dev\n\n* changes:\n  DO NOT MERGE Updating AnimationSpec and related internal APIs to use GraphicBuffer.\n  Update code to draw into hardware bitmaps.\n"
    },
    {
      "commit": "41ea44f63d78b03a7c323639f3b80364b65f5a13",
      "tree": "94cc92e0b26c9cfbc08c065a3a39a50ba669513d",
      "parents": [
        "bacaffa497de1877657f9cb3f59a82e3955f0f75"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 10:22:30 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 10:23:58 2017 -0700"
      },
      "message": "AAPT2: Update --no-version-vector list\n\nKeep in sync with AAPT. Since gradle is moving to use AAPT2\nby default, updates to AAPT will no longer be necessary and\nthis will be the authoritative list until a more programmatic\nsolution presents itself.\n\nBug: 62211148\nTest: manual\nChange-Id: Id9232c9fb730c50e4850887fa0f5da82574ca900\n"
    },
    {
      "commit": "5924d8c9ab7bd8614e8bd99864903ce9d50f3bf7",
      "tree": "f094afb0142ab4a81faff62f37be306ca0587c33",
      "parents": [
        "bacaffa497de1877657f9cb3f59a82e3955f0f75"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 30 15:15:58 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 10:09:06 2017 -0700"
      },
      "message": "AAPT2: Allow merging of Style attributes from overlays\n\nPreviously style overlays would completely override an existing style.\nTo be compatible with AAPT, styles now merge with the overlay, allowing\nthe overlay\u0027s attributes and parent to take precedence.\n\nBug: 38355988\nTest: make aapt2_tests\nChange-Id: Id25c7240050a43e6a4a177c6e3d51e048d0cceb5\n"
    },
    {
      "commit": "aa7fa0135366b80d9bfdb7dffb6795b365a40607",
      "tree": "6e8cbcfa1dfdae75284496bb23a9fb6a944fa805",
      "parents": [
        "910927671be8a32f06b1d51466a900d27a572ead"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed May 24 15:50:06 2017 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed May 31 16:23:24 2017 +0000"
      },
      "message": "DO NOT MERGE Updating AnimationSpec and related internal APIs to use GraphicBuffer.\n\n- This reduces the copy of the hardware bitmap when it is\n  parceled/unparceled.\n\nBug: 38507414\nBug: 62021436\nTest: Launch Overview to/from app, ensure that the header bar shows\nTest: go/wm-smoke\n\nChange-Id: I85a9a59a0a3699d1642158061d10fddef34393c3\nSigned-off-by: Winson Chung \u003cwinsonc@google.com\u003e\n"
    },
    {
      "commit": "49449579d200a4033fe9807edc47ddeb0fed580e",
      "tree": "a3eb9599518450cdceb1e53470f92f6669453cd8",
      "parents": [
        "8a9ea671f9847de1348b695ba3b49fd210810243",
        "7459bc49b043e0770b6bda090b2b2e6a6326e2ab"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 31 01:28:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 31 01:29:01 2017 +0000"
      },
      "message": "Merge \"Create fonts.xml module for adding fonts.xml to system/etc\""
    },
    {
      "commit": "7459bc49b043e0770b6bda090b2b2e6a6326e2ab",
      "tree": "dd379231c6d98d6b4bee36be58866595ea61ba6c",
      "parents": [
        "f9e9fa440a8e684ca0b10e591927e1019c371e71"
      ],
      "author": {
        "name": "Andrew Sapperstein",
        "email": "asapperstein@google.com",
        "time": "Thu May 18 16:37:22 2017 -0700"
      },
      "committer": {
        "name": "Andrew Sapperstein",
        "email": "asapperstein@google.com",
        "time": "Tue May 30 16:49:14 2017 -0700"
      },
      "message": "Create fonts.xml module for adding fonts.xml to system/etc\n\nPreviously, we used PRODUCT_COPY_FILES. However, that does not allow\noverriding the file to use a different one on a per-device basis.\nThis change migrates the logic to using a BUILD_PREBUILT module\ncalled fonts.xml.\nTo add additional fonts, the add_additional_fonts.py script has been\nadded. If ADDITIONAL_FONTS_FILE is defined, add_additional_fonts.py\nis run and generates a new version of fonts.xml that contains the\ncontent of ADDITIONAL_FONTS_FILE added where\n\"\u003c!-- fallback fonts --\u003e\" is added.\n\nBug: 36855735\nBug: 37997769\nTest: manual. built multiple devices and verified that the correct\nversions of fonts.xml were showing.\n\nChange-Id: I8308f0cb3068274bca5ebd25a38cc023babbd69d\n"
    },
    {
      "commit": "ab7d501ad8257120edffbee266c353b5ab681a70",
      "tree": "567b22ff91d9ecbbb176dbe2c54c00a1f59681eb",
      "parents": [
        "b95db872c80df107b0d82b25338ac7243fff5b60",
        "ce1e415d558fe1067ca55f24ff4af9598f78154d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 30 21:05:22 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 30 21:05:22 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix \u003cadd-resource\u003e tag for overlays\" into oc-dev am: 8255ced3f5\nam: ce1e415d55\n\nChange-Id: I13ae82041b4b94a0226aa4506b59f8bbcce971be\n"
    },
    {
      "commit": "ce1e415d558fe1067ca55f24ff4af9598f78154d",
      "tree": "2cf711ce1c410e212eab766988ccf618f32ca4da",
      "parents": [
        "4d476366bec9a2fd87692b9c4480ca86c9548ec4",
        "8255ced3f5a2bff41b78e839d2d89d815a0bb3dd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 30 20:53:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 30 20:53:38 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix \u003cadd-resource\u003e tag for overlays\" into oc-dev\nam: 8255ced3f5\n\nChange-Id: Icc420eea48a8379723c0bc84a5f30c03ac2a2492\n"
    },
    {
      "commit": "2e0283a717a09085479e729f36b4fffea716e44a",
      "tree": "6b67ce74dba66c76babb9b50a93f404eb153c992",
      "parents": [
        "1bd58ef4b1563bf02e6051b6468ddc9bac10866c",
        "63d4d0d3580fc0e4d6ae1543b8ae1b186b8119de"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 30 20:05:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 30 20:06:02 2017 +0000"
      },
      "message": "Merge \"Check CJK punctuation in early non-CJK fonts\""
    },
    {
      "commit": "e3d684a86a15f5af7439a77e1e38ff8a9e8a7652",
      "tree": "133d5613166769c9a2220fb9dbcbdb26ff0ab615",
      "parents": [
        "cea348290fbee66508b3a055e4b9ade879d227e0",
        "c69611fd869d0ccade18fef1bb0e2fd18a534b27"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 30 13:58:24 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 30 13:58:24 2017 +0000"
      },
      "message": "Merge \"AAPT2: Follow symlinks when compiling\" into oc-dev am: 6ea61f9c6d\nam: c69611fd86\n\nChange-Id: Idd8ebb98c04fcfd061c36c2e5dcd678d88c5a267\n"
    },
    {
      "commit": "c69611fd869d0ccade18fef1bb0e2fd18a534b27",
      "tree": "aa02e9782c50d4a625bef6834c23a74e300f5c2d",
      "parents": [
        "aa7e6a0d2b7518db75f3c67c74ece46f705e01c0",
        "6ea61f9c6db521a73d7b90dc2c670b93f328128b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat May 27 01:51:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat May 27 01:51:55 2017 +0000"
      },
      "message": "Merge \"AAPT2: Follow symlinks when compiling\" into oc-dev\nam: 6ea61f9c6d\n\nChange-Id: I18dc95b8adf503e0bf72e5b48036945dc95312de\n"
    },
    {
      "commit": "4488f1c74a0f7df09f2b201f7caa228d729e8389",
      "tree": "84b28ff7c770f906f0a58cf280ec28ecc3a58f68",
      "parents": [
        "2354b568379fe31ba4e774f7a92d4c685a60a2ab"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 26 17:33:38 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 26 17:38:34 2017 -0700"
      },
      "message": "AAPT2: Fix \u003cadd-resource\u003e tag for overlays\n\nBug: 38355988\nTest: make aapt2_tests\nChange-Id: Iea8887f55f8ceb2c15bd963405fd132916173c0c\n"
    },
    {
      "commit": "2354b568379fe31ba4e774f7a92d4c685a60a2ab",
      "tree": "585bb0c60c38428e2328beb330fd2fc79e11e7d2",
      "parents": [
        "bacaffa497de1877657f9cb3f59a82e3955f0f75"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 26 16:31:38 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 26 16:56:34 2017 -0700"
      },
      "message": "AAPT2: Follow symlinks when compiling\n\nBug: 62144459\nTest: make AaptSymlinkTest\nChange-Id: Idb3ab1ece17c52bb4fd174ec4c08a9e173289e55\n"
    },
    {
      "commit": "06169ed6b34b10fd49ab2633ac32e1eb095f22a1",
      "tree": "b32b34f290a2da4c9b858e3e90a80a06ef13dcd8",
      "parents": [
        "a2b48381fa9fc340d082c4efaa99fc556e9f5384",
        "138d2a65b383afefff62a13b34ad34b37700be1a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 26 18:55:01 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 26 18:55:01 2017 +0000"
      },
      "message": "Merge \"AAPT2: Implement attribute compat versioning\" into oc-dev am: e229113d46\nam: 138d2a65b3\n\nChange-Id: Ie3502e99aefa46ee9fe62a0e821e55cb160b7142\n"
    },
    {
      "commit": "138d2a65b383afefff62a13b34ad34b37700be1a",
      "tree": "2ec3cd9d7ff6a852d209b8229cf42497c6242614",
      "parents": [
        "e76b15c830537420b568345e819ce57226e33866",
        "e229113d46a24e339e2aab538ab9f42d45650283"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 26 18:49:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 26 18:49:11 2017 +0000"
      },
      "message": "Merge \"AAPT2: Implement attribute compat versioning\" into oc-dev\nam: e229113d46\n\nChange-Id: I0200771f675cdfa69c458c374d3c16b0d91c5756\n"
    },
    {
      "commit": "c744ae8aca97edfb2422598ea620e8219449fa9b",
      "tree": "4e7c29d6b47c464dd5aa0af204d86a7340b0084f",
      "parents": [
        "0418b72fd2c91f32c42e3a406df2a866888fc766"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 17 19:28:38 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 24 15:14:29 2017 -0700"
      },
      "message": "AAPT2: Implement attribute compat versioning\n\nThis change defines some hardcoded rules to degrade\nattributes in newer SDKs to specific older attributes.\n\nAn attribute with a degrade rule will generate a new XML for the API\nin which the attribute resulting from the degradation was introduced.\n\nSince API 22 (Lollipop MR1), attributes are correctly ignored and do\nnot need to be versioned. In XML files defined for APIs 22+, the\noriginal and degraded attributes coexist in the same XML file.\n\nOne such example is paddingHorizontal, introduced in API 26.\npaddingHorizontal degrades to paddingLeft and paddingRight, which\nwere both introduced in API 1.\n\nBug: 35763493\nTest: make aapt2_tests\nChange-Id: I4aa8755a9ee2c0cc5afdc55c3d30093fd3a47f3d\n"
    },
    {
      "commit": "60d9c2fd55ef8e64ab3f39980b78389cd1317ee5",
      "tree": "7e255367c0ce3066bda0f4ef1fe32c23fe3fe382",
      "parents": [
        "80bf2641c4450eff7cc08aad1467efc401d62d43"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 17 16:07:45 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 23 19:57:33 2017 +0000"
      },
      "message": "AAPT2: improve some error messages\n\nTest: manual\nChange-Id: I11c96f8c825ffd43b7f68cb24f2c0746d75845f5\n"
    },
    {
      "commit": "63d4d0d3580fc0e4d6ae1543b8ae1b186b8119de",
      "tree": "24c91b9d44e6b6920d38cb0d45b84cfb20a48b3c",
      "parents": [
        "7ed8a5796465bb87d03bf81e5882d31cfb16d21d"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu May 18 18:38:36 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu May 18 18:38:36 2017 -0700"
      },
      "message": "Check CJK punctuation in early non-CJK fonts\n\nAdded tests check that CJK punctuation marks do not appear in\nnon-CJK fonts that appear earlier than CJK fonts.\n\nThis should prevent bugs like those fixed by\nIc2cbc79cecf9539ace8a432f373685eeff81e106 and\nIeeb4c04ca785e07a5db94006a6da31ad040b7e7a to appear again.\n\nChange-Id: I622dccd2a619b2366987a81d1c7f8f49334f5638\nFixes: 38182099\nBug: 19355391\nTest: make -j fontchain_lint\n"
    },
    {
      "commit": "ed52cefd94c9e29b9fa8609de0d9daf6c5a3b826",
      "tree": "b3218a0d122f42edffaf1a530856853a99bd130e",
      "parents": [
        "265c183e7087899e26545d5486414242282e750f",
        "0196460f27df5cc9e20c1530a79fa3c784866a9d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 18 17:56:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 18 17:56:15 2017 +0000"
      },
      "message": "Merge \"AAPT2: Ignore trailing data after IEND chunk in PNG\" into oc-dev am: 2d885e942d\nam: 0196460f27\n\nChange-Id: I8bff9b440b5a1f75d75e3601b654aa8825cf9523\n"
    },
    {
      "commit": "0196460f27df5cc9e20c1530a79fa3c784866a9d",
      "tree": "e6f34c8618640dce9b619aa95698be897e66358c",
      "parents": [
        "8d7692c8cf62d9d2843e117f83682fdb03a4f3f2",
        "2d885e942d27e838947948532ed6c2657c4da90f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 18 17:42:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 18 17:42:44 2017 +0000"
      },
      "message": "Merge \"AAPT2: Ignore trailing data after IEND chunk in PNG\" into oc-dev\nam: 2d885e942d\n\nChange-Id: Ic1c24dd55a4d6258533e57cea957a775e03013df\n"
    },
    {
      "commit": "2d885e942d27e838947948532ed6c2657c4da90f",
      "tree": "13af1c409208ec37565a9f9aa7f00e907138b948",
      "parents": [
        "13bd634262d4f85adda936ad3872a4485d85001e",
        "cc73e990e5381adfa605ccacad431231d9269893"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 18 17:30:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 18 17:30:26 2017 +0000"
      },
      "message": "Merge \"AAPT2: Ignore trailing data after IEND chunk in PNG\" into oc-dev"
    },
    {
      "commit": "954107839776cb3cfb6535fcb16a0541715816fd",
      "tree": "42a84668bb4c6cea85cbc98d5e2ac94cd32f4dac",
      "parents": [
        "9bc3840b191374c49387d684f32c59e938701ce9",
        "e768ad3708367f51a6a249ebe31bee48e3611b32"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 17 23:22:27 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 17 23:22:27 2017 +0000"
      },
      "message": "Merge \"AAPT2: Respect format attr in \u003carray\u003e resource\" into oc-dev am: dc6da8b4df\nam: e768ad3708\n\nChange-Id: Idc3e83275630f73b5859a86e5101afa982241cbd\n"
    },
    {
      "commit": "e768ad3708367f51a6a249ebe31bee48e3611b32",
      "tree": "1790a2522a7be3daf4ac5cc674040c4c92332327",
      "parents": [
        "75b7449b5687f91d9dffb50999b07c715826a18e",
        "dc6da8b4df3502164c234fe95c141d1a93684419"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 17 23:11:04 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 17 23:11:04 2017 +0000"
      },
      "message": "Merge \"AAPT2: Respect format attr in \u003carray\u003e resource\" into oc-dev\nam: dc6da8b4df\n\nChange-Id: Ic7aa094d3d663d98fa4bc20eaf436f1f453da5d7\n"
    },
    {
      "commit": "dc6da8b4df3502164c234fe95c141d1a93684419",
      "tree": "22d22a3b68b3a107fbd6a49e914b236e67c33ae9",
      "parents": [
        "1daffb7aac8f5947e1b249a172c5cfa04ca2013a",
        "d5fd76a2ff78400505ade936fc36e707d69ecf72"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 17 22:52:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 17 22:52:25 2017 +0000"
      },
      "message": "Merge \"AAPT2: Respect format attr in \u003carray\u003e resource\" into oc-dev"
    },
    {
      "commit": "6ff052a55680e4f30a8fda809d40a677ec1acf9d",
      "tree": "b0c16e19b2e9534e4b42135c0575dfbbc071e3a0",
      "parents": [
        "d8f738c4a1350e5c0a61df452bd18debe3c49b36",
        "9d6a0d73e6e754207c11958a78741ef16c5cdbb7"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 17 20:02:29 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 17 20:02:29 2017 +0000"
      },
      "message": "Merge \"AAPT2: Update locale script filtering logic\" into oc-dev am: 3cd6e0bee5\nam: 9d6a0d73e6\n\nChange-Id: I0275456778a39ebf3627f0aa848065e8fc9e0db2\n"
    },
    {
      "commit": "9d6a0d73e6e754207c11958a78741ef16c5cdbb7",
      "tree": "d4b228173c7975d743cb51208a51223f6e9c7a3f",
      "parents": [
        "1539f47e442aaed0d6e7eedafe171814cf9f5f5d",
        "3cd6e0bee5dc23c23fc44020eb14c632ec459dc3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 17 19:28:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 17 19:28:43 2017 +0000"
      },
      "message": "Merge \"AAPT2: Update locale script filtering logic\" into oc-dev\nam: 3cd6e0bee5\n\nChange-Id: Ie5377066de50d828f9f0a183c9dab4ee41f433eb\n"
    },
    {
      "commit": "13308bcdf625e0ee0f12c66cb86323317c99ac58",
      "tree": "e19f14d557e60a7f45e126c8876322a5057f53d5",
      "parents": [
        "4b2cecbb53aaa74c506ea0b318ede05f84756843"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 16 15:26:54 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 16 15:28:36 2017 -0700"
      },
      "message": "AAPT2: Update locale script filtering logic\n\nAAPT got an update to its locale script filtering logic that\ndealt with enabling the removal of specific locales like\nb+sr+Latn. Update AAPT2 to do the same.\n\nBug: 28055669\nBug: 29412034\nTest: aapt2_tests\nChange-Id: I3315c0814796cff05dfa1032d66d0306fe2b12bc\n"
    },
    {
      "commit": "d5fd76a2ff78400505ade936fc36e707d69ecf72",
      "tree": "155ab260deffffbe41c40bd5185bd1db462a4115",
      "parents": [
        "4b2cecbb53aaa74c506ea0b318ede05f84756843"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 16 12:18:08 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 16 12:18:53 2017 -0700"
      },
      "message": "AAPT2: Respect format attr in \u003carray\u003e resource\n\nBug: 38152130\nTest: make aapt2_tests\nChange-Id: I84f352afb1a8fd2f329354f789aaa36c5ef88e47\n"
    },
    {
      "commit": "cc73e990e5381adfa605ccacad431231d9269893",
      "tree": "854ce10f48409dccf1b7163b71a6a39549fa43cf",
      "parents": [
        "33532e020873e580c421342e38b2352b836d30d4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 12 18:16:44 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 15 13:07:32 2017 -0700"
      },
      "message": "AAPT2: Ignore trailing data after IEND chunk in PNG\n\nlibpng seems to do the same, so our chunk filter should not care what\ncomes after.\n\nBug: 38169876\nTest: manual\nChange-Id: I020ddfe29ac3eb4d5ef9ace5611c6f6497de443d\n"
    },
    {
      "commit": "f6d33e57c28fb8ff7cc58501ae4d1f014adb0603",
      "tree": "3bcb6ece8c1465a1c3e580297860a32850254fac",
      "parents": [
        "60a640740e8bff936c3667c23585dd2815d53dd4",
        "25b63c7bb8825d91514157884ea7c3919d817590"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat May 13 00:16:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat May 13 00:16:00 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow \u003cuses-permission-sdk-23\u003e in manifest\" into oc-dev am: 0d11c91d9e\nam: 25b63c7bb8\n\nChange-Id: Ie5007172fbae69263a1c60106ad8722f5388ae4e\n"
    },
    {
      "commit": "25b63c7bb8825d91514157884ea7c3919d817590",
      "tree": "2ae3373c5984a45441dafe7974c597a365ebd895",
      "parents": [
        "d0aef6b78d6cab19b354152e735b5058c20d45fd",
        "0d11c91d9e77c3222a6fcab5ba95231926ff2145"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat May 13 00:04:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat May 13 00:04:25 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow \u003cuses-permission-sdk-23\u003e in manifest\" into oc-dev\nam: 0d11c91d9e\n\nChange-Id: I27d82f39f3063a9d03a5e4973c45c39e7f0054f6\n"
    },
    {
      "commit": "0d11c91d9e77c3222a6fcab5ba95231926ff2145",
      "tree": "2af5618439cf9b50b1c37ea9f59a17149a76f8ad",
      "parents": [
        "05d41a718398239b1e9a2e28ef11c14b66f79adc",
        "4b585db64f1dda5c343855e63d7d4b6fc0c6d729"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 12 23:53:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 12 23:54:11 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow \u003cuses-permission-sdk-23\u003e in manifest\" into oc-dev"
    },
    {
      "commit": "4b585db64f1dda5c343855e63d7d4b6fc0c6d729",
      "tree": "261819d242a66a86cde3922980d9a615fb2c772b",
      "parents": [
        "33532e020873e580c421342e38b2352b836d30d4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 12 15:25:50 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 12 15:25:50 2017 -0700"
      },
      "message": "AAPT2: Allow \u003cuses-permission-sdk-23\u003e in manifest\n\nBug: 38269610\nTest: build tools/aapt2/integration-tests/AppOne\nChange-Id: I1d0b87aa36f6bf82aab146339acf8848166b218d\n"
    },
    {
      "commit": "1e0a89055d4ebfcdb217e90da7242fec2179e3d9",
      "tree": "b753e1b769278c3dcd051d8be8c04e1ee880a071",
      "parents": [
        "75a7b33a1aedde73e8c89d76b2575d28fee9e7d4",
        "fc157e702f7bc79a1156bb8e54efa495984981a5"
      ],
      "author": {
        "name": "Sunny Goyal",
        "email": "sunnygoyal@google.com",
        "time": "Fri May 12 21:16:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 12 21:16:32 2017 +0000"
      },
      "message": "Merge \"Setting Session commited broadcast when an existing apk is enabled for a different user\" into oc-dev\nam: fc157e702f\n\nChange-Id: I4cabbad8bac8fb24c86506a89c29d0a34b90a564\n"
    },
    {
      "commit": "a31a74b993578573eca33ca68762a98c6f6cb904",
      "tree": "6e6d5082ecff304a06d065b2cbca665bfd6af871",
      "parents": [
        "731c41950af2a950f2fb7dbb265ca1ac39710f10"
      ],
      "author": {
        "name": "Sunny Goyal",
        "email": "sunnygoyal@google.com",
        "time": "Thu May 11 15:59:19 2017 -0700"
      },
      "committer": {
        "name": "Sunny Goyal",
        "email": "sunnygoyal@google.com",
        "time": "Fri May 12 10:00:30 2017 -0700"
      },
      "message": "Setting Session commited broadcast when an existing apk is enabled for\na different user\n\nTest: Manual tests and CTS\nBug: 38204385\nChange-Id: Ic3bddbc2e6070c11b11f0685077db7737f2b8849\n"
    },
    {
      "commit": "38b3c15d4af16111e9a5834cdb60603fd7eef8a7",
      "tree": "959aabee40c68754090ff2617165ed140f9ea5be",
      "parents": [
        "a2f880d453192fecb94885ef52121c4a41b89bfd",
        "152f6c8e04ee42c8b41ab3f4a5acd21a77d41a87"
      ],
      "author": {
        "name": "Diego Perez",
        "email": "diegoperez@google.com",
        "time": "Fri May 12 11:25:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 12 11:25:12 2017 +0000"
      },
      "message": "Merge \"Disable font test temporarily\" into oc-dev\nam: 152f6c8e04\n\nChange-Id: I548bee7f45bfc7f364327233c4b4e1faf75139a1\n"
    },
    {
      "commit": "152f6c8e04ee42c8b41ab3f4a5acd21a77d41a87",
      "tree": "c73aba0e490a9121a09b2cdabeb67b55f11522ad",
      "parents": [
        "c5b2bf18189dd42d738ad23034cf8e9b44e9f4c4",
        "2931eb0d959fc9191ce4f5be79eec887ace60fbd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 12 11:21:30 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 12 11:21:35 2017 +0000"
      },
      "message": "Merge \"Disable font test temporarily\" into oc-dev"
    },
    {
      "commit": "9a286fedb600e2be30cb8a3a79425ff01bbc5570",
      "tree": "3c45a2340590d7408756dc0eca986bcd7736bd25",
      "parents": [
        "73d39aebd84ce15ba0b2ed8d172cb81a256a155c",
        "71aab90db2146d64d7a79824913dff059dec1edd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 11 20:24:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 11 20:24:25 2017 +0000"
      },
      "message": "Merge \"AAPT2: Add option to disable PNG crunching\" into oc-dev am: fb194bb81c\nam: 71aab90db2\n\nChange-Id: I9778a232e2664a4da66fb315347bd195c13492ad\n"
    },
    {
      "commit": "73d39aebd84ce15ba0b2ed8d172cb81a256a155c",
      "tree": "5b8d51a4b9cba052d55f6d46faf942ea32daf07e",
      "parents": [
        "a54a0df59606e89ef072b7759ba060f567cf07e8",
        "32b7e187e141f371607e093bfb69eabd908e425e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 11 19:43:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 11 19:43:18 2017 +0000"
      },
      "message": "Merge \"AAPT: Allow including dependencies in dump command\" into oc-dev am: 33644ff3f9\nam: 32b7e187e1\n\nChange-Id: Ia6f903b93aa2d8024e6ae03bac0e4bcae1149ac3\n"
    },
    {
      "commit": "71aab90db2146d64d7a79824913dff059dec1edd",
      "tree": "4a9b74cda567b3f0361bc6f1ea3461ae8fa6c177",
      "parents": [
        "32b7e187e141f371607e093bfb69eabd908e425e",
        "fb194bb81c234faa7b4e7253f8cf4228dbda4534"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 11 19:06:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 11 19:06:18 2017 +0000"
      },
      "message": "Merge \"AAPT2: Add option to disable PNG crunching\" into oc-dev\nam: fb194bb81c\n\nChange-Id: Ie471641c9b5fdb38c9623cc35cb3cc41c05c28a5\n"
    },
    {
      "commit": "32b7e187e141f371607e093bfb69eabd908e425e",
      "tree": "62bc82723bb9d76c0d116725c16f5874f692d87d",
      "parents": [
        "8b4c4f09f607879ee94be70a879b682522f2c535",
        "33644ff3f9270f471ec6c46cff7f848c3707f9c6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 11 18:49:14 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 11 18:49:14 2017 +0000"
      },
      "message": "Merge \"AAPT: Allow including dependencies in dump command\" into oc-dev\nam: 33644ff3f9\n\nChange-Id: Ibabd8a7517df444c97a4d1eb0793b9179b2a121f\n"
    },
    {
      "commit": "fb194bb81c234faa7b4e7253f8cf4228dbda4534",
      "tree": "ac765ba406f518af14cd5e92583b875dad11eed0",
      "parents": [
        "33644ff3f9270f471ec6c46cff7f848c3707f9c6",
        "28e6c0bac2f22e63bc044fc44a82ec5282d2709c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 11 18:39:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 11 18:39:05 2017 +0000"
      },
      "message": "Merge \"AAPT2: Add option to disable PNG crunching\" into oc-dev"
    },
    {
      "commit": "33644ff3f9270f471ec6c46cff7f848c3707f9c6",
      "tree": "e985bd87923f160c19e0a1c607f78257b36db5bf",
      "parents": [
        "c3b938ca5ed1385ea07a500abfba31ee4943c096",
        "57fe48389f845709db23234088b97f4e30307ff4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 11 18:36:38 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 11 18:36:42 2017 +0000"
      },
      "message": "Merge \"AAPT: Allow including dependencies in dump command\" into oc-dev"
    },
    {
      "commit": "2dd45f4d45eb069b1457471253e73dfa21dbdc8e",
      "tree": "9a4b5ceb34c174b9dc4d4c619815296f7e28aec6",
      "parents": [
        "6d92135cdc847e494f13655a3dfb4131b572dc3c",
        "4538000dcae863281330b088738118c1f63fe7dd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 11 05:18:38 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 11 05:18:44 2017 +0000"
      },
      "message": "Merge \"Stop deprecated parcelables triggering Error FW8\""
    },
    {
      "commit": "57fe48389f845709db23234088b97f4e30307ff4",
      "tree": "0ae774b1defd42793ae936a8e25eeb12064a6ee5",
      "parents": [
        "f93dc8b6504200d0b6d502d924a70a743f9b1411"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 10 15:42:22 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 10 15:42:22 2017 -0700"
      },
      "message": "AAPT: Allow including dependencies in dump command\n\nFeature splits depend on their base. The dump badging command\ndoes resource resolution, and needs to be able to find resources\nlocated in the base APK of a feature split.\n\nBug: 38038608\nTest: manual\nChange-Id: I8c22f0083c46a853a3a56a4049715409ac2723fe\n"
    },
    {
      "commit": "28e6c0bac2f22e63bc044fc44a82ec5282d2709c",
      "tree": "9ab8474507a84ba0c4f84bf68be65a4f8d345528",
      "parents": [
        "f93dc8b6504200d0b6d502d924a70a743f9b1411"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 10 14:56:36 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 10 15:00:10 2017 -0700"
      },
      "message": "AAPT2: Add option to disable PNG crunching\n\nWhen compiling, a developer may want to disable PNG crunching\nfor a specific set of PNGs.\n\nBug: 37729284\nTest: manual\nChange-Id: I134f208f8bb212df07a4eef65b467985a6443375\n"
    },
    {
      "commit": "4493b7c429e45ddbdeaefdbf5b8536dcedb5d66c",
      "tree": "83be88f7c30f7e4306e823e717452ae250641bdc",
      "parents": [
        "13f6a914c2d2b76f3e703b4c5798674627e28116"
      ],
      "author": {
        "name": "Diego Perez",
        "email": "diegoperez@google.com",
        "time": "Fri Apr 21 14:20:16 2017 +0100"
      },
      "committer": {
        "name": "Diego Perez",
        "email": "diegoperez@google.com",
        "time": "Wed May 10 12:34:29 2017 +0100"
      },
      "message": "Removing layout from frameworks/base\n\nThe directory is being moved to its own project in frameworks/layoutlib\n\nBug: 36889565\nTest: Built manually\nChange-Id: I69a1a826d0bac8ede1f9a337c9c1d930bbcd04f3\n"
    }
  ],
  "next": "13f6a914c2d2b76f3e703b4c5798674627e28116"
}
