int i = k % block.length; if (k != 0 && i == 0) { block = new_block; new_block = new byte[block.length]; } new_block[i] = bt; a -= (block[i]&0xff) + char_offset; a += (bt & 0xff) + char_offset; b -= l * ((block[i]&0xff) + char_offset);
a -= block[k] + char_offset; b -= l * (block[k] + char_offset); a += bt + char_offset;
   public void roll(byte bt) {      int i = k % block.length;      if (k != 0 && i == 0) {         block = new_block;         new_block = new byte[block.length];      }      new_block[i] = bt;      a -= (block[i]&0xff) + char_offset;      a += (bt & 0xff) + char_offset;      b -= l * ((block[i]&0xff) + char_offset);      b += a;      k++;   }