Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Sep 2003 09:20:23 +0200 (CEST)
From:      rysanek@fccps.cz
To:        Scott Long <scott_long@btc.adaptec.com>
Cc:        Buki <dev@null.cz>
Subject:   FreeBSD 4.8, ASR2120, SMP, degraded RAID1/mirror => storage failure
Message-ID:  <Pine.LNX.4.33.0309050905530.13033-301000@usti.fccps.cz>

next in thread | raw e-mail | index | archive | help
  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.

--8323328-1260086421-1062746423=:13033
Content-Type: TEXT/PLAIN; charset=US-ASCII

Dear Mr. Long,

firstly, let me thank you for maintaining the Adaptec RAID drivers.

I've got a problem with the Adaptec 2120S in FreeBSD 4.8-RELEASE
and I haven't found any notes about that in the mailing lists.

In SMP mode, upon a RAID array degradation event (a disk is
ripped out), the system locks up almost entirely, stuck at
disk operations.
The same happens upon boot with a rebuilding/degraded array
- building from scratch or rebuilding after a disk failure,
or even just running off a single disk while the other one
is dead (no rebuild going on in the background).

The problem doesn't occur in UP mode (when options SMP and
APIC_IO are off) - that way the host system works happily
just as if there was nothing wrong with the array (except
for a few **Monitor** warnings and the LEDs going disco).
The problem also doesn't occur as long as the RAID is
"optimal".
The problem was only observed and tested in a configuration
with two disks in a mirror (one or two logical "containers"
on them), no hot spare.


My system configuration is:

2x Intel P4 Xeon @ 2.4 GHz, 533MHz FSB
1 GB RAM (dual-channel, 2x 512 MB DIMM DDR266, ECC, REG)
ServerWorks GC-LE chipset, PCI-X 64bit@133MHz
2x3 SCA backplane with two GEM318 SAF-TE processors
On one channel, there are two pieces of Seagate ST336607LC (36 GB)
(+ 2x onboard BCM570x GbETH, 2x onboard AIC7902,
  onboard ATI RageXL PCI 8MB, etc)

The array on the AAC controller is the only disk drive in the
system -> the machine is booting from it.

To the best of my knowledge, the mechanical and electrical
parts of the U320 system are fine - they've been working for
me in Linux and with other SCSI controllers just fine, after
all the dual-channel onboard U320 HBA works just fine, too.


Attached is a tarball with debugging logs.

There are three directories, containing three different
combinations of debug options (see below items A to C).
Each directory contains six log files: a boot from a clean
array, a disk failure (somewhat improperly simulated by
ripping the SCA enclosure out), and a boot from a degraded
volume - all of that for a UP and SMP kernel. 3*2=6.

I've tried the following different debugging options and levels:
A) full CAM debug and AAC_DEBUG=2
B) AAC_DEBUG=2
C) AAC_DEBUG=4  (after I found in the sources that L4 exists)

With A), everything worked as described above.
         Just the CAM debugging messages probably cluttered the
         kernel ring buffer to the extent that some of the AAC_DEBUG
         and generic messages are missing in the log, such as those
         announcing the detection of /dev/aacd0 and /dev/aacd1
         (the two RAID volumes/containers)
With B), upon runtime disk failure, the fault occured even in UP configuration!
         -- while UP kernels without debugging continued to operate,
         and even the UP kernel as per B) continued to run fine
         after reboot, on the failed array.
With C), __SMP__: the machine behaved as expected (dead) upon
         runtime disk failure, but consistently managed to boot with
         the degraded array while it was not rebuilding (=anomaly)
         - then it crashed when I logged in and told it to `reboot`.
         When I plugged the disk drive back and the array started
         rebuilding, the SMP kernel consistently failed to boot.
         __UP__: the machine was consistently failing miserably
         upon array degradation (=anomaly). It did boot fine
         consistently with a degraded array (not rebuilding).
         It failed at boot consistently with a rebuilding array.

So it seems that the serial logging / debugging stuff modifies
timing, and hence the behavior with debugging on is different.
Reminds me of the Heisenbergian uncertainty.

Still, without debugging, the consistent pattern is:
UP = boots fine from a clean array, survives array degradation
     and boots from a degraded array.
SMP = boots fine from a clean array, does not survive array degradation
      and fails to boot from a degraded array.


While I was trying to find a typical healthy "SCSI request/response"
pattern in the logs, it seemed to me that quite often some of the
debugging messages were missing, and some were clearly cut in
half or so - perhaps I should check my RS232 cabling? Though
I really think that my cabling is all right...

>From the debug listings it would seem that the AAC driver
on the host PC gets a zero-padded FIB from the controller,
and then an endless row of interrupts.
This happens immediately after a disk failure or after driver
initialization upon boot.

The following is a piece of pseudo-code for your reference,
based on /usr/src/sys/dev/aac.c. The aac_host_command() forms
the body of a kthread that gets started upon adapter
initialization. Note the line with "!!!":

aac_host_command()
{
   while(true)
   {
      tsleep();

      for (;;)
      {
         // check for enqueued FIBs
         aac_dequeue_fib(AAC_HOST_NORM_CMD_QUEUE);

         if (found one)
         {
            // process it
         }
         else
         {
            break; // go to sleep again
         }
      }
   }
}

aac_dequeue_fib()
{
   if (ci != pi)  // consumer/producer indices
   {
      // there are some FIBs in the queue
      // !!! at the same time, the FIB is zero-padded !!!
   }
   else return(ENOENT);
}

Another symptom is that, upon array degradation, the controller
seems to reset the RAID-private SCSI bus (I hope that's what
the **Monitor** message says).

The trouble is that both the aac_host_command() wakeup with the
zero-padded FIB and the monitor messages appear in asynchronous
context (in a separate kthread or in an interrupt) and I'm not
as skilled as to say which previous action of the driver is
the immediate cause.

More on the behavior of the disk LEDs:
These LEDs on my server case are controlled by the SCA/SAF-TE
chip (GEM318).
- When the array is degraded but operating normally, the dead
disk's LED is dark and the live disk's led flashes green,
indicating normal storage transfers.
- When a degraded array is rebuilding, the two disk LEDs dance
in shades of green to orange (both the green and red
pads flashing).
- When the whole controller or the RAID-private SCSI channel
is being reset, both the two LEDs shine a steady red.
- When the machine fails at boot with a rebuilding array,
the LEDs often turn red for a few seconds (reset?) and then
one of them remains red and the other one starts dancing
green/orange... and the reset may come back a few times
before the machine locks up entirely or the BSD manages
to do an auto-reboot. Or the LED's just stay red and the
machine hangs.
- When the machine boots and runs fine (i.e., with a UP kernel
under normal conditions), the disk LED's never go red, except
for a cold reset of the whole PC. When the array is rebuilding,
the LED's keep dancing merrily between green and orange
throughout the boot process.

