Re: Reporting Security Violations in Software Package

Paul Eggert <[email protected]> Thu, 13 Mar 2025 13:47:29 -0700
Newsgroups gmane.comp.parsers.bison.bugs
Organization UCLA Computer Science Department
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------uFjIZvzExWSiiDinsphmqzeO
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 3/12/25 13:50, Paul Eggert wrote:
> However, the above-quoted message, like [1], says the code is "applying 
> non-zero offset 107820858999056" to the null pointer. That is a 
> different thing. Is Clang mis-reporting what's happening?

The answer is "no". I reproduced the problem, and as Collin said it was 
due to an old Gnulib version.

As far as I can see this isn't a real security violation on practical 
platforms. However, it does violate the C standard and some checking 
platforms will diagnose the violation.

To fix the problem I installed the attached patches to Bison master. The 
first one should fix the bug. The rest fix all the problems I noticed 
when trying to build using Clang 19.1.7 on Fedora 41 using 
-fsanitize=undefined, or using GCC 14.2.1 with --enable-gcc-warnings.

Thanks for reporting the problem.
--------------uFjIZvzExWSiiDinsphmqzeO
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-build-update-gnulib-and-autoconf-submodules-to-lates.patch"
Content-Disposition: attachment;
 filename*0="0001-build-update-gnulib-and-autoconf-submodules-to-lates.pa";
 filename*1="tch"
Content-Transfer-Encoding: base64

RnJvbSA4YjNkZjFhNDQzZGM3N2E2YjRkNGViMzcxNTU0MjI0NDEwMDcyYWIxIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBXZWQsIDEyIE1hciAyMDI1IDE2OjU2OjQ2IC0wNzAwClN1YmplY3Q6IFtQQVRD
SCAxLzZdIGJ1aWxkOiB1cGRhdGUgZ251bGliIGFuZCBhdXRvY29uZiBzdWJtb2R1bGVzIHRv
IGxhdGVzdAoKLS0tCiBnbnVsaWIgICAgICAgICAgICAgIHwgMiArLQogc3VibW9kdWxlcy9h
dXRvY29uZiB8IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dudWxpYiBiL2dudWxpYgppbmRleCA3MWI2MDM3
MC4uZWUyN2U5OTYgMTYwMDAwCi0tLSBhL2dudWxpYgorKysgYi9nbnVsaWIKQEAgLTEgKzEg
QEAKLVN1YnByb2plY3QgY29tbWl0IDcxYjYwMzcwMmI4Y2Y3OTc3ZGVkZDVmNmI3MWVhMGZm
YzE2Njk4OTQKK1N1YnByb2plY3QgY29tbWl0IGVlMjdlOTk2NDM1ZjBkYWYwZjhjZDk2MDI4
NWFiYjU4NTlmNTBhNGQKZGlmZiAtLWdpdCBhL3N1Ym1vZHVsZXMvYXV0b2NvbmYgYi9zdWJt
b2R1bGVzL2F1dG9jb25mCmluZGV4IDY2ZmRhZWEzLi4yZjY0ZGNkMCAxNjAwMDAKLS0tIGEv
c3VibW9kdWxlcy9hdXRvY29uZgorKysgYi9zdWJtb2R1bGVzL2F1dG9jb25mCkBAIC0xICsx
IEBACi1TdWJwcm9qZWN0IGNvbW1pdCA2NmZkYWVhM2NmYjRlNzU4MjEyYzE4OTE5MTNlOWE1
OTQ0MWQ0OWFmCitTdWJwcm9qZWN0IGNvbW1pdCAyZjY0ZGNkMDQ4YjA4YmI5MGVjNDRiMjZm
NGNkNmI3MjkxMTJhMjhlCi0tIAoyLjQ4LjEKCg==
--------------uFjIZvzExWSiiDinsphmqzeO
Content-Type: text/x-patch; charset=UTF-8; name="0002-maint-.-bootstrap.patch"
Content-Disposition: attachment; filename="0002-maint-.-bootstrap.patch"
Content-Transfer-Encoding: base64

