anchor.diff:      Intersection = intervals:intersection(MyIMapped, SrcIMapped),
       case intervals:is_empty(Intersection) of
           true ->
  -            ?TRACE("SYNC CLIENT - INTERSECTION EMPTY", []),
               comm:send_local(self(), {shutdown, intersection_empty});
           false ->
               MyIntersec = mapInterval_to_range(Intersection, MyInterval, 2),
  
positive.code: 
  -spec fork_recon(state(), rep_upd:round()) -> {ok, pid()}.
  fork_recon(Conf, {ReconRound, Fork}) ->
      State = Conf#ru_recon_state{ sync_round = {ReconRound, Fork} },
      comm:send_local(Conf#ru_recon_state.ownerLocalPid, {recon_forked}),
      gen_component:start(?MODULE, fun ?MODULE:on/2, State).
  
  
negative.code:        true -> ok
      end,
      State#ru_recon_state{ stats = FinalStats }.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec begin_sync(recon_struct(), state()) -> ru_recon_stats:stats().
  begin_sync(SyncStruct, State = #ru_recon_state{recon_method = RMethod,
                                                 recon_struct = Params,
                                                 sync_round = Round,
                                                 sync_pid = SrcPid,
                                                 dhtNodePid = DhtNodePid,
                                                 ownerRemotePid = OwnerPid,
                                                 dest_ru_pid = DestRU_Pid,                                       
                                                 sync_master = IsMaster, 
                                                 stats = Stats }) ->
       case RMethod of
           merkle_tree -> 
              case IsMaster of
                  true -> comm:send(SrcPid, 
                                    {check_node, comm:this(), 
                                     merkle_tree:get_interval(SyncStruct), 
                                     merkle_tree:get_hash(SyncStruct)});            
                  false ->comm:send(DestRU_Pid, 
                                    {request_recon, OwnerPid, Round, true, 
                                     res_shared_interval, merkle_tree,
                                     [{interval, merkle_tree:get_interval(SyncStruct)},
                                      {senderPid, comm:this()}]})
              end,
              ru_recon_stats:set(
                [{tree_compareLeft, ?IIF(IsMaster, 1, 0)},
                 {tree_size, merkle_tree:size_detail(SyncStruct)}], Stats);
           bloom when IsMaster ->
              DestKey = select_sync_node(proplists:get_value(interval, Params)),
              comm:send_local(DhtNodePid, 
                              {lookup_aux, DestKey, 0, 
                               {send_to_group_member, rep_upd, 
                                {request_recon, OwnerPid, Round, false, reconciliation, bloom, SyncStruct}}}),
              comm:send_local(self(), {shutdown, {ok, build_struct}}),
              Stats;
           art ->
              {AOk, ARStats} = case IsMaster of
                  true -> art_recon(SyncStruct, proplists:get_value(art, Params), State);                    
                  false ->
                      comm:send(DestRU_Pid, 
                                {request_recon, OwnerPid, Round, true, 
                                 res_shared_interval, art,
                                 [{interval, art:get_interval(SyncStruct)},
                                  {senderPid, comm:this()},
                                  {art, SyncStruct}]}),
                      {no, Stats}
              end,            
              comm:send_local(self(), {shutdown, ?IIF(AOk =:= ok, sync_finished, client_art_send)}),
              ARStats
      end.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % Merkle Tree specific
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  