docs: public long addRange(long start, long end) {
          Range<Long> newRange = range(start, end);
          long nonOverlapSize = end - start + 1;
          if (m_map.intersects(newRange)) {
               for (Range<Long> next : m_map.asRanges()) {
                   if (next.isConnected(newRange)) {
                       Range<Long> intersection = next.intersection(newRange);
                       nonOverlapSize -= end(intersection) - start(intersection) + 1;
                   }
               }
          }
          m_map.add(newRange);
          return nonOverlapSize;
      }