protected boolean parseMcpCont(final String s, boolean[] exec, Map<String,String> keyValuePairs)
	{
		McpParseContState state = McpParseContState.START;
		String lastKey = "";
		int startIndex = 0;
		exec[0] = false; // never end on a continue tag
		for(int i=1;i<s.length();i++)
		{
			char c=s.charAt(i);
			switch(state)
			{
			case FINISH_CONTKEY:
				startIndex = i;
				state = McpParseContState.IN_LINE;
				break;
			case FINISH_CONTMCPKEY:
				if(!Character.isWhitespace(c))
				{
					startIndex = i;
					state = McpParseContState.IN_CONTKEY;
				}
				break;
			case IN_CONTKEY:
				if(Character.isWhitespace(c))
				{
					Log.errOut("Invalid MCPC "+state.toString()+": "+c+": "+s);
					return false;
				}
				else
				if(c==':')
				{
					lastKey = s.substring(startIndex,i);
					if(!keyValuePairs.containsKey(lastKey+"*"))
					{
						Log.errOut("Unknown CONT KEY: "+lastKey+": "+state.toString()+": "+c+": "+s);
						return false;
					}
					state = McpParseContState.FINISH_IN_CONTKEY;
				}
				break;
			case FINISH_IN_CONTKEY:
				if(!Character.isWhitespace(c))
				{
					Log.errOut("Unknown/Invalid/Bad MCP: "+state.toString()+": "+c+": "+s);
					return false;
				}
				state = McpParseContState.FINISH_CONTKEY;
				break;
			case IN_CONTMCPKEY:
				if(Character.isWhitespace(c))
				{
					if((!keyValuePairs.containsKey(MCP_DATA_TAG()))
					||(!s.substring(startIndex,i).equals(keyValuePairs.get(MCP_DATA_TAG()))))
					{
						Log.errOut("Unknown/Invalid CONT MCP KEY: "+s.substring(startIndex,i)+": "+state.toString()+": "+c+": "+s);
						return false;
					}
					state = McpParseContState.FINISH_CONTMCPKEY;
				}
				break;
			case START:
				if(!Character.isWhitespace(c))
				{
					startIndex=i;
					state=McpParseContState.IN_CONTMCPKEY;
				}
				break;
			case IN_LINE:
				break;
			default:
				break;
			}
		}
		switch(state)
		{
		case IN_LINE:
			if(keyValuePairs.containsKey(lastKey))
				keyValuePairs.put(lastKey, keyValuePairs.get(lastKey)+"\n\r"+s.substring(startIndex));
			else
				keyValuePairs.put(lastKey, s.substring(startIndex));
			break;
		case FINISH_IN_CONTKEY:
		case FINISH_CONTKEY:
			if(keyValuePairs.containsKey(lastKey))
				keyValuePairs.put(lastKey, keyValuePairs.get(lastKey)+"\n\r");
			else
				keyValuePairs.put(lastKey, "");
			break;
		default:
			Log.errOut("Invalid MCP CONT "+state.toString()+": " + s);
			return false;
		}
		return true;
	}