| resetRoot(ObjectReader, AnyObjectId) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| back(int) |   | 87% |   | 78% | 3 | 8 | 2 | 23 | 0 | 1 |
| createSubtreeIterator(ObjectReader, MutableObjectId) |   | 64% |   | 50% | 1 | 2 | 2 | 5 | 0 | 1 |
| next(int) |   | 91% |   | 85% | 2 | 8 | 1 | 19 | 0 | 1 |
| parseEntry() |  | 100% |  | 100% | 0 | 4 | 0 | 21 | 0 | 1 |
| next() |  | 100% |  | 100% | 0 | 3 | 0 | 11 | 0 | 1 |
| loadAttributes(ObjectReader, AnyObjectId) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| reset(byte[]) |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| findAttributes(ObjectReader) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| getEntryAttributesNode(ObjectReader) |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 1 |
| createSubtreeIterator0(ObjectReader, AnyObjectId) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| eof() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| CanonicalTreeParser(byte[], ObjectReader, AnyObjectId) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| reset(ObjectReader, AnyObjectId) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| reset() |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| createSubtreeIterator(ObjectReader) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| first() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| CanonicalTreeParser() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| idOffset() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| noAttributes() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| CanonicalTreeParser(CanonicalTreeParser) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getParent() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| idBuffer() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hasId() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |