public void localRun(HashSet<Long> completedUsers,
				TreeMap<Long, Long> parent, TreeMap<Long, Integer> local,
				TreeMap<Long, Integer> total) throws InterruptedException {
			TreeSet<Long> done = new TreeSet<Long>();
			for (int i = lines.size() - 1; i >= 0; i--) {
				long child = lines.get(i);
				if(done.contains(child))
					continue;
				done.add(child);
				long parentId;
				if (parent.containsKey(child))
					parentId = parent.get(child);
				else
					parentId = child;
				if (!total.containsKey(parentId))
					total.put(parentId, 0);
				if (local.containsKey(child)) // zero if no cascades from
												// this child
					total.put(parentId, total.get(parentId) + local.get(child));
			}
			for (Entry<Long, Integer> e : local.entrySet()) {
				if (!tr.containsKey(e.getKey()))
					tr.put(e.getKey(), new UserNode());
				UserNode u = tr.get(e.getKey());
				u.localInfSum.addAndGet(e.getValue());
				if (!total.containsKey(e.getKey()))
					total.put(e.getKey(), 0);
				total.put(e.getKey(), total.get(e.getKey()) + e.getValue());
				u.updateMinLocalInf(e.getValue());
				u.updateMaxLocalInf(e.getValue());
			}
		}