Results of code analysis tools

Rafael dos Santos <[email protected]> Mon, 27 Jul 2015 09:32:24 -0400 (EDT)
Newsgroups gmane.linux.tools.diag.devel
Message-ID <[email protected]>
------=_Part_219942_2100275017.1438003944946
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi,

I ran some analysis tools (clang and cppcheck) for the latest tag of each project under the linux-diag codebase.

You can find the results attached. I hope they can be useful. As time allows it, I might submit some patches in the future.


Att
--
Rafael Fonseca
------=_Part_219942_2100275017.1438003944946
Content-Type: text/plain; name=servicelog-results.txt
Content-Disposition: attachment; filename=servicelog-results.txt
Content-Transfer-Encoding: base64

RXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9sb2dfcmVwYWly
X2FjdGlvbi5jOjkxOjIyOiB3YXJuaW5nOiB2YXJpYWJsZSAnZHVtbXknIHNldCBidXQgbm90IHVz
ZWQgWy1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCiMgIGNoYXIgKmRhdGUgPSBOVUxMLCAqZHVt
bXk7CiMgICAgICAgICAgICAgICAgICAgICAgXgojICAgODl8ICAgCUZJTEUgKmZwOwojICAgOTB8
ICAgCWludCBvcHRpb25faW5kZXgsIHJjLCBxdWlldD0wOwojICAgOTF8LT4gCWNoYXIgKmRhdGUg
PSBOVUxMLCAqZHVtbXk7CiMgICA5MnwgICAJY2hhciBjbWRbQlVGX1NJWkVdLCBidWZbQlVGX1NJ
WkVdOwojICAgOTN8ICAgCXVpbnQ2NF90IGlkOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNl
cnZpY2Vsb2ctMS4xLjEzL3NyYy9sb2dfcmVwYWlyX2FjdGlvbi5jOjk4OjY6IHdhcm5pbmc6IHZh
cmlhYmxlICdhcGlfdmVyc2lvbicgc2V0IGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtYnV0LXNldC12
YXJpYWJsZV0KIyAgaW50IGFwaV92ZXJzaW9uID0gMDsgIC8vIFNob3J0IGZvciB2ZXJzaW9uIDAu
Mi45CiMgICAgICBeCiMgICA5NnwgICAJc3RydWN0IHNsX2V2ZW50ICpldmVudHMgPSBOVUxMOwoj
ICAgOTd8ICAgCXRpbWVfdCBlcG9jaDsKIyAgIDk4fC0+IAlpbnQgYXBpX3ZlcnNpb24gPSAwOyAg
Ly8gU2hvcnQgZm9yIHZlcnNpb24gMC4yLjkKIyAgIDk5fCAgIAlpbnQgcGxhdGZvcm0gPSAwOwoj
ICAxMDB8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKc2VydmljZWxvZy0xLjEuMTMvc3Jj
L2xvZ19yZXBhaXJfYWN0aW9uLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdtYWluJwpzZXJ2
aWNlbG9nLTEuMS4xMy9zcmMvbG9nX3JlcGFpcl9hY3Rpb24uYzoyMzI6NTogd2FybmluZzogZm9y
bWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBp
bnQnLCBidXQgYXJndW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAg
IGFyZ3ZbMF0sIGlkKTsKIyAgICAgXgojICAyMzB8ICAgCQlpZiAoIXF1aWV0KSB7CiMgIDIzMXwg
ICAJCQlmcHJpbnRmKHN0ZG91dCwgIiVzOiBzZXJ2aWNlbG9nIHJlY29yZCBJRCA9ICVsbHUuXG4i
LAojICAyMzJ8LT4gCQkJCWFyZ3ZbMF0sIGlkKTsKIyAgMjMzfCAgIAkJCWZwcmludGYoc3Rkb3V0
LCAiXG5UaGUgZm9sbG93aW5nIGV2ZW50cyB3ZXJlICIKIyAgMjM0fCAgIAkJCQkicmVwYWlyZWQ6
XG5cbiIpOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9z
ZXJ2aWNlbG9nLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdtYWluJwpzZXJ2aWNlbG9nLTEu
MS4xMy9zcmMvc2VydmljZWxvZy5jOjI1MDo2OiB3YXJuaW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVj
dHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVu
dCAzIGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICAgICIlZFxuIiwgZS0+aWQs
IGUtPnR5cGUpOwojICAgICAgXgojICAyNDh8ICAgCQkJZGVmYXVsdDoKIyAgMjQ5fCAgIAkJCQlm
cHJpbnRmKHN0ZGVyciwgIkV2ZW50ICVsbHUgaGFzIHVua25vd24gdHlwZSAiCiMgIDI1MHwtPiAJ
CQkJCSIlZFxuIiwgZS0+aWQsIGUtPnR5cGUpOwojICAyNTF8ICAgCQkJfQojICAyNTJ8ICAgCgpF
cnJvcjogQ09NUElMRVJfV0FSTklORzoKc2VydmljZWxvZy0xLjEuMTMvc3JjL3NlcnZpY2Vsb2df
bm90aWZ5LmM6MTU3OjY6IHdhcm5pbmc6IHZhcmlhYmxlICdmbGFnX3R5cGUnIHNldCBidXQgbm90
IHVzZWQgWy1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCiMgIGludCBmbGFnX3R5cGU9MCwgZmxh
Z19jbWQ9MCwgZmxhZ19tYXRjaD0wLCBmbGFnX2lkPTAsIGZsYWdfbWV0aG9kPTA7CiMgICAgICBe
CiMgIDE1NXwgICB7CiMgIDE1NnwgICAJaW50IG9wdGlvbl9pbmRleCwgcmMsIGFjdGlvbj1BQ1RJ
T05fVU5TUEVDSUZJRUQ7CiMgIDE1N3wtPiAJaW50IGZsYWdfdHlwZT0wLCBmbGFnX2NtZD0wLCBm
bGFnX21hdGNoPTAsIGZsYWdfaWQ9MCwgZmxhZ19tZXRob2Q9MDsKIyAgMTU4fCAgIAlpbnQgYWRk
X2ZsYWdzPTAsIG1ldGhvZD0wLCBzZXJ2aWNhYmxlID0gMDsKIyAgMTU5fCAgIAoKRXJyb3I6IENP
TVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9zZXJ2aWNlbG9nX25vdGlmeS5j
OjE1NzoxOTogd2FybmluZzogdmFyaWFibGUgJ2ZsYWdfY21kJyBzZXQgYnV0IG5vdCB1c2VkIFst
V3VudXNlZC1idXQtc2V0LXZhcmlhYmxlXQojICBpbnQgZmxhZ190eXBlPTAsIGZsYWdfY21kPTAs
IGZsYWdfbWF0Y2g9MCwgZmxhZ19pZD0wLCBmbGFnX21ldGhvZD0wOwojICAgICAgICAgICAgICAg
ICAgIF4KIyAgMTU1fCAgIHsKIyAgMTU2fCAgIAlpbnQgb3B0aW9uX2luZGV4LCByYywgYWN0aW9u
PUFDVElPTl9VTlNQRUNJRklFRDsKIyAgMTU3fC0+IAlpbnQgZmxhZ190eXBlPTAsIGZsYWdfY21k
PTAsIGZsYWdfbWF0Y2g9MCwgZmxhZ19pZD0wLCBmbGFnX21ldGhvZD0wOwojICAxNTh8ICAgCWlu
dCBhZGRfZmxhZ3M9MCwgbWV0aG9kPTAsIHNlcnZpY2FibGUgPSAwOwojICAxNTl8ICAgCgpFcnJv
cjogQ09NUElMRVJfV0FSTklORzoKc2VydmljZWxvZy0xLjEuMTMvc3JjL3NlcnZpY2Vsb2dfbm90
aWZ5LmM6MTU3OjMxOiB3YXJuaW5nOiB2YXJpYWJsZSAnZmxhZ19tYXRjaCcgc2V0IGJ1dCBub3Qg
dXNlZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KIyAgaW50IGZsYWdfdHlwZT0wLCBmbGFn
X2NtZD0wLCBmbGFnX21hdGNoPTAsIGZsYWdfaWQ9MCwgZmxhZ19tZXRob2Q9MDsKIyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDE1NXwgICB7CiMgIDE1NnwgICAJaW50IG9wdGlv
bl9pbmRleCwgcmMsIGFjdGlvbj1BQ1RJT05fVU5TUEVDSUZJRUQ7CiMgIDE1N3wtPiAJaW50IGZs
YWdfdHlwZT0wLCBmbGFnX2NtZD0wLCBmbGFnX21hdGNoPTAsIGZsYWdfaWQ9MCwgZmxhZ19tZXRo
b2Q9MDsKIyAgMTU4fCAgIAlpbnQgYWRkX2ZsYWdzPTAsIG1ldGhvZD0wLCBzZXJ2aWNhYmxlID0g
MDsKIyAgMTU5fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEz
L3NyYy9zZXJ2aWNlbG9nX25vdGlmeS5jOjE1Nzo1Njogd2FybmluZzogdmFyaWFibGUgJ2ZsYWdf
bWV0aG9kJyBzZXQgYnV0IG5vdCB1c2VkIFstV3VudXNlZC1idXQtc2V0LXZhcmlhYmxlXQojICBp
bnQgZmxhZ190eXBlPTAsIGZsYWdfY21kPTAsIGZsYWdfbWF0Y2g9MCwgZmxhZ19pZD0wLCBmbGFn
X21ldGhvZD0wOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBeCiMgIDE1NXwgICB7CiMgIDE1NnwgICAJaW50IG9wdGlvbl9pbmRleCwgcmMs
IGFjdGlvbj1BQ1RJT05fVU5TUEVDSUZJRUQ7CiMgIDE1N3wtPiAJaW50IGZsYWdfdHlwZT0wLCBm
bGFnX2NtZD0wLCBmbGFnX21hdGNoPTAsIGZsYWdfaWQ9MCwgZmxhZ19tZXRob2Q9MDsKIyAgMTU4
fCAgIAlpbnQgYWRkX2ZsYWdzPTAsIG1ldGhvZD0wLCBzZXJ2aWNhYmxlID0gMDsKIyAgMTU5fCAg
IAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9zZXJ2aWNl
bG9nX25vdGlmeS5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnbWFpbicKc2VydmljZWxvZy0x
LjEuMTMvc3JjL3NlcnZpY2Vsb2dfbm90aWZ5LmM6NDc3OjY6IHdhcm5pbmc6IGZvcm1hdCAnJWxs
dScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0
IGFyZ3VtZW50IDIgaGFzIHR5cGUgJ3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgICAgcHJpbnRm
KCJFdmVudCBOb3RpZmljYXRpb24gUmVnaXN0cmF0aW9uIHN1Y2Nlc3NmdWwgKGlkOiAlbGx1KVxu
IiwgaWQpOwojICAgICAgXgojICA0NzV8ICAgCQkJCXNlcnZpY2Vsb2dfbm90aWZ5X2ZyZWUobm90
aWZ5KTsKIyAgNDc2fCAgIAkJCQlpZiAocmMgPT0gMCkgewojICA0Nzd8LT4gCQkJCQlwcmludGYo
IkV2ZW50IE5vdGlmaWNhdGlvbiBSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bCAoaWQ6ICVsbHUpXG4i
LCBpZCk7CiMgIDQ3OHwgICAJCQkJfQojICA0Nzl8ICAgCQkJCWVsc2UgewoKRXJyb3I6IENMQU5H
X1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9zZXJ2aWNlbG9nX25vdGlmeS5jOjQ4MDo2
OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnbm90aWZ5
JwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiJXNcbiIsIHNlcnZpY2Vsb2dfZXJyb3Ioc2VydmxvZykpOwojICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KIyAgNDc4fCAgIAkJCQl9CiMgIDQ3OXwgICAJ
CQkJZWxzZSB7CiMgIDQ4MHwtPiAJCQkJCWZwcmludGYoc3RkZXJyLCAiJXNcbiIsIHNlcnZpY2Vs
b2dfZXJyb3Ioc2VydmxvZykpOwojICA0ODF8ICAgCQkJCQlyYyA9IDI7CiMgIDQ4MnwgICAJCQkJ
CWdvdG8gZXJyX291dDsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpzZXJ2aWNlbG9nLTEuMS4x
My9zcmMvc2VydmljZWxvZ19ub3RpZnkuYzo1MTI6Njogd2FybmluZzogZm9ybWF0ICclbGx1JyBl
eHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJn
dW1lbnQgMiBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgICBwcmludGYoIlJl
cGFpciBOb3RpZmljYXRpb24gUmVnaXN0cmF0aW9uIHN1Y2Nlc3NmdWwgKGlkOiAlbGx1KVxuIiwg
aWQpOwojICAgICAgXgojICA1MTB8ICAgCQkJCXNlcnZpY2Vsb2dfbm90aWZ5X2ZyZWUobm90aWZ5
KTsKIyAgNTExfCAgIAkJCQlpZiAocmMgPT0gMCkgewojICA1MTJ8LT4gCQkJCQlwcmludGYoIlJl
cGFpciBOb3RpZmljYXRpb24gUmVnaXN0cmF0aW9uIHN1Y2Nlc3NmdWwgKGlkOiAlbGx1KVxuIiwg
aWQpOwojICA1MTN8ICAgCQkJCX0KIyAgNTE0fCAgIAkJCQllbHNlIHsKCkVycm9yOiBDT01QSUxF
Ul9XQVJOSU5HOgpzZXJ2aWNlbG9nLTEuMS4xMy9zcmMvc2VydmljZWxvZ19ub3RpZnkuYzo1NTI6
Nzogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcg
bG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1lbnQgMyBoYXMgdHlwZSAndWludDY0X3QnIFst
V2Zvcm1hdD1dCiMgICAgICAgImlkICglbGx1KS5cbiIsIGlkKTsKIyAgICAgICBeCiMgIDU1MHwg
ICAJCQkJCWZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGZpbmQgYSByZWdpc3RlcmVkICIKIyAg
NTUxfCAgIAkJCQkJCSJub3RpZmljYXRpb24gdG9vbCB3aXRoIHRoZSBzcGVjaWZpZWQgIgojICA1
NTJ8LT4gCQkJCQkJImlkICglbGx1KS5cbiIsIGlkKTsKIyAgNTUzfCAgIAkJCQkJcmMgPSAxOwoj
ICA1NTR8ICAgCQkJCQlnb3RvIGVycl9vdXQ7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKc2Vy
dmljZWxvZy0xLjEuMTMvc3JjL3NlcnZpY2Vsb2dfbm90aWZ5LmM6NjE0OjY6IHdhcm5pbmc6IGZv
cm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQg
aW50JywgYnV0IGFyZ3VtZW50IDMgaGFzIHR5cGUgJ3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAg
ICAgImlkICglbGx1KS5cbiIsIGlkKTsKIyAgICAgIF4KIyAgNjEyfCAgIAkJCQlmcHJpbnRmKHN0
ZGVyciwgIkNvdWxkIG5vdCBmaW5kIGEgcmVnaXN0ZXJlZCAiCiMgIDYxM3wgICAJCQkJCSJub3Rp
ZmljYXRpb24gdG9vbCB3aXRoIHRoZSBzcGVjaWZpZWQgIgojICA2MTR8LT4gCQkJCQkiaWQgKCVs
bHUpLlxuIiwgaWQpOwojICA2MTV8ICAgCQkJCXJjID0gMTsKIyAgNjE2fCAgIAkJCQlnb3RvIGVy
cl9vdXQ7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKc2VydmljZWxvZy0xLjEuMTMvc3JjL3Ns
b2dfY29tbW9uX2V2ZW50LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdtYWluJwpzZXJ2aWNl
bG9nLTEuMS4xMy9zcmMvc2xvZ19jb21tb25fZXZlbnQuYzoyMjc6Mzogd2FybmluZzogZm9ybWF0
ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQn
LCBidXQgYXJndW1lbnQgMiBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICBwcmlu
dGYoIkxvZ2dlZCBldmVudCBudW1iZXIgJWxsdVxuIiwgZXZlbnRfaWQpOwojICAgXgojICAyMjV8
ICAgCiMgIDIyNnwgICAJaWYgKHZlcmJvc2UpIHsKIyAgMjI3fC0+IAkJcHJpbnRmKCJMb2dnZWQg
ZXZlbnQgbnVtYmVyICVsbHVcbiIsIGV2ZW50X2lkKTsKIyAgMjI4fCAgIAl9CiMgIDIyOXwgICAK
CkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpzZXJ2aWNlbG9nLTEuMS4xMy9zcmMvdjI5X3NlcnZp
Y2Vsb2dfbWFuYWdlLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdtYWluJwpzZXJ2aWNlbG9n
LTEuMS4xMy9zcmMvdjI5X3NlcnZpY2Vsb2dfbWFuYWdlLmM6OTA6ODogd2FybmluZzogdmFyaWFi
bGUgJ3RtcCcgc2V0IGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KIyAg
Y2hhciAqdG1wOwojICAgICAgICBeCiMgICA4OHwgICAJaW50IHBsYXRmb3JtID0gMDsKIyAgIDg5
fCAgIAljaGFyIGJ1ZlsxMjRdOwojICAgOTB8LT4gCWNoYXIgKnRtcDsKIyAgIDkxfCAgIAljaGFy
ICpuZXh0X2NoYXI7CiMgICA5MnwgICAJdWludDMyX3QgbnVtPTAsIG51bV9yZXBhaXJlZD0wLCBu
dW1fdW5yZXBhaXJlZD0wLCBudW1faW5mbz0wLCBudW1fcmE9MDsKCkVycm9yOiBDT01QSUxFUl9X
QVJOSU5HOgpzZXJ2aWNlbG9nLTEuMS4xMy9zcmMvdjI5X3NlcnZpY2Vsb2dfbWFuYWdlLmM6Mzgx
Ojk6IHdhcm5pbmc6IGlnbm9yaW5nIHJldHVybiB2YWx1ZSBvZiAnZmdldHMnLCBkZWNsYXJlZCB3
aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgICBm
Z2V0cyhidWYsIDgwLCBzdGRpbik7CiMgICAgICAgICBeCiMgIDM3OXwgICAJCQkgICAgICAgYWdl
LCBhZ2UpOwojICAzODB8ICAgCQkJcHJpbnRmKCJFbnRlciAneWVzJyB0byBjb250aW51ZSA+ICIp
OwojICAzODF8LT4gCQkJZmdldHMoYnVmLCA4MCwgc3RkaW4pOwojICAzODJ8ICAgCQkJaWYgKHN0
cmNhc2VjbXAoYnVmLCAieWVzXG4iKSkgewojICAzODN8ICAgCQkJCXByaW50ZigiT3BlcmF0aW9u
IGNhbmNlbGxlZC5cbiIpOwo=
------=_Part_219942_2100275017.1438003944946
Content-Type: text/plain; name=ppp64-diag-results.txt
Content-Disposition: attachment; filename=ppp64-diag-results.txt
Content-Transfer-Encoding: base64

RXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvZGlhZ3MvZW5jbF9jb21tb24u
Yzo1Nzg6Mjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkg
J2VudHJ5JwojICAgICAgICBzZXJ2aWNlbG9nX2Nsb3NlKHNsb2cpOwojICAgICAgICBefn5+fn5+
fn5+fn5+fn5+fn5+fn5+CiMgIDU3NnwgICAJcmMgPSBzZXJ2aWNlbG9nX2V2ZW50X2xvZyhzbG9n
LCBlbnRyeSwgJmtleSk7CiMgIDU3N3wgICAJc2VydmljZWxvZ19ldmVudF9mcmVlKGVudHJ5KTsK
IyAgNTc4fC0+IAlzZXJ2aWNlbG9nX2Nsb3NlKHNsb2cpOwojICA1Nzl8ICAgCiMgIDU4MHwgICAJ
aWYgKHJjICE9IDApIHsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45
L2RpYWdzL2hvbWVydW4uYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2hyX3JlcG9ydF9mYXVs
dHNfdG9fc3ZjbG9nJwpwcGM2NC1kaWFnLTIuNi45L2RpYWdzL2hvbWVydW4uYzoyOTY6Njogd2Fy
bmluZzogJ3JjJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1X
bWF5YmUtdW5pbml0aWFsaXplZF0KIyAgIGlmIChyYyA9PSAwKQojICAgICAgXgojICAyOTR8ICAg
CQljYWxsb3V0cyA9IE5VTEw7CiMgIDI5NXwgICAJCWhyX2NyZWF0ZV9lc21fY2FsbG91dCgmY2Fs
bG91dHMsIGxvY2F0aW9uLCBpLCBmZCk7CiMgIDI5NnwtPiAJCWlmIChyYyA9PSAwKQojICAyOTd8
ICAgCQkJc2VydmV2ZW50KHNybiwgc2V2LCBkZXNjcmlwdGlvbiwgdnBkLCBjYWxsb3V0cyk7CiMg
IDI5OHwgICAJfQoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvZWxh
L2NhdGFsb2dzLmNwcDogc2NvcGVfaGludDogSW4gbWVtYmVyIGZ1bmN0aW9uICd2b2lkIE1hdGNo
VmFyaWFudDo6Y29tcHV0ZV9yZWdleF90ZXh0KCknCnBwYzY0LWRpYWctMi42LjkvZWxhL2NhdGFs
b2dzLmNwcDo5MjA6MzY6IHdhcm5pbmc6IGlnbm9yaW5nIHJldHVybiB2YWx1ZSBvZiAnY2hhciog
ZmdldHMoY2hhciosIGludCwgRklMRSopJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91
bnVzZWRfcmVzdWx0IFstV3VudXNlZC1yZXN1bHRdCiMgIGZnZXRzKHJlZ2V4X2NzdHIsUkVHRVhf
TUFYTEVOLCBpbik7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDkx
OHwgICAJfQojICA5MTl8ICAgCiMgIDkyMHwtPiAJZmdldHMocmVnZXhfY3N0cixSRUdFWF9NQVhM
RU4sIGluKTsKIyAgOTIxfCAgIAojICA5MjJ8ICAgCXNwY2xvc2UoaW4sIGNwaWQpOwoKRXJyb3I6
IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvZWxhL2RhdGUuYzogc2NvcGVfaGlu
dDogSW4gZnVuY3Rpb24gJ3BhcnNlX2RhdGUnCnBwYzY0LWRpYWctMi42LjkvZWxhL2RhdGUuYzo3
MDoyODogd2FybmluZzogJ25vdycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1
bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgIGlmICgheXJfaW5fZm10ICYmIGRpZmZ0
aW1lKGRhdGUsIG5vdykgPiAwKSB7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICAg
Njh8ICAgCQlyZXR1cm4gKHRpbWVfdCkgMDsKIyAgIDY5fCAgIAojICAgNzB8LT4gCWlmICgheXJf
aW5fZm10ICYmIGRpZmZ0aW1lKGRhdGUsIG5vdykgPiAwKSB7CiMgICA3MXwgICAJCS8qIERhdGUg
aXMgaW4gZnV0dXJlLiAgQXNzdW1lIGl0J3MgZnJvbSBsYXN0IHllYXIuICovCiMgICA3MnwgICAJ
CXRtLnRtX2lzZHN0ID0gLTE7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0y
LjYuOS9lbGEvbGV4LmV2LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICd5eV9idWZmZXJfc3Rh
dGUqIGV2X3NjYW5fYnl0ZXMoY29uc3QgY2hhciosIHl5X3NpemVfdCknCnBwYzY0LWRpYWctMi42
LjkvZWxhL2xleC5ldi5jOjE3MzM6MTk6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWdu
ZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICBm
b3IgKCBpID0gMDsgaSA8IF95eWJ5dGVzX2xlbjsgKytpICkKIyAgICAgICAgICAgICAgICAgICBe
CiMgMTczMXwgICAJCVlZX0ZBVEFMX0VSUk9SKCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIGV2
X3NjYW5fYnl0ZXMoKSIgKTsKIyAxNzMyfCAgIAojIDE3MzN8LT4gCWZvciAoIGkgPSAwOyBpIDwg
X3l5Ynl0ZXNfbGVuOyArK2kgKQojIDE3MzR8ICAgCQlidWZbaV0gPSB5eWJ5dGVzW2ldOwojIDE3
MzV8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9lbGEvbGV4
LnJyLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICd5eV9idWZmZXJfc3RhdGUqIHJyX3NjYW5f
Ynl0ZXMoY29uc3QgY2hhciosIHl5X3NpemVfdCknCnBwYzY0LWRpYWctMi42LjkvZWxhL2xleC5y
ci5jOjE2NzA6MTk6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2ln
bmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICBmb3IgKCBpID0gMDsg
aSA8IF95eWJ5dGVzX2xlbjsgKytpICkKIyAgICAgICAgICAgICAgICAgICBeCiMgMTY2OHwgICAJ
CVlZX0ZBVEFMX0VSUk9SKCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHJyX3NjYW5fYnl0ZXMo
KSIgKTsKIyAxNjY5fCAgIAojIDE2NzB8LT4gCWZvciAoIGkgPSAwOyBpIDwgX3l5Ynl0ZXNfbGVu
OyArK2kgKQojIDE2NzF8ICAgCQlidWZbaV0gPSB5eWJ5dGVzW2ldOwojIDE2NzJ8ICAgCgpFcnJv
cjogQ0xBTkdfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9scGQvbHBfZGlhZy5jOjc2ODo5OiB3
YXJuaW5nOiBCcmFuY2ggY29uZGl0aW9uIGV2YWx1YXRlcyB0byBhIGdhcmJhZ2UgdmFsdWUKIyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlk
ZW50ID8gSU5ESUNBVE9SX09GRiA6IElORElDQVRPUl9PTik7CiMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgojICA3NjZ8ICAgCQkJ
fSBlbHNlIHsKIyAgNzY3fCAgIAkJCQlyYyA9IHNldF9pbmRpY2F0b3Jfc3RhdGUoSURFTlRfSU5E
SUNBVE9SLCBsb2MsCiMgIDc2OHwtPiAJCQkJCQkJIGlkZW50ID8gSU5ESUNBVE9SX09GRiA6IElO
RElDQVRPUl9PTik7CiMgIDc2OXwgICAKIyAgNzcwfCAgIAkJCQlpZiAocmMpIHsKCkVycm9yOiBD
T01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L2xwZC9scF9kaWFnLmM6IHNjb3BlX2hp
bnQ6IEluIGZ1bmN0aW9uICdzdGFydHVwX3dpbmRvdycKcHBjNjQtZGlhZy0yLjYuOS9scGQvbHBf
ZGlhZy5jOjc3NzoxMTogd2FybmluZzogJ2xvYycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBp
biB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICAgICAgICAgIGxvYy0+
Y29kZSwgaWRlbnQ/ICJPRkYiIDogIk9OIik7CiMgICAgICAgICAgIF4KcHBjNjQtZGlhZy0yLjYu
OS9scGQvbHBfZGlhZy5jOjcyMToxOTogbm90ZTogJ2xvYycgd2FzIGRlY2xhcmVkIGhlcmUKIyAg
c3RydWN0IGxvY19jb2RlICpsb2M7CiMgICAgICAgICAgICAgICAgICAgXgojICA3NzV8ICAgCQkJ
CWN1cl9zdGF0ZVtpXSA9IGlkZW50ID8gJyAnIDogJ0knOwojICA3NzZ8ICAgCQkJCWluZGljYXRv
cl9sb2dfd3JpdGUoIiVzIDogSWRlbnRpZnkgOiAlcyIsCiMgIDc3N3wtPiAJCQkJCQkgICAgbG9j
LT5jb2RlLCBpZGVudD8gIk9GRiIgOiAiT04iKTsKIyAgNzc4fCAgIAkJCX0KIyAgNzc5fCAgIAkJ
fSBlbHNlIGlmICghc3RyY21wKGRlc2MsICJsb2MiKSkgewoKRXJyb3I6IENMQU5HX1dBUk5JTkc6
CnBwYzY0LWRpYWctMi42LjkvbHBkL2xwX2RpYWcuYzo3ODA6MTk6IHdhcm5pbmc6IEJyYW5jaCBj
b25kaXRpb24gZXZhbHVhdGVzIHRvIGEgZ2FyYmFnZSB2YWx1ZQojICAgICAgICAgICAgICAgICAg
ICAgICAgY3VyX3N0YXRlW2ldID0gaWRlbnQ/ICdJJyA6ICcgJzsKIyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+CiMgIDc3OHwgICAJCQl9CiMgIDc3OXwgICAJCX0g
ZWxzZSBpZiAoIXN0cmNtcChkZXNjLCAibG9jIikpIHsKIyAgNzgwfC0+IAkJCWN1cl9zdGF0ZVtp
XSA9IGlkZW50PyAnSScgOiAnICc7CiMgIDc4MXwgICAJCX0KIyAgNzgyfCAgIAl9CgpFcnJvcjog
Q09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9vcGFsX2VycmQvb3BhbC1lbG9nLXBh
cnNlL29wYWwtZWxvZy1wYXJzZS5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAncmVhZF9lbG9n
JwpwcGM2NC1kaWFnLTIuNi45L29wYWxfZXJyZC9vcGFsLWVsb2ctcGFyc2Uvb3BhbC1lbG9nLXBh
cnNlLmM6MTQ5Ojc6IHdhcm5pbmc6IGlnbm9yaW5nIHJldHVybiB2YWx1ZSBvZiAnY2hkaXInLCBk
ZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3Vs
dF0KIyAgY2hkaXIob3B0X3BsYXRmb3JtX2Rpcik7CiMgICAgICAgXgojICAxNDd8ICAgCWludCBw
bGF0Zm9ybV9sb2dfZmQgPSAtMTsKIyAgMTQ4fCAgIAojICAxNDl8LT4gCWNoZGlyKG9wdF9wbGF0
Zm9ybV9kaXIpOwojICAxNTB8ICAgCWlmIChzdGF0KHBhdGgsICZzYnVmKSA9PSAtMSl7CiMgIDE1
MXwgICAJCWZwcmludGYoc3RkZXJyLCAiRXJyb3IgYWNjZXNzaW5nICVzXG4iLHBhdGgpOwoKRXJy
b3I6IENQUENIRUNLX1dBUk5JTkcgKENXRS00MDEpOgpwcGM2NC1kaWFnLTIuNi45L29wYWxfZXJy
ZC9vcGFsLWVsb2ctcGFyc2Uvb3BhbC1lbG9nLXBhcnNlLmM6MjQyOiBlcnJvclttZW1sZWFrXTog
TWVtb3J5IGxlYWs6IGJ1ZmZlcgojICAyNDB8ICAgCXN6ID0gcmVhZF9lbG9nKGVsb2dfcGF0aCwg
JmJ1ZmZlcik7CiMgIDI0MXwgICAJaWYoc3ogPCAwKSB7CiMgIDI0MnwtPiAJCXJldHVybiAtMTsK
IyAgMjQzfCAgIAkvKiBNYWtlIHN1cmUgd2UgcmVhZCBtaW5pbXVtIGRhdGEgbmVlZGVkIGluIHRo
aXMgZnVuY3Rpb24gKi8KIyAgMjQ0fCAgIAl9IGVsc2UgaWYgKHN6IDwgKEVMT0dfSURfT0ZGU0VU
ICsgc2l6ZW9mKGxvZ2lkKSkpewoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42
Ljkvb3BhbF9lcnJkL29wYWwtZWxvZy1wYXJzZS9vcGFsLWVsb2ctcGFyc2UuYzozMTU6Mjogd2Fy
bmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2J1ZmZlcicKIyAg
ICAgICAgZnJlZShmaWxlbGlzdCk7CiMgICAgICAgIF5+fn4KIyAgMzEzfCAgIAkJZnJlZShmaWxl
bGlzdFtpXSk7CiMgIDMxNHwgICAJfQojICAzMTV8LT4gCWZyZWUoZmlsZWxpc3QpOwojICAzMTZ8
ICAgCiMgIDMxN3wgICAJcmV0dXJuIHJldDsKCkVycm9yOiBDUFBDSEVDS19XQVJOSU5HIChDV0Ut
NDAxKToKcHBjNjQtZGlhZy0yLjYuOS9vcGFsX2VycmQvb3BhbC1lbG9nLXBhcnNlL29wYWwtZWxv
Zy1wYXJzZS5jOjMzNDogZXJyb3JbbWVtbGVha106IE1lbW9yeSBsZWFrOiBidWZmZXIKIyAgMzMy
fCAgIAojICAzMzN8ICAgCWlmIChzeiA8PSAwKXsKIyAgMzM0fC0+IAkJcmV0dXJuIC0xOwojICAz
MzV8ICAgCX0KIyAgMzM2fCAgIAlpZiAoc3ogPCBFTE9HX01JTl9SRUFEX09GRlNFVCkgewoKRXJy
b3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWwtZWxv
Zy1wYXJzZS9vcGFsLWVsb2ctcGFyc2UuYzo0ODY6Nzogd2FybmluZzogJ2VpZF9vcHQnIG1heSBi
ZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxp
emVkXQojICAgcmV0ID0gZGVsZXRlX2Vsb2coZWlkX29wdCk7CiMgICAgICAgXgojICA0ODR8ICAg
CQlicmVhazsKIyAgNDg1fCAgIAljYXNlICdlJzoKIyAgNDg2fC0+IAkJcmV0ID0gZGVsZXRlX2Vs
b2coZWlkX29wdCk7CiMgIDQ4N3wgICAJCWJyZWFrOwojICA0ODh8ICAgCWNhc2UgJ2QnOgoKRXJy
b3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWwtZWxv
Zy1wYXJzZS9vcGFsLWVsb2ctcGFyc2UuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ21haW4n
CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWwtZWxvZy1wYXJzZS9vcGFsLWVsb2ctcGFy
c2UuYzo0OTk6ODogd2FybmluZzogJ2Vsb2dfcGF0aCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXpl
ZCBpbiB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICAgcmV0ID0gZWxv
Z19zdW1tYXJ5KGVsb2dfcGF0aCwxKTsKIyAgICAgICAgXgojICA0OTd8ICAgCWNhc2UgJ3MnOgoj
ICA0OTh8ICAgCQlpZihvcHRfZGlzcGxheV9maWxlKXsKIyAgNDk5fC0+IAkJCXJldCA9IGVsb2df
c3VtbWFyeShlbG9nX3BhdGgsMSk7CiMgIDUwMHwgICAJCX0gZWxzZSB7CiMgIDUwMXwgICAJCQly
ZXQgPSBlbG9nbGlzdCgxKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIu
Ni45L29wYWxfZXJyZC9vcGFsLWVsb2ctcGFyc2UvcGFyc2Utb3BhbC1ldmVudC5jOiBzY29wZV9o
aW50OiBJbiBmdW5jdGlvbiAncGFyc2Vfb3BhbF9ldmVudF9sb2cnCnBwYzY0LWRpYWctMi42Ljkv
b3BhbF9lcnJkL29wYWwtZWxvZy1wYXJzZS9wYXJzZS1vcGFsLWV2ZW50LmM6Mjg6Njogd2Fybmlu
ZzogJ3JjJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XbWF5
YmUtdW5pbml0aWFsaXplZF0KIyAgaW50IHJjOwojICAgICAgXgojICAgMjZ8ICAgCX07CiMgICAy
N3wgICAKIyAgIDI4fC0+IAlpbnQgcmM7CiMgICAyOXwgICAJc3RydWN0IG9wYWxfdjZfaGRyIGhk
cjsKIyAgIDMwfCAgIAlzdHJ1Y3Qgb3BhbF9wcml2X2hkcl9zY24gKnBoOwoKRXJyb3I6IENMQU5H
X1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWwtZWxvZy1wYXJzZS9wYXJz
ZS1vcGFsLWV2ZW50LmM6MTk3OjIxOiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiB1bmRlZmluZWQg
cG9pbnRlciB2YWx1ZQojICAgICAgICAgICAgICAgIGlmIChucnNlY3Rpb25zID09IHBoLT5zY25f
Y291bnQpCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgoj
ICAxOTV8ICAgCQlidWYgKz0gaGRyLmxlbmd0aDsKIyAgMTk2fCAgIAojICAxOTd8LT4gCQlpZiAo
bnJzZWN0aW9ucyA9PSBwaC0+c2NuX2NvdW50KQojICAxOTh8ICAgCQkJYnJlYWs7CiMgIDE5OXwg
ICAJfQoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJk
L29wYWxfZXJyZC5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAncm90YXRlX2xvZ3MnCnBwYzY0
LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWxfZXJyZC5jOjE5OTo3OiB3YXJuaW5nOiBpZ25vcmlu
ZyByZXR1cm4gdmFsdWUgb2YgJ2NoZGlyJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91
bnVzZWRfcmVzdWx0IFstV3VudXNlZC1yZXN1bHRdCiMgIGNoZGlyKGVsb2dfZGlyKTsKIyAgICAg
ICBeCiMgIDE5N3wgICAKIyAgMTk4fCAgIAkvKiBSZXRyaWV2ZSBmaWxlIGxpc3QgKi8KIyAgMTk5
fC0+IAljaGRpcihlbG9nX2Rpcik7CiMgIDIwMHwgICAJbmZpbGVzID0gc2NhbmRpcihlbG9nX2Rp
ciwgJmZpbGVsaXN0LCBmaWxlX2ZpbHRlciwgYWxwaGFzb3J0KTsKIyAgMjAxfCAgIAlpZiAobmZp
bGVzIDwgMCkKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L29wYWxf
ZXJyZC9vcGFsX2VycmQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ21haW4nCnBwYzY0LWRp
YWctMi42Ljkvb3BhbF9lcnJkL29wYWxfZXJyZC5jOjg2MTo5OiB3YXJuaW5nOiBpZ25vcmluZyBy
ZXR1cm4gdmFsdWUgb2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNl
ZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgICAgcmVhZChmZHNbSU5PVElGWV9GRF0uZmQs
IGlub3RpZnlidWYsIHNpemVvZihpbm90aWZ5YnVmKSk7CiMgICAgICAgICBeCiMgIDg1OXwgICAJ
CQlyYyA9IHBvbGwoZmRzLCBzaXplb2YoZmRzKS9zaXplb2Yoc3RydWN0IHBvbGxmZCksIFBPTExf
VElNRU9VVCk7CiMgIDg2MHwgICAJCQlpZiAocmMgPiAwICYmIGZkc1tJTk9USUZZX0ZEXS5yZXZl
bnRzKQojICA4NjF8LT4gCQkJCXJlYWQoZmRzW0lOT1RJRllfRkRdLmZkLCBpbm90aWZ5YnVmLCBz
aXplb2YoaW5vdGlmeWJ1ZikpOwojICA4NjJ8ICAgCQkJaWYgKHJjID4gMCAmJiBmZHNbVURFVl9G
RF0ucmV2ZW50cykgewojICA4NjN8ICAgCQkJCXVkZXZfZGV2ID0gdWRldl9tb25pdG9yX3JlY2Vp
dmVfZGV2aWNlKHVkZXZfbW9uKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFn
LTIuNi45L3J0YXNfZXJyZC9jb252ZXJ0X2R0X25vZGVfcHJvcHMuYzogc2NvcGVfaGludDogSW4g
ZnVuY3Rpb24gJ21lbV9kcmNpbmRleF90b19kcmNuYW1lJwpwcGM2NC1kaWFnLTIuNi45L3J0YXNf
ZXJyZC9jb252ZXJ0X2R0X25vZGVfcHJvcHMuYzo3MTo2OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1
cm4gdmFsdWUgb2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9y
ZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgcmVhZChmZCwgJmluZGV4LCA0KTsKIyAgICAgIF4K
IyAgIDY5fCAgIAojICAgNzB8ICAgCS8qIHNraXAgdGhlIGZpcnN0IG9uZTsgaXQgaW5kaWNhdGVz
IGhvdyBtYW55IGFyZSBpbiB0aGUgZmlsZSAqLwojICAgNzF8LT4gCXJlYWQoZmQsICZpbmRleCwg
NCk7CiMgICA3MnwgICAKIyAgIDczfCAgIAl3aGlsZSAoKHJlYWQoZmQsICZpbmRleCwgNCkpICE9
IDApIHsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJy
ZC9jb252ZXJ0X2R0X25vZGVfcHJvcHMuYzo5MTo3OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1cm4g
dmFsdWUgb2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1
bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgIHJlYWQoZmQsICZpbmRleCwgNCk7CiMgICAgICAgXgoj
ICAgODl8ICAgCiMgICA5MHwgICAJCS8qIHNraXAgdGhlIGZpcnN0IG9uZTsgaXQgaW5kaWNhdGVz
IGhvdyBtYW55IGFyZSBpbiB0aGUgZmlsZSAqLwojICAgOTF8LT4gCQlyZWFkKGZkLCAmaW5kZXgs
IDQpOwojICAgOTJ8ICAgCiMgICA5M3wgICAJCXdoaWxlIChvZmZzZXQgPiAwKSB7CgpFcnJvcjog
Q0xBTkdfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvY29udmVydF9kdF9ub2Rl
X3Byb3BzLmM6MzE5OjY6IHdhcm5pbmc6IEZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5p
bml0aWFsaXplZCB2YWx1ZQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiY291bGQgbm90IGZpbmQgdGhlICIKIyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+CiMgIDMxN3wgICAJCQkJaWYgKCFtZW1fZHJjaW5kZXhfdG9fZHJjbmFtZShkcmNfdG1wX2lk
eCwKIyAgMzE4fCAgIAkJCQkJCWRyY25hbWUsIDIwKSkgewojICAzMTl8LT4gCQkJCQlmcHJpbnRm
KHN0ZGVyciwgImNvdWxkIG5vdCBmaW5kIHRoZSAiCiMgIDMyMHwgICAJCQkJCQkiZHJjLW5hbWUg
Y29ycmVzcG9uZGluZyB0byAiCiMgIDMyMXwgICAJCQkJCQkiZHJjLWluZGV4IDB4JTA4eFxuIiwg
ZHJjaW5kZXgpOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRh
c19lcnJkL2NvbnZlcnRfZHRfbm9kZV9wcm9wcy5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAn
Y3B1X2RyY2luZGV4X3RvX2RyY25hbWUnCnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2NvbnZl
cnRfZHRfbm9kZV9wcm9wcy5jOjQwMDo2OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1cm4gdmFsdWUg
b2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1X
dW51c2VkLXJlc3VsdF0KIyAgcmVhZChmZCwgJmluZGV4LCA0KTsKIyAgICAgIF4KIyAgMzk4fCAg
IAojICAzOTl8ICAgCS8qIHNraXAgdGhlIGZpcnN0IG9uZTsgaXQgaW5kaWNhdGVzIGhvdyBtYW55
IGFyZSBpbiB0aGUgZmlsZSAqLwojICA0MDB8LT4gCXJlYWQoZmQsICZpbmRleCwgNCk7CiMgIDQw
MXwgICAKIyAgNDAyfCAgIAl3aGlsZSAoKHJlYWQoZmQsICZpbmRleCwgNCkpICE9IDApIHsKCkVy
cm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJyZC9jb252ZXJ0
X2R0X25vZGVfcHJvcHMuYzo0MjA6Nzogd2FybmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9m
ICdyZWFkJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91bnVzZWRfcmVzdWx0IFstV3Vu
dXNlZC1yZXN1bHRdCiMgICByZWFkKGZkLCAmaW5kZXgsIDQpOwojICAgICAgIF4KIyAgNDE4fCAg
IAojICA0MTl8ICAgCQkvKiBza2lwIHRoZSBmaXJzdCBvbmU7IGl0IGluZGljYXRlcyBob3cgbWFu
eSBhcmUgaW4gdGhlIGZpbGUgKi8KIyAgNDIwfC0+IAkJcmVhZChmZCwgJmluZGV4LCA0KTsKIyAg
NDIxfCAgIAojICA0MjJ8ICAgCQl3aGlsZSAob2Zmc2V0ID4gMCkgewoKRXJyb3I6IENPTVBJTEVS
X1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2NvbnZlcnRfZHRfbm9kZV9wcm9w
cy5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnY3B1X2RyY25hbWVfdG9fZHJjaW5kZXgnCnBw
YzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2NvbnZlcnRfZHRfbm9kZV9wcm9wcy5jOjUxNDo2OiB3
YXJuaW5nOiBpZ25vcmluZyByZXR1cm4gdmFsdWUgb2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0
dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgcmVhZChmZCwg
JmluZGV4LCA0KTsKIyAgICAgIF4KIyAgNTEyfCAgIAojICA1MTN8ICAgCS8qIHNraXAgdGhlIGZp
cnN0IG9uZTsgaXQgaW5kaWNhdGVzIGhvdyBtYW55IGFyZSBpbiB0aGUgZmlsZSAqLwojICA1MTR8
LT4gCXJlYWQoZmQsICZpbmRleCwgNCk7CiMgIDUxNXwgICAKIyAgNTE2fCAgIAlkbyB7CgpFcnJv
cjogQ0xBTkdfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvZGlhZ19zdXBwb3J0
LmM6MzUzOjY6IHdhcm5pbmc6IEJyYW5jaCBjb25kaXRpb24gZXZhbHVhdGVzIHRvIGEgZ2FyYmFn
ZSB2YWx1ZQojICAgICAgICBpZiAoZnAyKQojICAgICAgICAgICAgXn5+CiMgIDM1MXwgICAKIyAg
MzUyfCAgIG91dDoKIyAgMzUzfC0+IAlpZiAoZnAyKQojICAzNTR8ICAgCQlmY2xvc2UoZnAyKTsK
IyAgMzU1fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRh
c19lcnJkL2RpYWdfc3VwcG9ydC5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnZ2V0X2R0X3N0
YXR1cycKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvZGlhZ19zdXBwb3J0LmM6MzU0Ojk6IHdh
cm5pbmc6ICdmcDInIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBb
LVdtYXliZS11bmluaXRpYWxpemVkXQojICAgZmNsb3NlKGZwMik7CiMgICAgICAgICBeCiMgIDM1
MnwgICBvdXQ6CiMgIDM1M3wgICAJaWYgKGZwMikKIyAgMzU0fC0+IAkJZmNsb3NlKGZwMik7CiMg
IDM1NXwgICAKIyAgMzU2fCAgIAlpZiAoZnAxKQoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBw
YzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2R1bXAuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24g
J2NoZWNrX3BsYXRmb3JtX2R1bXAnCnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2R1bXAuYzoz
MDQ6Nzogd2FybmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdmZ2V0cycsIGRlY2xhcmVk
IHdpdGggYXR0cmlidXRlIHdhcm5fdW51c2VkX3Jlc3VsdCBbLVd1bnVzZWQtcmVzdWx0XQojICBm
Z2V0cyhmaWxlbmFtZSwgRFVNUF9NQVhfRk5BTUVfTEVOICsgMjAsIGYpOwojICAgICAgIF4KIyAg
MzAyfCAgIAkJcmV0dXJuOwojICAzMDN8ICAgCX0KIyAgMzA0fC0+IAlmZ2V0cyhmaWxlbmFtZSwg
RFVNUF9NQVhfRk5BTUVfTEVOICsgMjAsIGYpOwojICAzMDV8ICAgCXJjID0gc3BjbG9zZShmLCBj
cGlkKTsKIyAgMzA2fCAgIAoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkv
cnRhc19lcnJkL2VsYS5jOjYwMDoxOTogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICd1bnJlY292
ZXJhYmxlX2J5cGFzc2VkJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50
ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdleHRoZHInKQojICAgICAgICBkZWNvbmZpZ19lcnJv
ciA9IGV4dGhkci0+dW5yZWNvdmVyYWJsZV9ieXBhc3NlZDsKIyAgICAgICAgICAgICAgICAgICAg
ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIyAgNTk4fCAgIAltZW1jcHkoZXZl
bnQtPnNsX2VudHJ5LT5yYXdfZGF0YSwgZXZlbnQtPmV2ZW50X2J1ZiwgZXZlbnQtPmxlbmd0aCk7
CiMgIDU5OXwgICAKIyAgNjAwfC0+IAlkZWNvbmZpZ19lcnJvciA9IGV4dGhkci0+dW5yZWNvdmVy
YWJsZV9ieXBhc3NlZDsKIyAgNjAxfCAgIAlwcmVkaWN0aXZlX2Vycm9yID0gZXh0aGRyLT5wcmVk
aWN0aXZlOwojICA2MDJ8ICAgCgpFcnJvcjogQ0xBTkdfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYu
OS9ydGFzX2VycmQvZWxhLmM6OTAwOjE5OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi
YWdlIG9yIHVuZGVmaW5lZAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlX2Rlc2Mt
PnJjb2RlID0gc2lnZGV2LmxlZDsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBeIH5+fn5+fn5+fn4KIyAgODk4fCAgIAojICA4OTl8ICAgCQkJaWYgKHNpZCA9
PSAwKSB7CiMgIDkwMHwtPiAJCQkJZV9kZXNjLT5yY29kZSA9IHNpZ2Rldi5sZWQ7CiMgIDkwMXwg
ICAJCQl9CiMgIDkwMnwgICAJCQllbHNlIGlmIChzZWQgPT0gMCkgewoKRXJyb3I6IENMQU5HX1dB
Uk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2VsYS5jOjE2MDA6MTg6IHdhcm5pbmc6
IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJz09JyBpcyBhIGdhcmJhZ2UgdmFsdWUKIyAgICAgICAgaWYg
KHNpZy0+c3RhdHVzID09IERFVklDRV9PSyAmJiBzZW4tPnN0YXR1cyA9PSBERVZJQ0VfT0spIHsK
IyAgICAgICAgICAgIH5+fn5+fn5+fn5+IF4KIyAxNTk4fCAgIAlpbnQgc3dhcF9sb2NzID0gMDsK
IyAxNTk5fCAgIAojIDE2MDB8LT4gCWlmIChzaWctPnN0YXR1cyA9PSBERVZJQ0VfT0sgJiYgc2Vu
LT5zdGF0dXMgPT0gREVWSUNFX09LKSB7CiMgMTYwMXwgICAJCS8qIDIgZGV2aWNlcyByZXR1cm5l
ZCBmcm9tIGVycm9yIGxvZyAqLwojIDE2MDJ8ICAgCQkvKiBpZiBvbmUgaXMgbm9uIGludGVncmF0
ZWQsIHVzZSBpdCBmb3IgdGhlIHNybiAqLwoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRp
YWctMi42LjkvcnRhc19lcnJkL2VsYS5jOjE5NDY6MTc6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJh
bmQgb2YgJz09JyBpcyBhIGdhcmJhZ2UgdmFsdWUKIyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChleHRfZXBvdyA9PSBQQ0lFUE9XMTExKQojICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+
fn5+fn5+IF4KIyAxOTQ0fCAgIAkJCS8qIGxvc3Mgb2YgcG93ZXIgc291cmNlICovCiMgMTk0NXwg
ICAJCQkvKiBmaXJzdCBjaGVja2luZyBzeXN0ZW0gc3BlY2lmaWMgZGF0YSAqLwojIDE5NDZ8LT4g
CQkJaWYgKGV4dF9lcG93ID09IFBDSUVQT1cxMTEpCiMgMTk0N3wgICAJCQkJLyogQUMgcG93ZXIg
dG8gZW50aXJlIHN5c3RlbSAqLwojIDE5NDh8ICAgCQkJCXJlcG9ydF9zcm4oZXZlbnQsIDAsIGVw
b3c4MTMpOwoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJk
L2VsYS5jOjE5NjA6MTc6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJz09JyBpcyBhIGdh
cmJhZ2UgdmFsdWUKIyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHRfZXBvdyA9PSBQQ0lF
UE9XMDAxKQojICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+IF4KIyAxOTU4fCAg
IAkJfSBlbHNlIGlmIChlcnJvcl90eXBlICYgRVBPV0IxN2IyKSB7CiMgMTk1OXwgICAJCQkvKiBp
bnRlcm5hbCBwb3dlciBzdXBwbHkgZmFpbHVyZSAqLwojIDE5NjB8LT4gCQkJaWYgKGV4dF9lcG93
ID09IFBDSUVQT1cwMDEpCiMgMTk2MXwgICAJCQkJLyogMy80IHBzIGluIEkvTyByYWNrICovCiMg
MTk2MnwgICAJCQkJcmVwb3J0X3NybihldmVudCwgMCwgZXBvdzgxNik7CgpFcnJvcjogQ09NUElM
RVJfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvZWxhLmM6IHNjb3BlX2hpbnQ6
IEluIGZ1bmN0aW9uICdwcm9jZXNzX2Vwb3cnCnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2Vs
YS5jOjE5NjM6MTI6IHdhcm5pbmc6ICdleHRfZXBvdycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXpl
ZCBpbiB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICAgZWxzZSBpZiAo
ZXh0X2Vwb3cgPT0gUENJRVBPVzAxMCkKIyAgICAgICAgICAgIF4KcHBjNjQtZGlhZy0yLjYuOS9y
dGFzX2VycmQvZWxhLmM6MTkxNDoxODogbm90ZTogJ2V4dF9lcG93JyB3YXMgZGVjbGFyZWQgaGVy
ZQojICBpbnQgKnJlZywgcmxlbiwgZXh0X2Vwb3c7CiMgICAgICAgICAgICAgICAgICBeCiMgMTk2
MXwgICAJCQkJLyogMy80IHBzIGluIEkvTyByYWNrICovCiMgMTk2MnwgICAJCQkJcmVwb3J0X3Ny
bihldmVudCwgMCwgZXBvdzgxNik7CiMgMTk2M3wtPiAJCQllbHNlIGlmIChleHRfZXBvdyA9PSBQ
Q0lFUE9XMDEwKQojIDE5NjR8ICAgCQkJCS8qIDEvNCBwcyBpbiBJL08gcmFjayAqLwojIDE5NjV8
ICAgCQkJCXJlcG9ydF9zcm4oZXZlbnQsIDAsIGVwb3c4MTcpOwoKRXJyb3I6IENPTVBJTEVSX1dB
Uk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2VsYS5jOiBzY29wZV9oaW50OiBJbiBm
dW5jdGlvbiAncHJvY2Vzc19yZWZjb2RlcycKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvZWxh
LmM6MzA2MjozODogd2FybmluZzogJ2xjYycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0
aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICAgZGJnKCJudW1iZXIgb2Yg
bG9jIGNvZGVzID0gMHgleCIsICpsY2MpOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBeCiMgMzA2MHwgICAJCWlmICghIG9uZTJvbmUpIHsKIyAzMDYxfCAgIAkJCXJjdGFi
bG9jW3JjdGFiWzBdXSA9ICpsY2M7CiMgMzA2MnwtPiAJCQlkYmcoIm51bWJlciBvZiBsb2MgY29k
ZXMgPSAweCV4IiwgKmxjYyk7CiMgMzA2M3wgICAJCQlsY2MrKzsJCSAgICAgLyogbmV4dCBsb2Mg
Y29kZSBjb3VudCAqLwojIDMwNjR8ICAgCQl9CgpFcnJvcjogQ0xBTkdfV0FSTklORzoKcHBjNjQt
ZGlhZy0yLjYuOS9ydGFzX2VycmQvZmlsZXMuYzoyNzA6MjM6IHdhcm5pbmc6IE51bGwgcG9pbnRl
ciBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gYSAnbm9ubnVsbCcgcGFyYW1ldGVyCiMgICAgICAg
ICAgICAgICAgcHJvY19lcnJvcl9sb2dfZmQgPSBvcGVuKHByb2NfZXJyb3JfbG9nMiwgT19SRE9O
TFkpOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fgojICAyNjh8ICAgCXByb2NfZXJyb3JfbG9nX2ZkID0gb3Blbihwcm9j
X2Vycm9yX2xvZzEsIE9fUkRPTkxZKTsKIyAgMjY5fCAgIAlpZiAocHJvY19lcnJvcl9sb2dfZmQg
PD0gMCkKIyAgMjcwfC0+IAkJcHJvY19lcnJvcl9sb2dfZmQgPSBvcGVuKHByb2NfZXJyb3JfbG9n
MiwgT19SRE9OTFkpOwojICAyNzF8ICAgCiMgIDI3MnwgICAJaWYgKHByb2NfZXJyb3JfbG9nX2Zk
IDw9IDApIHsKCkVycm9yOiBDTEFOR19XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJy
ZC9maWxlcy5jOjYzNzoxMjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50
ZWQgdG8gYnkgJ3J0YXNfZXJyZF9sb2dfYycKIyAgICAgICAgICAgICAgICBkaXJfbmFtZSA9IGRp
cm5hbWUocnRhc19lcnJkX2xvZ19jKTsKIyAgICAgICAgICAgICAgICB+fn5+fn5+fn5efn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fgojICA2MzV8ICAgCiMgIDYzNnwgICAJCX0KIyAgNjM3fC0+IAkJ
ZGlyX25hbWUgPSBkaXJuYW1lKHJ0YXNfZXJyZF9sb2dfYyk7CiMgIDYzOHwgICAJCWRpcl9mZCA9
IG9wZW4oZGlyX25hbWUsIE9fUkRPTkxZfE9fRElSRUNUT1JZKTsKIyAgNjM5fCAgIAkJcmMgPSBm
c3luYyhkaXJfZmQpOwoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRh
c19lcnJkL2d1YXJkLmM6MzA2OjExOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIGFzIGFu
IGFyZ3VtZW50IHRvIGEgJ25vbm51bGwnIHBhcmFtZXRlcgojICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0cnRvbChwb3MsIE5VTEwsIDApOwojICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CiMgIDMwNHwgICAJCQlidWZmZXJbc3RybGVuKGJ1
ZmZlciktMV0gPSAnXDAnOwojICAzMDV8ICAgCQkJZmNsb3NlKGZwKTsKIyAgMzA2fC0+IAkJCXJl
dHVybiBzdHJ0b2wocG9zLCBOVUxMLCAwKTsKIyAgMzA3fCAgIAkJfQojICAzMDh8ICAgCX0KCkVy
cm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJyZC9ob3RwbHVn
LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdoYW5kbGVfaG90cGx1Z19ldmVudCcKcHBjNjQt
ZGlhZy0yLjYuOS9ydGFzX2VycmQvaG90cGx1Zy5jOjI1OjIxOiB3YXJuaW5nOiB2YXJpYWJsZSAn
cmMnIHNldCBidXQgbm90IHVzZWQgWy1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCiMgICAgICAg
ICBpbnQgc3RhdHVzLCByYzsKIyAgICAgICAgICAgICAgICAgICAgIF4KIyAgIDIzfCAgICAgICAg
ICAgc3RydWN0IHJ0YXNfaG90cGx1Z19zY24gKmhvdHBsdWc7CiMgICAyNHwgICAgICAgICAgIHBp
ZF90IGNoaWxkOwojICAgMjV8LT4gICAgICAgICBpbnQgc3RhdHVzLCByYzsKIyAgIDI2fCAgICAg
ICAgICAgY2hhciBkcmNfaW5kZXhbMTFdOwojICAgMjd8ICAgCWNoYXIgY291bnRbNF07CgpFcnJv
cjogQ09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvcHJybi5jOiBz
Y29wZV9oaW50OiBJbiBmdW5jdGlvbiAnYWRkX2RyY29uZl9waGFuZGxlcycKcHBjNjQtZGlhZy0y
LjYuOS9ydGFzX2VycmQvcHJybi5jOjIzNjo3OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1cm4gdmFs
dWUgb2YgJ2ZyZWFkJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91bnVzZWRfcmVzdWx0
IFstV3VudXNlZC1yZXN1bHRdCiMgIGZyZWFkKG1lbWJ1Ziwgc2J1Zi5zdF9zaXplLCAxLCBmZCk7
CiMgICAgICAgXgojICAyMzR8ICAgCX0KIyAgMjM1fCAgIAojICAyMzZ8LT4gCWZyZWFkKG1lbWJ1
Ziwgc2J1Zi5zdF9zaXplLCAxLCBmZCk7CiMgIDIzN3wgICAJaWYgKGZlcnJvcihmZCkpIHsKIyAg
MjM4fCAgIAkJZmNsb3NlKGZkKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFn
LTIuNi45L3J0YXNfZXJyZC9ydGFzX2VycmQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2Rh
ZW1vbml6ZScKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvcnRhc19lcnJkLmM6NzQ6Nzogd2Fy
bmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdjaGRpcicsIGRlY2xhcmVkIHdpdGggYXR0
cmlidXRlIHdhcm5fdW51c2VkX3Jlc3VsdCBbLVd1bnVzZWQtcmVzdWx0XQojICBjaGRpcigiLyIp
OwojICAgICAgIF4KIyAgIDcyfCAgIAojICAgNzN8ICAgCS8qIGNoYW5nZSB0byBhIHNhZmUgZGly
ICovCiMgICA3NHwtPiAJY2hkaXIoIi8iKTsKIyAgIDc1fCAgIAojICAgNzZ8ICAgCS8qIGNsZWFy
IGZpbGUgbW9kZSBtYXNrICovCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0y
LjYuOS9ydGFzX2VycmQvcnRhc19lcnJkLmM6ODY6NTogd2FybmluZzogaWdub3JpbmcgcmV0dXJu
IHZhbHVlIG9mICdkdXAnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1
bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgZHVwKGkpOwojICAgICBeCiMgICA4NHwgICAKIyAgIDg1
fCAgIAlpID0gb3BlbigiL2Rldi9udWxsIiwgT19SRFdSKTsKIyAgIDg2fC0+IAlkdXAoaSk7CiMg
ICA4N3wgICAJZHVwKGkpOwojICAgODh8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKcHBj
NjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvcnRhc19lcnJkLmM6ODc6NTogd2FybmluZzogaWdub3Jp
bmcgcmV0dXJuIHZhbHVlIG9mICdkdXAnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3Vu
dXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgZHVwKGkpOwojICAgICBeCiMgICA4NXwg
ICAJaSA9IG9wZW4oIi9kZXYvbnVsbCIsIE9fUkRXUik7CiMgICA4NnwgICAJZHVwKGkpOwojICAg
ODd8LT4gCWR1cChpKTsKIyAgIDg4fCAgIAojICAgODl8ICAgCXJldHVybjsKCkVycm9yOiBDTEFO
R19XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJyZC9zZXJ2aWNlbG9nLmM6MTc5OjY6
IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnY2NpbicgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNl
IG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnY2FsbG91dCcpCiMgICAg
ICAgIGlmIChjYWxsb3V0LT5jY2luKQojICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgojICAxNzd8
ICAgCiMgIDE3OHwgICBtZW1fZmFpbDoKIyAgMTc5fC0+IAlpZiAoY2FsbG91dC0+Y2NpbikKIyAg
MTgwfCAgIAkJZnJlZShjYWxsb3V0LT5jY2luKTsKIyAgMTgxfCAgIAlpZiAoY2FsbG91dC0+c2Vy
aWFsKQo=
------=_Part_219942_2100275017.1438003944946
Content-Type: text/plain; name=lsvpd-results.txt
Content-Disposition: attachment; filename=lsvpd-results.txt
Content-Transfer-Encoding: base64

RXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9tYW51ZmFj
dHVyZXIuY3BwOiBzY29wZV9oaW50OiBJbiBjb25zdHJ1Y3RvciAnbHN2cGQ6Ok1hbnVmYWN0dXJl
cjo6TWFudWZhY3R1cmVyKHN0ZDo6aWZzdHJlYW0mKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFs
L21hbnVmYWN0dXJlci5jcHA6NDY6Nzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdkZXZJRCcg
Wy1XdW51c2VkLXZhcmlhYmxlXQojICAgaW50IGRldklEOwojICAgICAgIF4KIyAgIDQ0fCAgIAlN
YW51ZmFjdHVyZXI6Ok1hbnVmYWN0dXJlciggaWZzdHJlYW0mIHBjaUlEICkKIyAgIDQ1fCAgIAl7
CiMgICA0NnwtPiAJCWludCBkZXZJRDsKIyAgIDQ3fCAgIAkJc3RyaW5nIGluOwojICAgNDh8ICAg
CQlib29sIGRvbmUgPSBmYWxzZTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcu
NS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0cmVlY29sbGVjdG9yLmNwcDogc2Nv
cGVfaGludDogSW4gbWVtYmVyIGZ1bmN0aW9uICd2b2lkIGxzdnBkOjpEZXZpY2VUcmVlQ29sbGVj
dG9yOjpwYXJzZVJ0YXNWcGQoc3RkOjp2ZWN0b3I8bHN2cGQ6OkNvbXBvbmVudCo+JiwgY2hhcios
IGludCknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVj
b2xsZWN0b3IuY3BwOjE3MToxNzogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBh
bmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICB3aGls
ZSggc2l6ZSA8IHJ0YXNEYXRhU2l6ZSAmJiByZXQgPiAwICkKIyAgICAgICAgICAgICAgICAgXgoj
ICAxNjl8ICAgCQlpZiggcnRhc0RhdGEgPT0gTlVMTCB8fCBydGFzRGF0YVNpemUgPD0gMCApCiMg
IDE3MHwgICAJCQlyZXR1cm47CiMgIDE3MXwtPiAJCXdoaWxlKCBzaXplIDwgcnRhc0RhdGFTaXpl
ICYmIHJldCA+IDAgKQojICAxNzJ8ICAgCQl7CiMgIDE3M3wgICAJCQlDb21wb25lbnQqIGMgPSBu
ZXcgQ29tcG9uZW50KCApOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3Ny
Yy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9o
aW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ2Jvb2wgbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0b3I6
OmZpbGxRdWlja1ZQRChsc3ZwZDo6Q29tcG9uZW50KiknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5h
bC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOjIwODo3OiB3YXJuaW5nOiB1
bnVzZWQgdmFyaWFibGUgJ2RvbmUnIFstV3VudXNlZC12YXJpYWJsZV0KIyAgIGludCBkb25lID0g
MCwgaTsKIyAgICAgICBeCiMgIDIwNnwgICAJewojICAyMDd8ICAgCQlzdHJpbmcgdmFsLCBwYXRo
LCBwYXRoX3RtcDsKIyAgMjA4fC0+IAkJaW50IGRvbmUgPSAwLCBpOwojICAyMDl8ICAgCiMgIDIx
MHwgICAJCS8qIEdyYWIgYW4gZWFzeSBBSVggTmFtZSwgaGlnaGVyIHF1YWxpdHkgdGhhbiB0aGUg
YmFzZSBBSVggKi8KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50
ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0cmVlY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDog
SW4gbWVtYmVyIGZ1bmN0aW9uICd1bnNpZ25lZCBpbnQgbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0
b3I6OnBhcnNlVlBESGVhZGVyKGNoYXIqLCBjaGFyKiosIGNoYXIqKiknCmxzdnBkLTEuNy41L3Ny
Yy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOjM5ODoyOiB3
YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uIFstV3JldHVy
bi10eXBlXQojICB9CiMgIF4KIyAgMzk2fCAgIAkJZWxzZSBpZiAoaXNQbGF0Zm9ybU9QQUwoKSkK
IyAgMzk3fCAgIAkJCXJldHVybiBwYXJzZU9wYWxWUERIZWFkZXIoYnVmLCBmcnVOYW1lLCByZWNv
cmRTdGFydCk7CiMgIDM5OHwtPiAJfQojICAzOTl8ICAgCiMgIDQwMHwgICAJLyoqCgpFcnJvcjog
Q0xBTkdfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2
aWNldHJlZWNvbGxlY3Rvci5jcHA6NDI2Ojc6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdh
cmJhZ2Ugb3IgdW5kZWZpbmVkCiMgICAgICAgICAgICAgICAgYnVmID0gcHRyOwojICAgICAgICAg
ICAgICAgICAgICBeIH5+fgojICA0MjR8ICAgCiMgIDQyNXwgICAJCWVuZCA9IGJ1ZiArIHNpemU7
CiMgIDQyNnwtPiAJCWJ1ZiA9IHB0cjsKIyAgNDI3fCAgIAojICA0Mjh8ICAgCQkvKgoKRXJyb3I6
IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl
L2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rpb24g
J3Vuc2lnbmVkIGludCBsc3ZwZDo6RGV2aWNlVHJlZUNvbGxlY3Rvcjo6cGFyc2VWUERCdWZmZXIo
bHN2cGQ6OkNvbXBvbmVudCosIGNoYXIqKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19p
bnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6NDU2OjU2OiB3YXJuaW5nOiBkZXByZWNh
dGVkIGNvbnZlcnNpb24gZnJvbSBzdHJpbmcgY29uc3RhbnQgdG8gJ2NoYXIqJyBbLVd3cml0ZS1z
dHJpbmdzXQojICAgIHNldFZQREZpZWxkKCBmaWxsTWUsIGtleSwgZmllbGQsIF9fRklMRV9fLCBf
X0xJTkVfXyApOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBeCiMgIDQ1NHwgICAKIyAgNDU1fCAgIAkJCWZpZWxkID0gc2FuaXRpemVWUERG
aWVsZCh2YWwsIGxlbmd0aCk7CiMgIDQ1NnwtPiAJCQlzZXRWUERGaWVsZCggZmlsbE1lLCBrZXks
IGZpZWxkLCBfX0ZJTEVfXywgX19MSU5FX18gKTsKIyAgNDU3fCAgIAkJfQojICA0NTh8ICAgCQly
ZXR1cm4gc2l6ZTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50
ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0cmVlY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDog
SW4gbWVtYmVyIGZ1bmN0aW9uICdsc3ZwZDo6Q29tcG9uZW50KiBsc3ZwZDo6RGV2aWNlVHJlZUNv
bGxlY3Rvcjo6ZmluZENvbXBvbmVudChzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4sIHN0
ZDo6c3RyaW5nKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2aWNl
dHJlZWNvbGxlY3Rvci5jcHA6NTU5OjMzOiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2ln
bmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAg
IGZvciAoaW50IGkgPSAwOyBpIDwgZGV2cy5zaXplKCk7IGkrKykKIyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF4KIyAgNTU3fCAgIAkJY29uc3QgdmVjdG9yPENvbXBvbmVudCo+IGRl
dnMsIHN0cmluZyBkZXZQYXRoICkKIyAgNTU4fCAgIAl7CiMgIDU1OXwtPiAJCWZvciAoaW50IGkg
PSAwOyBpIDwgZGV2cy5zaXplKCk7IGkrKykKIyAgNTYwfCAgIAkJCWlmIChkZXZzW2ldLT5kZXZp
Y2VUcmVlTm9kZS5nZXRWYWx1ZSgpID09IGRldlBhdGgpCiMgIDU2MXwgICAJCQkJcmV0dXJuIGRl
dnNbaV07CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFs
L3N5c19pbnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1l
bWJlciBmdW5jdGlvbiAnbHN2cGQ6OkNvbXBvbmVudCogbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0
b3I6OmZpbmRTQ1NJUGFyZW50KGxzdnBkOjpDb21wb25lbnQqLCBzdGQ6OnZlY3Rvcjxsc3ZwZDo6
Q29tcG9uZW50Kj4pJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZp
Y2V0cmVlY29sbGVjdG9yLmNwcDo3MTg6NjM6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBz
aWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQoj
ICAgICBpZiAoKGxvYyA9IHN5c0Rldi5yZmluZCgiLyIsIHN5c0Rldi5sZW5ndGgoKSkpICE9IHN0
cmluZzo6bnBvcyApCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBeCiMgIDcxNnwgICAJCQlzeXNEZXYgPSBmaWxsTWUtPnN5c0Zz
TGlua1RhcmdldC5kYXRhVmFsdWU7CiMgIDcxN3wgICAJCQl3aGlsZSAoc3lzRGV2Lmxlbmd0aCgp
ID4gMSkgewojICA3MTh8LT4gCQkJCWlmICgobG9jID0gc3lzRGV2LnJmaW5kKCIvIiwgc3lzRGV2
Lmxlbmd0aCgpKSkgIT0gc3RyaW5nOjpucG9zICkKIyAgNzE5fCAgIAkJCQkJc3lzRGV2ID0gc3lz
RGV2LnN1YnN0cigwLCBsb2MpOwojICA3MjB8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoK
bHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rv
ci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAndm9pZCBsc3ZwZDo6RGV2aWNl
VHJlZUNvbGxlY3Rvcjo6Z2V0T3BhbEZpcm13YXJlVlBEKHN0ZDo6dmVjdG9yPGxzdnBkOjpDb21w
b25lbnQqPiYpJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0
cmVlY29sbGVjdG9yLmNwcDo4MjY6Njg6IHdhcm5pbmc6IGRlcHJlY2F0ZWQgY29udmVyc2lvbiBm
cm9tIHN0cmluZyBjb25zdGFudCB0byAnY2hhcionIFstV3dyaXRlLXN0cmluZ3NdCiMgICAgc2V0
VlBERmllbGQoIGMsIHN0cmluZygiTUwiKSwgdmFsLnN1YnN0cigzKSwgX19GSUxFX18sIF9fTElO
RV9fICk7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF4KIyAgODI0fCAgIAkJdmFsID0gZ2V0QXR0clZhbHVlKCBvcy5z
dHIoICksIE9QQUxfU1lTX0ZXX01MX0ZJTEUgKTsKIyAgODI1fCAgIAkJaWYgKHZhbC5sZW5ndGgo
KSA+IDApCiMgIDgyNnwtPiAJCQlzZXRWUERGaWVsZCggYywgc3RyaW5nKCJNTCIpLCB2YWwuc3Vi
c3RyKDMpLCBfX0ZJTEVfXywgX19MSU5FX18gKTsKIyAgODI3fCAgIAojICA4Mjh8ICAgCQl2YWwg
PSBnZXRBdHRyVmFsdWUoIG9zLnN0ciggKSwgT1BBTF9TWVNfRldfTUlfRklMRSApOwoKRXJyb3I6
IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl
L2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOjgzMDo2ODogd2FybmluZzogZGVwcmVjYXRlZCBjb252
ZXJzaW9uIGZyb20gc3RyaW5nIGNvbnN0YW50IHRvICdjaGFyKicgWy1Xd3JpdGUtc3RyaW5nc10K
IyAgICBzZXRWUERGaWVsZCggYywgc3RyaW5nKCJNSSIpLCB2YWwuc3Vic3RyKDMpLCBfX0ZJTEVf
XywgX19MSU5FX18gKTsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA4Mjh8ICAgCQl2YWwgPSBnZXRBdHRyVmFs
dWUoIG9zLnN0ciggKSwgT1BBTF9TWVNfRldfTUlfRklMRSApOwojICA4Mjl8ICAgCQlpZiAodmFs
Lmxlbmd0aCgpID4gMCkKIyAgODMwfC0+IAkJCXNldFZQREZpZWxkKCBjLCBzdHJpbmcoIk1JIiks
IHZhbC5zdWJzdHIoMyksIF9fRklMRV9fLCBfX0xJTkVfXyApOwojICA4MzF8ICAgCiMgIDgzMnwg
ICAJCXZhbCA9IGdldEF0dHJWYWx1ZSggb3Muc3RyKCApLCBPUEFMX1NZU19GV19DTF9GSUxFICk7
CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19p
bnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6ODM2OjU4OiB3YXJuaW5nOiBkZXByZWNh
dGVkIGNvbnZlcnNpb24gZnJvbSBzdHJpbmcgY29uc3RhbnQgdG8gJ2NoYXIqJyBbLVd3cml0ZS1z
dHJpbmdzXQojICAgIHNldFZQREZpZWxkKCBjLCBzdHJpbmcoIkNMIiksIHZhbCwgX19GSUxFX18s
IF9fTElORV9fICk7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXgojICA4MzR8ICAgCQkJc3RyaW5nIGZpcm13YXJlID0gUGxhdGZvcm1D
b2xsZWN0b3I6OmdldEZpcm13YXJlTmFtZSgpOwojICA4MzV8ICAgCQkJdmFsID0gZmlybXdhcmUg
KyAiICIgKyB2YWw7CiMgIDgzNnwtPiAJCQlzZXRWUERGaWVsZCggYywgc3RyaW5nKCJDTCIpLCB2
YWwsIF9fRklMRV9fLCBfX0xJTkVfXyApOwojICA4Mzd8ICAgCQl9CiMgIDgzOHwgICAKCkVycm9y
OiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFj
ZS9kZXZpY2V0cmVlY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDogSW4gbWVtYmVyIGZ1bmN0aW9u
ICdzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4gbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0
b3I6OmdldENvbXBvbmVudHNWZWN0b3Ioc3RkOjp2ZWN0b3I8bHN2cGQ6OkNvbXBvbmVudCo+Jikn
CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0
b3IuY3BwOjk1ODo4OiB3YXJuaW5nOiB2YXJpYWJsZSAnZGV2JyBzZXQgYnV0IG5vdCB1c2VkIFst
V3VudXNlZC1idXQtc2V0LXZhcmlhYmxlXQojICAgYm9vbCBkZXY7CiMgICAgICAgIF4KIyAgOTU2
fCAgIAkJQ29tcG9uZW50ICp0bXA7CiMgIDk1N3wgICAJCUZTV2FsayBmc3cgPSBGU1dhbGsoKTsK
IyAgOTU4fC0+IAkJYm9vbCBkZXY7CiMgIDk1OXwgICAKIyAgOTYwfCAgIAkJZnVsbExpc3QucHVz
aF9iYWNrKHJvb3REaXIpOyAvL1N0YXJ0IGF0IHRvcCBvZiBkZXZpY2UgdHJlZQoKRXJyb3I6IENP
TVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2Rl
dmljZXRyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ3Zv
aWQgbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0b3I6OmdldFJ0YXNTeXN0ZW1Mb2NhdGlvbkNvZGUo
bHN2cGQ6OlN5c3RlbSopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9k
ZXZpY2V0cmVlY29sbGVjdG9yLmNwcDoxMDcxOjQ3OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdl
ZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFy
ZV0KIyAgIHdoaWxlKCAoIHBvcyA9IHZhbC5maW5kKCAiLSIgKSApICE9IHN0cmluZzo6bnBvcyAp
CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAxMDY5
fCAgIAkJCXJldHVybjsKIyAxMDcwfCAgIAkJb3MgPDwgIlUiOwojIDEwNzF8LT4gCQl3aGlsZSgg
KCBwb3MgPSB2YWwuZmluZCggIi0iICkgKSAhPSBzdHJpbmc6Om5wb3MgKQojIDEwNzJ8ICAgCQl7
CiMgMTA3M3wgICAJCQl2YWxbIHBvcyBdID0gJy4nOwoKRXJyb3I6IENMQU5HX1dBUk5JTkc6Cmxz
dnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3Iu
Y3BwOjEyMDM6ODogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmlu
ZWQKIyAgICAgICAgICAgICAgICBkYXRhID0gcmVjb3JkU3RhcnQ7CiMgICAgICAgICAgICAgICAg
ICAgICBeIH5+fn5+fn5+fn5+CiMgMTIwMXwgICAJCX0KIyAxMjAyfCAgIAkJZW5kID0gZGF0YSAr
IHNpemU7CiMgMTIwM3wtPiAJCWRhdGEgPSByZWNvcmRTdGFydDsKIyAxMjA0fCAgIAojIDEyMDV8
ICAgCQl3aGlsZSggZGF0YSA8IGVuZCAmJiBkYXRhWyAwIF0gIT0gMHg3OCApCgpFcnJvcjogQ09N
UElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2
aWNldHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAndm9p
ZCBsc3ZwZDo6RGV2aWNlVHJlZUNvbGxlY3Rvcjo6cGFyc2VTeXNWUEQoY2hhciosIGxzdnBkOjpT
eXN0ZW0qKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2aWNldHJl
ZWNvbGxlY3Rvci5jcHA6MTIxNTo1Mzogd2FybmluZzogZGVwcmVjYXRlZCBjb252ZXJzaW9uIGZy
b20gc3RyaW5nIGNvbnN0YW50IHRvICdjaGFyKicgWy1Xd3JpdGUtc3RyaW5nc10KIyAgICBzZXRW
UERGaWVsZCggc3lzLCBrZXksIGZpZWxkLCBfX0ZJTEVfXywgX19MSU5FX18gKTsKIyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojIDEyMTN8ICAg
CiMgMTIxNHwgICAJCQlmaWVsZCA9IHNhbml0aXplVlBERmllbGQodmFsLCByZWNvcmRTaXplKTsK
IyAxMjE1fC0+IAkJCXNldFZQREZpZWxkKCBzeXMsIGtleSwgZmllbGQsIF9fRklMRV9fLCBfX0xJ
TkVfXyApOwojIDEyMTZ8ICAgCQkJZGF0YSArPSByZWNvcmRTaXplOwojIDEyMTd8ICAgCQl9CgpF
cnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRl
cmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJlciBmdW5j
dGlvbiAndm9pZCBsc3ZwZDo6RGV2aWNlVHJlZUNvbGxlY3Rvcjo6cGFyc2VNYWpvck1pbm9yKGxz
dnBkOjpDb21wb25lbnQqLCBzdGQ6OnN0cmluZyYsIHN0ZDo6c3RyaW5nJiknCmxzdnBkLTEuNy41
L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOjEyMjk6
MjU6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVn
ZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgIGlmIChpbmRleCA9PSBzdHJpbmc6
Om5wb3MpCiMgICAgICAgICAgICAgICAgICAgICAgICAgXgojIDEyMjd8ICAgCQl7CiMgMTIyOHwg
ICAJCQlpbmRleCA9IGFkZHIuZmluZCggJzonICk7CiMgMTIyOXwtPiAJCQlpZiAoaW5kZXggPT0g
c3RyaW5nOjpucG9zKQojIDEyMzB8ICAgCQkJCXJldHVybjsKIyAxMjMxfCAgIAkJCW1ham9yID0g
YWRkci5zdWJzdHIoIDAsIGluZGV4ICk7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQt
MS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6
MTIzODoyNTogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQg
aW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgaWYgKGluZGV4ID09IHN0
cmluZzo6bnBvcykKIyAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgMTIzNnwgICAJCXsKIyAx
MjM3fCAgIAkJCWluZGV4ID0gYWRkci5maW5kKCAnLicgKTsKIyAxMjM4fC0+IAkJCWlmIChpbmRl
eCA9PSBzdHJpbmc6Om5wb3MpCiMgMTIzOXwgICAJCQkJcmV0dXJuOwojIDEyNDB8ICAgCQkJbWFq
b3IgPSBhZGRyLnN1YnN0ciggMCwgaW5kZXggKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgps
c3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0cmVlY29sbGVjdG9y
LmNwcDoxMjQ0OjQ0OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNp
Z25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgICAoIGluZGV4ID0g
YWRkci5maW5kKCAnOicgKSApICE9IHN0cmluZzo6bnBvcyApCiMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAxMjQyfCAgIAkJfQojIDEyNDN8ICAgCQllbHNl
IGlmKCBjb21wLT5kZXZCdXMuZGF0YVZhbHVlID09ICJ1c2IiICYmCiMgMTI0NHwtPiAJCQkoIGlu
ZGV4ID0gYWRkci5maW5kKCAnOicgKSApICE9IHN0cmluZzo6bnBvcyApCiMgMTI0NXwgICAJCXsK
IyAxMjQ2fCAgIAkJCW1ham9yID0gYWRkci5zdWJzdHIoIDAsIGluZGV4ICk7CgpFcnJvcjogQ0xB
TkdfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZnN3YWxr
LmNwcDoxNTk6OTogd2FybmluZzogVW5kZWZpbmVkIG9yIGdhcmJhZ2UgdmFsdWUgcmV0dXJuZWQg
dG8gY2FsbGVyCiMgICAgICAgIHJldHVybiByZXQ7CiMgICAgICAgIF5+fn5+fn5+fn4KIyAgMTU3
fCAgICAgICAgICAgICAgICAgICByZXQgPSB0cnVlOwojICAxNTh8ICAgCiMgIDE1OXwtPiAgICAg
ICAgIHJldHVybiByZXQ7CiMgIDE2MHwgICAKIyAgMTYxfCAgIAl9CgpFcnJvcjogQ0xBTkdfV0FS
TklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZnN3YWxrLmNwcDox
NzM6OTogd2FybmluZzogVW5kZWZpbmVkIG9yIGdhcmJhZ2UgdmFsdWUgcmV0dXJuZWQgdG8gY2Fs
bGVyCiMgICAgICAgIHJldHVybiByZXQ7CiMgICAgICAgIF5+fn5+fn5+fn4KIyAgMTcxfCAgICAg
ICAgICAgICAgICAgICByZXQgPSB0cnVlOwojICAxNzJ8ICAgCiMgIDE3M3wtPiAgICAgICAgIHJl
dHVybiByZXQ7CiMgIDE3NHwgICAJfQojICAxNzV8ICAgCgpFcnJvcjogQ0xBTkdfV0FSTklORzoK
bHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZnN3YWxrLmNwcDoxODY6OTog
d2FybmluZzogVW5kZWZpbmVkIG9yIGdhcmJhZ2UgdmFsdWUgcmV0dXJuZWQgdG8gY2FsbGVyCiMg
ICAgICAgIHJldHVybiByZXQ7CiMgICAgICAgIF5+fn5+fn5+fn4KIyAgMTg0fCAgICAgICAgICAg
ICAgICAgICByZXQgPSB0cnVlOwojICAxODV8ICAgCiMgIDE4NnwtPiAgICAgICAgIHJldHVybiBy
ZXQ7CiMgIDE4N3wgICAJfQojICAxODh8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2
cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZ2F0aGVyZXIuY3BwOiBzY29wZV9o
aW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ2xzdnBkOjpDb21wb25lbnQqIGxzdnBkOjpHYXRoZXJl
cjo6ZmluZENvbXBvbmVudChzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4sIHN0ZDo6c3Ry
aW5nKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZ2F0aGVyZXIuY3Bw
OjU5MDozMzogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQg
aW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICBmb3IgKGludCBpID0gMDsg
aSA8IGRldnMuc2l6ZSgpOyBpKyspCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe
CiMgIDU4OHwgICAJCXN0cmluZyBpZE5vZGUgKQojICA1ODl8ICAgCXsKIyAgNTkwfC0+IAkJZm9y
IChpbnQgaSA9IDA7IGkgPCBkZXZzLnNpemUoKTsgaSsrKQojICA1OTF8ICAgCQkJaWYoZGV2c1tp
XS0+aWROb2RlLmdldFZhbHVlKCkgPT0gaWROb2RlKQojICA1OTJ8ICAgCQkJCXJldHVybiBkZXZz
W2ldOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9z
eXNfaW50ZXJmYWNlL2ljb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rp
b24gJ3N0ZDo6c3RyaW5nIGxzdnBkOjpJQ29sbGVjdG9yOjpnZXRGcnVEZXNjcmlwdGlvbihzdGQ6
OnN0cmluZyYpJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9pY29sbGVj
dG9yLmNwcDozMTM6OTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdkZXNjJyBbLVd1bnVzZWQt
dmFyaWFibGVdCiMgICBjaGFyICpkZXNjID0gTlVMTDsKIyAgICAgICAgIF4KIyAgMzExfCAgIAl7
CiMgIDMxMnwgICAJCWNvbnN0IGNoYXIgKmZydV90eXBlID0ga2V5LmNfc3RyKCk7CiMgIDMxM3wt
PiAJCWNoYXIgKmRlc2MgPSBOVUxMOwojICAzMTR8ICAgCiMgIDMxNXwgICAJCXN3aXRjaCAoZnJ1
X3R5cGVbMF0pIHsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50
ZXJuYWwvc3lzX2ludGVyZmFjZS9wbGF0Zm9ybWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IElu
IHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gJ3N0YXRpYyBzdGQ6OnN0cmluZyBsc3ZwZDo6UGxhdGZv
cm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1lKCknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5h
bC9zeXNfaW50ZXJmYWNlL3BsYXRmb3JtY29sbGVjdG9yLmNwcDo5Njo5OiB3YXJuaW5nOiBlbnVt
ZXJhdGlvbiB2YWx1ZSAnUEZfTlVMTCcgbm90IGhhbmRsZWQgaW4gc3dpdGNoIFstV3N3aXRjaF0K
IyAgIHN3aXRjaChwbGF0Zm9ybV90eXBlKSB7CiMgICAgICAgICBeCiMgICA5NHwgICAJewojICAg
OTV8ICAgCQlnZXRfcGxhdGZvcm0oKTsKIyAgIDk2fC0+IAkJc3dpdGNoKHBsYXRmb3JtX3R5cGUp
IHsKIyAgIDk3fCAgIAkJY2FzZSBQRl9QT1dFUktWTV9IT1NUOgojICAgOTh8ICAgCQkJcmV0dXJu
ICJQb3dlcktWTSBIb3N0IjsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9z
cmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9ydGFzY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDog
QXQgZ2xvYmFsIHNjb3BlCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3J0
YXNjb2xsZWN0b3IuY3BwOjM5OjE0OiB3YXJuaW5nOiAnYm9vbCBsc3ZwZDo6Y2hlY2tSdGFzQ2Fs
bCgpJyBkZWZpbmVkIGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtZnVuY3Rpb25dCiMgIHN0YXRpYyBi
b29sIGNoZWNrUnRhc0NhbGwodm9pZCkKIyAgICAgICAgICAgICAgXgojICAgMzd8ICAgI2lmZGVm
IEhBVkVfTElCUlRBUwojICAgMzh8ICAgCiMgICAzOXwtPiAJc3RhdGljIGJvb2wgY2hlY2tSdGFz
Q2FsbCh2b2lkKQojICAgNDB8ICAgCXsKIyAgIDQxfCAgIAkJaW50IGZkID0gMDsKCkVycm9yOiBD
T01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9y
dGFzY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDogSW4gc3RhdGljIG1lbWJlciBmdW5jdGlvbiAn
c3RhdGljIGludCBsc3ZwZDo6UnRhc0NvbGxlY3Rvcjo6cnRhc0dldFZQRChjb25zdCBzdHJpbmcm
LCBjaGFyKiopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9ydGFzY29s
bGVjdG9yLmNwcDoxNDE6ODogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdlcnJfYnVmJyBbLVd1
bnVzZWQtdmFyaWFibGVdCiMgICBjaGFyIGVycl9idWZbUlRBU19FUlJfQlVGX1NJWkVdOwojICAg
ICAgICBeCiMgIDEzOXwgICAJCWludCBzaXplID0gMDsKIyAgMTQwfCAgIAkJc3RydWN0IHJ0YXNf
YnVmX2VsZW1lbnQgKmN1cnJlbnQsICpsaXN0OwojICAxNDF8LT4gCQljaGFyIGVycl9idWZbUlRB
U19FUlJfQlVGX1NJWkVdOwojICAxNDJ8ICAgCQl1bnNpZ25lZCBpbnQgc2VxID0gMSwgbmV4dFNl
cTsKIyAgMTQzfCAgIAkJaW50IG51bSA9IDAsIHJjOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6
CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3J0YXNjb2xsZWN0b3IuY3Bw
OjE0Mzo3OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ251bScgWy1XdW51c2VkLXZhcmlhYmxl
XQojICAgaW50IG51bSA9IDAsIHJjOwojICAgICAgIF4KIyAgMTQxfCAgIAkJY2hhciBlcnJfYnVm
W1JUQVNfRVJSX0JVRl9TSVpFXTsKIyAgMTQyfCAgIAkJdW5zaWduZWQgaW50IHNlcSA9IDEsIG5l
eHRTZXE7CiMgIDE0M3wtPiAJCWludCBudW0gPSAwLCByYzsKIyAgMTQ0fCAgIAkJaW50IHZwZF9j
aGFuZ2VkID0gMDsKIyAgMTQ1fCAgIAkJY2hhciAqbG9jQ29kZSwgKmJ1ZjsKCkVycm9yOiBDTEFO
R19XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9ydGFzY29s
bGVjdG9yLmNwcDoyMTI6NTogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50
ZWQgdG8gYnkgJ2xvY0NvZGUnCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0
ZUxpc3QobGlzdCk7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4K
IyAgMjEwfCAgIAkJCQlyZXR1cm4gLVJUQVNfSEFSRFdBUkRfRVJST1I7CiMgIDIxMXwgICAJCQlk
ZWZhdWx0OgojICAyMTJ8LT4gCQkJCWRlbGV0ZUxpc3QobGlzdCk7CiMgIDIxM3wgICAJCQkJbGli
cnRhc19lcnJvcihyYyk7CiMgIDIxNHwgICAJCQkJcmV0dXJuIC1SVEFTX0VSUk9SOwoKRXJyb3I6
IENMQU5HX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5
c2ZzX1NDU0lfRmlsbC5jcHA6MzM1OjE2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2VuZCcg
ZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiMgICAgICAgICAgICAgICAg
aW50IGJlZyA9IDAsIGVuZCA9IHMxLmxlbmd0aCgpOwojICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBefn4gICB+fn5+fn5+fn5+fgojICAzMzN8ICAgCWJvb2wgbWF0Y2hlcyhzdHJpbmcgczEs
IHN0cmluZyBzMikKIyAgMzM0fCAgIAl7CiMgIDMzNXwtPiAJCWludCBiZWcgPSAwLCBlbmQgPSBz
MS5sZW5ndGgoKTsKIyAgMzM2fCAgIAkJaW50IHo7CiMgIDMzN3wgICAKCkVycm9yOiBDT01QSUxF
Ul9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19T
Q1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnYm9vbCBsc3ZwZDo6bWF0Y2hl
cyhzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmcpJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lz
X2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjM3MTo0OTogd2FybmluZzogY29tcGFyaXNv
biBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWdu
LWNvbXBhcmVdCiMgICAgaWYgKCBzdHJpbmc6Om5wb3MgPT0gKGVuZCA9IHMxLmZpbmQoIioiLCBi
ZWcpKSkgewojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF4KIyAgMzY5fCAgIAkJCWVuZCA9IHMxLmxlbmd0aCgpOwojICAzNzB8ICAgCiMgIDM3MXwtPiAJ
CQlpZiAoIHN0cmluZzo6bnBvcyA9PSAoZW5kID0gczEuZmluZCgiKiIsIGJlZykpKSB7CiMgIDM3
MnwgICAJCQkJLy9ObyBtb3JlIHN0YXJzIC0gYmFzZSBjYXNlCiMgIDM3M3wgICAJCQkJaWYgKHN0
cmluZzo6bnBvcyAhPSAoeiA9IHMyLmZpbmQoczEuc3Vic3RyKGJlZywgZW5kKSwgMCkpKSB7CgpF
cnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRl
cmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDozNzM6NjE6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0
d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21w
YXJlXQojICAgICBpZiAoc3RyaW5nOjpucG9zICE9ICh6ID0gczIuZmluZChzMS5zdWJzdHIoYmVn
LCBlbmQpLCAwKSkpIHsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBeCiMgIDM3MXwgICAJCQlpZiAoIHN0cmluZzo6bnBvcyA9PSAo
ZW5kID0gczEuZmluZCgiKiIsIGJlZykpKSB7CiMgIDM3MnwgICAJCQkJLy9ObyBtb3JlIHN0YXJz
IC0gYmFzZSBjYXNlCiMgIDM3M3wtPiAJCQkJaWYgKHN0cmluZzo6bnBvcyAhPSAoeiA9IHMyLmZp
bmQoczEuc3Vic3RyKGJlZywgZW5kKSwgMCkpKSB7CiMgIDM3NHwgICAJCQkJCXJldHVybiB0cnVl
OwojICAzNzV8ICAgCQkJCX0KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9z
cmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50
OiBJbiBmdW5jdGlvbiAnc3RkOjpzdHJpbmcgbHN2cGQ6OmxzdnBkX2hleGlmeShjb25zdCB1bnNp
Z25lZCBjaGFyKiwgc2l6ZV90KScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZh
Y2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0MjU6MjY6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2Vl
biBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJl
XQojICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW4gOyBpKyspIHsKIyAgICAgICAgICAgICAg
ICAgICAgICAgICAgXgojICA0MjN8ICAgCiMgIDQyNHwgICAJICAgICAgICBjaGFyICogcmV0ID0g
bmV3IGNoYXJbIGxlbioyKzEgXTsKIyAgNDI1fC0+IAkgICAgICAgIGZvciAoaSA9IDA7IGkgPCBs
ZW4gOyBpKyspIHsKIyAgNDI2fCAgIAkgICAgICAgICAgICAgICAgc25wcmludGYoJnJldFtpKjJd
LCAzLCAiJS4yWCIsIHN0cltpXSk7CiMgIDQyN3wgICAJICAgICAgICB9CgpFcnJvcjogQ1BQQ0hF
Q0tfV0FSTklORyAoQ1dFLTc2Mik6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJm
YWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NDMwOiBlcnJvclttaXNtYXRjaEFsbG9jRGVhbGxvY106
IE1pc21hdGNoaW5nIGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbjogcmV0CiMgIDQyOHwgICAK
IyAgNDI5fCAgIAkgICAgICAgIHRtcCA9IHJldDsKIyAgNDMwfC0+IAkgICAgICAgIGRlbGV0ZSBy
ZXQ7CiMgIDQzMXwgICAJICAgICAgICByZXR1cm4gdG1wOwojICA0MzJ8ICAgCX0KCkVycm9yOiBD
TEFOR19XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNm
c19TQ1NJX0ZpbGwuY3BwOjQzMDoxMDogd2FybmluZzogTWVtb3J5IGFsbG9jYXRlZCBieSAnbmV3
W10nIHNob3VsZCBiZSBkZWFsbG9jYXRlZCBieSAnZGVsZXRlW10nLCBub3QgJ2RlbGV0ZScKIyAg
ICAgICAgICAgICAgICBkZWxldGUgcmV0OwojICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4KIyAg
NDI4fCAgIAojICA0Mjl8ICAgCSAgICAgICAgdG1wID0gcmV0OwojICA0MzB8LT4gCSAgICAgICAg
ZGVsZXRlIHJldDsKIyAgNDMxfCAgIAkgICAgICAgIHJldHVybiB0bXA7CiMgIDQzMnwgICAJfQoK
RXJyb3I6IENQUENIRUNLX1dBUk5JTkcgKENXRS00MDEpOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJu
YWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjQ0NDogZXJyb3JbbWVtbGVha106
IE1lbW9yeSBsZWFrOiByZXQKIyAgNDQyfCAgIAojICA0NDN8ICAgICAgICAgICBpZiAoc3RyX3Qu
bGVuZ3RoKCkgPT0gMCkKIyAgNDQ0fC0+ICAgICAgICAgCXJldHVybiBzdHJfdDsKIyAgNDQ1fCAg
IAojICA0NDZ8ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3RyX3QubGVuZ3RoKCk7IGkrKykg
ewoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNf
aW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdz
dGQ6OnN0cmluZyBsc3ZwZDo6aGV4aWZ5KHN0ZDo6c3RyaW5nKScKbHN2cGQtMS43LjUvc3JjL2lu
dGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0NDY6Mzg6IHdhcm5pbmc6
IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lv
bnMgWy1Xc2lnbi1jb21wYXJlXQojICAgICAgICAgZm9yIChpID0gMDsgaSA8IHN0cl90Lmxlbmd0
aCgpOyBpKyspIHsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA0
NDR8ICAgICAgICAgICAJcmV0dXJuIHN0cl90OwojICA0NDV8ICAgCiMgIDQ0NnwtPiAgICAgICAg
IGZvciAoaSA9IDA7IGkgPCBzdHJfdC5sZW5ndGgoKTsgaSsrKSB7CiMgIDQ0N3wgICAgICAgICAg
ICAgICAgICAgc25wcmludGYoJnJldFtpKjJdLCAzLCAiJS4yWCIsIHN0cltpXSk7CiMgIDQ0OHwg
ICAgICAgICAgIH0KCkVycm9yOiBDUFBDSEVDS19XQVJOSU5HIChDV0UtNzYyKToKbHN2cGQtMS43
LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0NTI6IGVy
cm9yW21pc21hdGNoQWxsb2NEZWFsbG9jXTogTWlzbWF0Y2hpbmcgYWxsb2NhdGlvbiBhbmQgZGVh
bGxvY2F0aW9uOiByZXQKIyAgNDUwfCAgICAgICAgICAgc3RyX3QgPSByZXQ7CiMgIDQ1MXwgICAK
IyAgNDUyfC0+ICAgICAgICAgZGVsZXRlIHJldDsKIyAgNDUzfCAgIAojICA0NTR8ICAgICAgICAg
ICByZXR1cm4gc3RyX3Q7CgpFcnJvcjogQ0xBTkdfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2lu
dGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0NTI6OTogd2FybmluZzog
TWVtb3J5IGFsbG9jYXRlZCBieSAnbmV3W10nIHNob3VsZCBiZSBkZWFsbG9jYXRlZCBieSAnZGVs
ZXRlW10nLCBub3QgJ2RlbGV0ZScKIyAgICAgICAgZGVsZXRlIHJldDsKIyAgICAgICAgXn5+fn5+
fn5+fgojICA0NTB8ICAgICAgICAgICBzdHJfdCA9IHJldDsKIyAgNDUxfCAgIAojICA0NTJ8LT4g
ICAgICAgICBkZWxldGUgcmV0OwojICA0NTN8ICAgCiMgIDQ1NHwgICAgICAgICAgIHJldHVybiBz
dHJfdDsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwv
c3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5jdGlv
biAnc3RkOjpzdHJpbmcgbHN2cGQ6OmdldEZpZWxkTmFtZShzdGQ6OnN0cmluZyknCmxzdnBkLTEu
Ny41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NDY4OjMw
OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2Vy
IGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIHdoaWxlICgoaSA8IHBhdHRlcm4ubGVu
Z3RoKCkpICYmIChwYXR0ZXJuW2ldICE9ICc6JykpCiMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBeCiMgIDQ2NnwgICAKIyAgNDY3fCAgIAkJaSA9IDA7CiMgIDQ2OHwtPiAJCXdoaWxlICgo
aSA8IHBhdHRlcm4ubGVuZ3RoKCkpICYmIChwYXR0ZXJuW2ldICE9ICc6JykpCiMgIDQ2OXwgICAJ
CQlpKys7CiMgIDQ3MHwgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9z
cmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjQ3MToyNzogd2Fy
bmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHBy
ZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICBpZiAoaSA+PSBwYXR0ZXJuLmxlbmd0aCgpKQoj
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA0Njl8ICAgCQkJaSsrOwojICA0NzB8ICAg
CiMgIDQ3MXwtPiAJCWlmIChpID49IHBhdHRlcm4ubGVuZ3RoKCkpCiMgIDQ3MnwgICAJCQlyZXR1
cm4gIiI7CiMgIDQ3M3wgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9z
cmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50
OiBJbiBmdW5jdGlvbiAnaW50IGxzdnBkOjpnZXRGaWVsZFZhbHVlKHN0ZDo6c3RyaW5nKScKbHN2
cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0
OTU6MzA6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGlu
dGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgd2hpbGUgKChpIDwgcGF0dGVy
bi5sZW5ndGgoKSkgJiYgKHBhdHRlcm5baV0gIT0gJzonKSkKIyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF4KIyAgNDkzfCAgIAojICA0OTR8ICAgCQlpID0gMDsKIyAgNDk1fC0+IAkJd2hp
bGUgKChpIDwgcGF0dGVybi5sZW5ndGgoKSkgJiYgKHBhdHRlcm5baV0gIT0gJzonKSkKIyAgNDk2
fCAgIAkJCWkrKzsKIyAgNDk3fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEu
Ny41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NDk4OjI3
OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2Vy
IGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIGlmIChpID49IHBhdHRlcm4ubGVuZ3Ro
KCkpCiMgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDQ5NnwgICAJCQlpKys7CiMgIDQ5
N3wgICAKIyAgNDk4fC0+IAkJaWYgKGkgPj0gcGF0dGVybi5sZW5ndGgoKSkKIyAgNDk5fCAgIAkJ
CXJldHVybiAtMTsKIyAgNTAwfCAgIAoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CmxzdnBkLTEuNy41
L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NTA2OjExOiB3
YXJuaW5nOiBGdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUK
IyAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0cnRvbChzdHIuY19zdHIoKSwgZW5kcHRyLCAwKTsK
IyAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoj
ICA1MDR8ICAgCiMgIDUwNXwgICAJCXN0ciA9IHBhdHRlcm4uc3Vic3RyKGVvbiwgcGF0dGVybi5s
ZW5ndGgoKSAtIGVvbik7CiMgIDUwNnwtPiAJCXZhbHVlID0gc3RydG9sKHN0ci5jX3N0cigpLCBl
bmRwdHIsIDApOwojICA1MDd8ICAgLy8JCWNvdXQgPDwgIkdldFZhbHVlKCkgUGF0dGVybiA9ICIg
PDwgcGF0dGVybiA8PCAiLCBzdHIgPSAiIDw8IHN0ciA8PCAiLCBlb24gPSAiIDw8IGVvbiA8PCAi
VmFsdWUgPSAiIDw8IHZhbHVlIDw8IGVuZGw7CiMgIDUwOHwgICAKCkVycm9yOiBDT01QSUxFUl9X
QVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJ
X0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnaW50IGxzdnBkOjpnZXRGaWVsZFZh
bHVlKHN0ZDo6c3RyaW5nKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uv
c3lzZnNfU0NTSV9GaWxsLmNwcDo1MDY6NDA6IHdhcm5pbmc6ICdlbmRwdHInIG1heSBiZSB1c2Vk
IHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxpemVkXQoj
ICAgdmFsdWUgPSBzdHJ0b2woc3RyLmNfc3RyKCksIGVuZHB0ciwgMCk7CiMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA1MDR8ICAgCiMgIDUwNXwgICAJCXN0ciA9
IHBhdHRlcm4uc3Vic3RyKGVvbiwgcGF0dGVybi5sZW5ndGgoKSAtIGVvbik7CiMgIDUwNnwtPiAJ
CXZhbHVlID0gc3RydG9sKHN0ci5jX3N0cigpLCBlbmRwdHIsIDApOwojICA1MDd8ICAgLy8JCWNv
dXQgPDwgIkdldFZhbHVlKCkgUGF0dGVybiA9ICIgPDwgcGF0dGVybiA8PCAiLCBzdHIgPSAiIDw8
IHN0ciA8PCAiLCBlb24gPSAiIDw8IGVvbiA8PCAiVmFsdWUgPSAiIDw8IHZhbHVlIDw8IGVuZGw7
CiMgIDUwOHwgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50
ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBm
dW5jdGlvbiAnc3RkOjpzdHJpbmcgbHN2cGQ6OnJldHJpZXZlRmllbGQoY2hhciosIGludCknCmxz
dnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6
NTQ4OjQ3OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBp
bnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIHdoaWxlICgoc3RyW2JlZ10g
PT0gMikgJiYgKGJlZyA8IHN0cmxlbihkYXRhKSkgJiYgKGJlZyA8IGVuZCkpCiMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNTQ2fCAgIAkJCXJldHVy
biAiIjsKIyAgNTQ3fCAgIAojICA1NDh8LT4gCQl3aGlsZSAoKHN0cltiZWddID09IDIpICYmIChi
ZWcgPCBzdHJsZW4oZGF0YSkpICYmIChiZWcgPCBlbmQpKQojICA1NDl8ICAgCQkJYmVnKys7CiMg
IDU1MHwgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJu
YWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5j
dGlvbiAnaW50IGxzdnBkOjpudW1QYWdlVGVtcGxhdGVzKHN0ZDo6c3RyaW5nKScKbHN2cGQtMS43
LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo1Njk6Mjc6
IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIg
ZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgd2hpbGUgKGkgPCB0ZW1wbC5sZW5ndGgo
KSkKIyAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNTY3fCAgIAkJCXJldHVybiAwOwoj
ICA1Njh8ICAgCiMgIDU2OXwtPiAJCXdoaWxlIChpIDwgdGVtcGwubGVuZ3RoKCkpCiMgIDU3MHwg
ICAJCQlpZiAodGVtcGxbaSsrXSA9PSAnPycpIHsKIyAgNTcxfCAgIAkJCQljb3VudCsrOwoKRXJy
b3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJm
YWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdzdGQ6OnN0
cmluZyBsc3ZwZDo6cmV0cmlldmVQYWdlVGVtcGxhdGUoc3RkOjpzdHJpbmcsIGludCknCmxzdnBk
LTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NTkz
OjI3OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRl
Z2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIHdoaWxlIChpIDwgdGVtcGwubGVu
Z3RoKCkgJiYgZW5kID09IHRlbXBsLmxlbmd0aCgpKSB7CiMgICAgICAgICAgICAgICAgICAgICAg
ICAgICBeCiMgIDU5MXwgICAJCQlyZXR1cm4gIiI7CiMgIDU5MnwgICAKIyAgNTkzfC0+IAkJd2hp
bGUgKGkgPCB0ZW1wbC5sZW5ndGgoKSAmJiBlbmQgPT0gdGVtcGwubGVuZ3RoKCkpIHsKIyAgNTk0
fCAgIAkJCWlmICh0ZW1wbFtpXSA9PSAnPycgJiYgYmVnICE9IC0xKSB7CiMgIDU5NXwgICAJCQkJ
ZW5kID0gaTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJu
YWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjU5Mzo1Mjogd2FybmluZzogY29t
cGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBb
LVdzaWduLWNvbXBhcmVdCiMgICB3aGlsZSAoaSA8IHRlbXBsLmxlbmd0aCgpICYmIGVuZCA9PSB0
ZW1wbC5sZW5ndGgoKSkgewojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF4KIyAgNTkxfCAgIAkJCXJldHVybiAiIjsKIyAgNTkyfCAgIAojICA1OTN8
LT4gCQl3aGlsZSAoaSA8IHRlbXBsLmxlbmd0aCgpICYmIGVuZCA9PSB0ZW1wbC5sZW5ndGgoKSkg
ewojICA1OTR8ICAgCQkJaWYgKHRlbXBsW2ldID09ICc/JyAmJiBiZWcgIT0gLTEpIHsKIyAgNTk1
fCAgIAkJCQllbmQgPSBpOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3Ny
Yy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNjb3BlX2hpbnQ6
IEluIGZ1bmN0aW9uICdpbnQgbHN2cGQ6OnJldHJpZXZlUGFnZUNvZGUoc3RkOjpzdHJpbmcsIHN0
ZDo6c3RyaW5nJiwgc3RkOjpzdHJpbmcmKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19p
bnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo2Mjk6Mzg6IHdhcm5pbmc6IGNvbXBhcmlzb24g
YmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1j
b21wYXJlXQojICAgICAmJiBpIDwgcGFnZV9zcGVjX3RlbXBsYXRlLmxlbmd0aCgpKQojICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDYyN3wgICAJCXdoaWxlIChwYWdl
X3NwZWNfdGVtcGxhdGVbaS0xXSAhPSAnMCcKIyAgNjI4fCAgIAkJCQkmJiBwYWdlX3NwZWNfdGVt
cGxhdGVbaV0gIT0gJ3gnCiMgIDYyOXwtPiAJCQkJJiYgaSA8IHBhZ2Vfc3BlY190ZW1wbGF0ZS5s
ZW5ndGgoKSkKIyAgNjMwfCAgIAkJCWkrKzsKIyAgNjMxfCAgIAkJYmVnID0gaSArIDE7CgpFcnJv
cjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZh
Y2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo2MzI6NzI6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2Vl
biBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJl
XQojICAgd2hpbGUgKHBhZ2Vfc3BlY190ZW1wbGF0ZVtpXSAhPSAnPScgJiYgaSA8IHBhZ2Vfc3Bl
Y190ZW1wbGF0ZS5sZW5ndGgoKSkKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNjMwfCAgIAkJCWkrKzsK
IyAgNjMxfCAgIAkJYmVnID0gaSArIDE7CiMgIDYzMnwtPiAJCXdoaWxlIChwYWdlX3NwZWNfdGVt
cGxhdGVbaV0gIT0gJz0nICYmIGkgPCBwYWdlX3NwZWNfdGVtcGxhdGUubGVuZ3RoKCkpCiMgIDYz
M3wgICAJCQlpKys7CiMgIDYzNHwgICAJCWVuZCA9IGk7CgpFcnJvcjogQ09NUElMRVJfV0FSTklO
RzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxs
LmNwcDo2MzU6NDE6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2ln
bmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgaWYgKChiZWcgPj0g
cGFnZV9zcGVjX3RlbXBsYXRlLmxlbmd0aCgpKQojICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBeCiMgIDYzM3wgICAJCQlpKys7CiMgIDYzNHwgICAJCWVuZCA9IGk7CiMg
IDYzNXwtPiAJCWlmICgoYmVnID49IHBhZ2Vfc3BlY190ZW1wbGF0ZS5sZW5ndGgoKSkKIyAgNjM2
fCAgIAkJCXx8IChlbmQgPj0gcGFnZV9zcGVjX3RlbXBsYXRlLmxlbmd0aCgpKSkKIyAgNjM3fCAg
IAkJCXJldHVybiAtMTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMv
aW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjYzNjo0MTogd2Fybmlu
ZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNz
aW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgfHwgKGVuZCA+PSBwYWdlX3NwZWNfdGVtcGxhdGUu
bGVuZ3RoKCkpKQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMg
IDYzNHwgICAJCWVuZCA9IGk7CiMgIDYzNXwgICAJCWlmICgoYmVnID49IHBhZ2Vfc3BlY190ZW1w
bGF0ZS5sZW5ndGgoKSkKIyAgNjM2fC0+IAkJCXx8IChlbmQgPj0gcGFnZV9zcGVjX3RlbXBsYXRl
Lmxlbmd0aCgpKSkKIyAgNjM3fCAgIAkJCXJldHVybiAtMTsKIyAgNjM4fCAgIAkJcGFnZV9jb2Rl
ID0gcGFnZV9zcGVjX3RlbXBsYXRlLnN1YnN0cihiZWcsIGVuZCAtIGJlZyk7CgpFcnJvcjogQ09N
UElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lz
ZnNfU0NTSV9GaWxsLmNwcDo2NDI6NzI6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWdu
ZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAg
d2hpbGUgKHBhZ2Vfc3BlY190ZW1wbGF0ZVtpXSAhPSAnOycgJiYgaSA8IHBhZ2Vfc3BlY190ZW1w
bGF0ZS5sZW5ndGgoKSkKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNjQwfCAgIAkJLyogR2V0IGZvcm1h
dCBzdHJpbmcgKi8KIyAgNjQxfCAgIAkJYmVnID0gZW5kICsgMTsKIyAgNjQyfC0+IAkJd2hpbGUg
KHBhZ2Vfc3BlY190ZW1wbGF0ZVtpXSAhPSAnOycgJiYgaSA8IHBhZ2Vfc3BlY190ZW1wbGF0ZS5s
ZW5ndGgoKSkKIyAgNjQzfCAgIAkJCWkrKzsKIyAgNjQ0fCAgIAkJZW5kID0gaTsKCkVycm9yOiBD
TEFOR19XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNm
c19TQ1NJX0ZpbGwuY3BwOjY2NjozOiB3YXJuaW5nOiBQb3RlbnRpYWwgbWVtb3J5IGxlYWsKIyAg
ICAgICAgICAgICAgICB0bXAgPSBzdHJpbmcoc3RybmR1cChidWYgKyBiZWcsIGVuZCAtIGJlZykp
OwojICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn4KIyAgNjY0fCAgIAkJCWVuZC0tOwojICA2NjV8ICAgCiMgIDY2NnwtPiAJCXRtcCA9IHN0
cmluZyhzdHJuZHVwKGJ1ZiArIGJlZywgZW5kIC0gYmVnKSk7CiMgIDY2N3wgICAKIyAgNjY4fCAg
IAkJcmV0dXJuIHRtcDsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMv
aW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJ
biBtZW1iZXIgZnVuY3Rpb24gJ3ZvaWQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6cHJvY2Vz
c190ZW1wbGF0ZShsc3ZwZDo6Q29tcG9uZW50Kiwgc3RkOjpzdHJpbmcqLCBjaGFyKiwgaW50LCBz
dGQ6OnN0cmluZyosIGludCknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl
L3N5c2ZzX1NDU0lfRmlsbC5jcHA6Njk2OjQwOiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4g
c2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0K
IyAgIGZvciAoaW50IGkgPSAwOyBpIDwgKCpmb3JtYXQpLmxlbmd0aCgpOyBpKyspCiMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA2OTR8ICAgCQkJZGF0YUN1ckxv
YyA9IDA7CiMgIDY5NXwgICAKIyAgNjk2fC0+IAkJZm9yIChpbnQgaSA9IDA7IGkgPCAoKmZvcm1h
dCkubGVuZ3RoKCk7IGkrKykKIyAgNjk3fCAgIAkJCWlmICgoKmZvcm1hdClbaV0gPT0gJywnKSB7
CiMgIDY5OHwgICAJCQkJZW9mW2ZpZWxkVG90YWxdID0gaTsKCkVycm9yOiBDT01QSUxFUl9XQVJO
SU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0Zp
bGwuY3BwOjc1Mzo2NTogd2FybmluZzogZGVwcmVjYXRlZCBjb252ZXJzaW9uIGZyb20gc3RyaW5n
IGNvbnN0YW50IHRvICdjaGFyKicgWy1Xd3JpdGUtc3RyaW5nc10KIyAgICAgc2V0VlBERmllbGQo
IGZpbGxNZSwgZmllbGROYW1lLCBkYXRhVmFsICwgX19GSUxFX18sIF9fTElORV9fKTsKIyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXgojICA3NTF8ICAgCQkJCX0KIyAgNzUyfCAgIAojICA3NTN8LT4gCQkJCXNldFZQREZpZWxk
KCBmaWxsTWUsIGZpZWxkTmFtZSwgZGF0YVZhbCAsIF9fRklMRV9fLCBfX0xJTkVfXyk7CiMgIDc1
NHwgICAJCQl9CiMgIDc1NXwgICAJCX0KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0x
LjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29w
ZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ2ludCBsc3ZwZDo6U3lzRlNUcmVlQ29sbGVjdG9y
OjppbnRlcnByZXRQYWdlKGxzdnBkOjpDb21wb25lbnQqLCBjaGFyKiwgaW50LCBpbnQsIHN0ZDo6
c3RyaW5nKiwgaW50LCBzdGQ6OnN0cmluZyopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lz
X2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjc3Nzo4OiB3YXJuaW5nOiB2YXJpYWJsZSAn
cmV0JyBzZXQgYnV0IG5vdCB1c2VkIFstV3VudXNlZC1idXQtc2V0LXZhcmlhYmxlXQojICAgYm9v
bCByZXQ7CiMgICAgICAgIF4KIyAgNzc1fCAgIAkJCQkJCQlzdHJpbmcgKnN1YnR5cGVEUykKIyAg
Nzc2fCAgIAl7CiMgIDc3N3wtPiAJCWJvb2wgcmV0OwojICA3Nzh8ICAgCQlzdHJpbmcgZHM7CiMg
IDc3OXwgICAJCXJldCA9IGZhbHNlOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEu
Ny41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNjb3Bl
X2hpbnQ6IEF0IGdsb2JhbCBzY29wZQpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVy
ZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjg3NToxMzogd2FybmluZzogJ2ludCBsc3ZwZDo6YnVm
ZmVySXNFbXB0eShjaGFyKiwgaW50KScgZGVmaW5lZCBidXQgbm90IHVzZWQgWy1XdW51c2VkLWZ1
bmN0aW9uXQojICBzdGF0aWMgaW50IGJ1ZmZlcklzRW1wdHkoY2hhciAqZGV2aWNlX3NnX3JlYWRf
YnVmZmVyLCBpbnQgYnVmU2l6ZSkKIyAgICAgICAgICAgICBeCiMgIDg3M3wgICAJfQojICA4NzR8
ICAgCiMgIDg3NXwtPiAJc3RhdGljIGludCBidWZmZXJJc0VtcHR5KGNoYXIgKmRldmljZV9zZ19y
ZWFkX2J1ZmZlciwgaW50IGJ1ZlNpemUpCiMgIDg3NnwgICAJewojICA4Nzd8ICAgCQlpbnQgaSA9
IDA7CgpFcnJvcjogQ1BQQ0hFQ0tfV0FSTklORyAoQ1dFLTQ1Nik6CmxzdnBkLTEuNy41L3NyYy9p
bnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6OTE1OiBlcnJvclt1bmlu
aXR2YXJdOiBVbmluaXRpYWxpemVkIHZhcmlhYmxlOiBsZW4KIyAgOTEzfCAgIAkJCXdoZW4gZXZw
ZCBpcyBlbmFibGVkLiAgVGh1cywgaGFja2VkIHRvIHJldHVybiAyNTYgZm9yIGFsbCBpbnF1aXJp
ZXMKIyAgOTE0fCAgIAkJKi8KIyAgOTE1fC0+IAkJcmV0dXJuIGxlbjsKIyAgOTE2fCAgIAl9CiMg
IDkxN3wgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJu
YWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5j
dGlvbiAnaW50IGxzdnBkOjpkZXZpY2Vfc2NzaV9zZ19zYW5pdHlfY2hlY2soYm9vbCwgaW50LCBj
aGFyKiwgaW50KScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNf
U0NTSV9GaWxsLmNwcDo5Njc6NjE6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQg
YW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgICAg
ICAgIHdoaWxlIChyZXQgJiYgKGkgPCAoc2l6ZV90KSBkZXZpY2Vfc2dfcmVhZF9idWZmZXJbM10p
KSB7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXgojICA5NjV8ICAgCSAgICAgICAgbGFzdCA9IGRldmljZV9zZ19yZWFkX2J1ZmZl
cltpXTsKIyAgOTY2fCAgIAkgICAgICAgIGkrKzsKIyAgOTY3fC0+IAkgICAgICAgIHdoaWxlIChy
ZXQgJiYgKGkgPCAoc2l6ZV90KSBkZXZpY2Vfc2dfcmVhZF9idWZmZXJbM10pKSB7CiMgIDk2OHwg
ICAJICAgICAgICAgICAgICAgIHJldCA9IChkZXZpY2Vfc2dfcmVhZF9idWZmZXJbaV0gPiBsYXN0
KTsKIyAgOTY5fCAgIAkgICAgICAgICAgICAgICAgbGFzdCA9IGRldmljZV9zZ19yZWFkX2J1ZmZl
cltpXTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwv
c3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5jdGlv
biAnaW50IGxzdnBkOjpkb1NHUXVlcnkoaW50LCBjaGFyKiwgaW50LCBpbnQsIGludCwgaW50KScK
bHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNw
cDo5ODk6Nzogd2FybmluZzogJ2xlbicgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlz
IGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICBpbnQgbGVuLCByZXRfbGwsIHJl
dF9zYW47CiMgICAgICAgXgojICA5ODd8ICAgCQkJCQlpbnQgZXZwZCwgaW50IHBhZ2VfY29kZSwg
aW50IGNtZCA9IDApCiMgIDk4OHwgICAJewojICA5ODl8LT4gCQlpbnQgbGVuLCByZXRfbGwsIHJl
dF9zYW47CiMgIDk5MHwgICAKIyAgOTkxfCAgIC8vCQljb3V0ZCA8PCAiZG9TR1F1ZXJ5OiAgIiA8
PCBfX0xJTkVfXyA8PCAiIDogUXVlcnlpbmcgd2l0aCBldnBkOiAiIDw8IGV2cGQgPDwgIiwgcGFn
ZV9jb2RlID0gIiA8PCBwYWdlX2NvZGUgPDwgIiwgY21kID0gIiA8PCBjbWQKCkVycm9yOiBDTEFO
R19XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19T
Q1NJX0ZpbGwuY3BwOjEwNDA6OTogd2FybmluZzogVW5kZWZpbmVkIG9yIGdhcmJhZ2UgdmFsdWUg
cmV0dXJuZWQgdG8gY2FsbGVyCiMgICAgICAgIHJldHVybiBsZW47CiMgICAgICAgIF5+fn5+fn5+
fn4KIyAxMDM4fCAgIAkJCX0KIyAxMDM5fCAgIAojIDEwNDB8LT4gICAgICAgICByZXR1cm4gbGVu
OwojIDEwNDF8ICAgCX0KIyAxMDQyfCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBk
LTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNj
b3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAnaW50IGxzdnBkOjpTeXNGU1RyZWVDb2xsZWN0
b3I6OmNvbGxlY3RWcGQobHN2cGQ6OkNvbXBvbmVudCosIGludCwgYm9vbCknCmxzdnBkLTEuNy41
L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6MTEyMzo3OiB3
YXJuaW5nOiB2YXJpYWJsZSAnbG9jJyBzZXQgYnV0IG5vdCB1c2VkIFstV3VudXNlZC1idXQtc2V0
LXZhcmlhYmxlXQojICAgaW50IGxvYzsKIyAgICAgICBeCiMgMTEyMXwgICAJCWludCByYzsKIyAx
MTIyfCAgIAkJc3RyaW5nIHN0cjsKIyAxMTIzfC0+IAkJaW50IGxvYzsKIyAxMTI0fCAgIAkJY2hh
ciB2ZW5kb3JbMzJdLCBtb2RlbFszMl0sIGZpcm13YXJlWzMyXTsKIyAxMTI1fCAgIAoKRXJyb3I6
IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl
L3N5c2ZzX1NDU0lfRmlsbC5jcHA6MTMyNzo4OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2Rv
bmVBSVgnIFstV3VudXNlZC12YXJpYWJsZV0KIyAgIGJvb2wgZG9uZUFJWCA9IGZhbHNlOwojICAg
ICAgICBeCiMgMTMyNXwgICAJCWludCBiZWcsIGVuZDsKIyAxMzI2fCAgIAkJc3RyaW5nIGRldkNs
YXNzLCBsaW5rLCBnZW5lcmljUGF0aDsKIyAxMzI3fC0+IAkJYm9vbCBkb25lQUlYID0gZmFsc2U7
CiMgMTMyOHwgICAJCXZlY3RvcjxEYXRhSXRlbSo+Ojpjb25zdF9pdGVyYXRvciBqLCBzdG9wOwoj
IDEzMjl8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVy
bmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDogc2NvcGVfaGludDogSW4gbWVt
YmVyIGZ1bmN0aW9uICdpbnQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6Z2V0X21tX3Njc2ko
bHN2cGQ6OkNvbXBvbmVudCopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFj
ZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjEzNTg6Mjc6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2Vl
biBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJl
XQojICAgd2hpbGUgKGVuZCA8IHN0ci5sZW5ndGgoKSAmJiBzdHJbZW5kXSAhPSAnOicpCiMgICAg
ICAgICAgICAgICAgICAgICAgICAgICBeCiMgMTM1NnwgICAKIyAxMzU3fCAgIAkJYmVnID0gZW5k
ID0gMDsKIyAxMzU4fC0+IAkJd2hpbGUgKGVuZCA8IHN0ci5sZW5ndGgoKSAmJiBzdHJbZW5kXSAh
PSAnOicpCiMgMTM1OXwgICAJCQllbmQrKzsKIyAxMzYwfCAgIAoKRXJyb3I6IENPTVBJTEVSX1dB
Uk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lf
RmlsbC5jcHA6MTM2NjoyNzogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQg
dW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICB3aGlsZSAo
ZW5kIDwgc3RyLmxlbmd0aCgpICYmIHN0cltlbmRdICE9ICc6JykgewojICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXgojIDEzNjR8ICAgCQliZWcgPSBlbmQgKyAxOwojIDEzNjV8ICAgCQllbmQg
PSBiZWc7CiMgMTM2NnwtPiAJCXdoaWxlIChlbmQgPCBzdHIubGVuZ3RoKCkgJiYgc3RyW2VuZF0g
IT0gJzonKSB7CiMgMTM2N3wgICAJCQllbmQrKzsKIyAxMzY4fCAgIAkJfQoKRXJyb3I6IENPTVBJ
TEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2Zz
X1NDU0lfRmlsbC5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdzdGQ6OnN0cmluZyBsc3Zw
ZDo6cGFyc2VJUFJGaWVsZChzdGQ6OnN0cmluZyYsIHN0ZDo6c3RyaW5nJiknCmxzdnBkLTEuNy41
L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6MTM5ODoyNDog
d2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBl
eHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICBpZiAoc3RhcnQgPT0gc3RyaW5nOjpucG9z
KQojICAgICAgICAgICAgICAgICAgICAgICAgXgojIDEzOTZ8ICAgCQlzdGFydCA9IG91dHB1dC5m
aW5kKGZpZWxkKTsKIyAxMzk3fCAgIAojIDEzOTh8LT4gCQlpZiAoc3RhcnQgPT0gc3RyaW5nOjpu
cG9zKQojIDEzOTl8ICAgCQkJcmV0dXJuICIiOwojIDE0MDB8ICAgCgpFcnJvcjogQ09NUElMRVJf
V0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NT
SV9GaWxsLmNwcDoxNDAyOjI0OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFu
ZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIGlmIChz
dGFydCA9PSBzdHJpbmc6Om5wb3MpCiMgICAgICAgICAgICAgICAgICAgICAgICBeCiMgMTQwMHwg
ICAKIyAxNDAxfCAgIAkJc3RhcnQgPSBvdXRwdXQuZmluZCgnOicsIHN0YXJ0KTsKIyAxNDAyfC0+
IAkJaWYgKHN0YXJ0ID09IHN0cmluZzo6bnBvcykKIyAxNDAzfCAgIAkJCXJldHVybiAiIjsKIyAx
NDA0fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5h
bC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6MTQwODoyMjogd2FybmluZzogY29t
cGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBb
LVdzaWduLWNvbXBhcmVdCiMgICBpZiAoZW5kID09IHN0cmluZzo6bnBvcykKIyAgICAgICAgICAg
ICAgICAgICAgICBeCiMgMTQwNnwgICAJCXN0YXJ0Kys7CiMgMTQwN3wgICAJCWVuZCA9IG91dHB1
dC5maW5kKCdcbicsIHN0YXJ0KTsKIyAxNDA4fC0+IAkJaWYgKGVuZCA9PSBzdHJpbmc6Om5wb3Mp
CiMgMTQwOXwgICAJCQllbmQgPSBvdXRwdXQubGVuZ3RoKCk7CiMgMTQxMHwgICAJCXJldHVybiBz
dHJpbmcob3V0cHV0LnN1YnN0cihzdGFydCwgZW5kIC0gc3RhcnQpKTsKCkVycm9yOiBDT01QSUxF
Ul9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19T
Q1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ3ZvaWQgbHN2cGQ6
OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6ZmlsbElQUkRhdGEobHN2cGQ6OkNvbXBvbmVudCopJwpsc3Zw
ZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjE0
NjI6Nzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpJyBbLVd1bnVzZWQtdmFyaWFibGVdCiMg
ICBpbnQgaTsKIyAgICAgICBeCiMgMTQ2MHwgICAJCWNoYXIgKmRldlNnOwojIDE0NjF8ICAgCQlz
dHJpbmcgY21kOwojIDE0NjJ8LT4gCQlpbnQgaTsKIyAxNDYzfCAgIAojIDE0NjR8ICAgCQlpZiAo
cGF0aCA9PSAiIikKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50
ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJ
biBtZW1iZXIgZnVuY3Rpb24gJ3ZvaWQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6c2NzaUdl
dEhUQkwobHN2cGQ6OkNvbXBvbmVudCopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2lu
dGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOjEyMjo1NTogd2FybmluZzogY29tcGFyaXNv
biBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWdu
LWNvbXBhcmVdCiMgICBpZiAoIChsb2MgPSB0bXAucmZpbmQoIi8iLHRtcC5sZW5ndGgoKSkpICE9
IHN0cmluZzo6bnBvcyApIHsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBeCiMgIDEyMHwgICAJCWludCBsb2MsIHBsb2M7CiMgIDEyMXwgICAK
IyAgMTIyfC0+IAkJaWYgKCAobG9jID0gdG1wLnJmaW5kKCIvIix0bXAubGVuZ3RoKCkpKSAhPSBz
dHJpbmc6Om5wb3MgKSB7CiMgIDEyM3wgICAJCQl0bXAgPSB0bXAuc3Vic3RyKGxvYyArIDEsIHRt
cC5sZW5ndGgoKSk7CiMgIDEyNHwgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0x
LjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOjEy
NTo0NTogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50
ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgaWYgKCAobG9jID0gdG1wLmZp
bmQoIjoiLCAwKSkgIT0gc3RyaW5nOjpucG9zKQojICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXgojICAxMjN8ICAgCQkJdG1wID0gdG1wLnN1YnN0cihsb2MgKyAx
LCB0bXAubGVuZ3RoKCkpOwojICAxMjR8ICAgCiMgIDEyNXwtPiAJCQlpZiAoIChsb2MgPSB0bXAu
ZmluZCgiOiIsIDApKSAhPSBzdHJpbmc6Om5wb3MpCiMgIDEyNnwgICAJCQkJZmlsbE1lLT5hZGRE
ZXZpY2VTcGVjaWZpYygiWEgiLCAiU0NTSSBIb3N0IiwgdG1wLnN1YnN0cigwLCBsb2MpLCA2MCk7
CiMgIDEyN3wgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50
ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOjEyOTo0ODogd2Fybmlu
ZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNz
aW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgaWYgKCAobG9jID0gdG1wLmZpbmQoIjoiLCBwbG9j
KSkgIT0gc3RyaW5nOjpucG9zKQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXgojICAxMjd8ICAgCiMgIDEyOHwgICAJCQlwbG9jID0gbG9jICsgMTsKIyAg
MTI5fC0+IAkJCWlmICggKGxvYyA9IHRtcC5maW5kKCI6IiwgcGxvYykpICE9IHN0cmluZzo6bnBv
cykKIyAgMTMwfCAgIAkJCQlmaWxsTWUtPmFkZERldmljZVNwZWNpZmljKCJYQiIsICJTQ1NJIEJ1
cyIsCiMgIDEzMXwgICAJCQkJCQkJCQkJCQkJdG1wLnN1YnN0cihwbG9jLCBsb2MgLSBwbG9jKSwg
NjApOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9z
eXNfaW50ZXJmYWNlL3N5c2ZzdHJlZWNvbGxlY3Rvci5jcHA6MTMzOjQ4OiB3YXJuaW5nOiBjb21w
YXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFst
V3NpZ24tY29tcGFyZV0KIyAgICBpZiAoIChsb2MgPSB0bXAuZmluZCgiOiIsIHBsb2MpKSAhPSBz
dHJpbmc6Om5wb3MpCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBeCiMgIDEzMXwgICAJCQkJCQkJCQkJCQkJdG1wLnN1YnN0cihwbG9jLCBsb2MgLSBwbG9j
KSwgNjApOwojICAxMzJ8ICAgCQkJcGxvYyA9IGxvYyArIDE7CiMgIDEzM3wtPiAJCQlpZiAoIChs
b2MgPSB0bXAuZmluZCgiOiIsIHBsb2MpKSAhPSBzdHJpbmc6Om5wb3MpCiMgIDEzNHwgICAJCQkJ
ZmlsbE1lLT5hZGREZXZpY2VTcGVjaWZpYygiWFQiLCAiU0NTSSBUYXJnZXQiLAojICAxMzV8ICAg
CQkJCQkJCQkJCQl0bXAuc3Vic3RyKHBsb2MsIGxvYyAtIHBsb2MpLCA2MCk7CgpFcnJvcjogQ09N
UElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lz
ZnN0cmVlY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDogSW4gbWVtYmVyIGZ1bmN0aW9uICd2b2lk
IGxzdnBkOjpTeXNGU1RyZWVDb2xsZWN0b3I6OmlkZUdldEhUQkwobHN2cGQ6OkNvbXBvbmVudCop
Jwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0
b3IuY3BwOjE0Nzo1NTogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5z
aWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICBpZiAoIChsb2Mg
PSB0bXAucmZpbmQoIi8iLHRtcC5sZW5ndGgoKSkpICE9IHN0cmluZzo6bnBvcyApCiMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICAxNDV8
ICAgCQlpbnQgbG9jOwojICAxNDZ8ICAgCiMgIDE0N3wtPiAJCWlmICggKGxvYyA9IHRtcC5yZmlu
ZCgiLyIsdG1wLmxlbmd0aCgpKSkgIT0gc3RyaW5nOjpucG9zICkKIyAgMTQ4fCAgIAkJCWZpbGxN
ZS0+YWRkRGV2aWNlU3BlY2lmaWMoIlhJIiwgIklERSBEZXZpY2UgSWRlbnRpZmllciIsCiMgIDE0
OXwgICAJCQkJCXRtcC5zdWJzdHIobG9jICsgMSwgdG1wLmxlbmd0aCgpKSwgNjApOwoKRXJyb3I6
IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl
L3N5c2ZzdHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAn
bHN2cGQ6OkNvbXBvbmVudCogbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6ZmluZENvbXBvbmVu
dChzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4sIHN0ZDo6c3RyaW5nKScKbHN2cGQtMS43
LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnN0cmVlY29sbGVjdG9yLmNwcDozMTE6
MzM6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVn
ZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgZm9yIChpbnQgaSA9IDA7IGkgPCBk
ZXZzLnNpemUoKTsgaSsrKSB7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMg
IDMwOXwgICAJCXN0cmluZyBzeXNQYXRoICkKIyAgMzEwfCAgIAl7CiMgIDMxMXwtPiAJCWZvciAo
aW50IGkgPSAwOyBpIDwgZGV2cy5zaXplKCk7IGkrKykgewojICAzMTJ8ICAgCQkJaWYgKGRldnNb
aV0tPnN5c0ZzTm9kZS5nZXRWYWx1ZSgpID09IHN5c1BhdGgpIHsKIyAgMzEzfCAgIAkJCQlyZXR1
cm4gZGV2c1tpXTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50
ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJ
biBtZW1iZXIgZnVuY3Rpb24gJ3ZvaWQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6cmVtb3Zl
RHVwbGljYXRlRGV2aWNlcyhzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4mKScKbHN2cGQt
MS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnN0cmVlY29sbGVjdG9yLmNwcDoz
NTA6Nzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpJyBbLVd1bnVzZWQtdmFyaWFibGVdCiMg
ICBpbnQgaSwgajsKIyAgICAgICBeCiMgIDM0OHwgICAJCXZlY3RvciA8c3RyaW5nPiBjaGlsZHJl
bjsKIyAgMzQ5fCAgIAkJdmVjdG9yIDxDb21wb25lbnQqPjo6aXRlcmF0b3IgcGFyZW50LHRtcDsK
IyAgMzUwfC0+IAkJaW50IGksIGo7CiMgIDM1MXwgICAJCXN0cmluZyBkZXZOb2RlLCBkZXZOYW1l
OwojICAzNTJ8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2lu
dGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnN0cmVlY29sbGVjdG9yLmNwcDozNTA6MTA6IHdhcm5p
bmc6IHVudXNlZCB2YXJpYWJsZSAnaicgWy1XdW51c2VkLXZhcmlhYmxlXQojICAgaW50IGksIGo7
CiMgICAgICAgICAgXgojICAzNDh8ICAgCQl2ZWN0b3IgPHN0cmluZz4gY2hpbGRyZW47CiMgIDM0
OXwgICAJCXZlY3RvciA8Q29tcG9uZW50Kj46Oml0ZXJhdG9yIHBhcmVudCx0bXA7CiMgIDM1MHwt
PiAJCWludCBpLCBqOwojICAzNTF8ICAgCQlzdHJpbmcgZGV2Tm9kZSwgZGV2TmFtZTsKIyAgMzUy
fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9z
eXNfaW50ZXJmYWNlL3N5c2ZzdHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJl
ciBmdW5jdGlvbiAndm9pZCBsc3ZwZDo6U3lzRlNUcmVlQ29sbGVjdG9yOjpmaW5kRGV2aWNlcyhz
dGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4mLCBjb25zdCBzdHJpbmcmLCBjb25zdCBzdHJp
bmcmKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnN0cmVlY29s
bGVjdG9yLmNwcDo4NTU6Nzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICd0bXBfY291bnQnIFst
V3VudXNlZC12YXJpYWJsZV0KIyAgIGludCB0bXBfY291bnQgPSAwOwojICAgICAgIF4KIyAgODUz
fCAgIAkJQ29tcG9uZW50ICp0bXBEZXY7CiMgIDg1NHwgICAJCXN0cmluZyB0bXAsIGRldk5hbWUs
IHBhcmVudERldjsKIyAgODU1fC0+IAkJaW50IHRtcF9jb3VudCA9IDA7CiMgIDg1NnwgICAJCWNo
YXIgKnBhcmVudDsKIyAgODU3fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEu
Ny41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzdHJlZWNvbGxlY3Rvci5jcHA6IHNj
b3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAnc3RkOjpzdHJpbmcgbHN2cGQ6OlN5c0ZTVHJl
ZUNvbGxlY3Rvcjo6Z2V0RGV2VHJlZVBhdGgoc3RkOjpzdHJpbmcpJwpsc3ZwZC0xLjcuNS9zcmMv
aW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOjk0NzoyNDogd2Fy
bmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdjaGFyKiBmZ2V0cyhjaGFyKiwgaW50LCBG
SUxFKiknLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51
c2VkLXJlc3VsdF0KIyAgICBmZ2V0cyhidWYyLCA1MTIsIGZpKTsKIyAgICAgICAgICAgICAgICAg
ICAgICAgIF4KIyAgOTQ1fCAgIAkJZmkgPSBmb3BlbihidWYgLCAiciIpOwojICA5NDZ8ICAgCQlp
ZiAoZmkgIT0gTlVMTCkgewojICA5NDd8LT4gCQkJZmdldHMoYnVmMiwgNTEyLCBmaSk7CiMgIDk0
OHwgICAJCQlpID0gMDsKIyAgOTQ5fCAgIAkJCXdoaWxlIChidWYyW2ldICE9ICdcMCcpIHsKCkVy
cm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVy
ZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rp
b24gJ3ZvaWQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6ZmlsbE5ldENsYXNzKGxzdnBkOjpD
b21wb25lbnQqLCBjb25zdCBzdHJpbmcmKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19p
bnRlcmZhY2Uvc3lzZnN0cmVlY29sbGVjdG9yLmNwcDoxNDU4OjQ3OiB3YXJuaW5nOiBjb21wYXJp
c29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3Np
Z24tY29tcGFyZV0KIyAgIHdoaWxlKCAoIHBvcyA9IHZhbC5maW5kKCAnOicgKSApICE9IHN0cmlu
Zzo6bnBvcyApCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF4KIyAxNDU2fCAgIAkJdmFsID0gdmFsLnN1YnN0ciggMCwgMTcgKTsKIyAxNDU3fCAgIAkJaW50
IHBvczsKIyAxNDU4fC0+IAkJd2hpbGUoICggcG9zID0gdmFsLmZpbmQoICc6JyApICkgIT0gc3Ry
aW5nOjpucG9zICkKIyAxNDU5fCAgIAkJewojIDE0NjB8ICAgCQkJdmFsLmVyYXNlKCBwb3MsIDEg
KTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvdXBk
YXRlci5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdpbnQgbWFpbihpbnQsIGNoYXIqKikn
CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC91cGRhdGVyLmNwcDo4OTo5OiB3YXJuaW5nOiBlbnVt
ZXJhdGlvbiB2YWx1ZSAnUEZfTlVMTCcgbm90IGhhbmRsZWQgaW4gc3dpdGNoIFstV3N3aXRjaF0K
IyAgc3dpdGNoIChQbGF0Zm9ybUNvbGxlY3Rvcjo6cGxhdGZvcm1fdHlwZSkgewojICAgICAgICAg
XgojICAgODd8ICAgCXN0cmluZyBwbGF0Zm9ybSA9IFBsYXRmb3JtQ29sbGVjdG9yOjpnZXRfcGxh
dGZvcm1fbmFtZSgpOwojICAgODh8ICAgCiMgICA4OXwtPiAJc3dpdGNoIChQbGF0Zm9ybUNvbGxl
Y3Rvcjo6cGxhdGZvcm1fdHlwZSkgewojICAgOTB8ICAgCWNhc2UgUEZfUE9XRVJLVk1fUFNFUklF
U19HVUVTVDoKIyAgIDkxfCAgIAljYXNlIFBGX0VSUk9SOgoKRXJyb3I6IENPTVBJTEVSX1dBUk5J
Tkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC91cGRhdGVyLmNwcDo4OTo5OiB3YXJuaW5nOiBl
bnVtZXJhdGlvbiB2YWx1ZSAnUEZfUE9XRVJLVk1fSE9TVCcgbm90IGhhbmRsZWQgaW4gc3dpdGNo
IFstV3N3aXRjaF0KIyAgIDg3fCAgIAlzdHJpbmcgcGxhdGZvcm0gPSBQbGF0Zm9ybUNvbGxlY3Rv
cjo6Z2V0X3BsYXRmb3JtX25hbWUoKTsKIyAgIDg4fCAgIAojICAgODl8LT4gCXN3aXRjaCAoUGxh
dGZvcm1Db2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgIDkwfCAgIAljYXNlIFBGX1BPV0VS
S1ZNX1BTRVJJRVNfR1VFU1Q6CiMgICA5MXwgICAJY2FzZSBQRl9FUlJPUjoKCkVycm9yOiBDT01Q
SUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvdXBkYXRlci5jcHA6ODk6OTog
d2FybmluZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX1BPV0VSVk1fTFBBUicgbm90IGhhbmRsZWQg
aW4gc3dpdGNoIFstV3N3aXRjaF0KIyAgIDg3fCAgIAlzdHJpbmcgcGxhdGZvcm0gPSBQbGF0Zm9y
bUNvbGxlY3Rvcjo6Z2V0X3BsYXRmb3JtX25hbWUoKTsKIyAgIDg4fCAgIAojICAgODl8LT4gCXN3
aXRjaCAoUGxhdGZvcm1Db2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgIDkwfCAgIAljYXNl
IFBGX1BPV0VSS1ZNX1BTRVJJRVNfR1VFU1Q6CiMgICA5MXwgICAJY2FzZSBQRl9FUlJPUjoKCkVy
cm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvdXBkYXRlci5j
cHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICd2b2lkIGFyY2hpdmVEQihjb25zdCBzdHJpbmcm
KScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3VwZGF0ZXIuY3BwOjIwNTo0ODogd2FybmluZzog
aWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdpbnQgbGluayhjb25zdCBjaGFyKiwgY29uc3QgY2hh
ciopJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91bnVzZWRfcmVzdWx0IFstV3VudXNl
ZC1yZXN1bHRdCiMgICBsaW5rKCBmdWxsUGF0aC5jX3N0ciggKSwgb3Muc3RyKCApLmNfc3RyKCAp
ICk7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMg
IDIwM3wgICAJCX0KIyAgMjA0fCAgIAojICAyMDV8LT4gCQlsaW5rKCBmdWxsUGF0aC5jX3N0cigg
KSwgb3Muc3RyKCApLmNfc3RyKCApICk7CiMgIDIwNnwgICAJCXVubGluayggZnVsbFBhdGguY19z
dHIoICkgKTsKIyAgMjA3fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41
L3NyYy9pbnRlcm5hbC91cGRhdGVyLmNwcDogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2ludCBl
bnN1cmVFbnYoY29uc3Qgc3RyaW5nJiknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC91cGRhdGVy
LmNwcDozNTk6NDQ6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2ln
bmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICBpZiggKCBpZHggPSBl
bnYucmZpbmQoICcvJyApICkgPT0gc3RyaW5nOjpucG9zICkKIyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXgojICAzNTd8ICAgCiMgIDM1OHwgICAJaW50IGlkeDsK
IyAgMzU5fC0+IAlpZiggKCBpZHggPSBlbnYucmZpbmQoICcvJyApICkgPT0gc3RyaW5nOjpucG9z
ICkKIyAgMzYwfCAgIAl7CiMgIDM2MXwgICAJCXJldHVybiByZXQ7CgpFcnJvcjogQ09NUElMRVJf
V0FSTklORzoKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc2NmZy5jcHA6IHNjb3BlX2hpbnQ6IElu
IGZ1bmN0aW9uICd2b2lkIHByaW50U3BlY2lmaWMobHN2cGQ6OkNvbXBvbmVudCopJwpsc3ZwZC0x
LjcuNS9zcmMvb3V0cHV0L2xzY2ZnLmNwcDoxOTM6MjI6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0
d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21w
YXJlXQojICAgaWYoIGxvYyAhPSBzdHJpbmc6Om5wb3MgKQojICAgICAgICAgICAgICAgICAgICAg
IF4KIyAgMTkxfCAgIAkJbm9kZSA9IG5vZGUuc3Vic3RyKCBsb2MgKzEgKTsKIyAgMTkyfCAgIAkJ
bG9jID0gbm9kZS5maW5kKCAnQCcgKTsKIyAgMTkzfC0+IAkJaWYoIGxvYyAhPSBzdHJpbmc6Om5w
b3MgKQojICAxOTR8ICAgCQl7CiMgIDE5NXwgICAJCQljb3V0IDw8ICIgIE5hbWU6ICAiOwoKRXJy
b3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHNjZmcuY3BwOjE5
NjoyMzogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50
ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgaWYoIGxvYyA9PSBzdHJpbmc6
Om5wb3MgKQojICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDE5NHwgICAJCXsKIyAgMTk1fCAg
IAkJCWNvdXQgPDwgIiAgTmFtZTogICI7CiMgIDE5NnwtPiAJCQlpZiggbG9jID09IHN0cmluZzo6
bnBvcyApCiMgIDE5N3wgICAJCQkJY291dCA8PCBub2RlOwojICAxOTh8ICAgCQkJZWxzZQoKRXJy
b3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHNjZmcuY3BwOiBz
Y29wZV9oaW50OiBJbiBmdW5jdGlvbiAnaW50IGdldENQVU1vZGVsTmFtZShsc3ZwZDo6U3lzdGVt
Kiwgc3RkOjpzdHJpbmcmKScKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc2NmZy5jcHA6NjEyOjIz
OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2Vy
IGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgICBpZiAoYmVnICE9IHN0cmluZzo6bnBv
cykgCiMgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNjEwfCAgIAkJaWYgKG1vZGVsX3RtcC5s
ZW5ndGgoKSA+IDApIHsKIyAgNjExfCAgIAkJCWludCBiZWcgPSBtb2RlbF90bXAuZmluZCgiOiAi
KTsKIyAgNjEyfC0+IAkJCWlmIChiZWcgIT0gc3RyaW5nOjpucG9zKSAKIyAgNjEzfCAgIAkJCQlu
YW1lID0gbW9kZWxfdG1wLnN1YnN0cihiZWcgKyAxLCBtb2RlbF90bXAubGVuZ3RoKCkgLSBiZWcg
KyAxKTsKIyAgNjE0fCAgIAkJCQlyZXR1cm4gMDsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgps
c3ZwZC0xLjcuNS9zcmMvb3V0cHV0L2xzY2ZnLmNwcDogc2NvcGVfaGludDogSW4gZnVuY3Rpb24g
J2ludCBtYWluKGludCwgY2hhcioqKScKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc2NmZy5jcHA6
NzQwOjk6IHdhcm5pbmc6IGVudW1lcmF0aW9uIHZhbHVlICdQRl9OVUxMJyBub3QgaGFuZGxlZCBp
biBzd2l0Y2ggWy1Xc3dpdGNoXQojICBzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9y
bV90eXBlKSB7CiMgICAgICAgICBeCiMgIDczOHwgICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZv
cm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1lKCk7CiMgIDczOXwgICAKIyAgNzQwfC0+IAlz
d2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgIDc0MXwgICAJY2Fz
ZSBQRl9QT1dFUktWTV9QU0VSSUVTX0dVRVNUOgojICA3NDJ8ICAgCWNhc2UgUEZfRVJST1I6CgpF
cnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc2NmZy5jcHA6
NzQwOjk6IHdhcm5pbmc6IGVudW1lcmF0aW9uIHZhbHVlICdQRl9QT1dFUktWTV9IT1NUJyBub3Qg
aGFuZGxlZCBpbiBzd2l0Y2ggWy1Xc3dpdGNoXQojICA3Mzh8ICAgCXN0cmluZyBwbGF0Zm9ybSA9
IFBsYXRmb3JtQ29sbGVjdG9yOjpnZXRfcGxhdGZvcm1fbmFtZSgpOwojICA3Mzl8ICAgCiMgIDc0
MHwtPiAJc3dpdGNoIChQbGF0Zm9ybUNvbGxlY3Rvcjo6cGxhdGZvcm1fdHlwZSkgewojICA3NDF8
ICAgCWNhc2UgUEZfUE9XRVJLVk1fUFNFUklFU19HVUVTVDoKIyAgNzQyfCAgIAljYXNlIFBGX0VS
Uk9SOgoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHNj
ZmcuY3BwOjc0MDo5OiB3YXJuaW5nOiBlbnVtZXJhdGlvbiB2YWx1ZSAnUEZfUE9XRVJWTV9MUEFS
JyBub3QgaGFuZGxlZCBpbiBzd2l0Y2ggWy1Xc3dpdGNoXQojICA3Mzh8ICAgCXN0cmluZyBwbGF0
Zm9ybSA9IFBsYXRmb3JtQ29sbGVjdG9yOjpnZXRfcGxhdGZvcm1fbmFtZSgpOwojICA3Mzl8ICAg
CiMgIDc0MHwtPiAJc3dpdGNoIChQbGF0Zm9ybUNvbGxlY3Rvcjo6cGxhdGZvcm1fdHlwZSkgewoj
ICA3NDF8ICAgCWNhc2UgUEZfUE9XRVJLVk1fUFNFUklFU19HVUVTVDoKIyAgNzQyfCAgIAljYXNl
IFBGX0VSUk9SOgoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRw
dXQvbHNtY29kZS5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdpbnQgbWFpbihpbnQsIGNo
YXIqKiknCmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHNtY29kZS5jcHA6MzEzOjk6IHdhcm5pbmc6
IGVudW1lcmF0aW9uIHZhbHVlICdQRl9OVUxMJyBub3QgaGFuZGxlZCBpbiBzd2l0Y2ggWy1Xc3dp
dGNoXQojICBzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgICAg
ICAgICBeCiMgIDMxMXwgICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xsZWN0b3I6Omdl
dF9wbGF0Zm9ybV9uYW1lKCk7CiMgIDMxMnwgICAKIyAgMzEzfC0+IAlzd2l0Y2ggKFBsYXRmb3Jt
Q29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgIDMxNHwgICAJY2FzZSBQRl9QT1dFUktWTV9Q
U0VSSUVTX0dVRVNUOgojICAzMTV8ICAgCWNhc2UgUEZfRVJST1I6CgpFcnJvcjogQ09NUElMRVJf
V0FSTklORzoKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc21jb2RlLmNwcDozMTM6OTogd2Fybmlu
ZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX1BPV0VSS1ZNX0hPU1QnIG5vdCBoYW5kbGVkIGluIHN3
aXRjaCBbLVdzd2l0Y2hdCiMgIDMxMXwgICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xs
ZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1lKCk7CiMgIDMxMnwgICAKIyAgMzEzfC0+IAlzd2l0Y2gg
KFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgIDMxNHwgICAJY2FzZSBQRl9Q
T1dFUktWTV9QU0VSSUVTX0dVRVNUOgojICAzMTV8ICAgCWNhc2UgUEZfRVJST1I6CgpFcnJvcjog
Q09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc21jb2RlLmNwcDozMTM6
OTogd2FybmluZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX1BPV0VSVk1fTFBBUicgbm90IGhhbmRs
ZWQgaW4gc3dpdGNoIFstV3N3aXRjaF0KIyAgMzExfCAgIAlzdHJpbmcgcGxhdGZvcm0gPSBQbGF0
Zm9ybUNvbGxlY3Rvcjo6Z2V0X3BsYXRmb3JtX25hbWUoKTsKIyAgMzEyfCAgIAojICAzMTN8LT4g
CXN3aXRjaCAoUGxhdGZvcm1Db2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgMzE0fCAgIAlj
YXNlIFBGX1BPV0VSS1ZNX1BTRVJJRVNfR1VFU1Q6CiMgIDMxNXwgICAJY2FzZSBQRl9FUlJPUjoK
CkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvb3V0cHV0L2xzdmlvLmNw
cDogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2ludCBtYWluKGludCwgY2hhcioqKScKbHN2cGQt
MS43LjUvc3JjL291dHB1dC9sc3Zpby5jcHA6MjIwOjk6IHdhcm5pbmc6IGVudW1lcmF0aW9uIHZh
bHVlICdQRl9OVUxMJyBub3QgaGFuZGxlZCBpbiBzd2l0Y2ggWy1Xc3dpdGNoXQojICBzd2l0Y2gg
KFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgICAgICAgICBeCiMgIDIxOHwg
ICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1l
KCk7CiMgIDIxOXwgICAKIyAgMjIwfC0+IAlzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0
Zm9ybV90eXBlKSB7CiMgIDIyMXwgICAJY2FzZSBQRl9QT1dFUktWTV9QU0VSSUVTX0dVRVNUOgoj
ICAyMjJ8ICAgCWNhc2UgUEZfUE9XRVJLVk1fSE9TVDoKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5H
Ogpsc3ZwZC0xLjcuNS9zcmMvb3V0cHV0L2xzdmlvLmNwcDoyMjA6OTogd2FybmluZzogZW51bWVy
YXRpb24gdmFsdWUgJ1BGX1BPV0VSVk1fTFBBUicgbm90IGhhbmRsZWQgaW4gc3dpdGNoIFstV3N3
aXRjaF0KIyAgMjE4fCAgIAlzdHJpbmcgcGxhdGZvcm0gPSBQbGF0Zm9ybUNvbGxlY3Rvcjo6Z2V0
X3BsYXRmb3JtX25hbWUoKTsKIyAgMjE5fCAgIAojICAyMjB8LT4gCXN3aXRjaCAoUGxhdGZvcm1D
b2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgMjIxfCAgIAljYXNlIFBGX1BPV0VSS1ZNX1BT
RVJJRVNfR1VFU1Q6CiMgIDIyMnwgICAJY2FzZSBQRl9QT1dFUktWTV9IT1NUOgoKRXJyb3I6IENP
TVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHN2cGQuY3BwOiBzY29wZV9o
aW50OiBJbiBmdW5jdGlvbiAnaW50IG1haW4oaW50LCBjaGFyKiopJwpsc3ZwZC0xLjcuNS9zcmMv
b3V0cHV0L2xzdnBkLmNwcDo0MDU6OTogd2FybmluZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX05V
TEwnIG5vdCBoYW5kbGVkIGluIHN3aXRjaCBbLVdzd2l0Y2hdCiMgIHN3aXRjaCAoUGxhdGZvcm1D
b2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgICAgICAgIF4KIyAgNDAzfCAgIAlzdHJpbmcg
cGxhdGZvcm0gPSBQbGF0Zm9ybUNvbGxlY3Rvcjo6Z2V0X3BsYXRmb3JtX25hbWUoKTsKIyAgNDA0
fCAgIAojICA0MDV8LT4gCXN3aXRjaCAoUGxhdGZvcm1Db2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUp
IHsKIyAgNDA2fCAgIAljYXNlIFBGX1BPV0VSS1ZNX1BTRVJJRVNfR1VFU1Q6CiMgIDQwN3wgICAJ
Y2FzZSBQRl9FUlJPUjoKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMv
b3V0cHV0L2xzdnBkLmNwcDo0MDU6OTogd2FybmluZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX1BP
V0VSS1ZNX0hPU1QnIG5vdCBoYW5kbGVkIGluIHN3aXRjaCBbLVdzd2l0Y2hdCiMgIDQwM3wgICAJ
c3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1lKCk7
CiMgIDQwNHwgICAKIyAgNDA1fC0+IAlzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9y
bV90eXBlKSB7CiMgIDQwNnwgICAJY2FzZSBQRl9QT1dFUktWTV9QU0VSSUVTX0dVRVNUOgojICA0
MDd8ICAgCWNhc2UgUEZfRVJST1I6CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43
LjUvc3JjL291dHB1dC9sc3ZwZC5jcHA6NDA1Ojk6IHdhcm5pbmc6IGVudW1lcmF0aW9uIHZhbHVl
ICdQRl9QT1dFUlZNX0xQQVInIG5vdCBoYW5kbGVkIGluIHN3aXRjaCBbLVdzd2l0Y2hdCiMgIDQw
M3wgICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9u
YW1lKCk7CiMgIDQwNHwgICAKIyAgNDA1fC0+IAlzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpw
bGF0Zm9ybV90eXBlKSB7CiMgIDQwNnwgICAJY2FzZSBQRl9QT1dFUktWTV9QU0VSSUVTX0dVRVNU
OgojICA0MDd8ICAgCWNhc2UgUEZfRVJST1I6Cg==
------=_Part_219942_2100275017.1438003944946
Content-Type: text/plain; name=libservicelog-results.txt
Content-Disposition: attachment; filename=libservicelog-results.txt
Content-Transfer-Encoding: base64

RXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9hZGRsX2Rh
dGEuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2luc2VydF9hZGRsX2RhdGFfb3MnCmxpYnNl
cnZpY2Vsb2ctMS4xLjE1L3NyYy9hZGRsX2RhdGEuYzo3MDo0OiB3YXJuaW5nOiBmb3JtYXQgJyVs
bHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1
dCBhcmd1bWVudCA0IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICBldmVudC0+
aWQsIHZlcnNpb24sIG9zLT5zdWJzeXN0ZW0sIG9zLT5kcml2ZXIsIG9zLT5kZXZpY2UpOwojICAg
IF4KIyAgIDY4fCAgIAlzbnByaW50ZihidWYsIDEwMjQsICJJTlNFUlQgT1IgUkVQTEFDRSBJTlRP
IG9zIChldmVudF9pZCwgdmVyc2lvbiwgc3Vic3lzdGVtLCAiCiMgICA2OXwgICAJCSAiZHJpdmVy
LCBkZXZpY2UpIFZBTFVFUyAoJWxsdSwgJyVzJywgJyVzJywgJyVzJywgJyVzJyk7IiwKIyAgIDcw
fC0+IAkJIGV2ZW50LT5pZCwgdmVyc2lvbiwgb3MtPnN1YnN5c3RlbSwgb3MtPmRyaXZlciwgb3Mt
PmRldmljZSk7CiMgICA3MXwgICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVM
TCwgTlVMTCwgTlVMTCk7CiMgICA3MnwgICAJaWYgKHJjICE9IFNRTElURV9PSykKCkVycm9yOiBD
T01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvYWRkbF9kYXRhLmM6IHNj
b3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdpbnNlcnRfYWRkbF9kYXRhX3J0YXMnCmxpYnNlcnZpY2Vs
b2ctMS4xLjE1L3NyYy9hZGRsX2RhdGEuYzoxMDU6NDogd2FybmluZzogZm9ybWF0ICclbGx1JyBl
eHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJn
dW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgcnRhcy0+YWRkbF93
b3Jkc1s3XSk7CiMgICAgXgojICAxMDN8ICAgCQkgcnRhcy0+YWRkbF93b3Jkc1sxXSwgcnRhcy0+
YWRkbF93b3Jkc1syXSwgcnRhcy0+YWRkbF93b3Jkc1szXSwKIyAgMTA0fCAgIAkJIHJ0YXMtPmFk
ZGxfd29yZHNbNF0sIHJ0YXMtPmFkZGxfd29yZHNbNV0sIHJ0YXMtPmFkZGxfd29yZHNbNl0sCiMg
IDEwNXwtPiAJCSBydGFzLT5hZGRsX3dvcmRzWzddKTsKIyAgMTA2fCAgIAlyYyA9IHNxbGl0ZTNf
ZXhlYyhzbG9nLT5kYiwgYnVmLCBOVUxMLCBOVUxMLCBOVUxMKTsKIyAgMTA3fCAgIAlpZiAocmMg
IT0gU1FMSVRFX09LKQoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4x
LjE1L3NyYy9hZGRsX2RhdGEuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2luc2VydF9hZGRs
X2RhdGFfZW5jbG9zdXJlJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvYWRkbF9kYXRhLmM6MTMx
OjQ6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25n
IGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDQgaGFzIHR5cGUgJ3VpbnQ2NF90JyBb
LVdmb3JtYXQ9XQojICAgIGVuY2wtPmVuY2xvc3VyZV9tb2RlbCwgZW5jbC0+ZW5jbG9zdXJlX3Nl
cmlhbCk7CiMgICAgXgojICAxMjl8ICAgCXNucHJpbnRmKGJ1ZiwgMTAyNCwgIklOU0VSVCBPUiBS
RVBMQUNFIElOVE8gZW5jbG9zdXJlIChldmVudF9pZCwgZW5jbG9zdXJlX21vZGVsLCAiCiMgIDEz
MHwgICAJCSAiZW5jbG9zdXJlX3NlcmlhbCkgVkFMVUVTICglbGx1LCAnJXMnLCAnJXMnKTsiLCBl
dmVudC0+aWQsCiMgIDEzMXwtPiAJCSBlbmNsLT5lbmNsb3N1cmVfbW9kZWwsIGVuY2wtPmVuY2xv
c3VyZV9zZXJpYWwpOwojICAxMzJ8ICAgCXJjID0gc3FsaXRlM19leGVjKHNsb2ctPmRiLCBidWYs
IE5VTEwsIE5VTEwsIE5VTEwpOwojICAxMzN8ICAgCWlmIChyYyAhPSBTUUxJVEVfT0spCgpFcnJv
cjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2FkZGxfZGF0YS5j
OiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnaW5zZXJ0X2FkZGxfZGF0YV9ibWMnCmxpYnNlcnZp
Y2Vsb2ctMS4xLjE1L3NyYy9hZGRsX2RhdGEuYzoxNjE6NDogd2FybmluZzogZm9ybWF0ICclbGx1
JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQg
YXJndW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgYm1jLT5kaXJl
Y3Rpb24pOwojICAgIF4KIyAgMTU5fCAgIAkJIGJtYy0+Z2VuZXJhdG9yLCBibWMtPnZlcnNpb24s
IGJtYy0+c2Vuc29yX3R5cGUsCiMgIDE2MHwgICAJCSBibWMtPnNlbnNvcl9udW1iZXIsIGJtYy0+
ZXZlbnRfY2xhc3MsIGJtYy0+ZXZlbnRfdHlwZSwKIyAgMTYxfC0+IAkJIGJtYy0+ZGlyZWN0aW9u
KTsKIyAgMTYyfCAgIAlyYyA9IHNxbGl0ZTNfZXhlYyhzbG9nLT5kYiwgYnVmLCBOVUxMLCBOVUxM
LCBOVUxMKTsKIyAgMTYzfCAgIAlpZiAocmMgIT0gU1FMSVRFX09LKQoKRXJyb3I6IENPTVBJTEVS
X1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOiBzY29wZV9oaW50OiBJ
biBmdW5jdGlvbiAncHV0X2Jsb2InCmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjEw
Njo0OiB3YXJuaW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9u
ZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCA2IGhhcyB0eXBlICd1aW50NjRfdCcg
Wy1XZm9ybWF0PV0KIyAgICB0YWJsZSwgY29sdW1uLCByb3cpOwojICAgIF4KIyAgMTA0fCAgIAoj
ICAxMDV8ICAgCXNucHJpbnRmKHF1ZXJ5LCA4MCwgIlVQREFURSAlcyBTRVQgJXMgPSA/IFdIRVJF
IGlkID0gJWxsdSIsCiMgIDEwNnwtPiAJCSB0YWJsZSwgY29sdW1uLCByb3cpOwojICAxMDd8ICAg
CiMgIDEwOHwgICAJZG8gewoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ct
MS4xLjE1L3NyYy9ldmVudC5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnc2VydmljZWxvZ19l
dmVudF9sb2cnCmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjM0MDo2OiB3YXJuaW5n
OiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2ln
bmVkIGludCcsIGJ1dCBhcmd1bWVudCA0IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0K
IyAgICAgIGZydSwgc2VyaWFsLCBjY2luKTsKIyAgICAgIF4KIyAgMzM4fCAgIAkJCQkgIiclcycs
ICclcycsICclcycsICclcycpOyIsIGV2ZW50X2lkLAojICAzMzl8ICAgCQkJCSBjYWxsb3V0LT5w
cmlvcml0eSwgY2FsbG91dC0+dHlwZSwgcHJvYywgbG9jLAojICAzNDB8LT4gCQkJCSBmcnUsIHNl
cmlhbCwgY2Npbik7CiMgIDM0MXwgICAJCQlyYyA9IHNxbGl0ZTNfZXhlYyhzbG9nLT5kYiwgYnVm
LCBOVUxMLCBOVUxMLCAmZXJyKTsKIyAgMzQyfCAgIAkJCWlmIChyYyAhPSBTUUxJVEVfT0spIHsK
CkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvZXZlbnQu
Yzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZpY2Vsb2dfZXZlbnRfZ2V0JwpsaWJzZXJ2
aWNlbG9nLTEuMS4xNS9zcmMvZXZlbnQuYzo0Mjk6Mjogd2FybmluZzogZm9ybWF0ICclbGx1JyBl
eHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJn
dW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgIHNucHJpbnRmKHF1ZXJ5
LCAzMCwgImlkPSVsbHUiLCBldmVudF9pZCk7CiMgIF4KIyAgNDI3fCAgIAljaGFyIHF1ZXJ5WzMw
XTsKIyAgNDI4fCAgIAojICA0Mjl8LT4gCXNucHJpbnRmKHF1ZXJ5LCAzMCwgImlkPSVsbHUiLCBl
dmVudF9pZCk7CiMgIDQzMHwgICAJcmV0dXJuIHNlcnZpY2Vsb2dfZXZlbnRfcXVlcnkoc2xvZywg
cXVlcnksIGV2ZW50KTsKIyAgNDMxfCAgIH0KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJz
ZXJ2aWNlbG9nLTEuMS4xNS9zcmMvZXZlbnQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3Nl
cnZpY2Vsb2dfZXZlbnRfcXVlcnknCmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjU4
Nzo1OiB3YXJuaW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9u
ZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCA0IGhhcyB0eXBlICd1aW50NjRfdCcg
Wy1XZm9ybWF0PV0KIyAgICAgImV2ZW50X2lkID0gJWxsdSIsIGUtPmlkKTsKIyAgICAgXgojICA1
ODV8ICAgCQkvKiBSZXRyaWV2ZSBhbnkgY2FsbG91dHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZXZl
bnQgKi8KIyAgNTg2fCAgIAkJc25wcmludGYoYnVmLCA1MTIsICJTRUxFQ1QgKiBGUk9NIGNhbGxv
dXRzIFdIRVJFICIKIyAgNTg3fC0+IAkJCSAiZXZlbnRfaWQgPSAlbGx1IiwgZS0+aWQpOwojICA1
ODh8ICAgCQlyYyA9IHNxbGl0ZTNfZXhlYyhzbG9nLT5kYiwgYnVmLCBidWlsZF9jYWxsb3V0LCAm
KGUtPmNhbGxvdXRzKSwKIyAgNTg5fCAgIAkJCQkgIE5VTEwpOwoKRXJyb3I6IENPTVBJTEVSX1dB
Uk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjU5Nzo2OiB3YXJuaW5nOiBm
b3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVk
IGludCcsIGJ1dCBhcmd1bWVudCA1IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAg
ICAgICJldmVudF9pZCA9ICVsbHUiLCB0YWJsZSwgZS0+aWQpOwojICAgICAgXgojICA1OTV8ICAg
CiMgIDU5NnwgICAJCQlzbnByaW50ZihidWYsIDUxMiwgIlNFTEVDVCAqIEZST00gJXMgV0hFUkUg
IgojICA1OTd8LT4gCQkJCSAiZXZlbnRfaWQgPSAlbGx1IiwgdGFibGUsIGUtPmlkKTsKIyAgNTk4
fCAgIAojICA1OTl8ICAgCQkJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgcmV0cmll
dmVfZmNuLCBlLCAmZXJyKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9n
LTEuMS4xNS9zcmMvZXZlbnQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZpY2Vsb2df
ZXZlbnRfY2xvc2UnCmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjYyNDo0OiB3YXJu
aW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVu
c2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCA0IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0
PV0KIyAgICBldmVudF9pZCk7CiMgICAgXgojICA2MjJ8ICAgCiMgIDYyM3wgICAJc25wcmludGYo
YnVmLCA4MCwgIlVQREFURSBldmVudHMgU0VUIGNsb3NlZD0xIFdIRVJFIGlkPSVsbHUiLAojICA2
MjR8LT4gCQkgZXZlbnRfaWQpOwojICA2MjV8ICAgCiMgIDYyNnwgICAJcmMgPSBzcWxpdGUzX2V4
ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7CgpFcnJvcjogQ09NUElMRVJfV0FS
TklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2V2ZW50LmM6IHNjb3BlX2hpbnQ6IEluIGZ1
bmN0aW9uICdzZXJ2aWNlbG9nX2V2ZW50X3JlcGFpcicKbGlic2VydmljZWxvZy0xLjEuMTUvc3Jj
L2V2ZW50LmM6NjQ4OjQ6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBv
ZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDQgaGFzIHR5cGUg
J3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgICJXSEVSRSBpZD0lbGx1IiwgcmVwYWlyX2lkLCBl
dmVudF9pZCk7CiMgICAgXgojICA2NDZ8ICAgCiMgIDY0N3wgICAJc25wcmludGYoYnVmLCA4MCwg
IlVQREFURSBldmVudHMgU0VUIGNsb3NlZD0xLCByZXBhaXI9JWxsdSAiCiMgIDY0OHwtPiAJCSAi
V0hFUkUgaWQ9JWxsdSIsIHJlcGFpcl9pZCwgZXZlbnRfaWQpOwojICA2NDl8ICAgCiMgIDY1MHwg
ICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7CgpF
cnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2V2ZW50LmM6
NjQ4OjQ6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICds
b25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDUgaGFzIHR5cGUgJ3VpbnQ2NF90
JyBbLVdmb3JtYXQ9XQojICA2NDZ8ICAgCiMgIDY0N3wgICAJc25wcmludGYoYnVmLCA4MCwgIlVQ
REFURSBldmVudHMgU0VUIGNsb3NlZD0xLCByZXBhaXI9JWxsdSAiCiMgIDY0OHwtPiAJCSAiV0hF
UkUgaWQ9JWxsdSIsIHJlcGFpcl9pZCwgZXZlbnRfaWQpOwojICA2NDl8ICAgCiMgIDY1MHwgICAJ
cmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7CgpFcnJv
cjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2V2ZW50LmM6IHNj
b3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdkZWxldGVfcm93JwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9z
cmMvZXZlbnQuYzo2Njg6Mjogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50
IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1lbnQgNiBoYXMgdHlw
ZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgIHNucHJpbnRmKGJ1ZiwgODAsICJERUxFVEUgRlJP
TSAlcyBXSEVSRSAlcz0lbGx1IiwgdGFibGUsIGlkX2NvbHVtbiwgaWQpOwojICBeCiMgIDY2Nnwg
ICAJY2hhciBidWZbODBdLCAqZXJyOwojICA2Njd8ICAgCiMgIDY2OHwtPiAJc25wcmludGYoYnVm
LCA4MCwgIkRFTEVURSBGUk9NICVzIFdIRVJFICVzPSVsbHUiLCB0YWJsZSwgaWRfY29sdW1uLCBp
ZCk7CiMgIDY2OXwgICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVM
TCwgJmVycik7CiMgIDY3MHwgICAJaWYgKHJjICE9IFNRTElURV9PSykgewoKRXJyb3I6IENPTVBJ
TEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOiBzY29wZV9oaW50
OiBJbiBmdW5jdGlvbiAnc2VydmljZWxvZ19ldmVudF9wcmludCcKbGlic2VydmljZWxvZy0xLjEu
MTUvc3JjL2V2ZW50LmM6NzU3Ojc6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1
bWVudCBvZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDMgaGFz
IHR5cGUgJ3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgICAgIGV2ZW50LT5pZCk7CiMgICAgICAg
XgojICA3NTV8ICAgCQkJLyoganVzdCBwcmludCBwYXJhbS92YWx1ZSBwYWlycyAqLwojICA3NTZ8
ICAgCQkJY291bnQgKz0gZnByaW50ZihzdHIsICJTZXJ2aWNlbG9nSUQ6ICVsbHVcbiIsCiMgIDc1
N3wtPiAJCQkJCSBldmVudC0+aWQpOwojICA3NTh8ICAgCQkJbG9jYWx0aW1lX3IoJihldmVudC0+
dGltZV9sb2dnZWQpLCAmdGltZSk7CiMgIDc1OXwgICAJCQljb3VudCArPSBmcHJpbnRmKHN0ciwg
IkxvZ1RpbWU6ICUwMmQvJTAyZC8lMDRkICIKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJz
ZXJ2aWNlbG9nLTEuMS4xNS9zcmMvZXZlbnQuYzo4MDY6Nzogd2FybmluZzogZm9ybWF0ICclbGx1
JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQg
YXJndW1lbnQgMyBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgICAgZXZlbnQt
PnJlcGFpcik7CiMgICAgICAgXgojICA4MDR8ICAgCQkJY291bnQgKz0gZnByaW50ZihzdHIsICJD
bG9zZWQ6ICVkXG4iLCBldmVudC0+Y2xvc2VkKTsKIyAgODA1fCAgIAkJCWNvdW50ICs9IGZwcmlu
dGYoc3RyLCAiUmVwYWlySUQ6ICVsbHVcbiIsCiMgIDgwNnwtPiAJCQkJCSBldmVudC0+cmVwYWly
KTsKIyAgODA3fCAgIAkJCXdoaWxlIChjYWxsb3V0ICE9IE5VTEwpIHsKIyAgODA4fCAgIAkJCQlj
b3VudCArPSBmcHJpbnRmKHN0ciwgIkNhbGxvdXQ6ICVjICVkICVzICVzICVzICIKCkVycm9yOiBD
UFBDSEVDS19XQVJOSU5HIChDV0UtNDE1KToKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2V2ZW50
LmM6OTQ4OiBlcnJvcltkb3VibGVGcmVlXTogTWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3QxJyBpcyBm
cmVlZCB0d2ljZS4KIyAgOTQ2fCAgIAkJaWYgKGFkZGxfZGF0YV9mY25zW3QxLT50eXBlXS5mcmVl
ICE9IE5VTEwpCiMgIDk0N3wgICAJCQlhZGRsX2RhdGFfZmNuc1t0MS0+dHlwZV0uZnJlZSh0MSk7
CiMgIDk0OHwtPiAJCWZyZWUodDEpOwojICA5NDl8ICAgCQl0MSA9IHQyOwojICA5NTB8ICAgCX0K
CkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvbm90aWZ5
LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdzZXJ2aWNlbG9nX25vdGlmeV9nZXQnCmxpYnNl
cnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzoxNjY6Mjogd2FybmluZzogZm9ybWF0ICclbGx1
JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQg
YXJndW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgIHNucHJpbnRmKHF1
ZXJ5LCAzMCwgImlkPSVsbHUiLCBub3RpZnlfaWQpOwojICBeCiMgIDE2NHwgICAJY2hhciBxdWVy
eVszMF07CiMgIDE2NXwgICAKIyAgMTY2fC0+IAlzbnByaW50ZihxdWVyeSwgMzAsICJpZD0lbGx1
Iiwgbm90aWZ5X2lkKTsKIyAgMTY3fCAgIAlyZXR1cm4gc2VydmljZWxvZ19ub3RpZnlfcXVlcnko
c2xvZywgcXVlcnksIG5vdGlmeSk7CiMgIDE2OHwgICB9CgpFcnJvcjogQ09NUElMRVJfV0FSTklO
RzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL25vdGlmeS5jOiBzY29wZV9oaW50OiBJbiBmdW5j
dGlvbiAnc2VydmljZWxvZ19ub3RpZnlfdXBkYXRlJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMv
bm90aWZ5LmM6MzE2OjQ6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBv
ZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDggaGFzIHR5cGUg
J3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgIG5vdGlmeS0+bWF0Y2gsIG5vdGlmeV9pZCk7CiMg
ICAgXgojICAzMTR8ICAgCQkgImNvbW1hbmQ9JyVzJywgbWV0aG9kPSVkLCBtYXRjaD0nJXMnKSBX
SEVSRSBpZD0lbGx1IiwKIyAgMzE1fCAgIAkJIG5vdGlmeS0+bm90aWZ5LCBjb21tYW5kLCBub3Rp
ZnktPm1ldGhvZCwKIyAgMzE2fC0+IAkJIG5vdGlmeS0+bWF0Y2gsIG5vdGlmeV9pZCk7CiMgIDMx
N3wgICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7
CiMgIDMxOHwgICAJaWYgKHJjICE9IFNRTElURV9PSykgewoKRXJyb3I6IENPTVBJTEVSX1dBUk5J
Tkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzogc2NvcGVfaGludDogSW4gZnVu
Y3Rpb24gJ3NlcnZpY2Vsb2dfbm90aWZ5X2RlbGV0ZScKbGlic2VydmljZWxvZy0xLjEuMTUvc3Jj
L25vdGlmeS5jOjM0MTo0OiB3YXJuaW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQg
b2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCA0IGhhcyB0eXBl
ICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICBub3RpZnlfaWQpOwojICAgIF4KIyAgMzM5fCAg
IAojICAzNDB8ICAgCXNucHJpbnRmKGJ1ZiwgODAsICJERUxFVEUgRlJPTSBub3RpZmljYXRpb25z
IFdIRVJFIGlkPSVsbHUiLAojICAzNDF8LT4gCQkgbm90aWZ5X2lkKTsKIyAgMzQyfCAgIAojICAz
NDN8ICAgCXJjID0gc3FsaXRlM19leGVjKHNsb2ctPmRiLCBidWYsIE5VTEwsIE5VTEwsICZlcnIp
OwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3Rp
ZnkuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZpY2Vsb2dfbm90aWZ5X3ByaW50Jwps
aWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvbm90aWZ5LmM6Mzc3Ojc6IHdhcm5pbmc6IGZvcm1hdCAn
JWxsdScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50Jywg
YnV0IGFyZ3VtZW50IDMgaGFzIHR5cGUgJ3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgICAgIG5v
dGlmeS0+aWQpOwojICAgICAgIF4KIyAgMzc1fCAgIAojICAzNzZ8ICAgCQkJY291bnQgKz0gZnBy
aW50ZihzdHIsICJTZXJ2aWNlbG9nSUQ6ICVsbHVcbiIsCiMgIDM3N3wtPiAJCQkJCSBub3RpZnkt
PmlkKTsKIyAgMzc4fCAgIAkJCWxvY2FsdGltZV9yKCYobm90aWZ5LT50aW1lX2xvZ2dlZCksICZ0
aW1lKTsKIyAgMzc5fCAgIAkJCWNvdW50ICs9IGZwcmludGYoc3RyLCAiTG9nVGltZTogJTAyZC8l
MDJkLyUwNGQgIgoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1
L3NyYy9ub3RpZnkuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3J1bl9ub3RpZmljYXRpb25f
dG9vbCcKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL25vdGlmeS5jOjQ3NTo4OiB3YXJuaW5nOiBm
b3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVk
IGludCcsIGJ1dCBhcmd1bWVudCA1IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAg
ICAgICAgbm90aWZ5LT5jb21tYW5kLCBpZCk7CiMgICAgICAgIF4KIyAgNDczfCAgIAkJaWYgKG5v
dGlmeS0+bWV0aG9kID09IFNMX01FVEhPRF9OVU1fVklBX0NNRF9MSU5FKQojICA0NzR8ICAgCQkJ
c25wcmludGYoY21kLCBERVNDX01BWExFTiArIDEwLCAiJXMgJWxsdSIsCiMgIDQ3NXwtPiAJCQkJ
CQkgbm90aWZ5LT5jb21tYW5kLCBpZCk7CiMgIDQ3NnwgICAJCWVsc2UgewojICA0Nzd8ICAgCQkJ
LyogbmVlZCBwaXBlcyB0byBwYXNzIGluIHN0ZGluICovCgpFcnJvcjogQ0xBTkdfV0FSTklORzoK
bGlic2VydmljZWxvZy0xLjEuMTUvc3JjL25vdGlmeS5jOjQ5MDo0OiB3YXJuaW5nOiBGdW5jdGlv
biBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKIyAgICAgICAgICAgICAg
ICAgICAgICAgIGNsb3NlKHBpcGVfZmRbMV0pOwojICAgICAgICAgICAgICAgICAgICAgICAgXn5+
fn5+fn5+fn5+fn5+fn4KIyAgNDg4fCAgIAkJfQojICA0ODl8ICAgCQllbHNlIGlmIChwaWQgPT0g
MCkgewkvKiBjaGlsZDsgc2V0IHVwIHBpcGVzLCBleGVjIGNvbW1hbmQgKi8KIyAgNDkwfC0+IAkJ
CWNsb3NlKHBpcGVfZmRbMV0pOwojICA0OTF8ICAgCQkJZHVwMihwaXBlX2ZkWzBdLCBmaWxlbm8o
c3RkaW4pKTsKIyAgNDkyfCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vs
b2ctMS4xLjE1L3NyYy9ub3RpZnkuYzo1Mzk6NDogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBl
Y3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1l
bnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgc25wcmludGYoYnVmLCAx
MjgsICIlbGx1IiwgaWQpOwojICAgIF4KIyAgNTM3fCAgIAkJaWYgKG5vdGlmeS0+bWV0aG9kID09
IFNMX01FVEhPRF9OVU1fVklBX1NURElOKSB7CiMgIDUzOHwgICAJCQljbG9zZShwaXBlX2ZkWzBd
KTsKIyAgNTM5fC0+IAkJCXNucHJpbnRmKGJ1ZiwgMTI4LCAiJWxsdSIsIGlkKTsKIyAgNTQwfCAg
IAkJCXdyaXRlKHBpcGVfZmRbMV0sIGJ1Ziwgc3RybGVuKGJ1ZikpOwojICA1NDF8ICAgCQkJY2xv
c2UocGlwZV9mZFsxXSk7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0x
LjEuMTUvc3JjL25vdGlmeS5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAncnVuX25vdGlmaWNh
dGlvbl90b29sJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvbm90aWZ5LmM6NTQwOjk6IHdhcm5p
bmc6IGlnbm9yaW5nIHJldHVybiB2YWx1ZSBvZiAnd3JpdGUnLCBkZWNsYXJlZCB3aXRoIGF0dHJp
YnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgICB3cml0ZShwaXBl
X2ZkWzFdLCBidWYsIHN0cmxlbihidWYpKTsKIyAgICAgICAgIF4KIyAgNTM4fCAgIAkJCWNsb3Nl
KHBpcGVfZmRbMF0pOwojICA1Mzl8ICAgCQkJc25wcmludGYoYnVmLCAxMjgsICIlbGx1IiwgaWQp
OwojICA1NDB8LT4gCQkJd3JpdGUocGlwZV9mZFsxXSwgYnVmLCBzdHJsZW4oYnVmKSk7CiMgIDU0
MXwgICAJCQljbG9zZShwaXBlX2ZkWzFdKTsKIyAgNTQyfCAgIAkJfQoKRXJyb3I6IENMQU5HX1dB
Uk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzo2Mjc6NDogd2FybmluZzog
UG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ25vdGlmeS5jb21tYW5kJwoj
ICAgICAgICAgICAgICAgICAgICAgICAgc3RyY3B5KG5vdGlmeS5jb21tYW5kLCBhcmd2W2ldKTsK
IyAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K
IyAgNjI1fCAgIAkJZWxzZSBpZiAoIXN0cmNtcChjb2x1bW5baV0sICJjb21tYW5kIikpIHsKIyAg
NjI2fCAgIAkJCW5vdGlmeS5jb21tYW5kID0gbWFsbG9jKHN0cmxlbihhcmd2W2ldKSArIDEpOwoj
ICA2Mjd8LT4gCQkJc3RyY3B5KG5vdGlmeS5jb21tYW5kLCBhcmd2W2ldKTsKIyAgNjI4fCAgIAkJ
fQojICA2Mjl8ICAgCQllbHNlIGlmICghc3RyY21wKGNvbHVtbltpXSwgIm1ldGhvZCIpKQoKRXJy
b3I6IENMQU5HX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzo2MzM6
NDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ25vdGlm
eS5tYXRjaCcKIyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNweShub3RpZnkubWF0Y2gsIGFy
Z3ZbaV0pOwojICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn4KIyAgNjMxfCAgIAkJZWxzZSBpZiAoIXN0cmNtcChjb2x1bW5baV0sICJtYXRjaCIpKSB7
CiMgIDYzMnwgICAJCQlub3RpZnkubWF0Y2ggPSBtYWxsb2Moc3RybGVuKGFyZ3ZbaV0pICsgMSk7
CiMgIDYzM3wtPiAJCQlzdHJjcHkobm90aWZ5Lm1hdGNoLCBhcmd2W2ldKTsKIyAgNjM0fCAgIAkJ
fQojICA2MzV8ICAgCX0KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9nLTEu
MS4xNS9zcmMvbm90aWZ5LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdjaGVja19ub3RpZnkn
CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzo2Mzg6Mzogd2FybmluZzogZm9ybWF0
ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQn
LCBidXQgYXJndW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICBzbnBy
aW50ZihxdWVyeSwgMTAyNCwgImlkPSVsbHUiLCBkYXRhLT5pZCk7CiMgICBeCiMgIDYzNnwgICAK
IyAgNjM3fCAgIAlpZiAoIW5vdGlmeS5tYXRjaCB8fCBzdHJsZW4obm90aWZ5Lm1hdGNoKSA9PSAw
KQojICA2Mzh8LT4gCQlzbnByaW50ZihxdWVyeSwgMTAyNCwgImlkPSVsbHUiLCBkYXRhLT5pZCk7
CiMgIDYzOXwgICAJZWxzZQojICA2NDB8ICAgCQlzbnByaW50ZihxdWVyeSwgMTAyNCwgIiglcykg
QU5EIGlkPSVsbHUiLCBub3RpZnkubWF0Y2gsCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGli
c2VydmljZWxvZy0xLjEuMTUvc3JjL25vdGlmeS5jOjY0MTo5OiB3YXJuaW5nOiBmb3JtYXQgJyVs
bHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1
dCBhcmd1bWVudCA1IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICAgICAgIGRh
dGEtPmlkKTsKIyAgICAgICAgIF4KIyAgNjM5fCAgIAllbHNlCiMgIDY0MHwgICAJCXNucHJpbnRm
KHF1ZXJ5LCAxMDI0LCAiKCVzKSBBTkQgaWQ9JWxsdSIsIG5vdGlmeS5tYXRjaCwKIyAgNjQxfC0+
IAkJCQkJCQkJZGF0YS0+aWQpOwojICA2NDJ8ICAgCiMgIDY0M3wgICAJaWYgKGRhdGEtPm5vdGlm
eSA9PSBTTF9OT1RJRllfRVZFTlRTKSB7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2Vy
dmljZWxvZy0xLjEuMTUvc3JjL3JlcGFpcl9hY3Rpb24uYzogc2NvcGVfaGludDogSW4gZnVuY3Rp
b24gJ3NlcnZpY2Vsb2dfcmVwYWlyX2dldCcKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL3JlcGFp
cl9hY3Rpb24uYzoyODc6Mjogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50
IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1lbnQgNCBoYXMgdHlw
ZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgIHNucHJpbnRmKHF1ZXJ5LCAzMCwgImlkPSVsbHUi
LCByZXBhaXJfaWQpOwojICBeCiMgIDI4NXwgICAJY2hhciBxdWVyeVszMF07CiMgIDI4NnwgICAK
IyAgMjg3fC0+IAlzbnByaW50ZihxdWVyeSwgMzAsICJpZD0lbGx1IiwgcmVwYWlyX2lkKTsKIyAg
Mjg4fCAgIAlyZXR1cm4gc2VydmljZWxvZ19yZXBhaXJfcXVlcnkoc2xvZywgcXVlcnksIHJlcGFp
cik7CiMgIDI4OXwgICB9CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0x
LjEuMTUvc3JjL3JlcGFpcl9hY3Rpb24uYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZp
Y2Vsb2dfcmVwYWlyX2RlbGV0ZScKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL3JlcGFpcl9hY3Rp
b24uYzo0MTI6NDogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5
cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1lbnQgNCBoYXMgdHlwZSAndWlu
dDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgcmVwYWlyX2lkKTsKIyAgICBeCiMgIDQxMHwgICAKIyAg
NDExfCAgIAlzbnByaW50ZihidWYsIDgwLCAiREVMRVRFIEZST00gcmVwYWlyX2FjdGlvbnMgV0hF
UkUgaWQ9JWxsdSIsCiMgIDQxMnwtPiAJCSByZXBhaXJfaWQpOwojICA0MTN8ICAgCiMgIDQxNHwg
ICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7CgpF
cnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL3JlcGFpcl9h
Y3Rpb24uYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZpY2Vsb2dfcmVwYWlyX3ByaW50
JwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvcmVwYWlyX2FjdGlvbi5jOjQ0OTo3OiB3YXJuaW5n
OiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2ln
bmVkIGludCcsIGJ1dCBhcmd1bWVudCAzIGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0K
IyAgICAgICByZXBhaXItPmlkKTsKIyAgICAgICBeCiMgIDQ0N3wgICAKIyAgNDQ4fCAgIAkJCWNv
dW50ICs9IGZwcmludGYoc3RyLCAiU2VydmljZWxvZ0lEOiAlbGx1XG4iLAojICA0NDl8LT4gCQkJ
CQkgcmVwYWlyLT5pZCk7CiMgIDQ1MHwgICAJCQlsb2NhbHRpbWVfcigmKHJlcGFpci0+dGltZV9s
b2dnZWQpLCAmdGltZSk7CiMgIDQ1MXwgICAJCQljb3VudCArPSBmcHJpbnRmKHN0ciwgIkxvZ1Rp
bWU6ICUwMmQvJTAyZC8lMDRkICIKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNl
bG9nLTEuMS4xNS9zcmMvc2VydmljZWxvZy5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnZ2V0
X3N5c3RlbV9pbmZvJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvc2VydmljZWxvZy5jOjM0ODo4
OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1cm4gdmFsdWUgb2YgJ2ZyZWFkJywgZGVjbGFyZWQgd2l0
aCBhdHRyaWJ1dGUgd2Fybl91bnVzZWRfcmVzdWx0IFstV3VudXNlZC1yZXN1bHRdCiMgICBmcmVh
ZChqdW5rX2NoYXJzLCBuX2p1bmtfY2hhcnMsIDEsIGZkKTsKIyAgICAgICAgXgojICAzNDZ8ICAg
CiMgIDM0N3wgICAJaWYgKG5fanVua19jaGFycyA+IDApCiMgIDM0OHwtPiAJCWZyZWFkKGp1bmtf
Y2hhcnMsIG5fanVua19jaGFycywgMSwgZmQpOwojICAzNDl8ICAgCiMgIDM1MHwgICAJbl9yZWFk
ID0gZnJlYWQoYnVmLCBzeiwgMSwgZmQpOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNl
cnZpY2Vsb2ctMS4xLjE1L3NyYy9zZXJ2aWNlbG9nLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9u
ICdzZXJ2aWNlbG9nX3RydW5jYXRlJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvc2VydmljZWxv
Zy5jOjYyODo2OiB3YXJuaW5nOiB2YXJpYWJsZSAncmMnIHNldCBidXQgbm90IHVzZWQgWy1XdW51
c2VkLWJ1dC1zZXQtdmFyaWFibGVdCiMgIGludCByYzsKIyAgICAgIF4KIyAgNjI2fCAgIHNlcnZp
Y2Vsb2dfdHJ1bmNhdGUoc2VydmljZWxvZyAqc2xvZywgaW50IG5vdGlmaWNhdGlvbnNfdG9vKQoj
ICA2Mjd8ICAgewojICA2Mjh8LT4gCWludCByYzsKIyAgNjI5fCAgIAojICA2MzB8ICAgCWlmIChz
bG9nID09IE5VTEwpCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEu
MTUvc3JjL3YyOV9jb21wYXQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2NvbnZlcnRfa2V5
X3RvX3YyOScKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL3YyOV9jb21wYXQuYzo2Njo0OiB3YXJu
aW5nOiBmb3JtYXQgJyVsbGQnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIGlu
dCcsIGJ1dCBhcmd1bWVudCA1IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICAi
djErICVzIElEICVsbGQgdHJ1bmNhdGVkIHRvIDMyIGJpdHMiLCBrZXlfdHlwZSwga2V5NjQpOwoj
ICAgIF4KIyAgIDY0fCAgIAlpZiAoKmtleTMyICE9IGtleTY0KSB7CiMgICA2NXwgICAJCXNucHJp
bnRmKGxvZy0+ZXJyb3IsIFNMX01BWF9FUlIsCiMgICA2NnwtPiAJCQkidjErICVzIElEICVsbGQg
dHJ1bmNhdGVkIHRvIDMyIGJpdHMiLCBrZXlfdHlwZSwga2V5NjQpOwojICAgNjd8ICAgCQlyZXR1
cm4gRURPTTsKIyAgIDY4fCAgIAl9CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2Vydmlj
ZWxvZy0xLjEuMTUvc3JjL3YyOV9jb21wYXQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2Zp
bmRfcmVwYWlyZWRfZXZlbnRzJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvdjI5X2NvbXBhdC5j
OjQ5MToyOiB3YXJuaW5nOiBmb3JtYXQgJyVsbGQnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAn
bG9uZyBsb25nIGludCcsIGJ1dCBhcmd1bWVudCAzIGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9y
bWF0PV0KIyAgc3ByaW50ZihxdWVyeSwgInJlcGFpcj0lbGxkIiwgcmVwYWlyX2lkKTsKIyAgXgoj
ICA0ODl8ICAgCWNoYXIgcXVlcnlbNDBdOwojICA0OTB8ICAgCiMgIDQ5MXwtPiAJc3ByaW50Zihx
dWVyeSwgInJlcGFpcj0lbGxkIiwgcmVwYWlyX2lkKTsKIyAgNDkyfCAgIAlyZXR1cm4gc2Vydmlj
ZWxvZ19ldmVudF9xdWVyeShsb2csIHF1ZXJ5LCBldmVudHMpOwojICA0OTN8ICAgfQoKRXJyb3I6
IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy92MjlfY29tcGF0LmM6
IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdfY29udmVydF92MV9zbF9ub3RpZnlfdG9fdjI5Jwps
aWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvdjI5X2NvbXBhdC5jOjEwNjE6NTogd2FybmluZzogZm9y
bWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBp
bnQnLCBidXQgYXJndW1lbnQgNSBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAg
ICJ0byB2MC4yLjkgc2xfbm90aWZ5IiwgdjEtPm1hdGNoLCB2MS0+aWQpOwojICAgICBeCiMgMTA1
OXwgICAJCQlzbnByaW50Zihsb2ctPmVycm9yLCBTTF9NQVhfRVJSLCAiY2FuJ3QgdHJhbnNsYXRl
ICIKIyAxMDYwfCAgIAkJCQkibWF0Y2ggc3RyaW5nICclcycgZm9yIHYxKyBzbF9ub3RpZnkgJWxs
dSAiCiMgMTA2MXwtPiAJCQkJInRvIHYwLjIuOSBzbF9ub3RpZnkiLCB2MS0+bWF0Y2gsIHYxLT5p
ZCk7CiMgMTA2MnwgICAJCQlyZXR1cm4gRU5PVFNVUDsKIyAxMDYzfCAgIAkJfQo=
------=_Part_219942_2100275017.1438003944946
Content-Type: text/plain; name=lbvpd-results.txt
Content-Disposition: attachment; filename=lbvpd-results.txt
Content-Transfer-Encoding: base64

