[
	{
		"comment": "CONNECT TESTS ARE INCOMPLETE",
		"group": "v3.1   CONNECT",
		"ver":3,
		"connect":false,
		"tests": [
			{ "name": "10 ok ", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r15 s6 'MQIsdp' 03 01 k10 s1 'p'", "comment":"minimal valid CONNECT"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"}
			]},
			{ "name": "14 ok ", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"14 r15 s6 'MQIsdp' 03 01 k10 s1 'p'", "comment":"CONNECT with QoS=1"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"}
			]},
			{ "name": "10 proto ver 2", "msgs":[
				{"type":"send", "payload":"10 r15 s6 'MQIsdp' 02 00 k10 s1 'p'", "comment":"CONNECT"},
				{"type":"recv", "payload":"20 r3 00 84 00", "comment": "CONNACK identifier rejected"}
			]},
			{ "name": "10 proto ver 6", "msgs":[
				{"type":"send", "payload":"10 r15 s6 'MQIsdp' 06 00 k10 s1 'p'", "comment":"CONNECT"},
				{"type":"recv", "payload":"20 r3 00 84 00", "comment": "CONNACK identifier rejected"}
			]},
			{ "name": "10 empty client ID", "msgs":[
				{"type":"send", "payload":"10 r14 s6 'MQIsdp' 03 02 k10 0000", "comment":"CONNECT clean session true, no client id"},
				{"type":"recv", "payload":"20 r2 00 02", "comment": "CONNACK"}
			]},
			{ "name": "10 ok", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r15 s6 'MQIsdp' 03 02 k10 s1 'p'", "comment":"CONNECT clean session true, no client id"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"}
			]},
			{ "name": "10 remaining length 5 bytes", "msgs":[
				{"type":"send", "payload":"10 r268435456 s6 'MQIsdp' 03 02 k10 s1 'p'", "comment":"minimal valid CONNECT"}
			]}
		]
	},
	{
		"group": "v3.1.1 CONNECT",
		"ver":4,
		"connect":false,
		"tests": [
			{ "name": "10 ok ", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r13 s4 'MQTT' 04 02 k10 s1 'p'", "comment":"minimal valid CONNECT"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"}
			]},
			{ "name": "10 [MQTT-3.1.0-2]", "msgs":[
				{"type":"send", "payload":"10 r13 s4 'MQTT' 04 02 k10 s1 'p'", "comment":"minimal valid CONNECT"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"},
				{"type":"send", "payload":"10 r13 s4 'MQTT' 04 02 k10 s1 'p'", "comment":"minimal valid CONNECT"}
			]},
			{ "name": "10 missing client ID", "connect":false, "msgs":[{"type":"send", "payload":"10 r10 s4 'MQTT' 04 02 k10"}]},
			{ "name": "10 empty client ID", "connect":false, "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r12 s4 'MQTT' 04 02 k10 0000", "comment":"CONNECT clean session true, no client id"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"}
			]},
			{ "name": "10 empty client ID clean false [MQTT-3.1.3-7]", "expect_disconnect":true, "msgs":[
				{"type":"send", "payload":"10 r12 s4 'MQTT' 04 00 k10 0000", "comment":"CONNECT clean session false, no client id"},
				{"type":"recv", "payload":"20 r2 00 02", "comment": "CONNACK"}
			]},
			{ "name": "10 proto ver 2 [MQTT-3.1.2-2]", "msgs":[
				{"type":"send", "payload":"10 r13 s4 'MQTT' 02 00 k10 s1 'p'", "comment":"CONNECT"},
				{"type":"recv", "payload":"20 r3 00 84 00", "comment": "v3.1.1 CONNACK identifier rejected"}
			]},
			{ "name": "10 proto ver 6 [MQTT-3.1.2-2]", "msgs":[
				{"type":"send", "payload":"10 r13 s4 'MQTT' 06 00 k10 s1 'p'", "comment":"CONNECT"},
				{"type":"recv", "payload":"20 r3 00 84 00", "comment": "v3.1.1 CONNACK identifier rejected"}
			]},
			{ "name": "10 remaining length 5 bytes", "msgs":[
				{"type":"send", "payload":"10 r268435456 s4 'MQTT' 05 02 k10 s1 'p'", "comment":"CONNECT"}
			]},
			{ "name": "11", "msgs":[{"type":"send", "payload":"11 r13 s4 'MQTT' 04 02 k10 s1 'p'"}]},
			{ "name": "12", "msgs":[{"type":"send", "payload":"12 r13 s4 'MQTT' 04 02 k10 s1 'p'"}]},
			{ "name": "14", "msgs":[{"type":"send", "payload":"14 r13 s4 'MQTT' 04 02 k10 s1 'p'"}]},
			{ "name": "18", "msgs":[{"type":"send", "payload":"18 r13 s4 'MQTT' 04 02 k10 s1 'p'"}]},
			{ "name": "10 short proto", "msgs":[{"type":"send", "payload":"10 r12 s3 'MQT' 04 02 k10 s1 'p'"}]},
			{ "name": "10 zero proto", "msgs":[{"type":"send", "payload":"10 r9 s0 04 02 k10 s1 'p'"}]},
			{ "name": "10 long proto", "msgs":[{"type":"send", "payload":"10 r14 s5 'MQTTT' 04 02 k10 s1 'p'"}]},
			{ "name": "10 [MQTT-3.1.2-1]", "msgs":[{"type":"send", "payload":"10 r13 s4 'MQTU' 04 02 k10 s1 'p'"}]},
			{ "name": "10 [MQTT-3.1.2-3] ", "msgs":[{"type":"send", "payload":"10 r13 s4 'MQTT' 04 01 k10 s1 'p'"}]},
			{ "name": "10 Will flag 0 Will QoS 1 [MQTT-3.1.2-11]", "msgs":[
				{"type":"send", "payload":"10 r13 s4 'MQTT' 04 0A k10 s1 'p'"}
			]},
			{ "name": "10 Will flag 0 Will retain 1 [MQTT-3.1.2-11]", "msgs":[
				{"type":"send", "payload":"10 r13 s4 'MQTT' 04 12 k10 s1 'p'"}
			]},
			{ "name": "10 Will flag 1 no Will topic no Will message [MQTT-3.1.2-9]", "msgs":[
				{"type":"send", "payload":"10 r13 s4 'MQTT' 04 06 k10 s1 'p'"}
			]},
			{ "name": "10 Will flag 1 no Will topic [MQTT-3.1.2-9]", "msgs":[
				{"type":"send", "payload":"10 r16 s4 'MQTT' 04 06 k10 s1 'p' s1 'p'"}
			]},
			{ "name": "10 Will flag 1 ok", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 04 06 k10 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"}
			]},
			{ "name": "10 Will flag 1 Will Qos 3 [MQTT-3.1.2-14]", "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 04 1E k10 s1 'p' s1 'p' s1 'p'"}
			]},
			{ "name": "10 Will topic with 0x0000", "msgs": [{"type":"send", "payload":"10 r23 s4 'MQTT' 04 06 k10 s1 'p' s5 746F700000 s1 'p'"}]},
			{ "name": "10 Will topic with U+D800", "msgs": [{"type":"send", "payload":"10 r23 s4 'MQTT' 04 06 k10 s1 'p' s5 746FEDA080 s1 'p'"}]},
			{ "name": "10 Will topic with U+0001", "msgs": [{"type":"send", "payload":"10 r23 s4 'MQTT' 04 06 k10 s1 'p' s5 746F700170 s1 'p'"}]},
			{ "name": "10 Will topic with U+001F", "msgs": [{"type":"send", "payload":"10 r23 s4 'MQTT' 04 06 k10 s1 'p' s5 746F701F70 s1 'p'"}]},
			{ "name": "10 Will topic with U+007F", "msgs": [{"type":"send", "payload":"10 r23 s4 'MQTT' 04 06 k10 s1 'p' s5 746F707F70 s1 'p'"}]},
			{ "name": "10 Will topic with U+009F", "msgs": [{"type":"send", "payload":"10 r23 s4 'MQTT' 04 06 k10 s1 'p' s5 746FC29F70 s1 'p'"}]},
			{ "name": "10 Will topic with U+FFFF", "msgs": [{"type":"send", "payload":"10 r23 s4 'MQTT' 04 06 k10 s1 'p' s5 746FEDBFBF s1 'p'"}]},
			{ "name": "10 Client ID with 0x0000", "msgs": [{"type":"send", "payload":"10 r17 s4 'MQTT' 04 02 k10 s5 746F700000"}]},
			{ "name": "10 Client ID with U+D800", "msgs": [{"type":"send", "payload":"10 r17 s4 'MQTT' 04 02 k10 s5 746FEDA080"}]},
			{ "name": "10 Client ID with U+0001", "msgs": [{"type":"send", "payload":"10 r17 s4 'MQTT' 04 02 k10 s5 746F700170"}]},
			{ "name": "10 Client ID with U+001F", "msgs": [{"type":"send", "payload":"10 r17 s4 'MQTT' 04 02 k10 s5 746F701F70"}]},
			{ "name": "10 Client ID with U+007F", "msgs": [{"type":"send", "payload":"10 r17 s4 'MQTT' 04 02 k10 s5 746F707F70"}]},
			{ "name": "10 Client ID with U+009F", "msgs": [{"type":"send", "payload":"10 r17 s4 'MQTT' 04 02 k10 s5 746FC29F70"}]},
			{ "name": "10 Client ID with U+FFFF", "msgs": [{"type":"send", "payload":"10 r17 s4 'MQTT' 04 02 k10 s5 746FEDBFBF"}]},
			{ "name": "10 [MQTT-3.1.2-18]", "msgs":[{"type":"send", "payload":"10 r16 s4 'MQTT' 04 02 k10 s1 'p' s1 'p'"}]},
			{ "name": "10 [MQTT-3.1.2-19]", "msgs":[{"type":"send", "payload":"10 r13 s4 'MQTT' 04 82 k10 s1 'p'"}]},
			{ "name": "10 Username with 0x0000", "msgs":[{"type":"send", "payload":"10 r20 s4 'MQTT' 04 82 k10 s1 'p' s5 746F700000"}]},
			{ "name": "10 Username with 0xD800", "msgs":[{"type":"send", "payload":"10 r20 s4 'MQTT' 04 82 k10 s1 'p' s5 746FEDA080"}]},
			{ "name": "10 Username with 0x0001", "msgs":[{"type":"send", "payload":"10 r20 s4 'MQTT' 04 82 k10 s1 'p' s5 746F700170"}]},
			{ "name": "10 Username with 0x001F", "msgs":[{"type":"send", "payload":"10 r20 s4 'MQTT' 04 82 k10 s1 'p' s5 746F701F70"}]},
			{ "name": "10 Username with 0x007F", "msgs":[{"type":"send", "payload":"10 r20 s4 'MQTT' 04 82 k10 s1 'p' s5 746F707F70"}]},
			{ "name": "10 Username with 0x009F", "msgs":[{"type":"send", "payload":"10 r20 s4 'MQTT' 04 82 k10 s1 'p' s5 746FC29F70"}]},
			{ "name": "10 Username with 0xFFFF", "msgs":[{"type":"send", "payload":"10 r20 s4 'MQTT' 04 82 k10 s1 'p' s5 746FEDBFBF"}]},
			{ "name": "10 Username zero length ok", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 04 82 k10 s1 'p' s0"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"}
			]},
			{ "name": "10 Username flag 1 Password flag 1 ok", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 04 C2 k10 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"}
			]},
			{ "name": "10 [MQTT-3.1.2-20]", "msgs":[{"type":"send", "payload":"10 r19 s4 'MQTT' 04 82 k10 s1 'p' s1 'p' s1 'p'"}]},
			{ "name": "10 [MQTT-3.1.2-21]", "msgs":[{"type":"send", "payload":"10 r16 s4 'MQTT' 04 C2 k10 s1 'p' s1 'p'"}]},
			{ "name": "10 [MQTT-3.1.2-22]", "msgs":[{"type":"send", "payload":"10 r16 s4 'MQTT' 04 42 k10 s1 'p' s1 'p'"}]},
			{ "name": "10 Password with 0x0000", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r23 00 04 'MQTT' 04 C2 k10 s1 'p' s1 'p' s5 746F700000"},
				{"type":"recv", "payload":"20 r2 00 00", "comment": "CONNACK"}
			]},
			{ "name": "duplicate CONNECT", "connect":true, "msgs":[{"type":"send", "payload":"10 r13 s4 'MQTT' 04 02 k10 s1 'p'", "comment":"minimal valid duplicate CONNECT"}]},
			{ "name": "NanoMQ CWE-119", "msgs":[{"type":"send", "payload":"10 r7 s4 'MQTT' 04 C2 k60 s11 'test-python' s5 'admin' s8 'password'"}]}
		]
	},
	{
		"group": "v5.0   CONNECT",
		"ver":5,
		"connect":false,
		"tests": [
			{ "name": "10 ok ", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r14 s4 'MQTT' 05 02 k10 v0 s1 'p'", "comment":"minimal valid CONNECT"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "10 remaining length 5 bytes", "msgs":[
				{"type":"send", "payload":"10 r268435456 s4 'MQTT' 05 02 k10 s1 'p'", "comment":"CONNECT"}
			]},
			{ "name": "10 Username flag 1 ok", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 82 k10 v0 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "10 Client ID with 0x0000", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 v0 s5 746F700000"},
				{"type":"recv", "payload":"20 r3 00 85 00"}
			]},
			{ "name": "10 Client ID with U+D800", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 v0 s5 746FEDA080"},
				{"type":"recv", "payload":"20 r3 00 85 00"}
			]},
			{ "name": "10 Client ID with U+0001", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 v0 s5 746F700170"},
				{"type":"recv", "payload":"20 r3 00 85 00"}
			]},
			{ "name": "10 Client ID with U+001F", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 v0 s5 746F701F70"},
				{"type":"recv", "payload":"20 r3 00 85 00"}
			]},
			{ "name": "10 Client ID with U+007F", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 v0 s5 746F707F70"},
				{"type":"recv", "payload":"20 r3 00 85 00"}
			]},
			{ "name": "10 Client ID with U+009F", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 v0 s5 746FC29F70"},
				{"type":"recv", "payload":"20 r3 00 85 00"}
			]},
			{ "name": "10 Client ID with U+FFFF", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 v0 s5 746FEDBFBF"},
				{"type":"recv", "payload":"20 r3 00 85 00"}
			]},
			{ "name": "10 [MQTT-3.1.2-16]", "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 v0 s1 'q' s1 'q'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "10 [MQTT-3.1.2-17]", "msgs":[
				{"type":"send", "payload":"10 r14 s4 'MQTT' 05 82 k10 v0 s1 'p'"}
			]},
			{ "name": "10 Username with 0x0000", "msgs":[
				{"type":"send", "payload":"10 r21 s4 'MQTT' 05 82 k10 v0 s1 'p' s5 746F700000"}
			]},
			{ "name": "10 Username with 0xD800", "msgs":[
				{"type":"send", "payload":"10 r21 s4 'MQTT' 05 82 k10 v0 s1 'p' s5 746FEDA080"}
			]},
			{ "name": "10 Username with 0x0001", "msgs":[
				{"type":"send", "payload":"10 r21 s4 'MQTT' 05 82 k10 v0 s1 'p' s5 746F700170"}
			]},
			{ "name": "10 Username with 0x001F", "msgs":[
				{"type":"send", "payload":"10 r21 s4 'MQTT' 05 82 k10 v0 s1 'p' s5 746F701F70"}
			]},
			{ "name": "10 Username with 0x007F", "msgs":[
				{"type":"send", "payload":"10 r21 s4 'MQTT' 05 82 k10 v0 s1 'p' s5 746F707F70"}
			]},
			{ "name": "10 Username with 0x009F", "msgs":[
				{"type":"send", "payload":"10 r21 s4 'MQTT' 05 82 k10 v0 s1 'p' s5 746FC29F70"}
			]},
			{ "name": "10 Username with 0xFFFF", "msgs":[
				{"type":"send", "payload":"10 r21 s4 'MQTT' 05 82 k10 v0 s1 'p' s5 746FEDBFBF"}
			]},
			{ "name": "10 [MQTT-3.1.2-18]", "msgs":[
				{"type":"send", "payload":"10 r20 s4 'MQTT' 05 82 k10 v0 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "10 [MQTT-3.1.2-19]", "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 C2 k10 v0 s1 'p' s1 'p'"}
			]},
			{ "name": "10 Will flag 1 ok", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r21 s4 'MQTT' 05 06 k10 v0 s1 'p' 00 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "tiny max packet", "msgs":[{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 27 L2 s1 'p'"}]}
		]
	},
	{
		"group": "v5.0   CONNECT EXTENDED AUTH",
		"ver":5,
		"connect":false,
		"tests": [
			{ "name": "unsupported authentication method", "msgs":[
				{"type":"send", "payload":"10 r35 s4 'MQTT' 05 02 k10 15 15000B756E737570706F7274656416000474657374 s1 'p'", "comment":"auth-method:unsupported, auth-data:test"},
				{"type":"recv", "payload":"20 r3 00 8C 00", "comment": "CONNACK Bad authentication method"}
			]}
		]
	},
	{
		"group": "v5.0   CONNECT ALLOWED PROPERTIES",
		"ver":5,
		"connect":false,
		"tests": [
			{ "name": "session-expiry-interval (four byte integer)", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 11 L1 s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*session-expiry-interval (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 02 k10 0A 11 L1 11 L1 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "session-expiry-interval (four byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 11 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "receive-maximum (two byte integer)", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 21 0101 s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "receive-maximum (two byte integer) 0 value", "msgs": [
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 21 0000 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*receive-maximum (two byte integer)", "msgs": [
				{"type":"send", "payload":"10 r20 s4 'MQTT' 05 02 k10 06 21 0101 21 0101 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "receive-maximum (two byte integer) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 21 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "maximum-packet-size (four byte integer)", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 27 10000001 s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*maximum-packet-size (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 02 k10 0A 27 10000001 27 10000001 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "maximum-packet-size (four byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 27 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "maximum-packet-size (four byte integer) 0 value", "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 27 L0 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "maximum-packet-size (four byte integer) FFFFFFFF value", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 27 FFFFFFFF s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},

			{ "name": "topic-alias-maximum (two byte integer)", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 22 0101 s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "topic-alias-maximum (two byte integer) 0 value", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 22 0000 s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*topic-alias-maximum (two byte integer)", "msgs": [
				{"type":"send", "payload":"10 r20 s4 'MQTT' 05 02 k10 06 22 0101 22 0101 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "topic-alias-maximum (two byte integer) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 22 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "request-response-information (byte)", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 19 01 s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*request-response-information (byte)", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 19 01 19 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "request-response-information (byte) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 19 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "request-response-information (byte) 2 value", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 19 02 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "request-problem-information (byte)", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 17 01 s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*request-problem-information (byte)", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 17 01 17 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "request-problem-information (byte) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 17 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "request-problem-information (byte) 2 value", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 17 02 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "user-property", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r21 s4 'MQTT' 05 02 k10 07 26 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*user-property", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r28 s4 'MQTT' 05 02 k10 0E 26 s1 'p' s1 'p' 26 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "user-property missing value", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 26 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "user-property missing key,value", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 26 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "user-property empty key", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r20 s4 'MQTT' 05 02 k10 06 26 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "user-property empty value", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r20 s4 'MQTT' 05 02 k10 06 26 s1 'p' 0000 s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "user-property empty key,value", "expect_disconnect":false, "msgs": [
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 26 0000 0000 s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},

			{ "name": "authentication-method (UTF-8 string) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 15 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*authentication-method (UTF-8 string)", "msgs": [
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 02 k10 08 15 s1 'p' 15 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "authentication-data (UTF-8 string) missing", "msgs": [
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 15 s1 'p' 16 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "authentication-data (UTF-8 string) no authentication-method", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 16 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*authentication-data (UTF-8 string)", "msgs": [
				{"type":"send", "payload":"10 r26 s4 'MQTT' 05 02 k10 0C 15 s1 'p' 16 s1 'p' 16 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]}
		]
	},
	{
		"group": "v5.0   CONNECT DISALLOWED PROPERTIES",
		"ver":5,
		"connect":false,
		"tests": [
			{ "name": "payload-format-indicator (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 01 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "payload-format-indicator (byte) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "maximum-qos (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 24 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "maximum-qos (byte) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 24 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "retain-available (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 25 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "retain-available (byte) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 25 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "wildcard-subscription-available (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 28 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "wildcard-subscription-available (byte) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 28 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "subscription-identifier-available (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 29 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "subscription-identifier-available (byte) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 29 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "shared-subscription-available (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 2A 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "shared-subscription-available (byte) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 2A 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "invalid-property 0x00 (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 00 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x04 (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 04 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x05 (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 05 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x06 (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 06 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x07 (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 07 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x0A (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 0A 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x0C (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 0C 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x0D (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 0D 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x0E (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 0E 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x0F (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 0F 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x10 (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 10 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x14 (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 14 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x1B (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 1B 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x1D (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 1D 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x1E (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 1E 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x20 (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 20 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x7F (byte)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 7F 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "invalid-property 0x8000 (byte)", "msgs": [
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 8000 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x8001 (byte)", "msgs": [
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 8001 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0xFF7F (byte)", "msgs": [
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 FF7F 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x808001 (byte)", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 808001 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0xFFFF7F (byte)", "msgs": [
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 FFFF7F 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x80808001 (byte)", "msgs": [
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 80808001 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0xFFFFFF7F (byte)", "msgs": [
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 FFFFFF7F 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "unknown-property 0x8080808001 (byte)", "msgs": [
				{"type":"send", "payload":"10 r20 s4 'MQTT' 05 02 k10 06 8080808001 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "message-expiry-interval (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 02 10000001 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*message-expiry-interval (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 02 k10 0A 02 10000001 02 10000001 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "message-expiry-interval (four byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 02 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "message-expiry-interval (four byte integer) 0 value", "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 02 L0 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "message-expiry-interval (four byte integer) FFFFFFFF value", "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 02 FFFFFFFF s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "will-delay-interval (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 18 10000001 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*will-delay-interval (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 02 k10 0A 18 10000001 18 10000001 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "will-delay-interval (four byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 18 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "will-delay-interval (four byte integer) 0 value", "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 18 L0 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "will-delay-interval (four byte integer) FFFFFFFF value", "msgs":[
				{"type":"send", "payload":"10 r19 s4 'MQTT' 05 02 k10 05 18 FFFFFFFF s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "server-keep-alive (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 13 0001 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*server-keep-alive (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r20 s4 'MQTT' 05 02 k10 06 13 0001 13 0001 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "server-keep-alive (two byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 13 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "topic-alias (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 23 0001 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*topic-alias (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r20 s4 'MQTT' 05 02 k10 06 23 0001 23 0001 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "topic-alias (two byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 23 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "content-type (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 03 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "content-type (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 03 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "content-type (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 03 0000 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "response-topic (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 08 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "response-topic (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 08 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "response-topic (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 08 0000 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "assigned-client-identifier (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 12 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "assigned-client-identifier (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 12 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "assigned-client-identifier (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 12 0000 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "response-information (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 1A s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "response-information (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 1A s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "response-information (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 1A 0000 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "correlation-data (binary)", "msgs":[
				{"type":"send", "payload":"10 r18 s4 'MQTT' 05 02 k10 04 09 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "correlation-data (binary) missing", "msgs":[
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 09 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "correlation-data (binary) empty", "msgs":[
				{"type":"send", "payload":"10 r17 s4 'MQTT' 05 02 k10 03 09 0000 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{"name": "subscription-identifier (variable byte integer)", "msgs": [
				{"type":"send", "payload":"10 r16 s4 'MQTT' 05 02 k10 02 0B 01 s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{"name": "subscription-identifier (variable byte integer) missing", "msgs": [
				{"type":"send", "payload":"10 r15 s4 'MQTT' 05 02 k10 01 0B s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]}
		]
	},
	{
		"group": "v5.0   WILL ALLOWED PROPERTIES",
		"ver":5,
		"connect":false,
		"tests": [
			{ "name": "payload-format-indicator (byte)", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r23 s4 'MQTT' 05 06 k10 v0 s1 'p' 02 01 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "payload-format-indicator (byte) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*payload-format-indicator (byte)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 01 01 01 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "message-expiry-interval (four byte integer)", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r26 s4 'MQTT' 05 06 k10 v0 s1 'p' 05 02 L1 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*message-expiry-interval (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r31 s4 'MQTT' 05 06 k10 v0 s1 'p' 0A 02 L1 02 L1 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "message-expiry-interval (four byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 02 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "will-delay-interval (four byte integer)", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r26 s4 'MQTT' 05 06 k10 v0 s1 'p' 05 18 L1 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "will-delay-interval (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r31 s4 'MQTT' 05 06 k10 v0 s1 'p' 0A 18 L1 18 L1 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "will-delay-interval (four byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 18 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},

			{ "name": "content-type (UTF-8 string)", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 03 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*content-type (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r29 s4 'MQTT' 05 06 k10 v0 s1 'p' 08 03 s1 'p' 03 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "content-type (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 03 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "content-type (UTF-8 string) empty", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 03 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},

			{ "name": "response-topic (UTF-8 string)", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 08 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*response-topic (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r29 s4 'MQTT' 05 06 k10 v0 s1 'p' 08 08 s1 'p' 08 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "response-topic (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 08 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "response-topic (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 08 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00", "comment": "CONNACK"}
			]},

			{ "name": "correlation-data (binary)", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 09 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*correlation-data (binary)", "msgs":[
				{"type":"send", "payload":"10 r29 s4 'MQTT' 05 06 k10 v0 s1 'p' 08 09 s1 'p' 09 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "correlation-data (binary) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 09 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "correlation-data (binary) empty", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 09 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},

			{ "name": "user-property", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r28 s4 'MQTT' 05 06 k10 v0 s1 'p' 07 26 s1 'p' s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "2*user-property", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r35 s4 'MQTT' 05 06 k10 v0 s1 'p' 0E 26 s1 'p' s1 'p' 26 s1 'p' s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "user-property missing value", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 26 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "user-property missing key,value", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 26 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "user-property empty key", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r27 s4 'MQTT' 05 06 k10 v0 s1 'p' 06 26 0000 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "user-property empty value", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r27 s4 'MQTT' 05 06 k10 v0 s1 'p' 06 26 s1 'p' 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]},
			{ "name": "user-property empty key,value", "expect_disconnect":false, "msgs":[
				{"type":"send", "payload":"10 r26 s4 'MQTT' 05 06 k10 v0 s1 'p' 05 26 0000 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r14 00000B 22 H10 27 L2000000 21 H20", "comment": "CONNACK"}
			]}
		]
	},
	{
		"group": "v5.0   WILL DISALLOWED PROPERTIES",
		"ver":5,
		"connect":false,
		"tests": [
			{ "name": "request-problem-information (byte)", "msgs":[
				{"type":"send", "payload":"10 r23 s4 'MQTT' 05 06 k10 v0 s1 'p' 02 17 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "request-problem-information (byte) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 17 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*request-problem-information (byte)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 17 01 17 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "request-response-information (byte)", "msgs":[
				{"type":"send", "payload":"10 r23 s4 'MQTT' 05 06 k10 v0 s1 'p' 02 19 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "request-response-information (byte) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 19 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*request-response-information (byte)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 19 01 19 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "maximum-qos (byte)", "msgs":[
				{"type":"send", "payload":"10 r23 s4 'MQTT' 05 06 k10 v0 s1 'p' 02 24 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "maximum-qos (byte) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 24 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*maximum-qos (byte)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 24 01 24 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "retain-available (byte)", "msgs":[
				{"type":"send", "payload":"10 r23 s4 'MQTT' 05 06 k10 v0 s1 'p' 02 25 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "retain-available (byte) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 25 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*retain-available (byte)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 25 01 25 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "wildcard-subscription-available (byte)", "msgs":[
				{"type":"send", "payload":"10 r23 s4 'MQTT' 05 06 k10 v0 s1 'p' 02 28 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "wildcard-subscription-available (byte) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 28 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*wildcard-subscription-available (byte)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 28 01 28 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "subscription-identifier-available (byte)", "msgs":[
				{"type":"send", "payload":"10 r23 s4 'MQTT' 05 06 k10 v0 s1 'p' 02 29 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "subscription-identifier-available (byte) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 29 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*subscription-identifier-available (byte)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 29 01 29 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "shared-subscription-available (byte)", "msgs":[
				{"type":"send", "payload":"10 r23 s4 'MQTT' 05 06 k10 v0 s1 'p' 02 2A 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "shared-subscription-available (byte) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 2A s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*shared-subscription-available (byte)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 2A 01 2A 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "server-keep-alive (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 13 0001 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "server-keep-alive (two byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 13 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*server-keep-alive (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r27 s4 'MQTT' 05 06 k10 v0 s1 'p' 06 13 0001 13 0001 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "receive-maximum (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 21 0001 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "receive-maximum (two byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 21 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*receive-maximum (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r27 s4 'MQTT' 05 06 k10 v0 s1 'p' 06 21 0001 21 0001 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "topic-alias-maximum (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 22 0001 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "topic-alias-maximum (two byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 22 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*topic-alias-maximum (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r27 s4 'MQTT' 05 06 k10 v0 s1 'p' 06 22 0001 22 0001 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "topic-alias (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 23 0001 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "topic-alias (two byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 23 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*topic-alias (two byte integer)", "msgs":[
				{"type":"send", "payload":"10 r27 s4 'MQTT' 05 06 k10 v0 s1 'p' 06 23 0001 23 0001 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "session-expiry-interval (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r26 s4 'MQTT' 05 06 k10 v0 s1 'p' 05 11 L1 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "session-expiry-interval (four byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 11 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*session-expiry-interval (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r31 s4 'MQTT' 05 06 k10 v0 s1 'p' 0A 11 L1 11 L1 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "maximum-packet-size (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r26 s4 'MQTT' 05 06 k10 v0 s1 'p' 05 27 L1 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "maximum-packet-size (four byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 27 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "2*maximum-packet-size (four byte integer)", "msgs":[
				{"type":"send", "payload":"10 r31 s4 'MQTT' 05 06 k10 v0 s1 'p' 0A 27 L1 27 L1 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "assigned-client-identifier (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 12 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*assigned-client-identifier (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r29 s4 'MQTT' 05 06 k10 v0 s1 'p' 08 12 s1 'p' 12 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "assigned-client-identifier (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 12 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "assigned-client-identifier (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 12 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "authentication-method (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 15 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*authentication-method (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r29 s4 'MQTT' 05 06 k10 v0 s1 'p' 08 15 s1 'p' 15 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "authentication-method (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 15 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "authentication-method (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 15 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "response-information (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 1A s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*response-information (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r29 s4 'MQTT' 05 06 k10 v0 s1 'p' 08 1A s1 'p' 1A s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "response-information (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 1A s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "response-information (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 1A 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "server-reference (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 1C s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*server-reference (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r29 s4 'MQTT' 05 06 k10 v0 s1 'p' 08 1C s1 'p' 1C s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "server-reference (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 1C s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "server-reference (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 1C 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "reason-string (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 1F s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*reason-string (UTF-8 string)", "msgs":[
				{"type":"send", "payload":"10 r29 s4 'MQTT' 05 06 k10 v0 s1 'p' 08 1F s1 'p' 1F s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "reason-string (UTF-8 string) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 1F s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "reason-string (UTF-8 string) empty", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 1F 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "authentication-data (binary)", "msgs":[
				{"type":"send", "payload":"10 r25 s4 'MQTT' 05 06 k10 v0 s1 'p' 04 16 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "2*authentication-data (binary)", "msgs":[
				{"type":"send", "payload":"10 r29 s4 'MQTT' 05 06 k10 v0 s1 'p' 08 16 s1 'p' 16 s1 'p' s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "authentication-data (binary) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 16 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]},
			{ "name": "authentication-data (binary) empty", "msgs":[
				{"type":"send", "payload":"10 r24 s4 'MQTT' 05 06 k10 v0 s1 'p' 03 16 0000 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},

			{ "name": "subscription-identifier (variable byte integer)", "msgs":[
				{"type":"send", "payload":"10 r23 s4 'MQTT' 05 06 k10 v0 s1 'p' 02 0B 01 s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 82 00"}
			]},
			{ "name": "subscription-identifier (variable byte integer) missing", "msgs":[
				{"type":"send", "payload":"10 r22 s4 'MQTT' 05 06 k10 v0 s1 'p' 01 0B s1 'p' s1 'p'"},
				{"type":"recv", "payload":"20 r3 00 81 00"}
			]}
		]
	}
]
