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').