[PATCH 2/2] ccanlint: Move ccanlint test options from _info comments to code

David Gibson <[email protected]> Sun, 25 Dec 2016 15:49:15 +1100
Newsgroups org.ozlabs.lists.ccan
Message-ID <[email protected]>
Q3VycmVudGx5LCBfaW5mbyBmaWxlcyBjYW4gc3BlY2lmeSBvcHRpb25zLCBvciBub3RlIGV4cGVj
dGVkIGZhaWx1cmVzLCBmb3IKY2NhbmxpbnQgY2hlY2tzIGluIHRoZSBfaW5mbyBmaWxlIHdpdGgg
c3BlY2lhbGx5IHN0cnVjdHVyZWQgY29tbWVudHMuIFRoYXQKZGlmZmVycyBmcm9tIG1vc3Qgb3Ro
ZXIgdGhpbmdzIGNjYW5saW50IGdldHMgZnJvbSBfaW5mbywgd2hlcmUgaXQgaW5zdGVhZApleGVj
dXRlcyB0aGUgaW5mbyBmaWxlIHdpdGggY2VydGFpbiBwYXJhbWV0ZXJzLgoKVGhpcyBjaGFuZ2Vz
IGNjYW5saW50IGFuZCBleGlzdGluZyBfaW5mbyBmaWxlcyB0byB1c2UgdGhlIG5vcm1hbCBtZXRo
b2QgZm9yCnRoZSBjY2FubGludCB0ZXN0IG9wdGlvbnMgYXMgd2VsbC4gIFRoaXMgYWxzbyBoYXMg
dGhlIGFkdmFudGFnZSB0aGF0IGFuCmluZm8gZmlsZSBjYW4gYWx0ZXIgaXRzIHRlc3Qgb3B0aW9u
cyBiYXNlZCBvbiB0aGluZ3MgZnJvbSBjb25maWcuaCAtIGluCnNvbWUgY2FzZXMgd2hldGhlciBh
IHRlc3QgY2FuIHdvcmsgb3Igbm90IG1pZ2h0IGRlcGVuZCBvbiB2YXJpb3VzIHRoaW5ncy4KClNp
Z25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1Pgot
LS0KIGNjYW4vYmxvY2tfcG9vbC9faW5mbyAgICAgICAgICAgICAgfCAgOSArKystLQogY2Nhbi9j
Y2FuX3Rva2VuaXplci9faW5mbyAgICAgICAgICB8IDE0ICsrKystLS0tCiBjY2FuL2Nvcm91dGlu
ZS9faW5mbyAgICAgICAgICAgICAgIHwgMTAgKysrLS0tCiBjY2FuL2NyY3N5bmMvX2luZm8gICAg
ICAgICAgICAgICAgIHwgIDggKysrLS0KIGNjYW4vZGVxdWUvX2luZm8gICAgICAgICAgICAgICAg
ICAgfCAxNCArKysrLS0tLQogY2Nhbi9nZW5lcmF0b3IvX2luZm8gICAgICAgICAgICAgICB8IDE0
ICsrKystLS0tCiBjY2FuL21pbm1heC9faW5mbyAgICAgICAgICAgICAgICAgIHwgMTAgKysrLS0t
CiBjY2FuL3JzenNobS9faW5mbyAgICAgICAgICAgICAgICAgIHwgMTIgKysrKy0tLQogY2Nhbi9z
dHJpbmdtYXAvX2luZm8gICAgICAgICAgICAgICB8ICA5ICsrKy0tCiB0b29scy9jY2FubGludC9j
Y2FubGludC5jICAgICAgICAgIHwgNzEgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIHRvb2xzL2NjYW5saW50L2NjYW5saW50LmggICAgICAgICAgfCAgMiArLQogdG9vbHMv
Y2NhbmxpbnQvdGVzdHMvaW5mb19leGlzdHMuYyB8ICAyICstCiB0b29scy9kZXBlbmRzLmMgICAg
ICAgICAgICAgICAgICAgIHwgMTggKysrKysrKysrKwogdG9vbHMvdG9vbHMuaCAgICAgICAgICAg
ICAgICAgICAgICB8ICAzICsrCiAxNCBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwg
ODEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY2Nhbi9ibG9ja19wb29sL19pbmZvIGIvY2Nh
bi9ibG9ja19wb29sL19pbmZvCmluZGV4IGE0MmNkYmEuLmUyMTY5NzYgMTAwNjQ0Ci0tLSBhL2Nj
YW4vYmxvY2tfcG9vbC9faW5mbworKysgYi9jY2FuL2Jsb2NrX3Bvb2wvX2luZm8KQEAgLTM4LDkg
KzM4LDYgQEAKICAqIEF1dGhvcjogSm9leSBBZGFtcyA8am9leWFkYW1zMy4xNDE1OUBnbWFpbC5j
b20+CiAgKiBMaWNlbnNlOiBNSVQKICAqIFZlcnNpb246IDAuMQotICogQ2NhbmxpbnQ6Ci0gKgkv
LyBXZSBhY3R1YWxseSBkZXBlbmQgb24gdGhlIExHUEwgdGFsbG9jCi0gKglsaWNlbnNlX2RlcGVu
ZHNfY29tcGF0IEZBSUwKICAqLwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsK
QEAgLTUzLDUgKzUwLDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCXJl
dHVybiAwOwogCX0KIAorCWlmIChzdHJjbXAoYXJndlsxXSwgImNjYW5saW50IikgPT0gMCkgewor
CQkvKiBXZSBhY3R1YWxseSBkZXBlbmQgb24gdGhlIExHUEwgdGFsbG9jICovCisJCXByaW50Zigi
bGljZW5zZV9kZXBlbmRzX2NvbXBhdCBGQUlMXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCiAJcmV0
dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9jY2FuL2NjYW5fdG9rZW5pemVyL19pbmZvIGIvY2Nhbi9j
Y2FuX3Rva2VuaXplci9faW5mbwppbmRleCBlZTE0NzdhLi5mNTExNmI0IDEwMDY0NAotLS0gYS9j
Y2FuL2NjYW5fdG9rZW5pemVyL19pbmZvCisrKyBiL2NjYW4vY2Nhbl90b2tlbml6ZXIvX2luZm8K
QEAgLTgyLDEyICs4Miw2IEBACiAgKiB9CiAgKgogICogTGljZW5zZTogQlNEICgzIGNsYXVzZSkK
LSAqCi0gKiBDY2FubGludDoKLSAqCS8vIFdlIGFjdHVhbGx5IGRlcGVuZCBvbiB0aGUgTEdQTCBk
ZXBlbmRlbmNpZXMKLSAqCWxpY2Vuc2VfZGVwZW5kc19jb21wYXQgRkFJTAotICoJLy8gV2UgZG9u
J3QgcHV0IHRoZSBsaWNlbnNlIGxpbmUgaW4gYWxsIGZpbGVzLgotICoJbGljZW5zZV9jb21tZW50
IEZBSUwKICAqLwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKQEAgLTEwMSw1
ICs5NSwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlyZXR1cm4gMDsK
IAl9CiAKKwlpZiAoc3RyY21wKGFyZ3ZbMV0sICJjY2FubGludCIpID09IDApIHsKKwkJLyogV2Ug
YWN0dWFsbHkgZGVwZW5kIG9uIHRoZSBMR1BMIGRlcGVuZGVuY2llcyAqLworCQlwcmludGYoImxp
Y2Vuc2VfZGVwZW5kc19jb21wYXQgRkFJTFxuIik7CisJCS8qIFdlIGRvbid0IHB1dCB0aGUgbGlj
ZW5zZSBsaW5lIGluIGFsbCBmaWxlcy4gKi8KKwkJcHJpbnRmKCJsaWNlbnNlX2NvbW1lbnQgRkFJ
TFxuIik7CisJCXJldHVybiAwOworCX0KKwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvY2Nh
bi9jb3JvdXRpbmUvX2luZm8gYi9jY2FuL2Nvcm91dGluZS9faW5mbwppbmRleCBhOTk2MjljLi4w
N2U0Yjk2IDEwMDY0NAotLS0gYS9jY2FuL2Nvcm91dGluZS9faW5mbworKysgYi9jY2FuL2Nvcm91
dGluZS9faW5mbwpAQCAtMTQsMTAgKzE0LDYgQEAKICAqCiAgKiBBdXRob3I6IERhdmlkIEdpYnNv
biA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgogICogTGljZW5zZTogTEdQTCAodjIuMSBv
ciBhbnkgbGF0ZXIgdmVyc2lvbikKLSAqCi0gKiBDY2FubGludDoKLSAqCS8vIENvbnRleHQgc3dp
dGNoaW5nIHJlYWxseSBjb25mdXNlcyB2YWxncmluZAotICoJdGVzdHNfcGFzc192YWxncmluZCBG
QUlMCiAgKi8KIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CkBAIC00MCw1ICsz
NiwxMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlyZXR1cm4gMDsKIAl9
CiAKKwlpZiAoc3RyY21wKGFyZ3ZbMV0sICJjY2FubGludCIpID09IDApIHsKKwkJLyogQ29udGV4
dCBzd2l0Y2hpbmcgcmVhbGx5IGNvbmZ1c2VzIHZhbGdyaW5kICovCisJCXByaW50ZigidGVzdHNf
cGFzc192YWxncmluZCBGQUlMXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCiAJcmV0dXJuIDE7CiB9
CmRpZmYgLS1naXQgYS9jY2FuL2NyY3N5bmMvX2luZm8gYi9jY2FuL2NyY3N5bmMvX2luZm8KaW5k
ZXggOWViYjhiZC4uNzUxNmY0NCAxMDA2NDQKLS0tIGEvY2Nhbi9jcmNzeW5jL19pbmZvCisrKyBi
L2NjYW4vY3Jjc3luYy9faW5mbwpAQCAtNzEsOSArNzEsNiBAQAogICoKICAqIExpY2Vuc2U6IExH
UEwgKHYyLjEgb3IgYW55IGxhdGVyIHZlcnNpb24pCiAgKiBBdXRob3I6IFJ1c3R5IFJ1c3NlbGwg
PHJ1c3R5QHJ1c3Rjb3JwLmNvbS5hdT4KLSAqIENjYW5saW50OgotICoJLy8gV2UgYWN0dWFsbHkg
ZGVwZW5kIG9uIHRoZSBHUEwgY3JjIHJvdXRpbmVzLCBzbyBub3QgcmVhbGx5IExHUEwgOigKLSAq
CWxpY2Vuc2VfZGVwZW5kc19jb21wYXQgRkFJTAogICovCiBpbnQgbWFpbihpbnQgYXJnYywgY2hh
ciAqYXJndltdKQogewpAQCAtODgsNiArODUsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg
KmFyZ3ZbXSkKIAkJcHJpbnRmKCJjY2FuL2FycmF5X3NpemVcbiIpOwogCQlyZXR1cm4gMDsKIAl9
CisJaWYgKHN0cmNtcChhcmd2WzFdLCAiY2NhbmxpbnQiKSA9PSAwKSB7CisJCS8qIFdlIGFjdHVh
bGx5IGRlcGVuZCBvbiB0aGUgR1BMIGNyYyByb3V0aW5lcywgc28gbm90IHJlYWxseSBMR1BMIDoo
ICovCisJCXByaW50ZigibGljZW5zZV9kZXBlbmRzX2NvbXBhdCBGQUlMXG4iKTsKKwkJcmV0dXJu
IDA7CisJfQogCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9jY2FuL2RlcXVlL19pbmZvIGIv
Y2Nhbi9kZXF1ZS9faW5mbwppbmRleCA2MzY4N2I3Li4xYzU0NjBmIDEwMDY0NAotLS0gYS9jY2Fu
L2RlcXVlL19pbmZvCisrKyBiL2NjYW4vZGVxdWUvX2luZm8KQEAgLTEyMiwxMiArMTIyLDYgQEAK
ICAqCiAgKiBMaWNlbnNlOiBBUEFDSEUtMgogICogQXV0aG9yOiBEYW4gR29vZCA8ZGFuQGRhbmNh
bmNvZGUuY29tPgotICoKLSAqIENjYW5saW50OgotICoJLy8gdXNlcyBzdGF0ZW1lbnQgZXhwcmVz
c2lvbnMKLSAqCS8vIHN1cHBvcnRlZCBieSBnY2MsIGNsYW5nLCBpY2MsIGFuZCBzb21lIG90aGVy
cywgYnV0IG5vdCBtc3ZjCi0gKgkvLyAoc2VlIGh0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5lZG9j
cy9nY2MvU3RhdGVtZW50LUV4cHJzLmh0bWwpCi0gKglvYmplY3RzX2J1aWxkX3dpdGhvdXRfZmVh
dHVyZXMgRkFJTAogICovCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogewpAQCAt
MTQyLDUgKzEzNiwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlyZXR1
cm4gMDsKIAl9CiAKKwlpZiAoc3RyY21wKGFyZ3ZbMV0sICJjY2FubGludCIpID09IDApIHsKKwkJ
LyogdXNlcyBzdGF0ZW1lbnQgZXhwcmVzc2lvbnMKKwkJICogc3VwcG9ydGVkIGJ5IGdjYywgY2xh
bmcsIGljYywgYW5kIHNvbWUgb3RoZXJzLCBidXQgbm90IG1zdmMKKwkJICogKHNlZSBodHRwczov
L2djYy5nbnUub3JnL29ubGluZWRvY3MvZ2NjL1N0YXRlbWVudC1FeHBycy5odG1sKSAqLworCQlw
cmludGYoIm9iamVjdHNfYnVpbGRfd2l0aG91dF9mZWF0dXJlcyBGQUlMXG4iKTsKKwkJcmV0dXJu
IDA7CisJfQorCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9jY2FuL2dlbmVyYXRvci9faW5m
byBiL2NjYW4vZ2VuZXJhdG9yL19pbmZvCmluZGV4IGU0MGQ3YmIuLmFhNjA0OGUgMTAwNjQ0Ci0t
LSBhL2NjYW4vZ2VuZXJhdG9yL19pbmZvCisrKyBiL2NjYW4vZ2VuZXJhdG9yL19pbmZvCkBAIC00
MywxMiArNDMsNiBAQAogICoKICAqIEF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24u
ZHJvcGJlYXIuaWQuYXU+CiAgKiBMaWNlbnNlOiBMR1BMICh2Mi4xIG9yIGFueSBsYXRlciB2ZXJz
aW9uKQotICoKLSAqIENjYW5saW50OgotICogICAgICAvLyBXZSBuZWVkIHNldmVyYWwgZ2NjIGV4
dGVuc2lvbnMKLSAqCW9iamVjdHNfYnVpbGRfd2l0aG91dF9mZWF0dXJlcyBGQUlMCi0gKiAgICAg
IHRlc3RzX2NvbXBpbGVfd2l0aG91dF9mZWF0dXJlcyBGQUlMCi0gKgl0ZXN0c19oZWxwZXJzX2Nv
bXBpbGVfd2l0aG91dF9mZWF0dXJlcyBGQUlMCiAgKi8KIGludCBtYWluKGludCBhcmdjLCBjaGFy
ICphcmd2W10pCiB7CkBAIC03OCw1ICs3MiwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq
YXJndltdKQogCQlyZXR1cm4gMDsKIAl9CiAKKwlpZiAoc3RyY21wKGFyZ3ZbMV0sICJjY2FubGlu
dCIpID09IDApIHsKKwkJLyogV2UgbmVlZCBzZXZlcmFsIGdjYyBleHRlbnNpb25zICovCisJCXBy
aW50Zigib2JqZWN0c19idWlsZF93aXRob3V0X2ZlYXR1cmVzIEZBSUxcbiIpOworCQlwcmludGYo
InRlc3RzX2NvbXBpbGVfd2l0aG91dF9mZWF0dXJlcyBGQUlMXG4iKTsKKwkJcHJpbnRmKCJ0ZXN0
c19oZWxwZXJzX2NvbXBpbGVfd2l0aG91dF9mZWF0dXJlcyBGQUlMXG4iKTsKKwkJcmV0dXJuIDA7
CisJfQorCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9jY2FuL21pbm1heC9faW5mbyBiL2Nj
YW4vbWlubWF4L19pbmZvCmluZGV4IDRkOTUzMzYuLjJmNjQzN2UgMTAwNjQ0Ci0tLSBhL2NjYW4v
bWlubWF4L19pbmZvCisrKyBiL2NjYW4vbWlubWF4L19pbmZvCkBAIC0yNiwxMCArMjYsNiBAQAog
ICoKICAqIEF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+
CiAgKiBMaWNlbnNlOiAgQ0MwIChQdWJsaWMgZG9tYWluKQotICoKLSAqIENjYW5saW50OgotICog
ICAgICAvLyBXZSBuZWVkIHNldmVyYWwgZ2NjIGV4dGVuc2lvbnMKLSAqICAgICAgdGVzdHNfY29t
cGlsZV93aXRob3V0X2ZlYXR1cmVzIEZBSUwKICAqLwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg
KmFyZ3ZbXSkKIHsKQEAgLTQyLDUgKzM4LDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCiAJCXJldHVybiAwOwogCX0KIAorCWlmIChzdHJjbXAoYXJndlsxXSwgImNjYW5saW50
IikgPT0gMCkgeworCQkvKiBXZSBuZWVkIHNldmVyYWwgZ2NjIGV4dGVuc2lvbnMgKi8KKwkJcHJp
bnRmKCJ0ZXN0c19jb21waWxlX3dpdGhvdXRfZmVhdHVyZXMgRkFJTFxuIik7CisJCXJldHVybiAw
OworCX0KKwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvY2Nhbi9yc3pzaG0vX2luZm8gYi9j
Y2FuL3JzenNobS9faW5mbwppbmRleCBjYzk1NDAwLi5lOTEyMmUwIDEwMDY0NAotLS0gYS9jY2Fu
L3JzenNobS9faW5mbworKysgYi9jY2FuL3JzenNobS9faW5mbwpAQCAtNzYsMTMgKzc2LDggQEAK
ICAqIAkvLyAkIHRhaWwgLWMgKzI5IC9kZXYvc2htL3JzenNobV9MQXNFdnQvMCB8IHNlZCAncy8u
LyZcbi9nJyB8IHNvcnQgfCB1bmlxIC1jIHwgdHIgJ1xuJyAnXHQnOyBlY2hvCiAgKiAJLy8gIDUx
NTUzMiBBICAgNTI3MjUxIEIgICAgNTEyOTMwIEMgICAgNTEzMDYyIEQgICAgNTQ0MzI2IEUgICAg
NTQ1ODc2IEYgICAgNTEyOTM2IEcgICAgNTIyMzYzIEgKICAqCi0gKiBDY2FubGludDogdGVzdHNf
cGFzc192YWxncmluZCBGQUlMCiAgKiBMaWNlbnNlOiBBUEFDSEUtMgogICogQXV0aG9yOiBEYW4g
R29vZCA8ZGFuQGRhbmNhbmNvZGUuY29tPgotICoKLSAqIENjYW5saW50OgotICoJLy8gdGVzdHMg
dXNlIG9wdGlvbmFsIG1hY3JvcyBjb250YWluaW5nIHN0YXRlbWVudCBleHByZXNzaW9ucwotICoJ
dGVzdHNfY29tcGlsZV93aXRob3V0X2ZlYXR1cmVzIEZBSUwKICAqLwogaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIgKmFyZ3ZbXSkKIHsKQEAgLTkzLDUgKzg4LDEyIEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyICphcmd2W10pCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiZGVwZW5kcyIpID09IDApCiAJ
CXJldHVybiAwOwogCisJaWYgKHN0cmNtcChhcmd2WzFdLCAiY2NhbmxpbnQiKSA9PSAwKSB7CisJ
CXByaW50ZigidGVzdHNfcGFzc192YWxncmluZCBGQUlMXG4iKTsKKwkJLyogdGVzdHMgdXNlIG9w
dGlvbmFsIG1hY3JvcyBjb250YWluaW5nIHN0YXRlbWVudCBleHByZXNzaW9ucyAqLworCQlwcmlu
dGYoInRlc3RzX2NvbXBpbGVfd2l0aG91dF9mZWF0dXJlcyBGQUlMXG4iKTsKKwkJcmV0dXJuIDA7
CisJfQorCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9jY2FuL3N0cmluZ21hcC9faW5mbyBi
L2NjYW4vc3RyaW5nbWFwL19pbmZvCmluZGV4IDFmNjQ2NWIuLmMwMWM1NzYgMTAwNjQ0Ci0tLSBh
L2NjYW4vc3RyaW5nbWFwL19pbmZvCisrKyBiL2NjYW4vc3RyaW5nbWFwL19pbmZvCkBAIC01Miw5
ICs1Miw2IEBACiAgKiBBdXRob3JzOiBKb2V5IEFkYW1zLCBBbmRlcnMgTWFnbnVzc29uCiAgKiBM
aWNlbnNlOiBCU0QgKDMgY2xhdXNlKQogICogVmVyc2lvbjogMC4yCi0gKiBDY2FubGludDoKLSAq
CS8vIFdlIGFjdHVhbGx5IGRlcGVuZCAoaW5kaXJlY3RseSkgb24gdGhlIExHUEwgdGFsbG9jCi0g
KglsaWNlbnNlX2RlcGVuZHNfY29tcGF0IEZBSUwKICAqLwogaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIgKmFyZ3ZbXSkKIHsKQEAgLTY3LDUgKzY0LDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
ICphcmd2W10pCiAJCXJldHVybiAwOwogCX0KIAorCWlmIChzdHJjbXAoYXJndlsxXSwgImNjYW5s
aW50IikgPT0gMCkgeworCQkvKiBXZSBhY3R1YWxseSBkZXBlbmQgKGluZGlyZWN0bHkpIG9uIHRo
ZSBMR1BMIHRhbGxvYyAqLworCQlwcmludGYoImxpY2Vuc2VfZGVwZW5kc19jb21wYXQgRkFJTFxu
Iik7CisJCXJldHVybiAwOworCX0KKwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMv
Y2NhbmxpbnQvY2NhbmxpbnQuYyBiL3Rvb2xzL2NjYW5saW50L2NjYW5saW50LmMKaW5kZXggMGVk
OTY5Yy4uZjA2ZjIwMCAxMDA2NDQKLS0tIGEvdG9vbHMvY2NhbmxpbnQvY2NhbmxpbnQuYworKysg
Yi90b29scy9jY2FubGludC9jY2FubGludC5jCkBAIC00NTYsNTAgKzQ1Niw0MyBAQCBzdGF0aWMg
dm9pZCBhZGRfb3B0aW9ucyhzdHJ1Y3QgY2NhbmxpbnQgKnRlc3QsIGNoYXIgKipvcHRpb25zLAog
CW1lbWNweSgmdGVzdC0+b3B0aW9uc1tudW1dLCBvcHRpb25zLCAobnVtX29wdGlvbnMgKyAxKSpz
aXplb2YoY2hhciAqKSk7CiB9CiAKLXZvaWQgYWRkX2luZm9fb3B0aW9ucyhzdHJ1Y3QgY2Nhbl9m
aWxlICppbmZvKQordm9pZCBhZGRfaW5mb19vcHRpb25zKHN0cnVjdCBtYW5pZmVzdCAqbSkKIHsK
LQlzdHJ1Y3QgZG9jX3NlY3Rpb24gKmQ7CiAJdW5zaWduZWQgaW50IGk7Ci0Jc3RydWN0IGNjYW5s
aW50ICp0ZXN0OworCWNoYXIgKippbmZvX29wdGlvbnMgPSBnZXRfY2NhbmxpbnQobSwgbS0+ZGly
LCBnZXRfb3JfY29tcGlsZV9pbmZvKTsKIAotCWxpc3RfZm9yX2VhY2goZ2V0X2NjYW5fZmlsZV9k
b2NzKGluZm8pLCBkLCBsaXN0KSB7Ci0JCWlmICghc3RyZXEoZC0+dHlwZSwgImNjYW5saW50Iikp
CisJZm9yIChpID0gMDsgaW5mb19vcHRpb25zW2ldOyBpKyspIHsKKwkJY2hhciAqKndvcmRzID0g
dGFsX3N0cnNwbGl0KG0sIGluZm9fb3B0aW9uc1tpXSwgIiBcdCIsCisJCQkJCSAgICBTVFJfTk9f
RU1QVFkpOworCQlzdHJ1Y3QgY2NhbmxpbnQgKnRlc3Q7CisKKwkJaWYgKCF3b3Jkc1swXSkKKwkJ
CWNvbnRpbnVlOworCisJCXRlc3QgPSBmaW5kX3Rlc3Qod29yZHNbMF0pOworCQlpZiAoIXRlc3Qp
IHsKKwkJCXdhcm54KCIlczogdW5rbm93biBjY2FubGludCB0ZXN0ICclcyciLAorCQkJICAgICAg
bS0+aW5mb19maWxlLT5mdWxsbmFtZSwgd29yZHNbMF0pOwogCQkJY29udGludWU7CisJCX0KKwor
CQlpZiAoIXdvcmRzWzFdKSB7CisJCQl3YXJueCgiJXM6IG5vIGFyZ3VtZW50IHRvIHRlc3QgJyVz
JyIsCisJCQkgICAgICBtLT5pbmZvX2ZpbGUtPmZ1bGxuYW1lLCB3b3Jkc1swXSk7CisJCQljb250
aW51ZTsKKwkJfQogCi0JCWZvciAoaSA9IDA7IGkgPCBkLT5udW1fbGluZXM7IGkrKykgewotCQkJ
Y2hhciAqKndvcmRzID0gdGFsX3N0cnNwbGl0KGQsIGQtPmxpbmVzW2ldLCAiIFx0IiwKLQkJCQkJ
CSAgICBTVFJfTk9fRU1QVFkpOwotCQkJaWYgKCF3b3Jkc1swXSkKLQkJCQljb250aW51ZTsKLQot
CQkJaWYgKHN0cm5jbXAod29yZHNbMF0sICIvLyIsIDIpID09IDApCi0JCQkJY29udGludWU7Ci0K
LQkJCXRlc3QgPSBmaW5kX3Rlc3Qod29yZHNbMF0pOwotCQkJaWYgKCF0ZXN0KSB7Ci0JCQkJd2Fy
bngoIiVzOiB1bmtub3duIGNjYW5saW50IHRlc3QgJyVzJyIsCi0JCQkJICAgICAgaW5mby0+ZnVs
bG5hbWUsIHdvcmRzWzBdKTsKLQkJCQljb250aW51ZTsKLQkJCX0KLQotCQkJaWYgKCF3b3Jkc1sx
XSkgewotCQkJCXdhcm54KCIlczogbm8gYXJndW1lbnQgdG8gdGVzdCAnJXMnIiwKLQkJCQkgICAg
ICBpbmZvLT5mdWxsbmFtZSwgd29yZHNbMF0pOwotCQkJCWNvbnRpbnVlOwotCQkJfQotCi0JCQkv
KiBLbm93biBmYWlsdXJlPyAqLwotCQkJaWYgKHN0cmNhc2VjbXAod29yZHNbMV0sICJGQUlMIikg
PT0gMCkgewotCQkJCWlmICghdGFyZ2V0aW5nKQotCQkJCQlza2lwX3Rlc3RfYW5kX2RlcHModGVz
dCwKLQkJCQkJCQkgICAiZXhjbHVkZWQgaW4gX2luZm8iCi0JCQkJCQkJICAgIiBmaWxlIik7Ci0J
CQl9IGVsc2UgewotCQkJCWlmICghdGVzdC0+dGFrZXNfb3B0aW9ucykKLQkJCQkJd2FybngoIiVz
OiAlcyBkb2Vzbid0IHRha2Ugb3B0aW9ucyIsCi0JCQkJCSAgICAgIGluZm8tPmZ1bGxuYW1lLCB3
b3Jkc1swXSk7Ci0JCQkJYWRkX29wdGlvbnModGVzdCwgd29yZHMrMSwgdGFsX2NvdW50KHdvcmRz
KS0xKTsKLQkJCX0KKwkJLyogS25vd24gZmFpbHVyZT8gKi8KKwkJaWYgKHN0cmNhc2VjbXAod29y
ZHNbMV0sICJGQUlMIikgPT0gMCkgeworCQkJaWYgKCF0YXJnZXRpbmcpCisJCQkJc2tpcF90ZXN0
X2FuZF9kZXBzKHRlc3QsCisJCQkJCQkgICAiZXhjbHVkZWQgaW4gX2luZm8iCisJCQkJCQkgICAi
IGZpbGUiKTsKKwkJfSBlbHNlIHsKKwkJCWlmICghdGVzdC0+dGFrZXNfb3B0aW9ucykKKwkJCQl3
YXJueCgiJXM6ICVzIGRvZXNuJ3QgdGFrZSBvcHRpb25zIiwKKwkJCQkgICAgICBtLT5pbmZvX2Zp
bGUtPmZ1bGxuYW1lLCB3b3Jkc1swXSk7CisJCQlhZGRfb3B0aW9ucyh0ZXN0LCB3b3JkcysxLCB0
YWxfY291bnQod29yZHMpLTEpOwogCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvY2Nhbmxp
bnQvY2NhbmxpbnQuaCBiL3Rvb2xzL2NjYW5saW50L2NjYW5saW50LmgKaW5kZXggOWNiODU4Zi4u
N2RmOTUxMCAxMDA2NDQKLS0tIGEvdG9vbHMvY2NhbmxpbnQvY2NhbmxpbnQuaAorKysgYi90b29s
cy9jY2FubGludC9jY2FubGludC5oCkBAIC0xODYsNyArMTg2LDcgQEAgc3RydWN0IGRlcGVuZGVu
dCB7CiBib29sIGlzX2V4Y2x1ZGVkKGNvbnN0IGNoYXIgKm5hbWUpOwogCiAvKiBDYWxsZWQgdG8g
YWRkIG9wdGlvbnMgZnJvbSBfaW5mbywgb25jZSBpdCdzIGxvY2F0ZWQuICovCi12b2lkIGFkZF9p
bmZvX29wdGlvbnMoc3RydWN0IGNjYW5fZmlsZSAqaW5mbyk7Cit2b2lkIGFkZF9pbmZvX29wdGlv
bnMoc3RydWN0IG1hbmlmZXN0ICptKTsKIAogLyogQXJlIHdlIGhhcHB5IHRvIGNvbXBpbGUgc3R1
ZmYsIG9yIGp1c3Qgbm9uLWludHJ1c2l2ZSB0ZXN0cz8gKi8KIGV4dGVybiBib29sIHNhZmVfbW9k
ZTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2NjYW5saW50L3Rlc3RzL2luZm9fZXhpc3RzLmMgYi90b29s
cy9jY2FubGludC90ZXN0cy9pbmZvX2V4aXN0cy5jCmluZGV4IDVlNDQ1OWIuLjhmMDE5NDYgMTAw
NjQ0Ci0tLSBhL3Rvb2xzL2NjYW5saW50L3Rlc3RzL2luZm9fZXhpc3RzLmMKKysrIGIvdG9vbHMv
Y2NhbmxpbnQvdGVzdHMvaW5mb19leGlzdHMuYwpAQCAtMjAsNyArMjAsNyBAQCBzdGF0aWMgdm9p
ZCBjaGVja19oYXNfaW5mbyhzdHJ1Y3QgbWFuaWZlc3QgKm0sCiAJaWYgKG0tPmluZm9fZmlsZSkg
ewogCQlzY29yZS0+cGFzcyA9IHRydWU7CiAJCXNjb3JlLT5zY29yZSA9IHNjb3JlLT50b3RhbDsK
LQkJYWRkX2luZm9fb3B0aW9ucyhtLT5pbmZvX2ZpbGUpOworCQlhZGRfaW5mb19vcHRpb25zKG0p
OwogCX0gZWxzZSB7CiAJCXNjb3JlLT5lcnJvciA9IHRhbF9zdHJkdXAoc2NvcmUsCiAJIllvdSBo
YXZlIG5vIF9pbmZvIGZpbGUuXG5cbiIKZGlmZiAtLWdpdCBhL3Rvb2xzL2RlcGVuZHMuYyBiL3Rv
b2xzL2RlcGVuZHMuYwppbmRleCBmMWZmMzA5Li45NWJkYTFiIDEwMDY0NAotLS0gYS90b29scy9k
ZXBlbmRzLmMKKysrIGIvdG9vbHMvZGVwZW5kcy5jCkBAIC0yNTMsNiArMjUzLDEyIEBAIHN0YXRp
YyBjaGFyICoqZ2V0X29uZV9jZmxhZ3MoY29uc3Qgdm9pZCAqY3R4LCBjb25zdCBjaGFyICpkaXIs
CiAJcmV0dXJuIGdldF9vbmVfcHJvcChjdHgsIGRpciwgImNmbGFncyIsIGdldF9pbmZvKTsKIH0K
IAorc3RhdGljIGNoYXIgKipnZXRfb25lX2NjYW5saW50KGNvbnN0IHZvaWQgKmN0eCwgY29uc3Qg
Y2hhciAqZGlyLAorCQkJICAgICAgIGNoYXIgKigqZ2V0X2luZm8pKGNvbnN0IHZvaWQgKmN0eCwg
Y29uc3QgY2hhciAqZGlyKSkKK3sKKwlyZXR1cm4gZ2V0X29uZV9wcm9wKGN0eCwgZGlyLCAiY2Nh
bmxpbnQiLCBnZXRfaW5mbyk7Cit9CisKIC8qIE8obl4yKSBidXQgbiBpcyBzbWFsbC4gKi8KIHN0
YXRpYyBjaGFyICoqYWRkX2RlcHMoY2hhciAqKmRlcHMxLCBjaGFyICoqZGVwczIpCiB7CkBAIC0y
ODIsNiArMjg4LDE4IEBAIGNoYXIgKipnZXRfY2ZsYWdzKGNvbnN0IHZvaWQgKmN0eCwgY29uc3Qg
Y2hhciAqZGlyLAogCXJldHVybiBmbGFnczsKIH0KIAorY2hhciAqKmdldF9jY2FubGludChjb25z
dCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpciwKKwkJICAgIGNoYXIgKigqZ2V0X2luZm8pKGNv
bnN0IHZvaWQgKmN0eCwgY29uc3QgY2hhciAqZGlyKSkKK3sKKwljaGFyICoqY2NhbmxpbnQ7CisJ
dW5zaWduZWQgaW50IGxlbjsKKwljY2FubGludCA9IGdldF9vbmVfY2NhbmxpbnQoY3R4LCBkaXIs
IGdldF9pbmZvKTsKKwlsZW4gPSB0YWxfY291bnQoY2NhbmxpbnQpOworCXRhbF9yZXNpemUoJmNj
YW5saW50LCBsZW4gKyAxKTsKKwljY2FubGludFtsZW5dID0gTlVMTDsKKwlyZXR1cm4gY2Nhbmxp
bnQ7Cit9CisKIHN0YXRpYyBjaGFyICpnZXRfb25lX3BvcnRlZChjb25zdCB2b2lkICpjdHgsIGNv
bnN0IGNoYXIgKmRpciwKIAkJCSAgICBjaGFyICooKmdldF9pbmZvKShjb25zdCB2b2lkICpjdHgs
IGNvbnN0IGNoYXIgKmRpcikpCiB7CmRpZmYgLS1naXQgYS90b29scy90b29scy5oIGIvdG9vbHMv
dG9vbHMuaAppbmRleCA2NjhjOTFhLi5kMjlhMjVmIDEwMDY0NAotLS0gYS90b29scy90b29scy5o
CisrKyBiL3Rvb2xzL3Rvb2xzLmgKQEAgLTQ4LDYgKzQ4LDkgQEAgY2hhciAqKmdldF9saWJzKGNv
bnN0IHZvaWQgKmN0eCwgY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICpzdHlsZSwKIGNoYXIg
KipnZXRfY2ZsYWdzKGNvbnN0IHZvaWQgKmN0eCwgY29uc3QgY2hhciAqZGlyLAogCQljaGFyICoo
KmdldF9pbmZvKShjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpcikpOwogCitjaGFyICoq
Z2V0X2NjYW5saW50KGNvbnN0IHZvaWQgKmN0eCwgY29uc3QgY2hhciAqZGlyLAorCQkgICAgY2hh
ciAqKCpnZXRfaW5mbykoY29uc3Qgdm9pZCAqY3R4LCBjb25zdCBjaGFyICpkaXIpKTsKKwogY2hh
ciAqZ2V0X3BvcnRlZChjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpciwgYm9vbCByZWN1
cnNlLAogCQkgY2hhciAqKCpnZXRfaW5mbykoY29uc3Qgdm9pZCAqY3R4LCBjb25zdCBjaGFyICpk
aXIpKTsKIAotLSAKMi45LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCmNjYW4gbWFpbGluZyBsaXN0CmNjYW5AbGlzdHMub3psYWJzLm9yZwpodHRwczov
L2xpc3RzLm96bGFicy5vcmcvbGlzdGluZm8vY2Nhbgo=