I guess this would indicate that it's not just the BSD driver
getting messed up - the controller probably also gets
seriously confused. Is that a chicken-vs.-egg style puzzle?


As a side note: it seems interesting to me that, regardless
of whethere debugging and SMP is on or off in any particular
combination, the kernel always rushes through to
"Waiting 15 seconds for the SCSI devices to settle"
and _immediately_ reports the RAID containers.
Only then it waits those fifteen seconds before proceeding
to detect the regular SCSI devices.


Attached is my kernel config file and a listing of
`lspci -lv`

I can't think of anything else to tell you at the moment.
Ask me if you need further help - perhaps I can modify the
debugging flags and try again, add some more instrumentation
hooks here and there to focus on particular points in the
code etc.

Any ideas are welcome.
Sorry about wasting your time by sending such an eloquent
explanation.
Thanks for the great job that you're doing.


Frank Rysanek

--8323328-1260086421-1062746423=:13033
Content-Type: TEXT/plain; name="lspci.txt"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33.0309050920230.13033@usti.fccps.cz>
Content-Description: 
Content-Disposition: attachment; filename="lspci.txt"

Y2hpcDBAcGNpMDowOjA6CWNsYXNzPTB4MDYwMDAwIGNhcmQ9MHgwMDAwMDAw
MCBjaGlwPTB4MDAxNDExNjYgcmV2PTB4MzEgaGRyPTB4MDANCiAgICB2ZW5k
b3IgICA9ICdSZWxpYW5jZSBDb21wdXRlciBDb3JwLi9TZXJ2ZXJXb3JrcycN
CiAgICBkZXZpY2UgICA9ICdDTkIyMC1IRSBIb3N0IEJyaWRnZScNCiAgICBj
bGFzcyAgICA9IGJyaWRnZQ0KICAgIHN1YmNsYXNzID0gSE9TVC1QQ0kNCmNo
aXAxQHBjaTA6MDoxOgljbGFzcz0weDA2MDAwMCBjYXJkPTB4MDAwMDAwMDAg
Y2hpcD0weDAwMTQxMTY2IHJldj0weDAwIGhkcj0weDAwDQogICAgdmVuZG9y
ICAgPSAnUmVsaWFuY2UgQ29tcHV0ZXIgQ29ycC4vU2VydmVyV29ya3MnDQog
ICAgZGV2aWNlICAgPSAnQ05CMjAtSEUgSG9zdCBCcmlkZ2UnDQogICAgY2xh
c3MgICAgPSBicmlkZ2UNCiAgICBzdWJjbGFzcyA9IEhPU1QtUENJDQpjaGlw
MkBwY2kwOjA6MjoJY2xhc3M9MHgwNjAwMDAgY2FyZD0weDAwMDAwMDAwIGNo
aXA9MHgwMDE1MTE2NiByZXY9MHgwMCBoZHI9MHgwMA0KICAgIHZlbmRvciAg
ID0gJ1JlbGlhbmNlIENvbXB1dGVyIENvcnAuL1NlcnZlcldvcmtzJw0KICAg
IGRldmljZSAgID0gJ0NNSUMtR0MgSG9zdGJyaWRnZSBhbmQgTUNIJw0KICAg
IGNsYXNzICAgID0gYnJpZGdlDQogICAgc3ViY2xhc3MgPSBIT1NULVBDSQ0K
bm9uZTBAcGNpMDoyOjA6CWNsYXNzPTB4MDMwMDAwIGNhcmQ9MHg4MDA0MTAw
MiBjaGlwPTB4NDc1MjEwMDIgcmV2PTB4MjcgaGRyPTB4MDANCiAgICB2ZW5k
b3IgICA9ICdBVEkgVGVjaG5vbG9naWVzJw0KICAgIGRldmljZSAgID0gJ1Jh
Z2UgWEwgUENJJw0KICAgIGNsYXNzICAgID0gZGlzcGxheQ0KICAgIHN1YmNs
YXNzID0gVkdBDQppc2FiMEBwY2kwOjE1OjA6CWNsYXNzPTB4MDYwMTAwIGNh
cmQ9MHgwMjAxMTE2NiBjaGlwPTB4MDIwMTExNjYgcmV2PTB4OTMgaGRyPTB4
MDANCiAgICB2ZW5kb3IgICA9ICdSZWxpYW5jZSBDb21wdXRlciBDb3JwLi9T
ZXJ2ZXJXb3JrcycNCiAgICBkZXZpY2UgICA9ICdDU0I1IFBDSSB0byBJU0Eg
QnJpZGdlJw0KICAgIGNsYXNzICAgID0gYnJpZGdlDQogICAgc3ViY2xhc3Mg
PSBQQ0ktSVNBDQphdGFwY2kwQHBjaTA6MTU6MToJY2xhc3M9MHgwMTAxOGEg
Y2FyZD0weDAyMTIxMTY2IGNoaXA9MHgwMjEyMTE2NiByZXY9MHg5MyBoZHI9
MHgwMA0KICAgIHZlbmRvciAgID0gJ1JlbGlhbmNlIENvbXB1dGVyIENvcnAu
L1NlcnZlcldvcmtzJw0KICAgIGRldmljZSAgID0gJ0NTQjUgUENJIEVJREUg
Q29udHJvbGxlcicNCiAgICBjbGFzcyAgICA9IG1hc3Mgc3RvcmFnZQ0KICAg
IHN1YmNsYXNzID0gQVRBDQpvaGNpMEBwY2kwOjE1OjI6CWNsYXNzPTB4MGMw
MzEwIGNhcmQ9MHgwMjIwMTE2NiBjaGlwPTB4MDIyMDExNjYgcmV2PTB4MDUg
aGRyPTB4MDANCiAgICB2ZW5kb3IgICA9ICdSZWxpYW5jZSBDb21wdXRlciBD
b3JwLi9TZXJ2ZXJXb3JrcycNCiAgICBkZXZpY2UgICA9ICdPU0I0IE9wZW5I
Q0kgQ29tcGxpYW50IFVTQiBDb250cm9sbGVyJw0KICAgIGNsYXNzICAgID0g
c2VyaWFsIGJ1cw0KICAgIHN1YmNsYXNzID0gVVNCDQpjaGlwM0BwY2kwOjE1
OjM6CWNsYXNzPTB4MDYwMDAwIGNhcmQ9MHgwMjMwMTE2NiBjaGlwPTB4MDIy
NTExNjYgcmV2PTB4MDAgaGRyPTB4MDANCiAgICB2ZW5kb3IgICA9ICdSZWxp
YW5jZSBDb21wdXRlciBDb3JwLi9TZXJ2ZXJXb3JrcycNCiAgICBkZXZpY2Ug
ICA9ICdDU0I1IFBDSSBCcmlkZ2UnDQogICAgY2xhc3MgICAgPSBicmlkZ2UN
CiAgICBzdWJjbGFzcyA9IEhPU1QtUENJDQpjaGlwNEBwY2kwOjE3OjA6CWNs
YXNzPTB4MDYwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDEwMTExNjYg
cmV2PTB4MDMgaGRyPTB4MDANCiAgICB2ZW5kb3IgICA9ICdSZWxpYW5jZSBD
b21wdXRlciBDb3JwLi9TZXJ2ZXJXb3JrcycNCiAgICBkZXZpY2UgICA9ICdD
SU9CLVgyJw0KICAgIGNsYXNzICAgID0gYnJpZGdlDQogICAgc3ViY2xhc3Mg
PSBIT1NULVBDSQ0KY2hpcDVAcGNpMDoxNzoyOgljbGFzcz0weDA2MDAwMCBj
YXJkPTB4MDAwMDAwMDAgY2hpcD0weDAxMDExMTY2IHJldj0weDAzIGhkcj0w
eDAwDQogICAgdmVuZG9yICAgPSAnUmVsaWFuY2UgQ29tcHV0ZXIgQ29ycC4v
U2VydmVyV29ya3MnDQogICAgZGV2aWNlICAgPSAnQ0lPQi1YMicNCiAgICBj
bGFzcyAgICA9IGJyaWRnZQ0KICAgIHN1YmNsYXNzID0gSE9TVC1QQ0kNCmFh
YzBAcGNpMzo0OjA6CWNsYXNzPTB4MDEwNDAwIGNhcmQ9MHgwMjg2OTAwNSBj
aGlwPTB4MDI4NTkwMDUgcmV2PTB4MDEgaGRyPTB4MDANCiAgICB2ZW5kb3Ig
ICA9ICdBZGFwdGVjJw0KICAgIGRldmljZSAgID0gJ0FBQy1SQUlEIFJBSUQg
Q29udHJvbGxlcicNCiAgICBjbGFzcyAgICA9IG1hc3Mgc3RvcmFnZQ0KICAg
IHN1YmNsYXNzID0gUkFJRA0KYmdlMEBwY2k0OjI6MDoJY2xhc3M9MHgwMjAw
MDAgY2FyZD0weDAwMDgxNGU0IGNoaXA9MHgxNjQ1MTRlNCByZXY9MHgxNSBo
ZHI9MHgwMA0KICAgIHZlbmRvciAgID0gJ0Jyb2FkY29tIENvcnBvcmF0aW9u
Jw0KICAgIGRldmljZSAgID0gJ0JDTTU3MDEgTmV0WHRyZW1lIEdpZ2FiaXQg
RXRoZXJuZXQnDQogICAgY2xhc3MgICAgPSBuZXR3b3JrDQogICAgc3ViY2xh
c3MgPSBldGhlcm5ldA0KYmdlMUBwY2k0OjM6MDoJY2xhc3M9MHgwMjAwMDAg
Y2FyZD0weDAwMDgxNGU0IGNoaXA9MHgxNjQ1MTRlNCByZXY9MHgxNSBoZHI9
MHgwMA0KICAgIHZlbmRvciAgID0gJ0Jyb2FkY29tIENvcnBvcmF0aW9uJw0K
ICAgIGRldmljZSAgID0gJ0JDTTU3MDEgTmV0WHRyZW1lIEdpZ2FiaXQgRXRo
ZXJuZXQnDQogICAgY2xhc3MgICAgPSBuZXR3b3JrDQogICAgc3ViY2xhc3Mg
PSBldGhlcm5ldA0KYWhkMEBwY2k0OjQ6MDoJY2xhc3M9MHgwMTAwMDAgY2Fy
ZD0weDAwNWU5MDA1IGNoaXA9MHg4MDFkOTAwNSByZXY9MHgxMCBoZHI9MHgw
MA0KICAgIHZlbmRvciAgID0gJ0FkYXB0ZWMnDQogICAgY2xhc3MgICAgPSBt
YXNzIHN0b3JhZ2UNCiAgICBzdWJjbGFzcyA9IFNDU0kNCmFoZDFAcGNpNDo0
OjE6CWNsYXNzPTB4MDEwMDAwIGNhcmQ9MHgwMDVlOTAwNSBjaGlwPTB4ODAx
ZDkwMDUgcmV2PTB4MTAgaGRyPTB4MDANCiAgICB2ZW5kb3IgICA9ICdBZGFw
dGVjJw0KICAgIGNsYXNzICAgID0gbWFzcyBzdG9yYWdlDQogICAgc3ViY2xh
c3MgPSBTQ1NJDQo=
--8323328-1260086421-1062746423=:13033
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="kernel.conf.FCC"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33.0309050920231.13033@usti.fccps.cz>
Content-Description: 
Content-Disposition: attachment; filename="kernel.conf.FCC"

