get_server_probcli_version_and_user_interrupt_ref(Git,UserSignalRef) :-
        term_to_server(get_version(Maj,Min,Service,Qual,GitRevision,LastChanged,Prolog),
                        ['Maj'=Maj,'Min'=Min,'Service'=Service,'Qual'=Qual,
                         'GitRevision'=GitRevision,'LastChanged'=LastChanged,'Prolog'=Prolog]),
        codes_from_server(Codes1),
        append(Codes1,".",C1),
        (read_from_codes(C1,yes(Bindings)),
         member('GitRevision'=Git,Bindings) -> true
          ; Git='?'),
        % note these two calls should not perform call_backs or progress info
        term_to_server(get_user_signal_reference(Ref),['Ref'=Ref]),
        codes_from_server(Codes2),
        (read_from_codes_dot(Codes2,yes(Bindings2)),
         member('Ref'=UserSignalRef,Bindings2) -> true
          ; UserSignalRef='0').