Namespace resolveNamespace(Program srcProgram, Namespace srcNamespace)
			throws DuplicateNameException, InvalidInputException {
		Namespace srcGlobalNs = srcProgram.getGlobalNamespace();
		if (srcNamespace == null) {
			return null;
		}
		if (srcNamespace.equals(srcGlobalNs)) {
			return resultPgm.getGlobalNamespace();
		}
		Namespace resolvedNamespace = null;
		SymbolTable resolveSymTab = resultPgm.getSymbolTable();
		Symbol srcNsSymbol = srcNamespace.getSymbol();
		long srcNsID = srcNsSymbol.getID();
		long resolveNsID = resolveSymbolID(srcProgram, srcNsID);
		if (resolveNsID >= 0) { // Found the corresponding namespace symbol ID in result program.
			Symbol resolveSym = resolveSymTab.getSymbol(resolveNsID);
			resolvedNamespace = (Namespace) resolveSym.getObject();
		}
		else { // Didn't find the corresponding namespace symbol ID in result program.
				// Try to resolve the parent's ID and use it to get/create a namespace.
			Namespace origParentNs = srcNamespace.getParentNamespace();
			Namespace resultParentNs = resolveNamespace(srcProgram, origParentNs);
			String name = srcNsSymbol.getName();
			SymbolType st = srcNsSymbol.getSymbolType();
			Address resultAddr = SimpleDiffUtility.getCompatibleAddress(srcProgram,
				srcNsSymbol.getAddress(), resultPgm);
			resolvedNamespace = createNamespace(resultPgm, name, st, resultAddr, resultParentNs,
				srcProgram, srcNsSymbol.getID(), srcNsSymbol.getSource());
		}
		return resolvedNamespace;
	}
This method allows other listing merge managers to resolve a namespace
via the symbol merge manager. This is because the symbol merge manager
actually merges namespaces and best knows how to resolve them.
It also keeps track of how they have been resolved.
@param srcProgram the program version that the namespace to be resolved is coming from.
@param srcNamespace the namespace to be resolved
@return the namespace from the result program version
@throws DuplicateNameException if the name space can't be resolved due
to a name conflict that can't be dealt with.
@throws InvalidInputException if the name space is not validly named
for the result program.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/SymbolMerger.java