[coreboot] [PATCHes] Adopt coreboot build system for libpayload

Patrick Georgi patrick at georgi-clan.de
Mon May 9 17:05:17 CEST 2011


Content-Type: text/plain; charset=UTF-8

Content-Transfer-Encoding: quoted-printable
=0D
Hi,=0D
=0D
attached patches change libpayload to use the coreboot build system copie=
d=0D
into libpayload. Among the advantages is that it simplifies building a mo=
re=0D
standard set of libraries (eg. libcurses, libc, libpci) which simplifies=0D
porting code to libpayload a bit (as Makefiles can be used with fewer=0D
changes).=0D
=0D
For compatibility purposes, the build system still generates a=0D
libpayload.a, which is simply a superset over all other libraries.=0D
=0D
The first patch changes the build system to the new style.=0D
The second patch fixes up the tree so it compiles with the tighter=0D
warning/error regime imposed by the build system.=0D
As a bonus, the third patch adds openbsd's strlcpy (in addition to strlca=
t=0D
which we already have).=0D
=0D
Signed-off-by: Patrick Georgi <patrick at georgi-clan.de>=0D
-------------- next part --------------
Content-Transfer-Encoding: base64

Content-Type: text/x-lisp; charset=us-ascii; charset=UTF-8;
 name=0001-Use-coreboot-build-system-for-libpayload-too.patch

Content-Disposition: attachment;
 filename=0001-Use-coreboot-build-system-for-libpayload-too.patch



