Subject: Re: hpt366 anyone?
To: Antti Kantee <pooka@iki.fi>
From: Roger Brooks <R.S.Brooks@liverpool.ac.uk>
List: current-users
Date: 04/17/2000 10:11:11
  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-959030623-955962671=:25666
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Fri, 14 Apr 2000, Antti Kantee wrote:

>What's the status of hpt366 support? Here's the relevant part of dmesg:
>
>vendor 0x8086 product 0x7113 (miscellaneous bridge, revision 0x02) at pci0 dev 7 function 3 not configured
>vendor 0x1103 product 0x0004 (miscellaneous mass storage, revision 0x01) at pci0 dev 19 function 0 not configured
>vendor 0x1103 product 0x0004 (miscellaneous mass storage, revision 0x01) at pci0 dev 19 function 1 not configured
>
>I noticed that the drive will work fine on a normal ata33 connector, but
>I'd rather use it with ``tires screaming''.
>
>And while you're scratching heads, is anyone working on either of these:

You might like to try the patch I posted about a month ago.  My BP6 has
now been running booted from a disk on the HPT366 for about 30 days.
However, please read the warning in the message from my original posting
anout PCI bus speeds other than 33 MHz (although I don't think you can
run a BP6 with any other PCI bus clock).



Roger

------------------------------------------------------------------------------
Roger Brooks (Systems Programmer),          |  Email: R.S.Brooks@liv.ac.uk
Computing Services Dept,                    |  Tel:   +44 151 794 4441
The University of Liverpool,                |  Fax:   +44 151 794 4442
PO Box 147, Liverpool L69 3BX, UK           | 
------------------------------------------------------------------------------

---559023410-959030623-955962671=:25666
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="hpt366.6"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.10.10004171011110.25666@uxb.liv.ac.uk>
Content-Description: Original posting message
Content-Disposition: attachment; filename="hpt366.6"

SGVyZSBpcyBhIG5ldyB2ZXJzaW9uIG9mIG15IHBjaWlkZSBwYXRjaGVzIGZv
ciB0aGUgSFBUMzY2IFVETUEvNjYgY2hpcC4NClRoaXMgaGFzIHRha2VuIGxv
bmdlciB0aGFuIEkgZXhwZWN0ZWQgYmVjYXVzZSBJIGhpdCBhIG5hc3R5IHBy
b2JsZW0uDQoNCkkgbm93IGhhdmUgYm90aCBjaGFubmVscyB3b3JraW5nIHdp
dGggbm8gYXBwYXJlbnQgcHJvYmxlbS4gIEFzIEkndmUNCm1lbnRpb25lZCBi
ZWZvcmUsIHRoZSBIUFQzNjYgcmVxdWlyZXMgYSAzMi1iaXQgdHVuaW5nIHBh
cmFtZXRlciBmb3IgZWFjaA0KZHJpdmUgd2hpY2ggaXMgZGVwZW5kZW50IG9u
IHRoZSBQQ0kgYnVzIGNsb2NrIHNwZWVkLiAgT24gaTM4NiwgdGhlIEJJT1Mg
c2V0cw0KdGhlc2UgdXAgZm9yIHRoZSBidXMgc3BlZWQgYW5kIGN1cnJlbnQg
dHJhbnNmZXIgbW9kZSAoYXMgaW4gQklPUyBzZXR1cCkuIA0KSG93ZXZlciwg
dGhlIHBjaWlkZSBkcml2ZXIgbmVlZHMgdG8ga25vdyB0aGUgdHVuaW5nIHBh
cmFtZXRlcnMgZm9yIGFsbA0KdHJhbnNmZXIgbW9kZXMgYmVjYXVzZToNCg0K
MS4gIFRoZSBkcml2ZXIgd2lsbCBieSBkZWZhdWx0IGF0dGFjaCBhIGRyaXZl
IGF0IHRoZSBiZXN0IHBvc3NpYmxlIG1vZGUNCiAgICAoZXZlbiBpZiBpdCBo
YXMgYmVlbiBkb3duZ3JhZGVkIGluIEJJT1Mgc2V0dXApLCBhbmQNCg0KMi4g
IElmLCBhcyBhIHJlc3VsdCBvZiBJL08gZXJyb3JzLCB0aGUgZHJpdmVyIGRv
d25ncmFkZXMgdGhlIHRyYW5zZmVyIG1vZGUsDQogICAgaXQgYWxzbyBuZWVk
cyB0byByZXR1bmUgdGhlIGNoaXAgZm9yIHRoZSBuZXcgdHJhbnNmZXIgbW9k
ZS4NCg0KT24gaTM4NiwgdGhlIFBDSSBidXMgY2xvY2sgY2FuIGJlIGRldGVy
bWluZWQgZnJvbSB0aGUgbmV4dC10by1sb3dlc3QgYnl0ZQ0Kb2YgdGhlIDMy
LWJpdCB0dW5pbmcgcGFyYW1ldGVyIHNldCB1cCBieSB0aGUgQklPUy4gIEkn
bSBhZnJhaWQgdGhhdA0KcGNpaWRlLmMgaGFzIHNwcm91dGVkIGEgcGllY2Ug
b2YgbWFjaGluZS1kZXBlbmRlbnQgY29kZSB3aGljaCBkZWZhdWx0cw0KdGhl
IFBDSSBidXMgY2xvY2sgdG8gMzMgTUh6IG9uIG90aGVyIGFyY2hpdGVjdHVy
ZXMgKGFsdGhvdWdoIHRoaXMgY2FuIGJlDQpvdmVycmlkZGVuIGluIHRoZSBr
ZXJuZWwgY29uZmlnIGZpbGUgd2l0aA0KDQogICAgb3B0aW9ucyBQQ0lfQlVT
Q0xPQ0s9bm4NCg0KV2hpbGUgdGVzdGluZyB0aGlzLCBJIGRlY2lkZWQgdG8g
c2VlIGhvdyBiYWQgdGhpbmdzIHdlcmUgdXNpbmcgdGhlICJ3cm9uZyINCnR1
bmluZyBwYXJhbWV0ZXJzLiAgQmVjYXVzZSBJIGhhdmUgc3BlZWQtbG9ja2Vk
IENlbGVyb25zLCBJIGNhbid0IGdldA0KYW55dGhpbmcgb3RoZXIgdGhhbiBh
IDMzIE1IeiBQQ0kgYnVzIGNsb2NrLCBzbyBJIHRyaWVkIHVzaW5nIHRoZSAy
NSBhbmQNCjQwIE1IeiB0dW5pbmcgcGFyYW1ldGVyIHNldHMuICBPbiBhIFVE
TUEgbW9kZSAyIGRpc2ssIHRoZSA0MCBNSHogcGFyYW1ldGVycw0KcmVzdWx0
ZWQgaW4gdGhlIGRyaXZlciByZXBvcnRpbmcgcHJvbGlmaWMgZXJyb3JzLiAg
VGhlIDI1IE1IeiBwYXJhbWV0ZXJzDQpzZWVtZWQgdG8gd29yayBhdCBmaXJz
dCwgYnV0IHdoaWxlIEkgd2FzIHJ1bm5pbmcgJ2xzIC1sUiAvbW50JyBJIGdv
dCBhDQp1ZnMgcGFuaWMuDQoNCk9uIHJlYm9vdGluZyBJIGZvdW5kIHRoYXQg
dGhlIGZpbGVzeXN0ZW1zIG9uIHRoYXQgZGlzayB3ZXJlIGp1c3QgYWJvdXQg
dGhlDQptb3N0IGNvbXBsZXRlbHkgRlVCQVIgSSd2ZSBldmVyIHNlZW4gb24g
YSBVbml4IHN5c3RlbS4gIFRoZSBmc2NrIHJ1biBmcm9tDQovZXRjL3JjIHJl
cG9ydGVkIHRoYXQgdGhlIHN1cGVyYmxvY2sgd2FzIGNvcnJ1cHQuICBXaGVu
IEkgcmFuICdmc2NrIC15Jw0KbWFudWFsbHksIEkgd2FzIGV2ZW50dWFsbHkg
bGVmdCB3aXRoIGZpbGVzeXN0ZW1zIHdoaWNoIGhhZCBhYm91dCBvbmUNCnRo
aXJkIG9mIHRoZWlyIG9yaWdpbmFsIGNvbnRlbnRzIHJlbWFpbmluZyAoYWJv
dXQgb25lIHRoaXJkIG9mIHRoZSBmaWxlcw0KaGFkIGJlZW4gcmVtb3ZlZCBh
cyBwYXJ0aWFsbHktYWxsb2NhdGVkIGlub2RlcywgYW5kIGFub3RoZXIgdGhp
cmQNCmVuZGVkIHVwIGluIGxvc3QrZm91bmQpLiAgSSB3YXMgYWxzbyBsZWZ0
IHdpdGggYSAvbW50Ly5jc2hyYyB3aGljaCB3YXMNCnNvbWV0aGluZyBsaWtl
IDEwMDAgVEIgaW4gc2l6ZSENCg0KQXMgZmFyIGFzIEkndmUgYmVlbiBhYmxl
IHRvIHRlc3QsIHRoZXJlIGlzIG5vIHByb2JsZW0gd2l0aCB0aGUgY29tYmlu
YXRpb24NCm9mIGEgMzMgTUh6IFBDSSBidXMgY2xvY2sgYW5kIGRpc2tzIGlu
IFVETUEgbW9kZXMgMiBhbmQgNCAod2hpY2ggaXMgbGlrZWx5DQp0byBjb3Zl
ciBtb3N0IHJlY2VudCBkaXNrcyksIGJ1dCBwcm9jZWVkIHdpdGggY2F1dGlv
bi4gIEkgc3VwcG9zZSBteQ0KdGVzdCBvZiAnbHMgLWxSJyBvbiBhIGZpbGVz
eXN0ZW0gbW91bnRlZCBSL1cgaXMgYXMgZ29vZCBhcyBhbnl0aGluZywNCmJl
Y2F1c2UgaXQgcmV3cml0ZXMgYWxsIHRoZSBpbi11c2UgaW5vZGVzIGluIG9y
ZGVyIHRvIHVwZGF0ZSB0aGUgYWNjZXNzDQp0aW1lcy4NCg0KRm9yIGFueSBQ
Q0kgYnVzIGNsb2NrIHNwZWVkIG90aGVyIHRoYW4gMjUsIDMzIG9yIDQwIE1I
eiwgeW91IHdpbGwgbmVlZA0KdG8gZGV0ZXJtaW5lIHRoZSB0dW5pbmcgcGFy
YW1ldGVycy4gIFRoZSBwcm9jZWR1cmUgKHdoaWNoIGlzIHJhdGhlciB0ZWRp
b3VzKQ0KaXMgZGVzY3JpYmVkIGluIHBjaWlkZV9ocHQzNjZfcmVnLmguICBJ
dCB3b3VsZCBiZSBhZHZpc2FibGUgdG8gZG8gdGhpcw0KZm9yIDI1IGFuZCA0
MCBNSHogYnVzIGNsb2NrIHNwZWVkcywgYXMgd2hlbiBJIGNoZWNrZWQgdGhl
IDMzIE1IeiB2YWx1ZXMNCkkgZm91bmQgc29tZSBkaWZmZXJlbmNlcyBmcm9t
IHdoYXQgSSdkIGdvdCBmcm9tIHRoZSBMaW51eCBkcml2ZXIuDQo=
---559023410-959030623-955962671=:25666
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=HPT366-patch2
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.10.10004171011111.25666@uxb.liv.ac.uk>
Content-Description: HPT366 UDMA/66 patch
Content-Disposition: attachment; filename=HPT366-patch2