Iw0KIyBHRU5FUklDIC0tIEdlbmVyaWMga2VybmVsIGNvbmZpZ3VyYXRpb24g
ZmlsZSBmb3IgRnJlZUJTRC9pMzg2DQojDQojIEZvciBtb3JlIGluZm9ybWF0
aW9uIG9uIHRoaXMgZmlsZSwgcGxlYXNlIHJlYWQgdGhlIGhhbmRib29rIHNl
Y3Rpb24gb24NCiMgS2VybmVsIENvbmZpZ3VyYXRpb24gRmlsZXM6DQojDQoj
ICAgIGh0dHA6Ly93d3cuRnJlZUJTRC5vcmcvZG9jL2VuX1VTLklTTzg4NTkt
MS9ib29rcy9oYW5kYm9vay9rZXJuZWxjb25maWctY29uZmlnLmh0bWwNCiMN
CiMgVGhlIGhhbmRib29rIGlzIGFsc28gYXZhaWxhYmxlIGxvY2FsbHkgaW4g
L3Vzci9zaGFyZS9kb2MvaGFuZGJvb2sNCiMgaWYgeW91J3ZlIGluc3RhbGxl
ZCB0aGUgZG9jIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIGFsd2F5cyBzZWUg
dGhlDQojIEZyZWVCU0QgV29ybGQgV2lkZSBXZWIgc2VydmVyIChodHRwOi8v
d3d3LkZyZWVCU0Qub3JnLykgZm9yIHRoZQ0KIyBsYXRlc3QgaW5mb3JtYXRp
b24uDQojDQojIEFuIGV4aGF1c3RpdmUgbGlzdCBvZiBvcHRpb25zIGFuZCBt
b3JlIGRldGFpbGVkIGV4cGxhbmF0aW9ucyBvZiB0aGUNCiMgZGV2aWNlIGxp
bmVzIGlzIGFsc28gcHJlc2VudCBpbiB0aGUgLi9MSU5UIGNvbmZpZ3VyYXRp
b24gZmlsZS4gSWYgeW91IGFyZQ0KIyBpbiBkb3VidCBhcyB0byB0aGUgcHVy
cG9zZSBvciBuZWNlc3NpdHkgb2YgYSBsaW5lLCBjaGVjayBmaXJzdCBpbiBM
SU5ULg0KIw0KIyAkRnJlZUJTRDogc3JjL3N5cy9pMzg2L2NvbmYvR0VORVJJ
Qyx2IDEuMjQ2LjIuNTEuMi4yIDIwMDMvMDMvMjUgMjM6MzU6MTUgamhiIEV4
cCAkDQoNCm1hY2hpbmUJCWkzODYNCiNjcHUJCUkzODZfQ1BVDQojY3B1CQlJ
NDg2X0NQVQ0KI2NwdQkJSTU4Nl9DUFUNCmNwdQkJSTY4Nl9DUFUNCmlkZW50
CQlHRU5FUklDDQptYXh1c2VycwkwDQoNCiNtYWtlb3B0aW9ucwlERUJVRz0t
ZwkJI0J1aWxkIGtlcm5lbCB3aXRoIGdkYigxKSBkZWJ1ZyBzeW1ib2xzDQoN
Cm9wdGlvbnMgCU1BVEhfRU1VTEFURQkJI1N1cHBvcnQgZm9yIHg4NyBlbXVs
YXRpb24NCm9wdGlvbnMgCUlORVQJCQkjSW50ZXJORVR3b3JraW5nDQojb3B0
aW9ucyAJSU5FVDYJCQkjSVB2NiBjb21tdW5pY2F0aW9ucyBwcm90b2NvbHMN
Cm9wdGlvbnMgCUZGUwkJCSNCZXJrZWxleSBGYXN0IEZpbGVzeXN0ZW0NCm9w
dGlvbnMgCUZGU19ST09UCQkjRkZTIHVzYWJsZSBhcyByb290IGRldmljZSBb
a2VlcCB0aGlzIV0NCm9wdGlvbnMgCVNPRlRVUERBVEVTCQkjRW5hYmxlIEZG
UyBzb2Z0IHVwZGF0ZXMgc3VwcG9ydA0Kb3B0aW9ucyAJVUZTX0RJUkhBU0gJ
CSNJbXByb3ZlIHBlcmZvcm1hbmNlIG9uIGJpZyBkaXJlY3Rvcmllcw0Kb3B0
aW9ucyAJTUZTCQkJI01lbW9yeSBGaWxlc3lzdGVtDQpvcHRpb25zIAlNRF9S
T09UCQkJI01EIGlzIGEgcG90ZW50aWFsIHJvb3QgZGV2aWNlDQpvcHRpb25z
IAlORlMJCQkjTmV0d29yayBGaWxlc3lzdGVtDQpvcHRpb25zIAlORlNfUk9P
VAkJI05GUyB1c2FibGUgYXMgcm9vdCBkZXZpY2UsIE5GUyByZXF1aXJlZA0K
b3B0aW9ucyAJTVNET1NGUwkJCSNNU0RPUyBGaWxlc3lzdGVtDQpvcHRpb25z
IAlDRDk2NjAJCQkjSVNPIDk2NjAgRmlsZXN5c3RlbQ0Kb3B0aW9ucyAJQ0Q5
NjYwX1JPT1QJCSNDRC1ST00gdXNhYmxlIGFzIHJvb3QsIENEOTY2MCByZXF1
aXJlZA0Kb3B0aW9ucyAJUFJPQ0ZTCQkJI1Byb2Nlc3MgZmlsZXN5c3RlbQ0K
b3B0aW9ucyAJQ09NUEFUXzQzCQkjQ29tcGF0aWJsZSB3aXRoIEJTRCA0LjMg
W0tFRVAgVEhJUyFdDQpvcHRpb25zIAlTQ1NJX0RFTEFZPTE1MDAwCSNEZWxh
eSAoaW4gbXMpIGJlZm9yZSBwcm9iaW5nIFNDU0kNCm9wdGlvbnMgCVVDT05T
T0xFCQkjQWxsb3cgdXNlcnMgdG8gZ3JhYiB0aGUgY29uc29sZQ0Kb3B0aW9u
cyAJVVNFUkNPTkZJRwkJI2Jvb3QgLWMgZWRpdG9yDQpvcHRpb25zIAlWSVNV
QUxfVVNFUkNPTkZJRwkjdmlzdWFsIGJvb3QgLWMgZWRpdG9yDQpvcHRpb25z
IAlLVFJBQ0UJCQkja3RyYWNlKDEpIHN1cHBvcnQNCm9wdGlvbnMgCVNZU1ZT
SE0JCQkjU1lTVi1zdHlsZSBzaGFyZWQgbWVtb3J5DQpvcHRpb25zIAlTWVNW
TVNHCQkJI1NZU1Ytc3R5bGUgbWVzc2FnZSBxdWV1ZXMNCm9wdGlvbnMgCVNZ
U1ZTRU0JCQkjU1lTVi1zdHlsZSBzZW1hcGhvcmVzDQpvcHRpb25zIAlQMTAw
M18xQgkJI1Bvc2l4IFAxMDAzXzFCIHJlYWwtdGltZSBleHRlbnNpb25zDQpv
cHRpb25zIAlfS1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkcNCm9wdGlvbnMg
CUlDTVBfQkFORExJTQkJI1JhdGUgbGltaXQgYmFkIHJlcGxpZXMNCm9wdGlv
bnMgCUtCRF9JTlNUQUxMX0NERVYJIyBpbnN0YWxsIGEgQ0RFViBlbnRyeSBp
biAvZGV2DQpvcHRpb25zIAlBSENfUkVHX1BSRVRUWV9QUklOVAkjIFByaW50
IHJlZ2lzdGVyIGJpdGZpZWxkcyBpbiBkZWJ1Zw0KCQkJCQkjIG91dHB1dC4g
IEFkZHMgfjEyOGsgdG8gZHJpdmVyLg0Kb3B0aW9ucyAJQUhEX1JFR19QUkVU
VFlfUFJJTlQJIyBQcmludCByZWdpc3RlciBiaXRmaWVsZHMgaW4gZGVidWcg
DQoJCQkJCSMgb3V0cHV0LiAgQWRkcyB+MjE1ayB0byBkcml2ZXIuDQoNCiMg
VG8gbWFrZSBhbiBTTVAga2VybmVsLCB0aGUgbmV4dCB0d28gYXJlIG5lZWRl
ZA0Kb3B0aW9ucyAJU01QCQkJIyBTeW1tZXRyaWMgTXVsdGlQcm9jZXNzb3Ig
S2VybmVsDQpvcHRpb25zIAlBUElDX0lPCQkJIyBTeW1tZXRyaWMgKEFQSUMp
IEkvTw0KDQojIFRvIHN1cHBvcnQgSHlwZXJUaHJlYWRpbmcsIEhUVCBpcyBu
ZWVkZWQgaW4gYWRkaXRpb24gdG8gU01QIGFuZCBBUElDX0lPDQpvcHRpb25z
IAlIVFQJCQkjIEh5cGVyVGhyZWFkaW5nIFRlY2hub2xvZ3kNCg0KZGV2aWNl
CQlpc2ENCiNkZXZpY2UJCWVpc2ENCmRldmljZQkJcGNpDQoNCiMgRmxvcHB5
IGRyaXZlcw0KZGV2aWNlCQlmZGMwCWF0IGlzYT8gcG9ydCBJT19GRDEgaXJx
IDYgZHJxIDINCmRldmljZQkJZmQwCWF0IGZkYzAgZHJpdmUgMA0KZGV2aWNl
CQlmZDEJYXQgZmRjMCBkcml2ZSAxDQojDQojIElmIHlvdSBoYXZlIGEgVG9z
aGliYSBMaWJyZXR0byB3aXRoIGl0cyBZLUUgRGF0YSBQQ01DSUEgZmxvcHB5
LA0KIyBkb24ndCB1c2UgdGhlIGFib3ZlIGxpbmUgZm9yIGZkYzAgYnV0IHRo
ZSBmb2xsb3dpbmcgb25lOg0KI2RldmljZQkJZmRjMA0KDQojIEFUQSBhbmQg
QVRBUEkgZGV2aWNlcw0KZGV2aWNlCQlhdGEwCWF0IGlzYT8gcG9ydCBJT19X
RDEgaXJxIDE0DQpkZXZpY2UJCWF0YTEJYXQgaXNhPyBwb3J0IElPX1dEMiBp
cnEgMTUNCmRldmljZQkJYXRhDQpkZXZpY2UJCWF0YWRpc2sJCQkjIEFUQSBk
aXNrIGRyaXZlcw0KZGV2aWNlCQlhdGFwaWNkCQkJIyBBVEFQSSBDRFJPTSBk
cml2ZXMNCmRldmljZQkJYXRhcGlmZAkJCSMgQVRBUEkgZmxvcHB5IGRyaXZl
cw0KZGV2aWNlCQlhdGFwaXN0CQkJIyBBVEFQSSB0YXBlIGRyaXZlcw0Kb3B0
aW9ucyAJQVRBX1NUQVRJQ19JRAkJI1N0YXRpYyBkZXZpY2UgbnVtYmVyaW5n
DQoNCiMgU0NTSSBDb250cm9sbGVycw0KI2RldmljZQkJYWhiCQkjIEVJU0Eg
QUhBMTc0MiBmYW1pbHkNCiNkZXZpY2UJCWFoYwkJIyBBSEEyOTQwIGFuZCBv
bmJvYXJkIEFJQzd4eHggZGV2aWNlcw0KZGV2aWNlCQlhaGQJCSMgQUhBMzkz
MjAvMjkzMjAgYW5kIG9uYm9hcmQgQUlDNzl4eCBkZXZpY2VzDQojZGV2aWNl
CQlhbWQJCSMgQU1EIDUzQzk3NCAoVGVrcmFtIERDLTM5MChUKSkNCiNkZXZp
Y2UJCWlzcAkJIyBRbG9naWMgZmFtaWx5DQojZGV2aWNlCQltcHQJCSMgTFNJ
LUxvZ2ljIE1QVC9GdXNpb24NCiNkZXZpY2UJCW5jcgkJIyBOQ1IvU3ltYmlv
cyBMb2dpYw0KI2RldmljZQkJc3ltCQkjIE5DUi9TeW1iaW9zIExvZ2ljIChu
ZXdlciBjaGlwc2V0cykNCiNvcHRpb25zIAlTWU1fU0VUVVBfTFBfUFJPQkVf
TUFQPTB4NDANCgkJCQkjIEFsbG93IG5jciB0byBhdHRhY2ggbGVnYWN5IE5D
UiBkZXZpY2VzIHdoZW4gDQoJCQkJIyBib3RoIHN5bSBhbmQgbmNyIGFyZSBj
b25maWd1cmVkDQoNCiNkZXZpY2UJCWFkdjAJYXQgaXNhPw0KI2RldmljZQkJ
YWR3DQojZGV2aWNlCQlidDAJYXQgaXNhPw0KI2RldmljZQkJYWhhMAlhdCBp
c2E/DQojZGV2aWNlCQlhaWMwCWF0IGlzYT8NCg0KI2RldmljZQkJbmN2CQkj
IE5DUiA1M0M1MDANCiNkZXZpY2UJCW5zcAkJIyBXb3JrYml0IE5pbmphIFND
U0ktMw0KI2RldmljZQkJc3RnCQkjIFRNQyAxOEMzMC8xOEM1MA0KDQojIFND
U0kgcGVyaXBoZXJhbHMNCmRldmljZQkJc2NidXMJCSMgU0NTSSBidXMgKHJl
cXVpcmVkKQ0KZGV2aWNlCQlkYQkJIyBEaXJlY3QgQWNjZXNzIChkaXNrcykN
CmRldmljZQkJc2EJCSMgU2VxdWVudGlhbCBBY2Nlc3MgKHRhcGUgZXRjKQ0K
ZGV2aWNlCQljZAkJIyBDRA0KZGV2aWNlCQlwYXNzCQkjIFBhc3N0aHJvdWdo
IGRldmljZSAoZGlyZWN0IFNDU0kgYWNjZXNzKQ0KDQojIFJBSUQgY29udHJv
bGxlcnMgaW50ZXJmYWNlZCB0byB0aGUgU0NTSSBzdWJzeXN0ZW0NCiNkZXZp
Y2UJCWFzcgkJIyBEUFQgU21hcnRSQUlEIFYsIFZJIGFuZCBBZGFwdGVjIFND
U0kgUkFJRA0KI2RldmljZQkJZHB0CQkjIERQVCBTbWFydGNhY2hlIC0gU2Vl
IExJTlQgZm9yIG9wdGlvbnMhDQojZGV2aWNlCQlpaXIJCSMgSW50ZWwgSW50
ZWdyYXRlZCBSQUlEDQojZGV2aWNlCQltbHkJCSMgTXlsZXggQWNjZWxlUkFJ
RC9lWHRyZW1lUkFJRA0KI2RldmljZQkJY2lzcwkJIyBDb21wYXEgU21hcnRS
QUlEIDUqIHNlcmllcw0KDQojIFJBSUQgY29udHJvbGxlcnMNCmRldmljZQkJ
YWFjCQkjIEFkYXB0ZWMgRlNBIFJBSUQsIERlbGwgUEVSQzIvUEVSQzMNCiNv
cHRpb25zIAlBQUNfREVCVUc9NA0KI2RldmljZQkJYWFjcAkJIyBTQ1NJIHBh
c3N0aHJvdWdoIGZvciBhYWMgKHJlcXVpcmVzIENBTSkNCiNkZXZpY2UJCWlk
YQkJIyBDb21wYXEgU21hcnQgUkFJRA0KI2RldmljZQkJYW1yCQkjIEFNSSBN
ZWdhUkFJRA0KI2RldmljZQkJbWx4CQkjIE15bGV4IERBQzk2MCBmYW1pbHkN
CiNkZXZpY2UJCXR3ZQkJIyAzd2FyZSBFc2NhbGFkZQ0KDQojb3B0aW9ucyAJ
Q0FNREVCVUcNCiNvcHRpb25zIAlDQU1fREVCVUdfQlVTPS0xDQojb3B0aW9u
cyAJQ0FNX0RFQlVHX1RBUkdFVD0tMQ0KI29wdGlvbnMgCUNBTV9ERUJVR19M
VU49LTENCiNvcHRpb25zIAlDQU1fREVCVUdfRkxBR1M9IkNBTV9ERUJVR19J
TkZPfENBTV9ERUJVR19UUkFDRXxDQU1fREVCVUdfU1VCVFJBQ0V8Q0FNX0RF
QlVHX0NEQnxDQU1fREVCVUdfWFBUfENBTV9ERUJVR19QRVJJUEgiDQoNCiMg
YXRrYmRjMCBjb250cm9scyBib3RoIHRoZSBrZXlib2FyZCBhbmQgdGhlIFBT
LzIgbW91c2UNCmRldmljZQkJYXRrYmRjMAlhdCBpc2E/IHBvcnQgSU9fS0JE
DQpkZXZpY2UJCWF0a2JkMAlhdCBhdGtiZGM/IGlycSAxIGZsYWdzIDB4MQ0K
ZGV2aWNlCQlwc20wCWF0IGF0a2JkYz8gaXJxIDEyDQoNCmRldmljZQkJdmdh
MAlhdCBpc2E/DQoNCiMgc3BsYXNoIHNjcmVlbi9zY3JlZW4gc2F2ZXINCnBz
ZXVkby1kZXZpY2UJc3BsYXNoDQoNCiMgc3lzY29ucyBpcyB0aGUgZGVmYXVs
dCBjb25zb2xlIGRyaXZlciwgcmVzZW1ibGluZyBhbiBTQ08gY29uc29sZQ0K
ZGV2aWNlCQlzYzAJYXQgaXNhPyBmbGFncyAweDEwMA0KDQojIEVuYWJsZSB0
aGlzIGFuZCBQQ1ZUX0ZSRUVCU0QgZm9yIHBjdnQgdnQyMjAgY29tcGF0aWJs
ZSBjb25zb2xlIGRyaXZlcg0KI2RldmljZQkJdnQwCWF0IGlzYT8NCiNvcHRp
b25zIAlYU0VSVkVSCQkJIyBzdXBwb3J0IGZvciBYIHNlcnZlciBvbiBhIHZ0
IGNvbnNvbGUNCiNvcHRpb25zIAlGQVRfQ1VSU09SCQkjIHN0YXJ0IHdpdGgg
YmxvY2sgY3Vyc29yDQojIElmIHlvdSBoYXZlIGEgVGhpbmtQQUQsIHVuY29t
bWVudCB0aGlzIGFsb25nIHdpdGggdGhlIHJlc3Qgb2YgdGhlIFBDVlQgbGlu
ZXMNCiNvcHRpb25zIAlQQ1ZUX1NDQU5TRVQ9MgkJIyBJQk0ga2V5Ym9hcmRz
IGFyZSBub24tc3RkDQoNCmRldmljZQkJYWdwCQkjIHN1cHBvcnQgc2V2ZXJh
bCBBR1AgY2hpcHNldHMNCg0KIyBGbG9hdGluZyBwb2ludCBzdXBwb3J0IC0g
ZG8gbm90IGRpc2FibGUuDQpkZXZpY2UJCW5weDAJYXQgbmV4dXM/IHBvcnQg
SU9fTlBYIGlycSAxMw0KDQojIFBvd2VyIG1hbmFnZW1lbnQgc3VwcG9ydCAo
c2VlIExJTlQgZm9yIG1vcmUgb3B0aW9ucykNCmRldmljZQkJYXBtMAlhdCBu
ZXh1cz8gZGlzYWJsZSBmbGFncyAweDIwICMgQWR2YW5jZWQgUG93ZXIgTWFu
YWdlbWVudA0KDQojIFBDQ0FSRCAoUENNQ0lBKSBzdXBwb3J0DQojZGV2aWNl
CQljYXJkDQojZGV2aWNlCQlwY2ljMAlhdCBpc2E/IGlycSAwIHBvcnQgMHgz
ZTAgaW9tZW0gMHhkMDAwMA0KI2RldmljZQkJcGNpYzEJYXQgaXNhPyBpcnEg
MCBwb3J0IDB4M2UyIGlvbWVtIDB4ZDQwMDAgZGlzYWJsZQ0KDQojIFNlcmlh
bCAoQ09NKSBwb3J0cw0KZGV2aWNlCQlzaW8wCWF0IGlzYT8gcG9ydCBJT19D
T00xIGZsYWdzIDB4MzAgaXJxIDQNCmRldmljZQkJc2lvMQlhdCBpc2E/IHBv
cnQgSU9fQ09NMiBpcnEgMw0KZGV2aWNlCQlzaW8yCWF0IGlzYT8gZGlzYWJs
ZSBwb3J0IElPX0NPTTMgaXJxIDUNCmRldmljZQkJc2lvMwlhdCBpc2E/IGRp
c2FibGUgcG9ydCBJT19DT000IGlycSA5DQoNCm9wdGlvbnMgQ09OU1BFRUQ9
MTE1MjAwDQoNCiMgUGFyYWxsZWwgcG9ydA0KZGV2aWNlCQlwcGMwCWF0IGlz
YT8gaXJxIDcNCmRldmljZQkJcHBidXMJCSMgUGFyYWxsZWwgcG9ydCBidXMg
KHJlcXVpcmVkKQ0KZGV2aWNlCQlscHQJCSMgUHJpbnRlcg0KI2RldmljZQkJ
cGxpcAkJIyBUQ1AvSVAgb3ZlciBwYXJhbGxlbA0KI2RldmljZQkJcHBpCQkj
IFBhcmFsbGVsIHBvcnQgaW50ZXJmYWNlIGRldmljZQ0KI2RldmljZQkJdnBv
CQkjIFJlcXVpcmVzIHNjYnVzIGFuZCBkYQ0KDQoNCiMgUENJIEV0aGVybmV0
IE5JQ3MuDQojZGV2aWNlCQlkZQkJIyBERUMvSW50ZWwgREMyMXg0eCAoYGBU
dWxpcCcnKQ0KI2RldmljZQkJZW0JCSMgSW50ZWwgUFJPLzEwMDAgYWRhcHRl
ciBHaWdhYml0IEV0aGVybmV0IENhcmQgKGBgV2lzZW1hbicnKQ0KI2Rldmlj
ZQkJdHhwCQkjIDNDb20gM2NSOTkwIChgYFR5cGhvb24nJykNCiNkZXZpY2UJ
CXZ4CQkjIDNDb20gM2M1OTAsIDNjNTk1IChgYFZvcnRleCcnKQ0KDQojIFBD
SSBFdGhlcm5ldCBOSUNzIHRoYXQgdXNlIHRoZSBjb21tb24gTUlJIGJ1cyBj
b250cm9sbGVyIGNvZGUuDQojIE5PVEU6IEJlIHN1cmUgdG8ga2VlcCB0aGUg
J2RldmljZSBtaWlidXMnIGxpbmUgaW4gb3JkZXIgdG8gdXNlIHRoZXNlIE5J
Q3MhDQpkZXZpY2UJCW1paWJ1cwkJIyBNSUkgYnVzIHN1cHBvcnQNCiNkZXZp
Y2UJCWRjCQkjIERFQy9JbnRlbCAyMTE0MyBhbmQgdmFyaW91cyB3b3JrYWxp
a2VzDQojZGV2aWNlCQlmeHAJCSMgSW50ZWwgRXRoZXJFeHByZXNzIFBSTy8x
MDBCICg4MjU1NywgODI1NTgpDQojZGV2aWNlCQlwY24JCSMgQU1EIEFtNzlD
OTd4IFBDSSAxMC8xMDAgTklDcw0KI2RldmljZQkJcmwJCSMgUmVhbFRlayA4
MTI5LzgxMzkNCiNkZXZpY2UJCXNmCQkjIEFkYXB0ZWMgQUlDLTY5MTUgKGBg
U3RhcmZpcmUnJykNCiNkZXZpY2UJCXNpcwkJIyBTaWxpY29uIEludGVncmF0
ZWQgU3lzdGVtcyBTaVMgOTAwL1NpUyA3MDE2DQojZGV2aWNlCQlzdGUJCSMg
U3VuZGFuY2UgU1QyMDEgKEQtTGluayBERkUtNTUwVFgpDQojZGV2aWNlCQl0
bAkJIyBUZXhhcyBJbnN0cnVtZW50cyBUaHVuZGVyTEFODQojZGV2aWNlCQl0
eAkJIyBTTUMgRXRoZXJQb3dlciBJSSAoODNjMTcwIGBgRVBJQycnKQ0KI2Rl
dmljZQkJdnIJCSMgVklBIFJoaW5lLCBSaGluZSBJSQ0KI2RldmljZQkJd2IJ
CSMgV2luYm9uZCBXODlDODQwRg0KI2RldmljZQkJeGwJCSMgM0NvbSAzYzkw
eCAoYGBCb29tZXJhbmcnJywgYGBDeWNsb25lJycpDQpkZXZpY2UJCWJnZQkJ
IyBCcm9hZGNvbSBCQ001NzB4IChgYFRpZ29uIElJSScnKQ0KDQojIElTQSBF
dGhlcm5ldCBOSUNzLg0KIyAnZGV2aWNlIGVkJyByZXF1aXJlcyAnZGV2aWNl
IG1paWJ1cycNCiNkZXZpY2UJCWVkMAlhdCBpc2E/IGRpc2FibGUgcG9ydCAw
eDI4MCBpcnEgMTAgaW9tZW0gMHhkODAwMA0KI2RldmljZQkJZXgNCiNkZXZp
Y2UJCWVwDQojZGV2aWNlCQlmZTAJYXQgaXNhPyBkaXNhYmxlIHBvcnQgMHgz
MDANCiMgWGlyY29tIEV0aGVybmV0DQojZGV2aWNlCQl4ZQ0KIyBQUklTTSBJ
IElFRUUgODAyLjExYiB3aXJlbGVzcyBOSUMuDQojZGV2aWNlCQlhd2kNCiMg
V2F2ZUxBTi9JRUVFIDgwMi4xMSB3aXJlbGVzcyBOSUNzLiBOb3RlOiB0aGUg
V2F2ZUxBTi9JRUVFIHJlYWxseQ0KIyBleGlzdHMgb25seSBhcyBhIFBDTUNJ
QSBkZXZpY2UsIHNvIHRoZXJlIGlzIG5vIElTQSBhdHRhY2htZW50IG5lZWRl
ZA0KIyBhbmQgcmVzb3VyY2VzIHdpbGwgYWx3YXlzIGJlIGR5bmFtaWNhbGx5
IGFzc2lnbmVkIGJ5IHRoZSBwY2NhcmQgY29kZS4NCiNkZXZpY2UJCXdpDQoj
IEFpcm9uZXQgNDUwMC80ODAwIDgwMi4xMSB3aXJlbGVzcyBOSUNzLiBOb3Rl
OiB0aGUgZGVjbGFyYXRpb24gYmVsb3cgd2lsbA0KIyB3b3JrIGZvciBQQ01D
SUEgYW5kIFBDSSBjYXJkcywgYXMgd2VsbCBhcyBJU0EgY2FyZHMgc2V0IHRv
IElTQSBQblANCiMgbW9kZSAodGhlIGZhY3RvcnkgZGVmYXVsdCkuIElmIHlv
dSBzZXQgdGhlIHN3aXRjaGVzIG9uIHlvdXIgSVNBDQojIGNhcmQgZm9yIGEg
bWFudWFsbHkgY2hvc2VuIEkvTyBhZGRyZXNzIGFuZCBJUlEsIHlvdSBtdXN0
IHNwZWNpZnkNCiMgdGhvc2UgcGFyYW1ldGVycyBoZXJlLg0KI2RldmljZQkJ
YW4NCiMgVGhlIHByb2JlIG9yZGVyIG9mIHRoZXNlIGlzIHByZXNlbnRseSBk
ZXRlcm1pbmVkIGJ5IGkzODYvaXNhL2lzYV9jb21wYXQuYy4NCiNkZXZpY2UJ
CWllMAlhdCBpc2E/IGRpc2FibGUgcG9ydCAweDMwMCBpcnEgMTAgaW9tZW0g
MHhkMDAwMA0KI2RldmljZQkJbGUwCWF0IGlzYT8gZGlzYWJsZSBwb3J0IDB4
MzAwIGlycSA1IGlvbWVtIDB4ZDAwMDANCiNkZXZpY2UJCWxuYzAJYXQgaXNh
PyBkaXNhYmxlIHBvcnQgMHgyODAgaXJxIDEwIGRycSAwDQojZGV2aWNlCQlj
czAJYXQgaXNhPyBkaXNhYmxlIHBvcnQgMHgzMDANCiNkZXZpY2UJCXNuMAlh
dCBpc2E/IGRpc2FibGUgcG9ydCAweDMwMCBpcnEgMTANCg0KIyBQc2V1ZG8g
ZGV2aWNlcyAtIHRoZSBudW1iZXIgaW5kaWNhdGVzIGhvdyBtYW55IHVuaXRz
IHRvIGFsbG9jYXRlLg0KcHNldWRvLWRldmljZQlsb29wCQkjIE5ldHdvcmsg
bG9vcGJhY2sNCnBzZXVkby1kZXZpY2UJZXRoZXIJCSMgRXRoZXJuZXQgc3Vw
cG9ydA0KcHNldWRvLWRldmljZQlzbAkxCSMgS2VybmVsIFNMSVANCnBzZXVk
by1kZXZpY2UJcHBwCTEJIyBLZXJuZWwgUFBQDQpwc2V1ZG8tZGV2aWNlCXR1
bgkJIyBQYWNrZXQgdHVubmVsLg0KcHNldWRvLWRldmljZQlwdHkJCSMgUHNl
dWRvLXR0eXMgKHRlbG5ldCBldGMpDQpwc2V1ZG8tZGV2aWNlCW1kCQkjIE1l
bW9yeSAiZGlza3MiDQpwc2V1ZG8tZGV2aWNlCWdpZgkJIyBJUHY2IGFuZCBJ
UHY0IHR1bm5lbGluZw0KcHNldWRvLWRldmljZQlmYWl0aAkxCSMgSVB2Ni10
by1JUHY0IHJlbGF5aW5nICh0cmFuc2xhdGlvbikNCg0KIyBUaGUgYGJwZicg
cHNldWRvLWRldmljZSBlbmFibGVzIHRoZSBCZXJrZWxleSBQYWNrZXQgRmls
dGVyLg0KIyBCZSBhd2FyZSBvZiB0aGUgYWRtaW5pc3RyYXRpdmUgY29uc2Vx
dWVuY2VzIG9mIGVuYWJsaW5nIHRoaXMhDQpwc2V1ZG8tZGV2aWNlCWJwZgkJ
I0JlcmtlbGV5IHBhY2tldCBmaWx0ZXINCg0KIyBVU0Igc3VwcG9ydA0KZGV2
aWNlCQl1aGNpCQkjIFVIQ0kgUENJLT5VU0IgaW50ZXJmYWNlDQpkZXZpY2UJ
CW9oY2kJCSMgT0hDSSBQQ0ktPlVTQiBpbnRlcmZhY2UNCmRldmljZQkJdXNi
CQkjIFVTQiBCdXMgKHJlcXVpcmVkKQ0KZGV2aWNlCQl1Z2VuCQkjIEdlbmVy
aWMNCmRldmljZQkJdWhpZAkJIyAiSHVtYW4gSW50ZXJmYWNlIERldmljZXMi
DQpkZXZpY2UJCXVrYmQJCSMgS2V5Ym9hcmQNCmRldmljZQkJdWxwdAkJIyBQ
cmludGVyDQpkZXZpY2UJCXVtYXNzCQkjIERpc2tzL01hc3Mgc3RvcmFnZSAt
IFJlcXVpcmVzIHNjYnVzIGFuZCBkYQ0KZGV2aWNlCQl1bXMJCSMgTW91c2UN
CiNkZXZpY2UJCXVzY2FubmVyCSMgU2Nhbm5lcnMNCiNkZXZpY2UJCXVyaW8J
CSMgRGlhbW9uZCBSaW8gTVAzIFBsYXllcg0KIyBVU0IgRXRoZXJuZXQsIHJl
cXVpcmVzIG1paQ0KI2RldmljZQkJYXVlCQkjIEFETXRlayBVU0IgZXRoZXJu
ZXQNCiNkZXZpY2UJCWN1ZQkJIyBDQVRDIFVTQiBldGhlcm5ldA0KI2Rldmlj
ZQkJa3VlCQkjIEthd2FzYWtpIExTSSBVU0IgZXRoZXJuZXQNCg==
--8323328-1260086421-1062746423=:13033--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.33.0309050905530.13033-301000>