VXNlIGNvcmVib290IGJ1aWxkIHN5c3RlbSBmb3IgbGlicGF5bG9hZCwgdG9vLgoKU2lnbmVkLW9m
Zi1ieTogUGF0cmljayBHZW9yZ2kgPHBhdHJpY2tAZ2VvcmdpLWNsYW4uZGU+Ci0tLQogcGF5bG9h
ZHMvbGlicGF5bG9hZC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgIDM0NSArKysrKysrKysr
KysrKystLS0tLS0tLS0tCiBwYXlsb2Fkcy9saWJwYXlsb2FkL01ha2VmaWxlLmluYyAgICAgICAg
ICAgICAgfCAgMTA1ICsrKysrKysrCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2FyY2gvaTM4Ni9NYWtl
ZmlsZS5pbmMgICAgfCAgICA5ICstCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2FyY2gvcG93ZXJwYy9N
YWtlZmlsZS5pbmMgfCAgICA3ICstCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2NyeXB0by9NYWtlZmls
ZS5pbmMgICAgICAgfCAgICAyICstCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2N1cnNlcy9NYWtlZmls
ZS5pbmMgICAgICAgfCAgICA4ICstCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2RyaXZlcnMvTWFrZWZp
bGUuaW5jICAgICAgfCAgIDU2ICsrLS0KIHBheWxvYWRzL2xpYnBheWxvYWQvbGliYy9NYWtlZmls
ZS5pbmMgICAgICAgICB8ICAgMTQgKy0KIHBheWxvYWRzL2xpYnBheWxvYWQvbGlicGNpL01ha2Vm
aWxlLmluYyAgICAgICB8ICAgIDIgKy0KIDkgZmlsZXMgY2hhbmdlZCwgMzcwIGluc2VydGlvbnMo
KyksIDE3OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXlsb2Fkcy9saWJwYXls
b2FkL01ha2VmaWxlLmluYwoKZGlmZiAtLWdpdCBhL3BheWxvYWRzL2xpYnBheWxvYWQvTWFrZWZp
bGUgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL01ha2VmaWxlCmluZGV4IDQzNjM1OTAuLmEyZDQ0NTIg
MTAwNjQ0Ci0tLSBhL3BheWxvYWRzL2xpYnBheWxvYWQvTWFrZWZpbGUKKysrIGIvcGF5bG9hZHMv
bGlicGF5bG9hZC9NYWtlZmlsZQpAQCAtMywxODQgKzMsMjY3IEBACiAjIwogIyMgQ29weXJpZ2h0
IChDKSAyMDA4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KICMjIENvcHlyaWdodCAoQykg
MjAwOCBVd2UgSGVybWFubiA8dXdlQGhlcm1hbm4tdXdlLmRlPgorIyMgQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTAgY29yZXN5c3RlbXMgR21iSAorIyMgQ29weXJpZ2h0IChDKSAyMDExIHNlY3VuZXQg
U2VjdXJpdHkgTmV0d29ya3MgQUcKICMjCi0jIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyMg
YXJlIG1ldDoKLSMjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotIyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMjIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRo
b3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotIyMgICAg
ZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMjIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KICMjCi0jIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECi0jIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSMjIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0jIyBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRQotIyMgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMjIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0j
IyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikKLSMjIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0jIyBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
Ci0jIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GCi0jIyBTVUNIIERBTUFHRS4KKyMjIFRoaXMgcHJvZ3JhbSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyMgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyMjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUKKyMjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CiAjIworIyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyMjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCisjIworCitpZmVx
ICgkKElOTkVSX1NDQU5CVUlMRCkseSkKK0NDX3JlYWw6PSQoQ0MpCitlbmRpZgogCi1leHBvcnQg
c3JjIDo9ICQoc2hlbGwgcHdkKQotZXhwb3J0IHNyY3RyZWUgOj0gJChzcmMpCi1leHBvcnQgc3Jj
ayA6PSAkKHNyYykvdXRpbC9rY29uZmlnCi1leHBvcnQgb2JqIDo9ICQoc3JjKS9idWlsZAotZXhw
b3J0IG9iamsgOj0gJChzcmMpL2J1aWxkL3V0aWwva2NvbmZpZworJChpZiAkKHdpbGRjYXJkIC54
Y29tcGlsZSksLCQoZXZhbCAkKHNoZWxsIGJhc2ggdXRpbC94Y29tcGlsZS94Y29tcGlsZSA+IC54
Y29tcGlsZSkpKQoraW5jbHVkZSAueGNvbXBpbGUKKworaWZlcSAoJChJTk5FUl9TQ0FOQlVJTEQp
LHkpCitDQzo9JChDQ19yZWFsKQorSE9TVENDOj0kKENDX3JlYWwpIC0taG9zdGNjCitIT1NUQ1hY
Oj0kKENDX3JlYWwpIC0taG9zdGN4eAorZW5kaWYKIAotZXhwb3J0IEtFUk5FTFZFUlNJT04gICAg
ICA6PSAwLjIuMAotZXhwb3J0IEtDT05GSUdfQVVUT0hFQURFUiA6PSAkKG9iaikvaW5jbHVkZS9s
aWJwYXlsb2FkLWNvbmZpZy5oCitleHBvcnQgdG9wIDo9ICQoQ1VSRElSKQorZXhwb3J0IHNyYyA6
PSBzcmMKK2V4cG9ydCBzcmNrIDo9ICQodG9wKS91dGlsL2tjb25maWcKK2V4cG9ydCBvYmogPz0g
YnVpbGQKK2V4cG9ydCBvYmp1dGlsID89ICQob2JqKS91dGlsCitleHBvcnQgb2JqayA6PSAkKG9i
anV0aWwpL2tjb25maWcKKworCitleHBvcnQgS0NPTkZJR19BVVRPSEVBREVSIDo9ICQob2JqKS9j
b25maWcuaAogZXhwb3J0IEtDT05GSUdfQVVUT0NPTkZJRyA6PSAkKG9iaikvYXV0by5jb25mCiAK
KyMgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHRvcGxldmVsIE1ha2VmaWxlLmluYworVE9QTEVW
RUwgOj0gLgorCiBDT05GSUdfU0hFTEwgOj0gc2gKIEtCVUlMRF9ERUZDT05GSUcgOj0gY29uZmln
cy9kZWZjb25maWcKIFVOQU1FX1JFTEVBU0UgOj0gJChzaGVsbCB1bmFtZSAtcikKLUhBVkVfRE9U
Q09ORklHIDo9ICQod2lsZGNhcmQgLmNvbmZpZykKK0RPVENPTkZJRyA/PSAuY29uZmlnCitLQ09O
RklHX0NPTkZJRyA9ICQoRE9UQ09ORklHKQorZXhwb3J0IEtDT05GSUdfQ09ORklHCitIQVZFX0RP
VENPTkZJRyA6PSAkKHdpbGRjYXJkICQoRE9UQ09ORklHKSkKIE1BS0VGTEFHUyArPSAtclIgLS1u
by1wcmludC1kaXJlY3RvcnkKIAogIyBNYWtlIGlzIHNpbGVudCBwZXIgZGVmYXVsdCwgYnV0ICdt
YWtlIFY9MScgd2lsbCBzaG93IGFsbCBjb21waWxlciBjYWxscy4KK1E6PUAKIGlmbmVxICgkKFYp
LDEpCi1RIDo9IEAKK2lmbmVxICgkKFEpLCkKKy5TSUxFTlQ6CitlbmRpZgogZW5kaWYKIAotJChp
ZiAkKHdpbGRjYXJkIC54Y29tcGlsZSksLCQoZXZhbCAkKHNoZWxsIGJhc2ggdXRpbC94Y29tcGls
ZS94Y29tcGlsZSA+IC54Y29tcGlsZSkpKQotaW5jbHVkZSAueGNvbXBpbGUKLQotQ0MgPz0gZ2Nj
CitDUFA6PSAkKENDKSAteCBhc3NlbWJsZXItd2l0aC1jcHAgLURBU1NFTUJMWSAtRQogSE9TVEND
ID0gZ2NjCiBIT1NUQ1hYID0gZysrCi1IT1NUQ0ZMQUdTIDo9IC1JJChzcmNrKSAtSSQob2Jqaykg
LXBpcGUKLUhPU1RDWFhGTEFHUyA6PSAtSSQoc3JjaykgLUkkKG9iamspIC1waXBlCi0KLURFU1RE
SVIgPSAkKHNyYykvaW5zdGFsbAorSE9TVENGTEFHUyA6PSAtSSQoc3JjaykgLUkkKG9iamspIC1n
CitIT1NUQ1hYRkxBR1MgOj0gLUkkKHNyY2spIC1JJChvYmprKQorTElCR0NDX0ZJTEVfTkFNRSA6
PSAkKHNoZWxsIHRlc3QgLXIgYCQoQ0MpIC1wcmludC1saWJnY2MtZmlsZS1uYW1lYCAmJiAkKEND
KSAtcHJpbnQtbGliZ2NjLWZpbGUtbmFtZSkKIAogRE9YWUdFTiA6PSBkb3h5Z2VuCiBET1hZR0VO
X09VVFBVVF9ESVIgOj0gZG94eWdlbgogCithbGw6IHJlYWwtYWxsCisKKyMgVGhpcyBpbmNsdWRl
IG11c3QgY29tZSBfYmVmb3JlXyB0aGUgcGF0dGVybiBydWxlcyBiZWxvdyEKKyMgT3JkZXIgX2Rv
ZXNfIG1hdHRlciBmb3IgcGF0dGVybiBydWxlcy4KK2luY2x1ZGUgdXRpbC9rY29uZmlnL01ha2Vm
aWxlCisKKyMgVGhyZWUgY2FzZXMgd2hlcmUgd2UgZG9uJ3QgbmVlZCBmdWxseSBwb3B1bGF0ZWQg
JChvYmopIGxpc3RzOgorIyAxLiB3aGVuIG5vIC5jb25maWcgZXhpc3RzCisjIDIuIHdoZW4gbWFr
ZSBjb25maWcgKGluIGFueSBmbGF2b3VyKSBpcyBydW4KKyMgMy4gd2hlbiBtYWtlIGRpc3RjbGVh
biBpcyBydW4KKyMgRG9uJ3Qgd2FzdGUgdGltZSBvbiByZWFkaW5nIGFsbCBNYWtlZmlsZS5pbmNz
IGluIHRoZXNlIGNhc2VzCiBpZmVxICgkKHN0cmlwICQoSEFWRV9ET1RDT05GSUcpKSwpCitOT0NP
TVBJTEU6PTEKK2VuZGlmCitpZm5lcSAoJChNQUtFQ01ER09BTFMpLCkKK2lmbmVxICgkKGZpbHRl
ciAlY29uZmlnIGRpc3RjbGVhbiwkKE1BS0VDTURHT0FMUykpLCkKK05PQ09NUElMRTo9MQorZW5k
aWYKK2VuZGlmCiAKLWFsbDogY29uZmlnCitpZmVxICgkKE5PQ09NUElMRSksMSkKK2luY2x1ZGUg
JChUT1BMRVZFTCkvTWFrZWZpbGUuaW5jCityZWFsLWFsbDogY29uZmlnCiAKIGVsc2UKIAotaW5j
bHVkZSAkKHNyYykvLmNvbmZpZworaW5jbHVkZSAkKEhBVkVfRE9UQ09ORklHKQogCi1BUkNIRElS
LSQoQ09ORklHX1RBUkdFVF9JMzg2KSAgICA6PSBpMzg2Ci1BUkNIRElSLSQoQ09ORklHX1RBUkdF
VF9QT1dFUlBDKSA6PSBwb3dlcnBjCitpZm5lcSAoJChJTk5FUl9TQ0FOQlVJTEQpLHkpCitpZmVx
ICgkKENPTkZJR19DT01QSUxFUl9MTFZNX0NMQU5HKSx5KQorQ0M6PWNsYW5nIC1tMzIKK0hPU1RD
Qzo9Y2xhbmcKK2VuZGlmCitlbmRpZgogCi1QTEFURk9STS15ICs9IGFyY2gvJChBUkNIRElSLXkp
L01ha2VmaWxlLmluYwotVEFSR0VUUy15IDo9CitpZmVxICgkKENPTkZJR19DQ0FDSEUpLHkpCitD
Q0FDSEU6PSQod2lsZGNhcmQgJChhZGRzdWZmaXggL2NjYWNoZSwkKHN1YnN0IDosICwkKFBBVEgp
KSkpCitpZmVxICgkKENDQUNIRSksKQorJChlcnJvciBjY2FjaGUgc2VsZWN0ZWQsIGJ1dCBub3Qg
Zm91bmQgaW4gUEFUSCkKK2VuZGlmCitDQ0FDSEU6PUNDQUNIRV9DT01QSUxFUkNIRUNLPWNvbnRl
bnQgQ0NBQ0hFX0JBU0VESVI9JCh0b3ApICQoQ0NBQ0hFKQorQ0MgOj0gJChDQ0FDSEUpICQoQ0Mp
CitIT1NUQ0MgOj0gJChDQ0FDSEUpICQoSE9TVENDKQorSE9TVENYWCA6PSAkKENDQUNIRSkgJChI
T1NUQ1hYKQorUk9NQ0MgOj0gJChDQ0FDSEUpICQoUk9NQ0MpCitlbmRpZgogCi1CVUlMRC15IDo9
IGNyeXB0by9NYWtlZmlsZS5pbmMgbGliYy9NYWtlZmlsZS5pbmMgZHJpdmVycy9NYWtlZmlsZS5p
bmMgbGlicGNpL01ha2VmaWxlLmluYwotQlVJTEQtJChDT05GSUdfVElOWUNVUlNFUykgKz0gY3Vy
c2VzL01ha2VmaWxlLmluYworc3RyaXBfcXVvdGVzID0gJChzdWJzdCAiLCwkKHN1YnN0IFwiLCwk
KDEpKSkKIAogIyBUaGUgcHJpbWFyeSB0YXJnZXQgbmVlZHMgdG8gYmUgaGVyZSBiZWZvcmUgd2Ug
aW5jbHVkZSB0aGUKICMgb3RoZXIgZmlsZXMKIAotYWxsOiBsaWIKLQotaW5jbHVkZSAkKFBMQVRG
T1JNLXkpICQoQlVJTEQteSkKLQotT0JKUyAgICAgOj0gJChwYXRzdWJzdCAlLCQob2JqKS8lLCQo
VEFSR0VUUy15KSkKLUlOQ0xVREVTIDo9IC1JaW5jbHVkZSAtSWluY2x1ZGUvJChBUkNIRElSLXkp
IC1JJChvYmopIC1JJChvYmopL2luY2x1ZGUKLUlOQ0xVREVTICs9IC1JJChzaGVsbCAkKENDKSAt
cHJpbnQtc2VhcmNoLWRpcnMgfCBoZWFkIC1uIDEgfCBjdXQgLWQnICcgLWYyKWluY2x1ZGUKLQot
dHJ5LXJ1bj0gJChzaGVsbCBzZXQgLWU7IFwKLVRNUD0iLiQkJCQudG1wIjsgXAotaWYgKCQoMSkp
ID4gL2Rldi9udWxsIDI+JjE7IFwKLXRoZW4gZWNobyAiJCgyKSI7IFwKLWVsc2UgZWNobyAiJCgz
KSI7IFwKLWZpOyBybSAtcmYgIiQkVE1QIikKLQotY2Mtb3B0aW9uPSAkKGNhbGwgdHJ5LXJ1bixc
Ci0kKENDKSAkKDEpIC1TIC14YyAvZGV2L251bGwgLW8gIiQkVE1QIiwgJCgxKSwgJCgyKSkKLQot
U1RBQ0tQUk9URUNUICs9ICQoY2FsbCBjYy1vcHRpb24sIC1mbm8tc3RhY2stcHJvdGVjdG9yLCkK
LQotIyBUT0RPOiBSZS1hZGQgLU9zIGFzIHNvb24gYXMgd2UgZmluZCBvdXQgd2h5IGl0IGNhdXNl
ZCBwcm9ibGVtcy4KLUNGTEFHUyA6PSAtV2FsbCAtV2Vycm9yICQoU1RBQ0tQUk9URUNUKSAtbm9z
dGRpbmMgJChJTkNMVURFUykgLWZmcmVlc3RhbmRpbmcgLXBpcGUKLQotYWxsOiBsaWIKLQotbGli
OiAkKG9iaikvbGliL2xpYnBheWxvYWQuYSAkKG9iaikvbGliLyQoQVJDSERJUi15KS9oZWFkLm8K
K2lmZXEgKCQoSU5ORVJfU0NBTkJVSUxEKSx5KQorQ09ORklHX1NDQU5CVUlMRF9FTkFCTEU6PQor
ZW5kaWYKIAotJChvYmopL2xpYi8kKEFSQ0hESVIteSkvaGVhZC5vOiAkKG9iaikvYXJjaC8kKEFS
Q0hESVIteSkvaGVhZC5TLm8KLQkkKFEpcHJpbnRmICIgIENQICAgICAgJChzdWJzdCAkKHNoZWxs
IHB3ZCkvLCwkKEApKVxuIgotCSQoUSljcCAkPCAkQAoraWZlcSAoJChDT05GSUdfU0NBTkJVSUxE
X0VOQUJMRSkseSkKK2lmbmVxICgkKENPTkZJR19TQ0FOQlVJTERfUkVQT1JUX0xPQ0FUSU9OKSwp
CitDT05GSUdfU0NBTkJVSUxEX1JFUE9SVF9MT0NBVElPTjo9LW8gJChDT05GSUdfU0NBTkJVSUxE
X1JFUE9SVF9MT0NBVElPTikKK2VuZGlmCityZWFsLWFsbDoKKwllY2hvICcjIS9iaW4vc2gnID4g
LmNjd3JhcAorCWVjaG8gJ0NDPSIkKENDKSInID4+IC5jY3dyYXAKKwllY2hvICdpZiBbICIkJDEi
ID0gIi0taG9zdGNjIiBdOyB0aGVuIHNoaWZ0OyBDQz0iJChIT1NUQ0MpIjsgZmknID4+IC5jY3dy
YXAKKwllY2hvICdpZiBbICIkJDEiID0gIi0taG9zdGN4eCIgXTsgdGhlbiBzaGlmdDsgQ0M9IiQo
SE9TVENYWCkiOyBmaScgPj4gLmNjd3JhcAorCWVjaG8gJ2V2YWwgJCRDQyAkJConID4+IC5jY3dy
YXAKKwljaG1vZCAreCAuY2N3cmFwCisJc2Nhbi1idWlsZCAkKENPTkZJR19TQ0FOQlVJTERfUkVQ
T1JUX0xPQ0FUSU9OKSAtYW5hbHl6ZS1oZWFkZXJzIC0tdXNlLWNjPSQodG9wKS8uY2N3cmFwIC0t
dXNlLWMrKz0kKHRvcCkvLmNjd3JhcCAkKE1BS0UpIElOTkVSX1NDQU5CVUlMRD15CitlbHNlCity
ZWFsLWFsbDogcmVhbC10YXJnZXQKK2VuZGlmCiAKLSQob2JqKS9saWIvbGlicGF5bG9hZC5hOiBw
cmVwYXJlICQoT0JKUykKLQkkKFEpcHJpbnRmICIgIEFSICAgICAgJChzdWJzdCAkKHNoZWxsIHB3
ZCkvLCwkKEApKVxuIgotCSQoUSkkKEFSKSByYyAkQCAkKE9CSlMpCisjIG11c3QgY29tZSByYXRo
ZXIgZWFybHkKKy5TRUNPTkRFWFBBTlNJT046CisKKyQob2JqKS9jb25maWcuaDoKKwkkKE1BS0Up
IG9sZGNvbmZpZworCisjIEFkZCBhIG5ldyBjbGFzcyBvZiBzb3VyY2Uvb2JqZWN0IGZpbGVzIHRv
IHRoZSBidWlsZCBzeXN0ZW0KK2FkZC1jbGFzcz0gXAorCSQoZXZhbCAkKDEpLXNyY3M6PSkgXAor
CSQoZXZhbCAkKDEpLW9ianM6PSkgXAorCSQoZXZhbCBjbGFzc2VzKz0kKDEpKQorCisjIFNwZWNp
YWwgY2xhc3NlcyBhcmUgbWFuYWdlZCB0eXBlcyB3aXRoIHNwZWNpYWwgYmVoYXZpb3VyCisjIE9u
IHBhcnNlIHRpbWUsIGZvciBlYWNoIGVudHJ5IGluIHZhcmlhYmxlICQoMSkteQorIyBhIGhhbmRs
ZXIgJCgxKS1oYW5kbGVyIGlzIGV4ZWN1dGVkIHdpdGggdGhlIGFyZ3VtZW50czoKKyMgKiAkKDEp
OiBkaXJlY3RvcnkgdGhlIHBhcnNlciBpcyBpbgorIyAqICQoMik6IGN1cnJlbnQgZW50cnkKK2Fk
ZC1zcGVjaWFsLWNsYXNzPSBcCisJJChldmFsICQoMSk6PSkgXAorCSQoZXZhbCBzcGVjaWFsLWNs
YXNzZXMrPSQoMSkpCisKKyMgQ2xlYW4gLXkgdmFyaWFibGVzLCBpbmNsdWRlIE1ha2VmaWxlLmlu
YworIyBBZGQgcGF0aHMgdG8gZmlsZXMgaW4gWC15IHRvIFgtc3JjcworIyBBZGQgc3ViZGlycy15
IHRvIHN1YmRpcnMKK2luY2x1ZGVtYWtlZmlsZXM9IFwKKwkkKGZvcmVhY2ggY2xhc3MsY2xhc3Nl
cyBzdWJkaXJzICQoY2xhc3NlcykgJChzcGVjaWFsLWNsYXNzZXMpLCAkKGV2YWwgJChjbGFzcykt
eTo9KSkgXAorCSQoZXZhbCAtaW5jbHVkZSAkKDEpKSBcCisJJChmb3JlYWNoIGNsYXNzLCQoY2xh
c3Nlcy15KSwgJChjYWxsIGFkZC1jbGFzcywkKGNsYXNzKSkpIFwKKwkkKGZvcmVhY2ggY2xhc3Ms
JChjbGFzc2VzKSwgXAorCQkkKGV2YWwgJChjbGFzcyktc3Jjcys9IFwKKwkJCSQkKHN1YnN0ICQo
dG9wKS8sLCBcCisJCQkkJChhYnNwYXRoICQkKGFkZHByZWZpeCAkKGRpciAkKDEpKSwkJCgkKGNs
YXNzKS15KSkpKSkpIFwKKwkkKGZvcmVhY2ggc3BlY2lhbCwkKHNwZWNpYWwtY2xhc3NlcyksIFwK
KwkJJChmb3JlYWNoIGl0ZW0sJCgkKHNwZWNpYWwpLXkpLCAkKGNhbGwgJChzcGVjaWFsKS1oYW5k
bGVyLCQoZGlyICQoMSkpLCQoaXRlbSkpKSkgXAorCSQoZXZhbCBzdWJkaXJzKz0kJChzdWJzdCAk
KENVUkRJUikvLCwkJChhYnNwYXRoICQkKGFkZHByZWZpeCAkKGRpciAkKDEpKSwkJChzdWJkaXJz
LXkpKSkpKQorCisjIEZvciBlYWNoIHBhdGggaW4gJChzdWJkaXJzKSBjYWxsIGluY2x1ZGVtYWtl
ZmlsZXMKKyMgUmVwZWF0IHVudGlsIHN1YmRpcnMgaXMgZW1wdHkKK2V2YWx1YXRlX3N1YmRpcnM9
IFwKKwkkKGV2YWwgY3Vyc3ViZGlyczo9JChzdWJkaXJzKSkgXAorCSQoZXZhbCBzdWJkaXJzOj0p
IFwKKwkkKGZvcmVhY2ggZGlyLCQoY3Vyc3ViZGlycyksIFwKKwkJJChldmFsICQoY2FsbCBpbmNs
dWRlbWFrZWZpbGVzLCQoZGlyKS9NYWtlZmlsZS5pbmMpKSkgXAorCSQoaWYgJChzdWJkaXJzKSwk
KGV2YWwgJChjYWxsIGV2YWx1YXRlX3N1YmRpcnMpKSkKKworIyBjb2xsZWN0IGFsbCBvYmplY3Qg
ZmlsZXMgZWxpZ2libGUgZm9yIGJ1aWxkaW5nCitzdWJkaXJzOj0kKFRPUExFVkVMKQorJChldmFs
ICQoY2FsbCBldmFsdWF0ZV9zdWJkaXJzKSkKKworc3JjLXRvLW9iaj0kKGFkZHN1ZmZpeCAuJCgx
KS5vLCAkKGJhc2VuYW1lICQoYWRkcHJlZml4ICQob2JqKS8sICQoJCgxKS1zcmNzKSkpKQorJChm
b3JlYWNoIGNsYXNzLCQoY2xhc3NlcyksJChldmFsICQoY2xhc3MpLW9ianM6PSQoY2FsbCBzcmMt
dG8tb2JqLCQoY2xhc3MpKSkpCisKK2FsbHNyY3M6PSQoZm9yZWFjaCB2YXIsICQoYWRkc3VmZml4
IC1zcmNzLCQoY2xhc3NlcykpLCAkKCQodmFyKSkpCithbGxvYmpzOj0kKGZvcmVhY2ggdmFyLCAk
KGFkZHN1ZmZpeCAtb2JqcywkKGNsYXNzZXMpKSwgJCgkKHZhcikpKQorYWxsZGlyczo9JChzb3J0
ICQoYWJzcGF0aCAkKGRpciAkKGFsbG9ianMpKSkpCisKKyMgbWFjcm8gdG8gZGVmaW5lIHRlbXBs
YXRlIG1hY3JvcyB0aGF0IGFyZSB1c2VkIGJ5IHVzZV90ZW1wbGF0ZSBtYWNybworZGVmaW5lIGNy
ZWF0ZV9jY190ZW1wbGF0ZQorIyAkMSBvYmogY2xhc3MKKyMgJDIgc291cmNlIHN1ZmZpeCAoYywg
UykKKyMgJDMgYWRkaXRpb25hbCBjb21waWxlciBmbGFncworIyAkNCBhZGRpdGlvbmFsIGRlcGVu
ZGVuY2llcworaWZuJChFTVBUWSlkZWYgJCgxKS1vYmpzXyQoMilfdGVtcGxhdGUKK2RlJChFTVBU
WSlmaW5lICQoMSktb2Jqc18kKDIpX3RlbXBsYXRlCiskKG9iaikvJCQoMSkuJCgxKS5vOiAkJCgx
KS4kKDIpICQob2JqKS9jb25maWcuaCAkKDQpCisJQHByaW50ZiAiICAgIENDICAgICAgICAgJCQk
JChzdWJzdCAkJCQkKG9iaikvLCwkJCQkKEApKVxuIgorCSQoQ0MpICQoMykgLU1NRCAkJCQkKENG
TEFHUykgLWMgLW8gJCQkJEAgJCQkJDwKK2VuJChFTVBUWSlkZWYKK2VuZCQoRU1QVFkpaWYKK2Vu
ZGVmCisKK2ZpbGV0eXBlcy1vZi1jbGFzcz0kKHN1YnN0IC4sLCQoc29ydCAkKHN1ZmZpeCAkKCQo
MSktc3JjcykpKSkKKyQoZm9yZWFjaCBjbGFzcywkKGNsYXNzZXMpLCBcCisJJChmb3JlYWNoIHR5
cGUsJChjYWxsIGZpbGV0eXBlcy1vZi1jbGFzcywkKGNsYXNzKSksIFwKKwkJJChldmFsICQoY2Fs
bCBjcmVhdGVfY2NfdGVtcGxhdGUsJChjbGFzcyksJCh0eXBlKSwkKCQoY2xhc3MpLSQodHlwZSkt
Y2NvcHRzKSwkKCQoY2xhc3MpLSQodHlwZSktZGVwcykpKSkpCisKK2ZvcmVhY2gtc3JjPSQoZm9y
ZWFjaCBmaWxlLCQoJCgxKS1zcmNzKSwkKGV2YWwgJChjYWxsICQoMSktb2Jqc18kKHN1YnN0IC4s
LCQoc3VmZml4ICQoZmlsZSkpKV90ZW1wbGF0ZSwkKGJhc2VuYW1lICQoZmlsZSkpKSkpCiskKGV2
YWwgJChmb3JlYWNoIGNsYXNzLCQoY2xhc3NlcyksJChjYWxsIGZvcmVhY2gtc3JjLCQoY2xhc3Mp
KSkpCisKK0RFUEVOREVOQ0lFUyA9ICQoYWxsb2Jqczoubz0uZCkKKy1pbmNsdWRlICQoREVQRU5E
RU5DSUVTKQorCitwcmludGFsbDoKKwlAJChmb3JlYWNoIGNsYXNzLCQoY2xhc3NlcyksZWNobyAk
KGNsYXNzKS1vYmpzOj0kKCQoY2xhc3MpLW9ianMpOyApCisJQGVjaG8gYWxsZGlyczo9JChhbGxk
aXJzKQorCUBlY2hvIGFsbHNyY3M9JChhbGxzcmNzKQorCUBlY2hvIERFUEVOREVOQ0lFUz0kKERF
UEVOREVOQ0lFUykKKwlAZWNobyBMSUJHQ0NfRklMRV9OQU1FPSQoTElCR0NDX0ZJTEVfTkFNRSkK
KwlAJChmb3JlYWNoIGNsYXNzLCQoc3BlY2lhbC1jbGFzc2VzKSxlY2hvICQoY2xhc3MpOj0nJCgk
KGNsYXNzKSknOyApCiAKIGVuZGlmCiAKLWluc3RhbGw6IGxpYgotCSQoUSlwcmludGYgIiAgSU5T
VEFMTCAkKERFU1RESVIpL2xpYnBheWxvYWQvbGliXG4iCi0JJChRKWluc3RhbGwgLW0gNzU1IC1k
ICQoREVTVERJUikvbGlicGF5bG9hZC9saWIKLQkkKFEpaW5zdGFsbCAtbSA2NDQgJChvYmopL2xp
Yi9saWJwYXlsb2FkLmEgJChERVNURElSKS9saWJwYXlsb2FkL2xpYi8KLQkkKFEpaW5zdGFsbCAt
bSA2NDQgbGliL2xpYnBheWxvYWQubGRzY3JpcHQgJChERVNURElSKS9saWJwYXlsb2FkL2xpYi8K
LQkkKFEpaW5zdGFsbCAtbSA3NTUgLWQgJChERVNURElSKS9saWJwYXlsb2FkL2xpYi8kKEFSQ0hE
SVIteSkKLQkkKFEpaW5zdGFsbCAtbSA2NDQgJChvYmopL2xpYi8kKEFSQ0hESVIteSkvaGVhZC5v
ICQoREVTVERJUikvbGlicGF5bG9hZC9saWIvJChBUkNIRElSLXkpCi0JJChRKXByaW50ZiAiICBJ
TlNUQUxMICQoREVTVERJUikvbGlicGF5bG9hZC9pbmNsdWRlXG4iCi0JJChRKWluc3RhbGwgLW0g
NzU1IC1kICQoREVTVERJUikvbGlicGF5bG9hZC9pbmNsdWRlCi0JJChRKWZvciBmaWxlIGluIGBm
aW5kIGluY2x1ZGUgLW5hbWUgKi5oIC10eXBlIGZgOyBkbyBcCi0JCWluc3RhbGwgLW0gNzU1IC1k
ICQoREVTVERJUikvbGlicGF5bG9hZC9gZGlybmFtZSAkJGZpbGVgOyBcCi0JCWluc3RhbGwgLW0g
NjQ0ICQkZmlsZSAkKERFU1RESVIpL2xpYnBheWxvYWQvJCRmaWxlOyBcCi0JZG9uZQotCSQoUSlp
bnN0YWxsIC1tIDY0NCAkKEtDT05GSUdfQVVUT0hFQURFUikgJChERVNURElSKS9saWJwYXlsb2Fk
L2luY2x1ZGUKLQkkKFEpcHJpbnRmICIgIElOU1RBTEwgJChERVNURElSKS9saWJwYXlsb2FkL2Jp
blxuIgotCSQoUSlpbnN0YWxsIC1tIDc1NSAtZCAkKERFU1RESVIpL2xpYnBheWxvYWQvYmluCi0J
JChRKWluc3RhbGwgLW0gNzU1IGJpbi9scGdjYyAkKERFU1RESVIpL2xpYnBheWxvYWQvYmluCi0J
JChRKWluc3RhbGwgLW0gNzU1IGJpbi9scGFzICQoREVTVERJUikvbGlicGF5bG9hZC9iaW4KLQkk
KFEpaW5zdGFsbCAtbSA2NDQgYmluL2xwLmZ1bmN0aW9ucyAkKERFU1RESVIpL2xpYnBheWxvYWQv
YmluCi0JJChRKWluc3RhbGwgLW0gNjQ0IC5jb25maWcgJChERVNURElSKS9saWJwYXlsb2FkL2xp
YnBheWxvYWQuY29uZmlnCi0KLXByZXBhcmU6Ci0JJChRKW1rZGlyIC1wICQob2JqKS91dGlsL2tj
b25maWcvbHhkaWFsb2cKLQkkKFEpbWtkaXIgLXAgJChvYmopL2NyeXB0byAkKG9iaikvY3Vyc2Vz
ICQob2JqKS9kcml2ZXJzL3ZpZGVvCi0JJChRKW1rZGlyIC1wICQob2JqKS9kcml2ZXJzL3VzYgot
CSQoUSlta2RpciAtcCAkKG9iaikvYXJjaC8kKEFSQ0hESVIteSkgJChvYmopL2xpYi8kKEFSQ0hE
SVIteSkgJChvYmopL2xpYmMgJChvYmopL2xpYnBjaQotCSQoUSlta2RpciAtcCAkKG9iaikvbGli
LyQoQVJDSERJUi15KQotCSQoUSlta2RpciAtcCAkKG9iaikvaW5jbHVkZQorJChzaGVsbCBta2Rp
ciAtcCAkKG9iaikgJChvYmp1dGlsKS9rY29uZmlnL2x4ZGlhbG9nICQoYWRkaXRpb25hbC1kaXJz
KSAkKGFsbGRpcnMpKQorCitjc2NvcGU6CisJY3Njb3BlIC1iUgogCiBkb3h5OiBkb3h5Z2VuCiBk
b3h5Z2VuOgotCSQoUSkkKERPWFlHRU4pIERveHlmaWxlCisJJChET1hZR0VOKSBEb3h5ZmlsZQog
CiBkb3h5Y2xlYW46IGRveHlnZW4tY2xlYW4KIGRveHlnZW4tY2xlYW46Ci0JJChRKXJtIC1yZiAk
KERPWFlHRU5fT1VUUFVUX0RJUikKLQotY2xlYW46IGRveHlnZW4tY2xlYW4KLQkkKFEpcm0gLXJm
ICQob2JqKS9jcnlwdG8gJChvYmopL2N1cnNlcyAkKG9iaikvZHJpdmVycwotCSQoUSlybSAtcmYg
JChvYmopL2kzODYgJChvYmopL3Bvd2VycGMgJChvYmopL2xpYiAkKG9iaikvbGliYwotCi1kaXN0
Y2xlYW46IGNsZWFuCi0JJChRKXJtIC1yZiBidWlsZCAjIHNob3VsZCBiZSAkKG9iaikgPwotCSQo
USlybSAtZiAuY29uZmlnIC5jb25maWcub2xkIC54Y29tcGlsZSAuLmNvbmZpZy50bXAgLmtjb25m
aWcuZCAudG1wY29uZmlnKgotCi0jIFRoaXMgaW5jbHVkZSBtdXN0IGNvbWUgX2JlZm9yZV8gdGhl
IHBhdHRlcm4gcnVsZXMgYmVsb3chCi0jIE9yZGVyIF9kb2VzXyBtYXR0ZXIgZm9yIHBhdHRlcm4g
cnVsZXMuCi1pbmNsdWRlIHV0aWwva2NvbmZpZy9NYWtlZmlsZQotCi1pZmVxICgkKHN0cmlwICQo
SEFWRV9ET1RDT05GSUcpKSwpCi1lbHNlCisJcm0gLXJmICQoRE9YWUdFTl9PVVRQVVRfRElSKQog
Ci0kKG9iaikvJS5vOiAkKHNyYykvJS5jCi0JJChRKXByaW50ZiAiICBDQyAgICAgICQoc3Vic3Qg
JChzaGVsbCBwd2QpLywsJChAKSlcbiIKLQkkKFEpJChDQykgLW0zMiAkKENGTEFHUykgLWMgLW8g
JEAgJDwKK2NsZWFuLWZvci11cGRhdGU6IGRveHlnZW4tY2xlYW4gY2xlYW4tZm9yLXVwZGF0ZS10
YXJnZXQKKwlybSAtZiAkKGFsbG9ianMpIC54Y29tcGlsZQorCXJtIC1mICQoREVQRU5ERU5DSUVT
KQorCXJtZGlyIC1wICQoYWxsZGlycykgMj4vZGV2L251bGwgPi9kZXYvbnVsbCB8fCB0cnVlCiAK
LSQob2JqKS8lLlMubzogJChzcmMpLyUuUwotCSQoUSlwcmludGYgIiAgQ0MgICAgICAkKHN1YnN0
ICQoc2hlbGwgcHdkKS8sLCQoQCkpXG4iCi0JJChRKSQoQ0MpIC1tMzIgJChDRkxBR1MpIC1jIC1v
ICRAICQ8CitjbGVhbjogY2xlYW4tZm9yLXVwZGF0ZSBjbGVhbi10YXJnZXQKKwlybSAtZiAuY2N3
cmFwCiAKLWVuZGlmCitjbGVhbi1jc2NvcGU6CisJcm0gLWYgY3Njb3BlLm91dAogCi0uUEhPTlk6
ICQoUEhPTlkpIHByZXBhcmUgaW5zdGFsbCBjbGVhbiBkaXN0Y2xlYW4gZG94eWdlbiBkb3h5Citk
aXN0Y2xlYW46IGNsZWFuLWNzY29wZQorCXJtIC1yZiAkKG9iaikKKwlybSAtZiAuY29uZmlnIC5j
b25maWcub2xkIC4uY29uZmlnLnRtcCAua2NvbmZpZy5kIC50bXBjb25maWcqIC5jY3dyYXAgLnhj
b21waWxlCiAKKy5QSE9OWTogJChQSE9OWSkgY2xlYW4gY2xlYW4tY3Njb3BlIGNzY29wZSBkaXN0
Y2xlYW4gZG94eWdlbiBkb3h5IC54Y29tcGlsZQpkaWZmIC0tZ2l0IGEvcGF5bG9hZHMvbGlicGF5
bG9hZC9NYWtlZmlsZS5pbmMgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL01ha2VmaWxlLmluYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWY3OWE2Ci0tLSAvZGV2L251bGwKKysr
IGIvcGF5bG9hZHMvbGlicGF5bG9hZC9NYWtlZmlsZS5pbmMKQEAgLTAsMCArMSwxMDUgQEAKKyMj
CisjIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbGlicGF5bG9hZCBwcm9qZWN0LgorIyMKKyMj
IENvcHlyaWdodCAoQykgMjAwOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisjIyBDb3B5
cmlnaHQgKEMpIDIwMDggVXdlIEhlcm1hbm4gPHV3ZUBoZXJtYW5uLXV3ZS5kZT4KKyMjIENvcHly
aWdodCAoQykgMjAxMSBzZWN1bmV0IFNlY3VyaXR5IE5ldHdvcmtzIEFHCisjIworIyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMjIGFyZSBtZXQ6CisjIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIyAz
LiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMKKyMjICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIyMKKyMjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyMjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorIyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyMjIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
CisjIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyMjIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KQorIyMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyMjIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyMjIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKKyMjIFNVQ0ggREFNQUdFLgorIyMKKworZXhwb3J0IEtFUk5FTFZFUlNJT04gICAgICA6
PSAwLjIuMAorCitBUkNIRElSLSQoQ09ORklHX1RBUkdFVF9JMzg2KSAgICA6PSBpMzg2CitBUkNI
RElSLSQoQ09ORklHX1RBUkdFVF9QT1dFUlBDKSA6PSBwb3dlcnBjCisKK3JlYWwtdGFyZ2V0OiBs
aWIKKworY2xhc3Nlcy0kKENPTkZJR19QQ0kpICs9IGxpYnBjaQorY2xhc3Nlcy0kKENPTkZJR19M
SUJDKSArPSBsaWJjCitjbGFzc2VzLSQoQ09ORklHX1RJTllDVVJTRVMpICs9IGxpYmN1cnNlcwor
bGlicmFyaWVzIDo9ICQoY2xhc3Nlcy15KQorY2xhc3Nlcy15ICs9IGhlYWQubworCitsaWJwY2kt
Yy1kZXBzID0gJChvYmopL2xpYnBheWxvYWQtY29uZmlnLmgKK2xpYmMtYy1kZXBzID0gJChvYmop
L2xpYnBheWxvYWQtY29uZmlnLmgKK2xpYmN1cnNlcy1jLWRlcHMgPSAkKG9iaikvbGlicGF5bG9h
ZC1jb25maWcuaAoraGVhZC5vLVMtZGVwcyA9ICQob2JqKS9saWJwYXlsb2FkLWNvbmZpZy5oCisK
K3N1YmRpcnMteSA6PSBhcmNoLyQoQVJDSERJUi15KQorc3ViZGlycy15ICs9IGNyeXB0byBsaWJj
IGRyaXZlcnMgbGlicGNpCitzdWJkaXJzLSQoQ09ORklHX1RJTllDVVJTRVMpICs9IGN1cnNlcwor
CitJTkNMVURFUyA6PSAtSWluY2x1ZGUgLUlpbmNsdWRlLyQoQVJDSERJUi15KSAtSSQob2JqKQor
Q0ZMQUdTID0gJChJTkNMVURFUykgLU8yIC1waXBlIC1nCitDRkxBR1MgKz0gLW5vc3RkbGliIC1X
YWxsIC1XdW5kZWYgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcworQ0ZM
QUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV3JlZHVuZGFudC1kZWNscyAtV25vLXRyaWdyYXBocwor
Q0ZMQUdTICs9IC1Xc3RyaWN0LWFsaWFzaW5nIC1Xc2hhZG93IC1mbm8tYnVpbHRpbgorCiskKG9i
aikvbGlicGF5bG9hZC1jb25maWcuaDogJChLQ09ORklHX0FVVE9IRUFERVIpCisJY21wICRAICQ8
IHx8IGNwICQ8ICRACisKK2xpYnJhcnktdGFyZ2V0cyA9ICQoYWRkc3VmZml4IC5hLCQoYWRkcHJl
Zml4ICQob2JqKS8sJChsaWJyYXJpZXMpKSkgJChvYmopL2xpYnBheWxvYWQuYQorbGliOiAkJChs
aWJyYXJ5LXRhcmdldHMpICQob2JqKS9oZWFkLm8KKworJChvYmopL2xpYnBheWxvYWQuYTogJChm
b3JlYWNoIGNsYXNzLCQobGlicmFyaWVzKSwkJCgkKGNsYXNzKS1vYmpzKSkKKwlwcmludGYgIiAg
QVIgICAgICAkKHN1YnN0ICQoc2hlbGwgcHdkKS8sLCQoQCkpXG4iCisJJChBUikgcmMgJEAgJF4K
KworJChvYmopLyUuYTogJCQoJS1vYmpzKQorCXByaW50ZiAiICBBUiAgICAgICQoc3Vic3QgJChz
aGVsbCBwd2QpLywsJChAKSlcbiIKKwkkKEFSKSByYyAkQCAkXgorCiskKG9iaikvaGVhZC5vOiAk
KG9iaikvYXJjaC8kKEFSQ0hESVIteSkvaGVhZC5oZWFkLm8ubworCXByaW50ZiAiICBDUCAgICAg
ICQoc3Vic3QgJChzaGVsbCBwd2QpLywsJChAKSlcbiIKKwljcCAkXiAkQAorCitpbnN0YWxsOiBy
ZWFsLXRhcmdldAorCXByaW50ZiAiICBJTlNUQUxMICQoREVTVERJUikvbGlicGF5bG9hZC9saWJc
biIKKwlpbnN0YWxsIC1tIDc1NSAtZCAkKERFU1RESVIpL2xpYnBheWxvYWQvbGliCisJZm9yIGxp
YiBpbiAkKGxpYnJhcnktdGFyZ2V0cyk7IGRvIFwKKwkJaW5zdGFsbCAtbSA2NDQgJCRsaWIgJChE
RVNURElSKS9saWJwYXlsb2FkL2xpYi87IFwKKwlkb25lCisJaW5zdGFsbCAtbSA2NDQgbGliL2xp
YnBheWxvYWQubGRzY3JpcHQgJChERVNURElSKS9saWJwYXlsb2FkL2xpYi8KKwlpbnN0YWxsIC1t
IDc1NSAtZCAkKERFU1RESVIpL2xpYnBheWxvYWQvbGliLyQoQVJDSERJUi15KQorCWluc3RhbGwg
LW0gNjQ0ICQob2JqKS9oZWFkLm8gJChERVNURElSKS9saWJwYXlsb2FkL2xpYi8kKEFSQ0hESVIt
eSkKKwlwcmludGYgIiAgSU5TVEFMTCAkKERFU1RESVIpL2xpYnBheWxvYWQvaW5jbHVkZVxuIgor
CWluc3RhbGwgLW0gNzU1IC1kICQoREVTVERJUikvbGlicGF5bG9hZC9pbmNsdWRlCisJZm9yIGZp
bGUgaW4gYGZpbmQgaW5jbHVkZSAtbmFtZSAqLmggLXR5cGUgZmA7IGRvIFwKKwkJaW5zdGFsbCAt
bSA3NTUgLWQgJChERVNURElSKS9saWJwYXlsb2FkL2BkaXJuYW1lICQkZmlsZWA7IFwKKwkJaW5z
dGFsbCAtbSA2NDQgJCRmaWxlICQoREVTVERJUikvbGlicGF5bG9hZC8kJGZpbGU7IFwKKwlkb25l
CisJaW5zdGFsbCAtbSA2NDQgJChvYmopL2xpYnBheWxvYWQtY29uZmlnLmggJChERVNURElSKS9s
aWJwYXlsb2FkL2luY2x1ZGUKKwlwcmludGYgIiAgSU5TVEFMTCAkKERFU1RESVIpL2xpYnBheWxv
YWQvYmluXG4iCisJaW5zdGFsbCAtbSA3NTUgLWQgJChERVNURElSKS9saWJwYXlsb2FkL2Jpbgor
CWluc3RhbGwgLW0gNzU1IGJpbi9scGdjYyAkKERFU1RESVIpL2xpYnBheWxvYWQvYmluCisJaW5z
dGFsbCAtbSA3NTUgYmluL2xwYXMgJChERVNURElSKS9saWJwYXlsb2FkL2JpbgorCWluc3RhbGwg
LW0gNjQ0IGJpbi9scC5mdW5jdGlvbnMgJChERVNURElSKS9saWJwYXlsb2FkL2JpbgorCWluc3Rh
bGwgLW0gNjQ0IC5jb25maWcgJChERVNURElSKS9saWJwYXlsb2FkL2xpYnBheWxvYWQuY29uZmln
CisKK2NsZWFuLWZvci11cGRhdGUtdGFyZ2V0OgorCXJtIC1mICQoYWRkc3VmZml4IC5hLCQoYWRk
cHJlZml4ICQob2JqKS8sJChsaWJyYXJpZXMpKSkgJChvYmopL2xpYnBheWxvYWQuYQorCitjbGVh
bi10YXJnZXQ6CitwcmVwYXJlOgpkaWZmIC0tZ2l0IGEvcGF5bG9hZHMvbGlicGF5bG9hZC9hcmNo
L2kzODYvTWFrZWZpbGUuaW5jIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL2kzODYvTWFrZWZp
bGUuaW5jCmluZGV4IDY0NjFiNzIuLjJiZTVlNTQgMTAwNjQ0Ci0tLSBhL3BheWxvYWRzL2xpYnBh
eWxvYWQvYXJjaC9pMzg2L01ha2VmaWxlLmluYworKysgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2Fy
Y2gvaTM4Ni9NYWtlZmlsZS5pbmMKQEAgLTI3LDkgKzI3LDEwIEBACiAjIyBTVUNIIERBTUFHRS4K
ICMjCiAKLVRBUkdFVFMteSArPSBhcmNoL2kzODYvaGVhZC5TLm8gYXJjaC9pMzg2L21haW4ubyBh
cmNoL2kzODYvc3lzaW5mby5vCi1UQVJHRVRTLXkgKz0gYXJjaC9pMzg2L3RpbWVyLm8gYXJjaC9p
Mzg2L2NvcmVib290Lm8gYXJjaC9pMzg2L3V0aWwuUy5vCi1UQVJHRVRTLXkgKz0gYXJjaC9pMzg2
L2V4ZWMuUy5vIGFyY2gvaTM4Ni92aXJ0dWFsLm8KK2hlYWQuby15ICs9IGhlYWQuUworbGliYy15
ICs9IG1haW4uYyBzeXNpbmZvLmMKK2xpYmMteSArPSB0aW1lci5jIGNvcmVib290LmMgdXRpbC5T
CitsaWJjLXkgKz0gZXhlYy5TIHZpcnR1YWwuYwogCiAjIE11bHRpYm9vdCBzdXBwb3J0IGlzIGNv
bmZpZ3VyYWJsZQotVEFSR0VUUy0kKENPTkZJR19NVUxUSUJPT1QpICs9IGFyY2gvaTM4Ni9tdWx0
aWJvb3QubworbGliYy0kKENPTkZJR19NVUxUSUJPT1QpICs9IG11bHRpYm9vdC5jCmRpZmYgLS1n
aXQgYS9wYXlsb2Fkcy9saWJwYXlsb2FkL2FyY2gvcG93ZXJwYy9NYWtlZmlsZS5pbmMgYi9wYXls
b2Fkcy9saWJwYXlsb2FkL2FyY2gvcG93ZXJwYy9NYWtlZmlsZS5pbmMKaW5kZXggZGRmYjlmYi4u
YmZiZWMyNyAxMDA2NDQKLS0tIGEvcGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL3Bvd2VycGMvTWFr
ZWZpbGUuaW5jCisrKyBiL3BheWxvYWRzL2xpYnBheWxvYWQvYXJjaC9wb3dlcnBjL01ha2VmaWxl
LmluYwpAQCAtMjcsNyArMjcsOCBAQAogIyMgU1VDSCBEQU1BR0UuCiAjIwogCi1UQVJHRVRTLXkg
Kz0gYXJjaC9wb3dlcnBjL2hlYWQuUy5vIGFyY2gvcG93ZXJwYy9tYWluLm8gYXJjaC9wb3dlcnBj
L3N5c2luZm8ubwotVEFSR0VUUy15ICs9IGFyY2gvcG93ZXJwYy90aW1lci5vIGFyY2gvcG93ZXJw
Yy9jb3JlYm9vdC5vIGFyY2gvcG93ZXJwYy91dGlsLlMubwotVEFSR0VUUy15ICs9IGFyY2gvcG93
ZXJwYy9leGVjLlMubyBhcmNoL3Bvd2VycGMvdmlydHVhbC5vCitoZWFkLm8teSA6PSBoZWFkLlMK
K2xpYmMteSArPSBtYWluLmMgc3lzaW5mby5jCitsaWJjLXkgKz0gdGltZXIuYyBjb3JlYm9vdC5j
IHV0aWwuUy5jCitsaWJjLXkgKz0gZXhlYy5TIHZpcnR1YWwuYwogCmRpZmYgLS1naXQgYS9wYXls
b2Fkcy9saWJwYXlsb2FkL2NyeXB0by9NYWtlZmlsZS5pbmMgYi9wYXlsb2Fkcy9saWJwYXlsb2Fk
L2NyeXB0by9NYWtlZmlsZS5pbmMKaW5kZXggOGQ5ZjA4Mi4uMzk5NjcyOCAxMDA2NDQKLS0tIGEv
cGF5bG9hZHMvbGlicGF5bG9hZC9jcnlwdG8vTWFrZWZpbGUuaW5jCisrKyBiL3BheWxvYWRzL2xp
YnBheWxvYWQvY3J5cHRvL01ha2VmaWxlLmluYwpAQCAtMjcsNCArMjcsNCBAQAogIyMgU1VDSCBE
QU1BR0UuCiAjIwogCi1UQVJHRVRTLXkgKz0gY3J5cHRvL3NoYTEubworbGliYy15ICs9IHNoYTEu
YwpkaWZmIC0tZ2l0IGEvcGF5bG9hZHMvbGlicGF5bG9hZC9jdXJzZXMvTWFrZWZpbGUuaW5jIGIv
cGF5bG9hZHMvbGlicGF5bG9hZC9jdXJzZXMvTWFrZWZpbGUuaW5jCmluZGV4IDdkNTU5N2MuLjQ0
ZTNhYjcgMTAwNjQ0Ci0tLSBhL3BheWxvYWRzL2xpYnBheWxvYWQvY3Vyc2VzL01ha2VmaWxlLmlu
YworKysgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2N1cnNlcy9NYWtlZmlsZS5pbmMKQEAgLTI3LDYg
KzI3LDggQEAKICMjIFNVQ0ggREFNQUdFLgogIyMKIAotVEFSR0VUUy0kKENPTkZJR19USU5ZQ1VS
U0VTKSArPSBjdXJzZXMva2V5Ym9hcmQubwotVEFSR0VUUy0kKENPTkZJR19USU5ZQ1VSU0VTKSAr
PSBjdXJzZXMvdGlueWN1cnNlcy5vCi1UQVJHRVRTLSQoQ09ORklHX1RJTllDVVJTRVMpICs9IGN1
cnNlcy9jb2xvcnMubworc3ViZGlycy15IDo9IGxpYmZvcm0gbGlicGFuZWwgbGlibWVudQorCits
aWJjdXJzZXMtJChDT05GSUdfVElOWUNVUlNFUykgKz0ga2V5Ym9hcmQuYworbGliY3Vyc2VzLSQo
Q09ORklHX1RJTllDVVJTRVMpICs9IHRpbnljdXJzZXMuYworbGliY3Vyc2VzLSQoQ09ORklHX1RJ
TllDVVJTRVMpICs9IGNvbG9ycy5jCmRpZmYgLS1naXQgYS9wYXlsb2Fkcy9saWJwYXlsb2FkL2Ry
aXZlcnMvTWFrZWZpbGUuaW5jIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9kcml2ZXJzL01ha2VmaWxl
LmluYwppbmRleCBlOTQ5NmE2Li4zNjBhMjU4IDEwMDY0NAotLS0gYS9wYXlsb2Fkcy9saWJwYXls
b2FkL2RyaXZlcnMvTWFrZWZpbGUuaW5jCisrKyBiL3BheWxvYWRzL2xpYnBheWxvYWQvZHJpdmVy
cy9NYWtlZmlsZS5pbmMKQEAgLTI5LDQ1ICsyOSw0NSBAQAogIyMgU1VDSCBEQU1BR0UuCiAjIwog
Ci1UQVJHRVRTLSQoQ09ORklHX1BDSSkgKz0gZHJpdmVycy9wY2kubworbGliYy0kKENPTkZJR19Q
Q0kpICs9IHBjaS5jCiAKLVRBUkdFVFMtJChDT05GSUdfU1BFQUtFUikgKz0gZHJpdmVycy9zcGVh
a2VyLm8KK2xpYmMtJChDT05GSUdfU1BFQUtFUikgKz0gc3BlYWtlci5jCiAKLVRBUkdFVFMtJChD
T05GSUdfU0VSSUFMX0NPTlNPTEUpICs9IGRyaXZlcnMvc2VyaWFsLm8KK2xpYmMtJChDT05GSUdf
U0VSSUFMX0NPTlNPTEUpICs9IHNlcmlhbC5jCiAKLVRBUkdFVFMtJChDT05GSUdfUENfS0VZQk9B
UkQpICs9IGRyaXZlcnMva2V5Ym9hcmQubworbGliYy0kKENPTkZJR19QQ19LRVlCT0FSRCkgKz0g
a2V5Ym9hcmQuYwogCi1UQVJHRVRTLSQoQ09ORklHX05WUkFNKSArPSBkcml2ZXJzL252cmFtLm8K
LVRBUkdFVFMtJChDT05GSUdfTlZSQU0pICs9IGRyaXZlcnMvb3B0aW9ucy5vCitsaWJjLSQoQ09O
RklHX05WUkFNKSArPSBudnJhbS5jCitsaWJjLSQoQ09ORklHX05WUkFNKSArPSBvcHRpb25zLmMK
IAogIyBWaWRlbyBjb25zb2xlIGRyaXZlcnMKLVRBUkdFVFMtJChDT05GSUdfVklERU9fQ09OU09M
RSkgKz0gZHJpdmVycy92aWRlby92aWRlby5vCi1UQVJHRVRTLSQoQ09ORklHX1ZHQV9WSURFT19D
T05TT0xFKSArPSBkcml2ZXJzL3ZpZGVvL3ZnYS5vCitsaWJjLSQoQ09ORklHX1ZJREVPX0NPTlNP
TEUpICs9IHZpZGVvL3ZpZGVvLmMKK2xpYmMtJChDT05GSUdfVkdBX1ZJREVPX0NPTlNPTEUpICs9
IHZpZGVvL3ZnYS5jCiAKICMgR2VvZGUgTFggY29uc29sZSBkcml2ZXJzCi1UQVJHRVRTLSQoQ09O
RklHX0dFT0RFTFhfVklERU9fQ09OU09MRSkgKz0gZHJpdmVycy92aWRlby9nZW9kZWx4Lm8KLVRB
UkdFVFMtJChDT05GSUdfR0VPREVMWF9WSURFT19DT05TT0xFKSArPSBkcml2ZXJzL3ZpZGVvL2Zv
bnQ4eDE2Lm8KK2xpYmMtJChDT05GSUdfR0VPREVMWF9WSURFT19DT05TT0xFKSArPSB2aWRlby9n
ZW9kZWx4LmMKK2xpYmMtJChDT05GSUdfR0VPREVMWF9WSURFT19DT05TT0xFKSArPSB2aWRlby9m
b250OHgxNi5jCiAKICMgY29yZWJvb3QgZ2VuZXJpYyBmcmFtZWJ1ZmZlciBkcml2ZXIKLVRBUkdF
VFMtJChDT05GSUdfQ09SRUJPT1RfVklERU9fQ09OU09MRSkgKz0gZHJpdmVycy92aWRlby9jb3Jl
Ym9vdGZiLm8KLVRBUkdFVFMtJChDT05GSUdfQ09SRUJPT1RfVklERU9fQ09OU09MRSkgKz0gZHJp
dmVycy92aWRlby9mb250OHgxNi5vCitsaWJjLSQoQ09ORklHX0NPUkVCT09UX1ZJREVPX0NPTlNP
TEUpICs9IHZpZGVvL2NvcmVib290ZmIuYworbGliYy0kKENPTkZJR19DT1JFQk9PVF9WSURFT19D
T05TT0xFKSArPSB2aWRlby9mb250OHgxNi5jCiAKICMgVVNCIHN0YWNrCi1UQVJHRVRTLSQoQ09O
RklHX1VTQikgKz0gZHJpdmVycy91c2IvdXNiaW5pdC5vCi1UQVJHRVRTLSQoQ09ORklHX1VTQikg
Kz0gZHJpdmVycy91c2IvdXNiLm8KLVRBUkdFVFMtJChDT05GSUdfVVNCKSArPSBkcml2ZXJzL3Vz
Yi91c2JfZGV2Lm8KLVRBUkdFVFMtJChDT05GSUdfVVNCKSArPSBkcml2ZXJzL3VzYi9xdWlya3Mu
bwotVEFSR0VUUy0kKENPTkZJR19VU0JfSFVCKSArPSBkcml2ZXJzL3VzYi91c2JodWIubwotVEFS
R0VUUy0kKENPTkZJR19VU0JfVUhDSSkgKz0gZHJpdmVycy91c2IvdWhjaS5vCi1UQVJHRVRTLSQo
Q09ORklHX1VTQl9VSENJKSArPSBkcml2ZXJzL3VzYi91aGNpX3JoLm8KLVRBUkdFVFMtJChDT05G
SUdfVVNCX09IQ0kpICs9IGRyaXZlcnMvdXNiL29oY2kubwotVEFSR0VUUy0kKENPTkZJR19VU0Jf
T0hDSSkgKz0gZHJpdmVycy91c2Ivb2hjaV9yaC5vCi1UQVJHRVRTLSQoQ09ORklHX1VTQl9FSENJ
KSArPSBkcml2ZXJzL3VzYi9laGNpLm8KLVRBUkdFVFMtJChDT05GSUdfVVNCX0VIQ0kpICs9IGRy
aXZlcnMvdXNiL2VoY2lfcmgubwotVEFSR0VUUy0kKENPTkZJR19VU0JfWEhDSSkgKz0gZHJpdmVy
cy91c2IveGhjaS5vCi1UQVJHRVRTLSQoQ09ORklHX1VTQl9YSENJKSArPSBkcml2ZXJzL3VzYi94
aGNpX3JoLm8KLVRBUkdFVFMtJChDT05GSUdfVVNCX0hJRCkgKz0gZHJpdmVycy91c2IvdXNiaGlk
Lm8KLVRBUkdFVFMtJChDT05GSUdfVVNCX01TQykgKz0gZHJpdmVycy91c2IvdXNibXNjLm8KK2xp
YmMtJChDT05GSUdfVVNCKSArPSB1c2IvdXNiaW5pdC5jCitsaWJjLSQoQ09ORklHX1VTQikgKz0g
dXNiL3VzYi5jCitsaWJjLSQoQ09ORklHX1VTQikgKz0gdXNiL3VzYl9kZXYuYworbGliYy0kKENP
TkZJR19VU0IpICs9IHVzYi9xdWlya3MuYworbGliYy0kKENPTkZJR19VU0JfSFVCKSArPSB1c2Iv
dXNiaHViLmMKK2xpYmMtJChDT05GSUdfVVNCX1VIQ0kpICs9IHVzYi91aGNpLmMKK2xpYmMtJChD
T05GSUdfVVNCX1VIQ0kpICs9IHVzYi91aGNpX3JoLmMKK2xpYmMtJChDT05GSUdfVVNCX09IQ0kp
ICs9IHVzYi9vaGNpLmMKK2xpYmMtJChDT05GSUdfVVNCX09IQ0kpICs9IHVzYi9vaGNpX3JoLmMK
K2xpYmMtJChDT05GSUdfVVNCX0VIQ0kpICs9IHVzYi9laGNpLmMKK2xpYmMtJChDT05GSUdfVVNC
X0VIQ0kpICs9IHVzYi9laGNpX3JoLmMKK2xpYmMtJChDT05GSUdfVVNCX1hIQ0kpICs9IHVzYi94
aGNpLmMKK2xpYmMtJChDT05GSUdfVVNCX1hIQ0kpICs9IHVzYi94aGNpX3JoLmMKK2xpYmMtJChD
T05GSUdfVVNCX0hJRCkgKz0gdXNiL3VzYmhpZC5jCitsaWJjLSQoQ09ORklHX1VTQl9NU0MpICs9
IHVzYi91c2Jtc2MuYwogCiAjIHVzZWQgYnkgYm90aCBVU0IgSElEIGFuZCBrZXlib2FyZAotVEFS
R0VUUy15ICs9IGRyaXZlcnMvaGlkLm8KK2xpYmMteSArPSBoaWQuYwpkaWZmIC0tZ2l0IGEvcGF5
bG9hZHMvbGlicGF5bG9hZC9saWJjL01ha2VmaWxlLmluYyBiL3BheWxvYWRzL2xpYnBheWxvYWQv
bGliYy9NYWtlZmlsZS5pbmMKaW5kZXggZDYyOWNjYy4uNGVjMmEwMiAxMDA2NDQKLS0tIGEvcGF5
bG9hZHMvbGlicGF5bG9hZC9saWJjL01ha2VmaWxlLmluYworKysgYi9wYXlsb2Fkcy9saWJwYXls
b2FkL2xpYmMvTWFrZWZpbGUuaW5jCkBAIC0yOCwxMiArMjgsMTIgQEAKICMjIFNVQ0ggREFNQUdF
LgogIyMKIAotVEFSR0VUUy0kKENPTkZJR19MSUJDKSArPSBsaWJjL21hbGxvYy5vIGxpYmMvcHJp
bnRmLm8gbGliYy9jb25zb2xlLm8gbGliYy9zdHJpbmcubwotVEFSR0VUUy0kKENPTkZJR19MSUJD
KSArPSBsaWJjL21lbW9yeS5vIGxpYmMvY3R5cGUubyBsaWJjL2lwY2hlY2tzdW0ubyBsaWJjL2xp
Yi5vCi1UQVJHRVRTLSQoQ09ORklHX0xJQkMpICs9IGxpYmMvcmFuZC5vIGxpYmMvdGltZS5vIGxp
YmMvZXhlYy5vCi1UQVJHRVRTLSQoQ09ORklHX0xJQkMpICs9IGxpYmMvcmVhZGxpbmUubyBsaWJj
L2dldG9wdF9sb25nLm8gbGliYy9zeXNpbmZvLm8KLVRBUkdFVFMtJChDT05GSUdfTElCQykgKz0g
bGliYy9hcmdzLm8gbGliYy9zdHJpbmdzLm8KK2xpYmMtJChDT05GSUdfTElCQykgKz0gbWFsbG9j
LmMgcHJpbnRmLmMgY29uc29sZS5jIHN0cmluZy5jCitsaWJjLSQoQ09ORklHX0xJQkMpICs9IG1l
bW9yeS5jIGN0eXBlLmMgaXBjaGVja3N1bS5jIGxpYi5jCitsaWJjLSQoQ09ORklHX0xJQkMpICs9
IHJhbmQuYyB0aW1lLmMgZXhlYy5jCitsaWJjLSQoQ09ORklHX0xJQkMpICs9IHJlYWRsaW5lLmMg
Z2V0b3B0X2xvbmcuYyBzeXNpbmZvLmMKK2xpYmMtJChDT05GSUdfTElCQykgKz0gYXJncy5jIHN0
cmluZ3MuYwogCiAjIHNob3VsZCBiZSBtb3ZlZCB0byBjb3JlYm9vdCBkaXJlY3RvcnkKLVRBUkdF
VFMtJChDT05GSUdfTEFSKSArPSBsaWJjL2xhci5vCi0jVEFSR0VUUy0kKENPTkZJR19DQkZTKSAr
PSBsaWJjL2NiZnMubworbGliYy0kKENPTkZJR19MQVIpICs9IGxhci5jCisjbGliYy0kKENPTkZJ
R19DQkZTKSArPSBjYmZzLmMKZGlmZiAtLWdpdCBhL3BheWxvYWRzL2xpYnBheWxvYWQvbGlicGNp
L01ha2VmaWxlLmluYyBiL3BheWxvYWRzL2xpYnBheWxvYWQvbGlicGNpL01ha2VmaWxlLmluYwpp
bmRleCA1YzNjM2VhLi5mNTQyYWNiIDEwMDY0NAotLS0gYS9wYXlsb2Fkcy9saWJwYXlsb2FkL2xp
YnBjaS9NYWtlZmlsZS5pbmMKKysrIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9saWJwY2kvTWFrZWZp
bGUuaW5jCkBAIC0yNyw0ICsyNyw0IEBACiAjIyBTVUNIIERBTUFHRS4KICMjCiAKLVRBUkdFVFMt
eSArPSBsaWJwY2kvbGlicGNpLm8KK2xpYnBjaS15ICs9IGxpYnBjaS5jCi0tIAoxLjcuNC40Cgo=
-------------- next part --------------
Content-Transfer-Encoding: base64

