[6894] in linux-scsi channel archive
ncr/sym patch for linux-2.2.11
daemon@ATHENA.MIT.EDU (Gerard Roudier)
Sat Jul 24 14:49:58 1999
Date: Sat, 24 Jul 1999 20:44:05 +0200 (MET DST)
From: Gerard Roudier <groudier@club-internet.fr>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>,
Linus Torvalds <torvalds@transmeta.com>
cc: linux-scsi@vger.rutgers.edu
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-312338826-932841845=:2209
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
I have attached to this mail a ncr/sym driver update for linux-2.2.11.
The patch is against 2.2.11-pre3 and collects changes that I think quite=20
safe for linux-stable.
The 'cc' to the scsi list is for people to check if (that?) the merge with
2.2.11-pre3 is ok. The jiffies clean-up will be available in a future
patch.
(By the way, this patch does not contain the latest version of the sym
driver which is currently 1.5d. That one will be proposed for 2.3 in a
couple of weeks).=20
Summary of the changes in this patch:
Both sym53c8xx and ncr53c8xx:
- Fix the misdetection of SYM53C875E (was detected as a 876).
- Add 'hostid:#id' boot option.
- Move some data structures (nvram layouts and driver set-up) to=20
the sym53c8xx_defs.h file. So, the both drivers will share them.
- support for the SYM53C895A
- merge of driver 1.3f with linux-2.2.11-pre3 -> 1.3g
sym53c8xx only:
- remove the test against the connect bit from the scsi interrupt=20
handling.
- Fix the misdetection of SYM53C810 not A (was detected as a 810A).
- Call request_region() event if MMIO is used and not normal IO.
This allows sym and the ncr driver to be loaded in any order=20
without any risk of attaching the same device.
- Support for any number of LUNs (64) (SPI2-compliant).
- Make SCRIPTS not use self-mastering for PCI.
ncr53c8xx only:
- Set MAX LUNS to 16 (instead of 8).
- merge of driver 3.2a-1 with linux-2.2.11-pre3 -> 3.2a-2
+ some other minor changes.
Regards,
G=E9rard.
--8323328-312338826-932841845=:2209
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ncr-sym-1.3g-for-2.2.11.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.990724204405.2209B@localhost>
Content-Description:
LS0tIC9tbnQvbGludXgtMi4yLjExLXByZTMvRG9jdW1lbnRhdGlvbi9Db25m
aWd1cmUuaGVscAlUdWUgSnVsIDIwIDIzOjIxOjQxIDE5OTkNCisrKyBsaW51
eC9Eb2N1bWVudGF0aW9uL0NvbmZpZ3VyZS5oZWxwCVRodSBKdWwgMjIgMjI6
NTg6MjEgMTk5OQ0KQEAgLTQwMzcsNyArNDAzNywxMyBAQA0KICAgTUIvcyB3
aXRoIHdpZGUgRkFTVC00MCBMVkQgZGV2aWNlcyBhbmQgY29udHJvbGxlcnMu
DQogDQogICBSZWNlbnQgdmVyc2lvbnMgb2YgdGhlIDUzQzhYWCBjaGlwcyBh
cmUgYmV0dGVyIHN1cHBvcnRlZCBieSB0aGUNCi0gIG9wdGlvbiAiU1lNNTND
OFhYIFNDU0kgc3VwcG9ydCIsIGJlbG93Lg0KKyAgb3B0aW9uICJTWU01M0M4
WFggU0NTSSBzdXBwb3J0IiwgYmVsb3cuIFRoaXMgb3B0aW9uIHdpbGwgY29u
ZmlndXJlIA0KKyAgYSBkaWZmZXJlbnQgZHJpdmVyLg0KKw0KKyAgSWYgeW91
IHdhbnQgdGhlIGtlcm5lbCB0byBzZWxlY3QgdGhlIHJlY29tbWVuZGVkIGRy
aXZlciBmb3IgZWFjaCBvZiANCisgIG9mIHlvdXIgTkNSL1NZTTUzQzhYWCBj
b250cm9sbGVycyB5b3UgbWF5IGp1c3QgY29uZmlndXJlIGJvdGggdGhlIA0K
KyAgTkNSNTNDOFhYIGFuZCB0aGUgU1lNNTNDOFhYIG9wdGlvbnMgdG8gWSwg
b3IgaWYgbW9kdWxlcyBhcmUgcHJlZmVycmVkLCANCisgIGxvYWQgZmlyc3Qg
dGhlIHN5bTUzYzh4eC5vIG1vZHVsZSBhbmQgdGhlbiB0aGUgbmNyNTNjOHh4
Lm8gbW9kdWxlLg0KIA0KICAgTm90ZTogdGhlcmUgaXMgeWV0IGFub3RoZXIg
ZHJpdmVyIGZvciB0aGUgNTNjOHh4IGZhbWlseSBvZiBjb250cm9sbGVycw0K
ICAgKCJOQ1I1M2M3LDh4eCBTQ1NJIHN1cHBvcnQiIGFib3ZlKS4gSWYgeW91
IHdhbnQgdG8gdXNlIHRoZW0gYm90aCwNCi0tLSAvbW50L2xpbnV4LTIuMi4x
MS1wcmUzL2RyaXZlcnMvc2NzaS9DaGFuZ2VMb2cuc3ltNTNjOHh4CVN1biBN
YXkgIDkgMTI6NTE6MTcgMTk5OQ0KKysrIGxpbnV4L2RyaXZlcnMvc2NzaS9D
aGFuZ2VMb2cuc3ltNTNjOHh4CVNhdCBKdWwgMjQgMTI6NDA6MDggMTk5OQ0K
QEAgLTEsMyArMSw0MCBAQA0KK1NhdCBKdWwgMjQgIDEyOjAwIDE5OTkgR2Vy
YXJkIFJvdWRpZXIgKGdyb3VkaWVyQGNsdWItaW50ZXJuZXQuZnIpDQorCSog
dmVyc2lvbiBzeW01M2M4eHgtMS4zZw0KKwktIG1lcmdlIG9mIGRyaXZlciAx
LjNmIHdpdGggbGludXgtMi4yLjExLXByZTMNCisJLSByZW1vdmUgdGhlIGJy
b2tlbiB0ZXN0aW5nIG9mIHRoZSBjaGlwIGJlaW5nIGNvbm5lY3RlZCB0byBT
Q1NJIA0KKwkgIGZyb20gdGhlIFNDU0kgaW50ZXJydXB0IGhhbmRsaW5nIGNv
ZGUuICAgDQorDQorU3VuIE1heSA5ICAxNTowMCAxOTk5IEdlcmFyZCBSb3Vk
aWVyIChncm91ZGllckBjbHViLWludGVybmV0LmZyKQ0KKwkqIHZlcnNpb24g
c3ltNTNjOHh4LTEuM2YNCisJLSBGaXggdGhlIG1pc2RldGVjdGlvbiBvZiBT
WU01M0M4NzVFICh3YXMgZGV0ZWN0ZWQgYXMgYSA4NzYpLg0KKwktIEZpeCB0
aGUgbWlzZGV0ZWN0aW9uIG9mIFNZTTUzQzgxMCBub3QgQSAod2FzIGRldGVj
dGVkIGFzIGEgODEwQSkuDQorCS0gU3VwcG9ydCBmb3IgdGhlIDUzQzg5NUEg
YnkgUGFtZWxhIERlbGFuZXkgPHBhbS5kZWxhbmV5QGxzaWwuY29tPg0KKwkg
IFRoZSA1M0M4OTVBIGNvbnRhaW5zIGFsbCBvZiB0aGUgZmVhdHVyZXMgb2Yg
dGhlIDg5NiBidXQgaGFzIG9ubHkgDQorCSAgb25lIGNoYW5uZWwgYW5kIGhh
cyBhIDMyIGJpdCBQQ0kgYnVzLiBJdCBkb2VzIDY0IGJpdCBQQ0kgYWRkcmVz
c2luZyANCisJICB1c2luZyBkdWFsIGN5Y2xlIFBDSSBkYXRhIHRyYW5zZmVy
cy4NCisJLSBDYWxsIHJlcXVlc3RfcmVnaW9uKCkgZXZlbnQgaWYgTU1JTyBp
cyB1c2VkIGFuZCBub3Qgbm9ybWFsIElPLg0KKwkgIFRoaXMgYWxsb3dzIHN5
bSBhbmQgdGhlIG5jciBkcml2ZXIgdG8gYmUgbG9hZGVkIGluIGFueSBvcmRl
ciANCisJICB3aXRob3V0IGFueSByaXNrIG9mIGF0dGFjaGluZyB0aGUgc2Ft
ZSBkZXZpY2UuDQorCS0gU2V0IHRoZSBhY3R1YWwgaG9zdCBJRCB1c2VkIGZv
ciBlYWNoIGhvc3QgaW4gdGhlIHNjc2kgaG9zdCBkYXRhIA0KKwkgIHN0cnVj
dHVyZS4gVGhlIG1pZC1sYXllciBTQ1NJIGRyaXZlciBuZWVkcyB0aGlzIGlu
Zm9ybWF0aW9uLg0KKwktIE1pc2NlbGxhbmVvdXMgbWlub3IgZml4ZXMuDQor
DQorVHVlIEFwciAxNSAgMTA6MDAgMTk5OSBHZXJhcmQgUm91ZGllciAoZ3Jv
dWRpZXJAY2x1Yi1pbnRlcm5ldC5mcikNCisJKiB2ZXJzaW9uIHN5bTUzYzh4
eC0xLjNlDQorCS0gU3VwcG9ydCBmb3IgYW55IG51bWJlciBvZiBMVU5zICg2
NCkgKFNQSTItY29tcGxpYW50KS4NCisJICAoQnR3LCB0aGlzIG1heSBvbmx5
IGJlIGV2ZXIgdXNlZnVsbCB1bmRlciBsaW51eC0yLjIgOy0pKQ0KKw0KK1N1
biBBcHIgMTEgIDEwOjAwIDE5OTkgR2VyYXJkIFJvdWRpZXIgKGdyb3VkaWVy
QGNsdWItaW50ZXJuZXQuZnIpDQorCSogdmVyc2lvbiBzeW01M2M4eHgtMS4z
ZA0KKwktIEFkZCAnaG9zdGlkOiNpZCcgYm9vdCBvcHRpb24uIFRoaXMgb3B0
aW9uIGFsbG93cyB0byBjaGFuZ2UgdGhlIA0KKwkgIGRlZmF1bHQgU0NTSSBp
ZCB0aGUgZHJpdmVyIHVzZXMgZm9yIGNvbnRyb2xsZXJzLg0KKwktIE1ha2Ug
U0NSSVBUUyBub3QgdXNlIHNlbGYtbWFzdGVyaW5nIGZvciBQQ0kuDQorCSAg
VGhlcmUgd2VyZSBzdGlsbCAyIHBsYWNlcyB0aGUgZHJpdmVyIHVzZWQgdGhp
cyBmZWF0dXJlIG9mIHRoZSANCisJICA1M0M4WFggZmFtaWx5Lg0KKwktIE1v
dmUgc29tZSBkYXRhIHN0cnVjdHVyZXMgKG52cmFtIGxheW91dHMgYW5kIGRy
aXZlciBzZXQtdXApIHRvIA0KKwkgIHRoZSBzeW01M2M4eHhfZGVmcy5oIGZp
bGUuIFNvLCB0aGUgYm90aCBkcml2ZXJzIHdpbGwgc2hhcmUgdGhlbS4NCisJ
LSBTZXQgTUFYIExVTlMgdG8gMTYgKGluc3RlYWQgb2YgOCkuDQorDQogU2F0
IE1hciAyMCAgMjE6MDAgMTk5OSBHZXJhcmQgUm91ZGllciAoZ3JvdWRpZXJA
Y2x1Yi1pbnRlcm5ldC5mcikNCiAJKiB2ZXJzaW9uIHN5bTUzYzh4eC0xLjNi
DQogCS0gQWRkIHN1cHBvcnQgZm9yIE5DUiBQUVMgUERTLg0KLS0tIC9tbnQv
bGludXgtMi4yLjExLXByZTMvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF9kZWZz
LmgJU3VuIE1heSAgOSAxMjo1MToxNyAxOTk5DQorKysgbGludXgvZHJpdmVy
cy9zY3NpL3N5bTUzYzh4eF9kZWZzLmgJVHVlIEp1bCAyMCAyMzozMDo0MyAx
OTk5DQpAQCAtMjcxLDcgKzI3MSw3IEBADQogI2RlZmluZSBTQ1NJX05DUl9U
SU1FUl9JTlRFUlZBTAkoSFopDQogDQogI2lmIDEgLyogZGVmaW5lZCBDT05G
SUdfU0NTSV9NVUxUSV9MVU4gKi8NCi0jZGVmaW5lIFNDU0lfTkNSX01BWF9M
VU4JKDgpDQorI2RlZmluZSBTQ1NJX05DUl9NQVhfTFVOCSgxNikNCiAjZWxz
ZQ0KICNkZWZpbmUgU0NTSV9OQ1JfTUFYX0xVTgkoMSkNCiAjZW5kaWYNCkBA
IC0zODQsNiArMzg0LDEwIEBADQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX05D
Ul81M0M4OTYgMHhiDQogI2VuZGlmDQogDQorI2lmbmRlZiBQQ0lfREVWSUNF
X0lEX05DUl81M0M4OTVBDQorI2RlZmluZSBQQ0lfREVWSUNFX0lEX05DUl81
M0M4OTVBIDB4MTINCisjZW5kaWYNCisNCiAvKg0KICoqICAgTkNSNTNDOFhY
IGRldmljZXMgZmVhdHVyZXMgdGFibGUuDQogKi8NCkBAIC00NjMsNyArNDY3
LDEwIEBADQogIHtQQ0lfREVWSUNFX0lEX05DUl81M0M4NzUsIDB4MGYsICI4
NzUiLCAgNiwgMTYsIDUsCQkJXA0KICBGRV9XSURFfEZFX1VMVFJBfEZFX0RC
TFJ8RkVfQ0FDSEUwX1NFVHxGRV9CT0Z8RkVfREZTfEZFX0xEU1RSfEZFX1BG
RU58RkVfUkFNfVwNCiAgLAkJCQkJCQkJCVwNCi0ge1BDSV9ERVZJQ0VfSURf
TkNSXzUzQzg3NSwgMHhmZiwgIjg3NiIsICA2LCAxNiwgNSwJCQlcDQorIHtQ
Q0lfREVWSUNFX0lEX05DUl81M0M4NzUsIDB4MWYsICI4NzYiLCAgNiwgMTYs
IDUsCQkJXA0KKyBGRV9XSURFfEZFX1VMVFJBfEZFX0RCTFJ8RkVfQ0FDSEUw
X1NFVHxGRV9CT0Z8RkVfREZTfEZFX0xEU1RSfEZFX1BGRU58RkVfUkFNfVwN
CisgLAkJCQkJCQkJCVwNCisge1BDSV9ERVZJQ0VfSURfTkNSXzUzQzg3NSwg
MHgyZiwgIjg3NUUiLCAgNiwgMTYsIDUsCQkJXA0KICBGRV9XSURFfEZFX1VM
VFJBfEZFX0RCTFJ8RkVfQ0FDSEUwX1NFVHxGRV9CT0Z8RkVfREZTfEZFX0xE
U1RSfEZFX1BGRU58RkVfUkFNfVwNCiAgLAkJCQkJCQkJCVwNCiAge1BDSV9E
RVZJQ0VfSURfTkNSXzUzQzg3NUosMHhmZiwgIjg3NUoiLCA2LCAxNiwgNSwJ
CQlcDQpAQCAtNDc4LDYgKzQ4NSwxMCBAQA0KICB7UENJX0RFVklDRV9JRF9O
Q1JfNTNDODk2LCAweGZmLCAiODk2IiwgIDcsIDMxLCA3LAkJCVwNCiAgRkVf
V0lERXxGRV9VTFRSQTJ8RkVfUVVBRHxGRV9DQUNIRV9TRVR8RkVfQk9GfEZF
X0RGU3xGRV9MRFNUUnxGRV9QRkVOfEZFX1JBTXxcDQogIEZFX1JBTThLfEZF
XzY0QklUfEZFX0lPMjU2fEZFX05PUE18RkVfTEVEQ31cDQorICwJCQkJCQkJ
CQlcDQorIHtQQ0lfREVWSUNFX0lEX05DUl81M0M4OTVBLCAweGZmLCAiODk1
YSIsICA2LCAzMSwgNywJCQlcDQorIEZFX1dJREV8RkVfVUxUUkEyfEZFX1FV
QUR8RkVfQ0FDSEVfU0VUfEZFX0JPRnxGRV9ERlN8RkVfTERTVFJ8RkVfUEZF
TnxGRV9SQU18XA0KKyBGRV9SQU04S3xGRV82NEJJVHxGRV9JTzI1NnxGRV9O
T1BNfEZFX0xFREN9XA0KIH0NCiANCiAvKg0KQEAgLTQ5NCwxMCArNTA1LDQ2
IEBADQogCVBDSV9ERVZJQ0VfSURfTkNSXzUzQzg3NUosCVwNCiAJUENJX0RF
VklDRV9JRF9OQ1JfNTNDODg1LAlcDQogCVBDSV9ERVZJQ0VfSURfTkNSXzUz
Qzg5NSwJXA0KLQlQQ0lfREVWSUNFX0lEX05DUl81M0M4OTYJXA0KKwlQQ0lf
REVWSUNFX0lEX05DUl81M0M4OTYsCVwNCisJUENJX0RFVklDRV9JRF9OQ1Jf
NTNDODk1QQlcDQogfQ0KIA0KIC8qDQorKioJRHJpdmVyIHNldHVwIHN0cnVj
dHVyZS4NCisqKg0KKyoqCVRoaXMgc3RydWN0dXJlIGlzIGluaXRpYWxpemVk
IGZyb20gbGludXggY29uZmlnIG9wdGlvbnMuDQorKioJSXQgY2FuIGJlIG92
ZXJyaWRkZW4gYXQgYm9vdC11cCBieSB0aGUgYm9vdCBjb21tYW5kIGxpbmUu
DQorKi8NCisjZGVmaW5lIFNDU0lfTkNSX01BWF9FWENMVURFUyA4DQorc3Ry
dWN0IG5jcl9kcml2ZXJfc2V0dXAgew0KKwl1X2NoYXIJbWFzdGVyX3Bhcml0
eTsNCisJdV9jaGFyCXNjc2lfcGFyaXR5Ow0KKwl1X2NoYXIJZGlzY29ubmVj
dGlvbjsNCisJdV9jaGFyCXNwZWNpYWxfZmVhdHVyZXM7DQorCXVfY2hhcgl1
bHRyYV9zY3NpOw0KKwl1X2NoYXIJZm9yY2Vfc3luY19uZWdvOw0KKwl1X2No
YXIJcmV2ZXJzZV9wcm9iZTsNCisJdV9jaGFyCXBjaV9maXhfdXA7DQorCXVf
Y2hhcgl1c2VfbnZyYW07DQorCXVfY2hhcgl2ZXJib3NlOw0KKwl1X2NoYXIJ
ZGVmYXVsdF90YWdzOw0KKwl1X3Nob3J0CWRlZmF1bHRfc3luYzsNCisJdV9z
aG9ydAlkZWJ1ZzsNCisJdV9jaGFyCWJ1cnN0X21heDsNCisJdV9jaGFyCWxl
ZF9waW47DQorCXVfY2hhcgltYXhfd2lkZTsNCisJdV9jaGFyCXNldHRsZV9k
ZWxheTsNCisJdV9jaGFyCWRpZmZfc3VwcG9ydDsNCisJdV9jaGFyCWlycW07
DQorCXVfY2hhcglidXNfY2hlY2s7DQorCXVfY2hhcglvcHRpbWl6ZTsNCisJ
dV9jaGFyCXJlY292ZXJ5Ow0KKwl1X2NoYXIJaG9zdF9pZDsNCisJdV9pbnQJ
ZXhjbHVkZXNbU0NTSV9OQ1JfTUFYX0VYQ0xVREVTXTsNCisJY2hhcgl0YWdf
Y3RybFsxMDBdOw0KK307DQorDQorLyoNCiAqKglJbml0aWFsIHNldHVwLg0K
ICoqCUNhbiBiZSBvdmVycmlkZW4gYXQgc3RhcnR1cCBieSBhIGNvbW1hbmQg
bGluZS4NCiAqLw0KQEAgLTUyNCw3ICs1NzEsOCBAQA0KIAkwLAkJCQkJXA0K
IAkxLAkJCQkJXA0KIAkwLAkJCQkJXA0KLQkwCQkJCQlcDQorCTAsCQkJCQlc
DQorCTI1NQkJCQkJXA0KIH0NCiANCiAvKg0KQEAgLTU1NSw4ICs2MDMsMTM4
IEBADQogCTEsCQkJCQlcDQogCTEsCQkJCQlcDQogCTAsCQkJCQlcDQotCTAJ
CQkJCVwNCisJMCwJCQkJCVwNCisJMjU1CQkJCQlcDQogfQ0KKw0KKyNpZmRl
ZiBTQ1NJX05DUl9OVlJBTV9TVVBQT1JUDQorLyoNCisqKglTeW1iaW9zIE52
UkFNIGRhdGEgZm9ybWF0DQorKi8NCisjZGVmaW5lIFNZTUJJT1NfTlZSQU1f
U0laRSAzNjgNCisjZGVmaW5lIFNZTUJJT1NfTlZSQU1fQUREUkVTUyAweDEw
MA0KKw0KK3N0cnVjdCBTeW1iaW9zX252cmFtIHsNCisvKiBIZWFkZXIgNiBi
eXRlcyAqLw0KKwl1X3Nob3J0IHR5cGU7CQkvKiAweDAwMDAgKi8NCisJdV9z
aG9ydCBieXRlX2NvdW50OwkvKiBleGNsdWRpbmcgaGVhZGVyL3RyYWlsZXIg
Ki8NCisJdV9zaG9ydCBjaGVja3N1bTsNCisNCisvKiBDb250cm9sbGVyIHNl
dCB1cCAyMCBieXRlcyAqLw0KKwl1X2NoYXIJdl9tYWpvcjsJLyogMHgwMCAq
Lw0KKwl1X2NoYXIJdl9taW5vcjsJLyogMHgzMCAqLw0KKwl1X2ludDMyCWJv
b3RfY3JjOw0KKwl1X3Nob3J0CWZsYWdzOw0KKyNkZWZpbmUgU1lNQklPU19T
Q0FNX0VOQUJMRQkoMSkNCisjZGVmaW5lIFNZTUJJT1NfUEFSSVRZX0VOQUJM
RQkoMTw8MSkNCisjZGVmaW5lIFNZTUJJT1NfVkVSQk9TRV9NU0dTCSgxPDwy
KQ0KKyNkZWZpbmUgU1lNQklPU19DSFNfTUFQUElORwkoMTw8MykNCisjZGVm
aW5lIFNZTUJJT1NfTk9fTlZSQU0JKDE8PDMpCS8qID8/PyAqLw0KKwl1X3No
b3J0CWZsYWdzMTsNCisjZGVmaW5lIFNZTUJJT1NfU0NBTl9ISV9MTwkoMSkN
CisJdV9zaG9ydAl0ZXJtX3N0YXRlOw0KKyNkZWZpbmUgU1lNQklPU19URVJN
X0NBTlRfUFJPR1JBTQkoMCkNCisjZGVmaW5lIFNZTUJJT1NfVEVSTV9FTkFC
TEVECQkoMSkNCisjZGVmaW5lIFNZTUJJT1NfVEVSTV9ESVNBQkxFRAkJKDIp
DQorCXVfc2hvcnQJcm12YmxfZmxhZ3M7DQorI2RlZmluZSBTWU1CSU9TX1JN
VkJMX05PX1NVUFBPUlQJKDApDQorI2RlZmluZSBTWU1CSU9TX1JNVkJMX0JP
T1RfREVWSUNFCSgxKQ0KKyNkZWZpbmUgU1lNQklPU19STVZCTF9NRURJQV9J
TlNUQUxMRUQJKDIpDQorCXVfY2hhcglob3N0X2lkOw0KKwl1X2NoYXIJbnVt
X2hiYTsJLyogMHgwNCAqLw0KKwl1X2NoYXIJbnVtX2RldmljZXM7CS8qIDB4
MTAgKi8NCisJdV9jaGFyCW1heF9zY2FtX2RldmljZXM7CS8qIDB4MDQgKi8N
CisJdV9jaGFyCW51bV92YWxpZF9zY2FtX2Rldml2ZXM7CS8qIDB4MDAgKi8N
CisJdV9jaGFyCXJzdmQ7DQorDQorLyogQm9vdCBvcmRlciAxNCBieXRlcyAq
IDQgKi8NCisJc3RydWN0IFN5bWJpb3NfaG9zdHsNCisJCXVfc2hvcnQJdHlw
ZTsJCS8qIDQ6OHh4IC8gMDpub2sgKi8NCisJCXVfc2hvcnQJZGV2aWNlX2lk
OwkvKiBQQ0kgZGV2aWNlIGlkICovDQorCQl1X3Nob3J0CXZlbmRvcl9pZDsJ
LyogUENJIHZlbmRvciBpZCAqLw0KKwkJdV9jaGFyCWJ1c19ucjsJCS8qIFBD
SSBidXMgbnVtYmVyICovDQorCQl1X2NoYXIJZGV2aWNlX2ZuOwkvKiBQQ0kg
ZGV2aWNlL2Z1bmN0aW9uIG51bWJlciA8PCAzKi8NCisJCXVfc2hvcnQJd29y
ZDg7DQorCQl1X3Nob3J0CWZsYWdzOw0KKyNkZWZpbmUJU1lNQklPU19JTklU
X1NDQU5fQVRfQk9PVAkoMSkNCisJCXVfc2hvcnQJaW9fcG9ydDsJLyogUENJ
IGlvX3BvcnQgYWRkcmVzcyAqLw0KKwl9IGhvc3RbNF07DQorDQorLyogVGFy
Z2V0cyA4IGJ5dGVzICogMTYgKi8NCisJc3RydWN0IFN5bWJpb3NfdGFyZ2V0
IHsNCisJCXVfY2hhcglmbGFnczsNCisjZGVmaW5lIFNZTUJJT1NfRElTQ09O
TkVDVF9FTkFCTEUJKDEpDQorI2RlZmluZSBTWU1CSU9TX1NDQU5fQVRfQk9P
VF9USU1FCSgxPDwxKQ0KKyNkZWZpbmUgU1lNQklPU19TQ0FOX0xVTlMJCSgx
PDwyKQ0KKyNkZWZpbmUgU1lNQklPU19RVUVVRV9UQUdTX0VOQUJMRUQJKDE8
PDMpDQorCQl1X2NoYXIJcnN2ZDsNCisJCXVfY2hhcglidXNfd2lkdGg7CS8q
IDB4MDgvMHgxMCAqLw0KKwkJdV9jaGFyCXN5bmNfb2Zmc2V0Ow0KKwkJdV9z
aG9ydAlzeW5jX3BlcmlvZDsJLyogNCpwZXJpb2QgZmFjdG9yICovDQorCQl1
X3Nob3J0CXRpbWVvdXQ7DQorCX0gdGFyZ2V0WzE2XTsNCisvKiBTY2FtIHRh
YmxlIDggYnl0ZXMgKiA0ICovDQorCXN0cnVjdCBTeW1iaW9zX3NjYW0gew0K
KwkJdV9zaG9ydAlpZDsNCisJCXVfc2hvcnQJbWV0aG9kOw0KKyNkZWZpbmUg
U1lNQklPU19TQ0FNX0RFRkFVTFRfTUVUSE9ECSgwKQ0KKyNkZWZpbmUgU1lN
QklPU19TQ0FNX0RPTlRfQVNTSUdOCSgxKQ0KKyNkZWZpbmUgU1lNQklPU19T
Q0FNX1NFVF9TUEVDSUZJQ19JRAkoMikNCisjZGVmaW5lIFNZTUJJT1NfU0NB
TV9VU0VfT1JERVJfR0lWRU4JKDMpDQorCQl1X3Nob3J0IHN0YXR1czsNCisj
ZGVmaW5lIFNZTUJJT1NfU0NBTV9VTktOT1dOCQkoMCkNCisjZGVmaW5lIFNZ
TUJJT1NfU0NBTV9ERVZJQ0VfTk9UX0ZPVU5ECSgxKQ0KKyNkZWZpbmUgU1lN
QklPU19TQ0FNX0lEX05PVF9TRVQJCSgyKQ0KKyNkZWZpbmUgU1lNQklPU19T
Q0FNX0lEX1ZBTElECQkoMykNCisJCXVfY2hhcgl0YXJnZXRfaWQ7DQorCQl1
X2NoYXIJcnN2ZDsNCisJfSBzY2FtWzRdOw0KKw0KKwl1X2NoYXIJc3BhcmVf
ZGV2aWNlc1sxNSo4XTsNCisJdV9jaGFyCXRyYWlsZXJbNl07CQkvKiAweGZl
IDB4ZmUgMHgwMCAweDAwIDB4MDAgMHgwMCAqLw0KK307DQordHlwZWRlZiBz
dHJ1Y3QgU3ltYmlvc19udnJhbQlTeW1iaW9zX252cmFtOw0KK3R5cGVkZWYg
c3RydWN0IFN5bWJpb3NfaG9zdAlTeW1iaW9zX2hvc3Q7DQordHlwZWRlZiBz
dHJ1Y3QgU3ltYmlvc190YXJnZXQJU3ltYmlvc190YXJnZXQ7DQordHlwZWRl
ZiBzdHJ1Y3QgU3ltYmlvc19zY2FtCVN5bWJpb3Nfc2NhbTsNCisNCisvKg0K
KyoqCVRla3JhbSBOdlJBTSBkYXRhIGZvcm1hdC4NCisqLw0KKyNkZWZpbmUg
VEVLUkFNX05WUkFNX1NJWkUgNjQNCisjZGVmaW5lIFRFS1JBTV9OVlJBTV9B
RERSRVNTIDANCisNCitzdHJ1Y3QgVGVrcmFtX252cmFtIHsNCisJc3RydWN0
IFRla3JhbV90YXJnZXQgew0KKwkJdV9jaGFyCWZsYWdzOw0KKyNkZWZpbmUJ
VEVLUkFNX1BBUklUWV9DSEVDSwkJKDEpDQorI2RlZmluZSBURUtSQU1fU1lO
Q19ORUdPCQkoMTw8MSkNCisjZGVmaW5lIFRFS1JBTV9ESVNDT05ORUNUX0VO
QUJMRQkoMTw8MikNCisjZGVmaW5lCVRFS1JBTV9TVEFSVF9DTUQJCSgxPDwz
KQ0KKyNkZWZpbmUgVEVLUkFNX1RBR0dFRF9DT01NQU5EUwkJKDE8PDQpDQor
I2RlZmluZSBURUtSQU1fV0lERV9ORUdPCQkoMTw8NSkNCisJCXVfY2hhcglz
eW5jX2luZGV4Ow0KKwkJdV9zaG9ydAl3b3JkMjsNCisJfSB0YXJnZXRbMTZd
Ow0KKwl1X2NoYXIJaG9zdF9pZDsNCisJdV9jaGFyCWZsYWdzOw0KKyNkZWZp
bmUgVEVLUkFNX01PUkVfVEhBTl8yX0RSSVZFUwkoMSkNCisjZGVmaW5lIFRF
S1JBTV9EUklWRVNfU1VQXzFHQgkJKDE8PDEpDQorI2RlZmluZQlURUtSQU1f
UkVTRVRfT05fUE9XRVJfT04JKDE8PDIpDQorI2RlZmluZSBURUtSQU1fQUNU
SVZFX05FR0FUSU9OCQkoMTw8MykNCisjZGVmaW5lIFRFS1JBTV9JTU1FRElB
VEVfU0VFSwkJKDE8PDQpDQorI2RlZmluZQlURUtSQU1fU0NBTl9MVU5TCQko
MTw8NSkNCisjZGVmaW5lCVRFS1JBTV9SRU1PVkFCTEVfRkxBR1MJCSgzPDw2
KQkvKiAwOiBkaXNhYmxlOyAxOiBib290IGRldmljZTsgMjphbGwgKi8NCisJ
dV9jaGFyCWJvb3RfZGVsYXlfaW5kZXg7DQorCXVfY2hhcgltYXhfdGFnc19p
bmRleDsNCisJdV9zaG9ydAlmbGFnczE7DQorI2RlZmluZSBURUtSQU1fRjJf
RjZfRU5BQkxFRAkJKDEpDQorCXVfc2hvcnQJc3BhcmVbMjldOw0KK307DQor
dHlwZWRlZiBzdHJ1Y3QgVGVrcmFtX252cmFtCVRla3JhbV9udnJhbTsNCit0
eXBlZGVmIHN0cnVjdCBUZWtyYW1fdGFyZ2V0CVRla3JhbV90YXJnZXQ7DQor
DQorI2VuZGlmIC8qIFNDU0lfTkNSX05WUkFNX1NVUFBPUlQgKi8NCiANCiAv
KioqKioqKioqKioqKioqKiBPUklHSU5BTCBDT05URU5UIG9mIG5jcnJlZy5o
IGZyb20gRnJlZUJTRCAqKioqKioqKioqKioqKioqKiovDQogDQotLS0gL21u
dC9saW51eC0yLjIuMTEtcHJlMy9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4LmMJ
VHVlIEp1bCAyMCAwMDoyMToyOSAxOTk5DQorKysgbGludXgvZHJpdmVycy9z
Y3NpL3N5bTUzYzh4eC5jCVNhdCBKdWwgMjQgMTI6NDg6NDkgMTk5OQ0KQEAg
LTU1LDcgKzU1LDcgQEANCiAqLw0KIA0KIC8qDQotKioJQXByaWwgMiAxOTk5
LCBzeW01M2M4eHggdmVyc2lvbiAxLjNjDQorKioJSnVseSAyNCAxOTk5LCBz
eW01M2M4eHggdmVyc2lvbiAxLjNnDQogKioNCiAqKglTdXBwb3J0ZWQgU0NT
SSBmZWF0dXJlczoNCiAqKgkgICAgU3luY2hyb25vdXMgZGF0YSB0cmFuc2Zl
cnMNCkBAIC03MSw2ICs3MSw3IEBADQogKioJCTUzQzg3NQkgIChXaWRlLCAg
IEZhc3QgMjAsCSBvbi1ib2FyZCByb20gQklPUykNCiAqKgkJNTNDODc2CSAg
KFdpZGUsICAgRmFzdCAyMCBEdWFsLCBvbi1ib2FyZCByb20gQklPUykNCiAq
KgkJNTNDODk1CSAgKFdpZGUsICAgRmFzdCA0MCwJIG9uLWJvYXJkIHJvbSBC
SU9TKQ0KKyoqCQk1M0M4OTVBCSAgKFdpZGUsICAgRmFzdCA0MCwJIG9uLWJv
YXJkIHJvbSBCSU9TKQ0KICoqCQk1M0M4OTYJICAoV2lkZSwgICBGYXN0IDQw
IER1YWwsIG9uLWJvYXJkIHJvbSBCSU9TKQ0KICoqDQogKioJT3RoZXIgZmVh
dHVyZXM6DQpAQCAtODIsNyArODMsNyBAQA0KIC8qDQogKioJTmFtZSBhbmQg
dmVyc2lvbiBvZiB0aGUgZHJpdmVyDQogKi8NCi0jZGVmaW5lIFNDU0lfTkNS
X0RSSVZFUl9OQU1FCSJzeW01M2M4eHggLSB2ZXJzaW9uIDEuM2MiDQorI2Rl
ZmluZSBTQ1NJX05DUl9EUklWRVJfTkFNRQkic3ltNTNjOHh4IC0gdmVyc2lv
biAxLjNnIg0KIA0KIC8qICNkZWZpbmUgREVCVUdfODk2UjEgKi8NCiAjZGVm
aW5lIFNDU0lfTkNSX09QVElNSVpFXzg5Ng0KQEAgLTI4OSw2ICsyOTAsMjEg
QEANCiANCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCiAqKg0KKyoqCVRoaXMgZHJpdmVy
IGVuc3VyZXMgdGhhdCBubyBQQ0kgc2VsZi1tYXN0ZXJpbmcgd2lsbCANCisq
KgliZSBhdHRlbXB0ZWQgYnkgdGhlIFBDSSBjaGlwIGF0IGFueSB0aW1lLCBw
cm92aWRlZCANCisqKgl0aGF0IHdlIGNhbiBsb2FkIHRoZSBvbi1jaGlwIFJB
TSBmcm9tIHRoZSBDIGNvZGUuDQorKioJRm9yIG5vdywgSSBjYW4gb25seSBj
aGVjayB0aGF0IG9uIHg4NiwgYW5kIHRoZSANCisqKgl0aGUgU0NTSV9OQ1Jf
UENJX01FTV9OT1RfU1VQUE9SVEVEIG9wdGlvbiBpcyBoZXJlIA0KKyoqCXRv
IHByb3ZpZGUgcHJldmlvdXMgYmVoYXZpb3VyIGZvciBvdGhlciBwbGF0Zm9y
bXMuDQorKioNCisqKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisqLw0KKyNpZgkhZGVmaW5l
ZChfX2kzODZfXykNCisjZGVmaW5lCVNDU0lfTkNSX1BDSV9NRU1fTk9UX1NV
UFBPUlRFRA0KKyNlbmRpZg0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyoqDQog
KioJQ29uZmlndXJhdGlvbiBhbmQgRGVidWdnaW5nDQogKioNCiAqKj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCkBAIC0zNTQsNyArMzcwLDcgQEANCiAqLw0KIA0KICNpZmRl
ZiBTQ1NJX05DUl9NQVhfTFVODQotI2RlZmluZSBNQVhfTFVOICAgIFNDU0lf
TkNSX01BWF9MVU4NCisjZGVmaW5lIE1BWF9MVU4gICAgNjQNCiAjZWxzZQ0K
ICNkZWZpbmUgTUFYX0xVTiAgICAoMSkNCiAjZW5kaWYNCkBAIC00MjEsNyAr
NDM3LDcgQEANCiAqKiAgICBJbyBtYXBwZWQgb3IgbWVtb3J5IG1hcHBlZC4N
CiAqLw0KIA0KLSNpZiBkZWZpbmVkKFNDU0lfTkNSX0lPTUFQUEVEKQ0KKyNp
ZiBkZWZpbmVkKFNDU0lfTkNSX0lPTUFQUEVEKSB8fCBkZWZpbmVkKFNDU0lf
TkNSX1BDSV9NRU1fTk9UX1NVUFBPUlRFRCkNCiAjZGVmaW5lIE5DUl9JT01B
UFBFRA0KICNlbmRpZg0KIA0KQEAgLTU2OSwxNSArNTg1LDE5IEBADQogI2Vu
ZGlmDQogDQogI2lmZGVmIF9fc3BhcmNfXw0KLSNkZWZpbmUgcmVtYXBfcGNp
X21lbShiYXNlLCBzaXplKQkoKHVfbG9uZykgX192YShiYXNlKSkNCi0jZGVm
aW5lIHVubWFwX3BjaV9tZW0odmFkZHIsIHNpemUpDQotI2RlZmluZSBwY2l2
dG9idXMocCkJCQkoKHApICYgcGNpX2R2bWFfbWFzaykNCisjICBkZWZpbmUg
aW9yZW1hcChiYXNlLCBzaXplKQkJKCh1X2xvbmcpIF9fdmEoYmFzZSkpDQor
IyAgZGVmaW5lIGlvdW5tYXAodmFkZHIpDQorIyAgZGVmaW5lIHBjaXZ0b2J1
cyhwKQkJCSgocCkgJiBwY2lfZHZtYV9tYXNrKQ0KKyMgIGRlZmluZSBtZW1j
cHlfdG9fcGNpKGEsIGIsIGMpCW1lbWNweV90b2lvKCh1X2xvbmcpIChhKSwg
KGIpLCAoYykpDQogI2VsaWYgZGVmaW5lZChfX2FscGhhX18pDQotI2RlZmlu
ZSBwY2l2dG9idXMocCkJCQkoKHApICYgMHhmZmZmZmZmZnVsKQ0KLSNlbHNl
CS8qIF9fc3BhcmNfXyAqLw0KLSNkZWZpbmUgcGNpdnRvYnVzKHApCQkJKHAp
DQorIyAgZGVmaW5lIHBjaXZ0b2J1cyhwKQkJCSgocCkgJiAweGZmZmZmZmZm
dWwpDQorIyAgZGVmaW5lIG1lbWNweV90b19wY2koYSwgYiwgYykJbWVtY3B5
X3RvaW8oKGEpLCAoYiksIChjKSkNCisjZWxzZQkvKiBvdGhlcnMgKi8NCisj
ICBkZWZpbmUgcGNpdnRvYnVzKHApCQkJKHApDQorIyAgZGVmaW5lIG1lbWNw
eV90b19wY2koYSwgYiwgYykJbWVtY3B5X3RvaW8oKGEpLCAoYiksIChjKSkN
CisjZW5kaWYNCiANCi0jaWYgIWRlZmluZWQoTkNSX0lPTUFQUEVEKSB8fCBk
ZWZpbmVkKF9faTM4Nl9fKQ0KKyNpZm5kZWYgU0NTSV9OQ1JfUENJX01FTV9O
T1RfU1VQUE9SVEVEDQogX19pbml0ZnVuYygNCiBzdGF0aWMgdV9sb25nIHJl
bWFwX3BjaV9tZW0odV9sb25nIGJhc2UsIHVfbG9uZyBzaXplKQ0KICkNCkBA
IC01OTYsOCArNjE2LDggQEANCiAJaWYgKHZhZGRyKQ0KIAkJaW91bm1hcCgo
dm9pZCAqKSAodmFkZHIgJiBQQUdFX01BU0spKTsNCiB9DQotI2VuZGlmCS8q
ICFOQ1JfSU9NQVBQRUQgfHwgX19pMzg2X18gKi8NCi0jZW5kaWYJLyogX19z
cGFyY19fICovDQorDQorI2VuZGlmIC8qIG5vdCBkZWYgU0NTSV9OQ1JfUENJ
X01FTV9OT1RfU1VQUE9SVEVEICovDQogDQogLyoNCiAqKglJbnNlcnQgYSBk
ZWxheSBpbiBtaWNyby1zZWNvbmRzIGFuZCBtaWxsaS1zZWNvbmRzLg0KQEAg
LTc2OCw3ICs3ODgsNyBAQA0KIAlOQ1JfVU5MT0NLX0RSSVZFUihmbGFncyk7
DQogDQogCWlmIChERUJVR19GTEFHUyAmIERFQlVHX0FMTE9DKQ0KLQkJcHJp
bnRrICgibmV3ICVzWyVkXSBAJXAuXG4iLCBuYW1lLCBzaXplLCBwKTsNCisJ
CXByaW50ayAoIm5ldyAlLTEwc1slNGRdIEAlcC5cbiIsIG5hbWUsIHNpemUs
IHApOw0KIA0KIAlpZiAocCkNCiAJCW1lbXNldChwLCAwLCBzaXplKTsNCkBA
IC03ODMsNyArODAzLDcgQEANCiAJdV9sb25nIGZsYWdzOw0KIA0KIAlpZiAo
REVCVUdfRkxBR1MgJiBERUJVR19BTExPQykNCi0JCXByaW50ayAoImZyZWVp
bmcgJXNbJWRdIEAlcC5cbiIsIG5hbWUsIHNpemUsIHB0cik7DQorCQlwcmlu
dGsgKCJmcmVlaW5nICUtMTBzWyU0ZF0gQCVwLlxuIiwgbmFtZSwgc2l6ZSwg
cHRyKTsNCiANCiAJTkNSX0xPQ0tfRFJJVkVSKGZsYWdzKTsNCiAJX19tX2Zy
ZWUocHRyLCBzaXplKTsNCkBAIC04MzksMzQgKzg1OSw2IEBADQogKioJVGhp
cyBzdHJ1Y3R1cmUgaXMgaW5pdGlhbGl6ZWQgZnJvbSBsaW51eCBjb25maWcg
b3B0aW9ucy4NCiAqKglJdCBjYW4gYmUgb3ZlcnJpZGRlbiBhdCBib290LXVw
IGJ5IHRoZSBib290IGNvbW1hbmQgbGluZS4NCiAqLw0KLSNkZWZpbmUgU0NT
SV9OQ1JfTUFYX0VYQ0xVREVTIDgNCi1zdHJ1Y3QgbmNyX2RyaXZlcl9zZXR1
cCB7DQotCXVfY2hhcgltYXN0ZXJfcGFyaXR5Ow0KLQl1X2NoYXIJc2NzaV9w
YXJpdHk7DQotCXVfY2hhcglkaXNjb25uZWN0aW9uOw0KLQl1X2NoYXIJc3Bl
Y2lhbF9mZWF0dXJlczsNCi0JdV9jaGFyCXVsdHJhX3Njc2k7DQotCXVfY2hh
cglmb3JjZV9zeW5jX25lZ287DQotCXVfY2hhcglyZXZlcnNlX3Byb2JlOw0K
LQl1X2NoYXIJcGNpX2ZpeF91cDsNCi0JdV9jaGFyCXVzZV9udnJhbTsNCi0J
dV9jaGFyCXZlcmJvc2U7DQotCXVfY2hhcglkZWZhdWx0X3RhZ3M7DQotCXVf
c2hvcnQJZGVmYXVsdF9zeW5jOw0KLQl1X3Nob3J0CWRlYnVnOw0KLQl1X2No
YXIJYnVyc3RfbWF4Ow0KLQl1X2NoYXIJbGVkX3BpbjsNCi0JdV9jaGFyCW1h
eF93aWRlOw0KLQl1X2NoYXIJc2V0dGxlX2RlbGF5Ow0KLQl1X2NoYXIJZGlm
Zl9zdXBwb3J0Ow0KLQl1X2NoYXIJaXJxbTsNCi0JdV9jaGFyCWJ1c19jaGVj
azsNCi0JdV9jaGFyCW9wdGltaXplOw0KLQl1X2NoYXIJcmVjb3Zlcnk7DQot
CXVfaW50CWV4Y2x1ZGVzW1NDU0lfTkNSX01BWF9FWENMVURFU107DQotCWNo
YXIJdGFnX2N0cmxbMTAwXTsNCi19Ow0KLQ0KIHN0YXRpYyBzdHJ1Y3QgbmNy
X2RyaXZlcl9zZXR1cA0KIAlkcml2ZXJfc2V0dXAJCQk9IFNDU0lfTkNSX0RS
SVZFUl9TRVRVUDsNCiANCkBAIC04OTYsMTM0ICs4ODgsNyBAQA0KICNkZWZp
bmUgYm9vdHZlcmJvc2UgKG5wLT52ZXJib3NlKQ0KIA0KICNpZmRlZiBTQ1NJ
X05DUl9OVlJBTV9TVVBQT1JUDQotLyoNCi0qKglTeW1iaW9zIE52UkFNIGRh
dGEgZm9ybWF0DQotKi8NCi0jZGVmaW5lIFNZTUJJT1NfTlZSQU1fU0laRSAz
NjgNCi0jZGVmaW5lIFNZTUJJT1NfTlZSQU1fQUREUkVTUyAweDEwMA0KLQ0K
LXN0cnVjdCBTeW1iaW9zX252cmFtIHsNCi0vKiBIZWFkZXIgNiBieXRlcyAq
Lw0KLQl1X3Nob3J0IHR5cGU7CQkvKiAweDAwMDAgKi8NCi0JdV9zaG9ydCBi
eXRlX2NvdW50OwkvKiBleGNsdWRpbmcgaGVhZGVyL3RyYWlsZXIgKi8NCi0J
dV9zaG9ydCBjaGVja3N1bTsNCi0NCi0vKiBDb250cm9sbGVyIHNldCB1cCAy
MCBieXRlcyAqLw0KLQl1X2NoYXIJdl9tYWpvcjsJLyogMHgwMCAqLw0KLQl1
X2NoYXIJdl9taW5vcjsJLyogMHgzMCAqLw0KLQl1X2ludDMyCWJvb3RfY3Jj
Ow0KLQl1X3Nob3J0CWZsYWdzOw0KLSNkZWZpbmUgU1lNQklPU19TQ0FNX0VO
QUJMRQkoMSkNCi0jZGVmaW5lIFNZTUJJT1NfUEFSSVRZX0VOQUJMRQkoMTw8
MSkNCi0jZGVmaW5lIFNZTUJJT1NfVkVSQk9TRV9NU0dTCSgxPDwyKQ0KLSNk
ZWZpbmUgU1lNQklPU19DSFNfTUFQUElORwkoMTw8MykNCi0jZGVmaW5lIFNZ
TUJJT1NfTk9fTlZSQU0JKDE8PDMpCS8qID8/PyAqLw0KLQl1X3Nob3J0CWZs
YWdzMTsNCi0jZGVmaW5lIFNZTUJJT1NfU0NBTl9ISV9MTwkoMSkNCi0JdV9z
aG9ydAl0ZXJtX3N0YXRlOw0KLSNkZWZpbmUgU1lNQklPU19URVJNX0NBTlRf
UFJPR1JBTQkoMCkNCi0jZGVmaW5lIFNZTUJJT1NfVEVSTV9FTkFCTEVECQko
MSkNCi0jZGVmaW5lIFNZTUJJT1NfVEVSTV9ESVNBQkxFRAkJKDIpDQotCXVf
c2hvcnQJcm12YmxfZmxhZ3M7DQotI2RlZmluZSBTWU1CSU9TX1JNVkJMX05P
X1NVUFBPUlQJKDApDQotI2RlZmluZSBTWU1CSU9TX1JNVkJMX0JPT1RfREVW
SUNFCSgxKQ0KLSNkZWZpbmUgU1lNQklPU19STVZCTF9NRURJQV9JTlNUQUxM
RUQJKDIpDQotCXVfY2hhcglob3N0X2lkOw0KLQl1X2NoYXIJbnVtX2hiYTsJ
LyogMHgwNCAqLw0KLQl1X2NoYXIJbnVtX2RldmljZXM7CS8qIDB4MTAgKi8N
Ci0JdV9jaGFyCW1heF9zY2FtX2RldmljZXM7CS8qIDB4MDQgKi8NCi0JdV9j
aGFyCW51bV92YWxpZF9zY2FtX2Rldml2ZXM7CS8qIDB4MDAgKi8NCi0JdV9j
aGFyCXJzdmQ7DQotDQotLyogQm9vdCBvcmRlciAxNCBieXRlcyAqIDQgKi8N
Ci0Jc3RydWN0IFN5bWJpb3NfaG9zdHsNCi0JCXVfc2hvcnQJdHlwZTsJCS8q
IDQ6OHh4IC8gMDpub2sgKi8NCi0JCXVfc2hvcnQJZGV2aWNlX2lkOwkvKiBQ
Q0kgZGV2aWNlIGlkICovDQotCQl1X3Nob3J0CXZlbmRvcl9pZDsJLyogUENJ
IHZlbmRvciBpZCAqLw0KLQkJdV9jaGFyCWJ1c19ucjsJCS8qIFBDSSBidXMg
bnVtYmVyICovDQotCQl1X2NoYXIJZGV2aWNlX2ZuOwkvKiBQQ0kgZGV2aWNl
L2Z1bmN0aW9uIG51bWJlciA8PCAzKi8NCi0JCXVfc2hvcnQJd29yZDg7DQot
CQl1X3Nob3J0CWZsYWdzOw0KLSNkZWZpbmUJU1lNQklPU19JTklUX1NDQU5f
QVRfQk9PVAkoMSkNCi0JCXVfc2hvcnQJaW9fcG9ydDsJLyogUENJIGlvX3Bv
cnQgYWRkcmVzcyAqLw0KLQl9IGhvc3RbNF07DQotDQotLyogVGFyZ2V0cyA4
IGJ5dGVzICogMTYgKi8NCi0Jc3RydWN0IFN5bWJpb3NfdGFyZ2V0IHsNCi0J
CXVfY2hhcglmbGFnczsNCi0jZGVmaW5lIFNZTUJJT1NfRElTQ09OTkVDVF9F
TkFCTEUJKDEpDQotI2RlZmluZSBTWU1CSU9TX1NDQU5fQVRfQk9PVF9USU1F
CSgxPDwxKQ0KLSNkZWZpbmUgU1lNQklPU19TQ0FOX0xVTlMJCSgxPDwyKQ0K
LSNkZWZpbmUgU1lNQklPU19RVUVVRV9UQUdTX0VOQUJMRUQJKDE8PDMpDQot
CQl1X2NoYXIJcnN2ZDsNCi0JCXVfY2hhcglidXNfd2lkdGg7CS8qIDB4MDgv
MHgxMCAqLw0KLQkJdV9jaGFyCXN5bmNfb2Zmc2V0Ow0KLQkJdV9zaG9ydAlz
eW5jX3BlcmlvZDsJLyogNCpwZXJpb2QgZmFjdG9yICovDQotCQl1X3Nob3J0
CXRpbWVvdXQ7DQotCX0gdGFyZ2V0WzE2XTsNCi0vKiBTY2FtIHRhYmxlIDgg
Ynl0ZXMgKiA0ICovDQotCXN0cnVjdCBTeW1iaW9zX3NjYW0gew0KLQkJdV9z
aG9ydAlpZDsNCi0JCXVfc2hvcnQJbWV0aG9kOw0KLSNkZWZpbmUgU1lNQklP
U19TQ0FNX0RFRkFVTFRfTUVUSE9ECSgwKQ0KLSNkZWZpbmUgU1lNQklPU19T
Q0FNX0RPTlRfQVNTSUdOCSgxKQ0KLSNkZWZpbmUgU1lNQklPU19TQ0FNX1NF
VF9TUEVDSUZJQ19JRAkoMikNCi0jZGVmaW5lIFNZTUJJT1NfU0NBTV9VU0Vf
T1JERVJfR0lWRU4JKDMpDQotCQl1X3Nob3J0IHN0YXR1czsNCi0jZGVmaW5l
IFNZTUJJT1NfU0NBTV9VTktOT1dOCQkoMCkNCi0jZGVmaW5lIFNZTUJJT1Nf
U0NBTV9ERVZJQ0VfTk9UX0ZPVU5ECSgxKQ0KLSNkZWZpbmUgU1lNQklPU19T
Q0FNX0lEX05PVF9TRVQJCSgyKQ0KLSNkZWZpbmUgU1lNQklPU19TQ0FNX0lE
X1ZBTElECQkoMykNCi0JCXVfY2hhcgl0YXJnZXRfaWQ7DQotCQl1X2NoYXIJ
cnN2ZDsNCi0JfSBzY2FtWzRdOw0KLQ0KLQl1X2NoYXIJc3BhcmVfZGV2aWNl
c1sxNSo4XTsNCi0JdV9jaGFyCXRyYWlsZXJbNl07CQkvKiAweGZlIDB4ZmUg
MHgwMCAweDAwIDB4MDAgMHgwMCAqLw0KLX07DQotdHlwZWRlZiBzdHJ1Y3Qg
U3ltYmlvc19udnJhbQlTeW1iaW9zX252cmFtOw0KLXR5cGVkZWYgc3RydWN0
IFN5bWJpb3NfaG9zdAlTeW1iaW9zX2hvc3Q7DQotdHlwZWRlZiBzdHJ1Y3Qg
U3ltYmlvc190YXJnZXQJU3ltYmlvc190YXJnZXQ7DQotdHlwZWRlZiBzdHJ1
Y3QgU3ltYmlvc19zY2FtCVN5bWJpb3Nfc2NhbTsNCi0NCi0vKg0KLSoqCVRl
a3JhbSBOdlJBTSBkYXRhIGZvcm1hdC4NCi0qLw0KLSNkZWZpbmUgVEVLUkFN
X05WUkFNX1NJWkUgNjQNCi0jZGVmaW5lIFRFS1JBTV9OVlJBTV9BRERSRVNT
IDANCi0NCi1zdHJ1Y3QgVGVrcmFtX252cmFtIHsNCi0Jc3RydWN0IFRla3Jh
bV90YXJnZXQgew0KLQkJdV9jaGFyCWZsYWdzOw0KLSNkZWZpbmUJVEVLUkFN
X1BBUklUWV9DSEVDSwkJKDEpDQotI2RlZmluZSBURUtSQU1fU1lOQ19ORUdP
CQkoMTw8MSkNCi0jZGVmaW5lIFRFS1JBTV9ESVNDT05ORUNUX0VOQUJMRQko
MTw8MikNCi0jZGVmaW5lCVRFS1JBTV9TVEFSVF9DTUQJCSgxPDwzKQ0KLSNk
ZWZpbmUgVEVLUkFNX1RBR0dFRF9DT01NQU5EUwkJKDE8PDQpDQotI2RlZmlu
ZSBURUtSQU1fV0lERV9ORUdPCQkoMTw8NSkNCi0JCXVfY2hhcglzeW5jX2lu
ZGV4Ow0KLQkJdV9zaG9ydAl3b3JkMjsNCi0JfSB0YXJnZXRbMTZdOw0KLQl1
X2NoYXIJaG9zdF9pZDsNCi0JdV9jaGFyCWZsYWdzOw0KLSNkZWZpbmUgVEVL
UkFNX01PUkVfVEhBTl8yX0RSSVZFUwkoMSkNCi0jZGVmaW5lIFRFS1JBTV9E
UklWRVNfU1VQXzFHQgkJKDE8PDEpDQotI2RlZmluZQlURUtSQU1fUkVTRVRf
T05fUE9XRVJfT04JKDE8PDIpDQotI2RlZmluZSBURUtSQU1fQUNUSVZFX05F
R0FUSU9OCQkoMTw8MykNCi0jZGVmaW5lIFRFS1JBTV9JTU1FRElBVEVfU0VF
SwkJKDE8PDQpDQotI2RlZmluZQlURUtSQU1fU0NBTl9MVU5TCQkoMTw8NSkN
Ci0jZGVmaW5lCVRFS1JBTV9SRU1PVkFCTEVfRkxBR1MJCSgzPDw2KQkvKiAw
OiBkaXNhYmxlOyAxOiBib290IGRldmljZTsgMjphbGwgKi8NCi0JdV9jaGFy
CWJvb3RfZGVsYXlfaW5kZXg7DQotCXVfY2hhcgltYXhfdGFnc19pbmRleDsN
Ci0JdV9zaG9ydAlmbGFnczE7DQotI2RlZmluZSBURUtSQU1fRjJfRjZfRU5B
QkxFRAkJKDEpDQotCXVfc2hvcnQJc3BhcmVbMjldOw0KLX07DQotdHlwZWRl
ZiBzdHJ1Y3QgVGVrcmFtX252cmFtCVRla3JhbV9udnJhbTsNCi10eXBlZGVm
IHN0cnVjdCBUZWtyYW1fdGFyZ2V0CVRla3JhbV90YXJnZXQ7DQotDQogc3Rh
dGljIHVfY2hhciBUZWtyYW1fc3luY1sxMl0gX19pbml0ZGF0YSA9IHsyNSwz
MSwzNyw0Myw1MCw2Miw3NSwxMjUsMTIsMTUsMTgsMjF9Ow0KLQ0KICNlbmRp
ZiAvKiBTQ1NJX05DUl9OVlJBTV9TVVBQT1JUICovDQogDQogLyoNCkBAIC0x
NDUxLDggKzEzMTYsMTAgQEANCiAJKi8NCiAJdV9pbnQzMgkJKmx1bnRibDsJ
LyogbGNicyBidXMgYWRkcmVzcyB0YWJsZQkqLw0KIAl1X2ludDMyCQliX2x1
bnRibDsJLyogYnVzIGFkZHJlc3Mgb2YgdGhpcyB0YWJsZQkqLw0KLQlsY2Jf
cAkJbHBbTUFYX0xVTl07CS8qIFRoZSBsY2IncyBvZiB0aGlzIHRjYgkqLw0K
LQ0KKwlsY2JfcAkJbDBwOwkJLyogbGNiIG9mIExVTiAjMCAobm9ybWFsIGNh
c2UpCSovDQorI2lmIE1BWF9MVU4gPiAxDQorCWxjYl9wCQkqbG1wOwkJLyog
T3RoZXIgbGNiJ3MgWzEuLk1BWF9MVU5dCSovDQorI2VuZGlmDQogCS8qLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KIAkqKglUYXJnZXQgY2FwYWJpbGl0aWVzLg0K
IAkqKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xNjQ5LDYgKzE1MTYsMTgg
QEANCiB9Ow0KIA0KIC8qDQorKioJTFVOIGNvbnRyb2wgYmxvY2sgbG9va3Vw
Lg0KKyoqCVdlIHVzZSBhIGRpcmVjdCBwb2ludGVyIGZvciBMVU4gIzAsIGFu
ZCBhIHRhYmxlIG9mIHBvaW50ZXJzIA0KKyoqCXdoaWNoIGlzIG9ubHkgYWxs
b2NhdGVkIGZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCBMVU4ocykgPiAwLg0K
KyovDQorI2lmIE1BWF9MVU4gPD0gMQ0KKyNkZWZpbmUgbmNyX2xwKG5wLCB0
cCwgbHVuKSAoIWx1bikgPyAodHApLT5sMHAgOiAwDQorI2Vsc2UNCisjZGVm
aW5lIG5jcl9scChucCwgdHAsIGx1bikgXA0KKwkoIWx1bikgPyAodHApLT5s
MHAgOiAodHApLT5sbXAgPyAodHApLT5sbXBbKGx1bildIDogMA0KKyNlbmRp
Zg0KKw0KKy8qDQogKioJVGhlIHN0YXR1cyBieXRlcyBhcmUgdXNlZCBieSB0
aGUgaG9zdCBhbmQgdGhlIHNjcmlwdCBwcm9jZXNzb3IuDQogKioNCiAqKglU
aGUgbGFzdCBmb3VyIGJ5dGVzIChzdGF0dXNbNF0pIGFyZSBjb3BpZWQgdG8g
dGhlIHNjcmF0Y2hiIHJlZ2lzdGVyDQpAQCAtMTkwNywxMSArMTc4NiwxNSBA
QA0KIAkqKglWaXJ0dWFsIGFuZCBwaHlzaWNhbCBidXMgYWRkcmVzc2VzIG9m
IHRoZSBjaGlwLg0KIAkqKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAJKi8NCisj
aWZuZGVmIFNDU0lfTkNSX1BDSV9NRU1fTk9UX1NVUFBPUlRFRA0KIAl1X2xv
bmcJCWJhc2VfdmE7CS8qIE1NSU8gYmFzZSB2aXJ0dWFsIGFkZHJlc3MJKi8N
CisJdV9sb25nCQliYXNlMl92YTsJLyogT24tY2hpcCBSQU0gdmlydHVhbCBh
ZGRyZXNzCSovDQorI2VuZGlmDQogCXVfbG9uZwkJYmFzZV9iYTsJLyogTU1J
TyBiYXNlIGJ1cyBhZGRyZXNzCSovDQogCXVfbG9uZwkJYmFzZV9pbzsJLyog
SU8gc3BhY2UgYmFzZSBhZGRyZXNzCSovDQogCXVfbG9uZwkJYmFzZV93czsJ
LyogKE1NKUlPIHdpbmRvdyBzaXplCQkqLw0KLQl1X2xvbmcJCWJhc2UyX2Jh
OwkvKiBPbi1jaGlwIFJBTSBidXMgYWRkcmVzcy4JKi8NCisJdV9sb25nCQli
YXNlMl9iYTsJLyogT24tY2hpcCBSQU0gYnVzIGFkZHJlc3MJKi8NCisJdV9s
b25nCQliYXNlMl93czsJLyogT24tY2hpcCBSQU0gd2luZG93IHNpemUJKi8N
CiAJdV9pbnQJCWlycTsJCS8qIElSUSBudW1iZXIJCQkqLw0KIAl2b2xhdGls
ZQkJCS8qIFBvaW50ZXIgdG8gdm9sYXRpbGUgZm9yIAkqLw0KIAlzdHJ1Y3Qg
bmNyX3JlZwkqcmVnOwkJLyogIG1lbW9yeSBtYXBwZWQgSU8uCQkqLw0KQEAg
LTIxMTEsMTIgKzE5OTQsNiBAQA0KIAluY3JjbWQgIGRhdGFfb3V0MglbICA0
XTsNCiAJbmNyY21kICBwbTBfZGF0YQlbIDE2XTsNCiAJbmNyY21kICBwbTFf
ZGF0YQlbIDE2XTsNCi0NCi0JLyogRGF0YSBhcmVhICovDQotCW5jcmNtZAlz
YXZlZF9kc2EJWyAgMV07DQotCW5jcmNtZAlkb25lX3BvcwlbICAxXTsNCi0J
bmNyY21kCXN0YXJ0cG9zCVsgIDFdOw0KLQluY3JjbWQJdGFyZ3RibAkJWyAg
MV07DQogfTsNCiANCiAvKg0KQEAgLTIxNzAsMTYgKzIwNDcsMjAgQEANCiAJ
LyogRGF0YSBhcmVhICovDQogCW5jcmNtZAlwbTBfZGF0YV9hZGRyCVsgIDFd
Ow0KIAluY3JjbWQJcG0xX2RhdGFfYWRkcglbICAxXTsNCisJbmNyY21kCXNh
dmVkX2RzYQlbICAxXTsNCisJbmNyY21kCWRvbmVfcG9zCVsgIDFdOw0KKwlu
Y3JjbWQJc3RhcnRwb3MJWyAgMV07DQorCW5jcmNtZAl0YXJndGJsCQlbICAx
XTsNCiAJLyogRW5kIG9mIGRhdGEgYXJlYSAqLw0KIA0KKyNpZmRlZiBTQ1NJ
X05DUl9QQ0lfTUVNX05PVF9TVVBQT1JURUQNCiAJbmNyY21kCXN0YXJ0X3Jh
bQlbICAxXTsNCiAJbmNyY21kCXNjcmlwdDBfYmEJWyAgNF07DQotDQogCW5j
cmNtZAlzdGFydF9yYW02NAlbICAzXTsNCiAJbmNyY21kCXNjcmlwdDBfYmE2
NAlbICAzXTsNCiAJbmNyY21kCXNjcmlwdGgwX2JhNjQJWyAgNl07DQogCW5j
cmNtZAlyYW1fc2VnNjQJWyAgMV07DQotDQorI2VuZGlmDQogCW5jcmNtZAlz
bm9vcHRlc3QJWyAgNl07DQogCW5jcmNtZAlzbm9vcGVuZAlbICAyXTsNCiB9
Ow0KQEAgLTIzNTEsMTQgKzIyMzIsMTQgQEANCiAJKioJYW5kIHRoZSB0aGUg
bmV4dCBxdWV1ZSBwb3NpdGlvbiBwb2ludHMgdG8gdGhlIG5leHQgSk9CLg0K
IAkqLw0KIAlTQ1JfTE9BRF9BQlMgKHNjcmF0Y2hhLCA0KSwNCi0JCVBBRERS
IChzdGFydHBvcyksDQorCQlQQUREUkggKHN0YXJ0cG9zKSwNCiAJU0NSX0xP
QURfQUJTIChkc2EsIDQpLA0KLQkJUEFERFIgKHN0YXJ0cG9zKSwNCisJCVBB
RERSSCAoc3RhcnRwb3MpLA0KIAlTQ1JfTE9BRF9SRUwgKHRlbXAsIDQpLA0K
IAkJNCwNCiB9LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPCBHRVRKT0Jf
QkVHSU4gPi0tLS0tLS0tLS0tLS0tLS0tLSovLHsNCiAJU0NSX1NUT1JFX0FC
UyAodGVtcCwgNCksDQotCQlQQUREUiAoc3RhcnRwb3MpLA0KKwkJUEFERFJI
IChzdGFydHBvcyksDQogCVNDUl9MT0FEX1JFTCAoZHNhLCA0KSwNCiAJCTAs
DQogfS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwgR0VUSk9CX0VORCA+
LS0tLS0tLS0tLS0tLS0tLS0tLS0qLyx7DQpAQCAtMjUyNSw3ICsyNDA2LDcg
QEANCiAJU0NSX0ZST01fUkVHIChzc3RhdDApLA0KIAkJMCwNCiAJU0NSX0pV
TVBSIF4gSUZUUlVFIChNQVNLIChJUlNULCBJUlNUKSksDQotCQktOCwNCisJ
CS0xNiwNCiAJU0NSX0pVTVAsDQogCQlQQUREUiAoc3RhcnQpLA0KIH0vKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08IENMUkFDSyA+LS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovLHsNCkBAIC0yNjY4LDExICsyNTQ5LDExIEBADQogCSoq
CXRoZSBjb21wbGV0ZWQgQ0NCIHdpbGwgYmUgbG9zdC4NCiAJKi8NCiAJU0NS
X1NUT1JFX0FCUyAoZHNhLCA0KSwNCi0JCVBBRERSIChzYXZlZF9kc2EpLA0K
KwkJUEFERFJIIChzYXZlZF9kc2EpLA0KIAlTQ1JfTE9BRF9BQlMgKGRzYSwg
NCksDQotCQlQQUREUiAoZG9uZV9wb3MpLA0KKwkJUEFERFJIIChkb25lX3Bv
cyksDQogCVNDUl9MT0FEX0FCUyAoc2NyYXRjaGEsIDQpLA0KLQkJUEFERFIo
c2F2ZWRfZHNhKSwNCisJCVBBRERSSCAoc2F2ZWRfZHNhKSwNCiAJU0NSX1NU
T1JFX1JFTCAoc2NyYXRjaGEsIDQpLA0KIAkJMCwNCiAJLyoNCkBAIC0yNjg3
LDcgKzI1NjgsNyBAQA0KIAlTQ1JfSU5UX0ZMWSwNCiAJCTAsDQogCVNDUl9T
VE9SRV9BQlMgKHRlbXAsIDQpLA0KLQkJUEFERFIgKGRvbmVfcG9zKSwNCisJ
CVBBRERSSCAoZG9uZV9wb3MpLA0KIH0vKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLTwgRE9ORV9FTkQgPi0tLS0tLS0tLS0tLS0tLS0tKi8sew0KIAlTQ1Jf
SlVNUCwNCiAJCVBBRERSIChzdGFydCksDQpAQCAtMjgwOSw3ICsyNjkwLDcg
QEANCiAJU0NSX0xPQURfUkVHIChkc2EsIDB4ZmYpLA0KIAkJMCwNCiAJU0NS
X1NUT1JFX0FCUyAoc2NyYXRjaGEsIDQpLA0KLQkJUEFERFIgKHN0YXJ0cG9z
KSwNCisJCVBBRERSSCAoc3RhcnRwb3MpLA0KIH0vKi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS08IFJFU0VMRUNUID4tLS0tLS0tLS0tLS0tLS0tLS0tLSov
LHsNCiAJLyoNCiAJKioJbWFrZSB0aGUgaG9zdCBzdGF0dXMgaW52YWxpZC4N
CkBAIC0yODQyLDcgKzI3MjMsNyBAQA0KIAkqKglsb2FkIHRoZSB0YXJnZXQg
Y29udHJvbCBibG9jayBhZGRyZXNzDQogCSovDQogCVNDUl9MT0FEX0FCUyAo
ZHNhLCA0KSwNCi0JCVBBRERSICh0YXJndGJsKSwNCisJCVBBRERSSCAodGFy
Z3RibCksDQogCVNDUl9TRkJSX1JFRyAoZHNhLCBTQ1JfU0hMLCAwKSwNCiAJ
CTAsDQogCVNDUl9SRUdfUkVHIChkc2EsIFNDUl9TSEwsIDApLA0KQEAgLTMw
ODIsMTYgKzI5NjMsNyBAQA0KIAkJb2Zmc2V0b2YgKHN0cnVjdCBjY2IsIHBo
eXMucG0xLnJldCksDQogCVNDUl9SRVRVUk4sDQogCQkwLA0KLQ0KLX0vKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08IFNBVkVEX0RTQSA+LS0tLS0tLS0t
LS0tLS0tLS0tLSovLHsNCi0JU0NSX0RBVEFfWkVSTywNCi19LyotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tPCBET05FX1BPUyA+LS0tLS0tLS0tLS0tLS0t
LS0tLS0qLyx7DQotCVNDUl9EQVRBX1pFUk8sDQotfS8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLTwgU1RBUlRQT1MgPi0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8sew0KLQlTQ1JfREFUQV9aRVJPLA0KLX0vKi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS08IFRBUkdUQkwgPi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovLHsN
Ci0JU0NSX0RBVEFfWkVSTywNCi19LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQorfS8qLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKi8NCiB9Ow0KIA0KIHN0YXRpYwlzdHJ1Y3Qgc2NyaXB0aCBz
Y3JpcHRoMCBfX2luaXRkYXRhID0gew0KQEAgLTM1OTYsNyArMzQ2OCw3IEBA
DQogCSoqCWNhbGwgdGhlIEMgY29kZS4NCiAJKi8NCiAJU0NSX0xPQURfQUJT
IChzY3JhdGNoYSwgNCksDQotCQlQQUREUiAoc3RhcnRwb3MpLA0KKwkJUEFE
RFJIIChzdGFydHBvcyksDQogCVNDUl9JTlQgXiBJRlRSVUUgKERBVEEgKFNf
UVVFVUVfRlVMTCkpLA0KIAkJU0lSX0JBRF9TVEFUVVMsDQogCVNDUl9JTlQg
XiBJRlRSVUUgKERBVEEgKFNfQ0hFQ0tfQ09ORCkpLA0KQEAgLTM3MzcsNiAr
MzYwOSwyNSBAQA0KIAlTQ1JfREFUQV9aRVJPLA0KIH0vKi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS08IFBNMV9EQVRBX0FERFIgPi0tLS0tLS0tLS0tLS0t
LSovLHsNCiAJU0NSX0RBVEFfWkVSTywNCit9LyotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tPCBTQVZFRF9EU0EgPi0tLS0tLS0tLS0tLS0tLS0tLS0qLyx7
DQorCVNDUl9EQVRBX1pFUk8sDQorfS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLTwgRE9ORV9QT1MgPi0tLS0tLS0tLS0tLS0tLS0tLS0tKi8sew0KKwlT
Q1JfREFUQV9aRVJPLA0KK30vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08
IFNUQVJUUE9TID4tLS0tLS0tLS0tLS0tLS0tLS0tLSovLHsNCisJU0NSX0RB
VEFfWkVSTywNCit9LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPCBUQVJH
VEJMID4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyx7DQorCVNDUl9EQVRBX1pF
Uk8sDQorDQorDQorLyoNCisqKiBXZSBtYXkgdXNlIE1FTU9SWSBNT1ZFIGlu
c3RydWN0aW9ucyB0byBsb2FkIHRoZSBvbiBjaGlwLVJBTSwNCisqKiBpZiBp
dCBoYXBwZW5zIHRoYXQgbWFwcGluZyBQQ0kgbWVtb3J5IGlzIG5vdCBwb3Nz
aWJsZS4NCisqKiBCdXQgd3JpdGluZyB0aGUgUkFNIGZyb20gdGhlIENQVSBp
cyB0aGUgcHJlZmVycmVkIG1ldGhvZCwgDQorKiogc2luY2UgUENJIDIuMiBz
ZWVtcyB0byBkaXNhbGxvdyBQQ0kgc2VsZi1tYXN0ZXJpbmcuDQorKi8NCisN
CisjaWZkZWYgU0NTSV9OQ1JfUENJX01FTV9OT1RfU1VQUE9SVEVEDQorDQog
fS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwgU1RBUlRfUkFNID4tLS0t
LS0tLS0tLS0tLS0tLS0tKi8sew0KIAkvKg0KIAkqKglMb2FkIHRoZSBzY3Jp
cHQgaW50byBvbi1jaGlwIFJBTSwgDQpAQCAtMzc3Niw2ICszNjY3LDkgQEAN
CiAJCVBBRERSSCAoc3RhcnQ2NCksDQogfS8qLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLTwgUkFNX1NFRzY0ID4tLS0tLS0tLS0tLS0tLS0tLS0tLSovLHsN
CiAJCTAsDQorDQorI2VuZGlmIC8qIFNDU0lfTkNSX1BDSV9NRU1fTk9UX1NV
UFBPUlRFRCAqLw0KKw0KIH0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08
IFNOT09QVEVTVCA+LS0tLS0tLS0tLS0tLS0tLS0tLSovLHsNCiAJLyoNCiAJ
KioJUmVhZCB0aGUgdmFyaWFibGUuDQpAQCAtNDc5MywxMSArNDY4NywyMiBA
QA0KIAlpZiAobnAtPmJhc2UyX2JhKSB7DQogCQlucC0+cF9zY3JpcHQJPSBw
Y2l2dG9idXMobnAtPmJhc2UyX2JhKTsNCiAJCWlmIChucC0+ZmVhdHVyZXMg
JiBGRV9SQU04Sykgew0KKwkJCW5wLT5iYXNlMl93cyA9IDgxOTI7DQogCQkJ
bnAtPnBfc2NyaXB0aCA9IG5wLT5wX3NjcmlwdCArIDQwOTY7DQogI2lmIEJJ
VFNfUEVSX0xPTkcgPiAzMg0KIAkJCW5wLT5zY3JfcmFtX3NlZyA9IGNwdV90
b19zY3IobnAtPmJhc2UyX2JhID4+IDMyKTsNCiAjZW5kaWYNCiAJCX0NCisJ
CWVsc2UNCisJCQlucC0+YmFzZTJfd3MgPSA0MDk2Ow0KKyNpZm5kZWYgU0NT
SV9OQ1JfUENJX01FTV9OT1RfU1VQUE9SVEVEDQorCQlucC0+YmFzZTJfdmEg
PSByZW1hcF9wY2lfbWVtKG5wLT5iYXNlMl9iYSwgbnAtPmJhc2UyX3dzKTsN
CisJCWlmICghbnAtPmJhc2UyX3ZhKSB7DQorCQkJcHJpbnRrKEtFUk5fRVJS
ICIlczogY2FuJ3QgbWFwIFBDSSBNRU1PUlkgcmVnaW9uXG4iLA0KKwkJCSAg
ICAgICBuY3JfbmFtZShucCkpOw0KKwkJCWdvdG8gYXR0YWNoX2Vycm9yOw0K
KwkJfQ0KKyNlbmRpZg0KIAl9DQogDQogCW5jcl9zY3JpcHRfY29weV9hbmRf
YmluZCAobnAsIChuY3JjbWQgKikgJnNjcmlwdDAsIChuY3JjbWQgKikgbnAt
PnNjcmlwdDAsIHNpemVvZihzdHJ1Y3Qgc2NyaXB0KSk7DQpAQCAtNDgxMSwx
MSArNDcxNiwxMiBAQA0KIAlucC0+c2NyaXB0aDAtPnBtMV9kYXRhX2FkZHJb
MF0gPSANCiAJCQljcHVfdG9fc2NyKE5DQl9TQ1JJUFRfUEhZUyhucCwgcG0x
X2RhdGEpKTsNCiANCisjaWZkZWYgU0NTSV9OQ1JfUENJX01FTV9OT1RfU1VQ
UE9SVEVEDQogCW5wLT5zY3JpcHRoMC0+c2NyaXB0MF9iYVswXQk9IGNwdV90
b19zY3IodnRvYnVzKG5wLT5zY3JpcHQwKSk7DQogCW5wLT5zY3JpcHRoMC0+
c2NyaXB0MF9iYTY0WzBdCT0gY3B1X3RvX3Njcih2dG9idXMobnAtPnNjcmlw
dDApKTsNCiAJbnAtPnNjcmlwdGgwLT5zY3JpcHRoMF9iYTY0WzBdCT0gY3B1
X3RvX3Njcih2dG9idXMobnAtPnNjcmlwdGgwKSk7DQogCW5wLT5zY3JpcHRo
MC0+cmFtX3NlZzY0WzBdCT0gbnAtPnNjcl9yYW1fc2VnOw0KLQ0KKyNlbmRp
Zg0KIAkvKg0KIAkqKglQcmVwYXJlIHRoZSBpZGxlIGFuZCBpbnZhbGlkIHRh
c2sgYWN0aW9ucy4NCiAJKi8NCkBAIC00ODUxLDcgKzQ3NTcsNyBAQA0KIAkv
Kg0KIAkqKglQcmVwYXJlIHRoZSB0YXJnZXQgYnVzIGFkZHJlc3MgYXJyYXku
DQogCSovDQotCW5wLT5zY3JpcHQwLT50YXJndGJsWzBdID0gY3B1X3RvX3Nj
cih2dG9idXMobnAtPnRhcmd0YmwpKTsNCisJbnAtPnNjcmlwdGgwLT50YXJn
dGJsWzBdID0gY3B1X3RvX3Njcih2dG9idXMobnAtPnRhcmd0YmwpKTsNCiAJ
Zm9yIChpID0gMCA7IGkgPCBNQVhfVEFSR0VUIDsgaSsrKSB7DQogCQlucC0+
dGFyZ3RibFtpXSA9IGNwdV90b19zY3IodnRvYnVzKCZucC0+dGFyZ2V0W2ld
KSk7DQogCQlucC0+dGFyZ2V0W2ldLmJfbHVudGJsID0gY3B1X3RvX3Njcih2
dG9idXMobnAtPmJhZGx1bnRibCkpOw0KQEAgLTQ5ODEsOCArNDg4Nyw5IEBA
DQogCSoqCWFuZCByZXR1cm4gc3VjY2Vzcy4NCiAJKi8NCiAJaW5zdGFuY2Ut
Pm1heF9jaGFubmVsCT0gMDsNCisJaW5zdGFuY2UtPnRoaXNfaWQJPSBucC0+
bXlhZGRyOw0KIAlpbnN0YW5jZS0+bWF4X2lkCT0gbnAtPm1heHdpZGUgPyAx
NiA6IDg7DQotCWluc3RhbmNlLT5tYXhfbHVuCT0gU0NTSV9OQ1JfTUFYX0xV
TjsNCisJaW5zdGFuY2UtPm1heF9sdW4JPSBNQVhfTFVOOw0KICNpZm5kZWYg
TkNSX0lPTUFQUEVEDQogCWluc3RhbmNlLT5iYXNlCQk9IChjaGFyICopIG5w
LT5yZWc7DQogI2VuZGlmDQpAQCAtNTAyNiw5ICs0OTMzLDExIEBADQogCQlm
cmVlX2lycShucC0+aXJxLCBucCk7DQogCWlmIChucC0+YmFzZV9pbykNCiAJ
CXJlbGVhc2VfcmVnaW9uKG5wLT5iYXNlX2lvLCBucC0+YmFzZV93cyk7DQot
I2lmbmRlZiBOQ1JfSU9NQVBQRUQNCisjaWZuZGVmIFNDU0lfTkNSX1BDSV9N
RU1fTk9UX1NVUFBPUlRFRA0KIAlpZiAobnAtPmJhc2VfdmEpDQogCQl1bm1h
cF9wY2lfbWVtKG5wLT5iYXNlX3ZhLCBucC0+YmFzZV93cyk7DQorCWlmIChu
cC0+YmFzZTJfdmEpDQorCQl1bm1hcF9wY2lfbWVtKG5wLT5iYXNlMl92YSwg
bnAtPmJhc2UyX3dzKTsNCiAjZW5kaWYNCiAJaWYgKG5wLT5zY3JpcHRoMCkN
CiAJCW1fZnJlZShucC0+c2NyaXB0aDAsIHNpemVvZihzdHJ1Y3Qgc2NyaXB0
aCksICJTQ1JJUFRIIik7DQpAQCAtNTA1MCwxMyArNDk1OSwxNyBAQA0KIAlm
b3IgKHRhcmdldCA9IDA7IHRhcmdldCA8IE1BWF9UQVJHRVQgOyB0YXJnZXQr
Kykgew0KIAkJdHAgPSAmbnAtPnRhcmdldFt0YXJnZXRdOw0KIAkJZm9yIChs
dW4gPSAwIDsgbHVuIDwgTUFYX0xVTiA7IGx1bisrKSB7DQotCQkJbHAgPSB0
cC0+bHBbbHVuXTsNCisJCQlscCA9IG5jcl9scChucCwgdHAsIGx1bik7DQog
CQkJaWYgKCFscCkNCiAJCQkJY29udGludWU7DQogCQkJaWYgKGxwLT50YXNr
dGJsICE9ICZscC0+dGFza3RibF8wKQ0KIAkJCQltX2ZyZWUobHAtPnRhc2t0
YmwsIDI1NiwgIlRBU0tUQkwiKTsNCiAJCQltX2ZyZWUobHAsIHNpemVvZigq
bHApLCAiTENCIik7DQogCQl9DQorI2lmIE1BWF9MVU4gPiAxDQorCQlpZiAo
dHAtPmxtcCkNCisJCQltX2ZyZWUodHAtPmxtcCwgTUFYX0xVTiAqIHNpemVv
ZihsY2JfcCksICJMTVAiKTsNCisjZW5kaWYgDQogCX0NCiANCiAJbV9mcmVl
KG5wLCBzaXplb2YoKm5wKSwgIk5DQiIpOw0KQEAgLTUxMTIsNyArNTAyNSw3
IEBADQogew0KIC8qCVNjc2lfRGV2aWNlICAgICAgICAqZGV2aWNlICAgID0g
Y21kLT5kZXZpY2U7ICovDQogCXRjYl9wIHRwICAgICAgICAgICAgICAgICAg
ICAgID0gJm5wLT50YXJnZXRbY21kLT50YXJnZXRdOw0KLQlsY2JfcCBscAkJ
ICAgICAgPSB0cC0+bHBbY21kLT5sdW5dOw0KKwlsY2JfcCBscAkJICAgICAg
PSBuY3JfbHAobnAsIHRwLCBjbWQtPmx1bik7DQogCWNjYl9wIGNwOw0KIA0K
IAlpbnQJc2VnbWVudHM7DQpAQCAtNTk0MSw3ICs1ODU0LDcgQEANCiAJY21k
ID0gY3AtPmNtZDsNCiAJY3AtPmNtZCA9IE5VTEw7DQogCXRwID0gJm5wLT50
YXJnZXRbY3AtPnRhcmdldF07DQotCWxwID0gdHAtPmxwW2NwLT5sdW5dOw0K
KwlscCA9IG5jcl9scChucCwgdHAsIGNwLT5sdW4pOw0KIA0KIAkvKg0KIAkq
KglXZSBkb25ub3QgcXVldWUgbW9yZSB0aGFuIDEgY2NiIHBlciB0YXJnZXQg
DQpAQCAtNjI3NCw3ICs2MTg3LDcgQEANCiAJKioJU3RhcnQgYXQgZmlyc3Qg
ZW50cnkuDQogCSovDQogCW5wLT5zcXVldWVwdXQgPSAwOw0KLQlucC0+c2Ny
aXB0MC0+c3RhcnRwb3NbMF0gPSBjcHVfdG9fc2NyKHBoeXMpOw0KKwlucC0+
c2NyaXB0aDAtPnN0YXJ0cG9zWzBdID0gY3B1X3RvX3NjcihwaHlzKTsNCiAN
CiAJLyoNCiAJKioJQ2xlYXIgRG9uZSBRdWV1ZQ0KQEAgLTYyODksNyArNjIw
Miw3IEBADQogCS8qDQogCSoqCVN0YXJ0IGF0IGZpcnN0IGVudHJ5Lg0KIAkq
Lw0KLQlucC0+c2NyaXB0MC0+ZG9uZV9wb3NbMF0gPSBjcHVfdG9fc2NyKHBo
eXMpOw0KKwlucC0+c2NyaXB0aDAtPmRvbmVfcG9zWzBdID0gY3B1X3RvX3Nj
cihwaHlzKTsNCiAJbnAtPmRxdWV1ZWdldCA9IDA7DQogDQogCS8qDQpAQCAt
NjQxNCwxNyArNjMyNywzNSBAQA0KIAl9DQogDQogCS8qDQotCSoqICAgIFN0
YXJ0IHNjcmlwdCBwcm9jZXNzb3IuDQorCSoqICAgIERvd25sb2FkIFNDU0kg
U0NSSVBUUyB0byBvbi1jaGlwIFJBTSBpZiBwcmVzZW50LA0KKwkqKiAgICBh
bmQgc3RhcnQgc2NyaXB0IHByb2Nlc3Nvci4NCisJKiogICAgV2UgZG8gdGhl
IGRvd25sb2FkIHByZWZlcmVudGx5IGZyb20gdGhlIENQVS4NCisJKiogICAg
Rm9yIHBsYXRmb3JtcyB0aGF0IG1heSBub3Qgc3VwcG9ydCBQQ0kgbWVtb3J5
IG1hcHBpbmcsDQorCSoqICAgIHdlIHVzZSBhIHNpbXBsZSBTQ1JJUFRTIHRo
YXQgcGVyZm9ybXMgTUVNT1JZIE1PVkVzLg0KIAkqLw0KIAlNRU1PUllfQkFS
UklFUigpOw0KIAlpZiAobnAtPmJhc2UyX2JhKSB7DQogCQlpZiAoYm9vdHZl
cmJvc2UpDQogCQkJcHJpbnRrICgiJXM6IERvd25sb2FkaW5nIFNDU0kgU0NS
SVBUUy5cbiIsDQogCQkJCW5jcl9uYW1lKG5wKSk7DQotCQlpZiAobnAtPmZl
YXR1cmVzICYgRkVfUkFNOEspDQorI2lmZGVmIFNDU0lfTkNSX1BDSV9NRU1f
Tk9UX1NVUFBPUlRFRA0KKwkJaWYgKG5wLT5iYXNlMl93cyA9PSA4MTkyKQ0K
IAkJCXBoeXMgPSBOQ0JfU0NSSVBUSDBfUEhZUyAobnAsIHN0YXJ0X3JhbTY0
KTsNCiAJCWVsc2UNCiAJCQlwaHlzID0gTkNCX1NDUklQVEhfUEhZUyAobnAs
IHN0YXJ0X3JhbSk7DQorI2Vsc2UNCisJCWlmIChucC0+YmFzZTJfd3MgPT0g
ODE5Mikgew0KKwkJCW1lbWNweV90b19wY2kobnAtPmJhc2UyX3ZhICsgNDA5
NiwNCisJCQkJCW5wLT5zY3JpcHRoMCwgc2l6ZW9mKHN0cnVjdCBzY3JpcHRo
KSk7DQorCQkJT1VUTCAobmNfbW13cywgbnAtPnNjcl9yYW1fc2VnKTsNCisJ
CQlPVVRMIChuY19tbXJzLCBucC0+c2NyX3JhbV9zZWcpOw0KKwkJCU9VVEwg
KG5jX3NmcywgIG5wLT5zY3JfcmFtX3NlZyk7DQorCQkJcGh5cyA9IE5DQl9T
Q1JJUFRIX1BIWVMgKG5wLCBzdGFydDY0KTsNCisJCX0NCisJCWVsc2UNCisJ
CQlwaHlzID0gTkNCX1NDUklQVF9QSFlTIChucCwgaW5pdCk7DQorCQltZW1j
cHlfdG9fcGNpKG5wLT5iYXNlMl92YSwgbnAtPnNjcmlwdDAsIHNpemVvZihz
dHJ1Y3Qgc2NyaXB0KSk7DQorI2VuZGlmIC8qIFNDU0lfTkNSX1BDSV9NRU1f
Tk9UX1NVUFBPUlRFRCAqLw0KIAl9DQogCWVsc2UNCiAJCXBoeXMgPSBOQ0Jf
U0NSSVBUX1BIWVMgKG5wLCBpbml0KTsNCkBAIC02NzI5LDcgKzY2NjAsNyBA
QA0KIHN0YXRpYyB2b2lkIG5jcl9zZXR1cF90YWdzIChuY2JfcCBucCwgdV9j
aGFyIHRuLCB1X2NoYXIgbG4pDQogew0KIAl0Y2JfcCB0cCA9ICZucC0+dGFy
Z2V0W3RuXTsNCi0JbGNiX3AgbHAgPSB0cC0+bHBbbG5dOw0KKwlsY2JfcCBs
cCA9IG5jcl9scChucCwgdHAsIGxuKTsNCiAJdV9jaGFyICAgcmVxdGFncywg
bWF4ZGVwdGg7DQogDQogCS8qDQpAQCAtNjg0NCw3ICs2Nzc1LDcgQEANCiAJ
CQlpZiAoISgobnAtPnVzZXIudGFyZ2V0Pj50KSYxKSkgY29udGludWU7DQog
CQkJbnAtPnRhcmdldFt0XS51c3J0YWdzID0gbnAtPnVzZXIuZGF0YTsNCiAJ
CQlmb3IgKGxuID0gMDsgbG4gPCBNQVhfTFVOOyBsbisrKSB7DQotCQkJCWxj
Yl9wIGxwID0gbnAtPnRhcmdldFt0XS5scFtsbl07DQorCQkJCWxjYl9wIGxw
ID0gbmNyX2xwKG5wLCAmbnAtPnRhcmdldFt0XSwgbG4pOw0KIAkJCQlpZiAo
IWxwKQ0KIAkJCQkJY29udGludWU7DQogCQkJCWxwLT5tYXh0YWdzID0gbHAt
Pm51bXRhZ3MgPSBucC0+dXNlci5kYXRhOw0KQEAgLTczMzksMTcgKzcyNzAs
OSBAQA0KIHsNCiAJdV9pbnQzMglkc3AJPSBJTkwgKG5jX2RzcCk7DQogCXVf
aW50MzIJZHNhCT0gSU5MIChuY19kc2EpOw0KLQl1X2NoYXIJc2NudGwxCT0g
SU5CIChuY19zY250bDEpOw0KIAljY2JfcCBjcAk9IG5jcl9jY2JfZnJvbV9k
c2EobnAsIGRzYSk7DQogDQogCS8qDQotCSoqCUlmIHdlIGFyZSBjb25uZWN0
ZWQgdG8gdGhlIFNDU0kgQlVTLCB3ZSBvbmx5IA0KLQkqKgljYW4gcmVzZXQg
dGhlIEJVUy4NCi0JKi8NCi0JaWYgKHNjbnRsMSAmIElTQ09OKQ0KLQkJZ290
byByZXNldF9hbGw7DQotDQotCS8qDQogCSoqCUlmIHdlIGhhdmVuJ3QgYmVl
biBpbnRlcnJ1cHRlZCBpbnNpZGUgdGhlIFNDUklQVFMgDQogCSoqCWNyaXRp
Y2FsIHBhdGhlcywgd2UgY2FuIHNhZmVseSByZXN0YXJ0IHRoZSBTQ1JJUFRT
IA0KIAkqKglhbmQgdHJ1c3QgdGhlIERTQSB2YWx1ZSBpZiBpdCBtYXRjaGVz
IGEgQ0NCLg0KQEAgLTc5MjAsNyArNzg0Myw3IEBADQogew0KIAlTY3NpX0Nt
bmQgKmNtZAk9IGNwLT5jbWQ7DQogCXRjYl9wIHRwCT0gJm5wLT50YXJnZXRb
Y3AtPnRhcmdldF07DQotCWxjYl9wIGxwCT0gdHAtPmxwW2NwLT5sdW5dOw0K
KwlsY2JfcCBscAk9IG5jcl9scChucCwgdHAsIGNwLT5sdW4pOw0KIAljY2Jf
cAkJY3AyOw0KIAlpbnQJCWJ1c3ljY2JzID0gMTsNCiAJdV9pbnQzMgkJc3Rh
cnRwOw0KQEAgLTgxNjcsOCArODA5MCw4IEBADQogCQkqKgltZXNzYWdlIHN0
aWxsIGV4aXN0LCB0aGlzIHNob3VsZCBoZWxwLg0KIAkJKioJV2UganVzdCBh
c3N1bWUgbHVuPTAsIDEgQ0NCLCBubyB0YWcuDQogCQkqLw0KLQkJaWYgKHRw
LT5scFswXSkgeyANCi0JCQlPVVRMIChuY19kc2EsIHNjcl90b19jcHUodHAt
PmxwWzBdLT50YXNrdGJsWzBdKSk7DQorCQlpZiAodHAtPmwwcCkgeyANCisJ
CQlPVVRMIChuY19kc2EsIHNjcl90b19jcHUodHAtPmwwcC0+dGFza3RibFsw
XSkpOw0KIAkJCU9VVEwgKG5jX2RzcCwgTkNCX1NDUklQVF9QSFlTIChucCwg
cmVzZWxfZ28pKTsNCiAJCQlyZXR1cm47DQogCQl9DQpAQCAtODYyMyw3ICs4
NTQ2LDcgQEANCiBzdGF0aWMJY2NiX3AgbmNyX2dldF9jY2IgKG5jYl9wIG5w
LCB1X2NoYXIgdG4sIHVfY2hhciBsbikNCiB7DQogCXRjYl9wIHRwID0gJm5w
LT50YXJnZXRbdG5dOw0KLQlsY2JfcCBscCA9IHRwLT5scFtsbl07DQorCWxj
Yl9wIGxwID0gbmNyX2xwKG5wLCB0cCwgbG4pOw0KIAl1X2NoYXIgdGFnID0g
Tk9fVEFHOw0KIAlYUFRfUVVFSEVBRCAqcXA7DQogCWNjYl9wIGNwID0gKGNj
Yl9wKSAwOw0KQEAgLTg3MTUsNyArODYzOCw3IEBADQogc3RhdGljIHZvaWQg
bmNyX2ZyZWVfY2NiIChuY2JfcCBucCwgY2NiX3AgY3ApDQogew0KIAl0Y2Jf
cCB0cCA9ICZucC0+dGFyZ2V0W2NwLT50YXJnZXRdOw0KLQlsY2JfcCBscCA9
IHRwLT5scFtjcC0+bHVuXTsNCisJbGNiX3AgbHAgPSBuY3JfbHAobnAsIHRw
LCBjcC0+bHVuKTsNCiANCiAJaWYgKERFQlVHX0ZMQUdTICYgREVCVUdfVEFH
Uykgew0KIAkJUFJJTlRfTFVOKG5wLCBjcC0+dGFyZ2V0LCBjcC0+bHVuKTsN
CkBAIC04ODgyLDcgKzg4MDUsNyBAQA0KIHN0YXRpYyBsY2JfcCBuY3JfYWxs
b2NfbGNiIChuY2JfcCBucCwgdV9jaGFyIHRuLCB1X2NoYXIgbG4pDQogew0K
IAl0Y2JfcCB0cCA9ICZucC0+dGFyZ2V0W3RuXTsNCi0JbGNiX3AgbHAgPSB0
cC0+bHBbbG5dOw0KKwlsY2JfcCBscCA9IG5jcl9scChucCwgdHAsIGxuKTsN
CiANCiAJLyoNCiAJKioJQWxyZWFkeSBkb25lLCByZXR1cm4uDQpAQCAtODg5
OCwxMiArODgyMSwyNCBAQA0KIAkJZ290byBmYWlsOw0KIA0KIAkvKg0KKwkq
KglBbGxvY2F0ZSB0aGUgdGFibGUgb2YgcG9pbnRlcnMgZm9yIExVTihzKSA+
IDAsIGlmIG5lZWRlZC4NCisJKi8NCisJaWYgKGxuICYmICF0cC0+bG1wKSB7
DQorCQl0cC0+bG1wID0gbV9jYWxsb2MoTUFYX0xVTiAqIHNpemVvZihsY2Jf
cCksICJMTVAiLCBNRU1PX1dBUk4pOw0KKwkJaWYgKCF0cC0+bG1wKQ0KKwkJ
CWdvdG8gZmFpbDsNCisJfQ0KKw0KKwkvKg0KIAkqKglBbGxvY2F0ZSB0aGUg
bGNiLg0KIAkqLw0KIAlscCA9IG1fY2FsbG9jKHNpemVvZihzdHJ1Y3QgbGNi
KSwgIkxDQiIsIE1FTU9fV0FSTik7DQogCWlmICghbHApDQogCQlnb3RvIGZh
aWw7DQotCXRwLT5scFtsbl0gPSBscDsNCisJaWYgKGxuKQ0KKwkJdHAtPmxt
cFtsbl0gPSBscDsNCisJZWxzZQ0KKwkJdHAtPmwwcCA9IGxwOw0KIA0KIAkv
Kg0KIAkqKglNYWtlIGl0IGF2YWlsYWJsZSB0byB0aGUgY2hpcC4NCkBAIC04
OTQ4LDcgKzg4ODMsNyBAQA0KIHN0YXRpYyBsY2JfcCBuY3Jfc2V0dXBfbGNi
IChuY2JfcCBucCwgdV9jaGFyIHRuLCB1X2NoYXIgbG4sIHVfY2hhciAqaW5x
X2RhdGEpDQogew0KIAl0Y2JfcCB0cCA9ICZucC0+dGFyZ2V0W3RuXTsNCi0J
bGNiX3AgbHAgPSB0cC0+bHBbbG5dOw0KKwlsY2JfcCBscCA9IG5jcl9scChu
cCwgdHAsIGxuKTsNCiAJdV9jaGFyIGlucV9ieXRlNzsNCiAJaW50IGk7DQog
DQpAQCAtOTYyNCw2ICs5NTU5LDcgQEANCiAjZGVmaW5lIE9QVF9TQUZFX1NF
VFVQCQkyMg0KICNkZWZpbmUgT1BUX1VTRV9OVlJBTQkJMjMNCiAjZGVmaW5l
IE9QVF9FWENMVURFCQkyNA0KKyNkZWZpbmUgT1BUX0hPU1RfSUQJCTI1DQog
DQogc3RhdGljIGNoYXIgc2V0dXBfdG9rZW5bXSBfX2luaXRkYXRhID0gDQog
CSJ0YWdzOiIgICAibXBhcjoiDQpAQCAtOTYzOCw3ICs5NTc0LDcgQEANCiAJ
ImJ1c2NoazoiICJvcHRpbToiDQogCSJyZWNvdmVyeToiDQogCSJzYWZlOiIg
ICAibnZyYW06Ig0KLQkiZXhjbDoiOw0KKwkiZXhjbDoiICAgImhvc3RpZDoi
Ow0KIA0KICNpZmRlZiBNT0RVTEUNCiAjZGVmaW5lCUFSR19TRVAJJyAnDQpA
QCAtOTc3Miw2ICs5NzA4LDkgQEANCiAJCQlpZiAoeGkgPCBTQ1NJX05DUl9N
QVhfRVhDTFVERVMpDQogCQkJCWRyaXZlcl9zZXR1cC5leGNsdWRlc1t4aSsr
XSA9IHZhbDsNCiAJCQlicmVhazsNCisJCWNhc2UgT1BUX0hPU1RfSUQ6DQor
CQkJZHJpdmVyX3NldHVwLmhvc3RfaWQgPSB2YWw7DQorCQkJYnJlYWs7DQog
CQlkZWZhdWx0Og0KIAkJCXByaW50aygic3ltNTNjOHh4X3NldHVwOiB1bmV4
cGVjdGVkIGJvb3Qgb3B0aW9uICclLipzJyBpZ25vcmVkXG4iLCAoaW50KShw
Yy1jdXIrMSksIGN1cik7DQogCQkJYnJlYWs7DQpAQCAtOTk4OCw3ICs5OTI3
LDcgQEANCiAJCX0NCiAJCSsraW5kZXg7DQogCQlkZXZwID0gJmRldnRibFtj
b3VudF07DQotCQlkZXZwLT5ob3N0X2lkID0gMjU1Ow0KKwkJZGV2cC0+aG9z
dF9pZCA9IGRyaXZlcl9zZXR1cC5ob3N0X2lkOw0KIAkJZGV2cC0+YXR0YWNo
X2RvbmUgPSAwOw0KIAkJaWYgKHN5bTUzYzh4eF9wY2lfaW5pdCh0cG50LCBi
dXMsIGRldmljZV9mbiwgZGV2cCkpIHsNCiAJCQljb250aW51ZTsNCkBAIC0x
MDIyMSwxOCArMTAxNjAsMTggQEANCiAJCWlmIChyZXZpc2lvbiA+IG5jcl9j
aGlwX3RhYmxlW2ldLnJldmlzaW9uX2lkKQ0KIAkJCWNvbnRpbnVlOw0KIAkJ
aWYgKCEobmNyX2NoaXBfdGFibGVbaV0uZmVhdHVyZXMgJiBGRV9MRFNUUikp
DQotCQkJY29udGludWU7DQorCQkJYnJlYWs7DQogCQljaGlwID0gJmRldmlj
ZS0+Y2hpcDsNCiAJCW1lbWNweShjaGlwLCAmbmNyX2NoaXBfdGFibGVbaV0s
IHNpemVvZigqY2hpcCkpOw0KIAkJY2hpcC0+cmV2aXNpb25faWQgPSByZXZp
c2lvbjsNCiAJCWJyZWFrOw0KIAl9DQogDQotI2lmIGRlZmluZWQoX19pMzg2
X18pDQogCS8qDQogCSoqCUlnbm9yZSBTeW1iaW9zIGNoaXBzIGNvbnRyb2xs
ZWQgYnkgU0lTTCBSQUlEIGNvbnRyb2xsZXIuDQogCSoqCVRoaXMgY29udHJv
bGxlciBzZXRzIHZhbHVlIDB4NTI0MTQ5NDQgYXQgUkFNIGVuZCAtIDE2Lg0K
IAkqLw0KKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSAmJiAhZGVmaW5lZChTQ1NJ
X05DUl9QQ0lfTUVNX05PVF9TVVBQT1JURUQpDQogCWlmIChjaGlwICYmIChi
YXNlXzIgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLKSkgew0KIAkJdW5z
aWduZWQgaW50IHJhbV9zaXplLCByYW1fdmFsOw0KIAkJdV9sb25nIHJhbV9w
dHI7DQpAQCAtMTAyNTQsNyArMTAxOTMsNyBAQA0KIAkJCX0NCiAJCX0NCiAJ
fQ0KLSNlbmRpZg0KKyNlbmRpZiAvKiBub3QgZGVmIFNDU0lfTkNSX1BDSV9N
RU1fTk9UX1NVUFBPUlRFRCAqLw0KIA0KIAlpZiAoIWNoaXApIHsNCiAJCXBy
aW50ayhOQU1FNTNDOFhYICI6IG5vdCBpbml0aWFsaXppbmcsIGRldmljZSBu
b3Qgc3VwcG9ydGVkXG4iKTsNCkBAIC0xMDM0MSw4ICsxMDI4MCwxNSBAQA0K
IAkvKg0KIAkqKiAgICBDaGVjayBhdmFpbGFiaWxpdHkgb2YgSU8gc3BhY2Us
IG1lbW9yeSBzcGFjZS4NCiAJKiogICAgRW5hYmxlIG1hc3RlciBjYXBhYmls
aXR5IGlmIG5vdCB5ZXQuDQorCSoqDQorCSoqICAgIFdlIHNob3VsZG4ndCBo
YXZlIHRvIGNhcmUgYWJvdXQgdGhlIElPIHJlZ2lvbiB3aGVuIA0KKwkqKiAg
ICB3ZSBhcmUgdXNpbmcgTU1JTy4gQnV0IGNhbGxpbmcgY2hlY2tfcmVnaW9u
KCkgZnJvbSANCisJKiogICAgYm90aCB0aGUgbmNyNTNjOHh4IGFuZCB0aGUg
c3ltNTNjOHh4IGRyaXZlcnMgcHJldmVudHMgDQorCSoqICAgIGZyb20gYXR0
YWNoaW5nIGRldmljZXMgZnJvbSB0aGUgYm90aCBkcml2ZXJzLg0KKwkqKiAg
ICBJZiB5b3UgaGF2ZSBhIGJldHRlciBpZGVhLCBsZXQgbWUga25vdy4NCiAJ
Ki8NCi0jaWZkZWYgTkNSX0lPTUFQUEVEDQorLyogI2lmZGVmIE5DUl9JT01B
UFBFRCAqLw0KKyNpZiAxDQogCWlmICghKGNvbW1hbmQgJiBQQ0lfQ09NTUFO
RF9JTykgfHwgIShpb19wb3J0ICYgMSkpIHsgDQogCQlwcmludGsoTkFNRTUz
QzhYWCAiOiBJL08gYmFzZSBhZGRyZXNzICgweCVseCkgZGlzYWJsZWQuXG4i
LA0KIAkJCShsb25nKSBpb19wb3J0KTsNCkBAIC0xMDM1OCw3ICsxMDMwNCw4
IEBADQogCWJhc2UJJj0gUENJX0JBU0VfQUREUkVTU19NRU1fTUFTSzsNCiAJ
YmFzZV8yCSY9IFBDSV9CQVNFX0FERFJFU1NfTUVNX01BU0s7DQogDQotI2lm
ZGVmIE5DUl9JT01BUFBFRA0KKy8qICNpZmRlZiBOQ1JfSU9NQVBQRUQgKi8N
CisjaWYgMQ0KIAlpZiAoaW9fcG9ydCAmJiBjaGVja19yZWdpb24gKGlvX3Bv
cnQsIDEyOCkpIHsNCiAJCXByaW50ayhOQU1FNTNDOFhYICI6IElPIHJlZ2lv
biAweCVseFswLi4xMjddIGlzIGluIHVzZVxuIiwNCiAJCQkobG9uZykgaW9f
cG9ydCk7DQpAQCAtMTAzNjYsNyArMTAzMTMsOCBAQA0KIAl9DQogCWlmICgh
aW9fcG9ydCkNCiAJCXJldHVybiAtMTsNCi0jZWxzZQ0KKyNlbmRpZg0KKyNp
Zm5kZWYgTkNSX0lPTUFQUEVEDQogCWlmICghYmFzZSkgew0KIAkJcHJpbnRr
KE5BTUU1M0M4WFggIjogTU1JTyBiYXNlIGFkZHJlc3MgZGlzYWJsZWQuXG4i
KTsNCiAJCXJldHVybiAtMTsNCkBAIC0xMDU4Myw3ICsxMDUzMSw3IEBADQog
DQogCQlucCA9ICgoc3RydWN0IGhvc3RfZGF0YSAqKSBob3N0LT5ob3N0ZGF0
YSktPm5jYjsNCiAJCXRwID0gJm5wLT50YXJnZXRbZGV2aWNlLT5pZF07DQot
CQlscCA9IHRwLT5scFtkZXZpY2UtPmx1bl07DQorCQlscCA9IG5jcl9scChu
cCwgdHAsIGRldmljZS0+bHVuKTsNCiANCiAJCS8qDQogCQkqKglTZWxlY3Qg
cXVldWUgZGVwdGggZnJvbSBkcml2ZXIgc2V0dXAuDQpAQCAtMTE0MDMsOCAr
MTEzNTEsOCBAQA0KIAludnJhbV9zdG9wKG5wLCAmZ3ByZWcpOw0KIAkNCiAj
aWZkZWYgU0NTSV9OQ1JfREVCVUdfTlZSQU0NCi1wcmludGsoInN5bTUzYzh4
eDogTnZSQU0gbWFya2VyPSV4IHRyYWlsZXI9JXggJXggJXggJXggJXggJXgg
Ynl0ZV9jb3VudD0lZC8lZCBjaGVja3N1bT0leC8leFxuIiwNCi0JbnZyYW0t
PnN0YXJ0X21hcmtlciwNCitwcmludGsoInN5bTUzYzh4eDogTnZSQU0gdHlw
ZT0leCB0cmFpbGVyPSV4ICV4ICV4ICV4ICV4ICV4IGJ5dGVfY291bnQ9JWQv
JWQgY2hlY2tzdW09JXgvJXhcbiIsDQorCW52cmFtLT50eXBlLA0KIAludnJh
bS0+dHJhaWxlclswXSwgbnZyYW0tPnRyYWlsZXJbMV0sIG52cmFtLT50cmFp
bGVyWzJdLA0KIAludnJhbS0+dHJhaWxlclszXSwgbnZyYW0tPnRyYWlsZXJb
NF0sIG52cmFtLT50cmFpbGVyWzVdLA0KIAludnJhbS0+Ynl0ZV9jb3VudCwg
c2l6ZW9mKCpudnJhbSkgLSAxMiwNCi0tLSAvbW50L2xpbnV4LTIuMi4xMS1w
cmUzL2RyaXZlcnMvc2NzaS9DaGFuZ2VMb2cubmNyNTNjOHh4CVN1biBNYXkg
IDkgMTI6NTE6MTcgMTk5OQ0KKysrIGxpbnV4L2RyaXZlcnMvc2NzaS9DaGFu
Z2VMb2cubmNyNTNjOHh4CVNhdCBKdWwgMjQgMTI6NDE6MzIgMTk5OQ0KQEAg
LTEsMyArMSwyMiBAQA0KK1dlZCBKdWwgMjEgMTk5OSAyMzowMCBHZXJhcmQg
Um91ZGllciAoZ3JvdWRpZXJAY2x1Yi1pbnRlcm5ldC5mcikNCisJKiByZXZp
c2lvbiAzLjJhLTINCisJLSBtZXJnZSBvZiBkcml2ZXIgMy4yYS0xIHdpdGgg
bGludXgtMi4zLjExLXByZTMNCisNCitTdW4gTWF5IDkgIDE1OjAwIDE5OTkg
R2VyYXJkIFJvdWRpZXIgKGdyb3VkaWVyQGNsdWItaW50ZXJuZXQuZnIpDQor
CSogcmV2aXNpb24gMy4yYS0xDQorCS0gRml4IHRoZSBtaXNkZXRlY3Rpb24g
b2YgU1lNNTNDODc1RSAod2FzIGRldGVjdGVkIGFzIGEgODc2KS4NCisJLSBT
ZXQgdGhlIGFjdHVhbCBob3N0IElEIHVzZWQgZm9yIGVhY2ggaG9zdCBpbiB0
aGUgc2NzaSBob3N0IGRhdGEgDQorCSAgc3RydWN0dXJlLiBUaGUgbWlkLWxh
eWVyIFNDU0kgZHJpdmVyIG5lZWRzIHRoaXMgaW5mb3JtYXRpb24uDQorDQor
U3VuIEFwciAxMSAgMTA6MDAgMTk5OSBHZXJhcmQgUm91ZGllciAoZ3JvdWRp
ZXJAY2x1Yi1pbnRlcm5ldC5mcikNCisJKiByZXZpc2lvbiAzLjJhDQorCS0g
QWRkICdob3N0aWQ6I2lkJyBib290IG9wdGlvbi4gVGhpcyBvcHRpb24gYWxs
b3dzIHRvIGNoYW5nZSB0aGUgDQorCSAgZGVmYXVsdCBTQ1NJIGlkIHRoZSBk
cml2ZXIgdXNlcyBmb3IgY29udHJvbGxlcnMuDQorCS0gUmVtb3ZlIG52cmFt
IGxheW91dHMgYW5kIGRyaXZlciBzZXQtdXAgc3RydWN0dXJlcyBmcm9tIHRo
ZSBDIHNvdXJjZSwNCisJICBhbmQgdXNlIHRoZSBvbmUgZGVmaW5lZCBpbiBz
eW01M2M4eHhfZGVmcy5oIGZpbGUuDQorCSAgKHNoYXJlZCBieSBib3RoIGRy
aXZlcnMpLg0KKwktIFNldCBmb3Igbm93IE1BWCBMVU5TIHRvIDE2IChpbnN0
ZWFkIG9mIDgpLg0KKw0KIFRodSBNYXIgMTEgIDIzOjAwIDE5OTkgR2VyYXJk
IFJvdWRpZXIgKGdyb3VkaWVyQGNsdWItaW50ZXJuZXQuZnIpDQogCSogcmV2
aXNpb24gMy4yCSAgKDh4eC04OTYgZHJpdmVyIGJ1bmRsZSkNCiAJLSBPbmx5
IGRlZmluZSB0aGUgaG9zdCB0ZW1wbGF0ZSBpbiBuY3I1M2M4eHguaCBhbmQg
aW5jbHVkZSB0aGUgDQotLS0gL21udC9saW51eC0yLjIuMTEtcHJlMy9kcml2
ZXJzL3Njc2kvUkVBRE1FLm5jcjUzYzh4eAlTdW4gTWF5ICA5IDEyOjUxOjE3
IDE5OTkNCisrKyBsaW51eC9kcml2ZXJzL3Njc2kvUkVBRE1FLm5jcjUzYzh4
eAlUdWUgSnVsIDIwIDIzOjI1OjUyIDE5OTkNCkBAIC00LDcgKzQsNyBAQA0K
IDIxIFJ1ZSBDYXJub3QNCiA5NTE3MCBERVVJTCBMQSBCQVJSRSAtIEZSQU5D
RQ0KIA0KLTEwIE1hcmNoIDE5OTkNCis5IE1heSAxOTk5DQogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0KIDEuICBJbnRyb2R1Y3Rp
b24NCkBAIC03MzYsNiArNzM2LDEzIEBADQogU2VyaWFsIE5WUkFNDQogICAg
IG52cmFtOm4gICAgIGRvIG5vdCBsb29rIGZvciBzZXJpYWwgTlZSQU0NCiAg
ICAgbnZyYW06eSAgICAgdGVzdCBjb250cm9sbGVycyBmb3Igb25ib2FyZCBz
ZXJpYWwgTlZSQU0NCisgICAgKGFsdGVybmF0ZSBiaW5hcnkgZm9ybSkNCisg
ICAgbXZyYW09PGJpdHMgb3B0aW9ucz4NCisgICAgICAweDAxICAgbG9vayBm
b3IgTlZSQU0gIChlcXVpdmFsZW50IHRvIG52cmFtPXkpDQorICAgICAgMHgw
MiAgIGlnbm9yZSBOVlJBTSAiU3luY2hyb25vdXMgbmVnb3RpYXRpb24iIHBh
cmFtZXRlcnMgZm9yIGFsbCBkZXZpY2VzDQorICAgICAgMHgwNCAgIGlnbm9y
ZSBOVlJBTSAiV2lkZSBuZWdvdGlhdGlvbiIgIHBhcmFtZXRlciBmb3IgYWxs
IGRldmljZXMNCisgICAgICAweDA4ICAgaWdub3JlIE5WUkFNICJTY2FuIGF0
IGJvb3QgdGltZSIgcGFyYW1ldGVyIGZvciBhbGwgZGV2aWNlcw0KKyAgICAg
IDB4ODAgICBhbHNvIGF0dGFjaCBjb250cm9sbGVycyBzZXQgdG8gT0ZGIGlu
IHRoZSBOVlJBTSAoc3ltNTNjOHh4IG9ubHkpDQogDQogQ2hlY2sgU0NTSSBC
VVMgDQogICAgIGJ1c2Noazo8b3B0aW9uIGJpdHM+DQpAQCAtNzQ1LDEzICs3
NTIsMjMgQEANCiAgICAgICAgIDB4MTogICBDaGVjayBhbmQgZG9ubm90IGF0
dGFjaCB0aGUgY29udHJvbGxlciBvbiBlcnJvci4gIA0KICAgICAgICAgMHgy
OiAgIENoZWNrIGFuZCBqdXN0IHdhcm4gb24gZXJyb3IuDQogDQotRXhjbHVk
ZSBob3N0cyBmcm9tIGJlaW5nIGF0dGFjaGVkDQorRXhjbHVkZSBhIGhvc3Qg
ZnJvbSBiZWluZyBhdHRhY2hlZA0KICAgICBleGNsPTxpb19hZGRyZXNzPg0K
IA0KICAgICBQcmV2ZW50IGhvc3QgYXQgYSBnaXZlbiBpbyBhZGRyZXNzIGZy
b20gYmVpbmcgYXR0YWNoZWQuDQotICAgIEZvciBleGFtcGxlICduY3I1M2M4
eHg9ZXhjbDoweGI0MDAsZXhjbDoweGMwMDAnIGluZGljYXRlIHRvIHRoZSAN
CisgICAgRm9yIGV4YW1wbGUgJ25jcjUzYzh4eD1leGNsOjB4YjQwMCxleGNs
OjB4YzAwMCcgaW5kaWNhdGVzIHRvIHRoZSANCiAgICAgbmNyNTNjOHh4IGRy
aXZlciBub3QgdG8gYXR0YWNoIGhvc3RzIGF0IGFkZHJlc3MgMHhiNDAwIGFu
ZCAweGMwMDAuDQogDQorU3VnZ2VzdCBhIGRlZmF1bHQgU0NTSSBpZCBmb3Ig
aG9zdHMNCisgICAgaG9zdGlkOjI1NQlubyBpZCBzdWdnZXN0ZWQuDQorICAg
IGhvc3RpZDojeCAgICgwIDwgeCA8IDcpIHggc3VnZ2VzdGVkIGZvciBob3N0
cyBTQ1NJIGlkLg0KKw0KKyAgICBJZiBhIGhvc3QgU0NTSSBpZCBpcyBhdmFp
bGFibGUgZnJvbSB0aGUgTlZSQU0sIHRoZSBkcml2ZXIgd2lsbCBpZ25vcmUg
DQorICAgIGFueSB2YWx1ZSBzdWdnZXN0ZWQgYXMgYm9vdCBvcHRpb24uIE90
aGVyd2lzZSwgaWYgYSBzdWdnZXN0ZWQgdmFsdWUgDQorICAgIGRpZmZlcmVu
dCBmcm9tIDI1NSBoYXMgYmVlbiBzdXBwbGllZCwgaXQgd2lsbCB1c2UgaXQu
IE90aGVyd2lzZSwgaXQgd2lsbCANCisgICAgdHJ5IHRvIGRlZHVjZSB0aGUg
dmFsdWUgcHJldmlvdXNseSBzZXQgaW4gdGhlIGhhcmR3YXJlIGFuZCB1c2Ug
dmFsdWUgDQorICAgIDcgaWYgdGhlIGhhcmR3YXJlIHZhbHVlIGlzIHplcm8u
DQorDQogQm9vdCBmYWlsIHNhZmUNCiAgICAgc2FmZTp5CWxvYWQgdGhlIGZv
bGxvd2luZyBhc3N1bWVkIGZhaWwgc2FmZSBpbml0aWFsIHNldHVwDQogDQpA
QCAtODM3LDcgKzg1NCwxMSBAQA0KIG52cmFtOm4gICAgIGRvIG5vdCBsb29r
IGZvciBzZXJpYWwgTlZSQU0NCiBudnJhbTp5ICAgICB0ZXN0IGNvbnRyb2xs
ZXJzIGZvciBvbmJvYXJkIHNlcmlhbCBOVlJBTQ0KIA0KLVRoaXMgb3B0aW9u
IGlzIGRlc2NyaWJlZCBiZWxvdyAoc2VlIDE3LiBTZXJpYWwgTlZSQU0gc3Vw
cG9ydCkuDQorVGhpcyBvcHRpb24gY2FuIGFsc28gYmVlbiBlbnRlcmVkIGFz
IGFuIGhleGFkZWNpbWFsIHZhbHVlIHRoYXQgYWxsb3dzIA0KK3RvIGNvbnRy
b2wgd2hhdCBpbmZvcm1hdGlvbiB0aGUgZHJpdmVyIHdpbGwgZ2V0IGZyb20g
dGhlIE5WUkFNIGFuZCB3aGF0IA0KK2luZm9ybWF0aW9uIGl0IHdpbGwgaWdu
b3JlLg0KK0ZvciBkZXRhaWxzIHNlZSAnMTcuIFNlcmlhbCBOVlJBTSBzdXBw
b3J0Jy4NCisNCiBXaGVuIHRoaXMgb3B0aW9uIGlzIGVuYWJsZWQsIHRoZSBk
cml2ZXIgdHJpZXMgdG8gZGV0ZWN0IGFsbCBib2FyZHMgdXNpbmcgDQogYSBT
ZXJpYWwgTlZSQU0uIFRoaXMgbWVtb3J5IGlzIHVzZWQgdG8gaG9sZCB1c2Vy
IHNldCB1cCBwYXJhbWV0ZXJzLg0KIA0KQEAgLTg3MywxMiArODk0LDE3IEBA
DQogICAgICAgMHgwMiAgIGlnbm9yZSBOVlJBTSAiU3luY2hyb25vdXMgbmVn
b3RpYXRpb24iIHBhcmFtZXRlcnMgZm9yIGFsbCBkZXZpY2VzDQogICAgICAg
MHgwNCAgIGlnbm9yZSBOVlJBTSAiV2lkZSBuZWdvdGlhdGlvbiIgIHBhcmFt
ZXRlciBmb3IgYWxsIGRldmljZXMNCiAgICAgICAweDA4ICAgaWdub3JlIE5W
UkFNICJTY2FuIGF0IGJvb3QgdGltZSIgcGFyYW1ldGVyIGZvciBhbGwgZGV2
aWNlcw0KKyAgICAgIDB4ODAgICBhbHNvIGF0dGFjaCBjb250cm9sbGVycyBz
ZXQgdG8gT0ZGIGluIHRoZSBOVlJBTSAoc3ltNTNjOHh4IG9ubHkpDQogDQot
TXkgQXRsYXMgV2lkZSBvbmx5IGJvb3RzIGNsZWFubHkgaW4gOCBiaXRzIGFz
eW5jaHJvbm91cyBkYXRhIHRyYW5zZmVyIA0KLW1vZGUuIEhvd2V2ZXIsIGl0
IHdvcmtzIGZsYXdsZXNzbHkgYXQgMjAgTUIvc2Vjb25kIHdpdGggdGhlIGRy
aXZlci4NCi1Vc2luZyAibnZyYW09MHg3IiBhbGxvd3MgbWUgdG8gYm9vdCBp
biA4IGJpdHMvYXN5bmMgYW5kIHRvIGxldCB0aGUgZHJpdmVyIA0KLXVzZSBp
dHMgc2V0dXAgZm9yIHN5bmNocm9ub3VzIGFuZCB3aWRlIG5lZ290aWF0aW9u
cy4NCi0NCitPcHRpb24gMHg4MCBpcyBvbmx5IHN1cHBvcnRlZCBieSB0aGUg
c3ltNTNjOHh4IGRyaXZlciBhbmQgaXMgZGlzYWJsZWQgYnkgDQorZGVmYXVs
dC4gUmVzdWx0IGlzIHRoYXQsIGJ5IGRlZmF1bHQgKG9wdGlvbiBub3Qgc2V0
KSwgdGhlIHN5bTUzYzh4eCBkcml2ZXIgDQord2lsbCBub3QgYXR0YWNoIGNv
bnRyb2xsZXJzIHNldCB0byBPRkYgaW4gdGhlIE5WUkFNLg0KKw0KK1RoZSBu
Y3I1M2M4eHggYWx3YXlzIHRyaWVzIHRvIGF0dGFjaCBhbGwgdGhlIGNvbnRy
b2xsZXJzLiBPcHRpb24gMHg4MCBoYXMgDQorbm90IGJlZW4gYWRkZWQgdG8g
dGhlIG5jcjUzYzh4eCBkcml2ZXIsIHNpbmNlIGl0IGhhcyBiZWVuIHJlcG9y
dGVkIHRvIA0KK2NvbmZ1c2UgdXNlcnMgd2hvIHVzZSB0aGlzIGRyaXZlciBz
aW5jZSBhIGxvbmcgdGltZS4gSWYgeW91IGRlc2lyZSBhIA0KK2NvbnRyb2xs
ZXIgbm90IHRvIGJlIGF0dGFjaGVkIGJ5IHRoZSBuY3I1M2M4eHggZHJpdmVy
IGF0IExpbnV4IGJvb3QsIHlvdSANCittdXN0IHVzZSB0aGUgJ2V4Y2wnIGRy
aXZlciBib290IG9wdGlvbi4NCiANCiAxMC42IFNDU0kgQlVTIGNoZWNraW5n
IGJvb3Qgb3B0aW9uLg0KIA0KLS0tIC9tbnQvbGludXgtMi4yLjExLXByZTMv
ZHJpdmVycy9zY3NpL25jcjUzYzh4eC5jCVR1ZSBKdWwgMjAgMjM6MjE6NDgg
MTk5OQ0KKysrIGxpbnV4L2RyaXZlcnMvc2NzaS9uY3I1M2M4eHguYwlXZWQg
SnVsIDIxIDIzOjM2OjUxIDE5OTkNCkBAIC03Myw3ICs3Myw3IEBADQogKi8N
CiANCiAvKg0KLSoqCU1hcmNoIDcgMTk5OSwgdmVyc2lvbiAzLjINCisqKglK
dWx5IDIwIDE5OTksIHZlcnNpb24gMy4yYS0yDQogKioNCiAqKglTdXBwb3J0
ZWQgU0NTSS1JSSBmZWF0dXJlczoNCiAqKgkgICAgU3luY2hyb25vdXMgbmVn
b3RpYXRpb24NCkBAIC05MSw2ICs5MSw4IEBADQogKioJCTUzQzg2MAkJKDgg
Yml0cywgRmFzdCAyMCwgICAgIG5vIHJvbSBCSU9TKQ0KICoqCQk1M0M4NzUJ
CShXaWRlLCAgIEZhc3QgMjAsICAgICBvbiBib2FyZCByb20gQklPUykNCiAq
KgkJNTNDODk1CQkoV2lkZSwgICBGYXN0IDQwLCAgICAgb24gYm9hcmQgcm9t
IEJJT1MpDQorKioJCTUzQzg5NUEJCShXaWRlLCAgIEZhc3QgNDAsICAgICBv
biBib2FyZCByb20gQklPUykNCisqKgkJNTNDODk2CQkoV2lkZSwgICBGYXN0
IDQwLCAgICAgb24gYm9hcmQgcm9tIEJJT1MpDQogKioNCiAqKglPdGhlciBm
ZWF0dXJlczoNCiAqKgkJTWVtb3J5IG1hcHBlZCBJTyAobGludXgtMS4zLlgg
YW5kIGFib3ZlIG9ubHkpDQpAQCAtMTAxLDcgKzEwMyw3IEBADQogLyoNCiAq
KglOYW1lIGFuZCB2ZXJzaW9uIG9mIHRoZSBkcml2ZXINCiAqLw0KLSNkZWZp
bmUgU0NTSV9OQ1JfRFJJVkVSX05BTUUJIm5jcjUzYzh4eCAtIHZlcnNpb24g
My4yIg0KKyNkZWZpbmUgU0NTSV9OQ1JfRFJJVkVSX05BTUUJIm5jcjUzYzh4
eCAtIHZlcnNpb24gMy4yYS0yIg0KIA0KICNkZWZpbmUgU0NTSV9OQ1JfREVC
VUdfRkxBR1MJKDApDQogDQpAQCAtNzM3LDM0ICs3MzksNiBAQA0KICoqCVRo
aXMgc3RydWN0dXJlIGlzIGluaXRpYWxpemVkIGZyb20gbGludXggY29uZmln
IG9wdGlvbnMuDQogKioJSXQgY2FuIGJlIG92ZXJyaWRkZW4gYXQgYm9vdC11
cCBieSB0aGUgYm9vdCBjb21tYW5kIGxpbmUuDQogKi8NCi0jZGVmaW5lIFND
U0lfTkNSX01BWF9FWENMVURFUyA4DQotc3RydWN0IG5jcl9kcml2ZXJfc2V0
dXAgew0KLQl1X2NoYXIJbWFzdGVyX3Bhcml0eTsNCi0JdV9jaGFyCXNjc2lf
cGFyaXR5Ow0KLQl1X2NoYXIJZGlzY29ubmVjdGlvbjsNCi0JdV9jaGFyCXNw
ZWNpYWxfZmVhdHVyZXM7DQotCXVfY2hhcgl1bHRyYV9zY3NpOw0KLQl1X2No
YXIJZm9yY2Vfc3luY19uZWdvOw0KLQl1X2NoYXIJcmV2ZXJzZV9wcm9iZTsN
Ci0JdV9jaGFyCXBjaV9maXhfdXA7DQotCXVfY2hhcgl1c2VfbnZyYW07DQot
CXVfY2hhcgl2ZXJib3NlOw0KLQl1X2NoYXIJZGVmYXVsdF90YWdzOw0KLQl1
X3Nob3J0CWRlZmF1bHRfc3luYzsNCi0JdV9zaG9ydAlkZWJ1ZzsNCi0JdV9j
aGFyCWJ1cnN0X21heDsNCi0JdV9jaGFyCWxlZF9waW47DQotCXVfY2hhcglt
YXhfd2lkZTsNCi0JdV9jaGFyCXNldHRsZV9kZWxheTsNCi0JdV9jaGFyCWRp
ZmZfc3VwcG9ydDsNCi0JdV9jaGFyCWlycW07DQotCXVfY2hhcglidXNfY2hl
Y2s7DQotCXVfY2hhcglvcHRpbWl6ZTsNCi0JdV9jaGFyCXJlY292ZXJ5Ow0K
LQl1X2ludAlleGNsdWRlc1tTQ1NJX05DUl9NQVhfRVhDTFVERVNdOw0KLQlj
aGFyCXRhZ19jdHJsWzEwMF07DQotfTsNCi0NCiBzdGF0aWMgc3RydWN0IG5j
cl9kcml2ZXJfc2V0dXANCiAJZHJpdmVyX3NldHVwCQkJPSBTQ1NJX05DUl9E
UklWRVJfU0VUVVA7DQogDQpAQCAtNzk0LDEwOCArNzY4LDcgQEANCiAjZGVm
aW5lIGJvb3R2ZXJib3NlIChucC0+dmVyYm9zZSkNCiANCiAjaWZkZWYgU0NT
SV9OQ1JfTlZSQU1fU1VQUE9SVA0KLS8qDQotKioJU3ltYmlvcyBOdlJBTSBk
YXRhIGZvcm1hdA0KLSovDQotI2RlZmluZSBTWU1CSU9TX05WUkFNX1NJWkUg
MzY4DQotI2RlZmluZSBTWU1CSU9TX05WUkFNX0FERFJFU1MgMHgxMDANCi0N
Ci1zdHJ1Y3QgU3ltYmlvc19udnJhbSB7DQotLyogSGVhZGVyIDYgYnl0ZXMg
Ki8NCi0JdV9zaG9ydCBzdGFydF9tYXJrZXI7CS8qIDB4MDAwMCAqLw0KLQl1
X3Nob3J0IGJ5dGVfY291bnQ7CS8qIGV4Y2x1ZGluZyBoZWFkZXIvdHJhaWxl
ciAqLw0KLQl1X3Nob3J0IGNoZWNrc3VtOw0KLQ0KLS8qIENvbnRyb2xsZXIg
c2V0IHVwIDIwIGJ5dGVzICovDQotCXVfc2hvcnQJd29yZDA7CQkvKiAweDMw
MDAgKi8NCi0JdV9zaG9ydAl3b3JkMjsJCS8qIDB4MDAwMCAqLw0KLQl1X3No
b3J0CXdvcmQ0OwkJLyogMHgwMDAwICovDQotCXVfc2hvcnQJZmxhZ3M7DQot
I2RlZmluZSBTWU1CSU9TX1NDQU1fRU5BQkxFCSgxKQ0KLSNkZWZpbmUgU1lN
QklPU19QQVJJVFlfRU5BQkxFCSgxPDwxKQ0KLSNkZWZpbmUgU1lNQklPU19W
RVJCT1NFX01TR1MJKDE8PDIpDQotI2RlZmluZSBTWU1CSU9TX0NIU19NQVBQ
SU5HCSgxPDwzKQ0KLQl1X3Nob3J0CWZsYWdzMTsNCi0jZGVmaW5lIFNZTUJJ
T1NfU0NBTl9ISV9MTwkoMSkNCi0JdV9zaG9ydAl3b3JkMTA7CQkvKiAweDAw
ICovDQotCXVfc2hvcnQJZmxhZ3MzOwkJLyogMHgwMCAqLw0KLSNkZWZpbmUg
U1lNQklPU19SRU1PVkFCTEVfRkxBR1MJKDMpCQkvKiAwPW5vbmUsIDE9Ym9v
dGFibGUsIDI9YWxsICovDQotCXVfY2hhcglob3N0X2lkOw0KLQl1X2NoYXIJ
Ynl0ZTE1OwkJLyogMHgwNCAqLw0KLQl1X3Nob3J0CXdvcmQxNjsJCS8qIDB4
MDQxMCAqLw0KLQl1X3Nob3J0CXdvcmQxODsJCS8qIDB4MDAwMCAqLw0KLQ0K
LS8qIEJvb3Qgb3JkZXIgMTQgYnl0ZXMgKiA0ICovDQotCXN0cnVjdCBTeW1i
aW9zX2hvc3R7DQotCQl1X2NoYXIJd29yZDA7CQkvKiAweDAwMDQ6b2sgLyAw
eDAwMDA6bm9rICovDQotCQl1X3Nob3J0CWRldmljZV9pZDsJLyogUENJIGRl
dmljZSBpZCAqLw0KLQkJdV9zaG9ydAl2ZW5kb3JfaWQ7CS8qIFBDSSB2ZW5k
b3IgaWQgKi8NCi0JCXVfY2hhcglieXRlNjsJCS8qIDB4MDAgKi8NCi0JCXVf
Y2hhcglkZXZpY2VfZm47CS8qIFBDSSBkZXZpY2UvZnVuY3Rpb24gbnVtYmVy
IDw8IDMqLw0KLQkJdV9zaG9ydAl3b3JkODsNCi0JCXVfc2hvcnQJZmxhZ3M7
DQotI2RlZmluZQlTWU1CSU9TX0lOSVRfU0NBTl9BVF9CT09UCSgxKQ0KLQkJ
dV9zaG9ydAlpb19wb3J0OwkvKiBQQ0kgaW9fcG9ydCBhZGRyZXNzICovDQot
CX0gaG9zdFs0XTsNCi0NCi0vKiBUYXJnZXRzIDggYnl0ZXMgKiAxNiAqLw0K
LQlzdHJ1Y3QgU3ltYmlvc190YXJnZXQgew0KLQkJdV9zaG9ydAlmbGFnczsN
Ci0jZGVmaW5lIFNZTUJJT1NfRElTQ09OTkVDVF9FTkFCTEUJKDEpDQotI2Rl
ZmluZSBTWU1CSU9TX1NDQU5fQVRfQk9PVF9USU1FCSgxPDwxKQ0KLSNkZWZp
bmUgU1lNQklPU19TQ0FOX0xVTlMJCSgxPDwyKQ0KLSNkZWZpbmUgU1lNQklP
U19RVUVVRV9UQUdTX0VOQUJMRUQJKDE8PDMpDQotCQl1X2NoYXIJYnVzX3dp
ZHRoOwkvKiAweDA4LzB4MTAgKi8NCi0JCXVfY2hhcglzeW5jX29mZnNldDsN
Ci0JCXVfY2hhcglzeW5jX3BlcmlvZDsJLyogNCpwZXJpb2QgZmFjdG9yICov
DQotCQl1X2NoYXIJYnl0ZTY7CQkvKiAweDAwICovDQotCQl1X3Nob3J0CXRp
bWVvdXQ7DQotCX0gdGFyZ2V0WzE2XTsNCi0JdV9jaGFyCXNwYXJlX2Rldmlj
ZXNbMTkqOF07DQotCXVfY2hhcgl0cmFpbGVyWzZdOwkJLyogMHhmZSAweGZl
IDB4MDAgMHgwMCAweDAwIDB4MDAgKi8NCi19Ow0KLXR5cGVkZWYgc3RydWN0
IFN5bWJpb3NfbnZyYW0JU3ltYmlvc19udnJhbTsNCi10eXBlZGVmIHN0cnVj
dCBTeW1iaW9zX2hvc3QJU3ltYmlvc19ob3N0Ow0KLXR5cGVkZWYgc3RydWN0
IFN5bWJpb3NfdGFyZ2V0CVN5bWJpb3NfdGFyZ2V0Ow0KLQ0KLS8qDQotKioJ
VGVrcmFtIE52UkFNIGRhdGEgZm9ybWF0Lg0KLSovDQotI2RlZmluZSBURUtS
QU1fTlZSQU1fU0laRSA2NA0KLSNkZWZpbmUgVEVLUkFNX05WUkFNX0FERFJF
U1MgMA0KLQ0KLXN0cnVjdCBUZWtyYW1fbnZyYW0gew0KLQlzdHJ1Y3QgVGVr
cmFtX3RhcmdldCB7DQotCQl1X2NoYXIJZmxhZ3M7DQotI2RlZmluZQlURUtS
QU1fUEFSSVRZX0NIRUNLCQkoMSkNCi0jZGVmaW5lIFRFS1JBTV9TWU5DX05F
R08JCSgxPDwxKQ0KLSNkZWZpbmUgVEVLUkFNX0RJU0NPTk5FQ1RfRU5BQkxF
CSgxPDwyKQ0KLSNkZWZpbmUJVEVLUkFNX1NUQVJUX0NNRAkJKDE8PDMpDQot
I2RlZmluZSBURUtSQU1fVEFHR0VEX0NPTU1BTkRTCQkoMTw8NCkNCi0jZGVm
aW5lIFRFS1JBTV9XSURFX05FR08JCSgxPDw1KQ0KLQkJdV9jaGFyCXN5bmNf
aW5kZXg7DQotCQl1X3Nob3J0CXdvcmQyOw0KLQl9IHRhcmdldFsxNl07DQot
CXVfY2hhcglob3N0X2lkOw0KLQl1X2NoYXIJZmxhZ3M7DQotI2RlZmluZSBU
RUtSQU1fTU9SRV9USEFOXzJfRFJJVkVTCSgxKQ0KLSNkZWZpbmUgVEVLUkFN
X0RSSVZFU19TVVBfMUdCCQkoMTw8MSkNCi0jZGVmaW5lCVRFS1JBTV9SRVNF
VF9PTl9QT1dFUl9PTgkoMTw8MikNCi0jZGVmaW5lIFRFS1JBTV9BQ1RJVkVf
TkVHQVRJT04JCSgxPDwzKQ0KLSNkZWZpbmUgVEVLUkFNX0lNTUVESUFURV9T
RUVLCQkoMTw8NCkNCi0jZGVmaW5lCVRFS1JBTV9TQ0FOX0xVTlMJCSgxPDw1
KQ0KLSNkZWZpbmUJVEVLUkFNX1JFTU9WQUJMRV9GTEFHUwkJKDM8PDYpCS8q
IDA6IGRpc2FibGU7IDE6IGJvb3QgZGV2aWNlOyAyOmFsbCAqLw0KLQl1X2No
YXIJYm9vdF9kZWxheV9pbmRleDsNCi0JdV9jaGFyCW1heF90YWdzX2luZGV4
Ow0KLQl1X3Nob3J0CWZsYWdzMTsNCi0jZGVmaW5lIFRFS1JBTV9GMl9GNl9F
TkFCTEVECQkoMSkNCi0JdV9zaG9ydAlzcGFyZVsyOV07DQotfTsNCi10eXBl
ZGVmIHN0cnVjdCBUZWtyYW1fbnZyYW0JVGVrcmFtX252cmFtOw0KLXR5cGVk
ZWYgc3RydWN0IFRla3JhbV90YXJnZXQJVGVrcmFtX3RhcmdldDsNCi0NCiBz
dGF0aWMgdV9jaGFyIFRla3JhbV9zeW5jWzEyXSBfX2luaXRkYXRhID0gezI1
LDMxLDM3LDQzLDUwLDYyLDc1LDEyNSwxMiwxNSwxOCwyMX07DQotDQogI2Vu
ZGlmIC8qIFNDU0lfTkNSX05WUkFNX1NVUFBPUlQgKi8NCiANCiAvKg0KQEAg
LTkzNCw2ICs4MDcsNyBAQA0KIAluY3Jfc2xvdCAgc2xvdDsNCiAJbmNyX2No
aXAgIGNoaXA7DQogCW5jcl9udnJhbSAqbnZyYW07DQorCXVfY2hhcgkgIGhv
c3RfaWQ7DQogCWludCBhdHRhY2hfZG9uZTsNCiB9IG5jcl9kZXZpY2U7DQog
DQpAQCAtNDI0Niw5ICs0MTIwLDExIEBADQogCS8qDQogCSoqICBHZXQgU0NT
SSBhZGRyIG9mIGhvc3QgYWRhcHRlciAoc2V0IGJ5IGJpb3M/KS4NCiAJKi8N
Ci0JaWYgKCFucC0+bXlhZGRyKSBucC0+bXlhZGRyID0gSU5CKG5jX3NjaWQp
ICYgMHgwNzsNCi0JaWYgKCFucC0+bXlhZGRyKSBucC0+bXlhZGRyID0gU0NT
SV9OQ1JfTVlBRERSOw0KLQ0KKwlpZiAobnAtPm15YWRkciA9PSAyNTUpIHsN
CisJCW5wLT5teWFkZHIgPSBJTkIobmNfc2NpZCkgJiAweDA3Ow0KKwkJaWYg
KCFucC0+bXlhZGRyKQ0KKwkJCW5wLT5teWFkZHIgPSBTQ1NJX05DUl9NWUFE
RFI7DQorCX0NCiANCiAjZW5kaWYgLyogU0NTSV9OQ1JfVFJVU1RfQklPU19T
RVRUSU5HICovDQogDQpAQCAtNDUyMCw2ICs0Mzk2LDcgQEANCiAJbnAtPmNs
b2NrX2Rpdm4JPSBkZXZpY2UtPmNoaXAubnJfZGl2aXNvcjsNCiAJbnAtPm1h
eG9mZnMJPSBkZXZpY2UtPmNoaXAub2Zmc2V0X21heDsNCiAJbnAtPm1heGJ1
cnN0CT0gZGV2aWNlLT5jaGlwLmJ1cnN0X21heDsNCisJbnAtPm15YWRkcgk9
IGRldmljZS0+aG9zdF9pZDsNCiANCiAJbnAtPnNjcmlwdDAgID0gKHN0cnVj
dCBzY3JpcHQgKikNCiAJCSgoKHVfbG9uZykgJmhvc3RfZGF0YS0+c2NyaXB0
X2RhdGEpICYgQ0FDSEVfTElORV9NQVNLKTsNCkBAIC00NjA3LDYgKzQ0ODQs
NyBAQA0KIAkqKglGaWxsIExpbnV4IGhvc3QgaW5zdGFuY2Ugc3RydWN0dXJl
DQogCSovDQogCWluc3RhbmNlLT5tYXhfY2hhbm5lbAk9IDA7DQorCWluc3Rh
bmNlLT50aGlzX2lkICAgICAgID0gbnAtPm15YWRkcjsNCiAJaW5zdGFuY2Ut
Pm1heF9pZAk9IG5wLT5tYXh3aWRlID8gMTYgOiA4Ow0KIAlpbnN0YW5jZS0+
bWF4X2x1bgk9IFNDU0lfTkNSX01BWF9MVU47DQogI2lmbmRlZiBOQ1JfSU9N
QVBQRUQNCkBAIC05MzI0LDYgKzkyMDIsOCBAQA0KIAkJCWlmICh4aSA8IFND
U0lfTkNSX01BWF9FWENMVURFUykNCiAJCQkJZHJpdmVyX3NldHVwLmV4Y2x1
ZGVzW3hpKytdID0gdmFsOw0KIAkJfQ0KKwkJZWxzZSBpZgkoIXN0cm5jbXAo
Y3VyLCAiaG9zdGlkOiIsIDcpKQ0KKwkJCWRyaXZlcl9zZXR1cC5ob3N0X2lk
CT0gdmFsOw0KIAkJZWxzZQ0KIAkJCXByaW50aygibmNyNTNjOHh4X3NldHVw
OiB1bmV4cGVjdGVkIGJvb3Qgb3B0aW9uICclLipzJyBpZ25vcmVkXG4iLCAo
aW50KShwYy1jdXIrMSksIGN1cik7DQogDQpAQCAtMTA5NzQsOCArMTA4NTQs
OCBAQA0KIAludnJhbV9zdG9wKG5wLCAmZ3ByZWcpOw0KIAkNCiAjaWZkZWYg
U0NTSV9OQ1JfREVCVUdfTlZSQU0NCi1wcmludGsoIm5jcjUzYzh4eDogTnZS
QU0gbWFya2VyPSV4IHRyYWlsZXI9JXggJXggJXggJXggJXggJXggYnl0ZV9j
b3VudD0lZC8lZCBjaGVja3N1bT0leC8leFxuIiwNCi0JbnZyYW0tPnN0YXJ0
X21hcmtlciwNCitwcmludGsoIm5jcjUzYzh4eDogTnZSQU0gdHlwZT0leCB0
cmFpbGVyPSV4ICV4ICV4ICV4ICV4ICV4IGJ5dGVfY291bnQ9JWQvJWQgY2hl
Y2tzdW09JXgvJXhcbiIsDQorCW52cmFtLT50eXBlLA0KIAludnJhbS0+dHJh
aWxlclswXSwgbnZyYW0tPnRyYWlsZXJbMV0sIG52cmFtLT50cmFpbGVyWzJd
LA0KIAludnJhbS0+dHJhaWxlclszXSwgbnZyYW0tPnRyYWlsZXJbNF0sIG52
cmFtLT50cmFpbGVyWzVdLA0KIAludnJhbS0+Ynl0ZV9jb3VudCwgc2l6ZW9m
KCpudnJhbSkgLSAxMiwNCkBAIC0xMDk4Myw3ICsxMDg2Myw3IEBADQogI2Vu
ZGlmDQogDQogCS8qIGNoZWNrIHZhbGlkIE5WUkFNIHNpZ25hdHVyZSwgdmVy
aWZ5IGJ5dGUgY291bnQgYW5kIGNoZWNrc3VtICovDQotCWlmIChudnJhbS0+
c3RhcnRfbWFya2VyID09IDAgJiYNCisJaWYgKG52cmFtLT50eXBlID09IDAg
JiYNCiAJICAgICFtZW1jbXAobnZyYW0tPnRyYWlsZXIsIFN5bWJpb3NfdHJh
aWxlciwgNikgJiYNCiAJICAgIG52cmFtLT5ieXRlX2NvdW50ID09IHNpemVv
ZigqbnZyYW0pIC0gMTIgJiYNCiAJICAgIGNzdW0gPT0gbnZyYW0tPmNoZWNr
c3VtKQ0K
--8323328-312338826-932841845=:2209--
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.rutgers.edu