Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Feb 2011 17:23:21 +0100 (CET)
From:      Yamagi Burmeister <lists@yamagi.org>
To:        freebsd-multimedia@freebsd.org
Subject:   [patch] webcamd support for TerraTec Cinergy TStick RC MK2
Message-ID:  <alpine.BSF.2.00.1102051702470.82659@saya.home.yamagi.org>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--2787499574-1545880458-1296923009=:82659
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

Hi,
I recently bought a "TerraTec Cinergy TStick RC" in revision "MK2". This
is currently unsupported by v4l and by webcamd but with somes hours
hacking I was able to get i work. This stick is another af9015 device,
the tuner is a rather uncommon tda18218. This work is based upon the
patchset found here:

http://media.cdn.ubuntu-de.org/forum/attachments/2489836/cinergy-stick-rc.patch.gz

Attached are two patches. In case they're stripped by mailman they can be
found on my webspace: http://deponie.yamagi.org/freebsd/dvbt/ 
Both patches are against webcamd r1724.

cinergy_rc_mk2.diff 
This one adds support for the tda18218 tuner to v4l and the
device id of the stick to af9015.c. This patch applies against the
patched(!) v4l-dvb-abd3aac6644e/ directory.

webcamd_r1724.diff 
This is the Makefile glue for the tda18218 tuner for the
webcamd Makefile. It just adds the new file tda18218.c and the
DCONFIG_MEDIA_TUNER_TDA18218 preprocessor makro.

This device needs a firmware file named "dvb-usb-af9015.fw". For license
reasons I won't upload it to my webspace but google is your friend...

----

Some information:

dmesg:
   ugen2.2: <NEWMI> at usbus2
   ukbd1: <NEWMI USB2.0 DVB-T TV Stick, class 0/0, rev 2.00/2.00, addr 2> on usbus2
   kbd3 at ukbd1

usbconfig -u 2 -a 2 dump_device_desc:
   bLength = 0x0012
   bDescriptorType = 0x0001
   bcdUSB = 0x0200
   bDeviceClass = 0x0000
   bDeviceSubClass = 0x0000
   bDeviceProtocol = 0x0000
   bMaxPacketSize0 = 0x0040
   idVendor = 0x0ccd
   idProduct = 0x0097
   bcdDevice = 0x0200
   iManufacturer = 0x0001  <NEWMI>
   iProduct = 0x0002  <USB2.0 DVB-T TV Stick>
   iSerialNumber = 0x0003  <010101010600001>
   bNumConfigurations = 0x0001

webcamd:
   Attached ugen2.2[0] to cuse unit 0
   Creating /dev/dvb/adapter0/demux0
   Creating /dev/dvb/adapter0/dvr0
   Creating /dev/dvb/adapter0/frontend0

----

Status:
- Scan for dvb-t station with w_scan is working. All available stations
   are found.
- Playback with mplayer works
- Station switching with mplayer works

----

Little tutorial:

  % svn --username anonsvn --password anonsvn checkout \
    svn://svn.turbocat.net/i4b/trunk/usbcam/ulinux
  % cd ulinux
  % make fetch
  % cd patches
  % ./do_patch.sh
  % cd ..
  % patch < webcamd_r1724.diff
  % patch < cinergy_rc_mk2.diff
  % make -j4

Ciao,
Yamagi

-- 
Homepage:     www.yamagi.org
Jabber:       yamagi@yamagi.org
GnuPG/GPG:    0xEFBCCBCB
--2787499574-1545880458-1296923009=:82659
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=webcamd_r1724.diff
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.BSF.2.00.1102051723210.82659@saya.home.yamagi.org>
Content-Description: 
Content-Disposition: attachment; filename=webcamd_r1724.diff

SW5kZXg6IE1ha2VmaWxlDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
TWFrZWZpbGUJKFJldmlzaW9uIDE3MjQpDQorKysgTWFrZWZpbGUJKEFyYmVp
dHNrb3BpZSkNCkBAIC03MTcsNiArNzE3LDcgQEANCiBDRkxBR1MrPSAtRENP
TkZJR19NRURJQV9UVU5FUl9RVDEwMTANCiBDRkxBR1MrPSAtRENPTkZJR19N
RURJQV9UVU5FUl9TSU1QTEUNCiBDRkxBR1MrPSAtRENPTkZJR19NRURJQV9U
VU5FUl9UREExODI3MQ0KK0NGTEFHUys9IC1EQ09ORklHX01FRElBX1RVTkVS
X1REQTE4MjE4DQogQ0ZMQUdTKz0gLURDT05GSUdfTUVESUFfVFVORVJfVERB
ODI3WA0KIENGTEFHUys9IC1EQ09ORklHX01FRElBX1RVTkVSX1REQTgyOTAN
CiBDRkxBR1MrPSAtRENPTkZJR19NRURJQV9UVU5FUl9UREE5ODg3DQpAQCAt
Nzc1LDYgKzc3Niw3IEBADQogU1JDUys9IHRkYTgyNnguYw0KIFNSQ1MrPSB0
ZGE4Mjd4LmMNCiBTUkNTKz0gdGRhODI5MC5jDQorU1JDUys9IHRkYTE4MjE4
LmMNCiBTUkNTKz0gdHVuZXItc2ltcGxlLmMNCiBTUkNTKz0gdHVuZXItdHlw
ZXMuYw0KIFNSQ1MrPSB0dW5lci14YzIwMjguYw0K

--2787499574-1545880458-1296923009=:82659
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=cinergy_rc_mk2.diff
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.BSF.2.00.1102051723211.82659@saya.home.yamagi.org>
Content-Description: 
Content-Disposition: attachment; filename=cinergy_rc_mk2.diff

