From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-ew0-f219.google.com ([209.85.219.219]:52315 "EHLO mail-ew0-f219.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755905Ab0AFPkh (ORCPT ); Wed, 6 Jan 2010 10:40:37 -0500 Received: by ewy19 with SMTP id 19so9726244ewy.21 for ; Wed, 06 Jan 2010 07:40:35 -0800 (PST) Content-Type: multipart/mixed; boundary=----------UL60wBGrykRgyIEsZQl9tJ To: "linux-wireless@vger.kernel.org" , "John W. Linville" Date: Wed, 06 Jan 2010 16:41:56 +0100 Cc: "bcm43xx-dev@lists.berlios.de" Subject: [PATCH 4/5] b43: N-PHY: add TX Gain tables MIME-Version: 1.0 From: =?utf-8?B?UmFmYcWCIE1pxYJlY2tp?= Message-ID: Sender: linux-wireless-owner@vger.kernel.org List-ID: ------------UL60wBGrykRgyIEsZQl9tJ Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes Content-Transfer-Encoding: Quoted-Printable b43: N-PHY: add TX Gain tables From 98cb0f7b40df6605690f9e09f5102380844880ab Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?Rafa=3DC5=3D82=3D20Mi=3DC5=3D82ecki?=3D Date: Wed, 6 Jan 2010 16:23:15 +0100 Subject: [PATCH 4/5] b43: N-PHY: add TX Gain tables MIME-Version: 1.0 Content-Type: text/plain; charset=3DUTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafa=C5=82 Mi=C5=82ecki --- drivers/net/wireless/b43/phy_n.c | 12 +- drivers/net/wireless/b43/tables_nphy.c | 175 ++++++++++++++++++++++++= ++++++++ drivers/net/wireless/b43/tables_nphy.h | 6 + 3 files changed, 187 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43= /phy_n.c index 5341ba5..2b99d86 100644 --- a/drivers/net/wireless/b43/phy_n.c +++ b/drivers/net/wireless/b43/phy_n.c @@ -384,7 +384,7 @@ static struct nphy_txgains b43_nphy_get_tx_gains(str= uct b43_wldev *dev) u16 curr_gain[2]; struct nphy_txgains target; - u32 *table =3D NULL; + const u32 *table =3D NULL; if (nphy->txpwrctrl =3D=3D 0) { int i; @@ -423,13 +423,13 @@ static struct nphy_txgains b43_nphy_get_tx_gains(s= truct b43_wldev *dev) } else { if (band =3D=3D IEEE80211_BAND_5GHZ) { if (dev->phy.rev =3D=3D 3) - table =3D NULL; //FIXME: N PHY TX Power Control - TX Gain Table = Rev >=3D 3 (5 GHz) + table =3D b43_ntab_tx_gain_rev3_5ghz; else if (dev->phy.rev =3D=3D 4) - table =3D NULL; //FIXME: N PHY TX Power Control - TX Gain Table = Rev 4 (5 GHz) + table =3D b43_ntab_tx_gain_rev4_5ghz; else - table =3D NULL; //FIXME: N PHY TX Power Control - TX Gain Table = Rev 5 (5 GHz) + table =3D b43_ntab_tx_gain_rev5plus_5ghz; } else { - table =3D NULL; //FIXME: N PHY TX Power Control - TX Gain Table R= ev >=3D 3 (2.4 GHz) + table =3D b43_ntab_tx_gain_rev3plus_2ghz; } } @@ -438,7 +438,7 @@ static struct nphy_txgains b43_nphy_get_tx_gains(str= uct b43_wldev *dev) target.pga[i] =3D (table[index[i]] >> 24) & 0xF; target.txgm[i] =3D (table[index[i]] >> 28) & 0xF; } else { - table =3D NULL; //FIXME: N PHY TX Power Control - TX Gain Table Rev= <=3D 2 + table =3D b43_ntab_tx_gain_rev0_1_2; target.ipa[i] =3D (table[index[i]] >> 16) & 0x3; target.pad[i] =3D (table[index[i]] >> 18) & 0x3; diff --git a/drivers/net/wireless/b43/tables_nphy.c b/drivers/net/wirele= ss/b43/tables_nphy.c index d0b91b5..9fa527d 100644 --- a/drivers/net/wireless/b43/tables_nphy.c +++ b/drivers/net/wireless/b43/tables_nphy.c @@ -2406,6 +2406,181 @@ static const u32 b43_ntab_tmap[] =3D { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; +const u32 b43_ntab_tx_gain_rev0_1_2[] =3D { + 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42, + 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44, + 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844, + 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44, + 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844, + 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644, + 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444, + 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44, + 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844, + 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44, + 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944, + 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744, + 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544, + 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44, + 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844, + 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44, + 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944, + 0x03902942, 0x03902844, 0x03902842, 0x03902744, + 0x03902742, 0x03902644, 0x03902642, 0x03902544, + 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44, + 0x03802a42, 0x03802944, 0x03802942, 0x03802844, + 0x03802842, 0x03802744, 0x03802742, 0x03802644, + 0x03802642, 0x03802544, 0x03802542, 0x03802444, + 0x03802442, 0x03802344, 0x03802342, 0x03802244, + 0x03802242, 0x03802144, 0x03802142, 0x03802044, + 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44, + 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44, + 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44, + 0x03801a42, 0x03801944, 0x03801942, 0x03801844, + 0x03801842, 0x03801744, 0x03801742, 0x03801644, + 0x03801642, 0x03801544, 0x03801542, 0x03801444, + 0x03801442, 0x03801344, 0x03801342, 0x00002b00, +}; + +const u32 b43_ntab_tx_gain_rev3plus_2ghz[] =3D { + 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e, + 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037, + 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e, + 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037, + 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e, + 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037, + 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e, + 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037, + 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e, + 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037, + 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e, + 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037, + 0x19410044, 0x19410042, 0x19410040, 0x1941003e, + 0x1941003c, 0x1941003b, 0x19410039, 0x19410037, + 0x18410044, 0x18410042, 0x18410040, 0x1841003e, + 0x1841003c, 0x1841003b, 0x18410039, 0x18410037, + 0x17410044, 0x17410042, 0x17410040, 0x1741003e, + 0x1741003c, 0x1741003b, 0x17410039, 0x17410037, + 0x16410044, 0x16410042, 0x16410040, 0x1641003e, + 0x1641003c, 0x1641003b, 0x16410039, 0x16410037, + 0x15410044, 0x15410042, 0x15410040, 0x1541003e, + 0x1541003c, 0x1541003b, 0x15410039, 0x15410037, + 0x14410044, 0x14410042, 0x14410040, 0x1441003e, + 0x1441003c, 0x1441003b, 0x14410039, 0x14410037, + 0x13410044, 0x13410042, 0x13410040, 0x1341003e, + 0x1341003c, 0x1341003b, 0x13410039, 0x13410037, + 0x12410044, 0x12410042, 0x12410040, 0x1241003e, + 0x1241003c, 0x1241003b, 0x12410039, 0x12410037, + 0x11410044, 0x11410042, 0x11410040, 0x1141003e, + 0x1141003c, 0x1141003b, 0x11410039, 0x11410037, + 0x10410044, 0x10410042, 0x10410040, 0x1041003e, + 0x1041003c, 0x1041003b, 0x10410039, 0x10410037, +}; + +const u32 b43_ntab_tx_gain_rev3_5ghz[] =3D { + 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e, + 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037, + 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e, + 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037, + 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e, + 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037, + 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e, + 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037, + 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e, + 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037, + 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e, + 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037, + 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e, + 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037, + 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e, + 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037, + 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e, + 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037, + 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e, + 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037, + 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e, + 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037, + 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e, + 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037, + 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e, + 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037, + 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e, + 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037, + 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e, + 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037, + 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e, + 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037, +}; + +const u32 b43_ntab_tx_gain_rev4_5ghz[] =3D { + 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e, + 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037, + 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e, + 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037, + 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e, + 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037, + 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e, + 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037, + 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e, + 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037, + 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e, + 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037, + 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e, + 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037, + 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e, + 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037, + 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e, + 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037, + 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e, + 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037, + 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e, + 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037, + 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e, + 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038, + 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e, + 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037, + 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e, + 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037, + 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e, + 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037, + 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c, + 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034, +}; + +const u32 b43_ntab_tx_gain_rev5plus_5ghz[] =3D { + 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044, + 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c, + 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e, + 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a, + 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e, + 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a, + 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e, + 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037, + 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040, + 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a, + 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c, + 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038, + 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b, + 0x09620039, 0x09620037, 0x09620035, 0x09620033, + 0x08620044, 0x08620042, 0x08620040, 0x0862003e, + 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039, + 0x07620043, 0x07620042, 0x07620040, 0x0762003f, + 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039, + 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b, + 0x06620039, 0x06620037, 0x06620035, 0x06620033, + 0x05620046, 0x05620044, 0x05620042, 0x05620040, + 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039, + 0x04620044, 0x04620042, 0x04620040, 0x0462003e, + 0x0462003c, 0x0462003b, 0x04620039, 0x04620038, + 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039, + 0x03620038, 0x03620037, 0x03620035, 0x03620033, + 0x0262004c, 0x0262004a, 0x02620048, 0x02620047, + 0x02620046, 0x02620044, 0x02620043, 0x02620042, + 0x0162004a, 0x01620048, 0x01620046, 0x01620044, + 0x01620043, 0x01620042, 0x01620041, 0x01620040, + 0x00620042, 0x00620040, 0x0062003e, 0x0062003c, + 0x0062003b, 0x00620039, 0x00620037, 0x00620035, +}; + static inline void assert_ntab_array_sizes(void) { #undef check diff --git a/drivers/net/wireless/b43/tables_nphy.h b/drivers/net/wirele= ss/b43/tables_nphy.h index 1f0a602..423c884 100644 --- a/drivers/net/wireless/b43/tables_nphy.h +++ b/drivers/net/wireless/b43/tables_nphy.h @@ -131,4 +131,10 @@ void b43_ntab_write(struct b43_wldev *dev, u32 offs= et, u32 value); void b43_nphy_rev0_1_2_tables_init(struct b43_wldev *dev); void b43_nphy_rev3plus_tables_init(struct b43_wldev *dev); +extern const u32 b43_ntab_tx_gain_rev0_1_2[]; +extern const u32 b43_ntab_tx_gain_rev3plus_2ghz[]; +extern const u32 b43_ntab_tx_gain_rev3_5ghz[]; +extern const u32 b43_ntab_tx_gain_rev4_5ghz[]; +extern const u32 b43_ntab_tx_gain_rev5plus_5ghz[]; + #endif /* B43_TABLES_NPHY_H_ */ -- = 1.6.4.2 ------------UL60wBGrykRgyIEsZQl9tJ Content-Disposition: attachment; filename=0004-b43-N-PHY-add-TX-Gain-tables.patch Content-Type: application/octet-stream; name=0004-b43-N-PHY-add-TX-Gain-tables.patch Content-Transfer-Encoding: Base64 RnJvbSA5OGNiMGY3YjQwZGY2NjA1NjkwZjllMDlmNTEwMjM4MDg0NDg4MGFiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UmFmYT1DNT04 Mj0yME1pPUM1PTgyZWNraT89IDx6YWplYzVAZ21haWwuY29tPgpEYXRlOiBXZWQs IDYgSmFuIDIwMTAgMTY6MjM6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDQvNV0g YjQzOiBOLVBIWTogYWRkIFRYIEdhaW4gdGFibGVzCk1JTUUtVmVyc2lvbjogMS4w CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpTaWduZWQtb2ZmLWJ5OiBSYWZhxYIg TWnFgmVja2kgPHphamVjNUBnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9uZXQvd2ly ZWxlc3MvYjQzL3BoeV9uLmMgICAgICAgfCAgIDEyICstCiBkcml2ZXJzL25ldC93 aXJlbGVzcy9iNDMvdGFibGVzX25waHkuYyB8ICAxNzUgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My90YWJs ZXNfbnBoeS5oIHwgICAgNiArCiAzIGZpbGVzIGNoYW5nZWQsIDE4NyBpbnNlcnRp b25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2I0My9waHlfbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQz L3BoeV9uLmMKaW5kZXggNTM0MWJhNS4uMmI5OWQ4NiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvYjQzL3BoeV9uLmMKKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYjQzL3BoeV9uLmMKQEAgLTM4NCw3ICszODQsNyBAQCBzdGF0aWMg c3RydWN0IG5waHlfdHhnYWlucyBiNDNfbnBoeV9nZXRfdHhfZ2FpbnMoc3RydWN0 IGI0M193bGRldiAqZGV2KQogCiAJdTE2IGN1cnJfZ2FpblsyXTsKIAlzdHJ1Y3Qg bnBoeV90eGdhaW5zIHRhcmdldDsKLQl1MzIgKnRhYmxlID0gTlVMTDsKKwljb25z dCB1MzIgKnRhYmxlID0gTlVMTDsKIAogCWlmIChucGh5LT50eHB3cmN0cmwgPT0g MCkgewogCQlpbnQgaTsKQEAgLTQyMywxMyArNDIzLDEzIEBAIHN0YXRpYyBzdHJ1 Y3QgbnBoeV90eGdhaW5zIGI0M19ucGh5X2dldF90eF9nYWlucyhzdHJ1Y3QgYjQz X3dsZGV2ICpkZXYpCiAJCQkJfSBlbHNlIHsKIAkJCQkJaWYgKGJhbmQgPT0gSUVF RTgwMjExX0JBTkRfNUdIWikgewogCQkJCQkJaWYgKGRldi0+cGh5LnJldiA9PSAz KQotCQkJCQkJCXRhYmxlID0gTlVMTDsgLy9GSVhNRTogTiBQSFkgVFggUG93ZXIg Q29udHJvbCAtIFRYIEdhaW4gVGFibGUgUmV2ID49IDMgKDUgR0h6KSAKKwkJCQkJ CQl0YWJsZSA9IGI0M19udGFiX3R4X2dhaW5fcmV2M181Z2h6OwogCQkJCQkJZWxz ZSBpZiAoZGV2LT5waHkucmV2ID09IDQpCi0JCQkJCQkJdGFibGUgPSBOVUxMOyAv L0ZJWE1FOiBOIFBIWSBUWCBQb3dlciBDb250cm9sIC0gVFggR2FpbiBUYWJsZSBS ZXYgNCAoNSBHSHopIAorCQkJCQkJCXRhYmxlID0gYjQzX250YWJfdHhfZ2Fpbl9y ZXY0XzVnaHo7CiAJCQkJCQllbHNlCi0JCQkJCQkJdGFibGUgPSBOVUxMOyAvL0ZJ WE1FOiBOIFBIWSBUWCBQb3dlciBDb250cm9sIC0gVFggR2FpbiBUYWJsZSBSZXYg NSAoNSBHSHopIAorCQkJCQkJCXRhYmxlID0gYjQzX250YWJfdHhfZ2Fpbl9yZXY1 cGx1c181Z2h6OwogCQkJCQl9IGVsc2UgewotCQkJCQkJdGFibGUgPSBOVUxMOyAv L0ZJWE1FOiBOIFBIWSBUWCBQb3dlciBDb250cm9sIC0gVFggR2FpbiBUYWJsZSBS ZXYgPj0gMyAoMi40IEdIeikKKwkJCQkJCXRhYmxlID0gYjQzX250YWJfdHhfZ2Fp bl9yZXYzcGx1c18yZ2h6OwogCQkJCQl9CiAJCQkJfQogCkBAIC00MzgsNyArNDM4 LDcgQEAgc3RhdGljIHN0cnVjdCBucGh5X3R4Z2FpbnMgYjQzX25waHlfZ2V0X3R4 X2dhaW5zKHN0cnVjdCBiNDNfd2xkZXYgKmRldikKIAkJCQl0YXJnZXQucGdhW2ld ID0gKHRhYmxlW2luZGV4W2ldXSA+PiAyNCkgJiAweEY7CiAJCQkJdGFyZ2V0LnR4 Z21baV0gPSAodGFibGVbaW5kZXhbaV1dID4+IDI4KSAmIDB4RjsKIAkJCX0gZWxz ZSB7Ci0JCQkJdGFibGUgPSBOVUxMOyAvL0ZJWE1FOiBOIFBIWSBUWCBQb3dlciBD b250cm9sIC0gVFggR2FpbiBUYWJsZSBSZXYgPD0gMiAKKwkJCQl0YWJsZSA9IGI0 M19udGFiX3R4X2dhaW5fcmV2MF8xXzI7CiAKIAkJCQl0YXJnZXQuaXBhW2ldID0g KHRhYmxlW2luZGV4W2ldXSA+PiAxNikgJiAweDM7CiAJCQkJdGFyZ2V0LnBhZFtp XSA9ICh0YWJsZVtpbmRleFtpXV0gPj4gMTgpICYgMHgzOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL3RhYmxlc19ucGh5LmMgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9iNDMvdGFibGVzX25waHkuYwppbmRleCBkMGI5MWI1Li45 ZmE1MjdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvdGFi bGVzX25waHkuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvdGFibGVz X25waHkuYwpAQCAtMjQwNiw2ICsyNDA2LDE4MSBAQCBzdGF0aWMgY29uc3QgdTMy IGI0M19udGFiX3RtYXBbXSA9IHsKIAkweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAw eDAwMDAwMDAwLCAweDAwMDAwMDAwLAogfTsKIAorY29uc3QgdTMyIGI0M19udGFi X3R4X2dhaW5fcmV2MF8xXzJbXSA9IHsKKwkweDAzY2MyYjQ0LCAweDAzY2MyYjQy LCAweDAzY2MyYTQ0LCAweDAzY2MyYTQyLAorCTB4MDNjYzI5NDQsIDB4MDNjODJi NDQsIDB4MDNjODJiNDIsIDB4MDNjODJhNDQsCisJMHgwM2M4MmE0MiwgMHgwM2M4 Mjk0NCwgMHgwM2M4Mjk0MiwgMHgwM2M4Mjg0NCwKKwkweDAzYzgyODQyLCAweDAz YzQyYjQ0LCAweDAzYzQyYjQyLCAweDAzYzQyYTQ0LAorCTB4MDNjNDJhNDIsIDB4 MDNjNDI5NDQsIDB4MDNjNDI5NDIsIDB4MDNjNDI4NDQsCisJMHgwM2M0Mjg0Miwg MHgwM2M0Mjc0NCwgMHgwM2M0Mjc0MiwgMHgwM2M0MjY0NCwKKwkweDAzYzQyNjQy LCAweDAzYzQyNTQ0LCAweDAzYzQyNTQyLCAweDAzYzQyNDQ0LAorCTB4MDNjNDI0 NDIsIDB4MDNjMDJiNDQsIDB4MDNjMDJiNDIsIDB4MDNjMDJhNDQsCisJMHgwM2Mw MmE0MiwgMHgwM2MwMjk0NCwgMHgwM2MwMjk0MiwgMHgwM2MwMjg0NCwKKwkweDAz YzAyODQyLCAweDAzYzAyNzQ0LCAweDAzYzAyNzQyLCAweDAzYjAyYjQ0LAorCTB4 MDNiMDJiNDIsIDB4MDNiMDJhNDQsIDB4MDNiMDJhNDIsIDB4MDNiMDI5NDQsCisJ MHgwM2IwMjk0MiwgMHgwM2IwMjg0NCwgMHgwM2IwMjg0MiwgMHgwM2IwMjc0NCwK KwkweDAzYjAyNzQyLCAweDAzYjAyNjQ0LCAweDAzYjAyNjQyLCAweDAzYjAyNTQ0 LAorCTB4MDNiMDI1NDIsIDB4MDNhMDJiNDQsIDB4MDNhMDJiNDIsIDB4MDNhMDJh NDQsCisJMHgwM2EwMmE0MiwgMHgwM2EwMjk0NCwgMHgwM2EwMjk0MiwgMHgwM2Ew Mjg0NCwKKwkweDAzYTAyODQyLCAweDAzYTAyNzQ0LCAweDAzYTAyNzQyLCAweDAz OTAyYjQ0LAorCTB4MDM5MDJiNDIsIDB4MDM5MDJhNDQsIDB4MDM5MDJhNDIsIDB4 MDM5MDI5NDQsCisJMHgwMzkwMjk0MiwgMHgwMzkwMjg0NCwgMHgwMzkwMjg0Miwg MHgwMzkwMjc0NCwKKwkweDAzOTAyNzQyLCAweDAzOTAyNjQ0LCAweDAzOTAyNjQy LCAweDAzOTAyNTQ0LAorCTB4MDM5MDI1NDIsIDB4MDM4MDJiNDQsIDB4MDM4MDJi NDIsIDB4MDM4MDJhNDQsCisJMHgwMzgwMmE0MiwgMHgwMzgwMjk0NCwgMHgwMzgw Mjk0MiwgMHgwMzgwMjg0NCwKKwkweDAzODAyODQyLCAweDAzODAyNzQ0LCAweDAz ODAyNzQyLCAweDAzODAyNjQ0LAorCTB4MDM4MDI2NDIsIDB4MDM4MDI1NDQsIDB4 MDM4MDI1NDIsIDB4MDM4MDI0NDQsCisJMHgwMzgwMjQ0MiwgMHgwMzgwMjM0NCwg MHgwMzgwMjM0MiwgMHgwMzgwMjI0NCwKKwkweDAzODAyMjQyLCAweDAzODAyMTQ0 LCAweDAzODAyMTQyLCAweDAzODAyMDQ0LAorCTB4MDM4MDIwNDIsIDB4MDM4MDFm NDQsIDB4MDM4MDFmNDIsIDB4MDM4MDFlNDQsCisJMHgwMzgwMWU0MiwgMHgwMzgw MWQ0NCwgMHgwMzgwMWQ0MiwgMHgwMzgwMWM0NCwKKwkweDAzODAxYzQyLCAweDAz ODAxYjQ0LCAweDAzODAxYjQyLCAweDAzODAxYTQ0LAorCTB4MDM4MDFhNDIsIDB4 MDM4MDE5NDQsIDB4MDM4MDE5NDIsIDB4MDM4MDE4NDQsCisJMHgwMzgwMTg0Miwg MHgwMzgwMTc0NCwgMHgwMzgwMTc0MiwgMHgwMzgwMTY0NCwKKwkweDAzODAxNjQy LCAweDAzODAxNTQ0LCAweDAzODAxNTQyLCAweDAzODAxNDQ0LAorCTB4MDM4MDE0 NDIsIDB4MDM4MDEzNDQsIDB4MDM4MDEzNDIsIDB4MDAwMDJiMDAsCit9OworCitj b25zdCB1MzIgYjQzX250YWJfdHhfZ2Fpbl9yZXYzcGx1c18yZ2h6W10gPSB7CisJ MHgxZjQxMDA0NCwgMHgxZjQxMDA0MiwgMHgxZjQxMDA0MCwgMHgxZjQxMDAzZSwK KwkweDFmNDEwMDNjLCAweDFmNDEwMDNiLCAweDFmNDEwMDM5LCAweDFmNDEwMDM3 LAorCTB4MWU0MTAwNDQsIDB4MWU0MTAwNDIsIDB4MWU0MTAwNDAsIDB4MWU0MTAw M2UsCisJMHgxZTQxMDAzYywgMHgxZTQxMDAzYiwgMHgxZTQxMDAzOSwgMHgxZTQx MDAzNywKKwkweDFkNDEwMDQ0LCAweDFkNDEwMDQyLCAweDFkNDEwMDQwLCAweDFk NDEwMDNlLAorCTB4MWQ0MTAwM2MsIDB4MWQ0MTAwM2IsIDB4MWQ0MTAwMzksIDB4 MWQ0MTAwMzcsCisJMHgxYzQxMDA0NCwgMHgxYzQxMDA0MiwgMHgxYzQxMDA0MCwg MHgxYzQxMDAzZSwKKwkweDFjNDEwMDNjLCAweDFjNDEwMDNiLCAweDFjNDEwMDM5 LCAweDFjNDEwMDM3LAorCTB4MWI0MTAwNDQsIDB4MWI0MTAwNDIsIDB4MWI0MTAw NDAsIDB4MWI0MTAwM2UsCisJMHgxYjQxMDAzYywgMHgxYjQxMDAzYiwgMHgxYjQx MDAzOSwgMHgxYjQxMDAzNywKKwkweDFhNDEwMDQ0LCAweDFhNDEwMDQyLCAweDFh NDEwMDQwLCAweDFhNDEwMDNlLAorCTB4MWE0MTAwM2MsIDB4MWE0MTAwM2IsIDB4 MWE0MTAwMzksIDB4MWE0MTAwMzcsCisJMHgxOTQxMDA0NCwgMHgxOTQxMDA0Miwg MHgxOTQxMDA0MCwgMHgxOTQxMDAzZSwKKwkweDE5NDEwMDNjLCAweDE5NDEwMDNi LCAweDE5NDEwMDM5LCAweDE5NDEwMDM3LAorCTB4MTg0MTAwNDQsIDB4MTg0MTAw NDIsIDB4MTg0MTAwNDAsIDB4MTg0MTAwM2UsCisJMHgxODQxMDAzYywgMHgxODQx MDAzYiwgMHgxODQxMDAzOSwgMHgxODQxMDAzNywKKwkweDE3NDEwMDQ0LCAweDE3 NDEwMDQyLCAweDE3NDEwMDQwLCAweDE3NDEwMDNlLAorCTB4MTc0MTAwM2MsIDB4 MTc0MTAwM2IsIDB4MTc0MTAwMzksIDB4MTc0MTAwMzcsCisJMHgxNjQxMDA0NCwg MHgxNjQxMDA0MiwgMHgxNjQxMDA0MCwgMHgxNjQxMDAzZSwKKwkweDE2NDEwMDNj LCAweDE2NDEwMDNiLCAweDE2NDEwMDM5LCAweDE2NDEwMDM3LAorCTB4MTU0MTAw NDQsIDB4MTU0MTAwNDIsIDB4MTU0MTAwNDAsIDB4MTU0MTAwM2UsCisJMHgxNTQx MDAzYywgMHgxNTQxMDAzYiwgMHgxNTQxMDAzOSwgMHgxNTQxMDAzNywKKwkweDE0 NDEwMDQ0LCAweDE0NDEwMDQyLCAweDE0NDEwMDQwLCAweDE0NDEwMDNlLAorCTB4 MTQ0MTAwM2MsIDB4MTQ0MTAwM2IsIDB4MTQ0MTAwMzksIDB4MTQ0MTAwMzcsCisJ MHgxMzQxMDA0NCwgMHgxMzQxMDA0MiwgMHgxMzQxMDA0MCwgMHgxMzQxMDAzZSwK KwkweDEzNDEwMDNjLCAweDEzNDEwMDNiLCAweDEzNDEwMDM5LCAweDEzNDEwMDM3 LAorCTB4MTI0MTAwNDQsIDB4MTI0MTAwNDIsIDB4MTI0MTAwNDAsIDB4MTI0MTAw M2UsCisJMHgxMjQxMDAzYywgMHgxMjQxMDAzYiwgMHgxMjQxMDAzOSwgMHgxMjQx MDAzNywKKwkweDExNDEwMDQ0LCAweDExNDEwMDQyLCAweDExNDEwMDQwLCAweDEx NDEwMDNlLAorCTB4MTE0MTAwM2MsIDB4MTE0MTAwM2IsIDB4MTE0MTAwMzksIDB4 MTE0MTAwMzcsCisJMHgxMDQxMDA0NCwgMHgxMDQxMDA0MiwgMHgxMDQxMDA0MCwg MHgxMDQxMDAzZSwKKwkweDEwNDEwMDNjLCAweDEwNDEwMDNiLCAweDEwNDEwMDM5 LCAweDEwNDEwMDM3LAorfTsKKworY29uc3QgdTMyIGI0M19udGFiX3R4X2dhaW5f cmV2M181Z2h6W10gPSB7CisJMHhjZmY3MDA0NCwgMHhjZmY3MDA0MiwgMHhjZmY3 MDA0MCwgMHhjZmY3MDAzZSwKKwkweGNmZjcwMDNjLCAweGNmZjcwMDNiLCAweGNm ZjcwMDM5LCAweGNmZjcwMDM3LAorCTB4Y2VmNzAwNDQsIDB4Y2VmNzAwNDIsIDB4 Y2VmNzAwNDAsIDB4Y2VmNzAwM2UsCisJMHhjZWY3MDAzYywgMHhjZWY3MDAzYiwg MHhjZWY3MDAzOSwgMHhjZWY3MDAzNywKKwkweGNkZjcwMDQ0LCAweGNkZjcwMDQy LCAweGNkZjcwMDQwLCAweGNkZjcwMDNlLAorCTB4Y2RmNzAwM2MsIDB4Y2RmNzAw M2IsIDB4Y2RmNzAwMzksIDB4Y2RmNzAwMzcsCisJMHhjY2Y3MDA0NCwgMHhjY2Y3 MDA0MiwgMHhjY2Y3MDA0MCwgMHhjY2Y3MDAzZSwKKwkweGNjZjcwMDNjLCAweGNj ZjcwMDNiLCAweGNjZjcwMDM5LCAweGNjZjcwMDM3LAorCTB4Y2JmNzAwNDQsIDB4 Y2JmNzAwNDIsIDB4Y2JmNzAwNDAsIDB4Y2JmNzAwM2UsCisJMHhjYmY3MDAzYywg MHhjYmY3MDAzYiwgMHhjYmY3MDAzOSwgMHhjYmY3MDAzNywKKwkweGNhZjcwMDQ0 LCAweGNhZjcwMDQyLCAweGNhZjcwMDQwLCAweGNhZjcwMDNlLAorCTB4Y2FmNzAw M2MsIDB4Y2FmNzAwM2IsIDB4Y2FmNzAwMzksIDB4Y2FmNzAwMzcsCisJMHhjOWY3 MDA0NCwgMHhjOWY3MDA0MiwgMHhjOWY3MDA0MCwgMHhjOWY3MDAzZSwKKwkweGM5 ZjcwMDNjLCAweGM5ZjcwMDNiLCAweGM5ZjcwMDM5LCAweGM5ZjcwMDM3LAorCTB4 YzhmNzAwNDQsIDB4YzhmNzAwNDIsIDB4YzhmNzAwNDAsIDB4YzhmNzAwM2UsCisJ MHhjOGY3MDAzYywgMHhjOGY3MDAzYiwgMHhjOGY3MDAzOSwgMHhjOGY3MDAzNywK KwkweGM3ZjcwMDQ0LCAweGM3ZjcwMDQyLCAweGM3ZjcwMDQwLCAweGM3ZjcwMDNl LAorCTB4YzdmNzAwM2MsIDB4YzdmNzAwM2IsIDB4YzdmNzAwMzksIDB4YzdmNzAw MzcsCisJMHhjNmY3MDA0NCwgMHhjNmY3MDA0MiwgMHhjNmY3MDA0MCwgMHhjNmY3 MDAzZSwKKwkweGM2ZjcwMDNjLCAweGM2ZjcwMDNiLCAweGM2ZjcwMDM5LCAweGM2 ZjcwMDM3LAorCTB4YzVmNzAwNDQsIDB4YzVmNzAwNDIsIDB4YzVmNzAwNDAsIDB4 YzVmNzAwM2UsCisJMHhjNWY3MDAzYywgMHhjNWY3MDAzYiwgMHhjNWY3MDAzOSwg MHhjNWY3MDAzNywKKwkweGM0ZjcwMDQ0LCAweGM0ZjcwMDQyLCAweGM0ZjcwMDQw LCAweGM0ZjcwMDNlLAorCTB4YzRmNzAwM2MsIDB4YzRmNzAwM2IsIDB4YzRmNzAw MzksIDB4YzRmNzAwMzcsCisJMHhjM2Y3MDA0NCwgMHhjM2Y3MDA0MiwgMHhjM2Y3 MDA0MCwgMHhjM2Y3MDAzZSwKKwkweGMzZjcwMDNjLCAweGMzZjcwMDNiLCAweGMz ZjcwMDM5LCAweGMzZjcwMDM3LAorCTB4YzJmNzAwNDQsIDB4YzJmNzAwNDIsIDB4 YzJmNzAwNDAsIDB4YzJmNzAwM2UsCisJMHhjMmY3MDAzYywgMHhjMmY3MDAzYiwg MHhjMmY3MDAzOSwgMHhjMmY3MDAzNywKKwkweGMxZjcwMDQ0LCAweGMxZjcwMDQy LCAweGMxZjcwMDQwLCAweGMxZjcwMDNlLAorCTB4YzFmNzAwM2MsIDB4YzFmNzAw M2IsIDB4YzFmNzAwMzksIDB4YzFmNzAwMzcsCisJMHhjMGY3MDA0NCwgMHhjMGY3 MDA0MiwgMHhjMGY3MDA0MCwgMHhjMGY3MDAzZSwKKwkweGMwZjcwMDNjLCAweGMw ZjcwMDNiLCAweGMwZjcwMDM5LCAweGMwZjcwMDM3LAorfTsKKworY29uc3QgdTMy IGI0M19udGFiX3R4X2dhaW5fcmV2NF81Z2h6W10gPSB7CisJMHgyZmYyMDA0NCwg MHgyZmYyMDA0MiwgMHgyZmYyMDA0MCwgMHgyZmYyMDAzZSwKKwkweDJmZjIwMDNj LCAweDJmZjIwMDNiLCAweDJmZjIwMDM5LCAweDJmZjIwMDM3LAorCTB4MmVmMjAw NDQsIDB4MmVmMjAwNDIsIDB4MmVmMjAwNDAsIDB4MmVmMjAwM2UsCisJMHgyZWYy MDAzYywgMHgyZWYyMDAzYiwgMHgyZWYyMDAzOSwgMHgyZWYyMDAzNywKKwkweDJk ZjIwMDQ0LCAweDJkZjIwMDQyLCAweDJkZjIwMDQwLCAweDJkZjIwMDNlLAorCTB4 MmRmMjAwM2MsIDB4MmRmMjAwM2IsIDB4MmRmMjAwMzksIDB4MmRmMjAwMzcsCisJ MHgyY2YyMDA0NCwgMHgyY2YyMDA0MiwgMHgyY2YyMDA0MCwgMHgyY2YyMDAzZSwK KwkweDJjZjIwMDNjLCAweDJjZjIwMDNiLCAweDJjZjIwMDM5LCAweDJjZjIwMDM3 LAorCTB4MmJmMjAwNDQsIDB4MmJmMjAwNDIsIDB4MmJmMjAwNDAsIDB4MmJmMjAw M2UsCisJMHgyYmYyMDAzYywgMHgyYmYyMDAzYiwgMHgyYmYyMDAzOSwgMHgyYmYy MDAzNywKKwkweDJhZjIwMDQ0LCAweDJhZjIwMDQyLCAweDJhZjIwMDQwLCAweDJh ZjIwMDNlLAorCTB4MmFmMjAwM2MsIDB4MmFmMjAwM2IsIDB4MmFmMjAwMzksIDB4 MmFmMjAwMzcsCisJMHgyOWYyMDA0NCwgMHgyOWYyMDA0MiwgMHgyOWYyMDA0MCwg MHgyOWYyMDAzZSwKKwkweDI5ZjIwMDNjLCAweDI5ZjIwMDNiLCAweDI5ZjIwMDM5 LCAweDI5ZjIwMDM3LAorCTB4MjhmMjAwNDQsIDB4MjhmMjAwNDIsIDB4MjhmMjAw NDAsIDB4MjhmMjAwM2UsCisJMHgyOGYyMDAzYywgMHgyOGYyMDAzYiwgMHgyOGYy MDAzOSwgMHgyOGYyMDAzNywKKwkweDI3ZjIwMDQ0LCAweDI3ZjIwMDQyLCAweDI3 ZjIwMDQwLCAweDI3ZjIwMDNlLAorCTB4MjdmMjAwM2MsIDB4MjdmMjAwM2IsIDB4 MjdmMjAwMzksIDB4MjdmMjAwMzcsCisJMHgyNmYyMDA0NCwgMHgyNmYyMDA0Miwg MHgyNmYyMDA0MCwgMHgyNmYyMDAzZSwKKwkweDI2ZjIwMDNjLCAweDI2ZjIwMDNi LCAweDI2ZjIwMDM5LCAweDI2ZjIwMDM3LAorCTB4MjVmMjAwNDQsIDB4MjVmMjAw NDIsIDB4MjVmMjAwNDAsIDB4MjVmMjAwM2UsCisJMHgyNWYyMDAzYywgMHgyNWYy MDAzYiwgMHgyNWYyMDAzOSwgMHgyNWYyMDAzNywKKwkweDI0ZjIwMDQ0LCAweDI0 ZjIwMDQyLCAweDI0ZjIwMDQwLCAweDI0ZjIwMDNlLAorCTB4MjRmMjAwM2MsIDB4 MjRmMjAwM2IsIDB4MjRmMjAwMzksIDB4MjRmMjAwMzgsCisJMHgyM2YyMDA0MSwg MHgyM2YyMDA0MCwgMHgyM2YyMDAzZiwgMHgyM2YyMDAzZSwKKwkweDIzZjIwMDNj LCAweDIzZjIwMDNiLCAweDIzZjIwMDM5LCAweDIzZjIwMDM3LAorCTB4MjJmMjAw NDQsIDB4MjJmMjAwNDIsIDB4MjJmMjAwNDAsIDB4MjJmMjAwM2UsCisJMHgyMmYy MDAzYywgMHgyMmYyMDAzYiwgMHgyMmYyMDAzOSwgMHgyMmYyMDAzNywKKwkweDIx ZjIwMDQ0LCAweDIxZjIwMDQyLCAweDIxZjIwMDQwLCAweDIxZjIwMDNlLAorCTB4 MjFmMjAwM2MsIDB4MjFmMjAwM2IsIDB4MjFmMjAwMzksIDB4MjFmMjAwMzcsCisJ MHgyMGQyMDA0MywgMHgyMGQyMDA0MSwgMHgyMGQyMDAzZSwgMHgyMGQyMDAzYywK KwkweDIwZDIwMDNhLCAweDIwZDIwMDM4LCAweDIwZDIwMDM2LCAweDIwZDIwMDM0 LAorfTsKKworY29uc3QgdTMyIGI0M19udGFiX3R4X2dhaW5fcmV2NXBsdXNfNWdo eltdID0geworCTB4MGY2MjAwNGEsIDB4MGY2MjAwNDgsIDB4MGY2MjAwNDYsIDB4 MGY2MjAwNDQsCisJMHgwZjYyMDA0MiwgMHgwZjYyMDA0MCwgMHgwZjYyMDAzZSwg MHgwZjYyMDAzYywKKwkweDBlNjIwMDQ0LCAweDBlNjIwMDQyLCAweDBlNjIwMDQw LCAweDBlNjIwMDNlLAorCTB4MGU2MjAwM2MsIDB4MGU2MjAwM2QsIDB4MGU2MjAw M2IsIDB4MGU2MjAwM2EsCisJMHgwZDYyMDA0MywgMHgwZDYyMDA0MSwgMHgwZDYy MDA0MCwgMHgwZDYyMDAzZSwKKwkweDBkNjIwMDNkLCAweDBkNjIwMDNjLCAweDBk NjIwMDNiLCAweDBkNjIwMDNhLAorCTB4MGM2MjAwNDEsIDB4MGM2MjAwNDAsIDB4 MGM2MjAwM2YsIDB4MGM2MjAwM2UsCisJMHgwYzYyMDAzYywgMHgwYzYyMDAzYiwg MHgwYzYyMDAzOSwgMHgwYzYyMDAzNywKKwkweDBiNjIwMDQ2LCAweDBiNjIwMDQ0 LCAweDBiNjIwMDQyLCAweDBiNjIwMDQwLAorCTB4MGI2MjAwM2UsIDB4MGI2MjAw M2MsIDB4MGI2MjAwM2IsIDB4MGI2MjAwM2EsCisJMHgwYTYyMDA0MSwgMHgwYTYy MDA0MCwgMHgwYTYyMDAzZSwgMHgwYTYyMDAzYywKKwkweDBhNjIwMDNiLCAweDBh NjIwMDNhLCAweDBhNjIwMDM5LCAweDBhNjIwMDM4LAorCTB4MDk2MjAwM2UsIDB4 MDk2MjAwM2QsIDB4MDk2MjAwM2MsIDB4MDk2MjAwM2IsCisJMHgwOTYyMDAzOSwg MHgwOTYyMDAzNywgMHgwOTYyMDAzNSwgMHgwOTYyMDAzMywKKwkweDA4NjIwMDQ0 LCAweDA4NjIwMDQyLCAweDA4NjIwMDQwLCAweDA4NjIwMDNlLAorCTB4MDg2MjAw M2MsIDB4MDg2MjAwM2IsIDB4MDg2MjAwM2EsIDB4MDg2MjAwMzksCisJMHgwNzYy MDA0MywgMHgwNzYyMDA0MiwgMHgwNzYyMDA0MCwgMHgwNzYyMDAzZiwKKwkweDA3 NjIwMDNkLCAweDA3NjIwMDNiLCAweDA3NjIwMDNhLCAweDA3NjIwMDM5LAorCTB4 MDY2MjAwM2UsIDB4MDY2MjAwM2QsIDB4MDY2MjAwM2MsIDB4MDY2MjAwM2IsCisJ MHgwNjYyMDAzOSwgMHgwNjYyMDAzNywgMHgwNjYyMDAzNSwgMHgwNjYyMDAzMywK KwkweDA1NjIwMDQ2LCAweDA1NjIwMDQ0LCAweDA1NjIwMDQyLCAweDA1NjIwMDQw LAorCTB4MDU2MjAwM2UsIDB4MDU2MjAwM2MsIDB4MDU2MjAwM2IsIDB4MDU2MjAw MzksCisJMHgwNDYyMDA0NCwgMHgwNDYyMDA0MiwgMHgwNDYyMDA0MCwgMHgwNDYy MDAzZSwKKwkweDA0NjIwMDNjLCAweDA0NjIwMDNiLCAweDA0NjIwMDM5LCAweDA0 NjIwMDM4LAorCTB4MDM2MjAwM2MsIDB4MDM2MjAwM2IsIDB4MDM2MjAwM2EsIDB4 MDM2MjAwMzksCisJMHgwMzYyMDAzOCwgMHgwMzYyMDAzNywgMHgwMzYyMDAzNSwg MHgwMzYyMDAzMywKKwkweDAyNjIwMDRjLCAweDAyNjIwMDRhLCAweDAyNjIwMDQ4 LCAweDAyNjIwMDQ3LAorCTB4MDI2MjAwNDYsIDB4MDI2MjAwNDQsIDB4MDI2MjAw NDMsIDB4MDI2MjAwNDIsCisJMHgwMTYyMDA0YSwgMHgwMTYyMDA0OCwgMHgwMTYy MDA0NiwgMHgwMTYyMDA0NCwKKwkweDAxNjIwMDQzLCAweDAxNjIwMDQyLCAweDAx NjIwMDQxLCAweDAxNjIwMDQwLAorCTB4MDA2MjAwNDIsIDB4MDA2MjAwNDAsIDB4 MDA2MjAwM2UsIDB4MDA2MjAwM2MsCisJMHgwMDYyMDAzYiwgMHgwMDYyMDAzOSwg MHgwMDYyMDAzNywgMHgwMDYyMDAzNSwKK307CisKIHN0YXRpYyBpbmxpbmUgdm9p ZCBhc3NlcnRfbnRhYl9hcnJheV9zaXplcyh2b2lkKQogewogI3VuZGVmIGNoZWNr CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvdGFibGVzX25w aHkuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My90YWJsZXNfbnBoeS5oCmlu ZGV4IDFmMGE2MDIuLjQyM2M4ODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2I0My90YWJsZXNfbnBoeS5oCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2I0My90YWJsZXNfbnBoeS5oCkBAIC0xMzEsNCArMTMxLDEwIEBAIHZvaWQg YjQzX250YWJfd3JpdGUoc3RydWN0IGI0M193bGRldiAqZGV2LCB1MzIgb2Zmc2V0 LCB1MzIgdmFsdWUpOwogdm9pZCBiNDNfbnBoeV9yZXYwXzFfMl90YWJsZXNfaW5p dChzdHJ1Y3QgYjQzX3dsZGV2ICpkZXYpOwogdm9pZCBiNDNfbnBoeV9yZXYzcGx1 c190YWJsZXNfaW5pdChzdHJ1Y3QgYjQzX3dsZGV2ICpkZXYpOwogCitleHRlcm4g Y29uc3QgdTMyIGI0M19udGFiX3R4X2dhaW5fcmV2MF8xXzJbXTsKK2V4dGVybiBj b25zdCB1MzIgYjQzX250YWJfdHhfZ2Fpbl9yZXYzcGx1c18yZ2h6W107CitleHRl cm4gY29uc3QgdTMyIGI0M19udGFiX3R4X2dhaW5fcmV2M181Z2h6W107CitleHRl cm4gY29uc3QgdTMyIGI0M19udGFiX3R4X2dhaW5fcmV2NF81Z2h6W107CitleHRl cm4gY29uc3QgdTMyIGI0M19udGFiX3R4X2dhaW5fcmV2NXBsdXNfNWdoeltdOwor CiAjZW5kaWYgLyogQjQzX1RBQkxFU19OUEhZX0hfICovCi0tIAoxLjYuNC4yCgo= ------------UL60wBGrykRgyIEsZQl9tJ--