drm: Branch 'master' - 4 commits

[email protected] (GitLab Mirror) Mon, 16 Sep 2019 12:58:13 +0000 (UTC)
Newsgroups gmane.comp.video.dri.patches
Message-ID <[email protected]>
IGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICB8ICAgMTggLS0KIGRhdGEvYW1kZ3B1X3Jhcy5qc29u
ICAgICB8ICAyNjcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIG1l
c29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgIDEgCiB0ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0g
fCAgICA1IAogdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkIHwgICAxNiAtLQogdGVzdHMvYW1kZ3B1
L3Jhc190ZXN0cy5jIHwgIDMwNSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgNDk2IGRlbGV0
aW9ucygtKQoKTmV3IGNvbW1pdHM6CmNvbW1pdCBjNTE4MDlmYTY3NGIzZGIxZGUwMzI1NDg1Zjlk
OTNmNmJkYmMyYzYyCkF1dGhvcjogR3VjaHVuIENoZW4gPGd1Y2h1bi5jaGVuQGFtZC5jb20+CkRh
dGU6ICAgV2VkIEF1ZyAyOCAxODoyNTo0MyAyMDE5ICswODAwCgogICAgYW1kZ3B1OiBhZGQgcmFz
IGZlYXR1cmUgY2FwYWJpbGl0eSBjaGVjayBpbiBpbmplY3QgdGVzdAogICAgCiAgICBXaGVuIHJ1
bm5pbmcgcmFzIGluamVjdCB0ZXN0LCBpdCdzIG5lZWRlZCB0byBiZSBhbGlnbmVkCiAgICB3aXRo
IGtlcm5lbCdzIHJhcyBlbmFibGVtZW50LgogICAgCiAgICBBY2tlZC1ieTogQ2hyaXN0aWFuIEvD
tm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgogICAgUmV2aWV3ZWQtYnk6IFRhbyBaaG91
IDx0YW8uemhvdTFAYW1kLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1Y2h1biBDaGVuIDxndWNo
dW4uY2hlbkBhbWQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5k
ZXIuZGV1Y2hlckBhbWQuY29tPgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9yYXNfdGVzdHMu
YyBiL3Rlc3RzL2FtZGdwdS9yYXNfdGVzdHMuYwppbmRleCBkNTEwYjY0NC4uYzFjNTQzYzEgMTAw
NjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9yYXNfdGVzdHMuYworKysgYi90ZXN0cy9hbWRncHUvcmFz
X3Rlc3RzLmMKQEAgLTg2MSw2ICs4NjEsMTAgQEAgc3RhdGljIHZvaWQgX19hbWRncHVfcmFzX2lw
X2luamVjdF90ZXN0KGNvbnN0IHN0cnVjdCByYXNfaW5qZWN0X3Rlc3RfY29uZmlnICppcF8KIAkJ
aWYgKGJsb2NrID09IEFSUkFZX1NJWkUocmFzX2Jsb2NrX3N0cmluZykpCiAJCQlicmVhazsKIAor
CQkvKiBFbnN1cmUgUkFTIGZlYXR1cmUgZm9yIHRoZSBJUCBibG9jayBpcyBlbmFibGVkIGJ5IGtl
cm5lbCAqLworCQlpZiAoYW1kZ3B1X3Jhc19pc19mZWF0dXJlX3N1cHBvcnRlZChibG9jaykgPD0g
MCkKKwkJCWJyZWFrOworCiAJCXJldCA9IGFtZGdwdV9yYXNfcXVlcnlfZXJyX2NvdW50KGJsb2Nr
LCAmb2xkX3VlLCAmb2xkX2NlKTsKIAkJQ1VfQVNTRVJUX0VRVUFMKHJldCwgMCk7CiAJCWlmIChy
ZXQpCmNvbW1pdCA1OGZjNmQ2ZWFlMTg0NGEwODBlNmI0N2QxMThhOWE3ZDdkYzcyMjY4CkF1dGhv
cjogR3VjaHVuIENoZW4gPGd1Y2h1bi5jaGVuQGFtZC5jb20+CkRhdGU6ICAgVHVlIEF1ZyAyNyAx
Nzo0MjoxNCAyMDE5ICswODAwCgogICAgYW1kZ3B1OiBhZGQgcmFzIGluamVjdCB1bml0IHRlc3QK
ICAgIAogICAgQm90aCBVTUMgYW5kIEdGWCByYXMgc2luZ2xlX2NvcnJlY3RhYmxlCiAgICBpbmpl
Y3QgdGVzdHMgYXJlIGFkZGVkLgogICAgCiAgICBBY2tlZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8
Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgogICAgUmV2aWV3ZWQtYnk6IFRhbyBaaG91IDx0YW8u
emhvdTFAYW1kLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1Y2h1biBDaGVuIDxndWNodW4uY2hl
bkBhbWQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1
Y2hlckBhbWQuY29tPgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9yYXNfdGVzdHMuYyBiL3Rl
c3RzL2FtZGdwdS9yYXNfdGVzdHMuYwppbmRleCA4NmI0MTM3Yi4uZDUxMGI2NDQgMTAwNjQ0Ci0t
LSBhL3Rlc3RzL2FtZGdwdS9yYXNfdGVzdHMuYworKysgYi90ZXN0cy9hbWRncHUvcmFzX3Rlc3Rz
LmMKQEAgLTMwLDcgKzMwLDggQEAKICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHN0ZGlv
Lmg+CiAjaW5jbHVkZSAieGY4NmRybS5oIgotI2luY2x1ZGUgInN0ZGxpYi5oIgorCisjZGVmaW5l
IEFSUkFZX1NJWkUoYSkgKHNpemVvZihhKSAvIHNpemVvZigoYSlbMF0pKQogCiBjb25zdCBjaGFy
ICpyYXNfYmxvY2tfc3RyaW5nW10gPSB7CiAJInVtYyIsCkBAIC0zMTEsMTEgKzMxMiwxMCBAQCBl
bnVtIGFtZGdwdV9yYXNfZXJyb3JfdHlwZSB7CiAJQU1ER1BVX1JBU19FUlJPUl9fUE9JU09OCQkJ
CT0gOCwKIH07CiAKLXN0cnVjdCByYXNfdGVzdF9pdGVtIHsKK3N0cnVjdCByYXNfaW5qZWN0X3Rl
c3RfY29uZmlnIHsKIAljaGFyIG5hbWVbNjRdOwotCWludCBibG9jazsKKwljaGFyIGJsb2NrWzMy
XTsKIAlpbnQgc3ViX2Jsb2NrOwotCWNoYXIgZXJyb3JfdHlwZV9zdHJbNjRdOwogCWVudW0gYW1k
Z3B1X3Jhc19lcnJvcl90eXBlIHR5cGU7CiAJdWludDY0X3QgYWRkcmVzczsKIAl1aW50NjRfdCB2
YWx1ZTsKQEAgLTM5MCwxMiArMzkwLDc4IEBAIHN0cnVjdCByYXNfRElEX3Rlc3RfbWFza3sKIAlE
RUZBVUxUX1JBU19CTE9DS19NQVNLX0JBU0lDXAogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IHJh
c19pbmplY3RfdGVzdF9jb25maWcgdW1jX3Jhc19pbmplY3RfdGVzdFtdID0geworCXsicmFzX3Vt
Yy4xLjAiLCAidW1jIiwgMCwgQU1ER1BVX1JBU19FUlJPUl9fU0lOR0xFX0NPUlJFQ1RBQkxFLCAw
LCAwfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmFzX2luamVjdF90ZXN0X2NvbmZpZyBn
ZnhfcmFzX2luamVjdF90ZXN0W10gPSB7CisJeyJyYXNfZ2Z4LjIuMCIsICJnZngiLCBBTURHUFVf
UkFTX0JMT0NLX19HRlhfQ1BDX1VDT0RFLAorCQlBTURHUFVfUkFTX0VSUk9SX19TSU5HTEVfQ09S
UkVDVEFCTEUsIDAsIDB9LAorCXsicmFzX2dmeC4yLjEiLCAiZ2Z4IiwgQU1ER1BVX1JBU19CTE9D
S19fR0ZYX0NQRl9UQUcsCisJCUFNREdQVV9SQVNfRVJST1JfX1NJTkdMRV9DT1JSRUNUQUJMRSwg
MCwgMH0sCisJeyJyYXNfZ2Z4LjIuMiIsICJnZngiLCBBTURHUFVfUkFTX0JMT0NLX19HRlhfQ1BH
X1RBRywKKwkJQU1ER1BVX1JBU19FUlJPUl9fU0lOR0xFX0NPUlJFQ1RBQkxFLCAwLCAwfSwKKwl7
InJhc19nZnguMi4zIiwgImdmeCIsIEFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUV9MRFNfRCwKKwkJ
QU1ER1BVX1JBU19FUlJPUl9fU0lOR0xFX0NPUlJFQ1RBQkxFLCAwLCAwfSwKKwl7InJhc19nZngu
Mi40IiwgImdmeCIsIEFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfREFUQV9DVTFfVVRDTDFfTEZJ
Rk8sCisJCUFNREdQVV9SQVNfRVJST1JfX1NJTkdMRV9DT1JSRUNUQUJMRSwgMCwgMH0sCisJeyJy
YXNfZ2Z4LjIuNSIsICJnZngiLCBBTURHUFVfUkFTX0JMT0NLX19HRlhfU1FDX0lOU1RfQkFOS0Ff
VEFHX1JBTSwKKwkJQU1ER1BVX1JBU19FUlJPUl9fU0lOR0xFX0NPUlJFQ1RBQkxFLCAwLCAwfSwK
Kwl7InJhc19nZnguMi42IiwgImdmeCIsIEFNREdQVV9SQVNfQkxPQ0tfX0dGWF9TUUNfSU5TVF9C
QU5LQl9UQUdfUkFNLAorCQlBTURHUFVfUkFTX0VSUk9SX19TSU5HTEVfQ09SUkVDVEFCTEUsIDAs
IDB9LAorCXsicmFzX2dmeC4yLjciLCAiZ2Z4IiwgQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RBX0ZT
X0RGSUZPLAorCQlBTURHUFVfUkFTX0VSUk9SX19TSU5HTEVfQ09SUkVDVEFCTEUsIDAsIDB9LAor
CXsicmFzX2dmeC4yLjgiLCAiZ2Z4IiwgQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19DQUNIRV9E
QVRBLAorCQlBTURHUFVfUkFTX0VSUk9SX19TSU5HTEVfQ09SUkVDVEFCTEUsIDAsIDB9LAorCXsi
cmFzX2dmeC4yLjkiLCAiZ2Z4IiwgQU1ER1BVX1JBU19CTE9DS19fR0ZYX1RDQ19DQUNIRV9EQVRB
X0JBTktfMF8xLAorCQlBTURHUFVfUkFTX0VSUk9SX19TSU5HTEVfQ09SUkVDVEFCTEUsIDAsIDB9
LAorCXsicmFzX2dmeC4yLjEwIiwgImdmeCIsIEFNREdQVV9SQVNfQkxPQ0tfX0dGWF9UQ0NfQ0FD
SEVfREFUQV9CQU5LXzFfMCwKKwkJQU1ER1BVX1JBU19FUlJPUl9fU0lOR0xFX0NPUlJFQ1RBQkxF
LCAwLCAwfSwKKwl7InJhc19nZnguMi4xMSIsICJnZngiLCBBTURHUFVfUkFTX0JMT0NLX19HRlhf
VENDX0NBQ0hFX0RBVEFfQkFOS18xXzEsCisJCUFNREdQVV9SQVNfRVJST1JfX1NJTkdMRV9DT1JS
RUNUQUJMRSwgMCwgMH0sCisJeyJyYXNfZ2Z4LjIuMTIiLCAiZ2Z4IiwgQU1ER1BVX1JBU19CTE9D
S19fR0ZYX1RDUF9DQUNIRV9SQU0sCisJCUFNREdQVV9SQVNfRVJST1JfX1NJTkdMRV9DT1JSRUNU
QUJMRSwgMCwgMH0sCisJeyJyYXNfZ2Z4LjIuMTMiLCAiZ2Z4IiwgQU1ER1BVX1JBU19CTE9DS19f
R0ZYX1REX1NTX0ZJRk9fTE8sCisJCUFNREdQVV9SQVNfRVJST1JfX1NJTkdMRV9DT1JSRUNUQUJM
RSwgMCwgMH0sCisJeyJyYXNfZ2Z4LjIuMTQiLCAiZ2Z4IiwgQU1ER1BVX1JBU19CTE9DS19fR0ZY
X0VBX0RSQU1SRF9DTURNRU0sCisJCUFNREdQVV9SQVNfRVJST1JfX1NJTkdMRV9DT1JSRUNUQUJM
RSwgMCwgMH0sCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJhc19ESURfdGVzdF9tYXNrIHJh
c19ESURfYXJyYXlbXSA9IHsKIAl7MHg2NmExLCAweDAwLCBSQVNfQkxPQ0tfTUFTS19BTEx9LAog
CXsweDY2YTEsIDB4MDEsIFJBU19CTE9DS19NQVNLX0FMTH0sCiAJezB4NjZhMSwgMHgwNCwgUkFT
X0JMT0NLX01BU0tfQUxMfSwKIH07CiAKK3N0YXRpYyB1aW50MzJfdCBhbWRncHVfcmFzX2ZpbmRf
YmxvY2tfaWRfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKQoreworCWludCBpOworCisJZm9yIChp
ID0gMDsgaSA8IEFSUkFZX1NJWkUocmFzX2Jsb2NrX3N0cmluZyk7IGkrKykgeworCQlpZiAoc3Ry
Y21wKG5hbWUsIHJhc19ibG9ja19zdHJpbmdbaV0pID09IDApCisJCQlyZXR1cm4gaTsKKwl9CisK
KwlyZXR1cm4gQVJSQVlfU0laRShyYXNfYmxvY2tfc3RyaW5nKTsKK30KKworc3RhdGljIGNoYXIg
KmFtZGdwdV9yYXNfZ2V0X2Vycm9yX3R5cGVfaWQoZW51bSBhbWRncHVfcmFzX2Vycm9yX3R5cGUg
dHlwZSkKK3sKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIEFNREdQVV9SQVNfRVJST1JfX1BBUklU
WToKKwkJcmV0dXJuICJwYXJpdHkiOworCWNhc2UgQU1ER1BVX1JBU19FUlJPUl9fU0lOR0xFX0NP
UlJFQ1RBQkxFOgorCQlyZXR1cm4gInNpbmdsZV9jb3JyZWN0YWJsZSI7CisJY2FzZSBBTURHUFVf
UkFTX0VSUk9SX19NVUxUSV9VTkNPUlJFQ1RBQkxFOgorCQlyZXR1cm4gIm11bHRpX3VuY29ycmVj
dGFibGUiOworCWNhc2UgQU1ER1BVX1JBU19FUlJPUl9fUE9JU09OOgorCQlyZXR1cm4gInBvaXNv
biI7CisJY2FzZSBBTURHUFVfUkFTX0VSUk9SX19OT05FOgorCWRlZmF1bHQ6CisJCXJldHVybiBO
VUxMOworCX0KK30KKwogc3RhdGljIHN0cnVjdCByYXNfdGVzdF9tYXNrIGFtZGdwdV9yYXNfZ2V0
X3Rlc3RfbWFzayhkcm1EZXZpY2VQdHIgZGV2aWNlKQogewogCWludCBpOwpAQCAtNzc1LDQzICs4
NDEsMzYgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3Jhc19lbmFibGVfdGVzdCh2b2lkKQogCX0KIH0K
IAotc3RhdGljIGludCBhbWRncHVfcmFzX2dldF90ZXN0X2l0ZW1zKHN0cnVjdCByYXNfdGVzdF9p
dGVtICoqcGl0ZW1zLCBpbnQgKnNpemUpCitzdGF0aWMgdm9pZCBfX2FtZGdwdV9yYXNfaXBfaW5q
ZWN0X3Rlc3QoY29uc3Qgc3RydWN0IHJhc19pbmplY3RfdGVzdF9jb25maWcgKmlwX3Rlc3QsCisJ
CQkJCXVpbnQzMl90IHNpemUpCiB7Ci0JKnBpdGVtcyA9IE5VTEw7Ci0JKnNpemUgPSAwOwotCi0J
cmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fYW1kZ3B1X3Jhc19pbmplY3RfdGVzdCh2b2lk
KQotewotCXN0cnVjdCByYXNfdGVzdF9pdGVtICppdGVtcyA9IE5VTEw7Ci0JaW50IGksIHNpemU7
Ci0JaW50IHJldDsKKwlpbnQgaSwgcmV0OwogCXVuc2lnbmVkIGxvbmcgb2xkX3VlLCBvbGRfY2U7
CiAJdW5zaWduZWQgbG9uZyB1ZSwgY2U7CisJdWludDMyX3QgYmxvY2s7CiAJaW50IHRpbWVvdXQ7
CiAJYm9vbCBwYXNzOwogCi0JcmV0ID0gYW1kZ3B1X3Jhc19nZXRfdGVzdF9pdGVtcygmaXRlbXMs
ICZzaXplKTsKLQlDVV9BU1NFUlRfRVFVQUwocmV0LCAwKTsKLQlpZiAocmV0KQotCQlnb3RvIG1l
bV9mcmVlOwotCi0JcHJpbnRmKCIuLi5cbiIpOwogCWZvciAoaSA9IDA7IGkgPCBzaXplOyBpKysp
IHsKIAkJdGltZW91dCA9IDM7CiAJCXBhc3MgPSBmYWxzZTsKIAotCQlyZXQgPSBhbWRncHVfcmFz
X3F1ZXJ5X2Vycl9jb3VudChpdGVtc1tpXS5ibG9jaywgJm9sZF91ZSwKLQkJCQkJCSAmb2xkX2Nl
KTsKKwkJYmxvY2sgPSBhbWRncHVfcmFzX2ZpbmRfYmxvY2tfaWRfYnlfbmFtZShpcF90ZXN0W2ld
LmJsb2NrKTsKKworCQkvKiBFbnN1cmUgb25lIHZhbGlkIGlwIGJsb2NrICovCisJCWlmIChibG9j
ayA9PSBBUlJBWV9TSVpFKHJhc19ibG9ja19zdHJpbmcpKQorCQkJYnJlYWs7CisKKwkJcmV0ID0g
YW1kZ3B1X3Jhc19xdWVyeV9lcnJfY291bnQoYmxvY2ssICZvbGRfdWUsICZvbGRfY2UpOwogCQlD
VV9BU1NFUlRfRVFVQUwocmV0LCAwKTsKIAkJaWYgKHJldCkKIAkJCWJyZWFrOwogCi0JCXJldCA9
IGFtZGdwdV9yYXNfaW5qZWN0KGl0ZW1zW2ldLmJsb2NrLCBpdGVtc1tpXS5zdWJfYmxvY2ssCi0J
CQkJCWl0ZW1zW2ldLnR5cGUsIGl0ZW1zW2ldLmFkZHJlc3MsCi0JCQkJCWl0ZW1zW2ldLnZhbHVl
KTsKKwkJcmV0ID0gYW1kZ3B1X3Jhc19pbmplY3QoYmxvY2ssCisJCQkJCWlwX3Rlc3RbaV0uc3Vi
X2Jsb2NrLAorCQkJCQlpcF90ZXN0W2ldLnR5cGUsCisJCQkJCWlwX3Rlc3RbaV0uYWRkcmVzcywK
KwkJCQkJaXBfdGVzdFtpXS52YWx1ZSk7CiAJCUNVX0FTU0VSVF9FUVVBTChyZXQsIDApOwogCQlp
ZiAocmV0KQogCQkJYnJlYWs7CkBAIC04MTksOCArODc4LDcgQEAgc3RhdGljIHZvaWQgX19hbWRn
cHVfcmFzX2luamVjdF90ZXN0KHZvaWQpCiAJCXdoaWxlICh0aW1lb3V0ID4gMCkgewogCQkJc2xl
ZXAoNSk7CiAKLQkJCXJldCA9IGFtZGdwdV9yYXNfcXVlcnlfZXJyX2NvdW50KGl0ZW1zW2ldLmJs
b2NrLCAmdWUsCi0JCQkJCQkJICZjZSk7CisJCQlyZXQgPSBhbWRncHVfcmFzX3F1ZXJ5X2Vycl9j
b3VudChibG9jaywgJnVlLCAmY2UpOwogCQkJQ1VfQVNTRVJUX0VRVUFMKHJldCwgMCk7CiAJCQlp
ZiAocmV0KQogCQkJCWJyZWFrOwpAQCAtODMyLDE2ICs4OTAsMjggQEAgc3RhdGljIHZvaWQgX19h
bWRncHVfcmFzX2luamVjdF90ZXN0KHZvaWQpCiAJCQl9CiAJCQl0aW1lb3V0IC09IDE7CiAJCX0K
LQkJcHJpbnRmKCJcdCBUZXN0ICVzQCVzLCBhZGRyZXNzICVsZCwgdmFsdWUgJWxkOiAlc1xuIiwK
LQkJCWl0ZW1zW2ldLm5hbWUsIGl0ZW1zW2ldLmVycm9yX3R5cGVfc3RyLCBpdGVtc1tpXS5hZGRy
ZXNzLAotCQkJaXRlbXNbaV0udmFsdWUsCXBhc3MgPyAiUGFzcyIgOiAiRmFpbCIpOworCQlwcmlu
dGYoIlx0IFRlc3QgJXNAYmxvY2sgJXMsIHN1YmJsb2NrICVkLCBlcnJvcl90eXBlICVzLCBhZGRy
ZXNzICVsZCwgdmFsdWUgJWxkOiAlc1xuIiwKKwkJCWlwX3Rlc3RbaV0ubmFtZSwKKwkJCWlwX3Rl
c3RbaV0uYmxvY2ssCisJCQlpcF90ZXN0W2ldLnN1Yl9ibG9jaywKKwkJCWFtZGdwdV9yYXNfZ2V0
X2Vycm9yX3R5cGVfaWQoaXBfdGVzdFtpXS50eXBlKSwKKwkJCWlwX3Rlc3RbaV0uYWRkcmVzcywK
KwkJCWlwX3Rlc3RbaV0udmFsdWUsCisJCQlwYXNzID8gIlBhc3MiIDogIkZhaWwiKTsKIAl9Cit9
CiAKLW1lbV9mcmVlOgotCWlmIChpdGVtcykgewotCQlmcmVlKGl0ZW1zKTsKLQkJaXRlbXMgPSBO
VUxMOwotCX0KK3N0YXRpYyB2b2lkIF9fYW1kZ3B1X3Jhc19pbmplY3RfdGVzdCh2b2lkKQorewor
CXByaW50ZigiLi4uXG4iKTsKKworCS8qIHJ1biBVTUMgcmFzIGluamVjdCB0ZXN0ICovCisJX19h
bWRncHVfcmFzX2lwX2luamVjdF90ZXN0KHVtY19yYXNfaW5qZWN0X3Rlc3QsCisJCUFSUkFZX1NJ
WkUodW1jX3Jhc19pbmplY3RfdGVzdCkpOworCisJLyogcnVuIEdGWCByYXMgaW5qZWN0IHRlc3Qg
Ki8KKwlfX2FtZGdwdV9yYXNfaXBfaW5qZWN0X3Rlc3QoZ2Z4X3Jhc19pbmplY3RfdGVzdCwKKwkJ
QVJSQVlfU0laRShnZnhfcmFzX2luamVjdF90ZXN0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFtZGdw
dV9yYXNfaW5qZWN0X3Rlc3Qodm9pZCkKY29tbWl0IDAxODE2OWJmYmFiMjgxYzcwMDU5NjAyOTI1
ZDQ5ZGUzODUyYTQ3YzIKQXV0aG9yOiBHdWNodW4gQ2hlbiA8Z3VjaHVuLmNoZW5AYW1kLmNvbT4K
RGF0ZTogICBUdWUgQXVnIDI3IDEwOjQ0OjE4IDIwMTkgKzA4MDAKCiAgICBhbWRncHU6IGRlbGV0
ZSB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZQogICAgCiAgICBKc29uIHBhY2thZ2UgZGVwZW5kZW5j
ZSBpcyByZW1vdmVkIGZyb20gYW1kZ3B1X3Rlc3QsCiAgICBzbyB0aGlzIGpzb24gY29uZmlndXJh
dGlvbiBmaWxlIGlzIG5vdCBuZWVkZWQgYW55IG1vcmUuCiAgICAKICAgIFN1Z2dlc3RlZC1ieTog
Q2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgogICAgQWNrZWQtYnk6
IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KICAgIFJldmlld2Vk
LWJ5OiBUYW8gWmhvdSA8dGFvLnpob3UxQGFtZC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWNo
dW4gQ2hlbiA8Z3VjaHVuLmNoZW5AYW1kLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFsZXggRGV1
Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KCmRpZmYgLS1naXQgYS9kYXRhL2FtZGdw
dV9yYXMuanNvbiBiL2RhdGEvYW1kZ3B1X3Jhcy5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyNmZkOTQ2NS4uMDAwMDAwMDAKLS0tIGEvZGF0YS9hbWRncHVfcmFzLmpzb24KKysr
IC9kZXYvbnVsbApAQCAtMSwyNjcgKzAsMCBAQAotewotICAgICJ2ZXJzaW9uIjogIjAuMC4xIiwK
LSAgICAiYmxvY2siOiB7Ci0gICAgICAgICJ1bWMiOiB7Ci0gICAgICAgICAgICAiaW5kZXgiOiAw
Ci0gICAgICAgIH0sCi0gICAgICAgICJnZngiOiB7Ci0gICAgICAgICAgICAiaW5kZXgiOiAyLAot
ICAgICAgICAgICAgInN1YmJsb2NrIjogewotICAgICAgICAgICAgICAgICJnZnhfY3BjX3NjcmF0
Y2giOiAwLAotICAgICAgICAgICAgICAgICJnZnhfY3BjX3Vjb2RlIjogMSwKLSAgICAgICAgICAg
ICAgICAiZ2Z4X2RjX3N0YXRlX21lMSI6IDIsCi0gICAgICAgICAgICAgICAgImdmeF9kY19jc2lu
dm9jX21lMSI6IDMsCi0gICAgICAgICAgICAgICAgImdmeF9kY19yZXN0b3JlX21lMSI6IDQsCi0g
ICAgICAgICAgICAgICAgImdmeF9kY19zdGF0ZV9tZTIiOiA1LAotICAgICAgICAgICAgICAgICJn
ZnhfZGNfY3NpbnZvY19tZTIiOiA2LAotICAgICAgICAgICAgICAgICJnZnhfZGNfcmVzdG9yZV9t
ZTIiOiA3LAotICAgICAgICAgICAgICAgICJnZnhfY3BmX3JvcV9tZTIiOiA4LAotICAgICAgICAg
ICAgICAgICJnZnhfY3BmX3JvcV9tZTEiOiA5LAotICAgICAgICAgICAgICAgICJnZnhfY3BmX3Rh
ZyI6IDEwLAotICAgICAgICAgICAgICAgICJnZnhfY3BnX2RtYV9yb3EiOiAxMSwKLSAgICAgICAg
ICAgICAgICAiZ2Z4X2NwZ19kbWFfdGFnIjogMTIsCi0gICAgICAgICAgICAgICAgImdmeF9jcGdf
dGFnIjogMTMsCi0gICAgICAgICAgICAgICAgImdmeF9nZHNfbWVtIjogMTQsCi0gICAgICAgICAg
ICAgICAgImdmeF9nZHNfaW5wdXRfcXVldWUiOiAxNSwKLSAgICAgICAgICAgICAgICAiZ2Z4X2dk
c19vYV9waHlfY21kX3JhbV9tZW0iOiAxNiwKLSAgICAgICAgICAgICAgICAiZ2Z4X2dkc19vYV9w
aHlfZGF0YV9yYW1fbWVtIjogMTcsCi0gICAgICAgICAgICAgICAgImdmeF9nZHNfb2FfcGlwZV9t
ZW0iOiAxOCwKLSAgICAgICAgICAgICAgICAiZ2Z4X3NwaV9zcl9tZW0iOiAxOSwKLSAgICAgICAg
ICAgICAgICAiZ2Z4X3NxX3NncHIiOiAyMCwKLSAgICAgICAgICAgICAgICAiZ2Z4X3NxX2xkc19k
IjogMjEsCi0gICAgICAgICAgICAgICAgImdmeF9zcV9sZHNfaSI6IDIyLAotICAgICAgICAgICAg
ICAgICJnZnhfc3FfdmdwciI6IDIzLAotICAgICAgICAgICAgICAgICJnZnhfc3FjX2luc3RfdXRj
bDFfbGZpZm8iOiAyNCwKLSAgICAgICAgICAgICAgICAiZ2Z4X3NxY19kYXRhX2N1MF93cml0ZV9k
YXRhX2J1ZiI6IDI1LAotICAgICAgICAgICAgICAgICJnZnhfc3FjX2RhdGFfY3UwX3V0Y2wxX2xm
aWZvIjogMjYsCi0gICAgICAgICAgICAgICAgImdmeF9zcWNfZGF0YV9jdTFfd3JpdGVfZGF0YV9i
dWYiOiAyNywKLSAgICAgICAgICAgICAgICAiZ2Z4X3NxY19kYXRhX2N1MV91dGNsMV9sZmlmbyI6
IDI4LAotICAgICAgICAgICAgICAgICJnZnhfc3FjX2RhdGFfY3UyX3dyaXRlX2RhdGFfYnVmIjog
MjksCi0gICAgICAgICAgICAgICAgImdmeF9zcWNfZGF0YV9jdTJfdXRjbDFfbGZpZm8iOiAzMCwK
LSAgICAgICAgICAgICAgICAiZ2Z4X3NxY19pbnN0X2JhbmthX3RhZ19yYW0iOiAzMSwKLSAgICAg
ICAgICAgICAgICAiZ2Z4X3NxY19pbnN0X2JhbmthX3V0Y2wxX21pc3NfZmlmbyI6IDMyLAotICAg
ICAgICAgICAgICAgICJnZnhfc3FjX2luc3RfYmFua2FfbWlzc19maWZvIjogMzMsCi0gICAgICAg
ICAgICAgICAgImdmeF9zcWNfaW5zdF9iYW5rYV9iYW5rX3JhbSI6IDM0LAotICAgICAgICAgICAg
ICAgICJnZnhfc3FjX2RhdGFfYmFua2FfdGFnX3JhbSI6IDM1LAotICAgICAgICAgICAgICAgICJn
Znhfc3FjX2RhdGFfYmFua2FfaGl0X2ZpZm8iOiAzNiwKLSAgICAgICAgICAgICAgICAiZ2Z4X3Nx
Y19kYXRhX2JhbmthX21pc3NfZmlmbyI6IDM3LAotICAgICAgICAgICAgICAgICJnZnhfc3FjX2Rh
dGFfYmFua2FfZGlydHlfYml0X3JhbSI6IDM4LAotICAgICAgICAgICAgICAgICJnZnhfc3FjX2Rh
dGFfYmFua2FfYmFua19yYW0iOiAzOSwKLSAgICAgICAgICAgICAgICAiZ2Z4X3NxY19pbnN0X2Jh
bmtiX3RhZ19yYW0iOiA0MCwKLSAgICAgICAgICAgICAgICAiZ2Z4X3NxY19pbnN0X2JhbmtiX3V0
Y2wxX21pc3NfZmlmbyI6IDQxLAotICAgICAgICAgICAgICAgICJnZnhfc3FjX2luc3RfYmFua2Jf
bWlzc19maWZvIjogNDIsCi0gICAgICAgICAgICAgICAgImdmeF9zcWNfaW5zdF9iYW5rYl9iYW5r
X3JhbSI6IDQzLAotICAgICAgICAgICAgICAgICJnZnhfc3FjX2RhdGFfYmFua2JfdGFnX3JhbSI6
IDQ0LAotICAgICAgICAgICAgICAgICJnZnhfc3FjX2RhdGFfYmFua2JfaGl0X2ZpZm8iOiA0NSwK
LSAgICAgICAgICAgICAgICAiZ2Z4X3NxY19kYXRhX2JhbmtiX21pc3NfZmlmbyI6IDQ2LAotICAg
ICAgICAgICAgICAgICJnZnhfc3FjX2RhdGFfYmFua2JfZGlydHlfYml0X3JhbSI6IDQ3LAotICAg
ICAgICAgICAgICAgICJnZnhfc3FjX2RhdGFfYmFua2JfYmFua19yYW0iOiA0OCwKLSAgICAgICAg
ICAgICAgICAiZ2Z4X3RhX2ZzX2RmaWZvIjogNDksCi0gICAgICAgICAgICAgICAgImdmeF90YV9m
c19hZmlmbyI6IDUwLAotICAgICAgICAgICAgICAgICJnZnhfdGFfZmxfbGZpZm8iOiA1MSwKLSAg
ICAgICAgICAgICAgICAiZ2Z4X3RhX2Z4X2xmaWZvIjogNTIsCi0gICAgICAgICAgICAgICAgImdm
eF90YV9mc19jZmlmbyI6IDUzLAotICAgICAgICAgICAgICAgICJnZnhfdGNhX2hvbGVfZmlmbyI6
IDU0LAotICAgICAgICAgICAgICAgICJnZnhfdGNhX3JlcV9maWZvIjogNTUsCi0gICAgICAgICAg
ICAgICAgImdmeF90Y2NfY2FjaGVfZGF0YSI6IDU2LAotICAgICAgICAgICAgICAgICJnZnhfdGNj
X2NhY2hlX2RhdGFfYmFua18wXzEiOiA1NywKLSAgICAgICAgICAgICAgICAiZ2Z4X3RjY19jYWNo
ZV9kYXRhX2JhbmtfMV8wIjogNTgsCi0gICAgICAgICAgICAgICAgImdmeF90Y2NfY2FjaGVfZGF0
YV9iYW5rXzFfMSI6IDU5LAotICAgICAgICAgICAgICAgICJnZnhfdGNjX2NhY2hlX2RpcnR5X2Jh
bmtfMCI6IDYwLAotICAgICAgICAgICAgICAgICJnZnhfdGNjX2NhY2hlX2RpcnR5X2JhbmtfMSI6
IDYxLAotICAgICAgICAgICAgICAgICJnZnhfdGNjX2hpZ2hfcmF0ZV90YWciOiA2MiwKLSAgICAg
ICAgICAgICAgICAiZ2Z4X3RjY19sb3dfcmF0ZV90YWciOiA2MywKLSAgICAgICAgICAgICAgICAi
Z2Z4X3RjY19pbl91c2VfZGVjIjogNjQsCi0gICAgICAgICAgICAgICAgImdmeF90Y2NfaW5fdXNl
X3RyYW5zZmVyIjogNjUsCi0gICAgICAgICAgICAgICAgImdmeF90Y2NfcmV0dXJuX2RhdGEiOiA2
NiwKLSAgICAgICAgICAgICAgICAiZ2Z4X3RjY19yZXR1cm5fY29udHJvbCI6IDY3LAotICAgICAg
ICAgICAgICAgICJnZnhfdGNjX3VjX2F0b21pY19maWZvIjogNjgsCi0gICAgICAgICAgICAgICAg
ImdmeF90Y2Nfd3JpdGVfcmV0dXJuIjogNjksCi0gICAgICAgICAgICAgICAgImdmeF90Y2Nfd3Jp
dGVfY2FjaGVfcmVhZCI6IDcwLAotICAgICAgICAgICAgICAgICJnZnhfdGNjX3NyY19maWZvIjog
NzEsCi0gICAgICAgICAgICAgICAgImdmeF90Y2Nfc3JjX2ZpZm9fbmV4dF9yYW0iOiA3MiwKLSAg
ICAgICAgICAgICAgICAiZ2Z4X3RjY19jYWNoZV90YWdfcHJvYmVfZmlmbyI6IDczLAotICAgICAg
ICAgICAgICAgICJnZnhfdGNjX2xhdGVuY3lfZmlmbyI6IDc0LAotICAgICAgICAgICAgICAgICJn
ZnhfdGNjX2xhdGVuY3lfZmlmb19uZXh0X3JhbSI6IDc1LAotICAgICAgICAgICAgICAgICJnZnhf
dGNjX3dycmV0X3RhZ193cml0ZV9yZXR1cm4iOiA3NiwKLSAgICAgICAgICAgICAgICAiZ2Z4X3Rj
Y19hdG9taWNfcmV0dXJuX2J1ZmZlciI6IDc3LAotICAgICAgICAgICAgICAgICJnZnhfdGNpX3dy
aXRlX3JhbSI6IDc4LAotICAgICAgICAgICAgICAgICJnZnhfdGNwX2NhY2hlX3JhbSI6IDc5LAot
ICAgICAgICAgICAgICAgICJnZnhfdGNwX2xmaWZvX3JhbSI6IDgwLAotICAgICAgICAgICAgICAg
ICJnZnhfdGNwX2NtZF9maWZvIjogODEsCi0gICAgICAgICAgICAgICAgImdmeF90Y3Bfdm1fZmlm
byI6IDgyLAotICAgICAgICAgICAgICAgICJnZnhfdGNwX2RiX3JhbSI6IDgzLAotICAgICAgICAg
ICAgICAgICJnZnhfdGNwX3V0Y2wxX2xmaWZvMCI6IDg0LAotICAgICAgICAgICAgICAgICJnZnhf
dGNwX3V0Y2wxX2xmaWZvMSI6IDg1LAotICAgICAgICAgICAgICAgICJnZnhfdGRfc3NfZmlmb19s
byI6IDg2LAotICAgICAgICAgICAgICAgICJnZnhfdGRfc3NfZmlmb19oaSI6IDg3LAotICAgICAg
ICAgICAgICAgICJnZnhfdGRfY3NfZmlmbyI6IDg4LAotICAgICAgICAgICAgICAgICJnZnhfZWFf
ZHJhbXJkX2NtZG1lbSI6IDg5LAotICAgICAgICAgICAgICAgICJnZnhfZWFfZHJhbXdyX2NtZG1l
bSI6IDkwLAotICAgICAgICAgICAgICAgICJnZnhfZWFfZHJhbXdyX2RhdGFtZW0iOiA5MSwKLSAg
ICAgICAgICAgICAgICAiZ2Z4X2VhX3JyZXRfdGFnbWVtIjogOTIsCi0gICAgICAgICAgICAgICAg
ImdmeF9lYV93cmV0X3RhZ21lbSI6IDkzLAotICAgICAgICAgICAgICAgICJnZnhfZWFfZ21pcmRf
Y21kbWVtIjogOTQsCi0gICAgICAgICAgICAgICAgImdmeF9lYV9nbWl3cl9jbWRtZW0iOiA5NSwK
LSAgICAgICAgICAgICAgICAiZ2Z4X2VhX2dtaXdyX2RhdGFtZW0iOiA5NiwKLSAgICAgICAgICAg
ICAgICAiZ2Z4X2VhX2RyYW1yZF9wYWdlbWVtIjogOTcsCi0gICAgICAgICAgICAgICAgImdmeF9l
YV9kcmFtd3JfcGFnZW1lbSI6IDk4LAotICAgICAgICAgICAgICAgICJnZnhfZWFfaW9yZF9jbWRt
ZW0iOiA5OSwKLSAgICAgICAgICAgICAgICAiZ2Z4X2VhX2lvd3JfY21kbWVtIjogMTAwLAotICAg
ICAgICAgICAgICAgICJnZnhfZWFfaW93cl9kYXRhbWVtIjogMTAxLAotICAgICAgICAgICAgICAg
ICJnZnhfZWFfZ21pcmRfcGFnZW1lbSI6IDEwMiwKLSAgICAgICAgICAgICAgICAiZ2Z4X2VhX2dt
aXdyX3BhZ2VtZW0iOiAxMDMsCi0gICAgICAgICAgICAgICAgImdmeF9lYV9tYW1fZDBtZW0iOiAx
MDQsCi0gICAgICAgICAgICAgICAgImdmeF9lYV9tYW1fZDFtZW0iOiAxMDUsCi0gICAgICAgICAg
ICAgICAgImdmeF9lYV9tYW1fZDJtZW0iOiAxMDYsCi0gICAgICAgICAgICAgICAgImdmeF9lYV9t
YW1fZDNtZW0iOiAxMDcsCi0gICAgICAgICAgICAgICAgInV0Y192bWwyX2JhbmtfY2FjaGUiOiAx
MDgsCi0gICAgICAgICAgICAgICAgInV0Y192bWwyX3dhbGtlciI6IDEwOSwKLSAgICAgICAgICAg
ICAgICAidXRjX2F0Y2wyX2NhY2hlXzJtX2JhbmsiOiAxMTAsCi0gICAgICAgICAgICAgICAgInV0
Y19hdGNsMl9jYWNoZV80a19iYW5rIjogMTExCi0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0g
ICAgfSwKLSAgICAidHlwZSI6IHsKLSAgICAgICAgInBhcml0eSI6IDEsCi0gICAgICAgICJzaW5n
bGVfY29ycmVjdGFibGUiOiAyLAotICAgICAgICAibXVsdGlfdW5jb3JyZWN0YWJsZSI6IDQsCi0g
ICAgICAgICJwb2lzb24iOiA4Ci0gICAgfSwKLSAgICAidGVzdHMiOiBbCi0gICAgICAgIHsKLSAg
ICAgICAgICAgICJuYW1lIjogInJhc191bWMuMS4wIiwKLSAgICAgICAgICAgICJibG9jayI6ICJ1
bWMiLAotICAgICAgICAgICAgInR5cGUiOiAic2luZ2xlX2NvcnJlY3RhYmxlIiwKLSAgICAgICAg
ICAgICJhZGRyZXNzIjogMCwKLSAgICAgICAgICAgICJ2YWx1ZSI6IDAKLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicmFzX3VtYy4xLjAiLAotICAgICAgICAgICAg
ImJsb2NrIjogInVtYyIsCi0gICAgICAgICAgICAidHlwZSI6ICJtdWx0aV91bmNvcnJlY3RhYmxl
IiwKLSAgICAgICAgICAgICJhZGRyZXNzIjogMCwKLSAgICAgICAgICAgICJ2YWx1ZSI6IDAKLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicmFzX2dmeC4yLjEiLAot
ICAgICAgICAgICAgImJsb2NrIjogImdmeCIsCi0gICAgICAgICAgICAic3ViYmxvY2siOiAiZ2Z4
X2NwY191Y29kZSIsCi0gICAgICAgICAgICAidHlwZSI6ICJzaW5nbGVfY29ycmVjdGFibGUiLAot
ICAgICAgICAgICAgImFkZHJlc3MiOiAwLAotICAgICAgICAgICAgInZhbHVlIjogMAotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJyYXNfZ2Z4LjIuMTAiLAotICAg
ICAgICAgICAgImJsb2NrIjogImdmeCIsCi0gICAgICAgICAgICAic3ViYmxvY2siOiAiZ2Z4X2Nw
Zl90YWciLAotICAgICAgICAgICAgInR5cGUiOiAic2luZ2xlX2NvcnJlY3RhYmxlIiwKLSAgICAg
ICAgICAgICJhZGRyZXNzIjogMCwKLSAgICAgICAgICAgICJ2YWx1ZSI6IDAKLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicmFzX2dmeC4yLjEzIiwKLSAgICAgICAg
ICAgICJibG9jayI6ICJnZngiLAotICAgICAgICAgICAgInN1YmJsb2NrIjogImdmeF9jcGdfdGFn
IiwKLSAgICAgICAgICAgICJ0eXBlIjogInNpbmdsZV9jb3JyZWN0YWJsZSIsCi0gICAgICAgICAg
ICAiYWRkcmVzcyI6IDAsCi0gICAgICAgICAgICAidmFsdWUiOiAwCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInJhc19nZnguMi4yMSIsCi0gICAgICAgICAgICAi
YmxvY2siOiAiZ2Z4IiwKLSAgICAgICAgICAgICJzdWJibG9jayI6ICJnZnhfc3FfbGRzX2QiLAot
ICAgICAgICAgICAgInR5cGUiOiAic2luZ2xlX2NvcnJlY3RhYmxlIiwKLSAgICAgICAgICAgICJh
ZGRyZXNzIjogMCwKLSAgICAgICAgICAgICJ2YWx1ZSI6IDAKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgIm5hbWUiOiAicmFzX2dmeC4yLjI4IiwKLSAgICAgICAgICAgICJibG9j
ayI6ICJnZngiLAotICAgICAgICAgICAgInN1YmJsb2NrIjogImdmeF9zcWNfZGF0YV9jdTFfdXRj
bDFfbGZpZm8iLAotICAgICAgICAgICAgInR5cGUiOiAic2luZ2xlX2NvcnJlY3RhYmxlIiwKLSAg
ICAgICAgICAgICJhZGRyZXNzIjogMCwKLSAgICAgICAgICAgICJ2YWx1ZSI6IDAKLSAgICAgICAg
fSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicmFzX2dmeC4yLjMxIiwKLSAgICAg
ICAgICAgICJibG9jayI6ICJnZngiLAotICAgICAgICAgICAgInN1YmJsb2NrIjogImdmeF9zcWNf
aW5zdF9iYW5rYV90YWdfcmFtIiwKLSAgICAgICAgICAgICJ0eXBlIjogInNpbmdsZV9jb3JyZWN0
YWJsZSIsCi0gICAgICAgICAgICAiYWRkcmVzcyI6IDAsCi0gICAgICAgICAgICAidmFsdWUiOiAw
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInJhc19nZnguMi40
MCIsCi0gICAgICAgICAgICAiYmxvY2siOiAiZ2Z4IiwKLSAgICAgICAgICAgICJzdWJibG9jayI6
ICJnZnhfc3FjX2luc3RfYmFua2JfdGFnX3JhbSIsCi0gICAgICAgICAgICAidHlwZSI6ICJzaW5n
bGVfY29ycmVjdGFibGUiLAotICAgICAgICAgICAgImFkZHJlc3MiOiAwLAotICAgICAgICAgICAg
InZhbHVlIjogMAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJy
YXNfZ2Z4LjIuNDkiLAotICAgICAgICAgICAgImJsb2NrIjogImdmeCIsCi0gICAgICAgICAgICAi
c3ViYmxvY2siOiAiZ2Z4X3RhX2ZzX2RmaWZvIiwKLSAgICAgICAgICAgICJ0eXBlIjogInNpbmds
ZV9jb3JyZWN0YWJsZSIsCi0gICAgICAgICAgICAiYWRkcmVzcyI6IDAsCi0gICAgICAgICAgICAi
dmFsdWUiOiAwCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInJh
c19nZnguMi41NiIsCi0gICAgICAgICAgICAiYmxvY2siOiAiZ2Z4IiwKLSAgICAgICAgICAgICJz
dWJibG9jayI6ICJnZnhfdGNjX2NhY2hlX2RhdGEiLAotICAgICAgICAgICAgInR5cGUiOiAic2lu
Z2xlX2NvcnJlY3RhYmxlIiwKLSAgICAgICAgICAgICJhZGRyZXNzIjogMCwKLSAgICAgICAgICAg
ICJ2YWx1ZSI6IDAKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAi
cmFzX2dmeC4yLjU3IiwKLSAgICAgICAgICAgICJibG9jayI6ICJnZngiLAotICAgICAgICAgICAg
InN1YmJsb2NrIjogImdmeF90Y2NfY2FjaGVfZGF0YV9iYW5rXzBfMSIsCi0gICAgICAgICAgICAi
dHlwZSI6ICJzaW5nbGVfY29ycmVjdGFibGUiLAotICAgICAgICAgICAgImFkZHJlc3MiOiAwLAot
ICAgICAgICAgICAgInZhbHVlIjogMAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICAibmFtZSI6ICJyYXNfZ2Z4LjIuNTgiLAotICAgICAgICAgICAgImJsb2NrIjogImdmeCIsCi0g
ICAgICAgICAgICAic3ViYmxvY2siOiAiZ2Z4X3RjY19jYWNoZV9kYXRhX2JhbmtfMV8wIiwKLSAg
ICAgICAgICAgICJ0eXBlIjogInNpbmdsZV9jb3JyZWN0YWJsZSIsCi0gICAgICAgICAgICAiYWRk
cmVzcyI6IDAsCi0gICAgICAgICAgICAidmFsdWUiOiAwCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAgICJuYW1lIjogInJhc19nZnguMi41OSIsCi0gICAgICAgICAgICAiYmxvY2si
OiAiZ2Z4IiwKLSAgICAgICAgICAgICJzdWJibG9jayI6ICJnZnhfdGNjX2NhY2hlX2RhdGFfYmFu
a18xXzEiLAotICAgICAgICAgICAgInR5cGUiOiAic2luZ2xlX2NvcnJlY3RhYmxlIiwKLSAgICAg
ICAgICAgICJhZGRyZXNzIjogMCwKLSAgICAgICAgICAgICJ2YWx1ZSI6IDAKLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicmFzX2dmeC4yLjc5IiwKLSAgICAgICAg
ICAgICJibG9jayI6ICJnZngiLAotICAgICAgICAgICAgInN1YmJsb2NrIjogImdmeF90Y3BfY2Fj
aGVfcmFtIiwKLSAgICAgICAgICAgICJ0eXBlIjogInNpbmdsZV9jb3JyZWN0YWJsZSIsCi0gICAg
ICAgICAgICAiYWRkcmVzcyI6IDAsCi0gICAgICAgICAgICAidmFsdWUiOiAwCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInJhc19nZnguMi44NiIsCi0gICAgICAg
ICAgICAiYmxvY2siOiAiZ2Z4IiwKLSAgICAgICAgICAgICJzdWJibG9jayI6ICJnZnhfdGRfc3Nf
Zmlmb19sbyIsCi0gICAgICAgICAgICAidHlwZSI6ICJzaW5nbGVfY29ycmVjdGFibGUiLAotICAg
ICAgICAgICAgImFkZHJlc3MiOiAwLAotICAgICAgICAgICAgInZhbHVlIjogMAotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJyYXNfZ2Z4LjIuODkiLAotICAgICAg
ICAgICAgImJsb2NrIjogImdmeCIsCi0gICAgICAgICAgICAic3ViYmxvY2siOiAiZ2Z4X2VhX2Ry
YW1yZF9jbWRtZW0iLAotICAgICAgICAgICAgInR5cGUiOiAic2luZ2xlX2NvcnJlY3RhYmxlIiwK
LSAgICAgICAgICAgICJhZGRyZXNzIjogMCwKLSAgICAgICAgICAgICJ2YWx1ZSI6IDAKLSAgICAg
ICAgfSwKLSAgICBdCi19CmNvbW1pdCBjYjYzN2JjMTdiZWNmNjA5MzQ5ZDZhMDlhZmQyNmFhZWVi
YzE0NGVkCkF1dGhvcjogR3VjaHVuIENoZW4gPGd1Y2h1bi5jaGVuQGFtZC5jb20+CkRhdGU6ICAg
VHVlIEF1ZyAyNyAxMDoyNzoxOCAyMDE5ICswODAwCgogICAgYW1kZ3B1OiByZW1vdmUganNvbiBw
YWNrYWdlIGRlcGVuZGVuY2UKICAgIAogICAgRXhjZXB0IENVbml0IGxpYnJhcnksIG5vIGFkZGl0
aW9uYWwgZXh0ZXJuYWwKICAgIGxpYnJhcnkgc2hvdWxkIGJlIG5lZWRlZCB3aGVuIGNvbXBpbGlu
ZyBhbWRncHVfdGVzdC4KICAgIFRoaXMgd2lsbCBrZWVwIHRoaXMgYmluYXJ5IHNlbGYgY29udGFp
bmluZy4KICAgIAogICAgU3VnZ2VzdGVkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4u
a29lbmlnQGFtZC5jb20+CiAgICBBY2tlZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFu
LmtvZW5pZ0BhbWQuY29tPgogICAgUmV2aWV3ZWQtYnk6IFRhbyBaaG91IDx0YW8uemhvdTFAYW1k
LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1Y2h1biBDaGVuIDxndWNodW4uY2hlbkBhbWQuY29t
PgogICAgU2lnbmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQu
Y29tPgoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA5ODNi
NDM3MS4uMWNmOTEzNDcgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUu
YWMKQEAgLTQzMCwyNCArNDMwLDEwIEBAIGlmIHRlc3QgIngkQU1ER1BVIiAhPSB4bm87IHRoZW4K
IAkJCUFDX1NVQlNUKFtDVU5JVF9DRkxBR1NdKQogCQlmaQogCWZpCi0KLQkjIERldGVjdCBqc29u
LWMgbGlicmFyeQotCVBLR19DSEVDS19NT0RVTEVTKFtKU09OQ10sIFtqc29uLWMgPj0gMC4xMC4x
XSwgW2hhdmVfanNvbmM9eWVzXSwgW2hhdmVfanNvbmM9bm9dKQotCWlmIHRlc3QgIngke2hhdmVf
anNvbmN9IiA9ICJ4bm8iOyB0aGVuCi0JCUFDX0NIRUNLX0xJQihbanNvbi1jXSwgW2pzb25fb2Jq
ZWN0X29iamVjdF9nZXRdLCBbaGF2ZV9qc29uYz15ZXNdLCBbaGF2ZV9qc29uYz1ub10pCi0JCWlm
IHRlc3QgIngke2hhdmVfanNvbmN9IiA9ICJ4eWVzIjsgdGhlbgotCQkJSlNPTkNfTElCUz0iLWxq
c29uLWMiCi0JCQlKU09OQ19DRkxBR1M9IiIKLQkJCUFDX1NVQlNUKFtKU09OQ19MSUJTXSkKLQkJ
CUFDX1NVQlNUKFtKU09OQ19DRkxBR1NdKQotCQlmaQotCWZpCiBlbHNlCiAJaGF2ZV9jdW5pdD1u
bwotCWhhdmVfanNvbmM9bm8KIGZpCiBBTV9DT05ESVRJT05BTChIQVZFX0NVTklULCBbdGVzdCAi
eCRoYXZlX2N1bml0IiAhPSAieG5vIl0pCi1BTV9DT05ESVRJT05BTChIQVZFX0pTT05DLCBbdGVz
dCAieCRoYXZlX2pzb25jIiAhPSAieG5vIl0pCiAKIEFNX0NPTkRJVElPTkFMKEhBVkVfQU1ER1BV
LCBbdGVzdCAieCRBTURHUFUiID0geHllc10pCiBpZiB0ZXN0ICJ4JEFNREdQVSIgPSB4eWVzOyB0
aGVuCkBAIC00NTYsMTAgKzQ0Miw2IEBAIGlmIHRlc3QgIngkQU1ER1BVIiA9IHh5ZXM7IHRoZW4K
IAlpZiB0ZXN0ICJ4JGhhdmVfY3VuaXQiID0gInhubyI7IHRoZW4KIAkJQUNfTVNHX1dBUk4oW0Nv
dWxkIG5vdCBmaW5kIGN1bml0IGxpYnJhcnkuIERpc2FibGluZyBhbWRncHUgdGVzdHNdKQogCWZp
Ci0KLQlpZiB0ZXN0ICJ4JGhhdmVfanNvbmMiID0gInhubyI7IHRoZW4KLQkJQUNfTVNHX1dBUk4o
W0NvdWxkIG5vdCBmaW5kIGpzb24tYyBsaWJyYXJ5LiBEaXNhYmxpbmcgYW1kZ3B1IHRlc3RzXSkK
LQlmaQogZWxzZQogCUFDX0RFRklORShIQVZFX0FNREdQVSwgMCkKIGZpCmRpZmYgLS1naXQgYS9t
ZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IDI2M2Y2OTFhLi45OWZkMGNiOCAxMDA2NDQK
LS0tIGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQKQEAgLTIyMiw3ICsyMjIsNiBAQCBs
aWJkcm1fY19hcmdzID0gd2Fybl9jX2FyZ3MgKyBbJy1mdmlzaWJpbGl0eT1oaWRkZW4nXQogCiBk
ZXBfcGNpYWNjZXNzID0gZGVwZW5kZW5jeSgncGNpYWNjZXNzJywgdmVyc2lvbiA6ICc+PSAwLjEw
JywgcmVxdWlyZWQgOiB3aXRoX2ludGVsKQogZGVwX2N1bml0ID0gZGVwZW5kZW5jeSgnY3VuaXQn
LCB2ZXJzaW9uIDogJz49IDIuMScsIHJlcXVpcmVkIDogZmFsc2UpCi1kZXBfanNvbiA9IGRlcGVu
ZGVuY3koJ2pzb24tYycsIHZlcnNpb24gOiAnPj0gMC4xMC4xJywgcmVxdWlyZWQgOiBmYWxzZSkK
IF9jYWlyb190ZXN0cyA9IGdldF9vcHRpb24oJ2NhaXJvLXRlc3RzJykKIGlmIF9jYWlyb190ZXN0
cyAhPSAnZmFsc2UnCiAgIGRlcF9jYWlybyA9IGRlcGVuZGVuY3koJ2NhaXJvJywgcmVxdWlyZWQg
OiBfY2Fpcm9fdGVzdHMgPT0gJ3RydWUnKQpkaWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L01ha2Vm
aWxlLmFtIGIvdGVzdHMvYW1kZ3B1L01ha2VmaWxlLmFtCmluZGV4IDMzOWJiMGE5Li45MjA4ODJk
MCAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L01ha2VmaWxlLmFtCisrKyBiL3Rlc3RzL2FtZGdw
dS9NYWtlZmlsZS5hbQpAQCAtNyw4ICs3LDcgQEAgQU1fQ0ZMQUdTID0gXAogCiBMREFERCA9ICQo
dG9wX2J1aWxkZGlyKS9saWJkcm0ubGEgXAogCSQodG9wX2J1aWxkZGlyKS9hbWRncHUvbGliZHJt
X2FtZGdwdS5sYSBcCi0JJChDVU5JVF9MSUJTKSBcCi0JJChKU09OQ19MSUJTKQorCSQoQ1VOSVRf
TElCUykKIAogaWYgSEFWRV9JTlNUQUxMX1RFU1RTCiBiaW5fUFJPR1JBTVMgPSBcCkBAIC0xOCw3
ICsxNyw3IEBAIG5vaW5zdF9QUk9HUkFNUyA9IFwKIAlhbWRncHVfdGVzdAogZW5kaWYKIAotYW1k
Z3B1X3Rlc3RfQ1BQRkxBR1MgPSAkKENVTklUX0NGTEFHUykgJChKU09OQ19DRkxBR1MpCithbWRn
cHVfdGVzdF9DUFBGTEFHUyA9ICQoQ1VOSVRfQ0ZMQUdTKQogCiBhbWRncHVfdGVzdF9TT1VSQ0VT
ID0gXAogCWFtZGdwdV90ZXN0LmMgXApkaWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L21lc29uLmJ1
aWxkIGIvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkCmluZGV4IDQzMDcyOTVlLi4xNzI2Y2I0MyAx
MDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkCisrKyBiL3Rlc3RzL2FtZGdwdS9t
ZXNvbi5idWlsZApAQCAtMTgsNyArMTgsNyBAQAogIyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX
SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogIyBT
T0ZUV0FSRS4KIAotaWYgZGVwX2N1bml0LmZvdW5kKCkgYW5kIGRlcF9qc29uLmZvdW5kKCkKK2lm
IGRlcF9jdW5pdC5mb3VuZCgpCiAgIGFtZGdwdV90ZXN0ID0gZXhlY3V0YWJsZSgKICAgICAnYW1k
Z3B1X3Rlc3QnLAogICAgIGZpbGVzKApAQCAtMjYsMTkgKzI2LDkgQEAgaWYgZGVwX2N1bml0LmZv
dW5kKCkgYW5kIGRlcF9qc29uLmZvdW5kKCkKICAgICAgICd2Y2VfdGVzdHMuYycsICd1dmRfZW5j
X3Rlc3RzLmMnLCAndmNuX3Rlc3RzLmMnLCAnZGVhZGxvY2tfdGVzdHMuYycsCiAgICAgICAndm1f
dGVzdHMuYycsICdyYXNfdGVzdHMuYycsICdzeW5jb2JqX3Rlc3RzLmMnLAogICAgICksCi0gICAg
ZGVwZW5kZW5jaWVzIDogW2RlcF9jdW5pdCwgZGVwX2pzb24sIGRlcF90aHJlYWRzXSwKKyAgICBk
ZXBlbmRlbmNpZXMgOiBbZGVwX2N1bml0LCBkZXBfdGhyZWFkc10sCiAgICAgaW5jbHVkZV9kaXJl
Y3RvcmllcyA6IFtpbmNfcm9vdCwgaW5jX2RybSwgaW5jbHVkZV9kaXJlY3RvcmllcygnLi4vLi4v
YW1kZ3B1JyldLAogICAgIGxpbmtfd2l0aCA6IFtsaWJkcm0sIGxpYmRybV9hbWRncHVdLAogICAg
IGluc3RhbGwgOiB3aXRoX2luc3RhbGxfdGVzdHMsCiAgICkKLQotICBjb25maWd1cmVfZmlsZShp
bnB1dCA6ICcuLi8uLi9kYXRhL2FtZGdwdV9yYXMuanNvbicsCi0gICAgb3V0cHV0IDogJ2FtZGdw
dV9yYXMuanNvbicsCi0gICAgY29uZmlndXJhdGlvbiA6IGNvbmZpZ3VyYXRpb25fZGF0YSgpKQot
Ci0gIGluc3RhbGxfZGF0YSgKLSAgICAnLi4vLi4vZGF0YS9hbWRncHVfcmFzLmpzb24nLAotICAg
IGluc3RhbGxfbW9kZSA6ICdydy1yLS1yLS0nLAotICAgIGluc3RhbGxfZGlyIDogZGF0YWRpcl9h
bWRncHUsCi0gICkKLWVuZGlmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZW5kaWYKZGlm
ZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9yYXNfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9yYXNfdGVz
dHMuYwppbmRleCA1MzA5YmY2NC4uODZiNDEzN2IgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9y
YXNfdGVzdHMuYworKysgYi90ZXN0cy9hbWRncHUvcmFzX3Rlc3RzLmMKQEAgLTMwLDcgKzMwLDcg
QEAKICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSAieGY4
NmRybS5oIgotI2luY2x1ZGUgImpzb24uaCIKKyNpbmNsdWRlICJzdGRsaWIuaCIKIAogY29uc3Qg
Y2hhciAqcmFzX2Jsb2NrX3N0cmluZ1tdID0gewogCSJ1bWMiLApAQCAtNzc1LDE2OSArNzc1LDEy
IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9yYXNfZW5hYmxlX3Rlc3Qodm9pZCkKIAl9CiB9CiAKLXN0
YXRpYyBpbnQgX2pzb25fZ2V0X2Jsb2NrX2lkKGpzb25fb2JqZWN0ICpibG9ja19vYmosIGNvbnN0
IGNoYXIgKm5hbWUpCi17Ci0JanNvbl9vYmplY3QgKml0ZW1fb2JqLCAqaW5kZXhfb2JqOwotCi0J
aWYgKCFqc29uX29iamVjdF9vYmplY3RfZ2V0X2V4KGJsb2NrX29iaiwgbmFtZSwgJml0ZW1fb2Jq
KSkKLQkJcmV0dXJuIC0xOwotCi0JaWYgKCFqc29uX29iamVjdF9vYmplY3RfZ2V0X2V4KGl0ZW1f
b2JqLCAiaW5kZXgiLCAmaW5kZXhfb2JqKSkKLQkJcmV0dXJuIC0xOwotCi0JcmV0dXJuIGpzb25f
b2JqZWN0X2dldF9pbnQoaW5kZXhfb2JqKTsKLX0KLQotc3RhdGljIGludCBfanNvbl9nZXRfc3Vi
YmxvY2tfaWQoanNvbl9vYmplY3QgKmJsb2NrX29iaiwgY29uc3QgY2hhciAqYmxvY2tfbmFtZSwK
LQkJCQkgY29uc3QgY2hhciAqc3ViYmxvY2tfbmFtZSkKLXsKLQlqc29uX29iamVjdCAqaXRlbV9v
YmosICpzdWJibG9ja19vYmosICpuYW1lX29iajsKLQotCWlmICghanNvbl9vYmplY3Rfb2JqZWN0
X2dldF9leChibG9ja19vYmosIGJsb2NrX25hbWUsICZpdGVtX29iaikpCi0JCXJldHVybiAtMTsK
LQotCWlmICghanNvbl9vYmplY3Rfb2JqZWN0X2dldF9leChpdGVtX29iaiwgInN1YmJsb2NrIiwg
JnN1YmJsb2NrX29iaikpCi0JCXJldHVybiAtMTsKLQotCWlmICghanNvbl9vYmplY3Rfb2JqZWN0
X2dldF9leChzdWJibG9ja19vYmosIHN1YmJsb2NrX25hbWUsICZuYW1lX29iaikpCi0JCXJldHVy
biAtMTsKLQotCXJldHVybiBqc29uX29iamVjdF9nZXRfaW50KG5hbWVfb2JqKTsKLX0KLQogc3Rh
dGljIGludCBhbWRncHVfcmFzX2dldF90ZXN0X2l0ZW1zKHN0cnVjdCByYXNfdGVzdF9pdGVtICoq
cGl0ZW1zLCBpbnQgKnNpemUpCiB7Ci0JanNvbl9vYmplY3QgKnJvb3Rfb2JqID0gTlVMTDsKLQlq
c29uX29iamVjdCAqYmxvY2tfb2JqID0gTlVMTDsKLQlqc29uX29iamVjdCAqdHlwZV9vYmogPSBO
VUxMOwotCWpzb25fb2JqZWN0ICp0ZXN0c19vYmogPSBOVUxMOwotCWpzb25fb2JqZWN0ICp0ZXN0
X29iaiA9IE5VTEw7Ci0JanNvbl9vYmplY3QgKnRtcF9vYmogPSBOVUxMOwotCWpzb25fb2JqZWN0
ICp0bXBfdHlwZV9vYmogPSBOVUxMOwotCWpzb25fb2JqZWN0ICpzdWJibG9ja19vYmogPSBOVUxM
OwotCWludCBpLCBsZW5ndGg7Ci0Jc3RydWN0IHJhc190ZXN0X2l0ZW0gKml0ZW1zID0gTlVMTDsK
LQlpbnQgcmV0ID0gLTE7Ci0KLQlyb290X29iaiA9IGpzb25fb2JqZWN0X2Zyb21fZmlsZSgiLi9h
bWRncHVfcmFzLmpzb24iKTsKLQlpZiAoIXJvb3Rfb2JqKQotCQlyb290X29iaiA9IGpzb25fb2Jq
ZWN0X2Zyb21fZmlsZSgKLQkJCSIvdXNyL3NoYXJlL2xpYmRybS9hbWRncHVfcmFzLmpzb24iKTsK
LQotCWlmICghcm9vdF9vYmopIHsKLQkJQ1VfRkFJTF9GQVRBTCgiQ291bGRuJ3QgZmluZCBhbWRn
cHVfcmFzLmpzb24iKTsKLQkJZ290byBwcm9fZW5kOwotCX0KLQotCS8qIENoZWNrIFZlcnNpb24g
Ki8KLQlpZiAoIWpzb25fb2JqZWN0X29iamVjdF9nZXRfZXgocm9vdF9vYmosICJ2ZXJzaW9uIiwg
JnRtcF9vYmopKSB7Ci0JCUNVX0ZBSUxfRkFUQUwoIldyb25nIGZvcm1hdCBvZiBhbWRncHVfcmFz
Lmpzb24iKTsKLQkJZ290byBwcm9fZW5kOwotCX0KKwkqcGl0ZW1zID0gTlVMTDsKKwkqc2l6ZSA9
IDA7CiAKLQkvKiBCbG9jayBEZWZpbml0aW9uICovCi0JaWYgKCFqc29uX29iamVjdF9vYmplY3Rf
Z2V0X2V4KHJvb3Rfb2JqLCAiYmxvY2siLCAmYmxvY2tfb2JqKSkgewotCQlmcHJpbnRmKHN0ZGVy
ciwgImJsb2NrIGlzbid0IGRlZmluZWRcbiIpOwotCQlnb3RvIHByb19lbmQ7Ci0JfQotCi0JLyog
VHlwZSBEZWZpbml0aW9uICovCi0JaWYgKCFqc29uX29iamVjdF9vYmplY3RfZ2V0X2V4KHJvb3Rf
b2JqLCAidHlwZSIsICZ0eXBlX29iaikpIHsKLQkJZnByaW50ZihzdGRlcnIsICJ0eXBlIGlzbid0
IGRlZmluZWRcbiIpOwotCQlnb3RvIHByb19lbmQ7Ci0JfQotCi0JLyogRW51bXVsYXRlIHRlc3Qg
aXRlbXMgKi8KLQlpZiAoIWpzb25fb2JqZWN0X29iamVjdF9nZXRfZXgocm9vdF9vYmosICJ0ZXN0
cyIsICZ0ZXN0c19vYmopKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAidGVzdHMgYXJlIGVtcHR5XG4i
KTsKLQkJZ290byBwcm9fZW5kOwotCX0KLQotCWxlbmd0aCA9IGpzb25fb2JqZWN0X2FycmF5X2xl
bmd0aCh0ZXN0c19vYmopOwotCi0JaXRlbXMgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCByYXNfdGVz
dF9pdGVtKSAqIGxlbmd0aCk7Ci0JaWYgKCFpdGVtcykgewotCQlmcHJpbnRmKHN0ZGVyciwgIm1h
bGxvYyBmYWlsZWRcbiIpOwotCQlnb3RvIHByb19lbmQ7Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8
IGxlbmd0aDsgaSsrKSB7Ci0JCXRlc3Rfb2JqID0ganNvbl9vYmplY3RfYXJyYXlfZ2V0X2lkeCh0
ZXN0c19vYmosIGkpOwotCi0JCS8qIE5hbWUgKi8KLQkJaWYgKCFqc29uX29iamVjdF9vYmplY3Rf
Z2V0X2V4KHRlc3Rfb2JqLCAibmFtZSIsICZ0bXBfb2JqKSkgewotCQkJZnByaW50ZihzdGRlcnIs
ICJUZXN0ICVkIGhhcyBubyBuYW1lXG4iLCBpKTsKLQkJCWdvdG8gcHJvX2VuZDsKLQkJfQotCQlz
dHJuY3B5KGl0ZW1zW2ldLm5hbWUsIGpzb25fb2JqZWN0X2dldF9zdHJpbmcodG1wX29iaiksIDY0
KTsKLQotCQkvKiBibG9jayAqLwotCQlpZiAoIWpzb25fb2JqZWN0X29iamVjdF9nZXRfZXgodGVz
dF9vYmosICJibG9jayIsICZ0bXBfb2JqKSkgewotCQkJZnByaW50ZihzdGRlcnIsICJUZXN0OiVz
OiBibG9jayBpc24ndCBkZWZpbmVkXG4iLAotCQkJCWl0ZW1zW2ldLm5hbWUpOwotCQkJZ290byBw
cm9fZW5kOwotCQl9Ci0JCWl0ZW1zW2ldLmJsb2NrID0gX2pzb25fZ2V0X2Jsb2NrX2lkKAotCQkJ
YmxvY2tfb2JqLCBqc29uX29iamVjdF9nZXRfc3RyaW5nKHRtcF9vYmopKTsKLQotCQkvKiBjaGVj
ayBibG9jayBpZCAqLwotCQlpZiAoaXRlbXNbaV0uYmxvY2sgPCBBTURHUFVfUkFTX0JMT0NLX19V
TUMgfHwKLQkJICAgIGl0ZW1zW2ldLmJsb2NrID49IEFNREdQVV9SQVNfQkxPQ0tfX0xBU1QpIHsK
LQkJCWZwcmludGYoc3RkZXJyLCAiVGVzdDolczogYmxvY2sgaWQgJWQgaXMgaW52YWxpZFxuIiwK
LQkJCQlpdGVtc1tpXS5uYW1lLCBpdGVtc1tpXS5ibG9jayk7Ci0JCQlnb3RvIHByb19lbmQ7Ci0J
CX0KLQotCQkvKiBzdWJibG9jayAqLwotCQlpZiAoanNvbl9vYmplY3Rfb2JqZWN0X2dldF9leCh0
ZXN0X29iaiwgInN1YmJsb2NrIiwgJnRtcF9vYmopKSB7Ci0JCQlqc29uX29iamVjdF9vYmplY3Rf
Z2V0X2V4KHRlc3Rfb2JqLCAiYmxvY2siLAotCQkJCSZzdWJibG9ja19vYmopOwotCi0JCQlpdGVt
c1tpXS5zdWJfYmxvY2sgPSBfanNvbl9nZXRfc3ViYmxvY2tfaWQoCi0JCQkJYmxvY2tfb2JqLAot
CQkJCWpzb25fb2JqZWN0X2dldF9zdHJpbmcoc3ViYmxvY2tfb2JqKSwKLQkJCQlqc29uX29iamVj
dF9nZXRfc3RyaW5nKHRtcF9vYmopKTsKLQkJCWlmIChpdGVtc1tpXS5zdWJfYmxvY2sgPCAwKSB7
Ci0JCQkJZnByaW50ZihzdGRlcnIsICJUZXN0OiVzOiBzdWJibG9jayBpbiBibG9jayBpZCAlZCBp
cyBpbnZhbGlkXG4iLAotCQkJCQlpdGVtc1tpXS5uYW1lLCBpdGVtc1tpXS5ibG9jayk7Ci0JCQkJ
Z290byBwcm9fZW5kOwotCQkJfQotCQl9IGVsc2UKLQkJCWl0ZW1zW2ldLnN1Yl9ibG9jayA9IDA7
Ci0KLQkJLyogdHlwZSAqLwotCQlpZiAoanNvbl9vYmplY3Rfb2JqZWN0X2dldF9leCh0ZXN0X29i
aiwgInR5cGUiLCAmdG1wX29iaikpIHsKLQkJCXN0cm5jcHkoaXRlbXNbaV0uZXJyb3JfdHlwZV9z
dHIsCi0JCQkJanNvbl9vYmplY3RfZ2V0X3N0cmluZyh0bXBfb2JqKSwgNjQpOwotCi0JCQlpZiAo
anNvbl9vYmplY3Rfb2JqZWN0X2dldF9leCh0eXBlX29iaiwKLQkJCQlqc29uX29iamVjdF9nZXRf
c3RyaW5nKHRtcF9vYmopLCAmdG1wX3R5cGVfb2JqKSkKLQkJCQlpdGVtc1tpXS50eXBlID0ganNv
bl9vYmplY3RfZ2V0X2ludCh0bXBfdHlwZV9vYmopOwotCQkJZWxzZQotCQkJCWl0ZW1zW2ldLnR5
cGUgPSAoZW51bSBhbWRncHVfcmFzX2Vycm9yX3R5cGUpMDsKLQkJfQotCi0JCS8qIGFkZHJlc3Mg
Ki8KLQkJaWYgKGpzb25fb2JqZWN0X29iamVjdF9nZXRfZXgodGVzdF9vYmosICJhZGRyZXNzIiwg
JnRtcF9vYmopKQotCQkJaXRlbXNbaV0uYWRkcmVzcyA9IGpzb25fb2JqZWN0X2dldF9pbnQodG1w
X29iaik7Ci0JCWVsc2UKLQkJCWl0ZW1zW2ldLmFkZHJlc3MgPSAwOyAvKiBkZWZhdWx0IGFkZHJl
c3MgMCAqLwotCi0JCS8qIHZhbHVlICovCi0JCWlmIChqc29uX29iamVjdF9vYmplY3RfZ2V0X2V4
KHRlc3Rfb2JqLCAidmFsdWUiLCAmdG1wX29iaikpCi0JCQlpdGVtc1tpXS52YWx1ZSA9IGpzb25f
b2JqZWN0X2dldF9pbnQodG1wX29iaik7Ci0JCWVsc2UKLQkJCWl0ZW1zW2ldLnZhbHVlID0gMDsg
LyogZGVmYXVsdCB2YWx1ZSAwICovCi0JfQotCi0JKnBpdGVtcyA9IGl0ZW1zOwotCSpzaXplID0g
bGVuZ3RoOwotCXJldCA9IDA7Ci1wcm9fZW5kOgotCWlmIChyb290X29iaikKLQkJanNvbl9vYmpl
Y3RfcHV0KHJvb3Rfb2JqKTsKLQotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRp
YyB2b2lkIF9fYW1kZ3B1X3Jhc19pbmplY3RfdGVzdCh2b2lkKQoKCi0tCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRyaS1wYXRjaGVzIG1haWxpbmcgbGlz
dApEcmktcGF0Y2hlc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vm
b3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vZHJpLXBhdGNoZXMK