Re: Kernel size (Was: Include DaynaPort by default in GENERIC?)

foo bar <[email protected]> Sun, 19 Apr 2026 19:48:08 -0400
Newsgroups gmane.os.netbsd.ports.sparc
Message-ID <CAOddDr7-sg_oBybatN7QfFqjdgTXB6u=8d8BPNUJsZp_WCxJkQ@mail.gmail.com>
--00000000000018af86064fd8d1b7
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Mar 27, 2026 at 7:54=E2=80=AFAM Julian Coleman <[email protected]> w=
rote:
[...]
> and so on, i.e. removing anything that isn't present on SUN4 or SUN4C.

So I spent some time making such configs and found that the problem is
much worse than I thought. After putting 1MB SIMMs on my 4300 CPU
board I discovered it also has the kernel file size limit that sun4c
has, that is 4MB in RAM or ~3.3MB on disk. I made some configs
(attached below) that come in around 20KB under the limit but I had to
cut out most stuff to get that low. While these kernels are bootable
on the hardware that is just the start of problems. The RC scripts are
too heavy to run on a system with only 4MB of free memory and what's
worse is they treat swap as an afterthought when it needs to be the
number one priority. You have to boot into single user and run swapctl
-A first before continuing with a multiuser boot. Then I ran into the
final problem which is a show stopper. On an SS1 w/ 8MB of RAM that I
net booted with nfs swap the login program runs so slowly that it
times out after 300s before you can login making the system unusable.
Not sure how practical it is to try and support this minimum config, a
lot of SUN4 & SUN4C systems shipped with 16MB so that might be a
better target.

Note the SUN4 config has cgfour and cgsix enabled but both need bug
fixes to work. Will send another email with a patch for cgfour.

--00000000000018af86064fd8d1b7
Content-Type: application/octet-stream; name=SUN4
Content-Disposition: attachment; filename=SUN4
Content-Transfer-Encoding: base64
Content-ID: <f_mo6ejtwp0>
X-Attachment-Id: f_mo6ejtwp0

IyBzdW40IGNvbmZpZwoKaW5jbHVkZSAJImFyY2gvc3BhcmMvY29uZi9zdGQuc3BhcmMiCgojb3B0
aW9ucyAJSU5DTFVERV9DT05GSUdfRklMRQkjIGVtYmVkIGNvbmZpZyBmaWxlIGluIGtlcm5lbCBi
aW5hcnkKCiNpZGVudCAJCSJHRU5FUklDLSRSZXZpc2lvbjogMS4yNzMgJCIKCm1ha2VvcHRpb25z
CUNPUFRTPSItT3MgLWZuby11bndpbmQtdGFibGVzIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIgoK
bWF4dXNlcnMJMwoKIyMgU3lzdGVtIGtlcm5lbCBjb25maWd1cmF0aW9uLiAgU2VlIG9wdGlvbnMo
NCkgZm9yIG1vcmUgZGV0YWlsLgoKCiMgT3B0aW9ucyBmb3IgdmFyaWFudHMgb2YgdGhlIFN1biBT
UEFSQyBhcmNoaXRlY3VyZS4KIyBXZSBjdXJyZW50bHkgc3VwcG9ydCB0aHJlZSBhcmNoaXRlY3R1
cmUgdHlwZXM7IGF0IGxlYXN0IG9uZSBpcyByZXF1aXJlZC4Kb3B0aW9ucyAJU1VONAkJIyBzdW40
LzEwMCwgc3VuNC8yMDAsIHN1bjQvMzAwCm9wdGlvbnMJCVNVTjRfTU1VM0wJIyBzdW40LzQwMCAz
LWxldmVsIE1NVQoKIyMgU3lzdGVtIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhlIHNwYXJjIG1hY2hp
bmUgdHlwZQoKIyBCbGluayB0aGUgcG93ZXIgTEVEIG9uIHNvbWUgbWFjaGluZXMgdG8gaW5kaWNh
dGUgdGhlIHN5c3RlbSBsb2FkLgojb3B0aW9ucyAJQkxJTksKCiMgd3Njb25zIHN0dWZmCiNvcHRp
b25zIAlXU0VNVUxfU1VOCm9wdGlvbnMgCVdTRU1VTF9WVDEwMApvcHRpb25zIAlXU0RJU1BMQVlf
Q09NUEFUX1JBV0tCRApvcHRpb25zIAlXU0RJU1BMQVlfQ1VTVE9NX09VVFBVVApvcHRpb25zIAlX
U19ERUZBVUxUX0ZHPVdTQ09MX0JMQUNLCm9wdGlvbnMgCVdTX0RFRkFVTFRfQkc9V1NDT0xfTElH
SFRfV0hJVEUKb3B0aW9ucyAJV1NfS0VSTkVMX0ZHPVdTQ09MX0dSRUVOCm9wdGlvbnMgCVdTX0tF
Uk5FTF9CRz1XU0NPTF9MSUdIVF9XSElURQojb3B0aW9ucyAJV1NESVNQTEFZX0NPTVBBVF9QQ1ZU
CiNvcHRpb25zIAlXU0RJU1BMQVlfQ09NUEFUX1NZU0NPTlMKb3B0aW9ucyAJV1NESVNQTEFZX0NP
TVBBVF9VU0wJCSMgd3Njb25zY2ZnIFZUIGhhbmRsaW5nCgpvcHRpb25zIAlXU0RJU1BMQVlfU0NS
T0xMU1VQUE9SVAoKb3B0aW9ucyAJRk9OVF9HQUxMQU5UMTJ4MjIJIyB0aGUgY29uc29sZSBmb250
CiNvcHRpb25zIAlGT05UX0JPTEQ4eDE2CQkjIGEgc29tZXdoYXQgc21hbGxlciBmb250CgojIyMj
IFN5c3RlbSBvcHRpb25zIHRoYXQgYXJlIHRoZSBzYW1lIGZvciBhbGwgcG9ydHMKCiMjIFJvb3Qg
ZGV2aWNlIGNvbmZpZ3VyYXRpb246IGNoYW5nZSB0aGUgPydzIGlmIHlvdSBhcmUgZ29pbmcgdG8g
dXNlIGEKIyMgbm9uc3RhbmRhcmQgcm9vdCBwYXJ0aXRpb24gKG90aGVyIHRoYW4gd2hlcmUgdGhl
IGtlcm5lbCBpcyBib290ZWQgZnJvbSkKIyMgYW5kL29yIG5vbnN0YW5kYXJkIHJvb3QgdHlwZSAo
bm90IGZmcyBvciBuZnMpLiAgTm9ybWFsbHkgdGhpcyBjYW4gYmUKIyMgYXV0b21hZ2ljYWxseSBk
ZXRlcm1pbmVkIGF0IGJvb3QgdGltZS4KCmNvbmZpZwkJbmV0YnNkCXJvb3Qgb24gPyB0eXBlID8K
CiMjIFN5c3RlbSBjYWxsIHRyYWNpbmcgKHNlZSBrdHJhY2UoMSkpLgpvcHRpb25zIAlLVFJBQ0UK
CiMjIFN5c3RlbSBWIGNvbXBhdGlibGUgSVBDIHN1YnN5c3RlbS4gIChtc2djdGwoMiksIHNlbWN0
bCgyKSwgYW5kIHNobWN0bCgyKSkKb3B0aW9ucyAJU1lTVk1TRwkJIyBTeXN0ZW0gViBtZXNzYWdl
IHF1ZXVlcwpvcHRpb25zIAlTWVNWU0VNCQkjIFN5c3RlbSBWIHNlbWFwaG9yZXMKb3B0aW9ucyAJ
U1lTVlNITQkJIyBTeXN0ZW0gViBzaGFyZWQgbWVtb3J5CgpvcHRpb25zIAlNT0RVTEFSCQkjIG5l
dyBzdHlsZSBtb2R1bGUoNykgZnJhbWV3b3JrCm9wdGlvbnMgCU1PRFVMQVJfREVGQVVMVF9BVVRP
TE9BRAoKI29wdGlvbnMgCVVTRVJDT05GCSMgdXNlcmNvbmYoNCkgc3VwcG9ydApvcHRpb25zIAlQ
SVBFX1NPQ0tFVFBBSVIJIyBzbWFsbGVyLCBidXQgc2xvd2VyIHBpcGUoMikKI29wdGlvbnMgCVNZ
U0NUTF9JTkNMVURFX0RFU0NSCSMgSW5jbHVkZSBzeXNjdGwgZGVzY3JpcHRpb25zIGluIGtlcm5l
bAoKIyBBbHRlcm5hdGUgYnVmZmVyIHF1ZXVlIHN0cmF0ZWdpZXMgZm9yIGJldHRlciByZXNwb25z
aXZlbmVzcyB1bmRlciBoaWdoCiMgZGlzayBJL08gbG9hZC4KI29wdGlvbnMgCUJVRlFfUkVBRFBS
SU8Kb3B0aW9ucyAJQlVGUV9QUklPQ1NDQU4KCiMjIE5GUyBib290IG9wdGlvbnM7IHRyaWVzIERI
Q1AvQk9PVFAgdGhlbiBCT09UUEFSQU0KI29wdGlvbnMgCU5GU19CT09UX0JPT1RQQVJBTQpvcHRp
b25zIAlORlNfQk9PVF9CT09UUApvcHRpb25zIAlORlNfQk9PVF9ESENQCgojIyMjIERlYnVnZ2lu
ZyBvcHRpb25zCgojIyBUaGUgRERCIGluLWtlcm5lbCBkZWJ1Z2dlciBydW5zIGF0IHBhbmljICh1
bmxlc3MgRERCX09OUEFOSUM9MCksIG9yIGF0CiMjIHNlcmlhbCBjb25zb2xlIGJyZWFrIG9yIGtl
eWJvYXJkIHJlc2V0LCB3aGVyZSB0aGUgUFJPTSB3b3VsZCBub3JtYWxseQojIyBpbnRlcmNlcHQu
ICBEREJfSElTVE9SWV9TSVpFIGFkZHMgdXAvZG93biBhcnJvdyBjb21tYW5kIGhpc3RvcnkuCm9w
dGlvbnMgCUREQgkJCSMga2VybmVsIGR5bmFtaWMgZGVidWdnZXIKb3B0aW9ucyAJRERCX0hJU1RP
UllfU0laRT0xMDAJIyBlbmFibGUgaGlzdG9yeSBlZGl0aW5nIGluIEREQgojb3B0aW9ucyAJRERC
X09OUEFOSUM9MQkJIyBzZWUgYWxzbyBzeXNjdGwoNyk6IGBkZGIub25wYW5pYycKCiMjIFlvdSBt
YXkgYWxzbyB1c2UgZ2RiLCBvbiBhbm90aGVyIGNvbXB1dGVyIGNvbm5lY3RlZCB0byB0aGlzIG1h
Y2hpbmUgb3ZlcgojIyBhIHNlcmlhbCBwb3J0LiAgQm90aCBLR0RCX0RFViBhbmQgS0dEQl9ERVZS
QVRFIHNob3VsZCBiZSBzcGVjaWZpZWQ7CiMjIEtHREJfREVWIGlzIGEgZGV2X3QgZW5jb2RlZCBk
ZXZpY2UgbnVtYmVyIG9mIHRoZSBzZXJpYWwgcG9ydCB0byB1c2UsIHdoZXJlCiMjIHRoZSBtaW5v
ciBkZXZpY2UgbnVtYmVyIGVuY29kZXMgdGhlIFBST00gZW51bWVyYXRpb24gb2YgdGhlIHNlcmlh
bCBwb3J0cywKIyMgaS5lLjoKIyMgMHhjMDAgPSB0dHlhLCAweGMwMSA9IHR0eWIsIDB4YzAyID0g
dHR5YywgMHhjMDMgPSB0dHlkLgojIyAoTm90ZTogdHR5YyBhbmQgdHR5ZCBhcmUgYXZhaWxhYmxl
IG9ubHkgb24gc29tZSBzdW40IG1vZGVscykKI29wdGlvbnMgCUtHREIJCQkjIHN1cHBvcnQgZm9y
IGtlcm5lbCBnZGIKI29wdGlvbnMgCUtHREJfREVWPTB4YzAxCQkjIGtnZGIgZGV2aWNlIG51bWJl
ciAodGhpcyBpcyBgdHR5YicpCiNvcHRpb25zIAlLR0RCX0RFVlJBVEU9OTYwMAkjIGJhdWQgcmF0
ZQoKCiMjIENvbXBpbGUgdGhlIGtlcm5lbCB3aXRoIGRlYnVnZ2luZyBzeW1ib2xzIChgbmV0YnNk
LmdkYicgaXMgdGhlIGRlYnVnIGZpbGUpLAojIyBzdWNoIHRoYXQgZ2RiKDEpIGNhbiBiZSB1c2Vk
IG9uIGEga2VybmVsIGNvcmVkdW1wLgoKI21ha2VvcHRpb25zCURFQlVHPSItZyIKCgojIyBBZGRz
IGNvZGUgdG8gdGhlIGtlcm5lbCB0aGF0IGRvZXMgaW50ZXJuYWwgY29uc2lzdGVuY3kgY2hlY2tz
LCBhbmQgd2lsbAojIyBjYXVzZSB0aGUga2VybmVsIHRvIHBhbmljIGlmIGNvcnJ1cHRpb24gb2Yg
aW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzCiMjIGlzIGRldGVjdGVkLgpvcHRpb25zIAlESUFHTk9T
VElDCSMgZXh0cmEga2VybmVsIHNhbml0eSBjaGVja2luZwoKIyMgRW5hYmxlIChwb3NzaWJseSBl
eHBlbnNpdmUpIGRlYnVnZ2luZyBjb2RlIHRoYXQgbWF5IGFsc28gZGlzcGxheSBtZXNzYWdlcwoj
IyBvbiB0aGUgc3lzdGVtIGNvbnNvbGUKI29wdGlvbnMgCURFQlVHCiNvcHRpb25zIAlMT0NLREVC
VUcKI29wdGlvbnMgCVNZU0NBTExfREVCVUcKCiMjIE1ha2UgU0NTSSBlcnJvciBtZXNzYWdlcyBt
b3JlIHZlcmJvc2Ugd2hlbiBleHBsYWluaW5nIHRoZWlyIG1lYW5pbmdzLgpvcHRpb25zIAlTQ1NJ
VkVSQk9TRQoKI29wdGlvbnMgCU1JSVZFUkJPU0UJIyB2ZXJib3NlIFBIWSBhdXRvY29uZmlnIG1l
c3NhZ2VzCgojIyBgSU5TRUNVUkUnIHR1cm5zIG9mZiB0aGUga2VybmVsIHNlY3VyaXR5IGxldmVs
IChzZWN1cmVsZXZlbCA9IDAgYWx3YXlzKS4KIyMgVGhpcyBhbGxvd3Mgd3JpdGluZyB0byAvZGV2
L21lbSwgbG9hZGluZyBrZXJuZWwgbW9kdWxlcyB3aGlsZSBtdWx0aS11c2VyLAojIyBhbmQgb3Ro
ZXIgaW5zZWN1cml0aWVzIGdvb2Qgb25seSBmb3IgZGV2ZWxvcG1lbnQgd29yay4gIERvIG5vdCB1
c2UgdGhpcwojIyBvcHRpb24gb24gYSBwcm9kdWN0aW9uIG1hY2hpbmUuCiNvcHRpb25zIAlJTlNF
Q1VSRQoKIyMgYEZEU0NSSVBUUycgYWxsb3dzIG5vbi1yZWFkYWJsZSBidXQgZXhlY3V0YWJsZSBz
Y3JpcHRzIGJ5IHByb3ZpZGluZyBhCiMjIHByZS1vcGVuZWQgb3BhcXVlIGZpbGUgdG8gdGhlIHNj
cmlwdCBpbnRlcnByZXRlci4gIGBTRVRVSURTQ1JJUFRTJywKIyMgd2hpY2ggaW1wbGllcyBGRFND
UklQVFMsIGFsbG93cyBzY3JpcHRzIHRvIGJlIHNldC11c2VyLWlkIHVzaW5nIHRoZSBzYW1lCiMj
IG9wYXF1ZSBmaWxlIG1lY2hhbmlzbS4gIFBlcmwgY2FsbHMgdGhpcyAic2VjdXJlIHNldHVpZCBz
Y3JpcHRzLiIKCiNvcHRpb25zIAlGRFNDUklQVFMKI29wdGlvbnMgCVNFVFVJRFNDUklQVFMKCiMj
IE9wdGlvbnMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyByZWxlYXNlcyBmb3JlaWdu
IHN5c3RlbSBiaW5hcmllcy4KIyMgSW4gdGhlIGNhc2VzIG9mIENPTVBBVF9TVU5PUywgeW91IG1h
eSBuZWVkIHRvIHNldCB1cCBhZGRpdGlvbmFsIHVzZXItbGV2ZWwKIyMgdXRpbGl0aWVzIG9yIHN5
c3RlbSBjb25maWd1cmF0aW9uIGZpbGVzLiBTZWUgY29tcGF0X3N1bm9zKDgpLgoKaW5jbHVkZSAJ
ImNvbmYvY29tcGF0X25ldGJzZDEwLmNvbmZpZyIKI29wdGlvbnMgCUNPTVBBVF9TVU5PUwkjIFN1
bk9TIDQueCBiaW5hcnkgY29tcGF0aWJpbGl0eQoKIyMgRmlsZSBzeXN0ZW1zLiAgWW91IHByb2Jh
Ymx5IG5lZWQgYXQgbGVhc3Qgb25lIG9mIEZGUyBvciBORlMuCmZpbGUtc3lzdGVtCUZGUwkJIyBC
ZXJrZWxleSBGYXN0IEZpbGVzeXN0ZW0KZmlsZS1zeXN0ZW0JTkZTCQkjIFN1biBORlMtY29tcGF0
aWJsZSBmaWxlc3lzdGVtIGNsaWVudAojZmlsZS1zeXN0ZW0JS0VSTkZTCQkjIGtlcm5lbCBkYXRh
LXN0cnVjdHVyZSBmaWxlc3lzdGVtCiNmaWxlLXN5c3RlbQlOVUxMRlMJCSMgTlVMTCBsYXllcmVk
IGZpbGVzeXN0ZW0KI2ZpbGUtc3lzdGVtIAlPVkVSTEFZCQkjIG92ZXJsYXkgZmlsZSBzeXN0ZW0K
I2ZpbGUtc3lzdGVtCU1GUwkJIyBtZW1vcnktYmFzZWQgZmlsZXN5c3RlbQojZmlsZS1zeXN0ZW0J
RkRFU0MJCSMgdXNlciBmaWxlIGRlc2NyaXB0b3IgZmlsZXN5c3RlbQojZmlsZS1zeXN0ZW0JVU1B
UEZTCQkjIHVpZC9naWQgcmVtYXBwaW5nIGZpbGVzeXN0ZW0KI2ZpbGUtc3lzdGVtCUxGUwkJIyBM
b2ctYmFzZWQgZmlsZXN5c3RlbSAoc3RpbGwgZXhwZXJpbWVudGFsKQojZmlsZS1zeXN0ZW0JUFVG
RlMJCSMgVXNlcnNwYWNlIGZpbGUgc3lzdGVtcyAoZS5nLiBudGZzLTNnICYgc3NoZnMpCmZpbGUt
c3lzdGVtCVBST0NGUwkJIyAvcHJvYwpmaWxlLXN5c3RlbQlDRDk2NjAJCSMgSVNPIDk2NjAgKyBS
b2NrIFJpZGdlIGZpbGUgc3lzdGVtCiNmaWxlLXN5c3RlbQlVTklPTgkJIyB1bmlvbiBmaWxlIHN5
c3RlbQojZmlsZS1zeXN0ZW0JTVNET1NGUwkJIyBNUy1ET1MgRkFUIGZpbGVzeXN0ZW0ocykuCiNm
aWxlLXN5c3RlbQlDT0RBCQkjIENvZGEgRmlsZSBTeXN0ZW07IGFsc28gbmVlZHMgdmNvZGEgKGJl
bG93KQpmaWxlLXN5c3RlbQlQVFlGUwkJIyAvZGV2L3B0cy9OIHN1cHBvcnQKI2ZpbGUtc3lzdGVt
CVRNUEZTCQkjIEVmZmljaWVudCBtZW1vcnkgZmlsZS1zeXN0ZW0KI2ZpbGUtc3lzdGVtCVVERgkJ
IyBleHBlcmltZW50YWwgLSBPU1RBIFVERiBDRC9EVkQgZmlsZS1zeXN0ZW0KCiMjIEZpbGUgc3lz
dGVtIG9wdGlvbnMuCiNvcHRpb25zIAlGRlNfRUkJCSMgRkZTIEVuZGlhbiBJbmRlcGVuZGVudCBz
dXBwb3J0CiNvcHRpb25zIAlGRlNfTk9fU05BUFNIT1QJIyBObyBGRlMgc25hcHNob3Qgc3VwcG9y
dAojb3B0aW9ucyAJUVVPVEEJCSMgbGVnYWN5IFVGUyBxdW90YXMKI29wdGlvbnMgCVFVT1RBMgkJ
IyBuZXcsIGluLWZpbGVzeXN0ZW0gVUZTIHF1b3RhcwpvcHRpb25zIAlVRlNfRElSSEFTSAkjIFVG
UyBMYXJnZSBEaXJlY3RvcnkgSGFzaGluZwojb3B0aW9ucyAJVUZTX0VYVEFUVFIJIyBFeHRlbmRl
ZCBhdHRyaWJ1dGUgc3VwcG9ydCBmb3IgVUZTMQojb3B0aW9ucyAJV0FQQkwJCSMgRmlsZSBzeXN0
ZW0gam91cm5hbGluZyBzdXBwb3J0CiNvcHRpb25zIAlMRlNfRElSSEFTSAkjIExGUyB2ZXJzaW9u
IG9mIFVGU19ESVJIQVNIIC0gZXhwZXJpbWVudGFsCiNvcHRpb25zIAlORlNTRVJWRVIJIyBOZXR3
b3JrIEZpbGUgU3lzdGVtIHNlcnZlcgoKIyMgTmV0d29yayBwcm90b2NvbCBzdXBwb3J0LiAgSW4g
bW9zdCBlbnZpcm9ubWVudHMsIElORVQgaXMgcmVxdWlyZWQuCm9wdGlvbnMgCUlORVQJCSMgSVAg
KEludGVybmV0IFByb3RvY29sKSB2NApvcHRpb25zIAlJTkVUNgkJIyBJUFY2CiNvcHRpb25zIAlJ
UFNFQwkJIyBJUCBzZWN1cml0eQojb3B0aW9ucyAJSVBTRUNfREVCVUcJIyBkZWJ1ZyBmb3IgSVAg
c2VjdXJpdHkKI29wdGlvbnMgCUdBVEVXQVkJCSMgcGFja2V0IGZvcndhcmRpbmcgKCJyb3V0ZXIg
c3dpdGNoIikKI29wdGlvbnMgCU1ST1VUSU5HCSMgcGFja2V0IGZvcndhcmRpbmcgb2YgbXVsdGlj
YXN0IHBhY2tldHMKI29wdGlvbnMgCVBJTQkJIyBQcm90b2NvbCBJbmRlcGVuZGVudCBNdWx0aWNh
c3QKI29wdGlvbnMgCU5FVEFUQUxLCSMgQXBwbGVUYWxrIChvdmVyIEV0aGVybmV0KSBwcm90b2Nv
bApvcHRpb25zIAlOVFAJCSMgTmV0d29yayBUaW1lIFByb3RvY29sIGluLWtlcm5lbCBzdXBwb3J0
CiNvcHRpb25zIAlQUFNfU1lOQwkjIEFkZCBzZXJpYWwgbGluZSBzeW5jaHJvbml6YXRpb24gZm9y
IE5UUAojb3B0aW9ucyAJUFBQX0JTRENPTVAJIyBBZGQgQlNEIGNvbXByZXNzaW9uIHRvIHBwcCBk
ZXZpY2UKI29wdGlvbnMgCVBQUF9ERUZMQVRFCSMgQWRkIGRlZmxhdGUgKGxpYnopIGNvbXByZXNz
aW9uIHRvIHBwcCBkZXZpY2UKI29wdGlvbnMgCVBQUF9GSUxURVIJIyBBZGQgYWN0aXZlIGZpbHRl
cnMgZm9yIHBwcCAodmlhIGJwZikKCiNvcHRpb25zIAlBTFRRCQkjIE1hbmlwdWxhdGUgbmV0d29y
ayBpbnRlcmZhY2VzJyBvdXRwdXQgcXVldWVzCiNvcHRpb25zIAlBTFRRX0JMVUUJIyBTdG9jaGFz
dGljIEZhaXIgQmx1ZQojb3B0aW9ucyAJQUxUUV9DQlEJIyBDbGFzcy1CYXNlZCBRdWV1ZWluZwoj
b3B0aW9ucyAJQUxUUV9DRE5SCSMgRGlmZnNlcnYgVHJhZmZpYyBDb25kaXRpb25lcgojb3B0aW9u
cyAJQUxUUV9GSUZPUQkjIEZpcnN0LUluIEZpcnN0LU91dCBRdWV1ZQojb3B0aW9ucyAJQUxUUV9G
TE9XVkFMVkUJIyBSRUQvZmxvdy12YWx2ZSAocmVkLXBlbmFsdHktYm94KQojb3B0aW9ucyAJQUxU
UV9IRlNDCSMgSGllcmFyY2hpY2FsIEZhaXIgU2VydmljZSBDdXJ2ZQojb3B0aW9ucyAJQUxUUV9M
T0NBTFEJIyBMb2NhbCBxdWV1ZWluZyBkaXNjaXBsaW5lCiNvcHRpb25zIAlBTFRRX1BSSVEJIyBQ
cmlvcml0eSBRdWV1ZWluZwojb3B0aW9ucyAJQUxUUV9SRUQJIyBSYW5kb20gRWFybHkgRGV0ZWN0
aW9uCiNvcHRpb25zIAlBTFRRX1JJTwkjIFJFRCB3aXRoIElOL09VVAojb3B0aW9ucyAJQUxUUV9X
RlEJIyBXZWlnaHRlZCBGYWlyIFF1ZXVlaW5nCgoKCiMjIyMgTWFpbiBidXMgYW5kIENQVSAuLiBh
bGwgc3lzdGVtcy4KbWFpbmJ1czAgYXQgcm9vdApjcHUwCWF0IG1haW5idXMwCgoKIyMjIyBCdXMg
dHlwZXMgZm91bmQgb24gU1BBUkMgc3lzdGVtcy4KCm9iaW8wCWF0IG1haW5idXMwCQkJCSMgc3Vu
NCBhbmQgc3VuNG0Kc3BhcmN2bWUwCWF0IG1haW5idXMwCQkJIyBzdW40CnZtZTAJYXQgc3BhcmN2
bWUwCQkJCSMgTUkgVk1FIGF0dGFjaG1lbnQKCiMjIyMgU3RhbmRhcmQgc3lzdGVtIGRldmljZXMg
LS0gYWxsIHJlcXVpcmVkIGZvciBhIGdpdmVuIGFyY2hpdGVjdHVyZQoKIyMgTW9zdGVrIGNsb2Nr
IGZvdW5kIG9uIDQvMzAwLCBzdW40Yywgc3VuNG0gYW5kIHN1bjRkIHN5c3RlbXMuCiMjIFRoZSBN
b3N0ZWsgY2xvY2sgTlZSQU0gaXMgdGhlICJlZXByb20iIG9uIHN1bjQvMzAwIHN5c3RlbXMuCmNs
b2NrMAlhdCBvYmlvMCBhZGRyIDB4ZjIwMDAwMDAJCSMgc3VuNC8zMDAKCiMjIEludGVyc2lsIGNs
b2NrIGZvdW5kIG9uIDQvMTAwIGFuZCA0LzIwMCBzeXN0ZW1zLgpvY2xvY2swCWF0IG9iaW8wIGFk
ZHIgMHhmMzAwMDAwMAkJIyBzdW40LzIwMApvY2xvY2swCWF0IG9iaW8wIGFkZHIgMHgwMzAwMDAw
MAkJIyBzdW40LzEwMAoKIyMgTWVtb3J5IGVycm9yIHJlZ2lzdGVycy4KbWVtcmVnMAlhdCBvYmlv
MCBhZGRyIDB4ZjQwMDAwMDAJCSMgc3VuNC8yMDAgYW5kIHN1bjQvMzAwCm1lbXJlZzAJYXQgb2Jp
bzAgYWRkciAweDA0MDAwMDAwCQkjIHN1bjQvMTAwCgojIyBUaW1lciBjaGlwIGZvdW5kIG9uIDQv
MzAwLCBzdW40YywgYW5kIHN1bjRtIHN5c3RlbXMuCnRpbWVyMAlhdCBvYmlvMCBhZGRyIDB4ZWYw
MDAwMDAJCSMgc3VuNC8zMDAKCiMjIEVFUFJPTSBmb3VuZCBvbiA0LzEwMCBhbmQgNC8yMDAgc3lz
dGVtcy4gIE5vdGUgdGhhdCB0aGUgNC8zMDAKIyMgZG9lc24ndCB1c2UgdGhpcyBkcml2ZXI7IHRo
ZSBgRUVQUk9NJyBpcyBpbiB0aGUgTlZSQU0gb24gdGhlCiMjIE1vc3RlayBjbG9jayBjaGlwIG9u
IDQvMzAwIHN5c3RlbXMuCmVlcHJvbTAJYXQgb2JpbzAgYWRkciAweGYyMDAwMDAwCQkjIHN1bjQv
MjAwCmVlcHJvbTAJYXQgb2JpbzAgYWRkciAweDAyMDAwMDAwCQkjIHN1bjQvMTAwCgoKIyMjIyBT
ZXJpYWwgcG9ydCBjb25maWd1cmF0aW9uCgojIyBaaWxvZyA4NTMwIHNlcmlhbCBjaGlwcy4gIEVh
Y2ggaGFzIHR3by1jaGFubmVscy4KIyMgenMwIGlzIHR0eWEgYW5kIHR0eWIuICB6czEgaXMgdGhl
IGtleWJvYXJkIGFuZCBtb3VzZS4KenMwCWF0IG9iaW8wIGFkZHIgMHhmMTAwMDAwMCBsZXZlbCAx
MgkJIyBzdW40LzIwMCBhbmQgc3VuNC8zMDAKenMwCWF0IG9iaW8wIGFkZHIgMHgwMTAwMDAwMCBs
ZXZlbCAxMgkJIyBzdW40LzEwMAp6c3R0eTAJYXQgenMwIGNoYW5uZWwgMAkJCQkjIHR0eWEKenN0
dHkxCWF0IHpzMCBjaGFubmVsIDEJCQkJIyB0dHliCgp6czEJYXQgb2JpbzAgYWRkciAweGYwMDAw
MDAwIGxldmVsIDEyCQkjIHN1bjQvMjAwIGFuZCBzdW40LzMwMAp6czEJYXQgb2JpbzAgYWRkciAw
eDAwMDAwMDAwIGxldmVsIDEyCQkjIHN1bjQvMTAwCgojIG9sZCBrYmQgYW5kIG1vdXNlIGF0dGFj
aG1lbnRzCiNrYmQwCWF0IHpzMSBjaGFubmVsIDAJCQkJIyBrZXlib2FyZAojbXMwCWF0IHpzMSBj
aGFubmVsIDEJCQkJIyBtb3VzZQp6c3R0eSoJYXQgenM/CgojIHRoZXNlIGFyZSBmb3Igd3Njb25z
CmtiZDAJYXQgenN0dHk/Cm1zMAlhdCB6c3R0eT8Kd3NrYmQqCWF0IHdza2JkZGV2Pwp3c21vdXNl
KiAJYXQgd3Ntb3VzZWRldj8KCnpzMglhdCBvYmlvMCBhZGRyIDB4ZTAwMDAwMDAgbGV2ZWwgMTIJ
CSMgc3VuNC8zMDAKenN0dHkyCWF0IHpzMiBjaGFubmVsIDAJCQkJIyB0dHljCnpzdHR5MwlhdCB6
czIgY2hhbm5lbCAxCQkJCSMgdHR5ZAoKIyMjIyBEaXNrIGNvbnRyb2xsZXJzIGFuZCBkaXNrcwoK
IwoKIyMgVGhlIGZvbGxvd2luZyBmbGFncyBtYXkgYmUgc2V0IGZvciB0aGUgTkNSNTNjOTQgYmFz
ZWQgZXNwIGRyaXZlcjoKIyMJYml0cyAwLTc6ICBkaXNhYmxlIGRpc2Nvbm5lY3QvcmVzZWxlY3Qg
Zm9yIHRoZSBjb3JyZXNwb25kaW5nIHRhcmdldAojIwliaXRzIDgtMTU6IGRpc2FibGUgc3luY2hy
b25vdXMgbmVnb3RpYXRpb24gZm9yIHRhcmdldCBbYml0LThdCgojIyBzdW40LzMwMCwgc3VuNGMs
IHN1bjRtIG9uLWJvYXJkIFNDU0ksIGFuZCBGU0JFL1MgU0J1cyBTQ1NJIGNhcmRzLgojIyBCb3Ro
IGBkbWEnIGFuZCBgZXNwJyBhcmUgbmVlZGVkIGluIGFsbCBjYXNlcy4KIyMgVHdvIGtpbmRzIG9m
IGFkZGl0aW9uYWwgU0J1cyBTQ1NJIGludGVyZmFjZXMgYXJlIGF2YWlsYWJsZS4gIE9uZSB1c2Vz
CiMjICJlc3AgYXQgc2J1cyIgbGlrZSB0aGUgc3VuNGMgb24tYm9hcmQ7IHRoZSBvdGhlciB1c2Vz
ICJlc3AgYXQgZG1hIi4KCiMjIHN1bjQvMzAwIFNDU0kgLSBhbiBOQ1I1M2M5NCBvciBlcXVpdmFs
ZW50IGJlaGluZAojIyBhbiBMU0kgTG9naWMgRE1BIGNvbnRyb2xsZXIKCmRtYTAJYXQgb2JpbzAg
YWRkciAweGZhMDAxMDAwIGxldmVsIDQJCSMgc3VuNC8zMDAKZXNwMAlhdCBvYmlvMCBhZGRyIDB4
ZmEwMDAwMDAgbGV2ZWwgNCBmbGFncyAweDAwMDAJIyBzdW40LzMwMAoKc2NzaWJ1cyogYXQgZXNw
PwoKIyMgTkNSNTM4MC1iYXNlZCAiU3VuIFNDU0kgMyIgVk1FIFNDU0kgY29udHJvbGxlci4KIyMg
VGhpcyBkcml2ZXIgaGFzIHNldmVyYWwgZmxhZ3Mgd2hpY2ggbWF5IGJlIGVuYWJsZWQgYnkgT1In
aW5nCiMjIHRoZSB2YWx1ZXMgYW5kIHVzaW5nIHRoZSAiZmxhZ3MiIGRpcmVjdGl2ZS4KIyMgVmFs
aWQgZmxhZ3MgYXJlOgojIwojIwkweDAxCQlVc2UgRE1BIChtYXkgYmUgcG9sbGVkKQojIwkweDAy
CQlVc2UgRE1BIGNvbXBsZXRpb24gaW50ZXJydXB0cwojIwkweDA0CQlBbGxvdyBkaXNjb25uZWN0
L3Jlc2VsZWN0CiMjCiMjIEUuZy4gdGhlIGZvbGxvd2luZyB3b3VsZCBlbmFibGUgRE1BLCBpbnRl
cnJ1cHRzLCBhbmQgcmVzZWxlY3Q6CiMjIHNpMAlhdCB2bWUwIGFkZHIgMHgyMDAwMDAgaXJxIDMg
dmVjdCAweDQwIGZsYWdzIDB4MDcKIyMKIyMgQnkgZGVmYXVsdCwgRE1BIGlzIGVuYWJsZWQgaW4g
dGhlIGRyaXZlci4KCnNpMAlhdCB2bWUwIGFkZHIgMHgyMDAwMDAgaXJxIDIgdmVjdCAweDQwIGZs
YWdzIDB4MDcKc2kxCWF0IHZtZTAgYWRkciAweDIwNDAwMCBpcnEgMiB2ZWN0IDB4NDAgZmxhZ3Mg
MHgwNwpzY3NpYnVzKiBhdCBzaT8KCiMjIE5DUjUzODAtYmFzZWQgIlNDU0kgV2VpcmQiIG9uLWJv
YXJkIFNDU0kgaW50ZXJmYWNlIGZvdW5kCiMjIG9uIHN1bjQvMTAwIHN5c3RlbXMuICBUaGUgZmxh
Z3MgYXJlIHRoZSBzYW1lIGFzIHRoZSAic2kiCiMjIGNvbnRyb2xsZXIuICBOb3RlLCB3aGlsZSBE
TUEgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBvbmx5CiMjIHBvbGxlZCBETUEgd29ya3MgYXQgdGhp
cyB0aW1lLCBhbmQgcmVzZWxlY3RzIGRvIG5vdCB3b3JrCiMjIG9uIHRoaXMgcGFydGljdWxhciBj
b250cm9sbGVyLgoKc3cwCWF0IG9iaW8wIGFkZHIgMHgwYTAwMDAwMCBsZXZlbCAzCnNjc2lidXMq
IGF0IHN3PwoKIyMgVGhlc2UgZW50cmllcyBmaW5kIGRldmljZXMgb24gYWxsIFNDU0kgYnVzc2Vz
IGFuZCBhc3NpZ24KIyMgdW5pdCBudW1iZXJzIGR5bmFtaWNhbGx5LgpzZCoJYXQgc2NzaWJ1cz8g
dGFyZ2V0ID8gbHVuID8JCSMgU0NTSSBkaXNrcwpzdCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVu
ID8JCSMgU0NTSSB0YXBlcwpjZCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMgU0NTSSBD
RC1ST01zCiNjaCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMgU0NTSSBjaGFuZ2VyIGRl
dmljZXMKI3NzKglhdCBzY3NpYnVzPyB0YXJnZXQgPyBsdW4gPwkJIyBTQ1NJIHNjYW5uZXJzCiNz
ZXMqCWF0IHNjc2lidXM/IHRhcmdldCA/IGx1biA/CQkjIFNDU0kgU0VTL1NBRi1URQojdWsqCWF0
IHNjc2lidXM/IHRhcmdldCA/IGx1biA/CQkjIHVua25vd24gU0NTSQoKCiMjIFh5bG9naWNzIDc1
MyBvciA3MDUzIFZNRSBTTUQgZGlzayBjb250cm9sbGVycyBhbmQgZGlza3MsIGZvdW5kCiMjIG9u
IHN1bjQgc3lzdGVtcy4KI3hkYzAJYXQgdm1lMCBhZGRyIDB4ZWU4MCBpcnEgMyB2ZWN0IDB4NDQK
I3hkYzEJYXQgdm1lMCBhZGRyIDB4ZWU5MCBpcnEgMyB2ZWN0IDB4NDUKI3hkYzIJYXQgdm1lMCBh
ZGRyIDB4ZWVhMCBpcnEgMyB2ZWN0IDB4NDYKI3hkYzMJYXQgdm1lMCBhZGRyIDB4ZWViMCBpcnEg
MyB2ZWN0IDB4NDcKI3hkKglhdCB4ZGM/IGRyaXZlID8KCiMjIFh5bG9naWNzIDQ1MSBvciA0NTEg
Vk1FIFNNRCBkaXNrIGNvbnRyb2xsZXJzIGFuZCBkaXNrcywgZm91bmQKIyMgb24gc3VuNCBzeXN0
ZW1zLgojeHljMAlhdCB2bWUwIGFkZHIgMHhlZTQwIGlycSAzIHZlY3QgMHg0OAojeHljMQlhdCB2
bWUwIGFkZHIgMHhlZTQ4IGlycSAzIHZlY3QgMHg0OQojeHkqCWF0IHh5Yz8gZHJpdmUgPwoKCiMj
IyMgTmV0d29yayBpbnRlcmZhY2VzCgojIyBMQU5DRSBFdGhlcm5ldCAtIGFuIEFNRCA3OTkwIExB
TkNFIGJlaGluZCBzcGVjaWFsaXplZCBETUEgZ2x1ZQojIyBUaHJlZSBmbGF2b3JzIG9mIGFkZGl0
aW9uYWwgU0J1cyBldGhlcm5ldHMgYXJlIGF2YWlsYWJsZS4gIE9uZSBhdHRhY2hlcwojIyBkaXJl
Y3RseSBsaWtlIHRoZSBzdW40YyBvbi1ib2FyZCwgb25lIHVzZXMgdGhlIGxlZG1hIGRldmljZSBs
aWtlIHRoZQojIyBzdW40bSBvbi1ib2FyZCwgYW5kIG9uZSB1c2VzIHRoZSBsZWJ1ZmZlciBkZXZp
Y2UuCgpsZTAJCWF0IG9iaW8wIGFkZHIgMHhmOTAwMDAwMCBsZXZlbCA2CSMgc3VuNC8zMDAKCiMj
IHN1bjQvMTAwIGFuZCBzdW40LzIwMCBFdGhlcm5ldCAtIGFuIEludGVsIDgyNTg2IG9uLWJvYXJk
CiMjIG9yIG9uIGEgTXVsdGlidXMvVk1FIGNhcmQuCmllMAlhdCBvYmlvMCBhZGRyIDB4ZjYwMDAw
MDAgbGV2ZWwgNgkJIyBzdW40LzIwMCBvbi1ib2FyZAppZTAJYXQgb2JpbzAgYWRkciAweDA2MDAw
MDAwIGxldmVsIDYJCSMgc3VuNC8xMDAgb24tYm9hcmQKCiMjIFZNRTogdGhlIGZpcnN0IFthZGRy
LGxlbl0gcGFpciBzcGVjaWZpZXMgdGhlIGRldmljZSByZWdpc3RlcnM7CiMjCXRoZSBzZWNvbmQg
cGFpciBzcGVjaWZpZXMgdGhlIG9uLWJvYXJkIG1lbW9yeSBidWZmZXIKI2llMQlhdCB2bWUwIGFk
ZHIgMHhlODgwMDAsMHhlMDAwMDAgbGVuIC0xLDB4NDAwMDAgaXJxIDMgdmVjdCAweDc1CiNpZTIJ
YXQgdm1lMCBhZGRyIDB4MzFmZjAyLDB4MzAwMDAwIGxlbiAtMSwweDQwMDAwIGlycSAzIHZlY3Qg
MHg3NgojaWUzCWF0IHZtZTAgYWRkciAweDM1ZmYwMiwweDMwMDAwMCBsZW4gLTEsMHg0MDAwMCBp
cnEgMyB2ZWN0IDB4NzcKI2llNAlhdCB2bWUwIGFkZHIgMHgyZGZmMDIsMHgyMDAwMDAgbGVuIC0x
LDB4NDAwMDAgaXJxIDMgdmVjdCAweDdjCgojIyBMb29wYmFjayBuZXR3b3JrIGludGVyZmFjZTsg
cmVxdWlyZWQKcHNldWRvLWRldmljZQlsb29wCgojIyBCZXJrZWxleSBQYWNrZXQgRmlsdGVyLCBy
ZXF1aXJlZCB0byBydW4gUkFSUEQuICBBIGdlbmVyaWMgQy1sYW5ndWFnZQojIyBpbnRlcmZhY2Ug
dGhhdCBhbGxvd3Mgc2VsZWN0aXZlIGV4YW1pbmluZyBvZiBpbmNvbWluZyBwYWNrZXRzLgpwc2V1
ZG8tZGV2aWNlCWJwZmlsdGVyCgoKIyMjIyBBdWRpbyBhbmQgdmlkZW8gZGV2aWNlcwoKIyMgU3Vu
ICJid3R3byIgYmxhY2sgYW5kIHdoaXRlIGZyYW1lYnVmZmVyLCBmb3VuZCBvbiBzdW40LCBzdW40
YywgYW5kIHN1bjRtCiMjIHN5c3RlbXMuICBJZiB5b3VyIHN1bjQgc3lzdGVtIGhhcyBhIGNnZm91
ciBpbnN0YWxsZWQgaW4gdGhlIFA0IHNsb3QsCiMjIHRoZSBQNCBlbnRyaWVzIGZvciAiYnd0d28i
IHdpbGwgYXR0YWNoIHRvIHRoZSBvdmVybGF5IHBsYW5lIG9mIHRoZQojIyAiY2dmb3VyIi4KCmJ3
dHdvMAkJYXQgb2JpbzAgYWRkciAweGZkMDAwMDAwIGxldmVsIDQJIyBzdW40LzIwMApid3R3bzAJ
CWF0IG9iaW8wIGFkZHIgMHhmYjMwMDAwMCBsZXZlbCA0CSMgc3VuNC8zMDAgaW4gUDQgc2xvdApi
d3R3bzAJCWF0IG9iaW8wIGFkZHIgMHgwYjMwMDAwMCBsZXZlbCA0CSMgc3VuNC8xMDAgaW4gUDQg
c2xvdAoKIyMgU3VuICJjZ3R3byIgVk1FIGNvbG9yIGZyYW1lYnVmZmVyCiMgWFhYIG5vIHdzZGlz
cGxheSBzdXBwb3J0CiNjZ3R3bzAJCWF0IHZtZTAgYWRkciAweDQwMDAwMCBpcnEgNCB2ZWN0IDB4
YTgKCiMjIFN1biAiY2dmb3VyIiBjb2xvciBmcmFtZWJ1ZmZlciB3aXRoIG92ZXJsYXkgcGxhbmUu
ICBTZWUgYWJvdmUgY29tbWVudAojIyByZWdhcmRpbmcgb3ZlcmxheSBwbGFuZS4KIyBYWFggbm8g
d3NkaXNwbGF5IHN1cHBvcnQKY2dmb3VyMAkJYXQgb2JpbzAgYWRkciAweGZiMzAwMDAwIGxldmVs
IDQJIyBzdW40LzMwMCBQNApjZ2ZvdXIwCQlhdCBvYmlvMCBhZGRyIDB4MGIzMDAwMDAgbGV2ZWwg
NAkjIHN1bjQvMTAwIFA0CgojIyBTdW4gImNnc2l4IiBhY2NlbGVyYXRlZCBjb2xvciBmcmFtZWJ1
ZmZlci4KY2dzaXgwCQlhdCBvYmlvMCBhZGRyIDB4ZmIwMDAwMDAgbGV2ZWwgNAkjIHN1bjQvMzAw
IFA0CmNnc2l4MAkJYXQgb2JpbzAgYWRkciAweDBiMDAwMDAwIGxldmVsIDQJIyBzdW40LzEwMCBQ
NAoKIyMgU3VuICJjZ2VpZ2h0IiAyNC1iaXQgZnJhbWVidWZmZXIKIyBYWFggbm8gd3NkaXNwbGF5
IHN1cHBvcnQKI2NnZWlnaHQwIAlhdCBvYmlvMCBhZGRyIDB4ZmIzMDAwMDAgbGV2ZWwgNAkjIHN1
bjQvMzAwIFA0CiNjZ2VpZ2h0MAlhdCBvYmlvMCBhZGRyIDB4MGIzMDAwMDAgbGV2ZWwgNAkjIHN1
bjQvMTAwIFA0CgojIG1ha2Ugc3VyZSB3c2Rpc3BsYXkwIGlzIHRoZSBjb25zb2xlCndzZGlzcGxh
eTAJYXQgd3NlbXVsZGlzcGxheWRldj8gY29uc29sZSAxCiN3c2Rpc3BsYXkqCWF0IHdzZW11bGRp
c3BsYXlkZXY/CgojIyMjIE90aGVyIGRldmljZSBjb25maWd1cmF0aW9uCgojIyBQc2V1ZG8gdHR5
cywgcmVxdWlyZWQgZm9yIG5ldHdvcmsgbG9naW5zIGFuZCBwcm9ncmFtcyBsaWtlIHNjcmVlbi4K
CnBzZXVkby1kZXZpY2UJcHR5CQkJIyBwc2V1ZG8tdGVybWluYWxzCgojIyBSYW5kb20gZGV2aWNl
LCB1c2VkIHRvIGltcGxlbWVudCAvZGV2L3JhbmRvbSAoYSBzb3VyY2Ugb2YgcmFuZG9tIG5vaXNl
KSwKIyMgYW5kIGdlbmVyYXRlIHJhbmRvbW5lc3MgZm9yIHNvbWUga2VybmVsIGZvcm11bGFlLgoK
CiMgYSBwc2V1ZG8gZGV2aWNlIG5lZWRlZCBmb3IgQ29kYQkjIGFsc28gbmVlZHMgQ09EQSAoYWJv
dmUpCiNwc2V1ZG8tZGV2aWNlCXZjb2RhCQkJIyBjb2RhIG1pbmljYWNoZSA8LT4gdmVudXMgY29t
bS4KCnBzZXVkby1kZXZpY2UJY2xvY2tjdGwJCSMgdXNlciBjb250cm9sIG9mIGNsb2NrIHN1YnN5
c3RlbQojcHNldWRvLWRldmljZQlkcnZjdGwJCQkjIHVzZXIgY29udHJvbCBvZiBkcml2ZSBzdWJz
eXN0ZW0KI3BzZXVkby1kZXZpY2UJa3N5bXMJCQkjIC9kZXYva3N5bXMKI3BzZXVkby1kZXZpY2UJ
ZnNzCQkJIyBmaWxlIHN5c3RlbSBzbmFwc2hvdCBkZXZpY2UKcHNldWRvLWRldmljZQl3c211eAkJ
CSMgbW91c2UgYW5kIGtleWJvYXJkIG11bHRpcGxleG9yCnBzZXVkby1kZXZpY2UJd3Nmb250CiNw
c2V1ZG8tZGV2aWNlCXB1dHRlcgkJCSMgZm9yIHB1ZmZzIGFuZCBwdWQKcHNldWRvLWRldmljZSAJ
c3d3ZG9nCQkJIyBzb2Z0d2FyZSB3YXRjaGRvZyB0aW1lciAtLSBzd3dkb2coNCkKCmluY2x1ZGUg
ImRldi92ZXJpZXhlYy5jb25maWciCgojb3B0aW9ucyBQQVhfTVBST1RFQ1Q9MAkJCSMgUGFYIG1w
cm90ZWN0KDIpIHJlc3RyaWN0aW9ucwoJCQkJCSMgKGZvciBzdGF0aWMgYmluYXJpZXMgb25seSBm
b3Igbm93KQoKIyBQdWxsIGluIG9wdGlvbmFsIGxvY2FsIGNvbmZpZ3VyYXRpb24gLSBhbHdheXMg
YXQgZW5kCmNpbmNsdWRlCSJhcmNoL3NwYXJjL2NvbmYvR0VORVJJQy5sb2NhbCIK
--00000000000018af86064fd8d1b7
Content-Type: application/octet-stream; name=SUN4C
Content-Disposition: attachment; filename=SUN4C
Content-Transfer-Encoding: base64
Content-ID: <f_mo6ek47d1>
X-Attachment-Id: f_mo6ek47d1