LS0tIHY0bC1kdmItYWJkM2FhYzY2NDRlL2xpbnV4L2RyaXZlcnMvbWVkaWEv
Y29tbW9uL3R1bmVycy9LY29uZmlnLm9yaWcJMjAxMC0wNy0wMiAwNTozODo1
NC4wMDAwMDAwMDAgKzAyMDANCisrKyB2NGwtZHZiLWFiZDNhYWM2NjQ0ZS9s
aW51eC9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvS2NvbmZpZwkyMDEx
LTAyLTA1IDE2OjMxOjQ1LjM5MDE0Njc5NiArMDEwMA0KQEAgLTE3OSw0ICsx
NzksMTEgQEANCiAJaGVscA0KIAkgIEEgZHJpdmVyIGZvciB0aGUgc2lsaWNv
biB0dW5lciBNQVgyMTY1IGZyb20gTWF4aW0uDQogDQorY29uZmlnIE1FRElB
X1RVTkVSX1REQTE4MjE4DQorICAgICAgICB0cmlzdGF0ZSAiTlhQIFREQTE4
MjE4IHNpbGljb24gdHVuZXIiDQorICAgICAgICBkZXBlbmRzIG9uIFZJREVP
X01FRElBICYmIEkyQw0KKyAgICAgICAgZGVmYXVsdCBtIGlmIE1FRElBX1RV
TkVSX0NVU1RPTUlTRQ0KKyAgICAgICAgaGVscA0KKyAgICAgICAgICBBIGRy
aXZlciBmb3IgdGhlIHNpbGljb24gdHVuZXIgVERBMTgyMTggZnJvbSBOWFAu
DQorDQogZW5kaWYgIyBNRURJQV9UVU5FUl9DVVNUT01JU0UNCi0tLSB2NGwt
ZHZiLWFiZDNhYWM2NjQ0ZS9saW51eC9kcml2ZXJzL21lZGlhL2NvbW1vbi90
dW5lcnMvdGRhMTgyMTguYy5vcmlnCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw
MDAwMDAwICswMTAwDQorKysgdjRsLWR2Yi1hYmQzYWFjNjY0NGUvbGludXgv
ZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjE4LmMJMjAxMS0w
Mi0wNSAxNjozMTo0NS40MDExNzU5MDMgKzAxMDANCkBAIC0wLDAgKzEsNDcx
IEBADQorLyoNCisgKiAgRHJpdmVyIGZvciBOWFAgVERBMTgyMTggc2lsaWNv
biB0dW5lcg0KKyAqDQorICogIENvcHlyaWdodCAoQykgMjAxMCBMYXVyaXMg
RGluZyA8bGRpbmdAZ214LmRlPg0KKyAqICBUaGlzIHByb2dyYW0gaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v
ZGlmeQ0KKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyAqICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvcg0KKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLg0KKyAqDQorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0K
KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
DQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuDQorICoNCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCisgKiAg
YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUNCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1h
c3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuDQorICovDQorI2lu
Y2x1ZGUgInRkYTE4MjE4LmgiDQorI2luY2x1ZGUgImNvbXBhdC5oIg0KKyNp
bmNsdWRlICJ0ZGExODIxOF9wcml2LmgiDQorDQorc3RhdGljIGludCB0ZGEx
ODIxOF93cml0ZV9yZWcoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsIHU4IHJl
ZywgdTggdmFsKQ0KK3sNCisJc3RydWN0IHRkYTE4MjE4X3ByaXYgKnByaXYg
PSBmZS0+dHVuZXJfcHJpdjsNCisJdTggYnVmWzJdID0geyByZWcsIHZhbCB9
Ow0KKwlzdHJ1Y3QgaTJjX21zZyBtc2cgPSB7IC5hZGRyID0gcHJpdi0+Y2Zn
LT5pMmNfYWRkcmVzcywgLmZsYWdzID0gMCwNCisJCQkgICAgICAgLmJ1ZiA9
IGJ1ZiwgLmxlbiA9IDIgfTsNCisJaW50IHJldDsNCisNCisJaWYgKGZlLT5v
cHMuaTJjX2dhdGVfY3RybCkNCisJCWZlLT5vcHMuaTJjX2dhdGVfY3RybChm
ZSwgMSk7DQorCS8qIHdyaXRlIHJlZ2lzdGVyICovDQorCXJldCA9IGkyY190
cmFuc2Zlcihwcml2LT5pMmMsICZtc2csIDEpOw0KKwlpZiAoZmUtPm9wcy5p
MmNfZ2F0ZV9jdHJsKQ0KKwkJZmUtPm9wcy5pMmNfZ2F0ZV9jdHJsKGZlLCAw
KTsNCisNCisJaWYgKHJldCAhPSAxKQ0KKwkJcHJpbnRrKEtFUk5fV0FSTklO
RyAiSTJDIHdyaXRlIGZhaWxlZCByZXQ6ICVkIHJlZzogJTAyeFxuIiwgcmV0
LCByZWcpOw0KKw0KKwlyZXR1cm4gKHJldCA9PSAxID8gMCA6IHJldCk7DQor
fQ0KKw0KK3N0YXRpYyBpbnQgdGRhMTgyMThfd3JpdGVfcmVncyhzdHJ1Y3Qg
ZHZiX2Zyb250ZW5kICpmZSwgdTggcmVnLA0KKwl1OCAqdmFsLCB1OCBsZW4p
DQorew0KKwlzdHJ1Y3QgdGRhMTgyMThfcHJpdiAqcHJpdiA9IGZlLT50dW5l
cl9wcml2Ow0KKwl1OCBidWZbMStsZW5dOw0KKwlzdHJ1Y3QgaTJjX21zZyBt
c2cgPSB7DQorCQkuYWRkciA9IHByaXYtPmNmZy0+aTJjX2FkZHJlc3MsDQor
CQkuZmxhZ3MgPSAwLA0KKwkJLmxlbiA9IHNpemVvZihidWYpLA0KKwkJLmJ1
ZiA9IGJ1ZiB9Ow0KKwkJDQorCWludCByZXQ7DQorDQorCWJ1ZlswXSA9IHJl
ZzsNCisJbWVtY3B5KCZidWZbMV0sIHZhbCwgbGVuKTsNCisJDQorCWlmIChm
ZS0+b3BzLmkyY19nYXRlX2N0cmwpDQorCQlmZS0+b3BzLmkyY19nYXRlX2N0
cmwoZmUsIDEpOw0KKwlyZXQgPSBpMmNfdHJhbnNmZXIocHJpdi0+aTJjLCAm
bXNnLCAxKTsNCisJaWYgKGZlLT5vcHMuaTJjX2dhdGVfY3RybCkNCisJCWZl
LT5vcHMuaTJjX2dhdGVfY3RybChmZSwgMSk7DQorDQorCWlmIChyZXQgIT0g
MSkNCisJCXByaW50ayhLRVJOX1dBUk5JTkcgIkkyQyB3cml0ZSBmYWlsZWQg
cmV0OiAlZCByZWc6ICUwMnggbGVuOiAlZFxuIiwgcmV0LCByZWcsIGxlbik7
DQorCQ0KKwlyZXR1cm4gKHJldCA9PSAxID8gMCA6IHJldCk7DQorfQ0KKw0K
Ky8qc3RhdGljIGludCB0ZGExODIxOF9yZWFkX3JlZyhzdHJ1Y3QgdGRhMTgy
MThfcHJpdiAqcHJpdiwgdTE2IHJlZywgdTggKnZhbCkNCit7DQorCXU4IG9i
dWZbM10gPSB7IHJlZyA+PiA4LCByZWcgJiAweGZmLCAwIH07DQorCXU4IGli
dWZbMV07DQorCXN0cnVjdCBpMmNfbXNnIG1zZ1syXSA9IHsNCisJCXsNCisJ
CQkuYWRkciA9IDB4M2EsDQorCQkJLmZsYWdzID0gMCwNCisJCQkubGVuID0g
c2l6ZW9mKG9idWYpLA0KKwkJCS5idWYgPSBvYnVmDQorCQl9LCB7DQorCQkJ
LmFkZHIgPSAweDNhLA0KKwkJCS5mbGFncyA9IEkyQ19NX1JELA0KKwkJCS5s
ZW4gPSBzaXplb2YoaWJ1ZiksDQorCQkJLmJ1ZiA9IGlidWYNCisJCX0NCisJ
fTsNCisNCisJaWYgKGkyY190cmFuc2Zlcihwcml2LT5pMmMsIG1zZywgMikg
IT0gMikgew0KKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiSTJDIHJlYWQgZmFp
bGVkIHJlZzolMDR4XG4iLCByZWcpOw0KKwkJcmV0dXJuIC1FUkVNT1RFSU87
DQorCX0NCisJKnZhbCA9IGlidWZbMF07DQorCXJldHVybiAwOw0KK30qLw0K
Kw0KK3N0YXRpYyBpbnQgdGRhMTgyMThfcmVhZF9yZWdzKHN0cnVjdCBkdmJf
ZnJvbnRlbmQgKmZlKQ0KK3sNCisJc3RydWN0IHRkYTE4MjE4X3ByaXYgKnBy
aXYgPSBmZS0+dHVuZXJfcHJpdjsNCisJdTggKnJlZ3MgPSBwcml2LT50ZGEx
ODIxOF9yZWdzOw0KKwl1OCBidWYgPSAweDAwOw0KKwlpbnQgcmV0Ow0KKwkv
L2ludCBpOw0KKwlzdHJ1Y3QgaTJjX21zZyBtc2dbXSA9IHsNCisJCXsgLmFk
ZHIgPSAweGMwLCAuZmxhZ3MgPSAwLA0KKwkJICAuYnVmID0gJmJ1ZiwgLmxl
biA9IDEgfSwNCisJCXsgLmFkZHIgPSAweGMwLCAuZmxhZ3MgPSBJMkNfTV9S
RCwNCisJCSAgLmJ1ZiA9IHJlZ3MsIC5sZW4gPSA1OSB9DQorCX07DQorDQor
CWlmIChmZS0+b3BzLmkyY19nYXRlX2N0cmwpDQorCQlmZS0+b3BzLmkyY19n
YXRlX2N0cmwoZmUsIDEpOw0KKw0KKwkvKiByZWFkIGFsbCByZWdpc3RlcnMg
Ki8NCisJcmV0ID0gaTJjX3RyYW5zZmVyKHByaXYtPmkyYywgbXNnLCAyKTsN
CisNCisJaWYgKGZlLT5vcHMuaTJjX2dhdGVfY3RybCkNCisJCWZlLT5vcHMu
aTJjX2dhdGVfY3RybChmZSwgMCk7DQorDQorCWlmIChyZXQgIT0gMikNCisJ
CXByaW50ayhLRVJOX1dBUk5JTkcgIkkyQyByZWFkIGZhaWxlZCByZXQ6ICVk
XG4iLCByZXQpOw0KKwkNCisJLypmb3IoaSA9IDA7IGkgPD0gNTg7IGkrKykN
CisJCXByaW50aygiUmVnaXN0ZXIgJWQ6ICUwMnhcbiIsIGksIDB4ZmYgJiBy
ZWdzW2ldKTsqLw0KKw0KKwlyZXR1cm4gKHJldCA9PSAyID8gMCA6IHJldCk7
DQorfQ0KKw0KK3N0YXRpYyBpbnQgdGRhMTgyMThfc2V0X3BhcmFtcyhzdHJ1
Y3QgZHZiX2Zyb250ZW5kICpmZSwgc3RydWN0IGR2Yl9mcm9udGVuZF9wYXJh
bWV0ZXJzICpwYXJhbXMpDQorew0KKwlzdHJ1Y3QgdGRhMTgyMThfcHJpdiAq
cHJpdiA9IGZlLT50dW5lcl9wcml2Ow0KKwl1OCAqcmVncyA9IHByaXYtPnRk
YTE4MjE4X3JlZ3M7DQorCXU4IEZjLCBCUDsNCisJaW50IGksIHJldDsNCisJ
dTE2IGlmMSwgYnc7DQorCXUzMiBmcmVxOw0KKwkNCisJdTggcGFyYW1zYnVm
WzRdWzZdID0gew0KKwkJeyAweDAzLCAweDFhIH0sDQorCQl7IDB4MDQsIDB4
MGEgfSwNCisJCXsgMHgwMSwgMHgwZiB9LA0KKwkJeyAweDAxLCAweDBmIH0s
DQorCX07DQorCQ0KKwl1OCBhZ2NidWZbXVsyXSA9IHsNCisJCXsgMHgxYSwg
MHgwZSB9LA0KKwkJeyAweDIwLCAweDYwIH0sDQorCQl7IDB4MjMsIDB4MDIg
fSwNCisJCXsgMHgyMCwgMHhhMCB9LA0KKwkJeyAweDIzLCAweDA5IH0sDQor
CQl7IDB4MjAsIDB4ZTAgfSwNCisJCXsgMHgyMywgMHgwYyB9LA0KKwkJeyAw
eDIwLCAweDQwIH0sDQorCQl7IDB4MjMsIDB4MDEgfSwNCisJCXsgMHgyMCwg
MHg4MCB9LA0KKwkJeyAweDIzLCAweDA4IH0sDQorCQl7IDB4MjAsIDB4YzAg
fSwNCisJCXsgMHgyMywgMHgwYiB9LA0KKwkJeyAweDI0LCAweDFjIH0sDQor
CQl7IDB4MjQsIDB4MGMgfSwNCisJfTsNCisJDQorCXN3aXRjaCAocGFyYW1z
LT51Lm9mZG0uYmFuZHdpZHRoKSB7DQorCWNhc2UgQkFORFdJRFRIXzZfTUha
Og0KKwkJYncgPSA2MDAwOw0KKwkJRmMgPSAwOw0KKwkJYnJlYWs7DQorCWNh
c2UgQkFORFdJRFRIXzdfTUhaOg0KKwkJYncgPSA3MDAwOw0KKwkJRmMgPSAx
Ow0KKwkJYnJlYWs7DQorCWNhc2UgQkFORFdJRFRIXzhfTUhaOg0KKwkJYncg
PSA4MDAwOw0KKwkJRmMgPSAyOw0KKwkJYnJlYWs7DQorCWRlZmF1bHQ6DQor
CQlwcmludGsoS0VSTl9XQVJOSU5HICJJbnZhbGlkIGJhbmR3aWR0aCIpOw0K
KwkJcmV0dXJuIC1FSU5WQUw7DQorCX0NCisJDQorCWlmMSA9IGJ3IC8gMjsN
CisJDQorCWlmKChwYXJhbXMtPmZyZXF1ZW5jeSA+PSAxNzQwMDAwMDApICYm
IChwYXJhbXMtPmZyZXF1ZW5jeSA8IDE4ODAwMDAwMCkpIHsNCisJCUJQID0g
MzsNCisJfQ0KKwllbHNlIGlmKChwYXJhbXMtPmZyZXF1ZW5jeSA+PSAxODgw
MDAwMDApICYmIChwYXJhbXMtPmZyZXF1ZW5jeSA8IDI1MzAwMDAwMCkpIHsN
CisJCUJQID0gNDsNCisJfQ0KKwllbHNlIGlmKChwYXJhbXMtPmZyZXF1ZW5j
eSA+PSAyNTMwMDAwMDApICYmIChwYXJhbXMtPmZyZXF1ZW5jeSA8IDM0MzAw
MDAwMCkpIHsNCisJCUJQID0gNTsNCisJfQ0KKwllbHNlIGlmKChwYXJhbXMt
PmZyZXF1ZW5jeSA+PSAzNDMwMDAwMDApICYmIChwYXJhbXMtPmZyZXF1ZW5j
eSA8PSA4NzAwMDAwMDApKSB7DQorCQlCUCA9IDY7DQorCX0NCisJZWxzZSB7
DQorCQlwcmludGsoS0VSTl9XQVJOSU5HICJGcmVxdWVuY3kgb3V0IG9mIHJh
bmdlIik7DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKwkNCisJZnJlcSA9
IHBhcmFtcy0+ZnJlcXVlbmN5Ow0KKwlmcmVxIC89IDEwMDA7DQorCWZyZXEg
Kz1pZjE7DQorCWZyZXEgKj0gMTY7DQorCQ0KKwl0ZGExODIxOF9yZWFkX3Jl
Z3MoZmUpOw0KKwkNCisJcGFyYW1zYnVmWzBdWzJdID0gcmVnc1sweDFhXSB8
IEJQOw0KKwlwYXJhbXNidWZbMF1bM10gPSByZWdzWzB4MWJdICYgfjM7DQor
CXBhcmFtc2J1ZlswXVszXSA9IHJlZ3NbMHgxYl0gfCBGYzsNCisJcGFyYW1z
YnVmWzBdWzRdID0gcmVnc1sweDFjXSB8IDB4MGE7DQorCQ0KKwlwYXJhbXNi
dWZbMV1bMl0gPSBmcmVxID4+IDE2Ow0KKwlwYXJhbXNidWZbMV1bM10gPSBm
cmVxID4+IDg7DQorCXBhcmFtc2J1ZlsxXVs0XSA9IChmcmVxICYgMHhmMCkg
fCAocmVnc1sweDBjXSAmIDB4MGYpOw0KKwlwYXJhbXNidWZbMV1bNV0gPSAw
eGZmOw0KKwlwYXJhbXNidWZbMl1bMl0gPSByZWdzWzB4MGZdIHwgMHg0MDsN
CisJcGFyYW1zYnVmWzNdWzJdID0gMHgwOTsNCisJDQorCXRkYTE4MjE4X3dy
aXRlX3JlZyhmZSwgMHgwNCwgMHgwMyk7DQorDQorCWZvcihpID0gMDsgaSA8
IEFSUkFZX1NJWkUocGFyYW1zYnVmKTsgaSsrKSB7DQorDQorCQkvKiB3cml0
ZSByZWdpc3RlcnMgKi8NCisJCXJldCA9IHRkYTE4MjE4X3dyaXRlX3JlZ3Mo
ZmUsIHBhcmFtc2J1ZltpXVsxXSwgJnBhcmFtc2J1ZltpXVsyXSwgcGFyYW1z
YnVmW2ldWzBdKTsNCisNCisJCWlmIChyZXQpDQorCQkJZ290byBlcnJvcjsN
CisJfQ0KKwlmb3IoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFnY2J1Zik7IGkr
Kykgew0KKwkJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCBhZ2NidWZbaV1bMF0s
IGFnY2J1ZltpXVsxXSk7DQorCX0NCisJDQorCS8vdGRhMTgyMThfd3JpdGVf
cmVnKGZlLCAweDAzLCAweDAwKTsNCisJLy90ZGExODIxOF93cml0ZV9yZWco
ZmUsIDB4MDQsIDB4MDApOw0KKwkvL3RkYTE4MjE4X3dyaXRlX3JlZyhmZSwg
MHgyMCwgMHhjNyk7DQorCQ0KKwltc2xlZXAoNjApOw0KKwlpID0gMDsNCisJ
d2hpbGUoaSA8IDEwKSB7DQorCQl0ZGExODIxOF9yZWFkX3JlZ3MoZmUpOw0K
KwkJaWYoKHJlZ3NbMHgwMV0gJiAweDYwKSA9PSAweDYwKQ0KKwkJCXByaW50
ayhLRVJOX0lORk8gIldlJ3ZlIGdvdCBhIGxvY2shIik7IGJyZWFrOw0KKwkJ
bXNsZWVwKDIwKTsNCisJCWkrKzsNCisJfQ0KKwkNCisJcHJpdi0+YmFuZHdp
ZHRoID0gcGFyYW1zLT51Lm9mZG0uYmFuZHdpZHRoOw0KKwlwcml2LT5mcmVx
dWVuY3kgPSBwYXJhbXMtPmZyZXF1ZW5jeTsNCisJcmV0dXJuIDA7DQorZXJy
b3I6DQorCXJldHVybiByZXQ7DQorfQ0KKw0KK3N0YXRpYyBpbnQgdGRhMTgy
MThfZ2V0X2ZyZXF1ZW5jeShzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwgdTMy
ICpmcmVxdWVuY3kpDQorew0KKwlzdHJ1Y3QgdGRhMTgyMThfcHJpdiAqcHJp
diA9IGZlLT50dW5lcl9wcml2Ow0KKwkqZnJlcXVlbmN5ID0gcHJpdi0+ZnJl
cXVlbmN5Ow0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCB0ZGEx
ODIxOF9nZXRfYmFuZHdpZHRoKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLCB1
MzIgKmJhbmR3aWR0aCkNCit7DQorCXN0cnVjdCB0ZGExODIxOF9wcml2ICpw
cml2ID0gZmUtPnR1bmVyX3ByaXY7DQorCSpiYW5kd2lkdGggPSBwcml2LT5i
YW5kd2lkdGg7DQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50IHRk
YTE4MjE4X2luaXQoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUpDQorew0KKwkv
L3N0cnVjdCB0ZGExODIxOF9wcml2ICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7
DQorCS8vdTggKnJlZ3MgPSBwcml2LT50ZGExODIxOF9yZWdzOw0KKwlpbnQg
aTsNCisJaW50IHJldDsNCisJDQorCXU4IGluaXRidWZbXVsxOF0gPSB7DQor
CQl7IDB4MTAsIDB4MDUsIDB4MDAsIDB4MDAsIDB4ZDAsIDB4MDAsIDB4NDAs
IDB4MDAsIDB4MDAsIDB4MDcsIDB4ZmYsIDB4ODQsIDB4MDksIDB4MDAsIDB4
MTMsIDB4MDAsIDB4MDAsIDB4MDEgfSwNCisJCXsgMHgwYiwgMHgxNSwgMHg4
NCwgMHgwOSwgMHhmMCwgMHgxOSwgMHgwYSwgMHgwZSwgMHgyOSwgMHg5OCwg
MHgwMCwgMHgwMCwgMHg1OCB9LA0KKwkJeyAweDEwLCAweDI0LCAweDBjLCAw
eDQ4LCAweDg1LCAweGM5LCAweGE3LCAweDAwLCAweDAwLCAweDAwLCAweDMw
LCAweDgxLCAweDgwLCAweDAwLCAweDM5LCAweDAwLCAweDhhLCAweDAwIH0s
DQorCQl7IDB4MDcsIDB4MzQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4ZjYsIDB4ZjYgfSwNCisJfTsNCisJDQorCXU4IGluaXRidWYyWzRd
Ow0KKw0KKwlmb3IoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGluaXRidWYpOyBp
KyspIHsNCisJCQ0KKwkJLyogd3JpdGUgcmVnaXN0ZXJzICovDQorCQlyZXQg
PSB0ZGExODIxOF93cml0ZV9yZWdzKGZlLCBpbml0YnVmW2ldWzFdLCAmaW5p
dGJ1ZltpXVsyXSwgaW5pdGJ1ZltpXVswXSk7DQorDQorCQlpZiAocmV0ICE9
IDApIHsNCisJCQlwcmludGsoS0VSTl9FUlIgImluaXQ6IEVSUk9SOiBpMmNf
dHJhbnNmZXIgcmV0dXJuZWQ6ICVkXG4iLCByZXQpOw0KKwkJCXJldHVybiAt
RVJFTU9URUlPOw0KKwkJfQ0KKwkJaWYoaSA9PSAxKSB7DQorCQkJdGRhMTgy
MThfd3JpdGVfcmVnKGZlLCAweDIyLCAweDhjKTsNCisJCX0NCisJfQ0KKwkN
CisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDA1LCAweDgwKTsNCisJdGRh
MTgyMThfd3JpdGVfcmVnKGZlLCAweDA1LCAweDAwKTsNCisJdGRhMTgyMThf
d3JpdGVfcmVnKGZlLCAweDA1LCAweDIwKTsNCisJdGRhMTgyMThfd3JpdGVf
cmVnKGZlLCAweDA1LCAweDAwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZl
LCAweDI3LCAweGRlKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDE3
LCAweGY4KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDE4LCAweDBm
KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDFjLCAweDhiKTsNCisJ
dGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDI5LCAweDAyKTsNCisJdGRhMTgy
MThfd3JpdGVfcmVnKGZlLCAweDE5LCAweDFhKTsNCisJdGRhMTgyMThfd3Jp
dGVfcmVnKGZlLCAweDExLCAweDEzKTsNCisNCisJaW5pdGJ1ZjJbMF0gPSAw
eDBhOw0KKwlpbml0YnVmMlsxXSA9IDB4NWM7DQorCWluaXRidWYyWzJdID0g
MHhjNjsNCisJaW5pdGJ1ZjJbM10gPSAweDA3Ow0KKwl0ZGExODIxOF93cml0
ZV9yZWdzKGZlLCBpbml0YnVmMlswXSwgJmluaXRidWYyWzFdLCAzKTsNCisJ
dGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDBmLCAweDQ5KTsNCisJdGRhMTgy
MThfd3JpdGVfcmVnKGZlLCAweDA1LCAweDQwKTsNCisJdGRhMTgyMThfd3Jp
dGVfcmVnKGZlLCAweDA1LCAweDAwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVn
KGZlLCAweDA1LCAweDIwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAw
eDExLCAweGVkKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDBmLCAw
eDQ5KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDE5LCAweDJhKTsN
CisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDA1LCAweDU4KTsNCisJdGRh
MTgyMThfd3JpdGVfcmVnKGZlLCAweDA1LCAweDE4KTsNCisJdGRhMTgyMThf
d3JpdGVfcmVnKGZlLCAweDA1LCAweDM4KTsNCisJdGRhMTgyMThfd3JpdGVf
cmVnKGZlLCAweDI5LCAweDAzKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZl
LCAweDE5LCAweDFhKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDEx
LCAweDEzKTsNCisJaW5pdGJ1ZjJbMF0gPSAweDBhOw0KKwlpbml0YnVmMlsx
XSA9IDB4YmU7DQorCWluaXRidWYyWzJdID0gMHg2ZTsNCisJaW5pdGJ1ZjJb
M10gPSAweDA3Ow0KKwl0ZGExODIxOF93cml0ZV9yZWdzKGZlLCBpbml0YnVm
MlswXSwgJmluaXRidWYyWzFdLCAzKTsNCisJdGRhMTgyMThfd3JpdGVfcmVn
KGZlLCAweDBmLCAweDQ5KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAw
eDA1LCAweDU4KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDA1LCAw
eDE4KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDA1LCAweDM4KTsN
CisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDExLCAweGVkKTsNCisJdGRh
MTgyMThfd3JpdGVfcmVnKGZlLCAweDBmLCAweDQ5KTsNCisJdGRhMTgyMThf
d3JpdGVfcmVnKGZlLCAweDE5LCAweDJhKTsNCisJdGRhMTgyMThfd3JpdGVf
cmVnKGZlLCAweDA1LCAweDU4KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZl
LCAweDA1LCAweDE4KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDA1
LCAweDM4KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDE5LCAweDBh
KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDI3LCAweGM5KTsNCisJ
dGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDExLCAweDEzKTsNCisJaW5pdGJ1
ZjJbMF0gPSAweDE3Ow0KKwlpbml0YnVmMlsxXSA9IDB4ZjA7DQorCWluaXRi
dWYyWzJdID0gMHgxOTsNCisJaW5pdGJ1ZjJbM10gPSAweDAwOw0KKwl0ZGEx
ODIxOF93cml0ZV9yZWdzKGZlLCBpbml0YnVmMlswXSwgJmluaXRidWYyWzFd
LCAyKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDFjLCAweDk4KTsN
CisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDI5LCAweDAzKTsNCisJdGRh
MTgyMThfd3JpdGVfcmVnKGZlLCAweDJhLCAweDAwKTsNCisJdGRhMTgyMThf
d3JpdGVfcmVnKGZlLCAweDJhLCAweDAxKTsNCisJdGRhMTgyMThfd3JpdGVf
cmVnKGZlLCAweDJhLCAweDAyKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZl
LCAweDJhLCAweDAzKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDFj
LCAweDk4KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDE4LCAweDE5
KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIyLCAweDljKTsNCisJ
dGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDFmLCAweDU4KTsNCisJdGRhMTgy
MThfd3JpdGVfcmVnKGZlLCAweDI0LCAweDBjKTsNCisJdGRhMTgyMThfd3Jp
dGVfcmVnKGZlLCAweDFjLCAweDg4KTsNCisJdGRhMTgyMThfd3JpdGVfcmVn
KGZlLCAweDIwLCAweDEwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAw
eDIxLCAweDRjKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIwLCAw
eDAwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIxLCAweDQ4KTsN
CisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDFmLCAweDViKTsNCisJdGRh
MTgyMThfd3JpdGVfcmVnKGZlLCAweDIwLCAweDAwKTsNCisJdGRhMTgyMThf
d3JpdGVfcmVnKGZlLCAweDFmLCAweDU5KTsNCisJdGRhMTgyMThfd3JpdGVf
cmVnKGZlLCAweDIwLCAweDAwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZl
LCAweDFmLCAweDVhKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIw
LCAweDAwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDFmLCAweDVm
KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIwLCAweDAwKTsNCisJ
dGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDFmLCAweDVkKTsNCisJdGRhMTgy
MThfd3JpdGVfcmVnKGZlLCAweDIwLCAweDAwKTsNCisJdGRhMTgyMThfd3Jp
dGVfcmVnKGZlLCAweDFmLCAweDVlKTsNCisJdGRhMTgyMThfd3JpdGVfcmVn
KGZlLCAweDIwLCAweDAwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAw
eDIwLCAweDYwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIzLCAw
eDAyKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIwLCAweGEwKTsN
CisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIzLCAweDA5KTsNCisJdGRh
MTgyMThfd3JpdGVfcmVnKGZlLCAweDIwLCAweGUwKTsNCisJdGRhMTgyMThf
d3JpdGVfcmVnKGZlLCAweDIzLCAweDBjKTsNCisJdGRhMTgyMThfd3JpdGVf
cmVnKGZlLCAweDIwLCAweDQwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZl
LCAweDIzLCAweDAxKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIw
LCAweDgwKTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIzLCAweDA4
KTsNCisJdGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIwLCAweGMwKTsNCisJ
dGRhMTgyMThfd3JpdGVfcmVnKGZlLCAweDIzLCAweDBiKTsNCisJdGRhMTgy
MThfd3JpdGVfcmVnKGZlLCAweDFjLCAweDk4KTsNCisJdGRhMTgyMThfd3Jp
dGVfcmVnKGZlLCAweDIyLCAweDhjKTsNCisJaW5pdGJ1ZjJbMF0gPSAweDE3
Ow0KKwlpbml0YnVmMlsxXSA9IDB4YjA7DQorCWluaXRidWYyWzJdID0gMHg1
OTsNCisJaW5pdGJ1ZjJbM10gPSAweDAwOw0KKwkvL3RkYTE4MjE4X3dyaXRl
X3JlZ3MoZmUsIGluaXRidWYyWzBdLCAmaW5pdGJ1ZjJbMV0sIDIpOw0KKwlp
bml0YnVmMlswXSA9IDB4MWE7DQorCWluaXRidWYyWzFdID0gMHgwZTsNCisJ
aW5pdGJ1ZjJbMl0gPSAweDJhOw0KKwlpbml0YnVmMlszXSA9IDB4OTg7DQor
CXRkYTE4MjE4X3dyaXRlX3JlZ3MoZmUsIGluaXRidWYyWzBdLCAmaW5pdGJ1
ZjJbMV0sIDMpOw0KKwlpbml0YnVmMlswXSA9IDB4MTc7DQorCWluaXRidWYy
WzFdID0gMHhiMDsNCisJaW5pdGJ1ZjJbMl0gPSAweDU5Ow0KKwlpbml0YnVm
MlszXSA9IDB4MDA7DQorCXRkYTE4MjE4X3dyaXRlX3JlZ3MoZmUsIGluaXRi
dWYyWzBdLCAmaW5pdGJ1ZjJbMV0sIDIpOw0KKwl0ZGExODIxOF93cml0ZV9y
ZWcoZmUsIDB4MmQsIDB4ODEpOw0KKwl0ZGExODIxOF93cml0ZV9yZWcoZmUs
IDB4MjksIDB4MDIpOw0KKwkNCisJcmV0dXJuIDA7DQorfQ0KKwkNCitzdGF0
aWMgaW50IHRkYTE4MjE4X3JlbGVhc2Uoc3RydWN0IGR2Yl9mcm9udGVuZCAq
ZmUpDQorew0KKwlrZnJlZShmZS0+dHVuZXJfcHJpdik7DQorCWZlLT50dW5l
cl9wcml2ID0gTlVMTDsNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBj
b25zdCBzdHJ1Y3QgZHZiX3R1bmVyX29wcyB0ZGExODIxOF90dW5lcl9vcHMg
PSB7DQorCS5pbmZvID0gew0KKwkJLm5hbWUgICAgICAgICAgID0gIk5YUCBU
REExODIxOCIsDQorCQkuZnJlcXVlbmN5X21pbiAgPSBUREExODIxOF9NSU5f
RlJFUSwNCisJCS5mcmVxdWVuY3lfbWF4ICA9IFREQTE4MjE4X01BWF9GUkVR
LA0KKwkJLmZyZXF1ZW5jeV9zdGVwID0gVERBMTgyMThfU1RFUCwNCisJfSwN
CisNCisJLnJlbGVhc2UgICAgICAgPSB0ZGExODIxOF9yZWxlYXNlLA0KKwku
aW5pdCAgICAgICAgICA9IHRkYTE4MjE4X2luaXQsDQorCQ0KKwkuc2V0X3Bh
cmFtcyA9IHRkYTE4MjE4X3NldF9wYXJhbXMsDQorCS5nZXRfZnJlcXVlbmN5
ID0gdGRhMTgyMThfZ2V0X2ZyZXF1ZW5jeSwNCisJLmdldF9iYW5kd2lkdGgg
PSB0ZGExODIxOF9nZXRfYmFuZHdpZHRoLA0KK307DQorDQorc3RydWN0IGR2
Yl9mcm9udGVuZCAqIHRkYTE4MjE4X2F0dGFjaChzdHJ1Y3QgZHZiX2Zyb250
ZW5kICpmZSwNCisJCQkJICAgIHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjLA0K
KwkJCQkgICAgc3RydWN0IHRkYTE4MjE4X2NvbmZpZyAqY2ZnKQ0KK3sNCisJ
c3RydWN0IHRkYTE4MjE4X3ByaXYgKnByaXYgPSBOVUxMOw0KKw0KKwlwcml2
ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHRkYTE4MjE4X3ByaXYpLCBHRlBf
S0VSTkVMKTsNCisJaWYgKHByaXYgPT0gTlVMTCkNCisJCXJldHVybiBOVUxM
Ow0KKw0KKwlwcml2LT5jZmcgPSBjZmc7DQorCXByaXYtPmkyYyA9IGkyYzsN
CisNCisJZmUtPnR1bmVyX3ByaXYgPSBwcml2Ow0KKwkNCisJdGRhMTgyMThf
cmVhZF9yZWdzKGZlKTsNCisJaWYgKHByaXYtPnRkYTE4MjE4X3JlZ3NbMHgw
MF0gIT0gMHhjMCkgew0KKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiRGV2aWNl
IGlzIG5vdCBhIFREQTE4MjE4IVxuIik7DQorCQlrZnJlZShwcml2KTsNCisJ
CXJldHVybiBOVUxMOw0KKwl9DQorCQ0KKwlwcmludGsoS0VSTl9JTkZPICJO
WFAgVERBMTgyMTggc3VjY2Vzc2Z1bGx5IGlkZW50aWZpZWQuXG4iKTsNCisJ
bWVtY3B5KCZmZS0+b3BzLnR1bmVyX29wcywgJnRkYTE4MjE4X3R1bmVyX29w
cywNCisJICAgICAgIHNpemVvZihzdHJ1Y3QgZHZiX3R1bmVyX29wcykpOw0K
KwkNCisJcmV0dXJuIGZlOw0KK30NCitFWFBPUlRfU1lNQk9MKHRkYTE4MjE4
X2F0dGFjaCk7DQorDQorTU9EVUxFX0RFU0NSSVBUSU9OKCJOWFAgVERBMTgy
MTggc2lsaWNvbiB0dW5lciBkcml2ZXIiKTsNCitNT0RVTEVfQVVUSE9SKCJM
YXVyaXMgRGluZyA8bGRpbmdAZ214LmRlPiIpOw0KK01PRFVMRV9WRVJTSU9O
KCIwLjEiKTsNCitNT0RVTEVfTElDRU5TRSgiR1BMIik7DQotLS0gdjRsLWR2
Yi1hYmQzYWFjNjY0NGUvbGludXgvZHJpdmVycy9tZWRpYS9jb21tb24vdHVu
ZXJzL3RkYTE4MjE4Lmgub3JpZwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw
MDAwMCArMDEwMA0KKysrIHY0bC1kdmItYWJkM2FhYzY2NDRlL2xpbnV4L2Ry
aXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGExODIxOC5oCTIwMTEtMDIt
MDUgMTY6MzE6NDUuNDAzMTgxNDI0ICswMTAwDQpAQCAtMCwwICsxLDQ0IEBA
DQorLyoNCisgKiAgRHJpdmVyIGZvciAgTlhQIFREQTE4MjE4IHNpbGljb24g
dHVuZXINCisgKg0KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgTGF1cmlzIERp
bmcgPGxkaW5nQGdteC5kZT4NCisgKg0KKyAqICBUaGlzIHByb2dyYW0gaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
IG1vZGlmeQ0KKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyAqICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvcg0KKyAqICAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLg0KKyAqDQorICogIFRoaXMgcHJvZ3JhbSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LA0KKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlDQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuDQorICoNCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCisg
KiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUNCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNjc1
IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuDQorICovDQor
DQorI2lmbmRlZiBUREExODIxOF9IDQorI2RlZmluZSBUREExODIxOF9IDQor
DQorI2luY2x1ZGUgImR2Yl9mcm9udGVuZC5oIg0KKw0KK3N0cnVjdCB0ZGEx
ODIxOF9jb25maWcgew0KKwl1OCBpMmNfYWRkcmVzczsNCit9Ow0KKw0KKyNp
ZiBkZWZpbmVkKENPTkZJR19NRURJQV9UVU5FUl9UREExODIxOCkgfHwgKGRl
ZmluZWQoQ09ORklHX01FRElBX1RVTkVSX1REQTE4MjE4X01PRFVMRSkgJiYg
ZGVmaW5lZChNT0RVTEUpKQ0KK2V4dGVybiBzdHJ1Y3QgZHZiX2Zyb250ZW5k
ICp0ZGExODIxOF9hdHRhY2goc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsDQor
CQkJCQkgIHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjLA0KKwkJCQkJICBzdHJ1
Y3QgdGRhMTgyMThfY29uZmlnICpjZmcpOw0KKyNlbHNlDQorc3RhdGljIGlu
bGluZSBzdHJ1Y3QgZHZiX2Zyb250ZW5kICp0ZGExODIxOF9hdHRhY2goc3Ry
dWN0IGR2Yl9mcm9udGVuZCAqZmUsDQorCQkJCQkJIHN0cnVjdCBpMmNfYWRh
cHRlciAqaTJjLA0KKwkJCQkJCSBzdHJ1Y3QgdGRhMTgyMThfY29uZmlnICpj
ZmcpDQorew0KKwlwcmludGsoS0VSTl9XQVJOSU5HICIlczogZHJpdmVyIGRp
c2FibGVkIGJ5IEtjb25maWdcbiIsIF9fZnVuY19fKTsNCisJcmV0dXJuIE5V
TEw7DQorfQ0KKyNlbmRpZiAvLyBDT05GSUdfTUVESUFfVFVORVJfVERBMTgy
MTgNCisNCisjZW5kaWYNCi0tLSB2NGwtZHZiLWFiZDNhYWM2NjQ0ZS9saW51
eC9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdGRhMTgyMThfcHJpdi5o
Lm9yaWcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDANCisr
KyB2NGwtZHZiLWFiZDNhYWM2NjQ0ZS9saW51eC9kcml2ZXJzL21lZGlhL2Nv
bW1vbi90dW5lcnMvdGRhMTgyMThfcHJpdi5oCTIwMTEtMDItMDUgMTY6MzE6
NDUuNDA2MTkyMDg3ICswMTAwDQpAQCAtMCwwICsxLDM2IEBADQorLyoNCisg
KiAgRHJpdmVyIGZvciBOWFAgVERBMTgyMTggc2lsaWNvbiB0dW5lcg0KKyAq
DQorICogIENvcHlyaWdodCAoQykgMjAxMCBMYXVyaXMgRGluZyA8bGRpbmdA
Z214LmRlPg0KKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyAqICBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyAqICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvcg0KKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
Lg0KKyAqDQorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZg0KKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQorICogIEdOVSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQorICoN
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCisgKiAgYWxvbmcgd2l0aCB0
aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUNCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1i
cmlkZ2UsIE1BIDAyMTM5LCBVU0EuDQorICovDQorDQorI2lmbmRlZiBUREEx
ODIxOF9QUklWX0gNCisjZGVmaW5lIFREQTE4MjE4X1BSSVZfSA0KKw0KKyNk
ZWZpbmUgVERBMTgyMThfU1RFUCAgICAgICAgIDEwMDAgLyogMSBrSHogKi8N
CisjZGVmaW5lIFREQTE4MjE4X01JTl9GUkVRICAgMTc0MDAwMDAwIC8qICAg
MTc0IE1IeiAqLw0KKyNkZWZpbmUgVERBMTgyMThfTUFYX0ZSRVEgIDg2NDAw
MDAwMCAvKiAgODY0IE1IeiAqLw0KKw0KK3N0cnVjdCB0ZGExODIxOF9wcml2
IHsNCisJdTggdGRhMTgyMThfcmVnc1sweDNiXTsNCisJc3RydWN0IHRkYTE4
MjE4X2NvbmZpZyAqY2ZnOw0KKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmkyYzsN
CisNCisJdTMyIGZyZXF1ZW5jeTsNCisJdTMyIGJhbmR3aWR0aDsNCit9Ow0K
Kw0KKyNlbmRpZg0KLS0tIHY0bC1kdmItYWJkM2FhYzY2NDRlL2xpbnV4L2Ry
aXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvYWY5MDE1LmMub3JpZwkyMDExLTAy
LTA1IDE2OjQ2OjEzLjI5NTAxMTM2NiArMDEwMA0KKysrIHY0bC1kdmItYWJk
M2FhYzY2NDRlL2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvYWY5
MDE1LmMJMjAxMS0wMi0wNSAxNjozMTo0NS40MTAxOTYxMjggKzAxMDANCkBA
IC0zMyw2ICszMyw3IEBADQogI2luY2x1ZGUgInRkYTE4MjcxLmgiDQogI2lu
Y2x1ZGUgIm14bDUwMDVzLmgiDQogI2luY2x1ZGUgIm1jNDRzODAzLmgiDQor
I2luY2x1ZGUgInRkYTE4MjE4LmgiDQogDQogc3RhdGljIGludCBkdmJfdXNi
X2FmOTAxNV9kZWJ1ZzsNCiBtb2R1bGVfcGFyYW1fbmFtZWQoZGVidWcsIGR2
Yl91c2JfYWY5MDE1X2RlYnVnLCBpbnQsIDA2NDQpOw0KQEAgLTEwNDIsOCAr
MTA0Myw4IEBADQogCQkJYWY5MDE1X2FmOTAxM19jb25maWdbaV0ucmZfc3Bl
Y19pbnYgPSAxOw0KIAkJCWJyZWFrOw0KIAkJY2FzZSBBRjkwMTNfVFVORVJf
VERBMTgyMTg6DQotCQkJd2FybigidHVuZXIgTlhQIFREQTE4MjE4IG5vdCBz
dXBwb3J0ZWQgeWV0Iik7DQotCQkJcmV0dXJuIC1FTk9ERVY7DQorICAgICAg
ICAgICAgICAgICAgICAgICAgYWY5MDE1X2FmOTAxM19jb25maWdbaV0ucmZf
c3BlY19pbnYgPSAxOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
Ow0KIAkJZGVmYXVsdDoNCiAJCQl3YXJuKCJ0dW5lciBpZDolZCBub3Qgc3Vw
cG9ydGVkLCBwbGVhc2UgcmVwb3J0ISIsIHZhbCk7DQogCQkJcmV0dXJuIC1F
Tk9ERVY7DQpAQCAtMTI1MSw2ICsxMjUyLDEwIEBADQogCS5kaWdfb3V0ID0g
MSwNCiB9Ow0KIA0KK3N0YXRpYyBzdHJ1Y3QgdGRhMTgyMThfY29uZmlnIGFm
OTAxNV90ZGExODIxOF9jb25maWcgPSB7DQorICAgICAgICAuaTJjX2FkZHJl
c3MgPSAweGMwLA0KK307DQorDQogc3RhdGljIGludCBhZjkwMTVfdHVuZXJf
YXR0YWNoKHN0cnVjdCBkdmJfdXNiX2FkYXB0ZXIgKmFkYXApDQogew0KIAlz
dHJ1Y3QgYWY5MDE1X3N0YXRlICpzdGF0ZSA9IGFkYXAtPmRldi0+cHJpdjsN
CkBAIC0xMjk4LDYgKzEzMDMsOSBAQA0KIAkJcmV0ID0gZHZiX2F0dGFjaCht
YzQ0czgwM19hdHRhY2gsIGFkYXAtPmZlLCBpMmNfYWRhcCwNCiAJCQkmYWY5
MDE1X21jNDRzODAzX2NvbmZpZykgPT0gTlVMTCA/IC1FTk9ERVYgOiAwOw0K
IAkJYnJlYWs7DQorICAgICAgICBjYXNlIEFGOTAxM19UVU5FUl9UREExODIx
ODoNCisgICAgICAgICAgICAgICAgcmV0ID0gZHZiX2F0dGFjaCh0ZGExODIx
OF9hdHRhY2gsIGFkYXAtPmZlLCBpMmNfYWRhcCwNCisgICAgICAgICAgICAg
ICAgICAgICAgICAmYWY5MDE1X3RkYTE4MjE4X2NvbmZpZykgPT0gTlVMTCA/
IC1FTk9ERVYgOiAwOw0KIAljYXNlIEFGOTAxM19UVU5FUl9VTktOT1dOOg0K
IAlkZWZhdWx0Og0KIAkJcmV0ID0gLUVOT0RFVjsNCkBAIC0xMzQyLDYgKzEz
NTAsNyBAQA0KIAl7VVNCX0RFVklDRShVU0JfVklEX0xFQURURUssICAgVVNC
X1BJRF9XSU5GQVNUX0RUVjIwMDBEUyl9LA0KIC8qIDMwICove1VTQl9ERVZJ
Q0UoVVNCX1ZJRF9LV09STERfMiwgIFVTQl9QSURfS1dPUkxEX1VCMzgzX1Qp
fSwNCiAJe1VTQl9ERVZJQ0UoVVNCX1ZJRF9LV09STERfMiwgIFVTQl9QSURf
S1dPUkxEXzM5NVVfNCl9LA0KKyAgICAgICAge1VTQl9ERVZJQ0UoVVNCX1ZJ
RF9URVJSQVRFQywgIFVTQl9QSURfVEVSUkFURUNfQ0lORVJHWV9UX1NUSUNL
X1JDKX0sDQogCXswfSwNCiB9Ow0KIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNi
LCBhZjkwMTVfdXNiX3RhYmxlKTsNCkBAIC0xNjE4LDcgKzE2MjcsNyBAQA0K
IA0KIAkJLmkyY19hbGdvID0gJmFmOTAxNV9pMmNfYWxnbywNCiANCi0JCS5u
dW1fZGV2aWNlX2Rlc2NzID0gOCwgLyogbWF4IDkgKi8NCisJCS5udW1fZGV2
aWNlX2Rlc2NzID0gOSwgLyogbWF4IDkgKi8NCiAJCS5kZXZpY2VzID0gew0K
IAkJCXsNCiAJCQkJLm5hbWUgPSAiQXZlck1lZGlhIEFWZXJUViBWb2xhciBH
UFMgODA1IChBODA1KSIsDQpAQCAtMTY2Myw2ICsxNjcyLDEyIEBADQogCQkJ
CS5jb2xkX2lkcyA9IHsmYWY5MDE1X3VzYl90YWJsZVszMF0sIE5VTEx9LA0K
IAkJCQkud2FybV9pZHMgPSB7TlVMTH0sDQogCQkJfSwNCisgICAgICAgICAg
ICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAubmFtZSA9ICJUZXJyYVRlYyBDaW5lcmd5IFQgU3RpY2sgUkMiLA0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGRfaWRzID0g
eyZhZjkwMTVfdXNiX3RhYmxlWzMyXSwgTlVMTH0sDQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAud2FybV9pZHMgPSB7TlVMTH0sDQorICAg
ICAgICAgICAgICAgICAgICAgICAgfSwNCisNCiAJCX0NCiAJfSwNCiB9Ow0K
LS0tIHY0bC1kdmItYWJkM2FhYzY2NDRlL2xpbnV4L2RyaXZlcnMvbWVkaWEv
ZHZiL2R2Yi11c2IvZHZiLXVzYi1pZHMuaC5vcmlnCTIwMTEtMDItMDUgMTY6
NDY6MDkuNjY5NzExNjE3ICswMTAwDQorKysgdjRsLWR2Yi1hYmQzYWFjNjY0
NGUvbGludXgvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9kdmItdXNiLWlk
cy5oCTIwMTEtMDItMDUgMTY6MzI6MjkuMzQ5ODg4MjY5ICswMTAwDQpAQCAt
MTg0LDYgKzE4NCw3IEBADQogI2RlZmluZSBVU0JfUElEX1RFUlJBVEVDX0NJ
TkVSR1lfVF9FWFBSRVNTCQkweDAwNjINCiAjZGVmaW5lIFVTQl9QSURfVEVS
UkFURUNfQ0lORVJHWV9UX1VTQl9YRQkJMHgwMDU1DQogI2RlZmluZSBVU0Jf
UElEX1RFUlJBVEVDX0NJTkVSR1lfVF9VU0JfWEVfUkVWMgkJMHgwMDY5DQor
I2RlZmluZSBVU0JfUElEX1RFUlJBVEVDX0NJTkVSR1lfVF9TVElDS19SQwkJ
MHgwMDk3DQogI2RlZmluZSBVU0JfUElEX1RFUlJBVEVDX0NJTkVSR1lfVF9Y
WFMJCQkweDAwNzgNCiAjZGVmaW5lIFVTQl9QSURfVEVSUkFURUNfQ0lORVJH
WV9UX1hYU18yCQkweDAwYWINCiAjZGVmaW5lIFVTQl9QSURfVEVSUkFURUNf
RFZCUzJDSV9WMQkJCTB4MTBhNA0KLS0tIHY0bC1kdmItYWJkM2FhYzY2NDRl
L2xpbnV4L2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9hZjkwMTMuYy5v
cmlnCTIwMTAtMDctMDIgMDU6Mzg6NTQuMDAwMDAwMDAwICswMjAwDQorKysg
djRsLWR2Yi1hYmQzYWFjNjY0NGUvbGludXgvZHJpdmVycy9tZWRpYS9kdmIv
ZnJvbnRlbmRzL2FmOTAxMy5jCTIwMTEtMDItMDUgMTY6MzE6NDUuNDE3MjE0
NzUyICswMTAwDQpAQCAtNDg4LDYgKzQ4OCwyMSBAQA0KIAkJCQlicmVhazsN
CiAJCQl9DQogCQl9DQorICAgICAgICAgICAgICAgIGVsc2UgaWYoc3RhdGUt
PmNvbmZpZy50dW5lciA9PSBBRjkwMTNfVFVORVJfVERBMTgyMTgpIHsNCisg
ICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGJ3KSB7DQorICAgICAg
ICAgICAgICAgICAgICAgICAgY2FzZSBCQU5EV0lEVEhfNl9NSFo6DQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZl9zYW1wbGVfZnJlcSA9
IDMwMDAwMDA7IC8qIDMgTUh6ICovDQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICAgICAgICAgICAgICBj
YXNlIEJBTkRXSURUSF83X01IWjoNCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmX3NhbXBsZV9mcmVxID0gMzUwMDAwMDsgLyogMy41IE1I
eiAqLw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
DQorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBCQU5EV0lEVEhfOF9N
SFo6DQorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmX3NhbXBsZV9mcmVxID0g
NDAwMDAwMDsgLyogNCBNSHogKi8NCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0N
CisgICAgICAgICAgICAgICAgfQ0KKw0KIA0KIAkJd2hpbGUgKGlmX3NhbXBs
ZV9mcmVxID4gKGFkY19mcmVxIC8gMikpDQogCQkJaWZfc2FtcGxlX2ZyZXEg
PSBpZl9zYW1wbGVfZnJlcSAtIGFkY19mcmVxOw0KQEAgLTEzOTAsNiArMTQw
NSw3IEBADQogCQlpbml0ID0gdHVuZXJfaW5pdF9tdDIwNjBfMjsNCiAJCWJy
ZWFrOw0KIAljYXNlIEFGOTAxM19UVU5FUl9UREExODI3MToNCisgICAgICAg
IGNhc2UgQUY5MDEzX1RVTkVSX1REQTE4MjE4Og0KIAkJbGVuID0gQVJSQVlf
U0laRSh0dW5lcl9pbml0X3RkYTE4MjcxKTsNCiAJCWluaXQgPSB0dW5lcl9p
bml0X3RkYTE4MjcxOw0KIAkJYnJlYWs7DQotLS0gdjRsLWR2Yi1hYmQzYWFj
NjY0NGUvbGludXgvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2FmOTAx
M19wcml2Lmgub3JpZwkyMDEwLTA3LTAyIDA1OjM4OjU0LjAwMDAwMDAwMCAr
MDIwMA0KKysrIHY0bC1kdmItYWJkM2FhYzY2NDRlL2xpbnV4L2RyaXZlcnMv
bWVkaWEvZHZiL2Zyb250ZW5kcy9hZjkwMTNfcHJpdi5oCTIwMTEtMDItMDUg
MTY6MzE6NDUuNDIwMjIwNjU0ICswMTAwDQpAQCAtNzkwLDcgKzc5MCw4IEBA
DQogfTsNCiANCiAvKiBOWFAgVERBMTgyNzEgdHVuZXIgaW5pdA0KLSAgIEFG
OTAxM19UVU5FUl9UREExODI3MSAgID0gMTU2ICovDQorICAgQUY5MDEzX1RV
TkVSX1REQTE4MjcxICAgPSAxNTYgDQorICAgQUY5MDEzX1RVTkVSX1REQTE4
MjE4ICAgPSAxNzkgKi8NCiBzdGF0aWMgc3RydWN0IHJlZ2Rlc2MgdHVuZXJf
aW5pdF90ZGExODI3MVtdID0gew0KIAl7IDB4OWJkNSwgMCwgOCwgMHgwMSB9
LA0KIAl7IDB4OWJkNiwgMCwgOCwgMHgwNCB9LA0K

--2787499574-1545880458-1296923009=:82659--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1102051702470.82659>