)]}'
{
  "log": [
    {
      "commit": "4ee648e294de22f7af99126e4d5666d8d9e73b06",
      "tree": "b71f3e53dd77997fcf6b3c58637eec57196e3cd7",
      "parents": [
        "aaf0655e42bc0defeb4aa983381cd5d83ac20079",
        "8c856553239fb61678bfa2b15c5f23e4ce77d341"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Sep 09 00:29:00 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 09 00:29:00 2021 +0000"
      },
      "message": "Support extracting images from full OTAs am: 8c85655323\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1821173\n\nChange-Id: I161b1144c6c261dcc890aa9f4d9ab8470d21eb8f\n"
    },
    {
      "commit": "8c856553239fb61678bfa2b15c5f23e4ce77d341",
      "tree": "a8083c7c807522a70b5901764e8b60cdbe2374d3",
      "parents": [
        "1f658cca654614b7129f8e095747b5d061207a2e"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Sep 07 21:15:49 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Sep 08 16:26:18 2021 -0700"
      },
      "message": "Support extracting images from full OTAs\n\nTest: python3 simulate_ota.py your_ota.zip\nChange-Id: I99b58d19b6db5da9b51d63b17ca603a1a232cada\n"
    },
    {
      "commit": "aaf0655e42bc0defeb4aa983381cd5d83ac20079",
      "tree": "05a54aaf1a2c6ed8adb63072526ae8ab93a056b6",
      "parents": [
        "1544780e636050e6ace1df55aad0c651016a5c69",
        "1f658cca654614b7129f8e095747b5d061207a2e"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Wed Sep 08 18:33:22 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 08 18:33:22 2021 +0000"
      },
      "message": "Support zucchini patch am: 1f658cca65\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1817841\n\nChange-Id: Ie54bf460ff0fdbc7f5d8a11003348d53f73e4b2a\n"
    },
    {
      "commit": "1f658cca654614b7129f8e095747b5d061207a2e",
      "tree": "0499764b4640fc29efd607420914f40a6727afd6",
      "parents": [
        "f0c73d4e0158a9ebfff1fb78db7f14795749fb6e"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Wed Sep 01 16:26:32 2021 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Wed Sep 08 18:04:14 2021 +0000"
      },
      "message": "Support zucchini patch\n\nAdding code to handle the zucchini patches.\n\nBug: 197361113\nTest: TH, brillo_update_payload generate \u0026 verify\nChange-Id: I939b10621f13fcae8bf981fefe35971635a6f965\n"
    },
    {
      "commit": "1544780e636050e6ace1df55aad0c651016a5c69",
      "tree": "71fedfdb338468c202c0aad8fd5281df007cec3b",
      "parents": [
        "fd6747b2227bbc84676499900595dade85eaa065",
        "f0c73d4e0158a9ebfff1fb78db7f14795749fb6e"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Sep 08 04:46:40 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 08 04:46:40 2021 +0000"
      },
      "message": "Rename LibcurlHttpFetcherTest am: f0c73d4e01\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1820492\n\nChange-Id: I0454ac5ae9abac21933b1873870ccd24fd8e304d\n"
    },
    {
      "commit": "f0c73d4e0158a9ebfff1fb78db7f14795749fb6e",
      "tree": "0ef4af747ad72f287701c056f260aa47af4f3cfe",
      "parents": [
        "23dfcd248c45ba5a0c7ded97002417e44a07e361"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Sep 07 10:34:26 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Sep 07 20:26:36 2021 +0000"
      },
      "message": "Rename LibcurlHttpFetcherTest\n\nBoth libcurl_http_fetcher_unittest.cc and http_fetcher_unittest.cc have\na class named \"LibcurlHttpFetcherTest\", and they do different things.\nThis is an ODR violation that took ~2 days to investigate. Fix by\nrenaming + moving classes to anon namespace.\n\nTest: th\nChange-Id: I2271b3563a532f225b1efa4070e098246075e8da\n"
    },
    {
      "commit": "fd6747b2227bbc84676499900595dade85eaa065",
      "tree": "70ea86c8196d547c7a4415b0e33a8c252bbd8f56",
      "parents": [
        "a193c42c7c9713ad474386fbb43fdce592b8c429",
        "23dfcd248c45ba5a0c7ded97002417e44a07e361"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Sep 07 17:27:14 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 07 17:27:14 2021 +0000"
      },
      "message": "Make InstallOpExecutor take in unique_ptr am: 23dfcd248c\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1815556\n\nChange-Id: I2994620faa59eead566285bc7dccbdda071a9de1\n"
    },
    {
      "commit": "23dfcd248c45ba5a0c7ded97002417e44a07e361",
      "tree": "938942d029ca56b8d5aab3eefe97076cb96d48bf",
      "parents": [
        "76f10b8e0b2968f3ae7b78429908d78c2d025cf1"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Aug 31 16:32:49 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Sep 07 08:41:31 2021 -0700"
      },
      "message": "Make InstallOpExecutor take in unique_ptr\n\nTest: th\nChange-Id: Ic815eeff654d2943ac6339ae7c991e9e65fad87e\n"
    },
    {
      "commit": "a193c42c7c9713ad474386fbb43fdce592b8c429",
      "tree": "3961593cc23c485a04310596ed812ce189e0acec",
      "parents": [
        "4b3a77ddbfd0fa133590824ac2bf603a86c1b54e",
        "76f10b8e0b2968f3ae7b78429908d78c2d025cf1"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Sep 03 02:27:06 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 03 02:27:06 2021 +0000"
      },
      "message": "Write XOR ops for bsdiff and puffdiff am: 76f10b8e0b\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1748767\n\nChange-Id: Iaef7b6afcd258422994c14d42f16530a1df15d76\n"
    },
    {
      "commit": "76f10b8e0b2968f3ae7b78429908d78c2d025cf1",
      "tree": "eb403473b0ad4ce3e5f96af9605b3e0d1a763665",
      "parents": [
        "8e0090d812c1754b41e5ca8943e2d0ca82ac73e2"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Jun 25 18:45:46 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Sep 02 17:06:17 2021 -0700"
      },
      "message": "Write XOR ops for bsdiff and puffdiff\n\nTest: th\nBug: 177104308\n\nChange-Id: I10f79f1a2de910e5ba57a72a5dba5901c9348d77\n"
    },
    {
      "commit": "4b3a77ddbfd0fa133590824ac2bf603a86c1b54e",
      "tree": "6c8ea48f04a476357dc233ec8640c78335951f80",
      "parents": [
        "42ee9a11f05f4eebea28f10ac6b25f53b435d1c8",
        "8e0090d812c1754b41e5ca8943e2d0ca82ac73e2"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Thu Sep 02 21:15:41 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 02 21:15:41 2021 +0000"
      },
      "message": "Add skeleton for zucchini patch am: 8e0090d812\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1815278\n\nChange-Id: I54c1cefe31b664f3990a06c645d9c0c028535518\n"
    },
    {
      "commit": "42ee9a11f05f4eebea28f10ac6b25f53b435d1c8",
      "tree": "27e241566d1e7d18d1664b0697e22195b78c3c7c",
      "parents": [
        "07dfc7add8eea5708a93e759a1a87054156b8818",
        "00b718b5c8ada0fb6b61e35dc3027989a0d012d4"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Thu Sep 02 21:15:40 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 02 21:15:40 2021 +0000"
      },
      "message": "Reland the change again am: 00b718b5c8\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1817840\n\nChange-Id: I1103a87d689d45ee79c6001d121459af39afb41b\n"
    },
    {
      "commit": "8e0090d812c1754b41e5ca8943e2d0ca82ac73e2",
      "tree": "ecbbcbd288d58a84d366e211bdd3711a0bece886",
      "parents": [
        "00b718b5c8ada0fb6b61e35dc3027989a0d012d4"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Mon Aug 30 22:35:21 2021 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Thu Sep 02 21:01:54 2021 +0000"
      },
      "message": "Add skeleton for zucchini patch\n\nAlso consolidates the code in partition writer to call patch functions\nin one places.\n\nBug: 197361113\nTest: TH\nChange-Id: If6b5b9b6393888e67854b7130ae9a63e2fec482a\n"
    },
    {
      "commit": "00b718b5c8ada0fb6b61e35dc3027989a0d012d4",
      "tree": "cf50ec391774c6a8b91da6971ea194476949a766",
      "parents": [
        "cf208f2e8981cdfdb2459de6eec062a777f1bf5f"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Wed Sep 01 17:43:59 2021 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Thu Sep 02 21:01:54 2021 +0000"
      },
      "message": "Reland the change again\n\nThe change to factor out the diff generator was accidentally reverted.\nReland the change to call diff algorithms in one place.\n\nBug: 197361113\nTest: TH\nChange-Id: If54d7c977f74205a32e99e67898f8d1f6de91b89\n"
    },
    {
      "commit": "07dfc7add8eea5708a93e759a1a87054156b8818",
      "tree": "e7f2af09dfbf53c3317fb357cf92856e89890c34",
      "parents": [
        "ac2ffb7a4b4c8872c921da59ccc8e92b097ba9a5",
        "cf208f2e8981cdfdb2459de6eec062a777f1bf5f"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Sep 02 18:42:13 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 02 18:42:13 2021 +0000"
      },
      "message": "Only mmap once when executing ZERO install op am: cf208f2e89\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1811661\n\nChange-Id: I8484b2413548fae579adad04767f89683e54f185\n"
    },
    {
      "commit": "ac2ffb7a4b4c8872c921da59ccc8e92b097ba9a5",
      "tree": "c4c3efc0e6ce9454ead5ad839d44616a84590131",
      "parents": [
        "a9a312bfca7d6aaa892c35ca44878847b5056958",
        "cf3280bde678b0307e638133d7f94ecc51b5242b"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Sep 02 18:42:10 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 02 18:42:10 2021 +0000"
      },
      "message": "Bump map snapshot timeout to 10s am: cf3280bde6\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1817697\n\nChange-Id: I3b1f57ceeb698ba44a6df07609e8d89a99cb8237\n"
    },
    {
      "commit": "cf208f2e8981cdfdb2459de6eec062a777f1bf5f",
      "tree": "2eac4ddf280b1638c47461c49f12ad7e238c632c",
      "parents": [
        "cf3280bde678b0307e638133d7f94ecc51b5242b"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Aug 27 13:48:12 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Sep 02 11:38:47 2021 -0700"
      },
      "message": "Only mmap once when executing ZERO install op\n\nTest: th\nChange-Id: I27e4e1c677f50cfa3e691c941296576c95a8288a\n"
    },
    {
      "commit": "cf3280bde678b0307e638133d7f94ecc51b5242b",
      "tree": "d4e161522192a6b3c7754a590aa4aa54d9f2ad09",
      "parents": [
        "fc2afd49239e93bbcd7402777ab27d8b93ce3396"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Sep 01 19:36:01 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Sep 01 19:37:46 2021 -0700"
      },
      "message": "Bump map snapshot timeout to 10s\n\n5s might be too short when we are mapping all partitions, as snapuserd\nmust parse all COW ops.\n\nTest: th\nChange-Id: I6ace5c7d815dad125757f20fcf5efde9de77231c\n"
    },
    {
      "commit": "a9a312bfca7d6aaa892c35ca44878847b5056958",
      "tree": "9b8fca888360aef600a11dd38e3dd3188cad347e",
      "parents": [
        "ca1b66a258cb35eecf9883962bec5b88fbca5a90",
        "fc2afd49239e93bbcd7402777ab27d8b93ce3396"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Sep 01 23:10:58 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 01 23:10:58 2021 +0000"
      },
      "message": "Include sequence op in cow size estimate am: fc2afd4923\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1816336\n\nChange-Id: I13bfb1ffbf434d4ffaf2d1b59dab824009f342ba\n"
    },
    {
      "commit": "fc2afd49239e93bbcd7402777ab27d8b93ce3396",
      "tree": "65f72f847e69df0a17b1e4a37f1bb6a65a115380",
      "parents": [
        "c700169566bcd89cf96c9531fcae911277976d7d"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Sep 01 09:48:41 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Sep 01 09:51:10 2021 -0700"
      },
      "message": "Include sequence op in cow size estimate\n\nTest: th\nBug: 198395808\nChange-Id: Ibf04ff054e7e9c0024750efae060ba56e53b0190\n"
    },
    {
      "commit": "ca1b66a258cb35eecf9883962bec5b88fbca5a90",
      "tree": "97b8e870ae7be2e99b6b92b44a8d3d198d735f3a",
      "parents": [
        "7e160810adfe136bebf5f97d3f8253daf89e39a0",
        "c700169566bcd89cf96c9531fcae911277976d7d"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Tue Aug 31 21:40:00 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 31 21:40:00 2021 +0000"
      },
      "message": "Add zucchini support in update_engine am: c700169566\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1811374\n\nChange-Id: I6d864e8bfd9565c92ae420a0940b7d50f1e1764d\n"
    },
    {
      "commit": "c700169566bcd89cf96c9531fcae911277976d7d",
      "tree": "3e0a24f8a6353c8712ee991af2e8f1e77160f346",
      "parents": [
        "52c4b79fe4108ad9979f6da05e9c8d7605fe13ca"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Thu Aug 26 16:06:05 2021 -0700"
      },
      "committer": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Mon Aug 30 22:44:59 2021 -0700"
      },
      "message": "Add zucchini support in update_engine\n\nSupport zucchini as a diff algorithm in delta generator.\nNote we won\u0027t update the max support version until the\ninstallation support is in place.\n\nBug: 197361113\nTest: TH, generate a diff package\nChange-Id: I92db1e7ab2ac4aef104a715c089b136f138064e9\n"
    },
    {
      "commit": "7e160810adfe136bebf5f97d3f8253daf89e39a0",
      "tree": "5fe45b45c3ee451463e1c6a8f4b2d08bdc2c68e5",
      "parents": [
        "3204112bfaee4724975b22b464630323f1c9bc57",
        "52c4b79fe4108ad9979f6da05e9c8d7605fe13ca"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Aug 31 01:32:24 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 31 01:32:24 2021 +0000"
      },
      "message": "Filter out duplicate blocks in new image am: 52c4b79fe4\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1801336\n\nChange-Id: Ie5f28efb4446da630864b83c481cf945d6775bd2\n"
    },
    {
      "commit": "52c4b79fe4108ad9979f6da05e9c8d7605fe13ca",
      "tree": "945aa2247c781fae328a17240ad96dde34699253",
      "parents": [
        "53d73b943da04587822d3b916942c50ffd25d53f"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Aug 18 18:32:47 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Aug 30 16:58:55 2021 -0700"
      },
      "message": "Filter out duplicate blocks in new image\n\nI generated 4 OTA packages on coral, and found that after\nfiltering out duplicate blocks from new_file_extents, OTA\npackages are 0.2-0.3% smaller. Tiny improvement bust still\nreduces OTA size by a bit.\n\nThere was a previous experiment that showed an increase in\nOTA size is when we filter out duplicate blocks from BOTH\nold_file_extents and new_file_extents.\n\nTest: th\nBug: 177104308\nChange-Id: Iff8d5948fbe5a028e356f47637e5b5a803e00334\n"
    },
    {
      "commit": "3204112bfaee4724975b22b464630323f1c9bc57",
      "tree": "8a5d87c2e0fb6d6550189082b50fe85e0aa2e872",
      "parents": [
        "17fc1f8283bb331206b826aad66ca56e3295d3b7",
        "53d73b943da04587822d3b916942c50ffd25d53f"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Mon Aug 30 23:57:45 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 30 23:57:45 2021 +0000"
      },
      "message": "Improve the control flow of generating diff patches am: 53d73b943d\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1812157\n\nChange-Id: Iefe868847e5373601dc1d0d7f7e169d3f7d3e53d\n"
    },
    {
      "commit": "53d73b943da04587822d3b916942c50ffd25d53f",
      "tree": "1681f588a05cbd50ce923254fec20347d5987e89",
      "parents": [
        "a37aafc80fcaa4dfb529f564b60f7a4c1af8ae0f"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Fri Aug 27 15:42:49 2021 -0700"
      },
      "committer": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Mon Aug 30 11:20:00 2021 -0700"
      },
      "message": "Improve the control flow of generating diff patches\n\nFactor out the logic that generates the smallest diff patches.\nAnd make it easier to extend with new diff algorithms.\n\nTest: TH\nChange-Id: Ieecb1703cb6591afc83b297081c568cb76f1fdfe\n"
    },
    {
      "commit": "17fc1f8283bb331206b826aad66ca56e3295d3b7",
      "tree": "df0ff46404fd34173aadb6f02651b95d76ae2a7d",
      "parents": [
        "9952cb9546bff0f47d0b0807ce4f747940081be8",
        "a37aafc80fcaa4dfb529f564b60f7a4c1af8ae0f"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Aug 28 02:31:11 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Aug 28 02:31:11 2021 +0000"
      },
      "message": "Write cow merge sequence at beginning of update am: a37aafc80f\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1736934\n\nChange-Id: I1d9a75c4ac5778d58341e94e5575b1609d4c18ca\n"
    },
    {
      "commit": "a37aafc80fcaa4dfb529f564b60f7a4c1af8ae0f",
      "tree": "725c96a465a36ddc769c7d2e6aa80f9d0cb670e2",
      "parents": [
        "e2399442915c5ade42b9ae1ca7a486a661236276"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Jun 14 13:21:37 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Aug 27 18:13:17 2021 -0700"
      },
      "message": "Write cow merge sequence at beginning of update\n\nAs part of the design for go/vabc-xor , update_engine needs to\ntell libsnapshot what the merge sequence is. To do that, we represent\nthe merge sequence with increasing block numbers(of new partitions),\nand hand the giant array to libsnapshot.\n\nTest: th\nBug: 177104308\n\nChange-Id: Idd74ed54a8bf74443c40d8c2025657fd7c35561d\n"
    },
    {
      "commit": "9952cb9546bff0f47d0b0807ce4f747940081be8",
      "tree": "51d06266748439803731b1e1a07b479503a30c6c",
      "parents": [
        "f820939af755df324970cbe7fdb8eace4ba74344",
        "e2399442915c5ade42b9ae1ca7a486a661236276"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Aug 28 00:47:19 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Aug 28 00:47:19 2021 +0000"
      },
      "message": "Add a script to trim OTA package for go/otaanalyzer am: e239944291\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1794609\n\nChange-Id: I1b2c6de21588c6a27b1e64d27a53bbe58c138143\n"
    },
    {
      "commit": "f820939af755df324970cbe7fdb8eace4ba74344",
      "tree": "3713e8b5ad10179b6f3cb948197f188047c28ca0",
      "parents": [
        "ca1f3b298f965b1753b19e971f047b6de7b6c864",
        "bf357c65e5bd973e64aa44657284e0dcb1ee6aa8"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Aug 28 00:23:15 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Aug 28 00:23:15 2021 +0000"
      },
      "message": "Use binary search for ExtentRanges::OverlapsWithExtent am: bf357c65e5\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1790748\n\nChange-Id: Ic38b6ed59cc0343efb03bfffe1a39cb303e0a12c\n"
    },
    {
      "commit": "e2399442915c5ade42b9ae1ca7a486a661236276",
      "tree": "7d32ac603a6350ef6f3926f7a6228021b0804ec3",
      "parents": [
        "bf357c65e5bd973e64aa44657284e0dcb1ee6aa8"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Aug 12 10:36:37 2021 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Fri Aug 27 04:26:21 2021 +0000"
      },
      "message": "Add a script to trim OTA package for go/otaanalyzer\n\nTest: th\nChange-Id: Id3b5cdc0095c6b398e402e2165729cb9cb67b257\n"
    },
    {
      "commit": "bf357c65e5bd973e64aa44657284e0dcb1ee6aa8",
      "tree": "8c7646dc5b5c824f9c02f2f938f4782065b2ab55",
      "parents": [
        "bef99c3da12d495790e4e49704898455432a42ff"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Aug 09 18:31:12 2021 -0400"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Fri Aug 27 04:26:12 2021 +0000"
      },
      "message": "Use binary search for ExtentRanges::OverlapsWithExtent\n\nTest: th\n\nChange-Id: I774be2206a482d5360139eab2e3f99827ea471be\n"
    },
    {
      "commit": "ca1f3b298f965b1753b19e971f047b6de7b6c864",
      "tree": "9d4cf0dd14954a54dc9d16396ae0660651ba3072",
      "parents": [
        "8be8a919a6f7d08e733c85063733dce4d5245c37",
        "bef99c3da12d495790e4e49704898455432a42ff"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Aug 27 04:22:45 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 27 04:22:45 2021 +0000"
      },
      "message": "Make sure ExtentRanges don\u0027t merge extents am: bef99c3da1\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1801335\n\nChange-Id: I82e98c12af38e0754937d006276bf1f462a34f81\n"
    },
    {
      "commit": "bef99c3da12d495790e4e49704898455432a42ff",
      "tree": "3682f05e89e97d23bd4270c52b7177e8c99419e3",
      "parents": [
        "c56afa35340c58f6a47d90c2ecb847a26c09a932"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Aug 18 09:57:02 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 27 04:06:32 2021 +0000"
      },
      "message": "Make sure ExtentRanges don\u0027t merge extents\n\nWhen querying for XOR merge ops, we want the unmerged extents. E.g.\n[5-9] and [10-14] should not be merged into 1 extent, because they could\ncorrespond to different merge ops.\n\nTest: th\nChange-Id: I14c4c9fd6bf6361af6cd1e31264bdf860127a75b\n"
    },
    {
      "commit": "8be8a919a6f7d08e733c85063733dce4d5245c37",
      "tree": "98999eba44618e0d174c60570ac896486cf23640",
      "parents": [
        "f137b1090ac62ac3589d7f473703f74e6695fb42",
        "c56afa35340c58f6a47d90c2ecb847a26c09a932"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Aug 26 17:15:41 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 26 17:15:41 2021 +0000"
      },
      "message": "Add support for calling setShouldSwitchSlot from host am: c56afa3534\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1795811\n\nChange-Id: I9b0c5dff6c379943ba9d1e1b9558abea59f124ff\n"
    },
    {
      "commit": "c56afa35340c58f6a47d90c2ecb847a26c09a932",
      "tree": "b503af59187e727a22e4368638e7156a6244d162",
      "parents": [
        "20982a52a86f0a050021924123355a1247926753"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Aug 13 12:32:31 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 26 17:04:40 2021 +0000"
      },
      "message": "Add support for calling setShouldSwitchSlot from host\n\nTest: th\nChange-Id: Ibd32b0d77dd5e1a7b39d301b625b670f703472c6\n"
    },
    {
      "commit": "f137b1090ac62ac3589d7f473703f74e6695fb42",
      "tree": "50df1193c4470feb481a83cfc295d88b30d50af3",
      "parents": [
        "fa84c37b929dacf5210a72d2c6afa94d4e896ed8",
        "20982a52a86f0a050021924123355a1247926753"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Aug 26 07:19:50 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 26 07:19:50 2021 +0000"
      },
      "message": "Implement setShouldSwitchSlotOnReboot and resetShouldSwitchSlotOnReboot am: 20982a52a8\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1795810\n\nChange-Id: I943f762c589f0a6ec06c2bf6f3d72da6c68e23b7\n"
    },
    {
      "commit": "20982a52a86f0a050021924123355a1247926753",
      "tree": "ff5ff8a20a59a0c06989c322b7bacf2d11f0fbf3",
      "parents": [
        "e95dfeec1109cbe7b2dd4a7be58d0e50c1a655b6"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Aug 13 12:31:16 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 26 07:11:04 2021 +0000"
      },
      "message": "Implement setShouldSwitchSlotOnReboot and resetShouldSwitchSlotOnReboot\n\nTest: Install OTA, call resetShouldSwitchSlotOnReboot, make sure slot is\nset to _a, call setShouldSwitchSlot, make sure slot is set to _b\n\nBug: 187321613\n\nChange-Id: I4d0a5ed9292bdbefda4b48e84dbcfb4751406b28\n"
    },
    {
      "commit": "fa84c37b929dacf5210a72d2c6afa94d4e896ed8",
      "tree": "a0288916251ec995fc0e4693bdaaa59b6cfd2172",
      "parents": [
        "b444852e04783401852fced2904f93b1201eeb14",
        "e95dfeec1109cbe7b2dd4a7be58d0e50c1a655b6"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Aug 26 05:11:36 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 26 05:11:36 2021 +0000"
      },
      "message": "Remove Cros from AOSP update_engine am: e95dfeec11\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1794608\n\nChange-Id: I8794f4756a58b332145b41145304d1684bd0d787\n"
    },
    {
      "commit": "e95dfeec1109cbe7b2dd4a7be58d0e50c1a655b6",
      "tree": "aeaab9c63cae8ad1dbaa529ae7202eaad9bf8d03",
      "parents": [
        "a69cfe237e3b9880e2a553a64b93a8a65e3bcb59"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jul 29 16:49:22 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Aug 26 04:59:16 2021 +0000"
      },
      "message": "Remove Cros from AOSP update_engine\n\nTest: th\nChange-Id: I2c677d5836cb7210c4cd9202dd82b0cce420ab81\n"
    },
    {
      "commit": "b444852e04783401852fced2904f93b1201eeb14",
      "tree": "7ad2972d3c0d436a3113f99c3d696d88522b8759",
      "parents": [
        "0391dcb46506616a063db204e2a511ecf3b341a2",
        "a69cfe237e3b9880e2a553a64b93a8a65e3bcb59"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Wed Aug 25 03:47:50 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 25 03:47:50 2021 +0000"
      },
      "message": "Add libzucchini as a dependency for puffin am: a69cfe237e\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1804864\n\nChange-Id: I94f5612cf888d96cf9e5e176e46567f1531a8c47\n"
    },
    {
      "commit": "a69cfe237e3b9880e2a553a64b93a8a65e3bcb59",
      "tree": "6b6cc03a74fa665087c2718b28e664fcf40fce1f",
      "parents": [
        "af9b9b2674d11a5c95721c2b365d6d3335a97922"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Sun Aug 22 23:28:44 2021 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Wed Aug 25 03:47:32 2021 +0000"
      },
      "message": "Add libzucchini as a dependency for puffin\n\nNow puffin libraries need libzucchini to compile.\n\nBug: 197361113\nTest: TH\nChange-Id: I18345bff2092dc7aef4ae5f1b4a5fec8edf83519\n"
    },
    {
      "commit": "0391dcb46506616a063db204e2a511ecf3b341a2",
      "tree": "e68e183e8703d86bb4af930a752b0c11378200d8",
      "parents": [
        "520e0cfc587969629147205dbe1328a16066f10a",
        "af9b9b2674d11a5c95721c2b365d6d3335a97922"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Aug 24 19:26:38 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 24 19:26:38 2021 +0000"
      },
      "message": "Print better debug messages in extent map am: af9b9b2674\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1801334\n\nChange-Id: Ie98acb6101e38eb830f6eaf88687debddd7ab0ca\n"
    },
    {
      "commit": "520e0cfc587969629147205dbe1328a16066f10a",
      "tree": "6b7b11b6797ca08b191a706818cbfe2eb270dde3",
      "parents": [
        "508c168e994e898912b856e2ab012992c8d8dd9d",
        "9351f5d0601788d143fa96994712fba32697aa98"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Aug 24 04:29:25 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 24 04:29:25 2021 +0000"
      },
      "message": "Implement ExtentLess correctly am: 9351f5d060\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1801333\n\nChange-Id: I49039365eba64619cb91982887bf0742d577259a\n"
    },
    {
      "commit": "af9b9b2674d11a5c95721c2b365d6d3335a97922",
      "tree": "85eaea0cd4b2858a616703af9605c9c1341f1872",
      "parents": [
        "9351f5d0601788d143fa96994712fba32697aa98"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Aug 18 18:30:11 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Aug 23 18:51:15 2021 -0700"
      },
      "message": "Print better debug messages in extent map\n\nTest: th\nBug: 177104308\nChange-Id: I4ed31ff1b54f5f57008efa1c6b652f4d5dbaa6ce\n"
    },
    {
      "commit": "9351f5d0601788d143fa96994712fba32697aa98",
      "tree": "c32e61ca7007044f6ab8600dff9ca28fbf6ace4a",
      "parents": [
        "be1c1800a6380cd67cef7e25eb96011e84714b18"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Aug 17 19:29:49 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Aug 23 18:51:14 2021 -0700"
      },
      "message": "Implement ExtentLess correctly\n\nIf two extents start on the same block but have different number of\nblocks, current impl of ExtentLess will consider them equal.\n\nTest: th\nChange-Id: Ief147f9d0a91b3dcd7f8ccc690f3aea972cbeabb\n"
    },
    {
      "commit": "508c168e994e898912b856e2ab012992c8d8dd9d",
      "tree": "1a4af75a8addc25d9d023e5b4418da550cd2b5c3",
      "parents": [
        "1d732e8387fa83131b0c14b10e733886e4ca3f6b",
        "be1c1800a6380cd67cef7e25eb96011e84714b18"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Aug 24 00:05:55 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 24 00:05:55 2021 +0000"
      },
      "message": "Support slot switch API in update_engine_client am: be1c1800a6\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1745093\n\nChange-Id: Ieef4f6b3e153665b05d7de538d3de4f92a223845\n"
    },
    {
      "commit": "be1c1800a6380cd67cef7e25eb96011e84714b18",
      "tree": "93d93ae4c43054d9ff6eb4ca124c34813984a7a3",
      "parents": [
        "5e4e293510d3e1e7d48093a99ed87e4bbb51cdfd"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Jun 21 10:03:36 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Aug 23 23:57:00 2021 +0000"
      },
      "message": "Support slot switch API in update_engine_client\n\nTest: adb shell update_engine_client --switch_slot\u003dfalse\nChange-Id: I74198e2ef904869e36e5d6be5a85bbbeadbee89c\n"
    },
    {
      "commit": "1d732e8387fa83131b0c14b10e733886e4ca3f6b",
      "tree": "89f59bb6631b77da3218c89e59332fa217d008bb",
      "parents": [
        "0eab7111109175ec98315bfd156e4d2dab2dc52a",
        "5e4e293510d3e1e7d48093a99ed87e4bbb51cdfd"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Aug 19 21:51:41 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 19 21:51:41 2021 +0000"
      },
      "message": "Document the quirks of merge sequence am: 5e4e293510\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1792748\n\nChange-Id: I9879eaba13772967415d59076c0e084c5cee1652\n"
    },
    {
      "commit": "5e4e293510d3e1e7d48093a99ed87e4bbb51cdfd",
      "tree": "bf304337537992e86e410badcf72ac63282de11e",
      "parents": [
        "4bb4920a5772d006f9316bdbfd6e7dd771dfd98e"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Aug 11 16:37:24 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Aug 19 14:37:29 2021 -0700"
      },
      "message": "Document the quirks of merge sequence\n\nTest: no need\nChange-Id: I6f802580e686737b24db2f4fe0b985225157d001\n"
    },
    {
      "commit": "0eab7111109175ec98315bfd156e4d2dab2dc52a",
      "tree": "ad46ce71e49ad9f13ec1ba774d012b02aee86daa",
      "parents": [
        "9e20aff2ecc3e5bf2865b3170f3ec615e3ef7301",
        "485220a53ddba72f95ba8cb68be39e2d7ec25424"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Aug 17 18:14:43 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 17 18:14:43 2021 +0000"
      },
      "message": "Merge \"Merge sc-dev-plus-aosp-without-vendor@7634622\" into stage-aosp-master"
    },
    {
      "commit": "9e20aff2ecc3e5bf2865b3170f3ec615e3ef7301",
      "tree": "0bb705f99774b138abe94f158674fc0d0fa2abbb",
      "parents": [
        "eb14b09be2270f08a2584bd338cb22c483d6c053",
        "4bb4920a5772d006f9316bdbfd6e7dd771dfd98e"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Aug 16 18:47:50 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 16 18:47:50 2021 +0000"
      },
      "message": "Add XorExtentWriter am: 4bb4920a57\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1761165\n\nChange-Id: If2140625a35079de56b0743ce422861ca5a7f8ba\n"
    },
    {
      "commit": "eb14b09be2270f08a2584bd338cb22c483d6c053",
      "tree": "ec195b6a11cc805bb0c031a994b7cb91840bac13",
      "parents": [
        "186ad03433edbd8ad3f0c6236fb743c864bb3e2b",
        "1c0fa69215d2bc486e383ce9b222b444816354bf"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Aug 16 18:47:42 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 16 18:47:42 2021 +0000"
      },
      "message": "Set src_extents before calling PopulateXorOps am: 1c0fa69215\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1794548\n\nChange-Id: I7f588128ea25820e7b498baa56f2014c25acd6a2\n"
    },
    {
      "commit": "4bb4920a5772d006f9316bdbfd6e7dd771dfd98e",
      "tree": "0bb705f99774b138abe94f158674fc0d0fa2abbb",
      "parents": [
        "1c0fa69215d2bc486e383ce9b222b444816354bf"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jul 08 21:39:05 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Aug 16 10:00:54 2021 -0700"
      },
      "message": "Add XorExtentWriter\n\nThis class is built on top of BlockExtentWriter(block aligned writer)\nand ExtentMap. It will look at the extent map, convert blocks in the\nextent map to XOR type, and convert everythign else to COW_REPLACE.\n\nTest: th\nBug: 177104308\nChange-Id: I6f9df83ed09f1c5a6aae9f266412132b002acd29\n"
    },
    {
      "commit": "1c0fa69215d2bc486e383ce9b222b444816354bf",
      "tree": "ec195b6a11cc805bb0c031a994b7cb91840bac13",
      "parents": [
        "d567c8bc9f3e2273fa68ee4c861e615984d551ea"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Aug 12 18:43:08 2021 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Aug 16 10:00:53 2021 -0700"
      },
      "message": "Set src_extents before calling PopulateXorOps\n\nPopulateXorOps needs to read aop.op.src_extents(), so set that before\ncalling\n\nTest: ota_from_target_files --enable_vabc_xor\nChange-Id: Id2207cf44868d22ee9fe2e5c1a2bf45fc7f6185b\n"
    },
    {
      "commit": "485220a53ddba72f95ba8cb68be39e2d7ec25424",
      "tree": "ab3e9f671557fec86ed4cb9a3e06f76013d6c47b",
      "parents": [
        "186ad03433edbd8ad3f0c6236fb743c864bb3e2b",
        "0a9a2a9e0821aa25ff9f385854c6269a7cf7b066"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Aug 14 06:31:09 2021 +0000"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Aug 14 06:31:09 2021 +0000"
      },
      "message": "Merge sc-dev-plus-aosp-without-vendor@7634622\n\nMerged-In: Iab54479d220a886fbcdfcea3521c5eba2ced197f\nChange-Id: Iaaa952634e317c0528834e4ba7b18c4ba608ddba\n"
    },
    {
      "commit": "0a9a2a9e0821aa25ff9f385854c6269a7cf7b066",
      "tree": "ab3e9f671557fec86ed4cb9a3e06f76013d6c47b",
      "parents": [
        "7d0c6df4475730299c7e566bb9666404e15fd440",
        "186ad03433edbd8ad3f0c6236fb743c864bb3e2b"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Aug 11 18:57:46 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 11 18:57:46 2021 +0000"
      },
      "message": "Add Extent map am: d567c8bc9f am: 186ad03433\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1760160\n\nChange-Id: Iab54479d220a886fbcdfcea3521c5eba2ced197f\n"
    },
    {
      "commit": "186ad03433edbd8ad3f0c6236fb743c864bb3e2b",
      "tree": "a7c47aa9acbd71219adb90460fa9d3b038d17708",
      "parents": [
        "d6d682c9ed6d9c296350ce091c0671caf0c3e97d",
        "d567c8bc9f3e2273fa68ee4c861e615984d551ea"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Aug 11 18:48:29 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 11 18:48:29 2021 +0000"
      },
      "message": "Add Extent map am: d567c8bc9f\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1760160\n\nChange-Id: I872873210b8093c6f2c3f3d848bfe989bec1cd60\n"
    },
    {
      "commit": "d567c8bc9f3e2273fa68ee4c861e615984d551ea",
      "tree": "a7c47aa9acbd71219adb90460fa9d3b038d17708",
      "parents": [
        "a837f00127730d3d2bf0752a8b5c135784cf4ba1"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jul 08 14:10:23 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Aug 11 12:07:39 2021 -0400"
      },
      "message": "Add Extent map\n\nWhen installing OTA, we stream operations as data becomes available. For\neach operation, update_engine needs to look at the merge sequence and\nfigure out which blocks should be converted to COW_XOR. To do that, we\nneed a data structure for querying a disjoint set of extents.\n\nTest: th\nBug: 177104308\n\nChange-Id: I14ec9d72a32e859b65516b894ca94d0153aa7e17\n"
    },
    {
      "commit": "7d0c6df4475730299c7e566bb9666404e15fd440",
      "tree": "ff12fd9c7034e5990ce414d0006436a02a04cf66",
      "parents": [
        "af12a73e4a8856c95787fa5dfde40688a6217a2f",
        "d6d682c9ed6d9c296350ce091c0671caf0c3e97d"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Tue Aug 03 03:47:59 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 03 03:47:59 2021 +0000"
      },
      "message": "Add EmitXorBlocks stub to FakeCowWriter am: a837f00127 am: d6d682c9ed\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1753110\n\nChange-Id: I2bef7f2e22bd659143860ca1b3be9a7a94b9eec4\n"
    },
    {
      "commit": "d6d682c9ed6d9c296350ce091c0671caf0c3e97d",
      "tree": "fe35b88cfee763e4909d495063c06075c9f0ae8e",
      "parents": [
        "d26c486bdb18f50c5a1f2e6e66e8416b2c85372c",
        "a837f00127730d3d2bf0752a8b5c135784cf4ba1"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Tue Aug 03 03:31:54 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 03 03:31:54 2021 +0000"
      },
      "message": "Add EmitXorBlocks stub to FakeCowWriter am: a837f00127\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1753110\n\nChange-Id: I2561e4d0da2b3cdf45a2e9f0bd0f08f364e3ef61\n"
    },
    {
      "commit": "a837f00127730d3d2bf0752a8b5c135784cf4ba1",
      "tree": "fe35b88cfee763e4909d495063c06075c9f0ae8e",
      "parents": [
        "0a813e6aaca347385d726833a7712d20b2713dec"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Wed Jun 30 17:58:49 2021 -0700"
      },
      "committer": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Tue Aug 03 03:15:46 2021 +0000"
      },
      "message": "Add EmitXorBlocks stub to FakeCowWriter\n\nBug: 177104308\nTest: Builds\nChange-Id: I6ae939f4df37c3b2742651558aa96fc64c6c24ee\n"
    },
    {
      "commit": "af12a73e4a8856c95787fa5dfde40688a6217a2f",
      "tree": "bbd4b3c882e44560e7ef96759c059884d1a86109",
      "parents": [
        "0c0b7c0e810eaf42e958d6d7cd8b3d39b7e834bc",
        "d26c486bdb18f50c5a1f2e6e66e8416b2c85372c"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Sat Jul 31 00:45:05 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 31 00:45:05 2021 +0000"
      },
      "message": "update_engine: put update_engine into background sched group am: 0a813e6aac am: d26c486bdb\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1782217\n\nChange-Id: Ieb49eb2ce9ca1e6832cdc6d881963f7e9e842af1\n"
    },
    {
      "commit": "d26c486bdb18f50c5a1f2e6e66e8416b2c85372c",
      "tree": "6076ac2226d03f70ee8d4f9efbb0a5d0e7d3bdd0",
      "parents": [
        "d692ecc12d51b77f1b0d4db5d8fd4d5b81be8355",
        "0a813e6aaca347385d726833a7712d20b2713dec"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Sat Jul 31 00:30:13 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 31 00:30:13 2021 +0000"
      },
      "message": "update_engine: put update_engine into background sched group am: 0a813e6aac\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1782217\n\nChange-Id: I3345b2e65779d5d3ab323a8bd1444c0e944f01cb\n"
    },
    {
      "commit": "0a813e6aaca347385d726833a7712d20b2713dec",
      "tree": "6076ac2226d03f70ee8d4f9efbb0a5d0e7d3bdd0",
      "parents": [
        "ca9704edc3018b6029d3b9e5aa81bee033d02911"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Thu Jul 29 15:00:56 2021 -0700"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Sat Jul 31 00:18:04 2021 +0000"
      },
      "message": "update_engine: put update_engine into background sched group\n\nupdate_engine runs as 120 may impact foreground tasks, put it into bg\nsched group to have soft limit on its cpu usage.\n\nBug: 194838704\nTest: build\nSigned-off-by: Wei Wang \u003cwvw@google.com\u003e\nChange-Id: Ifa66f0119e86d79fa48d15a82b192f33b6ab2740\n"
    },
    {
      "commit": "0c0b7c0e810eaf42e958d6d7cd8b3d39b7e834bc",
      "tree": "28049392489b45dd6c9a4114fbb22eda84c26ab3",
      "parents": [
        "aa59dc569f5ef50acccd01aed031c54754c957d6",
        "d692ecc12d51b77f1b0d4db5d8fd4d5b81be8355"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jul 31 00:17:05 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 31 00:17:05 2021 +0000"
      },
      "message": "Add GetNthBlockTest am: ca9704edc3 am: d692ecc12d\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1769945\n\nChange-Id: Ic4970805a95c920e8e2345eeca6ced704e07e0a5\n"
    },
    {
      "commit": "d692ecc12d51b77f1b0d4db5d8fd4d5b81be8355",
      "tree": "0d077a8ef6e94cc3e3e70c0248a3774ee686a178",
      "parents": [
        "4dd9cc7cdd2686e202588ad522ab0e45d256e378",
        "ca9704edc3018b6029d3b9e5aa81bee033d02911"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jul 31 00:08:32 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 31 00:08:32 2021 +0000"
      },
      "message": "Add GetNthBlockTest am: ca9704edc3\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1769945\n\nChange-Id: I4028c6b96794e3275ada8fca36ad966601fa4923\n"
    },
    {
      "commit": "aa59dc569f5ef50acccd01aed031c54754c957d6",
      "tree": "56c0590847226926333f41b0e45d34a5a30b9339",
      "parents": [
        "f8b1d50d408f711891a7a7a8c0591b8ab9bdfc04",
        "4dd9cc7cdd2686e202588ad522ab0e45d256e378"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Jul 30 22:37:44 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 30 22:37:44 2021 +0000"
      },
      "message": "Add block extent writer am: b170676ab8 am: 4dd9cc7cdd\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1748766\n\nChange-Id: Iedf5cd87c105191fbba5d54ffb4c7fde50c7cc8b\n"
    },
    {
      "commit": "4dd9cc7cdd2686e202588ad522ab0e45d256e378",
      "tree": "36b62db20839d2d39c82272c0e39b4bf707be403",
      "parents": [
        "595ca251c981e3418081f56129f79c83345dbd90",
        "b170676ab80f30bf6bff76d5427efd8b4fd66971"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Jul 30 22:29:42 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 30 22:29:42 2021 +0000"
      },
      "message": "Add block extent writer am: b170676ab8\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1748766\n\nChange-Id: Ib46661509c21294e8acda8d5b91feba24c02d12a\n"
    },
    {
      "commit": "ca9704edc3018b6029d3b9e5aa81bee033d02911",
      "tree": "0d077a8ef6e94cc3e3e70c0248a3774ee686a178",
      "parents": [
        "b170676ab80f30bf6bff76d5427efd8b4fd66971"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jul 15 16:29:25 2021 -0400"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Fri Jul 30 22:20:48 2021 +0000"
      },
      "message": "Add GetNthBlockTest\n\nTest: th\nChange-Id: Id7107f9be1fad54cfd4b59d74e72a2f6e45e1a40\n"
    },
    {
      "commit": "b170676ab80f30bf6bff76d5427efd8b4fd66971",
      "tree": "36b62db20839d2d39c82272c0e39b4bf707be403",
      "parents": [
        "43cb9c0ddedd0698970c1655124c72ed7679187c"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Jun 25 15:05:22 2021 -0400"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 30 22:17:33 2021 +0000"
      },
      "message": "Add block extent writer\n\nAdd a utility class for writing block aligned data. Writes will always\nhappen at block boundary, and write size will always be a multiple of\nblock size. This is handy for upcomming XOR writers.\n\nTest: th\nBug: 177104308\n\nChange-Id: I11b4d9b79e20ba48f30b55243188a47c60c65552\n"
    },
    {
      "commit": "f8b1d50d408f711891a7a7a8c0591b8ab9bdfc04",
      "tree": "86ac63e48e38d848ffa928215009463693162147",
      "parents": [
        "652b202de91f021394608b457b7f841616eb1bf4",
        "595ca251c981e3418081f56129f79c83345dbd90"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jul 28 02:20:36 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 28 02:20:36 2021 +0000"
      },
      "message": "Remove ndk_platform backend. Use the ndk backend. am: 43cb9c0dde am: 595ca251c9\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1778295\n\nChange-Id: Idea37ea03969ac10267b856764544f18acb75b69\n"
    },
    {
      "commit": "595ca251c981e3418081f56129f79c83345dbd90",
      "tree": "3b7e2fe66913fd311e35c210378bb3597a30ce94",
      "parents": [
        "898fefd23c4699c0ac8c20debf465cfb5f3c77b3",
        "43cb9c0ddedd0698970c1655124c72ed7679187c"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jul 28 02:03:05 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 28 02:03:05 2021 +0000"
      },
      "message": "Remove ndk_platform backend. Use the ndk backend. am: 43cb9c0dde\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1778295\n\nChange-Id: I044409eeda834a0242bb9568001959d3e78f5109\n"
    },
    {
      "commit": "43cb9c0ddedd0698970c1655124c72ed7679187c",
      "tree": "3b7e2fe66913fd311e35c210378bb3597a30ce94",
      "parents": [
        "7f8f2abb6372e9d02332b6f234063611662c9d0f"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Jul 27 12:21:02 2021 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jul 28 01:48:49 2021 +0000"
      },
      "message": "Remove ndk_platform backend. Use the ndk backend.\n\nThe ndk_platform backend will soon be deprecated because the ndk backend\ncan serve the same purpose. This is to eliminate the confusion about\nhaving two variants (ndk and ndk_platform) for the same \u0027ndk\u0027 backend.\n\nBug: 161456198\nTest: m\nChange-Id: I478014d66fdfbe61b025960ff27b0b5e57c6f458\n"
    },
    {
      "commit": "652b202de91f021394608b457b7f841616eb1bf4",
      "tree": "33eeaee56bf26a9c9bcd138caeb6c1ad191be9a3",
      "parents": [
        "da0ecf3ba8d3cf8054eb410aea8d06ff41f284c3",
        "898fefd23c4699c0ac8c20debf465cfb5f3c77b3"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Tue Jul 27 23:51:04 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 27 23:51:04 2021 +0000"
      },
      "message": "Add stub implementation for APIs to switch slot am: 7f8f2abb63 am: 898fefd23c\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1776646\n\nChange-Id: I7079a7b862a924afda4c4e570a585b8d8cbf3b6e\n"
    },
    {
      "commit": "898fefd23c4699c0ac8c20debf465cfb5f3c77b3",
      "tree": "a492493ba2ca99dcb7f3bf4a2e3c201f24ceafd7",
      "parents": [
        "8511c4c1b714a7e8318566f0851f7053c7123df3",
        "7f8f2abb6372e9d02332b6f234063611662c9d0f"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Tue Jul 27 23:35:42 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 27 23:35:42 2021 +0000"
      },
      "message": "Add stub implementation for APIs to switch slot am: 7f8f2abb63\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1776646\n\nChange-Id: I05d2b25d3e7383940ba0684b9f0692a22af13706\n"
    },
    {
      "commit": "da0ecf3ba8d3cf8054eb410aea8d06ff41f284c3",
      "tree": "9a8a9c5b387d0e13ecb48ffc68eebcaf61a6b4fa",
      "parents": [
        "792cacbc6d663a9b821927cb416c98a4b73eac66",
        "b5f09960717c22c84cb555c55020bafb9343a694"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Jul 27 20:59:20 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 27 20:59:20 2021 +0000"
      },
      "message": "[automerger skipped] Don\u0027t check for FEC offset if fec is disabled am: b5f0996071 -s ours\n\nam skip reason: Merged-In I0e37136313914f1ee9a4eae0e5db59807adc7dc5 with SHA-1 5e5ad39a15 is already in history\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/system/update_engine/+/15401790\n\nChange-Id: I0608c32ebce408fff932ce26d838f2d43255c112\n"
    },
    {
      "commit": "b5f09960717c22c84cb555c55020bafb9343a694",
      "tree": "d6c1c43d01a2167e4097275f658395ade14a75ad",
      "parents": [
        "04206a96c8c15bd4cdb655ed4e3b27e5cccb0f05"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Jul 26 21:42:06 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Jul 27 13:24:03 2021 +0000"
      },
      "message": "Don\u0027t check for FEC offset if fec is disabled\n\nTest: th\nBug: 194661607\nBug: 194779085\n\nChange-Id: I0e37136313914f1ee9a4eae0e5db59807adc7dc5\nMerged-In: I0e37136313914f1ee9a4eae0e5db59807adc7dc5\n"
    },
    {
      "commit": "7f8f2abb6372e9d02332b6f234063611662c9d0f",
      "tree": "a492493ba2ca99dcb7f3bf4a2e3c201f24ceafd7",
      "parents": [
        "5e5ad39a15c2c20b0c478844e2c9f8abc7e1a212"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Fri Jul 23 17:08:50 2021 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Tue Jul 27 04:39:18 2021 +0000"
      },
      "message": "Add stub implementation for APIs to switch slot\n\nTest: build\nBug: 187321613\nChange-Id: Icdd402df711c8d35962bad2ef70f3c43e069c83b\n"
    },
    {
      "commit": "792cacbc6d663a9b821927cb416c98a4b73eac66",
      "tree": "9a8a9c5b387d0e13ecb48ffc68eebcaf61a6b4fa",
      "parents": [
        "cc2fd47f4eb8fa3309555095c56633144c7c8fd0",
        "8511c4c1b714a7e8318566f0851f7053c7123df3"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Jul 27 04:09:01 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 27 04:09:01 2021 +0000"
      },
      "message": "Don\u0027t check for FEC offset if fec is disabled am: 5e5ad39a15 am: 8511c4c1b7\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1779068\n\nChange-Id: I6a5430bb46e22df1a6d44021d0c83a3417e39d4d\n"
    },
    {
      "commit": "8511c4c1b714a7e8318566f0851f7053c7123df3",
      "tree": "c897e3e04a8ad7da291d09c6743466703cd5206e",
      "parents": [
        "c359236ab268feb08e8ac0570d1b447b95264dd8",
        "5e5ad39a15c2c20b0c478844e2c9f8abc7e1a212"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Jul 27 03:53:06 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 27 03:53:06 2021 +0000"
      },
      "message": "Don\u0027t check for FEC offset if fec is disabled am: 5e5ad39a15\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1779068\n\nChange-Id: Ie8dc20168b28b3593d3ad6d76f4e9ece002e561f\n"
    },
    {
      "commit": "5e5ad39a15c2c20b0c478844e2c9f8abc7e1a212",
      "tree": "c897e3e04a8ad7da291d09c6743466703cd5206e",
      "parents": [
        "da607a35bd2ea112844c7500aa21dc08127d9bf3"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Jul 26 21:42:06 2021 -0400"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 27 03:43:00 2021 +0000"
      },
      "message": "Don\u0027t check for FEC offset if fec is disabled\n\nTest: th\nBug: 194661607\n\nChange-Id: I0e37136313914f1ee9a4eae0e5db59807adc7dc5\n"
    },
    {
      "commit": "cc2fd47f4eb8fa3309555095c56633144c7c8fd0",
      "tree": "0b473f56cdadcabb29a239cb7476ca414dacbc9f",
      "parents": [
        "f7c65a6c66c40a508ca074cd531fe591b56d447b",
        "c359236ab268feb08e8ac0570d1b447b95264dd8"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Tue Jul 27 02:42:21 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 27 02:42:21 2021 +0000"
      },
      "message": "Add an API in update_engine to switch the slot back and forth am: da607a35bd am: c359236ab2\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1697663\n\nChange-Id: I5b4863a9dc3ea94b45ce581cecb0468c1bc59a15\n"
    },
    {
      "commit": "c359236ab268feb08e8ac0570d1b447b95264dd8",
      "tree": "88d689725ad9b249db500c04579e7561bc422884",
      "parents": [
        "ab2ebd27ae0e15b8c73e1e1fa1bfec93d9470efd",
        "da607a35bd2ea112844c7500aa21dc08127d9bf3"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Tue Jul 27 02:19:19 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 27 02:19:19 2021 +0000"
      },
      "message": "Add an API in update_engine to switch the slot back and forth am: da607a35bd\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1697663\n\nChange-Id: I5d2f938ad11b1b805d3d9e21b5934fd9cedc45fd\n"
    },
    {
      "commit": "da607a35bd2ea112844c7500aa21dc08127d9bf3",
      "tree": "88d689725ad9b249db500c04579e7561bc422884",
      "parents": [
        "53953703c5559952ac9bbc45f037bfe07c98cbf8"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Wed May 05 17:38:06 2021 -0700"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Tue Jul 27 02:03:08 2021 +0000"
      },
      "message": "Add an API in update_engine to switch the slot back and forth\n\nIn some cases, the OTA update want to flip the slot to source\nwithout cancelling the entire update. The functionality was\nachieved by ResetStatus(). However ResetStatus() will clean up\nthe update progress and free up space to support virtual A/B.\n\nTest: build\nBug: 187321613\nChange-Id: I508c8034e69ad9f3159b985241451b0f5806bab7\n"
    },
    {
      "commit": "f7c65a6c66c40a508ca074cd531fe591b56d447b",
      "tree": "870dede94614d3f5964dbbf81d3808623f28e3fb",
      "parents": [
        "d2af74fc10f68938ac5fcc2a94bb091be89b9637",
        "ab2ebd27ae0e15b8c73e1e1fa1bfec93d9470efd"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jul 24 13:53:48 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 24 13:53:48 2021 +0000"
      },
      "message": "Include XOR ops in merge sequence am: 53953703c5 am: ab2ebd27ae\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1736936\n\nChange-Id: Ia47b6a6e02ab19a948c2b32cca8dc345e12ab63c\n"
    },
    {
      "commit": "ab2ebd27ae0e15b8c73e1e1fa1bfec93d9470efd",
      "tree": "e24c122fd53f3efb5715a446b59128cadb1daa84",
      "parents": [
        "25d393ea629ea8cb6919306214c1818874e9b25a",
        "53953703c5559952ac9bbc45f037bfe07c98cbf8"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jul 24 13:42:09 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 24 13:42:09 2021 +0000"
      },
      "message": "Include XOR ops in merge sequence am: 53953703c5\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1736936\n\nChange-Id: I8afa310ee1031cc247f2066da7ecfbeaefb4e4d8\n"
    },
    {
      "commit": "d2af74fc10f68938ac5fcc2a94bb091be89b9637",
      "tree": "74b1b0a6e9184f23204cd070443295e4588c632e",
      "parents": [
        "c68f39c5560eedaba85bc9fa20db5eea048f0602",
        "25d393ea629ea8cb6919306214c1818874e9b25a"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jul 24 01:00:34 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 24 01:00:34 2021 +0000"
      },
      "message": "Add test for xor op generator am: f7f7cc31d6 am: 25d393ea62\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1768591\n\nChange-Id: I49914da6ac74ed657f775b271b9d08e5d888a3ea\n"
    },
    {
      "commit": "c68f39c5560eedaba85bc9fa20db5eea048f0602",
      "tree": "1c97456309d5ae37e90be1792bb6eb413adc67e7",
      "parents": [
        "4a7d2d442bcf90b7cb8402f95f98898226ad9aa7",
        "f8919b90278899dc7ce6d40debfdc298586662ed"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jul 24 01:00:27 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 24 01:00:27 2021 +0000"
      },
      "message": "Emit XOR ops at OTA generation time am: 02df21bb45 am: f8919b9027\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1542964\n\nChange-Id: Iea6531395871bf091de760a532083c4c78631c47\n"
    },
    {
      "commit": "25d393ea629ea8cb6919306214c1818874e9b25a",
      "tree": "5a9bfda2533738f14ba781b0c434b9b300d675e3",
      "parents": [
        "f8919b90278899dc7ce6d40debfdc298586662ed",
        "f7f7cc31d6ffb5bfd876dd2fdbb4b28d98fdcb46"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jul 24 00:42:49 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 24 00:42:49 2021 +0000"
      },
      "message": "Add test for xor op generator am: f7f7cc31d6\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1768591\n\nChange-Id: Ia021cd78fd18c7473fb8d5ae041c1d0fe0f8c8ab\n"
    },
    {
      "commit": "f8919b90278899dc7ce6d40debfdc298586662ed",
      "tree": "d629d50892260108898aefb4ea114815922ec9aa",
      "parents": [
        "4b5b22896c6d5a01c5cf68f259f7c95aae84da87",
        "02df21bb4570a57dfa9e41f31d4785bdf4a7b76a"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Sat Jul 24 00:42:42 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 24 00:42:42 2021 +0000"
      },
      "message": "Emit XOR ops at OTA generation time am: 02df21bb45\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1542964\n\nChange-Id: I862a3bafd2a0b17791f17d00ae3c7a3afc496a7a\n"
    },
    {
      "commit": "53953703c5559952ac9bbc45f037bfe07c98cbf8",
      "tree": "e24c122fd53f3efb5715a446b59128cadb1daa84",
      "parents": [
        "f7f7cc31d6ffb5bfd876dd2fdbb4b28d98fdcb46"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Jun 14 13:38:11 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Jul 21 19:42:45 2021 -0400"
      },
      "message": "Include XOR ops in merge sequence\n\nTest: th\nBug: 177104308\n\nChange-Id: I0ad017c7570879b115381f73920a9097500145cb\n"
    },
    {
      "commit": "f7f7cc31d6ffb5bfd876dd2fdbb4b28d98fdcb46",
      "tree": "5a9bfda2533738f14ba781b0c434b9b300d675e3",
      "parents": [
        "02df21bb4570a57dfa9e41f31d4785bdf4a7b76a"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jul 15 16:14:00 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Jul 21 19:42:45 2021 -0400"
      },
      "message": "Add test for xor op generator\n\nTest: th\nChange-Id: Ibf41411e17c40f576ea6a5966110e107a42e29d9\n"
    },
    {
      "commit": "02df21bb4570a57dfa9e41f31d4785bdf4a7b76a",
      "tree": "d629d50892260108898aefb4ea114815922ec9aa",
      "parents": [
        "7cfc94ac3bfdff4d826effab4dda3ec6ea11b78c"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jan 07 14:55:18 2021 -0500"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Wed Jul 21 19:42:44 2021 -0400"
      },
      "message": "Emit XOR ops at OTA generation time\n\n1. Add a new merge operation type: COW_XOR\n2. When running bsdiff, extract similar blocks and record them in\nannotated operations\n3. During merge sequence generation, include COW_XOR ops as well\n\nTest: treehugger\nBug: 177104308\n\nChange-Id: If894736859b572e761e83be5a9498235caa68866\n"
    },
    {
      "commit": "4a7d2d442bcf90b7cb8402f95f98898226ad9aa7",
      "tree": "5ace05daf5e9642929561e5951df6bf8dd9c6686",
      "parents": [
        "481bf53e06a938203c42374a5273372e0756536a",
        "4b5b22896c6d5a01c5cf68f259f7c95aae84da87"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jul 15 21:45:37 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 15 21:45:37 2021 +0000"
      },
      "message": "Use ASSERT_* instead of EXPECT_* am: 7cfc94ac3b am: 4b5b22896c\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1768586\n\nChange-Id: Iffc2b0e01017f4ac9462acd14eb79fe861a7effd\n"
    },
    {
      "commit": "4b5b22896c6d5a01c5cf68f259f7c95aae84da87",
      "tree": "e19c50eccdee1d41e98978fd4e5c2f422f5347a1",
      "parents": [
        "e4018e3f38660a224bf5103fee42cfc95e53e4d6",
        "7cfc94ac3bfdff4d826effab4dda3ec6ea11b78c"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jul 15 21:30:22 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 15 21:30:22 2021 +0000"
      },
      "message": "Use ASSERT_* instead of EXPECT_* am: 7cfc94ac3b\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1768586\n\nChange-Id: Ibc7e39726301effd6eee900533b786c7470a209a\n"
    },
    {
      "commit": "7cfc94ac3bfdff4d826effab4dda3ec6ea11b78c",
      "tree": "e19c50eccdee1d41e98978fd4e5c2f422f5347a1",
      "parents": [
        "0de22fc8656c9a028637f591e33b260a2179cacd"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jul 15 12:15:46 2021 -0400"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Jul 15 12:19:21 2021 -0400"
      },
      "message": "Use ASSERT_* instead of EXPECT_*\n\nTest: th\nChange-Id: I12ccfbba9e7cab5d0b4bac04590a838657deffa9\n"
    },
    {
      "commit": "481bf53e06a938203c42374a5273372e0756536a",
      "tree": "30291f138bb94f45823c2dda58d82a000462e42a",
      "parents": [
        "b498b10f0e029b3bc58a112b983b35977692c05b",
        "e4018e3f38660a224bf5103fee42cfc95e53e4d6"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Jul 13 23:58:22 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 13 23:58:22 2021 +0000"
      },
      "message": "Add proto field to store xor operation in update manifest am: 0de22fc865 am: e4018e3f38\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1736935\n\nChange-Id: I62e3e899f71867aee434a07f634d92d912507b91\n"
    },
    {
      "commit": "e4018e3f38660a224bf5103fee42cfc95e53e4d6",
      "tree": "a710ed2a8de51250d64498fb1c72168fedce8837",
      "parents": [
        "75958682de23e358add07c4326b93d48d538034b",
        "0de22fc8656c9a028637f591e33b260a2179cacd"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Tue Jul 13 23:41:07 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 13 23:41:07 2021 +0000"
      },
      "message": "Add proto field to store xor operation in update manifest am: 0de22fc865\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1736935\n\nChange-Id: I0f314eef2508362263ad9ce58ae0fef6c054e976\n"
    },
    {
      "commit": "0de22fc8656c9a028637f591e33b260a2179cacd",
      "tree": "a710ed2a8de51250d64498fb1c72168fedce8837",
      "parents": [
        "cb419e6ffd41992a12be064c37d2df9f4f04cf30"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Mon Jun 14 13:24:39 2021 -0400"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 13 23:30:09 2021 +0000"
      },
      "message": "Add proto field to store xor operation in update manifest\n\nWhen generating OTA, we pre-compute which blocks inside a BSDIFF\ncan be represented by XOR operation, and store these blocks in\nthe merge sequence. When installing OTA, delta_performer\nlooks at the merge sequence, and convert blocks to specified\nCOW op type. If a block does not show up in the merge sequence,\nit is assumed to be COW_REPLACE type.\n\nTest: th\nBug: 177104308\n\nChange-Id: If04ca9cae036f2d3a365dcf92ba2447f7b08005a\n"
    }
  ],
  "next": "b498b10f0e029b3bc58a112b983b35977692c05b"
}
