From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Bragg Subject: [PATCH igt v3 02/11] igt/gem_exec_parse: some minor cleanups Date: Wed, 9 Nov 2016 16:15:53 +0000 Message-ID: <20161109161602.2402-3-robert@sixbynine.org> References: <20161109161602.2402-1-robert@sixbynine.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 841E86E6F1 for ; Wed, 9 Nov 2016 16:16:29 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id c17so30149934wmc.3 for ; Wed, 09 Nov 2016 08:16:29 -0800 (PST) In-Reply-To: <20161109161602.2402-1-robert@sixbynine.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBub3JtYWxpemVzIHRoZSBleGVjYnVmIHV0aWxpdGllcyBpbiB0aGlzIGZpbGUgdG8gYWxs IHVzZSBtZW1zZXQgdG8KY2xlYXIgb2JqLCByZWxvYyBhbmQgZXhlY2J1ZiBzdHJ1Y3R1cmVzIGFu ZCBzZXQgdGhlbSB1cCBpbiB0aGUgc2FtZQpvcmRlci4gQXMgSSB3YXMgZGVidWdnaW5nIHNvbWUg dW5wcmVkaWN0YWJsZSB0ZXN0IGZhaWx1cmVzIEkgd2FzIGdldHRpbmcKdW5zdXJlIHRoYXQgYWxs IHRoZXNlIHN0cnVjdHVyZXMgd2VyZSBiZWluZyBmdWxseSBpbml0aWFsaXplZC4KClRoZSBzYW1l IEk5MTVfR0VNX0RPTUFJTl9DT01NQU5EIGRvbWFpbiBpcyBub3cgdXNlZCB3aXRoIGFsbCByZWxv Y3MuCgpUaGUgcmVnaXN0ZXIvY29tbWFuZCBkZWZpbmVzIGhhdmUgYmVlbiBtb3ZlZCB0byB0aGUg dG9wIG9mIHRoZSBmaWxlIHRvCmJlIGF2YWlsYWJsZSB0byBhbGwgdGVzdHMvdXRpbGl0aWVzLgoK VGhlIGhhbmRsZSArIGZkIHZhcmlhYmxlcyBhcmUgbm93IHN0YXRpYy4KClNpZ25lZC1vZmYtYnk6 IFJvYmVydCBCcmFnZyA8cm9iZXJ0QHNpeGJ5bmluZS5vcmc+Ci0tLQogdGVzdHMvZ2VtX2V4ZWNf cGFyc2UuYyB8IDE5NiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgMTMwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9leGVjX3BhcnNlLmMgYi90ZXN0cy9nZW1fZXhlY19w YXJzZS5jCmluZGV4IGEzOWRiM2UuLjcyZDdjN2IgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2dlbV9leGVj X3BhcnNlLmMKKysrIGIvdGVzdHMvZ2VtX2V4ZWNfcGFyc2UuYwpAQCAtMzcsNiArMzcsMjAgQEAK ICNkZWZpbmUgT0FDT05UUk9MIDB4MjM2MAogI2RlZmluZSBERVJSTVIgMHg0NDA1MAogCisjZGVm aW5lIEhTV19DU19HUFIobikgKDB4MjYwMCArIDgqKG4pKQorI2RlZmluZSBIU1dfQ1NfR1BSMCBI U1dfQ1NfR1BSKDApCisjZGVmaW5lIEhTV19DU19HUFIxIEhTV19DU19HUFIoMSkKKworI2RlZmlu ZSBNSV9MT0FEX1JFR0lTVEVSX1JFRyAoMHgyYSA8PCAyMykKKyNkZWZpbmUgTUlfU1RPUkVfUkVH SVNURVJfTUVNICgweDI0IDw8IDIzKQorI2RlZmluZSBNSV9BUkJfT05fT0ZGICgweDggPDwgMjMp CisjZGVmaW5lIE1JX0RJU1BMQVlfRkxJUCAoKDB4MTQgPDwgMjMpIHwgMSkKKworI2RlZmluZSBH RlhfT1BfUElQRV9DT05UUk9MCSgoMHgzPDwyOSl8KDB4Mzw8MjcpfCgweDI8PDI0KXwyKQorI2Rl ZmluZSAgIFBJUEVfQ09OVFJPTF9RV19XUklURQkoMTw8MTQpCisjZGVmaW5lICAgUElQRV9DT05U Uk9MX0xSSV9QT1NUX09QICgxPDwyMykKKworCiBzdGF0aWMgaW50IGNvbW1hbmRfcGFyc2VyX3Zl cnNpb24oaW50IGZkKQogewogCWludCB2ZXJzaW9uID0gLTE7CkBAIC01MSwxMiArNjUsNiBAQCBz dGF0aWMgaW50IGNvbW1hbmRfcGFyc2VyX3ZlcnNpb24oaW50IGZkKQogCXJldHVybiAtMTsKIH0K IAotI2RlZmluZSBIU1dfQ1NfR1BSKG4pICgweDI2MDAgKyA4KihuKSkKLSNkZWZpbmUgSFNXX0NT X0dQUjAgSFNXX0NTX0dQUigwKQotI2RlZmluZSBIU1dfQ1NfR1BSMSBIU1dfQ1NfR1BSKDEpCi0K LSNkZWZpbmUgTUlfTE9BRF9SRUdJU1RFUl9SRUcgKDB4MmEgPDwgMjMpCi0jZGVmaW5lIE1JX1NU T1JFX1JFR0lTVEVSX01FTSAoMHgyNCA8PCAyMykKIHN0YXRpYyB2b2lkIGhzd19sb2FkX3JlZ2lz dGVyX3JlZyh2b2lkKQogewogCXVpbnQzMl90IGJ1ZlsxNl0gPSB7CkBAIC0xMDAsMTMgKzEwOCwx MyBAQCBzdGF0aWMgdm9pZCBoc3dfbG9hZF9yZWdpc3Rlcl9yZWcodm9pZCkKIAlyZWxvY1swXS5v ZmZzZXQgPSA3KnNpemVvZih1aW50MzJfdCk7CiAJcmVsb2NbMF0udGFyZ2V0X2hhbmRsZSA9IG9i alswXS5oYW5kbGU7CiAJcmVsb2NbMF0uZGVsdGEgPSAwOwotCXJlbG9jWzBdLnJlYWRfZG9tYWlu cyA9IEk5MTVfR0VNX0RPTUFJTl9JTlNUUlVDVElPTjsKLQlyZWxvY1swXS53cml0ZV9kb21haW4g PSBJOTE1X0dFTV9ET01BSU5fSU5TVFJVQ1RJT047CisJcmVsb2NbMF0ucmVhZF9kb21haW5zID0g STkxNV9HRU1fRE9NQUlOX0NPTU1BTkQ7CisJcmVsb2NbMF0ud3JpdGVfZG9tYWluID0gSTkxNV9H RU1fRE9NQUlOX0NPTU1BTkQ7CiAJcmVsb2NbMV0ub2Zmc2V0ID0gMTMqc2l6ZW9mKHVpbnQzMl90 KTsKIAlyZWxvY1sxXS50YXJnZXRfaGFuZGxlID0gb2JqWzBdLmhhbmRsZTsKIAlyZWxvY1sxXS5k ZWx0YSA9IHNpemVvZih1aW50MzJfdCk7Ci0JcmVsb2NbMV0ucmVhZF9kb21haW5zID0gSTkxNV9H RU1fRE9NQUlOX0lOU1RSVUNUSU9OOwotCXJlbG9jWzFdLndyaXRlX2RvbWFpbiA9IEk5MTVfR0VN X0RPTUFJTl9JTlNUUlVDVElPTjsKKwlyZWxvY1sxXS5yZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9E T01BSU5fQ09NTUFORDsKKwlyZWxvY1sxXS53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5f Q09NTUFORDsKIAlvYmpbMV0ucmVsb2NzX3B0ciA9ICh1aW50cHRyX3QpJnJlbG9jOwogCW9ialsx XS5yZWxvY2F0aW9uX2NvdW50ID0gMjsKIApAQCAtMTUyLDcgKzE2MCw3IEBAIHN0YXRpYyB2b2lk IGV4ZWNfYmF0Y2hfcGF0Y2hlZChpbnQgZmQsIHVpbnQzMl90IGNtZF9ibywgdWludDMyX3QgKmNt ZHMsCiAJCQkgICAgICAgaW50IHNpemUsIGludCBwYXRjaF9vZmZzZXQsIHVpbnQ2NF90IGV4cGVj dGVkX3ZhbHVlKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsK LQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpzWzJdOworCXN0cnVjdCBkcm1f aTkxNV9nZW1fZXhlY19vYmplY3QyIG9ialsyXTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9j YXRpb25fZW50cnkgcmVsb2NbMV07CiAKIAl1aW50MzJfdCB0YXJnZXRfYm8gPSBnZW1fY3JlYXRl KGZkLCA0MDk2KTsKQEAgLTE2MCw0MiArMTY4LDI0IEBAIHN0YXRpYyB2b2lkIGV4ZWNfYmF0Y2hf cGF0Y2hlZChpbnQgZmQsIHVpbnQzMl90IGNtZF9ibywgdWludDMyX3QgKmNtZHMsCiAKIAlnZW1f d3JpdGUoZmQsIGNtZF9ibywgMCwgY21kcywgc2l6ZSk7CiAKKwltZW1zZXQob2JqLCAwLCBzaXpl b2Yob2JqKSk7CisJb2JqWzBdLmhhbmRsZSA9IHRhcmdldF9ibzsKKwlvYmpbMV0uaGFuZGxlID0g Y21kX2JvOworCisJbWVtc2V0KHJlbG9jLCAwLCBzaXplb2YocmVsb2MpKTsKIAlyZWxvY1swXS5v ZmZzZXQgPSBwYXRjaF9vZmZzZXQ7CisJcmVsb2NbMF0udGFyZ2V0X2hhbmRsZSA9IG9ialswXS5o YW5kbGU7CiAJcmVsb2NbMF0uZGVsdGEgPSAwOwotCXJlbG9jWzBdLnRhcmdldF9oYW5kbGUgPSB0 YXJnZXRfYm87Ci0JcmVsb2NbMF0ucmVhZF9kb21haW5zID0gSTkxNV9HRU1fRE9NQUlOX1JFTkRF UjsKLQlyZWxvY1swXS53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fUkVOREVSOwotCXJl bG9jWzBdLnByZXN1bWVkX29mZnNldCA9IDA7Ci0KLQlvYmpzWzBdLmhhbmRsZSA9IHRhcmdldF9i bzsKLQlvYmpzWzBdLnJlbG9jYXRpb25fY291bnQgPSAwOwotCW9ianNbMF0ucmVsb2NzX3B0ciA9 IDA7Ci0Jb2Jqc1swXS5hbGlnbm1lbnQgPSAwOwotCW9ianNbMF0ub2Zmc2V0ID0gMDsKLQlvYmpz WzBdLmZsYWdzID0gMDsKLQlvYmpzWzBdLnJzdmQxID0gMDsKLQlvYmpzWzBdLnJzdmQyID0gMDsK LQotCW9ianNbMV0uaGFuZGxlID0gY21kX2JvOwotCW9ianNbMV0ucmVsb2NhdGlvbl9jb3VudCA9 IDE7Ci0Jb2Jqc1sxXS5yZWxvY3NfcHRyID0gKHVpbnRwdHJfdClyZWxvYzsKLQlvYmpzWzFdLmFs aWdubWVudCA9IDA7Ci0Jb2Jqc1sxXS5vZmZzZXQgPSAwOwotCW9ianNbMV0uZmxhZ3MgPSAwOwot CW9ianNbMV0ucnN2ZDEgPSAwOwotCW9ianNbMV0ucnN2ZDIgPSAwOwotCi0JZXhlY2J1Zi5idWZm ZXJzX3B0ciA9ICh1aW50cHRyX3Qpb2JqczsKKwlyZWxvY1swXS5yZWFkX2RvbWFpbnMgPSBJOTE1 X0dFTV9ET01BSU5fQ09NTUFORDsKKwlyZWxvY1swXS53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9E T01BSU5fQ09NTUFORDsKKwlvYmpbMV0ucmVsb2NzX3B0ciA9ICh1aW50cHRyX3QpcmVsb2M7CisJ b2JqWzFdLnJlbG9jYXRpb25fY291bnQgPSAxOworCisJbWVtc2V0KCZleGVjYnVmLCAwLCBzaXpl b2YoZXhlY2J1ZikpOworCWV4ZWNidWYuYnVmZmVyc19wdHIgPSAodWludHB0cl90KW9iajsKIAll eGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDI7Ci0JZXhlY2J1Zi5iYXRjaF9zdGFydF9vZmZzZXQgPSAw OwogCWV4ZWNidWYuYmF0Y2hfbGVuID0gc2l6ZTsKLQlleGVjYnVmLmNsaXByZWN0c19wdHIgPSAw OwotCWV4ZWNidWYubnVtX2NsaXByZWN0cyA9IDA7Ci0JZXhlY2J1Zi5EUjEgPSAwOwotCWV4ZWNi dWYuRFI0ID0gMDsKIAlleGVjYnVmLmZsYWdzID0gSTkxNV9FWEVDX1JFTkRFUjsKLQlpOTE1X2V4 ZWNidWZmZXIyX3NldF9jb250ZXh0X2lkKGV4ZWNidWYsIDApOwotCWV4ZWNidWYucnN2ZDIgPSAw OwogCiAJZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKIAlnZW1fc3luYyhmZCwgY21kX2JvKTsK QEAgLTIxMCwzMCArMjAwLDE4IEBAIHN0YXRpYyBpbnQgX19leGVjX2JhdGNoKGludCBmZCwgdWlu dDMyX3QgY21kX2JvLCB1aW50MzJfdCAqY21kcywKIAkJCWludCBzaXplLCBpbnQgcmluZykKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9leGVjX29iamVjdDIgb2Jqc1sxXTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNf b2JqZWN0MiBvYmpbMV07CiAKIAlnZW1fd3JpdGUoZmQsIGNtZF9ibywgMCwgY21kcywgc2l6ZSk7 CiAKLQlvYmpzWzBdLmhhbmRsZSA9IGNtZF9ibzsKLQlvYmpzWzBdLnJlbG9jYXRpb25fY291bnQg PSAwOwotCW9ianNbMF0ucmVsb2NzX3B0ciA9IDA7Ci0Jb2Jqc1swXS5hbGlnbm1lbnQgPSAwOwot CW9ianNbMF0ub2Zmc2V0ID0gMDsKLQlvYmpzWzBdLmZsYWdzID0gMDsKLQlvYmpzWzBdLnJzdmQx ID0gMDsKLQlvYmpzWzBdLnJzdmQyID0gMDsKKwltZW1zZXQob2JqLCAwLCBzaXplb2Yob2JqKSk7 CisJb2JqWzBdLmhhbmRsZSA9IGNtZF9ibzsKIAotCWV4ZWNidWYuYnVmZmVyc19wdHIgPSAodWlu dHB0cl90KW9ianM7CisJbWVtc2V0KCZleGVjYnVmLCAwLCBzaXplb2YoZXhlY2J1ZikpOworCWV4 ZWNidWYuYnVmZmVyc19wdHIgPSAodWludHB0cl90KW9iajsKIAlleGVjYnVmLmJ1ZmZlcl9jb3Vu dCA9IDE7Ci0JZXhlY2J1Zi5iYXRjaF9zdGFydF9vZmZzZXQgPSAwOwogCWV4ZWNidWYuYmF0Y2hf bGVuID0gc2l6ZTsKLQlleGVjYnVmLmNsaXByZWN0c19wdHIgPSAwOwotCWV4ZWNidWYubnVtX2Ns aXByZWN0cyA9IDA7Ci0JZXhlY2J1Zi5EUjEgPSAwOwotCWV4ZWNidWYuRFI0ID0gMDsKIAlleGVj YnVmLmZsYWdzID0gcmluZzsKLQlpOTE1X2V4ZWNidWZmZXIyX3NldF9jb250ZXh0X2lkKGV4ZWNi dWYsIDApOwotCWV4ZWNidWYucnN2ZDIgPSAwOwogCiAJcmV0dXJuIF9fZ2VtX2V4ZWNidWYoZmQs ICZleGVjYnVmKTsKIH0KQEAgLTI0NCw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCBleGVjX3NwbGl0 X2JhdGNoKGludCBmZCwgdWludDMyX3QgKmNtZHMsCiAJCQkgICAgIGludCBzaXplLCBpbnQgcmlu ZywgaW50IGV4cGVjdGVkX3JldCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIy IGV4ZWNidWY7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2Jqc1sxXTsKKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbMV07CiAJdWludDMyX3QgY21kX2Jv OwogCXVpbnQzMl90IG5vb3BbMTAyNF0gPSB7IDAgfTsKIAljb25zdCBpbnQgYWxsb2Nfc2l6ZSA9 IDQwOTYgKiAyOwpAQCAtMjYxLDE2ICsyMzksMTEgQEAgc3RhdGljIHZvaWQgZXhlY19zcGxpdF9i YXRjaChpbnQgZmQsIHVpbnQzMl90ICpjbWRzLAogCSAqLwogCWdlbV93cml0ZShmZCwgY21kX2Jv LCBhY3R1YWxfc3RhcnRfb2Zmc2V0LCBjbWRzLCBzaXplKTsKIAotCW9ianNbMF0uaGFuZGxlID0g Y21kX2JvOwotCW9ianNbMF0ucmVsb2NhdGlvbl9jb3VudCA9IDA7Ci0Jb2Jqc1swXS5yZWxvY3Nf cHRyID0gMDsKLQlvYmpzWzBdLmFsaWdubWVudCA9IDA7Ci0Jb2Jqc1swXS5vZmZzZXQgPSAwOwot CW9ianNbMF0uZmxhZ3MgPSAwOwotCW9ianNbMF0ucnN2ZDEgPSAwOwotCW9ianNbMF0ucnN2ZDIg PSAwOworCW1lbXNldChvYmosIDAsIHNpemVvZihvYmopKTsKKwlvYmpbMF0uaGFuZGxlID0gY21k X2JvOwogCi0JZXhlY2J1Zi5idWZmZXJzX3B0ciA9ICh1aW50cHRyX3Qpb2JqczsKKwltZW1zZXQo JmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7CisJZXhlY2J1Zi5idWZmZXJzX3B0ciA9ICh1 aW50cHRyX3Qpb2JqOwogCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMTsKIAkvKiBOQjogV2Ugd2Fu dCBiYXRjaF9zdGFydF9vZmZzZXQgYW5kIGJhdGNoX2xlbiB0byBwb2ludCB0byB0aGUgYmxvY2sK IAkgKiBvZiB0aGUgYWN0dWFsIGNvbW1hbmRzIChpLmUuIGF0IHRoZSBsYXN0IGR3b3JkIG9mIHRo ZSBmaXJzdCBwYWdlKSwKQEAgLTI4MSwxMyArMjU0LDcgQEAgc3RhdGljIHZvaWQgZXhlY19zcGxp dF9iYXRjaChpbnQgZmQsIHVpbnQzMl90ICpjbWRzLAogCWV4ZWNidWYuYmF0Y2hfbGVuID0KIAkJ QUxJR04oc2l6ZSArIGFjdHVhbF9zdGFydF9vZmZzZXQgLSBleGVjYnVmLmJhdGNoX3N0YXJ0X29m ZnNldCwKIAkJICAgICAgMHg4KTsKLQlleGVjYnVmLmNsaXByZWN0c19wdHIgPSAwOwotCWV4ZWNi dWYubnVtX2NsaXByZWN0cyA9IDA7Ci0JZXhlY2J1Zi5EUjEgPSAwOwotCWV4ZWNidWYuRFI0ID0g MDsKIAlleGVjYnVmLmZsYWdzID0gcmluZzsKLQlpOTE1X2V4ZWNidWZmZXIyX3NldF9jb250ZXh0 X2lkKGV4ZWNidWYsIDApOwotCWV4ZWNidWYucnN2ZDIgPSAwOwogCiAJaWd0X2Fzc2VydF9lcShf X2dlbV9leGVjYnVmKGZkLCAmZXhlY2J1ZiksIGV4cGVjdGVkX3JldCk7CiAKQEAgLTMwMCw4ICsy NjcsOCBAQCBzdGF0aWMgdm9pZCBleGVjX2JhdGNoX2NoYWluZWQoaW50IGZkLCB1aW50MzJfdCBj bWRfYm8sIHVpbnQzMl90ICpjbWRzLAogCQkJICAgICAgIHVpbnQ2NF90IGV4cGVjdGVkX3ZhbHVl KQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpzWzNdOwotCXN0cnVjdCBkcm1faTkxNV9nZW1f cmVsb2NhdGlvbl9lbnRyeSByZWxvYzsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0 MiBvYmpbM107CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5IHJlbG9jWzFd OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVsb2NhdGlvbl9lbnRyeSBmaXJzdF9sZXZlbF9yZWxv YzsKIAogCXVpbnQzMl90IHRhcmdldF9ibyA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwpAQCAtMzIy LDU4ICsyODksMzQgQEAgc3RhdGljIHZvaWQgZXhlY19iYXRjaF9jaGFpbmVkKGludCBmZCwgdWlu dDMyX3QgY21kX2JvLCB1aW50MzJfdCAqY21kcywKIAkJICBmaXJzdF9sZXZlbF9jbWRzLCBzaXpl b2YoZmlyc3RfbGV2ZWxfY21kcykpOwogCWdlbV93cml0ZShmZCwgY21kX2JvLCAwLCBjbWRzLCBz aXplKTsKIAotCXJlbG9jLm9mZnNldCA9IHBhdGNoX29mZnNldDsKLQlyZWxvYy5kZWx0YSA9IDA7 Ci0JcmVsb2MudGFyZ2V0X2hhbmRsZSA9IHRhcmdldF9ibzsKLQlyZWxvYy5yZWFkX2RvbWFpbnMg PSBJOTE1X0dFTV9ET01BSU5fUkVOREVSOwotCXJlbG9jLndyaXRlX2RvbWFpbiA9IEk5MTVfR0VN X0RPTUFJTl9SRU5ERVI7Ci0JcmVsb2MucHJlc3VtZWRfb2Zmc2V0ID0gMDsKKwltZW1zZXQob2Jq LCAwLCBzaXplb2Yob2JqKSk7CisJb2JqWzBdLmhhbmRsZSA9IHRhcmdldF9ibzsKKwlvYmpbMV0u aGFuZGxlID0gY21kX2JvOworCW9ialsyXS5oYW5kbGUgPSBmaXJzdF9sZXZlbF9ibzsKKworCW1l bXNldChyZWxvYywgMCwgc2l6ZW9mKHJlbG9jKSk7CisJcmVsb2NbMF0ub2Zmc2V0ID0gcGF0Y2hf b2Zmc2V0OworCXJlbG9jWzBdLmRlbHRhID0gMDsKKwlyZWxvY1swXS50YXJnZXRfaGFuZGxlID0g dGFyZ2V0X2JvOworCXJlbG9jWzBdLnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9DT01N QU5EOworCXJlbG9jWzBdLndyaXRlX2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9DT01NQU5EOwor CW9ialsxXS5yZWxvY2F0aW9uX2NvdW50ID0gMTsKKwlvYmpbMV0ucmVsb2NzX3B0ciA9ICh1aW50 cHRyX3QpJnJlbG9jOwogCisJbWVtc2V0KCZmaXJzdF9sZXZlbF9yZWxvYywgMCwgc2l6ZW9mKGZp cnN0X2xldmVsX3JlbG9jKSk7CiAJZmlyc3RfbGV2ZWxfcmVsb2Mub2Zmc2V0ID0gNDsKIAlmaXJz dF9sZXZlbF9yZWxvYy5kZWx0YSA9IDA7CiAJZmlyc3RfbGV2ZWxfcmVsb2MudGFyZ2V0X2hhbmRs ZSA9IGNtZF9ibzsKLQlmaXJzdF9sZXZlbF9yZWxvYy5yZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9E T01BSU5fSU5TVFJVQ1RJT047CisJZmlyc3RfbGV2ZWxfcmVsb2MucmVhZF9kb21haW5zID0gSTkx NV9HRU1fRE9NQUlOX0NPTU1BTkQ7CiAJZmlyc3RfbGV2ZWxfcmVsb2Mud3JpdGVfZG9tYWluID0g MDsKLQlmaXJzdF9sZXZlbF9yZWxvYy5wcmVzdW1lZF9vZmZzZXQgPSAwOwotCi0Jb2Jqc1swXS5o YW5kbGUgPSB0YXJnZXRfYm87Ci0Jb2Jqc1swXS5yZWxvY2F0aW9uX2NvdW50ID0gMDsKLQlvYmpz WzBdLnJlbG9jc19wdHIgPSAwOwotCW9ianNbMF0uYWxpZ25tZW50ID0gMDsKLQlvYmpzWzBdLm9m ZnNldCA9IDA7Ci0Jb2Jqc1swXS5mbGFncyA9IDA7Ci0Jb2Jqc1swXS5yc3ZkMSA9IDA7Ci0Jb2Jq c1swXS5yc3ZkMiA9IDA7Ci0KLQlvYmpzWzFdLmhhbmRsZSA9IGNtZF9ibzsKLQlvYmpzWzFdLnJl bG9jYXRpb25fY291bnQgPSAxOwotCW9ianNbMV0ucmVsb2NzX3B0ciA9ICh1aW50cHRyX3QpJnJl bG9jOwotCW9ianNbMV0uYWxpZ25tZW50ID0gMDsKLQlvYmpzWzFdLm9mZnNldCA9IDA7Ci0Jb2Jq c1sxXS5mbGFncyA9IDA7Ci0Jb2Jqc1sxXS5yc3ZkMSA9IDA7Ci0Jb2Jqc1sxXS5yc3ZkMiA9IDA7 Ci0KLQlvYmpzWzJdLmhhbmRsZSA9IGZpcnN0X2xldmVsX2JvOwotCW9ianNbMl0ucmVsb2NhdGlv bl9jb3VudCA9IDE7Ci0Jb2Jqc1syXS5yZWxvY3NfcHRyID0gKHVpbnRwdHJfdCkmZmlyc3RfbGV2 ZWxfcmVsb2M7Ci0Jb2Jqc1syXS5hbGlnbm1lbnQgPSAwOwotCW9ianNbMl0ub2Zmc2V0ID0gMDsK LQlvYmpzWzJdLmZsYWdzID0gMDsKLQlvYmpzWzJdLnJzdmQxID0gMDsKLQlvYmpzWzJdLnJzdmQy ID0gMDsKLQotCWV4ZWNidWYuYnVmZmVyc19wdHIgPSAodWludHB0cl90KW9ianM7CisJb2JqWzJd LnJlbG9jYXRpb25fY291bnQgPSAxOworCW9ialsyXS5yZWxvY3NfcHRyID0gKHVpbnRwdHJfdCkm Zmlyc3RfbGV2ZWxfcmVsb2M7CisKKwltZW1zZXQoJmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVm KSk7CisJZXhlY2J1Zi5idWZmZXJzX3B0ciA9ICh1aW50cHRyX3Qpb2JqOwogCWV4ZWNidWYuYnVm ZmVyX2NvdW50ID0gMzsKLQlleGVjYnVmLmJhdGNoX3N0YXJ0X29mZnNldCA9IDA7CiAJZXhlY2J1 Zi5iYXRjaF9sZW4gPSBzaXplb2YoZmlyc3RfbGV2ZWxfY21kcyk7Ci0JZXhlY2J1Zi5jbGlwcmVj dHNfcHRyID0gMDsKLQlleGVjYnVmLm51bV9jbGlwcmVjdHMgPSAwOwotCWV4ZWNidWYuRFIxID0g MDsKLQlleGVjYnVmLkRSNCA9IDA7CiAJZXhlY2J1Zi5mbGFncyA9IEk5MTVfRVhFQ19SRU5ERVI7 Ci0JaTkxNV9leGVjYnVmZmVyMl9zZXRfY29udGV4dF9pZChleGVjYnVmLCAwKTsKLQlleGVjYnVm LnJzdmQyID0gMDsKIAogCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7CiAJZ2VtX3N5bmMoZmQs IGNtZF9ibyk7CkBAIC00MDgsMTUgKzM1MSw4IEBAIHN0YXRpYyB2b2lkIHN0cmF5X2xyaShpbnQg ZmQsIHVpbnQzMl90IGhhbmRsZSkKIAlpZ3RfYXNzZXJ0X2VxX3UzMihpbnRlbF9yZWdpc3Rlcl9y ZWFkKE9BQ09OVFJPTCksIDB4ZGVhZGJlZWYpOwogfQogCi11aW50MzJfdCBoYW5kbGU7Ci1pbnQg ZmQ7Ci0KLSNkZWZpbmUgTUlfQVJCX09OX09GRiAoMHg4IDw8IDIzKQotI2RlZmluZSBNSV9ESVNQ TEFZX0ZMSVAgKCgweDE0IDw8IDIzKSB8IDEpCi0KLSNkZWZpbmUgR0ZYX09QX1BJUEVfQ09OVFJP TAkoKDB4Mzw8MjkpfCgweDM8PDI3KXwoMHgyPDwyNCl8MikKLSNkZWZpbmUgICBQSVBFX0NPTlRS T0xfUVdfV1JJVEUJKDE8PDE0KQotI2RlZmluZSAgIFBJUEVfQ09OVFJPTF9MUklfUE9TVF9PUCAo MTw8MjMpCitzdGF0aWMgdWludDMyX3QgaGFuZGxlOworc3RhdGljIGludCBmZDsKIAogaWd0X21h aW4KIHsKLS0gCjIuMTAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==