def submit(self, buf, *, bufid):
datagram = []           <EOL>HDL = buf.pop('<STR_LIT>')    <EOL>for (ack, buffer) in buf.items():<EOL><INDENT>if len(HDL) > <NUM_LIT:2> and self._strflg:<EOL><INDENT>data = []<EOL>start = stop = <NUM_LIT:0><EOL>for hole in HDL:<EOL><INDENT>stop = hole.first<EOL>byte = buffer['<STR_LIT>'][start:stop]<EOL>start = hole.last<EOL>if byte:    <EOL><INDENT>data.append(byte)<EOL><DEDENT><DEDENT>byte = buffer['<STR_LIT>'][start:]<EOL>if byte:    <EOL><INDENT>data.append(byte)<EOL><DEDENT>if data:    <EOL><INDENT>packet = Info(<EOL>NotImplemented=True,<EOL>id=Info(<EOL>src=(bufid[<NUM_LIT:0>], bufid[<NUM_LIT:2>]),<EOL>dst=(bufid[<NUM_LIT:1>], bufid[<NUM_LIT:3>]),<EOL>ack=ack,<EOL>),<EOL>index=tuple(buffer['<STR_LIT>']),<EOL>payload=tuple(data) or None,<EOL>packets=tuple(analyse(io.BytesIO(frag), len(frag)) for frag in data),<EOL>)<EOL>datagram.append(packet)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>data = buffer['<STR_LIT>']<EOL>if data:    <EOL><INDENT>packet = Info(<EOL>NotImplemented=False,<EOL>id=Info(<EOL>src=(bufid[<NUM_LIT:0>], bufid[<NUM_LIT:2>]),<EOL>dst=(bufid[<NUM_LIT:1>], bufid[<NUM_LIT:3>]),<EOL>ack=ack,<EOL>),<EOL>index=tuple(buffer['<STR_LIT>']),<EOL>payload=bytes(data) or None,<EOL>packets=(analyse(io.BytesIO(data), len(data)),),<EOL>)<EOL>datagram.append(packet)<EOL><DEDENT><DEDENT><DEDENT>return datagram<EOL>
Submit reassembled payload.

        Positional arguments:
            * buf -- dict, buffer dict of reassembled packets

        Keyword arguments:
            * bufid -- tuple, buffer identifier

        Returns:
            * list -- reassembled packets