How to create a Bootable Live CD/DVD from your Linux From Scratch (LFS) build

Turritopsis Dohrnii Teo En Ming <[email protected]> Sun, 15 Mar 2020 00:02:47 +0800
Newsgroups gmane.linux.lfs.general
Message-ID <[email protected]>
U3ViamVjdCBvZiBIaW50OiBIb3cgdG8gY3JlYXRlIGEgQm9vdGFibGUgTGl2ZSBDRC9EVkQgZnJv
bSB5b3VyIExpbnV4IAogRnJvbSBTY3JhdGNoIChMRlMpIGJ1aWxkCgpHb29kIGRheSBmcm9tIFNp
bmdhcG9yZSwKCkkgYW0gTXIuIFR1cnJpdG9wc2lzIERvaHJuaWkgVGVvIEVuIE1pbmcsIGJhc2Vk
IGluIFNpbmdhcG9yZS4KCkkgaGF2ZSByZWNlbnRseSAqc3VjY2Vzc2Z1bGx5KiBjcmVhdGVkIG15
IG93biBjdXN0b20gTGludXggZGlzdHJpYnV0aW9uIApjYWxsZWQgVGVvIEVuIE1pbmcgTGludXgg
MjAyMC4wMyAoRklOQUwpLCB3aGljaCBpcyBiYXNlZCBvbgpMaW51eCBGcm9tIFNjcmF0Y2ggMjAy
MDAzMDItc3lzdGVtZCBib29rIGFuZCBMaW51eCBLZXJuZWwgNS41LjcsIG9uIDEyIApNYXJjaCAy
MDIwLgoKWW91IG1heSByZWZlciB0byBteSByZWR1bmRhbnQgYmxvZyBwb3N0cyBmb3IgdGhlIGFu
bm91bmNlbWVudC4KCkJsb2dnZXI6IEFubm91bmNpbmcgVGVvIEVuIE1pbmcgTGludXggMjAyMC4w
MyAoRklOQUwpCkxpbms6IApodHRwczovL3RkdGVtY2VydHMuYmxvZ3Nwb3QuY29tLzIwMjAvMDMv
YW5ub3VuY2luZy10ZW8tZW4tbWluZy1saW51eC0yMDIwMDMuaHRtbAoKV29yZHByZXNzOiBBbm5v
dW5jaW5nIFRlbyBFbiBNaW5nIExpbnV4IDIwMjAuMDMgKEZJTkFMKQpMaW5rOiAKaHR0cHM6Ly90
ZHRlbWNlcnRzLndvcmRwcmVzcy5jb20vMjAyMC8wMy8xMi9hbm5vdW5jaW5nLXRlby1lbi1taW5n
LWxpbnV4LTIwMjAtMDMtZmluYWwvCgpKaW1teSBBbmRlcnNvbidzIGd1aWRlL2hpbnQgd2FzIHdy
aXR0ZW4gb24gMjAgSmFuIDIwMTMsIHdoaWNoIGlzIG1vcmUgCnRoYW4gNyB5ZWFycyBhZ28uIFRv
ZGF5IGlzIDE0IE1hcmNoIDIwMjAgU2F0dXJkYXkuIFRoZXJlZm9yZSwgaGlzIGd1aWRlIAppcyBk
ZWZpbml0ZWx5IG91dGRhdGVkCmFuZCBuZWVkcyBzb21lIHR3ZWFraW5nIHRvIGFkYXB0IHRvIHRo
ZSAqbGF0ZXN0KiBMRlMgc3lzdGVtIGF0IHRoZSB0aW1lIApvZiB0aGlzIHdyaXRpbmcuCgpKaW1t
eSBBbmRlcnNvbidzIGd1aWRlL2hpbnQgd2FzIHZlcmlmaWVkIHdpdGggTEZTIHZlcnNpb24gNy4y
LiBJIGhhdmUgCm1hZGUgKmV4dGVuc2l2ZSogbW9kaWZpY2F0aW9ucyB0byBoaXMgZ3VpZGUvaGlu
dCB0byB3b3JrIHdpdGggbXkgTEZTIAoyMDIwMDMwMi1zeXN0ZW1kIGJ1aWxkLgoKWW91IGNhbiBk
b3dubG9hZCBUZW8gRW4gTWluZyBMaW51eCAyMDIwLjAzIChGSU5BTCkgQm9vdGFibGUgTGl2ZSBD
RC9EVkQgCklTT3MgZnJvbSB0aGUgZm9sbG93aW5nIGdpdGh1Yi5jb20gbGluay4KCkxpbms6IApo
dHRwczovL2dpdGh1Yi5jb20vdGVvLWVuLW1pbmcvdGVvLWVuLW1pbmctbGludXgvYmxvYi9tYXN0
ZXIvaXNvJTIwZG93bmxvYWQlMjBsaW5rcy50eHQKCk5vdGU6IFBsZWFzZSBub3RlIHRoYXQgbXkg
TGl2ZSBDRC9EVkQgYm9vdHMgd2l0aCBhIEtlcm5lbCBQYW5pYy4gSSBob3BlIAp0aGF0IExpbnV4
IGV4cGVydHMgd2lsbCBiZSBhYmxlIHRvIGRvd25sb2FkIG15IElTTywgZXhhbWluZSBpdHMgY29u
dGVudHMgCmFuZCBmaW5kIG91dCB3aGF0J3Mgd3JvbmcuCkkgd291bGQgbGlrZSB0byB0aGFuayBh
bGwgb2YgeW91IGluIGFkdmFuY2UgZm9yIHlvdXIga2luZCBhc3Npc3RhbmNlIGFuZCAKYWR2aXNl
LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CgpUaGUgYXR0YWNoZWQgZmlsZSBpcyBhIG5ldyBoaW50IHdoaWNoIGRlc2NyaWJlcyBo
b3cgdG8gdHVybiB5b3VyIExGUyAKYnVpbGQKaW50byB5b3VyIG93biBMaXZlIENEL0RWRC4KLS0t
LS0tLS0tLS0tLS0gbmV4dCBwYXJ0IC0tLS0tLS0tLS0tLS0tCkFuIEhUTUwgYXR0YWNobWVudCB3
YXMgc2NydWJiZWQuLi4KVVJMOiAKPGh0dHA6Ly9saXN0cy5saW51eGZyb21zY3JhdGNoLm9yZy9w
aXBlcm1haWwvaGludHMvYXR0YWNobWVudHMvMjAxMzAzMjAvNTcxNGNiODIvYXR0YWNobWVudC5o
dG1sPgotLS0tLS0tLS0tLS0tLSBuZXh0IHBhcnQgLS0tLS0tLS0tLS0tLS0KCk9SSUdJTkFMIEFV
VEhPUjogSmltbXkgQW5kZXJzb24gKGppbW15LmFuZGVyc29uMTA1NyBhdCBnbWFpbC5jb20pCk9S
SUdJTkFMIERBVEU6IDIwMTMtMDEtMjAKTGluayB0byBvcmlnaW5hbCBoaW50OiAKaHR0cDovL2xp
c3RzLmxpbnV4ZnJvbXNjcmF0Y2gub3JnL3BpcGVybWFpbC9oaW50cy8yMDEzLU1hcmNoLzAwMzMw
Ny5odG1sCgpFRElURUQgQlk6IFR1cnJpdG9wc2lzIERvaHJuaWkgVGVvIEVuIE1pbmcsIFNpbmdh
cG9yZQpFRElUIERBVEU6IDE0IE1BUkNIIDIwMjAsIFNBVFVSREFZCgpMSUNFTlNFOgoKUG9ydGlv
bnMgb2YgdGhlIGluc3RydWN0aW9ucyBpbiB0aGlzIGhpbnQgd2VyZSBkZXJpdmVkIGZyb20gc2Ny
aXB0cwppbiB0aGUgTEZTY3JpcHQgcHJvamVjdC4gIFRoZXNlIHNjcmlwdHMgYXJlIGNvdmVyZWQg
YnkgdGhlIGZvbGxvd2luZwpsaWNlbnNlOgoKIyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgCmEgY29weQojIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCAKdG8KIyBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIAp0aGUKIyByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCAKYW5kL29yCiMg
c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgClNvZnR3YXJlIGlzCiMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9uczoKIwojIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIAppbmNsdWRlZCBpbgojIGFsbCBjb3BpZXMg
b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgojCiMgVEhFIFNPRlRXQVJF
IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIApFWFBS
RVNTIE9SCiMgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRiAKTUVSQ0hBTlRBQklMSVRZLAojIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIApTSEFMTCBUSEUKIyBBVVRIT1JT
IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S
IE9USEVSCiMgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S
VCBPUiBPVEhFUldJU0UsIApBUklTSU5HCiMgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiAKREVBTElOR1MKIyBJTiBUSEUg
U09GVFdBUkUuCgpUaGlzIGhpbnQgaXMgYWxzbyBwcm92aWRlZCB1bmRlciB0aGUgYWJvdmUgbGlj
ZW5zZSB0ZXJtcy4KCgpTWU5PUFNJUzogSG93IHRvIGNyZWF0ZSBhIGJvb3RhYmxlIExpdmUgQ0Qv
RFZEIGZyb20geW91ciBMRlMgYnVpbGQuCgpERVNDUklQVElPTjoKCiAgICBUaGlzIGhpbnQgZGVz
Y3JpYmVzIGhvdyB0byBjcmVhdGUgYSBsaXZlIENEL0RWRCBmcm9tIHlvdXIgTEZTIGJ1aWxkLiAg
ClRoZQpyZXN1bHRpbmcgbGl2ZSBDRC9EVkQgY2FuIGJlIHVzZWQgYXMgYW4gTEZTL0NMRlMgYnVp
bGQgaG9zdCBvciBmb3IgCndoYXRldmVyCnB1cnBvc2UgeW91IGRlc2lyZS4KCiAgICBCcmllZmx5
LCB5b3Ugd2lsbCBidWlsZCB5b3VyIExGUyBzeXN0ZW0gYW5kIGEgInNxdWFzaGVkIiB2ZXJzaW9u
Cm9mIGl0IHdpbGwgYmUgY3JlYXRlZC4gICBBIGJ1c3lib3ggYmFzZWQgcmFtZGlzayB3aWxsIGJl
IGNyZWF0ZWQKd2hpY2ggc2V0cyB1cCBhIHVuaW9uIG1vdW50IChlaXRoZXIgYXVmcyBvciB1bmlv
bmZzKSBvZiB0aGUgc3F1YXNoZWQKTEZTIHN5c3RlbSB3aXRoIGEgcmFtIGJhc2VkIGZpbGUgc3lz
dGVtIGFuZCB0aGVuIHRoZSBzeXN0ZW0gd2lsbCBiZQpzdGFydGVkIHdpdGggdGhlIHVuaW9uIGZp
bGVzeXN0ZW0gYXMgcm9vdC4KCiAgICB1bmlvbmZzIGFuZCBhdWZzIGFyZSBub3QgcGFydCBvZiB0
aGUgc3RhbmRhcmQga2VybmVsIGNvZGUuICAgVG8gYnVpbGQKYSBsaXZlIGNkL2R2ZCB5b3UgbXVz
dCBwYXRjaCB5b3VyIGtlcm5lbCB0byBhZGQgc3VwcG9ydCBmb3Igb25lIG9yIHRoZSAKb3RoZXIu
ClRoaXMgaGludCB3aWxsIHN0aWxsIHdvcmsgd2l0aG91dCBhdWZzIG9yIHVuaW9uZnMgc3VwcG9y
dCBidXQgdGhlIHJlc3VsdAp3aWxsIG5vdCBiZSBhIGxpdmUgQ0QvRFZEIGJ1dCBpbnN0ZWFkIGJl
IGEgYm9vdGFibGUgQ0QvRFZEICh1c2VmdWwgYnV0CndpdGggbGVzc2VyIGFiaWxpdHkgdGhhbiBh
IGxpdmUgY2QvZHZkKS4gVGVvIEVuIE1pbmcgKmRpZCBub3QqIHBhdGNoIApMaW51eCBrZXJuZWwg
NS41LjcKdG8gYWRkIHN1cHBvcnQgZm9yIGF1ZnMgb3IgdW5pb25mcyBmaWxlc3lzdGVtcyBiZWNh
dXNlIGhlIGRpZCBub3QgaGF2ZSAKdGhlIGtub3dsZWRnZSB0byB0d2Vhawp0aGUgcGF0Y2hlcy4K
CiAgICBUaGUgb3JpZ2luYWwgaGludCB3YXMgdmVyaWZpZWQgd2l0aCBMRlMgNy4yIHg4NiAoMzIg
YW5kIDY0IGJpdCkuICBJdCAKbWF5CihsaWtlbHkgd2lsbCkgd29yayB3aXRoIG90aGVyIExGUyB2
ZXJzaW9ucyBhbHNvIGJ1dCBpdCBvbmx5IHdhcwpzcGVjaWZpY2FsbHkgdGVzdGVkIHdpdGggNy4y
IGFuZCB5b3UgYXJlIG9uIHlvdXIgb3duIHRvIHdvcmsgb3V0IGhvdwp0byBtYWtlIGl0IHdvcmsg
d2l0aCBvdGhlciBMRlMgdmVyc2lvbnMuIFRlbyBFbiBNaW5nIGhhcyBtb2RpZmVkIHRoaXMgCmd1
aWRlL2hpbnQgdG8gYWxsb3cgaXQKdG8gd29yayB3aXRoIHRoZSBsYXRlc3QgTEZTIDIwMjAwMzAy
LXN5c3RlbWQgZGV2ZWxvcG1lbnQgYm9vay4KCiAgICBBIGRlc2NyaXB0aW9uIG9mIGVhY2ggc3Rl
cCBhbmQgY3V0IGFuZCBwYXN0ZSBmb3IgdGhhdApzdGVwIGlzIHByb3ZpZGVkLiAgQ3V0IGFuZCBw
YXN0aW5nIHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBidWlsZCBhIGxpdmUgCmNkL2R2ZApidXQg
aXQgaXMgaW1wb3J0YW50IHRoYXQgeW91IHVuZGVyc3RhbmQgd2hhdCB0aGUgcHVycG9zZSBvZiBl
YWNoIHN0ZXAKaXMuICBCbGluZGx5IGN1dHRpbmcgYW5kIHBhc3RpbmcgZnJvbSB0aGlzIGhpbnQg
d2lsbCBwcm9iYWJseSBub3QKcmVzdWx0IGluIHN1Y2Nlc3MuCgogICAgRm9sbG93aW5nIHRoaXMg
aGludCwgbGlrZSBkb2luZyBwcmV0dHkgbXVjaCBhbnl0aGluZyBpbiBMRlMsIGhhcyB0aGUKcG90
ZW50aWFsIG9mIGRhbWFnaW5nIHlvdXIgc3lzdGVtLiAgIEJlZm9yZSB5b3UgYmVnaW4sIG1ha2Ug
c3VyZQp5b3UndmUgc2F2ZWQgYSBjb3B5IG9mIGFueSBkYXRhIHRoYXQgaXMgaW1wb3J0YW50IHRv
IHlvdS4gIEl0J3MgYWxzbyAKc3VnZ2VzdGVkCnRvIGZvbGxvdyB0aGlzIHByb2NlZHVyZSBvbiBh
IHN5c3RlbSB0aGF0IGlzIHVzZWQgb25seSBieSB5b3Ugc28gdGhhdCAKYW55CmVycm9ycyB3aWxs
IG5vdCBhZmZlY3Qgb3RoZXJzLgoKCkFUVEFDSE1FTlRTOgpOb25lCgpQUkVSRVFVSVNJVEVTOgoK
VGhpcyBoaW50IGFzc3VtZXMgdGhlIHJlYWRlciBpcyBmYW1pbGlhciB3aXRoIExpbnV4IEZyb20g
U2NyYXRjaCAoTEZTKS4KCk11Y2ggb2YgdGhpcyBoaW50IGFzc3VtZXMgdGhhdCB0aGUgTEZTIHZh
cmlhYmxlIGlzIHByb3Blcmx5IHNldC4gU28sCndoZW4gZm9sbG93aW5nIHRoaXMgaGludCwgYXQg
YWxsIHRpbWVzIG1ha2Ugc3VyZSBMRlMgaXMgc2V0IHByb3Blcmx5OgoKZXhwb3J0IExGUz0vbW50
L2xmcyAgIChvciBhcyBuZWVkZWQgZm9yIHlvdXIgc2V0dXApCgoKSElOVDoKClN0ZXAgMSkgRG93
bmxvYWQgYWRkaXRpb25hbCBuZWVkZWQgcGFja2FnZXMuCgogICAgVGhpcyBzdGVwIGlzIGRvbmUg
b24gdGhlIEhPU1QgKG5vdCBpbiBMRlMgY2hyb290KS4KCiAgICBZb3Ugd2lsbCBuZWVkIHNvbWUg
YWRkaXRpb25hbCBwYWNrYWdlcy4gICBEb3dubG9hZCB0aGUgc3F1YXNoZnMgCnRvb2xzLApidXN5
Ym94IGFuZCBzeXNsaW51eC4gICBUaGUgc3F1YXNoZnMgdG9vbHMgd2lsbCBiZSBuZWVkZWQgb24g
dGhlIGhvc3QuCgoKIy0tLS0tLS0tLS0tLSBDdXQgYW5kIFBhc3RlIHN0YXJ0CmNkIC9ob21lL3Rl
by1lbi1taW5nL0Rvd25sb2Fkcwp3Z2V0IC00IApodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wcm9q
ZWN0cy9zcXVhc2hmcy9maWxlcy9zcXVhc2hmcy9zcXVhc2hmczQuNC9zcXVhc2hmczQuNC50YXIu
Z3ovZG93bmxvYWQKd2dldCAtNCBodHRwczovL2J1c3lib3gubmV0L2Rvd25sb2Fkcy9idXN5Ym94
LTEuMzEuMS50YXIuYnoyCndnZXQgLTQgCmh0dHA6Ly93d3cua2VybmVsLm9yZy9wdWIvbGludXgv
dXRpbHMvYm9vdC9zeXNsaW51eC9zeXNsaW51eC00LjA2LnRhci54egojLS0tLS0tLS0tLS0tIEN1
dCBhbmQgUGFzdGUgZW5kCgogICAgQWRkaXRpb25hbGx5LCB0aGUgYWRkZW5kdW0gb2YgdGhpcyBo
aW50IGNvbnRhaW5zIGEgc2NyaXB0IHRoYXQgaXMKcmVxdWlyZWQgZm9yIHRoZSBsaXZlIGNkL2R2
ZC4gICBTYXZlIHRoZSBhZGRlbmR1bSBvZiB0aGlzIGhpbnQgYXM6CgokTEZTL3NvdXJjZXMvaW5p
dC5zaAoKICAgIE5vdGU6IFlvdSBjYW4gc2tpcCB0aGUgYXVmcy91bmlvbmZzIGtlcm5lbCBwYXRj
aCBhbHRvZ2V0aGVyIGlmIGEKbW9yZSBzaW1wbGUgYm9vdGFibGUgQ0QvRFZEIGlzIGFkZXF1YXRl
IGZvciB5b3VyIG5lZWRzLgoKClN0ZXAgMikgQWRkIHNxdWFzaGZzIHRvb2xzIHRvIHlvdXIgaG9z
dC4gICAoRG8gdGhpcyBvbiB5b3VyIEhPU1QpCgpUZW8gRW4gTWluZydzIGhvc3Qgb3BlcmF0aW5n
IHN5c3RlbSBpcyBVYnVudHUgMTguMDQuMyBMVFMgRGVza3RvcCAKRWRpdGlvbi4KCiAgICBJZiB5
b3UgYXJlIHJ1bm5pbmcgYSBob3N0IGRpc3RyaWJ1dGlvbiB3aGljaCBwcm92aWRlcyBwcmVwYWNr
YWdlZApzcXVhc2hmcyB0b29scywgeW91IG1heSBiZSBhYmxlIHRvIHVzZSB0aGVtLiAgIEhvd2V2
ZXIgdGhleSBtdXN0IGJlCmF0IGxlYXN0IHZlcnNpb24gNC4xIHRvIHdvcmsgcHJvcGVybHkgd2l0
aCB0aGlzIGhpbnQuCgogICAgSXQgaXMgcmVjb21tZW5kZWQgaG93ZXZlciwgdGhhdCB5b3UgYnVp
bGQgc3F1YXNoZnMgdG9vbHMgNC40IGZyb20KdGhlIHNvdXJjZS4gVGhpcyBoaW50IHdhcyB0ZXN0
ZWQgd2l0aCBzcXVhc2hmcyB0b29scyA0LjQgYW5kIGJldHRlcgooeHopIGNvbXByZXNzaW9uIGlz
IG9idGFpbmVkIHdpdGggNC40IChjb21wYXJlZCB3aXRoIDQuMSkuICBUbyBidWlsZCB0aGUKc3F1
YXNoZnMgdG9vbHMgZG86CgojLS0tLS0tLS0tLS0tIEN1dCBhbmQgUGFzdGUgc3RhcnQKY2QgL2hv
bWUvdGVvLWVuLW1pbmcvRG93bmxvYWRzCnRhciB4dmZ6IHNxdWFzaGZzNC40LnRhci5negpjZCBz
cXVhc2hmczQuNC9zcXVhc2hmcy10b29scwpFZGl0IE1ha2VmaWxlIGFzIGZvbGxvd3M6ClhaX1NV
UFBPUlQgPSAxCkNPTVBfREVGQVVMVCA9IHh6CnN1ZG8gYXB0IGluc3RhbGwgbGlibHptYS1kZXYK
bWFrZQpzdWRvIG1ha2UgaW5zdGFsbApta3NxdWFzaGZzIC12ZXJzaW9uCiMtLS0tLS0tLS0tLS0g
Q3V0IGFuZCBQYXN0ZSBlbmQKClRoZSB2ZXJzaW9uIHN0cmluZyBkaXNwbGF5ZWQgc2hvdWxkIGJl
IDQuNC4gICBJZiBub3QsIHlvdSBtYXkgbmVlZCB0bwphZGp1c3QgeW91ciBQQVRIIHNvIHRoYXQg
JEhPTUUvYmluIGFwcGVhcnMgZmlyc3QgaW4gaXQuCgpJZiB5b3UgYXJlIG9uIGEgc2luZ2xlIHVz
ZXIgc3lzdGVtLCBvciBpZiBubyBvdGhlciB2ZXJzaW9uIG9mCnNxdWFzaGZzIHRvb2xzIGV4aXN0
cywgc3F1YXNoZnMgdG9vbHMgY291bGQgYmUgaW5zdGFsbGVkIGluIC91c3IvYmluCm9yIC91c3Iv
bG9jYWwvYmluIHJhdGhlciB0aGFuICRIT01FL2Jpbi4KCklmIHRoZSBsem1hIGxpYnJhcmllcyBh
cmUgbm90IGluc3RhbGxlZCwgdGhlIGJ1aWxkIG9mIHNxdWFzaGZzLXRvb2xzCndpbGwgZmFpbC4g
ICBUbyByZXNvbHZlIGl0LCBlaXRoZXIgaW5zdGFsbCB0aGUgbHptYSBsaWJyYXJpZXMgb3IKcmVi
dWlsZCBzcXVhc2hmcyB3aXRob3V0IHh6IHN1cHBvcnQuICAgc3F1YXNoZnMgKGFuZCB0aGlzIGhp
bnQpIGNhbiAKb3BlcmF0ZQpwcm9wZXJseSB3aXRob3V0IHh6IHN1cHBvcnQgYnV0IHdpdGhvdXQg
eHogc3VwcG9ydCwgdGhlIHJlc3VsdGluZwpsaXZlIENEL0RWRCBpc28gc2l6ZSB3aWxsIGJlIHNv
bWV3aGF0IGxhcmdlci4KCgpTdGVwIDMpIEJ1aWxkIHlvdXIgTEZTIHN5c3RlbSBhbmQga2VybmVs
LgoKICAgIEZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBMRlMvQkxGUyBib29rIGFuZCBi
dWlsZCB5b3VyIExGUyAKc3lzdGVtCmFzIHlvdSBub3JtYWxseSB3b3VsZC4KCldoZW4geW91IGNv
bmZpZ3VyZSB0aGUga2VybmVsLCBtYWtlIHN1cmUgdGhlIGZvbGxvd2luZyBhcmUgZW5hYmxlZAph
cyBidWlsdGlucyAobm90IGFzIG1vZHVsZXMpOgoKICAgIFNRVUFTSEZTIHN1cHBvcnQgKGFuZCBz
dXBwb3J0IGZvciBTUVVBU0hGUyBYWiBjb21wcmVzc2VkIGZpbGUgCnN5c3RlbXMpLgogICAgVU5J
T05GUyBvciBBVUZTIHN1cHBvcnQgKFRlbyBFbiBNaW5nICpkaWQgbm90KiBwYXRjaCBMaW51eCBL
ZXJuZWwgCjUuNS43IGZvciBBVUZTIG9yIFVOSU9ORlMgc3VwcG9ydCkuCiAgICBDRFJPTSBzdXBw
b3J0IChJU085NjYwKS4KICAgIERFVlRNUEZTIHN1cHBvcnQuCgogICAgVGhlbiBidWlsZCBhbmQg
aW5zdGFsbCBhcyBub3JtYWw6CiMtLS0tLS0tLS0tLS0gQ3V0IGFuZCBQYXN0ZSBzdGFydAptYWtl
Cm1ha2UgbW9kdWxlc19pbnN0YWxsCmNwIGFyY2gveDg2L2Jvb3QvYnpJbWFnZSAKL2Jvb3Qvdm1s
aW51ei01LjUuNy10dXJyaXRvcHNpcy5kb2hybmlpLnRlby5lbi5taW5nCmNwIC5jb25maWcgL2Jv
b3QvY29uZmlnLTUuNS43CiMtLS0tLS0tLS0tLS0gQ3V0IGFuZCBQYXN0ZSBlbmQKCgogICAgQWRk
aXRpb25hbGx5LCAvZXRjL2ZzdGFiIG5lZWRzIHNvbWUgdHdlYWtzIGZvciBhIGxpdmUgY2QvZHZk
LgpFZGl0IC9ldGMvZnN0YWIgYW5kIGNvbW1lbnQgb3V0IGFsbCBoYXJkIGRyaXZlIG1vdW50cy4K
QnV0IGxlYXZlIHRoZSB2aXJ0dWFsIGZpbGVzeXN0ZW0gbW91bnRzICgvcHJvYyBhbmQgc3VjaCkg
aW4gaXQ6CiMtLS0tLS0tLS0tLS0gQ3V0IGFuZCBQYXN0ZSBzdGFydAojIFRlbyBFbiBNaW5nJ3Mg
ZmF2b3JpdGUgdGV4dCBlZGl0b3IgaW4gTGludXggaXMgbmFuby4KbmFubyAvZXRjL2ZzdGFiCj4+
IGNvbW1lbnQgb3V0IGFueSBoYXJkIGRyaXZlIG1vdW50cyA8PAojLS0tLS0tLS0tLS0tIEN1dCBh
bmQgUGFzdGUgZW5kCgogICAgQnVpbGQgYW5kIGNvbmZpZ3VyZSB0aGUgcmVtYWluZGVyIG9mIHlv
dXIgTEZTIHN5c3RlbSBhcyBub3JtYWwuCgoKU3RlcCA0KSBCdWlsZCBidXN5Ym94IGluIHlvdXIg
TEZTLgoKICAgIFdoaWxlIGluc2lkZSB0aGUgY2hyb290IGVudmlyb25tZW50IGFkZCBidXN5Ym94
IHRvIHlvdXIKICAgIExGUyBzeXN0ZW06CgpFUlJPUiBjb21waWxpbmcgYnVzeWJveCB3aXRoIGds
aWJjLTIuMzE6ICJzeXMtYXBwcy9idXN5Ym94LTEuMzEuMSBmYWlscyAKdG8gY29tcGlsZSB3aXRo
IHN5cy1kZXZlbC9nbGliYy0yLjMxIgoKU29mdHdhcmUgQnVnIExpbms6IGh0dHBzOi8vYnVncy5n
ZW50b28ub3JnLzcwODM1MAoKTGluayB0byBwYXRjaCBmaWxlOiAKaHR0cHM6Ly83MDgzNTAuYnVn
cy5nZW50b28ub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTYxMTc4MAoKPT09U3RhcnQgRmlsZSBidXN5
Ym94LWdsaWJjLTIuMzEucGF0Y2g9PT0KCmRpZmYgLS1naXQgYS9jb3JldXRpbHMvZGF0ZS5jIGIv
Y29yZXV0aWxzL2RhdGUuYwppbmRleCAzNDE0ZDM4YWUuLjRhZGU2YWJiNCAxMDA2NDQKLS0tIGEv
Y29yZXV0aWxzL2RhdGUuYworKysgYi9jb3JldXRpbHMvZGF0ZS5jCkBAIC0yNzksNiArMjc5LDkg
QEAgaW50IGRhdGVfbWFpbihpbnQgYXJnYyBVTlVTRURfUEFSQU0sIGNoYXIgKiphcmd2KQogIAkJ
dGltZSgmdHMudHZfc2VjKTsKICAjZW5kaWYKICAJfQorI2lmICFFTkFCTEVfRkVBVFVSRV9EQVRF
X05BTk8KKwl0cy50dl9uc2VjID0gMDsKKyNlbmRpZgogIAlsb2NhbHRpbWVfcigmdHMudHZfc2Vj
LCAmdG1fdGltZSk7CgogIAkvKiBJZiBkYXRlIHN0cmluZyBpcyBnaXZlbiwgdXBkYXRlIHRtX3Rp
bWUsIGFuZCBtYXliZSBzZXQgZGF0ZSAqLwpAQCAtMzAxLDkgKzMwNCwxMCBAQCBpbnQgZGF0ZV9t
YWluKGludCBhcmdjIFVOVVNFRF9QQVJBTSwgY2hhciAqKmFyZ3YpCiAgCQlpZiAoZGF0ZV9zdHJb
MF0gIT0gJ0AnKQogIAkJCXRtX3RpbWUudG1faXNkc3QgPSAtMTsKICAJCXRzLnR2X3NlYyA9IHZh
bGlkYXRlX3RtX3RpbWUoZGF0ZV9zdHIsICZ0bV90aW1lKTsKKwkJdHMudHZfbnNlYyA9IDA7Cgog
IAkJLyogaWYgc2V0dGluZyB0aW1lLCBzZXQgaXQgKi8KLQkJaWYgKChvcHQgJiBPUFRfU0VUKSAm
JiBzdGltZSgmdHMudHZfc2VjKSA8IDApIHsKKwkJaWYgKChvcHQgJiBPUFRfU0VUKSAmJiBjbG9j
a19zZXR0aW1lKENMT0NLX1JFQUxUSU1FLCAmdHMpIDwgMCkgewogIAkJCWJiX3BlcnJvcl9tc2co
ImNhbid0IHNldCBkYXRlIik7CiAgCQl9CiAgCX0KZGlmZiAtLWdpdCBhL2xpYmJiL21pc3Npbmdf
c3lzY2FsbHMuYyBiL2xpYmJiL21pc3Npbmdfc3lzY2FsbHMuYwppbmRleCA4N2NmNTliM2QuLmRj
NDBkOTE1NSAxMDA2NDQKLS0tIGEvbGliYmIvbWlzc2luZ19zeXNjYWxscy5jCisrKyBiL2xpYmJi
L21pc3Npbmdfc3lzY2FsbHMuYwpAQCAtMTUsMTQgKzE1LDYgQEAgcGlkX3QgZ2V0c2lkKHBpZF90
IHBpZCkKICAJcmV0dXJuIHN5c2NhbGwoX19OUl9nZXRzaWQsIHBpZCk7CiAgfQoKLWludCBzdGlt
ZShjb25zdCB0aW1lX3QgKnQpCi17Ci0Jc3RydWN0IHRpbWV2YWwgdHY7Ci0JdHYudHZfc2VjID0g
KnQ7Ci0JdHYudHZfdXNlYyA9IDA7Ci0JcmV0dXJuIHNldHRpbWVvZmRheSgmdHYsIE5VTEwpOwot
fQotCiAgaW50IHNldGhvc3RuYW1lKGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBsZW4pCiAgewog
IAlyZXR1cm4gc3lzY2FsbChfX05SX3NldGhvc3RuYW1lLCBuYW1lLCBsZW4pOwpkaWZmIC0tZ2l0
IGEvdXRpbC1saW51eC9yZGF0ZS5jIGIvdXRpbC1saW51eC9yZGF0ZS5jCmluZGV4IDcwZjgyOWU3
Zi4uODc4Mzc1ZDc4IDEwMDY0NAotLS0gYS91dGlsLWxpbnV4L3JkYXRlLmMKKysrIGIvdXRpbC1s
aW51eC9yZGF0ZS5jCkBAIC05NSw5ICs5NSwxMyBAQCBpbnQgcmRhdGVfbWFpbihpbnQgYXJnYyBV
TlVTRURfUEFSQU0sIGNoYXIgKiphcmd2KQogIAlpZiAoIShmbGFncyAmIDIpKSB7IC8qIG5vIC1w
ICgtcyBtYXkgYmUgcHJlc2VudCkgKi8KICAJCWlmICh0aW1lKE5VTEwpID09IHJlbW90ZV90aW1l
KQogIAkJCWJiX2Vycm9yX21zZygiY3VycmVudCB0aW1lIG1hdGNoZXMgcmVtb3RlIHRpbWUiKTsK
LQkJZWxzZQotCQkJaWYgKHN0aW1lKCZyZW1vdGVfdGltZSkgPCAwKQorCQllbHNlIHsKKwkJCXN0
cnVjdCB0aW1lc3BlYyB0czsKKwkJCXRzLnR2X3NlYyA9IHJlbW90ZV90aW1lOworCQkJdHMudHZf
bnNlYyA9IDA7CisJCQlpZiAoY2xvY2tfc2V0dGltZShDTE9DS19SRUFMVElNRSwgJnRzKSA8IDAp
CiAgCQkJCWJiX3BlcnJvcl9tc2dfYW5kX2RpZSgiY2FuJ3Qgc2V0IHRpbWUgb2YgZGF5Iik7CisJ
CX0KICAJfQoKICAJaWYgKGZsYWdzICE9IDEpIC8qIG5vdCBsb25lIC1zICovCgo9PT1FbmQgRmls
ZSBidXN5Ym94LWdsaWJjLTIuMzEucGF0Y2g9PT0KCiMtLS0tLS0tLS0tLS0gQ3V0IGFuZCBQYXN0
ZSBzdGFydApjZCAvc291cmNlcwp0YXIgeHZmIGJ1c3lib3gtMS4zMS4xLnRhci5iejIKY2QgYnVz
eWJveC0xLjMxLjEKY2F0IC4uL2J1c3lib3gtZ2xpYmMtMi4zMS5wYXRjaCB8IHBhdGNoIC1OcDEK
bWFrZSBkZWZjb25maWcKc2VkICdzLyMgQ09ORklHX1NUQVRJQyBpcyBub3Qgc2V0L0NPTkZJR19T
VEFUSUM9eS8nIC1pIC5jb25maWcKCnNlZCAncy9DT05GSUdfRkVBVFVSRV9IQVZFX1JQQz15LyMg
Q09ORklHX0ZFQVRVUkVfSEFWRV9SUEMgaXMgbm90IHNldC8nIApcCiAgICAgICAgIC1pIC5jb25m
aWcKc2VkICdzL0NPTkZJR19GRUFUVVJFX01PVU5UX05GUz15LyMgQ09ORklHX0ZFQVRVUkVfTU9V
TlRfTkZTIGlzIG5vdCAKc2V0LycgXAogICAgICAgICAtaSAuY29uZmlnCnNlZCAncy9DT05GSUdf
RkVBVFVSRV9JTkVURF9SUEM9eS8jIENPTkZJR19GRUFUVVJFX0lORVREX1JQQyBpcyBub3QgCnNl
dC8nIFwKICAgICAgICAgLWkgLmNvbmZpZwptYWtlCmNwIC12IGJ1c3lib3ggL2JpbgojLS0tLS0t
LS0tLS0tIEN1dCBhbmQgUGFzdGUgZW5kCgoKU3RlcCA1KSBDcmVhdGUgcmFtZGlzay4KCkRvIHRo
aXMgc3RlcCBmcm9tIGluc2lkZSB0aGUgTEZTIGNocm9vdCBlbnZpcm9ubWVudC4gICBUaGlzIHN0
ZXAKY3JlYXRlcyBhIGJ1c3lib3ggYmFzZWQgcmFtZGlzay4gICBUaGUgcmFtZGlzayBkb2VzIHRo
ZSB3b3JrIG9mCmNyZWF0aW5nIGFuZCBtb3VudGluZyB0aGUgdW5pb24gZmlsZXN5c3RlbSBhbmQg
c3dpdGNoaW5nIHRvIGl0CmZvciB0aGUgcm9vdCBmaWxlIHN5c3RlbS4KCiMtLS0tLS0tLS0tLS0g
Q3V0IGFuZCBQYXN0ZSBzdGFydApjZCAvc291cmNlcwplY2hvICJUZW8gRW4gTWluZyBMaW51eCAy
MDIwLjAzIChGSU5BTCkgQm9vdGFibGUgTGl2ZSBDRC9EVkQiID5pZF9sYWJlbApta2RpciAtcHYg
bW50X2luaXQve2Jpbixib290fQpjcCAtdiBpZF9sYWJlbCBtbnRfaW5pdC9ib290CmNwIC12IC9i
aW4vYnVzeWJveCBtbnRfaW5pdC9iaW4KY3AgaW5pdC5zaCBtbnRfaW5pdC9pbml0CnNlZCAtaSAi
cy88QVJDSD4vJCh1bmFtZSAtbSkvZyIgbW50X2luaXQvaW5pdApjaG1vZCAreCBtbnRfaW5pdC9p
bml0CgpwdXNoZCBtbnRfaW5pdApmaW5kIC4gfCAuL2Jpbi9idXN5Ym94IGNwaW8gLW8gLUggbmV3
YyAtRiAuLi9pbml0cmFtZnMuY3Bpbwpwb3BkCmd6aXAgLTkgaW5pdHJhbWZzLmNwaW8Kcm0gLXJm
IG1udF9pbml0Cm12IGluaXRyYW1mcy5jcGlvLmd6IC9ib290L2luaXRyYW0uZnMKbXYgaWRfbGFi
ZWwgL2Jvb3QKIy0tLS0tLS0tLS0tLSBDdXQgYW5kIFBhc3RlIGVuZAoKClN0ZXAgNikgTWFrZSBh
IHNxdWFzaGVkIHZlcnNpb24gb2YgeW91ciBMRlMuCgogICAgVGhpcyBzdGVwIHNob3VsZCBiZSBk
b25lIG9uIHRoZSBIT1NUIChub3QgaW5zaWRlIGNocm9vdCkuCgogICAgRG8gYW55IG5lZWRlZCBj
bGVhbnVwIGFuZCBmaW5hbCB0d2Vha2luZyBvZiB5b3VyIExGUyBzeXN0ZW0gcHJpb3IgdG8KY29u
dGludWluZy4gIFN0cmlwIGFueSBiaW5hcmllcyB5b3Ugd2FudCBzdHJpcHBlZCwgcmVtb3ZlIGFu
eSBidWlsZCAKY3J1ZnQsCnJlbW92ZSAkTEZTL3Rvb2xzLCBldGMuICAgQWRkIGFueSBhZGRpdGlv
bmFsIGRhdGEgdGhhdCB5b3Ugd291bGQgbGlrZQp0byBiZSBwcmVzZW50IG9uIHRoZSBsaXZlIENE
L0RWRCwgZXRjLiAgQSBiYXNlIExGUyBzeXN0ZW0gKHdpdGhvdXQgCnNvdXJjZSkgdHVybnMgaW50
byBvbmx5CmEgMjY3IG1lZ2FieXRlIChvciB0aGVyZWFib3V0cykgc2l6ZSBpc28sIHNvIHRoZXJl
IHNob3VsZCBiZSBwbGVudHkgb2YKc3BhY2UgYXZhaWxhYmxlIGZvciBleHRyYXMuCgogICAgRXhp
dCB0aGUgY2hyb290IGFuZCB1bm1vdW50IGFueSBmaWxlc3lzdGVtcyB0aGF0IGFyZSBhc3NvY2lh
dGVkIHdpdGgKdGhlICRMRlMgZGlyZWN0b3J5LiAgIEF0IHRoaXMgcG9pbnQsIGl0IGlzIGEgZ29v
ZCBpZGVhIHRvIGRvIGEgc3lzdGVtCnNodXRkb3duIGFuZCByZXN0YXJ0IHRvIGVuc3VyZSB0aGF0
IHRoZSBMRlMgZGlyZWN0b3J5IGlzIHVudXNlZCBhbmQKaW4gYSBxdWllc2NlbnQgc3RhdGUuICAg
TWFrZSBzdXJlIExGUyBpcyBzZXQgYWdhaW4gYWZ0ZXIgdGhlIHJlYm9vdC4KCgojLS0tLS0tLS0t
LS0tIEN1dCBhbmQgUGFzdGUgc3RhcnQKIyBTZXQgTEZTIHZhbHVlIGFzIG5lZWRlZC4uLgpleHBv
cnQgTEZTPS9tbnQvbGZzCmNkIC9ob21lL3Rlby1lbi1taW5nCmVjaG8gJExGUwpybSAtZiByb290
LnNmcwpzdWRvIG1rc3F1YXNoZnMgJExGUyByb290LnNmcyAtY29tcCB4egojLS0tLS0tLS0tLS0t
IEN1dCBhbmQgUGFzdGUgZW5kCgoob21pdCB0aGUgLWNvbXAgeHogaWYgeW91ciBzcXVhc2hmcyB0
b29scyBkb24ndCBzdXBwb3J0IHh6IGNvbXByZXNzaW9uKS4KCgoKU3RlcCA3KSBBZGQgc3lzbGlu
dXggYW5kIGNyZWF0ZSBDRC9EVkQgaW1hZ2UuCgpUaGlzIHN0ZXAgc2hvdWxkIGJlIGRvbmUgb24g
dGhlIEhPU1QgKG5vdCBpbnNpZGUgY2hyb290KS4KClNldHVwIHRoZSBpc29saW51eCBjb25maWd1
cmF0aW9uIGZpbGU6CgojLS0tLS0tLS0tLS0tIEN1dCBhbmQgUGFzdGUgc3RhcnQKY2QgL2hvbWUv
dGVvLWVuLW1pbmcKCmNhdCA+IGlzb2xpbnV4LmNmZyA8PCBFT0YKREVGQVVMVCBtZW51LmMzMgpQ
Uk9NUFQgMApNRU5VIFRJVExFIFNlbGVjdCBhbiBvcHRpb24uLi4KVElNRU9VVCAzMDAKCkxBQkVM
IGxpdmUKICAgICBNRU5VIExBQkVMIF5Cb290IFRlbyBFbiBNaW5nIExpbnV4IDIwMjAuMDMgKEZJ
TkFMKSBMaXZlIENEL0RWRCAKKCQodW5hbWUgLW0pKQogICAgIE1FTlUgREVGQVVMVAogICAgIEtF
Uk5FTCAvYm9vdC8kKHVuYW1lIC1tKS92bWxpbnV6CiAgICAgQVBQRU5EIGluaXRyZD0vYm9vdC8k
KHVuYW1lIC1tKS9pbml0cmFtLmZzIHF1aWV0CgpMQUJFTCBidXN5Ym94CiAgICAgTUVOVSBMQUJF
TCBeQm9vdCBidXN5Ym94ICgkKHVuYW1lIC1tKSkKICAgICBLRVJORUwgL2Jvb3QvJCh1bmFtZSAt
bSkvdm1saW51egogICAgIEFQUEVORCBpbml0cmQ9L2Jvb3QvJCh1bmFtZSAtbSkvaW5pdHJhbS5m
cyBxdWlldCBidXN5Ym94CgpMQUJFTCBoYXJkZGlzawogICAgIE1FTlUgTEFCRUwgQm9vdCBmcm9t
IGZpcnN0IF5IYXJkIGRpc2sKICAgICBMT0NBTEJPT1QgMHg4MAoKRU9GCiMtLS0tLS0tLS0tLS0g
Q3V0IGFuZCBQYXN0ZSBlbmQKClBhY2thZ2UgdGhlIGlzb2xpbnV4IGJvb3Rsb2FkZXIsIHNxdWFz
aGVkIHJvb3RmcyBhbmQgcmFtZGlzawppbnRvIGEgc3ViZGlyZWN0b3J5OgoKIy0tLS0tLS0tLS0t
LSBDdXQgYW5kIFBhc3RlIHN0YXJ0CnRhciB4ZiBzeXNsaW51eC00LjA2LnRhci54egpybSAtcmYg
bGl2ZQpta2RpciAtcCBsaXZlL2Jvb3Qve2lzb2xpbnV4LCQodW5hbWUgLW0pfQpjcCAtdiBzeXNs
aW51eC00LjA2L2NvcmUvaXNvbGludXguYmluIGxpdmUvYm9vdC9pc29saW51eApjcCAtdiBzeXNs
aW51eC00LjA2L2NvbTMyL21lbnUvbWVudS5jMzIgbGl2ZS9ib290L2lzb2xpbnV4Cm12IC12IC9o
b21lL3Rlby1lbi1taW5nL2lzb2xpbnV4LmNmZyAgICAgICAgICAgICAgICAgbGl2ZS9ib290L2lz
b2xpbnV4CgpjcCAtdiAvaG9tZS90ZW8tZW4tbWluZy9yb290LnNmcyBsaXZlL2Jvb3QvJCh1bmFt
ZSAtbSkKY3AgLXYgJExGUy9ib290L3ZtbGludXotNS41LjctdHVycml0b3BzaXMuZG9ocm5paS50
ZW8uZW4ubWluZyAgIApsaXZlL2Jvb3QvJCh1bmFtZSAtbSkvdm1saW51egpjcCAtdiAkTEZTL2Jv
b3QvaWRfbGFiZWwgbGl2ZS9ib290LyQodW5hbWUgLW0pCmNwIC12ICRMRlMvYm9vdC9pbml0cmFt
LmZzIGxpdmUvYm9vdC8kKHVuYW1lIC1tKS9pbml0cmFtLmZzCgojLS0tLS0tLS0tLS0tIEN1dCBh
bmQgUGFzdGUgZW5kCgpDcmVhdGUgdGhlIGxpdmUgQ0QvRFZEIGlzbyBpbWFnZSB1c2luZyB3aGF0
ZXZlciBpc28gY3JlYXRpb24gdG9vbCB5b3UKaGF2ZS4gICBJbiB0aGlzIGV4YW1wbGUsIGl0IGlz
ICdnZW5pc29pbWFnZSc6CgojLS0tLS0tLS0tLS0tIEN1dCBhbmQgUGFzdGUgc3RhcnQKZ2VuaXNv
aW1hZ2UgLW8gdGVvLWVuLW1pbmctbGludXgtMjAyMC4wMy1maW5hbC1saXZlLWNkLWR2ZC5pc28g
ICAgIFwKICAgICAgICAgLWIgYm9vdC9pc29saW51eC9pc29saW51eC5iaW4gXAogICAgICAgICAt
YyBib290LmNhdCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIC1uby1lbXVsLWJvb3QgICAg
ICAgICAgICAgICAgIFwKICAgICAgICAgLWJvb3QtbG9hZC1zaXplIDQgICAgICAgICAgICAgXAog
ICAgICAgICAtYm9vdC1pbmZvLXRhYmxlICAgICAgICAgICAgICBcCiAgICAgICAgIC1qb2xpZXQg
LWwgLVIgICAgICAgICAgICAgICAgIFwKICAgICAgICAgbGl2ZQoKcm0gLXJmIGxpdmUgIyMjIE9Q
VElPTkFMCiMtLS0tLS0tLS0tLS0gQ3V0IGFuZCBQYXN0ZSBlbmQKClN0ZXAgOCkgQnVybiBhbmQg
Ym9vdC4KCkJ1cm4gdGhlIGlzbyB1c2luZyB3aGF0ZXZlciBjZC9kdmQgd3JpdGluZyB0b29scyB5
b3UgcHJlZmVyLgpUZW8gRW4gTWluZyB1c2VzIGszYi4gUmVib290IHRoZQpzeXN0ZW0gd2l0aCB0
aGUgQ0QvRFZEIGluc2VydGVkIGFuZCBpdCBzaG91bGQgYm9vdCBpbnRvIHlvdXIgbGl2ZSAKQ0Qv
RFZELgoKU3RlcCA5KSBVc2FnZQoKVGhlIENEL0RWRCBib290IG1lbnUgYWxsb3dzIHlvdSB0byBi
b290IGJ1c3lib3ggb3IgdGhlIGxpdmUgY2QvZHZkLiAgIApCdXN5Ym94Cm1heSBiZSB1c2VmdWwg
aWYgZGVidWdnaW5nIG9yIGV4cGVyaW1lbnRpbmcgaXMgbmVlZGVkLgoKWW91IGNhbiB1c2UgdGhl
IGxpdmUgY2QvZHZkIHRvIGluamVjdCB5b3VyIExGUyBpbWFnZSBvbnRvIHRoZSB0YXJnZXQgCmNv
bXB1dGVyICgKcmF0aGVyIHRoYW4gcmVidWlsZGluZyBmcm9tIHNjcmF0Y2guLikgICBGaXJzdCwg
bW91bnQKL2Rldi9jZHJvbSBzb21ld2hlcmUuICAgSW4gdGhlIGJvb3Qgc3ViZGlyZWN0b3J5IGlu
IHRoZSBjZCBpbWFnZSwgeW91IAp3aWxsCmZpbmQgdGhlIHJvb3Quc2ZzIGZpbGUuICAgcm9vdC5z
ZnMgaXMgeW91ciBMRlMgc3lzdGVtIGluIGEgc3F1YXNoZWQgCmZvcm1hdC4KVG8gaW5zdGFsbCBp
dCBpbnRvIHRoZSB0YXJnZXQsIGVpdGhlciB1c2UgdGhlIHVuc3F1YXNoZnMgdG9vbHMgdG8KdW5j
b21wcmVzcyBpdCBvbnRvIHRoZSB0YXJnZXQgY29tcHV0ZXIgc3lzdGVtIG9yIGxvb3AgbW91bnQg
dGhlIHJvb3Quc2ZzCmZpbGUgYW5kIHRoZW4gdXNlIHRhciBvciBzb21lIG90aGVyIGRpcmVjdG9y
eSBjb3B5IHRvb2wgdG8gaW5qZWN0Cml0IGludG8gdGhlIHRhcmdldCBjb21wdXRlci4KCgoKQUNL
Tk9XTEVER0VNRU5UUzoKICAgKiBUaGUgTEZTIGZyb20gc2NyaXB0IHByb2plY3QgCihodHRwOi8v
bGZzY3JpcHQub3JnL3dpa2kvaW5kZXgucGhwL01haW5fUGFnZSkKICAgKiBUaGUgTEZTIHByb2pl
Y3QgKGh0dHA6Ly93d3cubGludXhmcm9tc2NyYXRjaC5vcmcvbGZzLykKCkNIQU5HRUxPRzoKWzIw
MTMtMDEtMjBdCiAgICogSW5pdGlhbCBoaW50IGJ5IEppbW15IEFuZGVyc29uLgpbMjAyMC0wMy0x
NF0KICAgKiBNb2RpZmljYXRpb25zIGJ5IFR1cnJpdG9wc2lzIERvaHJuaWkgVGVvIEVuIE1pbmcs
IFNpbmdhcG9yZQoKQURERU5EVU06IHYgQ3V0IGFuZCBzYXZlIHRoZSByZW1haW5kZXIgb2YgdGhp
cyBmaWxlIGFzIAokTEZTL3NvdXJjZXMvaW5pdC5zaCB2CiMhL2Jpbi9idXN5Ym94IHNoCiMKIyBU
aGlzIGZpbGUgaXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mOgojCiMgSW5pdHJhbWZzIGJvb3Qgc2Ny
aXB0IDEuMy4xICgyMDEyLTAyLTA5KQojIENvcHlyaWdodCAoYykgMjAxMC0yMDEyICAgTWFyY2Vs
IHZhbiBkZW4gQm9lcgojCiMgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIAphIGNvcHkKIyBvZiB0aGlzIHNvZnR3YXJl
IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgCnRv
CiMgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp
dGhvdXQgbGltaXRhdGlvbiAKdGhlCiMgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgCmFuZC9vcgojIHNlbGwgY29waWVz
IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIApTb2Z0
d2FyZSBpcwojIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6CiMKIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBzaGFsbCBiZSAKaW5jbHVkZWQgaW4KIyBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KIwojIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCAKRVhQUkVTUyBPUgojIElN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgCk1F
UkNIQU5UQUJJTElUWSwKIyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O
SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCAKU0hBTEwgVEhFCiMgQVVUSE9SUyBPUiBDT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgojIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX
SVNFLCAKQVJJU0lORwojIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP
RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgCkRFQUxJTkdTCiMgSU4gVEhFIFNPRlRXQVJFLgoK
IyBGUyBsYXlvdXQgYXQgdGhlIHN0YXJ0IG9mIHRoaXMgc2NyaXB0OgojIC0gL2Jvb3QvaWRfbGFi
ZWwKIyAtIC9iaW4vYnVzeWJveAojIC0gL2Rldi9jb25zb2xlIChjcmVhdGVkIGJ5IGtlcm5lbCkK
IyAtIC9pbml0ICh0aGlzIGZpbGUpCgpzZXQgLWUKCkFSQ0g9IjxBUkNIPiIKCiMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKY29weUJpbmRNb3VudCgpIHsgIyBDT1BZ
L0JJTkQgTElWRUNEIE1PREUgIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjCgojIFRoaXMgZnVuY3Rpb24gYmluZC1tb3VudHMgZGlyZWN0b3JpZXMgd2hpY2ggYXJl
IGRlc2lnbmVkIHRvIGJlIGNhcGFibGUgCm9mCiMgcmVhZC1vbmx5IGFjY2VzcyBhbmQgY29waWVz
IHRoZSByZW1haW5pbmcgZGlyZWN0b3JpZXMgdG8gYSB0bXBmcy4KIwojIFRoZSBkb3duc2lkZSBv
ZiB0aGlzIG1ldGhvZCBpcyB0aGF0IHRoZSByZXN1bHRpbmcgcm9vdCBmaWxlc3lzdGVtIGlzIApu
b3QKIyBmdWxseSB3cml0YWJsZS4gU28sIGZvciBleGFtcGxlLCBpbnN0YWxsYXRpb24gb2YgbmV3
IHByb2dyYW1zIHdpbGwgbm90IApiZQojIHBvc3NpYmxlLgojCiMgSG93ZXZlciwgdGhpcyBmdW5j
dGlvbiBjYW4gYmUgdXNlZCB3aXRob3V0IGFueSBtb2RpZmljYXRpb24gdG8gdGhlIAprZXJuZWwg
YW5kCiMgaXMgdGhlcmVmb3JlIHBlcmZlY3QgZm9yIHVzZSBhcyBhIGZhbGxiYWNrIGlmIG90aGVy
IG9wdGlvbnMgYXJlIG5vdCAKYXZhaWxhYmxlLgoKIyBNb3VudCBhIHRtcGZzIHdoZXJlIHRoZSBu
ZXcgcm9vdGZzIHdpbGwgYmUuCm1vdW50IC10IHRtcGZzIHRtcGZzICR7Uk9PVH0gIyBBbGxvd3Mg
cmVtb3VudGluZyByb290IGluIHRoZSBib290c2NyaXB0cwoKIyBCaW5kIG1vdW50IHJlYWQtb25s
eSBmaWxlc3lzdGVtcywgY29weSB0aGUgcmVzdApjZCAvbW50L3N5c3RlbQpmb3IgZGlyIGluICQo
bHMgLTEpOyBkbwogICAgIGNhc2UgJHtkaXJ9IGluCiAgICAgICAgIGxvc3QrZm91bmQpCiAgICAg
ICAgICAgICA7OwogICAgICAgICBiaW4gfCBib290IHwgbGliIHwgb3B0IHwgc2JpbiB8IHVzcikK
ICAgICAgICAgICAgIG1rZGlyICR7Uk9PVH0vJHtkaXJ9CiAgICAgICAgICAgICBtb3VudCAtLWJp
bmQgJHtkaXJ9ICR7Uk9PVH0vJHtkaXJ9CiAgICAgICAgICAgICA7OwogICAgICAgICAqKQogICAg
ICAgICAgICAgY3AgLVIgJHtkaXJ9ICR7Uk9PVH0KICAgICAgICAgICAgIDs7CiAgICAgZXNhYwpk
b25lCmNkIC8KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
fTsgdW5pb25Nb3VudCgpIHsgIyBVTklPTkZTL0FVRlMgTElWRUNEIE1PREUgIwojIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIEEgdW5pb24gbW91bnQgdGFr
ZXMgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgYW5kIGNvbWJpbmVzIHRoZW0gCnRyYW5zcGFyYW50
bHkKIyBpbiBhIHRoaXJkLiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSB3cml0YWJsZSBkaXJlY3Rv
cnkgaW4gbWVtb3J5IAoodG1wZnMpIGFuZAojIHVzZXMgaXQgdG8gb3ZlcmxheSB0aGUgcmVhZC1v
bmx5IHN5c3RlbSBpbWFnZSwgcmVzdWx0aW5nIGluIGEgZnVsbHkgCndyaXRhYmxlCiMgcm9vdCBm
aWxlIHN5c3RlbS4KIwojIFRoZSBvbmx5IGRvd25zaWRlIHRvIHRoaXMgbWV0aG9kIGlzIHRoYXQg
aXQgcmVxdWlyZXMgYSB1bmlvbiB0eXBlIApmaWxlc3lzdGVtCiMgaW4gdGhlIGtlcm5lbCwgd2hp
Y2ggY2FuIG9ubHkgYmUgYWNjb21wbGlzaGVkIGJ5IHBhdGNoaW5nIHRoZSBrZXJuZWwgCmFzIHRo
ZXJlCiMgaXMgbm8gc3VjaCBmZWF0dXJlIGluIGEgdmFuaWxsYSBrZXJuZWwuCgpta2RpciAtcCAv
bW50L3dyaXRhYmxlCm1vdW50IC10IHRtcGZzIC1vIHJ3IHRtcGZzIC9tbnQvd3JpdGFibGUKClVO
SU9ORlNPUFQ9Ii9tbnQvd3JpdGFibGU9cnc6L21udC9zeXN0ZW09cm8iCkFVRlNPUFQ9Ii9tbnQv
d3JpdGFibGU9cnc6L21udC9zeXN0ZW09cm8iCm1vdW50IC10IHVuaW9uZnMgLW8gZGlycz0ke1VO
SU9ORlNPUFR9IHVuaW9uZnMgJHtST09UfSAyPiAvZGV2L251bGwgfHwgXAptb3VudCAtdCBhdWZz
IC1vIGJyPSR7QVVGU09QVH0gbm9uZSAke1JPT1R9IDI+IC9kZXYvbnVsbCB8fCBcCnsKICAgICAj
IElmIFVuaW9uRlMgZmFpbHMsIGZhbGwgYmFjayB0byBjb3B5L2JpbmQgbW91bnRpbmcKICAgICBj
b3B5QmluZE1vdW50Cn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKfSAjIEVORCBPRiBGVU5DVElP
TlMgIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIE1ha2UgcmVxdWlyZWQgYXBwbGV0cyBlYXNp
ZXIgdG8gYWNjZXNzCmZvciBhcHBsZXQgaW4gY2F0IGNobW9kIGNwIGN1dCBncmVwIGxzIG1rZGly
IG1rbm9kIG1vdW50IHVtb3VudCAKc3dpdGNoX3Jvb3QgXAogICAgIHJtIG12IHZpIGNwaW8gdGFy
IG1rZTJmcyBzeW5jIGZkaXNrIGRkIDsgZG8KICAgICAvYmluL2J1c3lib3ggbG4gL2Jpbi9idXN5
Ym94IC9iaW4vJHthcHBsZXR9CmRvbmUKCiMgQ2xlYXIgdGhlIHNjcmVlbgojY2xlYXIgIyBEb24n
dCEgVGhpcyB3aWxsIGNsZWFyIHRoZSBMaW51eCBib290IGxvZ28gd2hlbiB1c2luZyBhIApmcmFt
ZWJ1ZmZlci4KICAgICAgICAjIElmIHlvdSB3YW50IHRvIGNsZWFyIHRoZSBzY3JlZW4gb24gYm9v
dCBhZGQgdGhlICJjbGVhciIgY29tbWFuZCAKdG8KICAgICAgICAjICcvdXNyL3NoYXJlL2xpdmUv
c2VjX2luaXQuc2gnIGluIHRoZSBzeXN0ZW0gaW1hZ2UuCgojIENyZWF0ZSBkZXZpY2Ugbm9kZXMg
cmVxdWlyZWQgdG8gcnVuIHRoaXMgc2NyaXB0CiMgTm90ZTogL2Rldi9jb25zb2xlIHdpbGwgYWxy
ZWFkeSBiZSBhdmFpbGFibGUgaW4gdGhlIHJhbWZzCm1rbm9kIC9kZXYvbnVsbCBjICAxICAzCgpt
a25vZCAvZGV2L3NjZDAgYiAxMSAgMCAgIyArLS0tLS0tLS0KbWtub2QgL2Rldi9zY2QxIGIgMTEg
IDEgICMgfApta25vZCAvZGV2L3NjZDIgYiAxMSAgMiAgIyB8Cm1rbm9kIC9kZXYvc2NkMyBiIDEx
ICAzICAjIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAjIHwKbWtub2QgL2Rldi9oZGMgIGIg
MjIgIDAgICMgfAogICAgICAgICAgICAgICAgICAgICAgICAgICMgfApta25vZCAvZGV2L3NkYSAg
YiAgOCAgMCAgIyB8Cm1rbm9kIC9kZXYvc2RhMSBiICA4ICAxICAjIHwKbWtub2QgL2Rldi9zZGEy
IGIgIDggIDIgICMgfApta25vZCAvZGV2L3NkYTMgYiAgOCAgMyAgIyB8Cm1rbm9kIC9kZXYvc2Rh
NCBiICA4ICA0ICAjIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAjIHwKbWtub2QgL2Rldi9z
ZGIgIGIgIDggMTYgICMgfCAgICA8LS0tLQpta25vZCAvZGV2L3NkYjEgYiAgOCAxNyAgIyB8ICAg
ICAgICBEZXZpY2VzIHdoaWNoIGNvdWxkIGJlIG9yIGNvbnRhaW4gCnRoZQpta25vZCAvZGV2L3Nk
YjIgYiAgOCAxOCAgIyB8ICAgICAgICBib290IG1lZGl1bS4uLgpta25vZCAvZGV2L3NkYjMgYiAg
OCAxOSAgIyB8Cm1rbm9kIC9kZXYvc2RiNCBiICA4IDIwICAjIHwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAjIHwKbWtub2QgL2Rldi9zZGMgIGIgIDggMzIgICMgfApta25vZCAvZGV2L3NkYzEg
YiAgOCAzMyAgIyB8Cm1rbm9kIC9kZXYvc2RjMiBiICA4IDM0ICAjIHwKbWtub2QgL2Rldi9zZGMz
IGIgIDggMzUgICMgfApta25vZCAvZGV2L3NkYzQgYiAgOCAzNiAgIyB8CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIyB8Cm1rbm9kIC9kZXYvc2RkICBiICA4IDQ4ICAjIHwKbWtub2QgL2Rldi9z
ZGQxIGIgIDggNDkgICMgfApta25vZCAvZGV2L3NkZDIgYiAgOCA1MCAgIyB8Cm1rbm9kIC9kZXYv
c2RkMyBiICA4IDUxICAjIHwKbWtub2QgL2Rldi9zZGQ0IGIgIDggNTIgICMgKy0tLS0tLS0tCgoj
IENyZWF0ZSBtb3VudCBwb2ludHMgZm9yIGZpbGVzeXN0ZW1zCm1rZGlyIC1wIC9tbnQvbWVkaXVt
Cm1rZGlyIC1wIC9tbnQvc3lzdGVtCm1rZGlyIC1wIC9tbnQvcm9vdGZzCgojIE1vdW50IHRoZSAv
cHJvYyBmaWxlc3lzdGVtIChlbmFibGVzIGZpbGVzeXN0ZW0gZGV0ZWN0aW9uIGZvciAnbW91bnQn
KQpta2RpciAvcHJvYwptb3VudCAtdCBwcm9jIHByb2MgL3Byb2MKCiMgSW52b2tlIGJ1c3lib3gg
aWYgcmVxdWVzdGVkIHZpYSB0aGUga2VybmVsIGNvbW1hbmQgbGluZS4KaWYgWyBgZ3JlcCAtYyAi
YnVzeWJveCIgL3Byb2MvY21kbGluZWAgLW5lICIwIiBdOyB0aGVuCiAgICAgZWNobyAiQnVzeWJv
eCByZXF1ZXN0ZWQiOwogICAgIGJ1c3lib3ggc2gKZmkKCiMgU2VhcmNoIGZvciwgYW5kIG1vdW50
IHRoZSBib290IG1lZGl1bQpMQUJFTD0iJChjYXQgL2Jvb3QvaWRfbGFiZWwpIgpmb3IgZGV2aWNl
IGluICQobHMgL2Rldik7IGRvCiAgICAgWyAiJHtkZXZpY2V9IiA9PSAiY29uc29sZSIgXSAmJiBj
b250aW51ZQogICAgIFsgIiR7ZGV2aWNlfSIgPT0gIm51bGwiICAgIF0gJiYgY29udGludWUKCiAg
ICAgbW91bnQgLW8gcm8gL2Rldi8ke2RldmljZX0gL21udC9tZWRpdW0gMj4gL2Rldi9udWxsICYm
IFwKICAgICBpZiBbICIkKGNhdCAvbW50L21lZGl1bS9ib290LyR7QVJDSH0vaWRfbGFiZWwpIiAh
PSAiJHtMQUJFTH0iIF07IAp0aGVuCiAgICAgICAgIHVtb3VudCAvbW50L21lZGl1bQogICAgIGVs
c2UKICAgICAgICAgREVWSUNFPSIke2RldmljZX0iCiAgICAgICAgIGJyZWFrCiAgICAgZmkKZG9u
ZQoKaWYgWyAiJHtERVZJQ0V9IiA9PSAiIiBdOyB0aGVuCiAgICAgZWNobyAiRkFUQUw6IEJvb3Qg
bWVkaXVtIG5vdCBmb3VuZC4iCiAgICAgL2Jpbi9idXN5Ym94IHNoCmZpCgojIE1vdW50IHRoZSBz
eXN0ZW0gaW1hZ2UKbW91bnQgLXQgc3F1YXNoZnMgLW8gcm8sbG9vcCAvbW50L21lZGl1bS9ib290
LyR7QVJDSH0vcm9vdC5zZnMgCi9tbnQvc3lzdGVtIHx8IHsKICAgICBlY2hvICJGQVRBTDogQm9v
dCBtZWRpdW0gZm91bmQsIGJ1dCBzeXN0ZW0gaW1hZ2UgaXMgbWlzc2luZy4iCiAgICAgL2Jpbi9i
dXN5Ym94IHNoCn0KCiMgRGVmaW5lIHdoZXJlIHRoZSBuZXcgcm9vdCBmaWxlc3lzdGVtIHdpbGwg
YmUKUk9PVD0iL21udC9yb290ZnMiICMgQWxzbyBuZWVkZWQgZm9yIC91c3Ivc2hhcmUvbGl2ZS9z
ZWNfaW5pdC5zaAoKIyBSdW4gaW4gYm9vdGFibGUgY2QgbW9kZSBpZiByZXF1ZXN0ZWQgdmlhIHRo
ZSBrZXJuZWwgY29tbWFuZCBsaW5lLgppZiBbIGBncmVwIC1jICJib290Y2QiIC9wcm9jL2NtZGxp
bmVgIC1uZSAiMCIgXTsgdGhlbgogICAgIGVjaG8gIkJvb3RjZCBtb2RlIChiaW5kIG1vdW50KSBy
ZXF1ZXN0ZWQiOwogICAgIGNvcHlCaW5kTW91bnQKZWxzZQogICAgICMgU2VsZWN0IExpdmVDRCBt
b2RlCiAgICAgdW5pb25Nb3VudCAjIE1pZ2h0IGZhbGwgYmFjayB0byBjb3B5QmluZE1vdW50CmZp
CgojIFRlbGwgTEZTIHRvIHNraXAgZnNjayBkdXJpbmcgc3RhcnR1cDoKPiAkUk9PVC9mYXN0Ym9v
dAoKIyBHZXQgcmlkIG9mIC8gbWFuaXB1bGF0aW9ucyBpbiBtb3VudGZzIHNjcmlwdDoKZ3JlcCAt
diAnIFwvICcgJFJPT1QvZXRjL3JjLmQvaW5pdC5kL21vdW50ZnMgPiAkUk9PVC90bXAvbW91bnRm
cwpybSAtZiAkUk9PVC9ldGMvcmMuZC9pbml0LmQvbW91bnRmcwptdiAkUk9PVC90bXAvbW91bnRm
cyAkUk9PVC9ldGMvcmMuZC9pbml0LmQvbW91bnRmcwpjaG1vZCAreCAkUk9PVC9ldGMvcmMuZC9p
bml0LmQvbW91bnRmcwoKIyBNb3ZlIGN1cnJlbnQgbW91bnRzIHRvIGRpcmVjdG9yaWVzIGFjY2Vz
c2libGUgaW4gdGhlIG5ldyByb290CmNkIC9tbnQKZm9yIGRpciBpbiAkKGxzIC0xKTsgZG8KICAg
ICBpZiBbICIke2Rpcn0iICE9ICJyb290ZnMiIF07IHRoZW4KICAgICAgICAgbWtkaXIgLXAgJHtS
T09UfS9tbnQvLmJvb3QvJHtkaXJ9CiAgICAgICAgIG1vdW50IC0tbW92ZSAvbW50LyR7ZGlyfSAk
e1JPT1R9L21udC8uYm9vdC8ke2Rpcn0KICAgICBmaQpkb25lCmNkIC8KCiMgUnVuIHNlY29uZGFy
eSBpbml0aWFsaXphdGlvbiAoaWYgdGhlIHN5c3RlbSBwcm92aWRlcyBpdCkKaWYgWyAteCAke1JP
T1R9L3Vzci9zaGFyZS9saXZlL3NlY19pbml0LnNoIF07IHRoZW4KICAgICAuICR7Uk9PVH0vdXNy
L3NoYXJlL2xpdmUvc2VjX2luaXQuc2gKZmkKCiMgQ2xlYW4gdXAKdW1vdW50IC9wcm9jCgojIFN3
aXRjaCB0byB0aGUgbmV3IHJvb3QgYW5kIGxhdW5jaCBJTklUIQpleGVjIHN3aXRjaF9yb290IC1j
IC9kZXYvY29uc29sZSAke1JPT1R9IC9zYmluL2luaXQKCgoKCgoKCgoKCi0tLS0tQkVHSU4gRU1B
SUwgU0lHTkFUVVJFLS0tLS0KClRoZSBHb3NwZWwgZm9yIGFsbCBUYXJnZXRlZCBJbmRpdmlkdWFs
cyAoVElzKToKCltUaGUgTmV3IFlvcmsgVGltZXNdIE1pY3Jvd2F2ZSBXZWFwb25zIEFyZSBQcmlt
ZSBTdXNwZWN0IGluIElsbHMgb2YKVS5TLiBFbWJhc3N5IFdvcmtlcnMKCkxpbms6IApodHRwczov
L3d3dy5ueXRpbWVzLmNvbS8yMDE4LzA5LzAxL3NjaWVuY2Uvc29uaWMtYXR0YWNrLWN1YmEtbWlj
cm93YXZlLmh0bWwKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpTaW5nYXBv
cmVhbiBNci4gVHVycml0b3BzaXMgRG9ocm5paSBUZW8gRW4gTWluZydzIEFjYWRlbWljClF1YWxp
ZmljYXRpb25zIGFzIGF0IDE0IEZlYiAyMDE5IGFuZCByZWZ1Z2VlIHNlZWtpbmcgYXR0ZW1wdHMg
YXQgdGhlIApVbml0ZWQgTmF0aW9ucyBSZWZ1Z2VlIEFnZW5jeSBCYW5na29rICgyMSBNYXIgMjAx
NyksIGluIFRhaXdhbiAoNSBBdWcgCjIwMTkpIGFuZCBBdXN0cmFsaWEgKDI1IERlYyAyMDE5IHRv
IDkgSmFuIDIwMjApOgoKWzFdIGh0dHBzOi8vdGR0ZW1jZXJ0cy53b3JkcHJlc3MuY29tLwoKWzJd
IGh0dHBzOi8vdGR0ZW1jZXJ0cy5ibG9nc3BvdC5zZy8KClszXSBodHRwczovL3d3dy5zY3JpYmQu
Y29tL3VzZXIvMjcwMTI1MDQ5L1Rlby1Fbi1NaW5nCgotLS0tLUVORCBFTUFJTCBTSUdOQVRVUkUt
LS0tLQotLSAKaHR0cDovL2xpc3RzLmxpbnV4ZnJvbXNjcmF0Y2gub3JnL2xpc3RpbmZvL2xmcy1j
aGF0CkZBUTogaHR0cDovL3d3dy5saW51eGZyb21zY3JhdGNoLm9yZy9ibGZzL2ZhcS5odG1sClVu
c3Vic2NyaWJlOiBTZWUgdGhlIGFib3ZlIGluZm9ybWF0aW9uIHBhZ2UK