'Handle the tail of a \'git-receive-pack\' request.
:param proto: Protocol object to read from
:param capabilities: List of negotiated capabilities
:param progress: Optional progress reporting function'

def _handle_receive_pack_tail(self, proto, capabilities, progress=None):

    if (CAPABILITY_SIDE_BAND_64K in capabilities):
        if (progress is None):
            def progress(x):
                pass
        channel_callbacks = {2: progress}
        if (CAPABILITY_REPORT_STATUS in capabilities):
            channel_callbacks[1] = PktLineParser(self._report_status_parser.handle_packet).parse
        self._read_side_band64k_data(proto, channel_callbacks)
    elif (CAPABILITY_REPORT_STATUS in capabilities):
        for pkt in proto.read_pkt_seq():
            self._report_status_parser.handle_packet(pkt)
    if (self._report_status_parser is not None):
        self._report_status_parser.check()