RnJvbSA0MWE5MzllZWNlNzE3YWZiYWVkMjcwNGQyNDYzYjQ0NTIzY2VhYTY2IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBXZWQsIDEyIE1hciAyMDI1IDE3OjA0OjQyIC0wNzAwClN1YmplY3Q6IFtQQVRD
SCAyLzZdIG1haW50OiAuL2Jvb3RzdHJhcAoKLS0tCiBhdXRvZ2VuLnNoICAgICAgICAgICAg
ICB8IDQ1MSArLS0tLS0tLS0tLS0tLS0tLS0tCiBhdXRvcHVsbC5zaCAgICAgICAgICAgICB8
IDI0MCArLS0tLS0tLS0tCiBib290c3RyYXAgICAgICAgICAgICAgICB8IDEyNiArKysrLS0K
IGJvb3RzdHJhcC1mdW5jbGliLnNoICAgIHwgOTc0ICsrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKy0tLS0KIGxpYi8uZ2l0aWdub3JlICAgICAgICAgIHwgIDM5ICstCiBs
aWIvZ2x0aHJlYWQvLmdpdGlnbm9yZSB8ICAgMiArCiBsaWIvbWFsbG9jLy5naXRpZ25vcmUg
ICB8ICAgMSAtCiBtNC8uZ2l0aWdub3JlICAgICAgICAgICB8ICAyOSArLQogOCBmaWxlcyBj
aGFuZ2VkLCAxMDI2IGluc2VydGlvbnMoKyksIDgzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9hdXRvZ2VuLnNoIGIvYXV0b2dlbi5zaAppbmRleCAwMjAyOGYyNy4uMGYzZDgwOTIg
MTAwNzU1Ci0tLSBhL2F1dG9nZW4uc2gKKysrIGIvYXV0b2dlbi5zaApAQCAtNCw3ICs0LDcg
QEAKICMgYWxzbyByZWdlbmVyYXRlcyBhbGwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIE1h
a2VmaWxlLmluLCBjb25maWd1cmUgZmlsZXMKICMgd2l0aCBuZXcgdmVyc2lvbnMgb2YgYXV0
b2NvbmYgb3IgYXV0b21ha2UuCiAKLSMgQ29weXJpZ2h0IChDKSAyMDAzLTIwMjIgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMjAwMy0yMDI1IEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIHByb2dyYW0gaXMgZnJl
ZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogIyBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieQpAQCAtMzAsNDU3ICszMCwxMCBAQAogIyBBbHRlcm5hdGl2ZWx5LCB5
b3UgY2FuIHVzZSBhbiBhdXRvZ2VuLnNoIHNjcmlwdCB0aGF0IGlzIHNwZWNpZmljCiAjIHRv
IHlvdXIgcGFja2FnZS4KIAotc2NyaXB0dmVyc2lvbj0yMDIyLTA3LTI0LjE1OyAjIFVUQwot
CiBtZT0iJDAiCiBtZWRpcj1gZGlybmFtZSAiJG1lImAKIAogIyBSZWFkIHRoZSBmdW5jdGlv
biBsaWJyYXJ5IGFuZCB0aGUgY29uZmlndXJhdGlvbi4KIC4gIiRtZWRpciIvYm9vdHN0cmFw
LWZ1bmNsaWIuc2gKIAotIyBFbnN1cmUgdGhhdCBDRFBBVEggaXMgbm90IHNldC4gIE90aGVy
d2lzZSwgdGhlIG91dHB1dCBmcm9tIGNkCi0jIHdvdWxkIGNhdXNlIHRyb3VibGUgaW4gYXQg
bGVhc3Qgb25lIHVzZSBiZWxvdy4KLSh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAm
JiB1bnNldCBDRFBBVEgKLQotIyBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBtYXkgYmUg
c2V0IGJ5IHRoZSB1c2VyLgotOiAiJHtBVVRPUE9JTlQ9YXV0b3BvaW50fSIKLTogIiR7QVVU
T1JFQ09ORj1hdXRvcmVjb25mfSIKLQotaWYgdGVzdCAiJHZjX2lnbm9yZSIgPSBhdXRvOyB0
aGVuCi0gIHZjX2lnbm9yZT0KLSAgdGVzdCAtZCAuZ2l0ICYmIHZjX2lnbm9yZT0uZ2l0aWdu
b3JlCi0gIHRlc3QgLWQgQ1ZTICYmIHZjX2lnbm9yZT0iJHZjX2lnbm9yZSAuY3ZzaWdub3Jl
IgotZmkKLQotdXNhZ2UoKSB7Ci0gIGNhdCA8PEVPRgotVXNhZ2U6ICRtZSBbT1BUSU9OXS4u
LgotQm9vdHN0cmFwIHRoaXMgcGFja2FnZSBmcm9tIHRoZSBjaGVja2VkLW91dCBzb3VyY2Vz
LgotCi1PcHRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0gIEdOVUxJQl9TUkNESVIg
ICAgICAgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsIGRpcmVjdG9yeSB3aGVyZSBnbnVsaWIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZXMgcmVzaWRlLiAgVXNlIHRoaXMg
aWYgeW91IGFscmVhZHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgZ251bGli
IHNvdXJjZXMgb24geW91ciBtYWNoaW5lLCBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHlvdSB3YW50IHRvIHVzZSB0aGVzZSBzb3VyY2VzLgotCi1PcHRpb25zOgotICAtLWNv
cHkgICAgICAgICAgICAgICAgICAgY29weSBmaWxlcyBpbnN0ZWFkIG9mIGNyZWF0aW5nIHN5
bWJvbGljIGxpbmtzCi0gIC0tZm9yY2UgICAgICAgICAgICAgICAgICBhdHRlbXB0IHRvIGJv
b3RzdHJhcCBldmVuIGlmIHRoZSBzb3VyY2VzIHNlZW0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vdCB0byBoYXZlIGJlZW4gY2hlY2tlZCBvdXQKLUVPRgotICBib290c3RyYXBf
cHJpbnRfb3B0aW9uX3VzYWdlX2hvb2sKLSAgY2F0IDw8RU9GCi1JZiB0aGUgZmlsZSBib290
c3RyYXAuY29uZiBleGlzdHMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoaXMgc2NyaXB0
LCBpdHMKLWNvbnRlbnRzIGFyZSByZWFkIGFzIHNoZWxsIHZhcmlhYmxlcyB0byBjb25maWd1
cmUgdGhlIGJvb3RzdHJhcC4KLQotRm9yIGJ1aWxkIHByZXJlcXVpc2l0ZXMsIGVudmlyb25t
ZW50IHZhcmlhYmxlcyBsaWtlIFwkQVVUT0NPTkYgYW5kIFwkQU1UQVIKLWFyZSBob25vcmVk
LgotCi1HbnVsaWIgc291cmNlcyBhcmUgYXNzdW1lZCB0byBiZSBwcmVzZW50OgotICAqIGlu
IFwkR05VTElCX1NSQ0RJUiwgaWYgdGhhdCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQs
Ci0gICogb3RoZXJ3aXNlLCBpbiB0aGUgJ2dudWxpYicgc3VibW9kdWxlLCBpZiBzdWNoIGEg
c3VibW9kdWxlIGlzIGNvbmZpZ3VyZWQsCi0gICogb3RoZXJ3aXNlLCBpbiB0aGUgJ2dudWxp
Yicgc3ViZGlyZWN0b3J5LgotCi1SdW5uaW5nIHdpdGhvdXQgYXJndW1lbnRzIHdpbGwgc3Vm
ZmljZSBpbiBtb3N0IGNhc2VzLgotRU9GCi19Ci0KLSMgUGFyc2Ugb3B0aW9ucy4KLQotIyBX
aGV0aGVyIHRvIHVzZSBjb3BpZXMgaW5zdGVhZCBvZiBzeW1saW5rcy4KLWNvcHk9ZmFsc2UK
LQotZm9yIG9wdGlvbgotZG8KLSAgY2FzZSAkb3B0aW9uIGluCi0gIC0taGVscCkKLSAgICB1
c2FnZQotICAgIGV4aXQ7OwotICAtLXZlcnNpb24pCi0gICAgc2V0IC1lCi0gICAgZWNobyAi
YXV0b2dlbi5zaCAkc2NyaXB0dmVyc2lvbiIKLSAgICBlY2hvICIkY29weXJpZ2h0IgotICAg
IGV4aXQgMAotICAgIDs7Ci0gIC0tZm9yY2UpCi0gICAgY2hlY2tvdXRfb25seV9maWxlPTs7
Ci0gIC0tY29weSkKLSAgICBjb3B5PXRydWU7OwotICAqKQotICAgIGJvb3RzdHJhcF9vcHRp
b25faG9vayAkb3B0aW9uIHx8IGRpZSAiJG9wdGlvbjogdW5rbm93biBvcHRpb24iOzsKLSAg
ZXNhYwotZG9uZQotCi10ZXN0IC16ICIkR05VTElCX1NSQ0RJUiIgfHwgdGVzdCAtZCAiJEdO
VUxJQl9TUkNESVIiIFwKLSAgfHwgZGllICJFcnJvcjogXCRHTlVMSUJfU1JDRElSIGVudmly
b25tZW50IHZhcmlhYmxlIG9yIC0tZ251bGliLXNyY2RpciBvcHRpb24gaXMgc3BlY2lmaWVk
LCBidXQgZG9lcyBub3QgZGVub3RlIGEgZGlyZWN0b3J5IgotCi1pZiB0ZXN0IC1uICIkY2hl
Y2tvdXRfb25seV9maWxlIiAmJiB0ZXN0ICEgLXIgIiRjaGVja291dF9vbmx5X2ZpbGUiOyB0
aGVuCi0gIGRpZSAiUnVubmluZyB0aGlzIHNjcmlwdCBmcm9tIGEgbm9uLWNoZWNrZWQtb3V0
IGRpc3RyaWJ1dGlvbiBpcyByaXNreS4iCi1maQotCi1pZiAkdXNlX2dudWxpYjsgdGhlbgot
ICBpZiB0ZXN0IC16ICIkR05VTElCX1NSQ0RJUiI7IHRoZW4KLSAgICBnbnVsaWJfcGF0aD0k
KHRlc3QgLWYgLmdpdG1vZHVsZXMgJiYgZ2l0IGNvbmZpZyAtLWZpbGUgLmdpdG1vZHVsZXMg
c3VibW9kdWxlLmdudWxpYi5wYXRoKQotICAgIHRlc3QgLXogIiRnbnVsaWJfcGF0aCIgJiYg
Z251bGliX3BhdGg9Z251bGliCi0gICAgR05VTElCX1NSQ0RJUj0kZ251bGliX3BhdGgKLSAg
ZmkKLWZpCi0KLXZlcnNpb25fY29udHJvbGxlZF9maWxlKCkgewotICBwYXJlbnQ9JDEKLSAg
ZmlsZT0kMgotICBpZiB0ZXN0IC1kIC5naXQ7IHRoZW4KLSAgICBnaXQgcm0gLW4gIiRmaWxl
IiA+IC9kZXYvbnVsbCAyPiYxCi0gIGVsaWYgdGVzdCAtZCAuc3ZuOyB0aGVuCi0gICAgc3Zu
IGxvZyAtciBIRUFEICIkZmlsZSIgPiAvZGV2L251bGwgMj4mMQotICBlbGlmIHRlc3QgLWQg
Q1ZTOyB0aGVuCi0gICAgZ3JlcCAtRiAiLyR7ZmlsZSMjKi99LyIgIiRwYXJlbnQvQ1ZTL0Vu
dHJpZXMiIDI+L2Rldi9udWxsIHwKLSAgICAgICAgICAgICBncmVwICdeL1teL10qL1swLTld
JyA+IC9kZXYvbnVsbAotICBlbHNlCi0gICAgd2Fybl8gIm5vIHZlcnNpb24gY29udHJvbCBm
b3IgJGZpbGU/IgotICAgIGZhbHNlCi0gIGZpCi19Ci0KLSMgU3RyaXAgYmxhbmsgYW5kIGNv
bW1lbnQgbGluZXMgdG8gbGVhdmUgc2lnbmlmaWNhbnQgZW50cmllcy4KLWdpdGlnbm9yZV9l
bnRyaWVzKCkgewotICBzZWQgJy9eIy9kOyAvXiQvZCcgIiRAIgotfQotCi0jIElmICRTVFIg
aXMgbm90IGFscmVhZHkgb24gYSBsaW5lIGJ5IGl0c2VsZiBpbiAkRklMRSwgaW5zZXJ0IGl0
IGF0IHRoZSBzdGFydC4KLSMgRW50cmllcyBhcmUgaW5zZXJ0ZWQgYXQgdGhlIHN0YXJ0IG9m
IHRoZSBpZ25vcmUgbGlzdCB0byBlbnN1cmUgZXhpc3RpbmcKLSMgZW50cmllcyBzdGFydGlu
ZyB3aXRoICEgYXJlIG5vdCBvdmVycmlkZGVuLiAgU3VjaCBlbnRyaWVzIHN1cHBvcnQKLSMg
d2hpdGVsaXN0aW5nIGV4Y2VwdGlvbnMgYWZ0ZXIgYSBtb3JlIGdlbmVyaWMgYmxhY2tsaXN0
IHBhdHRlcm4uCi1pbnNlcnRfaWZfYWJzZW50KCkgewotICBmaWxlPSQxCi0gIHN0cj0kMgot
ICB0ZXN0IC1mICRmaWxlIHx8IHRvdWNoICRmaWxlCi0gIHRlc3QgLXIgJGZpbGUgfHwgZGll
ICJFcnJvcjogZmFpbGVkIHRvIHJlYWQgaWdub3JlIGZpbGU6ICRmaWxlIgotICBkdXBsaWNh
dGVfZW50cmllcz0kKGdpdGlnbm9yZV9lbnRyaWVzICRmaWxlIHwgc29ydCB8IHVuaXEgLWQp
Ci0gIGlmIFsgIiRkdXBsaWNhdGVfZW50cmllcyIgXSA7IHRoZW4KLSAgICBkaWUgIkVycm9y
OiBEdXBsaWNhdGUgZW50cmllcyBpbiAkZmlsZTogIiAkZHVwbGljYXRlX2VudHJpZXMKLSAg
ZmkKLSAgbGluZXNvbGQ9JChnaXRpZ25vcmVfZW50cmllcyAkZmlsZSB8IHdjIC1sKQotICBs
aW5lc25ldz0kKCB7IGVjaG8gIiRzdHIiOyBjYXQgJGZpbGU7IH0gfCBnaXRpZ25vcmVfZW50
cmllcyB8IHNvcnQgLXUgfCB3YyAtbCkKLSAgaWYgWyAkbGluZXNvbGQgIT0gJGxpbmVzbmV3
IF0gOyB0aGVuCi0gICAgeyBlY2hvICIkc3RyIiB8IGNhdCAtICRmaWxlID4gJGZpbGUuYmFr
ICYmIG12ICRmaWxlLmJhayAkZmlsZTsgfSBcCi0gICAgICB8fCBkaWUgImluc2VydF9pZl9h
YnNlbnQgJGZpbGUgJHN0cjogZmFpbGVkIgotICBmaQotfQotCi0jIEFkanVzdCAkUEFUVEVS
TiBmb3IgJFZDX0lHTk9SRV9GSUxFIGFuZCBpbnNlcnQgaXQgd2l0aAotIyBpbnNlcnRfaWZf
YWJzZW50LgotaW5zZXJ0X3ZjX2lnbm9yZSgpIHsKLSAgdmNfaWdub3JlX2ZpbGU9IiQxIgot
ICBwYXR0ZXJuPSIkMiIKLSAgY2FzZSAkdmNfaWdub3JlX2ZpbGUgaW4KLSAgKi5naXRpZ25v
cmUpCi0gICAgIyBBIC5naXRpZ25vcmUgZW50cnkgdGhhdCBkb2VzIG5vdCBzdGFydCB3aXRo
ICcvJyBhcHBsaWVzCi0gICAgIyByZWN1cnNpdmVseSB0byBzdWJkaXJlY3Rvcmllcywgc28g
cHJlcGVuZCAnLycgdG8gZXZlcnkKLSAgICAjIC5naXRpZ25vcmUgZW50cnkuCi0gICAgcGF0
dGVybj0kKGVjaG8gIiRwYXR0ZXJuIiB8IHNlZCBzLF4sLywpOzsKLSAgZXNhYwotICBpbnNl
cnRfaWZfYWJzZW50ICIkdmNfaWdub3JlX2ZpbGUiICIkcGF0dGVybiIKLX0KLQotc3ltbGlu
a190b19kaXIoKQotewotICBzcmM9JDEvJDIKLSAgZHN0PSR7My0kMn0KLQotICB0ZXN0IC1m
ICIkc3JjIiAmJiB7Ci0KLSAgICAjIElmIHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZG9l
c24ndCBleGlzdCwgY3JlYXRlIGl0LgotICAgICMgVGhpcyBpcyByZXF1aXJlZCBhdCBsZWFz
dCBmb3IgImxpYi91bml3aWR0aC9jamsuaCIuCi0gICAgZHN0X2Rpcj0kKGRpcm5hbWUgIiRk
c3QiKQotICAgIGlmICEgdGVzdCAtZCAiJGRzdF9kaXIiOyB0aGVuCi0gICAgICBta2RpciAt
cCAiJGRzdF9kaXIiCi0KLSAgICAgICMgSWYgd2UndmUganVzdCBjcmVhdGVkIGEgZGlyZWN0
b3J5IGxpa2UgbGliL3VuaXdpZHRoLAotICAgICAgIyB0ZWxsIHZlcnNpb24gY29udHJvbCBz
eXN0ZW0ocykgaXQncyBpZ25vcmFibGUuCi0gICAgICAjIEZJWE1FOiBmb3Igbm93LCB0aGlz
IGRvZXMgb25seSBvbmUgbGV2ZWwKLSAgICAgIHBhcmVudD0kKGRpcm5hbWUgIiRkc3RfZGly
IikKLSAgICAgIGZvciBkb3RfaWcgaW4geCAkdmNfaWdub3JlOyBkbwotICAgICAgICB0ZXN0
ICRkb3RfaWcgPSB4ICYmIGNvbnRpbnVlCi0gICAgICAgIGlnPSRwYXJlbnQvJGRvdF9pZwot
ICAgICAgICBpbnNlcnRfdmNfaWdub3JlICRpZyAiJHtkc3RfZGlyIyMqL30iCi0gICAgICBk
b25lCi0gICAgZmkKLQotICAgIGlmICRjb3B5OyB0aGVuCi0gICAgICB7Ci0gICAgICAgIHRl
c3QgISAtaCAiJGRzdCIgfHwgewotICAgICAgICAgIGVjaG8gIiRtZTogcm0gLWYgJGRzdCIg
JiYKLSAgICAgICAgICBybSAtZiAiJGRzdCIKLSAgICAgICAgfQotICAgICAgfSAmJgotICAg
ICAgdGVzdCAtZiAiJGRzdCIgJiYKLSAgICAgIGNtcCAtcyAiJHNyYyIgIiRkc3QiIHx8IHsK
LSAgICAgICAgZWNobyAiJG1lOiBjcCAtZnAgJHNyYyAkZHN0IiAmJgotICAgICAgICBjcCAt
ZnAgIiRzcmMiICIkZHN0IgotICAgICAgfQotICAgIGVsc2UKLSAgICAgICMgTGVhdmUgYW55
IGV4aXN0aW5nIHN5bWxpbmsgYWxvbmUsIGlmIGl0IGFscmVhZHkgcG9pbnRzIHRvIHRoZSBz
b3VyY2UsCi0gICAgICAjIHNvIHRoYXQgYnJva2VuIGJ1aWxkIHRvb2xzIHRoYXQgY2FyZSBh
Ym91dCBzeW1saW5rIHRpbWVzCi0gICAgICAjIGFyZW4ndCBjb25mdXNlZCBpbnRvIGRvaW5n
IHVubmVjZXNzYXJ5IGJ1aWxkcy4gIENvbnZlcnNlbHksIGlmIHRoZQotICAgICAgIyBleGlz
dGluZyBzeW1saW5rJ3MgdGltZXN0YW1wIGlzIG9sZGVyIHRoYW4gdGhlIHNvdXJjZSwgbWFr
ZSBpdCBhZnJlc2gsCi0gICAgICAjIHNvIHRoYXQgYnJva2VuIHRvb2xzIGFyZW4ndCBjb25m
dXNlZCBpbnRvIHNraXBwaW5nIG5lZWRlZCBidWlsZHMuICBTZWUKLSAgICAgICMgPGh0dHBz
Oi8vbGlzdHMuZ251Lm9yZy9yL2J1Zy1nbnVsaWIvMjAxMS0wNS9tc2cwMDMyNi5odG1sPi4K
LSAgICAgIHRlc3QgLWggIiRkc3QiICYmCi0gICAgICBzcmNfbHM9JChscyAtZGlMICIkc3Jj
IiAyPi9kZXYvbnVsbCkgJiYgc2V0ICRzcmNfbHMgJiYgc3JjX2k9JDEgJiYKLSAgICAgIGRz
dF9scz0kKGxzIC1kaUwgIiRkc3QiIDI+L2Rldi9udWxsKSAmJiBzZXQgJGRzdF9scyAmJiBk
c3RfaT0kMSAmJgotICAgICAgdGVzdCAiJHNyY19pIiA9ICIkZHN0X2kiICYmCi0gICAgICBi
b3RoX2xzPSQobHMgLWR0ICIkc3JjIiAiJGRzdCIpICYmCi0gICAgICB0ZXN0ICJYJGJvdGhf
bHMiID0gIlgkZHN0JG5sJHNyYyIgfHwgewotICAgICAgICBkb3RfZG90cz0KLSAgICAgICAg
Y2FzZSAkc3JjIGluCi0gICAgICAgIC8qKSA7OwotICAgICAgICAqKQotICAgICAgICAgIGNh
c2UgLyRkc3QvIGluCi0gICAgICAgICAgKi8vKiB8ICovLi4vKiB8ICovLi8qIHwgLyovKi8q
LyovKi8pCi0gICAgICAgICAgICAgZGllICJpbnZhbGlkIHN5bWxpbmsgY2FsY3VsYXRpb246
ICRzcmMgLT4gJGRzdCI7OwotICAgICAgICAgIC8qLyovKi8qLykgICAgZG90X2RvdHM9Li4v
Li4vLi4vOzsKLSAgICAgICAgICAvKi8qLyovKSAgICAgIGRvdF9kb3RzPS4uLy4uLzs7Ci0g
ICAgICAgICAgLyovKi8pICAgICAgICBkb3RfZG90cz0uLi87OwotICAgICAgICAgIGVzYWM7
OwotICAgICAgICBlc2FjCi0KLSAgICAgICAgZWNobyAiJG1lOiBsbiAtZnMgJGRvdF9kb3Rz
JHNyYyAkZHN0IiAmJgotICAgICAgICBsbiAtZnMgIiRkb3RfZG90cyRzcmMiICIkZHN0Igot
ICAgICAgfQotICAgIGZpCi0gIH0KLX0KLQotIyBEaWUgaWYgdGhlcmUgaXMgbm8gQUNfQ09O
RklHX0FVWF9ESVIoJGJ1aWxkX2F1eCkgbGluZSBpbiBjb25maWd1cmUuYWMuCi1mb3VuZF9h
dXhfZGlyPW5vCi1ncmVwICdeWwkgXSpBQ19DT05GSUdfQVVYX0RJUihcWyciJGJ1aWxkX2F1
eCInXSknIGNvbmZpZ3VyZS5hYyBcCi0gICAgPi9kZXYvbnVsbCAmJiBmb3VuZF9hdXhfZGly
PXllcwotZ3JlcCAnXlsJIF0qQUNfQ09ORklHX0FVWF9ESVIoJyIkYnVpbGRfYXV4IicpJyBj
b25maWd1cmUuYWMgXAotICAgID4vZGV2L251bGwgJiYgZm91bmRfYXV4X2Rpcj15ZXMKLXRl
c3QgJGZvdW5kX2F1eF9kaXIgPSB5ZXMgXAotICB8fCBkaWUgImNvbmZpZ3VyZS5hYyBsYWNr
cyAnQUNfQ09ORklHX0FVWF9ESVIoWyRidWlsZF9hdXhdKSc7IGFkZCBpdCIKLQotIyBJZiAk
YnVpbGRfYXV4IGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZSBpdCBub3csIG90aGVyd2lzZSBzb21l
IGJpdHMKLSMgYmVsb3cgd2lsbCBtYWxmdW5jdGlvbi4gIElmIGNyZWF0aW5nIGl0LCBhbHNv
IG1hcmsgaXQgYXMgaWdub3JlZC4KLWlmIHRlc3QgISAtZCAkYnVpbGRfYXV4OyB0aGVuCi0g
IG1rZGlyICRidWlsZF9hdXgKLSAgZm9yIGRvdF9pZyBpbiB4ICR2Y19pZ25vcmU7IGRvCi0g
ICAgdGVzdCAkZG90X2lnID0geCAmJiBjb250aW51ZQotICAgIGluc2VydF92Y19pZ25vcmUg
JGRvdF9pZyAkYnVpbGRfYXV4Ci0gIGRvbmUKLWZpCi0KLWNoZWNrX2J1aWxkX3ByZXJlcXVp
c2l0ZXMgZmFsc2UKLQotdXNlX2xpYnRvb2w9MAotIyBXZSdkIGxpa2UgdG8gdXNlIGdyZXAg
LUUsIHRvIHNlZSBpZiBhbnkgb2YgTFRfSU5JVCwKLSMgQUNfUFJPR19MSUJUT09MLCBBTV9Q
Uk9HX0xJQlRPT0wgaXMgdXNlZCBpbiBjb25maWd1cmUuYWMsCi0jIGJ1dCB0aGF0J3Mgbm90
IHBvcnRhYmxlIGVub3VnaCAoZS5nLiwgZm9yIFNvbGFyaXMpLgotZ3JlcCAnXlsJIF0qQVtD
TV1fUFJPR19MSUJUT09MJyBjb25maWd1cmUuYWMgPi9kZXYvbnVsbCBcCi0gICYmIHVzZV9s
aWJ0b29sPTEKLWdyZXAgJ15bCSBdKkxUX0lOSVQnIGNvbmZpZ3VyZS5hYyA+L2Rldi9udWxs
IFwKLSAgJiYgdXNlX2xpYnRvb2w9MQotaWYgdGVzdCAkdXNlX2xpYnRvb2wgPSAxOyB0aGVu
Ci0gIGZpbmRfdG9vbCBMSUJUT09MSVpFIGdsaWJ0b29saXplIGxpYnRvb2xpemUKLWZpCi0K
LWlmICR1c2VfZ251bGliOyB0aGVuCi0gIGdudWxpYl90b29sPSRHTlVMSUJfU1JDRElSL2du
dWxpYi10b29sCi0gIDwkZ251bGliX3Rvb2wgfHwgZXhpdCAkPwotZmkKLQotIyBOT1RFOiB3
ZSBoYXZlIHRvIGJlIGNhcmVmdWwgdG8gcnVuIGJvdGggYXV0b3BvaW50IGFuZCBsaWJ0b29s
aXplCi0jIGJlZm9yZSBnbnVsaWItdG9vbCwgc2luY2UgZ251bGliLXRvb2wgaXMgbGlrZWx5
IHRvIHByb3ZpZGUgbmV3ZXIKLSMgdmVyc2lvbnMgb2YgZmlsZXMgImluc3RhbGxlZCIgYnkg
dGhlc2UgdHdvIHByb2dyYW1zLgotIyBUaGVuLCAqYWZ0ZXIqIGdudWxpYi10b29sIChzZWUg
YmVsb3cpLCB3ZSBoYXZlIHRvIGJlIGNhcmVmdWwgdG8KLSMgcnVuIGF1dG9yZWNvbmYgaW4g
c3VjaCBhIHdheSB0aGF0IGl0IGRvZXMgbm90IHJ1biBlaXRoZXIgb2YgdGhlc2UKLSMgdHdv
IGp1c3QtcHJlLXJ1biBwcm9ncmFtcy4KLQotIyBJbXBvcnQgZnJvbSBnZXR0ZXh0Lgotd2l0
aF9nZXR0ZXh0PXllcwotZ3JlcCAnXlsJIF0qQU1fR05VX0dFVFRFWFRfVkVSU0lPTignIGNv
bmZpZ3VyZS5hYyA+L2Rldi9udWxsIHx8IFwKLSAgICB3aXRoX2dldHRleHQ9bm8KLQotaWYg
dGVzdCAkd2l0aF9nZXR0ZXh0ID0geWVzIHx8IHRlc3QgJHVzZV9saWJ0b29sID0gMTsgdGhl
bgotCi0gIHRlbXBiYXNlPS5ib290c3RyYXAkJAotICB0cmFwICJybSAtZiAkdGVtcGJhc2Uu
MCAkdGVtcGJhc2UuMSIgMSAyIDEzIDE1Ci0KLSAgPiAkdGVtcGJhc2UuMCA+ICR0ZW1wYmFz
ZS4xICYmCi0gIGZpbmQgLiAhIC10eXBlIGQgLXByaW50IHwgc29ydCA+ICR0ZW1wYmFzZS4w
IHx8IGV4aXQKLQotICBpZiB0ZXN0ICR3aXRoX2dldHRleHQgPSB5ZXM7IHRoZW4KLSAgICAj
IFJlbGVhc2VkIGF1dG9wb2ludCBoYXMgdGhlIHRlbmRlbmN5IHRvIGluc3RhbGwgbWFjcm9z
IHRoYXQgaGF2ZSBiZWVuCi0gICAgIyBvYnNvbGV0ZWQgaW4gY3VycmVudCBnbnVsaWIsIHNv
IHJ1biB0aGlzIGJlZm9yZSBnbnVsaWItdG9vbC4KLSAgICBlY2hvICIkMDogJEFVVE9QT0lO
VCAtLWZvcmNlIgotICAgICRBVVRPUE9JTlQgLS1mb3JjZSB8fCBleGl0Ci0gIGZpCi0KLSAg
IyBBdXRvcmVjb25mIHJ1bnMgYWNsb2NhbCBiZWZvcmUgbGlidG9vbGl6ZSwgd2hpY2ggY2F1
c2VzIHNwdXJpb3VzCi0gICMgd2FybmluZ3MgaWYgdGhlIGluaXRpYWwgYWNsb2NhbCBpcyBj
b25mdXNlZCBieSB0aGUgbGlidG9vbGl6ZWQKLSAgIyAob3Igd29yc2Ugb3V0LW9mLWRhdGUp
IG1hY3JvIGRpcmVjdG9yeS4KLSAgIyBsaWJ0b29saXplIDEuOWIgYWRkZWQgdGhlIC0taW5z
dGFsbCBvcHRpb247IGJ1dCB3ZSBzdXBwb3J0IGJhY2sKLSAgIyB0byBsaWJ0b29saXplIDEu
NS4yMiwgd2hlcmUgdGhlIGluc3RhbGwgYWN0aW9uIHdhcyBkZWZhdWx0LgotICBpZiB0ZXN0
ICR1c2VfbGlidG9vbCA9IDE7IHRoZW4KLSAgICBpbnN0YWxsPQotICAgIGNhc2UgJCgkTElC
VE9PTElaRSAtLWhlbHApIGluCi0gICAgICAqLS1pbnN0YWxsKikgaW5zdGFsbD0tLWluc3Rh
bGwgOzsKLSAgICBlc2FjCi0gICAgZWNobyAicnVubmluZzogJExJQlRPT0xJWkUgJGluc3Rh
bGwgLS1jb3B5IgotICAgICRMSUJUT09MSVpFICRpbnN0YWxsIC0tY29weQotICBmaQotCi0g
IGZpbmQgLiAhIC10eXBlIGQgLXByaW50IHwgc29ydCA+JHRlbXBiYXNlLjEKLSAgb2xkX0lG
Uz0kSUZTCi0gIElGUz0kbmwKLSAgZm9yIGZpbGUgaW4gJChjb21tIC0xMyAkdGVtcGJhc2Uu
MCAkdGVtcGJhc2UuMSk7IGRvCi0gICAgSUZTPSRvbGRfSUZTCi0gICAgcGFyZW50PSR7Zmls
ZSUvKn0KLSAgICB2ZXJzaW9uX2NvbnRyb2xsZWRfZmlsZSAiJHBhcmVudCIgIiRmaWxlIiB8
fCB7Ci0gICAgICBmb3IgZG90X2lnIGluIHggJHZjX2lnbm9yZTsgZG8KLSAgICAgICAgdGVz
dCAkZG90X2lnID0geCAmJiBjb250aW51ZQotICAgICAgICBpZz0kcGFyZW50LyRkb3RfaWcK
LSAgICAgICAgaW5zZXJ0X3ZjX2lnbm9yZSAiJGlnIiAiJHtmaWxlIyMqL30iCi0gICAgICBk
b25lCi0gICAgfQotICBkb25lCi0gIElGUz0kb2xkX0lGUwotCi0gIHJtIC1mICR0ZW1wYmFz
ZS4wICR0ZW1wYmFzZS4xCi0gIHRyYXAgLSAxIDIgMTMgMTUKLWZpCi0KLSMgSW1wb3J0IGZy
b20gZ251bGliLgotCi1pZiAkdXNlX2dudWxpYjsgdGhlbgotICBnbnVsaWJfdG9vbF9vcHRp
b25zPSJcCi0gICAtLW5vLWNoYW5nZWxvZ1wKLSAgIC0tYXV4LWRpcj0kYnVpbGRfYXV4XAot
ICAgLS1kb2MtYmFzZT0kZG9jX2Jhc2VcCi0gICAtLWxpYj0kZ251bGliX25hbWVcCi0gICAt
LW00LWJhc2U9JG00X2Jhc2UvXAotICAgLS1zb3VyY2UtYmFzZT0kc291cmNlX2Jhc2UvXAot
ICAgLS10ZXN0cy1iYXNlPSR0ZXN0c19iYXNlXAotICAgLS1sb2NhbC1kaXI9JGxvY2FsX2ds
X2RpclwKLSAgICRnbnVsaWJfdG9vbF9vcHRpb25fZXh0cmFzXAotICAiCi0gIGlmIHRlc3Qg
JHVzZV9saWJ0b29sID0gMTsgdGhlbgotICAgIGNhc2UgIiRnbnVsaWJfdG9vbF9vcHRpb25z
ICIgaW4KLSAgICAgIConIC0tbGlidG9vbCAnKikgOzsKLSAgICAgICopIGdudWxpYl90b29s
X29wdGlvbnM9IiRnbnVsaWJfdG9vbF9vcHRpb25zIC0tbGlidG9vbCIgOzsKLSAgICBlc2Fj
Ci0gIGZpCi0gIGVjaG8gIiQwOiAkZ251bGliX3Rvb2wgJGdudWxpYl90b29sX29wdGlvbnMg
LS1pbXBvcnQgLi4uIgotICAkZ251bGliX3Rvb2wgJGdudWxpYl90b29sX29wdGlvbnMgLS1p
bXBvcnQgJGdudWxpYl9tb2R1bGVzIFwKLSAgICB8fCBkaWUgImdudWxpYi10b29sIGZhaWxl
ZCIKLQotICBmb3IgZmlsZSBpbiAkZ251bGliX2ZpbGVzOyBkbwotICAgIHN5bWxpbmtfdG9f
ZGlyICIkR05VTElCX1NSQ0RJUiIgJGZpbGUgXAotICAgICAgfHwgZGllICJmYWlsZWQgdG8g
c3ltbGluayAkZmlsZSIKLSAgZG9uZQotZmkKLQotYm9vdHN0cmFwX3Bvc3RfaW1wb3J0X2hv
b2sgXAotICB8fCBkaWUgImJvb3RzdHJhcF9wb3N0X2ltcG9ydF9ob29rIGZhaWxlZCIKLQot
IyBSZW1vdmUgYW55IGRhbmdsaW5nIHN5bWxpbmsgbWF0Y2hpbmcgIioubTQiIG9yICIqLltj
aF0iIGluIHNvbWUKLSMgZ251bGliLXBvcHVsYXRlZCBkaXJlY3Rvcmllcy4gIFN1Y2ggLm00
IGZpbGVzIHdvdWxkIGNhdXNlIGFjbG9jYWwgdG8gZmFpbC4KLSMgVGhlIGZvbGxvd2luZyBy
ZXF1aXJlcyBHTlUgZmluZCA0LjIuMyBvciBuZXdlci4gIENvbnNpZGVyaW5nIHRoZSB1c3Vh
bAotIyBwb3J0YWJpbGl0eSBjb25zdHJhaW50cyBvZiB0aGlzIHNjcmlwdCwgdGhhdCBtYXkg
c2VlbSBhIHZlcnkgZGVtYW5kaW5nCi0jIHJlcXVpcmVtZW50LCBidXQgaXQgc2hvdWxkIGJl
IG9rLiAgSWdub3JlIGFueSBmYWlsdXJlLCB3aGljaCBpcyBmaW5lLAotIyBzaW5jZSB0aGlz
IGlzIG9ubHkgYSBjb252ZW5pZW5jZSB0byBoZWxwIGRldmVsb3BlcnMgYXZvaWQgdGhlIHJl
bGF0aXZlbHkKLSMgdW51c3VhbCBjYXNlIGluIHdoaWNoIGEgc3ltbGlua2VkLXRvIC5tNCBm
aWxlIGlzIGdpdC1yZW1vdmVkIGZyb20gZ251bGliCi0jIGJldHdlZW4gc3VjY2Vzc2l2ZSBy
dW5zIG9mIHRoaXMgc2NyaXB0LgotZmluZCAiJG00X2Jhc2UiICIkc291cmNlX2Jhc2UiIFwK
LSAgLWRlcHRoIFwoIC1uYW1lICcqLm00JyAtbyAtbmFtZSAnKi5bY2hdJyBcKSBcCi0gIC10
eXBlIGwgLXh0eXBlIGwgLWRlbGV0ZSA+IC9kZXYvbnVsbCAyPiYxCi0KLSMgSW52b2tlIGF1
dG9yZWNvbmYgd2l0aCAtLWZvcmNlIC0taW5zdGFsbCB0byBlbnN1cmUgdXBncmFkZXMgb2Yg
dG9vbHMKLSMgc3VjaCBhcyB5bHdyYXAuCi1BVVRPUkVDT05GRkxBR1M9Ii0tdmVyYm9zZSAt
LWluc3RhbGwgLS1mb3JjZSAtSSAkbTRfYmFzZSAkQUNMT0NBTF9GTEFHUyIKLQotIyBTb21l
IHN5c3RlbXMgKFJIRUwgNSkgYXJlIHVzaW5nIGFuY2llbnQgYXV0b3Rvb2xzLCBmb3Igd2hp
Y2ggdGhlCi0jIC0tbm8tcmVjdXJzaXZlIG9wdGlvbiBoYWQgbm90IGJlZW4gaW52ZW50ZWQu
ICBEZXRlY3QgdGhhdCBsYWNrIGFuZAotIyBvbWl0IHRoZSBvcHRpb24gd2hlbiBpdCdzIG5v
dCBzdXBwb3J0ZWQuICBGSVhNRSBpbiAyMDE3OiByZW1vdmUgdGhpcwotIyBoYWNrIHdoZW4g
UkhFTCA1IGF1dG90b29scyBhcmUgdXBkYXRlZCwgb3Igd2hlbiB0aGV5IGJlY29tZSBpcnJl
bGV2YW50LgotY2FzZSAkKCRBVVRPUkVDT05GIC0taGVscCkgaW4KLSAgKi0tbm8tcmVjdXJz
aXZlKikgQVVUT1JFQ09ORkZMQUdTPSIkQVVUT1JFQ09ORkZMQUdTIC0tbm8tcmVjdXJzaXZl
Ijs7Ci1lc2FjCi0KLSMgVGVsbCBhdXRvcmVjb25mIG5vdCB0byBpbnZva2UgYXV0b3BvaW50
IG9yIGxpYnRvb2xpemU7IHRoZXkgd2VyZSBydW4gYWJvdmUuCi1lY2hvICJydW5uaW5nOiBB
VVRPUE9JTlQ9dHJ1ZSBMSUJUT09MSVpFPXRydWUgJEFVVE9SRUNPTkYgJEFVVE9SRUNPTkZG
TEFHUyIKLUFVVE9QT0lOVD10cnVlIExJQlRPT0xJWkU9dHJ1ZSAkQVVUT1JFQ09ORiAkQVVU
T1JFQ09ORkZMQUdTIFwKLSAgfHwgZGllICJhdXRvcmVjb25mIGZhaWxlZCIKLQotIyBHZXQg
c29tZSBleHRyYSBmaWxlcyBmcm9tIGdudWxpYiwgb3ZlcnJpZGluZyBleGlzdGluZyBmaWxl
cy4KLWZvciBmaWxlIGluICRnbnVsaWJfZXh0cmFfZmlsZXM7IGRvCi0gIGNhc2UgJGZpbGUg
aW4KLSAgICAqL0lOU1RBTEwpIGRzdD1JTlNUQUxMOzsKLSAgICBidWlsZC1hdXgvKikgZHN0
PSRidWlsZF9hdXgvJHtmaWxlI2J1aWxkLWF1eC99OzsKLSAgICAqKSBkc3Q9JGZpbGU7Owot
ICBlc2FjCi0gIHN5bWxpbmtfdG9fZGlyICIkR05VTElCX1NSQ0RJUiIgJGZpbGUgJGRzdCBc
Ci0gICAgfHwgZGllICJmYWlsZWQgdG8gc3ltbGluayAkZmlsZSIKLWRvbmUKLQotaWYgdGVz
dCAkd2l0aF9nZXR0ZXh0ID0geWVzOyB0aGVuCi0gICMgQ3JlYXRlIGdldHRleHQgY29uZmln
dXJhdGlvbi4KLSAgZWNobyAiJDA6IENyZWF0aW5nIHBvL01ha2V2YXJzIGZyb20gcG8vTWFr
ZXZhcnMudGVtcGxhdGUgLi4uIgotICBybSAtZiBwby9NYWtldmFycwotICBzZWQgJwotICAg
IC9eRVhUUkFfTE9DQUxFX0NBVEVHT1JJRVMgKj0vcy89LiovPSAnIiRFWFRSQV9MT0NBTEVf
Q0FURUdPUklFUyInLwotICAgIC9eQ09QWVJJR0hUX0hPTERFUiAqPS9zLz0uKi89ICciJENP
UFlSSUdIVF9IT0xERVIiJy8KLSAgICAvXk1TR0lEX0JVR1NfQUREUkVTUyAqPS9zfD0uKnw9
ICciJE1TR0lEX0JVR1NfQUREUkVTUyInfAotICAgIC9eWEdFVFRFWFRfT1BUSU9OUyAqPS97
Ci0gICAgICBzLyQvIFxcLwotICAgICAgYVwKLSAgICAgICAgICAnIiRYR0VUVEVYVF9PUFRJ
T05TIicgJCR7ZW5kX29mX3hnZXR0ZXh0X29wdGlvbnMrfQotICAgIH0KLSAgJyBwby9NYWtl
dmFycy50ZW1wbGF0ZSA+cG8vTWFrZXZhcnMgXAotICAgIHx8IGRpZSAnY2Fubm90IGdlbmVy
YXRlIHBvL01ha2V2YXJzJwotCi0gICMgSWYgdGhlICdnZXR0ZXh0JyBtb2R1bGUgaXMgaW4g
dXNlLCBncmFiIHRoZSBsYXRlc3QgTWFrZWZpbGUuaW4uaW4uCi0gICMgSWYgb25seSB0aGUg
J2dldHRleHQtaCcgbW9kdWxlIGlzIGluIHVzZSwgYXNzdW1lIGF1dG9wb2ludCBhbHJlYWR5
Ci0gICMgcHV0IHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgdGhpcyBmaWxlIGludG8gcGxhY2Uu
Ci0gIGNhc2UgJGdudWxpYl9tb2R1bGVzIGluCi0gICAgKmdldHRleHQtaCopIDs7Ci0gICAg
KmdldHRleHQqKQotICAgICAgY3AgJEdOVUxJQl9TUkNESVIvYnVpbGQtYXV4L3BvL01ha2Vm
aWxlLmluLmluIHBvL01ha2VmaWxlLmluLmluIFwKLSAgICAgICAgfHwgZGllICJjYW5ub3Qg
Y3JlYXRlIHBvL01ha2VmaWxlLmluLmluIgotICAgICAgOzsKLSAgZXNhYwotCi0gIGlmIHRl
c3QgLWQgcnVudGltZS1wbzsgdGhlbgotICAgICMgU2ltaWxhcmx5IGZvciBydW50aW1lLXBv
L01ha2V2YXJzLCBidXQgbm90IHF1aXRlIHRoZSBzYW1lLgotICAgIHJtIC1mIHJ1bnRpbWUt
cG8vTWFrZXZhcnMKLSAgICBzZWQgJwotICAgICAgL15ET01BSU4gKj0uKi9zLz0uKi89ICci
JHBhY2thZ2UiJy1ydW50aW1lLwotICAgICAgL15zdWJkaXIgKj0uKi9zLz0uKi89IHJ1bnRp
bWUtcG8vCi0gICAgICAvXk1TR0lEX0JVR1NfQUREUkVTUyAqPS9zLz0uKi89IGJ1Zy0nIiRw
YWNrYWdlIidAZ251Lm9yZy8KLSAgICAgIC9eWEdFVFRFWFRfT1BUSU9OUyAqPS97Ci0gICAg
ICAgIHMvJC8gXFwvCi0gICAgICAgIGFcCi0gICAgICAgICAgICAnIiRYR0VUVEVYVF9PUFRJ
T05TX1JVTlRJTUUiJyAkJHtlbmRfb2ZfeGdldHRleHRfb3B0aW9ucyt9Ci0gICAgICB9Ci0g
ICAgJyBwby9NYWtldmFycy50ZW1wbGF0ZSA+cnVudGltZS1wby9NYWtldmFycyBcCi0gICAg
fHwgZGllICdjYW5ub3QgZ2VuZXJhdGUgcnVudGltZS1wby9NYWtldmFycycKLQotICAgICMg
Q29weSBpZGVudGljYWwgZmlsZXMgZnJvbSBwbyB0byBydW50aW1lLXBvLgotICAgIChjZCBw
byAmJiBjcCAtcCBNYWtlZmlsZS5pbi5pbiAqLXF1b3QgKi5oZWFkZXIgKi5zZWQgKi5zaW4g
Li4vcnVudGltZS1wbykKLSAgZmkKLWZpCi0KLWJvb3RzdHJhcF9lcGlsb2d1ZQotCi1lY2hv
ICIkMDogZG9uZS4gIE5vdyB5b3UgY2FuIHJ1biAnLi9jb25maWd1cmUnLiIKLQotIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgTG9jYWwgVmFyaWFibGVzOgotIyBldmFsOiAoYWRk
LWhvb2sgJ2JlZm9yZS1zYXZlLWhvb2sgJ3RpbWUtc3RhbXApCi0jIHRpbWUtc3RhbXAtc3Rh
cnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0l
MDJkLiUwMkgiCi0jIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDMCIKLSMgdGltZS1zdGFt
cC1lbmQ6ICI7ICMgVVRDIgotIyBFbmQ6CithdXRvZ2VuICIkQCIKZGlmZiAtLWdpdCBhL2F1
dG9wdWxsLnNoIGIvYXV0b3B1bGwuc2gKaW5kZXggZmZiNGJhN2MuLjA0ZjYwNjM0IDEwMDc1
NQotLS0gYS9hdXRvcHVsbC5zaAorKysgYi9hdXRvcHVsbC5zaApAQCAtMiw3ICsyLDcgQEAK
ICMgQ29udmVuaWVuY2Ugc2NyaXB0IGZvciBmZXRjaGluZyBhdXhpbGlhcnkgZmlsZXMgdGhh
dCBhcmUgb21pdHRlZCBmcm9tCiAjIHRoZSB2ZXJzaW9uIGNvbnRyb2wgcmVwb3NpdG9yeSBv
ZiB0aGlzIHBhY2thZ2UuCiAKLSMgQ29weXJpZ2h0IChDKSAyMDAzLTIwMjIgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMjAwMy0yMDI1IEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz
b2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogIyBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieQpAQCAtMjgsMjQ2ICsyOCwxMCBAQAogIyBBbHRlcm5hdGl2ZWx5LCB5b3Ug
Y2FuIHVzZSBhbiBhdXRvcHVsbC5zaCBzY3JpcHQgdGhhdCBpcyBzcGVjaWZpYwogIyB0byB5
b3VyIHBhY2thZ2UuCiAKLXNjcmlwdHZlcnNpb249MjAyMi0wNy0yNC4xNTsgIyBVVEMKLQog
bWU9IiQwIgogbWVkaXI9YGRpcm5hbWUgIiRtZSJgCiAKICMgUmVhZCB0aGUgZnVuY3Rpb24g
bGlicmFyeSBhbmQgdGhlIGNvbmZpZ3VyYXRpb24uCiAuICIkbWVkaXIiL2Jvb3RzdHJhcC1m
dW5jbGliLnNoCiAKLSMgRW5zdXJlIHRoYXQgQ0RQQVRIIGlzIG5vdCBzZXQuICBPdGhlcndp
c2UsIHRoZSBvdXRwdXQgZnJvbSBjZAotIyB3b3VsZCBjYXVzZSB0cm91YmxlIGluIGF0IGxl
YXN0IG9uZSB1c2UgYmVsb3cuCi0odW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYg
dW5zZXQgQ0RQQVRICi0KLXVzYWdlKCkgewotICBjYXQgPDxFT0YKLVVzYWdlOiAkbWUgW09Q
VElPTl0uLi4KLUJvb3RzdHJhcCB0aGlzIHBhY2thZ2UgZnJvbSB0aGUgY2hlY2tlZC1vdXQg
c291cmNlcy4KLQotT3B0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgotICBHTlVMSUJf
U1JDRElSICAgICAgICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbCBkaXJlY3Rvcnkgd2hlcmUg
Z251bGliCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VzIHJlc2lkZS4gIFVz
ZSB0aGlzIGlmIHlvdSBhbHJlYWR5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZl
IGdudWxpYiBzb3VyY2VzIG9uIHlvdXIgbWFjaGluZSwgYW5kCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICB5b3Ugd2FudCB0byB1c2UgdGhlc2Ugc291cmNlcy4KLSAgR05VTElCX1JF
RkRJUiAgICAgICAgICAgIFNwZWNpZmllcyB0aGUgbG9jYWwgZGlyZWN0b3J5IHdoZXJlIGEg
Z251bGliCi0gICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5ICh3aXRoIGEg
LmdpdCBzdWJkaXJlY3RvcnkpIHJlc2lkZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBVc2UgdGhpcyBpZiB5b3UgYWxyZWFkeSBoYXZlIGdudWxpYiBzb3VyY2VzCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbmQgaGlzdG9yeSBvbiB5b3VyIG1hY2hpbmUsIGFuZCBk
byBub3Qgd2FudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gd2FzdGUgeW91ciBi
YW5kd2lkdGggZG93bmxvYWRpbmcgdGhlbSBhZ2Fpbi4KLSAgR05VTElCX1VSTCAgICAgICAg
ICAgICAgIENsb25lYWJsZSBVUkwgb2YgdGhlIGdudWxpYiByZXBvc2l0b3J5LgotCi1PcHRp
b25zOgotICAtLWJvb3RzdHJhcC1zeW5jICAgICAgICAgaWYgdGhpcyBib290c3RyYXAgc2Ny
aXB0IGlzIG5vdCBpZGVudGljYWwgdG8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
ZSB2ZXJzaW9uIGluIHRoZSBsb2NhbCBnbnVsaWIgc291cmNlcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVwZGF0ZSB0aGlzIHNjcmlwdCwgYW5kIHRoZW4gcmVzdGFydCBpdCB3
aXRoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAvYmluL3NoIG9yIHRoZSBzaGVsbCBc
JENPTkZJR19TSEVMTAotICAtLW5vLWJvb3RzdHJhcC1zeW5jICAgICAgZG8gbm90IGNoZWNr
IHdoZXRoZXIgYm9vdHN0cmFwIGlzIG91dCBvZiBzeW5jCi0gIC0tZm9yY2UgICAgICAgICAg
ICAgICAgICBhdHRlbXB0IHRvIGJvb3RzdHJhcCBldmVuIGlmIHRoZSBzb3VyY2VzIHNlZW0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCB0byBoYXZlIGJlZW4gY2hlY2tlZCBv
dXQKLSAgLS1uby1naXQgICAgICAgICAgICAgICAgIGRvIG5vdCB1c2UgZ2l0IHRvIHVwZGF0
ZSBnbnVsaWIuICBSZXF1aXJlcyB0aGF0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBc
JEdOVUxJQl9TUkNESVIgb3IgdGhlIC0tZ251bGliLXNyY2RpciBvcHRpb24KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBvaW50cyB0byBhIGdudWxpYiByZXBvc2l0b3J5IHdpdGgg
dGhlIGNvcnJlY3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmlzaW9uCi0gIC0t
c2tpcC1wbyAgICAgICAgICAgICAgICBkbyBub3QgZG93bmxvYWQgcG8gZmlsZXMKLUVPRgot
ICBib290c3RyYXBfcHJpbnRfb3B0aW9uX3VzYWdlX2hvb2sKLSAgY2F0IDw8RU9GCi1JZiB0
aGUgZmlsZSBib290c3RyYXAuY29uZiBleGlzdHMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFz
IHRoaXMgc2NyaXB0LCBpdHMKLWNvbnRlbnRzIGFyZSByZWFkIGFzIHNoZWxsIHZhcmlhYmxl
cyB0byBjb25maWd1cmUgdGhlIGJvb3RzdHJhcC4KLQotRm9yIGJ1aWxkIHByZXJlcXVpc2l0
ZXMsIGVudmlyb25tZW50IHZhcmlhYmxlcyBsaWtlIFwkQVVUT0NPTkYgYW5kIFwkQU1UQVIK
LWFyZSBob25vcmVkLgotCi1HbnVsaWIgc291cmNlcyBjYW4gYmUgZmV0Y2hlZCBpbiB2YXJp
b3VzIHdheXM6Ci0KLSAqIElmIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBHTlVMSUJfU1JD
RElSIGlzIHNldCAoZWl0aGVyIGFzIGFuCi0gICBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB2
aWEgdGhlIC0tZ251bGliLXNyY2RpciBvcHRpb24pLCB0aGVuIHNvdXJjZXMKLSAgIGFyZSBm
ZXRjaGVkIGZyb20gdGhhdCBsb2NhbCBkaXJlY3RvcnkuICBJZiBpdCBpcyBhIGdpdCByZXBv
c2l0b3J5IGFuZAotICAgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgR05VTElCX1JFVklT
SU9OIGlzIHNldCBpbiBib290c3RyYXAuY29uZiwKLSAgIHRoZW4gdGhhdCByZXZpc2lvbiBp
cyBjaGVja2VkIG91dC4KLQotICogT3RoZXJ3aXNlLCBpZiB0aGlzIHBhY2thZ2UgaXMgaW4g
YSBnaXQgcmVwb3NpdG9yeSB3aXRoIGEgJ2dudWxpYicKLSAgIHN1Ym1vZHVsZSBjb25maWd1
cmVkLCB0aGVuIHRoYXQgc3VibW9kdWxlIGlzIGluaXRpYWxpemVkIGFuZCB1cGRhdGVkCi0g
ICBhbmQgc291cmNlcyBhcmUgZmV0Y2hlZCBmcm9tIHRoZXJlLiAgSWYgR05VTElCX1JFRkRJ
UiBpcyBzZXQgKGVpdGhlcgotICAgYXMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgb3Igdmlh
IHRoZSAtLWdudWxpYi1yZWZkaXIgb3B0aW9uKSBhbmQgaXMKLSAgIGEgZ2l0IHJlcG9zaXRv
cnksIHRoZW4gaXQgaXMgdXNlZCBhcyBhIHJlZmVyZW5jZS4KLQotICogT3RoZXJ3aXNlLCBp
ZiB0aGUgJ2dudWxpYicgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LCBHbnVsaWIgc291cmNl
cwotICAgYXJlIGNsb25lZCBpbnRvIHRoYXQgZGlyZWN0b3J5IHVzaW5nIGdpdCBmcm9tIFwk
R05VTElCX1VSTCwgZGVmYXVsdGluZwotICAgdG8gJGRlZmF1bHRfZ251bGliX3VybC4KLSAg
IElmIHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlIEdOVUxJQl9SRVZJU0lPTiBpcyBzZXQg
aW4gYm9vdHN0cmFwLmNvbmYsCi0gICB0aGVuIHRoYXQgcmV2aXNpb24gaXMgY2hlY2tlZCBv
dXQuCi0KLSAqIE90aGVyd2lzZSwgdGhlIGV4aXN0aW5nIEdudWxpYiBzb3VyY2VzIGluIHRo
ZSAnZ251bGliJyBkaXJlY3RvcnkgYXJlCi0gICB1c2VkLiAgSWYgaXQgaXMgYSBnaXQgcmVw
b3NpdG9yeSBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUKLSAgIEdOVUxJQl9SRVZJ
U0lPTiBpcyBzZXQgaW4gYm9vdHN0cmFwLmNvbmYsIHRoZW4gdGhhdCByZXZpc2lvbiBpcwot
ICAgY2hlY2tlZCBvdXQuCi0KLUlmIHlvdSBtYWludGFpbiBhIHBhY2thZ2UgYW5kIHdhbnQg
dG8gcGluIGEgcGFydGljdWxhciByZXZpc2lvbiBvZiB0aGUKLUdudWxpYiBzb3VyY2VzIHRo
YXQgaGFzIGJlZW4gdGVzdGVkIHdpdGggeW91ciBwYWNrYWdlLCB0aGVuIHRoZXJlIGFyZQot
dHdvIHBvc3NpYmxlIGFwcHJvYWNoZXM6IGVpdGhlciBjb25maWd1cmUgYSAnZ251bGliJyBz
dWJtb2R1bGUgd2l0aCB0aGUKLWFwcHJvcHJpYXRlIHJldmlzaW9uLCBvciBzZXQgR05VTElC
X1JFVklTSU9OIChhbmQgaWYgbmVjZXNzYXJ5Ci1HTlVMSUJfVVJMKSBpbiBib290c3RyYXAu
Y29uZi4KLQotUnVubmluZyB3aXRob3V0IGFyZ3VtZW50cyB3aWxsIHN1ZmZpY2UgaW4gbW9z
dCBjYXNlcy4KLUVPRgotfQotCi0jIFBhcnNlIG9wdGlvbnMuCi0KLSMgVXNlIGdpdCB0byB1
cGRhdGUgZ251bGliIHNvdXJjZXMKLXVzZV9naXQ9dHJ1ZQotCi1mb3Igb3B0aW9uCi1kbwot
ICBjYXNlICRvcHRpb24gaW4KLSAgLS1oZWxwKQotICAgIHVzYWdlCi0gICAgZXhpdDs7Ci0g
IC0tdmVyc2lvbikKLSAgICBzZXQgLWUKLSAgICBlY2hvICJhdXRvcHVsbC5zaCAkc2NyaXB0
dmVyc2lvbiIKLSAgICBlY2hvICIkY29weXJpZ2h0IgotICAgIGV4aXQgMAotICAgIDs7Ci0g
IC0tc2tpcC1wbykKLSAgICBTS0lQX1BPPXQ7OwotICAtLWZvcmNlKQotICAgIGNoZWNrb3V0
X29ubHlfZmlsZT07OwotICAtLWJvb3RzdHJhcC1zeW5jKQotICAgIGJvb3RzdHJhcF9zeW5j
PXRydWU7OwotICAtLW5vLWJvb3RzdHJhcC1zeW5jKQotICAgIGJvb3RzdHJhcF9zeW5jPWZh
bHNlOzsKLSAgLS1uby1naXQpCi0gICAgdXNlX2dpdD1mYWxzZTs7Ci0gICopCi0gICAgYm9v
dHN0cmFwX29wdGlvbl9ob29rICRvcHRpb24gfHwgZGllICIkb3B0aW9uOiB1bmtub3duIG9w
dGlvbiI7OwotICBlc2FjCi1kb25lCi0KLSR1c2VfZ2l0IHx8IHRlc3QgLW4gIiRHTlVMSUJf
U1JDRElSIiBcCi0gIHx8IGRpZSAiRXJyb3I6IC0tbm8tZ2l0IHJlcXVpcmVzIFwkR05VTElC
X1NSQ0RJUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciAtLWdudWxpYi1zcmNkaXIgb3B0aW9u
IgotdGVzdCAteiAiJEdOVUxJQl9TUkNESVIiIHx8IHRlc3QgLWQgIiRHTlVMSUJfU1JDRElS
IiBcCi0gIHx8IGRpZSAiRXJyb3I6IFwkR05VTElCX1NSQ0RJUiBlbnZpcm9ubWVudCB2YXJp
YWJsZSBvciAtLWdudWxpYi1zcmNkaXIgb3B0aW9uIGlzIHNwZWNpZmllZCwgYnV0IGRvZXMg
bm90IGRlbm90ZSBhIGRpcmVjdG9yeSIKLQotaWYgdGVzdCAtbiAiJGNoZWNrb3V0X29ubHlf
ZmlsZSIgJiYgdGVzdCAhIC1yICIkY2hlY2tvdXRfb25seV9maWxlIjsgdGhlbgotICBkaWUg
IlJ1bm5pbmcgdGhpcyBzY3JpcHQgZnJvbSBhIG5vbi1jaGVja2VkLW91dCBkaXN0cmlidXRp
b24gaXMgcmlza3kuIgotZmkKLQotY2hlY2tfYnVpbGRfcHJlcmVxdWlzaXRlcyAkdXNlX2dp
dAotCi1pZiAkdXNlX2dudWxpYiB8fCAkYm9vdHN0cmFwX3N5bmM7IHRoZW4KLSAgcHJlcGFy
ZV9HTlVMSUJfU1JDRElSCi0gIGlmICRib290c3RyYXBfc3luYzsgdGhlbgotICAgIHVwZ3Jh
ZGVfYm9vdHN0cmFwCi0gIGZpCi1maQotCi0jIEZpbmQgc2hhMXN1bSwgbmFtZWQgZ3NoYTFz
dW0gb24gTWFjUG9ydHMsIHNoYXN1bSBvbiBNYWMgT1MgWCAxMC42LgotIyBBbHNvIGZpbmQg
dGhlIGNvbXBhdGlibGUgc2hhMSB1dGlsaXR5IG9uIHRoZSBCU0RzCi1pZiB0ZXN0IHgiJFNL
SVBfUE8iID0geDsgdGhlbgotICBmaW5kX3Rvb2wgU0hBMVNVTSBzaGExc3VtIGdzaGExc3Vt
IHNoYXN1bSBzaGExCi1maQotCi0jIFNlZSBpZiB3ZSBjYW4gdXNlIGdudWxpYidzIGdpdC1t
ZXJnZS1jaGFuZ2Vsb2cgbWVyZ2UgZHJpdmVyLgotaWYgJHVzZV9naXQgJiYgdGVzdCAtZCAu
Z2l0ICYmIGNoZWNrX2V4aXN0cyBnaXQ7IHRoZW4KLSAgaWYgZ2l0IGNvbmZpZyBtZXJnZS5t
ZXJnZS1jaGFuZ2Vsb2cuZHJpdmVyID4vZGV2L251bGwgOyB0aGVuCi0gICAgOgotICBlbGlm
IGNoZWNrX2V4aXN0cyBnaXQtbWVyZ2UtY2hhbmdlbG9nOyB0aGVuCi0gICAgZWNobyAiJDA6
IGluaXRpYWxpemluZyBnaXQtbWVyZ2UtY2hhbmdlbG9nIGRyaXZlciIKLSAgICBnaXQgY29u
ZmlnIG1lcmdlLm1lcmdlLWNoYW5nZWxvZy5uYW1lICdHTlUtc3R5bGUgQ2hhbmdlTG9nIG1l
cmdlIGRyaXZlcicKLSAgICBnaXQgY29uZmlnIG1lcmdlLm1lcmdlLWNoYW5nZWxvZy5kcml2
ZXIgJ2dpdC1tZXJnZS1jaGFuZ2Vsb2cgJU8gJUEgJUInCi0gIGVsc2UKLSAgICBlY2hvICIk
MDogY29uc2lkZXIgaW5zdGFsbGluZyBnaXQtbWVyZ2UtY2hhbmdlbG9nIGZyb20gZ251bGli
IgotICBmaQotZmkKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBHZXQgdHJh
bnNsYXRpb25zLiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1kb3dubG9hZF9w
b19maWxlcygpIHsKLSAgc3ViZGlyPSQxCi0gIGRvbWFpbj0kMgotICBlY2hvICIkbWU6IGdl
dHRpbmcgdHJhbnNsYXRpb25zIGludG8gJHN1YmRpciBmb3IgJGRvbWFpbi4uLiIKLSAgY21k
PSQocHJpbnRmICIkcG9fZG93bmxvYWRfY29tbWFuZF9mb3JtYXQiICIkc3ViZGlyIiAiJGRv
bWFpbiIpCi0gIGV2YWwgIiRjbWQiCi19Ci0KLSMgTWlycm9yIC5wbyBmaWxlcyB0byAkcG9f
ZGlyLy5yZWZlcmVuY2UgYW5kIGNvcHkgb25seSB0aGUgbmV3Ci0jIG9yIG1vZGlmaWVkIG9u
ZXMgaW50byAkcG9fZGlyLiAgQWxzbyB1cGRhdGUgJHBvX2Rpci9MSU5HVUFTLgotIyBOb3Rl
IHBvIGZpbGVzIHRoYXQgZXhpc3QgbG9jYWxseSBvbmx5IGFyZSBsZWZ0IGluICRwb19kaXIg
YnV0IHdpbGwKLSMgbm90IGJlIGluY2x1ZGVkIGluIExJTkdVQVMgYW5kIGhlbmNlIHdpbGwg
bm90IGJlIGRpc3RyaWJ1dGVkLgotdXBkYXRlX3BvX2ZpbGVzKCkgewotICAjIERpcmVjdG9y
eSBjb250YWluaW5nIHByaW1hcnkgLnBvIGZpbGVzLgotICAjIE92ZXJ3cml0ZSB0aGVtIG9u
bHkgd2hlbiB3ZSdyZSBzdXJlIGEgLnBvIGZpbGUgaXMgbmV3LgotICBwb19kaXI9JDEKLSAg
ZG9tYWluPSQyCi0KLSAgIyBNaXJyb3IgKi5wbyBmaWxlcyBpbnRvIHRoaXMgZGlyLgotICAj
IFVzdWFsbHkgY29udGFpbnMgKi5zMSBjaGVja3N1bSBmaWxlcy4KLSAgcmVmX3BvX2Rpcj0i
JHBvX2Rpci8ucmVmZXJlbmNlIgotCi0gIHRlc3QgLWQgJHJlZl9wb19kaXIgfHwgbWtkaXIg
JHJlZl9wb19kaXIgfHwgcmV0dXJuCi0gIGRvd25sb2FkX3BvX2ZpbGVzICRyZWZfcG9fZGly
ICRkb21haW4gXAotICAgICYmIGxzICIkcmVmX3BvX2RpciIvKi5wbyAyPi9kZXYvbnVsbCB8
Ci0gICAgICBzZWQgJ3N8LiovfHw7IHN8XC5wbyR8fCcgPiAiJHBvX2Rpci9MSU5HVUFTIiB8
fCByZXR1cm4KLQotICBsYW5ncz0kKGNkICRyZWZfcG9fZGlyICYmIGVjaG8gKi5wbyB8IHNl
ZCAncy9cLnBvLy9nJykKLSAgdGVzdCAiJGxhbmdzIiA9ICcqJyAmJiBsYW5ncz14Ci0gIGZv
ciBwbyBpbiAkbGFuZ3M7IGRvCi0gICAgY2FzZSAkcG8gaW4geCkgY29udGludWU7OyBlc2Fj
Ci0gICAgbmV3X3BvPSIkcmVmX3BvX2Rpci8kcG8ucG8iCi0gICAgY2tzdW1fZmlsZT0iJHJl
Zl9wb19kaXIvJHBvLnMxIgotICAgIGlmICEgdGVzdCAtZiAiJGNrc3VtX2ZpbGUiIHx8Ci0g
ICAgICAgICEgdGVzdCAtZiAiJHBvX2Rpci8kcG8ucG8iIHx8Ci0gICAgICAgICEgJFNIQTFT
VU0gLWMgIiRja3N1bV9maWxlIiA8ICIkbmV3X3BvIiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVu
Ci0gICAgICBlY2hvICIkbWU6IHVwZGF0ZWQgJHBvX2Rpci8kcG8ucG8uLi4iCi0gICAgICBj
cCAiJG5ld19wbyIgIiRwb19kaXIvJHBvLnBvIiBcCi0gICAgICAgICAgJiYgJFNIQTFTVU0g
PCAiJG5ld19wbyIgPiAiJGNrc3VtX2ZpbGUiIHx8IHJldHVybgotICAgIGZpCi0gIGRvbmUK
LX0KLQotY2FzZSAkU0tJUF9QTyBpbgotJycpCi0gIGlmIHRlc3QgLWQgcG87IHRoZW4KLSAg
ICB1cGRhdGVfcG9fZmlsZXMgcG8gJHBhY2thZ2UgfHwgZXhpdAotICBmaQotCi0gIGlmIHRl
c3QgLWQgcnVudGltZS1wbzsgdGhlbgotICAgIHVwZGF0ZV9wb19maWxlcyBydW50aW1lLXBv
ICRwYWNrYWdlLXJ1bnRpbWUgfHwgZXhpdAotICBmaTs7Ci1lc2FjCi0KLSMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotYm9vdHN0cmFwX3Bvc3RfcHVsbF9ob29rIFwKLSAgfHwgZGll
ICJib290c3RyYXBfcG9zdF9wdWxsX2hvb2sgZmFpbGVkIgotCi0jIERvbid0IHByb2NlZWQg
aWYgdGhlcmUgYXJlIHVuaW5pdGlhbGl6ZWQgc3VibW9kdWxlcy4gIEluIHBhcnRpY3VsYXIs
Ci0jIGF1dG9nZW4uc2ggd2lsbCByZW1vdmUgZGFuZ2xpbmcgbGlua3MsIHdoaWNoIG1pZ2h0
IGJlIGxpbmtzIGludG8KLSMgdW5pbml0aWFsaXplZCBzdWJtb2R1bGVzLgotIyBCdXQgaXQn
cyBPSyBpZiB0aGUgJ2dudWxpYicgc3VibW9kdWxlIGlzIHVuaW5pdGlhbGl6ZWQsIGFzIGxv
bmcgYXMKLSMgR05VTElCX1NSQ0RJUiBpcyBzZXQuCi1pZiAkdXNlX2dpdDsgdGhlbgotICAj
IFVuaW5pdGlhbGl6ZWQgc3VibW9kdWxlcyBhcmUgbGlzdGVkIHdpdGggYW4gaW5pdGlhbCBk
YXNoLgotICB1bmluaXRpYWxpemVkPWBnaXQgc3VibW9kdWxlIHwgZ3JlcCAnXi0nIHwgYXdr
ICd7IHByaW50ICQyIH0nYAotICBpZiB0ZXN0IC1uICIkR05VTElCX1NSQ0RJUiI7IHRoZW4K
LSAgICB1bmluaXRpYWxpemVkPWBlY2hvICIkdW5pbml0aWFsaXplZCIgfCBncmVwIC12ICde
Z251bGliJCdgCi0gIGZpCi0gIGlmIHRlc3QgLW4gIiR1bmluaXRpYWxpemVkIjsgdGhlbgot
ICAgIGRpZSAiU29tZSBnaXQgc3VibW9kdWxlcyBhcmUgbm90IGluaXRpYWxpemVkOiAiYGVj
aG8gIiR1bmluaXRpYWxpemVkIiB8IHRyICdcbicgJywnIHwgc2VkIC1lICdzfCwkfC58J2Ai
IEVpdGhlciB1c2Ugb3B0aW9uICctLW5vLWdpdCcsIG9yIHJ1biAnZ2l0IHN1Ym1vZHVsZSB1
cGRhdGUgLS1pbml0JyBhbmQgYm9vdHN0cmFwIGFnYWluLiIKLSAgZmkKLWZpCi0KLWVjaG8g
IiQwOiBkb25lLiAgTm93IHlvdSBjYW4gcnVuICcuL2F1dG9nZW4uc2gnLiIKLQotIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgTG9jYWwgVmFyaWFibGVzOgotIyBldmFsOiAoYWRk
LWhvb2sgJ2JlZm9yZS1zYXZlLWhvb2sgJ3RpbWUtc3RhbXApCi0jIHRpbWUtc3RhbXAtc3Rh
cnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0l
MDJkLiUwMkgiCi0jIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDMCIKLSMgdGltZS1zdGFt
cC1lbmQ6ICI7ICMgVVRDIgotIyBFbmQ6CithdXRvcHVsbCAiJEAiCmRpZmYgLS1naXQgYS9i
b290c3RyYXAgYi9ib290c3RyYXAKaW5kZXggY2Y4ZDAwN2YuLjU3ODBhZTVhIDEwMDc1NQot
LS0gYS9ib290c3RyYXAKKysrIGIvYm9vdHN0cmFwCkBAIC0xLDcgKzEsOSBAQAogIyEgL2Jp
bi9zaAogIyBCb290c3RyYXAgdGhpcyBwYWNrYWdlIGZyb20gY2hlY2tlZC1vdXQgc291cmNl
cy4KIAotIyBDb3B5cmlnaHQgKEMpIDIwMDMtMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4KK3NjcmlwdHZlcnNpb249MjAyNC0wNy0wNC4xMDsgIyBVVEMKKworIyBDb3B5
cmlnaHQgKEMpIDIwMDMtMjAyNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICMK
ICMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vciBtb2RpZnkKICMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKQEAgLTI2LDggKzI4LDYgQEAK
IAogIyBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb3IgcHJvcG9zZSBwYXRjaGVzIHRvIGJ1Zy1nbnVs
aWJAZ251Lm9yZy4KIAotc2NyaXB0dmVyc2lvbj0yMDIyLTA3LTI5LjIzOyAjIFVUQwotCiBt
ZT0iJDAiCiBtZWRpcj1gZGlybmFtZSAiJG1lImAKIApAQCAtNDMsMzUgKzQzLDU1IEBAIE9w
dGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlczoKICAgR05VTElCX1NSQ0RJUiAgICAgICAg
ICAgIFNwZWNpZmllcyB0aGUgbG9jYWwgZGlyZWN0b3J5IHdoZXJlIGdudWxpYgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc291cmNlcyByZXNpZGUuICBVc2UgdGhpcyBpZiB5b3Ug
YWxyZWFkeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZSBnbnVsaWIgc291cmNl
cyBvbiB5b3VyIG1hY2hpbmUsIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8g
bm90IHdhbnQgdG8gd2FzdGUgeW91ciBiYW5kd2lkdGggZG93bmxvYWRpbmcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRoZW0gYWdhaW4uCi0gIEdOVUxJQl9VUkwgICAgICAgICAg
ICAgICBDbG9uZWFibGUgVVJMIG9mIHRoZSBnbnVsaWIgcmVwb3NpdG9yeS4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHlvdSB3YW50IHRvIHVzZSB0aGVzZSBzb3VyY2VzLgorICBH
TlVMSUJfUkVGRElSICAgICAgICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbCBkaXJlY3Rvcnkg
d2hlcmUgYSBnbnVsaWIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnkg
KHdpdGggYSAuZ2l0IHN1YmRpcmVjdG9yeSkgcmVzaWRlcy4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFVzZSB0aGlzIGlmIHlvdSBhbHJlYWR5IGhhdmUgZ251bGliIHNvdXJjZXMK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBoaXN0b3J5IG9uIHlvdXIgbWFjaGlu
ZSwgYW5kIGRvIG5vdCB3YW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB3YXN0
ZSB5b3VyIGJhbmR3aWR0aCBkb3dubG9hZGluZyB0aGVtIGFnYWluLgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgT25seSB1c2VkIGZvciBwaGFzZSAxICgtLXB1bGwpLgorICBHTlVM
SUJfVVJMICAgICAgICAgICAgICAgVVJMIG9mIHRoZSBnbnVsaWIgcmVwb3NpdG9yeS4gIFRo
ZSBkZWZhdWx0IGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdF9nbnVs
aWJfdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2ggaXMgR251bGliJ3Mg
dXBzdHJlYW0gcmVwb3NpdG9yeS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkg
dXNlZCBmb3IgcGhhc2UgMSAoLS1wdWxsKS4KIAogT3B0aW9uczoKLSAgLS1nbnVsaWItc3Jj
ZGlyPURJUk5BTUUgIHNwZWNpZnkgdGhlIGxvY2FsIGRpcmVjdG9yeSB3aGVyZSBnbnVsaWIK
KworICAtLXB1bGwgICAgICAgICAgICAgICAgICAgRG8gcGhhc2UgMTogUHVsbCBmaWxlcyBm
cm9tIHRoZSBuZXR3b3JrLgorICAtLWdlbiAgICAgICAgICAgICAgICAgICAgRG8gcGhhc2Ug
MjogR2VuZXJhdGUgZmlsZXMgZnJvbSBsb2NhbCBmaWxlcworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG5vIG5ldHdvcmsgYWNjZXNzKS4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChUaGUgZGVmYXVsdCBpcyB0byBkbyBib3RoIHBoYXNlcy4pCisKKyAgLS1nbnVsaWIt
c3JjZGlyPURJUk5BTUUgIFNwZWNpZmllcyB0aGUgbG9jYWwgZGlyZWN0b3J5IHdoZXJlIGdu
dWxpYgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlcyByZXNpZGUuICBVc2Ug
dGhpcyBpZiB5b3UgYWxyZWFkeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZSBn
bnVsaWIgc291cmNlcyBvbiB5b3VyIG1hY2hpbmUsIGFuZAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeW91IHdhbnQgdG8gdXNlIHRoZXNlIHNvdXJjZXMuICBEZWZhdWx0cwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG8gXCRHTlVMSUJfU1JDRElSCi0gIC0tZ251bGli
LXJlZmRpcj1ESVJOQU1FICBzcGVjaWZ5IHRoZSBsb2NhbCBkaXJlY3Rvcnkgd2hlcmUgYSBn
bnVsaWIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIFwkR05VTElCX1NSQ0RJUi4K
KyAgLS1nbnVsaWItcmVmZGlyPURJUk5BTUUgIFNwZWNpZmllcyB0aGUgbG9jYWwgZGlyZWN0
b3J5IHdoZXJlIGEgZ251bGliCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvc2l0
b3J5ICh3aXRoIGEgLmdpdCBzdWJkaXJlY3RvcnkpIHJlc2lkZXMuCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBVc2UgdGhpcyBpZiB5b3UgYWxyZWFkeSBoYXZlIGdudWxpYiBzb3Vy
Y2VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgaGlzdG9yeSBvbiB5b3VyIG1h
Y2hpbmUsIGFuZCBkbyBub3Qgd2FudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8g
d2FzdGUgeW91ciBiYW5kd2lkdGggZG93bmxvYWRpbmcgdGhlbSBhZ2Fpbi4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIFwkR05VTElCX1JFRkRJUgotICAtLWJv
b3RzdHJhcC1zeW5jICAgICAgICAgaWYgdGhpcyBib290c3RyYXAgc2NyaXB0IGlzIG5vdCBp
ZGVudGljYWwgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIFwk
R05VTElCX1JFRkRJUi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgdXNlZCBm
b3IgcGhhc2UgMSAoLS1wdWxsKS4KKworICAtLWJvb3RzdHJhcC1zeW5jICAgICAgICAgSWYg
dGhpcyBib290c3RyYXAgc2NyaXB0IGlzIG5vdCBpZGVudGljYWwgdG8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoZSB2ZXJzaW9uIGluIHRoZSBsb2NhbCBnbnVsaWIgc291cmNl
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZSB0aGlzIHNjcmlwdCwgYW5k
IHRoZW4gcmVzdGFydCBpdCB3aXRoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAvYmlu
L3NoIG9yIHRoZSBzaGVsbCBcJENPTkZJR19TSEVMTAotICAtLW5vLWJvb3RzdHJhcC1zeW5j
ICAgICAgZG8gbm90IGNoZWNrIHdoZXRoZXIgYm9vdHN0cmFwIGlzIG91dCBvZiBzeW5jCi0g
IC0tY29weSAgICAgICAgICAgICAgICAgICBjb3B5IGZpbGVzIGluc3RlYWQgb2YgY3JlYXRp
bmcgc3ltYm9saWMgbGlua3MKLSAgLS1mb3JjZSAgICAgICAgICAgICAgICAgIGF0dGVtcHQg
dG8gYm9vdHN0cmFwIGV2ZW4gaWYgdGhlIHNvdXJjZXMgc2VlbQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbm90IHRvIGhhdmUgYmVlbiBjaGVja2VkIG91dAotICAtLW5vLWdpdCAg
ICAgICAgICAgICAgICAgZG8gbm90IHVzZSBnaXQgdG8gdXBkYXRlIGdudWxpYi4gIFJlcXVp
cmVzIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC9iaW4vc2ggb3IgdGhlIHNo
ZWxsIFwkQ09ORklHX1NIRUxMLgorICAtLW5vLWJvb3RzdHJhcC1zeW5jICAgICAgRG8gbm90
IGNoZWNrIHdoZXRoZXIgYm9vdHN0cmFwIGlzIG91dCBvZiBzeW5jLgorCisgIC0tY29weSAg
ICAgICAgICAgICAgICAgICBDb3B5IGZpbGVzIGluc3RlYWQgb2YgY3JlYXRpbmcgc3ltYm9s
aWMgbGlua3MuCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmx5IHVzZWQgZm9yIHBo
YXNlIDIgKC0tZ2VuKS4KKyAgLS1mb3JjZSAgICAgICAgICAgICAgICAgIEF0dGVtcHQgdG8g
Ym9vdHN0cmFwIGV2ZW4gaWYgdGhlIHNvdXJjZXMgc2VlbQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm90IHRvIGhhdmUgYmVlbiBjaGVja2VkIG91dC4KKyAgLS1uby1naXQgICAg
ICAgICAgICAgICAgIERvIG5vdCB1c2UgZ2l0IHRvIHVwZGF0ZSBnbnVsaWIuICBSZXF1aXJl
cyB0aGF0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcJEdOVUxJQl9TUkNESVIgb3Ig
dGhlIC0tZ251bGliLXNyY2RpciBvcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvaW50cyB0byBhIGdudWxpYiByZXBvc2l0b3J5IHdpdGggdGhlIGNvcnJlY3QKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldmlzaW9uCi0gIC0tc2tpcC1wbyAgICAgICAgICAg
ICAgICBkbyBub3QgZG93bmxvYWQgcG8gZmlsZXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldmlzaW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSB1c2VkIGZv
ciBwaGFzZSAxICgtLXB1bGwpLgorICAtLXNraXAtcG8gICAgICAgICAgICAgICAgRG8gbm90
IGRvd25sb2FkICoucG8gZmlsZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmx5
IHVzZWQgZm9yIHBoYXNlIDEgKC0tcHVsbCkuCiBFT0YKICAgYm9vdHN0cmFwX3ByaW50X29w
dGlvbl91c2FnZV9ob29rCiAgIGNhdCA8PEVPRgpAQCAtODMsMTEgKzEwMywxMSBAQCBhcmUg
aG9ub3JlZC4KIAogR251bGliIHNvdXJjZXMgY2FuIGJlIGZldGNoZWQgaW4gdmFyaW91cyB3
YXlzOgogCi0gKiBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgR05VTElCX1NSQ0RJUiBp
cyBzZXQgKGVpdGhlciBhcyBhbgotICAgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdmlhIHRo
ZSAtLWdudWxpYi1zcmNkaXIgb3B0aW9uKSwgdGhlbiBzb3VyY2VzCi0gICBhcmUgZmV0Y2hl
ZCBmcm9tIHRoYXQgbG9jYWwgZGlyZWN0b3J5LiAgSWYgaXQgaXMgYSBnaXQgcmVwb3NpdG9y
eSBhbmQKLSAgIHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlIEdOVUxJQl9SRVZJU0lPTiBp
cyBzZXQgaW4gYm9vdHN0cmFwLmNvbmYsCi0gICB0aGVuIHRoYXQgcmV2aXNpb24gaXMgY2hl
Y2tlZCBvdXQuCisgKiBJZiBHTlVMSUJfU1JDRElSIGlzIHNldCAoZWl0aGVyIGFzIGFuIGVu
dmlyb25tZW50IHZhcmlhYmxlIG9yIHZpYSB0aGUKKyAgIC0tZ251bGliLXNyY2RpciBvcHRp
b24pLCB0aGVuIHNvdXJjZXMgYXJlIGZldGNoZWQgZnJvbSB0aGF0IGxvY2FsCisgICBkaXJl
Y3RvcnkuICBJZiBpdCBpcyBhIGdpdCByZXBvc2l0b3J5IGFuZCB0aGUgY29uZmlndXJhdGlv
biB2YXJpYWJsZQorICAgR05VTElCX1JFVklTSU9OIGlzIHNldCBpbiBib290c3RyYXAuY29u
ZiwgdGhlbiB0aGF0IHJldmlzaW9uIGlzCisgICBjaGVja2VkIG91dC4KIAogICogT3RoZXJ3
aXNlLCBpZiB0aGlzIHBhY2thZ2UgaXMgaW4gYSBnaXQgcmVwb3NpdG9yeSB3aXRoIGEgJ2du
dWxpYicKICAgIHN1Ym1vZHVsZSBjb25maWd1cmVkLCB0aGVuIHRoYXQgc3VibW9kdWxlIGlz
IGluaXRpYWxpemVkIGFuZCB1cGRhdGVkCkBAIC05Nyw3ICsxMTcsOCBAQCBHbnVsaWIgc291
cmNlcyBjYW4gYmUgZmV0Y2hlZCBpbiB2YXJpb3VzIHdheXM6CiAKICAqIE90aGVyd2lzZSwg
aWYgdGhlICdnbnVsaWInIGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdCwgR251bGliIHNvdXJj
ZXMKICAgIGFyZSBjbG9uZWQgaW50byB0aGF0IGRpcmVjdG9yeSB1c2luZyBnaXQgZnJvbSBc
JEdOVUxJQl9VUkwsIGRlZmF1bHRpbmcKLSAgIHRvICRkZWZhdWx0X2dudWxpYl91cmwuCisg
ICB0byAkZGVmYXVsdF9nbnVsaWJfdXJsOyBpZiBHTlVMSUJfUkVGRElSIGlzIHNldCBhbmQg
aXMgYSBnaXQgcmVwb3NpdG9yeQorICAgaXRzIGNvbnRlbnRzIG1heSBiZSB1c2VkIHRvIGFj
Y2VsZXJhdGUgdGhlIHByb2Nlc3MuCiAgICBJZiB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJs
ZSBHTlVMSUJfUkVWSVNJT04gaXMgc2V0IGluIGJvb3RzdHJhcC5jb25mLAogICAgdGhlbiB0
aGF0IHJldmlzaW9uIGlzIGNoZWNrZWQgb3V0LgogCkBAIC0xMTgsNiArMTM5LDEwIEBAIEVP
RgogCiAjIFBhcnNlIG9wdGlvbnMuCiAKKyMgV2hldGhlciB0byBwdWxsIGFuZCBnZW5lcmF0
ZS4KK3B1bGw9ZmFsc2UKK2dlbj1mYWxzZQorCiAjIFdoZXRoZXIgdG8gdXNlIGNvcGllcyBp
bnN0ZWFkIG9mIHN5bWxpbmtzLgogY29weT1mYWxzZQogCkBAIC0xMzIsMTAgKzE1NywxNCBA
QCBkbwogICAgIGV4aXQ7OwogICAtLXZlcnNpb24pCiAgICAgc2V0IC1lCi0gICAgZWNobyAi
Ym9vdHN0cmFwICRzY3JpcHR2ZXJzaW9uIgorICAgIGVjaG8gImJvb3RzdHJhcCAkc2NyaXB0
dmVyc2lvbiBsaWIgJHNjcmlwdGxpYnZlcnNpb24iCiAgICAgZWNobyAiJGNvcHlyaWdodCIK
ICAgICBleGl0IDAKICAgICA7OworICAtLXB1bGwpCisgICAgcHVsbD10cnVlOzsKKyAgLS1n
ZW4pCisgICAgZ2VuPXRydWU7OwogICAtLWdudWxpYi1zcmNkaXI9KikKICAgICBHTlVMSUJf
U1JDRElSPSR7b3B0aW9uIy0tZ251bGliLXNyY2Rpcj19OzsKICAgLS1nbnVsaWItcmVmZGly
PSopCkBAIC0xNTcsMTAgKzE4NiwxNSBAQCBkbwogICBlc2FjCiBkb25lCiAKKyMgRGVmYXVs
dCBpcyB0byBkbyBib3RoLgorJHB1bGwgfHwgJGdlbiB8fCBwdWxsPXRydWUgZ2VuPXRydWUK
KwogJHVzZV9naXQgfHwgdGVzdCAtbiAiJEdOVUxJQl9TUkNESVIiIFwKLSAgfHwgZGllICJF
cnJvcjogLS1uby1naXQgcmVxdWlyZXMgXCRHTlVMSUJfU1JDRElSIGVudmlyb25tZW50IHZh
cmlhYmxlIG9yIC0tZ251bGliLXNyY2RpciBvcHRpb24iCisgIHx8IGRpZSAiRXJyb3I6IC0t
bm8tZ2l0IHJlcXVpcmVzIFwkR05VTElCX1NSQ0RJUiBlbnZpcm9ubWVudCB2YXJpYWJsZSIg
XAorICAgICAgICAgIm9yIC0tZ251bGliLXNyY2RpciBvcHRpb24iCiB0ZXN0IC16ICIkR05V
TElCX1NSQ0RJUiIgfHwgdGVzdCAtZCAiJEdOVUxJQl9TUkNESVIiIFwKLSAgfHwgZGllICJF
cnJvcjogXCRHTlVMSUJfU1JDRElSIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIC0tZ251bGli
LXNyY2RpciBvcHRpb24gaXMgc3BlY2lmaWVkLCBidXQgZG9lcyBub3QgZGVub3RlIGEgZGly
ZWN0b3J5IgorICB8fCBkaWUgIkVycm9yOiBcJEdOVUxJQl9TUkNESVIgZW52aXJvbm1lbnQg
dmFyaWFibGUgb3IgLS1nbnVsaWItc3JjZGlyIiBcCisgICAgICAgICAib3B0aW9uIGlzIHNw
ZWNpZmllZCwgYnV0IGRvZXMgbm90IGRlbm90ZSBhIGRpcmVjdG9yeSIKIAogaWYgdGVzdCAt
biAiJGNoZWNrb3V0X29ubHlfZmlsZSIgJiYgdGVzdCAhIC1yICIkY2hlY2tvdXRfb25seV9m
aWxlIjsgdGhlbgogICBkaWUgIkJvb3RzdHJhcHBpbmcgZnJvbSBhIG5vbi1jaGVja2VkLW91
dCBkaXN0cmlidXRpb24gaXMgcmlza3kuIgpAQCAtMTY4LDQ1ICsyMDIsNDMgQEAgZmkKIAog
Y2hlY2tfYnVpbGRfcHJlcmVxdWlzaXRlcyAkdXNlX2dpdAogCi1pZiAhIHRlc3QgLWYgIiRt
ZWRpciIvYm9vdHN0cmFwLWZ1bmNsaWIuc2g7IHRoZW4KLSAgIyBXZSBoYXZlIG9ubHkgY29t
cGxldGVkIHRoZSBmaXJzdCBwaGFzZSBvZiBhbiB1cGdyYWRlIGZyb20gYSBib290c3RyYXAK
LSAgIyB2ZXJzaW9uIDwgMjAyMi0wNy0yNC4gTmVlZCB0byBkbyB0aGUgc2Vjb25kIHBoYXNl
IG5vdy4KLSAgYm9vdHN0cmFwX3N5bmM9dHJ1ZQotZmkKLQogaWYgJGJvb3RzdHJhcF9zeW5j
OyB0aGVuCiAgIHByZXBhcmVfR05VTElCX1NSQ0RJUgotICB1cGdyYWRlX2Jvb3RzdHJhcAor
ICB1cGdyYWRlX2Jvb3RzdHJhcCAiJEAiCiAgICMgU2luY2Ugd2UgaGF2ZSBub3cgdXBncmFk
ZWQgaWYgbmVlZGVkLCBubyBuZWVkIHRvIHRyeSBpdCBhIHNlY29uZCB0aW1lIGJlbG93Lgog
ICBib290c3RyYXBfc3luYz1mYWxzZQogZmkKIAogZWNobyAiJDA6IEJvb3RzdHJhcHBpbmcg
ZnJvbSBjaGVja2VkLW91dCAkcGFja2FnZSBzb3VyY2VzLi4uIgogCi0jIFBhc3MgR05VTElC
X1NSQ0RJUiB0byBhdXRvcHVsbC5zaCBhbmQgYXV0b2dlbi5zaC4KKyMgUGFzcyBHTlVMSUJf
U1JDRElSIGFuZCBHTlVMSUJfUkVGRElSIHRvIGFueSBzdWJzaWRpYXJ5IGNvbW1hbmRzIHRo
YXQgY2FyZS4KIGV4cG9ydCBHTlVMSUJfU1JDRElSCi0KLSMgUGFzcyBHTlVMSUJfUkVGRElS
IHRvIGF1dG9wdWxsLnNoLgogZXhwb3J0IEdOVUxJQl9SRUZESVIKIAotaWYgJHVzZV9naXQg
fHwgdGVzdCAteiAiJFNLSVBfUE8iOyB0aGVuCi0gICIkbWVkaXIiL2F1dG9wdWxsLnNoIFwK
LSAgICAgIGBpZiAkYm9vdHN0cmFwX3N5bmM7IHRoZW4gZWNobyAnIC0tYm9vdHN0cmFwLXN5
bmMnOyBlbHNlIGVjaG8gJyAtLW5vLWJvb3RzdHJhcC1zeW5jJzsgZmlgIFwKK2lmICRwdWxs
ICYmIHsgJHVzZV9naXQgfHwgdGVzdCAteiAiJFNLSVBfUE8iOyB9OyB0aGVuCisgIGF1dG9w
dWxsIFwKKyAgICAgIGBpZiAkYm9vdHN0cmFwX3N5bmM7IHRoZW4KKyAgICAgICAgIGVjaG8g
JyAtLWJvb3RzdHJhcC1zeW5jJworICAgICAgIGVsc2UKKyAgICAgICAgIGVjaG8gJyAtLW5v
LWJvb3RzdHJhcC1zeW5jJworICAgICAgIGZpYCBcCiAgICAgICBgaWYgdGVzdCAteiAiJGNo
ZWNrb3V0X29ubHlfZmlsZSI7IHRoZW4gZWNobyAnIC0tZm9yY2UnOyBmaWAgXAogICAgICAg
YGlmICEgJHVzZV9naXQ7IHRoZW4gZWNobyAnIC0tbm8tZ2l0JzsgZmlgIFwKICAgICAgIGBp
ZiB0ZXN0IC1uICIkU0tJUF9QTyI7IHRoZW4gZWNobyAnIC0tc2tpcC1wbyc7IGZpYCBcCi0g
ICAgfHwgZGllICJhdXRvcHVsbC5zaCBmYWlsZWQuIgorICAgIHx8IGRpZSAiY291bGQgbm90
IGZldGNoIGF1eGlsaWFyeSBmaWxlcyIKIGZpCiAKLSIkbWVkaXIiL2F1dG9nZW4uc2ggXAot
ICAgIGBpZiAkY29weTsgdGhlbiBlY2hvICcgLS1jb3B5JzsgZmlgIFwKLSAgICBgaWYgdGVz
dCAteiAiJGNoZWNrb3V0X29ubHlfZmlsZSI7IHRoZW4gZWNobyAnIC0tZm9yY2UnOyBmaWAg
XAotICB8fCBkaWUgImF1dG9nZW4uc2ggZmFpbGVkLiIKK2lmICRnZW47IHRoZW4KKyAgYXV0
b2dlbiBcCisgICAgICBgaWYgJGNvcHk7IHRoZW4gZWNobyAnIC0tY29weSc7IGZpYCBcCisg
ICAgICBgaWYgdGVzdCAteiAiJGNoZWNrb3V0X29ubHlfZmlsZSI7IHRoZW4gZWNobyAnIC0t
Zm9yY2UnOyBmaWAgXAorICAgIHx8IGRpZSAiY291bGQgbm90IGdlbmVyYXRlIGF1eGlsaWFy
eSBmaWxlcyIKK2ZpCiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAjIExvY2FsIFZh
cmlhYmxlczoKLSMgZXZhbDogKGFkZC1ob29rICdiZWZvcmUtc2F2ZS1ob29rICd0aW1lLXN0
YW1wKQorIyBldmFsOiAoYWRkLWhvb2sgJ2JlZm9yZS1zYXZlLWhvb2sgJ3RpbWUtc3RhbXAg
bmlsIHQpCiAjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKICMgdGltZS1z
dGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCiAjIHRpbWUtc3RhbXAtdGltZS16
b25lOiAiVVRDMCIKZGlmZiAtLWdpdCBhL2Jvb3RzdHJhcC1mdW5jbGliLnNoIGIvYm9vdHN0
cmFwLWZ1bmNsaWIuc2gKaW5kZXggZjY2ZjMzOGMuLjQ3ZTAxNWJkIDEwMDY0NAotLS0gYS9i
b290c3RyYXAtZnVuY2xpYi5zaAorKysgYi9ib290c3RyYXAtZnVuY2xpYi5zaApAQCAtMSw2
ICsxLDggQEAKICMgQSBsaWJyYXJ5IG9mIHNoZWxsIGZ1bmN0aW9ucyBmb3IgYXV0b3B1bGwu
c2gsIGF1dG9nZW4uc2gsIGFuZCBib290c3RyYXAuCiAKLSMgQ29weXJpZ2h0IChDKSAyMDAz
LTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitzY3JpcHRsaWJ2ZXJzaW9u
PTIwMjUtMDItMTYuMTI7ICMgVVRDCisKKyMgQ29weXJpZ2h0IChDKSAyMDAzLTIwMjUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjCiAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl
IHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAjIGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5CkBAIC0yMyw4ICsyNSw2IEBACiAjIGZpbGUgYWxzbyBtYWludGFpbmVk
IGluIHlvdXIgdmVyc2lvbiBjb250cm9sOyBnbnVsaWIgY29tZXMgd2l0aCBhCiAjIHRlbXBs
YXRlIGJ1aWxkLWF1eC9ib290c3RyYXAuY29uZiB0byBnZXQgeW91IHN0YXJ0ZWQuCiAKLXNj
cmlwdHZlcnNpb249MjAyMi0wNy0yNC4xNTsgIyBVVEMKLQogbmw9JwogJwogCkBAIC0zOCw3
ICszOCw3IEBAIFBFUkw9IiR7UEVSTC1wZXJsfSIKIGRlZmF1bHRfZ251bGliX3VybD1odHRw
czovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdC9nbnVsaWIuZ2l0CiAKICMgQ29weXJpZ2h0
IHllYXIsIGZvciB0aGUgLS12ZXJzaW9uIG91dHB1dC4KLWNvcHlyaWdodF95ZWFyPWBlY2hv
ICIkc2NyaXB0dmVyc2lvbiIgfCBzZWQgLWUgJ3MvW14wLTldLiovLydgCitjb3B5cmlnaHRf
eWVhcj1gZWNobyAiJHNjcmlwdGxpYnZlcnNpb24iIHwgc2VkIC1lICdzL1teMC05XS4qLy8n
YAogY29weXJpZ2h0PSJDb3B5cmlnaHQgKEMpICR7Y29weXJpZ2h0X3llYXJ9IEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogTGljZW5zZSBHUEx2Mys6IEdOVSBHUEwgdmVyc2lv
biAzIG9yIGxhdGVyIDxodHRwczovL2dudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWw+LgogVGhp
cyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgYXJlIGZyZWUgdG8gY2hhbmdlIGFuZCByZWRpc3Ry
aWJ1dGUgaXQuCkBAIC0xMTUsNyArMTE1LDggQEAgcG9fZG93bmxvYWRfY29tbWFuZF9mb3Jt
YXQ9XAogIndnZXQgLS1taXJyb3IgLS1sZXZlbD0xIC1uZCAtbnYgLUEucG8gLVAgJyVzJyBc
CiAgaHR0cHM6Ly90cmFuc2xhdGlvbnByb2plY3Qub3JnL2xhdGVzdC8lcy8iCiAKLSMgUHJl
ZmVyIGEgbm9uLWVtcHR5IHRhcm5hbWUgKDR0aCBhcmd1bWVudCBvZiBBQ19JTklUIGlmIGdp
dmVuKSwgZWxzZQorIyBXaGVuIGV4dHJhY3RpbmcgdGhlIHBhY2thZ2UgbmFtZSBmcm9tIGFu
IEFDX0lOSVQgaW52b2NhdGlvbiwKKyMgcHJlZmVyIGEgbm9uLWVtcHR5IHRhcm5hbWUgKDR0
aCBhcmd1bWVudCBvZiBBQ19JTklUIGlmIGdpdmVuKSwgZWxzZQogIyBmYWxsIGJhY2sgdG8g
dGhlIHBhY2thZ2UgbmFtZSAoMXN0IGFyZ3VtZW50IHdpdGggbXVuZ2luZykuCiBleHRyYWN0
X3BhY2thZ2VfbmFtZT0nCiAgIC9eQUNfSU5JVChcWyovewpAQCAtMTI3LDE3ICsxMjgsMjAg
QEAgZXh0cmFjdF9wYWNrYWdlX25hbWU9JwogICAgICAgIHEKICAgICAgfQogICAgICBzL1td
LCldLiovLwotICAgICBzL15HTlUgLy8KLSAgICAgeS9BQkNERUZHSElKS0xNTk9QUVJTVFVW
V1hZWi9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei8KLSAgICAgcy9bXmFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OV9dLy0vZwogICAgICBwCiAgIH0KICcKLXBhY2th
Z2U9JCgke0FVVE9DT05GOi1hdXRvY29uZn0gLS10cmFjZSBBQ19JTklUOlwkNCBjb25maWd1
cmUuYWMgMj4vZGV2L251bGwpCitub3JtYWxpemVfcGFja2FnZV9uYW1lPScKKyAgcy9eR05V
IC8vCisgIHkvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXovCisgIHMvW15hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlf
XS8tL2cKKycKK3BhY2thZ2U9JCgke0FVVE9DT05GOi1hdXRvY29uZn0gLS10cmFjZSAnQUNf
SU5JVDokNCcgY29uZmlndXJlLmFjIDI+L2Rldi9udWxsKQogaWYgdGVzdCAteiAiJHBhY2th
Z2UiOyB0aGVuCiAgIHBhY2thZ2U9JChzZWQgLW4gIiRleHRyYWN0X3BhY2thZ2VfbmFtZSIg
Y29uZmlndXJlLmFjKSBcCiAgICAgICB8fCBkaWUgJ2Nhbm5vdCBmaW5kIHBhY2thZ2UgbmFt
ZSBpbiBjb25maWd1cmUuYWMnCiBmaQorcGFja2FnZT0kKGVjaG8gIiRwYWNrYWdlIiB8IHNl
ZCAiJG5vcm1hbGl6ZV9wYWNrYWdlX25hbWUiKQogZ251bGliX25hbWU9bGliJHBhY2thZ2UK
IAogYnVpbGRfYXV4PWJ1aWxkLWF1eApAQCAtMzAzLDcgKzMwNyw3IEBAIGNoZWNrX3ZlcnNp
b25zKCkgewogICAgICMgSGFuZGxlIHRoZSBzdGlsbC1leHBlcmltZW50YWwgQXV0b21ha2Ut
TkcgcHJvZ3JhbXMgc3BlY2lhbGx5LgogICAgICMgVGhleSByZW1haW4gbmFtZWQgYXMgdGhl
IG1haW5zdHJlYW0gQXV0b21ha2UgcHJvZ3JhbXMgKCJhdXRvbWFrZSIsCiAgICAgIyBhbmQg
ImFjbG9jYWwiKSB0byBhdm9pZCBncmF0dWl0b3VzIGluY29tcGF0aWJpbGl0aWVzIHdpdGgK
LSAgICAjIHByZS1leGlzdGluZyB1c2FnZXMgKGJ5LCBzYXksIGF1dG9yZWNvbmYsIG9yIGN1
c3RvbSBhdXRvZ2VuLnNoCisgICAgIyBwcmVleGlzdGluZyB1c2FnZXMgKGJ5LCBzYXksIGF1
dG9yZWNvbmYsIG9yIGN1c3RvbSBhdXRvZ2VuLnNoCiAgICAgIyBzY3JpcHRzKSwgYnV0IGNv
cnJlY3RseSBpZGVudGlmeSB0aGVtc2VsdmVzIChhcyBiZWluZyBwYXJ0IG9mCiAgICAgIyAi
R05VIGF1dG9tYWtlLW5nIikgd2hlbiBhc2tlZCB0aGVpciB2ZXJzaW9uLgogICAgIGNhc2Ug
JGFwcCBpbgpAQCAtNDQxLDEwICs0NDUsOSBAQCBmaW5kX3Rvb2wgKCkKICMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIFByZXBhcmluZyBHTlVMSUJfU1JDRElSIGZvciB1c2UuIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogIyBUaGlzIGlzIHBhcnQgb2YgYXV0b3B1bGwuc2gsIGJ1dCBib290
c3RyYXAgbmVlZHMgaXQgdG9vLCBmb3Igc2VsZi11cGdyYWRpbmcuCiAKKyMgY2xlYW51cF9n
bnVsaWIgZmFpbHMsIHJlbW92aW5nIHRoZSBkaXJlY3RvcnkgJGdudWxpYl9wYXRoIGZpcnN0
LgogY2xlYW51cF9nbnVsaWIoKSB7CiAgIHN0YXR1cz0kPwotICAjIFhYWCBJdCdzIGEgYmFk
IGlkZWEgdG8gZXJhc2UgdGhlIHN1Ym1vZHVsZSBkaXJlY3RvcnkgaWYgaXQgY29udGFpbnMg
bG9jYWwKLSAgIyAgICAgbW9kaWZpY2F0aW9ucy4KICAgcm0gLWZyICIkZ251bGliX3BhdGgi
CiAgIGV4aXQgJHN0YXR1cwogfQpAQCAtNDYwLDkyICs0NjMsMTU3IEBAIHByZXBhcmVfR05V
TElCX1NSQ0RJUiAoKQogICAgICMgV2UgYWxyZWFkeSBjaGVja2VkIHRoYXQgJEdOVUxJQl9T
UkNESVIgcmVmZXJlbmNlcyBhIGRpcmVjdG9yeS4KICAgICAjIFZlcmlmeSB0aGF0IGl0IGNv
bnRhaW5zIGEgZ251bGliIGNoZWNrb3V0LgogICAgIHRlc3QgLWYgIiRHTlVMSUJfU1JDRElS
L2dudWxpYi10b29sIiBcCi0gICAgICB8fCBkaWUgIkVycm9yOiAtLWdudWxpYi1zcmNkaXIg
b3IgXCRHTlVMSUJfU1JDRElSIGlzIHNwZWNpZmllZCwgYnV0IGRvZXMgbm90IGNvbnRhaW4g
Z251bGliLXRvb2wiCi0gIGVsaWYgJHVzZV9naXQ7IHRoZW4KKyAgICAgIHx8IGRpZSAiRXJy
b3I6IC0tZ251bGliLXNyY2RpciBvciBcJEdOVUxJQl9TUkNESVIgaXMgc3BlY2lmaWVkLCIg
XAorICAgICAgICAgICAgICJidXQgZG9lcyBub3QgY29udGFpbiBnbnVsaWItdG9vbCIKKyAg
ICBpZiB0ZXN0IC1uICIkR05VTElCX1JFVklTSU9OIiAmJiAkdXNlX2dpdDsgdGhlbgorICAg
ICAgIyBUaGUgJ2dpdCBjaGVja291dCAiJEdOVUxJQl9SRVZJU0lPTiInIGNvbW1hbmQgc3Vj
Y2VlZHMgaWYgdGhlCisgICAgICAjIEdOVUxJQl9SRVZJU0lPTiBpcyBhIGNvbW1pdCBoYXNo
IHRoYXQgZXhpc3RzIGxvY2FsbHksIG9yIGlmIGl0IGlzCisgICAgICAjIGJyYW5jaCBuYW1l
IHRoYXQgY2FuIGJlIGZldGNoZWQgZnJvbSBvcmlnaW4uIEl0IGZhaWxzLCBob3dldmVyLAor
ICAgICAgIyBpZiB0aGUgR05VTElCX1JFVklTSU9OIGlzIGEgY29tbWl0IGhhc2ggdGhhdCBv
bmx5IGV4aXN0cyBpbgorICAgICAgIyBvcmlnaW4uIEluIHRoaXMgY2FzZSwgd2UgbmVlZCBh
ICdnaXQgZmV0Y2gnIGFuZCB0aGVuIHJldHJ5CisgICAgICAjICdnaXQgY2hlY2tvdXQgIiRH
TlVMSUJfUkVWSVNJT04iJy4KKyAgICAgIGdpdCAtQyAiJEdOVUxJQl9TUkNESVIiIGNoZWNr
b3V0ICIkR05VTElCX1JFVklTSU9OIiAyPi9kZXYvbnVsbCBcCisgICAgICB8fCB7IGdpdCAt
QyAiJEdOVUxJQl9TUkNESVIiIGZldGNoIG9yaWdpbiBcCisgICAgICAgICAgICYmIGdpdCAt
QyAiJEdOVUxJQl9TUkNESVIiIGNoZWNrb3V0ICIkR05VTElCX1JFVklTSU9OIjsgfSBcCisg
ICAgICB8fCBleGl0ICQ/CisgICAgZmkKKyAgZWxzZQorICAgIGlmICEgJHVzZV9naXQ7IHRo
ZW4KKyAgICAgIGRpZSAiRXJyb3I6IC0tbm8tZ2l0IGlzIHNwZWNpZmllZCwiIFwKKyAgICAg
ICAgICAiYnV0IG5laXRoZXIgLS1nbnVsaWItc3JjZGlyIG5vciBcJEdOVUxJQl9TUkNESVIg
aXMgc3BlY2lmaWVkIgorICAgIGZpCisgICAgaWYgZ2l0IHN1Ym1vZHVsZSAtaCB8IGdyZXAg
LS0gLS1yZWZlcmVuY2UgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgIDoKKyAgICBlbHNlCisg
ICAgICBkaWUgImdpdCB2ZXJzaW9uIGlzIHRvbyBvbGQsIGdpdCA+PSAxLjYuNCBpcyByZXF1
aXJlZCIKKyAgICBmaQogICAgIGdudWxpYl9wYXRoPSQoZ2l0X21vZHVsZXNfY29uZmlnIHN1
Ym1vZHVsZS5nbnVsaWIucGF0aCkKLSAgICB0ZXN0IC16ICIkZ251bGliX3BhdGgiICYmIGdu
dWxpYl9wYXRoPWdudWxpYgotCi0gICAgIyBHZXQgZ251bGliIGZpbGVzLiAgUG9wdWxhdGUg
JGdudWxpYl9wYXRoLCBwb3NzaWJseSB1cGRhdGluZyBhCi0gICAgIyBzdWJtb2R1bGUsIGZv
ciB1c2UgaW4gdGhlIHJlc3Qgb2YgdGhlIHNjcmlwdC4KLQotICAgIGlmIHRlc3QgLW4gIiRH
TlVMSUJfUkVGRElSIiAmJiB0ZXN0IC1kICIkR05VTElCX1JFRkRJUiIvLmdpdCBcCi0gICAg
ICAgJiYgZ2l0X21vZHVsZXNfY29uZmlnIHN1Ym1vZHVsZS5nbnVsaWIudXJsID4vZGV2L251
bGw7IHRoZW4KLSAgICAgICMgVXNlIEdOVUxJQl9SRUZESVIgYXMgYSByZWZlcmVuY2UuCi0g
ICAgICBlY2hvICIkMDogZ2V0dGluZyBnbnVsaWIgZmlsZXMuLi4iCi0gICAgICBpZiBnaXQg
c3VibW9kdWxlIC1ofGdyZXAgLS0gLS1yZWZlcmVuY2UgPiAvZGV2L251bGw7IHRoZW4KLSAg
ICAgICAgIyBQcmVmZXIgdGhlIG9uZS1saW5lciBhdmFpbGFibGUgaW4gZ2l0IDEuNi40IG9y
IG5ld2VyLgotICAgICAgICBnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWZlcmVu
Y2UgIiRHTlVMSUJfUkVGRElSIiBcCi0gICAgICAgICAgIiRnbnVsaWJfcGF0aCIgfHwgZXhp
dCAkPworICAgIGlmIHRlc3QgLW4gIiRnbnVsaWJfcGF0aCI7IHRoZW4KKyAgICAgICMgQSBz
dWJtb2R1bGUgJ2dudWxpYicgaXMgY29uZmlndXJlZC4KKyAgICAgICMgR2V0IGdudWxpYiBm
aWxlcy4gIFBvcHVsYXRlICRnbnVsaWJfcGF0aCwgdXBkYXRpbmcgdGhlIHN1Ym1vZHVsZS4K
KyAgICAgIGlmIHRlc3QgLW4gIiRHTlVMSUJfUkVGRElSIiAmJiB0ZXN0IC1kICIkR05VTElC
X1JFRkRJUiIvLmdpdDsgdGhlbgorICAgICAgICAjIFVzZSBHTlVMSUJfUkVGRElSIGFzIGEg
cmVmZXJlbmNlLgorICAgICAgICBlY2hvICIkMDogZ2V0dGluZyBnbnVsaWIgZmlsZXMuLi4i
CisgICAgICAgIGdpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAtLXJlZmVyZW5jZSAiJEdO
VUxJQl9SRUZESVIiICIkZ251bGliX3BhdGgiXAorICAgICAgICAgIHx8IGV4aXQgJD8KICAg
ICAgIGVsc2UKLSAgICAgICAgIyBUaGlzIGZhbGxiYWNrIGFsbG93cyBhdCBsZWFzdCBnaXQg
MS41LjUuCi0gICAgICAgIGlmIHRlc3QgLWYgIiRnbnVsaWJfcGF0aCIvZ251bGliLXRvb2w7
IHRoZW4KLSAgICAgICAgICAjIFNpbmNlIGZpbGUgYWxyZWFkeSBleGlzdHMsIGFzc3VtZSBz
dWJtb2R1bGUgaW5pdCBhbHJlYWR5IGNvbXBsZXRlLgorICAgICAgICAjIEdOVUxJQl9SRUZE
SVIgaXMgbm90IHNldCBvciBub3QgdXNhYmxlLiBJZ25vcmUgaXQuCisgICAgICAgIGlmIGdp
dF9tb2R1bGVzX2NvbmZpZyBzdWJtb2R1bGUuZ251bGliLnVybCA+L2Rldi9udWxsOyB0aGVu
CisgICAgICAgICAgZWNobyAiJDA6IGdldHRpbmcgZ251bGliIGZpbGVzLi4uIgorICAgICAg
ICAgIGdpdCBzdWJtb2R1bGUgaW5pdCAtLSAiJGdudWxpYl9wYXRoIiB8fCBleGl0ICQ/CiAg
ICAgICAgICAgZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS0gIiRnbnVsaWJfcGF0aCIgfHwgZXhp
dCAkPwogICAgICAgICBlbHNlCi0gICAgICAgICAgIyBPbGRlciBnaXQgY2FuJ3QgY2xvbmUg
aW50byBhbiBlbXB0eSBkaXJlY3RvcnkuCi0gICAgICAgICAgcm1kaXIgIiRnbnVsaWJfcGF0
aCIgMj4vZGV2L251bGwKLSAgICAgICAgICBnaXQgY2xvbmUgLS1yZWZlcmVuY2UgIiRHTlVM
SUJfUkVGRElSIiBcCi0gICAgICAgICAgICAiJChnaXRfbW9kdWxlc19jb25maWcgc3VibW9k
dWxlLmdudWxpYi51cmwpIiAiJGdudWxpYl9wYXRoIiBcCi0gICAgICAgICAgICAmJiBnaXQg
c3VibW9kdWxlIGluaXQgLS0gIiRnbnVsaWJfcGF0aCIgXAotICAgICAgICAgICAgJiYgZ2l0
IHN1Ym1vZHVsZSB1cGRhdGUgLS0gIiRnbnVsaWJfcGF0aCIgXAotICAgICAgICAgICAgfHwg
ZXhpdCAkPworICAgICAgICAgIGRpZSAiRXJyb3I6IHN1Ym1vZHVsZSAnZ251bGliJyBoYXMg
bm8gY29uZmlndXJlZCB1cmwiCiAgICAgICAgIGZpCiAgICAgICBmaQogICAgIGVsc2UKLSAg
ICAgICMgR05VTElCX1JFRkRJUiBpcyBub3Qgc2V0IG9yIG5vdCB1c2FibGUuIElnbm9yZSBp
dC4KLSAgICAgIGlmIGdpdF9tb2R1bGVzX2NvbmZpZyBzdWJtb2R1bGUuZ251bGliLnVybCA+
L2Rldi9udWxsOyB0aGVuCi0gICAgICAgIGVjaG8gIiQwOiBnZXR0aW5nIGdudWxpYiBmaWxl
cy4uLiIKLSAgICAgICAgZ2l0IHN1Ym1vZHVsZSBpbml0IC0tICIkZ251bGliX3BhdGgiIHx8
IGV4aXQgJD8KLSAgICAgICAgZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS0gIiRnbnVsaWJfcGF0
aCIgfHwgZXhpdCAkPwotCi0gICAgICBlbGlmIFsgISAtZCAiJGdudWxpYl9wYXRoIiBdOyB0
aGVuCisgICAgICBnbnVsaWJfcGF0aD0nZ251bGliJworICAgICAgaWYgdGVzdCAhIC1kICIk
Z251bGliX3BhdGgiOyB0aGVuCisgICAgICAgICMgVGhlIHN1YmRpcmVjdG9yeSAnZ251bGli
JyBkb2VzIG5vdCB5ZXQgZXhpc3QuIENsb25lIGludG8gaXQuCiAgICAgICAgIGVjaG8gIiQw
OiBnZXR0aW5nIGdudWxpYiBmaWxlcy4uLiIKLQotICAgICAgICB0cmFwIGNsZWFudXBfZ251
bGliIDEgMiAxMyAxNQotCi0gICAgICAgIHNoYWxsb3c9Ci0gICAgICAgIGlmIHRlc3QgLXog
IiRHTlVMSUJfUkVWSVNJT04iOyB0aGVuCi0gICAgICAgICAgaWYgZ2l0IGNsb25lIC1oIDI+
JjEgfCBncmVwIC0tIC0tZGVwdGggPiAvZGV2L251bGw7IHRoZW4KLSAgICAgICAgICAgIHNo
YWxsb3c9Jy0tZGVwdGggMicKLSAgICAgICAgICBmaQotICAgICAgICAgIGdpdCBjbG9uZSAk
c2hhbGxvdyAke0dOVUxJQl9VUkw6LSRkZWZhdWx0X2dudWxpYl91cmx9ICIkZ251bGliX3Bh
dGgiIFwKLSAgICAgICAgICAgIHx8IGNsZWFudXBfZ251bGliCisgICAgICAgIHRyYXAgY2xl
YW51cF9nbnVsaWIgSFVQIElOVCBQSVBFIFRFUk0KKyAgICAgICAgZ251bGliX3VybD0ke0dO
VUxJQl9VUkw6LSRkZWZhdWx0X2dudWxpYl91cmx9CisgICAgICAgIGlmIHRlc3QgLW4gIiRH
TlVMSUJfUkVGRElSIiAmJiB0ZXN0IC1kICIkR05VTElCX1JFRkRJUiIvLmdpdDsgdGhlbgor
ICAgICAgICAgICMgVXNlIEdOVUxJQl9SRUZESVIgYXMgYSByZWZlcmVuY2UuCisgICAgICAg
ICAgZ2l0IGNsb25lICIkR05VTElCX1JFRkRJUiIgIiRnbnVsaWJfcGF0aCIgXAorICAgICAg
ICAgICYmIGdpdCAtQyAiJGdudWxpYl9wYXRoIiByZW1vdGUgc2V0LXVybCBvcmlnaW4gIiRn
bnVsaWJfdXJsIiBcCisgICAgICAgICAgJiYgaWYgdGVzdCAteiAiJEdOVUxJQl9SRVZJU0lP
TiI7IHRoZW4KKyAgICAgICAgICAgICAgIGdpdCAtQyAiJGdudWxpYl9wYXRoIiBwdWxsIG9y
aWdpbiBcCisgICAgICAgICAgICAgICAmJiB7CisgICAgICAgICAgICAgICAgICMgV2Ugd2Fu
dCB0aGUgZGVmYXVsdCBicmFuY2ggb2YgIiRnbnVsaWJfdXJsIiAoc2luY2UgdGhhdCdzCisg
ICAgICAgICAgICAgICAgICMgdGhlIGJlaGF2aW91ciBpZiBHTlVMSUJfUkVGRElSIGlzIG5v
dCBzcGVjaWZpZWQpLCBub3QgdGhlCisgICAgICAgICAgICAgICAgICMgY3VycmVudCBicmFu
Y2ggb2YgIiRHTlVMSUJfUkVGRElSIi4KKyAgICAgICAgICAgICAgICAgZGVmYXVsdF9icmFu
Y2g9YExDX0FMTD1DIGdpdCAtQyAiJGdudWxpYl9wYXRoIiBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlIHNob3cgb3JpZ2luIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1uIC1lICdzL14gKkhFQUQg
YnJhbmNoOiAvL3AnYAorICAgICAgICAgICAgICAgICB0ZXN0IC1uICIkZGVmYXVsdF9icmFu
Y2giIHx8IGRlZmF1bHRfYnJhbmNoPSdtYXN0ZXInCisgICAgICAgICAgICAgICAgIGdpdCAt
QyAiJGdudWxpYl9wYXRoIiBjaGVja291dCAiJGRlZmF1bHRfYnJhbmNoIgorICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICMgVGhlICdnaXQg
Y2hlY2tvdXQgIiRHTlVMSUJfUkVWSVNJT04iJyBjb21tYW5kIHN1Y2NlZWRzIGlmIHRoZQor
ICAgICAgICAgICAgICAgIyBHTlVMSUJfUkVWSVNJT04gaXMgYSBjb21taXQgaGFzaCB0aGF0
IGV4aXN0cyBsb2NhbGx5LCBvciBpZiBpdAorICAgICAgICAgICAgICAgIyBpcyBhIGJyYW5j
aCBuYW1lIHRoYXQgY2FuIGJlIGZldGNoZWQgZnJvbSBvcmlnaW4uIEl0IGZhaWxzLAorICAg
ICAgICAgICAgICAgIyBob3dldmVyLCBpZiB0aGUgR05VTElCX1JFVklTSU9OIGlzIGEgY29t
bWl0IGhhc2ggdGhhdCBvbmx5CisgICAgICAgICAgICAgICAjIGV4aXN0cyBpbiBvcmlnaW4u
IEluIHRoaXMgY2FzZSwgd2UgbmVlZCBhICdnaXQgZmV0Y2gnIGFuZCB0aGVuCisgICAgICAg
ICAgICAgICAjIHJldHJ5ICdnaXQgY2hlY2tvdXQgIiRHTlVMSUJfUkVWSVNJT04iJy4KKyAg
ICAgICAgICAgICAgIGdpdCAtQyAiJGdudWxpYl9wYXRoIiBjaGVja291dCAiJEdOVUxJQl9S
RVZJU0lPTiIgMj4vZGV2L251bGwgXAorICAgICAgICAgICAgICAgfHwgeyBnaXQgLUMgIiRn
bnVsaWJfcGF0aCIgZmV0Y2ggb3JpZ2luIFwKKyAgICAgICAgICAgICAgICAgICAgJiYgZ2l0
IC1DICIkZ251bGliX3BhdGgiIGNoZWNrb3V0ICIkR05VTElCX1JFVklTSU9OIjsgfQorICAg
ICAgICAgICAgIGZpIFwKKyAgICAgICAgICB8fCBjbGVhbnVwX2dudWxpYgogICAgICAgICBl
bHNlCi0gICAgICAgICAgaWYgZ2l0IGZldGNoIC1oIDI+JjEgfCBncmVwIC0tIC0tZGVwdGgg
PiAvZGV2L251bGw7IHRoZW4KLSAgICAgICAgICAgIHNoYWxsb3c9Jy0tZGVwdGggMicKKyAg
ICAgICAgICAjIEdOVUxJQl9SRUZESVIgaXMgbm90IHNldCBvciBub3QgdXNhYmxlLiBJZ25v
cmUgaXQuCisgICAgICAgICAgc2hhbGxvdz0nLS1kZXB0aCAyJworICAgICAgICAgIGlmIHRl
c3QgLXogIiRHTlVMSUJfUkVWSVNJT04iOyB0aGVuCisgICAgICAgICAgICBnaXQgY2xvbmUg
JHNoYWxsb3cgIiRnbnVsaWJfdXJsIiAiJGdudWxpYl9wYXRoIiBcCisgICAgICAgICAgICAg
IHx8IGNsZWFudXBfZ251bGliCisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgIyBPbmx5
IHdhbnQgYSBzaGFsbG93IGNoZWNrb3V0IG9mICRHTlVMSUJfUkVWSVNJT04sIGJ1dCBnaXQg
ZG9lcyBub3QKKyAgICAgICAgICAgICMgc3VwcG9ydCBjbG9uaW5nIGJ5IGNvbW1pdCBoYXNo
LiBTbyBhdHRlbXB0IGEgc2hhbGxvdyBmZXRjaCBieQorICAgICAgICAgICAgIyBjb21taXQg
aGFzaCB0byBtaW5pbWl6ZSB0aGUgYW1vdW50IG9mIGRhdGEgZG93bmxvYWRlZCBhbmQgY2hh
bmdlcworICAgICAgICAgICAgIyBuZWVkZWQgdG8gYmUgcHJvY2Vzc2VkLCB3aGljaCBjYW4g
ZHJhc3RpY2FsbHkgcmVkdWNlIGRvd25sb2FkIGFuZAorICAgICAgICAgICAgIyBwcm9jZXNz
aW5nIHRpbWUgZm9yIGNoZWNrb3V0LiBJZiB0aGUgZmV0Y2ggYnkgY29tbWl0IGZhaWxzLCBh
CisgICAgICAgICAgICAjIHNoYWxsb3cgZmV0Y2ggY2Fubm90IGJlIHBlcmZvcm1lZCBiZWNh
dXNlIHdlIGRvIG5vdCBrbm93IHdoYXQgdGhlCisgICAgICAgICAgICAjIGRlcHRoIG9mIHRo
ZSBjb21taXQgaXMgd2l0aG91dCBmZXRjaGluZyBhbGwgY29tbWl0cy4gU28gZmFsbCBiYWNr
CisgICAgICAgICAgICAjIHRvIGZldGNoaW5nIGFsbCBjb21taXRzLgorICAgICAgICAgICAg
IyAkR05VTElCX1JFVklTSU9OIGNhbiBiZSBhIGNvbW1pdCBpZCwgYSB0YWcgbmFtZSwgb3Ig
YSBicmFuY2ggbmFtZS4KKyAgICAgICAgICAgIG1rZGlyIC1wICIkZ251bGliX3BhdGgiCisg
ICAgICAgICAgICAjIFVzZSBhIC1jIG9wdGlvbiB0byBzaWxlbmNlIGFuIGFubm95aW5nIG1l
c3NhZ2UKKyAgICAgICAgICAgICMgImhpbnQ6IFVzaW5nICdtYXN0ZXInIGFzIHRoZSBuYW1l
IGZvciB0aGUgaW5pdGlhbCBicmFuY2guIgorICAgICAgICAgICAgIyAoY2YuIDxodHRwczov
L3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82NTUyNDUxMi8+KS4KKyAgICAgICAgICAg
IGdpdCAtQyAiJGdudWxpYl9wYXRoIiAtYyBpbml0LmRlZmF1bHRCcmFuY2g9bWFzdGVyIGlu
aXQKKyAgICAgICAgICAgIGdpdCAtQyAiJGdudWxpYl9wYXRoIiByZW1vdGUgYWRkIG9yaWdp
biAiJGdudWxpYl91cmwiCisgICAgICAgICAgICBpZiBnaXQgLUMgIiRnbnVsaWJfcGF0aCIg
ZmV0Y2ggJHNoYWxsb3cgb3JpZ2luICIkR05VTElCX1JFVklTSU9OIgorICAgICAgICAgICAg
dGhlbgorICAgICAgICAgICAgICAjICJnaXQgZmV0Y2giIG9mIHRoZSBzcGVjaWZpYyBjb21t
aXQgc3VjY2VlZGVkLgorICAgICAgICAgICAgICBnaXQgLUMgIiRnbnVsaWJfcGF0aCIgcmVz
ZXQgLS1oYXJkIEZFVENIX0hFQUQgXAorICAgICAgICAgICAgICAgIHx8IGNsZWFudXBfZ251
bGliCisgICAgICAgICAgICAgICMgImdpdCBmZXRjaCIgZG9lcyBub3QgZmV0Y2ggdGFncyAo
YXQgbGVhc3QgaW4gZ2l0IHZlcnNpb24gMi40MykuCisgICAgICAgICAgICAgICMgSWYgJEdO
VUxJQl9SRVZJU0lPTiBpcyBhIHRhZyAobm90IGEgY29tbWl0IGlkIG9yIGJyYW5jaCBuYW1l
KSwKKyAgICAgICAgICAgICAgIyBhZGQgdGhlIHRhZyBleHBsaWNpdGx5LgorICAgICAgICAg
ICAgICByZXZpc2lvbj1gZ2l0IC1DICIkZ251bGliX3BhdGgiIGxvZyAtMSAtLXByZXR0eT1m
b3JtYXQ6JUhgCisgICAgICAgICAgICAgIGJyYW5jaD1gTENfQUxMPUMgZ2l0IC1DICIkZ251
bGliX3BhdGgiIHJlbW90ZSBzaG93IG9yaWdpbiBcCisgICAgICAgICAgICAgICAgICAgICAg
fCBzZWQgLW4gLWUgJ3MvXiAgICBcKFteIF0qXCkgKiB0cmFja2VkJC9cMS9wJ2AKKyAgICAg
ICAgICAgICAgdGVzdCAiJHJldmlzaW9uIiA9ICIkR05VTElCX1JFVklTSU9OIiBcCisgICAg
ICAgICAgICAgICAgfHwgdGVzdCAiJGJyYW5jaCIgPSAiJEdOVUxJQl9SRVZJU0lPTiIgXAor
ICAgICAgICAgICAgICAgIHx8IGdpdCAtQyAiJGdudWxpYl9wYXRoIiB0YWcgIiRHTlVMSUJf
UkVWSVNJT04iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICMgRmV0Y2ggdGhl
IGVudGlyZSByZXBvc2l0b3J5LgorICAgICAgICAgICAgICBnaXQgLUMgIiRnbnVsaWJfcGF0
aCIgZmV0Y2ggb3JpZ2luIFwKKyAgICAgICAgICAgICAgICB8fCBjbGVhbnVwX2dudWxpYgor
ICAgICAgICAgICAgICBnaXQgLUMgIiRnbnVsaWJfcGF0aCIgY2hlY2tvdXQgIiRHTlVMSUJf
UkVWSVNJT04iIFwKKyAgICAgICAgICAgICAgICB8fCBjbGVhbnVwX2dudWxpYgorICAgICAg
ICAgICAgZmkKKyAgICAgICAgICBmaQorICAgICAgICBmaQorICAgICAgICB0cmFwIC0gSFVQ
IElOVCBQSVBFIFRFUk0KKyAgICAgIGVsc2UKKyAgICAgICAgIyBUaGUgc3ViZGlyZWN0b3J5
ICdnbnVsaWInIGFscmVhZHkgZXhpc3RzLgorICAgICAgICBpZiB0ZXN0IC1uICIkR05VTElC
X1JFVklTSU9OIjsgdGhlbgorICAgICAgICAgIGlmIHRlc3QgLWQgIiRnbnVsaWJfcGF0aC8u
Z2l0IjsgdGhlbgorICAgICAgICAgICAgIyBUaGUgJ2dpdCBjaGVja291dCAiJEdOVUxJQl9S
RVZJU0lPTiInIGNvbW1hbmQgc3VjY2VlZHMgaWYgdGhlCisgICAgICAgICAgICAjIEdOVUxJ
Ql9SRVZJU0lPTiBpcyBhIGNvbW1pdCBoYXNoIHRoYXQgZXhpc3RzIGxvY2FsbHksIG9yIGlm
IGl0CisgICAgICAgICAgICAjIGlzIGEgYnJhbmNoIG5hbWUgdGhhdCBjYW4gYmUgZmV0Y2hl
ZCBmcm9tIG9yaWdpbi4gSXQgZmFpbHMsCisgICAgICAgICAgICAjIGhvd2V2ZXIsIGlmIHRo
ZSBHTlVMSUJfUkVWSVNJT04gaXMgYSBjb21taXQgaGFzaCB0aGF0IG9ubHkKKyAgICAgICAg
ICAgICMgZXhpc3RzIGluIG9yaWdpbi4gSW4gdGhpcyBjYXNlLCB3ZSBuZWVkIGEgJ2dpdCBm
ZXRjaCcgYW5kIHRoZW4KKyAgICAgICAgICAgICMgcmV0cnkgJ2dpdCBjaGVja291dCAiJEdO
VUxJQl9SRVZJU0lPTiInLgorICAgICAgICAgICAgZ2l0IC1DICIkZ251bGliX3BhdGgiIGNo
ZWNrb3V0ICIkR05VTElCX1JFVklTSU9OIiAyPi9kZXYvbnVsbCBcCisgICAgICAgICAgICB8
fCB7IGdpdCAtQyAiJGdudWxpYl9wYXRoIiBmZXRjaCBvcmlnaW4gXAorICAgICAgICAgICAg
ICAgICAmJiBnaXQgLUMgIiRnbnVsaWJfcGF0aCIgY2hlY2tvdXQgIiRHTlVMSUJfUkVWSVNJ
T04iOyB9IFwKKyAgICAgICAgICAgIHx8IGV4aXQgJD8KKyAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICBkaWUgIkVycm9yOiBHTlVMSUJfUkVWSVNJT04gaXMgc3BlY2lmaWVkIGluIGJv
b3RzdHJhcC5jb25mLCIgXAorICAgICAgICAgICAgICAgICJidXQgJyRnbnVsaWJfcGF0aCcg
Y29udGFpbnMgbm8gZ2l0IGhpc3RvcnkiCiAgICAgICAgICAgZmkKLSAgICAgICAgICBta2Rp
ciAtcCAiJGdudWxpYl9wYXRoIgotICAgICAgICAgICMgT25seSB3YW50IGEgc2hhbGxvdyBj
aGVja291dCBvZiAkR05VTElCX1JFVklTSU9OLCBidXQgZ2l0IGRvZXMgbm90Ci0gICAgICAg
ICAgIyBzdXBwb3J0IGNsb25pbmcgYnkgY29tbWl0IGhhc2guIFNvIGF0dGVtcHQgYSBzaGFs
bG93IGZldGNoIGJ5IGNvbW1pdAotICAgICAgICAgICMgaGFzaCB0byBtaW5pbWl6ZSB0aGUg
YW1vdW50IG9mIGRhdGEgZG93bmxvYWRlZCBhbmQgY2hhbmdlcyBuZWVkZWQgdG8KLSAgICAg
ICAgICAjIGJlIHByb2Nlc3NlZCwgd2hpY2ggY2FuIGRyYXN0aWNhbGx5IHJlZHVjZSBkb3du
bG9hZCBhbmQgcHJvY2Vzc2luZwotICAgICAgICAgICMgdGltZSBmb3IgY2hlY2tvdXQuIElm
IHRoZSBmZXRjaCBieSBjb21taXQgZmFpbHMsIGEgc2hhbGxvdyBmZXRjaCBjYW4KLSAgICAg
ICAgICAjIG5vdCBiZSBwZXJmb3JtZWQgYmVjYXVzZSB3ZSBkbyBub3Qga25vdyB3aGF0IHRo
ZSBkZXB0aCBvZiB0aGUgY29tbWl0Ci0gICAgICAgICAgIyBpcyB3aXRob3V0IGZldGNoaW5n
IGFsbCBjb21taXRzLiBTbyBmYWxsYmFjayB0byBmZXRjaGluZyBhbGwgY29tbWl0cy4KLSAg
ICAgICAgICBnaXQgLUMgIiRnbnVsaWJfcGF0aCIgaW5pdAotICAgICAgICAgIGdpdCAtQyAi
JGdudWxpYl9wYXRoIiByZW1vdGUgYWRkIG9yaWdpbiBcCi0gICAgICAgICAgICAgICR7R05V
TElCX1VSTDotJGRlZmF1bHRfZ251bGliX3VybH0KLSAgICAgICAgICBnaXQgLUMgIiRnbnVs
aWJfcGF0aCIgZmV0Y2ggJHNoYWxsb3cgb3JpZ2luICIkR05VTElCX1JFVklTSU9OIiBcCi0g
ICAgICAgICAgICB8fCBnaXQgLUMgIiRnbnVsaWJfcGF0aCIgZmV0Y2ggb3JpZ2luIFwKLSAg
ICAgICAgICAgIHx8IGNsZWFudXBfZ251bGliCi0gICAgICAgICAgZ2l0IC1DICIkZ251bGli
X3BhdGgiIHJlc2V0IC0taGFyZCBGRVRDSF9IRUFECiAgICAgICAgIGZpCi0KLSAgICAgICAg
dHJhcCAtIDEgMiAxMyAxNQogICAgICAgZmkKICAgICBmaQotICAgIEdOVUxJQl9TUkNESVI9
JGdudWxpYl9wYXRoCi0gICAgIyBWZXJpZnkgdGhhdCB0aGUgc3VibW9kdWxlIGNvbnRhaW5z
IGEgZ251bGliIGNoZWNrb3V0LgorICAgICMgVmVyaWZ5IHRoYXQgJGdudWxpYl9wYXRoIGNv
bnRhaW5zIGEgZ251bGliIGNoZWNrb3V0LgogICAgIHRlc3QgLWYgIiRnbnVsaWJfcGF0aC9n
bnVsaWItdG9vbCIgXAotICAgICAgfHwgZGllICJFcnJvcjogJGdudWxpYl9wYXRoIGlzIHN1
cHBvc2VkIHRvIGNvbnRhaW4gYSBnbnVsaWIgY2hlY2tvdXQsIGJ1dCBkb2VzIG5vdCBjb250
YWluIGdudWxpYi10b29sIgotICBmaQotCi0gICMgWFhYIFNob3VsZCB0aGlzIGJlIGRvbmUg
aWYgJHVzZV9naXQgaXMgZmFsc2U/Ci0gIGlmIHRlc3QgLWQgIiRHTlVMSUJfU1JDRElSIi8u
Z2l0ICYmIHRlc3QgLW4gIiRHTlVMSUJfUkVWSVNJT04iIFwKLSAgICAgJiYgISBnaXRfbW9k
dWxlc19jb25maWcgc3VibW9kdWxlLmdudWxpYi51cmwgPi9kZXYvbnVsbDsgdGhlbgotICAg
IChjZCAiJEdOVUxJQl9TUkNESVIiICYmIGdpdCBjaGVja291dCAiJEdOVUxJQl9SRVZJU0lP
TiIpIHx8IGNsZWFudXBfZ251bGliCisgICAgICB8fCBkaWUgIkVycm9yOiAnJGdudWxpYl9w
YXRoJyBpcyBzdXBwb3NlZCB0byBjb250YWluIGEgZ251bGliIGNoZWNrb3V0LCIgXAorICAg
ICAgICAgICAgICJidXQgZG9lcyBub3QgY29udGFpbiBnbnVsaWItdG9vbCIKKyAgICBHTlVM
SUJfU1JDRElSPSRnbnVsaWJfcGF0aAogICBmaQotCiAgICMgJEdOVUxJQl9TUkNESVIgbm93
IHBvaW50cyB0byB0aGUgdmVyc2lvbiBvZiBnbnVsaWIgdG8gdXNlLCBhbmQKICAgIyB3ZSBu
byBsb25nZXIgbmVlZCB0byB1c2UgZ2l0IG9yICRnbnVsaWJfcGF0aCBiZWxvdyBoZXJlLgog
fQpAQCAtNTU0LDIwICs2MjIsMzkgQEAgcHJlcGFyZV9HTlVMSUJfU1JDRElSICgpCiAKIHVw
Z3JhZGVfYm9vdHN0cmFwICgpCiB7Ci0gIHsgY21wIC1zICIkbWVkaXIiL2Jvb3RzdHJhcCAi
JEdOVUxJQl9TUkNESVIvdG9wL2Jvb3RzdHJhcCIgXAotICAgICYmIGNtcCAtcyAiJG1lZGly
Ii9ib290c3RyYXAtZnVuY2xpYi5zaCAiJEdOVUxJQl9TUkNESVIvdG9wL2Jvb3RzdHJhcC1m
dW5jbGliLnNoIiBcCi0gICAgJiYgY21wIC1zICIkbWVkaXIiL2F1dG9wdWxsLnNoICIkR05V
TElCX1NSQ0RJUi90b3AvYXV0b3B1bGwuc2giIFwKLSAgICAmJiBjbXAgLXMgIiRtZWRpciIv
YXV0b2dlbi5zaCAiJEdOVUxJQl9TUkNESVIvdG9wL2F1dG9nZW4uc2giOyBcCi0gIH0gfHwg
ewotICAgIGVjaG8gIiQwOiB1cGRhdGluZyBib290c3RyYXAgJiBjb21wYW5pb25zIGFuZCBy
ZXN0YXJ0aW5nLi4uIgorICBpZiB0ZXN0IC1mICIkbWVkaXIiL2Jvb3RzdHJhcC1mdW5jbGli
LnNoOyB0aGVuCisgICAgdXBkYXRlX2xpYj10cnVlCisgICAgeyBjbXAgLXMgIiRtZWRpciIv
Ym9vdHN0cmFwICIkR05VTElCX1NSQ0RJUi90b3AvYm9vdHN0cmFwIiBcCisgICAgICAmJiBj
bXAgLXMgIiRtZWRpciIvYm9vdHN0cmFwLWZ1bmNsaWIuc2ggXAorICAgICAgICAgICAgICAg
ICIkR05VTElCX1NSQ0RJUi90b3AvYm9vdHN0cmFwLWZ1bmNsaWIuc2giIFwKKyAgICAgICYm
IGNtcCAtcyAiJG1lZGlyIi9hdXRvcHVsbC5zaCAiJEdOVUxJQl9TUkNESVIvdG9wL2F1dG9w
dWxsLnNoIiBcCisgICAgICAmJiBjbXAgLXMgIiRtZWRpciIvYXV0b2dlbi5zaCAiJEdOVUxJ
Ql9TUkNESVIvdG9wL2F1dG9nZW4uc2giOyBcCisgICAgfQorICBlbHNlCisgICAgdXBkYXRl
X2xpYj1mYWxzZQorICAgIGNtcCAtcyAiJG1lZGlyIi9ib290c3RyYXAgIiRHTlVMSUJfU1JD
RElSL2J1aWxkLWF1eC9ib290c3RyYXAiCisgIGZpIHx8IHsKKyAgICBpZiAkdXBkYXRlX2xp
YjsgdGhlbgorICAgICAgZWNobyAiJDA6IHVwZGF0aW5nIGJvb3RzdHJhcCAmIGNvbXBhbmlv
bnMgYW5kIHJlc3RhcnRpbmcuLi4iCisgICAgZWxzZQorICAgICAgZWNobyAiJDA6IHVwZGF0
aW5nIGJvb3RzdHJhcCBhbmQgcmVzdGFydGluZy4uLiIKKyAgICBmaQogICAgIGNhc2UgJChz
aCAtYyAnZWNobyAiJDEiJyAtLSBhKSBpbgogICAgICAgYSkgaWdub3JlZD0tLTs7CiAgICAg
ICAqKSBpZ25vcmVkPWlnbm9yZWQ7OwogICAgIGVzYWMKKyAgICB1PSR1cGRhdGVfbGliCiAg
ICAgZXhlYyBzaCAtYyBcCi0gICAgICAneyBpZiB0ZXN0IC1mICIkMSI7IHRoZW4gY3AgIiQx
IiAiJDMiOyBlbHNlIGNwICIkMiIgIiQzIjsgZmk7IH0gJiYgeyBpZiB0ZXN0IC1mICIkNCI7
IHRoZW4gY3AgIiQ0IiAiJDUiOyBlbHNlIHJtIC1mICIkNSI7IGZpOyB9ICYmIHsgaWYgdGVz
dCAtZiAiJDYiOyB0aGVuIGNwICIkNiIgIiQ3IjsgZWxzZSBybSAtZiAiJDciOyBmaTsgfSAm
JiB7IGlmIHRlc3QgLWYgIiQ4IjsgdGhlbiBjcCAiJDgiICIkOSI7IGVsc2Ugcm0gLWYgIiQ5
IjsgZmk7IH0gJiYgc2hpZnQgJiYgc2hpZnQgJiYgc2hpZnQgJiYgc2hpZnQgJiYgc2hpZnQg
JiYgc2hpZnQgJiYgc2hpZnQgJiYgc2hpZnQgJiYgc2hpZnQgJiYgZXhlYyAiJHtDT05GSUdf
U0hFTEwtL2Jpbi9zaH0iICIkQCInIFwKKyAgICAgICd7IGlmICckdScgJiYgdGVzdCAtZiAi
JDEiOyB0aGVuIGNwICIkMSIgIiQzIjsgZWxzZSBjcCAiJDIiICIkMyI7IGZpOyB9ICYmCisg
ICAgICAgeyBpZiAnJHUnICYmIHRlc3QgLWYgIiQ0IjsgdGhlbiBjcCAiJDQiICIkNSI7IGVs
c2Ugcm0gLWYgIiQ1IjsgZmk7IH0gJiYKKyAgICAgICB7IGlmICckdScgJiYgdGVzdCAtZiAi
JDYiOyB0aGVuIGNwICIkNiIgIiQ3IjsgZWxzZSBybSAtZiAiJDciOyBmaTsgfSAmJgorICAg
ICAgIHsgaWYgJyR1JyAmJiB0ZXN0IC1mICIkOCI7IHRoZW4gY3AgIiQ4IiAiJDkiOyBlbHNl
IHJtIC1mICIkOSI7IGZpOyB9ICYmCisgICAgICAgc2hpZnQgJiYgc2hpZnQgJiYgc2hpZnQg
JiYgc2hpZnQgJiYgc2hpZnQgJiYKKyAgICAgICBzaGlmdCAmJiBzaGlmdCAmJiBzaGlmdCAm
JiBzaGlmdCAmJgorICAgICAgIGV4ZWMgIiR7Q09ORklHX1NIRUxMLS9iaW4vc2h9IiAiJEAi
JyBcCiAgICAgICAkaWdub3JlZCBcCi0gICAgICAiJEdOVUxJQl9TUkNESVIvdG9wL2Jvb3Rz
dHJhcCIgIiRHTlVMSUJfU1JDRElSL2J1aWxkLWF1eC9ib290c3RyYXAiICIkbWVkaXIvYm9v
dHN0cmFwIiBcCisgICAgICAiJEdOVUxJQl9TUkNESVIvdG9wL2Jvb3RzdHJhcCIgIiRHTlVM
SUJfU1JDRElSL2J1aWxkLWF1eC9ib290c3RyYXAiIFwKKyAgICAgICIkbWVkaXIvYm9vdHN0
cmFwIiBcCiAgICAgICAiJEdOVUxJQl9TUkNESVIvdG9wL2Jvb3RzdHJhcC1mdW5jbGliLnNo
IiAiJG1lZGlyL2Jvb3RzdHJhcC1mdW5jbGliLnNoIiBcCiAgICAgICAiJEdOVUxJQl9TUkNE
SVIvdG9wL2F1dG9wdWxsLnNoIiAiJG1lZGlyL2F1dG9wdWxsLnNoIiBcCiAgICAgICAiJEdO
VUxJQl9TUkNESVIvdG9wL2F1dG9nZW4uc2giICIkbWVkaXIvYXV0b2dlbi5zaCIgXApAQCAt
NTgzLDExICs2NzAsNzEyIEBAIGVsc2UKICAgdXNlX2dudWxpYj10cnVlCiBmaQogCisjIC0t
LS0tLS0tIEZldGNoIGF1eGlsaWFyeSBmaWxlcyBmcm9tIHRoZSBuZXR3b3JrLiAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworYXV0b3B1bGxfdXNhZ2UoKSB7CisgIGNhdCA8PEVP
RgorVXNhZ2U6ICRtZSBbT1BUSU9OXS4uLgorQm9vdHN0cmFwIHRoaXMgcGFja2FnZSBmcm9t
IHRoZSBjaGVja2VkLW91dCBzb3VyY2VzLCBwaGFzZSAxOgorUHVsbCBmaWxlcyBmcm9tIHRo
ZSBuZXR3b3JrLgorCitPcHRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CisgIEdOVUxJ
Ql9TUkNESVIgICAgICAgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsIGRpcmVjdG9yeSB3aGVy
ZSBnbnVsaWIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZXMgcmVzaWRlLiAg
VXNlIHRoaXMgaWYgeW91IGFscmVhZHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhh
dmUgZ251bGliIHNvdXJjZXMgb24geW91ciBtYWNoaW5lLCBhbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHlvdSB3YW50IHRvIHVzZSB0aGVzZSBzb3VyY2VzLgorICBHTlVMSUJf
UkVGRElSICAgICAgICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbCBkaXJlY3Rvcnkgd2hlcmUg
YSBnbnVsaWIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnkgKHdpdGgg
YSAuZ2l0IHN1YmRpcmVjdG9yeSkgcmVzaWRlcy4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFVzZSB0aGlzIGlmIHlvdSBhbHJlYWR5IGhhdmUgZ251bGliIHNvdXJjZXMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFuZCBoaXN0b3J5IG9uIHlvdXIgbWFjaGluZSwgYW5k
IGRvIG5vdCB3YW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB3YXN0ZSB5b3Vy
IGJhbmR3aWR0aCBkb3dubG9hZGluZyB0aGVtIGFnYWluLgorICBHTlVMSUJfVVJMICAgICAg
ICAgICAgICAgVVJMIG9mIHRoZSBnbnVsaWIgcmVwb3NpdG9yeS4gIFRoZSBkZWZhdWx0IGlz
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdF9nbnVsaWJfdXJsLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2ggaXMgR251bGliJ3MgdXBzdHJlYW0gcmVw
b3NpdG9yeS4KKworT3B0aW9uczoKKworICAtLWJvb3RzdHJhcC1zeW5jICAgICAgICAgSWYg
dGhpcyBib290c3RyYXAgc2NyaXB0IGlzIG5vdCBpZGVudGljYWwgdG8KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoZSB2ZXJzaW9uIGluIHRoZSBsb2NhbCBnbnVsaWIgc291cmNl
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZSB0aGlzIHNjcmlwdCwgYW5k
IHRoZW4gcmVzdGFydCBpdCB3aXRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvYmlu
L3NoIG9yIHRoZSBzaGVsbCBcJENPTkZJR19TSEVMTC4KKyAgLS1uby1ib290c3RyYXAtc3lu
YyAgICAgIERvIG5vdCBjaGVjayB3aGV0aGVyIGJvb3RzdHJhcCBpcyBvdXQgb2Ygc3luYy4K
KworICAtLWZvcmNlICAgICAgICAgICAgICAgICAgQXR0ZW1wdCB0byBib290c3RyYXAgZXZl
biBpZiB0aGUgc291cmNlcyBzZWVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qg
dG8gaGF2ZSBiZWVuIGNoZWNrZWQgb3V0LgorICAtLW5vLWdpdCAgICAgICAgICAgICAgICAg
RG8gbm90IHVzZSBnaXQgdG8gdXBkYXRlIGdudWxpYi4gIFJlcXVpcmVzIHRoYXQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwkR05VTElCX1NSQ0RJUiBwb2ludHMgdG8gYSBnbnVs
aWIgcmVwb3NpdG9yeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGUgY29y
cmVjdCByZXZpc2lvbi4KKyAgLS1za2lwLXBvICAgICAgICAgICAgICAgIERvIG5vdCBkb3du
bG9hZCAqLnBvIGZpbGVzLgorRU9GCisgIGJvb3RzdHJhcF9wcmludF9vcHRpb25fdXNhZ2Vf
aG9vaworICBjYXQgPDxFT0YKK0lmIHRoZSBmaWxlIGJvb3RzdHJhcC5jb25mIGV4aXN0cyBp
biB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhpcyBzY3JpcHQsIGl0cworY29udGVudHMgYXJl
IHJlYWQgYXMgc2hlbGwgdmFyaWFibGVzIHRvIGNvbmZpZ3VyZSB0aGUgYm9vdHN0cmFwLgor
CitGb3IgYnVpbGQgcHJlcmVxdWlzaXRlcywgZW52aXJvbm1lbnQgdmFyaWFibGVzIGxpa2Ug
XCRBVVRPQ09ORiBhbmQgXCRBTVRBUgorYXJlIGhvbm9yZWQuCisKK0dudWxpYiBzb3VyY2Vz
IGNhbiBiZSBmZXRjaGVkIGluIHZhcmlvdXMgd2F5czoKKworICogSWYgdGhlIGVudmlyb25t
ZW50IHZhcmlhYmxlIEdOVUxJQl9TUkNESVIgaXMgc2V0LCB0aGVuIHNvdXJjZXMgYXJlCisg
ICBmZXRjaGVkIGZyb20gdGhhdCBsb2NhbCBkaXJlY3RvcnkuICBJZiBpdCBpcyBhIGdpdCBy
ZXBvc2l0b3J5IGFuZCB0aGUKKyAgIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgR05VTElCX1JF
VklTSU9OIGlzIHNldCBpbiBib290c3RyYXAuY29uZiwgdGhlbgorICAgdGhhdCByZXZpc2lv
biBpcyBjaGVja2VkIG91dC4KKworICogT3RoZXJ3aXNlLCBpZiB0aGlzIHBhY2thZ2UgaXMg
aW4gYSBnaXQgcmVwb3NpdG9yeSB3aXRoIGEgJ2dudWxpYicKKyAgIHN1Ym1vZHVsZSBjb25m
aWd1cmVkLCB0aGVuIHRoYXQgc3VibW9kdWxlIGlzIGluaXRpYWxpemVkIGFuZCB1cGRhdGVk
CisgICBhbmQgc291cmNlcyBhcmUgZmV0Y2hlZCBmcm9tIHRoZXJlLiAgSWYgdGhlIGVudmly
b25tZW50IHZhcmlhYmxlCisgICBHTlVMSUJfUkVGRElSIGlzIHNldCBhbmQgaXMgYSBnaXQg
cmVwb3NpdG9yeSwgdGhlbiBpdCBpcyB1c2VkIGFzIGEKKyAgIHJlZmVyZW5jZS4KKworICog
T3RoZXJ3aXNlLCBpZiB0aGUgJ2dudWxpYicgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LCBH
bnVsaWIgc291cmNlcworICAgYXJlIGNsb25lZCBpbnRvIHRoYXQgZGlyZWN0b3J5IHVzaW5n
IGdpdCBmcm9tIFwkR05VTElCX1VSTCwgZGVmYXVsdGluZworICAgdG8gJGRlZmF1bHRfZ251
bGliX3VybDsgaWYgR05VTElCX1JFRkRJUiBpcyBzZXQgYW5kIGlzIGEgZ2l0IHJlcG9zaXRv
cnkKKyAgIGl0cyBjb250ZW50cyBtYXkgYmUgdXNlZCB0byBhY2NlbGVyYXRlIHRoZSBwcm9j
ZXNzLgorICAgSWYgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgR05VTElCX1JFVklTSU9O
IGlzIHNldCBpbiBib290c3RyYXAuY29uZiwKKyAgIHRoZW4gdGhhdCByZXZpc2lvbiBpcyBj
aGVja2VkIG91dC4KKworICogT3RoZXJ3aXNlLCB0aGUgZXhpc3RpbmcgR251bGliIHNvdXJj
ZXMgaW4gdGhlICdnbnVsaWInIGRpcmVjdG9yeSBhcmUKKyAgIHVzZWQuICBJZiBpdCBpcyBh
IGdpdCByZXBvc2l0b3J5IGFuZCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZQorICAgR05V
TElCX1JFVklTSU9OIGlzIHNldCBpbiBib290c3RyYXAuY29uZiwgdGhlbiB0aGF0IHJldmlz
aW9uIGlzCisgICBjaGVja2VkIG91dC4KKworSWYgeW91IG1haW50YWluIGEgcGFja2FnZSBh
bmQgd2FudCB0byBwaW4gYSBwYXJ0aWN1bGFyIHJldmlzaW9uIG9mIHRoZQorR251bGliIHNv
dXJjZXMgdGhhdCBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCB5b3VyIHBhY2thZ2UsIHRoZW4gdGhl
cmUgYXJlCit0d28gcG9zc2libGUgYXBwcm9hY2hlczogZWl0aGVyIGNvbmZpZ3VyZSBhICdn
bnVsaWInIHN1Ym1vZHVsZSB3aXRoIHRoZQorYXBwcm9wcmlhdGUgcmV2aXNpb24sIG9yIHNl
dCBHTlVMSUJfUkVWSVNJT04gKGFuZCBpZiBuZWNlc3NhcnkKK0dOVUxJQl9VUkwpIGluIGJv
b3RzdHJhcC5jb25mLgorCitSdW5uaW5nIHdpdGhvdXQgYXJndW1lbnRzIHdpbGwgc3VmZmlj
ZSBpbiBtb3N0IGNhc2VzLgorRU9GCit9CisKKyMgRmV0Y2ggYXV4aWxpYXJ5IGZpbGVzIHRo
YXQgYXJlIG9taXR0ZWQgZnJvbSB0aGUgdmVyc2lvbiBjb250cm9sCisjIHJlcG9zaXRvcnkg
b2YgdGhpcyBwYWNrYWdlLgorYXV0b3B1bGwoKQoreworICAjIEVuc3VyZSB0aGF0IENEUEFU
SCBpcyBub3Qgc2V0LiAgT3RoZXJ3aXNlLCB0aGUgb3V0cHV0IGZyb20gY2QKKyAgIyB3b3Vs
ZCBjYXVzZSB0cm91YmxlIGluIGF0IGxlYXN0IG9uZSB1c2UgYmVsb3cuCisgICh1bnNldCBD
RFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKKworICAjIFBhcnNlIG9w
dGlvbnMuCisKKyAgIyBVc2UgZ2l0IHRvIHVwZGF0ZSBnbnVsaWIgc291cmNlcworICB1c2Vf
Z2l0PXRydWUKKworICBmb3Igb3B0aW9uCisgIGRvCisgICAgY2FzZSAkb3B0aW9uIGluCisg
ICAgLS1oZWxwKQorICAgICAgYXV0b3B1bGxfdXNhZ2UKKyAgICAgIHJldHVybjs7CisgICAg
LS12ZXJzaW9uKQorICAgICAgc2V0IC1lCisgICAgICBlY2hvICJhdXRvcHVsbC5zaCAkc2Ny
aXB0bGlidmVyc2lvbiIKKyAgICAgIGVjaG8gIiRjb3B5cmlnaHQiCisgICAgICByZXR1cm4g
MAorICAgICAgOzsKKyAgICAtLXNraXAtcG8pCisgICAgICBTS0lQX1BPPXQ7OworICAgIC0t
Zm9yY2UpCisgICAgICBjaGVja291dF9vbmx5X2ZpbGU9OzsKKyAgICAtLWJvb3RzdHJhcC1z
eW5jKQorICAgICAgYm9vdHN0cmFwX3N5bmM9dHJ1ZTs7CisgICAgLS1uby1ib290c3RyYXAt
c3luYykKKyAgICAgIGJvb3RzdHJhcF9zeW5jPWZhbHNlOzsKKyAgICAtLW5vLWdpdCkKKyAg
ICAgIHVzZV9naXQ9ZmFsc2U7OworICAgICopCisgICAgICBib290c3RyYXBfb3B0aW9uX2hv
b2sgJG9wdGlvbiB8fCBkaWUgIiRvcHRpb246IHVua25vd24gb3B0aW9uIjs7CisgICAgZXNh
YworICBkb25lCisKKyAgJHVzZV9naXQgfHwgdGVzdCAtbiAiJEdOVUxJQl9TUkNESVIiIFwK
KyAgICB8fCBkaWUgIkVycm9yOiAtLW5vLWdpdCByZXF1aXJlcyBcJEdOVUxJQl9TUkNESVIg
ZW52aXJvbm1lbnQgdmFyaWFibGUiIFwKKyAgICAgICAgICAgIm9yIC0tZ251bGliLXNyY2Rp
ciBvcHRpb24iCisgIHRlc3QgLXogIiRHTlVMSUJfU1JDRElSIiB8fCB0ZXN0IC1kICIkR05V
TElCX1NSQ0RJUiIgXAorICAgIHx8IGRpZSAiRXJyb3I6IFwkR05VTElCX1NSQ0RJUiBlbnZp
cm9ubWVudCB2YXJpYWJsZSIgXAorICAgICAgICAgICAib3IgLS1nbnVsaWItc3JjZGlyIG9w
dGlvbiBpcyBzcGVjaWZpZWQsIiBcCisgICAgICAgICAgICJidXQgZG9lcyBub3QgZGVub3Rl
IGEgZGlyZWN0b3J5IgorCisgIGlmIHRlc3QgLW4gIiRjaGVja291dF9vbmx5X2ZpbGUiICYm
IHRlc3QgISAtciAiJGNoZWNrb3V0X29ubHlfZmlsZSI7IHRoZW4KKyAgICBkaWUgIlJ1bm5p
bmcgdGhpcyBzY3JpcHQgZnJvbSBhIG5vbi1jaGVja2VkLW91dCBkaXN0cmlidXRpb24gaXMg
cmlza3kuIgorICBmaQorCisgIGNoZWNrX2J1aWxkX3ByZXJlcXVpc2l0ZXMgJHVzZV9naXQK
KworICBpZiAkdXNlX2dudWxpYiB8fCAkYm9vdHN0cmFwX3N5bmM7IHRoZW4KKyAgICBwcmVw
YXJlX0dOVUxJQl9TUkNESVIKKyAgICBpZiAkYm9vdHN0cmFwX3N5bmM7IHRoZW4KKyAgICAg
IHVwZ3JhZGVfYm9vdHN0cmFwICIkQCIKKyAgICBmaQorICBmaQorCisgICMgRmluZCBzaGEx
c3VtLCBuYW1lZCBnc2hhMXN1bSBvbiBNYWNQb3J0cywgc2hhc3VtIG9uIE1hYyBPUyBYIDEw
LjYuCisgICMgQWxzbyBmaW5kIHRoZSBjb21wYXRpYmxlIHNoYTEgdXRpbGl0eSBvbiB0aGUg
QlNEcworICBpZiB0ZXN0IHgiJFNLSVBfUE8iID0geDsgdGhlbgorICAgIGZpbmRfdG9vbCBT
SEExU1VNIHNoYTFzdW0gZ3NoYTFzdW0gc2hhc3VtIHNoYTEKKyAgZmkKKworICAjIFNlZSBp
ZiB3ZSBjYW4gdXNlIGdudWxpYidzIGdpdC1tZXJnZS1jaGFuZ2Vsb2cgbWVyZ2UgZHJpdmVy
LgorICBpZiAkdXNlX2dpdCAmJiB0ZXN0IC1kIC5naXQgJiYgY2hlY2tfZXhpc3RzIGdpdDsg
dGhlbgorICAgIGlmIGdpdCBjb25maWcgbWVyZ2UubWVyZ2UtY2hhbmdlbG9nLmRyaXZlciA+
L2Rldi9udWxsIDsgdGhlbgorICAgICAgOgorICAgIGVsaWYgY2hlY2tfZXhpc3RzIGdpdC1t
ZXJnZS1jaGFuZ2Vsb2c7IHRoZW4KKyAgICAgIGVjaG8gIiQwOiBpbml0aWFsaXppbmcgZ2l0
LW1lcmdlLWNoYW5nZWxvZyBkcml2ZXIiCisgICAgICBnaXQgY29uZmlnIG1lcmdlLm1lcmdl
LWNoYW5nZWxvZy5uYW1lICdHTlUtc3R5bGUgQ2hhbmdlTG9nIG1lcmdlIGRyaXZlcicKKyAg
ICAgIGdpdCBjb25maWcgbWVyZ2UubWVyZ2UtY2hhbmdlbG9nLmRyaXZlciAnZ2l0LW1lcmdl
LWNoYW5nZWxvZyAlTyAlQSAlQicKKyAgICBlbHNlCisgICAgICBlY2hvICIkMDogY29uc2lk
ZXIgaW5zdGFsbGluZyBnaXQtbWVyZ2UtY2hhbmdlbG9nIGZyb20gZ251bGliIgorICAgIGZp
CisgIGZpCisKKyAgY2FzZSAkU0tJUF9QTyBpbgorICAnJykKKyAgICBpZiB0ZXN0IC1kIHBv
OyB0aGVuCisgICAgICB1cGRhdGVfcG9fZmlsZXMgcG8gJHBhY2thZ2UgfHwgcmV0dXJuCisg
ICAgZmkKKworICAgIGlmIHRlc3QgLWQgcnVudGltZS1wbzsgdGhlbgorICAgICAgdXBkYXRl
X3BvX2ZpbGVzIHJ1bnRpbWUtcG8gJHBhY2thZ2UtcnVudGltZSB8fCByZXR1cm4KKyAgICBm
aTs7CisgIGVzYWMKKworICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgIGJvb3RzdHJh
cF9wb3N0X3B1bGxfaG9vayBcCisgICAgfHwgZGllICJib290c3RyYXBfcG9zdF9wdWxsX2hv
b2sgZmFpbGVkIgorCisgICMgRG9uJ3QgcHJvY2VlZCBpZiB0aGVyZSBhcmUgdW5pbml0aWFs
aXplZCBzdWJtb2R1bGVzLiAgSW4gcGFydGljdWxhciwKKyAgIyBhdXRvZ2VuLnNoIHdpbGwg
cmVtb3ZlIGRhbmdsaW5nIGxpbmtzLCB3aGljaCBtaWdodCBiZSBsaW5rcyBpbnRvCisgICMg
dW5pbml0aWFsaXplZCBzdWJtb2R1bGVzLgorICAjIEJ1dCBpdCdzIE9LIGlmIHRoZSAnZ251
bGliJyBzdWJtb2R1bGUgaXMgdW5pbml0aWFsaXplZCwgYXMgbG9uZyBhcworICAjIEdOVUxJ
Ql9TUkNESVIgaXMgc2V0LgorICBpZiAkdXNlX2dpdDsgdGhlbgorICAgICMgVW5pbml0aWFs
aXplZCBzdWJtb2R1bGVzIGFyZSBsaXN0ZWQgd2l0aCBhbiBpbml0aWFsIGRhc2guCisgICAg
dW5pbml0aWFsaXplZD1gZ2l0IHN1Ym1vZHVsZSB8IGdyZXAgJ14tJyB8IGF3ayAneyBwcmlu
dCAkMiB9J2AKKyAgICBpZiB0ZXN0IC1uICIkR05VTElCX1NSQ0RJUiI7IHRoZW4KKyAgICAg
IHVuaW5pdGlhbGl6ZWQ9YGVjaG8gIiR1bmluaXRpYWxpemVkIiB8IGdyZXAgLXYgJ15nbnVs
aWIkJ2AKKyAgICBmaQorICAgIGlmIHRlc3QgLW4gIiR1bmluaXRpYWxpemVkIjsgdGhlbgor
ICAgICAgdW5pbml0X2NvbW1hPWBlY2hvICIkdW5pbml0aWFsaXplZCIgfCB0ciAnXG4nICcs
JyB8IHNlZCAtZSAnc3wsJHwufCdgCisgICAgICBkaWUgIlNvbWUgZ2l0IHN1Ym1vZHVsZXMg
YXJlIG5vdCBpbml0aWFsaXplZDogIiR1bmluaXRfY29tbWEgXAorICAgICAgICAgICJFaXRo
ZXIgdXNlIG9wdGlvbiAnLS1uby1naXQnLCIgXAorICAgICAgICAgICJvciBydW4gJ2dpdCBz
dWJtb2R1bGUgdXBkYXRlIC0taW5pdCcgYW5kIGJvb3RzdHJhcCBhZ2Fpbi4iCisgICAgZmkK
KyAgZmkKKworICBpZiB0ZXN0IC1mICIkbWVkaXIiL2F1dG9nZW4uc2g7IHRoZW4KKyAgICBl
Y2hvICIkMDogZG9uZS4gIE5vdyB5b3UgY2FuIHJ1biAnJG1lZGlyL2F1dG9nZW4uc2gnLiIK
KyAgZmkKK30KKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBHZXQgdHJhbnNs
YXRpb25zLiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkb3dubG9hZF9wb19m
aWxlcygpIHsKKyAgc3ViZGlyPSQxCisgIGRvbWFpbj0kMgorICBlY2hvICIkbWU6IGdldHRp
bmcgdHJhbnNsYXRpb25zIGludG8gJHN1YmRpciBmb3IgJGRvbWFpbi4uLiIKKyAgY21kPSQo
cHJpbnRmICIkcG9fZG93bmxvYWRfY29tbWFuZF9mb3JtYXQiICIkc3ViZGlyIiAiJGRvbWFp
biIpCisgIGV2YWwgIiRjbWQiCit9CisKKyMgTWlycm9yIC5wbyBmaWxlcyB0byAkcG9fZGly
Ly5yZWZlcmVuY2UgYW5kIGNvcHkgb25seSB0aGUgbmV3CisjIG9yIG1vZGlmaWVkIG9uZXMg
aW50byAkcG9fZGlyLiAgQWxzbyB1cGRhdGUgJHBvX2Rpci9MSU5HVUFTLgorIyBOb3RlIHBv
IGZpbGVzIHRoYXQgZXhpc3QgbG9jYWxseSBvbmx5IGFyZSBsZWZ0IGluICRwb19kaXIgYnV0
IHdpbGwKKyMgbm90IGJlIGluY2x1ZGVkIGluIExJTkdVQVMgYW5kIGhlbmNlIHdpbGwgbm90
IGJlIGRpc3RyaWJ1dGVkLgordXBkYXRlX3BvX2ZpbGVzKCkgeworICAjIERpcmVjdG9yeSBj
b250YWluaW5nIHByaW1hcnkgLnBvIGZpbGVzLgorICAjIE92ZXJ3cml0ZSB0aGVtIG9ubHkg
d2hlbiB3ZSdyZSBzdXJlIGEgLnBvIGZpbGUgaXMgbmV3LgorICBwb19kaXI9JDEKKyAgZG9t
YWluPSQyCisKKyAgIyBNaXJyb3IgKi5wbyBmaWxlcyBpbnRvIHRoaXMgZGlyLgorICAjIFVz
dWFsbHkgY29udGFpbnMgKi5zMSBjaGVja3N1bSBmaWxlcy4KKyAgcmVmX3BvX2Rpcj0iJHBv
X2Rpci8ucmVmZXJlbmNlIgorCisgIHRlc3QgLWQgJHJlZl9wb19kaXIgfHwgbWtkaXIgJHJl
Zl9wb19kaXIgfHwgcmV0dXJuCisgIGRvd25sb2FkX3BvX2ZpbGVzICRyZWZfcG9fZGlyICRk
b21haW4gXAorICAgICYmIGxzICIkcmVmX3BvX2RpciIvKi5wbyAyPi9kZXYvbnVsbCB8Cisg
ICAgICBzZWQgJ3N8LiovfHw7IHN8XC5wbyR8fCcgPiAiJHBvX2Rpci9MSU5HVUFTIiB8fCBy
ZXR1cm4KKworICBmb3IgcG8gaW4geCAkKGxzICRyZWZfcG9fZGlyIHwgc2VkIC1uICdzL1wu
cG8kLy9wJyk7IGRvCisgICAgY2FzZSAkcG8gaW4geCkgY29udGludWU7OyBlc2FjCisgICAg
bmV3X3BvPSIkcmVmX3BvX2Rpci8kcG8ucG8iCisgICAgY2tzdW1fZmlsZT0iJHJlZl9wb19k
aXIvJHBvLnMxIgorICAgIGlmICEgdGVzdCAtZiAiJGNrc3VtX2ZpbGUiIHx8CisgICAgICAg
ICEgdGVzdCAtZiAiJHBvX2Rpci8kcG8ucG8iIHx8CisgICAgICAgICEgJFNIQTFTVU0gLWMg
IiRja3N1bV9maWxlIiA8ICIkbmV3X3BvIiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAg
ICBlY2hvICIkbWU6IHVwZGF0ZWQgJHBvX2Rpci8kcG8ucG8uLi4iCisgICAgICBjcCAiJG5l
d19wbyIgIiRwb19kaXIvJHBvLnBvIiBcCisgICAgICAgICAgJiYgJFNIQTFTVU0gPCAiJG5l
d19wbyIgPiAiJGNrc3VtX2ZpbGUiIHx8IHJldHVybgorICAgIGZpCisgIGRvbmUKK30KKwor
IyAtLS0tLS0tLSBHZW5lcmF0ZSBmaWxlcyBhdXRvbWF0aWNhbGx5IGZyb20gZXhpc3Rpbmcg
c291cmNlcy4gIC0tLS0tLS0tLS0tLS0tCisKK2F1dG9nZW5fdXNhZ2UoKSB7CisgIGNhdCA8
PEVPRgorVXNhZ2U6ICRtZSBbT1BUSU9OXS4uLgorQm9vdHN0cmFwIHRoaXMgcGFja2FnZSBm
cm9tIHRoZSBjaGVja2VkLW91dCBzb3VyY2VzLCBwaGFzZSAyOgorR2VuZXJhdGUgZmlsZXMg
ZnJvbSBsb2NhbCBmaWxlcyAobm8gbmV0d29yayBhY2Nlc3MpLgorCitPcHRpb25hbCBlbnZp
cm9ubWVudCB2YXJpYWJsZXM6CisgIEdOVUxJQl9TUkNESVIgICAgICAgICAgICBTcGVjaWZp
ZXMgdGhlIGxvY2FsIGRpcmVjdG9yeSB3aGVyZSBnbnVsaWIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNvdXJjZXMgcmVzaWRlLiAgVXNlIHRoaXMgaWYgeW91IGFscmVhZHkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgZ251bGliIHNvdXJjZXMgb24geW91ciBt
YWNoaW5lLCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSB3YW50IHRvIHVz
ZSB0aGVzZSBzb3VyY2VzLgorCitPcHRpb25zOgorICAtLWNvcHkgICAgICAgICAgICAgICAg
ICAgQ29weSBmaWxlcyBpbnN0ZWFkIG9mIGNyZWF0aW5nIHN5bWJvbGljIGxpbmtzLgorICAt
LWZvcmNlICAgICAgICAgICAgICAgICAgQXR0ZW1wdCB0byBib290c3RyYXAgZXZlbiBpZiB0
aGUgc291cmNlcyBzZWVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QgdG8gaGF2
ZSBiZWVuIGNoZWNrZWQgb3V0LgorRU9GCisgIGJvb3RzdHJhcF9wcmludF9vcHRpb25fdXNh
Z2VfaG9vaworICBjYXQgPDxFT0YKK0lmIHRoZSBmaWxlIGJvb3RzdHJhcC5jb25mIGV4aXN0
cyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhpcyBzY3JpcHQsIGl0cworY29udGVudHMg
YXJlIHJlYWQgYXMgc2hlbGwgdmFyaWFibGVzIHRvIGNvbmZpZ3VyZSB0aGUgYm9vdHN0cmFw
LgorCitGb3IgYnVpbGQgcHJlcmVxdWlzaXRlcywgZW52aXJvbm1lbnQgdmFyaWFibGVzIGxp
a2UgXCRBVVRPQ09ORiBhbmQgXCRBTVRBUgorYXJlIGhvbm9yZWQuCisKK0dudWxpYiBzb3Vy
Y2VzIGFyZSBhc3N1bWVkIHRvIGJlIHByZXNlbnQ6CisgICogaW4gXCRHTlVMSUJfU1JDRElS
LCBpZiB0aGF0IGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCwKKyAgKiBvdGhlcndpc2Us
IGluIHRoZSAnZ251bGliJyBzdWJtb2R1bGUsIGlmIHN1Y2ggYSBzdWJtb2R1bGUgaXMgY29u
ZmlndXJlZCwKKyAgKiBvdGhlcndpc2UsIGluIHRoZSAnZ251bGliJyBzdWJkaXJlY3Rvcnku
CisKK1J1bm5pbmcgd2l0aG91dCBhcmd1bWVudHMgd2lsbCBzdWZmaWNlIGluIG1vc3QgY2Fz
ZXMuCitFT0YKK30KKworCit2ZXJzaW9uX2NvbnRyb2xsZWRfZmlsZSgpIHsKKyAgcGFyZW50
PSQxCisgIGZpbGU9JDIKKyAgaWYgdGVzdCAtZCAuZ2l0OyB0aGVuCisgICAgZ2l0IHJtIC1u
ICIkZmlsZSIgPiAvZGV2L251bGwgMj4mMQorICBlbGlmIHRlc3QgLWQgLnN2bjsgdGhlbgor
ICAgIHN2biBsb2cgLXIgSEVBRCAiJGZpbGUiID4gL2Rldi9udWxsIDI+JjEKKyAgZWxpZiB0
ZXN0IC1kIENWUzsgdGhlbgorICAgIGdyZXAgLUYgIi8ke2ZpbGUjIyovfS8iICIkcGFyZW50
L0NWUy9FbnRyaWVzIiAyPi9kZXYvbnVsbCB8CisgICAgICAgICAgICAgZ3JlcCAnXi9bXi9d
Ki9bMC05XScgPiAvZGV2L251bGwKKyAgZWxzZQorICAgIHdhcm5fICJubyB2ZXJzaW9uIGNv
bnRyb2wgZm9yICRmaWxlPyIKKyAgICBmYWxzZQorICBmaQorfQorCisjIFN0cmlwIGJsYW5r
IGFuZCBjb21tZW50IGxpbmVzIHRvIGxlYXZlIHNpZ25pZmljYW50IGVudHJpZXMuCitnaXRp
Z25vcmVfZW50cmllcygpIHsKKyAgc2VkICcvXiMvZDsgL14kL2QnICIkQCIKK30KKworIyBJ
ZiAkU1RSIGlzIG5vdCBhbHJlYWR5IG9uIGEgbGluZSBieSBpdHNlbGYgaW4gJEZJTEUsIGlu
c2VydCBpdCBhdCB0aGUgc3RhcnQuCisjIEVudHJpZXMgYXJlIGluc2VydGVkIGF0IHRoZSBz
dGFydCBvZiB0aGUgaWdub3JlIGxpc3QgdG8gZW5zdXJlIGV4aXN0aW5nCisjIGVudHJpZXMg
c3RhcnRpbmcgd2l0aCAhIGFyZSBub3Qgb3ZlcnJpZGRlbi4gIFN1Y2ggZW50cmllcyBzdXBw
b3J0CisjIHdoaXRlbGlzdGluZyBleGNlcHRpb25zIGFmdGVyIGEgbW9yZSBnZW5lcmljIGJs
YWNrbGlzdCBwYXR0ZXJuLgoraW5zZXJ0X2lmX2Fic2VudCgpIHsKKyAgZmlsZT0kMQorICBz
dHI9JDIKKyAgdGVzdCAtZiAkZmlsZSB8fCB0b3VjaCAkZmlsZQorICB0ZXN0IC1yICRmaWxl
IHx8IGRpZSAiRXJyb3I6IGZhaWxlZCB0byByZWFkIGlnbm9yZSBmaWxlOiAkZmlsZSIKKyAg
ZHVwbGljYXRlX2VudHJpZXM9JChnaXRpZ25vcmVfZW50cmllcyAkZmlsZSB8IHNvcnQgfCB1
bmlxIC1kKQorICBpZiBbICIkZHVwbGljYXRlX2VudHJpZXMiIF0gOyB0aGVuCisgICAgZGll
ICJFcnJvcjogRHVwbGljYXRlIGVudHJpZXMgaW4gJGZpbGU6ICIgJGR1cGxpY2F0ZV9lbnRy
aWVzCisgIGZpCisgIGxpbmVzb2xkPSQoZ2l0aWdub3JlX2VudHJpZXMgJGZpbGUgfCB3YyAt
bCkKKyAgbGluZXNuZXc9JCggeyBlY2hvICIkc3RyIjsgY2F0ICRmaWxlOyB9IHwgZ2l0aWdu
b3JlX2VudHJpZXMgfCBzb3J0IC11IHwgd2MgLWwpCisgIGlmIFsgJGxpbmVzb2xkICE9ICRs
aW5lc25ldyBdIDsgdGhlbgorICAgIHsgZWNobyAiJHN0ciIgfCBjYXQgLSAkZmlsZSA+ICRm
aWxlLmJhayAmJiBtdiAkZmlsZS5iYWsgJGZpbGU7IH0gXAorICAgICAgfHwgZGllICJpbnNl
cnRfaWZfYWJzZW50ICRmaWxlICRzdHI6IGZhaWxlZCIKKyAgZmkKK30KKworIyBBZGp1c3Qg
JFBBVFRFUk4gZm9yICRWQ19JR05PUkVfRklMRSBhbmQgaW5zZXJ0IGl0IHdpdGgKKyMgaW5z
ZXJ0X2lmX2Fic2VudC4KK2luc2VydF92Y19pZ25vcmUoKSB7CisgIHZjX2lnbm9yZV9maWxl
PSIkMSIKKyAgcGF0dGVybj0iJDIiCisgIGNhc2UgJHZjX2lnbm9yZV9maWxlIGluCisgICou
Z2l0aWdub3JlKQorICAgICMgQSAuZ2l0aWdub3JlIGVudHJ5IHRoYXQgZG9lcyBub3Qgc3Rh
cnQgd2l0aCAnLycgYXBwbGllcworICAgICMgcmVjdXJzaXZlbHkgdG8gc3ViZGlyZWN0b3Jp
ZXMsIHNvIHByZXBlbmQgJy8nIHRvIGV2ZXJ5CisgICAgIyAuZ2l0aWdub3JlIGVudHJ5Lgor
ICAgIHBhdHRlcm49JChlY2hvICIkcGF0dGVybiIgfCBzZWQgcyxeLC8sKTs7CisgIGVzYWMK
KyAgaW5zZXJ0X2lmX2Fic2VudCAiJHZjX2lnbm9yZV9maWxlIiAiJHBhdHRlcm4iCit9CisK
K3N5bWxpbmtfdG9fZGlyKCkKK3sKKyAgc3JjPSQxLyQyCisgIGRzdD0kezMtJDJ9CisKKyAg
dGVzdCAtZiAiJHNyYyIgJiYgeworCisgICAgIyBJZiB0aGUgZGVzdGluYXRpb24gZGlyZWN0
b3J5IGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZSBpdC4KKyAgICAjIFRoaXMgaXMgcmVxdWlyZWQg
YXQgbGVhc3QgZm9yICJsaWIvdW5pd2lkdGgvY2prLmgiLgorICAgIGRzdF9kaXI9JChkaXJu
YW1lICIkZHN0IikKKyAgICBpZiAhIHRlc3QgLWQgIiRkc3RfZGlyIjsgdGhlbgorICAgICAg
bWtkaXIgLXAgIiRkc3RfZGlyIgorCisgICAgICAjIElmIHdlJ3ZlIGp1c3QgY3JlYXRlZCBh
IGRpcmVjdG9yeSBsaWtlIGxpYi91bml3aWR0aCwKKyAgICAgICMgdGVsbCB2ZXJzaW9uIGNv
bnRyb2wgc3lzdGVtKHMpIGl0J3MgaWdub3JhYmxlLgorICAgICAgIyBGSVhNRTogZm9yIG5v
dywgdGhpcyBkb2VzIG9ubHkgb25lIGxldmVsCisgICAgICBwYXJlbnQ9JChkaXJuYW1lICIk
ZHN0X2RpciIpCisgICAgICBmb3IgZG90X2lnIGluIHggJHZjX2lnbm9yZTsgZG8KKyAgICAg
ICAgdGVzdCAkZG90X2lnID0geCAmJiBjb250aW51ZQorICAgICAgICBpZz0kcGFyZW50LyRk
b3RfaWcKKyAgICAgICAgaW5zZXJ0X3ZjX2lnbm9yZSAkaWcgIiR7ZHN0X2RpciMjKi99LyIK
KyAgICAgIGRvbmUKKyAgICBmaQorCisgICAgaWYgJGNvcHk7IHRoZW4KKyAgICAgIHsKKyAg
ICAgICAgdGVzdCAhIC1oICIkZHN0IiB8fCB7CisgICAgICAgICAgZWNobyAiJG1lOiBybSAt
ZiAkZHN0IiAmJgorICAgICAgICAgIHJtIC1mICIkZHN0IgorICAgICAgICB9CisgICAgICB9
ICYmCisgICAgICB0ZXN0IC1mICIkZHN0IiAmJgorICAgICAgY21wIC1zICIkc3JjIiAiJGRz
dCIgfHwgeworICAgICAgICBlY2hvICIkbWU6IGNwIC1mcCAkc3JjICRkc3QiICYmCisgICAg
ICAgIGNwIC1mcCAiJHNyYyIgIiRkc3QiCisgICAgICB9CisgICAgZWxzZQorICAgICAgIyBM
ZWF2ZSBhbnkgZXhpc3Rpbmcgc3ltbGluayBhbG9uZSwgaWYgaXQgYWxyZWFkeSBwb2ludHMg
dG8gdGhlIHNvdXJjZSwKKyAgICAgICMgc28gdGhhdCBicm9rZW4gYnVpbGQgdG9vbHMgdGhh
dCBjYXJlIGFib3V0IHN5bWxpbmsgdGltZXMKKyAgICAgICMgYXJlbid0IGNvbmZ1c2VkIGlu
dG8gZG9pbmcgdW5uZWNlc3NhcnkgYnVpbGRzLiAgQ29udmVyc2VseSwgaWYgdGhlCisgICAg
ICAjIGV4aXN0aW5nIHN5bWxpbmsncyB0aW1lc3RhbXAgaXMgb2xkZXIgdGhhbiB0aGUgc291
cmNlLCBtYWtlIGl0IGFmcmVzaCwKKyAgICAgICMgc28gdGhhdCBicm9rZW4gdG9vbHMgYXJl
bid0IGNvbmZ1c2VkIGludG8gc2tpcHBpbmcgbmVlZGVkIGJ1aWxkcy4gIFNlZQorICAgICAg
IyA8aHR0cHM6Ly9saXN0cy5nbnUub3JnL3IvYnVnLWdudWxpYi8yMDExLTA1L21zZzAwMzI2
Lmh0bWw+LgorICAgICAgdGVzdCAtaCAiJGRzdCIgJiYKKyAgICAgIHNyY19scz0kKGxzIC1k
aUwgIiRzcmMiIDI+L2Rldi9udWxsKSAmJiBzZXQgJHNyY19scyAmJiBzcmNfaT0kMSAmJgor
ICAgICAgZHN0X2xzPSQobHMgLWRpTCAiJGRzdCIgMj4vZGV2L251bGwpICYmIHNldCAkZHN0
X2xzICYmIGRzdF9pPSQxICYmCisgICAgICB0ZXN0ICIkc3JjX2kiID0gIiRkc3RfaSIgJiYK
KyAgICAgIGJvdGhfbHM9JChscyAtZHQgIiRzcmMiICIkZHN0IikgJiYKKyAgICAgIHRlc3Qg
IlgkYm90aF9scyIgPSAiWCRkc3Qkbmwkc3JjIiB8fCB7CisgICAgICAgIGRvdF9kb3RzPQor
ICAgICAgICBjYXNlICRzcmMgaW4KKyAgICAgICAgLyopIDs7CisgICAgICAgICopCisgICAg
ICAgICAgY2FzZSAvJGRzdC8gaW4KKyAgICAgICAgICAqLy8qIHwgKi8uLi8qIHwgKi8uLyog
fCAvKi8qLyovKi8qLykKKyAgICAgICAgICAgICBkaWUgImludmFsaWQgc3ltbGluayBjYWxj
dWxhdGlvbjogJHNyYyAtPiAkZHN0Ijs7CisgICAgICAgICAgLyovKi8qLyovKSAgICBkb3Rf
ZG90cz0uLi8uLi8uLi87OworICAgICAgICAgIC8qLyovKi8pICAgICAgZG90X2RvdHM9Li4v
Li4vOzsKKyAgICAgICAgICAvKi8qLykgICAgICAgIGRvdF9kb3RzPS4uLzs7CisgICAgICAg
ICAgZXNhYzs7CisgICAgICAgIGVzYWMKKworICAgICAgICBlY2hvICIkbWU6IGxuIC1mcyAk
ZG90X2RvdHMkc3JjICRkc3QiICYmCisgICAgICAgIGxuIC1mcyAiJGRvdF9kb3RzJHNyYyIg
IiRkc3QiCisgICAgICB9CisgICAgZmkKKyAgfQorfQorCisjIFJlZ2VuZXJhdGUgYWxsIGF1
dG9nZW5lcmF0YWJsZSBmaWxlcyB0aGF0IGFyZSBvbWl0dGVkIGZyb20gdGhlCisjIHZlcnNp
b24gY29udHJvbCByZXBvc2l0b3J5LiAgSW4gcGFydGljdWxhciwgcmVnZW5lcmF0ZSBhbGwK
KyMgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIE1ha2VmaWxlLmluLCBjb25maWd1cmUgZmls
ZXMgd2l0aCBuZXcKKyMgdmVyc2lvbnMgb2YgYXV0b2NvbmYgb3IgYXV0b21ha2UuCithdXRv
Z2VuKCkKK3sKKyAgIyBFbnN1cmUgdGhhdCBDRFBBVEggaXMgbm90IHNldC4gIE90aGVyd2lz
ZSwgdGhlIG91dHB1dCBmcm9tIGNkCisgICMgd291bGQgY2F1c2UgdHJvdWJsZSBpbiBhdCBs
ZWFzdCBvbmUgdXNlIGJlbG93LgorICAodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEg
JiYgdW5zZXQgQ0RQQVRICisKKyAgIyBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBtYXkg
YmUgc2V0IGJ5IHRoZSB1c2VyLgorICA6ICIke0FVVE9QT0lOVD1hdXRvcG9pbnR9IgorICA6
ICIke0FVVE9SRUNPTkY9YXV0b3JlY29uZn0iCisKKyAgaWYgdGVzdCAiJHZjX2lnbm9yZSIg
PSBhdXRvOyB0aGVuCisgICAgdmNfaWdub3JlPQorICAgIHRlc3QgLWQgLmdpdCAmJiB2Y19p
Z25vcmU9LmdpdGlnbm9yZQorICAgIHRlc3QgLWQgQ1ZTICYmIHZjX2lnbm9yZT0iJHZjX2ln
bm9yZSAuY3ZzaWdub3JlIgorICBmaQorCisKKyAgIyBQYXJzZSBvcHRpb25zLgorCisgICMg
V2hldGhlciB0byB1c2UgY29waWVzIGluc3RlYWQgb2Ygc3ltbGlua3MuCisgIGNvcHk9ZmFs
c2UKKworICBmb3Igb3B0aW9uCisgIGRvCisgICAgY2FzZSAkb3B0aW9uIGluCisgICAgLS1o
ZWxwKQorICAgICAgYXV0b2dlbl91c2FnZQorICAgICAgcmV0dXJuOzsKKyAgICAtLXZlcnNp
b24pCisgICAgICBzZXQgLWUKKyAgICAgIGVjaG8gImF1dG9nZW4uc2ggJHNjcmlwdGxpYnZl
cnNpb24iCisgICAgICBlY2hvICIkY29weXJpZ2h0IgorICAgICAgcmV0dXJuIDAKKyAgICAg
IDs7CisgICAgLS1mb3JjZSkKKyAgICAgIGNoZWNrb3V0X29ubHlfZmlsZT07OworICAgIC0t
Y29weSkKKyAgICAgIGNvcHk9dHJ1ZTs7CisgICAgKikKKyAgICAgIGJvb3RzdHJhcF9vcHRp
b25faG9vayAkb3B0aW9uIHx8IGRpZSAiJG9wdGlvbjogdW5rbm93biBvcHRpb24iOzsKKyAg
ICBlc2FjCisgIGRvbmUKKworICB0ZXN0IC16ICIkR05VTElCX1NSQ0RJUiIgfHwgdGVzdCAt
ZCAiJEdOVUxJQl9TUkNESVIiIFwKKyAgICB8fCBkaWUgIkVycm9yOiBcJEdOVUxJQl9TUkNE
SVIgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgLS1nbnVsaWItc3JjZGlyIiBcCisgICAgICAg
ICAgICJvcHRpb24gaXMgc3BlY2lmaWVkLCBidXQgZG9lcyBub3QgZGVub3RlIGEgZGlyZWN0
b3J5IgorCisgIGlmIHRlc3QgLW4gIiRjaGVja291dF9vbmx5X2ZpbGUiICYmIHRlc3QgISAt
ciAiJGNoZWNrb3V0X29ubHlfZmlsZSI7IHRoZW4KKyAgICBkaWUgIlJ1bm5pbmcgdGhpcyBz
Y3JpcHQgZnJvbSBhIG5vbi1jaGVja2VkLW91dCBkaXN0cmlidXRpb24gaXMgcmlza3kuIgor
ICBmaQorCisgIGlmICR1c2VfZ251bGliOyB0aGVuCisgICAgaWYgdGVzdCAteiAiJEdOVUxJ
Ql9TUkNESVIiOyB0aGVuCisgICAgICBnbnVsaWJfcGF0aD0kKHRlc3QgLWYgLmdpdG1vZHVs
ZXMgJiYKKyAgICAgICAgICAgICAgICAgICAgZ2l0IGNvbmZpZyAtLWZpbGUgLmdpdG1vZHVs
ZXMgc3VibW9kdWxlLmdudWxpYi5wYXRoKQorICAgICAgdGVzdCAteiAiJGdudWxpYl9wYXRo
IiAmJiBnbnVsaWJfcGF0aD1nbnVsaWIKKyAgICAgIEdOVUxJQl9TUkNESVI9JGdudWxpYl9w
YXRoCisgICAgZmkKKyAgZmkKKworICAjIERpZSBpZiB0aGVyZSBpcyBubyBBQ19DT05GSUdf
QVVYX0RJUigkYnVpbGRfYXV4KSBsaW5lIGluIGNvbmZpZ3VyZS5hYy4KKyAgZm91bmRfYXV4
X2Rpcj1ubworICBncmVwICdeWwkgXSpBQ19DT05GSUdfQVVYX0RJUihcWyciJGJ1aWxkX2F1
eCInXSknIGNvbmZpZ3VyZS5hYyBcCisgICAgICA+L2Rldi9udWxsICYmIGZvdW5kX2F1eF9k
aXI9eWVzCisgIGdyZXAgJ15bCSBdKkFDX0NPTkZJR19BVVhfRElSKCciJGJ1aWxkX2F1eCIn
KScgY29uZmlndXJlLmFjIFwKKyAgICAgID4vZGV2L251bGwgJiYgZm91bmRfYXV4X2Rpcj15
ZXMKKyAgdGVzdCAkZm91bmRfYXV4X2RpciA9IHllcyBcCisgICAgfHwgZGllICJjb25maWd1
cmUuYWMgbGFja3MgJ0FDX0NPTkZJR19BVVhfRElSKFskYnVpbGRfYXV4XSknOyBhZGQgaXQi
CisKKyAgIyBJZiAkYnVpbGRfYXV4IGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZSBpdCBub3csIG90
aGVyd2lzZSBzb21lIGJpdHMKKyAgIyBiZWxvdyB3aWxsIG1hbGZ1bmN0aW9uLiAgSWYgY3Jl
YXRpbmcgaXQsIGFsc28gbWFyayBpdCBhcyBpZ25vcmVkLgorICBpZiB0ZXN0ICEgLWQgJGJ1
aWxkX2F1eDsgdGhlbgorICAgIG1rZGlyICRidWlsZF9hdXgKKyAgICBmb3IgZG90X2lnIGlu
IHggJHZjX2lnbm9yZTsgZG8KKyAgICAgIHRlc3QgJGRvdF9pZyA9IHggJiYgY29udGludWUK
KyAgICAgIGluc2VydF92Y19pZ25vcmUgJGRvdF9pZyAkYnVpbGRfYXV4LworICAgIGRvbmUK
KyAgZmkKKworICBjaGVja19idWlsZF9wcmVyZXF1aXNpdGVzIGZhbHNlCisKKyAgdXNlX2xp
YnRvb2w9MAorICAjIFdlJ2QgbGlrZSB0byB1c2UgZ3JlcCAtRSwgdG8gc2VlIGlmIGFueSBv
ZiBMVF9JTklULAorICAjIEFDX1BST0dfTElCVE9PTCwgQU1fUFJPR19MSUJUT09MIGlzIHVz
ZWQgaW4gY29uZmlndXJlLmFjLAorICAjIGJ1dCB0aGF0J3Mgbm90IHBvcnRhYmxlIGVub3Vn
aCAoZS5nLiwgZm9yIFNvbGFyaXMpLgorICBncmVwICdeWwkgXSpBW0NNXV9QUk9HX0xJQlRP
T0wnIGNvbmZpZ3VyZS5hYyA+L2Rldi9udWxsIFwKKyAgICAmJiB1c2VfbGlidG9vbD0xCisg
IGdyZXAgJ15bCSBdKkxUX0lOSVQnIGNvbmZpZ3VyZS5hYyA+L2Rldi9udWxsIFwKKyAgICAm
JiB1c2VfbGlidG9vbD0xCisgIGlmIHRlc3QgJHVzZV9saWJ0b29sID0gMTsgdGhlbgorICAg
IGZpbmRfdG9vbCBMSUJUT09MSVpFIGdsaWJ0b29saXplIGxpYnRvb2xpemUKKyAgZmkKKwor
ICBpZiAkdXNlX2dudWxpYjsgdGhlbgorICAgIGdudWxpYl90b29sPSRHTlVMSUJfU1JDRElS
L2dudWxpYi10b29sCisgICAgPCRnbnVsaWJfdG9vbCB8fCByZXR1cm4KKyAgZmkKKworICAj
IE5PVEU6IHdlIGhhdmUgdG8gYmUgY2FyZWZ1bCB0byBydW4gYm90aCBhdXRvcG9pbnQgYW5k
IGxpYnRvb2xpemUKKyAgIyBiZWZvcmUgZ251bGliLXRvb2wsIHNpbmNlIGdudWxpYi10b29s
IGlzIGxpa2VseSB0byBwcm92aWRlIG5ld2VyCisgICMgdmVyc2lvbnMgb2YgZmlsZXMgImlu
c3RhbGxlZCIgYnkgdGhlc2UgdHdvIHByb2dyYW1zLgorICAjIFRoZW4sICphZnRlciogZ251
bGliLXRvb2wgKHNlZSBiZWxvdyksIHdlIGhhdmUgdG8gYmUgY2FyZWZ1bCB0bworICAjIHJ1
biBhdXRvcmVjb25mIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBkb2VzIG5vdCBydW4gZWl0aGVy
IG9mIHRoZXNlCisgICMgdHdvIGp1c3QtcHJlLXJ1biBwcm9ncmFtcy4KKworICAjIEltcG9y
dCBmcm9tIGdldHRleHQuCisgIHdpdGhfZ2V0dGV4dD15ZXMKKyAgZ3JlcCAnXlsJIF0qQU1f
R05VX0dFVFRFWFRfVkVSU0lPTignIGNvbmZpZ3VyZS5hYyA+L2Rldi9udWxsIHx8IFwKKyAg
ICAgIHdpdGhfZ2V0dGV4dD1ubworCisgIGlmIHRlc3QgJHdpdGhfZ2V0dGV4dCA9IHllcyB8
fCB0ZXN0ICR1c2VfbGlidG9vbCA9IDE7IHRoZW4KKworICAgIHRlbXBiYXNlPS5ib290c3Ry
YXAkJAorICAgIHRyYXAgInJtIC1mICR0ZW1wYmFzZS4wICR0ZW1wYmFzZS4xIiBIVVAgSU5U
IFBJUEUgVEVSTQorCisgICAgPiAkdGVtcGJhc2UuMCA+ICR0ZW1wYmFzZS4xICYmCisgICAg
ZmluZCAuICEgLXR5cGUgZCAtcHJpbnQgfCBzb3J0ID4gJHRlbXBiYXNlLjAgfHwgcmV0dXJu
CisKKyAgICBpZiB0ZXN0ICR3aXRoX2dldHRleHQgPSB5ZXM7IHRoZW4KKyAgICAgICMgUmVs
ZWFzZWQgYXV0b3BvaW50IGhhcyB0aGUgdGVuZGVuY3kgdG8gaW5zdGFsbCBtYWNyb3MgdGhh
dCBoYXZlIGJlZW4KKyAgICAgICMgb2Jzb2xldGVkIGluIGN1cnJlbnQgZ251bGliLCBzbyBy
dW4gdGhpcyBiZWZvcmUgZ251bGliLXRvb2wuCisgICAgICBlY2hvICIkMDogJEFVVE9QT0lO
VCAtLWZvcmNlIgorICAgICAgJEFVVE9QT0lOVCAtLWZvcmNlIHx8IHJldHVybgorICAgIGZp
CisKKyAgICAjIEF1dG9yZWNvbmYgcnVucyBhY2xvY2FsIGJlZm9yZSBsaWJ0b29saXplLCB3
aGljaCBjYXVzZXMgc3B1cmlvdXMKKyAgICAjIHdhcm5pbmdzIGlmIHRoZSBpbml0aWFsIGFj
bG9jYWwgaXMgY29uZnVzZWQgYnkgdGhlIGxpYnRvb2xpemVkCisgICAgIyAob3Igd29yc2Ug
b3V0LW9mLWRhdGUpIG1hY3JvIGRpcmVjdG9yeS4KKyAgICAjIGxpYnRvb2xpemUgMS45YiBh
ZGRlZCB0aGUgLS1pbnN0YWxsIG9wdGlvbjsgYnV0IHdlIHN1cHBvcnQgYmFjaworICAgICMg
dG8gbGlidG9vbGl6ZSAxLjUuMjIsIHdoZXJlIHRoZSBpbnN0YWxsIGFjdGlvbiB3YXMgZGVm
YXVsdC4KKyAgICBpZiB0ZXN0ICR1c2VfbGlidG9vbCA9IDE7IHRoZW4KKyAgICAgIGluc3Rh
bGw9CisgICAgICBjYXNlICQoJExJQlRPT0xJWkUgLS1oZWxwKSBpbgorICAgICAgICAqLS1p
bnN0YWxsKikgaW5zdGFsbD0tLWluc3RhbGwgOzsKKyAgICAgIGVzYWMKKyAgICAgIGVjaG8g
InJ1bm5pbmc6ICRMSUJUT09MSVpFICRpbnN0YWxsIC0tY29weSIKKyAgICAgICRMSUJUT09M
SVpFICRpbnN0YWxsIC0tY29weQorICAgIGZpCisKKyAgICBmaW5kIC4gISAtdHlwZSBkIC1w
cmludCB8IHNvcnQgPiR0ZW1wYmFzZS4xCisgICAgb2xkX0lGUz0kSUZTCisgICAgSUZTPSRu
bAorICAgIGZvciBmaWxlIGluICQoY29tbSAtMTMgJHRlbXBiYXNlLjAgJHRlbXBiYXNlLjEp
OyBkbworICAgICAgSUZTPSRvbGRfSUZTCisgICAgICBwYXJlbnQ9JHtmaWxlJS8qfQorICAg
ICAgdmVyc2lvbl9jb250cm9sbGVkX2ZpbGUgIiRwYXJlbnQiICIkZmlsZSIgfHwgeworICAg
ICAgICBmb3IgZG90X2lnIGluIHggJHZjX2lnbm9yZTsgZG8KKyAgICAgICAgICB0ZXN0ICRk
b3RfaWcgPSB4ICYmIGNvbnRpbnVlCisgICAgICAgICAgaWc9JHBhcmVudC8kZG90X2lnCisg
ICAgICAgICAgaW5zZXJ0X3ZjX2lnbm9yZSAiJGlnIiAiJHtmaWxlIyMqL30iCisgICAgICAg
IGRvbmUKKyAgICAgIH0KKyAgICBkb25lCisgICAgSUZTPSRvbGRfSUZTCisKKyAgICBybSAt
ZiAkdGVtcGJhc2UuMCAkdGVtcGJhc2UuMQorICAgIHRyYXAgLSBIVVAgSU5UIFBJUEUgVEVS
TQorICBmaQorCisgICMgSW1wb3J0IGZyb20gZ251bGliLgorCisgIGlmICR1c2VfZ251bGli
OyB0aGVuCisgICAgZ251bGliX3Rvb2xfb3B0aW9ucz0iXAorICAgICAtLW5vLWNoYW5nZWxv
Z1wKKyAgICAgLS1hdXgtZGlyPSRidWlsZF9hdXhcCisgICAgIC0tZG9jLWJhc2U9JGRvY19i
YXNlXAorICAgICAtLWxpYj0kZ251bGliX25hbWVcCisgICAgIC0tbTQtYmFzZT0kbTRfYmFz
ZS9cCisgICAgIC0tc291cmNlLWJhc2U9JHNvdXJjZV9iYXNlL1wKKyAgICAgLS10ZXN0cy1i
YXNlPSR0ZXN0c19iYXNlXAorICAgICAtLWxvY2FsLWRpcj0kbG9jYWxfZ2xfZGlyXAorICAg
ICAkZ251bGliX3Rvb2xfb3B0aW9uX2V4dHJhc1wKKyAgICAiCisgICAgaWYgdGVzdCAkdXNl
X2xpYnRvb2wgPSAxOyB0aGVuCisgICAgICBjYXNlICIkZ251bGliX3Rvb2xfb3B0aW9ucyAi
IGluCisgICAgICAgIConIC0tbGlidG9vbCAnKikgOzsKKyAgICAgICAgKikgZ251bGliX3Rv
b2xfb3B0aW9ucz0iJGdudWxpYl90b29sX29wdGlvbnMgLS1saWJ0b29sIiA7OworICAgICAg
ZXNhYworICAgIGZpCisgICAgZWNobyAiJDA6ICRnbnVsaWJfdG9vbCAkZ251bGliX3Rvb2xf
b3B0aW9ucyAtLWltcG9ydCAuLi4iCisgICAgJGdudWxpYl90b29sICRnbnVsaWJfdG9vbF9v
cHRpb25zIC0taW1wb3J0ICRnbnVsaWJfbW9kdWxlcyBcCisgICAgICB8fCBkaWUgImdudWxp
Yi10b29sIGZhaWxlZCIKKworICAgIGlmIHRlc3QgJHdpdGhfZ2V0dGV4dCA9IHllcyAmJiB0
ZXN0ICEgLWYgJG00X2Jhc2UvZ2V0dGV4dC5tNDsgdGhlbgorICAgICAgIyBUaGUgZ251bGli
LXRvb2wgaW52b2NhdGlvbiBoYXMgcmVtb3ZlZCAkbTRfYmFzZS9nZXR0ZXh0Lm00LCB0aGF0
IHRoZQorICAgICAgIyBBVVRPUE9JTlQgaW52b2NhdGlvbiBoYWQgaW5zdGFsbGVkLiBUaGlz
IGNhbiBvY2N1ciB3aGVuIHRoZSBnbnVsaWIKKyAgICAgICMgbW9kdWxlICdnZXR0ZXh0JyB3
YXMgcHJldmlvdXNseSBwcmVzZW50IGJ1dCBpcyBub3cgbm90IHByZXNlbnQgYW55IG1vcmUu
CisgICAgICAjIFJlcGVhdCB0aGUgQVVUT1BPSU5UIGludm9jYXRpb24gYW5kIHRoZSBnbnVs
aWItdG9vbCBpbnZvY2F0aW9uLgorCisgICAgICBlY2hvICIkMDogJEFVVE9QT0lOVCAtLWZv
cmNlIgorICAgICAgJEFVVE9QT0lOVCAtLWZvcmNlIHx8IHJldHVybgorCisgICAgICBlY2hv
ICIkMDogJGdudWxpYl90b29sICRnbnVsaWJfdG9vbF9vcHRpb25zIC0taW1wb3J0IC4uLiIK
KyAgICAgICRnbnVsaWJfdG9vbCAkZ251bGliX3Rvb2xfb3B0aW9ucyAtLWltcG9ydCAkZ251
bGliX21vZHVsZXMgXAorICAgICAgICB8fCBkaWUgImdudWxpYi10b29sIGZhaWxlZCIKKyAg
ICBmaQorCisgICAgZm9yIGZpbGUgaW4gJGdudWxpYl9maWxlczsgZG8KKyAgICAgIHN5bWxp
bmtfdG9fZGlyICIkR05VTElCX1NSQ0RJUiIgJGZpbGUgXAorICAgICAgICB8fCBkaWUgImZh
aWxlZCB0byBzeW1saW5rICRmaWxlIgorICAgIGRvbmUKKyAgZmkKKworICBib290c3RyYXBf
cG9zdF9pbXBvcnRfaG9vayBcCisgICAgfHwgZGllICJib290c3RyYXBfcG9zdF9pbXBvcnRf
aG9vayBmYWlsZWQiCisKKyAgIyBSZW1vdmUgYW55IGRhbmdsaW5nIHN5bWxpbmsgbWF0Y2hp
bmcgIioubTQiIG9yICIqLltjaF0iIGluIHNvbWUKKyAgIyBnbnVsaWItcG9wdWxhdGVkIGRp
cmVjdG9yaWVzLiAgU3VjaCAubTQgZmlsZXMgd291bGQgY2F1c2UgYWNsb2NhbCB0byBmYWls
LgorICAjIFRoZSBmb2xsb3dpbmcgcmVxdWlyZXMgR05VIGZpbmQgNC4yLjMgb3IgbmV3ZXIu
ICBDb25zaWRlcmluZyB0aGUgdXN1YWwKKyAgIyBwb3J0YWJpbGl0eSBjb25zdHJhaW50cyBv
ZiB0aGlzIHNjcmlwdCwgdGhhdCBtYXkgc2VlbSBhIHZlcnkgZGVtYW5kaW5nCisgICMgcmVx
dWlyZW1lbnQsIGJ1dCBpdCBzaG91bGQgYmUgb2suICBJZ25vcmUgYW55IGZhaWx1cmUsIHdo
aWNoIGlzIGZpbmUsCisgICMgc2luY2UgdGhpcyBpcyBvbmx5IGEgY29udmVuaWVuY2UgdG8g
aGVscCBkZXZlbG9wZXJzIGF2b2lkIHRoZSByZWxhdGl2ZWx5CisgICMgdW51c3VhbCBjYXNl
IGluIHdoaWNoIGEgc3ltbGlua2VkLXRvIC5tNCBmaWxlIGlzIGdpdC1yZW1vdmVkIGZyb20g
Z251bGliCisgICMgYmV0d2VlbiBzdWNjZXNzaXZlIHJ1bnMgb2YgdGhpcyBzY3JpcHQuCisg
IGZpbmQgIiRtNF9iYXNlIiAiJHNvdXJjZV9iYXNlIiBcCisgICAgLWRlcHRoIFwoIC1uYW1l
ICcqLm00JyAtbyAtbmFtZSAnKi5bY2hdJyBcKSBcCisgICAgLXR5cGUgbCAteHR5cGUgbCAt
ZGVsZXRlID4gL2Rldi9udWxsIDI+JjEKKworICAjIEludm9rZSBhdXRvcmVjb25mIHdpdGgg
LS1mb3JjZSAtLWluc3RhbGwgdG8gZW5zdXJlIHVwZ3JhZGVzIG9mIHRvb2xzCisgICMgc3Vj
aCBhcyB5bHdyYXAuCisgIEFVVE9SRUNPTkZGTEFHUz0iLS12ZXJib3NlIC0taW5zdGFsbCAt
LWZvcmNlIC1JICRtNF9iYXNlICRBQ0xPQ0FMX0ZMQUdTIgorICBBVVRPUkVDT05GRkxBR1M9
IiRBVVRPUkVDT05GRkxBR1MgLS1uby1yZWN1cnNpdmUiCisKKyAgIyBUZWxsIGF1dG9yZWNv
bmYgbm90IHRvIGludm9rZSBhdXRvcG9pbnQgb3IgbGlidG9vbGl6ZTsgdGhleSB3ZXJlIHJ1
biBhYm92ZS4KKyAgZWNobyAicnVubmluZzogQVVUT1BPSU5UPXRydWUgTElCVE9PTElaRT10
cnVlICRBVVRPUkVDT05GICRBVVRPUkVDT05GRkxBR1MiCisgIEFVVE9QT0lOVD10cnVlIExJ
QlRPT0xJWkU9dHJ1ZSAkQVVUT1JFQ09ORiAkQVVUT1JFQ09ORkZMQUdTIFwKKyAgICB8fCBk
aWUgImF1dG9yZWNvbmYgZmFpbGVkIgorCisgICMgR2V0IHNvbWUgZXh0cmEgZmlsZXMgZnJv
bSBnbnVsaWIsIG92ZXJyaWRpbmcgZXhpc3RpbmcgZmlsZXMuCisgIGZvciBmaWxlIGluICRn
bnVsaWJfZXh0cmFfZmlsZXM7IGRvCisgICAgY2FzZSAkZmlsZSBpbgorICAgICAgKi9JTlNU
QUxMKSBkc3Q9SU5TVEFMTDs7CisgICAgICBidWlsZC1hdXgvKikgZHN0PSRidWlsZF9hdXgv
JHtmaWxlI2J1aWxkLWF1eC99OzsKKyAgICAgICopIGRzdD0kZmlsZTs7CisgICAgZXNhYwor
ICAgIHN5bWxpbmtfdG9fZGlyICIkR05VTElCX1NSQ0RJUiIgJGZpbGUgJGRzdCBcCisgICAg
ICB8fCBkaWUgImZhaWxlZCB0byBzeW1saW5rICRmaWxlIgorICBkb25lCisKKyAgaWYgdGVz
dCAkd2l0aF9nZXR0ZXh0ID0geWVzOyB0aGVuCisgICAgIyBDcmVhdGUgZ2V0dGV4dCBjb25m
aWd1cmF0aW9uLgorICAgIGVjaG8gIiQwOiBDcmVhdGluZyBwby9NYWtldmFycyBmcm9tIHBv
L01ha2V2YXJzLnRlbXBsYXRlIC4uLiIKKyAgICBybSAtZiBwby9NYWtldmFycworICAgIHNl
ZCAnCisgICAgICAvXkVYVFJBX0xPQ0FMRV9DQVRFR09SSUVTICo9L3MvPS4qLz0gJyIkRVhU
UkFfTE9DQUxFX0NBVEVHT1JJRVMiJy8KKyAgICAgIC9eQ09QWVJJR0hUX0hPTERFUiAqPS9z
Lz0uKi89ICciJENPUFlSSUdIVF9IT0xERVIiJy8KKyAgICAgIC9eTVNHSURfQlVHU19BRERS
RVNTICo9L3N8PS4qfD0gJyIkTVNHSURfQlVHU19BRERSRVNTIid8CisgICAgICAvXlhHRVRU
RVhUX09QVElPTlMgKj0veworICAgICAgICBzLyQvIFxcLworICAgICAgICBhXAorICAgICAg
ICAgICAgJyIkWEdFVFRFWFRfT1BUSU9OUyInICQke2VuZF9vZl94Z2V0dGV4dF9vcHRpb25z
K30KKyAgICAgIH0KKyAgICAnIHBvL01ha2V2YXJzLnRlbXBsYXRlID5wby9NYWtldmFycyBc
CisgICAgICB8fCBkaWUgJ2Nhbm5vdCBnZW5lcmF0ZSBwby9NYWtldmFycycKKworICAgICMg
SWYgdGhlICdnZXR0ZXh0JyBtb2R1bGUgaXMgaW4gdXNlLCBncmFiIHRoZSBsYXRlc3QgTWFr
ZWZpbGUuaW4uaW4uCisgICAgIyBJZiBvbmx5IHRoZSAnZ2V0dGV4dC1oJyBtb2R1bGUgaXMg
aW4gdXNlLCBhc3N1bWUgYXV0b3BvaW50IGFscmVhZHkKKyAgICAjIHB1dCB0aGUgY29ycmVj
dCB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBpbnRvIHBsYWNlLgorICAgIGNhc2UgJGdudWxpYl9t
b2R1bGVzIGluCisgICAgICAqZ2V0dGV4dC1oKikgOzsKKyAgICAgICpnZXR0ZXh0KikKKyAg
ICAgICAgY3AgJEdOVUxJQl9TUkNESVIvYnVpbGQtYXV4L3BvL01ha2VmaWxlLmluLmluIHBv
L01ha2VmaWxlLmluLmluIFwKKyAgICAgICAgICB8fCBkaWUgImNhbm5vdCBjcmVhdGUgcG8v
TWFrZWZpbGUuaW4uaW4iCisgICAgICAgIDs7CisgICAgZXNhYworCisgICAgaWYgdGVzdCAt
ZCBydW50aW1lLXBvOyB0aGVuCisgICAgICAjIFNpbWlsYXJseSBmb3IgcnVudGltZS1wby9N
YWtldmFycywgYnV0IG5vdCBxdWl0ZSB0aGUgc2FtZS4KKyAgICAgIHJtIC1mIHJ1bnRpbWUt
cG8vTWFrZXZhcnMKKyAgICAgIHNlZCAnCisgICAgICAgIC9eRE9NQUlOICo9Liovcy89Liov
PSAnIiRwYWNrYWdlIictcnVudGltZS8KKyAgICAgICAgL15zdWJkaXIgKj0uKi9zLz0uKi89
IHJ1bnRpbWUtcG8vCisgICAgICAgIC9eTVNHSURfQlVHU19BRERSRVNTICo9L3MvPS4qLz0g
YnVnLSciJHBhY2thZ2UiJ0BnbnUub3JnLworICAgICAgICAvXlhHRVRURVhUX09QVElPTlMg
Kj0veworICAgICAgICAgIHMvJC8gXFwvCisgICAgICAgICAgYVwKKyAgICAgICAgICAgICAg
JyIkWEdFVFRFWFRfT1BUSU9OU19SVU5USU1FIicgJCR7ZW5kX29mX3hnZXR0ZXh0X29wdGlv
bnMrfQorICAgICAgICB9CisgICAgICAnIHBvL01ha2V2YXJzLnRlbXBsYXRlID5ydW50aW1l
LXBvL01ha2V2YXJzIFwKKyAgICAgIHx8IGRpZSAnY2Fubm90IGdlbmVyYXRlIHJ1bnRpbWUt
cG8vTWFrZXZhcnMnCisKKyAgICAgICMgQ29weSBpZGVudGljYWwgZmlsZXMgZnJvbSBwbyB0
byBydW50aW1lLXBvLgorICAgICAgY3AgLXAgcG8vTWFrZWZpbGUuaW4uaW4gcG8vKi1xdW90
IHBvLyouaGVhZGVyIHBvLyouc2VkIHBvLyouc2luIHJ1bnRpbWUtcG8KKyAgICBmaQorICBm
aQorCisgIGJvb3RzdHJhcF9lcGlsb2d1ZQorCisgIGVjaG8gIiQwOiBkb25lLiAgTm93IHlv
dSBjYW4gcnVuICcuL2NvbmZpZ3VyZScuIgorfQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAogIyBMb2NhbCBWYXJpYWJsZXM6Ci0jIGV2YWw6IChhZGQtaG9vayAnYmVmb3JlLXNh
dmUtaG9vayAndGltZS1zdGFtcCkKLSMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNp
b249IgorIyBldmFsOiAoYWRkLWhvb2sgJ2JlZm9yZS1zYXZlLWhvb2sgJ3RpbWUtc3RhbXAg
bmlsIHQpCisjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHRsaWJ2ZXJzaW9uPSIKICMgdGlt
ZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCiAjIHRpbWUtc3RhbXAtdGlt
ZS16b25lOiAiVVRDMCIKICMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgpkaWZmIC0tZ2l0
IGEvbGliLy5naXRpZ25vcmUgYi9saWIvLmdpdGlnbm9yZQppbmRleCA5ZjE1ODY4Zi4uNjQ3
MDI1YmMgMTAwNjQ0Ci0tLSBhL2xpYi8uZ2l0aWdub3JlCisrKyBiL2xpYi8uZ2l0aWdub3Jl
CkBAIC0xOCw2ICsxOCw3IEBACiAvYXJnbWF0Y2guaAogL2FzbnByaW50Zi5jCiAvYXNwcmlu
dGYuYworL2Fzc2VydC5pbi5oCiAvYXNzdXJlLmgKIC9hdC1mdW5jLmMKIC9hdHRyaWJ1dGUu
aApAQCAtNDIsNiArNDMsMjIgQEAKIC9jLXN0cm5jYXNlY21wLmMKIC9jLXN0cnRvZC5jCiAv
Yy1zdHJ0b2QuaAorL2MzMmlzLWltcGwuaAorL2MzMmlzYWxudW0uYworL2MzMmlzYWxwaGEu
YworL2MzMmlzYmxhbmsuYworL2MzMmlzY250cmwuYworL2MzMmlzZGlnaXQuYworL2MzMmlz
Z3JhcGguYworL2MzMmlzbG93ZXIuYworL2MzMmlzcHJpbnQuYworL2MzMmlzcHVuY3QuYwor
L2MzMmlzc3BhY2UuYworL2MzMmlzdXBwZXIuYworL2MzMmlzeGRpZ2l0LmMKKy9jMzJ0by1p
bXBsLmgKKy9jMzJ0b2xvd2VyLmMKKy9jMzJ3aWR0aC5jCiAvY2FsbG9jLmMKIC9jYW5vbmlj
YWxpemUtbGdwbC5jCiAvY2Fub25pY2FsaXplLmMKQEAgLTgxLDYgKzk4LDcgQEAKIC9lcnJu
by5pbi5oCiAvZXJyb3IuYwogL2Vycm9yLmgKKy9lcnJvci5pbi5oCiAvZXhlY3V0ZS5jCiAv
ZXhlY3V0ZS5oCiAvZXhpdGZhaWwuYwpAQCAtMjI4LDEwICsyNDYsMTIgQEAKIC9pc25hbmwu
YwogL2lzd2JsYW5rLmMKIC9pc3dkaWdpdC5jCisvaXN3cHVuY3QuYwogL2lzd3hkaWdpdC5j
CiAvaXRvbGQuYwogL2xjLWNoYXJzZXQtZGlzcGF0Y2guYwogL2xjLWNoYXJzZXQtZGlzcGF0
Y2guaAorL2xkZXhwLmMKIC9sZGV4cGwuYwogL2xpYmMtY29uZmlnLmgKIC9saW1pdHMuaApA
QCAtMjUxLDEyICsyNzEsMTQgQEAKIC9tYmNoYXIuaAogL21iZmlsZS5jCiAvbWJmaWxlLmgK
Ky9tYnJ0b2MzMi5jCiAvbWJydG93Yy1pbXBsLXV0ZjguaAogL21icnRvd2MtaW1wbC5oCiAv
bWJydG93Yy5jCiAvbWJzaW5pdC5jCiAvbWJzd2lkdGguYwogL21ic3dpZHRoLmgKKy9tYnN6
ZXJvLmMKIC9tYnRvd2MtbG9jay5jCiAvbWJ0b3djLWxvY2suaAogL21lbWNoci5jCkBAIC0y
NzAsNiArMjkyLDcgQEAKIC9tc3ZjLW5vdGhyb3cuaAogL29ic3RhY2suYwogL29ic3RhY2su
aAorL29ic3RhY2suaW4uaAogL29ic3RhY2tfcHJpbnRmLmMKIC9vcGVuLmMKIC9vcGVuYXQt
ZGllLmMKQEAgLTI5OCw2ICszMjEsOCBAQAogL3Byb2duYW1lLmMKIC9wcm9nbmFtZS5oCiAv
cHJvZ3JlbG9jLmMKKy9wdGhyZWFkLW9uY2UuYworL3B0aHJlYWQuaW4uaAogL3F1b3RlLmgK
IC9xdW90ZWFyZy5jCiAvcXVvdGVhcmcuaApAQCAtMzE4LDYgKzM0Myw3IEBACiAvcmVuYW1l
LmMKIC9yZXdpbmRkaXIuYwogL3JtZGlyLmMKKy9zYW1lLWlub2RlLmMKIC9zYW1lLWlub2Rl
LmgKIC9zYXZlLWN3ZC5jCiAvc2F2ZS1jd2QuaApAQCAtMzI2LDYgKzM1Miw3IEBACiAvc2Ny
YXRjaF9idWZmZXIuaAogL3NldGVudi5jCiAvc2V0bG9jYWxlLWxvY2suYworL3NldGxvY2Fs
ZV9udWxsLXVubG9ja2VkLmMKIC9zZXRsb2NhbGVfbnVsbC5jCiAvc2V0bG9jYWxlX251bGwu
aAogL3NpZy1oYW5kbGVyLmMKQEAgLTM2NSw5ICszOTIsNyBAQAogL3N0YXQtdzMyLmMKIC9z
dGF0LXczMi5oCiAvc3RhdC5jCi0vc3RkYWxpZ24uaW4uaAogL3N0ZGJvb2wuaAotL3N0ZGJv
b2wuaW4uaAogL3N0ZGNrZGludC5pbi5oCiAvc3RkZGVmLmgKIC9zdGRkZWYuaW4uaApAQCAt
MzgwLDYgKzQwNSw3IEBACiAvc3RkaW8td3JpdGUuYwogL3N0ZGlvLmgKIC9zdGRpby5pbi5o
Cisvc3RkbGliLmMKIC9zdGRsaWIuaAogL3N0ZGxpYi5pbi5oCiAvc3RwY3B5LmMKQEAgLTQy
MSw5ICs0NDcsMTMgQEAKIC90aW1lc3BlYy5oCiAvdGltZXZhci5jCiAvdGltZXZhci5oCisv
dWNoYXIuaW4uaAorL3VuaWNhc2UuaW4uaAogL3VuaWNvZGVpby5jCiAvdW5pY29kZWlvLmgK
Ky91bmljdHlwZS5pbi5oCiAvdW5pY3R5cGUvCisvdW5pbm9ybS5pbi5oCiAvdW5pc3RkLS0u
aAogL3VuaXN0ZC1zYWZlci5oCiAvdW5pc3RkLmMKQEAgLTQ0NSw4ICs0NzUsMTEgQEAKIC92
YXNwcmludGYuYwogL3ZlcmlmeS5oCiAvdmZwcmludGYuYworL3ZmenByaW50Zi5jCiAvdnNu
cHJpbnRmLmMKKy92c256cHJpbnRmLmMKIC92c3ByaW50Zi5jCisvdnN6cHJpbnRmLmMKIC93
YWl0LXByb2Nlc3MuYwogL3dhaXQtcHJvY2Vzcy5oCiAvd2FpdHBpZC5jCkBAIC00NjIsNiAr
NDk1LDggQEAKIC93aW5kb3dzLW11dGV4LmgKIC93aW5kb3dzLW9uY2UuYwogL3dpbmRvd3Mt
b25jZS5oCisvd2luZG93cy1wYXRoLmMKKy93aW5kb3dzLXBhdGguaAogL3dpbmRvd3MtcmVj
bXV0ZXguYwogL3dpbmRvd3MtcmVjbXV0ZXguaAogL3dpbmRvd3Mtcndsb2NrLmMKZGlmZiAt
LWdpdCBhL2xpYi9nbHRocmVhZC8uZ2l0aWdub3JlIGIvbGliL2dsdGhyZWFkLy5naXRpZ25v
cmUKaW5kZXggYjg1NDIxNGUuLjU1MTVkN2MxIDEwMDY0NAotLS0gYS9saWIvZ2x0aHJlYWQv
LmdpdGlnbm9yZQorKysgYi9saWIvZ2x0aHJlYWQvLmdpdGlnbm9yZQpAQCAtMSw1ICsxLDcg
QEAKIC9sb2NrLmMKIC9sb2NrLmgKKy9vbmNlLmMKKy9vbmNlLmgKIC90aHJlYWRsaWIuYwog
L3Rscy5jCiAvdGxzLmgKZGlmZiAtLWdpdCBhL2xpYi9tYWxsb2MvLmdpdGlnbm9yZSBiL2xp
Yi9tYWxsb2MvLmdpdGlnbm9yZQppbmRleCA1Zjg4NjZmOS4uN2Y0ZTAyMGYgMTAwNjQ0Ci0t
LSBhL2xpYi9tYWxsb2MvLmdpdGlnbm9yZQorKysgYi9saWIvbWFsbG9jLy5naXRpZ25vcmUK
QEAgLTEsNiArMSw1IEBACiAvc2NyYXRjaF9idWZmZXIuZ2wuaAogL3NjcmF0Y2hfYnVmZmVy
LmgKLS9zY3JhdGNoX2J1ZmZlcl9kdXBmcmVlLmMKIC9zY3JhdGNoX2J1ZmZlcl9ncm93LmMK
IC9zY3JhdGNoX2J1ZmZlcl9ncm93X3ByZXNlcnZlLmMKIC9zY3JhdGNoX2J1ZmZlcl9zZXRf
YXJyYXlfc2l6ZS5jCmRpZmYgLS1naXQgYS9tNC8uZ2l0aWdub3JlIGIvbTQvLmdpdGlnbm9y
ZQppbmRleCA0NzQ4YzZlMC4uNjI3Yzg0NWEgMTAwNjQ0Ci0tLSBhL200Ly5naXRpZ25vcmUK
KysrIGIvbTQvLmdpdGlnbm9yZQpAQCAtNiw4ICs2LDEyIEBACiAvYWxsb2NhLm00CiAvYXNt
LXVuZGVyc2NvcmUubTQKIC9hc3NlcnQubTQKKy9hc3NlcnRfaC5tNAorL2J1aWxkLXRvLWhv
c3QubTQKIC9idWlsdGluLWV4cGVjdC5tNAorL2MtYm9vbC5tNAogL2Mtc3RydG9kLm00Cisv
YzMycnRvbWIubTQKIC9jYWxsb2MubTQKIC9jYW5vbmljYWxpemUubTQKIC9jaGRpci1sb25n
Lm00CkBAIC0yNCwyMyArMjgsMjYgQEAKIC9kdXAubTQKIC9kdXAyLm00CiAvZWFjY2Vzcy5t
NAotL2VlYWxsb2MubTQKIC9lbnZpcm9uLm00CiAvZXJybm9faC5tNAogL2Vycm9yLm00Cisv
ZXJyb3JfaC5tNAogL2V4ZWN1dGUubTQKIC9leHBvbmVudGQubTQKIC9leHBvbmVudGYubTQK
IC9leHBvbmVudGwubTQKKy9leHRlbnNpb25zLWFpeC5tNAogL2V4dGVuc2lvbnMubTQKIC9l
eHRlcm4taW5saW5lLm00CiAvZXh0ZXJuLWlubGluZS5tNH4KIC9mYXRhbC1zaWduYWwubTQK
IC9mY2hkaXIubTQKKy9mY2xvc2UubTQKIC9mY250bC1vLm00CiAvZmNudGwubTQKIC9mY250
bF9oLm00CiAvZmRvcGVuZGlyLm00CisvZmZsdXNoLm00CiAvZmZzLm00CiAvZmZzbC5tNAog
L2ZpbGVuYW1lY2F0Lm00CkBAIC02NSw3ICs3Miw2IEBACiAvZ2V0aHJ4dGltZS5tNAogL2dl
dGxpbmUubTQKIC9nZXRvcHQubTQKLS9nZXRwYWdlc2l6ZS5tNAogL2dldHByb2duYW1lLm00
CiAvZ2V0cnVzYWdlLm00CiAvZ2V0dGV4dC5tNApAQCAtNzYsMTIgKzgyLDE0IEBACiAvZ251
bGliLWNhY2hlLm00CiAvZ251bGliLWNvbW1vbi5tNAogL2dudWxpYi1jb21wLm00CisvZ251
bGliLWkxOG4ubTQKIC9nbnVsaWItdG9vbC5tNAogL2hvc3QtY3B1LWMtYWJpLm00CiAvaWNv
bnYubTQKIC9pY29udl9oLm00CiAvaWNvbnZfb3Blbi5tNAogL2luY2x1ZGVfbmV4dC5tNAor
L2luaXQtcGFja2FnZS12ZXJzaW9uLm00CiAvaW5saW5lLm00CiAvaW50ZGl2MC5tNAogL2lu
dGwtdGhyZWFkLWxvY2FsZS5tNApAQCAtOTksNiArMTA3LDcgQEAKIC9pc25hbmwubTQKIC9p
c3dibGFuay5tNAogL2lzd2RpZ2l0Lm00CisvaXN3cHVuY3QubTQKIC9pc3d4ZGlnaXQubTQK
IC9qYXZhY29tcC5tNAogL2phdmFleGVjLm00CkBAIC0xMTYsNiArMTI1LDcgQEAKIC9saWJ1
bmlzdHJpbmctYmFzZS5tNAogL2xpbWl0cy1oLm00CiAvbG9jYWxjaGFyc2V0Lm00CisvbG9j
YWxlLWVuLm00CiAvbG9jYWxlLWZyLm00CiAvbG9jYWxlLWphLm00CiAvbG9jYWxlLXpoLm00
CkBAIC0xMjgsNiArMTM4LDcgQEAKIC9tYXRoX2gubTQKIC9tYmNoYXIubTQKIC9tYmZpbGUu
bTQKKy9tYnJ0b2MzMi5tNAogL21icnRvd2MubTQKIC9tYnNpbml0Lm00CiAvbWJzdGF0ZV90
Lm00CkBAIC0xNDYsNyArMTU3LDkgQEAKIC9ub2NyYXNoLm00CiAvb2JzdGFjay1wcmludGYu
bTQKIC9vYnN0YWNrLm00Cisvb2ZmNjRfdC5tNAogL29mZl90Lm00Cisvb25jZS5tNAogL29w
ZW4tY2xvZXhlYy5tNAogL29wZW4tc2xhc2gubTQKIC9vcGVuLm00CkBAIC0xNjIsMTAgKzE3
NSwxMiBAQAogL3Bvc2l4X3NwYXduX2ZhY3Rpb25fYWRkY2hkaXIubTQKIC9wcmludGYtZnJl
eHAubTQKIC9wcmludGYtZnJleHBsLm00Ci0vcHJpbnRmLXBvc2l4LXJwbC5tNAogL3ByaW50
Zi1wb3NpeC5tNAogL3ByaW50Zi5tNAogL3Byb2d0ZXN0Lm00CisvcHRocmVhZC1vbmNlLm00
CisvcHRocmVhZC1zcGluLm00CisvcHRocmVhZF9oLm00CiAvcHRocmVhZF9yd2xvY2tfcmRs
b2NrLm00CiAvcXVvdGUubTQKIC9xdW90ZWFyZy5tNApAQCAtMjAyLDcgKzIxNyw2IEBACiAv
c3RhdC5tNAogL3N0ZC1nbnUxMS5tNAogL3N0ZGFsaWduLm00Ci0vc3RkYm9vbC5tNAogL3N0
ZGRlZl9oLm00CiAvc3RkaW50Lm00CiAvc3RkaW50X2gubTQKQEAgLTIyMCw2ICsyMzQsNyBA
QAogL3N0cm5sZW4ubTQKIC9zdHJ0b2QubTQKIC9zdHJ2ZXJzY21wLm00Cisvc3lzX2NkZWZz
X2gubTQKIC9zeXNfaW9jdGxfaC5tNAogL3N5c19yZXNvdXJjZV9oLm00CiAvc3lzX3NvY2tl
dF9oLm00CkBAIC0yMzMsOCArMjQ4LDEyIEBACiAvdGltZV9oLm00CiAvdGltZXNwZWMubTQK
IC90bHMubTQKKy91Y2hhcl9oLm00CiAvdWludG1heF90Lm00CisvdW5pY2FzZV9oLm00CiAv
dW5pY29kZWlvLm00CisvdW5pY3R5cGVfaC5tNAorL3VuaW5vcm1faC5tNAogL3VuaXN0ZC1z
YWZlci5tNAogL3VuaXN0ZF9oLm00CiAvdW5saW5rLm00CkBAIC0yNTMsMTIgKzI3MiwxMCBA
QAogL3dhcm4tb24tdXNlLm00CiAvd2FybmluZ3MubTQKIC93Y2hhcl9oLm00Ci0vd2NoYXJf
dC5tNAogL3djdHlwZV9oLm00CiAvd2N3aWR0aC5tNAogL3dpbnRfdC5tNAogL3hhbGxvYy5t
NAogL3hzaXplLm00CiAveHN0cm5kdXAubTQKLS95ZWFyMjAzOC5tNAogL3p6Z251bGliLm00
Ci0tIAoyLjQ4LjEKCg==
--------------uFjIZvzExWSiiDinsphmqzeO
Content-Type: text/x-patch; charset=UTF-8;
 name="0003-doc-pacify-texinfo-7.1.patch"
