Subject: 2.0_BETA weirdness (was Re: 1.6.2 weirdness)
To: Andrey Petrov <petrov@NetBSD.org>
From: ali (Anders Lindgren) <dat94ali@ludat.lth.se>
List: port-sparc64
Date: 09/14/2004 14:54:17
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-326116574-1095166457=:4712
Content-Type: TEXT/PLAIN; charset=US-ASCII

Ok, I updated my box to 2.0_BETA from releng.netbsd.org and saw the exact
same behaviour within a week. Sockets go silent and trying to create a new
process freezes that pty/shell, and after break into ddb I can't reboot.

On Thu, 26 Aug 2004, Andrey Petrov wrote:

> On Thu, Aug 19, 2004 at 01:17:05AM +0200, ali (Anders Lindgren) wrote:
> > Anyone familiar with the sleep sleeps forever bug? Does this sound like
> > it?
> >
> > Tonight I had the serial console available when it started acting weird
> > again: I was logged in via ssh but couldn't run su -- I never got a
> > password prompt. Logged in fine as root on the serial console and tried to
> > run top, but it never repainted the screen after displaying the processes
> > so I couldn't see the load. It did however respond to the q key, and I
> > could see it had lots (78 out of ~111MB) of free physical RAM. Sshd
> > responsiveness seemed to degrade until I finally BREAKed it on the serial
> > console, and dropped into ddb. After typing reboot, I got:
> >
> > db> reboot
> > syncing disks... hme0: status=30001<GOTFRAME,RXTOHOST,NORXD>
> > hme0: status=20001<GOTFRAME,NORXD>
> >
> > ..but no reboot! At this point the serial console is stone dead. The damn
> > thing doesn't even respond to BREAKs anymore, and certainly won't drop me
>
> I'd say that it looks very much like locking problem, reboot calls
> sync and if file system locks are acquired it'll loop there, but I expect
> it to be able to break to ddb, strange.
>
> It would be interesting to see stack trace (well it's always interesting)
> next time something happens. t or bt ddb commands.
>
> > into the OFW prompt or back into ddb or anything. The box is dead.
> > Almost. Imagine my surprise as I notice that it STILL responds to ping,
> > and gives me (in a TCP sense) a connection on the ssh port! I'm not sure
> > how this is possible after a reboot command in the kernel debugger, but
> > there you go.
> >
>
> That one more argument that the kernel was locked but not crashed,
> what you saw was interrupt handlers. If you can experiment on that
> machine I'd suggest to try LOCKDEBUG kernel option.

As before with 1.6.2, the box didn't seem to crash. I started a clean
build of exim-exiscan + perl 5.8.4 last night (which is what it was doing
when it froze) and this appears to trigger the bug. This time it was
running a kernel with DEBUG, DIAGNOSTICS, DDB_ONPANIC and LOCKDEBUG
options from CVS sources as of yesterday evening, and today when I checked
on the machine (remotely; serial console), it was in ddb.

I'm not quite sure where to go from here, but here's the "bt" output:

-------8<------------8<-------------
db> bt
ltsleep(1c82dc0, 204, 11bc680, 0, 605b198, 1891800) at netbsd:ltsleep+0x664
uvmfault_anonget(0, 61f7190, 605b190, 11bc400, 1897800, 0) at netbsd:uvmfault_anonget+0x13c
uvm_fault(6059bb8, 44202000, ffffffffffffffff, 5ed2da0, 1, 3) at netbsd:uvm_fault+0x420
data_access_fault(5ed2f90, 30, 100b0d4, 441fc076, 11081f, 1814c00) at netbsd:data_access_fault+0x2d4
?(5ed0028, 441fdb80, 78, 5ed0000, 100b168, 1c9edc0) at 0x1008e40
rwindow_save(441fdb80, 0, 0, 65a8070, 3e2a000, 2000) at netbsd:rwindow_save+0xcc

cpu_getmcontext(5e92600, 65a80a0, 65a8060, 1e74750, 5ed3440, 1891800) at netbsd:cpu_getmcontext+0x10
sa_upcall_getstate(65a8060, 5e92600, 372, 11b2568, 65a8020, 5e92c28) at netbsd:sa_upcall_getstate+0x10
sa_upcall0(65a8020, 2, 5e92600, 0, 0, 0) at netbsd:sa_upcall0+0x98
sa_switch(60825b0, 6214000, 1ca, 11b84c0, 1, 1891800) at netbsd:sa_switch+0x2a4
ltsleep(2199e70, 11, 0, 0, 2199e80, 0) at netbsd:ltsleep+0x560
biowait(2199e70, 2199e70, 3, 11b2568, 5ed39cc, 1891800) at netbsd:biowait+0x50
uvm_swap_io(0, db0, 1, 100000, 1897990, 1c9edc0) at netbsd:uvm_swap_io+0x1a8
uvm_swap_get(5, 11bf000, 1, 11bc4a8, 46, 0) at netbsd:uvm_swap_get+0x5c
uvmfault_anonget(5ed3ca0, 61f7190, 605b190, 11bc400, 1897800, 0) at netbsd:uvmfa
ult_anonget+0x5ac
uvm_fault(6059bb8, 44202000, ffffffffffffffff, 5ed3ce0, 1, 3) at netbsd:uvm_fault+0x420
data_access_fault(5ed3ed0, 30, 407642e0, 441fc076, 800805, 1814c00) at netbsd:data_access_fault+0x2d4
?(251724, badcafe, badcafe, badcafe, badcafe, badcafe) at 0x1008e40
ddb_regs(ffffffffffffffff, ffffffffffffffff, ffffffffffffffff,
ffffffffffffffff,
 ffffffffffffffff, ffffffffffffffff) at 0x407642c8
-------8<------------8<-------------

As per previous advise I tried to call softclock manually before rebooting
the machine. This appears to have worked this time (it didn't with the
original 2.0_BETA GENERIC kernel; releng build from 20040905 iirc).
Reboot gave this output:

-------8<------------8<-------------
db> call softclock
0
db> call softclock
0
db> reboot
syncing disks...
simple_lock: lock held
lock: 0x1810af8, currently at: ../../../../kern/kern_synch.c:1159
last locked: ../../../../kern/kern_synch.c:421
last unlocked: ../../../../kern/kern_sa.c:1428
hme0: status=30003<GOTFRAME,RCNTEXP,RXTOHOST,NORXD>
done
rebooting

-------8<------------8<-------------

...and here's an error I found in dmesg.boot -- what appears to have been
a failed attempt to reboot after the build of the pkgs had finished (both
are registered as installed so it seems to have finished ok).
(entire dmesg.boot is attached)


-------8<------------8<-------------
init: copying out path `/sbin/init' 11
Alignment error: pid=5294.1 comm=sh dsfsr=00000000:00800001 dsfar=0:9
isfsr=0008
pid 5294 (sh), uid 0: exited on signal 10 (core dumped)
panic: ltsleep: l_stat 3 != LSONPROC
kdb breakpoint at 118b9e0
syncing disks... hme0: status=30003<GOTFRAME,RCNTEXP,RXTOHOST,NORXD>

-------8<------------8<-------------

I am not sure why it says "mountroot: trying nfs..." since I removed all
NFS boot options from the config (also attached), but..

Anyway, I hope this information can be of use to anyone. If there's
anything else I can do to provide more useful information, please let me
know.

-- 
/ali
:wq

---559023410-326116574-1095166457=:4712
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="dmesg.boot"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.43.0409141454170.4712@bach>
Content-Description: 
Content-Disposition: attachment; filename="dmesg.boot"

Y29uc29sZSBpcyAvc2J1c0AxZiwwL3pzQGYsMTEwMDAwMDphDQpDb3B5cmln
aHQgKGMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIw
MDIsIDIwMDMsIDIwMDQNCiAgICBUaGUgTmV0QlNEIEZvdW5kYXRpb24sIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQpDb3B5cmlnaHQgKGMpIDE5ODIs
IDE5ODYsIDE5ODksIDE5OTEsIDE5OTMNCiAgICBUaGUgUmVnZW50cyBvZiB0
aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4NCg0KTmV0QlNEIDIuMF9CRVRBIChHRU5FUklDKSAjMDogU2F0IFNl
cCAgNCAyMzowMTo1OSBVVEMgMjAwNA0KCWF1dG9idWlsZEB0Z20ubmV0YnNk
Lm9yZzovYXV0b2J1aWxkL25ldGJzZC0yLTAvc3BhcmM2NC9PQkovYXV0b2J1
aWxkL25ldGJzZC0yLTAvc3JjL3N5cy9hcmNoL3NwYXJjNjQvY29tcGlsZS9H
RU5FUklDDQp0b3RhbCBtZW1vcnkgPSAxMjggTUINCmF2YWlsIG1lbW9yeSA9
IDExNCBNQg0KYm9vdHBhdGg6IC9zYnVzQDFmLDAvZXNwZG1hQGUsODQwMDAw
MC9lc3BAZSw4ODAwMDAwL3NkQDAsMA0KbWFpbmJ1czAgKHJvb3QpOiBTVU5X
LFVsdHJhLTE6IGhvc3RpZCA4MGMwZmZlZQ0KY3B1MCBhdCBtYWluYnVzMDog
U1VOVyxVbHRyYVNQQVJDIEAgMTQzIE1IeiwgdmVyc2lvbiAwIEZQVQ0KY3B1
MDogMzJLIGluc3RydWN0aW9uICgzMiBiL2wpLCAxNksgZGF0YSAoMzIgYi9s
KSwgNTEySyBleHRlcm5hbCAoNjQgYi9sKQ0KdGltZXIwIGF0IG1haW5idXMw
IGFkZHIgMHhmZmZjM2MwMCBpcnEgdmVjdG9ycyA3ZjAgYW5kIDdmMQ0Kc2J1
czAgYXQgbWFpbmJ1czAgYWRkciAweGZmZmNjMDAwOiBjbG9jayA9IDI1IE1I
eg0KRFZNQSBtYXA6IGZmODAwMDAwIHRvIGZmZmZlMDAwDQpJT1RTQjogM2M2
MDAwIHRvIDNjODAwMA0KYXVkaW9jczAgYXQgc2J1czAgc2xvdCAxMyBvZmZz
ZXQgMHhjMDAwMDAwIHZlY3RvciAyNCBpcGwgODogQ1M0MjMxQQ0KYXVkaW8w
IGF0IGF1ZGlvY3MwOiBmdWxsIGR1cGxleA0KYXV4aW8wIGF0IHNidXMwIHNs
b3QgMTUgb2Zmc2V0IDB4MTkwMDAwMA0KZmxhc2hwcm9tIGF0IHNidXMwIHNs
b3QgMTUgb2Zmc2V0IDB4MCBub3QgY29uZmlndXJlZA0KU1VOVyxmZHR3byBh
dCBzYnVzMCBzbG90IDE1IG9mZnNldCAweDE0MDAwMDAgdmVjdG9yIDI5IGlw
bCAxMSBub3QgY29uZmlndXJlZA0KY2xvY2swIGF0IHNidXMwIHNsb3QgMTUg
b2Zmc2V0IDB4MTIwMDAwMDogbWs0OHQ1OQ0KenMwIGF0IHNidXMwIHNsb3Qg
MTUgb2Zmc2V0IDB4MTEwMDAwMCB2ZWN0b3IgMjggaXBsIDEyIHNvZnRwcmkg
Ng0KenN0dHkwIGF0IHpzMCBjaGFubmVsIDAgKGNvbnNvbGUgaS9vKQ0KenN0
dHkxIGF0IHpzMCBjaGFubmVsIDENCnpzMSBhdCBzYnVzMCBzbG90IDE1IG9m
ZnNldCAweDEwMDAwMDAgdmVjdG9yIDI4IGlwbCAxMiBzb2Z0cHJpIDYNCnpz
dHR5MiBhdCB6czEgY2hhbm5lbCAwDQprYmQwIGF0IHpzdHR5Mg0KenN0dHkz
IGF0IHpzMSBjaGFubmVsIDENCm1zMCBhdCB6c3R0eTMNCnNjIGF0IHNidXMw
IHNsb3QgMTUgb2Zmc2V0IDB4MTMwMDAwMCBub3QgY29uZmlndXJlZA0KU1VO
VyxwbGwgYXQgc2J1czAgc2xvdCAxNSBvZmZzZXQgMHgxMzA0MDAwIG5vdCBj
b25maWd1cmVkDQpkbWEwIGF0IHNidXMwIHNsb3QgMTQgb2Zmc2V0IDB4ODQw
MDAwMDogRE1BIHJldiAyDQplc3AwIGF0IGRtYTAgc2xvdCAxNCBvZmZzZXQg
MHg4ODAwMDAwIHZlY3RvciAyMCBpcGwgMzogRVNQMjAwLCA0ME1IeiwgU0NT
SSBJRCA3DQpzY3NpYnVzMCBhdCBlc3AwOiA4IHRhcmdldHMsIDggbHVucyBw
ZXIgdGFyZ2V0DQpsZWRtYTAgYXQgc2J1czAgc2xvdCAxNCBvZmZzZXQgMHg4
NDAwMDEwOiBETUEgcmV2IDINCmxlMCBhdCBsZWRtYTAgc2xvdCAxNCBvZmZz
ZXQgMHg4YzAwMDAwIHZlY3RvciAyMSBpcGwgNjogYWRkcmVzcyAwODowMDoy
MDpjMDpmZjplZQ0KbGUwOiA4IHJlY2VpdmUgYnVmZmVycywgMiB0cmFuc21p
dCBidWZmZXJzDQpicHAwIGF0IHNidXMwIHNsb3QgMTQgb2Zmc2V0IDB4Yzgw
MDAwMCB2ZWN0b3IgMjIgaXBsIDI6IERNQSByZXYgMg0KaG1lMCBhdCBzYnVz
MCBzbG90IDAgb2Zmc2V0IDB4OGMwMDAwMCB2ZWN0b3IgNCBpcGwgNjogU3Vu
IEhhcHB5IE1lYWwgRXRoZXJuZXQgKFNVTlcsaG1lKQ0KaG1lMDogRXRoZXJu
ZXQgYWRkcmVzcyAwODowMDoyMDpjMDpmZjplZQ0KbnNwaHkwIGF0IGhtZTAg
cGh5IDE6IERQODM4NDAgMTAvMTAwIG1lZGlhIGludGVyZmFjZSwgcmV2LiAx
DQpuc3BoeTA6IDEwYmFzZVQsIDEwYmFzZVQtRkRYLCAxMDBiYXNlVFgsIDEw
MGJhc2VUWC1GRFgsIGF1dG8NCmNnc2l4MCBhdCBzYnVzMCBzbG90IDIgb2Zm
c2V0IDB4MCB2ZWN0b3IgNSBpcGwgNTogU1VOVyw1MDEtMjMyNSwgMTE1MiB4
IDkwMCwgcmV2IDExDQpjZ3NpeDA6IGF0dGFjaGVkIHRvIC9kZXYvZmINCnBj
b25zIGF0IG1haW5idXMwIG5vdCBjb25maWd1cmVkDQpLZXJuZWxpemVkIFJB
SURmcmFtZSBhY3RpdmF0ZWQNCnNjc2lidXMwOiB3YWl0aW5nIDIgc2Vjb25k
cyBmb3IgZGV2aWNlcyB0byBzZXR0bGUuLi4NCnNkMCBhdCBzY3NpYnVzMCB0
YXJnZXQgMCBsdW4gMDogPElCTSwgRENBUzMyMTYwU1VOMi4xRywgUzYwQj4g
ZGlzayBmaXhlZA0Kc2QwOiAyMDYzIE1CLCA4MTg4IGN5bCwgMyBoZWFkLCAx
NzIgc2VjLCA1MTIgYnl0ZXMvc2VjdCB4IDQyMjY3MjUgc2VjdG9ycw0Kc2Qw
OiBzeW5jICgxMDAuMDBucyBvZmZzZXQgMTUpLCA4LWJpdCAoMTAuMDAwTUIv
cykgdHJhbnNmZXJzDQpzZDEgYXQgc2NzaWJ1czAgdGFyZ2V0IDQgbHVuIDA6
IDxJQk0sIEREUlMtMzQ1NjAsIFM5MkE+IGRpc2sgZml4ZWQNCnNkMTogNDM1
NyBNQiwgODM4NyBjeWwsIDUgaGVhZCwgMjEyIHNlYywgNTEyIGJ5dGVzL3Nl
Y3QgeCA4OTI1MDAwIHNlY3RvcnMNCnNkMTogc3luYyAoMTAwLjAwbnMgb2Zm
c2V0IDE1KSwgOC1iaXQgKDEwLjAwME1CL3MpIHRyYW5zZmVycw0Kcm9vdCBv
biBzZDBhIGR1bXBzIG9uIHNkMGINCldBUk5JTkc6IGNsb2NrIGdhaW5lZCAy
IGRheXMgLS0gQ0hFQ0sgQU5EIFJFU0VUIFRIRSBEQVRFIQ0Kcm9vdCBmaWxl
IHN5c3RlbSB0eXBlOiBmZnMNCnN5bmNpbmcgZGlza3MuLi4gZG9uZQ0KY29u
c29sZSBpcyAvc2J1c0AxZiwwL3pzQGYsMTEwMDAwMDphDQpDb3B5cmlnaHQg
KGMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs
IDIwMDMsIDIwMDQNCiAgICBUaGUgTmV0QlNEIEZvdW5kYXRpb24sIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuDQpDb3B5cmlnaHQgKGMpIDE5ODIsIDE5
ODYsIDE5ODksIDE5OTEsIDE5OTMNCiAgICBUaGUgUmVnZW50cyBvZiB0aGUg
VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4NCg0KTmV0QlNEIDIuMF9CRVRBIChERUJVRykgIzA6IFR1ZSBTZXAgMTQg
MDA6MjY6NTMgQ0VTVCAyMDA0DQoJcm9vdEBpZGEuZGYubHRoLnNlOi91c3Iv
c3JjL3N5cy9hcmNoL3NwYXJjNjQvY29tcGlsZS9ERUJVRw0KdG90YWwgbWVt
b3J5ID0gMTI4IE1CDQphdmFpbCBtZW1vcnkgPSAxMTcgTUINCmJvb3RwYXRo
OiAvc2J1c0AxZiwwL2VzcGRtYUBlLDg0MDAwMDAvZXNwQGUsODgwMDAwMC9z
ZEAwLDANCm1haW5idXMwIChyb290KTogU1VOVyxVbHRyYS0xOiBob3N0aWQg
ODBjMGZmZWUNCmNwdTAgYXQgbWFpbmJ1czA6IFNVTlcsVWx0cmFTUEFSQyBA
IDE0MyBNSHosIHZlcnNpb24gMCBGUFUNCmNwdTA6IDMySyBpbnN0cnVjdGlv
biAoMzIgYi9sKSwgMTZLIGRhdGEgKDMyIGIvbCksIDUxMksgZXh0ZXJuYWwg
KDY0IGIvbCkNCnRpbWVyMCBhdCBtYWluYnVzMCBhZGRyIDB4ZmZmYzNjMDAg
aXJxIHZlY3RvcnMgN2YwIGFuZCA3ZjENCnNidXMwIGF0IG1haW5idXMwIGFk
ZHIgMHhmZmZjYzAwMDogY2xvY2sgPSAyNSBNSHoNCkRWTUEgbWFwOiBmZjgw
MDAwMCB0byBmZmZmZTAwMA0KSU9UU0I6IDQzODAwMCB0byA0M2EwMDANClNV
TlcsQ1M0MjMxIGF0IHNidXMwIHNsb3QgMTMgb2Zmc2V0IDB4YzAwMDAwMCB2
ZWN0b3IgMjQgaXBsIDggbm90IGNvbmZpZ3VyZWQNCmF1eGlvMCBhdCBzYnVz
MCBzbG90IDE1IG9mZnNldCAweDE5MDAwMDANCmZsYXNocHJvbSBhdCBzYnVz
MCBzbG90IDE1IG9mZnNldCAweDAgbm90IGNvbmZpZ3VyZWQNClNVTlcsZmR0
d28gYXQgc2J1czAgc2xvdCAxNSBvZmZzZXQgMHgxNDAwMDAwIHZlY3RvciAy
OSBpcGwgMTEgbm90IGNvbmZpZ3VyZWQNCmNsb2NrMCBhdCBzYnVzMCBzbG90
IDE1IG9mZnNldCAweDEyMDAwMDA6IG1rNDh0NTkNCnpzMCBhdCBzYnVzMCBz
bG90IDE1IG9mZnNldCAweDExMDAwMDAgdmVjdG9yIDI4IGlwbCAxMiBzb2Z0
cHJpIDYNCnpzdHR5MCBhdCB6czAgY2hhbm5lbCAwIChjb25zb2xlIGkvbykN
CnpzdHR5MSBhdCB6czAgY2hhbm5lbCAxDQp6czEgYXQgc2J1czAgc2xvdCAx
NSBvZmZzZXQgMHgxMDAwMDAwIHZlY3RvciAyOCBpcGwgMTIgc29mdHByaSA2
DQp6c3R0eTIgYXQgenMxIGNoYW5uZWwgMA0Ka2JkMCBhdCB6c3R0eTINCnpz
dHR5MyBhdCB6czEgY2hhbm5lbCAxDQptczAgYXQgenN0dHkzDQppbnRyX2Vz
dGFibGlzaDogaW50ciByZXVzZWQgN2U4DQpzYyBhdCBzYnVzMCBzbG90IDE1
IG9mZnNldCAweDEzMDAwMDAgbm90IGNvbmZpZ3VyZWQNClNVTlcscGxsIGF0
IHNidXMwIHNsb3QgMTUgb2Zmc2V0IDB4MTMwNDAwMCBub3QgY29uZmlndXJl
ZA0KZG1hMCBhdCBzYnVzMCBzbG90IDE0IG9mZnNldCAweDg0MDAwMDA6IERN
QSByZXYgMg0KZXNwMCBhdCBkbWEwIHNsb3QgMTQgb2Zmc2V0IDB4ODgwMDAw
MCB2ZWN0b3IgMjAgaXBsIDM6IEVTUDIwMCwgNDBNSHosIFNDU0kgSUQgNw0K
c2NzaWJ1czAgYXQgZXNwMDogOCB0YXJnZXRzLCA4IGx1bnMgcGVyIHRhcmdl
dA0KbGVkbWEwIGF0IHNidXMwIHNsb3QgMTQgb2Zmc2V0IDB4ODQwMDAxMDog
RE1BIHJldiAyDQpsZTAgYXQgbGVkbWEwIHNsb3QgMTQgb2Zmc2V0IDB4OGMw
MDAwMCB2ZWN0b3IgMjEgaXBsIDY6IGFkZHJlc3MgMDg6MDA6MjA6YzA6ZmY6
ZWUNCmxlMDogOCByZWNlaXZlIGJ1ZmZlcnMsIDIgdHJhbnNtaXQgYnVmZmVy
cw0KU1VOVyxicHAgYXQgc2J1czAgc2xvdCAxNCBvZmZzZXQgMHhjODAwMDAw
IHZlY3RvciAyMiBpcGwgMiBub3QgY29uZmlndXJlZA0KaG1lMCBhdCBzYnVz
MCBzbG90IDAgb2Zmc2V0IDB4OGMwMDAwMCB2ZWN0b3IgNCBpcGwgNjogU3Vu
IEhhcHB5IE1lYWwgRXRoZXJuZXQgKFNVTlcsaG1lKQ0KaG1lMDogRXRoZXJu
ZXQgYWRkcmVzcyAwODowMDoyMDpjMDpmZjplZQ0KbnNwaHkwIGF0IGhtZTAg
cGh5IDE6IERQODM4NDAgMTAvMTAwIG1lZGlhIGludGVyZmFjZSwgcmV2LiAx
DQpuc3BoeTA6IDEwYmFzZVQsIDEwYmFzZVQtRkRYLCAxMDBiYXNlVFgsIDEw
MGJhc2VUWC1GRFgsIGF1dG8NCmNnc2l4MCBhdCBzYnVzMCBzbG90IDIgb2Zm
c2V0IDB4MCB2ZWN0b3IgNSBpcGwgNTogU1VOVyw1MDEtMjMyNSwgMTE1MiB4
IDkwMCwgcmV2IDExDQpjZ3NpeDA6IGF0dGFjaGVkIHRvIC9kZXYvZmINCnBj
b25zIGF0IG1haW5idXMwIG5vdCBjb25maWd1cmVkDQpzY3NpYnVzMDogd2Fp
dGluZyAyIHNlY29uZHMgZm9yIGRldmljZXMgdG8gc2V0dGxlLi4uDQpzZDAg
YXQgc2NzaWJ1czAgdGFyZ2V0IDAgbHVuIDA6IDxJQk0sIERDQVMzMjE2MFNV
TjIuMUcsIFM2MEI+IGRpc2sgZml4ZWQNCnNkMDogMjA2MyBNQiwgODE4OCBj
eWwsIDMgaGVhZCwgMTcyIHNlYywgNTEyIGJ5dGVzL3NlY3QgeCA0MjI2NzI1
IHNlY3RvcnMNCnNkMDogc3luYyAoMTAwLjAwbnMgb2Zmc2V0IDE1KSwgOC1i
aXQgKDEwLjAwME1CL3MpIHRyYW5zZmVycw0Kc2QxIGF0IHNjc2lidXMwIHRh
cmdldCA0IGx1biAwOiA8SUJNLCBERFJTLTM0NTYwLCBTOTJBPiBkaXNrIGZp
eGVkDQpzZDE6IDQzNTcgTUIsIDgzODcgY3lsLCA1IGhlYWQsIDIxMiBzZWMs
IDUxMiBieXRlcy9zZWN0IHggODkyNTAwMCBzZWN0b3JzDQpzZDE6IHN5bmMg
KDEwMC4wMG5zIG9mZnNldCAxNSksIDgtYml0ICgxMC4wMDBNQi9zKSB0cmFu
c2ZlcnMNCnJvb3Qgb24gc2QwYSBkdW1wcyBvbiBzZDBiDQptb3VudHJvb3Q6
IHRyeWluZyBuZnMuLi4NCm1vdW50cm9vdDogdHJ5aW5nIGZmcy4uLg0Kcm9v
dCBmaWxlIHN5c3RlbSB0eXBlOiBmZnMNCmluaXQ6IGNvcHlpbmcgb3V0IHBh
dGggYC9zYmluL2luaXQnIDExDQpBbGlnbm1lbnQgZXJyb3I6IHBpZD01Mjk0
LjEgY29tbT1zaCBkc2Zzcj0wMDAwMDAwMDowMDgwMDAwMSBkc2Zhcj0wOjkg
aXNmc3I9MDAwMDAwMDA6MDAwMDAwMDAgcGM9MTE2NTE4DQpwaWQgNTI5NCAo
c2gpLCB1aWQgMDogZXhpdGVkIG9uIHNpZ25hbCAxMCAoY29yZSBkdW1wZWQp
DQpwYW5pYzogbHRzbGVlcDogbF9zdGF0IDMgIT0gTFNPTlBST0MNCmtkYiBi
cmVha3BvaW50IGF0IDExOGI5ZTANCnN5bmNpbmcgZGlza3MuLi4gaG1lMDog
c3RhdHVzPTMwMDAzPEdPVEZSQU1FLFJDTlRFWFAsUlhUT0hPU1QsTk9SWEQ+
DQpjb25zb2xlIGlzIC9zYnVzQDFmLDAvenNAZiwxMTAwMDAwOmENCkNvcHly
aWdodCAoYykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg
MjAwMiwgMjAwMywgMjAwNA0KICAgIFRoZSBOZXRCU0QgRm91bmRhdGlvbiwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCkNvcHlyaWdodCAoYykgMTk4
MiwgMTk4NiwgMTk4OSwgMTk5MSwgMTk5Mw0KICAgIFRoZSBSZWdlbnRzIG9m
IHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJl
c2VydmVkLg0KDQpOZXRCU0QgMi4wX0JFVEEgKERFQlVHKSAjMDogVHVlIFNl
cCAxNCAwMDoyNjo1MyBDRVNUIDIwMDQNCglyb290QGlkYS5kZi5sdGguc2U6
L3Vzci9zcmMvc3lzL2FyY2gvc3BhcmM2NC9jb21waWxlL0RFQlVHDQp0b3Rh
bCBtZW1vcnkgPSAxMjggTUINCmF2YWlsIG1lbW9yeSA9IDExNyBNQg0KYm9v
dHBhdGg6IC9zYnVzQDFmLDAvZXNwZG1hQGUsODQwMDAwMC9lc3BAZSw4ODAw
MDAwL3NkQDAsMA0KbWFpbmJ1czAgKHJvb3QpOiBTVU5XLFVsdHJhLTE6IGhv
c3RpZCA4MGMwZmZlZQ0KY3B1MCBhdCBtYWluYnVzMDogU1VOVyxVbHRyYVNQ
QVJDIEAgMTQzIE1IeiwgdmVyc2lvbiAwIEZQVQ0KY3B1MDogMzJLIGluc3Ry
dWN0aW9uICgzMiBiL2wpLCAxNksgZGF0YSAoMzIgYi9sKSwgNTEySyBleHRl
cm5hbCAoNjQgYi9sKQ0KdGltZXIwIGF0IG1haW5idXMwIGFkZHIgMHhmZmZj
M2MwMCBpcnEgdmVjdG9ycyA3ZjAgYW5kIDdmMQ0Kc2J1czAgYXQgbWFpbmJ1
czAgYWRkciAweGZmZmNjMDAwOiBjbG9jayA9IDI1IE1Ieg0KRFZNQSBtYXA6
IGZmODAwMDAwIHRvIGZmZmZlMDAwDQpJT1RTQjogNDM4MDAwIHRvIDQzYTAw
MA0KU1VOVyxDUzQyMzEgYXQgc2J1czAgc2xvdCAxMyBvZmZzZXQgMHhjMDAw
MDAwIHZlY3RvciAyNCBpcGwgOCBub3QgY29uZmlndXJlZA0KYXV4aW8wIGF0
IHNidXMwIHNsb3QgMTUgb2Zmc2V0IDB4MTkwMDAwMA0KZmxhc2hwcm9tIGF0
IHNidXMwIHNsb3QgMTUgb2Zmc2V0IDB4MCBub3QgY29uZmlndXJlZA0KU1VO
VyxmZHR3byBhdCBzYnVzMCBzbG90IDE1IG9mZnNldCAweDE0MDAwMDAgdmVj
dG9yIDI5IGlwbCAxMSBub3QgY29uZmlndXJlZA0KY2xvY2swIGF0IHNidXMw
IHNsb3QgMTUgb2Zmc2V0IDB4MTIwMDAwMDogbWs0OHQ1OQ0KenMwIGF0IHNi
dXMwIHNsb3QgMTUgb2Zmc2V0IDB4MTEwMDAwMCB2ZWN0b3IgMjggaXBsIDEy
IHNvZnRwcmkgNg0KenN0dHkwIGF0IHpzMCBjaGFubmVsIDAgKGNvbnNvbGUg
aS9vKQ0KenN0dHkxIGF0IHpzMCBjaGFubmVsIDENCnpzMSBhdCBzYnVzMCBz
bG90IDE1IG9mZnNldCAweDEwMDAwMDAgdmVjdG9yIDI4IGlwbCAxMiBzb2Z0
cHJpIDYNCnpzdHR5MiBhdCB6czEgY2hhbm5lbCAwDQprYmQwIGF0IHpzdHR5
Mg0KenN0dHkzIGF0IHpzMSBjaGFubmVsIDENCm1zMCBhdCB6c3R0eTMNCmlu
dHJfZXN0YWJsaXNoOiBpbnRyIHJldXNlZCA3ZTgNCnNjIGF0IHNidXMwIHNs
b3QgMTUgb2Zmc2V0IDB4MTMwMDAwMCBub3QgY29uZmlndXJlZA0KU1VOVyxw
bGwgYXQgc2J1czAgc2xvdCAxNSBvZmZzZXQgMHgxMzA0MDAwIG5vdCBjb25m
aWd1cmVkDQpkbWEwIGF0IHNidXMwIHNsb3QgMTQgb2Zmc2V0IDB4ODQwMDAw
MDogRE1BIHJldiAyDQplc3AwIGF0IGRtYTAgc2xvdCAxNCBvZmZzZXQgMHg4
ODAwMDAwIHZlY3RvciAyMCBpcGwgMzogRVNQMjAwLCA0ME1IeiwgU0NTSSBJ
RCA3DQpzY3NpYnVzMCBhdCBlc3AwOiA4IHRhcmdldHMsIDggbHVucyBwZXIg
dGFyZ2V0DQpsZWRtYTAgYXQgc2J1czAgc2xvdCAxNCBvZmZzZXQgMHg4NDAw
MDEwOiBETUEgcmV2IDINCmxlMCBhdCBsZWRtYTAgc2xvdCAxNCBvZmZzZXQg
MHg4YzAwMDAwIHZlY3RvciAyMSBpcGwgNjogYWRkcmVzcyAwODowMDoyMDpj
MDpmZjplZQ0KbGUwOiA4IHJlY2VpdmUgYnVmZmVycywgMiB0cmFuc21pdCBi
dWZmZXJzDQpTVU5XLGJwcCBhdCBzYnVzMCBzbG90IDE0IG9mZnNldCAweGM4
MDAwMDAgdmVjdG9yIDIyIGlwbCAyIG5vdCBjb25maWd1cmVkDQpobWUwIGF0
IHNidXMwIHNsb3QgMCBvZmZzZXQgMHg4YzAwMDAwIHZlY3RvciA0IGlwbCA2
OiBTdW4gSGFwcHkgTWVhbCBFdGhlcm5ldCAoU1VOVyxobWUpDQpobWUwOiBF
dGhlcm5ldCBhZGRyZXNzIDA4OjAwOjIwOmMwOmZmOmVlDQpuc3BoeTAgYXQg
aG1lMCBwaHkgMTogRFA4Mzg0MCAxMC8xMDAgbWVkaWEgaW50ZXJmYWNlLCBy
ZXYuIDENCm5zcGh5MDogMTBiYXNlVCwgMTBiYXNlVC1GRFgsIDEwMGJhc2VU
WCwgMTAwYmFzZVRYLUZEWCwgYXV0bw0KY2dzaXgwIGF0IHNidXMwIHNsb3Qg
MiBvZmZzZXQgMHgwIHZlY3RvciA1IGlwbCA1OiBTVU5XLDUwMS0yMzI1LCAx
MTUyIHggOTAwLCByZXYgMTENCmNnc2l4MDogYXR0YWNoZWQgdG8gL2Rldi9m
Yg0KcGNvbnMgYXQgbWFpbmJ1czAgbm90IGNvbmZpZ3VyZWQNCnNjc2lidXMw
OiB3YWl0aW5nIDIgc2Vjb25kcyBmb3IgZGV2aWNlcyB0byBzZXR0bGUuLi4N
CnNkMCBhdCBzY3NpYnVzMCB0YXJnZXQgMCBsdW4gMDogPElCTSwgRENBUzMy
MTYwU1VOMi4xRywgUzYwQj4gZGlzayBmaXhlZA0Kc2QwOiAyMDYzIE1CLCA4
MTg4IGN5bCwgMyBoZWFkLCAxNzIgc2VjLCA1MTIgYnl0ZXMvc2VjdCB4IDQy
MjY3MjUgc2VjdG9ycw0Kc2QwOiBzeW5jICgxMDAuMDBucyBvZmZzZXQgMTUp
LCA4LWJpdCAoMTAuMDAwTUIvcykgdHJhbnNmZXJzDQpzZDEgYXQgc2NzaWJ1
czAgdGFyZ2V0IDQgbHVuIDA6IDxJQk0sIEREUlMtMzQ1NjAsIFM5MkE+IGRp
c2sgZml4ZWQNCnNkMTogNDM1NyBNQiwgODM4NyBjeWwsIDUgaGVhZCwgMjEy
IHNlYywgNTEyIGJ5dGVzL3NlY3QgeCA4OTI1MDAwIHNlY3RvcnMNCnNkMTog
c3luYyAoMTAwLjAwbnMgb2Zmc2V0IDE1KSwgOC1iaXQgKDEwLjAwME1CL3Mp
IHRyYW5zZmVycw0Kcm9vdCBvbiBzZDBhIGR1bXBzIG9uIHNkMGINCm1vdW50
cm9vdDogdHJ5aW5nIG5mcy4uLg0KbW91bnRyb290OiB0cnlpbmcgZmZzLi4u
DQpyb290IGZpbGUgc3lzdGVtIHR5cGU6IGZmcw0KaW5pdDogY29weWluZyBv
dXQgcGF0aCBgL3NiaW4vaW5pdCcgMTENCg==
---559023410-326116574-1095166457=:4712
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=DEBUG
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.43.0409141454171.4712@bach>
Content-Description: 
Content-Disposition: attachment; filename=DEBUG

IwkkTmV0QlNEOiBzdGQuc3BhcmM2NCx2IDEuMTAgMjAwMS8xMC8yNCAxODo0
OTo0MCB0aG9ycGVqIEV4cCAkDQoNCiMNCiMgTWFuZGF0b3J5IE5ldEJTRC9z
cGFyYzY0IGtlcm5lbCBvcHRpb25zIHdoZW4gYnVpbGRpbmcgZWl0aGVyIDMy
LWJpdCBvcg0KIyA2NC1iaXQga2VybmVscy4gIEFkZGl0aW9uYWwgbWFuZGF0
b3J5IG9wdGlvbnMgZm9yIDY0LWJpdCBrZXJuZWxzIGFyZQ0KIyBwaWNrZWQg
dXAgYnkgYWxzbyBpbmNsdWRpbmcgInN0ZC5zcGFyYzY0LTY0Ii4NCiMNCg0K
bWFjaGluZQkJc3BhcmM2NAkJIyBNYWNoaW5lIGFyY2hpdGVjdHVyZTsgcmVx
dWlyZWQgYnkgY29uZmlnKDgpDQoNCm9wdGlvbnMgCUVYRUNfU0NSSVBUCSMg
ZXhlY3ZlKDIpIHN1cHBvcnQgZm9yIHNjcmlwdHMNCiMgCSROZXRCU0Q6IEdF
TkVSSUMzMix2IDEuNzkuMi4zIDIwMDQvMDgvMzAgMDk6NTI6NDQgdHJvbiBF
eHAgJA0KDQoNCm9wdGlvbnMgCUlOQ0xVREVfQ09ORklHX0ZJTEUJIyBlbWJl
ZCBjb25maWcgZmlsZSBpbiBrZXJuZWwgYmluYXJ5DQoNCiNpZGVudCAJCSJH
RU5FUklDLSRSZXZpc2lvbjogMS43OS4yLjMgJCINCg0KbWF4dXNlcnMJNjQN
Cg0KIyMgU3lzdGVtIGtlcm5lbCBjb25maWd1cmF0aW9uLiAgU2VlIG9wdGlv
bnMoNCkgZm9yIG1vcmUgZGV0YWlsLg0KDQoNCiMgT3B0aW9ucyBmb3IgdmFy
aWFudHMgb2YgdGhlIFN1biBTUEFSQyBhcmNoaXRlY3VyZS4NCiMgV2UgY3Vy
cmVudGx5IHN1cHBvcnQgdGhyZWUgYXJjaGl0ZWN0dXJlIHR5cGVzOyBhdCBs
ZWFzdCBvbmUgaXMgcmVxdWlyZWQuDQpvcHRpb25zIAlTVU40VQkJIyBzdW40
dSAtIFVsdHJhU1BBUkMNCiNvcHRpb25zIAlCTElOSwkJIyBibGluayB0aGUg
c3lzdGVtIExFRA0KDQojIyBTeXN0ZW0gb3B0aW9ucyBzcGVjaWZpYyB0byB0
aGUgc3BhcmMgbWFjaGluZSB0eXBlDQoNCiMjIFVzZSBhIGZhc3RlciBjb25z
b2xlIHRoYW4gdGhlIFBST00ncyBzbG93IGRyYXdpbmcgcm91dGluZXMuICBO
b3QgbmVlZGVkDQojIyBmb3IgaGVhZGxlc3MgKG5vIGZyYW1lYnVmZmVyKSBt
YWNoaW5lcy4NCiMgWFhYIGJvcmtlbiBvbiBzcGFyYzY0DQojb3B0aW9ucyAJ
UkFTVEVSQ09OU09MRQkJIyBmYXN0IHJhc3Rlcm9wIGNvbnNvbGUNCiNvcHRp
b25zIAlGT05UX0dBTExBTlQxMngyMgkjIHRoZSBjb25zb2xlIGZvbnQNCiNv
cHRpb25zIAlGT05UX0JPTEQ4eDE2CQkjIGEgc29tZXdoYXQgc21hbGxlciBm
b250DQoNCiMjIyMgU3lzdGVtIG9wdGlvbnMgdGhhdCBhcmUgdGhlIHNhbWUg
Zm9yIGFsbCBwb3J0cw0KDQojIyBSb290IGRldmljZSBjb25maWd1cmF0aW9u
OiBjaGFuZ2UgdGhlID8ncyBpZiB5b3UgYXJlIGdvaW5nIHRvIHVzZSBhDQoj
IyBub25zdGFuZGFyZCByb290IHBhcnRpdGlvbiAob3RoZXIgdGhhbiB3aGVy
ZSB0aGUga2VybmVsIGlzIGJvb3RlZCBmcm9tKQ0KIyMgYW5kL29yIG5vbnN0
YW5kYXJkIHJvb3QgdHlwZSAobm90IGZmcyBvciBuZnMpLiAgTm9ybWFsbHkg
dGhpcyBjYW4gYmUNCiMjIGF1dG9tYWdpY2FsbHkgZGV0ZXJtaW5lZCBhdCBi
b290IHRpbWUuDQoNCmNvbmZpZwkJbmV0YnNkCXJvb3Qgb24gPyB0eXBlID8N
Cg0KIyMgVVZNIG9wdGlvbnMuDQojb3B0aW9ucyAJVVZNX1BBR0VfVFJLT1dO
DQojb3B0aW9ucyAJVVZNSElTVA0KI29wdGlvbnMgCVVWTUhJU1RfUFJJTlQJ
IyBMb3VkIQ0KDQojIyBTeXN0ZW0gY2FsbCB0cmFjaW5nIChzZWUga3RyYWNl
KDEpKS4NCm9wdGlvbnMgCUtUUkFDRQ0Kb3B0aW9ucyAJU1lTVFJBQ0UJCSMg
c3lzdGVtIGNhbGwgdmV0dGluZyB2aWEgc3lzdHJhY2UoMSkNCg0KIyMgQ29s
bGVjdCBzdGF0aXN0aWNzIG9uIGtlcm5lbCBtYWxsb2MncyBhbmQgZnJlZSdz
LiAgVGhpcyBkb2VzIGhhdmUgYQ0KIyMgc2lnbmlmaWNhbnQgcGVyZm9ybWFu
Y2UgaGl0IG9uIHNsb3dlciBtYWNoaW5lcywgc28gaXQgaXMgaW50ZW5kZWQg
Zm9yDQojIyBkaWFnbm9zdGljIHVzZSBvbmx5Lg0KI29wdGlvbnMgCUtNRU1T
VEFUUw0KDQojIyBTeXN0ZW0gViBjb21wYXRpYmxlIElQQyBzdWJzeXN0ZW0u
ICAobXNnY3RsKDIpLCBzZW1jdGwoMiksIGFuZCBzaG1jdGwoMikpDQpvcHRp
b25zIAlTWVNWTVNHCQkjIFN5c3RlbSBWIG1lc3NhZ2UgcXVldWVzDQpvcHRp
b25zIAlTWVNWU0VNCQkjIFN5c3RlbSBWIHNlbWFwaG9yZXMNCm9wdGlvbnMg
CVNZU1ZTSE0JCSMgU3lzdGVtIFYgc2hhcmVkIG1lbW9yeQ0KI29wdGlvbnMg
CVNITU1BWFBHUz0xMDI0CSMgMTAyNCBwYWdlcyBpcyB0aGUgZGVmYXVsdA0K
b3B0aW9ucyAJUDEwMDNfMUJfU0VNQVBIT1JFCSMgcDEwMDMuMWIgc2VtYXBo
b3JlIHN1cHBvcnQgDQoNCg0KIyMgTG9hZGFibGUga2VybmVsIG1vZHVsZSBz
dXBwb3J0OyBzdGlsbCB1bmRlciBkZXZlbG9wbWVudC4NCm9wdGlvbnMgCUxL
TQ0KDQpvcHRpb25zIAlVU0VSQ09ORgkjIHVzZXJjb25mKDQpIHN1cHBvcnQN
CiNvcHRpb25zIAlQSVBFX1NPQ0tFVFBBSVIJIyBzbWFsbGVyLCBidXQgc2xv
d2VyIHBpcGUoMikNCm9wdGlvbnMgCVNZU0NUTF9JTkNMVURFX0RFU0NSCSMg
SW5jbHVkZSBzeXNjdGwgZGVzY3JpcHRpb25zIGluIGtlcm5lbA0KDQojIEVu
YWJsZSBleHBlcmltZW50YWwgYnVmZmVyIHF1ZXVlIHN0cmF0ZWd5IGZvciBi
ZXR0ZXIgcmVzcG9uc2l2ZW5lc3MgdW5kZXIgDQojIGhpZ2ggZGlzayBJL08g
bG9hZC4gVXNlIGl0IHdpdGggY2F1dGlvbiAtIGl0J3Mgbm90IHByb3ZlbiB0
byBiZSBzdGFibGUgeWV0Lg0KI29wdGlvbnMgCU5FV19CVUZRX1NUUkFURUdZ
DQoNCiMjIE5GUyBib290IG9wdGlvbnM7IHRyaWVzIERIQ1AvQk9PVFAgdGhl
biBCT09UUEFSQU0NCiNvcHRpb25zIAlORlNfQk9PVF9CT09UUEFSQU0NCiNv
cHRpb25zIAlORlNfQk9PVF9CT09UUA0KI29wdGlvbnMgCU5GU19CT09UX0RI
Q1ANCg0KIyMjIyBEZWJ1Z2dpbmcgb3B0aW9ucw0KDQojIyBUaGUgRERCIGlu
LWtlcm5lbCBkZWJ1Z2dlciBydW5zIGF0IHBhbmljICh1bmxlc3MgRERCX09O
UEFOSUM9MCksIG9yIGF0DQojIyBzZXJpYWwgY29uc29sZSBicmVhayBvciBr
ZXlib2FyZCByZXNldCwgd2hlcmUgdGhlIFBST00gd291bGQgbm9ybWFsbHkN
CiMjIGludGVyY2VwdC4gIEREQl9ISVNUT1JZX1NJWkUgYWRkcyB1cC9kb3du
IGFycm93IGNvbW1hbmQgaGlzdG9yeS4NCiMgd2UgZW5hYmxlIEREQiBpbiBH
RU5FUklDIGZvciBub3cuDQpvcHRpb25zIAlEREIJCQkjIGtlcm5lbCBkeW5h
bWljIGRlYnVnZ2VyDQpvcHRpb25zIAlEREJfSElTVE9SWV9TSVpFPTEwMAkj
IGVuYWJsZSBoaXN0b3J5IGVkaXRpbmcgaW4gRERCDQpvcHRpb25zIAlEREJf
T05QQU5JQz0xCQkjIHNlZSBhbHNvIHN5c2N0bCg4KTogYGRkYi5vbnBhbmlj
Jw0KDQojIyBZb3UgbWF5IGFsc28gdXNlIGdkYiwgb24gYW5vdGhlciBjb21w
dXRlciBjb25uZWN0ZWQgdG8gdGhpcyBtYWNoaW5lIG92ZXINCiMjIGEgc2Vy
aWFsIHBvcnQuDQojIHR0eWIgb24gYW4gVWx0cmE1IGlzIGFsaWFzZWQgdG86
ICIvcGNpQDFmLDAvcGNpQDEsMS9lYnVzQDEvc2U6YiIsIHdoaWNoIGlzDQoj
ICIvcGNpQDFmLDAvcGNpQDEsMS9lYnVzQDEvc2VAMTQsNDAwMDAwIiwgcG9y
dCBiLg0KIyBvcHRpb25zIAlLR0RCCQkJIyBzdXBwb3J0IGZvciBrZXJuZWwg
Z2RiDQojIG9wdGlvbnMgCUtHREJfREVWTkFNRT0iXCJzYWJcIiIJIyBkcml2
ZXIgbmFtZSBmb3IgdGhlIGtnZGIgc2VyaWFsIGNoaXANCiMgb3B0aW9ucyAJ
S0dEQl9ERVZBRERSPTB4NDAwMDAwCSMgcGh5c2ljYWwgYWRkcmVzcyBvZiB0
aGUgY2hpcA0KIyBvcHRpb25zIAlLR0RCX0RFVlBPUlQ9MQkJIyBwb3J0IGIN
CiMgb3B0aW9ucyAJS0dEQl9ERVZSQVRFPTM4NDAwCSMgYmF1ZCByYXRlDQoN
Cg0KIyMgQ29tcGlsZSB0aGUga2VybmVsIHdpdGggZGVidWdnaW5nIHN5bWJv
bHMgKGBuZXRic2QuZ2RiJyBpcyB0aGUgZGVidWcgZmlsZSksDQojIyBzdWNo
IHRoYXQgZ2RiKDEpIGNhbiBiZSB1c2VkIG9uIGEga2VybmVsIGNvcmVkdW1w
Lg0KDQojbWFrZW9wdGlvbnMJREVCVUc9Ii1nIg0KDQoNCiMjIEFkZHMgY29k
ZSB0byB0aGUga2VybmVsIHRoYXQgZG9lcyBpbnRlcm5hbCBjb25zaXN0ZW5j
eSBjaGVja3MsIGFuZCB3aWxsDQojIyBjYXVzZSB0aGUga2VybmVsIHRvIHBh
bmljIGlmIGNvcnJ1cHRpb24gb2YgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVz
DQojIyBpcyBkZXRlY3RlZC4NCiNvcHRpb25zIAlESUFHTk9TVElDCSMgZXh0
cmEga2VybmVsIHNhbml0eSBjaGVja2luZw0KDQojIyBFbmFibGUgKHBvc3Np
Ymx5IGV4cGVuc2l2ZSkgZGVidWdnaW5nIGNvZGUgdGhhdCBtYXkgYWxzbyBk
aXNwbGF5IG1lc3NhZ2VzDQojIyBvbiB0aGUgc3lzdGVtIGNvbnNvbGUNCiNv
cHRpb25zIAlERUJVRw0KDQojIyBNYWtlIFNDU0kgZXJyb3IgbWVzc2FnZXMg
bW9yZSB2ZXJib3NlIHdoZW4gZXhwbGFpbmluZyB0aGVpciBtZWFuaW5ncy4N
Cm9wdGlvbnMgCVNDU0lWRVJCT1NFDQojb3B0aW9ucyAJUENJVkVSQk9TRQ0K
b3B0aW9ucyAJTUlJVkVSQk9TRQkjIHZlcmJvc2UgUEhZIGF1dG9jb25maWcg
bWVzc2FnZXMNCiNvcHRpb25zIAlQQ0lfQ09ORklHX0RVTVAJIyB2ZXJib3Nl
bHkgZHVtcCBQQ0kgY29uZmlnIHNwYWNlDQoNCiMjIGBJTlNFQ1VSRScgdHVy
bnMgb2ZmIHRoZSBrZXJuZWwgc2VjdXJpdHkgbGV2ZWwgKHNlY3VyZWxldmVs
ID0gMCBhbHdheXMpLg0KIyMgVGhpcyBhbGxvd3Mgd3JpdGluZyB0byAvZGV2
L21lbSwgbG9hZGluZyBrZXJuZWwgbW9kdWxlcyB3aGlsZSBtdWx0aS11c2Vy
LA0KIyMgYW5kIG90aGVyIGluc2VjdXJpdGllcyBnb29kIG9ubHkgZm9yIGRl
dmVsb3BtZW50IHdvcmsuICBEbyBub3QgdXNlIHRoaXMNCiMjIG9wdGlvbiBv
biBhIHByb2R1Y3Rpb24gbWFjaGluZS4NCiNvcHRpb25zIAlJTlNFQ1VSRQ0K
DQojIyBgRkRTQ1JJUFRTJyBhbGxvd3Mgbm9uLXJlYWRhYmxlIGJ1dCBleGVj
dXRhYmxlIHNjcmlwdHMgYnkgcHJvdmlkaW5nIGENCiMjIHByZS1vcGVuZWQg
b3BhcXVlIGZpbGUgdG8gdGhlIHNjcmlwdCBpbnRlcnByZXRlci4gIGBTRVRV
SURTQ1JJUFRTJywNCiMjIHdoaWNoIGltcGxpZXMgRkRTQ1JJUFRTLCBhbGxv
d3Mgc2NyaXB0cyB0byBiZSBzZXQtdXNlci1pZCB1c2luZyB0aGUgc2FtZQ0K
IyMgb3BhcXVlIGZpbGUgbWVjaGFuaXNtLiAgUGVybCBjYWxscyB0aGlzICJz
ZWN1cmUgc2V0dWlkIHNjcmlwdHMuIg0KDQojb3B0aW9ucyAJRkRTQ1JJUFRT
DQojb3B0aW9ucyAJU0VUVUlEU0NSSVBUUw0KDQojIyBPcHRpb25zIGZvciBj
b21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgcmVsZWFzZXMgZm9yZWlnbiBz
eXN0ZW0gYmluYXJpZXMuDQojIyBJbiB0aGUgY2FzZXMgb2YgQ09NUEFUX1NV
Tk9TIGFuZCBDT01QQVRfU1ZSNCwgeW91IG1heSBuZWVkIHRvIHNldCB1cA0K
IyMgYWRkaXRpb25hbCB1c2VyLWxldmVsIHV0aWxpdGllcyBvciBzeXN0ZW0g
Y29uZmlndXJhdGlvbiBmaWxlcy4gU2VlDQojIyBjb21wYXRfc3Vub3MoOCkg
YW5kIGNvbXBhdF9zdnI0KDgpLg0KDQojb3B0aW9ucyAJQ09NUEFUXzQzCSMg
NC4zQlNEIHN5c3RlbSBpbnRlcmZhY2VzDQojb3B0aW9ucyAJQ09NUEFUXzA5
CSMgTmV0QlNEIDAuOSBiaW5hcnkgY29tcGF0aWJpbGl0eQ0KI29wdGlvbnMg
CUNPTVBBVF8xMAkjIE5ldEJTRCAxLjAgYmluYXJ5IGNvbXBhdGliaWxpdHkN
CiNvcHRpb25zIAlDT01QQVRfMTEJIyBOZXRCU0QgMS4xIGJpbmFyeSBjb21w
YXRpYmlsaXR5DQojb3B0aW9ucyAJQ09NUEFUXzEyCSMgTmV0QlNEIDEuMiBi
aW5hcnkgY29tcGF0aWJpbGl0eQ0KI29wdGlvbnMgCUNPTVBBVF8xMwkjIE5l
dEJTRCAxLjMgYmluYXJ5IGNvbXBhdGliaWxpdHkNCiNvcHRpb25zIAlDT01Q
QVRfMTQJIyBOZXRCU0QgMS40IGJpbmFyeSBjb21wYXRpYmlsaXR5DQojb3B0
aW9ucyAJQ09NUEFUXzE1CSMgTmV0QlNEIDEuNSBiaW5hcnkgY29tcGF0aWJp
bGl0eQ0KI29wdGlvbnMgCUNPTVBBVF8xNgkjIE5ldEJTRCAxLjYgYmluYXJ5
IGNvbXBhdGliaWxpdHkNCiNvcHRpb25zIAlDT01QQVRfU1VOT1MJIyBTdW5P
UyA0LnggYmluYXJ5IGNvbXBhdGliaWxpdHkNCiNvcHRpb25zIAlDT01QQVRf
U1ZSNAkjIFN1bk9TIDUueCBiaW5hcnkgY29tcGF0aWJpbGl0eQ0KI29wdGlv
bnMgCUNPTVBBVF9TVlI0XzMyCSMgU3VuT1MgNS54IDMyLWJpdCBiaW5hcnkg
Y29tcGF0aWJpbGl0eSAtLSA2NC1iaXQgb25seQ0KI29wdGlvbnMgCUNPTVBB
VF9ORVRCU0QzMgkjIE5ldEJTRC9zcGFyYyBiaW5hcnkgY29tcGF0aWJpbGl0
eSAtLSA2NC1iaXQgb25seQ0KI29wdGlvbnMgCUVYRUNfQU9VVAkjIGV4ZWN2
ZSgyKSBzdXBwb3J0IGZvciBhLm91dCBiaW5hcmllcw0KI29wdGlvbnMgCUVY
RUNfRUxGMzIJIyBFeGVjIG1vZHVsZSBmb3IgU3VuT1MgNS54IGJpbmFyaWVz
Lg0KI29wdGlvbnMgCVNZU0NBTExfREVCVUcNCg0KI29wdGlvbnMgCVRDUF9D
T01QQVRfNDIJIyA0LjJCU0QgVENQL0lQIGJ1ZyBjb21wYXQuIE5vdCByZWNv
bW1lbmRlZC4NCg0KIyMgRmlsZSBzeXN0ZW1zLiAgWW91IHByb2JhYmx5IG5l
ZWQgYXQgbGVhc3Qgb25lIG9mIEZGUyBvciBORlMuDQpmaWxlLXN5c3RlbQlG
RlMJCSMgQmVya2VsZXkgRmFzdCBGaWxlc3lzdGVtDQpmaWxlLXN5c3RlbQlO
RlMJCSMgU3VuIE5GUy1jb21wYXRpYmxlIGZpbGVzeXN0ZW0gY2xpZW50DQpm
aWxlLXN5c3RlbQlLRVJORlMJCSMga2VybmVsIGRhdGEtc3RydWN0dXJlIGZp
bGVzeXN0ZW0NCiNmaWxlLXN5c3RlbQlOVUxMRlMJCSMgTlVMTCBsYXllcmVk
IGZpbGVzeXN0ZW0NCiNmaWxlLXN5c3RlbSAJT1ZFUkxBWQkJIyBvdmVybGF5
IGZpbGUgc3lzdGVtDQpmaWxlLXN5c3RlbQlNRlMJCSMgbWVtb3J5LWJhc2Vk
IGZpbGVzeXN0ZW0NCiNmaWxlLXN5c3RlbQlGREVTQwkJIyB1c2VyIGZpbGUg
ZGVzY3JpcHRvciBmaWxlc3lzdGVtDQojZmlsZS1zeXN0ZW0JVU1BUEZTCQkj
IHVpZC9naWQgcmVtYXBwaW5nIGZpbGVzeXN0ZW0NCiNmaWxlLXN5c3RlbQlM
RlMJCSMgTG9nLWJhc2VkIGZpbGVzeXN0ZW0gKHN0aWxsIGV4cGVyaW1lbnRh
bCkNCiNmaWxlLXN5c3RlbQlQT1JUQUwJCSMgcG9ydGFsIGZpbGVzeXN0ZW0g
KHN0aWxsIGV4cGVyaW1lbnRhbCkNCmZpbGUtc3lzdGVtCVBST0NGUwkJIyAv
cHJvYw0KI2ZpbGUtc3lzdGVtCUNEOTY2MAkJIyBJU08gOTY2MCArIFJvY2sg
UmlkZ2UgZmlsZSBzeXN0ZW0NCiNmaWxlLXN5c3RlbQlVTklPTgkJIyB1bmlv
biBmaWxlIHN5c3RlbQ0KI2ZpbGUtc3lzdGVtCU1TRE9TRlMJCSMgTVMtRE9T
IEZBVCBmaWxlc3lzdGVtKHMpLg0KDQojIyBGaWxlIHN5c3RlbSBvcHRpb25z
Lg0Kb3B0aW9ucyAJTkZTU0VSVkVSCSMgU3VuIE5GUy1jb21wYXRpYmxlIGZp
bGVzeXN0ZW0gc2VydmVyDQojb3B0aW9ucyAJUVVPVEEJCSMgRkZTIHF1b3Rh
cw0KI29wdGlvbnMgCUZGU19FSQkJIyBGRlMgRW5kaWFuIEluZGVwZW5kZW50
IHN1cHBvcnQNCm9wdGlvbnMgCVNPRlRERVAJCSMgRkZTIHNvZnQgdXBkYXRl
cyBzdXBwb3J0Lg0KDQojIyBOZXR3b3JrIHByb3RvY29sIHN1cHBvcnQuICBJ
biBtb3N0IGVudmlyb25tZW50cywgSU5FVCBpcyByZXF1aXJlZC4NCm9wdGlv
bnMgCUlORVQJCSMgSVAgKEludGVybmV0IFByb3RvY29sKSB2NA0KI29wdGlv
bnMgCUlORVQ2CQkjIElQVjYNCiNvcHRpb25zIAlJUFNFQwkJIyBJUCBzZWN1
cml0eQ0KI29wdGlvbnMgCUlQU0VDX0VTUAkjIElQIHNlY3VyaXR5IChlbmNy
eXB0aW9uIHBhcnQ7IGRlZmluZSB3L0lQU0VDKQ0KI29wdGlvbnMgCUlQU0VD
X0RFQlVHCSMgZGVidWcgZm9yIElQIHNlY3VyaXR5DQojb3B0aW9ucyAJR0FU
RVdBWQkJIyBwYWNrZXQgZm9yd2FyZGluZyAoInJvdXRlciBzd2l0Y2giKQ0K
b3B0aW9ucyAJTVJPVVRJTkcJIyBwYWNrZXQgZm9yd2FyZGluZyBvZiBtdWx0
aWNhc3QgcGFja2V0cw0KI29wdGlvbnMgCURJUkVDVEVEX0JST0FEQ0FTVAkj
IGFsbG93IGJyb2FkY2FzdHMgdGhyb3VnaCByb3V0ZXJzDQojb3B0aW9ucyAJ
TlMJCSMgWGVyb3ggTlMgbmV0d29ya2luZw0KI29wdGlvbnMgCU5TSVAJCSMg
WGVyb3ggTlMgdHVubmVsaW5nIG92ZXIgSVANCiNvcHRpb25zIAlJU08sVFBJ
UAkjIE9TSSBuZXR3b3JraW5nDQojb3B0aW9ucyAJRU9OCQkjIE9TSSB0dW5u
ZWxpbmcgb3ZlciBJUA0KI29wdGlvbnMgCUNDSVRULExMQyxIRExDCSMgWC4y
NSBwYWNrZXQgc3dpdGNoZWQgcHJvdG9jb2wNCiNvcHRpb25zIAlORVRBVEFM
SwkjIEFwcGxlVGFsayAob3ZlciBFdGhlcm5ldCkgcHJvdG9jb2wNCm9wdGlv
bnMgCU5UUAkJIyBOZXR3b3JrIFRpbWUgUHJvdG9jb2wgaW4ta2VybmVsIHN1
cHBvcnQNCiNvcHRpb25zIAlQUFNfU1lOQwkjIEFkZCBzZXJpYWwgbGluZSBz
eW5jaHJvbml6YXRpb24gZm9yIE5UUA0Kb3B0aW9ucyAJUEZJTF9IT09LUwkj
IEFkZCBwZmlsKDkpIGhvb2tzLCBpbnRlbmRlZCBmb3IgY3VzdG9tIExLTXMu
DQpvcHRpb25zIAlJUEZJTFRFUl9MT0cJIyBBZGQgaXBtb24oOCkgbG9nZ2lu
ZyBmb3IgaXBmaWx0ZXIgZGV2aWNlDQojb3B0aW9ucyAJSVBGSUxURVJfREVG
QVVMVF9CTE9DSwkjIGJsb2NrIGFsbCBwYWNrZXRzIGJ5IGRlZmF1bHQNCiNv
cHRpb25zIAlQUFBfQlNEQ09NUAkjIEFkZCBCU0QgY29tcHJlc3Npb24gdG8g
cHBwIGRldmljZQ0KI29wdGlvbnMgCVBQUF9ERUZMQVRFCSMgQWRkIGRlZmxh
dGUgKGxpYnopIGNvbXByZXNzaW9uIHRvIHBwcCBkZXZpY2UNCiNvcHRpb25z
IAlQUFBfRklMVEVSCSMgQWRkIGFjdGl2ZSBmaWx0ZXJzIGZvciBwcHAgKHZp
YSBicGYpDQojb3B0aW9ucyAJVENQX0RFQlVHCSMgUmVjb3JkIGxhc3QgVENQ
X05ERUJVRyBwYWNrZXRzIHdpdGggU09fREVCVUcNCg0KI29wdGlvbnMgCUFM
VFEJCSMgTWFuaXB1bGF0ZSBuZXR3b3JrIGludGVyZmFjZXMnIG91dHB1dCBx
dWV1ZXMNCiNvcHRpb25zIAlBTFRRX0JMVUUJIyBTdG9jaGFzdGljIEZhaXIg
Qmx1ZQ0KI29wdGlvbnMgCUFMVFFfQ0JRCSMgQ2xhc3MtQmFzZWQgUXVldWVp
bmcNCiNvcHRpb25zIAlBTFRRX0NETlIJIyBEaWZmc2VydiBUcmFmZmljIENv
bmRpdGlvbmVyDQojb3B0aW9ucyAJQUxUUV9GSUZPUQkjIEZpcnN0LUluIEZp
cnN0LU91dCBRdWV1ZQ0KI29wdGlvbnMgCUFMVFFfRkxPV1ZBTFZFCSMgUkVE
L2Zsb3ctdmFsdmUgKHJlZC1wZW5hbHR5LWJveCkNCiNvcHRpb25zIAlBTFRR
X0hGU0MJIyBIaWVyYXJjaGljYWwgRmFpciBTZXJ2aWNlIEN1cnZlDQojb3B0
aW9ucyAJQUxUUV9MT0NBTFEJIyBMb2NhbCBxdWV1ZWluZyBkaXNjaXBsaW5l
DQojb3B0aW9ucyAJQUxUUV9QUklRCSMgUHJpb3JpdHkgUXVldWVpbmcNCiNv
cHRpb25zIAlBTFRRX1JFRAkjIFJhbmRvbSBFYXJseSBEZXRlY3Rpb24NCiNv
cHRpb25zIAlBTFRRX1JJTwkjIFJFRCB3aXRoIElOL09VVA0KI29wdGlvbnMg
CUFMVFFfV0ZRCSMgV2VpZ2h0ZWQgRmFpciBRdWV1ZWluZw0KDQoNCiMjIyMg
TWFpbiBidXMgYW5kIENQVSAuLiBhbGwgc3lzdGVtcy4NCm1haW5idXMwIGF0
IHJvb3QNCmNwdTAJYXQgbWFpbmJ1czANCg0KIyMjIyBCdXMgdHlwZXMgZm91
bmQgb24gU1BBUkMgc3lzdGVtcy4NCg0Kc2J1czAJYXQgbWFpbmJ1czAJCQkJ
IyBVbHRyYSAxDQojdXBhMAlhdCBtYWluYnVzMAkJCQkjIFVsdHJhIDFFLCBV
bHRyYSAyLCBFeDAwMDANCiNwc3ljaG8qCWF0IG1haW5idXMwCQkJCSMgRGFy
d2luLCBVbHRyYTUNCiNwY2kqCWF0IHBzeWNobz8NCiNwY2kqCWF0IHBwYj8N
CiNwcGIqCWF0IHBjaT8JCQkJCSMgYEFQQicgc3VwcG9ydC4NCiNlYnVzKglh
dCBwY2k/CQkJCQkjIGVidXMgZGV2aWNlcw0KIyBYWFggJ3B1YydzIGFyZW4n
dCByZWFsbHkgYnJpZGdlcywgYnV0IHRoZXJlJ3Mgbm8gYmV0dGVyIHBsYWNl
IGZvciB0aGVtIGhlcmUNCiNwdWMqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24g
PwkJIyBQQ0kgInVuaXZlcnNhbCIgY29tbS4gY2FyZHMNCg0KIyMjIyBTdGFu
ZGFyZCBzeXN0ZW0gZGV2aWNlcyAtLSBhbGwgcmVxdWlyZWQgZm9yIGEgZ2l2
ZW4gYXJjaGl0ZWN0dXJlDQoNCiMjIFBST00gY29uc29sZSBkcml2ZXIgLS0g
aWYgYWxsIGVsc2UgZmFpbHMNCnBjb25zMAlhdCBtYWluYnVzMAkJCQkjIFBS
T00gY29uc29sZQ0KDQojIyBBdXhpbGlhcnkgc3lzdGVtIHJlZ2lzdGVycyAt
LSBXZSB1c2UgdGhlIE9CUCBmb3IgcG93ZXIgbWFuYWdlbWVudA0KI2F1eGlv
KglhdCBlYnVzPwkJCQkjIGF1eGlvIHJlZ2lzdGVycw0KYXV4aW8qCWF0IHNi
dXM/IHNsb3QgPyBvZmZzZXQgPwkJIyBhdXhpbyByZWdpc3RlcnMNCg0KIyBX
ZSBhbHNvIG5lZWQ6DQojYnBwKglhdCBzYnVzPyBzbG90ID8gb2Zmc2V0ID8J
CSMgcGFyYWxsZWwgcG9ydA0KI2xwdCoJYXQgZWJ1cz8JCQkJIyBwYXJhbGxl
bCBwb3J0DQoNCiMjIE1vc3RlayBjbG9jayBmb3VuZCBvbiA0LzMwMCwgc3Vu
NGMsIHN1bjRtIGFuZCBzdW40dSBzeXN0ZW1zLg0KIyMgVGhlIE1vc3RlayBj
bG9jayBOVlJBTSBpcyB0aGUgImVlcHJvbSIgb24gc3VuNC8zMDAgc3lzdGVt
cy4NCmNsb2NrKglhdCBzYnVzPyBzbG90ID8gb2Zmc2V0ID8NCiNjbG9jayoJ
YXQgZWJ1cz8NCiNydGMqCWF0IGVidXM/DQoNCiMjIFRpbWVyIGNoaXAgZm91
bmQgb24gNC8zMDAsIHN1bjRjLCBzdW40bSBhbmQgKHNvbWUpIHN1bjR1IHN5
c3RlbXMuDQp0aW1lcioJYXQgbWFpbmJ1czAJCQkJIyBzdW40Yw0KDQojIyMj
IFNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24NCg0KIyMgWmlsb2cgODUzMCBz
ZXJpYWwgY2hpcHMuICBFYWNoIGhhcyB0d28tY2hhbm5lbHMuDQojIyB6czAg
aXMgdHR5YSBhbmQgdHR5Yi4gIHpzMSBpcyB0aGUga2V5Ym9hcmQgYW5kIG1v
dXNlLg0KenMqCWF0IHNidXM/IHNsb3QgPyBvZmZzZXQgPw0KenN0dHkqCWF0
IHpzPyBjaGFubmVsID8JCQkjIHR0eWENCmtiZDAJYXQgenN0dHk/DQptczAJ
YXQgenN0dHk/DQoNCiMjIFBDSSBtYWNoaW5lcyBoYXZlIHNlcmlhbCBwb3J0
czoNCiMjCVNpZW1lbnMgU0FCODI1MzIgY29udHJvbGxlcjogdHR5YSBhbmQg
dHR5YiAoYHN1Jzsgc2FiKQ0KIyMJUGFydCBvZiBOUyBQQzg3MzMyVkxKIFN1
cGVyIEkvTyBjb250cm9sbGVyOiBrYmQvbW91c2UgKGBzZSc7IGNvbSkNCg0K
IyMgVGhlIFNBQjgyNTMyIGNvbnRyb2xsZXIgaGFzIHR3byBzZXJpYWwgcG9y
dHMNCiNzYWIqCWF0IGVidXM/CQkJCSMgdHR5YS90dHliDQojc2FidHR5Kglh
dCBzYWI/IGNoYW5uZWwgPw0KDQojIyBQYXJ0IG9mIGEgUEM4NzMzMlZMSg0K
I2NvbSoJYXQgZWJ1cz8JCQkJIyBgY29tJyBkcml2ZXIgZm9yIGBzdScNCiNr
YmQwCWF0IGNvbT8JCQkJCSMga2V5Ym9hcmQNCiNtczAJYXQgY29tPwkJCQkJ
IyBtb3VzZQ0KDQojIFBDSSBzZXJpYWwgaW50ZXJmYWNlcw0KI2NvbSoJYXQg
cHVjPyBwb3J0ID8JCQkjIDE2eDUwcyBvbiAidW5pdmVyc2FsIiBjb21tIGJv
YXJkcw0KI2N5KglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBDeWNsYWRl
cyBDeWNsb20tWSBzZXJpYWwgYm9hcmRzDQojY3oqCWF0IHBjaT8gZGV2ID8g
ZnVuY3Rpb24gPwkjIEN5Y2xhZGVzLVogbXVsdGktcG9ydCBzZXJpYWwgYm9h
cmRzDQoNCiMjIyMgRGlzayBjb250cm9sbGVycyBhbmQgZGlza3MNCg0KIyMg
VGhlIGZvbGxvd2luZyBmbGFncyBtYXkgYmUgc2V0IGZvciB0aGUgTkNSNTNj
OTQgYmFzZWQgZXNwIGRyaXZlcjoNCiMjCWJpdHMgMC03OiAgZGlzYWJsZSBk
aXNjb25uZWN0L3Jlc2VsZWN0IGZvciB0aGUgY29ycmVzcG9uZGluZyB0YXJn
ZXQNCiMjCWJpdHMgOC0xNTogZGlzYWJsZSBzeW5jaHJvbm91cyBuZWdvdGlh
dGlvbiBmb3IgdGFyZ2V0IFtiaXQtOF0NCg0KIyMgc3VuNHUgb24tYm9hcmQg
U0NTSSwgYW5kIEZTQkUvUyBTQnVzIFNDU0kgY2FyZHMsIGFuIE5DUjUzYzk0
IG9yDQojIyBlcXVpdmFsZW50IGJlaGluZCBhbiBMU0kgTG9naWMgRE1BIGNv
bnRyb2xsZXINCg0KIyBYWFggLSB0aGUgZXNwIGRyaXZlciBoYXMgcHJvYmxl
bXMgd2l0aCB0YWdnZWQgcXVldWVpbmcuDQojIFRvIGF2b2lkIHRoZXNlLCB0
YWdnZWQgcXVldWVpbmcgaGFzIGJlZW4gZGlzYWJsZWQgZm9yIHRoZSBmaXJz
dCA4IHRhcmdldHMNCiMgYnkgc2V0dGluZyB0aG9zZSBiaXRzIHRvIDEgKHN0
YXJ0aW5nIGF0IGJpdCAxNiwgc2VlIGVzcCg0KSBmb3IgZGV0YWlscykuDQoj
IElmIHlvdSB3YW50IHRhZ2dlZCBxdWV1ZWluZywgYW5kIGFyZSBzdXJlIGl0
IHdvcmtzIGZvciB5b3UsIHNldCB0aGUgZmxhZ3MNCiMgdmFsdWUgdG8gMC4g
Q0FWRUFUOiB1c2luZyB0YWdnZWQgcXVldWVpbmcgY3VycmVudGx5IGNhbiBj
YXVzZSBkYXRhIGxvc3MhDQoNCmRtYSoJYXQgc2J1cz8gc2xvdCA/IG9mZnNl
dCA/CQkjIFNCdXMNCmVzcCoJYXQgZG1hPyBmbGFncyAweDAwZmYwMDAwCQkj
IFNCdXMNCg0KI2VzcCoJYXQgc2J1cz8gc2xvdCA/IG9mZnNldCA/IGZsYWdz
IDB4MDBmZjAwMDANCiNpc3AqCWF0IHNidXM/IHNsb3QgPyBvZmZzZXQgPw0K
I2lzcCoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgUWxvZ2ljIElTUCBb
MTJdMHgwIFNDU0kvRmlicmVDaGFubmVsDQojc2lvcCoJYXQgcGNpPyAJCQkj
IDUzQzh4eCAoImdsbSIgY29tcGF0aWJsZSkNCiNlc2lvcCoJYXQgcGNpPyAJ
CQkjIDUzQzg3NSBhbmQgbmV3ZXIgKCJnbG0iIGNvbXBhdGlibGUpDQoNCiMg
UENJIGNyeXB0b2dyYXBoaWMgZGV2aWNlcw0KI2hpZm4qCWF0IHBjaT8gZGV2
ID8gZnVuY3Rpb24gPwkjIEhpZm4gNzc1NS83ODExLzc5NXgNCiN1YnNlYyoJ
YXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgQnJvYWRjb20gNTUwMS81NjAx
LzU4MHgvNTgyeA0KDQojIFBDSSBTQ1NJIGNvbnRyb2xsZXJzDQojIAlVVCBt
YXJrcyB1bnRlc3RlZC4NCiNhZHYqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24g
PwkjIEFkdmFuU3lzIDEyMDBbQSxCXSwgOXh4W1UsVUFdIFNDU0kgVVQNCiNh
ZHcqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEFkdmFuU3lzIDl4MFVX
W0RdLCAzOTQwVVsyLDNdVyBTQ1NJIFVUDQojYWhjKglhdCBwY2k/IGRldiA/
IGZ1bmN0aW9uID8JIyBBZGFwdGVjIFsyM105NHgsIGFpYzc4eDAgU0NTSQ0K
I2JoYSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgQnVzTG9naWMgOXh4
IFNDU0kgVVQNCiNkcHQqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIERQ
VCBTbWFydENhY2hlL1NtYXJ0UkFJRCBVVA0KI2loYSoJYXQgcGNpPyBkZXYg
PyBmdW5jdGlvbiA/CSMgSW5pdGlvIElOSUMtOTQwLzk1MCBTQ1NJDQojbmpz
KglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBXb3JrYml0IE5pbmphU0NT
SS0zMg0KI3Bjc2NwKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBBTUQg
NTNjOTc0IFBDc2NzaS1QQ0kgU0NTSQ0KI3RybSoJYXQgcGNpPyBkZXYgPyBm
dW5jdGlvbiA/CSMgVGVrcmFtIERDLTM5NVUvVVcvRiwgREMtMzE1L1UgU0NT
SQ0KDQpzY3NpYnVzKiBhdCBzY3NpPw0KDQojIyBUaGVzZSBlbnRyaWVzIGZp
bmQgZGV2aWNlcyBvbiBhbGwgU0NTSSBidXNzZXMgYW5kIGFzc2lnbg0KIyMg
dW5pdCBudW1iZXJzIGR5bmFtaWNhbGx5Lg0Kc2QqCWF0IHNjc2lidXM/IHRh
cmdldCA/IGx1biA/CQkjIFNDU0kgZGlza3MNCiNzdCoJYXQgc2NzaWJ1cz8g
dGFyZ2V0ID8gbHVuID8JCSMgU0NTSSB0YXBlcw0KI2NkKglhdCBzY3NpYnVz
PyB0YXJnZXQgPyBsdW4gPwkJIyBTQ1NJIENELVJPTXMNCiNjaCoJYXQgc2Nz
aWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMgU0NTSSBjaGFuZ2VyIGRldmljZXMN
CiNzcyoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMgU0NTSSBzY2Fu
bmVycw0KI3NlcyoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMgU0NT
SSBTRVMvU0FGLVRFIGRldmljZXMNCnVrKglhdCBzY3NpYnVzPyB0YXJnZXQg
PyBsdW4gPwkJIyB1bmtub3duIFNDU0kNCg0KIyBJREUgYW5kIHJlbGF0ZWQg
ZGV2aWNlcw0KIyBQQ0kgSURFIGNvbnRyb2xsZXJzIC0gc2VlIHBjaWlkZSg0
KSBmb3Igc3VwcG9ydGVkIGhhcmR3YXJlLg0KIyBUaGUgMHgwMDAxIGZsYWcg
Zm9yY2UgdGhlIGRyaXZlciB0byB1c2UgRE1BLCBldmVuIGlmIHRoZSBkcml2
ZXIgZG9lc24ndCBrbm93DQojIGhvdyB0byBzZXQgdXAgRE1BIG1vZGVzIGZv
ciB0aGlzIGNoaXAuIFRoaXMgbWF5IHdvcmssIG9yIG1heSBjYXVzZQ0KIyBh
IG1hY2hpbmUgaGFuZyB3aXRoIHNvbWUgY29udHJvbGxlcnMuDQojcGNpaWRl
KiBhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8gZmxhZ3MgMHgwMDAwCSMgR0VO
RVJJQyBwY2lpZGUgZHJpdmVyDQojYWNhcmRpZGUqIGF0IHBjaT8gZGV2ID8g
ZnVuY3Rpb24gPwkjIEFjYXJkIElERSBjb250cm9sbGVycw0KI2FjZXJpZGUq
IGF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEFjZXIgTGFiIElERSBjb250
cm9sbGVycw0KI2FydHNhdGEqIGF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkj
IEludGVsIGkzMTI0NCBTQVRBIGNvbnRyb2xsZXINCiNjbWRpZGUqIGF0IHBj
aT8gZGV2ID8gZnVuY3Rpb24gPwkjIENNRCB0ZWNoIElERSBjb250cm9sbGVy
cw0KI2N5cGlkZSogYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgQ3lwcmVz
cyBJREUgY29udHJvbGxlcnMNCiNocHRpZGUqIGF0IHBjaT8gZGV2ID8gZnVu
Y3Rpb24gPwkjIFRyaW9uZXMvSGlnaFBvaW50IElERSBjb250cm9sbGVycw0K
I29wdGlpZGUqIGF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIE9wdGkgSURF
IGNvbnRyb2xsZXJzDQojcGlpeGlkZSogYXQgcGNpPyBkZXYgPyBmdW5jdGlv
biA/CSMgSW50ZWwgSURFIGNvbnRyb2xsZXJzDQojcGRjaWRlKiBhdCBwY2k/
IGRldiA/IGZ1bmN0aW9uID8JIyBQcm9taXNlIElERSBjb250cm9sbGVycw0K
I3NhdGFsaW5rKiBhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBTaUkgU0FU
QUxpbmsgY29udHJvbGxlcnMNCiNzaXNpZGUqIGF0IHBjaT8gZGV2ID8gZnVu
Y3Rpb24gPwkjIFNpUyBJREUgY29udHJvbGxlcnMNCiNzbGlkZSogIGF0IHBj
aT8gZGV2ID8gZnVuY3Rpb24gPwkjIFN5bXBob255IExhYnMgSURFIGNvbnRy
b2xsZXJzDQojdmlhaWRlKiBhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBW
SUEvQU1EL052aWRpYSBJREUgY29udHJvbGxlcnMNCiNhdGFidXMqIGF0IGF0
YT8NCiNhdGFwaWJ1cyogYXQgYXRhcGk/DQoNCiMgSURFIGRyaXZlcw0KIyBG
bGFncyBhcmUgdXNlZCBvbmx5IHdpdGggY29udHJvbGxlcnMgdGhhdCBzdXBw
b3J0IERNQSBvcGVyYXRpb25zDQojIGFuZCBtb2RlIHNldHRpbmdzIChlLmcu
IHNvbWUgcGNpaWRlIGNvbnRyb2xsZXJzKQ0KIyBUaGUgbG93ZXN0IG9yZGVy
IGZvdXIgYml0cyAocmlnaHRtb3N0IGRpZ2l0KSBvZiB0aGUgZmxhZ3MgZGVm
aW5lIHRoZSBQSU8NCiMgbW9kZSB0byB1c2UsIHRoZSBuZXh0IHNldCBvZiBm
b3VyIGJpdHMgdGhlIERNQSBtb2RlIGFuZCB0aGUgdGhpcmQgc2V0IHRoZQ0K
IyBVbHRyYURNQSBtb2RlLiBGb3IgZWFjaCBzZXQgb2YgZm91ciBiaXRzLCB0
aGUgMyBsb3dlciBiaXRzIGRlZmluZSB0aGUgbW9kZQ0KIyB0byB1c2UsIGFu
ZCB0aGUgbGFzdCBiaXQgbXVzdCBiZSAxIGZvciB0aGlzIHNldHRpbmcgdG8g
YmUgdXNlZC4NCiMgRm9yIERNQSBhbmQgVURNQSwgMHhmICgxMTExKSBtZWFu
cyAnZGlzYWJsZScuDQojIDB4MGZhYyBtZWFucyAndXNlIFBJTyBtb2RlIDQs
IERNQSBtb2RlIDIsIGRpc2FibGUgVWx0cmFETUEnLg0KIyAoMHhjPTExMDAs
IDB4YT0xMDEwLCAweGY9MTExMSkNCiMgMHgwMDAwIG1lYW5zICJ1c2Ugd2hh
dGV2ZXIgdGhlIGRyaXZlIGNsYWltcyB0byBzdXBwb3J0Ii4NCg0KIyMgRGlz
YWJsZSBVRE1BIDQgd2hpY2ggY2F1c2VzIGRhdGEgY29ycnVwdGlvbiBvbiB0
aGUgQWNlciBMYWJzDQojIyBjaGlwc2V0IG9uIFN1biBCbGFkZSAxMDAgYW5k
IE5ldHJhIFgxIG1hY2hpbmVzLg0KI3dkKiAgICAgYXQgYXRhYnVzPyBkcml2
ZSA/IGZsYWdzIDB4MDAwMA0KDQojY2QqCWF0IGF0YXBpYnVzPyBkcml2ZSA/
IGZsYWdzIDB4MDAwMAkjIEFUQVBJIENELVJPTSBkcml2ZXMNCiNzZCoJYXQg
YXRhcGlidXM/IGRyaXZlID8gZmxhZ3MgMHgwMDAwCSMgQVRBUEkgZGlzayBk
cml2ZXMNCiN1ayoJYXQgYXRhcGlidXM/IGRyaXZlID8gZmxhZ3MgMHgwMDAw
CSMgQVRBUEkgdW5rbm93bg0KDQojIFJBSUQgY29udHJvbGxlcnMgYW5kIGRl
dmljZXMgKHVudGVzdGVkKQ0KI2NhYyoJYXQgcGNpPyBkZXYgPyBmdW5jdGlv
biA/CSMgQ29tcGFxIFBDSSBhcnJheSBjb250cm9sbGVycw0KI21seCoJYXQg
cGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgTXlsZXggREFDOTYwICYgREVDIFNX
WENSIGZhbWlseQ0KI3R3ZSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMg
M3dhcmUgRXNjYWxhZGUgUkFJRCBjb250cm9sbGVycw0KDQojbGQqCWF0IGNh
Yz8gdW5pdCA/CQkJIyBsb2dpY2FsIGRpc2sgZGV2aWNlcw0KI2xkKglhdCB0
d2U/IHVuaXQgPw0KI2xkKglhdCBtbHg/IHVuaXQgPw0KDQojIyBGbG9wcHkg
Y29udHJvbGxlciBhbmQgZHJpdmUgZm91bmQgb24gU1BBUkNzdGF0aW9ucy4N
Cg0KIyBuZWVkIHNoYXJlIHdpdGggdGhlIHNwYXJjLCBhbmQgZXZlcnlvbmUg
ZWxzZS4gIG5lZWRzIHRvIHVzZSBhdXhpby4NCiMgYWN0dWFsbHksIHRoZSBl
YnVzIHZlcnNpb24gaGFzICh3aWxsIGhhdmUpIGRpcmVjdCBhY2Nlc3MgdG8g
aXQncyBBVVhJTw0KIyByZWdpc3RlciBzcGFjZSAoaXQgaXMgbWFwcGVkIGlu
IHRvIGZkdGhyZWUgbm90IGF1eGlvKS4NCiNmZGMwCWF0IHNidXM/IHNsb3Qg
PyBvZmZzZXQgPwkJIyBTVU5XLGZkdHdvDQojZmRjMAlhdCBlYnVzPwkJCQkj
IGZkdGhyZWUNCiNmZCoJYXQgZmRjMCAJIAkJCSMgdGhlIGRyaXZlIGl0c2Vs
Zg0KDQojIyBBIGRpc2stbGlrZSBpbnRlcmZhY2UgdG8gZmlsZXMuICBDYW4g
YmUgdXNlZCB0byBjcmVhdGUgZmxvcHB5LCBDRCwNCiMjIG1pbmlyb290IGlt
YWdlcywgZXRjLg0KDQpwc2V1ZG8tZGV2aWNlCXZuZAk0DQoNCiMjIENvbmNh
dGVuYXRlZCBhbmQgc3RyaXBlZCBkaXNrczsgd2l0aCB0aGlzLCB5b3UgY2Fu
IGNyZWF0ZSBhIHNvZnR3YXJlLWJhc2VkDQojIyBkaXNrIGFycmF5IHNpbWls
YXIgdG8gYSAiUkFJRCAwIiBzZXR1cC4gIFNlZSBjY2QoNCkuDQoNCiNwc2V1
ZG8tZGV2aWNlCWNjZAk0DQoNCiMjIENyeXB0b2dyYXBoaWMgZGlzayBkZXZp
Y2VzLiAgU2VlIGNnZCg0KS4NCg0KI3BzZXVkby1kZXZpY2UJY2dkCTQNCg0K
IyMgUkFJRGZyYW1lIGRpc2sgZHJpdmVyOiBzb2Z0d2FyZSBSQUlEIGRyaXZl
ci4gIFNlZSByYWlkKDQpLg0KDQojcHNldWRvLWRldmljZQlyYWlkCTgNCiNv
cHRpb25zIAlSQUlEX0FVVE9DT05GSUcJCSMgYXV0by1jb25maWd1cmF0aW9u
IG9mIFJBSUQgY29tcG9uZW50cw0KIyBPcHRpb25zIHRvIGVuYWJsZSB2YXJp
b3VzIG90aGVyIFJBSURmcmFtZSBSQUlEIHR5cGVzLg0KIyBvcHRpb25zIAlS
Rl9JTkNMVURFX0VWRU5PREQ9MQ0KIyBvcHRpb25zIAlSRl9JTkNMVURFX1JB
SUQ1X1JTPTENCiMgb3B0aW9ucyAJUkZfSU5DTFVERV9QQVJJVFlMT0dHSU5H
PTENCiMgb3B0aW9ucyAJUkZfSU5DTFVERV9DSEFJTkRFQ0xVU1RFUj0xDQoj
IG9wdGlvbnMgCVJGX0lOQ0xVREVfSU5URVJERUNMVVNURVI9MQ0KIyBvcHRp
b25zIAlSRl9JTkNMVURFX1BBUklUWV9ERUNMVVNURVJJTkc9MQ0KIyBvcHRp
b25zIAlSRl9JTkNMVURFX1BBUklUWV9ERUNMVVNURVJJTkdfRFM9MQ0KDQoN
CiMjIE1lbW9yeSBkaXNrIGRldmljZSwgdXNlZCBvbiBib290IGZsb3BwaWVz
IHdpdGggY29tcHJlc3NlZA0KIyMga2VybmVsLXBsdXMtcm9vdC1kaXNrIGlt
YWdlcy4NCg0KI3BzZXVkby1kZXZpY2UJbWQJMQ0KDQoNCiMjIyMgTmV0d29y
ayBpbnRlcmZhY2VzDQoNCiMjIExBTkNFIEV0aGVybmV0IC0gYW4gQU1EIDc5
OTAgTEFOQ0UgYmVoaW5kIHNwZWNpYWxpemVkIERNQSBnbHVlDQojIyBUaHJl
ZSBmbGF2b3JzIG9mIGFkZGl0aW9uYWwgU0J1cyBldGhlcm5ldHMgYXJlIGF2
YWlsYWJsZS4gIE9uZSBhdHRhY2hlcw0KIyMgZGlyZWN0bHkgbGlrZSB0aGUg
c3VuNGMgb24tYm9hcmQsIG9uZSB1c2VzIHRoZSBsZWRtYSBkZXZpY2UgbGlr
ZSB0aGUNCiMjIHN1bjRtIG9uLWJvYXJkLCBhbmQgb25lIHVzZXMgdGhlIGxl
YnVmZmVyIGRldmljZS4NCg0KbGVkbWEwCQlhdCBzYnVzPyBzbG90ID8gb2Zm
c2V0ID8JIyBzdW40bSBvbi1ib2FyZA0KbGUwCQlhdCBsZWRtYTAJCQkjIHN1
bjRtIG9uLWJvYXJkDQojbGUqCQlhdCBzYnVzPyBzbG90ID8gb2Zmc2V0ID8J
IyBTQnVzDQojbGVkbWEqCQlhdCBzYnVzPyBzbG90ID8gb2Zmc2V0ID8JIyBT
QnVzDQojbGUqCQlhdCBsZWRtYT8JCQkjIFNCdXMNCiNsZWJ1ZmZlcjAJYXQg
c2J1cz8gc2xvdCA/IG9mZnNldCA/CSMgU0J1cw0KI2xlMAkJYXQgbGVidWZm
ZXI/CQkJIyBTQnVzDQojbGVidWZmZXIqCWF0IHNidXM/IHNsb3QgPyBvZmZz
ZXQgPwkjIFNCdXMNCiNsZSoJCWF0IGxlYnVmZmVyPwkJCSMgU0J1cw0KDQoj
IyBIYXBweSBNZWFsIEV0aGVybmV0DQpobWUqCQlhdCBzYnVzPyBzbG90ID8g
b2Zmc2V0ID8NCiNobWUqCQlhdCBwY2k/CWRldiA/IGZ1bmN0aW9uID8JIyBu
ZXR3b3JrICJobWUiIGNvbXBhdGlibGUNCg0KIyMgcWVjL2JlLCBxZWMvaG1l
DQojcWVjKgkJYXQgc2J1cz8gc2xvdCA/IG9mZnNldCA/DQojYmUqCQlhdCBx
ZWM/DQojcWUqCQlhdCBxZWM/DQoNCiMgUENJIG5ldHdvcmsgaW50ZXJmYWNl
cw0KIyAJVVQgbWFya3MgdW50ZXN0ZWQuDQojYW4qCWF0IHBjaT8gZGV2ID8g
ZnVuY3Rpb24gPwkjIEFpcm9uZXQgUEM0NTAwL1BDNDgwMCAoODAyLjExKSBV
VA0KI2VuKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBFTkkvQWRhcHRl
YyBBVE0gVVQNCiMgWFhYIGNhdXNlcyBJQ0UNCiNlcCoJYXQgcGNpPyBkZXYg
PyBmdW5jdGlvbiA/CSMgM0NvbSAzYzU5eA0KI2V4KglhdCBwY2k/IGRldiA/
IGZ1bmN0aW9uID8JIyAzQ29tIDkweFtCXQ0KI2VwaWMqCWF0IHBjaT8gZGV2
ID8gZnVuY3Rpb24gPwkjIFNNQyBFUElDLzEwMCBFdGhlcm5ldA0KI2VzaCoJ
YXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgRXNzZW50aWFsIEhJUFBJIGNh
cmQgVVQNCiNmcGEqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIERFQyBE
RUZQQSBGRERJIFVUDQojZnhwKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8J
IyBJbnRlbCBFdGhlckV4cHJlc3MgUFJPIDEwKy8xMDBCDQojZ2VtKglhdCBw
Y2k/IGRldiA/IGZ1bmN0aW9uID8JIyBBcHBsZSBHTUFDIGFuZCBTdW4gRVJJ
IGdpZ2FiaXQgZW5ldA0KIyBYWFggbGFja3MgYnVzX2RtYW1hcF9zeW5jKCkN
CiNsZSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgUENuZXQtUENJIEV0
aGVybmV0DQojIFhYWCB1c2VzIHZ0b3BoeXMoKQ0KI2xtYyoJYXQgcGNpPyBk
ZXYgPyBmdW5jdGlvbiA/CSMgTGFuIE1lZGlhIENvcnAgU1NJL0hTU0kvRFMz
DQojbmUqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIE5FMjAwMC1jb21w
YXRpYmxlIEV0aGVybmV0IFVUDQojbnR3b2MqCWF0IHBjaT8gZGV2ID8gZnVu
Y3Rpb24gPwkjIFJpc2NvbS9OMiBQQ0kgU3luYyBTZXJpYWwgVVQNCiMgWFhY
IGNhdXNlIHVuY29ycmVjdGFibGUgRE1BIGVycm9yDQojcGNuKglhdCBwY2k/
IGRldiA/IGZ1bmN0aW9uID8JIyBQQ25ldC1QQ0kgRXRoZXJuZXQNCiNydGsq
CWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIFJlYWx0ZWsgODEyOS84MTM5
DQojIFhYWCBjYXVzZSB1bmNvcnJlY3RhYmxlIERNQSBlcnJvcg0KI3NpcCoJ
YXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgU2lTIDkwMCBFdGhlcm5ldA0K
I3RpKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBBbHRlb24gQUNFbmlj
IGdpZ2FiaXQgRXRoZXJuZXQgVVQNCiN0bCoJYXQgcGNpPyBkZXYgPyBmdW5j
dGlvbiA/CSMgVGh1bmRlckxBTi1iYXNlZCBFdGhlcm5ldA0KI3RscCoJYXQg
cGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgREVDY2hpcCAyMXg0eCBhbmQgY2xv
bmVzDQojdnIqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIFZJQSBSaGlu
ZSBGYXN0IEV0aGVybmV0DQojd2kqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24g
PwkjIEx1Y2VudC9JbnRlcnNpbCBXYXZlTEFOL0lFRUUNCg0KIyBNSUkvUEhZ
IHN1cHBvcnQNCiMgWFhYOiBvbmx5IG5zcGh5ICJ0ZXN0ZWQiDQojZG1waHkq
CWF0IG1paT8gcGh5ID8JCQkjIERhdmljb20gRE05MTAxIFBIWXMNCiNleHBo
eSoJYXQgbWlpPyBwaHkgPwkJCSMgM0NvbSBpbnRlcm5hbCBQSFlzDQojaWNz
cGh5KglhdCBtaWk/IHBoeSA/CQkJIyBJbnRlZ3JhdGVkIENpcmN1aXQgU3lz
dGVtcyBJQ1MxODl4DQojaW5waHkqCWF0IG1paT8gcGh5ID8JCQkjIEludGVs
IDgyNTU1IFBIWXMNCiNpb3BoeSoJYXQgbWlpPyBwaHkgPwkJCSMgSW50ZWwg
ODI1NTMgUEhZcw0KI2x4dHBoeSoJYXQgbWlpPyBwaHkgPwkJCSMgTGV2ZWwg
T25lIExYVC05NzAgUEhZcw0KbnNwaHkqCWF0IG1paT8gcGh5ID8JCQkjIE5T
ODM4NDAgUEhZcw0KI25zcGh5dGVyKiBhdCBtaWk/IHBoeSA/CQkJIyBOUzgz
ODQzIFBIWXMNCiNxc3BoeSoJYXQgbWlpPyBwaHkgPwkJCSMgUXVhbGl0eSBT
ZW1pY29uZHVjdG9yIFFTNjYxMiBQSFlzDQojc3FwaHkqCWF0IG1paT8gcGh5
ID8JCQkjIFNlZXEgODAyMjAvODAyMjEvODAyMjMgUEhZcw0KI3RscGh5Kglh
dCBtaWk/IHBoeSA/CQkJIyBUaHVuZGVyTEFOIFBIWXMNCiN0cXBoeSoJYXQg
bWlpPyBwaHkgPwkJCSMgVERLIFNlbWljb25kdWN0b3IgUEhZcw0KI3VrcGh5
KglhdCBtaWk/IHBoeSA/CQkJIyBnZW5lcmljIHVua25vd24gUEhZcw0KDQoj
IFBDSSBVU0IgY29udHJvbGxlcnMNCiNlaGNpKglhdCBwY2k/IGRldiA/IGZ1
bmN0aW9uID8JIyBFbmhhbmNlZCBIb3N0IENvbnRyb2xsZXINCiNvaGNpKglh
dCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBPcGVuIEhvc3QgQ29udHJvbGxl
cg0KDQojdXNiKglhdCBlaGNpPwkJCSMgVVNCIGJ1cyBzdXBwb3J0DQojdXNi
KglhdCBvaGNpPw0KDQojdWh1YioJYXQgdXNiPwkJCQkJCSMgVVNCIEh1YnMN
CiN1aHViKglhdCB1aHViPyBwb3J0ID8gY29uZmlndXJhdGlvbiA/IGludGVy
ZmFjZSA/DQoNCiN1aGlkZXYqCWF0IHVodWI/IHBvcnQgPyBjb25maWd1cmF0
aW9uID8gaW50ZXJmYWNlID8JIyBVU0IgSElEDQojdWhpZCoJYXQgdWhpZGV2
PyByZXBvcnRpZCA/CQkJCSMgVVNCIEdlbmVyaWMgSElEDQoNCiN1bHB0Kglh
dCB1aHViPyBwb3J0ID8gY29uZmlndXJhdGlvbiA/IGludGVyZmFjZSA/CSMg
VVNCIFByaW50ZXINCg0KI3Vtb2RlbSoJYXQgdWh1Yj8gcG9ydCA/IGNvbmZp
Z3VyYXRpb24gPwkJCSMgVVNCIE1vZGVtDQojdWNvbSoJYXQgdW1vZGVtPw0K
DQojdW1hc3MqCWF0IHVodWI/IHBvcnQgPyBjb25maWd1cmF0aW9uID8gaW50
ZXJmYWNlID8JIyBVU0IgTWFzcyBTdG9yYWdlDQoNCiN1YXVkaW8qCWF0IHVo
dWI/IHBvcnQgPyBjb25maWd1cmF0aW9uID8JCQkjIFVTQiBhdWRpbw0KDQoj
IFVTQiBFdGhlcm5ldCBhZGFwdGVycw0KI2F1ZSoJYXQgdWh1Yj8gcG9ydCA/
CQkjIEFETXRlayBBTjk4NiBQZWdhc3VzIGJhc2VkIGFkYXB0ZXJzDQojY3Vl
KglhdCB1aHViPyBwb3J0ID8JCSMgQ0FUQyBVU0ItRUwxMjAxQSBiYXNlZCBh
ZGFwdGVycw0KI2t1ZSoJYXQgdWh1Yj8gcG9ydCA/CQkjIEthd2FzYWtpIExT
SSBLTDVLVVNCMTAxQiBiYXNlZCBhZGFwdGVycw0KI3VheCoJYXQgdWh1Yj8g
cG9ydCA/CQkjIEFTSVggQVg4ODE3MiBiYXNlZCBhZGFwdGVycw0KI3VybCoJ
YXQgdWh1Yj8gcG9ydCA/CQkjIFJlYWx0ZWsgUlRMODE1MEwgYmFzZWQgYWRh
cHRlcnMNCg0KI3VzY2FubmVyKiBhdCB1aHViPyBwb3J0ID8JCQkJIyBVU0Ig
c2Nhbm5lcnMNCiN1eWFwKglhdCB1aHViPyBwb3J0ID8JCQkJCSMgWUBQIGZp
cm13YXJlIGxvYWRlcg0KI3VnZW4qCWF0IHVodWI/IHBvcnQgPyBjb25maWd1
cmF0aW9uID8gaW50ZXJmYWNlID8JIyBVU0IgR2VuZXJpYyBkcml2ZXINCg0K
IyBQQ0kgSUVFRTEzOTQgY29udHJvbGxlcnMNCiNmd29oY2kqCWF0IHBjaT8g
ZGV2ID8gZnVuY3Rpb24gPwkjIElFRUUxMzk0IE9wZW4gSG9zdCBDb250cm9s
bGVyDQojZndseW54KiBhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBJRUVF
MTM5NCBUSSBMeW54IENvbnRyb2xsZXINCiNmdyoJYXQgZndidXM/CQkJIyBJ
UCBvdmVyIDEzOTQNCg0KIyBJRUVFMTM5NCBub2Rlcw0KI2Z3bm9kZSogYXQg
ZndidXM/IGlkaGkgPyBpZGxvID8NCiNzYnBzY3NpKiBhdCBmd25vZGU/DQoN
CiMjIExvb3BiYWNrIG5ldHdvcmsgaW50ZXJmYWNlOyByZXF1aXJlZA0KcHNl
dWRvLWRldmljZQlsb29wDQoNCiMjIFNMSVAgYW5kIENTTElQIGludGVyZmFj
ZXMsIGZvciBJUCBvdmVyIGEgc2VyaWFsIGxpbmUuDQojcHNldWRvLWRldmlj
ZQlzbAkJMg0KDQojIyBQUFAsIHRoZSBzdWNjZXNzb3IgdG8gU0xJUC4gIFNl
ZSBwcHBkKDgpLg0KI3BzZXVkby1kZXZpY2UJcHBwCQkyDQoNCiMjIFBQUCBv
dmVyIEV0aGVybmV0IChSRkMgMjUxNikNCiNwc2V1ZG8tZGV2aWNlCXBwcG9l
DQoNCiMjIFN0YXJtb2RlIFJhZGlvIElQLCBhIHNwZWNpYWwgaGFyZHdhcmUg
bmV0d29yayBkZXZpY2UuDQojcHNldWRvLWRldmljZQlzdHJpcAkJMQ0KDQoj
IyBOZXR3b3JrICJ0dW5uZWwiIGRldmljZSwgYWxsb3dpbmcgcHJvdG9jb2wg
c3RhY2tzIHRvIHJ1biBpbiB0aGUgdXNlcmxhbmQuDQojIyBUaGlzIGlzIHVz
ZWQgYnkgdGhlIHRoaXJkLXBhcnR5IHVzZXItbW9kZSAicHBwIiBwcm9ncmFt
LCBhbmQgb3RoZXJzLg0KI3BzZXVkby1kZXZpY2UJdHVuCQk0DQoNCiMjIEdl
bmVyaWMgTDMgb3ZlciBJUCB0dW5uZWwNCiNwc2V1ZG8tZGV2aWNlCWdyZQkJ
MgkjIGdlbmVyaWMgTDMgb3ZlciBJUCB0dW5uZWwNCg0KIyMgQmVya2VsZXkg
UGFja2V0IEZpbHRlciwgcmVxdWlyZWQgdG8gcnVuIFJBUlBELiAgQSBnZW5l
cmljIEMtbGFuZ3VhZ2UNCiMjIGludGVyZmFjZSB0aGF0IGFsbG93cyBzZWxl
Y3RpdmUgZXhhbWluaW5nIG9mIGluY29taW5nIHBhY2tldHMuDQpwc2V1ZG8t
ZGV2aWNlCWJwZmlsdGVyCTgNCg0KIyMgSUVFRSA4MDIuMXEgZW5jYXBzdWxh
dGlvbg0KI3BzZXVkby1kZXZpY2UJdmxhbg0KDQojIyBTaW1wbGUgaW50ZXIt
bmV0d29yayB0cmFmZmljIGJyaWRnaW5nDQojcHNldWRvLWRldmljZQlicmlk
Z2UNCiNvcHRpb25zIAlCUklER0VfSVBGCQkjIGJyaWRnZSB1c2VzIElQL0lQ
djYgcGZpbCBob29rcyB0b28NCg0KIyMgSVAgRmlsdGVyLCB1c2VkIGluIGZp
cmV3YWxsIGFuZCBOQVQgYXBwbGljYXRpb25zLiAgU2VlIGlwbmF0KDgpIGZv
cg0KIyMgb25lIGV4YW1wbGUgb2YgdGhlIHVzZSBvZiB0aGUgSVAgRmlsdGVy
Lg0KcHNldWRvLWRldmljZQlpcGZpbHRlcg0KDQojIyBmb3IgSVB2Ng0KI3Bz
ZXVkby1kZXZpY2UJZ2lmCQk0CSMgSVB2WzQ2XSBvdmVyIElQdls0Nl0gdHVu
bmVsIChSRkMxOTMzKQ0KI3BzZXVkby1kZXZpY2UJZmFpdGgJCTEJIyBJUHZb
NDZdIHRjcCByZWxheSB0cmFuc2xhdGlvbiBpL2YNCiNwc2V1ZG8tZGV2aWNl
CXN0ZgkJMQkjIDZ0bzQgSVB2NiBvdmVyIElQdjQgZW5jYXBzdWxhdGlvbg0K
DQoNCiMjIyMgQ2FyZEJ1cyBhbmQgUENNQ0lBIGRldmljZXMNCg0KIyBQQ0kg
Q2FyZEJ1cyBicmlkZ2Ugc3VwcG9ydA0KI2NiYioJYXQgcGNpPyBkZXYgPyBm
dW5jdGlvbiA/DQojY2FyZHNsb3QqIGF0IGNiYj8NCg0KIyBDYXJkQnVzIGJ1
cyBzdXBwb3J0DQojY2FyZGJ1cyogYXQgY2FyZHNsb3Q/DQojcGNtY2lhKiBh
dCBjYXJkc2xvdD8NCg0KIyMgQ2FyZEJ1cyBjYXJkczsgVVQgbWFya3MgdW50
ZXN0ZWQuDQoNCiMgQ2FyZEJ1cyBzZXJpYWwgaW50ZXJmYWNlcw0KI2NvbSoJ
YXQgY2FyZGJ1cz8gZGV2ID8gZnVuY3Rpb24gPwkjIE1vZGVtcyBhbmQgc2Vy
aWFsIGNhcmRzIFVUDQoNCiMgQ2FyZEJ1cyBTQ1NJIGNvbnRyb2xsZXJzDQoj
YWR2KglhdCBjYXJkYnVzPyBkZXYgPyBmdW5jdGlvbiA/CSMgQWR2YW5TeXMg
MTIwMFtBLEJdLCA5eHhbVSxVQV0gU0NTSSBVVA0KI2FoYyoJYXQgY2FyZGJ1
cz8gZGV2ID8gZnVuY3Rpb24gPwkjIEFkYXB0ZWMgQURQLTE0ODAgVVQNCiNu
anMqCWF0IGNhcmRidXM/IGRldiA/IGZ1bmN0aW9uID8JIyBXb3JrYml0IE5p
bmphU0NTSS0zMg0KDQojIENhcmRCdXMgbmV0d29yayBpbnRlcmZhY2VzDQoj
ZXgqCWF0IGNhcmRidXM/IGRldiA/IGZ1bmN0aW9uID8JIyAzQ29tIDNDNTc1
VFggVVQNCiNmeHAqCWF0IGNhcmRidXM/IGRldiA/IGZ1bmN0aW9uID8JIyBJ
bnRlbCBpODI1NXggVVQNCiNydGsqCWF0IGNhcmRidXM/IGRldiA/IGZ1bmN0
aW9uID8JIyBSZWFsdGVrIDgxMjkvODEzOSBVVA0KI3RscCoJYXQgY2FyZGJ1
cz8gZGV2ID8gZnVuY3Rpb24gPwkjIERFQ2NoaXAgMjExNDMgVVQNCg0KIyBD
YXJkQnVzIFVTQiBjb250cm9sbGVycw0KI2VoY2kqCWF0IGNhcmRidXM/IGRl
diA/IGZ1bmN0aW9uID8JIyBFbmhhbmNlZCBIb3N0IENvbnRyb2xsZXINCiNv
aGNpKglhdCBjYXJkYnVzPyBkZXYgPyBmdW5jdGlvbiA/CSMgT3BlbiBIb3N0
IENvbnRyb2xsZXINCg0KIyBDYXJkQnVzIElFRUUxMzk0IGNvbnRyb2xsZXJz
DQojZndvaGNpKiBhdCBjYXJkYnVzPyBkZXYgPyBmdW5jdGlvbiA/CSMgSUVF
RTEzOTQgT3BlbiBIb3N0IENvbnRyb2xsZXIgVVQNCg0KIyMgUENNQ0lBIGNh
cmRzOyBVVCBtYXJrcyB1bnRlc3RlZC4NCg0KIyBQQ01DSUEgc2VyaWFsIGlu
dGVyZmFjZXMNCiNjb20qCWF0IHBjbWNpYT8gZnVuY3Rpb24gPwkJIyBNb2Rl
bXMgYW5kIHNlcmlhbCBjYXJkcw0KDQojcGNtY29tKiBhdCBwY21jaWE/IGZ1
bmN0aW9uID8JCSMgUENNQ0lBIG11bHRpLXBvcnQgc2VyaWFsIGNhcmRzIFVU
DQojY29tKglhdCBwY21jb20/IHNsYXZlID8JCSMgLi4uYW5kIHRoZSBzbGF2
ZSBkZXZpY2VzDQoNCiMgUENNQ0lBIFNDU0kgY29udHJvbGxlcnMNCiNhaWMq
CWF0IHBjbWNpYT8gZnVuY3Rpb24gPwkJIyBBZGFwdGVjIEFQQS0xNDYwIFND
U0kgVVQNCiNlc3AqCWF0IHBjbWNpYT8gZnVuY3Rpb24gPwkJIyBRbG9naWMg
RVNQNDA2L0ZBUzQwOCBTQ1NJIFVUDQoNCiMgUENNQ0lBIElERSBjb250cm9s
bGVycw0KI3dkYyoJYXQgcGNtY2lhPyBmdW5jdGlvbiA/DQoNCiMgUENNQ0lB
IG5ldHdvcmsgaW50ZXJmYWNlcw0KI2FuKglhdCBwY21jaWE/IGZ1bmN0aW9u
ID8JCSMgQWlyb25ldCBQQzQ1MDAvUEM0ODAwICg4MDIuMTEpIFVUDQojYXdp
KglhdCBwY21jaWE/IGZ1bmN0aW9uID8JCSMgQmF5U3RhY2sgNjUwLzY2MCAo
ODAyLjExRkgvRFMpIFVUDQojY253KglhdCBwY21jaWE/IGZ1bmN0aW9uID8J
CSMgWGlyY29tL05ldHdhdmUgQWlyU3VyZmVyIFVUDQojZXAqCWF0IHBjbWNp
YT8gZnVuY3Rpb24gPwkJIyAzQ29tIDNjNTg5IGFuZCAzYzU2MiBFdGhlcm5l
dA0KI21iZSoJYXQgcGNtY2lhPyBmdW5jdGlvbiA/CQkjIE1CODY5NnggYmFz
ZWQgRXRoZXJuZXQgVVQNCiNuZSoJYXQgcGNtY2lhPyBmdW5jdGlvbiA/CQkj
IE5FMjAwMC1jb21wYXRpYmxlIEV0aGVybmV0DQojcmF5KglhdCBwY21jaWE/
IGZ1bmN0aW9uID8JCSMgUmF5dGhlb24gUmF5bGluayAoODAyLjExKSBVVA0K
I3NtKglhdCBwY21jaWE/IGZ1bmN0aW9uID8JCSMgTWVnYWhlcnR6IEV0aGVy
bmV0IFVUDQojIHRyIGF0IHBjbWNpYSBoYXMgcHJvYmxlbXMgd2l0aCBDYXJk
YnVzIGJyaWRnZXMNCiN0cioJYXQgcGNtY2lhPyBmdW5jdGlvbiA/CQkjIFRS
T1BJQyBiYXNlZCBUb2tlbi1SaW5nIFVUDQojd2kqCWF0IHBjbWNpYT8gZnVu
Y3Rpb24gPwkJIyBMdWNlbnQvSW50ZXJzaWwgV2F2ZUxhbiBJRUVFICg4MDIu
MTEpDQojeGkqCWF0IHBjbWNpYT8gZnVuY3Rpb24gPwkJIyBYaXJjb20gQ3Jl
ZGl0Q2FyZCBFdGhlcm5ldCBVVA0KDQojbWh6YyoJYXQgcGNtY2lhPyBmdW5j
dGlvbiA/CQkjIE1lZ2FoZXJ0eiBFdGhlcm5ldC9Nb2RlbSBjb21ibyBjYXJk
cw0KI2NvbSoJYXQgbWh6Yz8NCiNzbSoJYXQgbWh6Yz8NCg0KDQojIyMjIEF1
ZGlvIGFuZCB2aWRlbyBkZXZpY2VzDQoNCiMjIC9kZXYvYXVkaW8gc3VwcG9y
dCAoYGF1ZGlvY3MnIHBsdXMgYGF1ZGlvJykNCiMjDQojYXVkaW9jcyoJYXQg
c2J1cz8gc2xvdCA/IG9mZnNldCA/CSMgU1VOVyxDUzQyMzENCiNhdWRpb2Nz
KglhdCBlYnVzPwkJCSMgU1VOVyxDUzQyMzEgaW4gVTUvVTEwDQojYXV0cmkq
CQlhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBCbGFkZSAxMDAgJ3NvdW5k
Jw0KDQojYXVkaW8qCQlhdCBhdWRpb2J1cz8NCg0KI21pZGkqCQlhdCBtaWRp
YnVzPw0KDQoNCiMjIFN1biAiYnd0d28iIGJsYWNrIGFuZCB3aGl0ZSBmcmFt
ZWJ1ZmZlciwgZm91bmQgb24gc3VuNCwgc3VuNGMsIGFuZCBzdW40bQ0KIyMg
c3lzdGVtcy4gIElmIHlvdXIgc3VuNCBzeXN0ZW0gaGFzIGEgY2dmb3VyIGlu
c3RhbGxlZCBpbiB0aGUgUDQgc2xvdCwNCiMjIHRoZSBQNCBlbnRyaWVzIGZv
ciAiYnd0d28iIHdpbGwgYXR0YWNoIHRvIHRoZSBvdmVybGF5IHBsYW5lIG9m
IHRoZQ0KIyMgImNnZm91ciIuDQoNCiNid3R3bzAJCWF0IHNidXM/IHNsb3Qg
PyBvZmZzZXQgPwkjIHN1bjRjIGFuZCBzdW40bQ0KI2J3dHdvKgkJYXQgc2J1
cz8gc2xvdCA/IG9mZnNldCA/DQoNCiMjIFN1biAiY2d0aHJlZSIgU2J1cyBj
b2xvciBmcmFtZWJ1ZmZlcg0KI2NndGhyZWUwCWF0IHNidXM/IHNsb3QgPyBv
ZmZzZXQgPw0KI2NndGhyZWUqCWF0IHNidXM/IHNsb3QgPyBvZmZzZXQgPw0K
DQojIyBTdW4gImNnc2l4IiBhY2NlbGVyYXRlZCBjb2xvciBmcmFtZWJ1ZmZl
ci4NCmNnc2l4MAkJYXQgc2J1cz8gc2xvdCA/IG9mZnNldCA/DQojY2dzaXgq
CQlhdCBzYnVzPyBzbG90ID8gb2Zmc2V0ID8NCg0KIyMgU3VuIEZGQiBub3Qg
c3VwcG9ydGVkDQojZmZiKgkJYXQgbWFpbmJ1czANCiN3c2Rpc3BsYXkqCWF0
IGZmYj8NCg0KIyMjIyBPdGhlciBkZXZpY2UgY29uZmlndXJhdGlvbg0KDQoj
IyMgT3RoZXIgcHNldWRvLWRldmljZXMNCg0KI3BzZXVkby1kZXZpY2UgCWNy
eXB0bwkJCSMgb3BlbmNyeXB0byBmcmFtZXdvcmsNCg0KIyMgUHNldWRvIHR0
eXMsIHJlcXVpcmVkIGZvciBuZXR3b3JrIGxvZ2lucyBhbmQgcHJvZ3JhbXMg
bGlrZSBzY3JlZW4uDQoNCnBzZXVkby1kZXZpY2UJcHR5CQkJIyBwc2V1ZG8t
dHR5cyAoZm9yIG5ldHdvcmssIGV0Yy4pDQoNCiMjIFJhbmRvbSBkZXZpY2Us
IHVzZWQgdG8gaW1wbGVtZW50IC9kZXYvcmFuZG9tIChhIHNvdXJjZSBvZiBy
YW5kb20gbm9pc2UpLA0KIyMgYW5kIGdlbmVyYXRlIHJhbmRvbW5lc3MgZm9y
IHNvbWUga2VybmVsIGZvcm11bGFlLg0KDQpwc2V1ZG8tZGV2aWNlCXJuZA0K
DQpwc2V1ZG8tZGV2aWNlCWNsb2NrY3RsCQkjIHVzZXIgY29udHJvbCBvZiBj
bG9jayBzdWJzeXN0ZW0NCnBzZXVkby1kZXZpY2UJa3N5bXMJCQkjIC9kZXYv
a3N5bXMNCiMJJE5ldEJTRDogc3RkLnNwYXJjNjQtNjQsdiAxLjEgMjAwMS8x
MC8yNCAxODo0OTo0MCB0aG9ycGVqIEV4cCAkDQoNCiMNCiMgTWFuZGF0b3J5
IE5ldEJTRC9zcGFyYzY0IGtlcm5lbCBvcHRpb25zIHdoZW4gYnVpbGRpbmcg
NjQtYml0IGtlcm5lbHMuDQojIE5vdGUsIHlvdSBzdGlsbCBtdXN0IGluY2x1
ZGUgInN0ZC5zcGFyYzY0IiBpbiB5b3VyIGtlcm5lbCBjb25maWcgZmlsZS4N
CiMgTm90ZSB0aGlzIGZpbGUgTVVTVCBiZSBpbmNsdWRlZCAqYWZ0ZXIqICJz
dGQuc3BhcmM2NCIuDQojDQoNCm1ha2VvcHRpb25zCUxQNjQ9InllcyIJIyBl
bmFibGUgNjQtYml0IGxvZ2ljIGluIGtlcm5lbCBNYWtlZmlsZQ0KDQpvcHRp
b25zIAlFWEVDX0VMRjY0CSMgNjQtYml0IE5ldEJTRCBhbmQgU3VuT1MgNSBi
aW5zDQojICROZXRCU0Q6IEdFTkVSSUMsdiAxLjUwIDIwMDMvMDIvMTIgMDg6
MTk6MDIgbWFydGluIEV4cCAkDQojDQojIEdFTkVSSUMgbWFjaGluZSBkZXNj
cmlwdGlvbiBmaWxlDQojIA0KIyBUaGlzIG1hY2hpbmUgZGVzY3JpcHRpb24g
ZmlsZSBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBkZWZhdWx0IE5ldEJTRA0K
IyBrZXJuZWwuICBUaGUgZ2VuZXJpYyBrZXJuZWwgZG9lcyBub3QgaW5jbHVk
ZSBhbGwgb3B0aW9ucywgc3Vic3lzdGVtcw0KIyBhbmQgZGV2aWNlIGRyaXZl
cnMsIGJ1dCBzaG91bGQgYmUgdXNlZnVsIGZvciBtb3N0IGFwcGxpY2F0aW9u
cy4NCiMNCiMgVGhlIG1hY2hpbmUgZGVzY3JpcHRpb24gZmlsZSBjYW4gYmUg
Y3VzdG9taXNlZCBmb3IgeW91ciBzcGVjaWZpYw0KIyBtYWNoaW5lIHRvIHJl
ZHVjZSB0aGUga2VybmVsIHNpemUgYW5kIGltcHJvdmUgaXRzIHBlcmZvcm1h
bmNlLg0KIw0KIyBGb3IgZnVydGhlciBpbmZvcm1hdGlvbiBvbiBjb21waWxp
bmcgTmV0QlNEIGtlcm5lbHMsIHNlZSB0aGUgY29uZmlnKDgpDQojIG1hbiBw
YWdlLg0KIw0KIyBGb3IgZnVydGhlciBpbmZvcm1hdGlvbiBvbiBoYXJkd2Fy
ZSBzdXBwb3J0IGZvciB0aGlzIGFyY2hpdGVjdHVyZSwgc2VlDQojIHRoZSBp
bnRybyg0KSBtYW4gcGFnZS4gIEZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIGFi
b3V0IGtlcm5lbCBvcHRpb25zDQojIGZvciB0aGlzIGFyY2hpdGVjdHVyZSwg
c2VlIHRoZSBvcHRpb25zKDQpIG1hbiBwYWdlLiAgRm9yIGFuIGV4cGxhbmF0
aW9uDQojIG9mIGVhY2ggZGV2aWNlIGRyaXZlciBpbiB0aGlzIGZpbGUgc2Vl
IHRoZSBzZWN0aW9uIDQgbWFuIHBhZ2UgZm9yIHRoZQ0KIyBkZXZpY2UuDQoN
Cg0KI2lkZW50IAkiR0VORVJJQy0kUmV2aXNpb246IDEuNTAgJCINCg0KI29w
dGlvbnMgCUNPTVBBVF9ORVRCU0QzMgkjIE5ldEJTRC9zcGFyYyBiaW5hcnkg
Y29tcGF0aWJpbGl0eQ0KI29wdGlvbnMgCUNPTVBBVF9TVlI0XzMyCSMgU3Vu
T1MgNS54IDMyLWJpdCBiaW5hcnkgY29tcGF0aWJpbGl0eQ0KDQojIERFQlVH
IG9wdGlvbnMNCg0Kb3B0aW9ucyAJTE9DS0RFQlVHDQpvcHRpb25zIAlESUFH
Tk9TVElDDQojbWFrZW9wdGlvbnMJREVCVUc9Ii1nIg0Kb3B0aW9ucyAJREVC
VUcNCiNvcHRpb25zIAlTWVNDQUxMX0RFQlVHDQo=
---559023410-326116574-1095166457=:4712--