RXJyb3I6IENMQU5HX1dBUk5JTkc6CmxpYnZwZC0yLjIuNC9zcmMvZGF0YWl0ZW1fYy5jOjYxOjEw
OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiMgICAgICAgICAgICAg
ICAgbmV4dCA9IHRoaXMtPm5leHQ7CiMgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4K
IyAgIDU5fCAgIAl3aGlsZSggdGhpcyApCiMgICA2MHwgICAJewojICAgNjF8LT4gCQluZXh0ID0g
dGhpcy0+bmV4dDsKIyAgIDYyfCAgIAkJZnJlZV9kYXRhaXRlbSggdGhpcyApOwojICAgNjN8ICAg
CQl0aGlzID0gbmV4dDsKCkVycm9yOiBDUFBDSEVDS19XQVJOSU5HIChDV0UtNDU2KToKbGlidnBk
LTIuMi40L3NyYy9oZWxwZXJfZnVuY3Rpb25zLmNwcDoxMzk6IGVycm9yW3VuaW5pdHZhcl06IFVu
aW5pdGlhbGl6ZWQgdmFyaWFibGU6IGVuZAojICAxMzd8ICAgCQkJcmV0dXJuIHBhdGg7CiMgIDEz
OHwgICAJCQojICAxMzl8LT4gCQlpZiAocGF0aFtlbmRdID09ICcvJykKIyAgMTQwfCAgIAkJCWVu
ZC0tOwojICAxNDF8ICAgCQkKCkVycm9yOiBDTEFOR19XQVJOSU5HOgpsaWJ2cGQtMi4yLjQvc3Jj
L2hlbHBlcl9mdW5jdGlvbnMuY3BwOjEzOTo3OiB3YXJuaW5nOiBGdW5jdGlvbiBjYWxsIGFyZ3Vt
ZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKIyAgICAgICAgICAgICAgICBpZiAocGF0aFtl
bmRdID09ICcvJykKIyAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CiMgIDEzN3wgICAJCQly
ZXR1cm4gcGF0aDsKIyAgMTM4fCAgIAkJCiMgIDEzOXwtPiAJCWlmIChwYXRoW2VuZF0gPT0gJy8n
KQojICAxNDB8ICAgCQkJZW5kLS07CiMgIDE0MXwgICAJCQoKRXJyb3I6IENPTVBJTEVSX1dBUk5J
Tkc6CmxpYnZwZC0yLjIuNC9zcmMvaGVscGVyX2Z1bmN0aW9ucy5jcHA6IHNjb3BlX2hpbnQ6IElu
IHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gJ3N0YXRpYyBzdGQ6OnN0cmluZyBsc3ZwZDo6SGVscGVy
RnVuY3Rpb25zOjpnZXRTeW1MaW5rVGFyZ2V0KGNvbnN0IHN0cmluZyYpJwpsaWJ2cGQtMi4yLjQv
c3JjL2hlbHBlcl9mdW5jdGlvbnMuY3BwOjE2NTo0Mzogd2FybmluZzogaWdub3JpbmcgcmV0dXJu
IHZhbHVlIG9mICdzc2l6ZV90IHJlYWRsaW5rKGNvbnN0IGNoYXIqLCBjaGFyKiwgc2l6ZV90KScs
IGRlY2xhcmVkIHdpdGggYXR0cmlidXRlIHdhcm5fdW51c2VkX3Jlc3VsdCBbLVd1bnVzZWQtcmVz
dWx0XQojICAgIHJlYWRsaW5rKGJ1ZiwgbGlua1RhcmdldCwgQlVGX1NJWkUgLSAxKTsKIyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDE2M3wgICAJCWJ1ZiA9
IHN0cmR1cChzeW1MaW5rUGF0aC5jX3N0cigpKTsKIyAgMTY0fCAgIAkJaWYgKGJ1ZiAhPSAgTlVM
TCkKIyAgMTY1fC0+IAkJCXJlYWRsaW5rKGJ1ZiwgbGlua1RhcmdldCwgQlVGX1NJWkUgLSAxKTsK
IyAgMTY2fCAgIAojICAxNjd8ICAgCQlyZXR1cm4gc3RyaW5nKGdldEFic29sdXRlUGF0aChsaW5r
VGFyZ2V0LCBidWYpKTsKCkVycm9yOiBDTEFOR19XQVJOSU5HOgpsaWJ2cGQtMi4yLjQvc3JjL2hl
bHBlcl9mdW5jdGlvbnMuY3BwOjE2NzoxMDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVt
b3J5IHBvaW50ZWQgdG8gYnkgJ2J1ZicKIyAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nKGdl
dEFic29sdXRlUGF0aChsaW5rVGFyZ2V0LCBidWYpKTsKIyAgICAgICAgICAgICAgICAgICAgICAg
Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiMgIDE2NXwgICAJCQlyZWFk
bGluayhidWYsIGxpbmtUYXJnZXQsIEJVRl9TSVpFIC0gMSk7CiMgIDE2NnwgICAKIyAgMTY3fC0+
IAkJcmV0dXJuIHN0cmluZyhnZXRBYnNvbHV0ZVBhdGgobGlua1RhcmdldCwgYnVmKSk7CiMgIDE2
OHwgICAJfQojICAxNjl8ICAgCgpFcnJvcjogQ0xBTkdfV0FSTklORzoKbGlidnBkLTIuMi40L3Ny
Yy9oZWxwZXJfZnVuY3Rpb25zLmNwcDoyMzU6MTE6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNz
ZWQgYXMgYW4gYXJndW1lbnQgdG8gYSAnbm9ubnVsbCcgcGFyYW1ldGVyCiMgICAgICAgICAgICAg
ICAgaW50IGkgPSBzdHJsZW4oY3VyRGlyKTsKIyAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+
fn5+fn5+fn5+CiMgIDIzM3wgICAJewojICAyMzR8ICAgCQlpbnQgbGVuID0gc3RybGVuKHJlbFBh
dGgpOwojICAyMzV8LT4gCQlpbnQgaSA9IHN0cmxlbihjdXJEaXIpOwojICAyMzZ8ICAgCQlzdHJp
bmcgdG1wOwojICAyMzd8ICAgCgpFcnJvcjogQ0xBTkdfV0FSTklORzoKbGlidnBkLTIuMi40L3Ny
Yy9oZWxwZXJfZnVuY3Rpb25zLmNwcDoyNjI6MjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn
ZW5kJyBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIGlzIG5ldmVyIHJlYWQKIyAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgYmVnID0gMCwgZW5kID0gczEubGVuZ3RoKCk7CiMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fiAgIH5+fn5+fn5+fn5+CiMgIDI2MHwgICAJ
Ym9vbCBIZWxwZXJGdW5jdGlvbnM6Om1hdGNoZXMoY29uc3Qgc3RyaW5nJiBzMSwgY29uc3Qgc3Ry
aW5nJiBzMikKIyAgMjYxfCAgIAl7CiMgIDI2MnwtPiAJCXVuc2lnbmVkIGludCBiZWcgPSAwLCBl
bmQgPSBzMS5sZW5ndGgoKTsKIyAgMjYzfCAgIAkJdW5zaWduZWQgaW50IHo7CiMgIDI2NHwgICAv
LwkJY291dGQgPDwgIiBzMSA9ICIgPDwgczEgPDwgIiwgczIgPSAiIDw8IHMyIDw8IGVuZGw7CgpF
cnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlidnBkLTIuMi40L3NyYy9saWJ2cGQtMi92cGRkYmVu
di5ocHA6MzA6IGluY2x1ZGVkX2Zyb206IEluY2x1ZGVkIGZyb20gaGVyZS4KbGlidnBkLTIuMi40
L3NyYy92cGRyZXRyaWV2ZXIuY3BwOjI0OiBpbmNsdWRlZF9mcm9tOiBJbmNsdWRlZCBmcm9tIGhl
cmUuCmxpYnZwZC0yLjIuNC9zcmMvbGlidnBkLTIvY29tcG9uZW50LmhwcDoxMDE6Mzc6IHdhcm5p
bmc6ICIvKiIgd2l0aGluIGNvbW1lbnQgWy1XY29tbWVudF0KIyAgICAgKiAgIFNob3VsZCBwb2lu
dCB0byAvc3lzL2RldmljZXMvKgojIF4KIyAgIDk5fCAgIAkJCSAqIEBicmllZgojICAxMDB8ICAg
CQkJICogICBJZiB0aGUgc3lzRnNOb2RlIGlzIGEgc3ltIGxpbmssIHRoaXMgaXMgdGhlIHJlc29s
dmVkIHBhdGgKIyAgMTAxfC0+IAkJCSAqIAkJU2hvdWxkIHBvaW50IHRvIC9zeXMvZGV2aWNlcy8q
CiMgIDEwMnwgICAJCQkgKi8KIyAgMTAzfCAgIAkJCURhdGFJdGVtIHN5c0ZzTGlua1RhcmdldDsK
CkVycm9yOiBDUFBDSEVDS19XQVJOSU5HIChDV0UtNDYwKToKbGlidnBkLTIuMi40L3NyYy92cGRk
YmVudi5jcHA6MTI4OiBlcnJvcltleGNlcHRUaHJvd0luRGVzdHJ1Y3Rvcl06IEV4Y2VwdGlvbiB0
aHJvd24gaW4gZGVzdHJ1Y3Rvci4KIyAgMTI2fCAgIAkJCWwubG9nKCBtZXNzYWdlLnN0ciggKSwg
TE9HX0VSUiApOwojICAxMjd8ICAgCQkJVnBkRXhjZXB0aW9uIHZlKCBtZXNzYWdlLnN0ciggKSAp
OwojICAxMjh8LT4gCQkJdGhyb3cgdmU7CiMgIDEyOXwgICAJCX0KIyAgMTMwfCAgIAl9CgpFcnJv
cjogQ09NUElMRVJfV0FSTklORzoKbGlidnBkLTIuMi40L3NyYy92cGRyZXRyaWV2ZXIuY3BwOiBz
Y29wZV9oaW50OiBJbiBjb25zdHJ1Y3RvciAnbHN2cGQ6OlZwZFJldHJpZXZlcjo6VnBkUmV0cmll
dmVyKCknCmxpYnZwZC0yLjIuNC9zcmMvdnBkcmV0cmlldmVyLmNwcDo5MTo0Mjogd2FybmluZzog
aWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdpbnQgc3lzdGVtKGNvbnN0IGNoYXIqKScsIGRlY2xh
cmVkIHdpdGggYXR0cmlidXRlIHdhcm5fdW51c2VkX3Jlc3VsdCBbLVd1bnVzZWQtcmVzdWx0XQoj
ICAgICBzeXN0ZW0oICJ2cGR1cGRhdGUgPi9kZXYvbnVsbCAyPiYxIiApOwojICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICAgODl8ICAgCQkJCSAqLwojICAgOTB8
ICAgCQkJCWxvZ2dlci5sb2coICJsaWJ2cGQ6IFJ1bm5pbmcgdnBkdXBkYXRlIHRvIHVwZGF0ZSB0
aGUgZGVmYXVsdCBkYi4iLCBMT0dfSU5GTyApOwojICAgOTF8LT4gCQkJCXN5c3RlbSggInZwZHVw
ZGF0ZSA+L2Rldi9udWxsIDI+JjEiICk7CiMgICA5MnwgICAJCQl9CiMgICA5M3wgICAJCX0K
------=_Part_219942_2100275017.1438003944946
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------

------=_Part_219942_2100275017.1438003944946
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Linux-diag-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-diag-devel

------=_Part_219942_2100275017.1438003944946--