Content-Disposition: attachment; filename="0003-doc-pacify-texinfo-7.1.patch"
Content-Transfer-Encoding: base64

RnJvbSAzYWQzMWMyM2YxMDFkZWEyM2U5OGQxZTI3N2UyNGZmMzcxY2Y0ZjA5IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBXZWQsIDEyIE1hciAyMDI1IDE3OjI4OjAzIC0wNzAwClN1YmplY3Q6IFtQQVRD
SCAzLzZdIGRvYzogcGFjaWZ5IHRleGluZm8gNy4xCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CgoqIGRvYy9iaXNvbi50ZXhpOiBEb27igJl0IHB1dCBAYW5jaG9yIGlu
c2lkZSBAaXRlbSwKYXMgdGV4aW5mbyA3LjEgY29tcGxhaW5zLgotLS0KIGRvYy9iaXNvbi50
ZXhpIHwgNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEg
ZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9kb2MvYmlzb24udGV4aSBiL2RvYy9iaXNvbi50ZXhpCmluZGV4IDVmZmUyMWQw
Li5hOGU0NzU4MCAxMDA2NDQKLS0tIGEvZG9jL2Jpc29uLnRleGkKKysrIGIvZG9jL2Jpc29u
LnRleGkKQEAgLTExNjQ4LDIyICsxMTY0OCwyNiBAQCBEaWFnbm9zdGljcwogT3V0cHV0IHdh
cm5pbmdzIGZhbGxpbmcgaW4gQHZhcntjYXRlZ29yeX0uICBAdmFye2NhdGVnb3J5fSBjYW4g
YmUgb25lCiBvZjoKIEB0YWJsZSBAY29kZQotQGl0ZW0gQGFuY2hvcntXY29uZmxpY3RzLXNy
fWNvbmZsaWN0cy1zcgotQGl0ZW14IEBhbmNob3J7V2NvbmZsaWN0cy1ycn1jb25mbGljdHMt
cnIKK0BpdGVtIGNvbmZsaWN0cy1zcgorQGl0ZW14IGNvbmZsaWN0cy1ycgorQGFuY2hvcntX
Y29uZmxpY3RzLXNyfQorQGFuY2hvcntXY29uZmxpY3RzLXJyfQogUy9SIGFuZCBSL1IgY29u
ZmxpY3RzLiAgVGhlc2Ugd2FybmluZ3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdC4gIEhvd2V2
ZXIsIGlmCiB0aGUgQGNvZGV7JWV4cGVjdH0gb3IgQGNvZGV7JWV4cGVjdC1ycn0gZGlyZWN0
aXZlIGlzIHNwZWNpZmllZCwgYW4KIHVuZXhwZWN0ZWQgbnVtYmVyIG9mIGNvbmZsaWN0cyBp
cyBhbiBlcnJvciwgYW5kIGFuIGV4cGVjdGVkIG51bWJlciBvZgogY29uZmxpY3RzIGlzIG5v
dCByZXBvcnRlZCwgc28gQG9wdGlvbnstV30gYW5kIEBvcHRpb257LS13YXJuaW5nfSB0aGVu
IGhhdmUKIG5vIGVmZmVjdCBvbiB0aGUgY29uZmxpY3QgcmVwb3J0LgogCi1AaXRlbSBAYW5j
aG9ye1djb3VudGVyZXhhbXBsZXN9Y291bnRlcmV4YW1wbGVzCitAaXRlbSBjb3VudGVyZXhh
bXBsZXMKIEBpdGVteCBjZXgKK0BhbmNob3J7V2NvdW50ZXJleGFtcGxlc30KIFByb3ZpZGUg
Y291bnRlcmV4YW1wbGVzIGZvciBjb25mbGljdHMuICBAeHJlZntDb3VudGVyZXhhbXBsZXN9
LgogQ291bnRlcmV4YW1wbGVzIHRha2UgdGltZSB0byBjb21wdXRlLiAgVGhlIG9wdGlvbiBA
b3B0aW9uey1XY2V4fSBzaG91bGQgYmUKIHVzZWQgYnkgdGhlIGRldmVsb3BlciB3aGVuIHdv
cmtpbmcgb24gdGhlIGdyYW1tYXI7IGl0IGhhcmRseSBtYWtlcyBzZW5zZSB0bwogdXNlIGl0
IGluIGEgQ0kuCiAKLUBpdGVtIEBhbmNob3J7V2RhbmdsaW5nLWFsaWFzfWRhbmdsaW5nLWFs
aWFzCitAaXRlbSBkYW5nbGluZy1hbGlhcworQGFuY2hvcntXZGFuZ2xpbmctYWxpYXN9CiBS
ZXBvcnQgc3RyaW5nIGxpdGVyYWxzIHRoYXQgYXJlIG5vdCBib3VuZCB0byBhIHRva2VuIHN5
bWJvbC4KIAogU3RyaW5nIGxpdGVyYWxzLCB3aGljaCBhbGxvdyBmb3IgYmV0dGVyIGVycm9y
IG1lc3NhZ2VzLCBhcmUgKHRvbykgbGliZXJhbGx5CkBAIC0xMTcwOSwxNiArMTE3MTMsMTkg
QEAgRGlhZ25vc3RpY3MKICAgICAgIHwgICAgICBAZHdhcm5pbmd7Xn5+fn59CiBAZW5kIGV4
YW1wbGUKIAotQGl0ZW0gQGFuY2hvcntXZGVwcmVjYXRlZH1kZXByZWNhdGVkCitAaXRlbSBk
ZXByZWNhdGVkCitAYW5jaG9ye1dkZXByZWNhdGVkfQogRGVwcmVjYXRlZCBjb25zdHJ1Y3Rz
IHdob3NlIHN1cHBvcnQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZgog
Qmlzb24uCiAKLUBpdGVtIEBhbmNob3J7V2VtcHR5LXJ1bGV9ZW1wdHktcnVsZQorQGl0ZW0g
ZW1wdHktcnVsZQorQGFuY2hvcntXZW1wdHktcnVsZX0KIEVtcHR5IHJ1bGVzIHdpdGhvdXQg
QGNvZGV7JWVtcHR5fS4gIEB4cmVme0VtcHR5IFJ1bGVzfS4gIERpc2FibGVkIGJ5CiBkZWZh
dWx0LCBidXQgZW5hYmxlZCBieSB1c2VzIG9mIEBjb2RleyVlbXB0eX0sIHVubGVzcwogQG9w
dGlvbnstV25vLWVtcHR5LXJ1bGV9IHdhcyBzcGVjaWZpZWQuCiAKLUBpdGVtIEBhbmNob3J7
V21pZHJ1bGUtdmFsdWVzfW1pZHJ1bGUtdmFsdWVzCitAaXRlbSBtaWRydWxlLXZhbHVlcwor
QGFuY2hvcntXbWlkcnVsZS12YWx1ZXN9CiBXYXJuIGFib3V0IG1pZHJ1bGUgdmFsdWVzIHRo
YXQgYXJlIHNldCBidXQgbm90IHVzZWQgd2l0aGluIGFueSBvZiB0aGUgYWN0aW9ucwogb2Yg
dGhlIHBhcmVudCBydWxlLgogRm9yIGV4YW1wbGUsIHdhcm4gYWJvdXQgdW51c2VkIEBjb2Rl
eyQyfSBpbjoKQEAgLTExNzM4LDcgKzExNzQ1LDggQEAgRGlhZ25vc3RpY3MKIGJlIGZhbHNl
IGFsYXJtcyBpbiBleGlzdGluZyBncmFtbWFycyBlbXBsb3lpbmcgdGhlIFlhY2MgY29uc3Ry
dWN0cwogQGNvZGV7JDB9IG9yIEBjb2RleyQtQHZhcntufX0gKHdoZXJlIEB2YXJ7bn0gaXMg
c29tZSBwb3NpdGl2ZSBpbnRlZ2VyKS4KIAotQGl0ZW0gQGFuY2hvcntXcHJlY2VkZW5jZX1w
cmVjZWRlbmNlCitAaXRlbSBwcmVjZWRlbmNlCitAYW5jaG9ye1dwcmVjZWRlbmNlfQogVXNl
bGVzcyBwcmVjZWRlbmNlIGFuZCBhc3NvY2lhdGl2aXR5IGRpcmVjdGl2ZXMuICBEaXNhYmxl
ZCBieSBkZWZhdWx0LgogCiBDb25zaWRlciBmb3IgaW5zdGFuY2UgdGhlIGZvbGxvd2luZyBn
cmFtbWFyOgpAQCAtMTE3OTksMjEgKzExODA3LDI0IEBAIERpYWdub3N0aWNzCiBAZW5kIGdy
b3VwCiBAZW5kIGV4YW1wbGUKIAotQGl0ZW0gQGFuY2hvcntXeWFjY315YWNjCitAaXRlbSB5
YWNjCitAYW5jaG9ye1d5YWNjfQogSW5jb21wYXRpYmlsaXRpZXMgd2l0aCBQT1NJWCBZYWNj
LgogCi1AaXRlbSBAYW5jaG9ye1dvdGhlcn1vdGhlcgorQGl0ZW0gb3RoZXIKK0BhbmNob3J7
V290aGVyfQogQWxsIHdhcm5pbmdzIG5vdCBjYXRlZ29yaXplZCBhYm92ZS4gIFRoZXNlIHdh
cm5pbmdzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQuCiAKIFRoaXMgY2F0ZWdvcnkgaXMgcHJv
dmlkZWQgbWVyZWx5IGZvciB0aGUgc2FrZSBvZiBjb21wbGV0ZW5lc3MuICBGdXR1cmUKIHJl
bGVhc2VzIG9mIEJpc29uIG1heSBtb3ZlIHdhcm5pbmdzIGZyb20gdGhpcyBjYXRlZ29yeSB0
byBuZXcsIG1vcmUgc3BlY2lmaWMKIGNhdGVnb3JpZXMuCiAKLUBpdGVtIEBhbmNob3J7V2Fs
bH1hbGwKK0BpdGVtIGFsbAogQWxsIHRoZSB3YXJuaW5ncyBleGNlcHQgQGNvZGV7Y291bnRl
cmV4YW1wbGVzfSwgQGNvZGV7ZGFuZ2xpbmctYWxpYXN9IGFuZAogQGNvZGV7eWFjY30uCiAK
LUBpdGVtIEBhbmNob3J7V25vbmV9bm9uZQorQGl0ZW0gbm9uZQorQGFuY2hvcntXbm9uZX0K
IFR1cm4gb2ZmIGFsbCB0aGUgd2FybmluZ3MuCiAKIEBpdGVtIGVycm9yCkBAIC0xMTgyNCw3
ICsxMTgzNSw4IEBAIERpYWdub3N0aWNzCiBpbnN0YW5jZSwgQG9wdGlvbnstV25vLXlhY2N9
IHdpbGwgaGlkZSB0aGUgd2FybmluZ3MgYWJvdXQKIFBPU0lYIFlhY2MgaW5jb21wYXRpYmls
aXRpZXMuCiAKLUBpdGVtIEBhbmNob3J7V2Vycm9yfS1XZXJyb3IKK0BpdGVtIC1XZXJyb3IK
K0BhbmNob3J7V2Vycm9yfQogVHVybiBlbmFibGVkIHdhcm5pbmdzIGZvciBldmVyeSBAdmFy
e2NhdGVnb3J5fSBpbnRvIGVycm9ycywgdW5sZXNzIHRoZXkgYXJlCiBleHBsaWNpdGx5IGRp
c2FibGVkIGJ5IEBvcHRpb257LVduby1lcnJvcj1AdmFye2NhdGVnb3J5fX0uCiAKQEAgLTEx
OTcyLDcgKzExOTg0LDggQEAgVHVuaW5nIHRoZSBQYXJzZXIKIFByZXRlbmQgdGhhdCBAY29k
ZXsldG9rZW4tdGFibGV9IHdhcyBzcGVjaWZpZWQuICBAeHJlZntEZWNsIFN1bW1hcnl9Lgog
CiBAaXRlbSAteQotQGl0ZW14IEBhbmNob3J7b3B0aW9uLXlhY2N9IC0teWFjYworQGl0ZW14
ICAtLXlhY2MKK0BhbmNob3J7b3B0aW9uLXlhY2N9CiBBY3QgbW9yZSBsaWtlIHRoZSB0cmFk
aXRpb25hbCBAY29tbWFuZHt5YWNjfSBjb21tYW5kOgogQGl0ZW1pemUKIEBpdGVtCi0tIAoy
LjQ4LjEKCg==
--------------uFjIZvzExWSiiDinsphmqzeO
Content-Type: text/x-patch; charset=UTF-8;
 name="0004-maint-adjust-to-Gnulib-API-changes.patch"
