[COMMIT] Move extents.c to working in byte positions only; fix a bug, extent_detach()

Aidan Kehoe <[email protected]> Fri, 27 Mar 2015 23:48:58 +0000
Newsgroups gmane.emacs.xemacs.patches
Message-ID <[email protected]>
ClRoaXMgd29u4oCZdCBoYXZlIGEgYmlnIGltcGFjdCBvbiBhbnlvbmUsIGJ1dCB0aGUgYnVnIGhh
cyBiZWVuIGFyb3VuZCBzaW5jZSAyMDAyCmFuZCBpZiBJIGRvbuKAmXQgZml4IGl0IHRvZGF5IEkg
ZG9u4oCZdCBhbnRpY2lwYXRlIGl0IHdpbGwgYmUgZml4ZWQgOikgLiBNb3ZpbmcKZXh0ZW50cy5j
IHRvIHdvcmsgZXhjbHVzaXZlbHkgaW4gYnl0ZSBwb3NpdGlvbnMgaXMgYSBzdHlsZSBjaGFuZ2Ug
dGhhdCB3aWxsCm1ha2UgaXQgZWFzaWVyIHRvIGF2b2lkIHRoZSBwcm9ibGVtIGluIHRoZSBmdXR1
cmUuCgpBUFBST1ZFIENPTU1JVAoKTk9URTogVGhpcyBwYXRjaCBoYXMgYmVlbiBjb21taXR0ZWQK
CiMgSEcgY2hhbmdlc2V0IHBhdGNoCiMgVXNlciBBaWRhbiBLZWhvZSA8a2Vob2VhQHBhcmhhc2Fy
ZC5uZXQ+CiMgRGF0ZSAxNDI3NDk5NTg5IDAKIyAgICAgIEZyaSBNYXIgMjcgMjM6Mzk6NDkgMjAx
NSArMDAwMAojIE5vZGUgSUQgNzdkN2I3NzkwOWMyOGY0OTAyZTQ0YmU3NTBkZDc1OTdhYjMyYzE1
ZAojIFBhcmVudCAgOTE2MTg3YTAzYjgyMmUwNzhmZTQzYWRlYzcyNmI2OGRhYzRiMDc3OApNb3Zl
IGV4dGVudHMuYyB0byB3b3JraW5nIGluIGJ5dGUgcG9zaXRpb25zIG9ubHk7IGZpeCBhIGJ1Zywg
ZXh0ZW50X2RldGFjaCgpCgpzcmMvQ2hhbmdlTG9nIGFkZGl0aW9uOgoKMjAxNS0wMy0yNyAgQWlk
YW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KCglGaXggYSBzbWFsbCBidWcsIGV4dGVu
dF9kZXRhY2goKTsgbWluaW1pc2UgbmVlZGxlc3MgY2hhci1ieXRlCgljb252ZXJzaW9uLCBleHRl
bnRzLmMsIHN0aWNraW5nIHRvIGJ5dGUgcG9zaXRpb25zIGluIGdlbmVyYWwgaW4KCXRoaXMgZmls
ZS4KCSogZXh0ZW50cy5jOgoJKiBleHRlbnRzLmMgKHNpZ25hbF9zaW5nbGVfZXh0ZW50X2NoYW5n
ZWQpOgoJUGFzcyBieXRlIGVuZHBvaW50cyB0bwoJZ3V0dGVyX2V4dGVudF9zaWduYWxfY2hhbmdl
ZF9yZWdpb25fbWF5YmUoKSwKCWJ1ZmZlcl9leHRlbnRfc2lnbmFsX2NoYW5nZWRfcmVnaW9uKCku
CgkqIGV4dGVudHMuYyAoZXh0ZW50X2RldGFjaCk6CglDYWxsIHNpZ25hbF9leHRlbnRfY2hhbmdl
ZCgpIGNvcnJlY3RseSwgcGFzcyBib3RoIGV4dGVudCBlbmRwb2ludHMKCXJhdGhlciB0aGFuIGp1
c3QgdGhlIGJ5dGUgYW5kIGNoYXJhY3RlciB2YXJpYW50cyBvZiB0aGUgc3RhcnQuCgkqIGV4dGVu
dHMuYyAoc3RydWN0IHJlcG9ydF9leHRlbnRfbW9kaWZpY2F0aW9uX2Nsb3N1cmUpOgoJRG8gdGhp
cyBpbiB0ZXJtcyBvZiBieXRlIHBvc2l0aW9ucy4KCSogZXh0ZW50cy5jIChyZXBvcnRfZXh0ZW50
X21vZGlmaWNhdGlvbl9tYXBwZXIpOgoJVXNlIGJ5dGUgcG9zaXRpb25zLCBvbmx5IGNvbnZlcnRp
bmcgdG8gY2hhcmFjdGVycyB3aGVuIHdlIGFyZQoJZGVmaW5pdGVseSBjYWxsaW5nIExpc3AuCgkq
IGV4dGVudHMuYyAocmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb24pOgoJVXNlIGJ5dGUgcG9zaXRp
b25zIGluIHRoaXMgQVBJLCBtb3ZlIHRoZSBieXRlLWNoYXIgY29udmVyc2lvbiB0bwoJb3VyIGNh
bGxlcnMsIHNpbXBsaWZ5aW5nIGV4dGVudHMuYyAoaXQgYWxsIG5vdyB3b3JrcyBpbiBieXRlCglw
b3NpdGlvbnMpLgoJKiBleHRlbnRzLmg6CglVcGRhdGUgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRp
b24ncyBwcm90b3R5cGUuCgkqIGd1dHRlci5jIChndXR0ZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2Vk
X3JlZ2lvbl9tYXliZSk6CglVc2UgYnl0ZSBwb3NpdGlvbnMgaGVyZSwgYXZvaWRzIG5lZWRsZXNz
IGJ5dGUtY2hhciBjb252ZXJzaW9uLgoJKiBndXR0ZXIuaDoKCVVwZGF0ZSB0aGUgcHJvdG90eXBl
IGhlcmUuCgkqIGluc2RlbC5jOgoJKiBpbnNkZWwuYyAoYnVmZmVyX2V4dGVudF9zaWduYWxfY2hh
bmdlZF9yZWdpb24pOgoJSW1wbGVtZW50IHRoaXMgaW4gdGVybXMgb2YgYnl0ZSBwb3NpdGlvbnMu
CgkqIGluc2RlbC5jIChzaWduYWxfYmVmb3JlX2NoYW5nZSk6CgkqIGluc2RlbC5jIChzaWduYWxf
YWZ0ZXJfY2hhbmdlKToKCUNhbGwgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb24oKSB3aXRoIGJ5
dGUgcG9zaXRpb25zLCBkb2luZyB0aGUKCWNoYXItPmJ5dGUgY29udmVyc2lvbiBoZXJlIHJhdGhl
ciB0aGFuIGxlYXZpbmcgaXQgdG8gZXh0ZW50cy5jLgoJKiBpbnNkZWwuaDoKCSogaW5zZGVsLmgg
KHN0cnVjdCBlYWNoX2J1ZmZlcl9jaGFuZ2VfZGF0YSk6CglUaGUgZXh0ZW50IHVuY2hhbmdlZCBp
bmZvIG5vdyBkZXNjcmliZXMgYnl0ZWNvdW50cy4KCmRpZmYgLXIgOTE2MTg3YTAzYjgyIC1yIDc3
ZDdiNzc5MDljMiBzcmMvQ2hhbmdlTG9nCi0tLSBhL3NyYy9DaGFuZ2VMb2cJVGh1IE1hciAyNiAy
MDo0NzoxMiAyMDE1IC0wNDAwCisrKyBiL3NyYy9DaGFuZ2VMb2cJRnJpIE1hciAyNyAyMzozOTo0
OSAyMDE1ICswMDAwCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTUtMDMtMjcgIEFpZGFuIEtlaG9lICA8
a2Vob2VhQHBhcmhhc2FyZC5uZXQ+CisKKwlGaXggYSBzbWFsbCBidWcsIGV4dGVudF9kZXRhY2go
KTsgbWluaW1pc2UgbmVlZGxlc3MgY2hhci1ieXRlCisJY29udmVyc2lvbiwgZXh0ZW50cy5jLCBz
dGlja2luZyB0byBieXRlIHBvc2l0aW9ucyBpbiBnZW5lcmFsIGluCisJdGhpcyBmaWxlLgorCSog
ZXh0ZW50cy5jOgorCSogZXh0ZW50cy5jIChzaWduYWxfc2luZ2xlX2V4dGVudF9jaGFuZ2VkKToK
KwlQYXNzIGJ5dGUgZW5kcG9pbnRzIHRvCisJZ3V0dGVyX2V4dGVudF9zaWduYWxfY2hhbmdlZF9y
ZWdpb25fbWF5YmUoKSwKKwlidWZmZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2VkX3JlZ2lvbigpLgor
CSogZXh0ZW50cy5jIChleHRlbnRfZGV0YWNoKToKKwlDYWxsIHNpZ25hbF9leHRlbnRfY2hhbmdl
ZCgpIGNvcnJlY3RseSwgcGFzcyBib3RoIGV4dGVudCBlbmRwb2ludHMKKwlyYXRoZXIgdGhhbiBq
dXN0IHRoZSBieXRlIGFuZCBjaGFyYWN0ZXIgdmFyaWFudHMgb2YgdGhlIHN0YXJ0LgorCSogZXh0
ZW50cy5jIChzdHJ1Y3QgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb25fY2xvc3VyZSk6CisJRG8g
dGhpcyBpbiB0ZXJtcyBvZiBieXRlIHBvc2l0aW9ucy4KKwkqIGV4dGVudHMuYyAocmVwb3J0X2V4
dGVudF9tb2RpZmljYXRpb25fbWFwcGVyKToKKwlVc2UgYnl0ZSBwb3NpdGlvbnMsIG9ubHkgY29u
dmVydGluZyB0byBjaGFyYWN0ZXJzIHdoZW4gd2UgYXJlCisJZGVmaW5pdGVseSBjYWxsaW5nIExp
c3AuCisJKiBleHRlbnRzLmMgKHJlcG9ydF9leHRlbnRfbW9kaWZpY2F0aW9uKToKKwlVc2UgYnl0
ZSBwb3NpdGlvbnMgaW4gdGhpcyBBUEksIG1vdmUgdGhlIGJ5dGUtY2hhciBjb252ZXJzaW9uIHRv
CisJb3VyIGNhbGxlcnMsIHNpbXBsaWZ5aW5nIGV4dGVudHMuYyAoaXQgYWxsIG5vdyB3b3JrcyBp
biBieXRlCisJcG9zaXRpb25zKS4gCisJKiBleHRlbnRzLmg6CisJVXBkYXRlIHJlcG9ydF9leHRl
bnRfbW9kaWZpY2F0aW9uJ3MgcHJvdG90eXBlLgorCSogZ3V0dGVyLmMgKGd1dHRlcl9leHRlbnRf
c2lnbmFsX2NoYW5nZWRfcmVnaW9uX21heWJlKToKKwlVc2UgYnl0ZSBwb3NpdGlvbnMgaGVyZSwg
YXZvaWRzIG5lZWRsZXNzIGJ5dGUtY2hhciBjb252ZXJzaW9uLgorCSogZ3V0dGVyLmg6CisJVXBk
YXRlIHRoZSBwcm90b3R5cGUgaGVyZS4KKwkqIGluc2RlbC5jOgorCSogaW5zZGVsLmMgKGJ1ZmZl
cl9leHRlbnRfc2lnbmFsX2NoYW5nZWRfcmVnaW9uKToKKwlJbXBsZW1lbnQgdGhpcyBpbiB0ZXJt
cyBvZiBieXRlIHBvc2l0aW9ucy4KKwkqIGluc2RlbC5jIChzaWduYWxfYmVmb3JlX2NoYW5nZSk6
CisJKiBpbnNkZWwuYyAoc2lnbmFsX2FmdGVyX2NoYW5nZSk6CisJQ2FsbCByZXBvcnRfZXh0ZW50
X21vZGlmaWNhdGlvbigpIHdpdGggYnl0ZSBwb3NpdGlvbnMsIGRvaW5nIHRoZQorCWNoYXItPmJ5
dGUgY29udmVyc2lvbiBoZXJlIHJhdGhlciB0aGFuIGxlYXZpbmcgaXQgdG8gZXh0ZW50cy5jLgor
CSogaW5zZGVsLmg6CisJKiBpbnNkZWwuaCAoc3RydWN0IGVhY2hfYnVmZmVyX2NoYW5nZV9kYXRh
KToKKwlUaGUgZXh0ZW50IHVuY2hhbmdlZCBpbmZvIG5vdyBkZXNjcmliZXMgYnl0ZWNvdW50cy4g
CisKIDIwMTUtMDMtMjYgIFZpbiBTaGVsdG9uICA8YWNzQHhlbWFjcy5vcmc+CiAKICAgICAgICAg
KiBtL3g4Nl82NC5oOiBEZWxldGVkOyBjYXVzZWQgYm9ndXMgR05VTWFrZWZpbGUgZ2VuZXJhdGlv
bgpkaWZmIC1yIDkxNjE4N2EwM2I4MiAtciA3N2Q3Yjc3OTA5YzIgc3JjL2V4dGVudHMuYwotLS0g
YS9zcmMvZXh0ZW50cy5jCVRodSBNYXIgMjYgMjA6NDc6MTIgMjAxNSAtMDQwMAorKysgYi9zcmMv
ZXh0ZW50cy5jCUZyaSBNYXIgMjcgMjM6Mzk6NDkgMjAxNSArMDAwMApAQCAtMTQ3Myw4ICsxNDcz
LDggQEAKIAkgIGlmICghaW5fbW9kZWxpbmVfZ2VuZXJhdGlvbikKIAkgICAgTUFSS19FWFRFTlRT
X0NIQU5HRUQ7CiAJICBndXR0ZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2VkX3JlZ2lvbl9tYXliZQot
CSAgICAob2JqZWN0LCBleHRlbnRfZW5kcG9pbnRfY2hhciAoZXh0ZW50LCAwKSwKLQkgICAgIGV4
dGVudF9lbmRwb2ludF9jaGFyIChleHRlbnQsIDEpKTsKKyAgICAgICAgICAgIChvYmplY3QsIGV4
dGVudF9lbmRwb2ludF9ieXRlIChleHRlbnQsIDApLAorCSAgICAgZXh0ZW50X2VuZHBvaW50X2J5
dGUgKGV4dGVudCwgMSkpOwogCX0KICAgICAgIGVsc2UgaWYgKEJVRkZFUlAgKG9iamVjdCkpCiAJ
ewpAQCAtMTQ4Niw4ICsxNDg2LDggQEAKIAkgICAgICBFUSAocHJvcGVydHksIFFpbnZpc2libGUp
KQogCSAgICBNQVJLX0NMSVBfQ0hBTkdFRDsKIAkgIGJ1ZmZlcl9leHRlbnRfc2lnbmFsX2NoYW5n
ZWRfcmVnaW9uCi0JICAgIChiLCBleHRlbnRfZW5kcG9pbnRfY2hhciAoZXh0ZW50LCAwKSwKLQkg
ICAgIGV4dGVudF9lbmRwb2ludF9jaGFyIChleHRlbnQsIDEpKTsKKyAgICAgICAgICAgIChiLCBl
eHRlbnRfZW5kcG9pbnRfYnl0ZSAoZXh0ZW50LCAwKSwKKwkgICAgIGV4dGVudF9lbmRwb2ludF9i
eXRlIChleHRlbnQsIDEpKTsKIAl9CiAgICAgfQogCkBAIC0xNjk2LDEwICsxNjk2LDggQEAKICAg
ZWwgPSBleHRlbnRfZXh0ZW50X2xpc3QgKGV4dGVudCk7CiAKICAgLyogY2FsbCB0aGlzIGJlZm9y
ZSBtZXNzaW5nIHdpdGggdGhlIGV4dGVudC4gKi8KLSAgc2lnbmFsX2V4dGVudF9jaGFuZ2VkIChl
eHRlbnQsIFFuaWwsCi0JCQkgZXh0ZW50X2VuZHBvaW50X2J5dGUgKGV4dGVudCwgMCksCi0JCQkg
ZXh0ZW50X2VuZHBvaW50X2NoYXIgKGV4dGVudCwgMCksCi0JCQkgMCk7CisgIHNpZ25hbF9leHRl
bnRfY2hhbmdlZCAoZXh0ZW50LCBRbmlsLCBleHRlbnRfZW5kcG9pbnRfYnl0ZSAoZXh0ZW50LCAw
KSwKKwkJCSBleHRlbnRfZW5kcG9pbnRfYnl0ZSAoZXh0ZW50LCAxKSwgMCk7CiAgIGV4dGVudF9s
aXN0X2RlbGV0ZSAoZWwsIGV4dGVudCk7CiAgIHNvZV9kZWxldGUgKGV4dGVudF9vYmplY3QgKGV4
dGVudCksIGV4dGVudCk7CiAgIHNldF9leHRlbnRfc3RhcnQgKGV4dGVudCwgLTEpOwpAQCAtNDYz
Miw3ICs0NjMwLDcgQEAKIHN0cnVjdCByZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbl9jbG9zdXJl
CiB7CiAgIExpc3BfT2JqZWN0IGJ1ZmZlcjsKLSAgQ2hhcnhwb3Mgc3RhcnQsIGVuZDsKKyAgQnl0
ZXhwb3Mgc3RhcnQsIGVuZDsKICAgaW50IGFmdGVycDsKICAgaW50IHNwZWNjb3VudDsKIH07CkBA
IC00NjU4LDggKzQ2NTYsMTIgQEAKICAgICByZXR1cm4gMDsKIAogICBleG9iaiA9IHdyYXBfZXh0
ZW50IChleHRlbnQpOwotICBzdGFydG9iaiA9IG1ha2VfZml4bnVtIChjbG9zdXJlLT5zdGFydCk7
Ci0gIGVuZG9iaiA9IG1ha2VfZml4bnVtIChjbG9zdXJlLT5lbmQpOworICBzdGFydG9iagorICAg
ID0gbWFrZV9maXhudW0gKGJ1ZmZlcl9vcl9zdHJpbmdfYnl0ZXhwb3NfdG9fY2hhcnhwb3MKKyAg
ICAgICAgICAgICAgICAgICAoZXh0ZW50X29iamVjdCAoZXh0ZW50KSwgY2xvc3VyZS0+c3RhcnQp
KTsKKyAgZW5kb2JqCisgICAgPSBtYWtlX2ZpeG51bSAoYnVmZmVyX29yX3N0cmluZ19ieXRleHBv
c190b19jaGFyeHBvcworICAgICAgICAgICAgICAgICAgIChleHRlbnRfb2JqZWN0IChleHRlbnQp
LCBjbG9zdXJlLT5lbmQpKTsKIAogICAvKiBOb3cgdGhhdCB3ZSBhcmUgc3VyZSB0byBjYWxsIGVs
aXNwLCBzZXQgdXAgYW4gdW53aW5kLXByb3RlY3Qgc28KICAgICAgaW5zaWRlX2NoYW5nZV9ob29r
IGdldHMgcmVzdG9yZWQgaW4gY2FzZSB3ZSB0aHJvdy4gIEFsc28gcmVjb3JkCkBAIC00NzA0LDcg
KzQ3MDYsNyBAQAogfQogCiB2b2lkCi1yZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbiAoTGlzcF9P
YmplY3QgYnVmZmVyLCBDaGFyYnBvcyBzdGFydCwgQ2hhcmJwb3MgZW5kLAorcmVwb3J0X2V4dGVu
dF9tb2RpZmljYXRpb24gKExpc3BfT2JqZWN0IGJ1ZmZlciwgQnl0ZXhwb3Mgc3RhcnQsIEJ5dGV4
cG9zIGVuZCwKIAkJCSAgICBpbnQgYWZ0ZXJwKQogewogICBzdHJ1Y3QgcmVwb3J0X2V4dGVudF9t
b2RpZmljYXRpb25fY2xvc3VyZSBjbG9zdXJlOwpAQCAtNDcxNSwxMCArNDcxNyw4IEBACiAgIGNs
b3N1cmUuYWZ0ZXJwID0gYWZ0ZXJwOwogICBjbG9zdXJlLnNwZWNjb3VudCA9IC0xOwogCi0gIG1h
cF9leHRlbnRzIChjaGFyYnBvc190b19ieXRlYnBvcyAoWEJVRkZFUiAoYnVmZmVyKSwgc3RhcnQp
LAotCSAgICAgICBjaGFyYnBvc190b19ieXRlYnBvcyAoWEJVRkZFUiAoYnVmZmVyKSwgZW5kKSwK
LQkgICAgICAgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb25fbWFwcGVyLCAodm9pZCAqKSZjbG9z
dXJlLAotCSAgICAgICBidWZmZXIsIE5VTEwsIE1FX01JR0hUX0NBTExfRUxJU1ApOworICBtYXBf
ZXh0ZW50cyAoc3RhcnQsIGVuZCwgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb25fbWFwcGVyLAor
ICAgICAgICAgICAgICAgKHZvaWQgKikmY2xvc3VyZSwgYnVmZmVyLCBOVUxMLCBNRV9NSUdIVF9D
QUxMX0VMSVNQKTsKIH0KIAogDApkaWZmIC1yIDkxNjE4N2EwM2I4MiAtciA3N2Q3Yjc3OTA5YzIg
c3JjL2V4dGVudHMuaAotLS0gYS9zcmMvZXh0ZW50cy5oCVRodSBNYXIgMjYgMjA6NDc6MTIgMjAx
NSAtMDQwMAorKysgYi9zcmMvZXh0ZW50cy5oCUZyaSBNYXIgMjcgMjM6Mzk6NDkgMjAxNSArMDAw
MApAQCAtMTgxLDkgKzE4MSw4IEBACiAJCQkJICAgIEJ5dGV4cG9zIG9wb2ludCwgQnl0ZWNvdW50
IGxlbmd0aCk7CiB2b2lkIHByb2Nlc3NfZXh0ZW50c19mb3JfZGVsZXRpb24gKExpc3BfT2JqZWN0
IG9iamVjdCwgQnl0ZXhwb3MgZnJvbSwKIAkJCQkgICBCeXRleHBvcyB0bywgaW50IGRlc3Ryb3lf
dGhlbSk7Ci0vKiBOb3RlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gaXMgaW4gQ2hhcmJwb3MncyAq
Lwotdm9pZCByZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbiAoTGlzcF9PYmplY3QgYnVmZmVyLCBD
aGFyYnBvcyBzdGFydCwKLQkJCQkgQ2hhcmJwb3MgZW5kLCBpbnQgYWZ0ZXJwKTsKK3ZvaWQgcmVw
b3J0X2V4dGVudF9tb2RpZmljYXRpb24gKExpc3BfT2JqZWN0IGJ1ZmZlciwgQnl0ZXhwb3Mgc3Rh
cnQsCisJCQkJIEJ5dGV4cG9zIGVuZCwgaW50IGFmdGVycCk7CiB2b2lkIGFkZF9zdHJpbmdfZXh0
ZW50cyAoTGlzcF9PYmplY3Qgc3RyaW5nLCBzdHJ1Y3QgYnVmZmVyICpidWYsCiAJCQkgQnl0ZXhw
b3Mgb3BvaW50LCBCeXRlY291bnQgbGVuZ3RoKTsKIHZvaWQgc3BsaWNlX2luX3N0cmluZ19leHRl
bnRzIChMaXNwX09iamVjdCBzdHJpbmcsIHN0cnVjdCBidWZmZXIgKmJ1ZiwKZGlmZiAtciA5MTYx
ODdhMDNiODIgLXIgNzdkN2I3NzkwOWMyIHNyYy9ndXR0ZXIuYwotLS0gYS9zcmMvZ3V0dGVyLmMJ
VGh1IE1hciAyNiAyMDo0NzoxMiAyMDE1IC0wNDAwCisrKyBiL3NyYy9ndXR0ZXIuYwlGcmkgTWFy
IDI3IDIzOjM5OjQ5IDIwMTUgKzAwMDAKQEAgLTUyMiw4ICs1MjIsOCBAQAogICAga25vd3MgZXhh
Y3RseSB3aGF0IGV4dGVudHMgaGF2ZSBjaGFuZ2VkLiAqLwogdm9pZAogZ3V0dGVyX2V4dGVudF9z
aWduYWxfY2hhbmdlZF9yZWdpb25fbWF5YmUgKExpc3BfT2JqZWN0IG9iaiwKLQkJCQkJICAgQ2hh
cmJwb3MgVU5VU0VEIChzdGFydCksCi0JCQkJCSAgIENoYXJicG9zIFVOVVNFRCAoZW5kKSkKKwkJ
CQkJICAgQnl0ZXhwb3MgVU5VU0VEIChzdGFydCksCisJCQkJCSAgIEJ5dGV4cG9zIFVOVVNFRCAo
ZW5kKSkKIHsKICAgLyogIyMjIyBTdGFydCBhbmQgZW5kIGFyZSBjdXJyZW50bHkgaWdub3JlZCBi
dXQgY291bGQgYmUgdXNlZCBieSBhCiAgICAgIG1vcmUgb3B0aW1hbCBndXR0ZXIgcmVkaXNwbGF5
LiBXZSBjdXJyZW50bHkgbG9vcCBvdmVyIGFsbCBmcmFtZXMKZGlmZiAtciA5MTYxODdhMDNiODIg
LXIgNzdkN2I3NzkwOWMyIHNyYy9ndXR0ZXIuaAotLS0gYS9zcmMvZ3V0dGVyLmgJVGh1IE1hciAy
NiAyMDo0NzoxMiAyMDE1IC0wNDAwCisrKyBiL3NyYy9ndXR0ZXIuaAlGcmkgTWFyIDI3IDIzOjM5
OjQ5IDIwMTUgKzAwMDAKQEAgLTUwLDcgKzUwLDcgQEAKIAkJCSAgICAgaW50IGhlaWdodCk7CiB2
b2lkIHJlc2V0X2d1dHRlcl9kaXNwbGF5X2xpbmVzIChzdHJ1Y3QgZnJhbWUqIGYpOwogdm9pZCBn
dXR0ZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2VkX3JlZ2lvbl9tYXliZSAoTGlzcF9PYmplY3Qgb2Jq
LAotCQkJCQkJQ2hhcmJwb3Mgc3RhcnQsIENoYXJicG9zIGVuZCk7CisJCQkJCQlCeXRleHBvcyBz
dGFydCwgQnl0ZXhwb3MgZW5kKTsKIGludCBkaXNwbGF5X2JveGVzX2luX2d1dHRlcl9wIChzdHJ1
Y3QgZnJhbWUgKmYsIHN0cnVjdCBkaXNwbGF5X2JveCogZGIsCiAJCQkgICAgICAgc3RydWN0IGRp
c3BsYXlfZ2x5cGhfYXJlYSogZGdhKTsKIApkaWZmIC1yIDkxNjE4N2EwM2I4MiAtciA3N2Q3Yjc3
OTA5YzIgc3JjL2luc2RlbC5jCi0tLSBhL3NyYy9pbnNkZWwuYwlUaHUgTWFyIDI2IDIwOjQ3OjEy
IDIwMTUgLTA0MDAKKysrIGIvc3JjL2luc2RlbC5jCUZyaSBNYXIgMjcgMjM6Mzk6NDkgMjAxNSAr
MDAwMApAQCAtNTcwLDE1ICs1NzAsMTUgQEAKIH0KIAogdm9pZAotYnVmZmVyX2V4dGVudF9zaWdu
YWxfY2hhbmdlZF9yZWdpb24gKHN0cnVjdCBidWZmZXIgKmJ1ZiwgQ2hhcmJwb3Mgc3RhcnQsCi0J
CQkJICAgICBDaGFyYnBvcyBlbmQpCitidWZmZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2VkX3JlZ2lv
biAoc3RydWN0IGJ1ZmZlciAqYnVmLCBCeXRlYnBvcyBzdGFydCwKKwkJCQkgICAgIEJ5dGVicG9z
IGVuZCkKIHsKICAgaWYgKGJ1Zi0+Y2hhbmdlcy0+YmVnaW5fZXh0ZW50X3VuY2hhbmdlZCA8IDAg
fHwKLSAgICAgIGJ1Zi0+Y2hhbmdlcy0+YmVnaW5fZXh0ZW50X3VuY2hhbmdlZCA+IHN0YXJ0IC0g
QlVGX0JFRyAoYnVmKSkKLSAgICBidWYtPmNoYW5nZXMtPmJlZ2luX2V4dGVudF91bmNoYW5nZWQg
PSBzdGFydCAtIEJVRl9CRUcgKGJ1Zik7CisgICAgICBidWYtPmNoYW5nZXMtPmJlZ2luX2V4dGVu
dF91bmNoYW5nZWQgPiBzdGFydCAtIEJZVEVfQlVGX0JFRyAoYnVmKSkKKyAgICBidWYtPmNoYW5n
ZXMtPmJlZ2luX2V4dGVudF91bmNoYW5nZWQgPSBzdGFydCAtIEJZVEVfQlVGX0JFRyAoYnVmKTsK
ICAgaWYgKGJ1Zi0+Y2hhbmdlcy0+ZW5kX2V4dGVudF91bmNoYW5nZWQgPCAwIHx8Ci0gICAgICBi
dWYtPmNoYW5nZXMtPmVuZF9leHRlbnRfdW5jaGFuZ2VkID4gQlVGX1ogKGJ1ZikgLSBlbmQpCi0g
ICAgYnVmLT5jaGFuZ2VzLT5lbmRfZXh0ZW50X3VuY2hhbmdlZCA9IEJVRl9aIChidWYpIC0gZW5k
OworICAgICAgYnVmLT5jaGFuZ2VzLT5lbmRfZXh0ZW50X3VuY2hhbmdlZCA+IEJZVEVfQlVGX1og
KGJ1ZikgLSBlbmQpCisgICAgYnVmLT5jaGFuZ2VzLT5lbmRfZXh0ZW50X3VuY2hhbmdlZCA9IEJZ
VEVfQlVGX1ogKGJ1ZikgLSBlbmQ7CiB9CiAKIHZvaWQKQEAgLTgzNywxMCArODM3LDE2IEBACiAg
ICAgICBpZiAoZW5kIDwgQlVGX0JFR1YgKGJ1ZikpIGVuZCA9IEJVRl9CRUdWIChidWYpOwogICAg
ICAgaWYgKGVuZCA+IEJVRl9aViAoYnVmKSkgICBlbmQgPSBCVUZfWlYgKGJ1Zik7CiAKLSAgICAg
IE1BUF9JTkRJUkVDVF9CVUZGRVJTIChidWYsIG1idWYsIGJ1ZmNvbnMpCi0JewotCSAgcmVwb3J0
X2V4dGVudF9tb2RpZmljYXRpb24gKHdyYXBfYnVmZmVyIChtYnVmKSwgc3RhcnQsIGVuZCwgMCk7
Ci0JfQorICAgICAgeworICAgICAgICBCeXRleHBvcyBieXRlX3N0YXJ0ID0gY2hhcmJwb3NfdG9f
Ynl0ZWJwb3MgKGJ1Ziwgc3RhcnQpOworICAgICAgICBCeXRleHBvcyBieXRlX2VuZCA9IGNoYXJi
cG9zX3RvX2J5dGVicG9zIChidWYsIGVuZCk7CisKKyAgICAgICAgTUFQX0lORElSRUNUX0JVRkZF
UlMgKGJ1ZiwgbWJ1ZiwgYnVmY29ucykKKyAgICAgICAgICB7CisgICAgICAgICAgICByZXBvcnRf
ZXh0ZW50X21vZGlmaWNhdGlvbiAod3JhcF9idWZmZXIgKG1idWYpLCBieXRlX3N0YXJ0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVfZW5kLCAwKTsKKyAgICAg
ICAgICB9CisgICAgICB9CiAgICAgICB1bmJpbmRfdG8gKHNwZWNjb3VudCk7CiAKICAgICAgIC8q
IE9ubHkgbm93IGRvIHdlIGluZGljYXRlIHRoYXQgdGhlIGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25z
IGhhdmUKQEAgLTkzMCwxMiArOTM2LDE3IEBACiAgICAgICBpZiAob3JpZ19lbmQgPCBCVUZfQkVH
ViAoYnVmKSkgb3JpZ19lbmQgPSBCVUZfQkVHViAoYnVmKTsKICAgICAgIGlmIChvcmlnX2VuZCA+
IEJVRl9aViAoYnVmKSkgICBvcmlnX2VuZCA9IEJVRl9aViAoYnVmKTsKIAotICAgICAgTUFQX0lO
RElSRUNUX0JVRkZFUlMgKGJ1ZiwgbWJ1ZiwgYnVmY29ucykKLQl7Ci0JICBidWZmZXIgPSB3cmFw
X2J1ZmZlciAobWJ1Zik7Ci0JICByZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbiAoYnVmZmVyLCBz
dGFydCwgbmV3X2VuZCwgMSk7Ci0JfQotICAgICAgdW5iaW5kX3RvIChzcGVjY291bnQpOyAvKiBz
ZXRzIGluc2lkZV9jaGFuZ2VfaG9vayBiYWNrIHRvIDAgKi8KKyAgICAgIHsKKyAgICAgICAgQnl0
ZXhwb3MgYnl0ZV9zdGFydCA9IGNoYXJicG9zX3RvX2J5dGVicG9zIChidWYsIHN0YXJ0KTsKKyAg
ICAgICAgQnl0ZXhwb3MgYnl0ZV9uZXdfZW5kID0gY2hhcmJwb3NfdG9fYnl0ZWJwb3MgKGJ1Ziwg
bmV3X2VuZCk7CisKKyAgICAgICAgTUFQX0lORElSRUNUX0JVRkZFUlMgKGJ1ZiwgbWJ1ZiwgYnVm
Y29ucykKKyAgICAgICAgICB7CisgICAgICAgICAgICBidWZmZXIgPSB3cmFwX2J1ZmZlciAobWJ1
Zik7CisgICAgICAgICAgICByZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbiAoYnVmZmVyLCBieXRl
X3N0YXJ0LCBieXRlX25ld19lbmQsIDEpOworICAgICAgICAgIH0KKyAgICAgICAgdW5iaW5kX3Rv
IChzcGVjY291bnQpOyAvKiBzZXRzIGluc2lkZV9jaGFuZ2VfaG9vayBiYWNrIHRvIDAgKi8KKyAg
ICAgIH0KICAgICB9CiB9CiAKZGlmZiAtciA5MTYxODdhMDNiODIgLXIgNzdkN2I3NzkwOWMyIHNy
Yy9pbnNkZWwuaAotLS0gYS9zcmMvaW5zZGVsLmgJVGh1IE1hciAyNiAyMDo0NzoxMiAyMDE1IC0w
NDAwCisrKyBiL3NyYy9pbnNkZWwuaAlGcmkgTWFyIDI3IDIzOjM5OjQ5IDIwMTUgKzAwMDAKQEAg
LTk5LDcgKzk5LDcgQEAKICAgLyogcmVkaXNwbGF5IG5lZWRzIHRvIGtub3cgaWYgYSBuZXdsaW5l
IHdhcyBkZWxldGVkIHNvIGl0cwogICAgICBpbmNyZW1lbnRhbC1yZWRpc3BsYXkgYWxnb3JpdGht
IHdpbGwgZmFpbCAqLwogICBpbnQgbmV3bGluZV93YXNfZGVsZXRlZDsKLSAgQ2hhcmNvdW50IGJl
Z2luX2V4dGVudF91bmNoYW5nZWQsIGVuZF9leHRlbnRfdW5jaGFuZ2VkOworICBCeXRlY291bnQg
YmVnaW5fZXh0ZW50X3VuY2hhbmdlZCwgZW5kX2V4dGVudF91bmNoYW5nZWQ7CiB9OwogCiAvKiBO
dW1iZXIgb2YgY2hhcmFjdGVycyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGJ1ZmZl
ciB0aGF0CkBAIC0xMTEsNyArMTExLDcgQEAKICNkZWZpbmUgQlVGX0JFR0lOX1VOQ0hBTkdFRChi
dWYpICgoYnVmKS0+Y2hhbmdlcy0+YmVnaW5fdW5jaGFuZ2VkKQogI2RlZmluZSBCVUZfRU5EX1VO
Q0hBTkdFRChidWYpICgoYnVmKS0+Y2hhbmdlcy0+ZW5kX3VuY2hhbmdlZCkKIAotLyogTnVtYmVy
IG9mIGNoYXJhY3RlcnMgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSBidWZmZXIgdGhh
dAorLyogTnVtYmVyIG9mIGJ5dGVzIGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgYnVm
ZmVyIHRoYXQKICAgIGhhdmUgbm90IGhhZCBhIGNvdmVyaW5nIGV4dGVudCBjaGFuZ2Ugc2luY2Ug
dGhlIGxhc3QgY2FsbCB0bwogICAgYnVmZmVyX3Jlc2V0X2NoYW5nZXMgKCkuICBJZiBubyBjaGFu
Z2VzIGhhdmUgb2NjdXJyZWQgc2luY2UgdGhlbiwKICAgIGJvdGggdmFsdWVzIHdpbGwgYmUgLTEu
CgoKLS0gCuKAmFRyYW1hZG9sIGlzIGZ1cnRoZXIgZmVkIHRvIGNhdHRsZSBb4oCmXSB3aGVuIHdv
cmtpbmcgdGhlbSBb4oCmXSAoYXMgZHJhZnQKYW5pbWFscykgc28gdGhhdCB0aGUgYW5pbWFscyBk
byBub3QgZ2V0IHRpcmVkIHF1aWNrbHkuIOKApuKAmQoJ4oCUIEFuZ2V3YW5kdGUgQ2hlbWllLCBT
ZXB0IDIwMTQsIGRlc2NyaWJpbmcgdGhlIHNvY2lhbCBjb250ZXh0IG9mCgkoc3ludGhldGljKSB0
cmFtYWRvbCBoYXZpbmcgYmVlbiBmb3VuZCBpbiBDYW1lcm9vbiB0cmVlIHJvb3RzLgoKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWEVtYWNzLVBhdGNoZXMg
bWFpbGluZyBsaXN0ClhFbWFjcy1QYXRjaGVzQHhlbWFjcy5vcmcKaHR0cDovL2xpc3RzLnhlbWFj
cy5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW1hY3MtcGF0Y2hlcwo=