Content-Type: text/x-c; charset=us-ascii; charset=UTF-8;
 name=0002-Reduce-warnings-errors-in-libpayload-when-using-pick.patch

Content-Disposition: attachment;
 filename=0002-Reduce-warnings-errors-in-libpayload-when-using-pick.patch



UmVkdWNlIHdhcm5pbmdzL2Vycm9ycyBpbiBsaWJwYXlsb2FkIHdoZW4gdXNpbmcgcGlja3kgY29t
cGlsZXIgb3B0aW9ucwoKU2lnbmVkLW9mZi1ieTogUGF0cmljayBHZW9yZ2kgPHBhdHJpY2tAZ2Vv
cmdpLWNsYW4uZGU+Ci0tLQogcGF5bG9hZHMvbGlicGF5bG9hZC9Db25maWcuaW4gICAgICAgICAg
ICAgICB8ICAgIDQgKysrKwogcGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL2kzODYvY29yZWJvb3Qu
YyAgICB8ICAgIDIgKy0KIHBheWxvYWRzL2xpYnBheWxvYWQvYXJjaC9pMzg2L21haW4uYyAgICAg
ICAgfCAgICAxICsKIHBheWxvYWRzL2xpYnBheWxvYWQvYXJjaC9pMzg2L211bHRpYm9vdC5jICAg
fCAgICA0ICsrLS0KIHBheWxvYWRzL2xpYnBheWxvYWQvYXJjaC9pMzg2L3ZpcnR1YWwuYyAgICAg
fCAgICAxICsKIHBheWxvYWRzL2xpYnBheWxvYWQvYXJjaC9wb3dlcnBjL2NvcmVib290LmMgfCAg
ICAyICstCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2FyY2gvcG93ZXJwYy9tYWluLmMgICAgIHwgICAg
MSArCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2FyY2gvcG93ZXJwYy92aXJ0dWFsLmMgIHwgICAgMSAr
CiBwYXlsb2Fkcy9saWJwYXlsb2FkL2N1cnNlcy9rZXlib2FyZC5jICAgICAgIHwgICAyMCArKysr
KysrKysrLS0tLS0tLS0tLQogcGF5bG9hZHMvbGlicGF5bG9hZC9jdXJzZXMvdGlueWN1cnNlcy5j
ICAgICB8ICAgIDIgKy0KIHBheWxvYWRzL2xpYnBheWxvYWQvZHJpdmVycy9rZXlib2FyZC5jICAg
ICAgfCAgIDE0ICsrKysrKystLS0tLS0tCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2RyaXZlcnMvc2Vy
aWFsLmMgICAgICAgIHwgICAgMiArLQogcGF5bG9hZHMvbGlicGF5bG9hZC9kcml2ZXJzL3VzYi91
aGNpLmMgICAgICB8ICAgIDIgKy0KIHBheWxvYWRzL2xpYnBheWxvYWQvZHJpdmVycy91c2IvdXNi
aGlkLmMgICAgfCAgIDEyICsrKysrKy0tLS0tLQogcGF5bG9hZHMvbGlicGF5bG9hZC9pbmNsdWRl
L2xpYnBheWxvYWQuaCAgICB8ICAgIDEgKwogcGF5bG9hZHMvbGlicGF5bG9hZC9saWJjL2dldG9w
dF9sb25nLmMgICAgICB8ICAgIDQgKy0tLQogcGF5bG9hZHMvbGlicGF5bG9hZC9saWJjL3ByaW50
Zi5jICAgICAgICAgICB8ICAgIDIgKy0KIHBheWxvYWRzL2xpYnBheWxvYWQvbGliYy9zdHJpbmdz
LmMgICAgICAgICAgfCAgICAyICsrCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2xpYmMvc3lzaW5mby5j
ICAgICAgICAgIHwgICAgMiAtLQogcGF5bG9hZHMvbGlicGF5bG9hZC9saWJwY2kvbGlicGNpLmMg
ICAgICAgICB8ICAgMTAgKysrKysrLS0tLQogMjAgZmlsZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9u
cygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvcGF5bG9hZHMvbGlicGF5bG9hZC9D
b25maWcuaW4gYi9wYXlsb2Fkcy9saWJwYXlsb2FkL0NvbmZpZy5pbgppbmRleCAwYTkyNjVkLi5m
ZTUzNDAwIDEwMDY0NAotLS0gYS9wYXlsb2Fkcy9saWJwYXlsb2FkL0NvbmZpZy5pbgorKysgYi9w
YXlsb2Fkcy9saWJwYXlsb2FkL0NvbmZpZy5pbgpAQCAtNzMsNiArNzMsMTAgQEAgY29uZmlnIFRB
UkdFVF9QT1dFUlBDCiAKIGVuZGNob2ljZQogCitjb25maWcgTUVNTUFQX1JBTV9PTkxZCisJYm9v
bCAiT25seSBjb25zaWRlciBSQU0gZW50cmllcyBpbiBtZW1vcnkgbWFwIGZvciBmdXJ0aGVyIHBy
b2Nlc3NpbmciCisJZGVmYXVsdCBuCisKIGNvbmZpZyBNVUxUSUJPT1QKIAlib29sICJNdWx0aWJv
b3QgaGVhZGVyIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBUQVJHRVRfSTM4NgpkaWZmIC0tZ2l0IGEv
cGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL2kzODYvY29yZWJvb3QuYyBiL3BheWxvYWRzL2xpYnBh
eWxvYWQvYXJjaC9pMzg2L2NvcmVib290LmMKaW5kZXggODQ0MTkwMy4uZTNjOTQ0ZCAxMDA2NDQK
LS0tIGEvcGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL2kzODYvY29yZWJvb3QuYworKysgYi9wYXls
b2Fkcy9saWJwYXlsb2FkL2FyY2gvaTM4Ni9jb3JlYm9vdC5jCkBAIC01Nyw3ICs1Nyw3IEBAIHN0
YXRpYyB2b2lkIGNiX3BhcnNlX21lbW9yeSh1bnNpZ25lZCBjaGFyICpwdHIsIHN0cnVjdCBzeXNp
bmZvX3QgKmluZm8pCiAJCXN0cnVjdCBjYl9tZW1vcnlfcmFuZ2UgKnJhbmdlID0KIAkJICAgIChz
dHJ1Y3QgY2JfbWVtb3J5X3JhbmdlICopTUVNX1JBTkdFX1BUUihtZW0sIGkpOwogCi0jaWYgTUVN
TUFQX1JBTV9PTkxZCisjaWZkZWYgQ09ORklHX01FTU1BUF9SQU1fT05MWQogCQlpZiAocmFuZ2Ut
PnR5cGUgIT0gQ0JfTUVNX1JBTSkKIAkJCWNvbnRpbnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9w
YXlsb2Fkcy9saWJwYXlsb2FkL2FyY2gvaTM4Ni9tYWluLmMgYi9wYXlsb2Fkcy9saWJwYXlsb2Fk
L2FyY2gvaTM4Ni9tYWluLmMKaW5kZXggNDhkNmVmNS4uMzc4YzZmMyAxMDA2NDQKLS0tIGEvcGF5
bG9hZHMvbGlicGF5bG9hZC9hcmNoL2kzODYvbWFpbi5jCisrKyBiL3BheWxvYWRzL2xpYnBheWxv
YWQvYXJjaC9pMzg2L21haW4uYwpAQCAtNDEsNiArNDEsNyBAQCBjaGFyICptYWluX2FyZ3ZbTUFY
X0FSR0NfQ09VTlRdOwogICogVGhpcyBpcyBvdXIgQyBlbnRyeSBmdW5jdGlvbiAtIHNldCB1cCB0
aGUgc3lzdGVtCiAgKiBhbmQganVtcCBpbnRvIHRoZSBwYXlsb2FkIGVudHJ5IHBvaW50LgogICov
Cit2b2lkIHN0YXJ0X21haW4odm9pZCk7CiB2b2lkIHN0YXJ0X21haW4odm9pZCkKIHsKIAlleHRl
cm4gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKZGlmZiAtLWdpdCBhL3BheWxvYWRz
L2xpYnBheWxvYWQvYXJjaC9pMzg2L211bHRpYm9vdC5jIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9h
cmNoL2kzODYvbXVsdGlib290LmMKaW5kZXggODI3MzZiMS4uZmEwYzU3NiAxMDA2NDQKLS0tIGEv
cGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL2kzODYvbXVsdGlib290LmMKKysrIGIvcGF5bG9hZHMv
bGlicGF5bG9hZC9hcmNoL2kzODYvbXVsdGlib290LmMKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGlj
IHZvaWQgbWJfcGFyc2VfbW1hcChzdHJ1Y3QgbXVsdGlib290X2hlYWRlciAqdGFibGUsCiAJd2hp
bGUocHRyIDwgKHN0YXJ0ICsgdGFibGUtPm1tYXBfbGVuZ3RoKSkgewogCQlzdHJ1Y3QgbXVsdGli
b290X21tYXAgKm1tYXAgPSAoc3RydWN0IG11bHRpYm9vdF9tbWFwICopIHB0cjsKIAotI2lmIE1F
TU1BUF9SQU1fT05MWQorI2lmZGVmIENPTkZJR19NRU1NQVBfUkFNX09OTFkKIAkJLyogMSA9PSBu
b3JtYWwgUkFNLiAgSWdub3JlIGV2ZXJ5dGhpbmcgZWxzZSBmb3Igbm93ICovCiAKIAkJaWYgKG1t
YXAtPnR5cGUgPT0gMSkgewpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgdm9pZCBtYl9wYXJzZV9t
bWFwKHN0cnVjdCBtdWx0aWJvb3RfaGVhZGVyICp0YWJsZSwKIAogCQkJaWYgKCsraW5mby0+bl9t
ZW1yYW5nZXMgPT0gU1lTSU5GT19NQVhfTUVNX1JBTkdFUykKIAkJCQlyZXR1cm47Ci0jaWYgTUVN
TUFQX1JBTV9PTkxZCisjaWZkZWYgQ09ORklHX01FTU1BUF9SQU1fT05MWQogCQl9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvcGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL2kzODYvdmlydHVhbC5jIGIv
cGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL2kzODYvdmlydHVhbC5jCmluZGV4IDI1NmJmYzIuLjU5
NzY4ZGIgMTAwNjQ0Ci0tLSBhL3BheWxvYWRzL2xpYnBheWxvYWQvYXJjaC9pMzg2L3ZpcnR1YWwu
YworKysgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2FyY2gvaTM4Ni92aXJ0dWFsLmMKQEAgLTI3LDYg
KzI3LDcgQEAKICAqIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAog
dW5zaWduZWQgbG9uZyB2aXJ0dWFsX29mZnNldCA9IDA7CiAKZGlmZiAtLWdpdCBhL3BheWxvYWRz
L2xpYnBheWxvYWQvYXJjaC9wb3dlcnBjL2NvcmVib290LmMgYi9wYXlsb2Fkcy9saWJwYXlsb2Fk
L2FyY2gvcG93ZXJwYy9jb3JlYm9vdC5jCmluZGV4IDk1ZDhmMTYuLmVlMTg0MmMgMTAwNjQ0Ci0t
LSBhL3BheWxvYWRzL2xpYnBheWxvYWQvYXJjaC9wb3dlcnBjL2NvcmVib290LmMKKysrIGIvcGF5
bG9hZHMvbGlicGF5bG9hZC9hcmNoL3Bvd2VycGMvY29yZWJvb3QuYwpAQCAtNTcsNyArNTcsNyBA
QCBzdGF0aWMgdm9pZCBjYl9wYXJzZV9tZW1vcnkodW5zaWduZWQgY2hhciAqcHRyLCBzdHJ1Y3Qg
c3lzaW5mb190ICppbmZvKQogCQlzdHJ1Y3QgY2JfbWVtb3J5X3JhbmdlICpyYW5nZSA9CiAJCSAg
ICAoc3RydWN0IGNiX21lbW9yeV9yYW5nZSAqKU1FTV9SQU5HRV9QVFIobWVtLCBpKTsKIAotI2lm
IE1FTU1BUF9SQU1fT05MWQorI2lmZGVmIENPTkZJR19NRU1NQVBfUkFNX09OTFkKIAkJaWYgKHJh
bmdlLT50eXBlICE9IENCX01FTV9SQU0pCiAJCQljb250aW51ZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvcGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL3Bvd2VycGMvbWFpbi5jIGIvcGF5bG9hZHMvbGli
cGF5bG9hZC9hcmNoL3Bvd2VycGMvbWFpbi5jCmluZGV4IDQ4ZDZlZjUuLjM3OGM2ZjMgMTAwNjQ0
Ci0tLSBhL3BheWxvYWRzL2xpYnBheWxvYWQvYXJjaC9wb3dlcnBjL21haW4uYworKysgYi9wYXls
b2Fkcy9saWJwYXlsb2FkL2FyY2gvcG93ZXJwYy9tYWluLmMKQEAgLTQxLDYgKzQxLDcgQEAgY2hh
ciAqbWFpbl9hcmd2W01BWF9BUkdDX0NPVU5UXTsKICAqIFRoaXMgaXMgb3VyIEMgZW50cnkgZnVu
Y3Rpb24gLSBzZXQgdXAgdGhlIHN5c3RlbQogICogYW5kIGp1bXAgaW50byB0aGUgcGF5bG9hZCBl
bnRyeSBwb2ludC4KICAqLwordm9pZCBzdGFydF9tYWluKHZvaWQpOwogdm9pZCBzdGFydF9tYWlu
KHZvaWQpCiB7CiAJZXh0ZXJuIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CmRpZmYg
LS1naXQgYS9wYXlsb2Fkcy9saWJwYXlsb2FkL2FyY2gvcG93ZXJwYy92aXJ0dWFsLmMgYi9wYXls
b2Fkcy9saWJwYXlsb2FkL2FyY2gvcG93ZXJwYy92aXJ0dWFsLmMKaW5kZXggNjMxMmFlMS4uNmZm
NTg4YyAxMDA2NDQKLS0tIGEvcGF5bG9hZHMvbGlicGF5bG9hZC9hcmNoL3Bvd2VycGMvdmlydHVh
bC5jCisrKyBiL3BheWxvYWRzL2xpYnBheWxvYWQvYXJjaC9wb3dlcnBjL3ZpcnR1YWwuYwpAQCAt
MjcsNiArMjcsNyBAQAogICogU1VDSCBEQU1BR0UuCiAgKi8KIAorI2luY2x1ZGUgPHVuaXN0ZC5o
PgogCiB1bnNpZ25lZCBsb25nIHZpcnR1YWxfb2Zmc2V0ID0gMDsKIApkaWZmIC0tZ2l0IGEvcGF5
bG9hZHMvbGlicGF5bG9hZC9jdXJzZXMva2V5Ym9hcmQuYyBiL3BheWxvYWRzL2xpYnBheWxvYWQv
Y3Vyc2VzL2tleWJvYXJkLmMKaW5kZXggYTc1MDY3NS4uN2ViYjA0ZiAxMDA2NDQKLS0tIGEvcGF5
bG9hZHMvbGlicGF5bG9hZC9jdXJzZXMva2V5Ym9hcmQuYworKysgYi9wYXlsb2Fkcy9saWJwYXls
b2FkL2N1cnNlcy9rZXlib2FyZC5jCkBAIC03MSw3ICs3MSw3IEBAIHN0YXRpYyBpbnQgZ2V0a2V5
c2VxKGNoYXIgKmJ1ZmZlciwgaW50IGxlbiwgaW50IG1heCkKIH0KIAogc3RhdGljIHN0cnVjdCB7
Ci0JY2hhciAqc2VxOworCWNvbnN0IGNoYXIgKnNlcTsKIAlpbnQga2V5OwogfSBlc2NhcGVfY29k
ZXNbXSA9IHsKIAl7ICJbQSIsIEtFWV9VUCB9LApAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyBp
bnQgaGFuZGxlX2VzY2FwZSh2b2lkKQogCQlyZXR1cm4gMjc7CiAKIAlmb3IoaSA9IDA7IGVzY2Fw
ZV9jb2Rlc1tpXS5zZXEgIT0gTlVMTDsgaSsrKSB7Ci0JCWNoYXIgKnAgPSBlc2NhcGVfY29kZXNb
aV0uc2VxOworCQljb25zdCBjaGFyICpwID0gZXNjYXBlX2NvZGVzW2ldLnNlcTsKIAogCQlmb3Io
dCA9IDA7IHQgPCBsZW47IHQrKykgewogCQkJaWYgKCEqcCB8fCAqcCAhPSBidWZmZXJbdF0pCkBA
IC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIGludCBjb29rX3NlcmlhbCh1bnNpZ25lZCBjaGFyIGNo
KQogCiAvKiA9PT09PT09PT09PT09PT09IEtleWJvYXJkID09PT09PT09PT09PT09PT0gKi8KIAot
c3RhdGljIGludCBjdXJzZXNfZ2V0Y2hhcihpbnQgZGVsYXkpCitzdGF0aWMgaW50IGN1cnNlc19n
ZXRjaGFyKGludCBfZGVsYXkpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfVVNCX0hJRCkgfHwgZGVm
aW5lZChDT05GSUdfUENfS0VZQk9BUkQpIHx8IGRlZmluZWQoQ09ORklHX1NFUklBTF9DT05TT0xF
KQogCXVuc2lnbmVkIHNob3J0IGM7CkBAIC0xNzUsMTIgKzE3NSwxMiBAQCBzdGF0aWMgaW50IGN1
cnNlc19nZXRjaGFyKGludCBkZWxheSkKIAkJfQogI2VuZGlmCiAKLQkJaWYgKGRlbGF5ID09IDAp
CisJCWlmIChfZGVsYXkgPT0gMCkKIAkJCWJyZWFrOwogCi0JCWlmIChkZWxheSA+IDApIHsKKwkJ
aWYgKF9kZWxheSA+IDApIHsKIAkJCW1kZWxheSgxKTsKLQkJCWRlbGF5LS07CisJCQlfZGVsYXkt
LTsKIAkJfQogCiAKQEAgLTE5MywxNCArMTkzLDE0IEBAIHN0YXRpYyBpbnQgY3Vyc2VzX2dldGNo
YXIoaW50IGRlbGF5KQogCiBpbnQgd2dldGNoKFdJTkRPVyAqd2luKQogewotCWludCBkZWxheSA9
IC0xOworCWludCBfZGVsYXkgPSAtMTsKIAogCWlmIChfaGFsZmRlbGF5KQotCQlkZWxheSA9IF9o
YWxmZGVsYXk7CisJCV9kZWxheSA9IF9oYWxmZGVsYXk7CiAJZWxzZQotCQlkZWxheSA9IHdpbi0+
X2RlbGF5OworCQlfZGVsYXkgPSB3aW4tPl9kZWxheTsKIAotCXJldHVybiBjdXJzZXNfZ2V0Y2hh
cihkZWxheSk7CisJcmV0dXJuIGN1cnNlc19nZXRjaGFyKF9kZWxheSk7CiB9CiAKIGludCBub2Rl
bGF5KFdJTkRPVyAqd2luLCBOQ1VSU0VTX0JPT0wgZmxhZykKZGlmZiAtLWdpdCBhL3BheWxvYWRz
L2xpYnBheWxvYWQvY3Vyc2VzL3RpbnljdXJzZXMuYyBiL3BheWxvYWRzL2xpYnBheWxvYWQvY3Vy
c2VzL3RpbnljdXJzZXMuYwppbmRleCBjYjFkNjk1Li40ZDNlOGUxIDEwMDY0NAotLS0gYS9wYXls
b2Fkcy9saWJwYXlsb2FkL2N1cnNlcy90aW55Y3Vyc2VzLmMKKysrIGIvcGF5bG9hZHMvbGlicGF5
bG9hZC9jdXJzZXMvdGlueWN1cnNlcy5jCkBAIC05NzEsNyArOTcxLDcgQEAgaW50IHdzZXRzY3Jy
ZWcoV0lORE9XICp3aW4sIGludCB0b3AsIGludCBib3R0b20pCiB9CiAvLyB2b2lkIHdzeW5jZG93
biAoV0lORE9XICopIHt9CiAvLyB2b2lkIHdzeW5jdXAgKFdJTkRPVyAqKSB7fQotLyogRCAqLyB2
b2lkIHd0aW1lb3V0KFdJTkRPVyAqd2luLCBpbnQgZGVsYXkpIHsgd2luLT5fZGVsYXkgPSBkZWxh
eTsgfQorLyogRCAqLyB2b2lkIHd0aW1lb3V0KFdJTkRPVyAqd2luLCBpbnQgX2RlbGF5KSB7IHdp
bi0+X2RlbGF5ID0gX2RlbGF5OyB9CiAvKiBEICovIGludCB3dG91Y2hsbihXSU5ET1cgKndpbiwg
aW50IHksIGludCBuLCBpbnQgY2hhbmdlZCkKIHsKIAlpbnQgaTsKZGlmZiAtLWdpdCBhL3BheWxv
YWRzL2xpYnBheWxvYWQvZHJpdmVycy9rZXlib2FyZC5jIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9k
cml2ZXJzL2tleWJvYXJkLmMKaW5kZXggMmIyYWMyNi4uYTE4NjBjNSAxMDA2NDQKLS0tIGEvcGF5
bG9hZHMvbGlicGF5bG9hZC9kcml2ZXJzL2tleWJvYXJkLmMKKysrIGIvcGF5bG9hZHMvbGlicGF5
bG9hZC9kcml2ZXJzL2tleWJvYXJkLmMKQEAgLTM3LDcgKzM3LDcgQEAKICNkZWZpbmUgSTgwNDJf
TU9ERV9YTEFURSAgICAgMHg0MAogCiBzdHJ1Y3QgbGF5b3V0X21hcHMgewotCWNoYXIgKmNvdW50
cnk7CisJY29uc3QgY2hhciAqY291bnRyeTsKIAl1bnNpZ25lZCBzaG9ydCBtYXBbNF1bMHg1N107
CiB9OwogCkBAIC0yNjEsMjIgKzI2MSwyMiBAQCBpbnQga2V5Ym9hcmRfZ2V0Y2hhcih2b2lkKQog
CiBzdGF0aWMgaW50IGtleWJvYXJkX3dhaXRfcmVhZCh2b2lkKQogewotCWludCB0aW1lb3V0ID0g
MTAwMDA7CisJaW50IHJldHJpZXMgPSAxMDAwMDsKIAotCXdoaWxlKHRpbWVvdXQtLSAmJiAhKGlu
YigweDY0KSAmIDB4MDEpKQorCXdoaWxlKHJldHJpZXMtLSAmJiAhKGluYigweDY0KSAmIDB4MDEp
KQogCQl1ZGVsYXkoNTApOwogCi0JcmV0dXJuICh0aW1lb3V0IDw9IDApID8gLTEgOiAwOworCXJl
dHVybiAocmV0cmllcyA8PSAwKSA/IC0xIDogMDsKIH0KIAogc3RhdGljIGludCBrZXlib2FyZF93
YWl0X3dyaXRlKHZvaWQpCiB7Ci0JaW50IHRpbWVvdXQgPSAxMDAwMDsKKwlpbnQgcmV0cmllcyA9
IDEwMDAwOwogCi0Jd2hpbGUodGltZW91dC0tICYmIChpbmIoMHg2NCkgJiAweDAyKSkKKwl3aGls
ZShyZXRyaWVzLS0gJiYgKGluYigweDY0KSAmIDB4MDIpKQogCQl1ZGVsYXkoNTApOwogCi0JcmV0
dXJuICh0aW1lb3V0IDw9IDApID8gLTEgOiAwOworCXJldHVybiAocmV0cmllcyA8PSAwKSA/IC0x
IDogMDsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGNoYXIga2V5Ym9hcmRfZ2V0X21vZGUodm9pZCkK
ZGlmZiAtLWdpdCBhL3BheWxvYWRzL2xpYnBheWxvYWQvZHJpdmVycy9zZXJpYWwuYyBiL3BheWxv
YWRzL2xpYnBheWxvYWQvZHJpdmVycy9zZXJpYWwuYwppbmRleCAwNjc0ZWM4Li5jNjgwNGQyIDEw
MDY0NAotLS0gYS9wYXlsb2Fkcy9saWJwYXlsb2FkL2RyaXZlcnMvc2VyaWFsLmMKKysrIGIvcGF5
bG9hZHMvbGlicGF5bG9hZC9kcml2ZXJzL3NlcmlhbC5jCkBAIC0xOTUsNyArMTk1LDcgQEAgaW50
IHNlcmlhbF9nZXRjaGFyKHZvaWQpCiAvKiBBIHZ0MTAwIGRvZXNuJ3QgZG8gY29sb3IsIHNldGFm
L3NldGFiIGJlbG93IGFyZSBmcm9tIHh0ZXJtLWNvbG9yLiAqLwogI2RlZmluZSBWVDEwMF9TRVRf
Q09MT1IgICAiXGVbMyVkOzQlZG0iCiAKLXN0YXRpYyB2b2lkIHNlcmlhbF9wdXRjbWQoY2hhciAq
c3RyKQorc3RhdGljIHZvaWQgc2VyaWFsX3B1dGNtZChjb25zdCBjaGFyICpzdHIpCiB7CiAJd2hp
bGUoKnN0cikKIAkJc2VyaWFsX3B1dGNoYXIoKihzdHIrKykpOwpkaWZmIC0tZ2l0IGEvcGF5bG9h
ZHMvbGlicGF5bG9hZC9kcml2ZXJzL3VzYi91aGNpLmMgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2Ry
aXZlcnMvdXNiL3VoY2kuYwppbmRleCA3MjFmZGUwLi4xZjgwYzZhIDEwMDY0NAotLS0gYS9wYXls
b2Fkcy9saWJwYXlsb2FkL2RyaXZlcnMvdXNiL3VoY2kuYworKysgYi9wYXlsb2Fkcy9saWJwYXls
b2FkL2RyaXZlcnMvdXNiL3VoY2kuYwpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgdm9pZAogdGRf
ZHVtcCAodGRfdCAqdGQpCiB7CiAJY2hhciB0ZF92YWx1ZVszXTsKLQljaGFyICp0ZF90eXBlOwor
CWNvbnN0IGNoYXIgKnRkX3R5cGU7CiAJc3dpdGNoICh0ZC0+cGlkKSB7CiAJCWNhc2UgVUhDSV9T
RVRVUDoKIAkJCXRkX3R5cGU9IlNFVFVQIjsKZGlmZiAtLWdpdCBhL3BheWxvYWRzL2xpYnBheWxv
YWQvZHJpdmVycy91c2IvdXNiaGlkLmMgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2RyaXZlcnMvdXNi
L3VzYmhpZC5jCmluZGV4IDg0ZGUwYzguLmJmM2VjMWUgMTAwNjQ0Ci0tLSBhL3BheWxvYWRzL2xp
YnBheWxvYWQvZHJpdmVycy91c2IvdXNiaGlkLmMKKysrIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9k
cml2ZXJzL3VzYi91c2JoaWQuYwpAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgaW50IGtleWNvdW50
OwogI2RlZmluZSBLRVlCT0FSRF9CVUZGRVJfU0laRSAxNgogc3RhdGljIHNob3J0IGtleWJ1ZmZl
cltLRVlCT0FSRF9CVUZGRVJfU0laRV07CiAKLWNoYXIgKmNvdW50cmllc1szNl1bMl0gPSB7Citj
b25zdCBjaGFyICpjb3VudHJpZXNbMzZdWzJdID0gewogCXsgIm5vdCBzdXBwb3J0ZWQiLCAidXMi
IH0sCiAJeyAiQXJhYmljIiwgImFlIiB9LAogCXsgIkJlbGdpYW4iLCAiYmUiIH0sCkBAIC0xMDUs
MTMgKzEwNSwxMyBAQCBjaGFyICpjb3VudHJpZXNbMzZdWzJdID0gewogCiAKIHN0cnVjdCBsYXlv
dXRfbWFwcyB7Ci0JY2hhciAqY291bnRyeTsKLQlzaG9ydCBtYXBbNF1bMHg4MF07CisJY29uc3Qg
Y2hhciAqY291bnRyeTsKKwljb25zdCBzaG9ydCBtYXBbNF1bMHg4MF07CiB9OwogCi1zdGF0aWMg
c3RydWN0IGxheW91dF9tYXBzICptYXA7CitzdGF0aWMgY29uc3Qgc3RydWN0IGxheW91dF9tYXBz
ICptYXA7CiAKLXN0YXRpYyBzdHJ1Y3QgbGF5b3V0X21hcHMga2V5Ym9hcmRfbGF5b3V0c1tdID0g
eworc3RhdGljIGNvbnN0IHN0cnVjdCBsYXlvdXRfbWFwcyBrZXlib2FyZF9sYXlvdXRzW10gPSB7
CiAvLyAjaWZkZWYgQ09ORklHX1BDX0tFWUJPQVJEX0xBWU9VVF9VUwogeyAuY291bnRyeSA9ICJ1
cyIsIC5tYXAgPSB7CiAJeyAvKiBObyBtb2RpZmllciAqLwpAQCAtMzc4LDcgKzM3OCw3IEBAIHN0
YXRpYyBzdHJ1Y3QgY29uc29sZV9pbnB1dF9kcml2ZXIgY29ucyA9IHsKIH07CiAKIAotaW50IHVz
Yl9oaWRfc2V0X2xheW91dCAoY2hhciAqY291bnRyeSkKK3N0YXRpYyBpbnQgdXNiX2hpZF9zZXRf
bGF5b3V0IChjb25zdCBjaGFyICpjb3VudHJ5KQogewogCS8qIEZJWE1FIHNob3VsZCBiZSBwZXIg
a2V5Ym9hcmQgKi8KIAlpbnQgaTsKZGlmZiAtLWdpdCBhL3BheWxvYWRzL2xpYnBheWxvYWQvaW5j
bHVkZS9saWJwYXlsb2FkLmggYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2luY2x1ZGUvbGlicGF5bG9h
ZC5oCmluZGV4IDc0ZmI3OWEuLjZjZTc1NDggMTAwNjQ0Ci0tLSBhL3BheWxvYWRzL2xpYnBheWxv
YWQvaW5jbHVkZS9saWJwYXlsb2FkLmgKKysrIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9pbmNsdWRl
L2xpYnBheWxvYWQuaApAQCAtMjcyLDYgKzI3Miw3IEBAIHR5cGVkZWYgc3RydWN0IHsKIHZvaWQg
U0hBMUluaXQoU0hBMV9DVFggKmNvbnRleHQpOwogdm9pZCBTSEExVHJhbnNmb3JtKHUzMiBzdGF0
ZVs1XSwgY29uc3QgdTggYnVmZmVyW1NIQTFfQkxPQ0tfTEVOR1RIXSk7CiB2b2lkIFNIQTFVcGRh
dGUoU0hBMV9DVFggKmNvbnRleHQsIGNvbnN0IHU4ICpkYXRhLCBzaXplX3QgbGVuKTsKK3ZvaWQg
U0hBMVBhZChTSEExX0NUWCAqY29udGV4dCk7CiB2b2lkIFNIQTFGaW5hbCh1OCBkaWdlc3RbU0hB
MV9ESUdFU1RfTEVOR1RIXSwgU0hBMV9DVFggKmNvbnRleHQpOwogdTggKnNoYTEoY29uc3QgdTgg
KmRhdGEsIHNpemVfdCBsZW4sIHU4ICpidWYpOwogLyoqIEB9ICovCmRpZmYgLS1naXQgYS9wYXls
b2Fkcy9saWJwYXlsb2FkL2xpYmMvZ2V0b3B0X2xvbmcuYyBiL3BheWxvYWRzL2xpYnBheWxvYWQv
bGliYy9nZXRvcHRfbG9uZy5jCmluZGV4IDQ5M2RmNGQuLjM2NWJjNGEgMTAwNjQ0Ci0tLSBhL3Bh
eWxvYWRzL2xpYnBheWxvYWQvbGliYy9nZXRvcHRfbG9uZy5jCisrKyBiL3BheWxvYWRzL2xpYnBh
eWxvYWQvbGliYy9nZXRvcHRfbG9uZy5jCkBAIC01NywxMCArNTcsOCBAQAogI2luY2x1ZGUgPGxp
YnBheWxvYWQuaD4KICNpbmNsdWRlIDxnZXRvcHQuaD4KICNkZWZpbmUgd2FybngoeC4uLikgcHJp
bnRmKHgpCi0vKgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgotKi8K
ICNkZWZpbmUJUkVQTEFDRV9HRVRPUFQJCS8qIHVzZSB0aGlzIGdldG9wdCBhcyB0aGUgc3lzdGVt
IGdldG9wdCgzKSAqLwogCiAjaWZkZWYgUkVQTEFDRV9HRVRPUFQKQEAgLTg0LDcgKzgyLDcgQEAg
aW50IHBvc2l4bHlfY29ycmVjdCA9IDA7CiAjZGVmaW5lCUJBREFSRwkJKCgqb3B0aW9ucyA9PSAn
OicpID8gKGludCknOicgOiAoaW50KSc/JykKICNkZWZpbmUJSU5PUkRFUiAJKGludCkxCiAKLSNk
ZWZpbmUJRU1TRwkJIiIKKyNkZWZpbmUJRU1TRwkJKGNoYXIqKSIiCiAKIHN0YXRpYyBpbnQgZ2V0
b3B0X2ludGVybmFsKGludCwgY2hhciAqIGNvbnN0ICosIGNvbnN0IGNoYXIgKiwKIAkJCSAgIGNv
bnN0IHN0cnVjdCBvcHRpb24gKiwgaW50ICosIGludCk7CmRpZmYgLS1naXQgYS9wYXlsb2Fkcy9s
aWJwYXlsb2FkL2xpYmMvcHJpbnRmLmMgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2xpYmMvcHJpbnRm
LmMKaW5kZXggMzg5ZDIyNy4uZTNjZjhiYiAxMDA2NDQKLS0tIGEvcGF5bG9hZHMvbGlicGF5bG9h
ZC9saWJjL3ByaW50Zi5jCisrKyBiL3BheWxvYWRzL2xpYnBheWxvYWQvbGliYy9wcmludGYuYwpA
QCAtMTE0LDcgKzExNCw3IEBAIHN0YXRpYyBpbnQgcHJpbnRmX3B1dHN0cihjb25zdCBjaGFyICpz
dHIsIHN0cnVjdCBwcmludGZfc3BlYyAqcHMpCiAJc2l6ZV90IGNvdW50OwogCiAJaWYgKHN0ciA9
PSBOVUxMKSB7Ci0JCWNoYXIgKm51bGxzdHIgPSAiKE5VTEwpIjsKKwkJY29uc3QgY2hhciAqbnVs
bHN0ciA9ICIoTlVMTCkiOwogCQlyZXR1cm4gcHJpbnRmX3B1dG5jaGFycyhudWxsc3RyLCBzdHJs
ZW4obnVsbHN0ciksIHBzKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3BheWxvYWRzL2xpYnBheWxvYWQv
bGliYy9zdHJpbmdzLmMgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2xpYmMvc3RyaW5ncy5jCmluZGV4
IDlhNTZiYTEuLjQ2NWFlNGYgMTAwNjQ0Ci0tLSBhL3BheWxvYWRzL2xpYnBheWxvYWQvbGliYy9z
dHJpbmdzLmMKKysrIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9saWJjL3N0cmluZ3MuYwpAQCAtMjcs
NiArMjcsOCBAQAogICogU1VDSCBEQU1BR0UuCiAgKi8KIAorI2luY2x1ZGUgPHN0cmluZ3MuaD4K
KwogaW50IGZmcyhpbnQgaSkKIHsKIAlpbnQgY291bnQgPSAxOwpkaWZmIC0tZ2l0IGEvcGF5bG9h
ZHMvbGlicGF5bG9hZC9saWJjL3N5c2luZm8uYyBiL3BheWxvYWRzL2xpYnBheWxvYWQvbGliYy9z
eXNpbmZvLmMKaW5kZXggNzNhOWFiNS4uYjFjYWQ1MCAxMDA2NDQKLS0tIGEvcGF5bG9hZHMvbGli
cGF5bG9hZC9saWJjL3N5c2luZm8uYworKysgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2xpYmMvc3lz
aW5mby5jCkBAIC0zMCw4ICszMCw2IEBACiAjaW5jbHVkZSA8bGlicGF5bG9hZC5oPgogI2luY2x1
ZGUgPHN5c2luZm8uaD4KIAotZXh0ZXJuIHN0cnVjdCBzeXNpbmZvX3QgbGliX3N5c2luZm87Ci0K
IGludCBzeXNpbmZvX2hhdmVfbXVsdGlib290KHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJKmFk
ZHIgPSAodW5zaWduZWQgbG9uZykgbGliX3N5c2luZm8ubWJ0YWJsZTsKZGlmZiAtLWdpdCBhL3Bh
eWxvYWRzL2xpYnBheWxvYWQvbGlicGNpL2xpYnBjaS5jIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9s
aWJwY2kvbGlicGNpLmMKaW5kZXggMGI1NGJhMy4uYTYyZTMwYiAxMDA2NDQKLS0tIGEvcGF5bG9h
ZHMvbGlicGF5bG9hZC9saWJwY2kvbGlicGNpLmMKKysrIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9s
aWJwY2kvbGlicGNpLmMKQEAgLTk2LDYgKzk2LDggQEAgdm9pZCBwY2lfZmlsdGVyX2luaXQoc3Ry
dWN0IHBjaV9hY2Nlc3MqIHBhY2MsIHN0cnVjdCBwY2lfZmlsdGVyKiBwZikKIAlwZi0+ZGV2aWNl
ID0gLTE7CiB9CiAKK3N0YXRpYyBjaGFyICppbnZhbGlkX3BjaV9kZXZpY2Vfc3RyaW5nID0gKGNo
YXIqKSJpbnZhbGlkIHBjaSBkZXZpY2Ugc3RyaW5nIjsKKwogLyogcGFyc2UgZG9tYWluOmJ1czpk
ZXYuZnVuYyAod2l0aCBhbGwgY29tcG9uZW50cyBidXQgImRldiIgb3B0aW9uYWwpCiAgKiBpbnRv
IGZpbHRlci4KICAqIFJldHVybnMgTlVMTCBvbiBzdWNjZXNzLCBhIHN0cmluZyBwb2ludGVyIHRv
IHRoZSBlcnJvciBtZXNzYWdlIG90aGVyd2lzZS4KQEAgLTEwOSw3ICsxMTEsNyBAQCBjaGFyICpw
Y2lfZmlsdGVyX3BhcnNlX3Nsb3Qoc3RydWN0IHBjaV9maWx0ZXIqIGZpbHRlciwgY29uc3QgY2hh
ciogaWQpCiAJY2hhciAqZnVuY3AgPSBzdHJyY2hyKGlkLCAnLicpOwogCWlmIChmdW5jcCkgewog
CQlmaWx0ZXItPmZ1bmMgPSBzdHJ0b3VsKGZ1bmNwKzEsICZlbmRwdHIsIDApOwotCQlpZiAoZW5k
cHRyWzBdICE9ICdcMCcpIHJldHVybiAiaW52YWxpZCBwY2kgZGV2aWNlIHN0cmluZyI7CisJCWlm
IChlbmRwdHJbMF0gIT0gJ1wwJykgcmV0dXJuIGludmFsaWRfcGNpX2RldmljZV9zdHJpbmc7CiAJ
fQogCiAJY2hhciAqZGV2cCA9IHN0cnJjaHIoaWQsICc6Jyk7CkBAIC0xMTgsNyArMTIwLDcgQEAg
Y2hhciAqcGNpX2ZpbHRlcl9wYXJzZV9zbG90KHN0cnVjdCBwY2lfZmlsdGVyKiBmaWx0ZXIsIGNv
bnN0IGNoYXIqIGlkKQogCX0gZWxzZSB7CiAJCWZpbHRlci0+ZGV2ID0gc3RydG91bChkZXZwKzEs
ICZlbmRwdHIsIDApOwogCX0KLQlpZiAoZW5kcHRyICE9IGZ1bmNwKSByZXR1cm4gImludmFsaWQg
cGNpIGRldmljZSBzdHJpbmciOworCWlmIChlbmRwdHIgIT0gZnVuY3ApIHJldHVybiBpbnZhbGlk
X3BjaV9kZXZpY2Vfc3RyaW5nOwogCWlmICghZGV2cCkgcmV0dXJuIE5VTEw7CiAKIAljaGFyICpi
dXNwID0gc3RyY2hyKGlkLCAnOicpOwpAQCAtMTI3LDExICsxMjksMTEgQEAgY2hhciAqcGNpX2Zp
bHRlcl9wYXJzZV9zbG90KHN0cnVjdCBwY2lfZmlsdGVyKiBmaWx0ZXIsIGNvbnN0IGNoYXIqIGlk
KQogCX0gZWxzZSB7CiAJCWZpbHRlci0+YnVzID0gc3RydG91bChidXNwKzEsICZlbmRwdHIsIDAp
OwogCX0KLQlpZiAoZW5kcHRyICE9IGZ1bmNwKSByZXR1cm4gImludmFsaWQgcGNpIGRldmljZSBz
dHJpbmciOworCWlmIChlbmRwdHIgIT0gZnVuY3ApIHJldHVybiBpbnZhbGlkX3BjaV9kZXZpY2Vf
c3RyaW5nOwogCWlmIChidXNwID09IGRldnApIHJldHVybiBOVUxMOwogCiAJZmlsdGVyLT5kb21h
aW4gPSBzdHJ0b3VsKGlkLCAmZW5kcHRyLCAwKTsKLQlpZiAoZW5kcHRyICE9IGJ1c3ApIHJldHVy
biAiaW52YWxpZCBwY2kgZGV2aWNlIHN0cmluZyI7CisJaWYgKGVuZHB0ciAhPSBidXNwKSByZXR1
cm4gaW52YWxpZF9wY2lfZGV2aWNlX3N0cmluZzsKIAogCXJldHVybiBOVUxMOwogfQotLSAKMS43
LjQuNAoK
-------------- next part --------------
Content-Transfer-Encoding: base64

