code: public <VV> EntryStream<K, VV> flatMapValues(Function<? super V, ? extends Stream<? extends VV>> mapper) {
          return new EntryStream<>(stream().flatMap(e -> withKey(e.getKey(), mapper.apply(e.getValue()))), context);
      }
docs: Returns an {@code EntryStream} consisting of the entries whose values are
  results of replacing source values with the contents of a mapped stream
  produced by applying the provided mapping function to each source value
  and keys are left intact. Each mapped stream is
  {@link java.util.stream.BaseStream#close() closed} after its contents
  have been placed into this stream. (If a mapped stream is {@code null} an
  empty stream is used, instead.)
  
  <p>
  This is an <a href="package-summary.html#StreamOps">intermediate
  operation</a>.
  
  @param <VV> The type of new values
  @param mapper a <a
  href="package-summary.html#NonInterference">non-interfering </a>,
  <a href="package-summary.html#Statelessness">stateless</a>
  function to apply to each value which produces a stream of new
  values
  @return the new stream