ZGlmZiAtYyAtLW5ldy1maWxlIGRldi9wY2kub2xkL3BjaWRldnMgZGV2L3Bj
aS9wY2lkZXZzDQoqKiogZGV2L3BjaS5vbGQvcGNpZGV2cwlXZWQgRmViIDE2
IDEyOjIyOjU4IDIwMDANCi0tLSBkZXYvcGNpL3BjaWRldnMJU2F0IEZlYiAy
NiAyMzo1Nzo1NSAyMDAwDQoqKioqKioqKioqKioqKioNCioqKiAxMzQ5LDEz
NTQgKioqKg0KLS0tIDEzNDksMTM1NyAtLS0tDQogIHByb2R1Y3QgVFJJREVO
VAlUR1VJXzk2ODAJMHg5NjgwCVRHVUkgOTY4MA0KICBwcm9kdWN0IFRSSURF
TlQJVEdVSV85NjgyCTB4OTY4MglUR1VJIDk2ODINCiAgDQorIC8qIFRyaW9u
ZXMgVGVjaG5vbG9naWVzIHByb2R1Y3RzICovDQorIHByb2R1Y3QgVFJJT05F
UyBIUFQzNjYgICAgICAgICAgMHgwMDA0ICBIUFQzNjYgVURNQS82NiBDb250
cm9sbGVyDQorIA0KICAvKiBUcmlUZWNoIE1pY3JvZWxlY3Ryb25pY3MgcHJv
ZHVjdHMqLw0KICBwcm9kdWN0IFRSSVRFQ0gJVFIyNTIwMgkJMHhmYzAyCVB5
cmFtaWQzRCBUUjI1MjAyDQogIA0KZGlmZiAtYyAtLW5ldy1maWxlIGRldi9w
Y2kub2xkL3BjaWlkZS5jIGRldi9wY2kvcGNpaWRlLmMNCioqKiBkZXYvcGNp
Lm9sZC9wY2lpZGUuYwlXZWQgSmFuIDE5IDEyOjMxOjQ5IDIwMDANCi0tLSBk
ZXYvcGNpL3BjaWlkZS5jCVdlZCBNYXIgMTUgMjM6MDY6NDIgMjAwMA0KKioq
KioqKioqKioqKioqDQoqKiogMTE1LDEyMCAqKioqDQotLS0gMTE1LDEyMyAt
LS0tDQogICNpbmNsdWRlIDxkZXYvcGNpL3BjaWlkZV9zaXNfcmVnLmg+DQog
ICNpbmNsdWRlIDxkZXYvcGNpL3BjaWlkZV9hY2VyX3JlZy5oPg0KICAjaW5j
bHVkZSA8ZGV2L3BjaS9wY2lpZGVfcGRjMjAyeHhfcmVnLmg+DQorICNpbmNs
dWRlIDxkZXYvcGNpL3BjaWlkZV9ocHQzNjZfcmVnLmg+DQorIA0KKyAjaW5j
bHVkZSAib3B0X3BjaV9idXNjbG9jay5oIg0KICANCiAgLyogaW5saW5lcyBm
b3IgcmVhZGluZy93cml0aW5nIDgtYml0IFBDSSByZWdpc3RlcnMgKi8NCiAg
c3RhdGljIF9faW5saW5lIHVfaW50OF90IHBjaWlkZV9wY2lfcmVhZCBfX1Ao
KHBjaV9jaGlwc2V0X3RhZ190LCBwY2l0YWdfdCwNCioqKioqKioqKioqKioq
Kg0KKioqIDE4MSwxODYgKioqKg0KLS0tIDE4NCwxOTUgLS0tLQ0KICB2b2lk
IHBkYzIwMnh4X3NldHVwX2NoYW5uZWwgX19QKChzdHJ1Y3QgY2hhbm5lbF9z
b2Z0YyopKTsNCiAgaW50ICBwZGMyMDJ4eF9wY2lfaW50ciBfX1AoKHZvaWQg
KikpOw0KICANCisgdm9pZCBocHQzNjZfY2hpcF9tYXAgX19QKChzdHJ1Y3Qg
cGNpaWRlX3NvZnRjKiwgc3RydWN0IHBjaV9hdHRhY2hfYXJncyopKTsNCisg
dm9pZCBocHQzNjZfc2V0dXBfY2hhbm5lbCBfX1AoKHN0cnVjdCBjaGFubmVs
X3NvZnRjKikpOw0KKyBpbnQgIGhwdDM2Nl9jbGFpbV9odyBfX1AoKHZvaWQg
KiwgaW50KSk7DQorIHZvaWQgaHB0MzY2X2ZyZWVfaHcgX19QKCh2b2lkICop
KTsNCisgaW50ICBocHQzNjZfcGNpX2ludHIgX19QKCh2b2lkICopKTsNCisg
DQogIHZvaWQgcGNpaWRlX2NoYW5uZWxfZG1hX3NldHVwIF9fUCgoc3RydWN0
IHBjaWlkZV9jaGFubmVsICopKTsNCiAgaW50ICBwY2lpZGVfZG1hX3RhYmxl
X3NldHVwIF9fUCgoc3RydWN0IHBjaWlkZV9zb2Z0YyosIGludCwgaW50KSk7
DQogIGludCAgcGNpaWRlX2RtYV9pbml0IF9fUCgodm9pZCosIGludCwgaW50
LCB2b2lkICosIHNpemVfdCwgaW50KSk7DQoqKioqKioqKioqKioqKioNCioq
KiAzMzYsMzQxICoqKioNCi0tLSAzNDUsMzYyIC0tLS0NCiAgCX0NCiAgfTsN
CiAgDQorIGNvbnN0IHN0cnVjdCBwY2lpZGVfcHJvZHVjdF9kZXNjIHBjaWlk
ZV90cmlvbmVzX3Byb2R1Y3RzW10gPSAgew0KKyAJeyBQQ0lfUFJPRFVDVF9U
UklPTkVTX0hQVDM2NiwNCisgCSAgSURFX1BDSV9DTEFTU19PVkVSUklERSwN
CisgCSAgIlRyaW9uZXMvSGlnaHBvaW50IEhQVDM2NiBVRE1BLzY2IElERSBD
b250cm9sbGVyIiwNCisgCSAgaHB0MzY2X2NoaXBfbWFwLA0KKyAJfSwNCisg
CXsgMCwNCisgCSAgMCwNCisgCSAgTlVMTCwNCisgCX0NCisgfTsNCisgDQog
IHN0cnVjdCBwY2lpZGVfdmVuZG9yX2Rlc2Mgew0KICAJdV9pbnQzMl90IGlk
ZV92ZW5kb3I7DQogIAljb25zdCBzdHJ1Y3QgcGNpaWRlX3Byb2R1Y3RfZGVz
YyAqaWRlX3Byb2R1Y3RzOw0KKioqKioqKioqKioqKioqDQoqKiogMzQ5LDM1
NCAqKioqDQotLS0gMzcwLDM3NiAtLS0tDQogIAl7IFBDSV9WRU5ET1JfU0lT
LCBwY2lpZGVfc2lzX3Byb2R1Y3RzIH0sDQogIAl7IFBDSV9WRU5ET1JfQUxJ
LCBwY2lpZGVfYWNlcl9wcm9kdWN0cyB9LA0KICAJeyBQQ0lfVkVORE9SX1BS
T01JU0UsIHBjaWlkZV9wcm9taXNlX3Byb2R1Y3RzIH0sDQorIAl7IFBDSV9W
RU5ET1JfVFJJT05FUywgcGNpaWRlX3RyaW9uZXNfcHJvZHVjdHMgfSwNCiAg
CXsgMCwgTlVMTCB9DQogIH07DQogIA0KKioqKioqKioqKioqKioqDQoqKiog
MzU2LDM2MSAqKioqDQotLS0gMzc4LDM4NCAtLS0tDQogIA0KICAvKiBvcHRp
b25zIHBhc3NlZCB2aWEgdGhlICdmbGFncycgY29uZmlnIGtleXdvcmQgKi8N
CiAgI2RlZmluZSBQQ0lJREVfT1BUSU9OU19ETUEJMHgwMQ0KKyAjZGVmaW5l
IFBDSUlERV9PUFRJT05TX0ZBU1RJUlEJMHgwMg0KICANCiAgaW50CXBjaWlk
ZV9tYXRjaCBfX1AoKHN0cnVjdCBkZXZpY2UgKiwgc3RydWN0IGNmZGF0YSAq
LCB2b2lkICopKTsNCiAgdm9pZAlwY2lpZGVfYXR0YWNoIF9fUCgoc3RydWN0
IGRldmljZSAqLCBzdHJ1Y3QgZGV2aWNlICosIHZvaWQgKikpOw0KKioqKioq
KioqKioqKioqDQoqKiogMjcwNCwyNzA2ICoqKioNCi0tLSAyNzI3LDI5MjUg
LS0tLQ0KICAJfQ0KICAJcmV0dXJuIHJ2Ow0KICB9DQorIA0KKyB2b2lkDQor
IGhwdDM2Nl9jaGlwX21hcChzYywgcGEpDQorICAgICAgICAgc3RydWN0IHBj
aWlkZV9zb2Z0YyAqc2M7DQorIAlzdHJ1Y3QgcGNpX2F0dGFjaF9hcmdzICpw
YTsNCisgew0KKyAJc3RydWN0IHBjaWlkZV9jaGFubmVsICpjcDsNCisgCXVf
aW50OF90IGNhYmxlLCBmYXN0aXJxOw0KKyAJcGNpcmVnX3QgaW50ZXJmYWNl
Ow0KKyAJYnVzX3NpemVfdCBjbWRzaXplLCBjdGxzaXplOw0KKyANCisgCWlm
IChwY2lpZGVfY2hpcGVuKHNjLCBwYSkgPT0gMCkNCisgCQlyZXR1cm47DQor
IA0KKyAJLyoNCisgCSAqIFBDSV9DTEFTU19SRUcgZG9lc24ndCBzZWVtIHRv
IGdpdmUgYSBzZW5zaWJsZSB2YWx1ZSwgc28gZmFrZSBpdC4NCisgCSAqLw0K
KyAJaW50ZXJmYWNlID0gUENJSURFX0lOVEVSRkFDRV9TRVRUQUJMRSgwKSB8
IFBDSUlERV9JTlRFUkZBQ0VfUENJKDApDQorIAkJfCBQQ0lJREVfSU5URVJG
QUNFX0JVU19NQVNURVJfRE1BOw0KKyANCisgCXByaW50ZigiJXM6IGJ1cy1t
YXN0ZXIgRE1BIHN1cHBvcnQgcHJlc2VudCIsDQorIAkJc2MtPnNjX3dkY2Rl
di5zY19kZXYuZHZfeG5hbWUpOw0KKyAJcGNpaWRlX21hcHJlZ19kbWEoc2Ms
IHBhKTsNCisgCXByaW50ZigiXG4iKTsNCisgCXNjLT5zY193ZGNkZXYuY2Fw
ID0gV0RDX0NBUEFCSUxJVFlfREFUQTE2IHwgV0RDX0NBUEFCSUxJVFlfREFU
QTMyIHwNCisgCSAgICBXRENfQ0FQQUJJTElUWV9NT0RFIHwgV0RDX0NBUEFC
SUxJVFlfRE1BIHwgV0RDX0NBUEFCSUxJVFlfVURNQTsNCisgCXNjLT5zY193
ZGNkZXYuUElPX2NhcCA9IDQ7DQorIAlzYy0+c2Nfd2RjZGV2LkRNQV9jYXAg
PSAyOw0KKyAJc2MtPnNjX3dkY2Rldi5VRE1BX2NhcCA9IDQ7DQorIA0KKyAJ
c2MtPnNjX3dkY2Rldi5zZXRfbW9kZXMgPSBocHQzNjZfc2V0dXBfY2hhbm5l
bDsNCisgCXNjLT5zY193ZGNkZXYuY2hhbm5lbHMgPSBzYy0+d2RjX2NoYW5h
cnJheTsNCisgCXNjLT5zY193ZGNkZXYubmNoYW5uZWxzID0gMTsNCisgDQor
IAkvKg0KKyAJICogIFR1cm4gZmFzdCBpbnRlcnJ1cHQgcHJlZGljdGlvbiBv
biBvciBvZmYgKHdoYXRldmVyIHRoYXQgZG9lcyEpLg0KKyAJICogIEFwcGFy
ZW50bHkgc29tZSBkcml2ZXMgcHJlZmVyIGl0LCBhbHRob3VnaCBpdCBzZWVt
cyB0byBiZQ0KKyAJICogIHBlci1jaGFubmVsLCBub3QgcGVyIGRyaXZlLg0K
KyAJICovDQorIAkgDQorIAlmYXN0aXJxID0gcGNpaWRlX3BjaV9yZWFkKCBz
Yy0+c2NfcGMsIHNjLT5zY190YWcsIEhQVDM2Nl9GQVNUSVJRICk7DQorIAlp
ZiAoc2MtPnNjX3dkY2Rldi5zY19kZXYuZHZfY2ZkYXRhLT5jZl9mbGFncyAm
IFBDSUlERV9PUFRJT05TX0ZBU1RJUlEpIHsNCisgCQlwY2lpZGVfcGNpX3dy
aXRlKCBzYy0+c2NfcGMsIHNjLT5zY190YWcsIEhQVDM2Nl9GQVNUSVJRLA0K
KyAJCQkJCQlmYXN0aXJxIHwgSFBUMzY2X0ZBU1RJUlFfRkxBRyApOw0KKyAJ
fSBlbHNlIHsNCisgCQlwY2lpZGVfcGNpX3dyaXRlKCBzYy0+c2NfcGMsIHNj
LT5zY190YWcsIEhQVDM2Nl9GQVNUSVJRLA0KKyAJCQkJCQlmYXN0aXJxICYg
fkhQVDM2Nl9GQVNUSVJRX0ZMQUcgKTsNCisgCX0NCisgDQorIAljYWJsZSA9
IHBjaWlkZV9wY2lfcmVhZChzYy0+c2NfcGMsIHNjLT5zY190YWcsIDB4NWEg
KTsNCisgCXByaW50ZiggIiVzOiBVRE1BLyVzIGNhYmxlIChyZWc1YWggPSAw
eCUwMngpIGZhc3QgaW50ZXJydXB0ICVzXG4iLCANCisgCQlzYy0+c2Nfd2Rj
ZGV2LnNjX2Rldi5kdl94bmFtZSwNCisgCQkoY2FibGUgJiBIUFQzNjZfQ0FC
TEVfVURNQTMzKSA/ICIzMyIgOiAiNjYiLCBjYWJsZSwNCisgCQkoc2MtPnNj
X3dkY2Rldi5zY19kZXYuZHZfY2ZkYXRhLT5jZl9mbGFncyAmIFBDSUlERV9P
UFRJT05TX0ZBU1RJUlEpDQorIAkJCT8gIk9OIiA6ICJPRkYiICk7DQorIAlj
cCA9ICZzYy0+cGNpaWRlX2NoYW5uZWxzWzBdOw0KKyANCisgCXNjLT53ZGNf
Y2hhbmFycmF5WzBdID0gJmNwLT53ZGNfY2hhbm5lbDsNCisgCWNwLT5uYW1l
ID0gUENJSURFX0NIQU5ORUxfTkFNRSgwKTsNCisgCWNwLT53ZGNfY2hhbm5l
bC5jaGFubmVsID0gMDsNCisgCWNwLT53ZGNfY2hhbm5lbC53ZGMgPSAmc2Mt
PnNjX3dkY2RldjsNCisgCWNwLT53ZGNfY2hhbm5lbC5jaF9xdWV1ZSA9IG1h
bGxvYyhzaXplb2Yoc3RydWN0IGNoYW5uZWxfcXVldWUpLCBNX0RFVkJVRiwg
TV9OT1dBSVQpOw0KKyAJaWYgKGNwLT53ZGNfY2hhbm5lbC5jaF9xdWV1ZSA9
PSBOVUxMKSB7DQorIAkJcHJpbnRmKCIlcyAlcyBjaGFubmVsOiAiDQorIAkg
ICAgCSAgICAiY2FuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBjb21tYW5kIHF1
ZXVlIiwNCisgCQkgICAgc2MtPnNjX3dkY2Rldi5zY19kZXYuZHZfeG5hbWUs
IGNwLT5uYW1lKTsNCisgCQlyZXR1cm47DQorIAl9DQorIAlwcmludGYoIiVz
OiAlcyBjaGFubmVsIGNvbmZpZ3VyZWQgdG8gbmF0aXZlLVBDSSBtb2RlXG4i
LA0KKyAJICAgIAkgICAgc2MtPnNjX3dkY2Rldi5zY19kZXYuZHZfeG5hbWUs
IGNwLT5uYW1lKTsNCisgCQ0KKyAJcGNpaWRlX21hcGNoYW4ocGEsIGNwLCBp
bnRlcmZhY2UsICZjbWRzaXplLCAmY3Rsc2l6ZSwgaHB0MzY2X3BjaV9pbnRy
KTsNCisgCWlmIChjcC0+aHdfb2sgPT0gMCkNCisgCQlyZXR1cm47DQorIAlo
cHQzNjZfc2V0dXBfY2hhbm5lbCgmY3AtPndkY19jaGFubmVsKTsNCisgDQor
IAlyZXR1cm47DQorIH0NCisgDQorIA0KKyB2b2lkDQorIGhwdDM2Nl9zZXR1
cF9jaGFubmVsKGNocCkNCisgCXN0cnVjdCBjaGFubmVsX3NvZnRjICpjaHA7
DQorIHsNCisgICAgICAgICBzdHJ1Y3QgYXRhX2RyaXZlX2RhdGFzICpkcnZw
Ow0KKyAJaW50IGRyaXZlOw0KKyAJaW50IGk7DQorIAl1X2ludDhfdCBidXNj
bG9ja19yZWc7DQorIAlpbnQgYnVzY2xvY2s7DQorIAl1X2ludDMyX3QgYmVm
b3JlLCBhZnRlcjsNCisgCXVfaW50MzJfdCBpZGVkbWFfY3RsOw0KKyAJc3Ry
dWN0IHBjaWlkZV9jaGFubmVsICpjcCA9IChzdHJ1Y3QgcGNpaWRlX2NoYW5u
ZWwqKWNocDsNCisgCXN0cnVjdCBwY2lpZGVfc29mdGMgKnNjID0gKHN0cnVj
dCBwY2lpZGVfc29mdGMgKiljcC0+d2RjX2NoYW5uZWwud2RjOw0KKyANCisg
CWJ1c2Nsb2NrX3JlZyA9IHBjaWlkZV9wY2lfcmVhZChzYy0+c2NfcGMsIHNj
LT5zY190YWcsIEhQVDM2Nl9CVVNDTE9DSygwKSk7DQorIA0KKyAJLyogc2V0
dXAgRE1BIGlmIG5lZWRlZCAqLw0KKyAJcGNpaWRlX2NoYW5uZWxfZG1hX3Nl
dHVwKGNwKTsNCisgDQorIAlpZGVkbWFfY3RsID0gMDsNCisgDQorICNpZmRl
ZiBfX2kzODZfXw0KKyAJc3dpdGNoKCBidXNjbG9ja19yZWcgKSB7DQorIAkJ
Y2FzZSBIUFQzNjZfQlVTQ0xPQ0tfNDA6DQorIAkJCWJ1c2Nsb2NrID0gNDA7
DQorIAkJCWJyZWFrOw0KKyANCisgCQlkZWZhdWx0Og0KKyAJCWNhc2UgSFBU
MzY2X0JVU0NMT0NLXzMzOg0KKyAJCQlidXNjbG9jayA9IDMzOw0KKyAJCQli
cmVhazsNCisgCQkJCQ0KKyAJCWNhc2UgSFBUMzY2X0JVU0NMT0NLXzI1Og0K
KyAJCQlidXNjbG9jayA9IDI1Ow0KKyAJCQlicmVhazsNCisgCX0NCisgI2Vs
c2UNCisgI2lmZGVmIFBDSV9CVVNDTE9DSw0KKyAJYnVzY2xvY2sgPSBQQ0lf
QlVTQ0xPQ0s7DQorICNlbHNlDQorIAlidXNjbG9jayA9IERFRkFVTFRfUENJ
X0JVU0NMT0NLOw0KKyAjZW5kaWYNCisgI2VuZGlmDQorIA0KKyAJZm9yKCBp
ID0gMDsgaSA8IChOX0hQVDM2Nl9USU1JTkdTIC0gMSk7ICsraSApDQorIAkJ
aWYoIGhwdDM2Nl90aW1pbmdzW2ldLmJ1c2Nsb2NrID49IGJ1c2Nsb2NrICkN
CisgCQkJYnJlYWs7DQorIAlwcmludGYoICIlczogYnVzIGNsb2NrICVkIE1I
eiAoYnVzY2xvY2sgcmVnIDB4JTAyeCksIHVzaW5nICVkIE1IeiB0aW1pbmdz
XG4iLA0KKyAJCWNwLT53ZGNfY2hhbm5lbC53ZGMtPnNjX2Rldi5kdl94bmFt
ZSwgYnVzY2xvY2ssIGJ1c2Nsb2NrX3JlZywNCisgCQlocHQzNjZfdGltaW5n
c1tpXS5idXNjbG9jayApOw0KKyANCisgCQ0KKyAJLyogUGVyIGRyaXZlIHNl
dHRpbmdzICovDQorIAlmb3IgKGRyaXZlID0gMDsgZHJpdmUgPCAyOyBkcml2
ZSsrKSB7DQorIAkJZHJ2cCA9ICZjaHAtPmNoX2RyaXZlW2RyaXZlXTsNCisg
CQkvKiBJZiBubyBkcml2ZSwgc2tpcCAqLw0KKyAJCWlmICgoZHJ2cC0+ZHJp
dmVfZmxhZ3MgJiBEUklWRSkgPT0gMCkNCisgCQkJY29udGludWU7DQorIA0K
KyAJCWJlZm9yZSA9IHBjaV9jb25mX3JlYWQoc2MtPnNjX3BjLCBzYy0+c2Nf
dGFnLA0KKyAJCQkJCUhQVDM2Nl9EQVRBX1RJTShkcml2ZSkpOw0KKyANCisg
ICAgICAgICAgICAgICAgIC8qIGFkZCB0aW1pbmcgdmFsdWVzLCBzZXR1cCBE
TUEgaWYgbmVlZGVkICovDQorICAgICAgICAgICAgICAgICBhZnRlciA9IGhw
dDM2Nl90aW1pbmdzW2ldLlBJT190aW1bZHJ2cC0+UElPX21vZGVdOw0KKyAg
ICAgICAgICAgICAgICAgaWYgKGRydnAtPmRyaXZlX2ZsYWdzICYgRFJJVkVf
VURNQSkgew0KKyAgICAgICAgICAgICAgICAgICAgICAgICBhZnRlciA9IGhw
dDM2Nl90aW1pbmdzW2ldLlVETUFfdGltW2RydnAtPlVETUFfbW9kZV07DQor
ICAgICAgICAgICAgICAgICAgICAgICAgIGlkZWRtYV9jdGwgfD0gSURFRE1B
X0NUTF9EUlZfRE1BKGRyaXZlKTsNCisgICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoZHJ2cC0+ZHJpdmVfZmxhZ3MgJiBEUklWRV9ETUEpIHsNCisgICAg
ICAgICAgICAgICAgICAgICAgICAgLyoNCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICogdXNlIE11bHRpd29yZCBETUEuDQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAqIFRpbWluZ3Mgd2lsbCBiZSB1c2VkIGZvciBib3RoIFBJ
TyBhbmQgRE1BLCBzbyBhZGp1c3QNCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICogRE1BIG1vZGUgaWYgbmVlZGVkDQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLw0KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZHJ2
cC0+UElPX21vZGUgPj0gMyAmJg0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGRydnAtPkRNQV9tb2RlICsgMikgPiBkcnZwLT5QSU9fbW9kZSkg
ew0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRydnAtPkRN
QV9tb2RlID0gZHJ2cC0+UElPX21vZGUgLSAyOw0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVy
ID0gaHB0MzY2X3RpbWluZ3NbaV0uRE1BX3RpbVtkcnZwLT5ETUFfbW9kZV07
DQorICAgICAgICAgICAgICAgICAgICAgICAgIGlkZWRtYV9jdGwgfD0gSURF
RE1BX0NUTF9EUlZfRE1BKGRyaXZlKTsNCisgICAgICAgICAgICAgICAgIH0N
CisgCQlhZnRlciAmPSB+SFBUMzY2X0RBVEFfVElNX0ZJRk87DQorIAkJcGNp
X2NvbmZfd3JpdGUoc2MtPnNjX3BjLCBzYy0+c2NfdGFnLA0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSFBUMzY2X0RBVEFfVElNKGRy
aXZlKSwgYWZ0ZXIpOw0KKyAJCXByaW50ZiggIiVzOiBidXMgc3BlZWQgcmVn
aXN0ZXIgc2V0IHRvIDB4JTA4eCAoQklPUyAweCUwOHgpXG4iLA0KKyAJCQlk
cnZwLT5kcnZfc29mdGMtPmR2X3huYW1lLCBhZnRlciwgYmVmb3JlICk7DQor
IAl9DQorIAlpZiAoaWRlZG1hX2N0bCAhPSAwKSB7DQorIAkJLyogQWRkIHNv
ZnR3YXJlIGJpdHMgaW4gc3RhdHVzIHJlZ2lzdGVyICovDQorIAkJYnVzX3Nw
YWNlX3dyaXRlXzEoc2MtPnNjX2RtYV9pb3QsIHNjLT5zY19kbWFfaW9oLA0K
KyAJCSAgICBJREVETUFfQ1RMLCBpZGVkbWFfY3RsKTsNCisgCX0NCisgCXBj
aWlkZV9wcmludF9tb2RlcyhjcCk7DQorIH0NCisgDQorIGludA0KKyBocHQz
NjZfcGNpX2ludHIoYXJnKQ0KKyAJdm9pZCAqYXJnOw0KKyB7DQorIAlzdHJ1
Y3QgcGNpaWRlX3NvZnRjICpzYyA9IGFyZzsNCisgCXN0cnVjdCBwY2lpZGVf
Y2hhbm5lbCAqY3AgPSAmc2MtPnBjaWlkZV9jaGFubmVsc1swXTsNCisgCXN0
cnVjdCBjaGFubmVsX3NvZnRjICp3ZGNfY3AgPSAmY3AtPndkY19jaGFubmVs
Ow0KKyAJaW50IHJ2ID0gMDsNCisgCXVfaW50OF90IGRtYXN0YXQ7DQorIA0K
KyAJLyoNCisgCSAqIENoZWNrIHRoZSBpbnRlcnJ1cHQgYmVsb25ncyB0byB0
aGlzIGNoYW5uZWwuDQorIAkgKi8NCisgCWRtYXN0YXQgPSBidXNfc3BhY2Vf
cmVhZF8xKHNjLT5zY19kbWFfaW90LCBzYy0+c2NfZG1hX2lvaCwgSURFRE1B
X0NUTCk7DQorIAlpZiggIShkbWFzdGF0ICYgSURFRE1BX0NUTF9JTlRSKSAp
DQorIAkJcmV0dXJuIDA7DQorIAlidXNfc3BhY2Vfd3JpdGVfMShzYy0+c2Nf
ZG1hX2lvdCwgc2MtPnNjX2RtYV9pb2gsIElERURNQV9DVEwsIGRtYXN0YXQp
Ow0KKyANCisgCXJ2ID0gd2RjaW50cih3ZGNfY3ApOw0KKyAJcmV0dXJuIChy
dik7DQorIH0NCisgDQpkaWZmIC1jIC0tbmV3LWZpbGUgZGV2L3BjaS5vbGQv
cGNpaWRlX2hwdDM2Nl9yZWcuaCBkZXYvcGNpL3BjaWlkZV9ocHQzNjZfcmVn
LmgNCioqKiBkZXYvcGNpLm9sZC9wY2lpZGVfaHB0MzY2X3JlZy5oCVRodSBK
YW4gIDEgMDE6MDA6MDAgMTk3MA0KLS0tIGRldi9wY2kvcGNpaWRlX2hwdDM2
Nl9yZWcuaAlXZWQgTWFyIDE1IDIyOjQ0OjEwIDIwMDANCioqKioqKioqKioq
KioqKg0KKioqIDAgKioqKg0KLS0tIDEsMTU5IC0tLS0NCisgLyoNCisgICog
Q29weXJpZ2h0IChjKSAyMDAwIFRoZSBOZXRCU0QgRm91bmRhdGlvbiwgSW5j
Lg0KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyAgKg0KKyAgKiBBdXRo
b3I6ICBSb2dlciBCcm9va3MgKHJzYkBsaXYuYWMudWspLg0KKyAgKg0KKyAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisgICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zDQorICAqIGFyZSBtZXQ6DQorICAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0DQorICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCisgICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQNCisgICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQ0KKyAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KKyAgKiAzLiBB
bGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMg
b3IgdXNlIG9mIHRoaXMgc29mdHdhcmUNCisgICogICAgbXVzdCBkaXNwbGF5
IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50Og0KKyAgKiAgICAgICAg
VGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0
aGUgTmV0QlNEDQorICAqICAgICAgICBGb3VuZGF0aW9uLCBJbmMuIGFuZCBp
dHMgY29udHJpYnV0b3JzLg0KKyAgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9m
IFRoZSBOZXRCU0QgRm91bmRhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cw0K
KyAgKiAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCisgICogICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLg0KKyAgKg0KKyAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBORVRCU0QgRk9VTkRBVElPTiwgSU5DLiBBTkQgQ09OVFJJQlVU
T1JTDQorICAqIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRA0KKyAg
KiBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUg0KKyAgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEZPVU5E
QVRJT04gT1IgQ09OVFJJQlVUT1JTDQorICAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1INCisgICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YNCisgICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQorICAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElODQorICAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpDQorICAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFDQorICAq
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KKyAgKg0KKyAgKi8NCisg
DQorIC8qDQorICAqIFJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciB0aGUgSGln
aHBvaW50L1RyaW9uZXMgSFBUMzY2IFVETUEvNjYgUENJIElERQ0KKyAgKiBj
b250cm9sbGVyLiAgDQorICAqDQorICAqIFRoaXMgY2hpcCBoYXMgMiBQQ0kg
SURFIGZ1bmN0aW9ucywgZWFjaCBvZiB3aXRoIG9ubHkgb25lIChwcmltYXJ5
KQ0KKyAgKiBjaGFubmVsLiAgVGhlIHRpbWluZyBpbmZvcm1hdGlvbiBmb3Ig
MzMgTUh6IGJ1cyBzcGVlZHMgd2VyZSBvYnRhaW5lZCBmcm9tDQorICAqIHRo
ZSBCSU9TIChBYml0IEJQNiB2ZXIgTkopLCBhcyBkZXNjcmliZWQgYmVsb3cu
ICBUaW1pbmcgaW5mb3JtYXRpb24gZm9yDQorICAqIDI1IGFuZCA0MCBNSHog
d2FzIHRha2VuIGZyb20gdGhlIExpbnV4IGRyaXZlciBwYXRjaGVzIGJ5IEFu
ZHJlIEhlZHJpY2sNCisgICogKGFuZHJlQHN1c2UuY29tKS4NCisgICoNCisg
ICogQmVjYXVzZSBteSBzeXN0ZW0gaGFzIGNsb2NrLWxvY2tlZCBDZWxlcm9u
cywgSSB3YXMgdW5hYmxlIHRvIG9idGFpbiB0aW1pbmdzDQorICAqIGZvciBv
dGhlciBidXMgc3BlZWRzLiAgSG93ZXZlciwgdGVzdGluZyBhIDMzIE1IeiBQ
Q0kgYnVzIHdpdGggdGltaW5ncyBmb3INCisgICogNDAgTUh6IHJlc3VsdGVk
IGluIHByb2xpZmljIGRpc2sgSS9PIGVycm9ycywgd2hpbGUgdXNpbmcgdGhl
IDI1IE1IeiB0aW1pbmdzDQorICAqIHdhcyBldmVuIHdvcnNlOyBubyBJL08g
ZXJyb3JzLCBidXQgYSB1ZnMgcGFuaWMgd2hpbGUgcnVubmluZyAnbHMgLWxS
Jw0KKyAgKiBhbmQgdG90YWxseSB0cmFzaGVkIGZpbGVzeXN0ZW1zLg0KKyAg
Kg0KKyAgKiBQTEVBU0UgUFJPQ0VFRCBXSVRIIENBVVRJT04gSUYgWU9VIEhB
VkUgQSAyNSBPUiA0MCBNSHogUENJIEJVUywgQVMgSSBIQVZFDQorICAqIE5P
VCBCRUVOIEFCTEUgVE8gVEVTVCBUSEUgVFVOSU5HIFBBUkFNRVRFUlMuICBJ
IHdvdWxkIGFkdmlzZSB5b3UgdG8gdmVyaWZ5DQorICAqIHRoZW0gZm9yIHlv
dXJzZWxmIChkb24ndCBiZSBzdXJwcmlzZWQgaWYgeW91IGdldCBzb21lIGRp
ZmZlcmVudCB2YWx1ZXMgZnJvbQ0KKyAgKiB0aG9zZSB3aGljaCBjYW1lIGZy
b20gdGhlIExpbnV4IGRyaXZlciAtIEkgZGlkIGZvciAzMyBNSHopLg0KKyAg
Kg0KKyAgKiBJZiB5b3UgaGF2ZSBhIHN5c3RlbSB3aXRoIGEgYnVzIHNwZWVk
IG90aGVyIHRoYW4gMjUsIDMzIG9yIDQwIE1IeiB5b3Ugd2lsbA0KKyAgKiBh
bHNvIG5lZWQgdG8gZ2V0IHRoZSB0dW5pbmcgcGFyYW1ldGVycy4NCisgICoN
CisgICogWW91IHdpbGwgbmVlZCBhbiBpMzg2IG1hY2hpbmUgd2hpY2ggaXMg
c2V0IHRvIHRoZSByZXF1aXJlZCBidXMgc3BlZWQuDQorICAqIElmIHlvdSBh
cmUgdXNpbmcgYSBIUFQzNjYgUENJIGNhcmQgdGhlIEJJT1MgbXVzdCBiZSBl
bmFibGVkLiAgQ29ubmVjdCBhDQorICAqIFVETUEgbW9kZSA0IGRpc2sgYW5k
IGJvb3QgbmV0YnNkIGZyb20gYW5vdGhlciBkaXNrIChub3Qgb24gdGhlIEhQ
VDM2NikuDQorICAqIFNlYXJjaGluZyB0aGUgbWVzc2FnZSBsb2cgd2lsbCBn
aXZlIHlvdSB0aGUgdHVuaW5nIHBhcmFtZXRlciBmb3IgdGhpcyBtb2RlDQor
ICAqIGFuZCBidXMgc3BlZWQgKHRoZSB2YWx1ZSBzZXQgYnkgdGhlIEJJT1Mg
aXMgaW4gYnJhY2tldHMpLg0KKyAgKg0KKyAgKiAgICB3ZDI6IGJ1cyBzcGVl
ZCByZWdpc3RlciBzZXQgdG8gMHgxMGM5YTczMSAoQklPUyAweDEwYzlhNzMx
KQ0KKyAgKg0KKyAgKiBSZWJvb3QsIGFuZCB3aGVuIHRoZSBtYWNoaW5lIHJl
c2V0cywgZ28gaW50byB0aGUgSGlnaHBvaW50IEJJT1MgKHR5cGUgXkgpDQor
ICAqIGFuZCByZWR1Y2UgdGhlIGRpc2sgdG8gVURNQSBtb2RlIDMuICBMZXQg
dGhlIHN5c3RlbSBib290IGFuZCBnZXQgdGhlIG5leHQNCisgICogdHVuaW5n
IHBhcmFtZXRlciBmcm9tIHRoZSBtZXNzYWdlIGxvZy4gIFJlcGVhdCB0aGlz
IHByb2Nlc3MgZm9yIGFsbCBVRE1BLA0KKyAgKiBETUEgYW5kIFBJTyBtb2Rl
cywgYW5kIHlvdSB3aWxsIGhhdmUgYWxsIHRoZSB2YWx1ZXMgdG8gYWRkIGFu
b3RoZXIgZWxlbWVudA0KKyAgKiB0byBocHQzNjZfdGltaW5nc1tdLiAgSWYg
dGhlIEhpZ2hwb2ludCBCSU9TIGRvZXNuJ3QgZ2l2ZSBhIHNldHVwIHNjcmVl
bg0KKyAgKiB3aGVuIHlvdSB0eXBlIF5ILCB5b3UgbWF5IG5lZWQgYSBCSU9T
IHVwZ3JhZGUuDQorICAqDQorICAqIERvbid0IG1vdW50IGFueXRoaW5nIG9m
ZiB0aGUgSFBUMzY2IFIvVyB1bnRpbCB5b3UgaGF2ZSBidWlsdCBhIG5ldyBr
ZXJuZWwNCisgICogaW5jb3Jwb3JhdGluZyB0aGUgY29ycmVjdCB0dW5pbmcg
cGFyYW1ldGVycy4NCisgICoNCisgICogKioqIElNUE9SVEFOVCBOT1RFIGZv
ciBub24taTM4NiBtYWNoaW5lcyAqKioNCisgICoNCisgICogVGhlIEhQVDM2
NiBjb2RlIGlzIG5vdCBxdWl0ZSBtYWNoaW5lLWluZGVwZW5kZW50LiAgVGhl
IHBhcnQgd2hpY2ggaXMNCisgICogbWlzc2luZyBpcyBhIG1lYW5zIHRvIGRl
dGVybWluZSB0aGUgUENJIGJ1cyBjbG9jayBzcGVlZC4gIE9uIHRoZSBpMzg2
LA0KKyAgKiB0aGUgYnVzIGNsb2NrIGlzIG9idGFpbmVkIGJ5IHJlYWRpbmcg
SFBUMzY2X0RBVEFfVElNKGRyaXZlKSwgYnV0IEkgc3VzcGVjdA0KKyAgKiB0
aGlzIGhhcyBiZWVuIHNldCB1cCBieSB0aGUgQklPUy4gIElmIHlvdSBhcmUg
dXNpbmcgYSBQQ0kgY2FyZCAoZS5nLiBBYml0DQorICAqIEhvdC1Sb2QgNjYp
IGluIGEgbm9uLWkzODYgbWFjaGluZSwgeW91J2xsIHByb2JhYmx5IG5lZWQg
dG8gZmluZCBhIHdheSBvZg0KKyAgKiBkZXRlcm1pbmluZyB0aGUgYnVzIHNw
ZWVkLiAgSSd2ZSBhcnJhbmdlZCB0aGF0IG5vbi1pMzg2IGFyY2hpdGVjdHVy
ZXMgdXNlDQorICAqIGEgZGVmYXVsdCBvZiAzMyBNSHosIGJ1dCBpZiB5b3Ug
bmVlZCBhIGRpZmZlcmVudCB2YWx1ZSB5b3UgY2FuIHNwZWNpZnkgaXQNCisg
ICogaW4gdGhlIGtlcm5lbCBjb25maWcgZmlsZSB3aXRoDQorICAqDQorICAq
ICAgICAgb3B0aW9ucyBQQ0lfQlVTQ0xPQ0s9bm4NCisgICoNCisgICogVGhl
IGlkZWFsIHNvbHV0aW9uIHRvIHRoaXMgd291bGQgYmUgZm9yIHRoZSBtYWNo
aW5lLWRlcGVuZGVudCBQQ0kgY29kZSB0bw0KKyAgKiBwcm92aWRlIGEgZnVu
Y3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgYnVzIHNwZWVkIChpdCBzaG91bGQg
dGFrZSBhbiBhcmcgb2YNCisgICogdHlwZSBwY2l0YWdfdCwgaW4gY2FzZSB0
aGVyZSBhcmUgdHdvIG9yIG1vcmUgYnVzZXMgd2l0aCBkaWZmZXJlbnQgc3Bl
ZWRzKS4NCisgICogDQorICAqLw0KKyAgDQorIA0KKyAjZGVmaW5lIEhQVDM2
Nl9GQVNUSVJRCQkweDUxDQorICNkZWZpbmUgSFBUMzY2X0ZBU1RJUlFfRkxB
RwkweDgwDQorIA0KKyAjZGVmaW5lIEhQVDM2Nl9DQUJMRQkJMHg1YQ0KKyAj
ZGVmaW5lIEhQVDM2Nl9DQUJMRV9VRE1BMzMJMHgwMg0KKyANCisgI2RlZmlu
ZSBIUFQzNjZfREFUQV9USU0oZHJpdmUpICgoZHJpdmUpID09IDAgPyAweDQw
IDogMHg0NCApDQorIA0KKyAjZGVmaW5lIEhQVDM2Nl9EQVRBX1RJTV9GSUZP
CTB4ODAwMDAwMDANCisgDQorIC8qIEJ1c2Nsb2NrIHNwZWVkIGluIHJlZyAw
eDQxLzB4NDUgKGJ5dGUgcmVnaXN0ZXIpICovDQorIA0KKyAjZGVmaW5lIEhQ
VDM2Nl9CVVNDTE9DSyhkcml2ZSkgKChkcml2ZSkgPT0gMCA/IDB4NDEgOiAw
eDQ1ICkNCisgDQorICNkZWZpbmUgSFBUMzY2X0JVU0NMT0NLXzQwCTB4ZDkN
CisgI2RlZmluZSBIUFQzNjZfQlVTQ0xPQ0tfMzMJMHhhNw0KKyAjZGVmaW5l
IEhQVDM2Nl9CVVNDTE9DS18yNQkweDg1DQorIA0KKyAjZGVmaW5lIERFRkFV
TFRfUENJX0JVU0NMT0NLIDMzDQorIA0KKyAvKg0KKyAgKiBUdW5pbmcgZm9y
IGJ1cyBjbG9jayBzcGVlZC4gIE9uIGkzODYgbWFjaGluZXMgdGhlIEhQVDM2
NiBCSU9TIGFwcGVhcnMgdG8NCisgICogaGF2ZSBzZXQgdGhlc2UgdXAsIGFs
dGhvdWdoIGhwdDM2Nl9zZXR1cF9jaGFubmVsKCkgc2V0cyB0aGVtIGZvciB0
aGUNCisgICogdHJhbnNmZXIgbW9kZSBhY3R1YWxseSBpbiB1c2UuDQorICAq
Lw0KKyANCisgI2RlZmluZSBOX1VETUEgNQ0KKyAjZGVmaW5lIE5fRE1BIDMN
CisgI2RlZmluZSBOX1BJTyA1DQorICANCisgc3RydWN0IGhwdDM2Nl90dW5l
IHsNCisgCWludCBidXNjbG9jazsNCisgCXVfaW50MzJfdCBVRE1BX3RpbVtO
X1VETUFdOw0KKyAJdV9pbnQzMl90IERNQV90aW1bTl9ETUFdOw0KKyAJdV9p
bnQzMl90IFBJT190aW1bTl9QSU9dOw0KKyB9Ow0KKyANCisgDQorIHN0YXRp
YyBzdHJ1Y3QgaHB0MzY2X3R1bmUgaHB0MzY2X3RpbWluZ3NbXSA9DQorIHsN
CisgCXsNCisgCSAgICAyNSwNCisgICAgICAgICAgICAgeyAweDkwY2I4NTIx
LCAweDkwY2I4NTIxLCAweDkwY2Y4NTIxLCAweDkwY2Y4NTIxLCAweDkwYzk4
NTIxIH0sDQorIAkgICAgeyAweGEwY2E4NTc1LCAweGEwY2E4NTMyLCAweGEw
Y2E4NTIxIH0sDQorICAgICAgICAgICAgIHsgMHhjMGQwODU4NSwgMHhjMGQw
ODU3MiwgMHhjMGNhODU0MiwgMHhjMGNhODUzMiwgMHhjMGNhODUyMSB9DQor
ICAgICAgICAgfSwNCisgICAgICAgICB7DQorICAgICAgICAgICAgIDMzLA0K
KyAgICAgICAgICAgICB7IDB4OTBjOGE3NTMsIDB4OTBjYmE3NDIsIDB4OTBj
YWE3MzEsIDB4OTBjZmE3MzEsIDB4OTBjOWE3MzEgfSwNCisgCSAgICB7IDB4
YTBjOGE3OTcsIDB4YTBjOGE3MzIsIDB4YTBjOGE3MzEgfSwNCisgICAgICAg
ICAgICAgeyAweDgwZDBhN2FhLCAweDgwZDBhN2EzLCAweDgwYzhhNzUzLCAw
eDgwYzhhNzQyLCAweDgwYzhhNzMxIH0NCisgICAgICAgICB9LA0KKyAJew0K
KyAJICAgIDQwLA0KKyAJICAgIHsgMHg5MDA4ZDk0MywgMHg5MDA4ZDk0Mywg
MHg5MDBiZDk0MywgMHg5MDBhZDk0MywgMHg5MDBmZDk0MyB9LA0KKyAJICAg
IHsgMHhhMDEwZDlmYywgMHhhMDEwZDk1NSwgMHhhMDA4ZDk0MyB9LA0KKyAg
ICAgICAgICAgICB7IDB4YzAxOGQ5ZDksIDB4YzAxMGQ5YzcsIDB4YzAxMGQ5
OTcsIDB4YzAxMGQ5NzQsIDB4YzAwOGQ5NjMgfQ0KKyAgICAgICAgIH0NCisg
fTsNCisgDQorICNkZWZpbmUgTl9IUFQzNjZfVElNSU5HUyAoIHNpemVvZiho
cHQzNjZfdGltaW5ncykgLyBzaXplb2Yoc3RydWN0IGhwdDM2Nl90dW5lKSkN
CioqKiBjb25mLm9sZC9maWxlcwlGcmkgRmViIDI1IDEyOjUyOjA3IDIwMDAN
Ci0tLSBjb25mL2ZpbGVzCVR1ZSBNYXIgMTQgMjI6NTA6MzYgMjAwMA0KKioq
KioqKioqKioqKioqDQoqKiogMzEsMzYgKioqKg0KLS0tIDMxLDM4IC0tLS0N
CiAgDQogIGRlZm9wdAlvcHRfZXhlY2ZtdC5oCUVYRUNfQU9VVCBFWEVDX0NP
RkYgRVhFQ19FQ09GRiBFWEVDX0VMRjMyIEVYRUNfRUxGNjQgRVhFQ19TQ1JJ
UFQNCiAgDQorIGRlZm9wdAlvcHRfcGNpX2J1c2Nsb2NrLmgJUENJX0JVU0NM
T0NLDQorIA0KICAjIGNvbXBhdGliaWxpdHkgb3B0aW9ucw0KICBkZWZvcHQJ
Q09NUEFUX0ZSRUVCU0QNCiAgZGVmb3B0CUNPTVBBVF9IUFVYDQo=
---559023410-959030623-955962671=:25666--