'Return final digest value.'

def digest(self):

    if (self._digest is None):
        if self._buf:
            self._add_block(self._buf)
            self._buf = EMPTY
        ctx = self._blake2s(0, 1, True)
        for t in self._thread:
            ctx.update(t.digest())
        self._digest = ctx.digest()
    return self._digest
