[SPAM] Onchange script

Drew Wells <[email protected]> Tue, 15 Sep 2015 10:15:44 +0100
Newsgroups gmane.mail.vpopmail
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------030903020101030307010601
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

I use the onchange functionality in vpopmail-5.5.0 but find it awkward 
that the script is only called once for "add_domain", instead of calling 
the script with "add_domain", "add_user" then "mod_user" so have written 
a patch to allow this.  One side affect is that the order of calls in 
vadduser() has changed.  Patch attached.


!DSPAM:55f7e1c341551875619181!

--------------030903020101030307010601
Content-Type: text/plain; charset=UTF-8;
 name="vpopmail-5.5.0-onchange-allow.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="vpopmail-5.5.0-onchange-allow.patch"

ZGlmZiAtdVByIHZwb3BtYWlsLTUuNS4wLm9yaWcvYmFja2VuZHMvY2RiL3ZjZGIuYyB2cG9w
bWFpbC01LjUuMC9iYWNrZW5kcy9jZGIvdmNkYi5jCi0tLSB2cG9wbWFpbC01LjUuMC5vcmln
L2JhY2tlbmRzL2NkYi92Y2RiLmMJMjAxMC0xMS0wNSAxODozNzoyMy4wMDAwMDAwMDAgKzAw
MDAKKysrIHZwb3BtYWlsLTUuNS4wL2JhY2tlbmRzL2NkYi92Y2RiLmMJMjAxNS0wOS0wNCAx
Mjo0MjowMC4zMDYwOTU4MjIgKzAxMDAKQEAgLTY2NCwxMiArNjY0LDE2IEBACiAjZW5kaWYK
IAogI2lmZGVmIE9OQ0hBTkdFX1NDUklQVAorI2lmZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExP
VwogICAgIGlmKCBhbGxvd19vbmNoYW5nZSApIHsKKyNlbmRpZgogICAgICAgIC8qIHRlbGwg
b3RoZXIgcHJvZ3JhbXMgdGhhdCBkYXRhIGhhcyBjaGFuZ2VkICovCiAgICAgICAgc25wcmlu
dGYgKCBvbmNoYW5nZV9idWYsIE1BWF9CVUZGLCAiJXNAJXMiLCBpbnB3LT5wd19uYW1lLCBk
b21haW4gKSA7CiAgICAgICAgY2FsbF9vbmNoYW5nZSAoICJtb2RfdXNlciIgKSA7CisjaWZk
ZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgICAgfQogI2VuZGlmCisjZW5kaWYKIAog
CWlmICghKHN0cmNhc2VjbXAoaW5wdy0+cHdfc2hlbGwsICJOT1FVT1RBIikpKQogCSAgIHJl
bW92ZV9tYWlsZGlyc2l6ZShpbnB3LT5wd19kaXIpOwpkaWZmIC11UHIgdnBvcG1haWwtNS41
LjAub3JpZy9iYWNrZW5kcy9sZGFwL3ZsZGFwLmMgdnBvcG1haWwtNS41LjAvYmFja2VuZHMv
bGRhcC92bGRhcC5jCi0tLSB2cG9wbWFpbC01LjUuMC5vcmlnL2JhY2tlbmRzL2xkYXAvdmxk
YXAuYwkyMDEwLTExLTA1IDE4OjM3OjI0LjAwMDAwMDAwMCArMDAwMAorKysgdnBvcG1haWwt
NS41LjAvYmFja2VuZHMvbGRhcC92bGRhcC5jCTIwMTUtMDktMDQgMTI6NDI6MDAuMzA3MDk1
NzY5ICswMTAwCkBAIC05NzIsMTIgKzk3MiwxNiBAQAogI2VuZGlmCiAKICNpZmRlZiBPTkNI
QU5HRV9TQ1JJUFQKKyNpZmRlZiBPTkNIQU5HRV9TQ1JJUFRfQUxMT1cKICAgICBpZiggYWxs
b3dfb25jaGFuZ2UgKSB7CisjZW5kaWYKICAgICAgICAvKiB0ZWxsIG90aGVyIHByb2dyYW1z
IHRoYXQgZGF0YSBoYXMgY2hhbmdlZCAqLwogICAgICAgIHNucHJpbnRmICggb25jaGFuZ2Vf
YnVmLCBNQVhfQlVGRiwgIiVzQCVzIiwgaW5wdy0+cHdfbmFtZSwgZG9tYWluICk7CiAgICAg
ICAgY2FsbF9vbmNoYW5nZSAoICJtb2RfdXNlciIgKTsKKyNpZmRlZiBPTkNIQU5HRV9TQ1JJ
UFRfQUxMT1cKICAgICAgICB9CiAjZW5kaWYKKyNlbmRpZgogCiAJaWYgKCEoc3RyY2FzZWNt
cChpbnB3LT5wd19zaGVsbCwgIk5PUVVPVEEiKSkpCiAJICAgcmVtb3ZlX21haWxkaXJzaXpl
KGlucHctPnB3X2Rpcik7CkBAIC0xNzMzLDEyICsxNzM3LDE2IEBACiAgICAgfQogCiAjaWZk
ZWYgT05DSEFOR0VfU0NSSVBUCisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAg
aWYoIGFsbG93X29uY2hhbmdlICkgeworI2VuZGlmCiAgICAgICAgLyogdGVsbCBvdGhlciBw
cm9ncmFtcyB0aGF0IGRhdGEgaGFzIGNoYW5nZWQgKi8KICAgICAgICBzbnByaW50ZiAoIG9u
Y2hhbmdlX2J1ZiwgTUFYX0JVRkYsICIlc0AlcyAtICVzIiwgYWxpYXMsIGRvbWFpbiwgYWxp
YXNfbGluZSApOwogICAgICAgIGNhbGxfb25jaGFuZ2UgKCAiYWxpYXNfaW5zZXJ0IiApOwor
I2lmZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExPVwogICAgICAgIH0KICNlbmRpZgorI2VuZGlm
CiAKICAgICByZXR1cm4oMCk7CiB9CkBAIC0xNzU2LDEyICsxNzY0LDE2IEBACiAgICAgaWYg
KCAoZXJyPWxkYXBfY29ubmVjdCgpKSAhPSAwICkgcmV0dXJuKGVycik7CiAKICNpZmRlZiBP
TkNIQU5HRV9TQ1JJUFQKKyNpZmRlZiBPTkNIQU5HRV9TQ1JJUFRfQUxMT1cKICAgICBpZigg
YWxsb3dfb25jaGFuZ2UgKSB7CisjZW5kaWYKICAgICAgICAvKiB0ZWxsIG90aGVyIHByb2dy
YW1zIHRoYXQgZGF0YSBoYXMgY2hhbmdlZCAqLwogICAgICAgIHNucHJpbnRmICggb25jaGFu
Z2VfYnVmLCBNQVhfQlVGRiwgIiVzQCVzIC0gJXMiLCBhbGlhcywgZG9tYWluLCBhbGlhc19s
aW5lICk7CiAgICAgICAgY2FsbF9vbmNoYW5nZSAoICJhbGlhc19yZW1vdmUiICk7CisjaWZk
ZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgICAgfQogI2VuZGlmCisjZW5kaWYKIAog
CW1lbXNldCh1ZCwgMCwgc2l6ZW9mKHVkKSk7CiAJc25wcmludGYodWQsIHNpemVvZih1ZCks
ICIlc0AlcyIsIGFsaWFzLCBkb21haW4pOwpAQCAtMTg2MywxMiArMTg3NSwxNiBAQAogICAg
IGlmICggKGVycj1sZGFwX2Nvbm5lY3QoKSkgIT0gMCApIHJldHVybihlcnIpOwogCiAjaWZk
ZWYgT05DSEFOR0VfU0NSSVBUCisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAg
aWYoIGFsbG93X29uY2hhbmdlICkgeworI2VuZGlmCiAgICAgICAgLyogdGVsbCBvdGhlciBw
cm9ncmFtcyB0aGF0IGRhdGEgaGFzIGNoYW5nZWQgKi8KICAgICAgICBzbnByaW50ZiAoIG9u
Y2hhbmdlX2J1ZiwgTUFYX0JVRkYsICIlc0AlcyIsIGFsaWFzLCBkb21haW4gKTsKICAgICAg
ICBjYWxsX29uY2hhbmdlICggImFsaWFzX2RlbGV0ZSIgKTsKKyNpZmRlZiBPTkNIQU5HRV9T
Q1JJUFRfQUxMT1cKICAgICAgICB9CiAjZW5kaWYKKyNlbmRpZgogCiAJbWVtc2V0KHVkLCAw
LCBzaXplb2YodWQpKTsKIAlzbnByaW50Zih1ZCwgc2l6ZW9mKHVkKSwgIiVzQCVzIiwgYWxp
YXMsIGRvbWFpbik7CmRpZmYgLXVQciB2cG9wbWFpbC01LjUuMC5vcmlnL2JhY2tlbmRzL215
c3FsL3ZteXNxbC5jIHZwb3BtYWlsLTUuNS4wL2JhY2tlbmRzL215c3FsL3ZteXNxbC5jCi0t
LSB2cG9wbWFpbC01LjUuMC5vcmlnL2JhY2tlbmRzL215c3FsL3ZteXNxbC5jCTIwMTAtMTEt
MDUgMTg6Mzc6MjMuMDAwMDAwMDAwICswMDAwCisrKyB2cG9wbWFpbC01LjUuMC9iYWNrZW5k
cy9teXNxbC92bXlzcWwuYwkyMDE1LTA5LTA0IDEyOjQyOjAwLjMwODA5NTcxNiArMDEwMApA
QCAtODc1LDEyICs4NzUsMTYgQEAKICNlbmRpZgogCiAjaWZkZWYgT05DSEFOR0VfU0NSSVBU
CisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgaWYoIGFsbG93X29uY2hhbmdl
ICkgeworI2VuZGlmCiAgICAgICAgLyogdGVsbCBvdGhlciBwcm9ncmFtcyB0aGF0IGRhdGEg
aGFzIGNoYW5nZWQgKi8KICAgICAgICBzbnByaW50ZiAoIG9uY2hhbmdlX2J1ZiwgTUFYX0JV
RkYsICIlc0AlcyIsIGlucHctPnB3X25hbWUsIGRvbWFpbiApOwogICAgICAgIGNhbGxfb25j
aGFuZ2UgKCAibW9kX3VzZXIiICk7CisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAg
ICAgICAgfQogI2VuZGlmCisjZW5kaWYKIAogCWlmICghKHN0cmNhc2VjbXAoaW5wdy0+cHdf
c2hlbGwsICJOT1FVT1RBIikpKQogCSAgIHJlbW92ZV9tYWlsZGlyc2l6ZShpbnB3LT5wd19k
aXIpOwpAQCAtMTQ1OSwxMiArMTQ2MywxNiBAQAogICAgIH0KIAogI2lmZGVmIE9OQ0hBTkdF
X1NDUklQVAorI2lmZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExPVwogICAgIGlmKCBhbGxvd19v
bmNoYW5nZSApIHsKKyNlbmRpZgogICAgICAgIC8qIHRlbGwgb3RoZXIgcHJvZ3JhbXMgdGhh
dCBkYXRhIGhhcyBjaGFuZ2VkICovCiAgICAgICAgc25wcmludGYgKCBvbmNoYW5nZV9idWYs
IE1BWF9CVUZGLCAiJXNAJXMgLSAlcyIsIGFsaWFzLCBkb21haW4sIGFsaWFzX2xpbmUgKTsK
ICAgICAgICBjYWxsX29uY2hhbmdlICggInZhbGlhc19pbnNlcnQiICk7CisjaWZkZWYgT05D
SEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgICAgfQogI2VuZGlmCisjZW5kaWYKIAogICAgIHJl
dHVybigwKTsKIH0KQEAgLTE0NzgsMTIgKzE0ODYsMTYgQEAKICAgICBpZiAoIChlcnI9dmF1
dGhfb3Blbl91cGRhdGUoKSkgIT0gMCApIHJldHVybihlcnIpOwogCiAjaWZkZWYgT05DSEFO
R0VfU0NSSVBUCisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgaWYoIGFsbG93
X29uY2hhbmdlICkgeworI2VuZGlmCiAgICAgICAgLyogdGVsbCBvdGhlciBwcm9ncmFtcyB0
aGF0IGRhdGEgaGFzIGNoYW5nZWQgKi8KICAgICAgICBzbnByaW50ZiAoIG9uY2hhbmdlX2J1
ZiwgTUFYX0JVRkYsICIlc0AlcyAtICVzIiwgYWxpYXMsIGRvbWFpbiwgYWxpYXNfbGluZSAp
OwogICAgICAgIGNhbGxfb25jaGFuZ2UgKCAidmFsaWFzX3JlbW92ZSIgKTsKKyNpZmRlZiBP
TkNIQU5HRV9TQ1JJUFRfQUxMT1cKICAgICAgICB9CiAjZW5kaWYKKyNlbmRpZgogCiAgICAg
cW5wcmludGYoIFNxbEJ1ZlVwZGF0ZSwgU1FMX0JVRl9TSVpFLCAKICAgICAgICAgIkRFTEVU
RSBGUk9NIHZhbGlhcyBXSEVSRSBhbGlhcyA9ICclcycgXApAQCAtMTUwOCwxMiArMTUyMCwx
NiBAQAogICAgIGlmICggKGVycj12YXV0aF9vcGVuX3VwZGF0ZSgpKSAhPSAwICkgcmV0dXJu
KGVycik7CiAKICNpZmRlZiBPTkNIQU5HRV9TQ1JJUFQKKyNpZmRlZiBPTkNIQU5HRV9TQ1JJ
UFRfQUxMT1cKICAgICBpZiggYWxsb3dfb25jaGFuZ2UgKSB7CisjZW5kaWYKICAgICAgICAv
KiB0ZWxsIG90aGVyIHByb2dyYW1zIHRoYXQgZGF0YSBoYXMgY2hhbmdlZCAqLwogICAgICAg
IHNucHJpbnRmICggb25jaGFuZ2VfYnVmLCBNQVhfQlVGRiwgIiVzQCVzIiwgYWxpYXMsIGRv
bWFpbiApOwogICAgICAgIGNhbGxfb25jaGFuZ2UgKCAidmFsaWFzX2RlbGV0ZSIgKTsKKyNp
ZmRlZiBPTkNIQU5HRV9TQ1JJUFRfQUxMT1cKICAgICAgICB9CiAjZW5kaWYKKyNlbmRpZgog
CiAgICAgcW5wcmludGYoIFNxbEJ1ZlVwZGF0ZSwgU1FMX0JVRl9TSVpFLCAKICAgICAgICAg
IkRFTEVURSBGUk9NIHZhbGlhcyBXSEVSRSBhbGlhcyA9ICclcycgXApAQCAtMTUzOSwxMiAr
MTU1NSwxNiBAQAogICAgIGlmICggKGVycj12YXV0aF9vcGVuX3VwZGF0ZSgpKSAhPSAwICkg
cmV0dXJuKGVycik7CiAKICNpZmRlZiBPTkNIQU5HRV9TQ1JJUFQKKyNpZmRlZiBPTkNIQU5H
RV9TQ1JJUFRfQUxMT1cKICAgICBpZiggYWxsb3dfb25jaGFuZ2UgKSB7CisjZW5kaWYKICAg
ICAgICAvKiB0ZWxsIG90aGVyIHByb2dyYW1zIHRoYXQgZGF0YSBoYXMgY2hhbmdlZCAqLwog
ICAgICAgIHNucHJpbnRmICggb25jaGFuZ2VfYnVmLCBNQVhfQlVGRiwgIiVzIiwgZG9tYWlu
ICk7CiAgICAgICAgY2FsbF9vbmNoYW5nZSAoICJ2YWxpYXNfZGVsZXRlX2RvbWFpbiIgKTsK
KyNpZmRlZiBPTkNIQU5HRV9TQ1JJUFRfQUxMT1cKICAgICAgICB9CiAjZW5kaWYKKyNlbmRp
ZgogCiAgICAgcW5wcmludGYoIFNxbEJ1ZlVwZGF0ZSwgU1FMX0JVRl9TSVpFLCAKICAgICAg
ICAgIkRFTEVURSBGUk9NIHZhbGlhcyBXSEVSRSBkb21haW4gPSAnJXMnIiwgCmRpZmYgLXVQ
ciB2cG9wbWFpbC01LjUuMC5vcmlnL2JhY2tlbmRzL3Bvc3RncmVzL3ZwZ3NxbC5jIHZwb3Bt
YWlsLTUuNS4wL2JhY2tlbmRzL3Bvc3RncmVzL3ZwZ3NxbC5jCi0tLSB2cG9wbWFpbC01LjUu
MC5vcmlnL2JhY2tlbmRzL3Bvc3RncmVzL3ZwZ3NxbC5jCTIwMTAtMTEtMDUgMTg6Mzc6MjMu
MDAwMDAwMDAwICswMDAwCisrKyB2cG9wbWFpbC01LjUuMC9iYWNrZW5kcy9wb3N0Z3Jlcy92
cGdzcWwuYwkyMDE1LTA5LTA0IDEyOjQyOjAwLjMwOTA5NTY2NyArMDEwMApAQCAtNjg3LDEy
ICs2ODcsMTYgQEAKICNlbmRpZgogCiAjaWZkZWYgT05DSEFOR0VfU0NSSVBUCisjaWZkZWYg
T05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgaWYoIGFsbG93X29uY2hhbmdlICkgeworI2Vu
ZGlmCiAgICAgICAgLyogdGVsbCBvdGhlciBwcm9ncmFtcyB0aGF0IGRhdGEgaGFzIGNoYW5n
ZWQgKi8KICAgICAgICBzbnByaW50ZiAoIG9uY2hhbmdlX2J1ZiwgTUFYX0JVRkYsICIlc0Al
cyIsIGlucHctPnB3X25hbWUsIGRvbWFpbiApOwogICAgICAgIGNhbGxfb25jaGFuZ2UgKCAi
bW9kX3VzZXIiICk7CisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgICAgfQog
I2VuZGlmCisjZW5kaWYKIAogCWlmICghKHN0cmNhc2VjbXAoaW5wdy0+cHdfc2hlbGwsICJO
T1FVT1RBIikpKQogCSAgIHJlbW92ZV9tYWlsZGlyc2l6ZShpbnB3LT5wd19kaXIpOwpAQCAt
MTM5NiwxMiArMTQwMCwxNiBAQAogICAgIGlmKHBncmVzKSBQUWNsZWFyKHBncmVzKTsKIAog
I2lmZGVmIE9OQ0hBTkdFX1NDUklQVAorI2lmZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExPVwog
ICAgIGlmKCBhbGxvd19vbmNoYW5nZSApIHsKKyNlbmRpZgogICAgICAgIC8qIHRlbGwgb3Ro
ZXIgcHJvZ3JhbXMgdGhhdCBkYXRhIGhhcyBjaGFuZ2VkICovCiAgICAgICAgc25wcmludGYg
KCBvbmNoYW5nZV9idWYsIE1BWF9CVUZGLCAiJXNAJXMgLSAlcyIsIGFsaWFzLCBkb21haW4s
IGFsaWFzX2xpbmUgKTsKICAgICAgICBjYWxsX29uY2hhbmdlICggInZhbGlhc19hZGQiICk7
CisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgICAgfQogI2VuZGlmCisjZW5k
aWYKIAogICAgIHJldHVybigwKTsKICAgfQpAQCAtMTQxNiwxMiArMTQyNCwxNiBAQAogICBp
ZiAoIChlcnI9dmF1dGhfb3BlbigxKSkgIT0gMCApIHJldHVybihlcnIpOwogCiAjaWZkZWYg
T05DSEFOR0VfU0NSSVBUCisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgIGlmKCBh
bGxvd19vbmNoYW5nZSApIHsKKyNlbmRpZgogICAgICAvKiB0ZWxsIG90aGVyIHByb2dyYW1z
IHRoYXQgZGF0YSBoYXMgY2hhbmdlZCAqLwogICAgICBzbnByaW50ZiAoIG9uY2hhbmdlX2J1
ZiwgTUFYX0JVRkYsICIlc0AlcyIsIGFsaWFzLCBkb21haW4gKTsKICAgICAgY2FsbF9vbmNo
YW5nZSAoICJ2YWxpYXNfZGVsZXRlIiApOworI2lmZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExP
VwogICAgICB9CiAjZW5kaWYKKyNlbmRpZgogCiAgIHFucHJpbnRmKCBTcWxCdWZVcGRhdGUs
IFNRTF9CVUZfU0laRSwgCiAJICAgICJkZWxldGUgZnJvbSB2YWxpYXMgd2hlcmUgYWxpYXM9
JyVzJyBhbmQgZG9tYWluPSclcyciLCAKQEAgLTE0NTIsMTIgKzE0NjQsMTYgQEAKICAgaWYg
KCAoZXJyPXZhdXRoX29wZW4oMSkpICE9IDAgKSByZXR1cm4oZXJyKTsKIAogI2lmZGVmIE9O
Q0hBTkdFX1NDUklQVAorI2lmZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExPVwogICBpZiggYWxs
b3dfb25jaGFuZ2UgKSB7CisjZW5kaWYKICAgICAgLyogdGVsbCBvdGhlciBwcm9ncmFtcyB0
aGF0IGRhdGEgaGFzIGNoYW5nZWQgKi8KICAgICAgc25wcmludGYgKCBvbmNoYW5nZV9idWYs
IE1BWF9CVUZGLCAiJXNAJXMgLSAlcyIsIGFsaWFzLCBkb21haW4sIGFsaWFzX2xpbmUpOwog
ICAgICBjYWxsX29uY2hhbmdlICggInZhbGlhc19yZW1vdmUiICk7CisjaWZkZWYgT05DSEFO
R0VfU0NSSVBUX0FMTE9XCiAgICAgIH0KICNlbmRpZgorI2VuZGlmCiAKICAgcW5wcmludGYo
IFNxbEJ1ZlVwZGF0ZSwgU1FMX0JVRl9TSVpFLCAKIAkgICAgImRlbGV0ZSBmcm9tIHZhbGlh
cyB3aGVyZSBhbGlhcz0nJXMnIGFuZCB2YWxpYXNfbGluZT0nJXMnIGFuZCBkb21haW49JyVz
JyIsIApAQCAtMTQ4NSwxMiArMTUwMSwxNiBAQAogICBpZiAoIChlcnI9dmF1dGhfb3Blbigx
KSkgIT0gMCApIHJldHVybihlcnIpOwogCiAjaWZkZWYgT05DSEFOR0VfU0NSSVBUCisjaWZk
ZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgIGlmKCBhbGxvd19vbmNoYW5nZSApIHsKKyNl
bmRpZgogICAgICAvKiB0ZWxsIG90aGVyIHByb2dyYW1zIHRoYXQgZGF0YSBoYXMgY2hhbmdl
ZCAqLwogICAgICBzbnByaW50ZiAoIG9uY2hhbmdlX2J1ZiwgTUFYX0JVRkYsICIlc0AlcyAt
ICVzIiwgYWxpYXMsIGRvbWFpbiwgYWxpYXNfbGluZSk7CiAgICAgIGNhbGxfb25jaGFuZ2Ug
KCAidmFsaWFzX2RlbGV0ZV9kb21haW4iICk7CisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FM
TE9XCiAgICAgIH0KICNlbmRpZgorI2VuZGlmCiAKICAgcW5wcmludGYoIFNxbEJ1ZlVwZGF0
ZSwgU1FMX0JVRl9TSVpFLCAKIAkgICAgImRlbGV0ZSBmcm9tIHZhbGlhcyB3aGVyZSBkb21h
aW49JyVzJyIsIGRvbWFpbiApOwpkaWZmIC11UHIgdnBvcG1haWwtNS41LjAub3JpZy92cGFs
aWFzLmMgdnBvcG1haWwtNS41LjAvdnBhbGlhcy5jCi0tLSB2cG9wbWFpbC01LjUuMC5vcmln
L3ZwYWxpYXMuYwkyMDEwLTExLTA1IDE4OjM3OjI0LjAwMDAwMDAwMCArMDAwMAorKysgdnBv
cG1haWwtNS41LjAvdnBhbGlhcy5jCTIwMTUtMDktMDQgMTI6NDI6MDAuMzEwMDk1NjI0ICsw
MTAwCkBAIC0xNTEsMTIgKzE1MSwxNiBAQAogICAgIGZjbG9zZShmcyk7CiAKICNpZmRlZiBP
TkNIQU5HRV9TQ1JJUFQKKyNpZmRlZiBPTkNIQU5HRV9TQ1JJUFRfQUxMT1cKICAgICBpZigg
YWxsb3dfb25jaGFuZ2UgKSB7CisjZW5kaWYKICAgICAgICAvKiB0ZWxsIG90aGVyIHByb2dy
YW1zIHRoYXQgZGF0YSBoYXMgY2hhbmdlZCAqLwogICAgICAgIHNucHJpbnRmICggb25jaGFu
Z2VfYnVmLCBNQVhfQlVGRiwgIiVzQCVzIC0gJXMiLCBhbGlhcywgZG9tYWluLCBhbGlhc19s
aW5lICk7CiAgICAgICAgY2FsbF9vbmNoYW5nZSAoICJ2YWxpYXNfaW5zZXJ0IiApOworI2lm
ZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExPVwogICAgICAgIH0KICNlbmRpZgorI2VuZGlmCiAK
ICAgICByZXR1cm4oMCk7CiB9CkBAIC0yMTgsMTIgKzIyMiwxNiBAQAogICAgIGZyZWUoRGly
TmV3KTsKIAogI2lmZGVmIE9OQ0hBTkdFX1NDUklQVAorI2lmZGVmIE9OQ0hBTkdFX1NDUklQ
VF9BTExPVwogICAgIGlmKCBhbGxvd19vbmNoYW5nZSApIHsKKyNlbmRpZgogICAgICAgIC8q
IHRlbGwgb3RoZXIgcHJvZ3JhbXMgdGhhdCBkYXRhIGhhcyBjaGFuZ2VkICovCiAgICAgICAg
c25wcmludGYgKCBvbmNoYW5nZV9idWYsIE1BWF9CVUZGLCAiJXNAJXMgLSAlcyIsIGFsaWFz
LCBkb21haW4sIGFsaWFzX2xpbmUgKTsKICAgICAgICBjYWxsX29uY2hhbmdlICggInZhbGlh
c19yZW1vdmUiICk7CisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgICAgfQog
I2VuZGlmCisjZW5kaWYKIAogICAgIHJldHVybigwKTsKIH0KQEAgLTI0OCwxMyArMjU2LDE1
IEBACiAgICAgfQogCiAjaWZkZWYgT05DSEFOR0VfU0NSSVBUCisjaWZkZWYgT05DSEFOR0Vf
U0NSSVBUX0FMTE9XCiAgICAgaWYoIGFsbG93X29uY2hhbmdlICkgeworI2VuZGlmCiAgICAg
ICAgLyogdGVsbCBvdGhlciBwcm9ncmFtcyB0aGF0IGRhdGEgaGFzIGNoYW5nZWQgKi8KICAg
ICAgICBzbnByaW50ZiAoIG9uY2hhbmdlX2J1ZiwgTUFYX0JVRkYsICIlc0AlcyIsIGFsaWFz
LCBkb21haW4gKTsKICAgICAgICBjYWxsX29uY2hhbmdlICggInZhbGlhc19kZWxldGUiICk7
CisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FMTE9XCiAgICAgICAgfQotCi0KKyNlbmRpZgog
I2VuZGlmCiAKICAgICBzdHJuY2F0KERpciwgIi8ucW1haWwtIiwgc2l6ZW9mKERpciktc3Ry
bGVuKERpciktMSk7CmRpZmYgLXVQciB2cG9wbWFpbC01LjUuMC5vcmlnL3Zwb3BtYWlsLmMg
dnBvcG1haWwtNS41LjAvdnBvcG1haWwuYwotLS0gdnBvcG1haWwtNS41LjAub3JpZy92cG9w
bWFpbC5jCTIwMTAtMTEtMDUgMTg6Mzc6MjQuMDAwMDAwMDAwICswMDAwCisrKyB2cG9wbWFp
bC01LjUuMC92cG9wbWFpbC5jCTIwMTUtMDktMDQgMTI6NDI6MDAuMzEyMDk1NTQyICswMTAw
CkBAIC0xMTEsOSArMTExLDExIEBACiAgaW50IGFsaWFzY291bnQ9MDsKIAogI2lmZGVmIE9O
Q0hBTkdFX1NDUklQVAorI2lmZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExPVwogICAvKiAgRG9u
J3QgZXhlY3V0ZSBhbnkgaW1wbGllZCBvbmNoYW5nZSBpbiBjYWxsZWQgZnVuY3Rpb25zICAq
LwogICBhbGxvd19vbmNoYW5nZSA9IDA7CiAjZW5kaWYKKyNlbmRpZgogCiAgIC8qCiAgICAq
IEluIGNhc2Ugd2UgbmVlZCB0byB1c2UgZGVsZXRlX2xpbmUsIGJ1aWxkIGFuIGFycmF5IGFu
ZCBjb3VudCAKQEAgLTMxOSwxMiArMzIxLDE2IEBACiAKIAogI2lmZGVmIE9OQ0hBTkdFX1ND
UklQVAorI2lmZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExPVwogICBhbGxvd19vbmNoYW5nZSA9
IDE7CisjZW5kaWYKICAgLyogdGVsbCBvdGhlciBwcm9ncmFtcyB0aGF0IGRhdGEgaGFzIGNo
YW5nZWQgKi8KICAgc25wcmludGYgKCBvbmNoYW5nZV9idWYsIE1BWF9CVUZGLCAiJXMiLCBk
b21haW4gKTsKICAgY2FsbF9vbmNoYW5nZSAoICJhZGRfZG9tYWluIiApOworI2lmZGVmIE9O
Q0hBTkdFX1NDUklQVF9BTExPVwogICBhbGxvd19vbmNoYW5nZSA9IDA7CiAjZW5kaWYKKyNl
bmRpZgogCiAgIC8qIHJldHVybiBiYWNrIHRvIHRoZSBjYWxsZXJzIGRpcmVjdG9yeSBhbmQg
cmV0dXJuIHN1Y2Nlc3MgKi8KICAgY2hkaXIoY2FsbGluZ19kaXIpOwpAQCAtNjUxLDEwICs2
NTcsMTIgQEAKIAkKIAogI2lmZGVmIE9OQ0hBTkdFX1NDUklQVAorI2lmZGVmIE9OQ0hBTkdF
X1NDUklQVF9BTExPVwogIGludCB0ZW1wX29uY2hhbmdlOwogICAgIHRlbXBfb25jaGFuZ2Ug
PSBhbGxvd19vbmNoYW5nZTsKICAgICBhbGxvd19vbmNoYW5nZSA9IDA7CiAjZW5kaWYKKyNl
bmRpZgogCiAgIC8qIGNoZWNrIGdlY29zIGZvciA6IGNoYXJhY3RlcnMgLSBiYWQgKi8KICAg
aWYgKCBzdHJjaHIoZ2Vjb3MsJzonKSE9MCkgcmV0dXJuKFZBX0JBRF9DSEFSKTsKQEAgLTcy
Miw2ICs3MzAsMTggQEAKICAgICByZXR1cm4oVkFfTk9fQVVUSF9DT05ORUNUSU9OKTsKICAg
fQogCisjaWZkZWYgT05DSEFOR0VfU0NSSVBUCisjaWZkZWYgT05DSEFOR0VfU0NSSVBUX0FM
TE9XCisgIGFsbG93X29uY2hhbmdlID0gdGVtcF9vbmNoYW5nZTsKKyNlbmRpZgorICAvKiB0
ZWxsIG90aGVyIHByb2dyYW1zIHRoYXQgZGF0YSBoYXMgY2hhbmdlZCAqLworICBzbnByaW50
ZiAoIG9uY2hhbmdlX2J1ZiwgTUFYX0JVRkYsICIlc0AlcyIsIHVzZXJuYW1lLCBkb21haW4g
KTsKKyAgY2FsbF9vbmNoYW5nZSAoICJhZGRfdXNlciIgKTsKKyNpZmRlZiBPTkNIQU5HRV9T
Q1JJUFRfQUxMT1cKKyAgYWxsb3dfb25jaGFuZ2UgPSAwOworI2VuZGlmCisjZW5kaWYKKwog
ICBpZiAobGltaXRzLmRlZmF1bHRxdW90YSA+IDApIHsKICAgICBpZiAobGltaXRzLmRlZmF1
bHRtYXhtc2djb3VudCA+IDApCiAgICAgICBzbnByaW50ZiAocXVvdGEsIHNpemVvZihxdW90
YSksICIlZFMsJWRDIiwgbGltaXRzLmRlZmF1bHRxdW90YSwKQEAgLTc2NywxMiArNzg3LDEw
IEBACiAgIGNoZGlyKGNhbGxpbmdfZGlyKTsKIAogI2lmZGVmIE9OQ0hBTkdFX1NDUklQVAot
ICBhbGxvd19vbmNoYW5nZSA9IHRlbXBfb25jaGFuZ2U7Ci0gIC8qIHRlbGwgb3RoZXIgcHJv
Z3JhbXMgdGhhdCBkYXRhIGhhcyBjaGFuZ2VkICovCi0gIHNucHJpbnRmICggb25jaGFuZ2Vf
YnVmLCBNQVhfQlVGRiwgIiVzQCVzIiwgdXNlcm5hbWUsIGRvbWFpbiApOwotICBjYWxsX29u
Y2hhbmdlICggImFkZF91c2VyIiApOworI2lmZGVmIE9OQ0hBTkdFX1NDUklQVF9BTExPVwog
ICBhbGxvd19vbmNoYW5nZSA9IDE7CiAjZW5kaWYKKyNlbmRpZgogCiAgIHJldHVybihWQV9T
VUNDRVNTKTsKIH0KQEAgLTQzNTYsMTUgKzQzNzQsMTkgQEAKICAqIDIwMDctMDctMTQgam1z
MSAtIHN1cHByZXNzaW5nICJPTkNIQU5HRSBzY3JpcHQgbm90IGZvdW5kIiBtZXNzYWdlLgog
ICovCiBjaGFyIG9uY2hhbmdlX2J1ZltNQVhfQlVGRl07CisjaWZkZWYgT05DSEFOR0VfU0NS
SVBUX0FMTE9XCiBpbnQgYWxsb3dfb25jaGFuZ2U9MTsKKyNlbmRpZgogaW50IGNhbGxfb25j
aGFuZ2UgKCBjb25zdCBjaGFyICpjbWQgKQogewogCWNoYXIgcGF0aFtNQVhfQlVGRl07CiAJ
aW50IHBpZCwgcnY7CiAKKyNpZmRlZiBPTkNIQU5HRV9TQ1JJUFRfQUxMT1cKICAgICAgICAg
aWYoICFhbGxvd19vbmNoYW5nZSApICB7CiAgICAgICAgICAgIHJldHVybigwKTsKICAgICAg
ICAgICAgfQorI2VuZGlmCiAKIAkvKiBidWlsZCB0aGUgbmFtZSAqLwogCXNucHJpbnRmICgg
cGF0aCwgc2l6ZW9mKHBhdGgpLCAiJXMvb25jaGFuZ2UiLCBWUE9QTUFJTF9ESVJfRVRDICk7
CmRpZmYgLXVQciB2cG9wbWFpbC01LjUuMC5vcmlnL3Zwb3BtYWlsLmggdnBvcG1haWwtNS41
LjAvdnBvcG1haWwuaAotLS0gdnBvcG1haWwtNS41LjAub3JpZy92cG9wbWFpbC5oCTIwMTAt
MTEtMDUgMTg6Mzc6MjQuMDAwMDAwMDAwICswMDAwCisrKyB2cG9wbWFpbC01LjUuMC92cG9w
bWFpbC5oCTIwMTUtMDktMDQgMTI6NDI6MDAuMzEzMDk1NTA2ICswMTAwCkBAIC0zNjcsNyAr
MzY3LDkgQEAKICNpZmRlZiBPTkNIQU5HRV9TQ1JJUFQKIC8qIG9uY2hhbmdlIGZ1bmN0aW9u
ICovCiBleHRlcm4gY2hhciBvbmNoYW5nZV9idWZbTUFYX0JVRkZdOworI2lmZGVmIE9OQ0hB
TkdFX1NDUklQVF9BTExPVwogZXh0ZXJuIGludCBhbGxvd19vbmNoYW5nZTsKKyNlbmRpZgog
aW50IGNhbGxfb25jaGFuZ2UoKTsKICNlbmRpZgogCg==
--------------030903020101030307010601--