runlength: compress and decompress