From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 04/13] libx86: Share struct cpuid_policy with userspace Date: Fri, 13 Jul 2018 21:03:05 +0100 Message-ID: <1531512194-6865-5-git-send-email-andrew.cooper3@citrix.com> References: <1531512194-6865-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1531512194-6865-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Sergey Dyasli , Ian Jackson , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgpCb3RoIFhlbiBh bmQgdGhlIHRvb2xzdGFjayBoYXZlIG5lZWQgb2YgdGhlIHNhbWUgbG9naWMgd2hlbiBpdCBjb21l cyB0bwptYW5pcHVsYXRpb24gYW5kIGNoZWNraW5nIG9mIHRoZSBDUFVJRCBhbmQgTVNSIHZhbHVl cyBvZmZlcmVkIHRvIGd1ZXN0cy4gIFRvCnRoYXQgZW5kLCBsaWJ4ODYgaXMgYmVpbmcgaW50cm9k dWNlZCB0byBhbGxvdyBYZW4gYW5kIHRoZSB0b29sc3RhY2sgdG8gc2hhcmUgYQpzaW5nbGUgaW1w bGVtZW50YXRpb24sIHJhdGhlciB0aGFuIGR1cGxpY2F0aW5nIHRoZSBsb2dpYy4KCk5vIGZ1bmN0 aW9uYWwgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1 QGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgot LS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25u w6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDQzogU2VyZ2V5IER5YXNsaSA8c2VyZ2V5LmR5YXNs aUBjaXRyaXguY29tPgpDQzogSWFuIEphY2tzb24gPElhbi5KYWNrc29uQGV1LmNpdHJpeC5jb20+ Cgp2MjoKICogTW92ZSBNQVgoKSBpbnRvIHhlbi10b29scy9saWJzLmgKICogRXhwYW5kIGNvbW1p dCBtZXNzYWdlLgotLS0KIHRvb2xzL2luY2x1ZGUveGVuLXRvb2xzL2xpYnMuaCB8ICAgNCArCiB4 ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkLmggICAgfCAyMTkgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL3hlbi9saWJ4ODYvY3B1aWQuaCB8IDIx OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFu Z2VkLCAyMjMgaW5zZXJ0aW9ucygrKSwgMjE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rv b2xzL2luY2x1ZGUveGVuLXRvb2xzL2xpYnMuaCBiL3Rvb2xzL2luY2x1ZGUveGVuLXRvb2xzL2xp YnMuaAppbmRleCA2M2UzNTA3Li5mNzhhM2I1IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL3hl bi10b29scy9saWJzLmgKKysrIGIvdG9vbHMvaW5jbHVkZS94ZW4tdG9vbHMvbGlicy5oCkBAIC0x Myw0ICsxMyw4IEBACiAjZGVmaW5lIEFSUkFZX1NJWkUoYSkgKHNpemVvZihhKSAvIHNpemVvZigq YSkpCiAjZW5kaWYKIAorI2lmbmRlZiBNQVgKKyNkZWZpbmUgTUFYKHgsIHkpICgoeCkgPiAoeSkg PyAoeCkgOiAoeSkpCisjZW5kaWYKKwogI2VuZGlmCS8qIF9fWEVOX1RPT0xTX0xJQlNfXyAqLwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZC5oIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9jcHVpZC5oCmluZGV4IDk2MzczMDMuLjdhM2YyZjQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL2FzbS14ODYvY3B1aWQuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkLmgKQEAg LTQsMTcgKzQsNiBAQAogI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlc2V0Lmg+CiAjaW5jbHVkZSA8 YXNtL3BlcmNwdS5oPgogCi0jZGVmaW5lIEZFQVRVUkVTRVRfMWQgICAgIDAgLyogMHgwMDAwMDAw MS5lZHggICAgICAqLwotI2RlZmluZSBGRUFUVVJFU0VUXzFjICAgICAxIC8qIDB4MDAwMDAwMDEu ZWN4ICAgICAgKi8KLSNkZWZpbmUgRkVBVFVSRVNFVF9lMWQgICAgMiAvKiAweDgwMDAwMDAxLmVk eCAgICAgICovCi0jZGVmaW5lIEZFQVRVUkVTRVRfZTFjICAgIDMgLyogMHg4MDAwMDAwMS5lY3gg ICAgICAqLwotI2RlZmluZSBGRUFUVVJFU0VUX0RhMSAgICA0IC8qIDB4MDAwMDAwMGQ6MS5lYXgg ICAgKi8KLSNkZWZpbmUgRkVBVFVSRVNFVF83YjAgICAgNSAvKiAweDAwMDAwMDA3OjAuZWJ4ICAg ICovCi0jZGVmaW5lIEZFQVRVUkVTRVRfN2MwICAgIDYgLyogMHgwMDAwMDAwNzowLmVjeCAgICAq LwotI2RlZmluZSBGRUFUVVJFU0VUX2U3ZCAgICA3IC8qIDB4ODAwMDAwMDcuZWR4ICAgICAgKi8K LSNkZWZpbmUgRkVBVFVSRVNFVF9lOGIgICAgOCAvKiAweDgwMDAwMDA4LmVieCAgICAgICovCi0j ZGVmaW5lIEZFQVRVUkVTRVRfN2QwICAgIDkgLyogMHgwMDAwMDAwNzowLmVkeCAgICAqLwotCiAj aWZuZGVmIF9fQVNTRU1CTFlfXwogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogI2luY2x1ZGUgPHhl bi9rZXJuZWwuaD4KQEAgLTYwLDIxNCArNDksNiBAQCBERUNMQVJFX1BFUl9DUFUoc3RydWN0IGNw dWlkbWFza3MsIGNwdWlkbWFza3MpOwogLyogRGVmYXVsdCBtYXNraW5nIE1TUiB2YWx1ZXMsIGNh bGN1bGF0ZWQgYXQgYm9vdC4gKi8KIGV4dGVybiBzdHJ1Y3QgY3B1aWRtYXNrcyBjcHVpZG1hc2tf ZGVmYXVsdHM7CiAKLSNkZWZpbmUgQ1BVSURfR1VFU1RfTlJfQkFTSUMgICAgICAoMHhkdSArIDEp Ci0jZGVmaW5lIENQVUlEX0dVRVNUX05SX0ZFQVQgICAgICAgKDB1ICsgMSkKLSNkZWZpbmUgQ1BV SURfR1VFU1RfTlJfQ0FDSEUgICAgICAoNXUgKyAxKQotI2RlZmluZSBDUFVJRF9HVUVTVF9OUl9U T1BPICAgICAgICgxdSArIDEpCi0jZGVmaW5lIENQVUlEX0dVRVNUX05SX1hTVEFURSAgICAgKDYy dSArIDEpCi0jZGVmaW5lIENQVUlEX0dVRVNUX05SX0VYVERfSU5URUwgKDB4OHUgKyAxKQotI2Rl ZmluZSBDUFVJRF9HVUVTVF9OUl9FWFREX0FNRCAgICgweDFjdSArIDEpCi0jZGVmaW5lIENQVUlE X0dVRVNUX05SX0VYVEQgICAgICAgTUFYKENQVUlEX0dVRVNUX05SX0VYVERfSU5URUwsIFwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVSURfR1VFU1RfTlJfRVhURF9B TUQpCi0KLXN0cnVjdCBjcHVpZF9wb2xpY3kKLXsKLSNkZWZpbmUgREVDTF9CSVRGSUVMRCh3b3Jk KSBfREVDTF9CSVRGSUVMRChGRUFUVVJFU0VUXyAjIyB3b3JkKQotI2RlZmluZSBfREVDTF9CSVRG SUVMRCh4KSAgIF9fREVDTF9CSVRGSUVMRCh4KQotI2RlZmluZSBfX0RFQ0xfQklURklFTEQoeCkg IENQVUlEX0JJVEZJRUxEXyAjIyB4Ci0KLSAgICAvKiBCYXNpYyBsZWF2ZXM6IDB4MDAwMDAweHgg Ki8KLSAgICB1bmlvbiB7Ci0gICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tDUFVJRF9HVUVT VF9OUl9CQVNJQ107Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAvKiBMZWFmIDB4MCAt IE1heCBhbmQgdmVuZG9yLiAqLwotICAgICAgICAgICAgdWludDMyX3QgbWF4X2xlYWYsIHZlbmRv cl9lYngsIHZlbmRvcl9lY3gsIHZlbmRvcl9lZHg7Ci0KLSAgICAgICAgICAgIC8qIExlYWYgMHgx IC0gRmFtaWx5L21vZGVsL3N0ZXBwaW5nIGFuZCBmZWF0dXJlcy4gKi8KLSAgICAgICAgICAgIHVp bnQzMl90IHJhd19mbXM7Ci0gICAgICAgICAgICB1aW50OF90IDo4LCAgICAgICAvKiBCcmFuZCBJ RC4gKi8KLSAgICAgICAgICAgICAgICBjbGZsdXNoX3NpemUsIC8qIE51bWJlciBvZiA4LWJ5dGUg YmxvY2tzIHBlciBjYWNoZSBsaW5lLiAqLwotICAgICAgICAgICAgICAgIGxwcHAsICAgICAgICAg LyogTG9naWNhbCBwcm9jZXNzb3JzIHBlciBwYWNrYWdlLiAqLwotICAgICAgICAgICAgICAgIGFw aWNfaWQ7ICAgICAgLyogSW5pdGlhbCBBUElDIElELiAqLwotICAgICAgICAgICAgdW5pb24gewot ICAgICAgICAgICAgICAgIHVpbnQzMl90IF8xYzsKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgeyBE RUNMX0JJVEZJRUxEKDFjKTsgfTsKLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB1bmlvbiB7 Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgXzFkOwotICAgICAgICAgICAgICAgIHN0cnVjdCB7 IERFQ0xfQklURklFTEQoMWQpOyB9OwotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgLyog TGVhZiAweDIgLSBUTEIvQ2FjaGUvUHJlZmV0Y2guICovCi0gICAgICAgICAgICB1aW50OF90IGwy X25yX3F1ZXJpZXM7IC8qIERvY3VtZW50ZWQgYXMgZml4ZWQgdG8gMS4gKi8KLSAgICAgICAgICAg IHVpbnQ4X3QgbDJfZGVzY1sxNV07Ci0KLSAgICAgICAgICAgIHVpbnQ2NF90IDo2NCwgOjY0OyAv KiBMZWFmIDB4MyAtIFBTTi4gKi8KLSAgICAgICAgICAgIHVpbnQ2NF90IDo2NCwgOjY0OyAvKiBM ZWFmIDB4NCAtIFN0cnVjdHVyZWQgQ2FjaGUuICovCi0gICAgICAgICAgICB1aW50NjRfdCA6NjQs IDo2NDsgLyogTGVhZiAweDUgLSBNT05JVE9SLiAqLwotICAgICAgICAgICAgdWludDY0X3QgOjY0 LCA6NjQ7IC8qIExlYWYgMHg2IC0gVGhlcm0vUGVyZi4gKi8KLSAgICAgICAgICAgIHVpbnQ2NF90 IDo2NCwgOjY0OyAvKiBMZWFmIDB4NyAtIFN0cnVjdHVyZWQgRmVhdHVyZXMuICovCi0gICAgICAg ICAgICB1aW50NjRfdCA6NjQsIDo2NDsgLyogTGVhZiAweDggLSByc3ZkICovCi0gICAgICAgICAg ICB1aW50NjRfdCA6NjQsIDo2NDsgLyogTGVhZiAweDkgLSBEQ0EgKi8KLQotICAgICAgICAgICAg LyogTGVhZiAweGEgLSBJbnRlbCBQTVUuICovCi0gICAgICAgICAgICB1aW50OF90IHBtdV92ZXJz aW9uLCBfcG11WzE1XTsKLQotICAgICAgICAgICAgdWludDY0X3QgOjY0LCA6NjQ7IC8qIExlYWYg MHhiIC0gVG9wb2xvZ3kuICovCi0gICAgICAgICAgICB1aW50NjRfdCA6NjQsIDo2NDsgLyogTGVh ZiAweGMgLSByc3ZkICovCi0gICAgICAgICAgICB1aW50NjRfdCA6NjQsIDo2NDsgLyogTGVhZiAw eGQgLSBYU1RBVEUuICovCi0gICAgICAgIH07Ci0gICAgfSBiYXNpYzsKLQotICAgIC8qIFN0cnVj dHVyZWQgY2FjaGUgbGVhZjogMHgwMDAwMDAwNFt4eF0gKi8KLSAgICB1bmlvbiB7Ci0gICAgICAg IHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tDUFVJRF9HVUVTVF9OUl9DQUNIRV07Ci0gICAgICAgIHN0 cnVjdCBjcHVpZF9jYWNoZV9sZWFmIHsKLSAgICAgICAgICAgIHVpbnQzMl90IHR5cGU6NSwKLSAg ICAgICAgICAgICAgICA6MjcsIDozMiwgOjMyLCA6MzI7Ci0gICAgICAgIH0gc3VibGVhZltDUFVJ RF9HVUVTVF9OUl9DQUNIRV07Ci0gICAgfSBjYWNoZTsKLQotICAgIC8qIFN0cnVjdHVyZWQgZmVh dHVyZSBsZWFmOiAweDAwMDAwMDA3W3h4XSAqLwotICAgIHVuaW9uIHsKLSAgICAgICAgc3RydWN0 IGNwdWlkX2xlYWYgcmF3W0NQVUlEX0dVRVNUX05SX0ZFQVRdOwotICAgICAgICBzdHJ1Y3Qgewot ICAgICAgICAgICAgLyogU3VibGVhZiAwLiAqLwotICAgICAgICAgICAgdWludDMyX3QgbWF4X3N1 YmxlYWY7Ci0gICAgICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgXzdi MDsKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgeyBERUNMX0JJVEZJRUxEKDdiMCk7IH07Ci0gICAg ICAgICAgICB9OwotICAgICAgICAgICAgdW5pb24gewotICAgICAgICAgICAgICAgIHVpbnQzMl90 IF83YzA7Ci0gICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVMRCg3YzApOyB9Owot ICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHVuaW9uIHsKLSAgICAgICAgICAgICAgICB1aW50 MzJfdCBfN2QwOwotICAgICAgICAgICAgICAgIHN0cnVjdCB7IERFQ0xfQklURklFTEQoN2QwKTsg fTsKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0gICAgfSBmZWF0OwotCi0gICAgLyogRXh0 ZW5kZWQgdG9wb2xvZ3kgZW51bWVyYXRpb246IDB4MDAwMDAwMEJbeHhdICovCi0gICAgdW5pb24g ewotICAgICAgICBzdHJ1Y3QgY3B1aWRfbGVhZiByYXdbQ1BVSURfR1VFU1RfTlJfVE9QT107Ci0g ICAgICAgIHN0cnVjdCBjcHVpZF90b3BvX2xlYWYgewotICAgICAgICAgICAgdWludDMyX3QgaWRf c2hpZnQ6NSwgOjI3OwotICAgICAgICAgICAgdWludDE2X3QgbnJfbG9naWNhbCwgOjE2OwotICAg ICAgICAgICAgdWludDhfdCBsZXZlbCwgdHlwZSwgOjgsIDo4OwotICAgICAgICAgICAgdWludDMy X3QgeDJhcGljX2lkOwotICAgICAgICB9IHN1YmxlYWZbQ1BVSURfR1VFU1RfTlJfVE9QT107Ci0g ICAgfSB0b3BvOwotCi0gICAgLyogWHN0YXRlIGZlYXR1cmUgbGVhZjogMHgwMDAwMDAwRFt4eF0g Ki8KLSAgICB1bmlvbiB7Ci0gICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tDUFVJRF9HVUVT VF9OUl9YU1RBVEVdOwotCi0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAvKiBTdWJsZWFm IDAuICovCi0gICAgICAgICAgICB1aW50MzJfdCB4Y3IwX2xvdywgLyogYiAqLzozMiwgbWF4X3Np emUsIHhjcjBfaGlnaDsKLQotICAgICAgICAgICAgLyogU3VibGVhZiAxLiAqLwotICAgICAgICAg ICAgdW5pb24gewotICAgICAgICAgICAgICAgIHVpbnQzMl90IERhMTsKLSAgICAgICAgICAgICAg ICBzdHJ1Y3QgeyBERUNMX0JJVEZJRUxEKERhMSk7IH07Ci0gICAgICAgICAgICB9OwotICAgICAg ICAgICAgdWludDMyX3QgLyogYiAqLzozMiwgeHNzX2xvdywgeHNzX2hpZ2g7Ci0gICAgICAgIH07 Ci0KLSAgICAgICAgLyogUGVyLWNvbXBvbmVudCBjb21tb24gc3RhdGUuICBWYWxpZCBmb3IgaSA+ PSAyLiAqLwotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgdWludDMyX3Qgc2l6ZSwgb2Zm c2V0OwotICAgICAgICAgICAgYm9vbCB4c3M6MSwgYWxpZ246MTsKLSAgICAgICAgICAgIHVpbnQz Ml90IF9yZXNfZDsKLSAgICAgICAgfSBjb21wW0NQVUlEX0dVRVNUX05SX1hTVEFURV07Ci0gICAg fSB4c3RhdGU7Ci0KLSAgICAvKiBFeHRlbmRlZCBsZWF2ZXM6IDB4ODAwMDAweHggKi8KLSAgICB1 bmlvbiB7Ci0gICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tDUFVJRF9HVUVTVF9OUl9FWFRE XTsKLSAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIC8qIExlYWYgMHg4MDAwMDAwMCAtIE1h eCBhbmQgdmVuZG9yLiAqLwotICAgICAgICAgICAgdWludDMyX3QgbWF4X2xlYWYsIHZlbmRvcl9l YngsIHZlbmRvcl9lY3gsIHZlbmRvcl9lZHg7Ci0KLSAgICAgICAgICAgIC8qIExlYWYgMHg4MDAw MDAwMSAtIEZhbWlseS9tb2RlbC9zdGVwcGluZyBhbmQgZmVhdHVyZXMuICovCi0gICAgICAgICAg ICB1aW50MzJfdCByYXdfZm1zLCAvKiBiICovOjMyOwotICAgICAgICAgICAgdW5pb24gewotICAg ICAgICAgICAgICAgIHVpbnQzMl90IGUxYzsKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgeyBERUNM X0JJVEZJRUxEKGUxYyk7IH07Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAgdW5pb24gewot ICAgICAgICAgICAgICAgIHVpbnQzMl90IGUxZDsKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgeyBE RUNMX0JJVEZJRUxEKGUxZCk7IH07Ci0gICAgICAgICAgICB9OwotCi0gICAgICAgICAgICB1aW50 NjRfdCA6NjQsIDo2NDsgLyogQnJhbmQgc3RyaW5nLiAqLwotICAgICAgICAgICAgdWludDY0X3Qg OjY0LCA6NjQ7IC8qIEJyYW5kIHN0cmluZy4gKi8KLSAgICAgICAgICAgIHVpbnQ2NF90IDo2NCwg OjY0OyAvKiBCcmFuZCBzdHJpbmcuICovCi0gICAgICAgICAgICB1aW50NjRfdCA6NjQsIDo2NDsg LyogTDEgY2FjaGUvVExCLiAqLwotICAgICAgICAgICAgdWludDY0X3QgOjY0LCA6NjQ7IC8qIEwy LzMgY2FjaGUvVExCLiAqLwotCi0gICAgICAgICAgICAvKiBMZWFmIDB4ODAwMDAwMDcgLSBBZHZh bmNlZCBQb3dlciBNYW5hZ2VtZW50LiAqLwotICAgICAgICAgICAgdWludDMyX3QgLyogYSAqLzoz MiwgLyogYiAqLzozMiwgLyogYyAqLzozMjsKLSAgICAgICAgICAgIHVuaW9uIHsKLSAgICAgICAg ICAgICAgICB1aW50MzJfdCBlN2Q7Ci0gICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRG SUVMRChlN2QpOyB9OwotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgLyogTGVhZiAweDgw MDAwMDA4IC0gTWlzYyBhZGRyL2ZlYXR1cmUgaW5mby4gKi8KLSAgICAgICAgICAgIHVpbnQ4X3Qg bWF4cGh5c2FkZHIsIG1heGxpbmFkZHIsIDo4LCA6ODsKLSAgICAgICAgICAgIHVuaW9uIHsKLSAg ICAgICAgICAgICAgICB1aW50MzJfdCBlOGI7Ci0gICAgICAgICAgICAgICAgc3RydWN0IHsgREVD TF9CSVRGSUVMRChlOGIpOyB9OwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHVpbnQzMl90 IC8qIGMgKi86MzIsIC8qIGQgKi86MzI7Ci0gICAgICAgIH07Ci0gICAgfSBleHRkOwotCi0jdW5k ZWYgX19ERUNMX0JJVEZJRUxECi0jdW5kZWYgX0RFQ0xfQklURklFTEQKLSN1bmRlZiBERUNMX0JJ VEZJRUxECi0KLSAgICAvKiBUb29sc3RhY2sgc2VsZWN0ZWQgSHlwZXJ2aXNvciBtYXhfbGVhZiAo aWYgbm9uLXplcm8pLiAqLwotICAgIHVpbnQ4X3QgaHZfbGltaXQsIGh2Ml9saW1pdDsKLQotICAg IC8qIFZhbHVlIGNhbGN1bGF0ZWQgZnJvbSByYXcgZGF0YSBhYm92ZS4gKi8KLSAgICB1aW50OF90 IHg4Nl92ZW5kb3I7Ci19OwotCi0vKiBGaWxsIGluIGEgZmVhdHVyZXNldCBiaXRtYXAgZnJvbSBh IENQVUlEIHBvbGljeS4gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBjcHVpZF9wb2xpY3lfdG9fZmVh dHVyZXNldCgKLSAgICBjb25zdCBzdHJ1Y3QgY3B1aWRfcG9saWN5ICpwLCB1aW50MzJfdCBmc1tG U0NBUElOVFNdKQotewotICAgIGZzW0ZFQVRVUkVTRVRfMWRdICA9IHAtPmJhc2ljLl8xZDsKLSAg ICBmc1tGRUFUVVJFU0VUXzFjXSAgPSBwLT5iYXNpYy5fMWM7Ci0gICAgZnNbRkVBVFVSRVNFVF9l MWRdID0gcC0+ZXh0ZC5lMWQ7Ci0gICAgZnNbRkVBVFVSRVNFVF9lMWNdID0gcC0+ZXh0ZC5lMWM7 Ci0gICAgZnNbRkVBVFVSRVNFVF9EYTFdID0gcC0+eHN0YXRlLkRhMTsKLSAgICBmc1tGRUFUVVJF U0VUXzdiMF0gPSBwLT5mZWF0Ll83YjA7Ci0gICAgZnNbRkVBVFVSRVNFVF83YzBdID0gcC0+ZmVh dC5fN2MwOwotICAgIGZzW0ZFQVRVUkVTRVRfZTdkXSA9IHAtPmV4dGQuZTdkOwotICAgIGZzW0ZF QVRVUkVTRVRfZThiXSA9IHAtPmV4dGQuZThiOwotICAgIGZzW0ZFQVRVUkVTRVRfN2QwXSA9IHAt PmZlYXQuXzdkMDsKLX0KLQotLyogRmlsbCBpbiBhIENQVUlEIHBvbGljeSBmcm9tIGEgZmVhdHVy ZXNldCBiaXRtYXAuICovCi1zdGF0aWMgaW5saW5lIHZvaWQgY3B1aWRfZmVhdHVyZXNldF90b19w b2xpY3koCi0gICAgY29uc3QgdWludDMyX3QgZnNbRlNDQVBJTlRTXSwgc3RydWN0IGNwdWlkX3Bv bGljeSAqcCkKLXsKLSAgICBwLT5iYXNpYy5fMWQgID0gZnNbRkVBVFVSRVNFVF8xZF07Ci0gICAg cC0+YmFzaWMuXzFjICA9IGZzW0ZFQVRVUkVTRVRfMWNdOwotICAgIHAtPmV4dGQuZTFkICAgPSBm c1tGRUFUVVJFU0VUX2UxZF07Ci0gICAgcC0+ZXh0ZC5lMWMgICA9IGZzW0ZFQVRVUkVTRVRfZTFj XTsKLSAgICBwLT54c3RhdGUuRGExID0gZnNbRkVBVFVSRVNFVF9EYTFdOwotICAgIHAtPmZlYXQu XzdiMCAgPSBmc1tGRUFUVVJFU0VUXzdiMF07Ci0gICAgcC0+ZmVhdC5fN2MwICA9IGZzW0ZFQVRV UkVTRVRfN2MwXTsKLSAgICBwLT5leHRkLmU3ZCAgID0gZnNbRkVBVFVSRVNFVF9lN2RdOwotICAg IHAtPmV4dGQuZThiICAgPSBmc1tGRUFUVVJFU0VUX2U4Yl07Ci0gICAgcC0+ZmVhdC5fN2QwICA9 IGZzW0ZFQVRVUkVTRVRfN2QwXTsKLX0KLQogZXh0ZXJuIHN0cnVjdCBjcHVpZF9wb2xpY3kgcmF3 X2NwdWlkX3BvbGljeSwgaG9zdF9jcHVpZF9wb2xpY3ksCiAgICAgcHZfbWF4X2NwdWlkX3BvbGlj eSwgaHZtX21heF9jcHVpZF9wb2xpY3k7CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9s aWJ4ODYvY3B1aWQuaCBiL3hlbi9pbmNsdWRlL3hlbi9saWJ4ODYvY3B1aWQuaAppbmRleCA4ZjEw MWJhLi42OWJkOGE5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vbGlieDg2L2NwdWlkLmgK KysrIGIveGVuL2luY2x1ZGUveGVuL2xpYng4Ni9jcHVpZC5oCkBAIC00LDExICs0LDIzMCBAQAog CiAjaW5jbHVkZSA8eGVuL2xpYng4Ni9jcHVpZC1hdXRvZ2VuLmg+CiAKKyNkZWZpbmUgRkVBVFVS RVNFVF8xZCAgICAgMCAvKiAweDAwMDAwMDAxLmVkeCAgICAgICovCisjZGVmaW5lIEZFQVRVUkVT RVRfMWMgICAgIDEgLyogMHgwMDAwMDAwMS5lY3ggICAgICAqLworI2RlZmluZSBGRUFUVVJFU0VU X2UxZCAgICAyIC8qIDB4ODAwMDAwMDEuZWR4ICAgICAgKi8KKyNkZWZpbmUgRkVBVFVSRVNFVF9l MWMgICAgMyAvKiAweDgwMDAwMDAxLmVjeCAgICAgICovCisjZGVmaW5lIEZFQVRVUkVTRVRfRGEx ICAgIDQgLyogMHgwMDAwMDAwZDoxLmVheCAgICAqLworI2RlZmluZSBGRUFUVVJFU0VUXzdiMCAg ICA1IC8qIDB4MDAwMDAwMDc6MC5lYnggICAgKi8KKyNkZWZpbmUgRkVBVFVSRVNFVF83YzAgICAg NiAvKiAweDAwMDAwMDA3OjAuZWN4ICAgICovCisjZGVmaW5lIEZFQVRVUkVTRVRfZTdkICAgIDcg LyogMHg4MDAwMDAwNy5lZHggICAgICAqLworI2RlZmluZSBGRUFUVVJFU0VUX2U4YiAgICA4IC8q IDB4ODAwMDAwMDguZWJ4ICAgICAgKi8KKyNkZWZpbmUgRkVBVFVSRVNFVF83ZDAgICAgOSAvKiAw eDAwMDAwMDA3OjAuZWR4ICAgICovCisKIHN0cnVjdCBjcHVpZF9sZWFmCiB7CiAgICAgdWludDMy X3QgYSwgYiwgYywgZDsKIH07CiAKKyNkZWZpbmUgQ1BVSURfR1VFU1RfTlJfQkFTSUMgICAgICAo MHhkdSArIDEpCisjZGVmaW5lIENQVUlEX0dVRVNUX05SX0ZFQVQgICAgICAgKDB1ICsgMSkKKyNk ZWZpbmUgQ1BVSURfR1VFU1RfTlJfQ0FDSEUgICAgICAoNXUgKyAxKQorI2RlZmluZSBDUFVJRF9H VUVTVF9OUl9UT1BPICAgICAgICgxdSArIDEpCisjZGVmaW5lIENQVUlEX0dVRVNUX05SX1hTVEFU RSAgICAgKDYydSArIDEpCisjZGVmaW5lIENQVUlEX0dVRVNUX05SX0VYVERfSU5URUwgKDB4OHUg KyAxKQorI2RlZmluZSBDUFVJRF9HVUVTVF9OUl9FWFREX0FNRCAgICgweDFjdSArIDEpCisjZGVm aW5lIENQVUlEX0dVRVNUX05SX0VYVEQgICAgICAgTUFYKENQVUlEX0dVRVNUX05SX0VYVERfSU5U RUwsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVSURfR1VFU1Rf TlJfRVhURF9BTUQpCisKK3N0cnVjdCBjcHVpZF9wb2xpY3kKK3sKKyNkZWZpbmUgREVDTF9CSVRG SUVMRCh3b3JkKSBfREVDTF9CSVRGSUVMRChGRUFUVVJFU0VUXyAjIyB3b3JkKQorI2RlZmluZSBf REVDTF9CSVRGSUVMRCh4KSAgIF9fREVDTF9CSVRGSUVMRCh4KQorI2RlZmluZSBfX0RFQ0xfQklU RklFTEQoeCkgIENQVUlEX0JJVEZJRUxEXyAjIyB4CisKKyAgICAvKiBCYXNpYyBsZWF2ZXM6IDB4 MDAwMDAweHggKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tD UFVJRF9HVUVTVF9OUl9CQVNJQ107CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAvKiBM ZWFmIDB4MCAtIE1heCBhbmQgdmVuZG9yLiAqLworICAgICAgICAgICAgdWludDMyX3QgbWF4X2xl YWYsIHZlbmRvcl9lYngsIHZlbmRvcl9lY3gsIHZlbmRvcl9lZHg7CisKKyAgICAgICAgICAgIC8q IExlYWYgMHgxIC0gRmFtaWx5L21vZGVsL3N0ZXBwaW5nIGFuZCBmZWF0dXJlcy4gKi8KKyAgICAg ICAgICAgIHVpbnQzMl90IHJhd19mbXM7CisgICAgICAgICAgICB1aW50OF90IDo4LCAgICAgICAv KiBCcmFuZCBJRC4gKi8KKyAgICAgICAgICAgICAgICBjbGZsdXNoX3NpemUsIC8qIE51bWJlciBv ZiA4LWJ5dGUgYmxvY2tzIHBlciBjYWNoZSBsaW5lLiAqLworICAgICAgICAgICAgICAgIGxwcHAs ICAgICAgICAgLyogTG9naWNhbCBwcm9jZXNzb3JzIHBlciBwYWNrYWdlLiAqLworICAgICAgICAg ICAgICAgIGFwaWNfaWQ7ICAgICAgLyogSW5pdGlhbCBBUElDIElELiAqLworICAgICAgICAgICAg dW5pb24geworICAgICAgICAgICAgICAgIHVpbnQzMl90IF8xYzsKKyAgICAgICAgICAgICAgICBz dHJ1Y3QgeyBERUNMX0JJVEZJRUxEKDFjKTsgfTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAg ICB1bmlvbiB7CisgICAgICAgICAgICAgICAgdWludDMyX3QgXzFkOworICAgICAgICAgICAgICAg IHN0cnVjdCB7IERFQ0xfQklURklFTEQoMWQpOyB9OworICAgICAgICAgICAgfTsKKworICAgICAg ICAgICAgLyogTGVhZiAweDIgLSBUTEIvQ2FjaGUvUHJlZmV0Y2guICovCisgICAgICAgICAgICB1 aW50OF90IGwyX25yX3F1ZXJpZXM7IC8qIERvY3VtZW50ZWQgYXMgZml4ZWQgdG8gMS4gKi8KKyAg ICAgICAgICAgIHVpbnQ4X3QgbDJfZGVzY1sxNV07CisKKyAgICAgICAgICAgIHVpbnQ2NF90IDo2 NCwgOjY0OyAvKiBMZWFmIDB4MyAtIFBTTi4gKi8KKyAgICAgICAgICAgIHVpbnQ2NF90IDo2NCwg OjY0OyAvKiBMZWFmIDB4NCAtIFN0cnVjdHVyZWQgQ2FjaGUuICovCisgICAgICAgICAgICB1aW50 NjRfdCA6NjQsIDo2NDsgLyogTGVhZiAweDUgLSBNT05JVE9SLiAqLworICAgICAgICAgICAgdWlu dDY0X3QgOjY0LCA6NjQ7IC8qIExlYWYgMHg2IC0gVGhlcm0vUGVyZi4gKi8KKyAgICAgICAgICAg IHVpbnQ2NF90IDo2NCwgOjY0OyAvKiBMZWFmIDB4NyAtIFN0cnVjdHVyZWQgRmVhdHVyZXMuICov CisgICAgICAgICAgICB1aW50NjRfdCA6NjQsIDo2NDsgLyogTGVhZiAweDggLSByc3ZkICovCisg ICAgICAgICAgICB1aW50NjRfdCA6NjQsIDo2NDsgLyogTGVhZiAweDkgLSBEQ0EgKi8KKworICAg ICAgICAgICAgLyogTGVhZiAweGEgLSBJbnRlbCBQTVUuICovCisgICAgICAgICAgICB1aW50OF90 IHBtdV92ZXJzaW9uLCBfcG11WzE1XTsKKworICAgICAgICAgICAgdWludDY0X3QgOjY0LCA6NjQ7 IC8qIExlYWYgMHhiIC0gVG9wb2xvZ3kuICovCisgICAgICAgICAgICB1aW50NjRfdCA6NjQsIDo2 NDsgLyogTGVhZiAweGMgLSByc3ZkICovCisgICAgICAgICAgICB1aW50NjRfdCA6NjQsIDo2NDsg LyogTGVhZiAweGQgLSBYU1RBVEUuICovCisgICAgICAgIH07CisgICAgfSBiYXNpYzsKKworICAg IC8qIFN0cnVjdHVyZWQgY2FjaGUgbGVhZjogMHgwMDAwMDAwNFt4eF0gKi8KKyAgICB1bmlvbiB7 CisgICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tDUFVJRF9HVUVTVF9OUl9DQUNIRV07Cisg ICAgICAgIHN0cnVjdCBjcHVpZF9jYWNoZV9sZWFmIHsKKyAgICAgICAgICAgIHVpbnQzMl90IHR5 cGU6NSwKKyAgICAgICAgICAgICAgICA6MjcsIDozMiwgOjMyLCA6MzI7CisgICAgICAgIH0gc3Vi bGVhZltDUFVJRF9HVUVTVF9OUl9DQUNIRV07CisgICAgfSBjYWNoZTsKKworICAgIC8qIFN0cnVj dHVyZWQgZmVhdHVyZSBsZWFmOiAweDAwMDAwMDA3W3h4XSAqLworICAgIHVuaW9uIHsKKyAgICAg ICAgc3RydWN0IGNwdWlkX2xlYWYgcmF3W0NQVUlEX0dVRVNUX05SX0ZFQVRdOworICAgICAgICBz dHJ1Y3QgeworICAgICAgICAgICAgLyogU3VibGVhZiAwLiAqLworICAgICAgICAgICAgdWludDMy X3QgbWF4X3N1YmxlYWY7CisgICAgICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICAgICAgdWlu dDMyX3QgXzdiMDsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgeyBERUNMX0JJVEZJRUxEKDdiMCk7 IH07CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAg IHVpbnQzMl90IF83YzA7CisgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVMRCg3 YzApOyB9OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAg ICAgICB1aW50MzJfdCBfN2QwOworICAgICAgICAgICAgICAgIHN0cnVjdCB7IERFQ0xfQklURklF TEQoN2QwKTsgfTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfSBmZWF0OworCisg ICAgLyogRXh0ZW5kZWQgdG9wb2xvZ3kgZW51bWVyYXRpb246IDB4MDAwMDAwMEJbeHhdICovCisg ICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgY3B1aWRfbGVhZiByYXdbQ1BVSURfR1VFU1RfTlJf VE9QT107CisgICAgICAgIHN0cnVjdCBjcHVpZF90b3BvX2xlYWYgeworICAgICAgICAgICAgdWlu dDMyX3QgaWRfc2hpZnQ6NSwgOjI3OworICAgICAgICAgICAgdWludDE2X3QgbnJfbG9naWNhbCwg OjE2OworICAgICAgICAgICAgdWludDhfdCBsZXZlbCwgdHlwZSwgOjgsIDo4OworICAgICAgICAg ICAgdWludDMyX3QgeDJhcGljX2lkOworICAgICAgICB9IHN1YmxlYWZbQ1BVSURfR1VFU1RfTlJf VE9QT107CisgICAgfSB0b3BvOworCisgICAgLyogWHN0YXRlIGZlYXR1cmUgbGVhZjogMHgwMDAw MDAwRFt4eF0gKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tD UFVJRF9HVUVTVF9OUl9YU1RBVEVdOworCisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAv KiBTdWJsZWFmIDAuICovCisgICAgICAgICAgICB1aW50MzJfdCB4Y3IwX2xvdywgLyogYiAqLzoz MiwgbWF4X3NpemUsIHhjcjBfaGlnaDsKKworICAgICAgICAgICAgLyogU3VibGVhZiAxLiAqLwor ICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVpbnQzMl90IERhMTsKKyAgICAg ICAgICAgICAgICBzdHJ1Y3QgeyBERUNMX0JJVEZJRUxEKERhMSk7IH07CisgICAgICAgICAgICB9 OworICAgICAgICAgICAgdWludDMyX3QgLyogYiAqLzozMiwgeHNzX2xvdywgeHNzX2hpZ2g7Cisg ICAgICAgIH07CisKKyAgICAgICAgLyogUGVyLWNvbXBvbmVudCBjb21tb24gc3RhdGUuICBWYWxp ZCBmb3IgaSA+PSAyLiAqLworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3Qg c2l6ZSwgb2Zmc2V0OworICAgICAgICAgICAgYm9vbCB4c3M6MSwgYWxpZ246MTsKKyAgICAgICAg ICAgIHVpbnQzMl90IF9yZXNfZDsKKyAgICAgICAgfSBjb21wW0NQVUlEX0dVRVNUX05SX1hTVEFU RV07CisgICAgfSB4c3RhdGU7CisKKyAgICAvKiBFeHRlbmRlZCBsZWF2ZXM6IDB4ODAwMDAweHgg Ki8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tDUFVJRF9HVUVT VF9OUl9FWFREXTsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIC8qIExlYWYgMHg4MDAw MDAwMCAtIE1heCBhbmQgdmVuZG9yLiAqLworICAgICAgICAgICAgdWludDMyX3QgbWF4X2xlYWYs IHZlbmRvcl9lYngsIHZlbmRvcl9lY3gsIHZlbmRvcl9lZHg7CisKKyAgICAgICAgICAgIC8qIExl YWYgMHg4MDAwMDAwMSAtIEZhbWlseS9tb2RlbC9zdGVwcGluZyBhbmQgZmVhdHVyZXMuICovCisg ICAgICAgICAgICB1aW50MzJfdCByYXdfZm1zLCAvKiBiICovOjMyOworICAgICAgICAgICAgdW5p b24geworICAgICAgICAgICAgICAgIHVpbnQzMl90IGUxYzsKKyAgICAgICAgICAgICAgICBzdHJ1 Y3QgeyBERUNMX0JJVEZJRUxEKGUxYyk7IH07CisgICAgICAgICAgICB9OworICAgICAgICAgICAg dW5pb24geworICAgICAgICAgICAgICAgIHVpbnQzMl90IGUxZDsKKyAgICAgICAgICAgICAgICBz dHJ1Y3QgeyBERUNMX0JJVEZJRUxEKGUxZCk7IH07CisgICAgICAgICAgICB9OworCisgICAgICAg ICAgICB1aW50NjRfdCA6NjQsIDo2NDsgLyogQnJhbmQgc3RyaW5nLiAqLworICAgICAgICAgICAg dWludDY0X3QgOjY0LCA6NjQ7IC8qIEJyYW5kIHN0cmluZy4gKi8KKyAgICAgICAgICAgIHVpbnQ2 NF90IDo2NCwgOjY0OyAvKiBCcmFuZCBzdHJpbmcuICovCisgICAgICAgICAgICB1aW50NjRfdCA6 NjQsIDo2NDsgLyogTDEgY2FjaGUvVExCLiAqLworICAgICAgICAgICAgdWludDY0X3QgOjY0LCA6 NjQ7IC8qIEwyLzMgY2FjaGUvVExCLiAqLworCisgICAgICAgICAgICAvKiBMZWFmIDB4ODAwMDAw MDcgLSBBZHZhbmNlZCBQb3dlciBNYW5hZ2VtZW50LiAqLworICAgICAgICAgICAgdWludDMyX3Qg LyogYSAqLzozMiwgLyogYiAqLzozMiwgLyogYyAqLzozMjsKKyAgICAgICAgICAgIHVuaW9uIHsK KyAgICAgICAgICAgICAgICB1aW50MzJfdCBlN2Q7CisgICAgICAgICAgICAgICAgc3RydWN0IHsg REVDTF9CSVRGSUVMRChlN2QpOyB9OworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgLyog TGVhZiAweDgwMDAwMDA4IC0gTWlzYyBhZGRyL2ZlYXR1cmUgaW5mby4gKi8KKyAgICAgICAgICAg IHVpbnQ4X3QgbWF4cGh5c2FkZHIsIG1heGxpbmFkZHIsIDo4LCA6ODsKKyAgICAgICAgICAgIHVu aW9uIHsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBlOGI7CisgICAgICAgICAgICAgICAgc3Ry dWN0IHsgREVDTF9CSVRGSUVMRChlOGIpOyB9OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAg IHVpbnQzMl90IC8qIGMgKi86MzIsIC8qIGQgKi86MzI7CisgICAgICAgIH07CisgICAgfSBleHRk OworCisjdW5kZWYgX19ERUNMX0JJVEZJRUxECisjdW5kZWYgX0RFQ0xfQklURklFTEQKKyN1bmRl ZiBERUNMX0JJVEZJRUxECisKKyAgICAvKiBUb29sc3RhY2sgc2VsZWN0ZWQgSHlwZXJ2aXNvciBt YXhfbGVhZiAoaWYgbm9uLXplcm8pLiAqLworICAgIHVpbnQ4X3QgaHZfbGltaXQsIGh2Ml9saW1p dDsKKworICAgIC8qIFZhbHVlIGNhbGN1bGF0ZWQgZnJvbSByYXcgZGF0YSBhYm92ZS4gKi8KKyAg ICB1aW50OF90IHg4Nl92ZW5kb3I7Cit9OworCisvKiBGaWxsIGluIGEgZmVhdHVyZXNldCBiaXRt YXAgZnJvbSBhIENQVUlEIHBvbGljeS4gKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBjcHVpZF9wb2xp Y3lfdG9fZmVhdHVyZXNldCgKKyAgICBjb25zdCBzdHJ1Y3QgY3B1aWRfcG9saWN5ICpwLCB1aW50 MzJfdCBmc1tGRUFUVVJFU0VUX05SX0VOVFJJRVNdKQoreworICAgIGZzW0ZFQVRVUkVTRVRfMWRd ICA9IHAtPmJhc2ljLl8xZDsKKyAgICBmc1tGRUFUVVJFU0VUXzFjXSAgPSBwLT5iYXNpYy5fMWM7 CisgICAgZnNbRkVBVFVSRVNFVF9lMWRdID0gcC0+ZXh0ZC5lMWQ7CisgICAgZnNbRkVBVFVSRVNF VF9lMWNdID0gcC0+ZXh0ZC5lMWM7CisgICAgZnNbRkVBVFVSRVNFVF9EYTFdID0gcC0+eHN0YXRl LkRhMTsKKyAgICBmc1tGRUFUVVJFU0VUXzdiMF0gPSBwLT5mZWF0Ll83YjA7CisgICAgZnNbRkVB VFVSRVNFVF83YzBdID0gcC0+ZmVhdC5fN2MwOworICAgIGZzW0ZFQVRVUkVTRVRfZTdkXSA9IHAt PmV4dGQuZTdkOworICAgIGZzW0ZFQVRVUkVTRVRfZThiXSA9IHAtPmV4dGQuZThiOworICAgIGZz W0ZFQVRVUkVTRVRfN2QwXSA9IHAtPmZlYXQuXzdkMDsKK30KKworLyogRmlsbCBpbiBhIENQVUlE IHBvbGljeSBmcm9tIGEgZmVhdHVyZXNldCBiaXRtYXAuICovCitzdGF0aWMgaW5saW5lIHZvaWQg Y3B1aWRfZmVhdHVyZXNldF90b19wb2xpY3koCisgICAgY29uc3QgdWludDMyX3QgZnNbRkVBVFVS RVNFVF9OUl9FTlRSSUVTXSwgc3RydWN0IGNwdWlkX3BvbGljeSAqcCkKK3sKKyAgICBwLT5iYXNp Yy5fMWQgID0gZnNbRkVBVFVSRVNFVF8xZF07CisgICAgcC0+YmFzaWMuXzFjICA9IGZzW0ZFQVRV UkVTRVRfMWNdOworICAgIHAtPmV4dGQuZTFkICAgPSBmc1tGRUFUVVJFU0VUX2UxZF07CisgICAg cC0+ZXh0ZC5lMWMgICA9IGZzW0ZFQVRVUkVTRVRfZTFjXTsKKyAgICBwLT54c3RhdGUuRGExID0g ZnNbRkVBVFVSRVNFVF9EYTFdOworICAgIHAtPmZlYXQuXzdiMCAgPSBmc1tGRUFUVVJFU0VUXzdi MF07CisgICAgcC0+ZmVhdC5fN2MwICA9IGZzW0ZFQVRVUkVTRVRfN2MwXTsKKyAgICBwLT5leHRk LmU3ZCAgID0gZnNbRkVBVFVSRVNFVF9lN2RdOworICAgIHAtPmV4dGQuZThiICAgPSBmc1tGRUFU VVJFU0VUX2U4Yl07CisgICAgcC0+ZmVhdC5fN2QwICA9IGZzW0ZFQVRVUkVTRVRfN2QwXTsKK30K KwogI2VuZGlmIC8qICFYRU5fTElCWDg2X0NQVUlEX0ggKi8KIAogLyoKLS0gCjIuMS40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==