drm: Branch 'master' - 6 commits

[email protected] (GitLab Mirror) Mon, 9 Dec 2019 20:47:14 +0000 (UTC)
Newsgroups gmane.comp.video.dri.patches
Message-ID <[email protected]>
IHRlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jICAgIHwgICAzNSArKwogdGVzdHMvYW1kZ3B1L2Ft
ZGdwdV90ZXN0LmggICAgfCAgICA1IAogdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMgICAgfCAg
NTgxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogdGVzdHMvYW1k
Z3B1L2RlYWRsb2NrX3Rlc3RzLmMgfCAgIDY2ICsrKysKIDQgZmlsZXMgY2hhbmdlZCwgNjQ2IGlu
c2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKTmV3IGNvbW1pdHM6CmNvbW1pdCAzMWE2ZWMx
NDFhZDBmMTkwYWY1OWE5NmQ4NmYwZWJlOGZjZWU2Mjg3CkF1dGhvcjogRmxvcmEgQ3VpIDxmbG9y
YS5jdWlAYW1kLmNvbT4KRGF0ZTogICBNb24gTWFyIDE4IDE2OjQ1OjMxIDIwMTkgKzA4MDAKCiAg
ICB0ZXN0cy9hbWRncHU6IGFkZCBnZnggcmluZyBiYWQgc2xvdyBkcmF3IHRlc3QKICAgIAogICAg
Zm9yIGdmeDkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogRmxvcmEgQ3VpIDxmbG9yYS5jdWlAYW1k
LmNvbT4KICAgIFJldmlld2VkLWJ5OiBNYXJlayBPbMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29t
PgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jIGIvdGVzdHMvYW1kZ3B1
L2FtZGdwdV90ZXN0LmMKaW5kZXggNTRiZDMzZGMuLmVhNGE5MTEzIDEwMDY0NAotLS0gYS90ZXN0
cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYworKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwpA
QCAtNDgxLDYgKzQ4MSwxMiBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGlzYWJsZV9zdWl0ZXMoKQog
CQkJCSJnZnggcmluZyBiYWQgZHJhdyB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUw
KSIsIENVX0ZBTFNFKSkKIAkJCWZwcmludGYoc3RkZXJyLCAidGVzdCBkZWFjdGl2YXRpb24gZmFp
bGVkIC0gJXNcbiIsIENVX2dldF9lcnJvcl9tc2coKSk7CiAKKwkvKiBUaGlzIHRlc3Qgd2FzIHJh
biBvbiBHRlg5IG9ubHkgKi8KKwkvL2lmIChmYW1pbHlfaWQgPCBBTURHUFVfRkFNSUxZX0FJIHx8
IGZhbWlseV9pZCA+IEFNREdQVV9GQU1JTFlfUlYpCisJCWlmIChhbWRncHVfc2V0X3Rlc3RfYWN0
aXZlKERFQURMT0NLX1RFU1RTX1NUUiwKKwkJCQkiZ2Z4IHJpbmcgc2xvdyBiYWQgZHJhdyB0ZXN0
IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIsIENVX0ZBTFNFKSkKKwkJCWZwcmludGYo
c3RkZXJyLCAidGVzdCBkZWFjdGl2YXRpb24gZmFpbGVkIC0gJXNcbiIsIENVX2dldF9lcnJvcl9t
c2coKSk7CisKIAlpZiAoYW1kZ3B1X3NldF90ZXN0X2FjdGl2ZShCT19URVNUU19TVFIsICJNZXRh
ZGF0YSIsIENVX0ZBTFNFKSkKIAkJZnByaW50ZihzdGRlcnIsICJ0ZXN0IGRlYWN0aXZhdGlvbiBm
YWlsZWQgLSAlc1xuIiwgQ1VfZ2V0X2Vycm9yX21zZygpKTsKIApkaWZmIC0tZ2l0IGEvdGVzdHMv
YW1kZ3B1L2FtZGdwdV90ZXN0LmggYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaAppbmRleCAy
MWMwMjRmZC4uZjU0OTIyNTggMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5o
CisrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oCkBAIC0yNDAsNiArMjQwLDggQEAgdm9p
ZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNl
X2hhbmRsZSwgdWludDMyX3QgaXAKIHZvaWQgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfc2xvd19oZWxw
ZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWludDMyX3QgaXBfdHlwZSk7
CiB2b2lkIGFtZGdwdV9tZW1jcHlfZHJhd190ZXN0KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmlj
ZV9oYW5kbGUsIHVpbnQzMl90IHJpbmcsCiAJCQkgICAgIGludCBoYW5nKTsKK3ZvaWQgYW1kZ3B1
X21lbWNweV9kcmF3X2hhbmdfc2xvd190ZXN0KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9o
YW5kbGUsIHVpbnQzMl90IHJpbmcpOworCiAvKioKICAqIEhlbHBlciBmdW5jdGlvbnMKICAqLwpk
aWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUvYmFz
aWNfdGVzdHMuYwppbmRleCA0NGU2Y2NlNC4uODRmMzgyN2QgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2Ft
ZGdwdS9iYXNpY190ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jCkBAIC0z
NTgsNyArMzU4LDggQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHByZWFtYmxlY2FjaGVfZ2Z4OVtd
ID0gewogZW51bSBwc190eXBlIHsKIAlQU19DT05TVCwKIAlQU19URVgsCi0JUFNfSEFORworCVBT
X0hBTkcsCisJUFNfSEFOR19TTE9XCiB9OwogCiBzdGF0aWMgY29uc3QgdWludDMyX3QgcHNfY29u
c3Rfc2hhZGVyX2dmeDlbXSA9IHsKQEAgLTUxMCw2ICs1MTEsMjEgQEAgc3RydWN0IGFtZGdwdV90
ZXN0X3NoYWRlciBtZW1jcHlfY3NfaGFuZ19zbG93X3J2ID0gewogICAgICAgICAxCiB9OwogCit1
bnNpZ25lZCBpbnQgbWVtY3B5X3BzX2hhbmdfc2xvd19haV9jb2Rlc1tdID0geworICAgICAgICAw
eGJlZmMwMDBjLCAweGJlOGUwMTdlLCAweGJlZmUwNzdlLCAweGQ0MDgwMDAwLAorICAgICAgICAw
eGQ0MDkwMDAxLCAweGQ0MGMwMTAwLCAweGQ0MGQwMTAxLCAweGYwODAwZjAwLAorICAgICAgICAw
eDAwNDAwMDAyLCAweGJlZmUwMTBlLCAweGJmOGMwZjcwLCAweGJmODAwMDAwLAorICAgICAgICAw
eGJmODAwMDAwLCAweGJmODAwMDAwLCAweGJmODAwMDAwLCAweGM0MDAxODBmLAorICAgICAgICAw
eDAzMDIwMTAwLCAweGJmODEwMDAwCit9OworCitzdHJ1Y3QgYW1kZ3B1X3Rlc3Rfc2hhZGVyIG1l
bWNweV9wc19oYW5nX3Nsb3dfYWkgPSB7CisgICAgICAgIG1lbWNweV9wc19oYW5nX3Nsb3dfYWlf
Y29kZXMsCisgICAgICAgIDcsCisgICAgICAgIDIsCisgICAgICAgIDkKK307CisKIGludCBhbWRn
cHVfYm9fYWxsb2NfYW5kX21hcF9yYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LCB1bnNpZ25l
ZCBzaXplLAogCQkJdW5zaWduZWQgYWxpZ25tZW50LCB1bnNpZ25lZCBoZWFwLCB1aW50NjRfdCBh
bGxvY19mbGFncywKIAkJCXVpbnQ2NF90IG1hcHBpbmdfZmxhZ3MsIGFtZGdwdV9ib19oYW5kbGUg
KmJvLCB2b2lkICoqY3B1LApAQCAtMjc1OSw2ICsyNzc1LDM1IEBAIHZvaWQgYW1kZ3B1X2Rpc3Bh
dGNoX2hhbmdfc2xvd19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwg
dWludDMyCiAJfQogfQogCitzdGF0aWMgaW50IGFtZGdwdV9kcmF3X2xvYWRfcHNfc2hhZGVyX2hh
bmdfc2xvdyh1aW50MzJfdCAqcHRyLCBpbnQgZmFtaWx5KQoreworCXN0cnVjdCBhbWRncHVfdGVz
dF9zaGFkZXIgKnNoYWRlcjsKKwlpbnQgaSwgbG9vcCA9IDB4NDAwMDA7CisKKwlzd2l0Y2ggKGZh
bWlseSkgeworCQljYXNlIEFNREdQVV9GQU1JTFlfQUk6CisJCWNhc2UgQU1ER1BVX0ZBTUlMWV9S
VjoKKwkJCXNoYWRlciA9ICZtZW1jcHlfcHNfaGFuZ19zbG93X2FpOworCQkJYnJlYWs7CisJCWRl
ZmF1bHQ6CisJCQlyZXR1cm4gLTE7CisJCQlicmVhazsKKwl9CisKKwltZW1jcHkocHRyLCBzaGFk
ZXItPnNoYWRlciwgc2hhZGVyLT5oZWFkZXJfbGVuZ3RoICogc2l6ZW9mKHVpbnQzMl90KSk7CisK
Kwlmb3IgKGkgPSAwOyBpIDwgbG9vcDsgaSsrKQorCQltZW1jcHkocHRyICsgc2hhZGVyLT5oZWFk
ZXJfbGVuZ3RoICsgc2hhZGVyLT5ib2R5X2xlbmd0aCAqIGksCisJCQlzaGFkZXItPnNoYWRlciAr
IHNoYWRlci0+aGVhZGVyX2xlbmd0aCwKKwkJCXNoYWRlci0+Ym9keV9sZW5ndGggKiBzaXplb2Yo
dWludDMyX3QpKTsKKworCW1lbWNweShwdHIgKyBzaGFkZXItPmhlYWRlcl9sZW5ndGggKyBzaGFk
ZXItPmJvZHlfbGVuZ3RoICogbG9vcCwKKwkJc2hhZGVyLT5zaGFkZXIgKyBzaGFkZXItPmhlYWRl
cl9sZW5ndGggKyBzaGFkZXItPmJvZHlfbGVuZ3RoLAorCQlzaGFkZXItPmZvb3RfbGVuZ3RoICog
c2l6ZW9mKHVpbnQzMl90KSk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBhbWRncHVf
ZHJhd19sb2FkX3BzX3NoYWRlcih1aW50OF90ICpwdHIsIGludCBwc190eXBlKQogewogCWludCBp
OwpAQCAtMjg0Niw3ICsyODkxLDggQEAgc3RhdGljIGludCBhbWRncHVfZHJhd19pbml0KHVpbnQz
Ml90ICpwdHIpCiB9CiAKIHN0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2Ry
YXdibHRfc3VyZl9pbmZvKHVpbnQzMl90ICpwdHIsCi0JCQkJCQkJIHVpbnQ2NF90IGRzdF9hZGRy
KQorCQkJCQkJCSB1aW50NjRfdCBkc3RfYWRkciwKKwkJCQkJCQkgaW50IGhhbmdfc2xvdykKIHsK
IAlpbnQgaSA9IDA7CiAKQEAgLTI4NzEsNyArMjkxNyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Ry
YXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdibHRfc3VyZl9pbmZvKHVpbnQzMl90ICpwdHIsCiAJcHRy
W2krK10gPSAweDMxODsKIAlwdHJbaSsrXSA9IGRzdF9hZGRyID4+IDg7CiAJcHRyW2krK10gPSBk
c3RfYWRkciA+PiA0MDsKLQlwdHJbaSsrXSA9IDB4N2MwMWY7CisJcHRyW2krK10gPSBoYW5nX3Ns
b3cgPyAweDFmZmM3ZmYgOiAweDdjMDFmOwogCXB0cltpKytdID0gMDsKIAlwdHJbaSsrXSA9IDB4
NTA0Mzg7CiAJcHRyW2krK10gPSAweDEwMTQwMDAwOwpAQCAtMjg4MCw3ICsyOTI2LDcgQEAgc3Rh
dGljIGludCBhbWRncHVfZHJhd19zZXR1cF9hbmRfd3JpdGVfZHJhd2JsdF9zdXJmX2luZm8odWlu
dDMyX3QgKnB0ciwKIAkvKiBtbUNCX01SVDBfRVBJVENIICovCiAJcHRyW2krK10gPSBQQUNLRVQz
KFBBQ0tFVDNfU0VUX0NPTlRFWFRfUkVHLCAxKTsKIAlwdHJbaSsrXSA9IDB4MWU4OwotCXB0cltp
KytdID0gMHgxZjsKKwlwdHJbaSsrXSA9IGhhbmdfc2xvdyA/IDB4N2ZmIDogMHgxZjsKIAogCS8q
IDB4QTMyQiAgIENCX0NPTE9SMV9CQVNFICovCiAJcHRyW2krK10gPSBQQUNLRVQzKFBBQ0tFVDNf
U0VUX0NPTlRFWFRfUkVHLCAxKTsKQEAgLTI5MDYsNyArMjk1Miw3IEBAIHN0YXRpYyBpbnQgYW1k
Z3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdibHRfc3VyZl9pbmZvKHVpbnQzMl90ICpwdHIs
CiAJcmV0dXJuIGk7CiB9CiAKLXN0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRl
X2RyYXdibHRfc3RhdGUodWludDMyX3QgKnB0cikKK3N0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfc2V0
dXBfYW5kX3dyaXRlX2RyYXdibHRfc3RhdGUodWludDMyX3QgKnB0ciwgaW50IGhhbmdfc2xvdykK
IHsKIAlpbnQgaSA9IDA7CiAJY29uc3QgdWludDMyX3QgKmNhY2hlZF9jbWRfcHRyOwpAQCAtMjkz
OCw2ICsyOTg0LDggQEAgc3RhdGljIGludCBhbWRncHVfZHJhd19zZXR1cF9hbmRfd3JpdGVfZHJh
d2JsdF9zdGF0ZSh1aW50MzJfdCAqcHRyKQogCWNhY2hlZF9jbWRfc2l6ZSA9IHNpemVvZihjYWNo
ZWRfY21kX2dmeDkpOwogCiAJbWVtY3B5KHB0ciArIGksIGNhY2hlZF9jbWRfcHRyLCBjYWNoZWRf
Y21kX3NpemUpOworCWlmIChoYW5nX3Nsb3cpCisJCSoocHRyICsgaSArIDEyKSA9IDB4ODAwMDgw
MDsKIAlpICs9IGNhY2hlZF9jbWRfc2l6ZS9zaXplb2YodWludDMyX3QpOwogCiAJcmV0dXJuIGk7
CkBAIC0yOTQ1LDcgKzI5OTMsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9kcmF3X3NldHVwX2FuZF93
cml0ZV9kcmF3Ymx0X3N0YXRlKHVpbnQzMl90ICpwdHIpCiAKIHN0YXRpYyBpbnQgYW1kZ3B1X2Ry
YXdfdnNfUmVjdFBvc1RleEZhc3Rfd3JpdGUyaHcodWludDMyX3QgKnB0ciwKIAkJCQkJCSAgaW50
IHBzX3R5cGUsCi0JCQkJCQkgIHVpbnQ2NF90IHNoYWRlcl9hZGRyKQorCQkJCQkJICB1aW50NjRf
dCBzaGFkZXJfYWRkciwKKwkJCQkJCSAgaW50IGhhbmdfc2xvdykKIHsKIAlpbnQgaSA9IDA7CiAK
QEAgLTI5ODcsOCArMzAzNiw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfdnNfUmVjdFBvc1Rl
eEZhc3Rfd3JpdGUyaHcodWludDMyX3QgKnB0ciwKIAlwdHJbaSsrXSA9IFBBQ0tFVDMoUEtUM19T
RVRfU0hfUkVHLCA0KTsKIAlwdHJbaSsrXSA9IDB4NGM7CiAJaSArPSAyOwotCXB0cltpKytdID0g
MHg0MjAwMDAwMDsKLQlwdHJbaSsrXSA9IDB4NDIwMDAwMDA7CisJcHRyW2krK10gPSBoYW5nX3Ns
b3cgPyAweDQ1MDAwMDAwIDogMHg0MjAwMDAwMDsKKwlwdHJbaSsrXSA9IGhhbmdfc2xvdyA/IDB4
NDUwMDAwMDAgOiAweDQyMDAwMDAwOwogCiAJcHRyW2krK10gPSBQQUNLRVQzKFBLVDNfU0VUX1NI
X1JFRywgNCk7CiAJcHRyW2krK10gPSAweDUwOwpAQCAtMzEyNSwxMSArMzE3NCwxMSBAQCB2b2lk
IGFtZGdwdV9tZW1zZXRfZHJhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLAog
CWkgPSAwOwogCWkgKz0gYW1kZ3B1X2RyYXdfaW5pdChwdHJfY21kICsgaSk7CiAKLQlpICs9IGFt
ZGdwdV9kcmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N1cmZfaW5mbyhwdHJfY21kICsgaSwg
bWNfYWRkcmVzc19kc3QpOworCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdi
bHRfc3VyZl9pbmZvKHB0cl9jbWQgKyBpLCBtY19hZGRyZXNzX2RzdCwgMCk7CiAKLQlpICs9IGFt
ZGdwdV9kcmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N0YXRlKHB0cl9jbWQgKyBpKTsKKwlp
ICs9IGFtZGdwdV9kcmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N0YXRlKHB0cl9jbWQgKyBp
LCAwKTsKIAotCWkgKz0gYW1kZ3B1X2RyYXdfdnNfUmVjdFBvc1RleEZhc3Rfd3JpdGUyaHcocHRy
X2NtZCArIGksIFBTX0NPTlNULCBtY19hZGRyZXNzX3NoYWRlcl92cyk7CisJaSArPSBhbWRncHVf
ZHJhd192c19SZWN0UG9zVGV4RmFzdF93cml0ZTJodyhwdHJfY21kICsgaSwgUFNfQ09OU1QsIG1j
X2FkZHJlc3Nfc2hhZGVyX3ZzLCAwKTsKIAogCWkgKz0gYW1kZ3B1X2RyYXdfcHNfd3JpdGUyaHco
cHRyX2NtZCArIGksIFBTX0NPTlNULCBtY19hZGRyZXNzX3NoYWRlcl9wcyk7CiAKQEAgLTMyODgs
MTEgKzMzMzcsMTEgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X21lbWNweV9kcmF3KGFtZGdwdV9kZXZp
Y2VfaGFuZGxlIGRldmljZV9oYW5kbGUsCiAJaSA9IDA7CiAJaSArPSBhbWRncHVfZHJhd19pbml0
KHB0cl9jbWQgKyBpKTsKIAotCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdi
bHRfc3VyZl9pbmZvKHB0cl9jbWQgKyBpLCBtY19hZGRyZXNzX2RzdCk7CisJaSArPSBhbWRncHVf
ZHJhd19zZXR1cF9hbmRfd3JpdGVfZHJhd2JsdF9zdXJmX2luZm8ocHRyX2NtZCArIGksIG1jX2Fk
ZHJlc3NfZHN0LCAwKTsKIAotCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdi
bHRfc3RhdGUocHRyX2NtZCArIGkpOworCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRl
X2RyYXdibHRfc3RhdGUocHRyX2NtZCArIGksIDApOwogCi0JaSArPSBhbWRncHVfZHJhd192c19S
ZWN0UG9zVGV4RmFzdF93cml0ZTJodyhwdHJfY21kICsgaSwgUFNfVEVYLCBtY19hZGRyZXNzX3No
YWRlcl92cyk7CisJaSArPSBhbWRncHVfZHJhd192c19SZWN0UG9zVGV4RmFzdF93cml0ZTJodyhw
dHJfY21kICsgaSwgUFNfVEVYLCBtY19hZGRyZXNzX3NoYWRlcl92cywgMCk7CiAKIAlpICs9IGFt
ZGdwdV9kcmF3X3BzX3dyaXRlMmh3KHB0cl9jbWQgKyBpLCBQU19URVgsIG1jX2FkZHJlc3Nfc2hh
ZGVyX3BzKTsKIApAQCAtMzQzOCw2ICszNDg3LDE2OCBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZHJh
d190ZXN0KHZvaWQpCiAJfQogfQogCit2b2lkIGFtZGdwdV9tZW1jcHlfZHJhd19oYW5nX3Nsb3df
dGVzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdCByaW5nKQor
eworCWFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0X2hhbmRsZTsKKwlhbWRncHVfYm9faGFu
ZGxlIGJvX3NoYWRlcl9wcywgYm9fc2hhZGVyX3ZzOworCWFtZGdwdV9ib19oYW5kbGUgYm9fZHN0
LCBib19zcmMsIGJvX2NtZCwgcmVzb3VyY2VzWzVdOworCXZvaWQgKnB0cl9zaGFkZXJfcHM7CisJ
dm9pZCAqcHRyX3NoYWRlcl92czsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpwdHJfZHN0Owor
CXVuc2lnbmVkIGNoYXIgKnB0cl9zcmM7CisJdWludDMyX3QgKnB0cl9jbWQ7CisJdWludDY0X3Qg
bWNfYWRkcmVzc19kc3QsIG1jX2FkZHJlc3Nfc3JjLCBtY19hZGRyZXNzX2NtZDsKKwl1aW50NjRf
dCBtY19hZGRyZXNzX3NoYWRlcl9wcywgbWNfYWRkcmVzc19zaGFkZXJfdnM7CisJYW1kZ3B1X3Zh
X2hhbmRsZSB2YV9zaGFkZXJfcHMsIHZhX3NoYWRlcl92czsKKwlhbWRncHVfdmFfaGFuZGxlIHZh
X2RzdCwgdmFfc3JjLCB2YV9jbWQ7CisJc3RydWN0IGFtZGdwdV9ncHVfaW5mbyBncHVfaW5mbyA9
IHswfTsKKwlpbnQgaSwgcjsKKwlpbnQgYm9fc2l6ZSA9IDB4NDAwMDAwMDsKKwlpbnQgYm9fc2hh
ZGVyX3BzX3NpemUgPSAweDQwMDAwMDsKKwlpbnQgYm9fc2hhZGVyX3ZzX3NpemUgPSA0MDk2Owor
CWludCBib19jbWRfc2l6ZSA9IDQwOTY7CisJc3RydWN0IGFtZGdwdV9jc19yZXF1ZXN0IGlic19y
ZXF1ZXN0ID0gezB9OworCXN0cnVjdCBhbWRncHVfY3NfaWJfaW5mbyBpYl9pbmZvPSB7MH07CisJ
dWludDMyX3QgaGFuZ19zdGF0ZSwgaGFuZ3MsIGV4cGlyZWQ7CisJYW1kZ3B1X2JvX2xpc3RfaGFu
ZGxlIGJvX2xpc3Q7CisJc3RydWN0IGFtZGdwdV9jc19mZW5jZSBmZW5jZV9zdGF0dXMgPSB7MH07
CisKKwlyID0gYW1kZ3B1X3F1ZXJ5X2dwdV9pbmZvKGRldmljZV9oYW5kbGUsICZncHVfaW5mbyk7
CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9jc19jdHhfY3JlYXRlKGRl
dmljZV9oYW5kbGUsICZjb250ZXh0X2hhbmRsZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwor
CisJciA9IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIGJvX2NtZF9zaXpl
LCA0MDk2LAorCQkJCSAgICBBTURHUFVfR0VNX0RPTUFJTl9HVFQsIDAsCisJCQkJICAgICZib19j
bWQsICh2b2lkICoqKSZwdHJfY21kLAorCQkJCSAgICAmbWNfYWRkcmVzc19jbWQsICZ2YV9jbWQp
OworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwltZW1zZXQocHRyX2NtZCwgMCwgYm9fY21kX3Np
emUpOworCisJciA9IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIGJvX3No
YWRlcl9wc19zaXplLCA0MDk2LAorCQkJCQlBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAwLAorCQkJ
CQkmYm9fc2hhZGVyX3BzLCAmcHRyX3NoYWRlcl9wcywKKwkJCQkJJm1jX2FkZHJlc3Nfc2hhZGVy
X3BzLCAmdmFfc2hhZGVyX3BzKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJbWVtc2V0KHB0
cl9zaGFkZXJfcHMsIDAsIGJvX3NoYWRlcl9wc19zaXplKTsKKworCXIgPSBhbWRncHVfYm9fYWxs
b2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCBib19zaGFkZXJfdnNfc2l6ZSwgNDA5NiwKKwkJCQkJ
QU1ER1BVX0dFTV9ET01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX3NoYWRlcl92cywgJnB0cl9zaGFk
ZXJfdnMsCisJCQkJCSZtY19hZGRyZXNzX3NoYWRlcl92cywgJnZhX3NoYWRlcl92cyk7CisJQ1Vf
QVNTRVJUX0VRVUFMKHIsIDApOworCW1lbXNldChwdHJfc2hhZGVyX3ZzLCAwLCBib19zaGFkZXJf
dnNfc2l6ZSk7CisKKwlyID0gYW1kZ3B1X2RyYXdfbG9hZF9wc19zaGFkZXJfaGFuZ19zbG93KHB0
cl9zaGFkZXJfcHMsIGdwdV9pbmZvLmZhbWlseV9pZCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDAp
OworCisJciA9IGFtZGdwdV9kcmF3X2xvYWRfdnNfc2hhZGVyKHB0cl9zaGFkZXJfdnMpOworCUNV
X0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZp
Y2VfaGFuZGxlLCBib19zaXplLCA0MDk2LAorCQkJCQlBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAw
LAorCQkJCQkmYm9fc3JjLCAodm9pZCAqKikmcHRyX3NyYywKKwkJCQkJJm1jX2FkZHJlc3Nfc3Jj
LCAmdmFfc3JjKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX2Fs
bG9jX2FuZF9tYXAoZGV2aWNlX2hhbmRsZSwgYm9fc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dF
TV9ET01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX2RzdCwgKHZvaWQgKiopJnB0cl9kc3QsCisJCQkJ
CSZtY19hZGRyZXNzX2RzdCwgJnZhX2RzdCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJ
bWVtc2V0KHB0cl9zcmMsIDB4NTUsIGJvX3NpemUpOworCisJaSA9IDA7CisJaSArPSBhbWRncHVf
ZHJhd19pbml0KHB0cl9jbWQgKyBpKTsKKworCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dy
aXRlX2RyYXdibHRfc3VyZl9pbmZvKHB0cl9jbWQgKyBpLCBtY19hZGRyZXNzX2RzdCwgMSk7CisK
KwlpICs9IGFtZGdwdV9kcmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N0YXRlKHB0cl9jbWQg
KyBpLCAxKTsKKworCWkgKz0gYW1kZ3B1X2RyYXdfdnNfUmVjdFBvc1RleEZhc3Rfd3JpdGUyaHco
cHRyX2NtZCArIGksIFBTX1RFWCwKKwkJCQkJCQltY19hZGRyZXNzX3NoYWRlcl92cywgMSk7CisK
KwlpICs9IGFtZGdwdV9kcmF3X3BzX3dyaXRlMmh3KHB0cl9jbWQgKyBpLCBQU19URVgsIG1jX2Fk
ZHJlc3Nfc2hhZGVyX3BzKTsKKworCXB0cl9jbWRbaSsrXSA9IFBBQ0tFVDMoUEtUM19TRVRfU0hf
UkVHLCA4KTsKKwlwdHJfY21kW2krK10gPSAweGM7CisJcHRyX2NtZFtpKytdID0gbWNfYWRkcmVz
c19zcmMgPj4gODsKKwlwdHJfY21kW2krK10gPSBtY19hZGRyZXNzX3NyYyA+PiA0MCB8IDB4MTBl
MDAwMDA7CisJcHRyX2NtZFtpKytdID0gMHgxZmZjN2ZmOworCXB0cl9jbWRbaSsrXSA9IDB4OTA1
MDBmYWM7CisJcHRyX2NtZFtpKytdID0gMHhmZmUwMDA7CisJaSArPSAzOworCisJcHRyX2NtZFtp
KytdID0gUEFDS0VUMyhQS1QzX1NFVF9TSF9SRUcsIDQpOworCXB0cl9jbWRbaSsrXSA9IDB4MTQ7
CisJcHRyX2NtZFtpKytdID0gMHg5MjsKKwlpICs9IDM7CisKKwlwdHJfY21kW2krK10gPSBQQUNL
RVQzKFBBQ0tFVDNfU0VUX0NPTlRFWFRfUkVHLCAxKTsKKwlwdHJfY21kW2krK10gPSAweDE5MTsK
KwlwdHJfY21kW2krK10gPSAwOworCisJaSArPSBhbWRncHVfZHJhd19kcmF3KHB0cl9jbWQgKyBp
KTsKKworCXdoaWxlIChpICYgNykKKwkJcHRyX2NtZFtpKytdID0gMHhmZmZmMTAwMDsgLyogdHlw
ZTMgbm9wIHBhY2tldCAqLworCisJcmVzb3VyY2VzWzBdID0gYm9fZHN0OworCXJlc291cmNlc1sx
XSA9IGJvX3NyYzsKKwlyZXNvdXJjZXNbMl0gPSBib19zaGFkZXJfcHM7CisJcmVzb3VyY2VzWzNd
ID0gYm9fc2hhZGVyX3ZzOworCXJlc291cmNlc1s0XSA9IGJvX2NtZDsKKwlyID0gYW1kZ3B1X2Jv
X2xpc3RfY3JlYXRlKGRldmljZV9oYW5kbGUsIDUsIHJlc291cmNlcywgTlVMTCwgJmJvX2xpc3Qp
OworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCWliX2luZm8uaWJfbWNfYWRkcmVzcyA9IG1j
X2FkZHJlc3NfY21kOworCWliX2luZm8uc2l6ZSA9IGk7CisJaWJzX3JlcXVlc3QuaXBfdHlwZSA9
IEFNREdQVV9IV19JUF9HRlg7CisJaWJzX3JlcXVlc3QucmluZyA9IHJpbmc7CisJaWJzX3JlcXVl
c3QucmVzb3VyY2VzID0gYm9fbGlzdDsKKwlpYnNfcmVxdWVzdC5udW1iZXJfb2ZfaWJzID0gMTsK
KwlpYnNfcmVxdWVzdC5pYnMgPSAmaWJfaW5mbzsKKwlpYnNfcmVxdWVzdC5mZW5jZV9pbmZvLmhh
bmRsZSA9IE5VTEw7CisJciA9IGFtZGdwdV9jc19zdWJtaXQoY29udGV4dF9oYW5kbGUsIDAsICZp
YnNfcmVxdWVzdCwgMSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJZmVuY2Vfc3RhdHVz
LmlwX3R5cGUgPSBBTURHUFVfSFdfSVBfR0ZYOworCWZlbmNlX3N0YXR1cy5pcF9pbnN0YW5jZSA9
IDA7CisJZmVuY2Vfc3RhdHVzLnJpbmcgPSByaW5nOworCWZlbmNlX3N0YXR1cy5jb250ZXh0ID0g
Y29udGV4dF9oYW5kbGU7CisJZmVuY2Vfc3RhdHVzLmZlbmNlID0gaWJzX3JlcXVlc3Quc2VxX25v
OworCisJLyogd2FpdCBmb3IgSUIgYWNjb21wbGlzaGVkICovCisJciA9IGFtZGdwdV9jc19xdWVy
eV9mZW5jZV9zdGF0dXMoJmZlbmNlX3N0YXR1cywKKwkJCQkJIEFNREdQVV9USU1FT1VUX0lORklO
SVRFLAorCQkJCQkgMCwgJmV4cGlyZWQpOworCisJciA9IGFtZGdwdV9jc19xdWVyeV9yZXNldF9z
dGF0ZShjb250ZXh0X2hhbmRsZSwgJmhhbmdfc3RhdGUsICZoYW5ncyk7CisJQ1VfQVNTRVJUX0VR
VUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTChoYW5nX3N0YXRlLCBBTURHUFVfQ1RYX1VOS05P
V05fUkVTRVQpOworCisJciA9IGFtZGdwdV9ib19saXN0X2Rlc3Ryb3koYm9fbGlzdCk7CisJQ1Vf
QVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9ib191bm1hcF9hbmRfZnJlZShib19k
c3QsIHZhX2RzdCwgbWNfYWRkcmVzc19kc3QsIGJvX3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChy
LCAwKTsKKwlyID0gYW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX3NyYywgdmFfc3JjLCBtY19h
ZGRyZXNzX3NyYywgYm9fc2l6ZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFt
ZGdwdV9ib191bm1hcF9hbmRfZnJlZShib19jbWQsIHZhX2NtZCwgbWNfYWRkcmVzc19jbWQsIGJv
X2NtZF9zaXplKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX3Vu
bWFwX2FuZF9mcmVlKGJvX3NoYWRlcl9wcywgdmFfc2hhZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRl
cl9wcywgYm9fc2hhZGVyX3BzX3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlyID0g
YW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX3NoYWRlcl92cywgdmFfc2hhZGVyX3ZzLCBtY19h
ZGRyZXNzX3NoYWRlcl92cywgYm9fc2hhZGVyX3ZzX3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChy
LCAwKTsKKworCXIgPSBhbWRncHVfY3NfY3R4X2ZyZWUoY29udGV4dF9oYW5kbGUpOworCUNVX0FT
U0VSVF9FUVVBTChyLCAwKTsKK30KKwogc3RhdGljIHZvaWQgYW1kZ3B1X2dwdV9yZXNldF90ZXN0
KHZvaWQpCiB7CiAJaW50IHI7CmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvZGVhZGxvY2tfdGVz
dHMuYyBiL3Rlc3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jCmluZGV4IDA3MzVhNzI0Li5kNmVi
MzViMSAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMKKysrIGIvdGVz
dHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMKQEAgLTExOSw2ICsxMTksNyBAQCBzdGF0aWMgdm9p
ZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19jb21wdXRlKHZvaWQpOwogc3RhdGljIHZvaWQgYW1kZ3B1
X2Rpc3BhdGNoX2hhbmdfc2xvd19nZngodm9pZCk7CiBzdGF0aWMgdm9pZCBhbWRncHVfZGlzcGF0
Y2hfaGFuZ19zbG93X2NvbXB1dGUodm9pZCk7CiBzdGF0aWMgdm9pZCBhbWRncHVfZHJhd19oYW5n
X2dmeCh2b2lkKTsKK3N0YXRpYyB2b2lkIGFtZGdwdV9kcmF3X2hhbmdfc2xvd19nZngodm9pZCk7
CiAKIENVX0JPT0wgc3VpdGVfZGVhZGxvY2tfdGVzdHNfZW5hYmxlKHZvaWQpCiB7CkBAIC0xODgs
NiArMTg5LDcgQEAgQ1VfVGVzdEluZm8gZGVhZGxvY2tfdGVzdHNbXSA9IHsKIAl7ICJnZnggcmlu
ZyBiYWQgc2xvdyBkaXNwYXRjaCB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIs
IGFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfZ2Z4IH0sCiAJeyAiY29tcHV0ZSByaW5nIGJhZCBz
bG93IGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVvdXQ9NTAsNTApIiwgYW1k
Z3B1X2Rpc3BhdGNoX2hhbmdfc2xvd19jb21wdXRlIH0sCiAJeyAiZ2Z4IHJpbmcgYmFkIGRyYXcg
dGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBhbWRncHVfZHJhd19oYW5nX2dm
eCB9LAorCXsgImdmeCByaW5nIHNsb3cgYmFkIGRyYXcgdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBf
dGltZW91dD01MCkiLCBhbWRncHVfZHJhd19oYW5nX3Nsb3dfZ2Z4IH0sCiAJQ1VfVEVTVF9JTkZP
X05VTEwsCiB9OwogCkBAIC01MjYsMyArNTI4LDE5IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kcmF3
X2hhbmdfZ2Z4KHZvaWQpCiAJCWFtZGdwdV9tZW1jcHlfZHJhd190ZXN0KGRldmljZV9oYW5kbGUs
IHJpbmdfaWQsIDApOwogCX0KIH0KKworc3RhdGljIHZvaWQgYW1kZ3B1X2RyYXdfaGFuZ19zbG93
X2dmeCh2b2lkKQoreworCXN0cnVjdCBkcm1fYW1kZ3B1X2luZm9faHdfaXAgaW5mbzsKKwl1aW50
MzJfdCByaW5nX2lkOworCWludCByOworCisJciA9IGFtZGdwdV9xdWVyeV9od19pcF9pbmZvKGRl
dmljZV9oYW5kbGUsIEFNREdQVV9IV19JUF9HRlgsIDAsICZpbmZvKTsKKwlDVV9BU1NFUlRfRVFV
QUwociwgMCk7CisKKwlmb3IgKHJpbmdfaWQgPSAwOyAoMSA8PCByaW5nX2lkKSAmIGluZm8uYXZh
aWxhYmxlX3JpbmdzOyByaW5nX2lkKyspIHsKKwkJYW1kZ3B1X21lbWNweV9kcmF3X3Rlc3QoZGV2
aWNlX2hhbmRsZSwgcmluZ19pZCwgMCk7CisJCWFtZGdwdV9tZW1jcHlfZHJhd19oYW5nX3Nsb3df
dGVzdChkZXZpY2VfaGFuZGxlLCByaW5nX2lkKTsKKwkJYW1kZ3B1X21lbWNweV9kcmF3X3Rlc3Qo
ZGV2aWNlX2hhbmRsZSwgcmluZ19pZCwgMCk7CisJfQorfQpjb21taXQgNWUxZjY1MzNhMGIxNTU4
NzIyMGY2NjE4NzJjODY5ODE3MDZiNGQ0MgpBdXRob3I6IEZsb3JhIEN1aSA8ZmxvcmEuY3VpQGFt
ZC5jb20+CkRhdGU6ICAgTW9uIE1hciAxOCAxNDoxNDo0MiAyMDE5ICswODAwCgogICAgdGVzdHMv
YW1kZ3B1OiBhZGQgZ2Z4IHJpbmcgZHJhdyBoYW5nIHRlc3QKICAgIAogICAgZm9yIGdmeDkKICAg
IAogICAgU2lnbmVkLW9mZi1ieTogRmxvcmEgQ3VpIDxmbG9yYS5jdWlAYW1kLmNvbT4KICAgIFJl
dmlld2VkLWJ5OiBNYXJlayBPbMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29tPgoKZGlmZiAtLWdp
dCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0
LmMKaW5kZXggMDgzODdmYzcuLjU0YmQzM2RjIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYW1k
Z3B1X3Rlc3QuYworKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwpAQCAtNDc2LDYgKzQ3
NiwxMSBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGlzYWJsZV9zdWl0ZXMoKQogCQkJCSJjb21wdXRl
IHJpbmcgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01
MCw1MCkiLCBDVV9GQUxTRSkpCiAJCQlmcHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9u
IGZhaWxlZCAtICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOwogCisJLy9pZiAoZmFtaWx5X2lk
IDwgQU1ER1BVX0ZBTUlMWV9BSSB8fCBmYW1pbHlfaWQgPiBBTURHUFVfRkFNSUxZX1JWKQorCQlp
ZiAoYW1kZ3B1X3NldF90ZXN0X2FjdGl2ZShERUFETE9DS19URVNUU19TVFIsCisJCQkJImdmeCBy
aW5nIGJhZCBkcmF3IHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVvdXQ9NTApIiwgQ1VfRkFM
U0UpKQorCQkJZnByaW50ZihzdGRlcnIsICJ0ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAlc1xu
IiwgQ1VfZ2V0X2Vycm9yX21zZygpKTsKKwogCWlmIChhbWRncHVfc2V0X3Rlc3RfYWN0aXZlKEJP
X1RFU1RTX1NUUiwgIk1ldGFkYXRhIiwgQ1VfRkFMU0UpKQogCQlmcHJpbnRmKHN0ZGVyciwgInRl
c3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAtICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOwogCmRp
ZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaCBiL3Rlc3RzL2FtZGdwdS9hbWRn
cHVfdGVzdC5oCmluZGV4IGUwYmFmNTQ5Li4yMWMwMjRmZCAxMDA2NDQKLS0tIGEvdGVzdHMvYW1k
Z3B1L2FtZGdwdV90ZXN0LmgKKysrIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmgKQEAgLTIz
OCw3ICsyMzgsOCBAQCBleHRlcm4gQ1VfVGVzdEluZm8gc3luY29ial90aW1lbGluZV90ZXN0c1td
OwogCiB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihhbWRncHVfZGV2aWNlX2hhbmRs
ZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdCBpcF90eXBlKTsKIHZvaWQgYW1kZ3B1X2Rpc3BhdGNo
X2hhbmdfc2xvd19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWlu
dDMyX3QgaXBfdHlwZSk7Ci0KK3ZvaWQgYW1kZ3B1X21lbWNweV9kcmF3X3Rlc3QoYW1kZ3B1X2Rl
dmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWludDMyX3QgcmluZywKKwkJCSAgICAgaW50IGhh
bmcpOwogLyoqCiAgKiBIZWxwZXIgZnVuY3Rpb25zCiAgKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2Ft
ZGdwdS9iYXNpY190ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKaW5kZXggMGNl
MjY4ZmIuLjQ0ZTZjY2U0IDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYwor
KysgYi90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYwpAQCAtMzU3LDcgKzM1Nyw4IEBAIHN0YXRp
YyBjb25zdCB1aW50MzJfdCBwcmVhbWJsZWNhY2hlX2dmeDlbXSA9IHsKIAogZW51bSBwc190eXBl
IHsKIAlQU19DT05TVCwKLQlQU19URVgKKwlQU19URVgsCisJUFNfSEFORwogfTsKIAogc3RhdGlj
IGNvbnN0IHVpbnQzMl90IHBzX2NvbnN0X3NoYWRlcl9nZng5W10gPSB7CkBAIC0yNzgzLDYgKzI3
ODQsMTIgQEAgc3RhdGljIGludCBhbWRncHVfZHJhd19sb2FkX3BzX3NoYWRlcih1aW50OF90ICpw
dHIsIGludCBwc190eXBlKQogCQkJcGF0Y2hpbmZvX2NvZGVfc2l6ZSA9IHBzX3RleF9zaGFkZXJf
cGF0Y2hpbmZvX2NvZGVfc2l6ZV9nZng5OwogCQkJcGF0Y2hjb2RlX29mZnNldCA9IHBzX3RleF9z
aGFkZXJfcGF0Y2hpbmZvX29mZnNldF9nZng5OwogCQkJYnJlYWs7CisJCWNhc2UgUFNfSEFORzoK
KwkJCXNoYWRlciA9IG1lbWNweV9wc19oYW5nOworCQkJc2hhZGVyX3NpemUgPSBzaXplb2YobWVt
Y3B5X3BzX2hhbmcpOworCisJCQltZW1jcHkocHRyLCBzaGFkZXIsIHNoYWRlcl9zaXplKTsKKwkJ
CXJldHVybiAwOwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIC0xOwogCQkJYnJlYWs7CkBAIC0zMjM2
LDcgKzMyNDMsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfbWVtY3B5X2RyYXcoYW1kZ3B1X2Rldmlj
ZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwKIAkJCSAgICAgICBhbWRncHVfYm9faGFuZGxlIGJvX3No
YWRlcl92cywKIAkJCSAgICAgICB1aW50NjRfdCBtY19hZGRyZXNzX3NoYWRlcl9wcywKIAkJCSAg
ICAgICB1aW50NjRfdCBtY19hZGRyZXNzX3NoYWRlcl92cywKLQkJCSAgICAgICB1aW50MzJfdCBy
aW5nKQorCQkJICAgICAgIHVpbnQzMl90IHJpbmcsIGludCBoYW5nKQogewogCWFtZGdwdV9jb250
ZXh0X2hhbmRsZSBjb250ZXh0X2hhbmRsZTsKIAlhbWRncHVfYm9faGFuZGxlIGJvX2RzdCwgYm9f
c3JjLCBib19jbWQsIHJlc291cmNlc1s1XTsKQEAgLTMzNDEsMTQgKzMzNDgsMjAgQEAgc3RhdGlj
IHZvaWQgYW1kZ3B1X21lbWNweV9kcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9oYW5k
bGUsCiAJciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMoJmZlbmNlX3N0YXR1cywKIAkJ
CQkJIEFNREdQVV9USU1FT1VUX0lORklOSVRFLAogCQkJCQkgMCwgJmV4cGlyZWQpOwotCUNVX0FT
U0VSVF9FUVVBTChyLCAwKTsKLQlDVV9BU1NFUlRfRVFVQUwoZXhwaXJlZCwgdHJ1ZSk7CisJaWYg
KCFoYW5nKSB7CisJCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwkJQ1VfQVNTRVJUX0VRVUFMKGV4
cGlyZWQsIHRydWUpOwogCi0JLyogdmVyaWZ5IGlmIG1lbWNweSB0ZXN0IHJlc3VsdCBtZWV0cyB3
aXRoIGV4cGVjdGVkICovCi0JaSA9IDA7Ci0Jd2hpbGUoaSA8IGJvX3NpemUpIHsKLQkJQ1VfQVNT
RVJUX0VRVUFMKHB0cl9kc3RbaV0sIHB0cl9zcmNbaV0pOwotCQlpKys7CisJCS8qIHZlcmlmeSBp
ZiBtZW1jcHkgdGVzdCByZXN1bHQgbWVldHMgd2l0aCBleHBlY3RlZCAqLworCQlpID0gMDsKKwkJ
d2hpbGUoaSA8IGJvX3NpemUpIHsKKwkJCUNVX0FTU0VSVF9FUVVBTChwdHJfZHN0W2ldLCBwdHJf
c3JjW2ldKTsKKwkJCWkrKzsKKwkJfQorCX0gZWxzZSB7CisJCXIgPSBhbWRncHVfY3NfcXVlcnlf
cmVzZXRfc3RhdGUoY29udGV4dF9oYW5kbGUsICZoYW5nX3N0YXRlLCAmaGFuZ3MpOworCQlDVV9B
U1NFUlRfRVFVQUwociwgMCk7CisJCUNVX0FTU0VSVF9FUVVBTChoYW5nX3N0YXRlLCBBTURHUFVf
Q1RYX1VOS05PV05fUkVTRVQpOwogCX0KIAogCXIgPSBhbWRncHVfYm9fbGlzdF9kZXN0cm95KGJv
X2xpc3QpOwpAQCAtMzM2Niw3ICszMzc5LDggQEAgc3RhdGljIHZvaWQgYW1kZ3B1X21lbWNweV9k
cmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9oYW5kbGUsCiAJQ1VfQVNTRVJUX0VRVUFM
KHIsIDApOwogfQogCi1zdGF0aWMgdm9pZCBhbWRncHVfbWVtY3B5X2RyYXdfdGVzdChhbWRncHVf
ZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdCByaW5nKQordm9pZCBhbWRncHVf
bWVtY3B5X2RyYXdfdGVzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50
MzJfdCByaW5nLAorCQkJICAgICBpbnQgaGFuZykKIHsKIAlhbWRncHVfYm9faGFuZGxlIGJvX3No
YWRlcl9wcywgYm9fc2hhZGVyX3ZzOwogCXZvaWQgKnB0cl9zaGFkZXJfcHM7CkBAIC0zMzc0LDYg
KzMzODgsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfbWVtY3B5X2RyYXdfdGVzdChhbWRncHVfZGV2
aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdAogCXVpbnQ2NF90IG1jX2FkZHJlc3Nf
c2hhZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRlcl92czsKIAlhbWRncHVfdmFfaGFuZGxlIHZhX3No
YWRlcl9wcywgdmFfc2hhZGVyX3ZzOwogCWludCBib19zaGFkZXJfc2l6ZSA9IDQwOTY7CisJZW51
bSBwc190eXBlIHBzX3R5cGUgPSBoYW5nID8gUFNfSEFORyA6IFBTX1RFWDsKIAlpbnQgcjsKIAog
CXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCBib19zaGFkZXJfc2l6
ZSwgNDA5NiwKQEAgLTMzOTAsMTQgKzM0MDUsMTQgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X21lbWNw
eV9kcmF3X3Rlc3QoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWludDMyX3QK
IAlDVV9BU1NFUlRfRVFVQUwociwgMCk7CiAJbWVtc2V0KHB0cl9zaGFkZXJfdnMsIDAsIGJvX3No
YWRlcl9zaXplKTsKIAotCXIgPSBhbWRncHVfZHJhd19sb2FkX3BzX3NoYWRlcihwdHJfc2hhZGVy
X3BzLCBQU19URVgpOworCXIgPSBhbWRncHVfZHJhd19sb2FkX3BzX3NoYWRlcihwdHJfc2hhZGVy
X3BzLCBwc190eXBlKTsKIAlDVV9BU1NFUlRfRVFVQUwociwgMCk7CiAKIAlyID0gYW1kZ3B1X2Ry
YXdfbG9hZF92c19zaGFkZXIocHRyX3NoYWRlcl92cyk7CiAJQ1VfQVNTRVJUX0VRVUFMKHIsIDAp
OwogCiAJYW1kZ3B1X21lbWNweV9kcmF3KGRldmljZV9oYW5kbGUsIGJvX3NoYWRlcl9wcywgYm9f
c2hhZGVyX3ZzLAotCQkJbWNfYWRkcmVzc19zaGFkZXJfcHMsIG1jX2FkZHJlc3Nfc2hhZGVyX3Zz
LCByaW5nKTsKKwkJCW1jX2FkZHJlc3Nfc2hhZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRlcl92cywg
cmluZywgaGFuZyk7CiAKIAlyID0gYW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX3NoYWRlcl9w
cywgdmFfc2hhZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRlcl9wcywgYm9fc2hhZGVyX3NpemUpOwog
CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKQEAgLTM0MTksNyArMzQzNCw3IEBAIHN0YXRpYyB2b2lk
IGFtZGdwdV9kcmF3X3Rlc3Qodm9pZCkKIAogCWZvciAocmluZ19pZCA9IDA7ICgxIDw8IHJpbmdf
aWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7IHJpbmdfaWQrKykgewogCQlhbWRncHVfbWVtc2V0
X2RyYXdfdGVzdChkZXZpY2VfaGFuZGxlLCByaW5nX2lkKTsKLQkJYW1kZ3B1X21lbWNweV9kcmF3
X3Rlc3QoZGV2aWNlX2hhbmRsZSwgcmluZ19pZCk7CisJCWFtZGdwdV9tZW1jcHlfZHJhd190ZXN0
KGRldmljZV9oYW5kbGUsIHJpbmdfaWQsIDApOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvdGVzdHMv
YW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUvZGVhZGxvY2tfdGVzdHMuYwpp
bmRleCA5NDlkYzI5OC4uMDczNWE3MjQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9kZWFkbG9j
a190ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jCkBAIC0xMTgsNiAr
MTE4LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfZ2Z4KHZvaWQpOwogc3Rh
dGljIHZvaWQgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfY29tcHV0ZSh2b2lkKTsKIHN0YXRpYyB2b2lk
IGFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfZ2Z4KHZvaWQpOwogc3RhdGljIHZvaWQgYW1kZ3B1
X2Rpc3BhdGNoX2hhbmdfc2xvd19jb21wdXRlKHZvaWQpOworc3RhdGljIHZvaWQgYW1kZ3B1X2Ry
YXdfaGFuZ19nZngodm9pZCk7CiAKIENVX0JPT0wgc3VpdGVfZGVhZGxvY2tfdGVzdHNfZW5hYmxl
KHZvaWQpCiB7CkBAIC0xODYsNiArMTg3LDcgQEAgQ1VfVGVzdEluZm8gZGVhZGxvY2tfdGVzdHNb
XSA9IHsKIAl7ICJjb21wdXRlIHJpbmcgYmFkIGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9j
a3VwX3RpbWVvdXQ9NTAsNTApIiwgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfY29tcHV0ZSB9LAogCXsg
ImdmeCByaW5nIGJhZCBzbG93IGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVv
dXQ9NTApIiwgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfc2xvd19nZnggfSwKIAl7ICJjb21wdXRlIHJp
bmcgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCw1
MCkiLCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19zbG93X2NvbXB1dGUgfSwKKwl7ICJnZnggcmluZyBi
YWQgZHJhdyB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIsIGFtZGdwdV9kcmF3
X2hhbmdfZ2Z4IH0sCiAJQ1VfVEVTVF9JTkZPX05VTEwsCiB9OwogCkBAIC01MDYsMyArNTA4LDIx
IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfY29tcHV0ZSh2b2lkKQog
ewogCWFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfaGVscGVyKGRldmljZV9oYW5kbGUsIEFNREdQ
VV9IV19JUF9DT01QVVRFKTsKIH0KKworc3RhdGljIHZvaWQgYW1kZ3B1X2RyYXdfaGFuZ19nZngo
dm9pZCkKK3sKKwlpbnQgcjsKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9pbmZvX2h3X2lwIGluZm87CisJ
dWludDMyX3QgcmluZ19pZDsKKworCXIgPSBhbWRncHVfcXVlcnlfaHdfaXBfaW5mbyhkZXZpY2Vf
aGFuZGxlLCBBTURHUFVfSFdfSVBfR0ZYLCAwLCAmaW5mbyk7CisJQ1VfQVNTRVJUX0VRVUFMKHIs
IDApOworCWlmICghaW5mby5hdmFpbGFibGVfcmluZ3MpCisJCXByaW50ZigiU0tJUCAuLi4gYXMg
dGhlcmUncyBubyBncmFwaGljIHJpbmdcbiIpOworCisJZm9yIChyaW5nX2lkID0gMDsgKDEgPDwg
cmluZ19pZCkgJiBpbmZvLmF2YWlsYWJsZV9yaW5nczsgcmluZ19pZCsrKSB7CisJCWFtZGdwdV9t
ZW1jcHlfZHJhd190ZXN0KGRldmljZV9oYW5kbGUsIHJpbmdfaWQsIDApOworCQlhbWRncHVfbWVt
Y3B5X2RyYXdfdGVzdChkZXZpY2VfaGFuZGxlLCByaW5nX2lkLCAxKTsKKwkJYW1kZ3B1X21lbWNw
eV9kcmF3X3Rlc3QoZGV2aWNlX2hhbmRsZSwgcmluZ19pZCwgMCk7CisJfQorfQpjb21taXQgNzFi
OWU2OGQ5OTliZTQ3OWI1NjBkMjkzMGQ4MzI1YWQ2MjdiZjRiZQpBdXRob3I6IEZsb3JhIEN1aSA8
ZmxvcmEuY3VpQGFtZC5jb20+CkRhdGU6ICAgTW9uIE1hciAxOCAxNTozMjozMCAyMDE5ICswODAw
CgogICAgdGVzdHMvYW1kZ3B1OiBhZGQgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdAogICAgCiAgICBh
ZGQgZ2Z4L2NvbXB1dGUgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdCBmb3IgZ2Z4OQogICAgCiAgICBT
aWduZWQtb2ZmLWJ5OiBGbG9yYSBDdWkgPGZsb3JhLmN1aUBhbWQuY29tPgogICAgUmV2aWV3ZWQt
Ynk6IE1hcmVrIE9sxaHDoWsgPG1hcmVrLm9sc2FrQGFtZC5jb20+CgpkaWZmIC0tZ2l0IGEvdGVz
dHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwppbmRl
eCAwODY0MjIwMy4uMDgzODdmYzcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVz
dC5jCisrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCkBAIC00NjQsNiArNDY0LDE4IEBA
IHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNhYmxlX3N1aXRlcygpCiAJCQkJImNvbXB1dGUgcmluZyBi
YWQgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBDVV9GQUxT
RSkpCiAJCQlmcHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAtICVzXG4i
LCBDVV9nZXRfZXJyb3JfbXNnKCkpOwogCisJLyogVGhpcyB0ZXN0IHdhcyByYW4gb24gR0ZYOSBv
bmx5ICovCisJLy9pZiAoZmFtaWx5X2lkIDwgQU1ER1BVX0ZBTUlMWV9BSSB8fCBmYW1pbHlfaWQg
PiBBTURHUFVfRkFNSUxZX1JWKQorCQlpZiAoYW1kZ3B1X3NldF90ZXN0X2FjdGl2ZShERUFETE9D
S19URVNUU19TVFIsCisJCQkJImdmeCByaW5nIGJhZCBzbG93IGRpc3BhdGNoIHRlc3QgKHNldCBh
bWRncHUubG9ja3VwX3RpbWVvdXQ9NTApIiwgQ1VfRkFMU0UpKQorCQkJZnByaW50ZihzdGRlcnIs
ICJ0ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAlc1xuIiwgQ1VfZ2V0X2Vycm9yX21zZygpKTsK
KworCS8qIFRoaXMgdGVzdCB3YXMgcmFuIG9uIEdGWDkgb25seSAqLworCS8vaWYgKGZhbWlseV9p
ZCA8IEFNREdQVV9GQU1JTFlfQUkgfHwgZmFtaWx5X2lkID4gQU1ER1BVX0ZBTUlMWV9SVikKKwkJ
aWYgKGFtZGdwdV9zZXRfdGVzdF9hY3RpdmUoREVBRExPQ0tfVEVTVFNfU1RSLAorCQkJCSJjb21w
dXRlIHJpbmcgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91
dD01MCw1MCkiLCBDVV9GQUxTRSkpCisJCQlmcHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0
aW9uIGZhaWxlZCAtICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOworCiAJaWYgKGFtZGdwdV9z
ZXRfdGVzdF9hY3RpdmUoQk9fVEVTVFNfU1RSLCAiTWV0YWRhdGEiLCBDVV9GQUxTRSkpCiAJCWZw
cmludGYoc3RkZXJyLCAidGVzdCBkZWFjdGl2YXRpb24gZmFpbGVkIC0gJXNcbiIsIENVX2dldF9l
cnJvcl9tc2coKSk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oIGIv
dGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmgKaW5kZXggZTFkOTAyNTMuLmUwYmFmNTQ5IDEwMDY0
NAotLS0gYS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaAorKysgYi90ZXN0cy9hbWRncHUvYW1k
Z3B1X3Rlc3QuaApAQCAtMjM3LDYgKzIzNyw3IEBAIENVX0JPT0wgc3VpdGVfc3luY29ial90aW1l
bGluZV90ZXN0c19lbmFibGUodm9pZCk7CiBleHRlcm4gQ1VfVGVzdEluZm8gc3luY29ial90aW1l
bGluZV90ZXN0c1tdOwogCiB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihhbWRncHVf
ZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdCBpcF90eXBlKTsKK3ZvaWQgYW1k
Z3B1X2Rpc3BhdGNoX2hhbmdfc2xvd19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNl
X2hhbmRsZSwgdWludDMyX3QgaXBfdHlwZSk7CiAKIC8qKgogICogSGVscGVyIGZ1bmN0aW9ucwpk
aWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUvYmFz
aWNfdGVzdHMuYwppbmRleCA5ZGRlN2FmMC4uMGNlMjY4ZmIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2Ft
ZGdwdS9iYXNpY190ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jCkBAIC0z
MDcsNyArMzA3LDggQEAgc3RhdGljICB1aW50MzJfdCBzaGFkZXJfYmluW10gPSB7CiBlbnVtIGNz
X3R5cGUgewogCUNTX0JVRkZFUkNMRUFSLAogCUNTX0JVRkZFUkNPUFksCi0JQ1NfSEFORworCUNT
X0hBTkcsCisJQ1NfSEFOR19TTE9XCiB9OwogCiBzdGF0aWMgY29uc3QgdWludDMyX3QgYnVmZmVy
Y2xlYXJfY3Nfc2hhZGVyX2dmeDlbXSA9IHsKQEAgLTQ3Nyw2ICs0NzgsMzcgQEAgdW5zaWduZWQg
aW50IG1lbWNweV9wc19oYW5nW10gPSB7CiAgICAgICAgIDB4RjgwMDE4MEYsIDB4MDMwMjAxMDAs
IDB4QkY4MTAwMDAKIH07CiAKK3N0cnVjdCBhbWRncHVfdGVzdF9zaGFkZXIgeworCXVpbnQzMl90
ICpzaGFkZXI7CisJdWludDMyX3QgaGVhZGVyX2xlbmd0aDsKKwl1aW50MzJfdCBib2R5X2xlbmd0
aDsKKwl1aW50MzJfdCBmb290X2xlbmd0aDsKK307CisKK3Vuc2lnbmVkIGludCBtZW1jcHlfY3Nf
aGFuZ19zbG93X2FpX2NvZGVzW10gPSB7CisgICAgMHhkMWZkMDAwMCwgMHgwNDAxMGMwOCwgMHhl
MDBjMjAwMCwgMHg4MDAwMDEwMCwKKyAgICAweGJmOGMwZjcwLCAweGUwMWMyMDAwLCAweDgwMDEw
MTAwLCAweGJmODEwMDAwCit9OworCitzdHJ1Y3QgYW1kZ3B1X3Rlc3Rfc2hhZGVyIG1lbWNweV9j
c19oYW5nX3Nsb3dfYWkgPSB7CisgICAgICAgIG1lbWNweV9jc19oYW5nX3Nsb3dfYWlfY29kZXMs
CisgICAgICAgIDQsCisgICAgICAgIDMsCisgICAgICAgIDEKK307CisKK3Vuc2lnbmVkIGludCBt
ZW1jcHlfY3NfaGFuZ19zbG93X3J2X2NvZGVzW10gPSB7CisgICAgMHg4ZTAwODYwYywgMHgzMjAw
MDAwMCwgMHhlMDBjMjAwMCwgMHg4MDAxMDEwMCwKKyAgICAweGJmOGMwZjcwLCAweGUwMWMyMDAw
LCAweDgwMDIwMTAwLCAweGJmODEwMDAwCit9OworCitzdHJ1Y3QgYW1kZ3B1X3Rlc3Rfc2hhZGVy
IG1lbWNweV9jc19oYW5nX3Nsb3dfcnYgPSB7CisgICAgICAgIG1lbWNweV9jc19oYW5nX3Nsb3df
cnZfY29kZXMsCisgICAgICAgIDQsCisgICAgICAgIDMsCisgICAgICAgIDEKK307CisKIGludCBh
bWRncHVfYm9fYWxsb2NfYW5kX21hcF9yYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LCB1bnNp
Z25lZCBzaXplLAogCQkJdW5zaWduZWQgYWxpZ25tZW50LCB1bnNpZ25lZCBoZWFwLCB1aW50NjRf
dCBhbGxvY19mbGFncywKIAkJCXVpbnQ2NF90IG1hcHBpbmdfZmxhZ3MsIGFtZGdwdV9ib19oYW5k
bGUgKmJvLCB2b2lkICoqY3B1LApAQCAtMjA3NCw2ICsyMTA2LDM3IEBAIHN0YXRpYyB2b2lkIGFt
ZGdwdV9zeW5jX2RlcGVuZGVuY3lfdGVzdCh2b2lkKQogCWZyZWUoaWJzX3JlcXVlc3QuZGVwZW5k
ZW5jaWVzKTsKIH0KIAorc3RhdGljIGludCBhbWRncHVfZGlzcGF0Y2hfbG9hZF9jc19zaGFkZXJf
aGFuZ19zbG93KHVpbnQzMl90ICpwdHIsIGludCBmYW1pbHkpCit7CisJc3RydWN0IGFtZGdwdV90
ZXN0X3NoYWRlciAqc2hhZGVyOworCWludCBpLCBsb29wID0gMHgxMDAwMDsKKworCXN3aXRjaCAo
ZmFtaWx5KSB7CisJCWNhc2UgQU1ER1BVX0ZBTUlMWV9BSToKKwkJCXNoYWRlciA9ICZtZW1jcHlf
Y3NfaGFuZ19zbG93X2FpOworCQkJYnJlYWs7CisJCWNhc2UgQU1ER1BVX0ZBTUlMWV9SVjoKKwkJ
CXNoYWRlciA9ICZtZW1jcHlfY3NfaGFuZ19zbG93X3J2OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6
CisJCQlyZXR1cm4gLTE7CisJCQlicmVhazsKKwl9CisKKwltZW1jcHkocHRyLCBzaGFkZXItPnNo
YWRlciwgc2hhZGVyLT5oZWFkZXJfbGVuZ3RoICogc2l6ZW9mKHVpbnQzMl90KSk7CisKKwlmb3Ig
KGkgPSAwOyBpIDwgbG9vcDsgaSsrKQorCQltZW1jcHkocHRyICsgc2hhZGVyLT5oZWFkZXJfbGVu
Z3RoICsgc2hhZGVyLT5ib2R5X2xlbmd0aCAqIGksCisJCQlzaGFkZXItPnNoYWRlciArIHNoYWRl
ci0+aGVhZGVyX2xlbmd0aCwKKwkJCXNoYWRlci0+Ym9keV9sZW5ndGggKiBzaXplb2YodWludDMy
X3QpKTsKKworCW1lbWNweShwdHIgKyBzaGFkZXItPmhlYWRlcl9sZW5ndGggKyBzaGFkZXItPmJv
ZHlfbGVuZ3RoICogbG9vcCwKKwkJc2hhZGVyLT5zaGFkZXIgKyBzaGFkZXItPmhlYWRlcl9sZW5n
dGggKyBzaGFkZXItPmJvZHlfbGVuZ3RoLAorCQlzaGFkZXItPmZvb3RfbGVuZ3RoICogc2l6ZW9m
KHVpbnQzMl90KSk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBhbWRncHVfZGlzcGF0
Y2hfbG9hZF9jc19zaGFkZXIodWludDhfdCAqcHRyLAogCQkJCQkgICBpbnQgY3NfdHlwZSkKIHsK
QEAgLTI1MjYsNiArMjU4OSwxNzUgQEAgdm9pZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19oZWxwZXIo
YW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWludDMyX3QgaXAKIAl9CiB9CiAK
K3N0YXRpYyB2b2lkIGFtZGdwdV9tZW1jcHlfZGlzcGF0Y2hfaGFuZ19zbG93X3Rlc3QoYW1kZ3B1
X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwKKwkJCQkJCSAgdWludDMyX3QgaXBfdHlwZSwg
dWludDMyX3QgcmluZykKK3sKKwlhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4dF9oYW5kbGU7
CisJYW1kZ3B1X2JvX2hhbmRsZSBib19zcmMsIGJvX2RzdCwgYm9fc2hhZGVyLCBib19jbWQsIHJl
c291cmNlc1s0XTsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpwdHJfZHN0OworCXZvaWQgKnB0
cl9zaGFkZXI7CisJdW5zaWduZWQgY2hhciAqcHRyX3NyYzsKKwl1aW50MzJfdCAqcHRyX2NtZDsK
Kwl1aW50NjRfdCBtY19hZGRyZXNzX3NyYywgbWNfYWRkcmVzc19kc3QsIG1jX2FkZHJlc3Nfc2hh
ZGVyLCBtY19hZGRyZXNzX2NtZDsKKwlhbWRncHVfdmFfaGFuZGxlIHZhX3NyYywgdmFfZHN0LCB2
YV9zaGFkZXIsIHZhX2NtZDsKKwlpbnQgaSwgcjsKKwlpbnQgYm9fZHN0X3NpemUgPSAweDQwMDAw
MDA7CisJaW50IGJvX3NoYWRlcl9zaXplID0gMHg0MDAwMDA7CisJaW50IGJvX2NtZF9zaXplID0g
NDA5NjsKKwlzdHJ1Y3QgYW1kZ3B1X2NzX3JlcXVlc3QgaWJzX3JlcXVlc3QgPSB7MH07CisJc3Ry
dWN0IGFtZGdwdV9jc19pYl9pbmZvIGliX2luZm89IHswfTsKKwl1aW50MzJfdCBoYW5nX3N0YXRl
LCBoYW5ncywgZXhwaXJlZDsKKwlzdHJ1Y3QgYW1kZ3B1X2dwdV9pbmZvIGdwdV9pbmZvID0gezB9
OworCWFtZGdwdV9ib19saXN0X2hhbmRsZSBib19saXN0OworCXN0cnVjdCBhbWRncHVfY3NfZmVu
Y2UgZmVuY2Vfc3RhdHVzID0gezB9OworCisJciA9IGFtZGdwdV9xdWVyeV9ncHVfaW5mbyhkZXZp
Y2VfaGFuZGxlLCAmZ3B1X2luZm8pOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBh
bWRncHVfY3NfY3R4X2NyZWF0ZShkZXZpY2VfaGFuZGxlLCAmY29udGV4dF9oYW5kbGUpOworCUNV
X0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZp
Y2VfaGFuZGxlLCBib19jbWRfc2l6ZSwgNDA5NiwKKwkJCQkgICAgQU1ER1BVX0dFTV9ET01BSU5f
R1RULCAwLAorCQkJCSAgICAmYm9fY21kLCAodm9pZCAqKikmcHRyX2NtZCwKKwkJCQkgICAgJm1j
X2FkZHJlc3NfY21kLCAmdmFfY21kKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJbWVtc2V0
KHB0cl9jbWQsIDAsIGJvX2NtZF9zaXplKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21h
cChkZXZpY2VfaGFuZGxlLCBib19zaGFkZXJfc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dFTV9E
T01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX3NoYWRlciwgJnB0cl9zaGFkZXIsCisJCQkJCSZtY19h
ZGRyZXNzX3NoYWRlciwgJnZhX3NoYWRlcik7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCW1l
bXNldChwdHJfc2hhZGVyLCAwLCBib19zaGFkZXJfc2l6ZSk7CisKKwlyID0gYW1kZ3B1X2Rpc3Bh
dGNoX2xvYWRfY3Nfc2hhZGVyX2hhbmdfc2xvdyhwdHJfc2hhZGVyLCBncHVfaW5mby5mYW1pbHlf
aWQpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5k
X21hcChkZXZpY2VfaGFuZGxlLCBib19kc3Rfc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dFTV9E
T01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX3NyYywgKHZvaWQgKiopJnB0cl9zcmMsCisJCQkJCSZt
Y19hZGRyZXNzX3NyYywgJnZhX3NyYyk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9
IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIGJvX2RzdF9zaXplLCA0MDk2
LAorCQkJCQlBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAwLAorCQkJCQkmYm9fZHN0LCAodm9pZCAq
KikmcHRyX2RzdCwKKwkJCQkJJm1jX2FkZHJlc3NfZHN0LCAmdmFfZHN0KTsKKwlDVV9BU1NFUlRf
RVFVQUwociwgMCk7CisKKwltZW1zZXQocHRyX3NyYywgMHg1NSwgYm9fZHN0X3NpemUpOworCisJ
aSA9IDA7CisJaSArPSBhbWRncHVfZGlzcGF0Y2hfaW5pdChwdHJfY21kICsgaSwgaXBfdHlwZSk7
CisKKwkvKiAgSXNzdWUgY29tbWFuZHMgdG8gc2V0IGN1IG1hc2sgdXNlZCBpbiBjdXJyZW50IGRp
c3BhdGNoICovCisJaSArPSBhbWRncHVfZGlzcGF0Y2hfd3JpdGVfY3VtYXNrKHB0cl9jbWQgKyBp
KTsKKworCS8qIFdyaXRlcyBzaGFkZXIgc3RhdGUgdG8gSFcgKi8KKwlpICs9IGFtZGdwdV9kaXNw
YXRjaF93cml0ZTJodyhwdHJfY21kICsgaSwgbWNfYWRkcmVzc19zaGFkZXIpOworCisJLyogV3Jp
dGUgY29uc3RhbnQgZGF0YSAqLworCS8qIFdyaXRlcyB0aGUgdGV4dHVyZSByZXNvdXJjZSBjb25z
dGFudHMgZGF0YSB0byB0aGUgU0dQUnMgKi8KKwlwdHJfY21kW2krK10gPSBQQUNLRVQzX0NPTVBV
VEUoUEtUM19TRVRfU0hfUkVHLCA0KTsKKwlwdHJfY21kW2krK10gPSAweDI0MDsKKwlwdHJfY21k
W2krK10gPSBtY19hZGRyZXNzX3NyYzsKKwlwdHJfY21kW2krK10gPSAobWNfYWRkcmVzc19zcmMg
Pj4gMzIpIHwgMHgxMDAwMDA7CisJcHRyX2NtZFtpKytdID0gMHg0MDAwMDA7CisJcHRyX2NtZFtp
KytdID0gMHg3NGZhYzsKKworCS8qIFdyaXRlcyB0aGUgVUFWIGNvbnN0YW50IGRhdGEgdG8gdGhl
IFNHUFJzLiAqLworCXB0cl9jbWRbaSsrXSA9IFBBQ0tFVDNfQ09NUFVURShQS1QzX1NFVF9TSF9S
RUcsIDQpOworCXB0cl9jbWRbaSsrXSA9IDB4MjQ0OworCXB0cl9jbWRbaSsrXSA9IG1jX2FkZHJl
c3NfZHN0OworCXB0cl9jbWRbaSsrXSA9IChtY19hZGRyZXNzX2RzdCA+PiAzMikgfCAweDEwMDAw
MDsKKwlwdHJfY21kW2krK10gPSAweDQwMDAwMDsKKwlwdHJfY21kW2krK10gPSAweDc0ZmFjOwor
CisJLyogY2xlYXIgbW1DT01QVVRFX1JFU09VUkNFX0xJTUlUUyAqLworCXB0cl9jbWRbaSsrXSA9
IFBBQ0tFVDNfQ09NUFVURShQS1QzX1NFVF9TSF9SRUcsIDEpOworCXB0cl9jbWRbaSsrXSA9IDB4
MjE1OworCXB0cl9jbWRbaSsrXSA9IDA7CisKKwkvKiBkaXNwYXRjaCBkaXJlY3QgY29tbWFuZCAq
LworCXB0cl9jbWRbaSsrXSA9IFBBQ0tFVDNfQ09NUFVURShQQUNLRVQzX0RJU1BBVENIX0RJUkVD
VCwgMyk7CisJcHRyX2NtZFtpKytdID0gMHgxMDAwMDsKKwlwdHJfY21kW2krK10gPSAxOworCXB0
cl9jbWRbaSsrXSA9IDE7CisJcHRyX2NtZFtpKytdID0gMTsKKworCXdoaWxlIChpICYgNykKKwkJ
cHRyX2NtZFtpKytdID0gMHhmZmZmMTAwMDsgLyogdHlwZTMgbm9wIHBhY2tldCAqLworCisJcmVz
b3VyY2VzWzBdID0gYm9fc2hhZGVyOworCXJlc291cmNlc1sxXSA9IGJvX3NyYzsKKwlyZXNvdXJj
ZXNbMl0gPSBib19kc3Q7CisJcmVzb3VyY2VzWzNdID0gYm9fY21kOworCXIgPSBhbWRncHVfYm9f
bGlzdF9jcmVhdGUoZGV2aWNlX2hhbmRsZSwgNCwgcmVzb3VyY2VzLCBOVUxMLCAmYm9fbGlzdCk7
CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJaWJfaW5mby5pYl9tY19hZGRyZXNzID0gbWNf
YWRkcmVzc19jbWQ7CisJaWJfaW5mby5zaXplID0gaTsKKwlpYnNfcmVxdWVzdC5pcF90eXBlID0g
aXBfdHlwZTsKKwlpYnNfcmVxdWVzdC5yaW5nID0gcmluZzsKKwlpYnNfcmVxdWVzdC5yZXNvdXJj
ZXMgPSBib19saXN0OworCWlic19yZXF1ZXN0Lm51bWJlcl9vZl9pYnMgPSAxOworCWlic19yZXF1
ZXN0LmlicyA9ICZpYl9pbmZvOworCWlic19yZXF1ZXN0LmZlbmNlX2luZm8uaGFuZGxlID0gTlVM
TDsKKwlyID0gYW1kZ3B1X2NzX3N1Ym1pdChjb250ZXh0X2hhbmRsZSwgMCwgJmlic19yZXF1ZXN0
LCAxKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlmZW5jZV9zdGF0dXMuaXBfdHlwZSA9
IGlwX3R5cGU7CisJZmVuY2Vfc3RhdHVzLmlwX2luc3RhbmNlID0gMDsKKwlmZW5jZV9zdGF0dXMu
cmluZyA9IHJpbmc7CisJZmVuY2Vfc3RhdHVzLmNvbnRleHQgPSBjb250ZXh0X2hhbmRsZTsKKwlm
ZW5jZV9zdGF0dXMuZmVuY2UgPSBpYnNfcmVxdWVzdC5zZXFfbm87CisKKwkvKiB3YWl0IGZvciBJ
QiBhY2NvbXBsaXNoZWQgKi8KKwlyID0gYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cygmZmVu
Y2Vfc3RhdHVzLAorCQkJCQkgQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEUsCisJCQkJCSAwLCAmZXhw
aXJlZCk7CisKKwlyID0gYW1kZ3B1X2NzX3F1ZXJ5X3Jlc2V0X3N0YXRlKGNvbnRleHRfaGFuZGxl
LCAmaGFuZ19zdGF0ZSwgJmhhbmdzKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJQ1VfQVNT
RVJUX0VRVUFMKGhhbmdfc3RhdGUsIEFNREdQVV9DVFhfVU5LTk9XTl9SRVNFVCk7CisKKwlyID0g
YW1kZ3B1X2JvX2xpc3RfZGVzdHJveShib19saXN0KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7
CisKKwlyID0gYW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX3NyYywgdmFfc3JjLCBtY19hZGRy
ZXNzX3NyYywgYm9fZHN0X3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlyID0gYW1k
Z3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX2RzdCwgdmFfZHN0LCBtY19hZGRyZXNzX2RzdCwgYm9f
ZHN0X3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fdW5t
YXBfYW5kX2ZyZWUoYm9fY21kLCB2YV9jbWQsIG1jX2FkZHJlc3NfY21kLCBib19jbWRfc2l6ZSk7
CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9ib191bm1hcF9hbmRfZnJl
ZShib19zaGFkZXIsIHZhX3NoYWRlciwgbWNfYWRkcmVzc19zaGFkZXIsIGJvX3NoYWRlcl9zaXpl
KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGNv
bnRleHRfaGFuZGxlKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cit9CisKK3ZvaWQgYW1kZ3B1
X2Rpc3BhdGNoX2hhbmdfc2xvd19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hh
bmRsZSwgdWludDMyX3QgaXBfdHlwZSkKK3sKKwlpbnQgcjsKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9p
bmZvX2h3X2lwIGluZm87CisJdWludDMyX3QgcmluZ19pZDsKKworCXIgPSBhbWRncHVfcXVlcnlf
aHdfaXBfaW5mbyhkZXZpY2VfaGFuZGxlLCBpcF90eXBlLCAwLCAmaW5mbyk7CisJQ1VfQVNTRVJU
X0VRVUFMKHIsIDApOworCWlmICghaW5mby5hdmFpbGFibGVfcmluZ3MpCisJCXByaW50ZigiU0tJ
UCAuLi4gYXMgdGhlcmUncyBubyByaW5nIGZvciBpcCAlZFxuIiwgaXBfdHlwZSk7CisKKwlmb3Ig
KHJpbmdfaWQgPSAwOyAoMSA8PCByaW5nX2lkKSAmIGluZm8uYXZhaWxhYmxlX3JpbmdzOyByaW5n
X2lkKyspIHsKKwkJYW1kZ3B1X21lbWNweV9kaXNwYXRjaF90ZXN0KGRldmljZV9oYW5kbGUsIGlw
X3R5cGUsIHJpbmdfaWQsIDApOworCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX2hhbmdfc2xvd190
ZXN0KGRldmljZV9oYW5kbGUsIGlwX3R5cGUsIHJpbmdfaWQpOworCQlhbWRncHVfbWVtY3B5X2Rp
c3BhdGNoX3Rlc3QoZGV2aWNlX2hhbmRsZSwgaXBfdHlwZSwgcmluZ19pZCwgMCk7CisJfQorfQor
CiBzdGF0aWMgaW50IGFtZGdwdV9kcmF3X2xvYWRfcHNfc2hhZGVyKHVpbnQ4X3QgKnB0ciwgaW50
IHBzX3R5cGUpCiB7CiAJaW50IGk7CmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvZGVhZGxvY2tf
dGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jCmluZGV4IDU4ZjkzYjUwLi45
NDlkYzI5OCAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMKKysrIGIv
dGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMKQEAgLTExNiw2ICsxMTYsOCBAQCBzdGF0aWMg
dm9pZCBhbWRncHVfaWxsZWdhbF9tZW1fYWNjZXNzKCk7CiBzdGF0aWMgdm9pZCBhbWRncHVfZGVh
ZGxvY2tfc2RtYSh2b2lkKTsKIHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2dmeCh2
b2lkKTsKIHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2NvbXB1dGUodm9pZCk7Citz
dGF0aWMgdm9pZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19zbG93X2dmeCh2b2lkKTsKK3N0YXRpYyB2
b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfY29tcHV0ZSh2b2lkKTsKIAogQ1VfQk9PTCBz
dWl0ZV9kZWFkbG9ja190ZXN0c19lbmFibGUodm9pZCkKIHsKQEAgLTE4Miw2ICsxODQsOCBAQCBD
VV9UZXN0SW5mbyBkZWFkbG9ja190ZXN0c1tdID0gewogCXsgImlsbGVnYWwgbWVtIGFjY2VzcyB0
ZXN0IChzZXQgYW1kZ3B1LnZtX2ZhdWx0X3N0b3A9MikiLCBhbWRncHVfaWxsZWdhbF9tZW1fYWNj
ZXNzIH0sCiAJeyAiZ2Z4IHJpbmcgYmFkIGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9ja3Vw
X3RpbWVvdXQ9NTApIiwgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfZ2Z4IH0sCiAJeyAiY29tcHV0ZSBy
aW5nIGJhZCBkaXNwYXRjaCB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwLDUwKSIs
IGFtZGdwdV9kaXNwYXRjaF9oYW5nX2NvbXB1dGUgfSwKKwl7ICJnZnggcmluZyBiYWQgc2xvdyBk
aXNwYXRjaCB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIsIGFtZGdwdV9kaXNw
YXRjaF9oYW5nX3Nsb3dfZ2Z4IH0sCisJeyAiY29tcHV0ZSByaW5nIGJhZCBzbG93IGRpc3BhdGNo
IHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVvdXQ9NTAsNTApIiwgYW1kZ3B1X2Rpc3BhdGNo
X2hhbmdfc2xvd19jb21wdXRlIH0sCiAJQ1VfVEVTVF9JTkZPX05VTEwsCiB9OwogCkBAIC00OTIs
MyArNDk2LDEzIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2NvbXB1dGUodm9p
ZCkKIHsKIAlhbWRncHVfZGlzcGF0Y2hfaGFuZ19oZWxwZXIoZGV2aWNlX2hhbmRsZSwgQU1ER1BV
X0hXX0lQX0NPTVBVVEUpOwogfQorCitzdGF0aWMgdm9pZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19z
bG93X2dmeCh2b2lkKQoreworCWFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfaGVscGVyKGRldmlj
ZV9oYW5kbGUsIEFNREdQVV9IV19JUF9HRlgpOworfQorCitzdGF0aWMgdm9pZCBhbWRncHVfZGlz
cGF0Y2hfaGFuZ19zbG93X2NvbXB1dGUodm9pZCkKK3sKKwlhbWRncHVfZGlzcGF0Y2hfaGFuZ19z
bG93X2hlbHBlcihkZXZpY2VfaGFuZGxlLCBBTURHUFVfSFdfSVBfQ09NUFVURSk7Cit9CmNvbW1p
dCBkNzJiOTE4OWM0NWJlZmMwZjY2ZGQ4ZTcxOWU1ZDUzMTc0NmM0YTY1CkF1dGhvcjogRmxvcmEg
Q3VpIDxmbG9yYS5jdWlAYW1kLmNvbT4KRGF0ZTogICBNb24gTWFyIDE4IDEwOjU4OjUzIDIwMTkg
KzA4MDAKCiAgICB0ZXN0cy9hbWRncHU6IGFkZCBkaXNwYXRjaCBoYW5nIHRlc3QKICAgIAogICAg
YWRkIGNvbXB1dGUvZ2Z4IGRpc3BhdGNoIGhhbmcgdGVzdCBmb3IgZ2Z4OQogICAgCiAgICBTaWdu
ZWQtb2ZmLWJ5OiBGbG9yYSBDdWkgPGZsb3JhLmN1aUBhbWQuY29tPgogICAgUmV2aWV3ZWQtYnk6
IE1hcmVrIE9sxaHDoWsgPG1hcmVrLm9sc2FrQGFtZC5jb20+CgpkaWZmIC0tZ2l0IGEvdGVzdHMv
YW1kZ3B1L2FtZGdwdV90ZXN0LmMgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwppbmRleCA1
YWFkZDdlNi4uMDg2NDIyMDMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5j
CisrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCkBAIC00NTIsNiArNDUyLDE4IEBAIHN0
YXRpYyB2b2lkIGFtZGdwdV9kaXNhYmxlX3N1aXRlcygpCiAJCQkJInNkbWEgcmluZyBibG9jayB0
ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIsIENVX0ZBTFNFKSkKIAkJZnByaW50
ZihzdGRlcnIsICJ0ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAlc1xuIiwgQ1VfZ2V0X2Vycm9y
X21zZygpKTsKIAorCS8qIFRoaXMgdGVzdCB3YXMgcmFuIG9uIEdGWDkgb25seSAqLworCS8vaWYg
KGZhbWlseV9pZCA8IEFNREdQVV9GQU1JTFlfQUkgfHwgZmFtaWx5X2lkID4gQU1ER1BVX0ZBTUlM
WV9SVikKKwkJaWYgKGFtZGdwdV9zZXRfdGVzdF9hY3RpdmUoREVBRExPQ0tfVEVTVFNfU1RSLAor
CQkJCSJnZnggcmluZyBiYWQgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91
dD01MCkiLCBDVV9GQUxTRSkpCisJCQlmcHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9u
IGZhaWxlZCAtICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOworCisJLyogVGhpcyB0ZXN0IHdh
cyByYW4gb24gR0ZYOSBvbmx5ICovCisJLy9pZiAoZmFtaWx5X2lkIDwgQU1ER1BVX0ZBTUlMWV9B
SSB8fCBmYW1pbHlfaWQgPiBBTURHUFVfRkFNSUxZX1JWKQorCQlpZiAoYW1kZ3B1X3NldF90ZXN0
X2FjdGl2ZShERUFETE9DS19URVNUU19TVFIsCisJCQkJImNvbXB1dGUgcmluZyBiYWQgZGlzcGF0
Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBDVV9GQUxTRSkpCisJCQlm
cHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAtICVzXG4iLCBDVV9nZXRf
ZXJyb3JfbXNnKCkpOworCiAJaWYgKGFtZGdwdV9zZXRfdGVzdF9hY3RpdmUoQk9fVEVTVFNfU1RS
LCAiTWV0YWRhdGEiLCBDVV9GQUxTRSkpCiAJCWZwcmludGYoc3RkZXJyLCAidGVzdCBkZWFjdGl2
YXRpb24gZmFpbGVkIC0gJXNcbiIsIENVX2dldF9lcnJvcl9tc2coKSk7CiAKZGlmZiAtLWdpdCBh
L3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmgK
aW5kZXggMzY2NzVlYTMuLmUxZDkwMjUzIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYW1kZ3B1
X3Rlc3QuaAorKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaApAQCAtMjM2LDYgKzIzNiw3
IEBAIENVX0JPT0wgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUodm9pZCk7CiAg
Ki8KIGV4dGVybiBDVV9UZXN0SW5mbyBzeW5jb2JqX3RpbWVsaW5lX3Rlc3RzW107CiAKK3ZvaWQg
YW1kZ3B1X2Rpc3BhdGNoX2hhbmdfaGVscGVyKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9o
YW5kbGUsIHVpbnQzMl90IGlwX3R5cGUpOwogCiAvKioKICAqIEhlbHBlciBmdW5jdGlvbnMKZGlm
ZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L2Jhc2lj
X3Rlc3RzLmMKaW5kZXggYjI0NjgyMTIuLjlkZGU3YWYwIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRn
cHUvYmFzaWNfdGVzdHMuYworKysgYi90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYwpAQCAtMzA2
LDcgKzMwNiw4IEBAIHN0YXRpYyAgdWludDMyX3Qgc2hhZGVyX2JpbltdID0gewogCiBlbnVtIGNz
X3R5cGUgewogCUNTX0JVRkZFUkNMRUFSLAotCUNTX0JVRkZFUkNPUFkKKwlDU19CVUZGRVJDT1BZ
LAorCUNTX0hBTkcKIH07CiAKIHN0YXRpYyBjb25zdCB1aW50MzJfdCBidWZmZXJjbGVhcl9jc19z
aGFkZXJfZ2Z4OVtdID0gewpAQCAtNDY4LDYgKzQ2OSwxNCBAQCBzdGF0aWMgY29uc3QgdWludDMy
X3QgY2FjaGVkX2NtZF9nZng5W10gPSB7CiAJMHhjMDAyNjkwMCwgMHgyYjAsIDB4MCwgMHgwLCAw
eGMwMDE2OTAwLCAweDJmOCwgMHgwCiB9OwogCit1bnNpZ25lZCBpbnQgbWVtY3B5X3BzX2hhbmdb
XSA9IHsKKyAgICAgICAgMHhGRkZGRkZGRiwgMHhCRUZFMEE3RSwgMHhCRUZDMDMwNCwgMHhDMEMy
MDEwMCwKKyAgICAgICAgMHhDMDgwMDMwMCwgMHhDODA4MDAwMCwgMHhDODBDMDEwMCwgMHhDODA5
MDAwMSwKKyAgICAgICAgMHhDODBEMDEwMSwgMHhCRjhDMDA3RiwgMHhGMDgwMEYwMCwgMHgwMDAx
MDAwMiwKKyAgICAgICAgMHhCRUZFMDQwQywgMHhCRjhDMEY3MCwgMHhCRjgwMDAwMCwgMHhCRjgw
MDAwMCwKKyAgICAgICAgMHhGODAwMTgwRiwgMHgwMzAyMDEwMCwgMHhCRjgxMDAwMAorfTsKKwog
aW50IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwX3JhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYs
IHVuc2lnbmVkIHNpemUsCiAJCQl1bnNpZ25lZCBhbGlnbm1lbnQsIHVuc2lnbmVkIGhlYXAsIHVp
bnQ2NF90IGFsbG9jX2ZsYWdzLAogCQkJdWludDY0X3QgbWFwcGluZ19mbGFncywgYW1kZ3B1X2Jv
X2hhbmRsZSAqYm8sIHZvaWQgKipjcHUsCkBAIC0yMDgwLDYgKzIwODksMTAgQEAgc3RhdGljIGlu
dCBhbWRncHVfZGlzcGF0Y2hfbG9hZF9jc19zaGFkZXIodWludDhfdCAqcHRyLAogCQkJc2hhZGVy
ID0gYnVmZmVyY29weV9jc19zaGFkZXJfZ2Z4OTsKIAkJCXNoYWRlcl9zaXplID0gc2l6ZW9mKGJ1
ZmZlcmNvcHlfY3Nfc2hhZGVyX2dmeDkpOwogCQkJYnJlYWs7CisJCWNhc2UgQ1NfSEFORzoKKwkJ
CXNoYWRlciA9IG1lbWNweV9wc19oYW5nOworCQkJc2hhZGVyX3NpemUgPSBzaXplb2YobWVtY3B5
X3BzX2hhbmcpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gLTE7CiAJCQlicmVh
azsKQEAgLTIzMDAsNyArMjMxMyw4IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9tZW1zZXRfZGlzcGF0
Y2hfdGVzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLAogCiBzdGF0aWMgdm9p
ZCBhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3QoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNl
X2hhbmRsZSwKIAkJCQkJdWludDMyX3QgaXBfdHlwZSwKLQkJCQkJdWludDMyX3QgcmluZykKKwkJ
CQkJdWludDMyX3QgcmluZywKKwkJCQkJaW50IGhhbmcpCiB7CiAJYW1kZ3B1X2NvbnRleHRfaGFu
ZGxlIGNvbnRleHRfaGFuZGxlOwogCWFtZGdwdV9ib19oYW5kbGUgYm9fc3JjLCBib19kc3QsIGJv
X3NoYWRlciwgYm9fY21kLCByZXNvdXJjZXNbNF07CkBAIC0yMzE2LDcgKzIzMzAsOCBAQCBzdGF0
aWMgdm9pZCBhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3QoYW1kZ3B1X2RldmljZV9oYW5kbGUg
ZGV2aWNlX2hhbmRsZSwKIAlpbnQgYm9fY21kX3NpemUgPSA0MDk2OwogCXN0cnVjdCBhbWRncHVf
Y3NfcmVxdWVzdCBpYnNfcmVxdWVzdCA9IHswfTsKIAlzdHJ1Y3QgYW1kZ3B1X2NzX2liX2luZm8g
aWJfaW5mbz0gezB9OwotCXVpbnQzMl90IGV4cGlyZWQ7CisJdWludDMyX3QgZXhwaXJlZCwgaGFu
Z19zdGF0ZSwgaGFuZ3M7CisJZW51bSBjc190eXBlIGNzX3R5cGU7CiAJYW1kZ3B1X2JvX2xpc3Rf
aGFuZGxlIGJvX2xpc3Q7CiAJc3RydWN0IGFtZGdwdV9jc19mZW5jZSBmZW5jZV9zdGF0dXMgPSB7
MH07CiAKQEAgLTIzMzcsNyArMjM1Miw4IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9tZW1jcHlfZGlz
cGF0Y2hfdGVzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLAogCUNVX0FTU0VS
VF9FUVVBTChyLCAwKTsKIAltZW1zZXQocHRyX3NoYWRlciwgMCwgYm9fc2hhZGVyX3NpemUpOwog
Ci0JciA9IGFtZGdwdV9kaXNwYXRjaF9sb2FkX2NzX3NoYWRlcihwdHJfc2hhZGVyLCBDU19CVUZG
RVJDT1BZICk7CisJY3NfdHlwZSA9IGhhbmcgPyBDU19IQU5HIDogQ1NfQlVGRkVSQ09QWTsKKwly
ID0gYW1kZ3B1X2Rpc3BhdGNoX2xvYWRfY3Nfc2hhZGVyKHB0cl9zaGFkZXIsIGNzX3R5cGUpOwog
CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKIAogCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChk
ZXZpY2VfaGFuZGxlLCBib19kc3Rfc2l6ZSwgNDA5NiwKQEAgLTI0MjMsMTQgKzI0MzksMjEgQEAg
c3RhdGljIHZvaWQgYW1kZ3B1X21lbWNweV9kaXNwYXRjaF90ZXN0KGFtZGdwdV9kZXZpY2VfaGFu
ZGxlIGRldmljZV9oYW5kbGUsCiAJciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMoJmZl
bmNlX3N0YXR1cywKIAkJCQkJIEFNREdQVV9USU1FT1VUX0lORklOSVRFLAogCQkJCQkgMCwgJmV4
cGlyZWQpOwotCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKLQlDVV9BU1NFUlRfRVFVQUwoZXhwaXJl
ZCwgdHJ1ZSk7CiAKLQkvKiB2ZXJpZnkgaWYgbWVtY3B5IHRlc3QgcmVzdWx0IG1lZXRzIHdpdGgg
ZXhwZWN0ZWQgKi8KLQlpID0gMDsKLQl3aGlsZShpIDwgYm9fZHN0X3NpemUpIHsKLQkJQ1VfQVNT
RVJUX0VRVUFMKHB0cl9kc3RbaV0sIHB0cl9zcmNbaV0pOwotCQlpKys7CisJaWYgKCFoYW5nKSB7
CisJCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwkJQ1VfQVNTRVJUX0VRVUFMKGV4cGlyZWQsIHRy
dWUpOworCisJCS8qIHZlcmlmeSBpZiBtZW1jcHkgdGVzdCByZXN1bHQgbWVldHMgd2l0aCBleHBl
Y3RlZCAqLworCQlpID0gMDsKKwkJd2hpbGUoaSA8IGJvX2RzdF9zaXplKSB7CisJCQlDVV9BU1NF
UlRfRVFVQUwocHRyX2RzdFtpXSwgcHRyX3NyY1tpXSk7CisJCQlpKys7CisJCX0KKwl9IGVsc2Ug
eworCQlyID0gYW1kZ3B1X2NzX3F1ZXJ5X3Jlc2V0X3N0YXRlKGNvbnRleHRfaGFuZGxlLCAmaGFu
Z19zdGF0ZSwgJmhhbmdzKTsKKwkJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCQlDVV9BU1NFUlRf
RVFVQUwoaGFuZ19zdGF0ZSwgQU1ER1BVX0NUWF9VTktOT1dOX1JFU0VUKTsKIAl9CiAKIAlyID0g
YW1kZ3B1X2JvX2xpc3RfZGVzdHJveShib19saXN0KTsKQEAgLTI0NjQsNyArMjQ4Nyw3IEBAIHN0
YXRpYyB2b2lkIGFtZGdwdV9jb21wdXRlX2Rpc3BhdGNoX3Rlc3Qodm9pZCkKIAogCWZvciAocmlu
Z19pZCA9IDA7ICgxIDw8IHJpbmdfaWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7IHJpbmdfaWQr
KykgewogCQlhbWRncHVfbWVtc2V0X2Rpc3BhdGNoX3Rlc3QoZGV2aWNlX2hhbmRsZSwgQU1ER1BV
X0hXX0lQX0NPTVBVVEUsIHJpbmdfaWQpOwotCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3Qo
ZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0NPTVBVVEUsIHJpbmdfaWQpOworCQlhbWRncHVf
bWVtY3B5X2Rpc3BhdGNoX3Rlc3QoZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0NPTVBVVEUs
IHJpbmdfaWQsIDApOwogCX0KIH0KIApAQCAtMjQ4MSw3ICsyNTA0LDI1IEBAIHN0YXRpYyB2b2lk
IGFtZGdwdV9nZnhfZGlzcGF0Y2hfdGVzdCh2b2lkKQogCiAJZm9yIChyaW5nX2lkID0gMDsgKDEg
PDwgcmluZ19pZCkgJiBpbmZvLmF2YWlsYWJsZV9yaW5nczsgcmluZ19pZCsrKSB7CiAJCWFtZGdw
dV9tZW1zZXRfZGlzcGF0Y2hfdGVzdChkZXZpY2VfaGFuZGxlLCBBTURHUFVfSFdfSVBfR0ZYLCBy
aW5nX2lkKTsKLQkJYW1kZ3B1X21lbWNweV9kaXNwYXRjaF90ZXN0KGRldmljZV9oYW5kbGUsIEFN
REdQVV9IV19JUF9HRlgsIHJpbmdfaWQpOworCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3Qo
ZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0dGWCwgcmluZ19pZCwgMCk7CisJfQorfQorCit2
b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZp
Y2VfaGFuZGxlLCB1aW50MzJfdCBpcF90eXBlKQoreworCWludCByOworCXN0cnVjdCBkcm1fYW1k
Z3B1X2luZm9faHdfaXAgaW5mbzsKKwl1aW50MzJfdCByaW5nX2lkOworCisJciA9IGFtZGdwdV9x
dWVyeV9od19pcF9pbmZvKGRldmljZV9oYW5kbGUsIGlwX3R5cGUsIDAsICZpbmZvKTsKKwlDVV9B
U1NFUlRfRVFVQUwociwgMCk7CisJaWYgKCFpbmZvLmF2YWlsYWJsZV9yaW5ncykKKwkJcHJpbnRm
KCJTS0lQIC4uLiBhcyB0aGVyZSdzIG5vIHJpbmcgZm9yIGlwICVkXG4iLCBpcF90eXBlKTsKKwor
CWZvciAocmluZ19pZCA9IDA7ICgxIDw8IHJpbmdfaWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7
IHJpbmdfaWQrKykgeworCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3QoZGV2aWNlX2hhbmRs
ZSwgaXBfdHlwZSwgcmluZ19pZCwgMCk7CisJCWFtZGdwdV9tZW1jcHlfZGlzcGF0Y2hfdGVzdChk
ZXZpY2VfaGFuZGxlLCBpcF90eXBlLCByaW5nX2lkLCAxKTsKKwkJYW1kZ3B1X21lbWNweV9kaXNw
YXRjaF90ZXN0KGRldmljZV9oYW5kbGUsIGlwX3R5cGUsIHJpbmdfaWQsIDApOwogCX0KIH0KIApk
aWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUv
ZGVhZGxvY2tfdGVzdHMuYwppbmRleCA5MTM2OGMxNS4uNThmOTNiNTAgMTAwNjQ0Ci0tLSBhL3Rl
c3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9kZWFkbG9ja190
ZXN0cy5jCkBAIC0xMTQsNiArMTE0LDggQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RlYWRsb2NrX2Nv
bXB1dGUodm9pZCk7CiBzdGF0aWMgdm9pZCBhbWRncHVfaWxsZWdhbF9yZWdfYWNjZXNzKCk7CiBz
dGF0aWMgdm9pZCBhbWRncHVfaWxsZWdhbF9tZW1fYWNjZXNzKCk7CiBzdGF0aWMgdm9pZCBhbWRn
cHVfZGVhZGxvY2tfc2RtYSh2b2lkKTsKK3N0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5n
X2dmeCh2b2lkKTsKK3N0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2NvbXB1dGUodm9p
ZCk7CiAKIENVX0JPT0wgc3VpdGVfZGVhZGxvY2tfdGVzdHNfZW5hYmxlKHZvaWQpCiB7CkBAIC0x
NzgsNiArMTgwLDggQEAgQ1VfVGVzdEluZm8gZGVhZGxvY2tfdGVzdHNbXSA9IHsKIAl7ICJzZG1h
IHJpbmcgYmxvY2sgdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBhbWRncHVf
ZGVhZGxvY2tfc2RtYSB9LAogCXsgImlsbGVnYWwgcmVnIGFjY2VzcyB0ZXN0IiwgYW1kZ3B1X2ls
bGVnYWxfcmVnX2FjY2VzcyB9LAogCXsgImlsbGVnYWwgbWVtIGFjY2VzcyB0ZXN0IChzZXQgYW1k
Z3B1LnZtX2ZhdWx0X3N0b3A9MikiLCBhbWRncHVfaWxsZWdhbF9tZW1fYWNjZXNzIH0sCisJeyAi
Z2Z4IHJpbmcgYmFkIGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVvdXQ9NTAp
IiwgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfZ2Z4IH0sCisJeyAiY29tcHV0ZSByaW5nIGJhZCBkaXNw
YXRjaCB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwLDUwKSIsIGFtZGdwdV9kaXNw
YXRjaF9oYW5nX2NvbXB1dGUgfSwKIAlDVV9URVNUX0lORk9fTlVMTCwKIH07CiAKQEAgLTQ3OCwz
ICs0ODIsMTMgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2lsbGVnYWxfbWVtX2FjY2VzcygpCiB7CiAJ
YmFkX2FjY2Vzc19oZWxwZXIoMCk7CiB9CisKK3N0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9o
YW5nX2dmeCh2b2lkKQoreworCWFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihkZXZpY2VfaGFu
ZGxlLCBBTURHUFVfSFdfSVBfR0ZYKTsKK30KKworc3RhdGljIHZvaWQgYW1kZ3B1X2Rpc3BhdGNo
X2hhbmdfY29tcHV0ZSh2b2lkKQoreworCWFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihkZXZp
Y2VfaGFuZGxlLCBBTURHUFVfSFdfSVBfQ09NUFVURSk7Cit9CmNvbW1pdCA2NzAxN2VhMDdlOGYx
ZTAyN2NhYzFhZGQ5ODc2ZDZiZTRlMjdiNGI5CkF1dGhvcjogRmxvcmEgQ3VpIDxmbG9yYS5jdWlA
YW1kLmNvbT4KRGF0ZTogICBGcmkgTm92IDE1IDE2OjMyOjE0IDIwMTkgKzA4MDAKCiAgICB0ZXN0
cy9hbWRncHU6IHVwZGF0ZSBkcmF3IHRlc3QgZm9yIGdmeDkKICAgIAogICAgU2lnbmVkLW9mZi1i
eTogRmxvcmEgQ3VpIDxmbG9yYS5jdWlAYW1kLmNvbT4KICAgIFJldmlld2VkLWJ5OiBNYXJlayBP
bMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29tPgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9i
YXNpY190ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKaW5kZXggOTc4ZjgxZTgu
LmIyNDY4MjEyIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYworKysgYi90
ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYwpAQCAtNDYxLDcgKzQ2MSw3IEBAIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBjYWNoZWRfY21kX2dmeDlbXSA9IHsKIAkweGMwMDE2OTAwLCAweDAsIDB4MCwg
MHhjMDAyNjkwMCwgMHgzLCAweDJhLCAweDAsCiAJMHhjMDA0NjkwMCwgMHhhLCAweDAsIDB4MCwg
MHgwLCAweDIwMDAyMCwKIAkweGMwMDE2OTAwLCAweDgzLCAweGZmZmYsIDB4YzAwMjY5MDAsIDB4
OGUsIDB4ZiwgMHhmLAotCTB4YzAwNTY5MDAsIDB4MTA1LCAweDAsIDB4MCwgIDB4MCwgMHgwLCAw
eDFhLAorCTB4YzAwNTY5MDAsIDB4MTA1LCAweDAsIDB4MCwgIDB4MCwgMHgwLCAweDEyLAogCTB4
YzAwMjY5MDAsIDB4MTBiLCAweDAsIDB4MCwgMHhjMDAxNjkwMCwgMHgxZTAsIDB4MCwKIAkweGMw
MDM2OTAwLCAweDIwMCwgMHgwLCAweDEwMDAwLCAweGNjMDAxMSwKIAkweGMwMDI2OTAwLCAweDI5
MiwgMHgyMCwgMHg2MDIwMWI4LApjb21taXQgZDkzODU2ZmU4MmRiZWZhZTA0NjkyODk3ZmIwOGZj
ZGIxY2Q1M2NhYwpBdXRob3I6IGNoYW5nemh1IDxDaGFuZ2ZlbmcuWmh1QGFtZC5jb20+CkRhdGU6
ICAgTW9uIE5vdiA0IDExOjQ4OjE5IDIwMTkgKzA4MDAKCiAgICB0ZXN0cy9hbWRncHU6IGVuYWJs
ZSBkaXNwYXRjaC9kcmF3IHRlc3RzIGZvciBSZW5vaXIKICAgIAogICAgSXQgY2FuIHJ1biBkaXNw
YXRjaC9kcmF3IHRlc3RzIG9uIG5ldyByZW5vaXIgY2hpcHMuIFNvIGl0IG5lZWRzIHRvCiAgICBl
bmFibGUgZGlzcGF0Y2gvZHJhdyB0ZXN0cyBmb3IgUmVub2lyIGFnYWluLgogICAgCiAgICBDaGFu
Z2UtSWQ6IEkzYTcyYTRiYmZlMGZjNjYzZWUwZTNlNThkOGU5YzMwNGY1MTNlNTY4CiAgICBTaWdu
ZWQtb2ZmLWJ5OiBjaGFuZ3podSA8Q2hhbmdmZW5nLlpodUBhbWQuY29tPgogICAgUmV2aWV3ZWQt
Ynk6IEZsb3JhIEN1aSA8ZmxvcmEuY3VpQGFtZC5jb20+CiAgICBSZXZpZXdlZC1ieTogTWFyZWsg
T2zFocOhayA8bWFyZWsub2xzYWtAYW1kLmNvbT4KICAgIFJldmlld2VkLWJ5OiBIdWFuZyBSdWkg
PHJheS5odWFuZ0BhbWQuY29tPgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0
cy5jIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKaW5kZXggMGY0YWE1ZGIuLjk3OGY4MWU4
IDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYworKysgYi90ZXN0cy9hbWRn
cHUvYmFzaWNfdGVzdHMuYwpAQCAtMjg2OSw3ICsyODY5LDcgQEAgdm9pZCBhbWRncHVfbWVtc2V0
X2RyYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwKIAlyZXNvdXJjZXNbMV0g
PSBib19zaGFkZXJfcHM7CiAJcmVzb3VyY2VzWzJdID0gYm9fc2hhZGVyX3ZzOwogCXJlc291cmNl
c1szXSA9IGJvX2NtZDsKLQlyID0gYW1kZ3B1X2JvX2xpc3RfY3JlYXRlKGRldmljZV9oYW5kbGUs
IDMsIHJlc291cmNlcywgTlVMTCwgJmJvX2xpc3QpOworCXIgPSBhbWRncHVfYm9fbGlzdF9jcmVh
dGUoZGV2aWNlX2hhbmRsZSwgNCwgcmVzb3VyY2VzLCBOVUxMLCAmYm9fbGlzdCk7CiAJQ1VfQVNT
RVJUX0VRVUFMKHIsIDApOwogCiAJaWJfaW5mby5pYl9tY19hZGRyZXNzID0gbWNfYWRkcmVzc19j
bWQ7CgoKLS0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
RHJpLXBhdGNoZXMgbWFpbGluZyBsaXN0CkRyaS1wYXRjaGVzQGxpc3RzLnNvdXJjZWZvcmdlLm5l
dApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9kcmktcGF0Y2hl
cwo=