Content-Disposition: attachment;
 filename="0004-maint-adjust-to-Gnulib-API-changes.patch"
Content-Transfer-Encoding: base64

RnJvbSBhYTBjOTZiZjE0ZDZmZjRlNmUwNWUyOGM0NDBlNDJjZWRmNzJkZDE2IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBXZWQsIDEyIE1hciAyMDI1IDE3OjI5OjQxIC0wNzAwClN1YmplY3Q6IFtQQVRD
SCA0LzZdIG1haW50OiBhZGp1c3QgdG8gR251bGliIEFQSSBjaGFuZ2VzCgoqIHNyYy9vdXRw
dXQuYyAob3V0cHV0X3NrZWxldG9uKToKKiBzcmMvcHJpbnQteG1sLmMgKHByaW50X2h0bWwp
OgpBZGp1c3QgdG8gR251bGliIEFQSSBjaGFuZ2VzLgotLS0KIHNyYy9vdXRwdXQuYyAgICB8
IDEgKwogc3JjL3ByaW50LXhtbC5jIHwgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0
aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9vdXRwdXQuYyBiL3NyYy9vdXRwdXQuYwppbmRl
eCA1ZTdlZjE1ZS4uY2QzMzJmMjYgMTAwNjQ0Ci0tLSBhL3NyYy9vdXRwdXQuYworKysgYi9z
cmMvb3V0cHV0LmMKQEAgLTgwOCw2ICs4MDgsNyBAQCBvdXRwdXRfc2tlbGV0b24gKHZvaWQp
CiAgICAgICB9CiAKICAgICBwaWQgPSBjcmVhdGVfcGlwZV9iaWRpICgibTQiLCBtNCwgYXJn
diwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBkbGxfZGlycyAqLyBOVUxMLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRpcmVjdG9yeSAqLyBOVUxMLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG51bGxfc3RkZXJyICovIGZhbHNlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNsYXZlX3Byb2Nlc3MgKi8gdHJ1ZSwKZGlm
ZiAtLWdpdCBhL3NyYy9wcmludC14bWwuYyBiL3NyYy9wcmludC14bWwuYwppbmRleCA3ZGIw
ZjIxMy4uZTRmNzcxNDMgMTAwNjQ0Ci0tLSBhL3NyYy9wcmludC14bWwuYworKysgYi9zcmMv
cHJpbnQteG1sLmMKQEAgLTU2NSw2ICs1NjUsNyBAQCBwcmludF9odG1sICh2b2lkKQogICBp
bnQgc3RhdHVzCiAgICAgPSBleGVjdXRlIChhcmd2WzBdLAogICAgICAgICAgICAgICAgYXJn
dlswXSwgYXJndiwKKyAgICAgICAgICAgICAgIC8qIGRsbF9kaXJzICovIE5VTEwsCiAgICAg
ICAgICAgICAgICAvKiBkaXJlY3RvcnkgKi8gTlVMTCwKICAgICAgICAgICAgICAgIC8qIGln
bm9yZV9zaWdwaXBlICovIGZhbHNlLAogICAgICAgICAgICAgICAgLyogbnVsbF9zdGRpbiwg
bnVsbF9zdGRvdXQsIG51bGxfc3RkZXJyICovIHRydWUsIHRydWUsIHRydWUsCi0tIAoyLjQ4
LjEKCg==
--------------uFjIZvzExWSiiDinsphmqzeO
Content-Type: text/x-patch; charset=UTF-8;
 name="0005-maint-pacify-gcc-14.2-Wmaybe-uninitialized.patch"
