docs: protected int findSeparator() {
          int first;
          int match = 0;
          int maxpos = tail - boundaryLength;
          for (first = head;
               (first <= maxpos) && (match != boundaryLength);
               first++) {
              first = findByte(boundary[0], first);
              if (first == -1 || (first > maxpos)) {
                  return -1;
              }
              for (match = 1; match < boundaryLength; match++) {
                  if (buffer[first + match] != boundary[match]) {
                      break;
                  }
              }
          }
          if (match == boundaryLength) {
              return first - 1;
          }
          return -1;
      }