<?xml version="1.0" encoding="ISO-8859-1"?>
<fsm name="CHAT_Utterances">
	<char-set id="PERIOD">
		<char>.</char>
	</char-set>
	<char-set id="QUESTION_MARK">
		<char>?</char>
	</char-set>
	<char-set id="EXCLAMATION_MARK">
		<char>!</char>
	</char-set>
	<char-set id="SPACE">
		<!-- Plain space character -->
		<char>&#x0020;</char>
	</char-set>
	<start-state id="SegmentChainStarts"/>
	<end-state id="SegmentChainParsedSuccessfully"/>
	<transitions source="SegmentChainStarts">
		<transition>
			<input-char-set id="PERIOD"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="QUESTION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="EXCLAMATION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-end/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="SPACE"/>
			<target id="SegmentChainOpen_UtteranceOpen"/>
			<output oo="yes">
				<prefix><![CDATA[<ts n="sc" s="" e="">]]><![CDATA[<ts n="CHAT:u" s="" e="">]]></prefix>
			</output>
		</transition>
		<transition>
			<input-other/>
			<target id="SegmentChainOpen_UtteranceOpen"/>
			<output oo="yes">
				<prefix><![CDATA[<ts n="sc" s="" e="">]]><![CDATA[<ts n="CHAT:u" s="" e="">]]></prefix>
			</output>
		</transition>
	</transitions>
	<transitions source="SegmentChainOpen_UtteranceOpen">
		<transition>
			<input-char-set id="SPACE"/>
			<target id="SegmentChainOpen_UtteranceOpen"/>
			<output oo="yes"/>
		</transition>
		<transition>
			<input-other/>
			<target id="SegmentChainOpen_UtteranceOpen"/>
			<output oo="yes"/>
		</transition>
		<transition>
			<input-end/>
			<target id="SegmentChainParsedSuccessfully"/>
			<output oo="no">
				<prefix><![CDATA[</ts>]]><![CDATA[</ts>]]></prefix>
			</output>
		</transition>
		<transition>
			<input-char-set id="QUESTION_MARK"/>
			<target id="QuestionMarkEncountered"/>
			<output oo="yes"/>
		</transition>
		<transition>
			<input-char-set id="EXCLAMATION_MARK"/>
			<target id="ExclamationMarkEncountered"/>
			<output oo="yes"/>
		</transition>
		<transition>
			<input-char-set id="PERIOD"/>
			<target id="OnePeriodEncountered"/>
			<output oo="yes"/>
		</transition>
	</transitions>
	<transitions source="QuestionMarkEncountered">
		<transition>
			<input-char-set id="PERIOD"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="EXCLAMATION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="QUESTION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-end/>
			<target id="SegmentChainParsedSuccessfully"/>
			<output oo="no">
				<prefix><![CDATA[</ts>]]><![CDATA[</ts>]]></prefix>
			</output>
		</transition>
		<transition>
			<input-char-set id="SPACE"/>
			<target id="SegmentChainOpen"/>
			<output oo="yes">
				<suffix><![CDATA[</ts>]]></suffix>
			</output>
		</transition>
		<transition>
			<input-other/>
			<target id="SegmentChainOpen_UtteranceOpen"/>
			<output oo="yes">
				<prefix><![CDATA[</ts>]]><![CDATA[<ts n="CHAT:u" s="" e="">]]></prefix>
			</output>
		</transition>
	</transitions>
	<transitions source="ExclamationMarkEncountered">
		<transition>
			<input-char-set id="PERIOD"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="EXCLAMATION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="QUESTION_MARK"/>
			<target id="QuestionMarkEncountered"/>
			<output oo="yes"/>
		</transition>
		<transition>
			<input-end/>
			<target id="SegmentChainParsedSuccessfully"/>
			<output oo="no">
				<prefix><![CDATA[</ts>]]><![CDATA[</ts>]]></prefix>
			</output>
		</transition>
		<transition>
			<input-char-set id="SPACE"/>
			<target id="SegmentChainOpen"/>
			<output oo="yes">
				<suffix><![CDATA[</ts>]]></suffix>
			</output>
		</transition>
		<transition>
			<input-other/>
			<target id="SegmentChainOpen_UtteranceOpen"/>
			<output oo="yes">
				<prefix><![CDATA[</ts>]]><![CDATA[<ts n="CHAT:u" s="" e="">]]></prefix>
			</output>
		</transition>
	</transitions>
	<transitions source="OnePeriodEncountered">
		<transition>
			<input-char-set id="QUESTION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="EXCLAMATION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="PERIOD"/>
			<target id="TwoPeriodsEncountered"/>
			<output oo="yes"/>
		</transition>
		<transition>
			<input-end/>
			<target id="SegmentChainParsedSuccessfully"/>
			<output oo="no">
				<prefix><![CDATA[</ts>]]><![CDATA[</ts>]]></prefix>
			</output>
		</transition>
		<transition>
			<input-char-set id="SPACE"/>
			<target id="SegmentChainOpen"/>
			<output oo="yes">
				<suffix><![CDATA[</ts>]]></suffix>
			</output>
		</transition>
		<transition>
			<input-other/>
			<target id="SegmentChainOpen_UtteranceOpen"/>
			<output oo="yes">
				<prefix><![CDATA[</ts>]]><![CDATA[<ts n="CHAT:u" s="" e="">]]></prefix>
			</output>
		</transition>
	</transitions>
	<transitions source="TwoPeriodsEncountered">
		<transition>
			<input-char-set id="QUESTION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="EXCLAMATION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="PERIOD"/>
			<target id="QuestionMarkEncountered"/>
			<output oo="yes"/>
		</transition>
		<transition>
			<input-end/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="SPACE"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-other/>
			<target id="Error"/>
		</transition>
	</transitions>
	<transitions source="SegmentChainOpen">
		<transition>
			<input-char-set id="PERIOD"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="QUESTION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-char-set id="EXCLAMATION_MARK"/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-end/>
			<target id="SegmentChainParsedSuccessfully"/>
			<output oo="no">
				<prefix><![CDATA[</ts>]]></prefix>
			</output>
		</transition>
		<transition>
			<input-char-set id="SPACE"/>
			<target id="SegmentChainOpen_UtteranceOpen"/>
			<output oo="yes">
				<prefix><![CDATA[<ts n="CHAT:u" s="" e="">]]></prefix>
			</output>
		</transition>
		<transition>
			<input-other/>
			<target id="SegmentChainOpen_UtteranceOpen"/>
			<output oo="yes">
				<prefix><![CDATA[<ts n="CHAT:u" s="" e="">]]></prefix>
			</output>
		</transition>
	</transitions>
	<transitions source="Error">
		<transition>
			<input-other/>
			<target id="Error"/>
		</transition>
		<transition>
			<input-end/>
			<target id="Error"/>
		</transition>
	</transitions>
	<transitions source="SegmentChainParsedSuccessfully">
		<transition>
			<input-end/>
			<target id="SegmentChainParsedSuccessfully"/>
		</transition>
		<transition>
			<input-other/>
			<target id="SegmentChainParsedSuccessfully"/>
		</transition>
	</transitions>
</fsm>