Content-Type: text/x-c; charset=us-ascii; charset=UTF-8;
 name=0003-Add-strlcpy-from-OpenBSD.patch

Content-Disposition: attachment;
 filename=0003-Add-strlcpy-from-OpenBSD.patch



QWRkIHN0cmxjcHkgZnJvbSBPcGVuQlNECgpTaWduZWQtb2ZmLWJ5OiBQYXRyaWNrIEdlb3JnaSA8
cGF0cmlja0BnZW9yZ2ktY2xhbi5kZT4KLS0tCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2luY2x1ZGUv
c3RyaW5nLmggIHwgICAxMCArKysrKystCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2xpYmMvTWFrZWZp
bGUuaW5jIHwgICAgMSArCiBwYXlsb2Fkcy9saWJwYXlsb2FkL2xpYmMvc3RybGNweS5jICAgIHwg
ICA1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwg
NjEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXls
b2Fkcy9saWJwYXlsb2FkL2xpYmMvc3RybGNweS5jCgpkaWZmIC0tZ2l0IGEvcGF5bG9hZHMvbGli
cGF5bG9hZC9pbmNsdWRlL3N0cmluZy5oIGIvcGF5bG9hZHMvbGlicGF5bG9hZC9pbmNsdWRlL3N0
cmluZy5oCmluZGV4IDg4MDU0ZTAuLjllNGY3OTEgMTAwNjQ0Ci0tLSBhL3BheWxvYWRzL2xpYnBh
eWxvYWQvaW5jbHVkZS9zdHJpbmcuaAorKysgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2luY2x1ZGUv
c3RyaW5nLmgKQEAgLTU1LDcgKzU1LDYgQEAgaW50IHN0cm5jYXNlY21wKGNvbnN0IGNoYXIgKnMx
LCBjb25zdCBjaGFyICpzMiwgc2l6ZV90IG1heGxlbik7CiBjaGFyICpzdHJuY3B5KGNoYXIgKmQs
IGNvbnN0IGNoYXIgKnMsIHNpemVfdCBuKTsKIGNoYXIgKnN0cmNweShjaGFyICpkLCBjb25zdCBj
aGFyICpzKTsKIGNoYXIgKnN0cm5jYXQoY2hhciAqZCwgY29uc3QgY2hhciAqcywgc2l6ZV90IG4p
Owotc2l6ZV90IHN0cmxjYXQoY2hhciAqZCwgY29uc3QgY2hhciAqcywgc2l6ZV90IG4pOwogY2hh
ciAqc3RyY2F0KGNoYXIgKmQsIGNvbnN0IGNoYXIgKnMpOwogY2hhciAqc3RyY2hyKGNvbnN0IGNo
YXIgKnMsIGludCBjKTsKIGNoYXIgKnN0cnJjaHIoY29uc3QgY2hhciAqcywgaW50IGMpOwpAQCAt
NjgsNCArNjcsMTMgQEAgY2hhciogc3RydG9rKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqZGVsaW0p
OwogY2hhciogc3RydG9rX3IoY2hhciAqc3RyLCBjb25zdCBjaGFyICpkZWxpbSwgY2hhciAqKnB0
cik7CiAvKiogQH0gKi8KIAorLyoqCisgKiBAZGVmZ3JvdXAgc3RyaW5nIE9wZW5CU0QgYmFzZWQg
c2FmZSBzdHJpbmcgZnVuY3Rpb25zCisgKiBAeworICovCitzaXplX3Qgc3RybGNweShjaGFyICpk
LCBjb25zdCBjaGFyICpzLCBzaXplX3Qgbik7CitzaXplX3Qgc3RybGNhdChjaGFyICpkLCBjb25z
dCBjaGFyICpzLCBzaXplX3Qgbik7CisvKiogQH0gKi8KKworCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L3BheWxvYWRzL2xpYnBheWxvYWQvbGliYy9NYWtlZmlsZS5pbmMgYi9wYXlsb2Fkcy9saWJwYXls
b2FkL2xpYmMvTWFrZWZpbGUuaW5jCmluZGV4IDRlYzJhMDIuLmU1YzYyNmYgMTAwNjQ0Ci0tLSBh
L3BheWxvYWRzL2xpYnBheWxvYWQvbGliYy9NYWtlZmlsZS5pbmMKKysrIGIvcGF5bG9hZHMvbGli
cGF5bG9hZC9saWJjL01ha2VmaWxlLmluYwpAQCAtMzMsNiArMzMsNyBAQCBsaWJjLSQoQ09ORklH
X0xJQkMpICs9IG1lbW9yeS5jIGN0eXBlLmMgaXBjaGVja3N1bS5jIGxpYi5jCiBsaWJjLSQoQ09O
RklHX0xJQkMpICs9IHJhbmQuYyB0aW1lLmMgZXhlYy5jCiBsaWJjLSQoQ09ORklHX0xJQkMpICs9
IHJlYWRsaW5lLmMgZ2V0b3B0X2xvbmcuYyBzeXNpbmZvLmMKIGxpYmMtJChDT05GSUdfTElCQykg
Kz0gYXJncy5jIHN0cmluZ3MuYworbGliYy0kKENPTkZJR19MSUJDKSArPSBzdHJsY3B5LmMKIAog
IyBzaG91bGQgYmUgbW92ZWQgdG8gY29yZWJvb3QgZGlyZWN0b3J5CiBsaWJjLSQoQ09ORklHX0xB
UikgKz0gbGFyLmMKZGlmZiAtLWdpdCBhL3BheWxvYWRzL2xpYnBheWxvYWQvbGliYy9zdHJsY3B5
LmMgYi9wYXlsb2Fkcy9saWJwYXlsb2FkL2xpYmMvc3RybGNweS5jCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmQzMmI2NTkKLS0tIC9kZXYvbnVsbAorKysgYi9wYXlsb2Fkcy9s
aWJwYXlsb2FkL2xpYmMvc3RybGNweS5jCkBAIC0wLDAgKzEsNTEgQEAKKy8qCSRPcGVuQlNEOiBz
dHJsY3B5LmMsdiAxLjExIDIwMDYvMDUvMDUgMTU6Mjc6MzggbWlsbGVydCBFeHAgJAkqLworCisv
KgorICogQ29weXJpZ2h0IChjKSAxOTk4IFRvZGQgQy4gTWlsbGVyIDxUb2RkLk1pbGxlckBjb3Vy
dGVzYW4uY29tPgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBk
aXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhv
dXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNv
cGllcy4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFV
VEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09G
VFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUg
Rk9SCisgKiBBTlkgU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIE9SIEFOWSBEQU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1Mg
T0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05U
UkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9G
CisgKiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElT
IFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzdHJp
bmcuaD4KKworLyoKKyAqIENvcHkgc3JjIHRvIHN0cmluZyBkc3Qgb2Ygc2l6ZSBzaXouICBBdCBt
b3N0IHNpei0xIGNoYXJhY3RlcnMKKyAqIHdpbGwgYmUgY29waWVkLiAgQWx3YXlzIE5VTCB0ZXJt
aW5hdGVzICh1bmxlc3Mgc2l6ID09IDApLgorICogUmV0dXJucyBzdHJsZW4oc3JjKTsgaWYgcmV0
dmFsID49IHNpeiwgdHJ1bmNhdGlvbiBvY2N1cnJlZC4KKyAqLworc2l6ZV90CitzdHJsY3B5KGNo
YXIgKmRzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3Qgc2l6KQoreworCWNoYXIgKmQgPSBkc3Q7
CisJY29uc3QgY2hhciAqcyA9IHNyYzsKKwlzaXplX3QgbiA9IHNpejsKKworCS8qIENvcHkgYXMg
bWFueSBieXRlcyBhcyB3aWxsIGZpdCAqLworCWlmIChuICE9IDApIHsKKwkJd2hpbGUgKC0tbiAh
PSAwKSB7CisJCQlpZiAoKCpkKysgPSAqcysrKSA9PSAnXDAnKQorCQkJCWJyZWFrOworCQl9CisJ
fQorCisJLyogTm90IGVub3VnaCByb29tIGluIGRzdCwgYWRkIE5VTCBhbmQgdHJhdmVyc2UgcmVz
dCBvZiBzcmMgKi8KKwlpZiAobiA9PSAwKSB7CisJCWlmIChzaXogIT0gMCkKKwkJCSpkID0gJ1ww
JzsJCS8qIE5VTC10ZXJtaW5hdGUgZHN0ICovCisJCXdoaWxlICgqcysrKQorCQkJOworCX0KKwor
CXJldHVybihzIC0gc3JjIC0gMSk7CS8qIGNvdW50IGRvZXMgbm90IGluY2x1ZGUgTlVMICovCit9
Ci0tIAoxLjcuNC40Cgo=


More information about the coreboot mailing list