<protocol name="Gamespy Protocol">
	<packet name="Info Query">
		<query>
			<bin>XGluZm9c</bin>
		</query>
		<response>
			<bin>
				XGhvc3RuYW1lXHxPb1BTfCBDbGFuIFRPOkFvVCB2MzE1IFB1YmxpYyBTZXJ2ZXItMjQwXGhv
				c3Rwb3J0XDc3NzdcbWFwdGl0bGVcRGVhZGx5IERyb3VnaHRcbWFwbmFtZVxUTy1Ecm91Z2h0
				XGdhbWV0eXBlXHNfU1dBVEdhbWVcbnVtcGxheWVyc1wyMFxtYXhwbGF5ZXJzXDIyXGdhbWVt
				b2RlXG9wZW5wbGF5aW5nXGdhbWV2ZXJcNDUxXG1pbm5ldHZlclw0MzJcd29ybGRsb2dcZmFs
				c2Vcd2FudHdvcmxkbG9nXGZhbHNlXHF1ZXJ5aWRcMjkuMVxmaW5hbFw=
			</bin>
			<ranges>
				<range type="string" color="0" start="1" length="8">Key</range>
				<range type="string" color="1" start="10" length="41">Value</range>
				<range type="string" color="0" start="52" length="8">Key</range>
				<range type="string" color="1" start="61" length="4">Value</range>
				<range type="string" color="2" start="238" length="7">Query ID (id.fragment)</range>
				<range type="string" color="3" start="251" length="5">Final Fragment</range>
			</ranges>
			<delimiters>
				<delimiter value="\\" />
			</delimiters>
		</response>
	</packet>
	<packet name="Rules Query">
		<query>
			<bin>XHJ1bGVzXA==</bin>
		</query>
		<response>
			<bin>
				XGxpc3RlbnNlcnZlclxGYWxzZVxwYXNzd29yZFxGYWxzZVx0aW1lbGltaXRcMjBcbWlucGxh
				eWVyc1wwXGNoYW5nZWxldmVsc1xUcnVlXG1heHRlYW1zXDJcYmFsYW5jZXRlYW1zXEZhbHNl
				XHBsYXllcnNiYWxhbmNldGVhbXNcVHJ1ZVxmcmllbmRseWZpcmVcMCVcdG91cm5hbWVudFxG
				YWxzZVxnYW1lc3R5bGVcSGFyZGNvcmVcQWRtaW5OYW1lXHxPb1BTfCBkb3duc2l6ZVxBZG1p
				bkVNYWlsXGRvd25zaXplIGF0IG9vcHNjbGFucyBkb3QgY29tXHF1ZXJ5aWRcNDguMVxmaW5h
				bFw=
			</bin>
			<ranges>
				<range type="string" color="0" start="1" length="12">Key</range>
				<range type="string" color="1" start="14" length="5">Value</range>
				<range type="string" color="0" start="20" length="8">Key</range>
				<range type="string" color="1" start="29" length="5">Value</range>
				<range type="string" color="2" start="253" length="7">Query ID (id.fragment)</range>
				<range type="string" color="3" start="266" length="5">Final Fragment</range>
			</ranges>
			<delimiters>
				<delimiter value="\\" />
			</delimiters>
		</response>
	</packet>
	<packet name="Players Query">
		<query>
			<bin>XHBsYXllcnNc</bin>
		</query>
		<response>
			<bin>
				XHBsYXllcl8wXEJyaWFuXGZyYWdzXzBcMVxwaW5nXzBcIDIyOVx0ZWFtXzBcMFxtZXNoXzBc
				TWFsZSBTb2xkaWVyXHNraW5fMFxUT1BNb2RlbHMuU2tpbnMuVGVyclxmYWNlXzBcVE9QTW9k
				ZWxzLlNraW5zLnJUZXgzV29vZFxuZ3NlY3JldF8wXHRydWVccGxheWVyXzFcYV9iZXR0ZXJf
				cGxheWVyXGZyYWdzXzFcMVxwaW5nXzFcIDIxM1x0ZWFtXzFcMFxtZXNoXzFcTWFsZSBTb2xk
				aWVyXHNraW5fMVxUT1BNb2RlbHMuU2tpbnMuVGVyclxmYWNlXzFcVE9QTW9kZWxzLlNraW5z
				LnJUZXgzR2VuZXJpY1xuZ3NlY3JldF8xXHRydWVccGxheWVyXzJcUGxheWVyMjBcZnJhZ3Nf
				MlwwXHBpbmdfMlwgMjExXHRlYW1fMlwwXG1lc2hfMlxNYWxlIFNvbGRpZXJcc2tpbl8yXFRP
				UE1vZGVscy5Ta2lucy5UZXJyXGZhY2VfMlxUT1BNb2RlbHMuU2tpbnMuclRleDNXb29kXG5n
				c2VjcmV0XzJcdHJ1ZVxwbGF5ZXJfM1xQbGF5ZXIxOFxmcmFnc18zXDBccGluZ18zXCAyMDlc
				dGVhbV8zXDBcbWVzaF8zXE1hbGUgU29sZGllclxza2luXzNcVE9QTW9kZWxzLlNraW5zLlRl
				cnJcZmFjZV8zXFRPUE1vZGVscy5Ta2lucy5yVGV4M1VyYmFuXG5nc2VjcmV0XzNcdHJ1ZVxw
				bGF5ZXJfNFxhZHNsXGZyYWdzXzRcMVxwaW5nXzRcIDI0N1x0ZWFtXzRcMFxtZXNoXzRcTWFs
				ZSBTb2xkaWVyXHNraW5fNFxUT1BNb2RlbHMuU2tpbnMuVGVyclxmYWNlXzRcVE9QTW9kZWxz
				LlNraW5zLnJUZXgzVXJiYW5cbmdzZWNyZXRfNFx0cnVlXHBsYXllcl81XHpuXGZyYWdzXzVc
				MFxwaW5nXzVcIDI2NFx0ZWFtXzVcMFxtZXNoXzVcTWFsZSBTb2xkaWVyXHNraW5fNVxUT1BN
				b2RlbHMuU2tpbnMuVGVyclxmYWNlXzVcVE9QTW9kZWxzLlNraW5zLnJUZXgzVXJiYW5cbmdz
				ZWNyZXRfNVx0cnVlXHF1ZXJ5aWRcNjAuMVxwbGF5ZXJfNlxHVE8kJCRPUlxmcmFnc182XDRc
				cGluZ182XCAzMTRcdGVhbV82XDBcbWVzaF82XE1hbGUgU29sZGllclxza2luXzZcVE9QTW9k
				ZWxzLlNraW5zLlRlcnJcZmFjZV82XFRPUE1vZGVscy5Ta2lucy5yVGV4M0dlbmVyaWNcbmdz
				ZWNyZXRfNlx0cnVlXHBsYXllcl83XHx8Xy1EYXJrU29sZGllci1ffHxcZnJhZ3NfN1wxMlxw
				aW5nXzdcIDMxOVx0ZWFtXzdcMVxtZXNoXzdcTWFsZSBTb2xkaWVyXHNraW5fN1xUT1BNb2Rl
				bHMuU2tpbnMuVGVyclxmYWNlXzdcVE9QTW9kZWxzLlNraW5zLnJUZXgzU1dBVFxuZ3NlY3Jl
				dF83XHRydWVccGxheWVyXzhceWl1XGZyYWdzXzhcMFxwaW5nXzhcIDI3Nlx0ZWFtXzhcMVxt
				ZXNoXzhcTWFsZSBTb2xkaWVyXHNraW5fOFxUT1BNb2RlbHMuU2tpbnMuVGVyclxmYWNlXzhc
				VE9QTW9kZWxzLlNraW5zLnJUZXgzU1dBVFxuZ3NlY3JldF84XHRydWVccGxheWVyXzlcVmly
				dXNcZnJhZ3NfOVwyXHBpbmdfOVwgMjcwXHRlYW1fOVwwXG1lc2hfOVxNYWxlIFNvbGRpZXJc
				c2tpbl85XFRPUE1vZGVscy5Ta2lucy5UZXJyXGZhY2VfOVxUT1BNb2RlbHMuU2tpbnMuclRl
				eDNVcmJhblxuZ3NlY3JldF85XHRydWVccGxheWVyXzEwXD09JydcZnJhZ3NfMTBcOFxwaW5n
				XzEwXCAyODRcdGVhbV8xMFwxXG1lc2hfMTBcTWFsZSBTb2xkaWVyXHNraW5fMTBcVE9QTW9k
				ZWxzLlNraW5zLlRlcnJcZmFjZV8xMFxUT1BNb2RlbHMuU2tpbnMuclRleDNQXG5nc2VjcmV0
				XzEwXHRydWVccGxheWVyXzExXEJLXGZyYWdzXzExXDJccGluZ18xMVwgMjcwXHRlYW1fMTFc
				MVxtZXNoXzExXE1hbGUgU29sZGllclxza2luXzExXFRPUE1vZGVscy5Ta2lucy5TZWFsXGZh
				Y2VfMTFcVE9QTW9kZWxzLlNraW5zLmV4M1BcbmdzZWNyZXRfMTFcdHJ1ZVxxdWVyeWlkXDYw
				LjJccGxheWVyXzEyXDg4ODg4OFxmcmFnc18xMlw5XHBpbmdfMTJcIDY5MVx0ZWFtXzEyXDBc
				bWVzaF8xMlxNYWxlIFNvbGRpZXJcc2tpbl8xMlxUT1BNb2RlbHMuU2tpbnMuVGVyclxmYWNl
				XzEyXFRPUE1vZGVscy5Ta2lucy5yVGV4M1VyYmFuXG5nc2VjcmV0XzEyXHRydWVccGxheWVy
				XzEzXENvYnJhXGZyYWdzXzEzXDhccGluZ18xM1wgMzExXHRlYW1fMTNcMVxtZXNoXzEzXE1h
				bGUgU29sZGllclxza2luXzEzXFRPUE1vZGVscy5Ta2lucy5TZWFsXGZhY2VfMTNcVE9QTW9k
				ZWxzLlNraW5zLmV4M1BcbmdzZWNyZXRfMTNcdHJ1ZVxwbGF5ZXJfMTRcRGFydGhfRGlzYXN0
				ZXJvdXNcZnJhZ3NfMTRcMjZccGluZ18xNFwgMTI1XHRlYW1fMTRcMVxtZXNoXzE0XE1hbGUg
				U29sZGllclxza2luXzE0XFRPUE1vZGVscy5Ta2lucy5TZWFsXGZhY2VfMTRcVE9QTW9kZWxz
				LlNraW5zLmV4M1BcbmdzZWNyZXRfMTRcdHJ1ZVxwbGF5ZXJfMTVca3UyNThcZnJhZ3NfMTVc
				NFxwaW5nXzE1XCA2NzBcdGVhbV8xNVwxXG1lc2hfMTVcTWFsZSBTb2xkaWVyXHNraW5fMTVc
				VE9QTW9kZWxzLlNraW5zLlNlYWxcZmFjZV8xNVxUT1BNb2RlbHMuU2tpbnMuZXgzUFxuZ3Nl
				Y3JldF8xNVx0cnVlXHBsYXllcl8xNlx3d3dcZnJhZ3NfMTZcMTFccGluZ18xNlwgNzg0XHRl
				YW1fMTZcMVxtZXNoXzE2XE1hbGUgU29sZGllclxza2luXzE2XFRPUE1vZGVscy5Ta2lucy5U
				ZXJyXGZhY2VfMTZcVE9QTW9kZWxzLlNraW5zLnJUZXgzU1dBVFxuZ3NlY3JldF8xNlx0cnVl
				XHBsYXllcl8xN1xAYmlsbEBcZnJhZ3NfMTdcOVxwaW5nXzE3XCAyNDJcdGVhbV8xN1wwXG1l
				c2hfMTdcTWFsZSBTb2xkaWVyXHNraW5fMTdcVE9QTW9kZWxzLlNraW5zLlRlcnJcZmFjZV8x
				N1xUT1BNb2RlbHMuU2tpbnMuclRleDNHZW5lcmljXG5nc2VjcmV0XzE3XHRydWVccXVlcnlp
				ZFw2MC4zXHBsYXllcl8xOFxza3lcZnJhZ3NfMThcMlxwaW5nXzE4XCAyNDVcdGVhbV8xOFwx
				XG1lc2hfMThcTWFsZSBTb2xkaWVyXHNraW5fMThcVE9QTW9kZWxzLlNraW5zLlRlcnJcZmFj
				ZV8xOFxUT1BNb2RlbHMuU2tpbnMuclRleDNTV0FUXG5nc2VjcmV0XzE4XHRydWVccGxheWVy
				XzE5XERZTkFNSUNfTkFQQUxNXGZyYWdzXzE5XDIxXHBpbmdfMTlcIDEwOVx0ZWFtXzE5XDBc
				bWVzaF8xOVxNYWxlIFNvbGRpZXJcc2tpbl8xOVxUT1BNb2RlbHMuU2tpbnMuVGVyclxmYWNl
				XzE5XFRPUE1vZGVscy5Ta2lucy5yVGV4M0dlbmVyaWNcbmdzZWNyZXRfMTlcdHJ1ZVxxdWVy
				eWlkXDYwLjRcZmluYWxc
			</bin>
			<ranges>
				<range type="string" color="0" start="1" length="8">Key</range>
				<range type="string" color="1" start="10" length="5">Value</range>
				<range type="string" color="0" start="16" length="7">Key</range>
				<range type="string" color="1" start="24" length="1">Value</range>
				<range type="string" color="2" start="877" length="7">Query ID (id.fragment)</range>
				<range type="string" color="2" start="1772" length="7">Query ID (id.fragment)</range>
				<range type="string" color="2" start="2694" length="7">Query ID (id.fragment)</range>
				<range type="string" color="2" start="3020" length="7">Query ID (id.fragment)</range>
				<range type="string" color="3" start="3033" length="5">Final Fragment</range>
			</ranges>
			<delimiters>
				<delimiter value="\\" />
			</delimiters>
			<comments>
			<![CDATA[
				The whole response is a bunch of key/value pairs.<br /><br />
				
				All the player/frags etc keys have a number after them.  This is because you won't always get the players in order of player, frags, ping - many servers will send all the player keys, then all the frags keys etc.<br /><br />
				
				The query id holds the fragment id which can be used to reconstruct a full response if you get split packets.<br /><br />
				
				The final packet contains the \final\ key.  If you havn't recieved all the fragments up to this one there may be more packets to recieve.<br /><br />
				
				If you receive split packets they might come out of order.  Use the fragment id to see where to piece them together.  This response came in 4 packets, and you can see 4 query ids.
			]]>
			</comments>
		</response>
	</packet>
</protocol>