text: public final List<FooterLine> getFooterLines() {final byte[] raw = buffer;int ptr = raw.length - 1;while (raw[ptr] == '\n') ptr--;final int msgB = RawParseUtils.commitMessage(raw, 0);final ArrayList<FooterLine> r = new ArrayList<>(4);final Charset enc = guessEncoding();for (;;) {ptr = RawParseUtils.prevLF(raw, ptr);if (ptr <= msgB)break; final int keyStart = ptr + 2;if (raw[keyStart] == '\n')break; final int keyEnd = RawParseUtils.endOfFooterLineKey(raw, keyStart);if (keyEnd < 0)continue; int valStart = keyEnd + 1;while (valStart < raw.length && raw[valStart] == ' ')valStart++;int valEnd = RawParseUtils.nextLF(raw, valStart);if (raw[valEnd - 1] == '\n')valEnd--;r.add(new FooterLine(raw, enc, keyStart, keyEnd, valStart, valEnd));}Collections.reverse(r);return r;}