docs: public final byte[] encode(byte[] source, int off, int len) {		
  		int	len43 = len * 4 / 3;
  		byte[] outBuff = new byte[ ( len43 )					  // main 4:3
  								   + ( (len % 3) > 0 ? 4 : 0 ) ]; // account for padding
  		int d = 0;
  		int e = 0;
  		int len2 = len - 2;
  		int lineLength = 0;
  		for (; d < len2; d+=3, e+=4) {
  			encode3to4(source, d+off, 3, outBuff, e);
  
  			lineLength += 4;
  		} // end for: each piece of array
  
  		if (d < len) {
  			encode3to4(source, d+off, len - d, outBuff, e);
  			e += 4;
  		} // end if: some padding needed
  		
  		byte[] out = new byte[e];
  		System.arraycopy(outBuff, 0, out, 0, e); 
  		return out;
  	}