src/main/java/io/reactivex/internal/operators/flowable/FlowableReplay.java
public static <U, R> Flowable<R> multicastSelector(
            final Callable<? extends ConnectableFlowable<U>> connectableFactory,
            final Function<? super Flowable<U>, ? extends Publisher<R>> selector) {
        return new MulticastFlowable<R, U>(connectableFactory, selector);
    }
public static <U, R> Flowable<R> multicastSelector(
            final Callable<? extends ConnectableFlowable<U>> connectableFactory,
            final Function<? super Flowable<U>, ? extends Publisher<R>> selector) {
        return new MulticastFlowable<R, U>(connectableFactory, selector);
    }
Given a connectable observable factory, it multicasts over the generated
ConnectableObservable via a selector function.
@param <U> the connectable observable type
@param <R> the result type
@param connectableFactory the factory that returns a ConnectableFlowable for each individual subscriber
@param selector the function that receives a Flowable and should return another Flowable that will be subscribed to
@return the new Observable instance