code: private Region find(long size) {
      validate(!VALIDATING || Long.bitCount(size) == 1);
  
      Region current = this.root;
      if ((current.available() & size) == 0) {
        //no region big enough for us...
        return null;
      } else {
        while (true) {
          if (current.left != null && (current.left.available() & size) != 0) {
            current = current.left;
          } else if ((current.availableHere() & size) != 0) {
            long mask = size - 1;
            long a = (current.start() + mask) & ~mask;
            return new Region(a, a + size - 1);
          } else if (current.right != null && (current.right.available() & size) != 0) {
            current = current.right;
          } else {
            throw new AssertionError();
          }
        }
      }
    }
docs: Find a region of the given size.