docs: public static String encodeBytes( byte[] source, int off, int len, boolean breakLines )
      {
          int    len43   = len * 4 / 3;
          byte[] outBuff = new byte[   ( len43 )                      // Main 4:3
                                     + ( (len % 3) > 0 ? 4 : 0 )      // Account for padding
                                     + (breakLines ? ( len43 / MAX_LINE_LENGTH ) : 0) ]; // New lines      
          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;
              if( breakLines && lineLength == MAX_LINE_LENGTH )
              {   
                  outBuff[e+4] = NEW_LINE;
                  e++;
                  lineLength = 0;
              }   // end if: end of line
          }   // en dfor: each piece of array
          
          if( d < len )
          {
              encode3to4( source, d+off, len - d, outBuff, e );
              e += 4;
          }   // end if: some padding needed
          
          return new String( outBuff, 0, e );
      }