code: public static ImmutableMultimap<Symbol, Symbol> loadSymbolMultimap(CharSource multimapSource)
        throws IOException {
      final ImmutableMultimap<String, String> stringMM = loadStringMultimap(multimapSource);
      final ImmutableMultimap.Builder<Symbol, Symbol> ret = ImmutableMultimap.builder();
  
      for (final Map.Entry<String, Collection<String>> entry : stringMM.asMap().entrySet()) {
        ret.putAll(Symbol.from(entry.getKey()),
            Collections2.transform(entry.getValue(), Symbol.FromString));
      }
  
      return ret.build();
    }
docs: Loads a file in the format {@code key value1 value2 value3} (tab-separated) into a {@link
  com.google.common.collect.Multimap} of {@link com.bbn.bue.common.symbols.Symbol} to Symbol.
  Each key should only appear on one line, and there should be no duplicate values. Each key and
  value has whitespace trimmed off. Skips empty lines and allows comment-lines with {@code #} in
  the first position. If a key has no values, it will not show up in the keySet of the returned
  multimap.