Content-Disposition: attachment;
 filename="0005-maint-pacify-gcc-14.2-Wmaybe-uninitialized.patch"
Content-Transfer-Encoding: base64

RnJvbSA2YTRiMzI0MGNmYzAwNjUzMDRjOTQ1YWJiNzU1MTU3YWE0NGEzNzQ1IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBXZWQsIDEyIE1hciAyMDI1IDIwOjQwOjI5IC0wNzAwClN1YmplY3Q6IFtQQVRD
SCA1LzZdIG1haW50OiBwYWNpZnkgZ2NjIDE0LjIgLVdtYXliZS11bmluaXRpYWxpemVkCgoq
IGRhdGEvc2tlbGV0b25zL2xhbHIxLmNjOgoqIGRhdGEvc2tlbGV0b25zL3lhY2MuYzoKQWRk
IFlZX0lHTk9SRV9NQVlCRV9VTklOSVRJQUxJWkVEX0JFR0lOIGFuZApZWV9JR05PUkVfTUFZ
QkVfVU5JTklUSUFMSVpFRF9FTkQgdG8gcGFjaWZ5IEdDQyAxNCwKYXBwYXJlbnRseSBhZnRl
ciBpbmxpbmluZy4KLS0tCiBkYXRhL3NrZWxldG9ucy9sYWxyMS5jYyB8IDIgKysKIGRhdGEv
c2tlbGV0b25zL3lhY2MuYyAgIHwgNiArKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNl
cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RhdGEvc2tlbGV0b25z
L2xhbHIxLmNjIGIvZGF0YS9za2VsZXRvbnMvbGFscjEuY2MKaW5kZXggNDI0MmI5OTIuLjQ2
NGEyM2I4IDEwMDY0NAotLS0gYS9kYXRhL3NrZWxldG9ucy9sYWxyMS5jYworKysgYi9kYXRh
L3NrZWxldG9ucy9sYWxyMS5jYwpAQCAtOTg2LDYgKzk4Niw3IEBAIGI0X2RvbGxhcl9wb3Bk
ZWZdKVtdZG5sCiAgIHl5cmVkdWNlOgogICAgIHl5bGVuID0geXlyMl9beXluXTsKICAgICB7
CisgICAgICBZWV9JR05PUkVfTUFZQkVfVU5JTklUSUFMSVpFRF9CRUdJTgogICAgICAgc3Rh
Y2tfc3ltYm9sX3R5cGUgeXlsaHM7CiAgICAgICB5eWxocy5zdGF0ZSA9IHl5X2xyX2dvdG9f
c3RhdGVfICh5eXN0YWNrX1t5eWxlbl0uc3RhdGUsIHl5cjFfW3l5bl0pO11iNF92YXJpYW50
X2lmKFtbCiAgICAgICAvKiBWYXJpYW50cyBhcmUgYWx3YXlzIGluaXRpYWxpemVkIHRvIGFu
IGVtcHR5IGluc3RhbmNlIG9mIHRoZQpAQCAtMTAzOCw2ICsxMDM5LDcgQEAgYjRfZG9sbGFy
X3BvcGRlZl0pW11kbmwKIAogICAgICAgLy8gU2hpZnQgdGhlIHJlc3VsdCBvZiB0aGUgcmVk
dWN0aW9uLgogICAgICAgeXlwdXNoXyAoWVlfTlVMTFBUUiwgWVlfTU9WRSAoeXlsaHMpKTsK
KyAgICAgIFlZX0lHTk9SRV9NQVlCRV9VTklOSVRJQUxJWkVEX0VORAogICAgIH0KICAgICBn
b3RvIHl5bmV3c3RhdGU7CiAKZGlmZiAtLWdpdCBhL2RhdGEvc2tlbGV0b25zL3lhY2MuYyBi
L2RhdGEvc2tlbGV0b25zL3lhY2MuYwppbmRleCAwN2E1MjNiMC4uOGIzNzc0NzUgMTAwNjQ0
Ci0tLSBhL2RhdGEvc2tlbGV0b25zL3lhY2MuYworKysgYi9kYXRhL3NrZWxldG9ucy95YWNj
LmMKQEAgLTE1MzEsOSArMTUzMSwxMSBAQCB5eXB1bGxfcGFyc2UgKHl5cHN0YXRlICp5eXBz
XWI0X3VzZXJfZm9ybWFsc1spCiAgIFlZTFRZUEUgeXlsbG9jID0geXlsb2NfZGVmYXVsdDtd
XSldKVsKICAgaW50IHl5c3RhdHVzOwogICBkbyB7Ci1dYjRfcHVyZV9pZihbWyAgICBZWVNU
WVBFIHl5bHZhbDsKK11iNF9wdXJlX2lmKFtbICAgIFlZX0lHTk9SRV9NQVlCRV9VTklOSVRJ
QUxJWkVEX0JFR0lOCisgICAgWVlTVFlQRSB5eWx2YWw7CiAgICAgaW50IF1dKVt5eWNoYXIg
PSBdYjRfeXlsZXhbOwotICAgIHl5c3RhdHVzID0geXlwdXNoX3BhcnNlICh5eXBzXWI0X3B1
cmVfaWYoW1ssIHl5Y2hhciwgJnl5bHZhbF1iNF9sb2NhdGlvbnNfaWYoW1ssICZ5eWxsb2Nd
XSldKW00X2lmc2V0KFtiNF9wYXJzZV9wYXJhbV0sIFssIGI0X2FyZ3MoYjRfcGFyc2VfcGFy
YW0pXSlbKTsKKyAgICB5eXN0YXR1cyA9IHl5cHVzaF9wYXJzZSAoeXlwc11iNF9wdXJlX2lm
KFtbLCB5eWNoYXIsICZ5eWx2YWxdYjRfbG9jYXRpb25zX2lmKFtbLCAmeXlsbG9jXV0pXSlt
NF9pZnNldChbYjRfcGFyc2VfcGFyYW1dLCBbLCBiNF9hcmdzKGI0X3BhcnNlX3BhcmFtKV0p
Wyk7XWI0X3B1cmVfaWYoW1sKKyAgICBZWV9JR05PUkVfTUFZQkVfVU5JTklUSUFMSVpFRF9F
TkRdXSlbCiAgIH0gd2hpbGUgKHl5c3RhdHVzID09IFlZUFVTSF9NT1JFKTsKICAgcmV0dXJu
IHl5c3RhdHVzOwogfV1dKVsKLS0gCjIuNDguMQoK
--------------uFjIZvzExWSiiDinsphmqzeO
Content-Type: text/x-patch; charset=UTF-8;
 name="0006-maint-port-to-strict-C-function-type-checking.patch"
