code: public boolean containsAll(Object o) {
          if (!(o instanceof VictimsRecord)) {
              return false;
          }
          VictimsRecord that = (VictimsRecord) o;
  
          for (Algorithms algorithm : VictimsConfig.algorithms()) {
              if (!(this.containsAlgorithm(algorithm) && that
                      .containsAlgorithm(algorithm))) {
                  // skip if both this and that do not have the current algorithm
                  continue;
              }
              HashSet<String> thatHashes = new HashSet<String>(that.getHashes(
                      algorithm).keySet());
              HashSet<String> thisHashes = new HashSet<String>(this.getHashes(
                      algorithm).keySet());
  
              if (thisHashes.isEmpty() || thatHashes.isEmpty()) {
                  // there is no real value in comparing empty sets
                  continue;
              }
  
              if (thisHashes.containsAll(thatHashes)) {
                  // we found a subset match
                  return true;
              }
          }
  
          // we have gone through all algorithms without finding a subset match
          return this.hash.equals(that.hash);
      }
docs: Test if this instance of {@link VictimsRecord} contains all the file
  hashes present in the given instance. Comparison is done on all available
  algorithms until a subset match is found. If for an algorithm, either
  this or that record is empty, check is skipped.
  
  @param that
  @return