IyBzdW40YyBjb25maWcKCmluY2x1ZGUgCSJhcmNoL3NwYXJjL2NvbmYvc3RkLnNwYXJjIgoKI29w
dGlvbnMgCUlOQ0xVREVfQ09ORklHX0ZJTEUJIyBlbWJlZCBjb25maWcgZmlsZSBpbiBrZXJuZWwg
YmluYXJ5CgojaWRlbnQgCQkiR0VORVJJQy0kUmV2aXNpb246IDEuMjc1ICQiCgptYWtlb3B0aW9u
cwlDT1BUUz0iLU9zIC1mbm8tdW53aW5kLXRhYmxlcyAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciIK
Cm1heHVzZXJzCTQKCiMjIFN5c3RlbSBrZXJuZWwgY29uZmlndXJhdGlvbi4gIFNlZSBvcHRpb25z
KDQpIGZvciBtb3JlIGRldGFpbC4KCgojIE9wdGlvbnMgZm9yIHZhcmlhbnRzIG9mIHRoZSBTdW4g
U1BBUkMgYXJjaGl0ZWN0dXJlLgojIFdlIGN1cnJlbnRseSBzdXBwb3J0IHRocmVlIGFyY2hpdGVj
dHVyZSB0eXBlczsgYXQgbGVhc3Qgb25lIGlzIHJlcXVpcmVkLgpvcHRpb25zIAlTVU40QwkJIyBz
dW40YyAtIFNTMSwgMSssIDIsIEVMQywgU0xDLCBJUEMsIElQWCwgZXRjLgoKIyMgU3lzdGVtIG9w
dGlvbnMgc3BlY2lmaWMgdG8gdGhlIHNwYXJjIG1hY2hpbmUgdHlwZQoKIyBCbGluayB0aGUgcG93
ZXIgTEVEIG9uIHNvbWUgbWFjaGluZXMgdG8gaW5kaWNhdGUgdGhlIHN5c3RlbSBsb2FkLgojb3B0
aW9ucyAJQkxJTksKCiMgd3Njb25zIHN0dWZmCiNvcHRpb25zIAlXU0VNVUxfU1VOCm9wdGlvbnMg
CVdTRU1VTF9WVDEwMApvcHRpb25zIAlXU0RJU1BMQVlfQ09NUEFUX1JBV0tCRApvcHRpb25zIAlX
U0RJU1BMQVlfQ1VTVE9NX09VVFBVVApvcHRpb25zIAlXU19ERUZBVUxUX0ZHPVdTQ09MX0JMQUNL
Cm9wdGlvbnMgCVdTX0RFRkFVTFRfQkc9V1NDT0xfTElHSFRfV0hJVEUKb3B0aW9ucyAJV1NfS0VS
TkVMX0ZHPVdTQ09MX0dSRUVOCm9wdGlvbnMgCVdTX0tFUk5FTF9CRz1XU0NPTF9MSUdIVF9XSElU
RQojb3B0aW9ucyAJV1NESVNQTEFZX0NPTVBBVF9QQ1ZUCiNvcHRpb25zIAlXU0RJU1BMQVlfQ09N
UEFUX1NZU0NPTlMKI29wdGlvbnMgCVdTRElTUExBWV9DT01QQVRfVVNMCQkjIHdzY29uc2NmZyBW
VCBoYW5kbGluZwoKb3B0aW9ucyAJV1NESVNQTEFZX1NDUk9MTFNVUFBPUlQKCm9wdGlvbnMgCUZP
TlRfR0FMTEFOVDEyeDIyCSMgdGhlIGNvbnNvbGUgZm9udAojb3B0aW9ucyAJRk9OVF9CT0xEOHgx
NgkJIyBhIHNvbWV3aGF0IHNtYWxsZXIgZm9udAoKIyMjIyBTeXN0ZW0gb3B0aW9ucyB0aGF0IGFy
ZSB0aGUgc2FtZSBmb3IgYWxsIHBvcnRzCgojIyBSb290IGRldmljZSBjb25maWd1cmF0aW9uOiBj
aGFuZ2UgdGhlID8ncyBpZiB5b3UgYXJlIGdvaW5nIHRvIHVzZSBhCiMjIG5vbnN0YW5kYXJkIHJv
b3QgcGFydGl0aW9uIChvdGhlciB0aGFuIHdoZXJlIHRoZSBrZXJuZWwgaXMgYm9vdGVkIGZyb20p
CiMjIGFuZC9vciBub25zdGFuZGFyZCByb290IHR5cGUgKG5vdCBmZnMgb3IgbmZzKS4gIE5vcm1h
bGx5IHRoaXMgY2FuIGJlCiMjIGF1dG9tYWdpY2FsbHkgZGV0ZXJtaW5lZCBhdCBib290IHRpbWUu
Cgpjb25maWcJCW5ldGJzZAlyb290IG9uID8gdHlwZSA/CgojIyBTeXN0ZW0gY2FsbCB0cmFjaW5n
IChzZWUga3RyYWNlKDEpKS4Kb3B0aW9ucyAJS1RSQUNFCgojIyBTeXN0ZW0gViBjb21wYXRpYmxl
IElQQyBzdWJzeXN0ZW0uICAobXNnY3RsKDIpLCBzZW1jdGwoMiksIGFuZCBzaG1jdGwoMikpCm9w
dGlvbnMgCVNZU1ZNU0cJCSMgU3lzdGVtIFYgbWVzc2FnZSBxdWV1ZXMKb3B0aW9ucyAJU1lTVlNF
TQkJIyBTeXN0ZW0gViBzZW1hcGhvcmVzCm9wdGlvbnMgCVNZU1ZTSE0JCSMgU3lzdGVtIFYgc2hh
cmVkIG1lbW9yeQoKb3B0aW9ucyAJTU9EVUxBUgkJIyBuZXcgc3R5bGUgbW9kdWxlKDcpIGZyYW1l
d29yawpvcHRpb25zIAlNT0RVTEFSX0RFRkFVTFRfQVVUT0xPQUQKCiNvcHRpb25zIAlVU0VSQ09O
RgkjIHVzZXJjb25mKDQpIHN1cHBvcnQKb3B0aW9ucyAJUElQRV9TT0NLRVRQQUlSCSMgc21hbGxl
ciwgYnV0IHNsb3dlciBwaXBlKDIpCiNvcHRpb25zIAlTWVNDVExfSU5DTFVERV9ERVNDUgkjIElu
Y2x1ZGUgc3lzY3RsIGRlc2NyaXB0aW9ucyBpbiBrZXJuZWwKCiMgQWx0ZXJuYXRlIGJ1ZmZlciBx
dWV1ZSBzdHJhdGVnaWVzIGZvciBiZXR0ZXIgcmVzcG9uc2l2ZW5lc3MgdW5kZXIgaGlnaAojIGRp
c2sgSS9PIGxvYWQuCiNvcHRpb25zIAlCVUZRX1JFQURQUklPCm9wdGlvbnMgCUJVRlFfUFJJT0NT
Q0FOCgojIyBORlMgYm9vdCBvcHRpb25zOyB0cmllcyBESENQL0JPT1RQIHRoZW4gQk9PVFBBUkFN
CiNvcHRpb25zIAlORlNfQk9PVF9CT09UUEFSQU0Kb3B0aW9ucyAJTkZTX0JPT1RfQk9PVFAKb3B0
aW9ucyAJTkZTX0JPT1RfREhDUAoKIyMjIyBEZWJ1Z2dpbmcgb3B0aW9ucwoKIyMgVGhlIEREQiBp
bi1rZXJuZWwgZGVidWdnZXIgcnVucyBhdCBwYW5pYyAodW5sZXNzIEREQl9PTlBBTklDPTApLCBv
ciBhdAojIyBzZXJpYWwgY29uc29sZSBicmVhayBvciBrZXlib2FyZCByZXNldCwgd2hlcmUgdGhl
IFBST00gd291bGQgbm9ybWFsbHkKIyMgaW50ZXJjZXB0LiAgRERCX0hJU1RPUllfU0laRSBhZGRz
IHVwL2Rvd24gYXJyb3cgY29tbWFuZCBoaXN0b3J5LgpvcHRpb25zIAlEREIJCQkjIGtlcm5lbCBk
eW5hbWljIGRlYnVnZ2VyCm9wdGlvbnMgCUREQl9ISVNUT1JZX1NJWkU9MTAwCSMgZW5hYmxlIGhp
c3RvcnkgZWRpdGluZyBpbiBEREIKI29wdGlvbnMgCUREQl9PTlBBTklDPTEJCSMgc2VlIGFsc28g
c3lzY3RsKDcpOiBgZGRiLm9ucGFuaWMnCgojIyBZb3UgbWF5IGFsc28gdXNlIGdkYiwgb24gYW5v
dGhlciBjb21wdXRlciBjb25uZWN0ZWQgdG8gdGhpcyBtYWNoaW5lIG92ZXIKIyMgYSBzZXJpYWwg
cG9ydC4gIEJvdGggS0dEQl9ERVYgYW5kIEtHREJfREVWUkFURSBzaG91bGQgYmUgc3BlY2lmaWVk
OwojIyBLR0RCX0RFViBpcyBhIGRldl90IGVuY29kZWQgZGV2aWNlIG51bWJlciBvZiB0aGUgc2Vy
aWFsIHBvcnQgdG8gdXNlLCB3aGVyZQojIyB0aGUgbWlub3IgZGV2aWNlIG51bWJlciBlbmNvZGVz
IHRoZSBQUk9NIGVudW1lcmF0aW9uIG9mIHRoZSBzZXJpYWwgcG9ydHMsCiMjIGkuZS46CiMjIDB4
YzAwID0gdHR5YSwgMHhjMDEgPSB0dHliLCAweGMwMiA9IHR0eWMsIDB4YzAzID0gdHR5ZC4KIyMg
KE5vdGU6IHR0eWMgYW5kIHR0eWQgYXJlIGF2YWlsYWJsZSBvbmx5IG9uIHNvbWUgc3VuNCBtb2Rl
bHMpCiNvcHRpb25zIAlLR0RCCQkJIyBzdXBwb3J0IGZvciBrZXJuZWwgZ2RiCiNvcHRpb25zIAlL
R0RCX0RFVj0weGMwMQkJIyBrZ2RiIGRldmljZSBudW1iZXIgKHRoaXMgaXMgYHR0eWInKQojb3B0
aW9ucyAJS0dEQl9ERVZSQVRFPTM4NDAwCSMgYmF1ZCByYXRlCgoKIyMgQ29tcGlsZSB0aGUga2Vy
bmVsIHdpdGggZGVidWdnaW5nIHN5bWJvbHMgKGBuZXRic2QuZ2RiJyBpcyB0aGUgZGVidWcgZmls
ZSksCiMjIHN1Y2ggdGhhdCBnZGIoMSkgY2FuIGJlIHVzZWQgb24gYSBrZXJuZWwgY29yZWR1bXAu
CgojbWFrZW9wdGlvbnMJREVCVUc9Ii1nIgoKCiMjIEFkZHMgY29kZSB0byB0aGUga2VybmVsIHRo
YXQgZG9lcyBpbnRlcm5hbCBjb25zaXN0ZW5jeSBjaGVja3MsIGFuZCB3aWxsCiMjIGNhdXNlIHRo
ZSBrZXJuZWwgdG8gcGFuaWMgaWYgY29ycnVwdGlvbiBvZiBpbnRlcm5hbCBkYXRhIHN0cnVjdHVy
ZXMKIyMgaXMgZGV0ZWN0ZWQuCm9wdGlvbnMgCURJQUdOT1NUSUMJIyBleHRyYSBrZXJuZWwgc2Fu
aXR5IGNoZWNraW5nCgojIyBFbmFibGUgKHBvc3NpYmx5IGV4cGVuc2l2ZSkgZGVidWdnaW5nIGNv
ZGUgdGhhdCBtYXkgYWxzbyBkaXNwbGF5IG1lc3NhZ2VzCiMjIG9uIHRoZSBzeXN0ZW0gY29uc29s
ZQojb3B0aW9ucyAJREVCVUcKI29wdGlvbnMgCUxPQ0tERUJVRwojb3B0aW9ucyAJU1lTQ0FMTF9E
RUJVRwoKIyMgTWFrZSBTQ1NJIGVycm9yIG1lc3NhZ2VzIG1vcmUgdmVyYm9zZSB3aGVuIGV4cGxh
aW5pbmcgdGhlaXIgbWVhbmluZ3MuCiNvcHRpb25zIAlTQ1NJVkVSQk9TRQoKI2twdGlvbnMgCU1J
SVZFUkJPU0UJIyB2ZXJib3NlIFBIWSBhdXRvY29uZmlnIG1lc3NhZ2VzCgojIyBgSU5TRUNVUkUn
IHR1cm5zIG9mZiB0aGUga2VybmVsIHNlY3VyaXR5IGxldmVsIChzZWN1cmVsZXZlbCA9IDAgYWx3
YXlzKS4KIyMgVGhpcyBhbGxvd3Mgd3JpdGluZyB0byAvZGV2L21lbSwgbG9hZGluZyBrZXJuZWwg
bW9kdWxlcyB3aGlsZSBtdWx0aS11c2VyLAojIyBhbmQgb3RoZXIgaW5zZWN1cml0aWVzIGdvb2Qg
b25seSBmb3IgZGV2ZWxvcG1lbnQgd29yay4gIERvIG5vdCB1c2UgdGhpcwojIyBvcHRpb24gb24g
YSBwcm9kdWN0aW9uIG1hY2hpbmUuCiNvcHRpb25zIAlJTlNFQ1VSRQoKIyMgYEZEU0NSSVBUUycg
YWxsb3dzIG5vbi1yZWFkYWJsZSBidXQgZXhlY3V0YWJsZSBzY3JpcHRzIGJ5IHByb3ZpZGluZyBh
CiMjIHByZS1vcGVuZWQgb3BhcXVlIGZpbGUgdG8gdGhlIHNjcmlwdCBpbnRlcnByZXRlci4gIGBT
RVRVSURTQ1JJUFRTJywKIyMgd2hpY2ggaW1wbGllcyBGRFNDUklQVFMsIGFsbG93cyBzY3JpcHRz
IHRvIGJlIHNldC11c2VyLWlkIHVzaW5nIHRoZSBzYW1lCiMjIG9wYXF1ZSBmaWxlIG1lY2hhbmlz
bS4gIFBlcmwgY2FsbHMgdGhpcyAic2VjdXJlIHNldHVpZCBzY3JpcHRzLiIKCiNvcHRpb25zIAlG
RFNDUklQVFMKI29wdGlvbnMgCVNFVFVJRFNDUklQVFMKCiMjIE9wdGlvbnMgZm9yIGNvbXBhdGli
aWxpdHkgd2l0aCBwcmV2aW91cyByZWxlYXNlcyBmb3JlaWduIHN5c3RlbSBiaW5hcmllcy4KIyMg
SW4gdGhlIGNhc2VzIG9mIENPTVBBVF9TVU5PUywgeW91IG1heSBuZWVkIHRvIHNldCB1cCBhZGRp
dGlvbmFsIHVzZXItbGV2ZWwKIyMgdXRpbGl0aWVzIG9yIHN5c3RlbSBjb25maWd1cmF0aW9uIGZp
bGVzLiBTZWUgY29tcGF0X3N1bm9zKDgpLgoKI2luY2x1ZGUgCSJjb25mL2NvbXBhdF9uZXRic2Qx
MC5jb25maWciCiNvcHRpb25zIAlDT01QQVRfU1VOT1MJIyBTdW5PUyA0LnggYmluYXJ5IGNvbXBh
dGliaWxpdHkKCiMjIEZpbGUgc3lzdGVtcy4gIFlvdSBwcm9iYWJseSBuZWVkIGF0IGxlYXN0IG9u
ZSBvZiBGRlMgb3IgTkZTLgpmaWxlLXN5c3RlbQlGRlMJCSMgQmVya2VsZXkgRmFzdCBGaWxlc3lz
dGVtCmZpbGUtc3lzdGVtCU5GUwkJIyBTdW4gTkZTLWNvbXBhdGlibGUgZmlsZXN5c3RlbSBjbGll
bnQKI2ZpbGUtc3lzdGVtCUtFUk5GUwkJIyBrZXJuZWwgZGF0YS1zdHJ1Y3R1cmUgZmlsZXN5c3Rl
bQojZmlsZS1zeXN0ZW0JTlVMTEZTCQkjIE5VTEwgbGF5ZXJlZCBmaWxlc3lzdGVtCiNmaWxlLXN5
c3RlbSAJT1ZFUkxBWQkJIyBvdmVybGF5IGZpbGUgc3lzdGVtCiNmaWxlLXN5c3RlbQlNRlMJCSMg
bWVtb3J5LWJhc2VkIGZpbGVzeXN0ZW0KI2ZpbGUtc3lzdGVtCUZERVNDCQkjIHVzZXIgZmlsZSBk
ZXNjcmlwdG9yIGZpbGVzeXN0ZW0KI2ZpbGUtc3lzdGVtCVVNQVBGUwkJIyB1aWQvZ2lkIHJlbWFw
cGluZyBmaWxlc3lzdGVtCiNmaWxlLXN5c3RlbQlMRlMJCSMgTG9nLWJhc2VkIGZpbGVzeXN0ZW0g
KHN0aWxsIGV4cGVyaW1lbnRhbCkKI2ZpbGUtc3lzdGVtCVBVRkZTCQkjIFVzZXJzcGFjZSBmaWxl
IHN5c3RlbXMgKGUuZy4gbnRmcy0zZyAmIHNzaGZzKQpmaWxlLXN5c3RlbQlQUk9DRlMJCSMgL3By
b2MKZmlsZS1zeXN0ZW0JQ0Q5NjYwCQkjIElTTyA5NjYwICsgUm9jayBSaWRnZSBmaWxlIHN5c3Rl
bQojZmlsZS1zeXN0ZW0JVU5JT04JCSMgdW5pb24gZmlsZSBzeXN0ZW0KI2ZpbGUtc3lzdGVtCU1T
RE9TRlMJCSMgTVMtRE9TIEZBVCBmaWxlc3lzdGVtKHMpLgojZmlsZS1zeXN0ZW0JQ09EQQkJIyBD
b2RhIEZpbGUgU3lzdGVtOyBhbHNvIG5lZWRzIHZjb2RhIChiZWxvdykKZmlsZS1zeXN0ZW0JUFRZ
RlMJCSMgL2Rldi9wdHMvTiBzdXBwb3J0CiNmaWxlLXN5c3RlbQlUTVBGUwkJIyBFZmZpY2llbnQg
bWVtb3J5IGZpbGUtc3lzdGVtCiNmaWxlLXN5c3RlbQlVREYJCSMgZXhwZXJpbWVudGFsIC0gT1NU
QSBVREYgQ0QvRFZEIGZpbGUtc3lzdGVtCgojIyBGaWxlIHN5c3RlbSBvcHRpb25zLgojb3B0aW9u
cyAJRkZTX0VJCQkjIEZGUyBFbmRpYW4gSW5kZXBlbmRlbnQgc3VwcG9ydAojb3B0aW9ucyAJRkZT
X05PX1NOQVBTSE9UCSMgTm8gRkZTIHNuYXBzaG90IHN1cHBvcnQKI29wdGlvbnMgCVFVT1RBCQkj
IGxlZ2FjeSBVRlMgcXVvdGFzCiNvcHRpb25zIAlRVU9UQTIJCSMgbmV3LCBpbi1maWxlc3lzdGVt
IFVGUyBxdW90YXMKb3B0aW9ucyAJVUZTX0RJUkhBU0gJIyBVRlMgTGFyZ2UgRGlyZWN0b3J5IEhh
c2hpbmcKb3B0aW9ucyAJVUZTX0VYVEFUVFIJIyBFeHRlbmRlZCBhdHRyaWJ1dGUgc3VwcG9ydCBm
b3IgVUZTMQojb3B0aW9ucyAJV0FQQkwJCSMgRmlsZSBzeXN0ZW0gam91cm5hbGluZyBzdXBwb3J0
CiNvcHRpb25zIAlMRlNfRElSSEFTSAkjIExGUyB2ZXJzaW9uIG9mIFVGU19ESVJIQVNIIC0gZXhw
ZXJpbWVudGFsCiNvcHRpb25zIAlORlNTRVJWRVIJIyBOZXR3b3JrIEZpbGUgU3lzdGVtIHNlcnZl
cgoKIyMgTmV0d29yayBwcm90b2NvbCBzdXBwb3J0LiAgSW4gbW9zdCBlbnZpcm9ubWVudHMsIElO
RVQgaXMgcmVxdWlyZWQuCm9wdGlvbnMgCUlORVQJCSMgSVAgKEludGVybmV0IFByb3RvY29sKSB2
NApvcHRpb25zIAlJTkVUNgkJIyBJUFY2CiNvcHRpb25zIAlJUFNFQwkJIyBJUCBzZWN1cml0eQoj
b3B0aW9ucyAJSVBTRUNfREVCVUcJIyBkZWJ1ZyBmb3IgSVAgc2VjdXJpdHkKI29wdGlvbnMgCUdB
VEVXQVkJCSMgcGFja2V0IGZvcndhcmRpbmcgKCJyb3V0ZXIgc3dpdGNoIikKI29wdGlvbnMgCU1S
T1VUSU5HCSMgcGFja2V0IGZvcndhcmRpbmcgb2YgbXVsdGljYXN0IHBhY2tldHMKI29wdGlvbnMg
CVBJTQkJIyBQcm90b2NvbCBJbmRlcGVuZGVudCBNdWx0aWNhc3QKI29wdGlvbnMgCU5FVEFUQUxL
CSMgQXBwbGVUYWxrIChvdmVyIEV0aGVybmV0KSBwcm90b2NvbApvcHRpb25zIAlOVFAJCSMgTmV0
d29yayBUaW1lIFByb3RvY29sIGluLWtlcm5lbCBzdXBwb3J0CiNvcHRpb25zIAlQUFNfU1lOQwkj
IEFkZCBzZXJpYWwgbGluZSBzeW5jaHJvbml6YXRpb24gZm9yIE5UUAojb3B0aW9ucyAJUFBQX0JT
RENPTVAJIyBBZGQgQlNEIGNvbXByZXNzaW9uIHRvIHBwcCBkZXZpY2UKI29wdGlvbnMgCVBQUF9E
RUZMQVRFCSMgQWRkIGRlZmxhdGUgKGxpYnopIGNvbXByZXNzaW9uIHRvIHBwcCBkZXZpY2UKI29w
dGlvbnMgCVBQUF9GSUxURVIJIyBBZGQgYWN0aXZlIGZpbHRlcnMgZm9yIHBwcCAodmlhIGJwZikK
CiNvcHRpb25zIAlBTFRRCQkjIE1hbmlwdWxhdGUgbmV0d29yayBpbnRlcmZhY2VzJyBvdXRwdXQg
cXVldWVzCiNvcHRpb25zIAlBTFRRX0JMVUUJIyBTdG9jaGFzdGljIEZhaXIgQmx1ZQojb3B0aW9u
cyAJQUxUUV9DQlEJIyBDbGFzcy1CYXNlZCBRdWV1ZWluZwojb3B0aW9ucyAJQUxUUV9DRE5SCSMg
RGlmZnNlcnYgVHJhZmZpYyBDb25kaXRpb25lcgojb3B0aW9ucyAJQUxUUV9GSUZPUQkjIEZpcnN0
LUluIEZpcnN0LU91dCBRdWV1ZQojb3B0aW9ucyAJQUxUUV9GTE9XVkFMVkUJIyBSRUQvZmxvdy12
YWx2ZSAocmVkLXBlbmFsdHktYm94KQojb3B0aW9ucyAJQUxUUV9IRlNDCSMgSGllcmFyY2hpY2Fs
IEZhaXIgU2VydmljZSBDdXJ2ZQojb3B0aW9ucyAJQUxUUV9MT0NBTFEJIyBMb2NhbCBxdWV1ZWlu
ZyBkaXNjaXBsaW5lCiNvcHRpb25zIAlBTFRRX1BSSVEJIyBQcmlvcml0eSBRdWV1ZWluZwojb3B0
aW9ucyAJQUxUUV9SRUQJIyBSYW5kb20gRWFybHkgRGV0ZWN0aW9uCiNvcHRpb25zIAlBTFRRX1JJ
TwkjIFJFRCB3aXRoIElOL09VVAojb3B0aW9ucyAJQUxUUV9XRlEJIyBXZWlnaHRlZCBGYWlyIFF1
ZXVlaW5nCgoKCiMjIyMgTWFpbiBidXMgYW5kIENQVSAuLiBhbGwgc3lzdGVtcy4KbWFpbmJ1czAg
YXQgcm9vdApjcHUwCWF0IG1haW5idXMwCgojIyMjIEJ1cyB0eXBlcyBmb3VuZCBvbiBTUEFSQyBz
eXN0ZW1zLgoKc2J1czAJYXQgbWFpbmJ1czAJCQkJIyBzdW40YwoKIyMgU0J1cyBleHBhbmRlciBi
b3gKI3hib3gqCWF0IHNidXM/IHNsb3QgPyBvZmZzZXQgPwojc2J1cyoJYXQgeGJveD8KCiMjIFNC
dXMgdG8gUENNQ0lBIGJyaWRnZQojbmVsbCoJYXQgc2J1cz8gc2xvdCA/IG9mZnNldCA/CQkjIFBD
TUNJQSBicmlkZ2UKI3BjbWNpYSoJYXQgbmVsbD8KCiMjIyMgU3RhbmRhcmQgc3lzdGVtIGRldmlj
ZXMgLS0gYWxsIHJlcXVpcmVkIGZvciBhIGdpdmVuIGFyY2hpdGVjdHVyZQoKIyMgQXV4aWxpYXJ5
IHN5c3RlbSByZWdpc3RlcnMgb24gc3VuNGMgYW5kIHN1bjRtCmF1eHJlZzAJYXQgbWFpbmJ1czAJ
CQkJIyBzdW40YwoKIyMgTW9zdGVrIGNsb2NrIGZvdW5kIG9uIDQvMzAwLCBzdW40Yywgc3VuNG0g
YW5kIHN1bjRkIHN5c3RlbXMuCiMjIFRoZSBNb3N0ZWsgY2xvY2sgTlZSQU0gaXMgdGhlICJlZXBy
b20iIG9uIHN1bjQvMzAwIHN5c3RlbXMuCmNsb2NrMAlhdCBtYWluYnVzMAkJCQkjIHN1bjRjCgoj
IyBNZW1vcnkgZXJyb3IgcmVnaXN0ZXJzLgptZW1yZWcwCWF0IG1haW5idXMwCQkJCSMgc3VuNGMK
CiMjIFRpbWVyIGNoaXAgZm91bmQgb24gNC8zMDAsIHN1bjRjLCBhbmQgc3VuNG0gc3lzdGVtcy4K
dGltZXIwCWF0IG1haW5idXMwCQkJCSMgc3VuNGMKCiMjIyMgU2VyaWFsIHBvcnQgY29uZmlndXJh
dGlvbgoKIyMgWmlsb2cgODUzMCBzZXJpYWwgY2hpcHMuICBFYWNoIGhhcyB0d28tY2hhbm5lbHMu
CiMjIHpzMCBpcyB0dHlhIGFuZCB0dHliLiAgenMxIGlzIHRoZSBrZXlib2FyZCBhbmQgbW91c2Uu
CnpzMAlhdCBtYWluYnVzMAkJCQkJIyBzdW40Ywp6c3R0eTAJYXQgenMwIGNoYW5uZWwgMAkJCQkj
IHR0eWEKenN0dHkxCWF0IHpzMCBjaGFubmVsIDEJCQkJIyB0dHliCgp6czEJYXQgbWFpbmJ1czAJ
CQkJCSMgc3VuNGMKCiMgb2xkIGtiZCBhbmQgbW91c2UgYXR0YWNobWVudHMKI2tiZDAJYXQgenMx
IGNoYW5uZWwgMAkJCQkjIGtleWJvYXJkCiNtczAJYXQgenMxIGNoYW5uZWwgMQkJCQkjIG1vdXNl
CnpzdHR5KglhdCB6cz8KCiMgdGhlc2UgYXJlIGZvciB3c2NvbnMKa2JkMAlhdCB6c3R0eT8KbXMw
CWF0IHpzdHR5Pwp3c2tiZCoJYXQgd3NrYmRkZXY/CndzbW91c2UqIAlhdCB3c21vdXNlZGV2PwoK
IyBQYXJhbGxlbCBwb3J0LgojYnBwKglhdCBzYnVzPyBzbG90PyBvZmZzZXQgPwoKIyMgTWFnbWEg
U2VyaWFsL1BhcmFsbGVsIGRyaXZlcgojbWFnbWEqCWF0IHNidXM/IHNsb3QgPyBvZmZzZXQgPwoj
bXR0eSoJYXQgbWFnbWE/CiNtYnBwKglhdCBtYWdtYT8KCiMjIFNVTlcsc3BpZiBTZXJpYWwvUGFy
YWxsZWwgZHJpdmVyCiNzcGlmKiAgYXQgc2J1cz8gc2xvdCA/IG9mZnNldCA/CiNzdHR5KiAgYXQg
c3BpZj8KI3NicHAqICBhdCBzcGlmPwoKIyMgUENNQ0lBIHNlcmlhbCBpbnRlcmZhY2VzCiNjb20q
CWF0IHBjbWNpYT8KI3BjbWNvbSoJYXQgcGNtY2lhPwojY29tKglhdCBwY21jb20/CgojIyMjIERp
c2sgY29udHJvbGxlcnMgYW5kIGRpc2tzCgojCgojIyBUaGUgZm9sbG93aW5nIGZsYWdzIG1heSBi
ZSBzZXQgZm9yIHRoZSBOQ1I1M2M5NCBiYXNlZCBlc3AgZHJpdmVyOgojIwliaXRzIDAtNzogIGRp
c2FibGUgZGlzY29ubmVjdC9yZXNlbGVjdCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgdGFyZ2V0CiMj
CWJpdHMgOC0xNTogZGlzYWJsZSBzeW5jaHJvbm91cyBuZWdvdGlhdGlvbiBmb3IgdGFyZ2V0IFti
aXQtOF0KCiMjIHN1bjQvMzAwLCBzdW40Yywgc3VuNG0gb24tYm9hcmQgU0NTSSwgYW5kIEZTQkUv
UyBTQnVzIFNDU0kgY2FyZHMuCiMjIEJvdGggYGRtYScgYW5kIGBlc3AnIGFyZSBuZWVkZWQgaW4g
YWxsIGNhc2VzLgojIyBUd28ga2luZHMgb2YgYWRkaXRpb25hbCBTQnVzIFNDU0kgaW50ZXJmYWNl
cyBhcmUgYXZhaWxhYmxlLiAgT25lIHVzZXMKIyMgImVzcCBhdCBzYnVzIiBsaWtlIHRoZSBzdW40
YyBvbi1ib2FyZDsgdGhlIG90aGVyIHVzZXMgImVzcCBhdCBkbWEiLgoKZG1hMAlhdCBzYnVzMCBz
bG90ID8gb2Zmc2V0ID8JCQkjIHN1bjRjL3N1bjRtCmVzcDAJYXQgc2J1czAgc2xvdCA/IG9mZnNl
dCA/IGZsYWdzIDB4MDAwMAkJIyBzdW40Ywplc3AwCWF0IGRtYTAgZmxhZ3MgMHgwMDAwCQkJCSMg
c3VuNG0KCiMgRlNCRS9TIFNDU0kgJiBTdW5Td2lmdCBTYnVzIEZBUzM2NgpkbWEqCWF0IHNidXM/
IHNsb3QgPyBvZmZzZXQgPwkJCSMgU0J1cwplc3AqCWF0IHNidXM/IHNsb3QgPyBvZmZzZXQgPyBm
bGFncyAweDAwMDAJCSMgU0J1cwplc3AqCWF0IGRtYT8gZmxhZ3MgMHgwMDAwCQkJCSMgU0J1cwoK
c2NzaWJ1cyogYXQgZXNwPwoKIyMgUENNQ0lBIFNDU0kgY29udHJvbGxlcnMKI2FpYyoJYXQgcGNt
Y2lhPwojc3BjKglhdCBwY21jaWE/CiNzY3NpYnVzKiBhdCBhaWM/CiNzY3NpYnVzKiBhdCBzcGM/
CgoKIyMgVGhlc2UgZW50cmllcyBmaW5kIGRldmljZXMgb24gYWxsIFNDU0kgYnVzc2VzIGFuZCBh
c3NpZ24KIyMgdW5pdCBudW1iZXJzIGR5bmFtaWNhbGx5LgpzZCoJYXQgc2NzaWJ1cz8gdGFyZ2V0
ID8gbHVuID8JCSMgU0NTSSBkaXNrcwpzdCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMg
U0NTSSB0YXBlcwpjZCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMgU0NTSSBDRC1ST01z
CiNjaCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMgU0NTSSBjaGFuZ2VyIGRldmljZXMK
I3NzKglhdCBzY3NpYnVzPyB0YXJnZXQgPyBsdW4gPwkJIyBTQ1NJIHNjYW5uZXJzCiNzZXMqCWF0
IHNjc2lidXM/IHRhcmdldCA/IGx1biA/CQkjIFNDU0kgU0VTL1NBRi1URQojdWsqCWF0IHNjc2li
dXM/IHRhcmdldCA/IGx1biA/CQkjIHVua25vd24gU0NTSQoKCiMjIEZsb3BweSBjb250cm9sbGVy
IGFuZCBkcml2ZSBmb3VuZCBvbiBTUEFSQ3N0YXRpb25zLgoKI2ZkYzAJYXQgbWFpbmJ1czAJCQkJ
IyBzdW40YyBjb250cm9sbGVyCiNmZCoJYXQgZmRjMAkJCQkJIyB0aGUgZHJpdmUgaXRzZWxmCgoj
IyBQQ01DSUEgSURFIGNvbnRyb2xsZXJzCiN3ZGMqCWF0IHBjbWNpYT8KI2F0YWJ1cyogYXQgYXRh
Pwojd2QqCWF0IGF0YWJ1cz8gZHJpdmUgPyBmbGFncyAweDAwMDAKCiMjIEEgZGlzay1saWtlIGlu
dGVyZmFjZSB0byBmaWxlcy4gIENhbiBiZSB1c2VkIHRvIGNyZWF0ZSBmbG9wcHksIENELAojIyBt
aW5pcm9vdCBpbWFnZXMsIGV0Yy4KCnBzZXVkby1kZXZpY2UJdm5kCQojb3B0aW9ucyAJVk5EX0NP
TVBSRVNTSU9OCQkjIGNvbXByZXNzZWQgdm5kKDQpCgoKIyMgTWVtb3J5IGRpc2sgZGV2aWNlLCB1
c2VkIG9uIGJvb3QgZmxvcHBpZXMgd2l0aCBjb21wcmVzc2VkCiMjIGtlcm5lbC1wbHVzLXJvb3Qt
ZGlzayBpbWFnZXMuCgojcHNldWRvLWRldmljZQltZAkKCgojIyMjIE5ldHdvcmsgaW50ZXJmYWNl
cwoKIyMgTEFOQ0UgRXRoZXJuZXQgLSBhbiBBTUQgNzk5MCBMQU5DRSBiZWhpbmQgc3BlY2lhbGl6
ZWQgRE1BIGdsdWUKIyMgVGhyZWUgZmxhdm9ycyBvZiBhZGRpdGlvbmFsIFNCdXMgZXRoZXJuZXRz
IGFyZSBhdmFpbGFibGUuICBPbmUgYXR0YWNoZXMKIyMgZGlyZWN0bHkgbGlrZSB0aGUgc3VuNGMg
b24tYm9hcmQsIG9uZSB1c2VzIHRoZSBsZWRtYSBkZXZpY2UgbGlrZSB0aGUKIyMgc3VuNG0gb24t
Ym9hcmQsIGFuZCBvbmUgdXNlcyB0aGUgbGVidWZmZXIgZGV2aWNlLgoKbGUwCQlhdCBzYnVzMCBz
bG90ID8gb2Zmc2V0ID8JCSMgc3VuNGMgb24tYm9hcmQKbGUqCQlhdCBzYnVzPyBzbG90ID8gb2Zm
c2V0ID8JCSMgU0J1cwpsZWRtYSoJCWF0IHNidXM/IHNsb3QgPyBvZmZzZXQgPwkJIyBTQnVzCmxl
KgkJYXQgbGVkbWE/CQkJCSMgU0J1cwpsZWJ1ZmZlcjAJYXQgc2J1cz8gc2xvdCA/IG9mZnNldCA/
CQkjIFNCdXMKbGUwCQlhdCBsZWJ1ZmZlcj8JCQkJIyBTQnVzCmxlYnVmZmVyKglhdCBzYnVzPyBz
bG90ID8gb2Zmc2V0ID8JCSMgU0J1cwpsZSoJCWF0IGxlYnVmZmVyPwkJCQkjIFNCdXMKCgojIyBR
dWFkIEV0aGVybmV0IENvbnRyb2xsZXIgd2l0aCBCaWdNYWMgKGJlLCAxMC8xMDBNQmQpIGFuZCBN
YWNlIEV0aGVybmV0CiMjIChxZSwgMTBNQmQpIGF0dGFjaGVkLgpxZWMqCWF0IHNidXM/IHNsb3Qg
PyBvZmZzZXQgPwkJIyBRdWFkIEV0aGVybmV0IENvbnRyb2xsZXIKI2JlKglhdCBxZWM/CQkJCQkj
IEJpZ01hYyBFdGhlcm5ldCAoMTAvMTAwTUJkKQpxZSoJYXQgcWVjPwkJCQkJIyBNYWNlIEV0aGVy
bmV0ICgxME1CZCkKCiMjIEhhcHB5IE1lYWwgRXRoZXJuZXQKI2htZSoJYXQgc2J1cz8gc2xvdCA/
IG9mZnNldCA/CgojIFBDTUNJQSBldGhlcm5ldCBkZXZpY2VzCiNlcCoJYXQgcGNtY2lhPwojbWJl
KglhdCBwY21jaWE/CiNuZSoJYXQgcGNtY2lhPwojc20qCWF0IHBjbWNpYT8KCiMjIFBDTUNJQSB3
YXZlbGFuIGNhcmQKI3dpKglhdCBwY21jaWE/IGZ1bmN0aW9uID8JCSMgTHVjZW50IFdhdmVMYW4g
SUVFRSAoODAyLjExKQoKIyBNSUkvUEhZIHN1cHBvcnQKI2V4cGh5KglhdCBtaWk/IHBoeSA/CQkJ
IyAzQ29tIGludGVybmFsIFBIWXMKI2ljc3BoeSoJYXQgbWlpPyBwaHkgPwkJCSMgSW50ZWdyYXRl
ZCBDaXJjdWl0IFN5c3RlbXMgSUNTMTg5eAojaW5waHkqCWF0IG1paT8gcGh5ID8JCQkjIEludGVs
IDgyNTU1IFBIWXMKI2x4dHBoeSoJYXQgbWlpPyBwaHkgPwkJCSMgTGV2ZWwgT25lIExYVC05NzAg
UEhZcwojbnNwaHkqCWF0IG1paT8gcGh5ID8JCQkjIE5TODM4NDAgUEhZcwojcXNwaHkqCWF0IG1p
aT8gcGh5ID8JCQkjIFF1YWxpdHkgU2VtaWNvbmR1Y3RvciBRUzY2MTIgUEhZcwojc3FwaHkqCWF0
IG1paT8gcGh5ID8JCQkjIFNlZXEgODAyMjAvODAyMjEvODAyMjMgUEhZcwojdGxwaHkqCWF0IG1p
aT8gcGh5ID8JCQkjIFRodW5kZXJMQU4gUEhZcwojdWtwaHkqCWF0IG1paT8gcGh5ID8JCQkjIGdl
bmVyaWMgdW5rbm93biBQSFlzCgojIyBMb29wYmFjayBuZXR3b3JrIGludGVyZmFjZTsgcmVxdWly
ZWQKcHNldWRvLWRldmljZQlsb29wCgojIyBCZXJrZWxleSBQYWNrZXQgRmlsdGVyLCByZXF1aXJl
ZCB0byBydW4gUkFSUEQuICBBIGdlbmVyaWMgQy1sYW5ndWFnZQojIyBpbnRlcmZhY2UgdGhhdCBh
bGxvd3Mgc2VsZWN0aXZlIGV4YW1pbmluZyBvZiBpbmNvbWluZyBwYWNrZXRzLgpwc2V1ZG8tZGV2
aWNlCWJwZmlsdGVyCgojIyMjIEF1ZGlvIGFuZCB2aWRlbyBkZXZpY2VzCgojIyAvZGV2L2F1ZGlv
IHN1cHBvcnQgKGBhdWRpb2FtZCcgcGx1cyBgYXVkaW8nKQojIwphdWRpb2FtZDAJYXQgbWFpbmJ1
czAJCQkJIyBzdW40YwphdWRpbyoJCWF0IGF1ZGlvYnVzPwoKIyMgU3VuICJid3R3byIgYmxhY2sg
YW5kIHdoaXRlIGZyYW1lYnVmZmVyLCBmb3VuZCBvbiBzdW40LCBzdW40YywgYW5kIHN1bjRtCiMj
IHN5c3RlbXMuICBJZiB5b3VyIHN1bjQgc3lzdGVtIGhhcyBhIGNnZm91ciBpbnN0YWxsZWQgaW4g
dGhlIFA0IHNsb3QsCiMjIHRoZSBQNCBlbnRyaWVzIGZvciAiYnd0d28iIHdpbGwgYXR0YWNoIHRv
IHRoZSBvdmVybGF5IHBsYW5lIG9mIHRoZQojIyAiY2dmb3VyIi4KCmJ3dHdvMAkJYXQgc2J1czAg
c2xvdCA/IG9mZnNldCA/CQkjIHN1bjRjIGFuZCBzdW40bQpid3R3byoJCWF0IHNidXM/IHNsb3Qg
PyBvZmZzZXQgPwkJIwoKIyMgU3VuICJjZ3RocmVlIiBTYnVzIGNvbG9yIGZyYW1lYnVmZmVyCmNn
dGhyZWUwCWF0IHNidXM/IHNsb3QgPyBvZmZzZXQgPwpjZ3RocmVlKglhdCBzYnVzPyBzbG90ID8g
b2Zmc2V0ID8KCiMjIFN1biAiY2dzaXgiIGFjY2VsZXJhdGVkIGNvbG9yIGZyYW1lYnVmZmVyLgpj
Z3NpeDAJCWF0IHNidXM/IHNsb3QgPyBvZmZzZXQgPwpjZ3NpeCoJCWF0IHNidXM/IHNsb3QgPyBv
ZmZzZXQgPwoKIyMgU3VuIENHMTIgLyBNYXRyb3ggU0czIGFjY2VsZXJhdGVkIDI0Yml0IGZyYW1l
YnVmZmVyCmNndHdlbHZlKglhdCBzYnVzPyBzbG90ID8gb2Zmc2V0ID8KIyB0aGUgZHJpdmVyIGNh
biB1c2UgdGhlIGNvbG9yIGZyYW1lYnVmZmVyIG9yIHRoZSBtb25vY2hyb21lIG92ZXJsYXkKIyB0
aGUgbGF0dGVyIGlzIGZhc3RlcgpvcHRpb25zIAlDRzEyX0NPTE9SCgojIGdlbmVyaWMgZnJhbWVi
dWZmZXIgY29uc29sZQpnZW5mYioJYXQgc2J1cz8gc2xvdCA/IG9mZnNldCA/CgojIG1ha2Ugc3Vy
ZSB3c2Rpc3BsYXkwIGlzIHRoZSBjb25zb2xlCndzZGlzcGxheTAJYXQgd3NlbXVsZGlzcGxheWRl
dj8gY29uc29sZSAxCndzZGlzcGxheSoJYXQgd3NlbXVsZGlzcGxheWRldj8KCiMjIyMgT3RoZXIg
ZGV2aWNlIGNvbmZpZ3VyYXRpb24KCiMjIFBzZXVkbyB0dHlzLCByZXF1aXJlZCBmb3IgbmV0d29y
ayBsb2dpbnMgYW5kIHByb2dyYW1zIGxpa2Ugc2NyZWVuLgoKcHNldWRvLWRldmljZQlwdHkJCQkj
IHBzZXVkby10ZXJtaW5hbHMKCiMjIFJhbmRvbSBkZXZpY2UsIHVzZWQgdG8gaW1wbGVtZW50IC9k
ZXYvcmFuZG9tIChhIHNvdXJjZSBvZiByYW5kb20gbm9pc2UpLAojIyBhbmQgZ2VuZXJhdGUgcmFu
ZG9tbmVzcyBmb3Igc29tZSBrZXJuZWwgZm9ybXVsYWUuCgoKIyBhIHBzZXVkbyBkZXZpY2UgbmVl
ZGVkIGZvciBDb2RhCSMgYWxzbyBuZWVkcyBDT0RBIChhYm92ZSkKI3BzZXVkby1kZXZpY2UJdmNv
ZGEJCQkjIGNvZGEgbWluaWNhY2hlIDwtPiB2ZW51cyBjb21tLgoKcHNldWRvLWRldmljZQljbG9j
a2N0bAkJIyB1c2VyIGNvbnRyb2wgb2YgY2xvY2sgc3Vic3lzdGVtCiNwc2V1ZG8tZGV2aWNlCWRy
dmN0bAkJCSMgdXNlciBjb250cm9sIG9mIGRyaXZlIHN1YnN5c3RlbQojcHNldWRvLWRldmljZQlr
c3ltcwkJCSMgL2Rldi9rc3ltcwojcHNldWRvLWRldmljZQlmc3MJCQkjIGZpbGUgc3lzdGVtIHNu
YXBzaG90IGRldmljZQpwc2V1ZG8tZGV2aWNlCXdzbXV4CQkJIyBtb3VzZSBhbmQga2V5Ym9hcmQg
bXVsdGlwbGV4b3IKcHNldWRvLWRldmljZQl3c2ZvbnQKI3BzZXVkby1kZXZpY2UJcHV0dGVyCQkJ
IyBmb3IgcHVmZnMgYW5kIHB1ZApwc2V1ZG8tZGV2aWNlIAlzd3dkb2cJCQkjIHNvZnR3YXJlIHdh
dGNoZG9nIHRpbWVyIC0tIHN3d2RvZyg0KQoKaW5jbHVkZSAiZGV2L3ZlcmlleGVjLmNvbmZpZyIK
CiNvcHRpb25zIFBBWF9NUFJPVEVDVD0wCQkJIyBQYVggbXByb3RlY3QoMikgcmVzdHJpY3Rpb25z
CgkJCQkJIyAoZm9yIHN0YXRpYyBiaW5hcmllcyBvbmx5IGZvciBub3cpCgojIFB1bGwgaW4gb3B0
aW9uYWwgbG9jYWwgY29uZmlndXJhdGlvbiAtIGFsd2F5cyBhdCBlbmQKY2luY2x1ZGUJImFyY2gv
c3BhcmMvY29uZi9HRU5FUklDLmxvY2FsIgo=
--00000000000018af86064fd8d1b7--