Content-Disposition: attachment;
 filename="0006-maint-port-to-strict-C-function-type-checking.patch"
Content-Transfer-Encoding: base64

RnJvbSBkNzUyNzA0OGE4MWVkNjk5N2U5Njc0N2NiOTNjNTkwZmY5MjhjMGUzIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBUaHUsIDEzIE1hciAyMDI1IDEzOjM4OjIxIC0wNzAwClN1YmplY3Q6IFtQQVRD
SCA2LzZdIG1haW50OiBwb3J0IHRvIHN0cmljdCBDIGZ1bmN0aW9uIHR5cGUgY2hlY2tpbmcK
ClZpb2xhdGlvbiBvZiBDIHN0YW5kYXJkIGRldGVjdGVkIGJ5IGNsYW5nIC1mc2FuaXRpemU9
dW5kZWZpbmVkCndpdGggY2xhbmcgMTkuMS43IG9uIEZlZG9yYSA0MSB4ODYtNjQuCiogc3Jj
L2NvdW50ZXJleGFtcGxlLmMgKHNpX2Jmc19mcmVlKToKKiBzcmMvZmlsZXMuYyAocHJlZml4
X21hcF9mcmVlLCBhZGRfcHJlZml4X21hcCk6Ciogc3JjL2ZpeGl0cy5jIChmaXhpdF9jbXAs
IGZpeGl0X2ZyZWUsIGZpeGl0c19yZWdpc3Rlcik6CihleHBhbmRfdG9fY29uZmxpY3QsIG5v
bnVuaWZ5aW5nX3NoaWZ0X3BhdGgpCihzZWFyY2hfc3RhdGVfZnJlZV9jaGlsZHJlbiwgc2Vh
cmNoX3N0YXRlX2ZyZWUsIHNzYl9mcmVlKQooc3NiX2hhc2hlciwgc3NiX2NvbXAsIHNzYl9l
cXVhbHMsIHZpc2l0ZWRfaGFzaGVyKQoodmlzaXRlZF9jb21wYXJhdG9yLCBzc2JfYXBwZW5k
LCB1bmlmeWluZ19leGFtcGxlKToKKiBzcmMvbHNzaS5jIChsc3NpX2ZyZWUsIGxzc2lfaGFz
aGVyLCBsc3NpX2NvbXBhcmF0b3IpCihzaG9ydGVzdF9wYXRoX2Zyb21fc3RhcnQpOgoqIHNy
Yy9wYXJzZS1zaW11bGF0aW9uLmMgKGZyZWVfcGFyc2Vfc3RhdGUpCihwYXJzZV9zdGF0ZV9s
aXN0X25ldywgcGFyc2VyX3BvcCk6Ciogc3JjL3N0YXRlLWl0ZW0uYyAoaGFzaF9wYWlyX2hh
c2hlciwgaGFzaF9wYWlyX2NvbXBhcmF0b3IpCihoYXNoX3BhaXJfZnJlZSwgaGFzaF9wYWly
X3RhYmxlX2NyZWF0ZSk6CkF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvciBpbiBDLCB3aGljaCBk
b2VzIG5vdCBhbGxvdyB5b3UgdG8gY2FzdCBhCmZ1bmN0aW9uIHBvaW50ZXIgdG8gc29tZSBv
dGhlciBmdW5jdGlvbiB0eXBlIGFuZCB0aGVuIGNhbGwgaXQgdmlhCnRoYXQgb3RoZXIgdHlw
ZS4gIEluc3RlYWQsIHVzZSBmdW5jdGlvbnMgd2l0aCBjb3JyZWN0IHR5cGVzCmFjY29yZGlu
ZyB0byB0aGUgQyBzdGFuZGFyZCwgYW5kIGNhc3QgdGhlaXIgcGFyYW1ldGVycy4KKiBzcmMv
Z2V0YXJncy5jICh4YXJnbWF0Y2hfZm4pOiBSZXR1cm4gaW50IGNvbnN0LCBub3QgaW50LCB0
bwptYXRjaCB3aGF0IEFSR01BVENIX0RFRklORV9HUk9VUCBkb2VzLiAgSW4gYWxsIHVzZXMg
b2YKQVJHTUFUQ0hfREVGSU5FX0dST1VQLCBzYXkgdGhhdCB0aGV5IHJldHVybiBpbnQsIHRv
IG1hdGNoCnhhcmdtYXRjaF9mbi4KKEZMQUdTX0FSR01BVENIKTogRG8gbm90IGNhc3QgZnVu
Y3Rpb24gcG9pbnRlci4KKiBzcmMvcGFyc2Utc2ltdWxhdGlvbi5jICh2Y19kZXJpdmF0aW9u
X2xpc3RfYXBwZW5kKTogTmV3IGZ1bmN0aW9uLgoqIHNyYy9zeXN0ZW0uaCAoZGVjb25zdCk6
IE5ldyBzdGF0aWMgZnVuY3Rpb24uCi0tLQogc3JjL2NvdW50ZXJleGFtcGxlLmMgICB8IDYy
ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2ZpbGVz
LmMgICAgICAgICAgICB8IDEwICsrKy0tLS0KIHNyYy9maXhpdHMuYyAgICAgICAgICAgfCAx
NiArKysrKy0tLS0tLQogc3JjL2dldGFyZ3MuYyAgICAgICAgICB8IDEyICsrKystLS0tCiBz
cmMvbHNzaS5jICAgICAgICAgICAgIHwgMTcgKysrKysrLS0tLS0tCiBzcmMvcGFyc2Utc2lt
dWxhdGlvbi5jIHwgMTUgKysrKysrKy0tLQogc3JjL3BhcnNlLXNpbXVsYXRpb24uaCB8ICAy
ICstCiBzcmMvc3RhdGUtaXRlbS5jICAgICAgIHwgMTcgKysrKysrLS0tLS0tCiBzcmMvc3lz
dGVtLmggICAgICAgICAgIHwgIDkgKysrKysrCiA5IGZpbGVzIGNoYW5nZWQsIDkwIGluc2Vy
dGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9jb3VudGVyZXhh
bXBsZS5jIGIvc3JjL2NvdW50ZXJleGFtcGxlLmMKaW5kZXggODJlZTQzZGEuLjU5NDg0OWMx
IDEwMDY0NAotLS0gYS9zcmMvY291bnRlcmV4YW1wbGUuYworKysgYi9zcmMvY291bnRlcmV4
YW1wbGUuYwpAQCAtMjA2LDggKzIwNiw5IEBAIHNpX2Jmc19jb250YWlucyAoY29uc3Qgc2lf
YmZzX25vZGUgKm4sIHN0YXRlX2l0ZW1fbnVtYmVyIHNpbikKIH0KIAogc3RhdGljIHZvaWQK
LXNpX2Jmc19mcmVlIChzaV9iZnNfbm9kZSAqbikKK3NpX2Jmc19mcmVlICh2b2lkIGNvbnN0
ICp2bikKIHsKKyAgc2lfYmZzX25vZGUgKm4gPSBkZWNvbnN0ICh2bik7CiAgIGlmIChuID09
IE5VTEwpCiAgICAgcmV0dXJuOwogICAtLW4tPnJlZmVyZW5jZV9jb3VudDsKQEAgLTIzMSwx
MiArMjMyLDEwIEBAIHR5cGVkZWYgZ2xfbGlzdF90IHNpX2Jmc19ub2RlX2xpc3Q7CiBzdGF0
aWMgaW5saW5lIGRlcml2YXRpb25fbGlzdAogZXhwYW5kX3RvX2NvbmZsaWN0IChzdGF0ZV9p
dGVtX251bWJlciBzdGFydCwgc3ltYm9sX251bWJlciBjb25mbGljdF9zeW0pCiB7Ci0gIHNp
X2Jmc19ub2RlICppbml0ID0gc2lfYmZzX25ldyAoc3RhcnQsIE5VTEwpOwotCisgIHZvaWQg
Y29uc3QgKmluaXQgPSBzaV9iZnNfbmV3IChzdGFydCwgTlVMTCk7CiAgIHNpX2Jmc19ub2Rl
X2xpc3QgcXVldWUKICAgICA9IGdsX2xpc3RfY3JlYXRlIChHTF9MSU5LRURfTElTVCwgTlVM
TCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAoZ2xfbGlzdGVsZW1lbnRfZGlzcG9z
ZV9mbikgc2lfYmZzX2ZyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgMSwgKGNv
bnN0IHZvaWQgKiopICZpbml0KTsKKyAgICAgICAgICAgICAgICAgICAgICBzaV9iZnNfZnJl
ZSwgdHJ1ZSwgMSwgJmluaXQpOwogICBzaV9iZnNfbm9kZSAqbm9kZSA9IE5VTEw7CiAgIC8v
IGJyZWFkdGgtZmlyc3Qgc2VhcmNoIGZvciBhIHBhdGggb2YgcHJvZHVjdGlvbnMgdG8gdGhl
IGNvbmZsaWN0IHN5bWJvbAogICB3aGlsZSAoZ2xfbGlzdF9zaXplIChxdWV1ZSkgPiAwKQpA
QCAtNDcxLDExICs0NzAsMTAgQEAgbm9udW5pZnlpbmdfc2hpZnRfcGF0aCAoc3RhdGVfaXRl
bV9saXN0IHJlZHVjZV9wYXRoLCBzdGF0ZV9pdGVtICpzaGlmdF9jb25mbGljdCkKICAgICAg
ICAgY29udGludWU7CiAKICAgICAgIC8vIGJmcyB0byBmaW5kIGEgc2hpZnQgdG8gdGhlIHJp
Z2h0IHN0YXRlCi0gICAgICBzaV9iZnNfbm9kZSAqaW5pdCA9IHNpX2Jmc19uZXcgKHNpIC0g
c3RhdGVfaXRlbXMsIE5VTEwpOworICAgICAgdm9pZCBjb25zdCAqaW5pdCA9IHNpX2Jmc19u
ZXcgKHNpIC0gc3RhdGVfaXRlbXMsIE5VTEwpOwogICAgICAgc2lfYmZzX25vZGVfbGlzdCBx
dWV1ZQogICAgICAgICA9IGdsX2xpc3RfY3JlYXRlIChHTF9MSU5LRURfTElTVCwgTlVMTCwg
TlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKGdsX2xpc3RlbGVtZW50X2Rpc3Bv
c2VfZm4pIHNpX2Jmc19mcmVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCAx
LCAoY29uc3Qgdm9pZCAqKikgJmluaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICBz
aV9iZnNfZnJlZSwgdHJ1ZSwgMSwgJmluaXQpOwogICAgICAgc2lfYmZzX25vZGUgKnNpcyA9
IE5VTEw7CiAgICAgICBzdGF0ZV9pdGVtICpwcmV2c2kgPSBOVUxMOwogICAgICAgd2hpbGUg
KGdsX2xpc3Rfc2l6ZSAocXVldWUpID4gMCkKQEAgLTYwNCwxNSArNjAyLDE3IEBAIGNvcHlf
c2VhcmNoX3N0YXRlIChzZWFyY2hfc3RhdGUgKnBhcmVudCkKIH0KIAogc3RhdGljIHZvaWQK
LXNlYXJjaF9zdGF0ZV9mcmVlX2NoaWxkcmVuIChzZWFyY2hfc3RhdGUgKnNzKQorc2VhcmNo
X3N0YXRlX2ZyZWVfY2hpbGRyZW4gKHZvaWQgY29uc3QgKnZzcykKIHsKKyAgc2VhcmNoX3N0
YXRlIGNvbnN0ICpzcyA9IHZzczsKICAgZnJlZV9wYXJzZV9zdGF0ZSAoc3MtPnN0YXRlc1sw
XSk7CiAgIGZyZWVfcGFyc2Vfc3RhdGUgKHNzLT5zdGF0ZXNbMV0pOwogfQogCiBzdGF0aWMg
dm9pZAotc2VhcmNoX3N0YXRlX2ZyZWUgKHNlYXJjaF9zdGF0ZSAqc3MpCitzZWFyY2hfc3Rh
dGVfZnJlZSAodm9pZCAqdnNzKQogeworICBzZWFyY2hfc3RhdGUgKnNzID0gdnNzOwogICBp
ZiAoc3MgPT0gTlVMTCkKICAgICByZXR1cm47CiAgIHNlYXJjaF9zdGF0ZV9mcmVlX2NoaWxk
cmVuIChzcyk7CkBAIC02OTEsNDIgKzY5MSw1MSBAQCB0eXBlZGVmIHN0cnVjdAogfSBzZWFy
Y2hfc3RhdGVfYnVuZGxlOwogCiBzdGF0aWMgdm9pZAotc3NiX2ZyZWUgKHNlYXJjaF9zdGF0
ZV9idW5kbGUgKnNzYikKK3NzYl9mcmVlICh2b2lkIGNvbnN0ICp2c3NiKQogeworICBzZWFy
Y2hfc3RhdGVfYnVuZGxlICpzc2IgPSBkZWNvbnN0ICh2c3NiKTsKICAgZ2xfbGlzdF9mcmVl
IChzc2ItPnN0YXRlcyk7CiAgIGZyZWUgKHNzYik7CiB9CiAKIHN0YXRpYyBzaXplX3QKLXNz
Yl9oYXNoZXIgKHNlYXJjaF9zdGF0ZV9idW5kbGUgKnNzYikKK3NzYl9oYXNoZXIgKHZvaWQg
Y29uc3QgKnZzc2IpCiB7CisgIHNlYXJjaF9zdGF0ZV9idW5kbGUgY29uc3QgKnNzYiA9IHZz
c2I7CiAgIHJldHVybiBzc2ItPmNvbXBsZXhpdHk7CiB9CiAKIHN0YXRpYyBpbnQKLXNzYl9j
b21wIChjb25zdCBzZWFyY2hfc3RhdGVfYnVuZGxlICpzMSwgY29uc3Qgc2VhcmNoX3N0YXRl
X2J1bmRsZSAqczIpCitzc2JfY29tcCAodm9pZCBjb25zdCAqdnMxLCB2b2lkIGNvbnN0ICp2
czIpCiB7CisgIHNlYXJjaF9zdGF0ZV9idW5kbGUgY29uc3QgKnMxID0gdnMxOworICBzZWFy
Y2hfc3RhdGVfYnVuZGxlIGNvbnN0ICpzMiA9IHZzMjsKICAgcmV0dXJuIHMxLT5jb21wbGV4
aXR5IC0gczItPmNvbXBsZXhpdHk7CiB9CiAKIHN0YXRpYyBib29sCi1zc2JfZXF1YWxzIChj
b25zdCBzZWFyY2hfc3RhdGVfYnVuZGxlICpzMSwgY29uc3Qgc2VhcmNoX3N0YXRlX2J1bmRs
ZSAqczIpCitzc2JfZXF1YWxzICh2b2lkIGNvbnN0ICp2czEsIHZvaWQgY29uc3QgKnZzMikK
IHsKKyAgc2VhcmNoX3N0YXRlX2J1bmRsZSBjb25zdCAqczEgPSB2czE7CisgIHNlYXJjaF9z
dGF0ZV9idW5kbGUgY29uc3QgKnMyID0gdnMyOwogICByZXR1cm4gczEtPmNvbXBsZXhpdHkg
PT0gczItPmNvbXBsZXhpdHk7CiB9CiAKIHR5cGVkZWYgZ2xfbGlzdF90IHNzYl9saXN0Owog
CiBzdGF0aWMgc2l6ZV90Ci12aXNpdGVkX2hhc2hlciAoY29uc3Qgc2VhcmNoX3N0YXRlICpz
cywgc2l6ZV90IG1heCkKK3Zpc2l0ZWRfaGFzaGVyICh2b2lkIGNvbnN0ICp2c3MsIHNpemVf
dCBtYXgpCiB7CisgIHNlYXJjaF9zdGF0ZSBjb25zdCAqc3MgPSB2c3M7CiAgIHJldHVybiAo
cGFyc2Vfc3RhdGVfaGFzaGVyIChzcy0+c3RhdGVzWzBdLCBtYXgpCiAgICAgICAgICAgKyBw
YXJzZV9zdGF0ZV9oYXNoZXIgKHNzLT5zdGF0ZXNbMV0sIG1heCkpICUgbWF4OwogfQogCiBz
dGF0aWMgYm9vbAotdmlzaXRlZF9jb21wYXJhdG9yIChjb25zdCBzZWFyY2hfc3RhdGUgKnNz
MSwgY29uc3Qgc2VhcmNoX3N0YXRlICpzczIpCit2aXNpdGVkX2NvbXBhcmF0b3IgKHZvaWQg
Y29uc3QgKnZzczEsIHZvaWQgY29uc3QgKnZzczIpCiB7CisgIHNlYXJjaF9zdGF0ZSBjb25z
dCAqc3MxID0gdnNzMTsKKyAgc2VhcmNoX3N0YXRlIGNvbnN0ICpzczIgPSB2c3MyOwogICBy
ZXR1cm4gcGFyc2Vfc3RhdGVfY29tcGFyYXRvciAoc3MxLT5zdGF0ZXNbMF0sIHNzMi0+c3Rh
dGVzWzBdKQogICAgICYmIHBhcnNlX3N0YXRlX2NvbXBhcmF0b3IgKHNzMS0+c3RhdGVzWzFd
LCBzczItPnN0YXRlc1sxXSk7CiB9CkBAIC03NjIsOSArNzcxLDggQEAgc3NiX2FwcGVuZCAo
c2VhcmNoX3N0YXRlICpzcykKICAgICB7CiAgICAgICBzc2ItPnN0YXRlcyA9CiAgICAgICAg
IGdsX2xpc3RfY3JlYXRlX2VtcHR5IChHTF9MSU5LRURfTElTVCwgTlVMTCwgTlVMTCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnbF9saXN0ZWxlbWVudF9kaXNwb3NlX2Zu
KXNlYXJjaF9zdGF0ZV9mcmVlX2NoaWxkcmVuLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHJ1ZSk7Ci0gICAgICBnbF9zb3J0ZWRsaXN0X2FkZCAoc3NiX3F1ZXVlLCAoZ2xf
bGlzdGVsZW1lbnRfY29tcGFyX2ZuKSBzc2JfY29tcCwgc3NiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlYXJjaF9zdGF0ZV9mcmVlX2NoaWxkcmVuLCB0cnVlKTsKKyAg
ICAgIGdsX3NvcnRlZGxpc3RfYWRkIChzc2JfcXVldWUsIHNzYl9jb21wLCBzc2IpOwogICAg
IH0KICAgZWxzZQogICAgIHsKQEAgLTExMDksMTUgKzExMTcsMTIgQEAgdW5pZnlpbmdfZXhh
bXBsZSAoc3RhdGVfaXRlbV9udW1iZXIgaXRtMSwKICAgc3RhdGVfaXRlbSAqY29uZmxpY3Qx
ID0gJnN0YXRlX2l0ZW1zW2l0bTFdOwogICBzdGF0ZV9pdGVtICpjb25mbGljdDIgPSAmc3Rh
dGVfaXRlbXNbaXRtMl07CiAgIHNlYXJjaF9zdGF0ZSAqaW5pdGlhbCA9IGluaXRpYWxfc2Vh
cmNoX3N0YXRlIChjb25mbGljdDEsIGNvbmZsaWN0Mik7Ci0gIHNzYl9xdWV1ZSA9IGdsX2xp
c3RfY3JlYXRlX2VtcHR5IChHTF9SQlRSRUVIQVNIX0xJU1QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZ2xfbGlzdGVsZW1lbnRfZXF1YWxzX2ZuKSBzc2JfZXF1
YWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdsX2xpc3RlbGVt
ZW50X2hhc2hjb2RlX2ZuKSBzc2JfaGFzaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGdsX2xpc3RlbGVtZW50X2Rpc3Bvc2VfZm4pIHNzYl9mcmVlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICBzc2JfcXVldWUg
PSBnbF9saXN0X2NyZWF0ZV9lbXB0eSAoR0xfUkJUUkVFSEFTSF9MSVNULCBzc2JfZXF1YWxz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NiX2hhc2hlciwgc3Ni
X2ZyZWUsIGZhbHNlKTsKICAgdmlzaXRlZCA9Ci0gICAgaGFzaF9pbml0aWFsaXplICgzMiwg
TlVMTCwgKEhhc2hfaGFzaGVyKSB2aXNpdGVkX2hhc2hlciwKLSAgICAgICAgICAgICAgICAg
ICAgIChIYXNoX2NvbXBhcmF0b3IpIHZpc2l0ZWRfY29tcGFyYXRvciwKLSAgICAgICAgICAg
ICAgICAgICAgIChIYXNoX2RhdGFfZnJlZXIpIHNlYXJjaF9zdGF0ZV9mcmVlKTsKKyAgICBo
YXNoX2luaXRpYWxpemUgKDMyLCBOVUxMLCB2aXNpdGVkX2hhc2hlciwKKyAgICAgICAgICAg
ICAgICAgICAgIHZpc2l0ZWRfY29tcGFyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgIHNl
YXJjaF9zdGF0ZV9mcmVlKTsKICAgc3NiX2FwcGVuZCAoaW5pdGlhbCk7CiAgIHh0aW1lX3Qg
c3RhcnQgPSBnZXRocnh0aW1lICgpOwogICBib29sIGFzc3VyYW5jZV9wcmludGVkID0gZmFs
c2U7CkBAIC0xMTgxLDggKzExODYsNyBAQCB1bmlmeWluZ19leGFtcGxlIChzdGF0ZV9pdGVt
X251bWJlciBpdG0xLAogICAgICAgICAgICAgfQogICAgICAgICAgIGdlbmVyYXRlX25leHRf
c3RhdGVzIChzcywgY29uZmxpY3QxLCBjb25mbGljdDIpOwogICAgICAgICB9Ci0gICAgICBn
bF9zb3J0ZWRsaXN0X3JlbW92ZSAoc3NiX3F1ZXVlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChnbF9saXN0ZWxlbWVudF9jb21wYXJfZm4pIHNzYl9jb21wLCBzc2IpOworICAg
ICAgZ2xfc29ydGVkbGlzdF9yZW1vdmUgKHNzYl9xdWV1ZSwgc3NiX2NvbXAsIHNzYik7CiAg
ICAgfQogY2V4X3NlYXJjaF9lbmQ6OwogICBpZiAoIWNleCkKZGlmZiAtLWdpdCBhL3NyYy9m
aWxlcy5jIGIvc3JjL2ZpbGVzLmMKaW5kZXggNTJmYjdiYzguLjMyZWE1ZTllIDEwMDY0NAot
LS0gYS9zcmMvZmlsZXMuYworKysgYi9zcmMvZmlsZXMuYwpAQCAtMjYxLDggKzI2MSw5IEBA
IG1hcF9maWxlX25hbWUgKGNoYXIgY29uc3QgKmZpbGVuYW1lKQogfQogCiBzdGF0aWMgdm9p
ZAotcHJlZml4X21hcF9mcmVlIChzdHJ1Y3QgcHJlZml4X21hcCAqcCkKK3ByZWZpeF9tYXBf
ZnJlZSAodm9pZCBjb25zdCAqdnApCiB7CisgIHN0cnVjdCBwcmVmaXhfbWFwICpwID0gZGVj
b25zdCAodnApOwogICBmcmVlIChwLT5vbGRwcmVmaXgpOwogICBmcmVlIChwLT5uZXdwcmVm
aXgpOwogICBmcmVlIChwKTsKQEAgLTI3MywxMSArMjc0LDggQEAgYWRkX3ByZWZpeF9tYXAg
KGNoYXIgY29uc3QgKm9sZHByZWZpeCwgY2hhciBjb25zdCAqbmV3cHJlZml4KQogewogICBp
ZiAoIXByZWZpeF9tYXBzKQogICAgIHByZWZpeF9tYXBzCi0gICAgICA9IGdsX2xpc3RfY3Jl
YXRlX2VtcHR5IChHTF9BUlJBWV9MSVNULAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogZXF1YWxzICovIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
KiBoYXNoY29kZSAqLyBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGds
X2xpc3RlbGVtZW50X2Rpc3Bvc2VfZm4pIHByZWZpeF9tYXBfZnJlZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgPSBnbF9saXN0X2NyZWF0ZV9lbXB0
eSAoR0xfQVJSQVlfTElTVCwgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByZWZpeF9tYXBfZnJlZSwgdHJ1ZSk7CiAKICAgc3RydWN0IHByZWZpeF9tYXAg
KnAgPSB4bWFsbG9jIChzaXplb2YgKCpwKSk7CiAgIHAtPm9sZHByZWZpeCA9IHhzdHJkdXAg
KG9sZHByZWZpeCk7CmRpZmYgLS1naXQgYS9zcmMvZml4aXRzLmMgYi9zcmMvZml4aXRzLmMK
aW5kZXggMDYwNWRhNDEuLjBiNThiYjQzIDEwMDY0NAotLS0gYS9zcmMvZml4aXRzLmMKKysr
IGIvc3JjL2ZpeGl0cy5jCkBAIC01MywxNCArNTMsMTcgQEAgZml4aXRfbmV3IChsb2NhdGlv
biBjb25zdCAqbG9jLCBjaGFyIGNvbnN0KiBmaXgpCiB9CiAKIHN0YXRpYyBpbnQKLWZpeGl0
X2NtcCAoY29uc3QgIGZpeGl0ICphLCBjb25zdCBmaXhpdCAqYikKK2ZpeGl0X2NtcCAodm9p
ZCBjb25zdCAqdmEsIHZvaWQgY29uc3QgKnZiKQogeworICBmaXhpdCBjb25zdCAqYSA9IHZh
OworICBmaXhpdCBjb25zdCAqYiA9IHZiOwogICByZXR1cm4gbG9jYXRpb25fY21wIChhLT5s
b2NhdGlvbiwgYi0+bG9jYXRpb24pOwogfQogCiBzdGF0aWMgdm9pZAotZml4aXRfZnJlZSAo
Zml4aXQgKmYpCitmaXhpdF9mcmVlICh2b2lkIGNvbnN0ICp2ZikKIHsKKyAgZml4aXQgKmYg
PSBkZWNvbnN0ICh2Zik7CiAgIGZyZWUgKGYtPmZpeCk7CiAgIGZyZWUgKGYpOwogfQpAQCAt
ODQsMTMgKzg3LDEwIEBAIHZvaWQKIGZpeGl0c19yZWdpc3RlciAobG9jYXRpb24gY29uc3Qg
KmxvYywgY2hhciBjb25zdCogZml4KQogewogICBpZiAoIWZpeGl0cykKLSAgICBmaXhpdHMg
PSBnbF9saXN0X2NyZWF0ZV9lbXB0eSAoR0xfQVJSQVlfTElTVCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogZXF1YWxzICovIE5VTEwsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIGhhc2hjb2RlICovIE5VTEwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChnbF9saXN0ZWxlbWVudF9kaXNwb3NlX2ZuKSBm
aXhpdF9mcmVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsK
KyAgICBmaXhpdHMgPSBnbF9saXN0X2NyZWF0ZV9lbXB0eSAoR0xfQVJSQVlfTElTVCwgTlVM
TCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4aXRfZnJl
ZSwgdHJ1ZSk7CiAgIGZpeGl0ICpmID0gZml4aXRfbmV3IChsb2MsIGZpeCk7Ci0gIGdsX3Nv
cnRlZGxpc3RfYWRkIChmaXhpdHMsIChnbF9saXN0ZWxlbWVudF9jb21wYXJfZm4pIGZpeGl0
X2NtcCwgZik7CisgIGdsX3NvcnRlZGxpc3RfYWRkIChmaXhpdHMsIGZpeGl0X2NtcCwgZik7
CiAgIGlmIChmZWF0dXJlX2ZsYWcgJiBmZWF0dXJlX2ZpeGl0KQogICAgIGZpeGl0X3ByaW50
IChmLCBzdGRlcnIpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2dldGFyZ3MuYyBiL3NyYy9nZXRh
cmdzLmMKaW5kZXggYWQ5ZGVkOWMuLmRmZjU3ZmUxIDEwMDY0NAotLS0gYS9zcmMvZ2V0YXJn
cy5jCisrKyBiL3NyYy9nZXRhcmdzLmMKQEAgLTY5LDcgKzY5LDcgQEAgY29uc3QgY2hhciAq
c2tlbGV0b24gPSBOVUxMOwogaW50IGxhbmd1YWdlX3ByaW8gPSBkZWZhdWx0X3ByaW87CiBz
dHJ1Y3QgYmlzb25fbGFuZ3VhZ2UgY29uc3QgKmxhbmd1YWdlID0gJnZhbGlkX2xhbmd1YWdl
c1swXTsKIAotdHlwZWRlZiBpbnQqICh4YXJnbWF0Y2hfZm4pIChjb25zdCBjaGFyICpjb250
ZXh0LCBjb25zdCBjaGFyICphcmcpOwordHlwZWRlZiBpbnQgY29uc3QgKih4YXJnbWF0Y2hf
Zm4pIChjaGFyIGNvbnN0ICpjb250ZXh0LCBjaGFyIGNvbnN0ICphcmcpOwogCiB2b2lkCiBz
ZXRfeWFjYyAobG9jYXRpb24gbG9jKQpAQCAtMTY0LDcgKzE2NCw3IEBAIGZsYWdzX2FyZ21h
dGNoIChjb25zdCBjaGFyICpvcHQsCiAgKi8KICNkZWZpbmUgRkxBR1NfQVJHTUFUQ0goRmxh
Z05hbWUsIEFyZ3MsIEFsbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgZmxh
Z3NfYXJnbWF0Y2ggKCItLSIgI0ZsYWdOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICh4YXJnbWF0Y2hfZm4qKSBhcmdt
YXRjaF8jIyBGbGFnTmFtZSAjIyBfdmFsdWUsICAgICAgIFwKKyAgICAgICAgICAgICAgICAg
IGFyZ21hdGNoXyAjIyBGbGFnTmFtZSAjIyBfdmFsdWUsICAgICAgICAgICAgICAgICAgICAg
IFwKICAgICAgICAgICAgICAgICAgIGFyZ21hdGNoXyAjIyBGbGFnTmFtZSAjIyBfdXNhZ2Us
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgIEFsbCwgJkZsYWdO
YW1lICMjIF9mbGFnLCBBcmdzKQogCkBAIC0xNzksNyArMTc5LDcgQEAgZW51bSBjb2xvcgog
ICAgIGNvbG9yX2F1dG8KICAgfTsKIAotQVJHTUFUQ0hfREVGSU5FX0dST1VQIChjb2xvciwg
ZW51bSBjb2xvcikKK0FSR01BVENIX0RFRklORV9HUk9VUCAoY29sb3IsIGludCkKIAogc3Rh
dGljIGNvbnN0IGFyZ21hdGNoX2NvbG9yX2RvYyBhcmdtYXRjaF9jb2xvcl9kb2NzW10gPQog
ewpAQCAtMjE1LDcgKzIxNSw3IEBAIGNvbnN0IGFyZ21hdGNoX2NvbG9yX2dyb3VwX3R5cGUg
YXJnbWF0Y2hfY29sb3JfZ3JvdXAgPQogfCAtLXJlcG9ydCdzIGhhbmRsaW5nLiAgfAogYC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1BUkdNQVRDSF9ERUZJTkVfR1JPVVAgKHJlcG9y
dCwgZW51bSByZXBvcnQpCitBUkdNQVRDSF9ERUZJTkVfR1JPVVAgKHJlcG9ydCwgaW50KQog
CiBzdGF0aWMgY29uc3QgYXJnbWF0Y2hfcmVwb3J0X2RvYyBhcmdtYXRjaF9yZXBvcnRfZG9j
c1tdID0KIHsKQEAgLTI1Niw3ICsyNTYsNyBAQCBjb25zdCBhcmdtYXRjaF9yZXBvcnRfZ3Jv
dXBfdHlwZSBhcmdtYXRjaF9yZXBvcnRfZ3JvdXAgPQogfCAtLXRyYWNlJ3MgaGFuZGxpbmcu
ICB8CiBgLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotQVJHTUFUQ0hfREVGSU5FX0dST1VQ
ICh0cmFjZSwgZW51bSB0cmFjZSkKK0FSR01BVENIX0RFRklORV9HUk9VUCAodHJhY2UsIGlu
dCkKIAogc3RhdGljIGNvbnN0IGFyZ21hdGNoX3RyYWNlX2RvYyBhcmdtYXRjaF90cmFjZV9k
b2NzW10gPQogewpAQCAtMzE5LDcgKzMxOSw3IEBAIGNvbnN0IGFyZ21hdGNoX3RyYWNlX2dy
b3VwX3R5cGUgYXJnbWF0Y2hfdHJhY2VfZ3JvdXAgPQogfCAtLWZlYXR1cmUncyBoYW5kbGlu
Zy4gIHwKIGAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLUFSR01BVENIX0RFRklORV9H
Uk9VUCAoZmVhdHVyZSwgZW51bSBmZWF0dXJlKQorQVJHTUFUQ0hfREVGSU5FX0dST1VQIChm
ZWF0dXJlLCBpbnQpCiAKIHN0YXRpYyBjb25zdCBhcmdtYXRjaF9mZWF0dXJlX2RvYyBhcmdt
YXRjaF9mZWF0dXJlX2RvY3NbXSA9CiB7CmRpZmYgLS1naXQgYS9zcmMvbHNzaS5jIGIvc3Jj
L2xzc2kuYwppbmRleCA3OWJiYmExOC4uMmYzNWM1M2MgMTAwNjQ0Ci0tLSBhL3NyYy9sc3Np
LmMKKysrIGIvc3JjL2xzc2kuYwpAQCAtNTAsOCArNTAsOSBAQCBuZXdfbHNzaSAoc3RhdGVf
aXRlbV9udW1iZXIgc2ksIGxzc2kgKnAsIGJpdHNldCBsLCBib29sIGZyZWVfbCkKIH0KIAog
c3RhdGljIHZvaWQKLWxzc2lfZnJlZSAobHNzaSAqc24pCitsc3NpX2ZyZWUgKHZvaWQgKnZz
bikKIHsKKyAgbHNzaSAqc24gPSB2c247CiAgIGlmIChzbiA9PSBOVUxMKQogICAgIHJldHVy
bjsKICAgaWYgKHNuLT5mcmVlX2xvb2thaGVhZCkKQEAgLTYwLDggKzYxLDkgQEAgbHNzaV9m
cmVlIChsc3NpICpzbikKIH0KIAogc3RhdGljIHNpemVfdAotbHNzaV9oYXNoZXIgKGxzc2kg
KnNuLCBzaXplX3QgbWF4KQorbHNzaV9oYXNoZXIgKHZvaWQgY29uc3QgKnZzbiwgc2l6ZV90
IG1heCkKIHsKKyAgbHNzaSBjb25zdCAqc24gPSB2c247CiAgIHNpemVfdCBoYXNoID0gc24t
PnNpOwogICBiaXRzZXRfaXRlcmF0b3IgYml0ZXI7CiAgIHN5bWJvbF9udW1iZXIgc3luOwpA
QCAtNzEsOCArNzMsMTAgQEAgbHNzaV9oYXNoZXIgKGxzc2kgKnNuLCBzaXplX3QgbWF4KQog
fQogCiBzdGF0aWMgYm9vbAotbHNzaV9jb21wYXJhdG9yIChsc3NpICpzMSwgbHNzaSAqczIp
Citsc3NpX2NvbXBhcmF0b3IgKHZvaWQgY29uc3QgKnZzMSwgdm9pZCBjb25zdCAqdnMyKQog
eworICBsc3NpIGNvbnN0ICpzMSA9IHZzMTsKKyAgbHNzaSBjb25zdCAqczIgPSB2czI7CiAg
IGlmIChzMS0+c2kgPT0gczItPnNpKQogICAgIHsKICAgICAgIGlmIChzMS0+bG9va2FoZWFk
ID09IHMyLT5sb29rYWhlYWQpCkBAIC0xNTQsMTEgKzE1OCw4IEBAIHN0YXRlX2l0ZW1fbGlz
dAogc2hvcnRlc3RfcGF0aF9mcm9tX3N0YXJ0IChzdGF0ZV9pdGVtX251bWJlciB0YXJnZXQs
IHN5bWJvbF9udW1iZXIgbmV4dF9zeW0pCiB7CiAgIGJpdHNldCBlbGlnaWJsZSA9IGVsaWdp
YmxlX3N0YXRlX2l0ZW1zICgmc3RhdGVfaXRlbXNbdGFyZ2V0XSk7Ci0gIEhhc2hfdGFibGUg
KnZpc2l0ZWQgPSBoYXNoX2luaXRpYWxpemUgKDMyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoSGFzaF9oYXNoZXIpIGxzc2lfaGFzaGVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSGFzaF9jb21wYXJhdG9yKSBsc3NpX2Nv
bXBhcmF0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChI
YXNoX2RhdGFfZnJlZXIpIGxzc2lfZnJlZSk7CisgIEhhc2hfdGFibGUgKnZpc2l0ZWQgPSBo
YXNoX2luaXRpYWxpemUgKDMyLCBOVUxMLCBsc3NpX2hhc2hlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbHNzaV9jb21wYXJhdG9yLCBsc3NpX2ZyZWUp
OwogICBiaXRzZXQgaWwgPSBiaXRzZXRfY3JlYXRlIChuc3ltcywgQklUU0VUX0ZJWEVEKTsK
ICAgYml0c2V0X3NldCAoaWwsIDApOwogICBsc3NpICppbml0ID0gbmV3X2xzc2kgKDAsIE5V
TEwsIGlsLCB0cnVlKTsKZGlmZiAtLWdpdCBhL3NyYy9wYXJzZS1zaW11bGF0aW9uLmMgYi9z
cmMvcGFyc2Utc2ltdWxhdGlvbi5jCmluZGV4IDllMWY2NmRmLi43YzlmZTM4MiAxMDA2NDQK
LS0tIGEvc3JjL3BhcnNlLXNpbXVsYXRpb24uYworKysgYi9zcmMvcGFyc2Utc2ltdWxhdGlv
bi5jCkBAIC0xOTQsOCArMTk0LDkgQEAgcGFyc2Vfc3RhdGVfZnJlZV9jb250ZW50c19lYXJs
eSAocGFyc2Vfc3RhdGUgKnBzKQogfQogCiB2b2lkCi1mcmVlX3BhcnNlX3N0YXRlIChwYXJz
ZV9zdGF0ZSAqb3JpZ2luYWxfcHMpCitmcmVlX3BhcnNlX3N0YXRlICh2b2lkIGNvbnN0ICp2
b3JpZ2luYWxfcHMpCiB7CisgIHBhcnNlX3N0YXRlICpvcmlnaW5hbF9wcyA9IGRlY29uc3Qg
KHZvcmlnaW5hbF9wcyk7CiAgIGJvb2wgZnJlZV9jb250ZW50cyA9IHRydWU7CiAgIHBhcnNl
X3N0YXRlICpwYXJlbnRfcHMgPSBOVUxMOwogICBmb3IgKHBhcnNlX3N0YXRlICpwcyA9IG9y
aWdpbmFsX3BzOyBwcyAmJiBmcmVlX2NvbnRlbnRzOyBwcyA9IHBhcmVudF9wcykKQEAgLTMx
MSw4ICszMTIsNyBAQCBzdGF0aWMgcGFyc2Vfc3RhdGVfbGlzdAogcGFyc2Vfc3RhdGVfbGlz
dF9uZXcgKHZvaWQpCiB7CiAgIHJldHVybiBnbF9saXN0X2NyZWF0ZV9lbXB0eSAoR0xfTElO
S0VEX0xJU1QsIE5VTEwsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGdsX2xpc3RlbGVtZW50X2Rpc3Bvc2VfZm4pZnJlZV9wYXJzZV9zdGF0ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcmVlX3BhcnNlX3N0YXRlLCB0cnVlKTsKIH0KIAogc3RhdGljIHZvaWQKQEAg
LTMyMiw2ICszMjIsMTMgQEAgcGFyc2Vfc3RhdGVfbGlzdF9hcHBlbmQgKHBhcnNlX3N0YXRl
X2xpc3QgcGwsIHBhcnNlX3N0YXRlICpwcykKICAgZ2xfbGlzdF9hZGRfbGFzdCAocGwsIHBz
KTsKIH0KIAorc3RhdGljIHZvaWQKK3ZjX2Rlcml2YXRpb25fbGlzdF9hcHBlbmQgKGRlcml2
YXRpb25fbGlzdCBkbCwgdm9pZCBjb25zdCAqdmNkKQoreworICBkZXJpdmF0aW9uICpkID0g
ZGVjb25zdCAodmNkKTsKKyAgcmV0dXJuIGRlcml2YXRpb25fbGlzdF9hcHBlbmQgKGRsLCBk
KTsKK30KKwogLy8gRW11bGF0ZXMgYSByZWR1Y3Rpb24gb24gYSBwYXJzZSBzdGF0ZSBieSBw
b3BwaW5nIHNvbWUgYW1vdW50IG9mCiAvLyBkZXJpdmF0aW9ucyBhbmQgc3RhdGVfaXRlbXMg
b2ZmIG9mIHRoZSBwYXJzZV9zdGF0ZSBhbmQgcmV0dXJuaW5nCiAvLyB0aGUgcmVzdWx0IGlu
IHJldC4gUmV0dXJucyB0aGUgZGVyaXZhdGlvbiBvZiB3aGF0J3MgcG9wcGVkLgpAQCAtMzUx
LDcgKzM1OCw3IEBAIHBhcnNlcl9wb3AgKHBhcnNlX3N0YXRlICpwcywgaW50IGRlcml2X2lu
ZGV4LAogICBsaXN0X2ZsYXR0ZW5fYW5kX3NwbGl0IChjaHVua3MsIHJldF9jaHVua3MsIHNp
X2luZGV4LCAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0X2FkZF9sYXN0KTsK
ICAgbGlzdF9mbGF0dGVuX2FuZF9zcGxpdCAoY2h1bmtzICsgMiwgcmV0X2NodW5rcyArIDIs
IGRlcml2X2luZGV4LCAyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAoY2h1bmtfYXBw
ZW5kX2ZuKWRlcml2YXRpb25fbGlzdF9hcHBlbmQpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICB2Y19kZXJpdmF0aW9uX2xpc3RfYXBwZW5kKTsKICAgc2l6ZV90IHNfc2l6ZSA9IGds
X2xpc3Rfc2l6ZSAocmV0LT5zdGF0ZV9pdGVtcy5jb250ZW50cyk7CiAgIHJldC0+c3RhdGVf
aXRlbXMudG90YWxfc2l6ZSA9IHNfc2l6ZTsKICAgaWYgKHNfc2l6ZSA+IDApCmRpZmYgLS1n
aXQgYS9zcmMvcGFyc2Utc2ltdWxhdGlvbi5oIGIvc3JjL3BhcnNlLXNpbXVsYXRpb24uaApp
bmRleCBhYzc0NmNkNi4uN2Q2NmJkOWIgMTAwNjQ0Ci0tLSBhL3NyYy9wYXJzZS1zaW11bGF0
aW9uLmgKKysrIGIvc3JjL3BhcnNlLXNpbXVsYXRpb24uaApAQCAtOTksNyArOTksNyBAQCB2
b2lkIHBhcnNlX3N0YXRlX3JldGFpbiAocGFyc2Vfc3RhdGUgKnBzKTsKICAqIHdoZW4gaXRz
IHJlZmVyZW5jZSBjb3VudCByZWFjaGVzIDEuIFRoaXMgaXMgdXNlZCB0bwogICogZnJlZSBt
ZW1vcnkgd2hpbGUgdGhlIHBhcnNlIHN0YXRlIGlzIGluIGEgaGFzaCBzZXQuICovCiB2b2lk
IHBhcnNlX3N0YXRlX2ZyZWVfY29udGVudHNfZWFybHkgKHBhcnNlX3N0YXRlICpwcyk7Ci12
b2lkIGZyZWVfcGFyc2Vfc3RhdGUgKHBhcnNlX3N0YXRlICpwcyk7Cit2b2lkIGZyZWVfcGFy
c2Vfc3RhdGUgKHZvaWQgY29uc3QgKnBzKTsKIAogLyogY291bnRzIHRoZSBhbW91bnQgb2Yg
c2hpZnQgYW5kIHByb2R1Y3Rpb24gc3RlcHMgaW4gdGhpcyBwYXJzZSBzdGF0ZSAqLwogdm9p
ZCBwYXJzZV9zdGF0ZV9jb21wbGV0ZWRfc3RlcHMgKGNvbnN0IHBhcnNlX3N0YXRlICpwcywg
aW50ICpzaGlmdHMsIGludCAqcHJvZHVjdGlvbnMpOwpkaWZmIC0tZ2l0IGEvc3JjL3N0YXRl
LWl0ZW0uYyBiL3NyYy9zdGF0ZS1pdGVtLmMKaW5kZXggY2MxNjAyY2MuLmFkZGY0ZGMzIDEw
MDY0NAotLS0gYS9zcmMvc3RhdGUtaXRlbS5jCisrKyBiL3NyYy9zdGF0ZS1pdGVtLmMKQEAg
LTQ0LDIwICs0NCwyNCBAQCB0eXBlZGVmIHN0cnVjdAogfSBoYXNoX3BhaXI7CiAKIHN0YXRp
YyBzaXplX3QKLWhhc2hfcGFpcl9oYXNoZXIgKGNvbnN0IGhhc2hfcGFpciAqc2wsIHNpemVf
dCBtYXgpCitoYXNoX3BhaXJfaGFzaGVyICh2b2lkIGNvbnN0ICp2c2wsIHNpemVfdCBtYXgp
CiB7CisgIGhhc2hfcGFpciBjb25zdCAqc2wgPSB2c2w7CiAgIHJldHVybiBzbC0+a2V5ICUg
bWF4OwogfQogCiBzdGF0aWMgYm9vbAotaGFzaF9wYWlyX2NvbXBhcmF0b3IgKGNvbnN0IGhh
c2hfcGFpciAqbCwgY29uc3QgaGFzaF9wYWlyICpyKQoraGFzaF9wYWlyX2NvbXBhcmF0b3Ig
KHZvaWQgY29uc3QgKnZsLCB2b2lkIGNvbnN0ICp2cikKIHsKKyAgaGFzaF9wYWlyIGNvbnN0
ICpsID0gdmw7CisgIGhhc2hfcGFpciBjb25zdCAqciA9IHZyOwogICByZXR1cm4gbC0+a2V5
ID09IHItPmtleTsKIH0KIAogc3RhdGljIHZvaWQKLWhhc2hfcGFpcl9mcmVlIChoYXNoX3Bh
aXIgKmhwKQoraGFzaF9wYWlyX2ZyZWUgKHZvaWQgKnZocCkKIHsKKyAgaGFzaF9wYWlyICpo
cCA9IHZocDsKICAgYml0c2V0X2ZyZWUgKGhwLT5sKTsKICAgZnJlZSAoaHApOwogfQpAQCAt
NjUsMTEgKzY5LDggQEAgaGFzaF9wYWlyX2ZyZWUgKGhhc2hfcGFpciAqaHApCiBzdGF0aWMg
SGFzaF90YWJsZSAqCiBoYXNoX3BhaXJfdGFibGVfY3JlYXRlIChpbnQgc2l6ZSkKIHsKLSAg
cmV0dXJuIGhhc2hfeGluaXRpYWxpemUgKHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKEhhc2hfaGFzaGVyKSBo
YXNoX3BhaXJfaGFzaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKEhhc2hfY29t
cGFyYXRvcikgaGFzaF9wYWlyX2NvbXBhcmF0b3IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAoSGFzaF9kYXRhX2ZyZWVyKSBoYXNoX3BhaXJfZnJlZSk7CisgIHJldHVybiBoYXNo
X3hpbml0aWFsaXplIChzaXplLCBOVUxMLCBoYXNoX3BhaXJfaGFzaGVyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGFzaF9wYWlyX2NvbXBhcmF0b3IsIGhhc2hfcGFpcl9mcmVl
KTsKIH0KIAogc3RhdGljIGJpdHNldApkaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbS5oIGIvc3Jj
L3N5c3RlbS5oCmluZGV4IGZkMzA5MjZiLi44ZmYxMGMxOSAxMDA2NDQKLS0tIGEvc3JjL3N5
c3RlbS5oCisrKyBiL3NyYy9zeXN0ZW0uaApAQCAtMzA4LDQgKzMwOCwxMyBAQCBvYnN0YWNr
X2VzY2FwZSAoc3RydWN0IG9ic3RhY2sqIG9icywgY29uc3QgY2hhciAqY3ApCiAgICAgICB9
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgIH0gd2hpbGUg
KDApCiAKKy8qIEdudWxpYiBnZW5lcmljIGxpc3QgZnVuY3Rpb25zIHNvbWV0aW1lcyB3YW50
IGFyZ3MgdG8gYmUgdm9pZCBjb25zdCAqLgorICAgV2Ugc29tZXRpbWVzIHdhbnQgdm9pZCAq
LCBmb3IgJ2ZyZWUnLCBvciBwb3NzaWJseSBiZWNhdXNlIHdlIHBsYW4KKyAgIHRvIGNoZWF0
IGFuZCBtb2RpZnkgdGhlIHN0b3JhZ2UuICBDYXN0IHRvIHNhdGlzZnkgQydzIHN0YXRpYyBj
aGVja2luZy4gICovCitzdGF0aWMgaW5saW5lIHZvaWQgKgorZGVjb25zdCAodm9pZCBjb25z
dCAqcCkKK3sKKyAgcmV0dXJuICh2b2lkICopIHA7Cit9CisKICNlbmRpZiAgLyogISBCSVNP
Tl9TWVNURU1fSCAqLwotLSAKMi40OC4xCgo=

--------------uFjIZvzExWSiiDinsphmqzeO--