private static Map<String, String> getParamMapFromString(String paramsStr)
			throws MalformedURLException {
		Map<String, String> paramMap = new HashMap<>();
		String[] fields = paramsStr.split("&");
		for (String field : fields) {
			int equalIdx = field.indexOf('=');
			String name = (equalIdx > 0) ? field.substring(0, equalIdx) : "";
			String value = (equalIdx >= 0) ? field.substring(equalIdx + 1) : field;

			name = FSUtilities.escapeDecode(name);
			value = FSUtilities.escapeDecode(value);

			paramMap.put(name, value);
		}
		return paramMap;
	}
Creates a single {@link FSRL} from a FSRL-part string.
<p>
A FSRL-part string is defined as protocol_string + "://" + path_string + "?" + param_string.
<p>
There should be  no '|' separator characters present in the FSRL-part string.
<p>
Backslash characters in the path are normalized to forward slashes after decoding any
hex encoded character values (ie. %20 becomes ' ' (32) ).  See {@link FSUtilities#escapeEncode(String)}.

@param containerFile the parent container file that contains this filesystem's data
@param partStr the string that defines this portion of the FSRL
@return new FSRL instance, who's FSLRRoot is parented on containerFile.

@throws MalformedURLException if the partStr is formatted incorrectly
Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSRL.java