From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8C5696E575 for ; Wed, 11 Apr 2018 08:15:20 +0000 (UTC) From: Katarzyna Dec Date: Wed, 11 Apr 2018 10:14:59 +0200 Message-Id: <20180411081501.5375-3-katarzyna.dec@intel.com> In-Reply-To: <20180411081501.5375-1-katarzyna.dec@intel.com> References: <20180411081501.5375-1-katarzyna.dec@intel.com> Subject: [igt-dev] [PATCH i-g-t v7 2/4] lib: Remove duplications in gpu_fill library List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: QWZ0ZXIgbW92aW5nIGFsbCBmdW5jdGlvbnMgbmVlZGVkIGZvciBncGdwdSBhbmQgbWVkaWEgZmls bCB0ZXN0aW5nCnRoZXJlIGlzIGEgbG90IG9mIGR1cGxpY2F0aW9ucyB3aGljaCBjYW4gYmUgcmVt b3ZlZDoKICBMaWJyYXJ5IG1lZGlhX2ZpbGxfZ2VuOCBhbmQgbWVkaWFfZmlsbF9nZW44bHAgZm9y IENIVCB3YXMgcmVtb3ZlZCwKbWVkaWEgc3RhdGUgZmx1c2ggZm9yICFDSFQgd2FzIGFkZGVkIHRv IGdlbjdfZW1pdF9tZWRpYV9vYmplY3RzLgogIE1hbnkgZ2VuOCBmdW5jdGlvbnMgd2VyZSByZXBs YWNlZCB3aXRoIGdlbjcgdmVyc2lvbiB3aXRoIGRldmlkCnBhcmFtZXRlciAoZ2VuN19maWxsX2N1 cmJlX2xvYWQsIGdlbjdfZW1pdF9pbnRlcmZhY2VfZGVzY3JpcHRvciwKZ2VuN19maWxsX2JpbmRp bmdfdGFibGUsIGdlbjdfZW1pdF9tZWRpYV9vYmplY3RzKS4gVW5pZmllZCBmaWxsIGtlcm5lbApm dW5jdGlvbiBzbyBpdCBpcyBhcHBsaWNhYmxlIHRvIGFsbCBnZW5zIGFuZCBib3RoIG1lZGlhIGFu ZCBncGdwdQoobWVyZ2VkIGdlbjdfZmlsbF9tZWRpYV9rZXJuZWwgYW5kIGdlbjhfZmlsbF9tZWRp YV9rZXJuZWwpLgogIER1cGxpY2F0ZWQgY29uc3RhbnRzIGxpa2UgR0VOOF9NRURJQV9WRkVfU1RB VEUsIEdFTjhfTUVESUFfQ1VSQkVfTE9BRCwKR0VOOF9NRURJQV9JTlRFUkZBQ0VfREVTQ1JJUFRP Ul9MT0FELCBHRU44X01FRElBX09CSkVDVCB3ZXJlCnJlcGxhY2VkIGJ5IEdFTjcgdmVyc2lvbi4g SG93ZXZlciB0aGlzIGNvbnN0YW50cyB3ZXJlIG5vdCByZW1vdmVkCmZyb20gZ2VuOF9tZWRpYS5o IGxpYnJhcnksIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBieSBvdGhlciB0ZXN0cwpmb3IgR2VuOCsu IE1vcmUgcmVmYWN0b3JpbmcgaW4gdGhpcyBnZW4qX21lZGlhLmggbGlicmFyaWVzIGlzIG5lZWRl ZC4KCkl0IHNlZW1zIHRoYXQgZnVydGhlciB1bmlmaWNhdGlvbiBvZiAqX2ZpbGxmdW5jIGZ1bmN0 aW9ucyB3aWxsCmludHJvZHVjZSBtb3JlIGNvbmZ1c2lvbiBpbiB1bmRlcnN0YW5kaW5nIHdoYXQg dGhlIHRlc3RzIGFyZSBkb2luZwphbmQgd2hhdCB3ZXJlIGNoYW5nZXMgYmV0d2VlbiBHZW5zLgoK djI6IE1vdmVkIHNvbWUgcmVkdW50YW50IGNoYW5nZXMgZnJvbSBNb3ZlIGdwZ3B1L21lZGlhIGZp bGwgdG8gZ3B1X2ZpbGwuLi4KdG8gdGhpcyBwYXRjaC4gQXBwbGllZCBjb21tZW50cyBmcm9tIHJl dmlldy4KCnYzOiByZWJhc2UKClNpZ25lZC1vZmYtYnk6IEthdGFyenluYSBEZWMgPGthdGFyenlu YS5kZWNAaW50ZWwuY29tPgpDYzogTHVrYXN6IEthbGFtYXJ6IDxsdWthc3oua2FsYW1hcnpAaW50 ZWwuY29tPgpDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlv QGludGVsLmNvbT4KLS0tCiBsaWIvTWFrZWZpbGUuc291cmNlcyAgICB8ICAgMSAtCiBsaWIvZ3Bn cHVfZmlsbC5jICAgICAgICB8ICAgMiArLQogbGliL2dwdV9maWxsLmMgICAgICAgICAgfCAxNzIg KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvZ3B1 X2ZpbGwuaCAgICAgICAgICB8ICAzOCArLS0tLS0tLS0tLQogbGliL2ludGVsX2JhdGNoYnVmZmVy LmMgfCAgIDQgKy0KIGxpYi9tZWRpYV9maWxsLmggICAgICAgIHwgICA3IC0tCiBsaWIvbWVkaWFf ZmlsbF9nZW44LmMgICB8ICAxMCArLS0KIGxpYi9tZWRpYV9maWxsX2dlbjhscC5jIHwgIDg3IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbGliL21lZGlhX2ZpbGxfZ2VuOS5jICAgfCAgMTAgKy0t CiBsaWIvbWVzb24uYnVpbGQgICAgICAgICB8ICAgMSAtCiAxMCBmaWxlcyBjaGFuZ2VkLCAzOSBp bnNlcnRpb25zKCspLCAyOTMgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgbGliL21l ZGlhX2ZpbGxfZ2VuOGxwLmMKCmRpZmYgLS1naXQgYS9saWIvTWFrZWZpbGUuc291cmNlcyBiL2xp Yi9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IDQ1ZTY1ZGQ3Li45YzAxNTBjMSAxMDA2NDQKLS0tIGEv bGliL01ha2VmaWxlLnNvdXJjZXMKKysrIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKQEAgLTU4LDcg KzU4LDYgQEAgbGliX3NvdXJjZV9saXN0ID0JIAlcCiAJbWVkaWFfZmlsbC5oICAgICAgICAgICAg XAogCW1lZGlhX2ZpbGxfZ2VuNy5jICAgICAgIFwKIAltZWRpYV9maWxsX2dlbjguYyAgICAgICBc Ci0JbWVkaWFfZmlsbF9nZW44bHAuYyAgICAgXAogCW1lZGlhX2ZpbGxfZ2VuOS5jICAgICAgIFwK IAltZWRpYV9zcGluLmgJCVwKIAltZWRpYV9zcGluLmMJCVwKZGlmZiAtLWdpdCBhL2xpYi9ncGdw dV9maWxsLmMgYi9saWIvZ3BncHVfZmlsbC5jCmluZGV4IGYyNzY1ZmQ2Li41NzljZTc4ZCAxMDA2 NDQKLS0tIGEvbGliL2dwZ3B1X2ZpbGwuYworKysgYi9saWIvZ3BncHVfZmlsbC5jCkBAIC0xODAs NyArMTgwLDcgQEAgZ2VuOF9ncGdwdV9maWxsZnVuYyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIg KmJhdGNoLAogCWdlbjhfZW1pdF9zdGF0ZV9iYXNlX2FkZHJlc3MoYmF0Y2gpOwogCWdlbjhfZW1p dF92ZmVfc3RhdGVfZ3BncHUoYmF0Y2gpOwogCWdlbjdfZW1pdF9jdXJiZV9sb2FkKGJhdGNoLCBj dXJiZV9idWZmZXIpOwotCWdlbjhfZW1pdF9pbnRlcmZhY2VfZGVzY3JpcHRvcl9sb2FkKGJhdGNo LCBpbnRlcmZhY2VfZGVzY3JpcHRvcik7CisJZ2VuN19lbWl0X2ludGVyZmFjZV9kZXNjcmlwdG9y X2xvYWQoYmF0Y2gsIGludGVyZmFjZV9kZXNjcmlwdG9yKTsKIAlnZW44X2VtaXRfZ3BncHVfd2Fs ayhiYXRjaCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CiAKIAlPVVRfQkFUQ0goTUlfQkFUQ0hfQlVG RkVSX0VORCk7CmRpZmYgLS1naXQgYS9saWIvZ3B1X2ZpbGwuYyBiL2xpYi9ncHVfZmlsbC5jCmlu ZGV4IGQ3YTJkZDRjLi5hNTNlNTUzMyAxMDA2NDQKLS0tIGEvbGliL2dwdV9maWxsLmMKKysrIGIv bGliL2dwdV9maWxsLmMKQEAgLTE0MiwyNiArMTQyLDE4IEBAIGdlbjdfZmlsbF9iaW5kaW5nX3Rh YmxlKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAKIAliaW5kaW5nX3RhYmxlID0g YmF0Y2hfYWxsb2MoYmF0Y2gsIDMyLCA2NCk7CiAJb2Zmc2V0ID0gYmF0Y2hfb2Zmc2V0KGJhdGNo LCBiaW5kaW5nX3RhYmxlKTsKLQliaW5kaW5nX3RhYmxlWzBdID0gZ2VuN19maWxsX3N1cmZhY2Vf c3RhdGUoYmF0Y2gsIGRzdCwKKwlpZiAoSVNfR0VONyhiYXRjaC0+ZGV2aWQpKQorCQliaW5kaW5n X3RhYmxlWzBdID0gZ2VuN19maWxsX3N1cmZhY2Vfc3RhdGUoYmF0Y2gsIGRzdCwKIAkJCQkJCUdF TjdfU1VSRkFDRUZPUk1BVF9SOF9VTk9STSwgMSk7CisJZWxzZQorCQliaW5kaW5nX3RhYmxlWzBd ID0gZ2VuOF9maWxsX3N1cmZhY2Vfc3RhdGUoYmF0Y2gsIGRzdCwKKwkJCQkJCUdFTjhfU1VSRkFD RUZPUk1BVF9SOF9VTk9STSwgMSk7CiAKIAlyZXR1cm4gb2Zmc2V0OwogfQogCiB1aW50MzJfdAot Z2VuN19maWxsX21lZGlhX2tlcm5lbChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAot CQljb25zdCB1aW50MzJfdCBrZXJuZWxbXVs0XSwKLQkJc2l6ZV90IHNpemUpCi17Ci0JdWludDMy X3Qgb2Zmc2V0OwotCi0Jb2Zmc2V0ID0gYmF0Y2hfY29weShiYXRjaCwga2VybmVsLCBzaXplLCA2 NCk7Ci0KLQlyZXR1cm4gb2Zmc2V0OwotfQotCi11aW50MzJfdAotZ2VuOF9maWxsX21lZGlhX2tl cm5lbChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAorZ2VuN19maWxsX2tlcm5lbChz dHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQljb25zdCB1aW50MzJfdCBrZXJuZWxb XVs0XSwKIAkJc2l6ZV90IHNpemUpCiB7CkBAIC0xODEsNyArMTczLDcgQEAgZ2VuN19maWxsX2lu dGVyZmFjZV9kZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsIHN0cnVj dCBpZ3RfYnVmICoKIAl1aW50MzJfdCBiaW5kaW5nX3RhYmxlX29mZnNldCwga2VybmVsX29mZnNl dDsKIAogCWJpbmRpbmdfdGFibGVfb2Zmc2V0ID0gZ2VuN19maWxsX2JpbmRpbmdfdGFibGUoYmF0 Y2gsIGRzdCk7Ci0Ja2VybmVsX29mZnNldCA9IGdlbjdfZmlsbF9tZWRpYV9rZXJuZWwoYmF0Y2gs IGtlcm5lbCwgc2l6ZSk7CisJa2VybmVsX29mZnNldCA9IGdlbjdfZmlsbF9rZXJuZWwoYmF0Y2gs IGtlcm5lbCwgc2l6ZSk7CiAKIAlpZGQgPSBiYXRjaF9hbGxvYyhiYXRjaCwgc2l6ZW9mKCppZGQp LCA2NCk7CiAJb2Zmc2V0ID0gYmF0Y2hfb2Zmc2V0KGJhdGNoLCBpZGQpOwpAQCAtMjk2LDcgKzI4 OCwxMCBAQCBnZW43X2VtaXRfaW50ZXJmYWNlX2Rlc2NyaXB0b3JfbG9hZChzdHJ1Y3QgaW50ZWxf YmF0Y2hidWZmZXIgKmJhdGNoLCB1aW50MzJfdCBpbgogCU9VVF9CQVRDSChHRU43X01FRElBX0lO VEVSRkFDRV9ERVNDUklQVE9SX0xPQUQgfCAoNCAtIDIpKTsKIAlPVVRfQkFUQ0goMCk7CiAJLyog aW50ZXJmYWNlIGRlc2NyaXB0b3IgZGF0YSBsZW5ndGggKi8KLQlPVVRfQkFUQ0goc2l6ZW9mKHN0 cnVjdCBnZW43X2ludGVyZmFjZV9kZXNjcmlwdG9yX2RhdGEpKTsKKwlpZiAoSVNfR0VONyhiYXRj aC0+ZGV2aWQpKQorCQlPVVRfQkFUQ0goc2l6ZW9mKHN0cnVjdCBnZW43X2ludGVyZmFjZV9kZXNj cmlwdG9yX2RhdGEpKTsKKwllbHNlCisJCU9VVF9CQVRDSChzaXplb2Yoc3RydWN0IGdlbjhfaW50 ZXJmYWNlX2Rlc2NyaXB0b3JfZGF0YSkpOwogCS8qIGludGVyZmFjZSBkZXNjcmlwdG9yIGFkZHJl c3MsIGlzIHJlbGF0aXZlIHRvIHRoZSBkeW5hbWljcyBiYXNlIGFkZHJlc3MgKi8KIAlPVVRfQkFU Q0goaW50ZXJmYWNlX2Rlc2NyaXB0b3IpOwogfQpAQCAtMzI2LDYgKzMyMSw4IEBAIGdlbjdfZW1p dF9tZWRpYV9vYmplY3RzKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJCQkvKiBp bmxpbmUgZGF0YSAoeG9mZnNldCwgeW9mZnNldCkgKi8KIAkJCU9VVF9CQVRDSCh4ICsgaSAqIDE2 KTsKIAkJCU9VVF9CQVRDSCh5ICsgaiAqIDE2KTsKKwkJCWlmIChBVF9MRUFTVF9HRU4oYmF0Y2gt PmRldmlkLCA4KSAmJiAhSVNfQ0hFUlJZVklFVyhiYXRjaC0+ZGV2aWQpKQorCQkJCWdlbjhfZW1p dF9tZWRpYV9zdGF0ZV9mbHVzaChiYXRjaCk7CiAJCX0KIAl9CiB9CkBAIC0zODcsMzMgKzM4NCw2 IEBAIGdlbjdfZW1pdF9ncGdwdV93YWxrKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gs CiAJT1VUX0JBVENIKDB4ZmZmZmZmZmYpOwogfQogCi12b2lkCi1nZW44X3JlbmRlcl9mbHVzaChz dHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLCB1aW50MzJfdCBiYXRjaF9lbmQpCi17Ci0J aW50IHJldDsKLQotCXJldCA9IGRybV9pbnRlbF9ib19zdWJkYXRhKGJhdGNoLT5ibywgMCwgNDA5 NiwgYmF0Y2gtPmJ1ZmZlcik7Ci0JaWYgKHJldCA9PSAwKQotCQlyZXQgPSBkcm1faW50ZWxfYm9f bXJiX2V4ZWMoYmF0Y2gtPmJvLCBiYXRjaF9lbmQsCi0JCQkJCU5VTEwsIDAsIDAsIDApOwotCWln dF9hc3NlcnQocmV0ID09IDApOwotfQotCi0KLXVpbnQzMl90Ci1nZW44X2ZpbGxfY3VyYmVfYnVm ZmVyX2RhdGEoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKLQkJCXVpbnQ4X3QgY29s b3IpCi17Ci0JdWludDhfdCAqY3VyYmVfYnVmZmVyOwotCXVpbnQzMl90IG9mZnNldDsKLQotCWN1 cmJlX2J1ZmZlciA9IGJhdGNoX2FsbG9jKGJhdGNoLCBzaXplb2YodWludDMyX3QpICogOCwgNjQp OwotCW9mZnNldCA9IGJhdGNoX29mZnNldChiYXRjaCwgY3VyYmVfYnVmZmVyKTsKLQkqY3VyYmVf YnVmZmVyID0gY29sb3I7Ci0KLQlyZXR1cm4gb2Zmc2V0OwotfQotCiB1aW50MzJfdAogZ2VuOF9m aWxsX3N1cmZhY2Vfc3RhdGUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIAkJCXN0 cnVjdCBpZ3RfYnVmICpidWYsCkBAIC00NjUsMjEgKzQzNSw2IEBAIGdlbjhfZmlsbF9zdXJmYWNl X3N0YXRlKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJcmV0dXJuIG9mZnNldDsK IH0KIAotdWludDMyX3QKLWdlbjhfZmlsbF9iaW5kaW5nX3RhYmxlKHN0cnVjdCBpbnRlbF9iYXRj aGJ1ZmZlciAqYmF0Y2gsCi0JCQlzdHJ1Y3QgaWd0X2J1ZiAqZHN0KQotewotCXVpbnQzMl90ICpi aW5kaW5nX3RhYmxlLCBvZmZzZXQ7Ci0KLQliaW5kaW5nX3RhYmxlID0gYmF0Y2hfYWxsb2MoYmF0 Y2gsIDMyLCA2NCk7Ci0Jb2Zmc2V0ID0gYmF0Y2hfb2Zmc2V0KGJhdGNoLCBiaW5kaW5nX3RhYmxl KTsKLQotCWJpbmRpbmdfdGFibGVbMF0gPSBnZW44X2ZpbGxfc3VyZmFjZV9zdGF0ZShiYXRjaCwg ZHN0LAotCQkJCQkJR0VOOF9TVVJGQUNFRk9STUFUX1I4X1VOT1JNLCAxKTsKLQotCXJldHVybiBv ZmZzZXQ7Ci19Ci0KIHVpbnQzMl90CiBnZW44X2ZpbGxfaW50ZXJmYWNlX2Rlc2NyaXB0b3Ioc3Ry dWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwgc3RydWN0IGlndF9idWYgKmRzdCwgIGNvbnN0 IHVpbnQzMl90IGtlcm5lbFtdWzRdLCBzaXplX3Qgc2l6ZSkKIHsKQEAgLTQ4Nyw4ICs0NDIsOCBA QCBnZW44X2ZpbGxfaW50ZXJmYWNlX2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2JhdGNoYnVmZmVy ICpiYXRjaCwgc3RydWN0IGlndF9idWYgKgogCXVpbnQzMl90IG9mZnNldDsKIAl1aW50MzJfdCBi aW5kaW5nX3RhYmxlX29mZnNldCwga2VybmVsX29mZnNldDsKIAotCWJpbmRpbmdfdGFibGVfb2Zm c2V0ID0gZ2VuOF9maWxsX2JpbmRpbmdfdGFibGUoYmF0Y2gsIGRzdCk7Ci0Ja2VybmVsX29mZnNl dCA9IGdlbjhfZmlsbF9tZWRpYV9rZXJuZWwoYmF0Y2gsIGtlcm5lbCwgc2l6ZSk7CisJYmluZGlu Z190YWJsZV9vZmZzZXQgPSBnZW43X2ZpbGxfYmluZGluZ190YWJsZShiYXRjaCwgZHN0KTsKKwlr ZXJuZWxfb2Zmc2V0ID0gZ2VuN19maWxsX2tlcm5lbChiYXRjaCwga2VybmVsLCBzaXplKTsKIAog CWlkZCA9IGJhdGNoX2FsbG9jKGJhdGNoLCBzaXplb2YoKmlkZCksIDY0KTsKIAlvZmZzZXQgPSBi YXRjaF9vZmZzZXQoYmF0Y2gsIGlkZCk7CkBAIC01NDYsMTAgKzUwMSwxNyBAQCBnZW44X2VtaXRf c3RhdGVfYmFzZV9hZGRyZXNzKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gpCiAJT1VU X0JBVENIKDEgPDwgMTIgfCAxKTsKIH0KIAordm9pZAorZ2VuOF9lbWl0X21lZGlhX3N0YXRlX2Zs dXNoKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gpCit7CisJT1VUX0JBVENIKEdFTjhf TUVESUFfU1RBVEVfRkxVU0ggfCAoMiAtIDIpKTsKKwlPVVRfQkFUQ0goMCk7Cit9CisKIHZvaWQK IGdlbjhfZW1pdF92ZmVfc3RhdGUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCkKIHsK LQlPVVRfQkFUQ0goR0VOOF9NRURJQV9WRkVfU1RBVEUgfCAoOSAtIDIpKTsKKwlPVVRfQkFUQ0go R0VON19NRURJQV9WRkVfU1RBVEUgfCAoOSAtIDIpKTsKIAogCS8qIHNjcmF0Y2ggYnVmZmVyICov CiAJT1VUX0JBVENIKDApOwpAQCAtNTc0LDcgKzUzNiw3IEBAIGdlbjhfZW1pdF92ZmVfc3RhdGUo c3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCkKIHZvaWQKIGdlbjhfZW1pdF92ZmVfc3Rh dGVfZ3BncHUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCkKIHsKLQlPVVRfQkFUQ0go R0VOOF9NRURJQV9WRkVfU1RBVEUgfCAoOSAtIDIpKTsKKwlPVVRfQkFUQ0goR0VON19NRURJQV9W RkVfU1RBVEUgfCAoOSAtIDIpKTsKIAogCS8qIHNjcmF0Y2ggYnVmZmVyICovCiAJT1VUX0JBVENI KDApOwpAQCAtNTk0LDkyICs1NTYsNiBAQCBnZW44X2VtaXRfdmZlX3N0YXRlX2dwZ3B1KHN0cnVj dCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gpCiAJT1VUX0JBVENIKDApOwogfQogCi12b2lkCi1n ZW44X2VtaXRfY3VyYmVfbG9hZChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLCB1aW50 MzJfdCBjdXJiZV9idWZmZXIpCi17Ci0JT1VUX0JBVENIKEdFTjhfTUVESUFfQ1VSQkVfTE9BRCB8 ICg0IC0gMikpOwotCU9VVF9CQVRDSCgwKTsKLQkvKiBjdXJiZSB0b3RhbCBkYXRhIGxlbmd0aCAq LwotCU9VVF9CQVRDSCg2NCk7Ci0JLyogY3VyYmUgZGF0YSBzdGFydCBhZGRyZXNzLCBpcyByZWxh dGl2ZSB0byB0aGUgZHluYW1pY3MgYmFzZSBhZGRyZXNzICovCi0JT1VUX0JBVENIKGN1cmJlX2J1 ZmZlcik7Ci19Ci0KLXZvaWQKLWdlbjhfZW1pdF9pbnRlcmZhY2VfZGVzY3JpcHRvcl9sb2FkKHN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsIHVpbnQzMl90IGludGVyZmFjZV9kZXNjcmlw dG9yKQotewotCU9VVF9CQVRDSChHRU44X01FRElBX0lOVEVSRkFDRV9ERVNDUklQVE9SX0xPQUQg fCAoNCAtIDIpKTsKLQlPVVRfQkFUQ0goMCk7Ci0JLyogaW50ZXJmYWNlIGRlc2NyaXB0b3IgZGF0 YSBsZW5ndGggKi8KLQlPVVRfQkFUQ0goc2l6ZW9mKHN0cnVjdCBnZW44X2ludGVyZmFjZV9kZXNj cmlwdG9yX2RhdGEpKTsKLQkvKiBpbnRlcmZhY2UgZGVzY3JpcHRvciBhZGRyZXNzLCBpcyByZWxh dGl2ZSB0byB0aGUgZHluYW1pY3MgYmFzZSBhZGRyZXNzICovCi0JT1VUX0JBVENIKGludGVyZmFj ZV9kZXNjcmlwdG9yKTsKLX0KLQotdm9pZAotZ2VuOF9lbWl0X21lZGlhX3N0YXRlX2ZsdXNoKHN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gpCi17Ci0JT1VUX0JBVENIKEdFTjhfTUVESUFf U1RBVEVfRkxVU0ggfCAoMiAtIDIpKTsKLQlPVVRfQkFUQ0goMCk7Ci19Ci0KLXZvaWQKLWdlbjhf ZW1pdF9tZWRpYV9vYmplY3RzKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCi0JCQl1 bnNpZ25lZCB4LCB1bnNpZ25lZCB5LAotCQkJdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdo dCkKLXsKLQlpbnQgaSwgajsKLQotCWZvciAoaSA9IDA7IGkgPCB3aWR0aCAvIDE2OyBpKyspIHsK LQkJZm9yIChqID0gMDsgaiA8IGhlaWdodCAvIDE2OyBqKyspIHsKLQkJCU9VVF9CQVRDSChHRU44 X01FRElBX09CSkVDVCB8ICg4IC0gMikpOwotCi0JCQkvKiBpbnRlcmZhY2UgZGVzY3JpcHRvciBv ZmZzZXQgKi8KLQkJCU9VVF9CQVRDSCgwKTsKLQotCQkJLyogd2l0aG91dCBpbmRpcmVjdCBkYXRh ICovCi0JCQlPVVRfQkFUQ0goMCk7Ci0JCQlPVVRfQkFUQ0goMCk7Ci0KLQkJCS8qIHNjb3JlYm9h cmQgKi8KLQkJCU9VVF9CQVRDSCgwKTsKLQkJCU9VVF9CQVRDSCgwKTsKLQotCQkJLyogaW5saW5l IGRhdGEgKHhvZmZzZXQsIHlvZmZzZXQpICovCi0JCQlPVVRfQkFUQ0goeCArIGkgKiAxNik7Ci0J CQlPVVRfQkFUQ0goeSArIGogKiAxNik7Ci0JCQlnZW44X2VtaXRfbWVkaWFfc3RhdGVfZmx1c2go YmF0Y2gpOwotCQl9Ci0JfQotfQotdm9pZAotZ2VuOGxwX2VtaXRfbWVkaWFfb2JqZWN0cyhzdHJ1 Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAotCQkJdW5zaWduZWQgeCwgdW5zaWduZWQgeSwK LQkJCXVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCi17Ci0JaW50IGksIGo7Ci0KLQlm b3IgKGkgPSAwOyBpIDwgd2lkdGggLyAxNjsgaSsrKSB7Ci0JCWZvciAoaiA9IDA7IGogPCBoZWln aHQgLyAxNjsgaisrKSB7Ci0JCQlPVVRfQkFUQ0goR0VOOF9NRURJQV9PQkpFQ1QgfCAoOCAtIDIp KTsKLQotCQkJLyogaW50ZXJmYWNlIGRlc2NyaXB0b3Igb2Zmc2V0ICovCi0JCQlPVVRfQkFUQ0go MCk7Ci0KLQkJCS8qIHdpdGhvdXQgaW5kaXJlY3QgZGF0YSAqLwotCQkJT1VUX0JBVENIKDApOwot CQkJT1VUX0JBVENIKDApOwotCi0JCQkvKiBzY29yZWJvYXJkICovCi0JCQlPVVRfQkFUQ0goMCk7 Ci0JCQlPVVRfQkFUQ0goMCk7Ci0KLQkJCS8qIGlubGluZSBkYXRhICh4b2Zmc2V0LCB5b2Zmc2V0 KSAqLwotCQkJT1VUX0JBVENIKHggKyBpICogMTYpOwotCQkJT1VUX0JBVENIKHkgKyBqICogMTYp OwotCQl9Ci0JfQotfQogdm9pZAogZ2VuOF9lbWl0X2dwZ3B1X3dhbGsoc3RydWN0IGludGVsX2Jh dGNoYnVmZmVyICpiYXRjaCwKIAkJICAgICB1bnNpZ25lZCB4LCB1bnNpZ25lZCB5LApkaWZmIC0t Z2l0IGEvbGliL2dwdV9maWxsLmggYi9saWIvZ3B1X2ZpbGwuaAppbmRleCA4N2U2MmM4Ni4uMDcy ZTlmN2MgMTAwNjQ0Ci0tLSBhL2xpYi9ncHVfZmlsbC5oCisrKyBiL2xpYi9ncHVfZmlsbC5oCkBA IC03MCwxMiArNzAsNyBAQCBnZW43X2ZpbGxfYmluZGluZ190YWJsZShzdHJ1Y3QgaW50ZWxfYmF0 Y2hidWZmZXIgKmJhdGNoLAogCQkJc3RydWN0IGlndF9idWYgKmRzdCk7CiAKIHVpbnQzMl90Ci1n ZW43X2ZpbGxfbWVkaWFfa2VybmVsKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCi0J CWNvbnN0IHVpbnQzMl90IGtlcm5lbFtdWzRdLAotCQlzaXplX3Qgc2l6ZSk7Ci0KLXVpbnQzMl90 Ci1nZW44X2ZpbGxfbWVkaWFfa2VybmVsKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gs CitnZW43X2ZpbGxfa2VybmVsKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJCWNv bnN0IHVpbnQzMl90IGtlcm5lbFtdWzRdLAogCQlzaXplX3Qgc2l6ZSk7CiAKQEAgLTEwOCw1MyAr MTAzLDI2IEBAIGdlbjdfZW1pdF9ncGdwdV93YWxrKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAq YmF0Y2gsCiAJCSAgICAgdW5zaWduZWQgeCwgdW5zaWduZWQgeSwKIAkJICAgICB1bnNpZ25lZCB3 aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKIAotdm9pZAotZ2VuOF9yZW5kZXJfZmx1c2goc3RydWN0 IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwgdWludDMyX3QgYmF0Y2hfZW5kKTsKLQotdWludDMy X3QKLWdlbjhfZmlsbF9jdXJiZV9idWZmZXJfZGF0YShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIg KmJhdGNoLAotCQkJdWludDhfdCBjb2xvcik7Ci0KIHVpbnQzMl90CiBnZW44X2ZpbGxfc3VyZmFj ZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQkJc3RydWN0IGlndF9i dWYgKmJ1ZiwKIAkJCXVpbnQzMl90IGZvcm1hdCwKIAkJCWludCBpc19kc3QpOwogCi11aW50MzJf dAotZ2VuOF9maWxsX2JpbmRpbmdfdGFibGUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRj aCwKLQkJCXN0cnVjdCBpZ3RfYnVmICpkc3QpOwotCiB1aW50MzJfdAogZ2VuOF9maWxsX2ludGVy ZmFjZV9kZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsIHN0cnVjdCBp Z3RfYnVmICpkc3QsICBjb25zdCB1aW50MzJfdCBrZXJuZWxbXVs0XSwgc2l6ZV90IHNpemUpOwog CiB2b2lkCiBnZW44X2VtaXRfc3RhdGVfYmFzZV9hZGRyZXNzKHN0cnVjdCBpbnRlbF9iYXRjaGJ1 ZmZlciAqYmF0Y2gpOwogCi12b2lkCi1nZW44X2VtaXRfdmZlX3N0YXRlKHN0cnVjdCBpbnRlbF9i YXRjaGJ1ZmZlciAqYmF0Y2gpOwotCi12b2lkCi1nZW44X2VtaXRfdmZlX3N0YXRlX2dwZ3B1KHN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gpOwotCi12b2lkCi1nZW44X2VtaXRfY3VyYmVf bG9hZChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLCB1aW50MzJfdCBjdXJiZV9idWZm ZXIpOwotCi12b2lkCi1nZW44X2VtaXRfaW50ZXJmYWNlX2Rlc2NyaXB0b3JfbG9hZChzdHJ1Y3Qg aW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLCB1aW50MzJfdCBpbnRlcmZhY2VfZGVzY3JpcHRvcik7 Ci0KIHZvaWQKIGdlbjhfZW1pdF9tZWRpYV9zdGF0ZV9mbHVzaChzdHJ1Y3QgaW50ZWxfYmF0Y2hi dWZmZXIgKmJhdGNoKTsKIAogdm9pZAotZ2VuOF9lbWl0X21lZGlhX29iamVjdHMoc3RydWN0IGlu dGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKLQkJCXVuc2lnbmVkIHgsIHVuc2lnbmVkIHksCi0JCQl1 bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKK2dlbjhfZW1pdF92ZmVfc3RhdGUoc3Ry dWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCk7CiAKIHZvaWQKLWdlbjhscF9lbWl0X21lZGlh X29iamVjdHMoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKLQkJCXVuc2lnbmVkIHgs IHVuc2lnbmVkIHksCi0JCQl1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKK2dlbjhf ZW1pdF92ZmVfc3RhdGVfZ3BncHUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCk7CiAK IHZvaWQKIGdlbjhfZW1pdF9ncGdwdV93YWxrKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0 Y2gsCmRpZmYgLS1naXQgYS9saWIvaW50ZWxfYmF0Y2hidWZmZXIuYyBiL2xpYi9pbnRlbF9iYXRj aGJ1ZmZlci5jCmluZGV4IDdjMDRjY2YzLi4xMGQ0ZGNlOCAxMDA2NDQKLS0tIGEvbGliL2ludGVs X2JhdGNoYnVmZmVyLmMKKysrIGIvbGliL2ludGVsX2JhdGNoYnVmZmVyLmMKQEAgLTc5NiwxMiAr Nzk2LDEwIEBAIGlndF9maWxsZnVuY190IGlndF9nZXRfbWVkaWFfZmlsbGZ1bmMoaW50IGRldmlk KQogCiAJaWYgKElTX0dFTjkoZGV2aWQpKQogCQlmaWxsID0gZ2VuOV9tZWRpYV9maWxsZnVuYzsK LQllbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2aWQpKQorCWVsc2UgaWYgKElTX0dFTjgoZGV2aWQp KQogCQlmaWxsID0gZ2VuOF9tZWRpYV9maWxsZnVuYzsKIAllbHNlIGlmIChJU19HRU43KGRldmlk KSkKIAkJZmlsbCA9IGdlbjdfbWVkaWFfZmlsbGZ1bmM7Ci0JZWxzZSBpZiAoSVNfQ0hFUlJZVklF VyhkZXZpZCkpCi0JCWZpbGwgPSBnZW44bHBfbWVkaWFfZmlsbGZ1bmM7CiAKIAlyZXR1cm4gZmls bDsKIH0KZGlmZiAtLWdpdCBhL2xpYi9tZWRpYV9maWxsLmggYi9saWIvbWVkaWFfZmlsbC5oCmlu ZGV4IDIyNjQ4OWNiLi4xNjFhZjhjZiAxMDA2NDQKLS0tIGEvbGliL21lZGlhX2ZpbGwuaAorKysg Yi9saWIvbWVkaWFfZmlsbC5oCkBAIC0xOCwxMyArMTgsNiBAQCBnZW43X21lZGlhX2ZpbGxmdW5j KHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKICAgICAgICAgICAgICAgICB1aW50OF90IGNvbG9y KTsKIAotdm9pZAotZ2VuOGxwX21lZGlhX2ZpbGxmdW5jKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZl ciAqYmF0Y2gsCi0JCXN0cnVjdCBpZ3RfYnVmICpkc3QsCi0JCXVuc2lnbmVkIHgsIHVuc2lnbmVk IHksCi0JCXVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCi0JCXVpbnQ4X3QgY29sb3Ip OwotCiB2b2lkCiBnZW45X21lZGlhX2ZpbGxmdW5jKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAq YmF0Y2gsCiAgICAgICAgICAgICAgICAgc3RydWN0IGlndF9idWYgKmRzdCwKZGlmZiAtLWdpdCBh L2xpYi9tZWRpYV9maWxsX2dlbjguYyBiL2xpYi9tZWRpYV9maWxsX2dlbjguYwppbmRleCA0Mjcw OTk3ZS4uMzYyYWJkNjEgMTAwNjQ0Ci0tLSBhL2xpYi9tZWRpYV9maWxsX2dlbjguYworKysgYi9s aWIvbWVkaWFfZmlsbF9nZW44LmMKQEAgLTYyLDcgKzYyLDcgQEAgZ2VuOF9tZWRpYV9maWxsZnVu YyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCS8qIHNldHVwIHN0YXRlcyAqLwog CWJhdGNoLT5wdHIgPSAmYmF0Y2gtPmJ1ZmZlcltCQVRDSF9TVEFURV9TUExJVF07CiAKLQljdXJi ZV9idWZmZXIgPSBnZW44X2ZpbGxfY3VyYmVfYnVmZmVyX2RhdGEoYmF0Y2gsIGNvbG9yKTsKKwlj dXJiZV9idWZmZXIgPSBnZW43X2ZpbGxfY3VyYmVfYnVmZmVyX2RhdGEoYmF0Y2gsIGNvbG9yKTsK IAlpbnRlcmZhY2VfZGVzY3JpcHRvciA9IGdlbjhfZmlsbF9pbnRlcmZhY2VfZGVzY3JpcHRvcihi YXRjaCwgZHN0LCBtZWRpYV9rZXJuZWwsIHNpemVvZihtZWRpYV9rZXJuZWwpKTsKIAlpZ3RfYXNz ZXJ0KGJhdGNoLT5wdHIgPCAmYmF0Y2gtPmJ1ZmZlcls0MDk1XSk7CiAKQEAgLTczLDE3ICs3Mywx NyBAQCBnZW44X21lZGlhX2ZpbGxmdW5jKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gs CiAKIAlnZW44X2VtaXRfdmZlX3N0YXRlKGJhdGNoKTsKIAotCWdlbjhfZW1pdF9jdXJiZV9sb2Fk KGJhdGNoLCBjdXJiZV9idWZmZXIpOworCWdlbjdfZW1pdF9jdXJiZV9sb2FkKGJhdGNoLCBjdXJi ZV9idWZmZXIpOwogCi0JZ2VuOF9lbWl0X2ludGVyZmFjZV9kZXNjcmlwdG9yX2xvYWQoYmF0Y2gs IGludGVyZmFjZV9kZXNjcmlwdG9yKTsKKwlnZW43X2VtaXRfaW50ZXJmYWNlX2Rlc2NyaXB0b3Jf bG9hZChiYXRjaCwgaW50ZXJmYWNlX2Rlc2NyaXB0b3IpOwogCi0JZ2VuOF9lbWl0X21lZGlhX29i amVjdHMoYmF0Y2gsIHgsIHksIHdpZHRoLCBoZWlnaHQpOworCWdlbjdfZW1pdF9tZWRpYV9vYmpl Y3RzKGJhdGNoLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIAogCU9VVF9CQVRDSChNSV9CQVRDSF9C VUZGRVJfRU5EKTsKIAogCWJhdGNoX2VuZCA9IGJhdGNoX2FsaWduKGJhdGNoLCA4KTsKIAlpZ3Rf YXNzZXJ0KGJhdGNoX2VuZCA8IEJBVENIX1NUQVRFX1NQTElUKTsKIAotCWdlbjhfcmVuZGVyX2Zs dXNoKGJhdGNoLCBiYXRjaF9lbmQpOworCWdlbjdfcmVuZGVyX2ZsdXNoKGJhdGNoLCBiYXRjaF9l bmQpOwogCWludGVsX2JhdGNoYnVmZmVyX3Jlc2V0KGJhdGNoKTsKIH0KZGlmZiAtLWdpdCBhL2xp Yi9tZWRpYV9maWxsX2dlbjhscC5jIGIvbGliL21lZGlhX2ZpbGxfZ2VuOGxwLmMKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjYzExOTgyLi4wMDAwMDAwMAotLS0gYS9saWIvbWVkaWFf ZmlsbF9nZW44bHAuYworKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLSNpbmNsdWRlIDxp bnRlbF9idWZtZ3IuaD4KLSNpbmNsdWRlIDxpOTE1X2RybS5oPgotCi0jaW5jbHVkZSAibWVkaWFf ZmlsbC5oIgotI2luY2x1ZGUgImdlbjhfbWVkaWEuaCIKLSNpbmNsdWRlICJpbnRlbF9yZWcuaCIK LSNpbmNsdWRlICJkcm10ZXN0LmgiCi0jaW5jbHVkZSAiZ3B1X2ZpbGwuaCIKLSNpbmNsdWRlIDxh c3NlcnQuaD4KLQotCi1zdGF0aWMgY29uc3QgdWludDMyX3QgbWVkaWFfa2VybmVsW11bNF0gPSB7 Ci0JeyAweDAwNDAwMDAxLCAweDIwMjAyMjg4LCAweDAwMDAwMDIwLCAweDAwMDAwMDAwIH0sCi0J eyAweDAwNjAwMDAxLCAweDIwODAwMjA4LCAweDAwOGQwMDAwLCAweDAwMDAwMDAwIH0sCi0JeyAw eDAwMjAwMDAxLCAweDIwODAwMjA4LCAweDAwNDUwMDQwLCAweDAwMDAwMDAwIH0sCi0JeyAweDAw MDAwMDAxLCAweDIwODgwNjA4LCAweDAwMDAwMDAwLCAweDAwMGYwMDBmIH0sCi0JeyAweDAwODAw MDAxLCAweDIwYTAwMjA4LCAweDAwMDAwMDIwLCAweDAwMDAwMDAwIH0sCi0JeyAweDAwODAwMDAx LCAweDIwZTAwMjA4LCAweDAwMDAwMDIwLCAweDAwMDAwMDAwIH0sCi0JeyAweDAwODAwMDAxLCAw eDIxMjAwMjA4LCAweDAwMDAwMDIwLCAweDAwMDAwMDAwIH0sCi0JeyAweDAwODAwMDAxLCAweDIx NjAwMjA4LCAweDAwMDAwMDIwLCAweDAwMDAwMDAwIH0sCi0JeyAweDBjODAwMDMxLCAweDI0MDAw YTQwLCAweDBlMDAwMDgwLCAweDEyMGE4MDAwIH0sCi0JeyAweDAwNjAwMDAxLCAweDJlMDAwMjA4 LCAweDAwOGQwMDAwLCAweDAwMDAwMDAwIH0sCi0JeyAweDA3ODAwMDMxLCAweDIwMDAwYTQwLCAw eDBlMDAwZTAwLCAweDgyMDAwMDEwIH0sCi19OwotCi0vKgotICogVGhpcyBzZXRzIHVwIHRoZSBt ZWRpYSBwaXBlbGluZSwKLSAqCi0gKiArLS0tLS0tLS0tLS0tLS0tKyA8LS0tLSA0MDk2Ci0gKiB8 ICAgICAgIF4gICAgICAgfAotICogfCAgICAgICB8ICAgICAgIHwKLSAqIHwgICAgdmFyaW91cyAg ICB8Ci0gKiB8ICAgICAgc3RhdGUgICAgfAotICogfCAgICAgICB8ICAgICAgIHwKLSAqIHxfX19f X19ffF9fX19fX198IDwtLS0tIDIwNDggKyA/Ci0gKiB8ICAgICAgIF4gICAgICAgfAotICogfCAg ICAgICB8ICAgICAgIHwKLSAqIHwgICBiYXRjaCAgICAgICB8Ci0gKiB8ICAgIGNvbW1hbmRzICAg fAotICogfCAgICAgICB8ICAgICAgIHwKLSAqIHwgICAgICAgfCAgICAgICB8Ci0gKiArLS0tLS0t LS0tLS0tLS0tKyA8LS0tLSAwICsgPwotICoKLSAqLwotCi0jZGVmaW5lIEJBVENIX1NUQVRFX1NQ TElUIDIwNDgKLQotdm9pZAotZ2VuOGxwX21lZGlhX2ZpbGxmdW5jKHN0cnVjdCBpbnRlbF9iYXRj aGJ1ZmZlciAqYmF0Y2gsCi0JCXN0cnVjdCBpZ3RfYnVmICpkc3QsCi0JCXVuc2lnbmVkIHgsIHVu c2lnbmVkIHksCi0JCXVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCi0JCXVpbnQ4X3Qg Y29sb3IpCi17Ci0JdWludDMyX3QgY3VyYmVfYnVmZmVyLCBpbnRlcmZhY2VfZGVzY3JpcHRvcjsK LQl1aW50MzJfdCBiYXRjaF9lbmQ7Ci0KLQlpbnRlbF9iYXRjaGJ1ZmZlcl9mbHVzaChiYXRjaCk7 Ci0KLQkvKiBzZXR1cCBzdGF0ZXMgKi8KLQliYXRjaC0+cHRyID0gJmJhdGNoLT5idWZmZXJbQkFU Q0hfU1RBVEVfU1BMSVRdOwotCi0JY3VyYmVfYnVmZmVyID0gZ2VuOF9maWxsX2N1cmJlX2J1ZmZl cl9kYXRhKGJhdGNoLCBjb2xvcik7Ci0JaW50ZXJmYWNlX2Rlc2NyaXB0b3IgPSBnZW44X2ZpbGxf aW50ZXJmYWNlX2Rlc2NyaXB0b3IoYmF0Y2gsIGRzdCwgbWVkaWFfa2VybmVsLCBzaXplb2YobWVk aWFfa2VybmVsKSk7Ci0JaWd0X2Fzc2VydChiYXRjaC0+cHRyIDwgJmJhdGNoLT5idWZmZXJbNDA5 NV0pOwotCi0JLyogbWVkaWEgcGlwZWxpbmUgKi8KLQliYXRjaC0+cHRyID0gYmF0Y2gtPmJ1ZmZl cjsKLQlPVVRfQkFUQ0goR0VOOF9QSVBFTElORV9TRUxFQ1QgfCBQSVBFTElORV9TRUxFQ1RfTUVE SUEpOwotCWdlbjhfZW1pdF9zdGF0ZV9iYXNlX2FkZHJlc3MoYmF0Y2gpOwotCi0JZ2VuOF9lbWl0 X3ZmZV9zdGF0ZShiYXRjaCk7Ci0KLQlnZW44X2VtaXRfY3VyYmVfbG9hZChiYXRjaCwgY3VyYmVf YnVmZmVyKTsKLQotCWdlbjhfZW1pdF9pbnRlcmZhY2VfZGVzY3JpcHRvcl9sb2FkKGJhdGNoLCBp bnRlcmZhY2VfZGVzY3JpcHRvcik7Ci0KLQlnZW44bHBfZW1pdF9tZWRpYV9vYmplY3RzKGJhdGNo LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKLQotCU9VVF9CQVRDSChNSV9CQVRDSF9CVUZGRVJfRU5E KTsKLQotCWJhdGNoX2VuZCA9IGJhdGNoX2FsaWduKGJhdGNoLCA4KTsKLQlpZ3RfYXNzZXJ0KGJh dGNoX2VuZCA8IEJBVENIX1NUQVRFX1NQTElUKTsKLQotCWdlbjhfcmVuZGVyX2ZsdXNoKGJhdGNo LCBiYXRjaF9lbmQpOwotCWludGVsX2JhdGNoYnVmZmVyX3Jlc2V0KGJhdGNoKTsKLX0KZGlmZiAt LWdpdCBhL2xpYi9tZWRpYV9maWxsX2dlbjkuYyBiL2xpYi9tZWRpYV9maWxsX2dlbjkuYwppbmRl eCA2YWNjZGJlNC4uZDEzMzVmZTYgMTAwNjQ0Ci0tLSBhL2xpYi9tZWRpYV9maWxsX2dlbjkuYwor KysgYi9saWIvbWVkaWFfZmlsbF9nZW45LmMKQEAgLTU5LDcgKzU5LDcgQEAgZ2VuOV9tZWRpYV9m aWxsZnVuYyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCS8qIHNldHVwIHN0YXRl cyAqLwogCWJhdGNoLT5wdHIgPSAmYmF0Y2gtPmJ1ZmZlcltCQVRDSF9TVEFURV9TUExJVF07CiAK LQljdXJiZV9idWZmZXIgPSBnZW44X2ZpbGxfY3VyYmVfYnVmZmVyX2RhdGEoYmF0Y2gsIGNvbG9y KTsKKwljdXJiZV9idWZmZXIgPSBnZW43X2ZpbGxfY3VyYmVfYnVmZmVyX2RhdGEoYmF0Y2gsIGNv bG9yKTsKIAlpbnRlcmZhY2VfZGVzY3JpcHRvciA9IGdlbjhfZmlsbF9pbnRlcmZhY2VfZGVzY3Jp cHRvcihiYXRjaCwgZHN0LCBtZWRpYV9rZXJuZWwsIHNpemVvZihtZWRpYV9rZXJuZWwpKTsKIAlh c3NlcnQoYmF0Y2gtPnB0ciA8ICZiYXRjaC0+YnVmZmVyWzQwOTVdKTsKIApAQCAtNzUsMTEgKzc1 LDExIEBAIGdlbjlfbWVkaWFfZmlsbGZ1bmMoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRj aCwKIAogCWdlbjhfZW1pdF92ZmVfc3RhdGUoYmF0Y2gpOwogCi0JZ2VuOF9lbWl0X2N1cmJlX2xv YWQoYmF0Y2gsIGN1cmJlX2J1ZmZlcik7CisJZ2VuN19lbWl0X2N1cmJlX2xvYWQoYmF0Y2gsIGN1 cmJlX2J1ZmZlcik7CiAKLQlnZW44X2VtaXRfaW50ZXJmYWNlX2Rlc2NyaXB0b3JfbG9hZChiYXRj aCwgaW50ZXJmYWNlX2Rlc2NyaXB0b3IpOworCWdlbjdfZW1pdF9pbnRlcmZhY2VfZGVzY3JpcHRv cl9sb2FkKGJhdGNoLCBpbnRlcmZhY2VfZGVzY3JpcHRvcik7CiAKLQlnZW44X2VtaXRfbWVkaWFf b2JqZWN0cyhiYXRjaCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CisJZ2VuN19lbWl0X21lZGlhX29i amVjdHMoYmF0Y2gsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwogCiAJT1VUX0JBVENIKEdFTjhfUElQ RUxJTkVfU0VMRUNUIHwgUElQRUxJTkVfU0VMRUNUX01FRElBIHwKIAkJCUdFTjlfRk9SQ0VfTUVE SUFfQVdBS0VfRElTQUJMRSB8CkBAIC05Myw2ICs5Myw2IEBAIGdlbjlfbWVkaWFfZmlsbGZ1bmMo c3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIAliYXRjaF9lbmQgPSBiYXRjaF9hbGln bihiYXRjaCwgOCk7CiAJYXNzZXJ0KGJhdGNoX2VuZCA8IEJBVENIX1NUQVRFX1NQTElUKTsKIAot CWdlbjhfcmVuZGVyX2ZsdXNoKGJhdGNoLCBiYXRjaF9lbmQpOworCWdlbjdfcmVuZGVyX2ZsdXNo KGJhdGNoLCBiYXRjaF9lbmQpOwogCWludGVsX2JhdGNoYnVmZmVyX3Jlc2V0KGJhdGNoKTsKIH0K ZGlmZiAtLWdpdCBhL2xpYi9tZXNvbi5idWlsZCBiL2xpYi9tZXNvbi5idWlsZAppbmRleCAzODVl MDhiOS4uNWYyNTY3ZmIgMTAwNjQ0Ci0tLSBhL2xpYi9tZXNvbi5idWlsZAorKysgYi9saWIvbWVz b24uYnVpbGQKQEAgLTI2LDcgKzI2LDYgQEAgbGliX3NvdXJjZXMgPSBbCiAJJ2lvY3RsX3dyYXBw ZXJzLmMnLAogCSdtZWRpYV9maWxsX2dlbjcuYycsCiAJJ21lZGlhX2ZpbGxfZ2VuOC5jJywKLQkn bWVkaWFfZmlsbF9nZW44bHAuYycsCiAJJ21lZGlhX2ZpbGxfZ2VuOS5jJywKIAknbWVkaWFfc3Bp bi5jJywKIAknZ3BncHVfZmlsbC5jJywKLS0gCjIuMTQuMwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3QtZGV2Cg==