From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 370CE89518 for ; Thu, 11 Apr 2019 10:04:08 +0000 (UTC) From: Simon Ser Date: Thu, 11 Apr 2019 13:03:51 +0300 Message-Id: <20190411100352.1722-4-simon.ser@intel.com> In-Reply-To: <20190411100352.1722-1-simon.ser@intel.com> References: <20190411100352.1722-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 3/4] tests/kms_chamelium: test we receive a signal from both audio channels List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 Cc: Simon Ser List-ID: RnJvbTogU2ltb24gU2VyIDxjb250YWN0QGVtZXJzaW9uLmZyPgoKVGhpcyBjb21taXQgdXBkYXRl cyB0aGUgYXVkaW8gdGVzdCB0byBtYWtlIHN1cmUgd2UgcmVjZWl2ZSBhIHNpZ25hbCBmcm9tIGJv dGgKYXVkaW8gY2hhbm5lbHMuIEhvd2V2ZXIgdGhpcyBjb21taXQgZG9lc24ndCBjaGVjayB0aGF0 IGxlZnQgYW5kIHJpZ2h0IGNoYW5uZWxzCmFyZSBub3Qgc3dhcHBlZC4gU3VjaCBhIGNoZWNrIHJl cXVpcmVzIHNvbWUgbW9yZSB3b3JrIChiZWNhdXNlIHRoZSBDaGFtZWxpdW0KZGV2aWNlIGRvZXMg c3dhcCBsZWZ0IGFuZCByaWdodCBjaGFubmVscykgYW5kIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4g YSBmdXR1cmUKY29tbWl0LgoKVGhpcyBjb21taXQgYWRkcyBhIG5ldyBjaGFubmVsIGFyZ3VtZW50 IHRvIGF1ZGlvX3NpZ25hbF9hZGRfZnJlcXVlbmN5LCB0byBhZGQKYSBmcmVxdWVuY3kgdG8gYSBz aW5nbGUgY2hhbm5lbCBvbmx5LgoKU29tZSBsaWdodCByZWZhY3RvcmluZyBoYXMgYmVlbiBwZXJm b3JtZWQgKGEgcHJvcGVyIGF1ZGlvX3NpZ25hbF9kZWluaXQKZnVuY3Rpb24gaGFzIGJlZW4gaW50 cm9kdWNlZCkgYW5kIGxvZ2dpbmcgaGFzIGJlZW4gaW1wcm92ZWQuCgpTaWduZWQtb2ZmLWJ5OiBT aW1vbiBTZXIgPHNpbW9uLnNlckBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9hbHNhLmMgICAgICAg IHwgIDI2ICsrKysrKystLQogbGliL2lndF9hdWRpby5jICAgICAgIHwgMTIxICsrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogbGliL2lndF9hdWRpby5oICAgICAgIHwg IDExICsrLS0KIHRlc3RzL2ttc19jaGFtZWxpdW0uYyB8ICA1NiArKysrKysrKysrKy0tLS0tLS0t CiA0IGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9saWIvaWd0X2Fsc2EuYyBiL2xpYi9pZ3RfYWxzYS5jCmluZGV4IGNjMzRlM2Qx Li5lMTg0ODMwMSAxMDA2NDQKLS0tIGEvbGliL2lndF9hbHNhLmMKKysrIGIvbGliL2lndF9hbHNh LmMKQEAgLTE4Miw2ICsxODIsOCBAQCBzdGF0aWMgY2hhciAqYWxzYV9yZXNvbHZlX2luZGVudGlm aWVyKGNvbnN0IGNoYXIgKmRldmljZV9uYW1lLCBpbnQgc2tpcCkKIAkJCQkJY29udGludWU7CiAJ CQkJfQogCisJCQkJaWd0X2RlYnVnKCJNYXRjaGVkIGRldmljZSBcIiVzXCJcbiIsIHBjbV9uYW1l KTsKKwogCQkJCXNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgImh3OiVkLCVkIiwgY2FyZCwK IAkJCQkJIGRldik7CiAKQEAgLTMyOSw2ICszMzEsOSBAQCBzdGF0aWMgYm9vbCBhbHNhX3Rlc3Rf Y29uZmlndXJhdGlvbihzbmRfcGNtX3QgKmhhbmRsZSwgaW50IGNoYW5uZWxzLAogewogCXNuZF9w Y21faHdfcGFyYW1zX3QgKnBhcmFtczsKIAlpbnQgcmV0OworCXVuc2lnbmVkIGludCBtaW5fY2hh bm5lbHMsIG1heF9jaGFubmVsczsKKwl1bnNpZ25lZCBpbnQgbWluX3JhdGUsIG1heF9yYXRlOwor CWludCBtaW5fcmF0ZV9kaXIsIG1heF9yYXRlX2RpcjsKIAogCXNuZF9wY21faHdfcGFyYW1zX2Fs bG9jYSgmcGFyYW1zKTsKIApAQCAtMzM3LDEyICszNDIsMjQgQEAgc3RhdGljIGJvb2wgYWxzYV90 ZXN0X2NvbmZpZ3VyYXRpb24oc25kX3BjbV90ICpoYW5kbGUsIGludCBjaGFubmVscywKIAkJcmV0 dXJuIGZhbHNlOwogCiAJcmV0ID0gc25kX3BjbV9od19wYXJhbXNfdGVzdF9yYXRlKGhhbmRsZSwg cGFyYW1zLCBzYW1wbGluZ19yYXRlLCAwKTsKLQlpZiAocmV0IDwgMCkKKwlpZiAocmV0IDwgMCkg eworCQlzbmRfcGNtX2h3X3BhcmFtc19nZXRfcmF0ZV9taW4ocGFyYW1zLCAmbWluX3JhdGUsICZt aW5fcmF0ZV9kaXIpOworCQlzbmRfcGNtX2h3X3BhcmFtc19nZXRfcmF0ZV9tYXgocGFyYW1zLCAm bWF4X3JhdGUsICZtYXhfcmF0ZV9kaXIpOworCQlpZ3RfZGVidWcoIk91dHB1dCBkZXZpY2Ugc3Vw cG9ydHMgcmF0ZXMgYmV0d2VlbiAldSBhbmQgJXUsICIKKwkJCSAgInJlcXVlc3RlZCAlZFxuIiwK KwkJCSAgbWluX3JhdGUsIG1heF9yYXRlLCBzYW1wbGluZ19yYXRlKTsKIAkJcmV0dXJuIGZhbHNl OworCX0KIAogCXJldCA9IHNuZF9wY21faHdfcGFyYW1zX3Rlc3RfY2hhbm5lbHMoaGFuZGxlLCBw YXJhbXMsIGNoYW5uZWxzKTsKLQlpZiAocmV0IDwgMCkKKwlpZiAocmV0IDwgMCkgeworCQlzbmRf cGNtX2h3X3BhcmFtc19nZXRfY2hhbm5lbHNfbWluKHBhcmFtcywgJm1pbl9jaGFubmVscyk7CisJ CXNuZF9wY21faHdfcGFyYW1zX2dldF9jaGFubmVsc19tYXgocGFyYW1zLCAmbWF4X2NoYW5uZWxz KTsKKwkJaWd0X2RlYnVnKCJPdXRwdXQgZGV2aWNlIHN1cHBvcnRzIGJldHdlZW4gJXUgYW5kICIK KwkJCSAgIiV1IGNoYW5uZWxzLCByZXF1ZXN0ZWQgJWRcbiIsCisJCQkgIG1pbl9jaGFubmVscywg bWF4X2NoYW5uZWxzLCBjaGFubmVscyk7CiAJCXJldHVybiBmYWxzZTsKKwl9CiAKIAlyZXR1cm4g dHJ1ZTsKIH0KQEAgLTQwOSwxMyArNDI2LDE2IEBAIHZvaWQgYWxzYV9jb25maWd1cmVfb3V0cHV0 KHN0cnVjdCBhbHNhICphbHNhLCBpbnQgY2hhbm5lbHMsCiAJc25kX3BjbV90ICpoYW5kbGU7CiAJ aW50IHJldDsKIAlpbnQgaTsKKwlpbnQgc29mdF9yZXNhbXBsZSA9IDA7IC8qIERvbid0IGFsbG93 IEFMU0EgdG8gcmVzYW1wbGUgKi8KKwl1bnNpZ25lZCBpbnQgbGF0ZW5jeSA9IDA7CiAKIAlmb3Ig KGkgPSAwOyBpIDwgYWxzYS0+b3V0cHV0X2hhbmRsZXNfY291bnQ7IGkrKykgewogCQloYW5kbGUg PSBhbHNhLT5vdXRwdXRfaGFuZGxlc1tpXTsKIAogCQlyZXQgPSBzbmRfcGNtX3NldF9wYXJhbXMo aGFuZGxlLCBTTkRfUENNX0ZPUk1BVF9TMTZfTEUsCiAJCQkJCSBTTkRfUENNX0FDQ0VTU19SV19J TlRFUkxFQVZFRCwKLQkJCQkJIGNoYW5uZWxzLCBzYW1wbGluZ19yYXRlLCAwLCAwKTsKKwkJCQkJ IGNoYW5uZWxzLCBzYW1wbGluZ19yYXRlLAorCQkJCQkgc29mdF9yZXNhbXBsZSwgbGF0ZW5jeSk7 CiAJCWlndF9hc3NlcnQocmV0ID49IDApOwogCX0KIApkaWZmIC0tZ2l0IGEvbGliL2lndF9hdWRp by5jIGIvbGliL2lndF9hdWRpby5jCmluZGV4IDRjYzliZGYwLi5iYTgxNTJmMyAxMDA2NDQKLS0t IGEvbGliL2lndF9hdWRpby5jCisrKyBiL2xpYi9pZ3RfYXVkaW8uYwpAQCAtMzUsNyArMzUsNyBA QAogI2luY2x1ZGUgImlndF9hdWRpby5oIgogI2luY2x1ZGUgImlndF9jb3JlLmgiCiAKLSNkZWZp bmUgRlJFUVNfTUFYCTgKKyNkZWZpbmUgRlJFUVNfTUFYIDY0CiAKIC8qKgogICogU0VDVElPTjpp Z3RfYXVkaW8KQEAgLTQ5LDkgKzQ5LDEwIEBACiAKIHN0cnVjdCBhdWRpb19zaWduYWxfZnJlcSB7 CiAJaW50IGZyZXE7CisJaW50IGNoYW5uZWw7CiAKLQlzaG9ydCAqcGVyaW9kOwotCWludCBmcmFt ZXM7CisJaW50MTZfdCAqcGVyaW9kOworCXNpemVfdCBwZXJpb2RfbGVuOwogCWludCBvZmZzZXQ7 CiB9OwogCkBAIC02MCw3ICs2MSw3IEBAIHN0cnVjdCBhdWRpb19zaWduYWwgewogCWludCBzYW1w bGluZ19yYXRlOwogCiAJc3RydWN0IGF1ZGlvX3NpZ25hbF9mcmVxIGZyZXFzW0ZSRVFTX01BWF07 Ci0JaW50IGZyZXFzX2NvdW50OworCXNpemVfdCBmcmVxc19jb3VudDsKIH07CiAKIC8qKgpAQCAt ODksMjEgKzkwLDI4IEBAIHN0cnVjdCBhdWRpb19zaWduYWwgKmF1ZGlvX3NpZ25hbF9pbml0KGlu dCBjaGFubmVscywgaW50IHNhbXBsaW5nX3JhdGUpCiAgKiBhdWRpb19zaWduYWxfYWRkX2ZyZXF1 ZW5jeToKICAqIEBzaWduYWw6IFRoZSB0YXJnZXQgc2lnbmFsIHN0cnVjdHVyZQogICogQGZyZXF1 ZW5jeTogVGhlIGZyZXF1ZW5jeSB0byBhZGQgdG8gdGhlIHNpZ25hbAorICogQGNoYW5uZWw6IFRo ZSBjaGFubmVsIHRvIGFkZCB0aGlzIGZyZXF1ZW5jeSB0bywgb3IgLTEgdG8gYWRkIGl0IHRvIGFs bAorICogY2hhbm5lbHMKICAqCiAgKiBBZGQgYSBmcmVxdWVuY3kgdG8gdGhlIHNpZ25hbC4KICAq CiAgKiBSZXR1cm5zOiBBbiBpbnRlZ2VyIGVxdWFsIHRvIHplcm8gZm9yIHN1Y2Nlc3MgYW5kIG5l Z2F0aXZlIGZvciBmYWlsdXJlCiAgKi8KLWludCBhdWRpb19zaWduYWxfYWRkX2ZyZXF1ZW5jeShz dHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwsIGludCBmcmVxdWVuY3kpCitpbnQgYXVkaW9fc2ln bmFsX2FkZF9mcmVxdWVuY3koc3RydWN0IGF1ZGlvX3NpZ25hbCAqc2lnbmFsLCBpbnQgZnJlcXVl bmN5LAorCQkJICAgICAgIGludCBjaGFubmVsKQogewotCWludCBpbmRleCA9IHNpZ25hbC0+ZnJl cXNfY291bnQ7CisJc2l6ZV90IGluZGV4ID0gc2lnbmFsLT5mcmVxc19jb3VudDsKKwlzdHJ1Y3Qg YXVkaW9fc2lnbmFsX2ZyZXEgKmZyZXE7CiAKLQlpZiAoaW5kZXggPT0gRlJFUVNfTUFYKQotCQly ZXR1cm4gLTE7CisJaWd0X2Fzc2VydChpbmRleCA8IEZSRVFTX01BWCk7CisJaWd0X2Fzc2VydChj aGFubmVsIDwgc2lnbmFsLT5jaGFubmVscyk7CiAKIAkvKiBTdGF5IHdpdGhpbiB0aGUgTnlxdWlz dOKAk1NoYW5ub24gc2FtcGxpbmcgdGhlb3JlbS4gKi8KLQlpZiAoZnJlcXVlbmN5ID4gc2lnbmFs LT5zYW1wbGluZ19yYXRlIC8gMikKKwlpZiAoZnJlcXVlbmN5ID4gc2lnbmFsLT5zYW1wbGluZ19y YXRlIC8gMikgeworCQlpZ3RfZGVidWcoIlNraXBwaW5nIGZyZXF1ZW5jeSAlZDogdG9vIGhpZ2gg Zm9yIGEgJWQgSHogIgorCQkJICAic2FtcGxpbmcgcmF0ZVxuIiwgZnJlcXVlbmN5LCBzaWduYWwt PnNhbXBsaW5nX3JhdGUpOwogCQlyZXR1cm4gLTE7CisJfQogCiAJLyogQ2xpcCB0aGUgZnJlcXVl bmN5IHRvIGFuIGludGVnZXIgbXVsdGlwbGUgb2YgdGhlIHNhbXBsaW5nIHJhdGUuCiAJICogVGhp cyB0byBiZSBhYmxlIHRvIHN0b3JlIGEgZnVsbCBwZXJpb2Qgb2YgaXQgYW5kIHVzZSB0aGF0IGZv cgpAQCAtMTExLDExICsxMTksMTQgQEAgaW50IGF1ZGlvX3NpZ25hbF9hZGRfZnJlcXVlbmN5KHN0 cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCwgaW50IGZyZXF1ZW5jeSkKIAkgKi8KIAlmcmVxdWVu Y3kgPSBzaWduYWwtPnNhbXBsaW5nX3JhdGUgLyAoc2lnbmFsLT5zYW1wbGluZ19yYXRlIC8gZnJl cXVlbmN5KTsKIAotCWlndF9kZWJ1ZygiQWRkaW5nIHRlc3QgZnJlcXVlbmN5ICVkXG4iLCBmcmVx dWVuY3kpOworCWlndF9kZWJ1ZygiQWRkaW5nIHRlc3QgZnJlcXVlbmN5ICVkIHRvIGNoYW5uZWwg JWRcbiIsCisJCSAgZnJlcXVlbmN5LCBjaGFubmVsKTsKKworCWZyZXEgPSAmc2lnbmFsLT5mcmVx c1tpbmRleF07CisJbWVtc2V0KGZyZXEsIDAsIHNpemVvZigqZnJlcSkpOworCWZyZXEtPmZyZXEg PSBmcmVxdWVuY3k7CisJZnJlcS0+Y2hhbm5lbCA9IGNoYW5uZWw7CiAKLQlzaWduYWwtPmZyZXFz W2luZGV4XS5mcmVxID0gZnJlcXVlbmN5OwotCXNpZ25hbC0+ZnJlcXNbaW5kZXhdLmZyYW1lcyA9 IDA7Ci0Jc2lnbmFsLT5mcmVxc1tpbmRleF0ub2Zmc2V0ID0gMDsKIAlzaWduYWwtPmZyZXFzX2Nv dW50Kys7CiAKIAlyZXR1cm4gMDsKQEAgLTEzMywyMCArMTQ0LDE3IEBAIHZvaWQgYXVkaW9fc2ln bmFsX3N5bnRoZXNpemUoc3RydWN0IGF1ZGlvX3NpZ25hbCAqc2lnbmFsKQogewogCWludDE2X3Qg KnBlcmlvZDsKIAlkb3VibGUgdmFsdWU7Ci0JaW50IGZyYW1lczsKKwlzaXplX3QgcGVyaW9kX2xl bjsKIAlpbnQgZnJlcTsKIAlpbnQgaSwgajsKIAotCWlmIChzaWduYWwtPmZyZXFzX2NvdW50ID09 IDApCi0JCXJldHVybjsKLQogCWZvciAoaSA9IDA7IGkgPCBzaWduYWwtPmZyZXFzX2NvdW50OyBp KyspIHsKIAkJZnJlcSA9IHNpZ25hbC0+ZnJlcXNbaV0uZnJlcTsKLQkJZnJhbWVzID0gc2lnbmFs LT5zYW1wbGluZ19yYXRlIC8gZnJlcTsKKwkJcGVyaW9kX2xlbiA9IHNpZ25hbC0+c2FtcGxpbmdf cmF0ZSAvIGZyZXE7CiAKLQkJcGVyaW9kID0gY2FsbG9jKDEsIGZyYW1lcyAqIHNpemVvZihzaG9y dCkpOworCQlwZXJpb2QgPSBjYWxsb2MoMSwgcGVyaW9kX2xlbiAqIHNpemVvZihpbnQxNl90KSk7 CiAKLQkJZm9yIChqID0gMDsgaiA8IGZyYW1lczsgaisrKSB7CisJCWZvciAoaiA9IDA7IGogPCBw ZXJpb2RfbGVuOyBqKyspIHsKIAkJCXZhbHVlID0gMi4wICogTV9QSSAqIGZyZXEgLyBzaWduYWwt PnNhbXBsaW5nX3JhdGUgKiBqOwogCQkJdmFsdWUgPSBzaW4odmFsdWUpICogSU5UMTZfTUFYIC8g c2lnbmFsLT5mcmVxc19jb3VudDsKIApAQCAtMTU0LDI2ICsxNjIsMzQgQEAgdm9pZCBhdWRpb19z aWduYWxfc3ludGhlc2l6ZShzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwpCiAJCX0KIAogCQlz aWduYWwtPmZyZXFzW2ldLnBlcmlvZCA9IHBlcmlvZDsKLQkJc2lnbmFsLT5mcmVxc1tpXS5mcmFt ZXMgPSBmcmFtZXM7CisJCXNpZ25hbC0+ZnJlcXNbaV0ucGVyaW9kX2xlbiA9IHBlcmlvZF9sZW47 CiAJfQogfQogCiAvKioKLSAqIGF1ZGlvX3NpZ25hbF9zeW50aGVzaXplOgorICogYXVkaW9fc2ln bmFsX2RlaW5pdDoKKyAqCisgKiBSZWxlYXNlIHRoZSBzaWduYWwuCisgKi8KK3ZvaWQgYXVkaW9f c2lnbmFsX2RlaW5pdChzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwpCit7CisJYXVkaW9fc2ln bmFsX3Jlc2V0KHNpZ25hbCk7CisJZnJlZShzaWduYWwpOworfQorCisvKioKKyAqIGF1ZGlvX3Np Z25hbF9yZXNldDoKICAqIEBzaWduYWw6IFRoZSB0YXJnZXQgc2lnbmFsIHN0cnVjdHVyZQogICoK ICAqIEZyZWUgdGhlIHJlc291cmNlcyBhbGxvY2F0ZWQgYnkgYXVkaW9fc2lnbmFsX3N5bnRoZXNp emUgYW5kIHJlbW92ZQogICogdGhlIHByZXZpb3VzbHktYWRkZWQgZnJlcXVlbmNpZXMuCiAgKi8K LXZvaWQgYXVkaW9fc2lnbmFsX2NsZWFuKHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCkKK3Zv aWQgYXVkaW9fc2lnbmFsX3Jlc2V0KHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCkKIHsKLQlp bnQgaTsKKwlzaXplX3QgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBzaWduYWwtPmZyZXFzX2NvdW50 OyBpKyspIHsKLQkJaWYgKHNpZ25hbC0+ZnJlcXNbaV0ucGVyaW9kKQotCQkJZnJlZShzaWduYWwt PmZyZXFzW2ldLnBlcmlvZCk7Ci0KLQkJbWVtc2V0KCZzaWduYWwtPmZyZXFzW2ldLCAwLCBzaXpl b2Yoc3RydWN0IGF1ZGlvX3NpZ25hbF9mcmVxKSk7CisJCWZyZWUoc2lnbmFsLT5mcmVxc1tpXS5w ZXJpb2QpOwogCX0KIAogCXNpZ25hbC0+ZnJlcXNfY291bnQgPSAwOwpAQCAtMTgzLDQ0ICsxOTks NDUgQEAgdm9pZCBhdWRpb19zaWduYWxfY2xlYW4oc3RydWN0IGF1ZGlvX3NpZ25hbCAqc2lnbmFs KQogICogYXVkaW9fc2lnbmFsX2ZpbGw6CiAgKiBAc2lnbmFsOiBUaGUgdGFyZ2V0IHNpZ25hbCBz dHJ1Y3R1cmUKICAqIEBidWZmZXI6IFRoZSB0YXJnZXQgYnVmZmVyIHRvIGZpbGwKLSAqIEBmcmFt ZXM6IFRoZSBudW1iZXIgb2YgZnJhbWVzIHRvIGZpbGwKKyAqIEBzYW1wbGVzOiBUaGUgbnVtYmVy IG9mIHNhbXBsZXMgdG8gZmlsbAogICoKLSAqIEZpbGwgdGhlIHJlcXVlc3RlZCBudW1iZXIgb2Yg ZnJhbWVzIHRvIHRoZSB0YXJnZXQgYnVmZmVyIHdpdGggdGhlIGF1ZGlvCisgKiBGaWxsIHRoZSBy ZXF1ZXN0ZWQgbnVtYmVyIG9mIHNhbXBsZXMgdG8gdGhlIHRhcmdldCBidWZmZXIgd2l0aCB0aGUg YXVkaW8KICAqIHNpZ25hbCBkYXRhIChpbiBpbnRlcmxlYXZlZCBTMTZfTEUgZm9ybWF0KSwgYXQg dGhlIHJlcXVlc3RlZCBzYW1wbGluZyByYXRlCiAgKiBhbmQgbnVtYmVyIG9mIGNoYW5uZWxzLgog ICovCi12b2lkIGF1ZGlvX3NpZ25hbF9maWxsKHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCwg aW50MTZfdCAqYnVmZmVyLCBpbnQgZnJhbWVzKQordm9pZCBhdWRpb19zaWduYWxfZmlsbChzdHJ1 Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwsIGludDE2X3QgKmJ1ZmZlciwKKwkJICAgICAgIHNpemVf dCBidWZmZXJfbGVuKQogewogCWludDE2X3QgKmRlc3RpbmF0aW9uLCAqc291cmNlOworCXN0cnVj dCBhdWRpb19zaWduYWxfZnJlcSAqZnJlcTsKIAlpbnQgdG90YWw7Ci0JaW50IGZyZXFfZnJhbWVz OwotCWludCBmcmVxX29mZnNldDsKIAlpbnQgY291bnQ7CiAJaW50IGksIGosIGs7CiAKLQltZW1z ZXQoYnVmZmVyLCAwLCBzaXplb2YoaW50MTZfdCkgKiBzaWduYWwtPmNoYW5uZWxzICogZnJhbWVz KTsKKwltZW1zZXQoYnVmZmVyLCAwLCBzaXplb2YoaW50MTZfdCkgKiBzaWduYWwtPmNoYW5uZWxz ICogYnVmZmVyX2xlbik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgc2lnbmFsLT5mcmVxc19jb3VudDsg aSsrKSB7CisJCWZyZXEgPSAmc2lnbmFsLT5mcmVxc1tpXTsKIAkJdG90YWwgPSAwOwogCi0JCXdo aWxlICh0b3RhbCA8IGZyYW1lcykgewotCQkJZnJlcV9mcmFtZXMgPSBzaWduYWwtPmZyZXFzW2ld LmZyYW1lczsKLQkJCWZyZXFfb2Zmc2V0ID0gc2lnbmFsLT5mcmVxc1tpXS5vZmZzZXQ7CisJCWln dF9hc3NlcnQoZnJlcS0+cGVyaW9kKTsKIAotCQkJc291cmNlID0gc2lnbmFsLT5mcmVxc1tpXS5w ZXJpb2QgKyBmcmVxX29mZnNldDsKKwkJd2hpbGUgKHRvdGFsIDwgYnVmZmVyX2xlbikgeworCQkJ c291cmNlID0gZnJlcS0+cGVyaW9kICsgZnJlcS0+b2Zmc2V0OwogCQkJZGVzdGluYXRpb24gPSBi dWZmZXIgKyB0b3RhbCAqIHNpZ25hbC0+Y2hhbm5lbHM7CiAKLQkJCWNvdW50ID0gZnJlcV9mcmFt ZXMgLSBmcmVxX29mZnNldDsKLQkJCWlmIChjb3VudCA+IChmcmFtZXMgLSB0b3RhbCkpCi0JCQkJ Y291bnQgPSBmcmFtZXMgLSB0b3RhbDsKKwkJCWNvdW50ID0gZnJlcS0+cGVyaW9kX2xlbiAtIGZy ZXEtPm9mZnNldDsKKwkJCWlmIChjb3VudCA+IGJ1ZmZlcl9sZW4gLSB0b3RhbCkKKwkJCQljb3Vu dCA9IGJ1ZmZlcl9sZW4gLSB0b3RhbDsKIAotCQkJZnJlcV9vZmZzZXQgKz0gY291bnQ7Ci0JCQlm cmVxX29mZnNldCAlPSBmcmVxX2ZyYW1lczsKLQotCQkJc2lnbmFsLT5mcmVxc1tpXS5vZmZzZXQg PSBmcmVxX29mZnNldDsKKwkJCWZyZXEtPm9mZnNldCArPSBjb3VudDsKKwkJCWZyZXEtPm9mZnNl dCAlPSBmcmVxLT5wZXJpb2RfbGVuOwogCiAJCQlmb3IgKGogPSAwOyBqIDwgY291bnQ7IGorKykg ewogCQkJCWZvciAoayA9IDA7IGsgPCBzaWduYWwtPmNoYW5uZWxzOyBrKyspIHsKKwkJCQkJaWYg KGZyZXEtPmNoYW5uZWwgPj0gMCAmJgorCQkJCQkgICAgZnJlcS0+Y2hhbm5lbCAhPSBrKQorCQkJ CQkJY29udGludWU7CiAJCQkJCWRlc3RpbmF0aW9uW2ogKiBzaWduYWwtPmNoYW5uZWxzICsga10g Kz0gc291cmNlW2pdOwogCQkJCX0KIAkJCX0KQEAgLTIzNywxMSArMjU0LDExIEBAIHZvaWQgYXVk aW9fc2lnbmFsX2ZpbGwoc3RydWN0IGF1ZGlvX3NpZ25hbCAqc2lnbmFsLCBpbnQxNl90ICpidWZm ZXIsIGludCBmcmFtZXMpCiAgKiBzYW1wbGluZ19yYXRlIGlzIGdpdmVuIGluIEh6LiBkYXRhX2xl biBpcyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGRhdGEuCiAgKi8KIGJvb2wgYXVkaW9fc2ln bmFsX2RldGVjdChzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwsIGludCBzYW1wbGluZ19yYXRl LAotCQkJIGRvdWJsZSAqZGF0YSwgc2l6ZV90IGRhdGFfbGVuKQorCQkJIGludCBjaGFubmVsLCBk b3VibGUgKmRhdGEsIHNpemVfdCBkYXRhX2xlbikKIHsKIAlzaXplX3QgYW1wbGl0dWRlX2xlbiA9 IGRhdGFfbGVuIC8gMiArIDE7CiAJZG91YmxlIGFtcGxpdHVkZVthbXBsaXR1ZGVfbGVuXTsKLQli b29sIGRldGVjdGVkW3NpZ25hbC0+ZnJlcXNfY291bnRdOworCWJvb2wgZGV0ZWN0ZWRbRlJFUVNf TUFYXTsKIAlpbnQgcmV0LCBlcHNpbG9uLCBmcmVxLCBtYXhfZnJlcTsKIAlkb3VibGUgbWF4LCB0 aHJlc2hvbGQ7CiAJc2l6ZV90IGksIGo7CkBAIC0yNDksNyArMjY2LDcgQEAgYm9vbCBhdWRpb19z aWduYWxfZGV0ZWN0KHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCwgaW50IHNhbXBsaW5nX3Jh dGUsCiAKIAkvKiBBbGxvd2VkIGVycm9yIGluIEh6IGR1ZSB0byBGRlQgc3RlcCAqLwogCWVwc2ls b24gPSBzYW1wbGluZ19yYXRlIC8gZGF0YV9sZW47Ci0JaWd0X2RlYnVnKCJhbGxvd2VkIGZyZXEu IGVycm9yOiAlZCBIelxuIiwgZXBzaWxvbik7CisJaWd0X2RlYnVnKCJBbGxvd2VkIGZyZXEuIGVy cm9yOiAlZCBIelxuIiwgZXBzaWxvbik7CiAKIAlyZXQgPSBnc2xfZmZ0X3JlYWxfcmFkaXgyX3Ry YW5zZm9ybShkYXRhLCAxLCBkYXRhX2xlbik7CiAJaWd0X2Fzc2VydChyZXQgPT0gMCk7CkBAIC0y OTUsNiArMzEyLDEwIEBAIGJvb2wgYXVkaW9fc2lnbmFsX2RldGVjdChzdHJ1Y3QgYXVkaW9fc2ln bmFsICpzaWduYWwsIGludCBzYW1wbGluZ19yYXRlLAogCQkgKiBpbnZhbGlkLiAqLwogCQlpZiAo YW1wbGl0dWRlW2ldIDwgdGhyZXNob2xkKSB7CiAJCQlmb3IgKGogPSAwOyBqIDwgc2lnbmFsLT5m cmVxc19jb3VudDsgaisrKSB7CisJCQkJaWYgKHNpZ25hbC0+ZnJlcXNbal0uY2hhbm5lbCA+PSAw ICYmCisJCQkJICAgIHNpZ25hbC0+ZnJlcXNbal0uY2hhbm5lbCAhPSBjaGFubmVsKQorCQkJCQlj b250aW51ZTsKKwogCQkJCWlmIChzaWduYWwtPmZyZXFzW2pdLmZyZXEgPgogCQkJCSAgICBtYXhf ZnJlcSAtIGVwc2lsb24gJiYKIAkJCQkgICAgc2lnbmFsLT5mcmVxc1tqXS5mcmVxIDwKQEAgLTMy Nyw2ICszNDgsMTAgQEAgYm9vbCBhdWRpb19zaWduYWxfZGV0ZWN0KHN0cnVjdCBhdWRpb19zaWdu YWwgKnNpZ25hbCwgaW50IHNhbXBsaW5nX3JhdGUsCiAKIAkvKiBDaGVjayB0aGF0IGFsbCBmcmVx dWVuY2llcyB3ZSBnZW5lcmF0ZWQgaGF2ZSBiZWVuIGRldGVjdGVkLiAqLwogCWZvciAoaSA9IDA7 IGkgPCBzaWduYWwtPmZyZXFzX2NvdW50OyBpKyspIHsKKwkJaWYgKHNpZ25hbC0+ZnJlcXNbaV0u Y2hhbm5lbCA+PSAwICYmCisJCSAgICBzaWduYWwtPmZyZXFzW2ldLmNoYW5uZWwgIT0gY2hhbm5l bCkKKwkJCWNvbnRpbnVlOworCiAJCWlmICghZGV0ZWN0ZWRbaV0pIHsKIAkJCWlndF9kZWJ1Zygi TWlzc2luZyBmcmVxdWVuY3k6ICVkXG4iLAogCQkJCSAgc2lnbmFsLT5mcmVxc1tpXS5mcmVxKTsK ZGlmZiAtLWdpdCBhL2xpYi9pZ3RfYXVkaW8uaCBiL2xpYi9pZ3RfYXVkaW8uaAppbmRleCA0YWE0 M2U2OS4uZmUyNmJiNTcgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfYXVkaW8uaAorKysgYi9saWIvaWd0 X2F1ZGlvLmgKQEAgLTM1LDEyICszNSwxNSBAQAogc3RydWN0IGF1ZGlvX3NpZ25hbDsKIAogc3Ry dWN0IGF1ZGlvX3NpZ25hbCAqYXVkaW9fc2lnbmFsX2luaXQoaW50IGNoYW5uZWxzLCBpbnQgc2Ft cGxpbmdfcmF0ZSk7Ci1pbnQgYXVkaW9fc2lnbmFsX2FkZF9mcmVxdWVuY3koc3RydWN0IGF1ZGlv X3NpZ25hbCAqc2lnbmFsLCBpbnQgZnJlcXVlbmN5KTsKK3ZvaWQgYXVkaW9fc2lnbmFsX2RlaW5p dChzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwpOworaW50IGF1ZGlvX3NpZ25hbF9hZGRfZnJl cXVlbmN5KHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCwgaW50IGZyZXF1ZW5jeSwKKwkJCSAg ICAgICBpbnQgY2hhbm5lbCk7CiB2b2lkIGF1ZGlvX3NpZ25hbF9zeW50aGVzaXplKHN0cnVjdCBh dWRpb19zaWduYWwgKnNpZ25hbCk7Ci12b2lkIGF1ZGlvX3NpZ25hbF9jbGVhbihzdHJ1Y3QgYXVk aW9fc2lnbmFsICpzaWduYWwpOwotdm9pZCBhdWRpb19zaWduYWxfZmlsbChzdHJ1Y3QgYXVkaW9f c2lnbmFsICpzaWduYWwsIGludDE2X3QgKmJ1ZmZlciwgaW50IGZyYW1lcyk7Cit2b2lkIGF1ZGlv X3NpZ25hbF9yZXNldChzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwpOwordm9pZCBhdWRpb19z aWduYWxfZmlsbChzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwsIGludDE2X3QgKmJ1ZmZlciwK KwkJICAgICAgIHNpemVfdCBidWZmZXJfbGVuKTsKIGJvb2wgYXVkaW9fc2lnbmFsX2RldGVjdChz dHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwsIGludCBzYW1wbGluZ19yYXRlLAotCQkJIGRvdWJs ZSAqZGF0YSwgc2l6ZV90IGRhdGFfbGVuKTsKKwkJCSBpbnQgY2hhbm5lbCwgZG91YmxlICpkYXRh LCBzaXplX3QgZGF0YV9sZW4pOwogc2l6ZV90IGF1ZGlvX2V4dHJhY3RfY2hhbm5lbF9zMzJfbGUo ZG91YmxlICpkc3QsIHNpemVfdCBkc3RfY2FwLAogCQkJCSAgICBpbnQzMl90ICpzcmMsIHNpemVf dCBzcmNfbGVuLAogCQkJCSAgICBpbnQgbl9jaGFubmVscywgaW50IGNoYW5uZWwpOwpkaWZmIC0t Z2l0IGEvdGVzdHMva21zX2NoYW1lbGl1bS5jIGIvdGVzdHMva21zX2NoYW1lbGl1bS5jCmluZGV4 IDQ0MDEwNTM0Li4xMmFiOTk5NyAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2NoYW1lbGl1bS5jCisr KyBiL3Rlc3RzL2ttc19jaGFtZWxpdW0uYwpAQCAtNzc3LDE2ICs3NzcsMTYgQEAgZG9fdGVzdF9k aXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAog CQkgICAgICBzdHJ1Y3QgYWxzYSAqYWxzYSwgaW50IHBsYXliYWNrX2NoYW5uZWxzLAogCQkgICAg ICBpbnQgcGxheWJhY2tfcmF0ZSkKIHsKLQlpbnQgcmV0LCBjYXB0dXJlX3JhdGUsIGNhcHR1cmVf Y2hhbm5lbHMsIG1zZWM7CisJaW50IHJldCwgY2FwdHVyZV9yYXRlLCBjYXB0dXJlX2NoYW5uZWxz LCBtc2VjLCBmcmVxOwogCXN0cnVjdCBjaGFtZWxpdW1fYXVkaW9fZmlsZSAqYXVkaW9fZmlsZTsK IAlzdHJ1Y3QgY2hhbWVsaXVtX3N0cmVhbSAqc3RyZWFtOwogCWVudW0gY2hhbWVsaXVtX3N0cmVh bV9yZWFsdGltZV9tb2RlIHN0cmVhbV9tb2RlOwogCXN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25h bDsKIAlpbnQzMl90ICpyZWN2LCAqYnVmOwogCWRvdWJsZSAqY2hhbm5lbDsKLQlzaXplX3QgaSwg c3RyZWFrLCBwYWdlX2NvdW50OworCXNpemVfdCBpLCBqLCBzdHJlYWssIHBhZ2VfY291bnQ7CiAJ c2l6ZV90IHJlY3ZfbGVuLCBidWZfbGVuLCBidWZfY2FwLCBidWZfc2l6ZSwgY2hhbm5lbF9sZW47 Ci0JYm9vbCBvazsKKwlib29sIG9rLCBzdWNjZXNzOwogCWNoYXIgZHVtcF9zdWZmaXhbNjRdOwog CWNoYXIgKmR1bXBfcGF0aCA9IE5VTEw7CiAJaW50IGR1bXBfZmQgPSAtMTsKQEAgLTc5NCwxMCAr Nzk0LDE1IEBAIGRvX3Rlc3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFt ZWxpdW1fcG9ydCAqcG9ydCwKIAlzdHJ1Y3QgYXVkaW9fc3RhdGUgc3RhdGUgPSB7fTsKIAogCWlm ICghYWxzYV90ZXN0X291dHB1dF9jb25maWd1cmF0aW9uKGFsc2EsIHBsYXliYWNrX2NoYW5uZWxz LAotCQkJCQkgICAgcGxheWJhY2tfcmF0ZSkpCisJCQkJCSAgICBwbGF5YmFja19yYXRlKSkgewor CQlpZ3RfZGVidWcoIlNraXBwaW5nIHRlc3Qgd2l0aCBzYW1wbGUgcmF0ZSAlZCBhbmQgJWQgY2hh bm5lbHMgIgorCQkJICAiYmVjYXVzZSBzZWxlY3RlZCBvdXRwdXQgZGV2aWNlcyBkb24ndCBzdXBw b3J0IHRoaXMgIgorCQkJICAiY29uZmlndXJhdGlvblxuIiwgcGxheWJhY2tfcmF0ZSwgcGxheWJh Y2tfY2hhbm5lbHMpOwogCQlyZXR1cm4gZmFsc2U7CisJfQogCi0JaWd0X2RlYnVnKCJUZXN0aW5n IHdpdGggcGxheWJhY2sgc2FtcGxpbmcgcmF0ZSAlZFxuIiwgcGxheWJhY2tfcmF0ZSk7CisJaWd0 X2RlYnVnKCJUZXN0aW5nIHdpdGggcGxheWJhY2sgc2FtcGxpbmcgcmF0ZSAlZCBhbmQgJWQgY2hh bm5lbHNcbiIsCisJCSAgcGxheWJhY2tfcmF0ZSwgcGxheWJhY2tfY2hhbm5lbHMpOwogCWFsc2Ff Y29uZmlndXJlX291dHB1dChhbHNhLCBwbGF5YmFja19jaGFubmVscywgcGxheWJhY2tfcmF0ZSk7 CiAKIAljaGFtZWxpdW1fc3RhcnRfY2FwdHVyaW5nX2F1ZGlvKGRhdGEtPmNoYW1lbGl1bSwgcG9y dCwgZmFsc2UpOwpAQCAtODI1LDggKzgzMCwxMiBAQCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0 YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAJc2lnbmFsID0gYXVkaW9f c2lnbmFsX2luaXQocGxheWJhY2tfY2hhbm5lbHMsIHBsYXliYWNrX3JhdGUpOwogCWlndF9hc3Nl cnQoc2lnbmFsKTsKIAotCWZvciAoaSA9IDA7IGkgPCB0ZXN0X2ZyZXF1ZW5jaWVzX2NvdW50OyBp KyspCi0JCWF1ZGlvX3NpZ25hbF9hZGRfZnJlcXVlbmN5KHNpZ25hbCwgdGVzdF9mcmVxdWVuY2ll c1tpXSk7CisJZm9yIChpID0gMDsgaSA8IHRlc3RfZnJlcXVlbmNpZXNfY291bnQ7IGkrKykgewor CQlmb3IgKGogPSAwOyBqIDwgcGxheWJhY2tfY2hhbm5lbHM7IGorKykgeworCQkJZnJlcSA9IHRl c3RfZnJlcXVlbmNpZXNbaV07CisJCQlhdWRpb19zaWduYWxfYWRkX2ZyZXF1ZW5jeShzaWduYWws IGZyZXEsIGopOworCQl9CisJfQogCWF1ZGlvX3NpZ25hbF9zeW50aGVzaXplKHNpZ25hbCk7CiAK IAlzdGF0ZS5zaWduYWwgPSBzaWduYWw7CkBAIC04NTEsMTAgKzg2MCwxMSBAQCBkb190ZXN0X2Rp c3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAJ cmVjdiA9IE5VTEw7CiAJcmVjdl9sZW4gPSAwOwogCisJc3VjY2VzcyA9IGZhbHNlOwogCXN0cmVh ayA9IDA7CiAJbXNlYyA9IDA7CiAJaSA9IDA7Ci0Jd2hpbGUgKHN0cmVhayA8IE1JTl9TVFJFQUsg JiYgbXNlYyA8IEFVRElPX1RJTUVPVVQpIHsKKwl3aGlsZSAoIXN1Y2Nlc3MgJiYgbXNlYyA8IEFV RElPX1RJTUVPVVQpIHsKIAkJb2sgPSBjaGFtZWxpdW1fc3RyZWFtX3JlY2VpdmVfcmVhbHRpbWVf YXVkaW8oc3RyZWFtLAogCQkJCQkJCSAgICAgJnBhZ2VfY291bnQsCiAJCQkJCQkJICAgICAmcmVj diwgJnJlY3ZfbGVuKTsKQEAgLTg3MiwyMSArODgyLDI3IEBAIGRvX3Rlc3RfZGlzcGxheV9hdWRp byhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwKIAkJCWlndF9hc3Nl cnQod3JpdGUoZHVtcF9mZCwgYnVmLCBidWZfc2l6ZSkgPT0gYnVmX3NpemUpOwogCQl9CiAKLQkJ LyogVE9ETzogY2hlY2sgb3RoZXIgY2hhbm5lbHMgdG9vLCBub3QganVzdCB0aGUgZmlyc3Qgb25l ICovCi0JCWF1ZGlvX2V4dHJhY3RfY2hhbm5lbF9zMzJfbGUoY2hhbm5lbCwgY2hhbm5lbF9sZW4s IGJ1ZiwgYnVmX2xlbiwKLQkJCQkJICAgICBjYXB0dXJlX2NoYW5uZWxzLCAwKTsKLQogCQltc2Vj ID0gaSAqIGNoYW5uZWxfbGVuIC8gKGRvdWJsZSkgY2FwdHVyZV9yYXRlICogMTAwMDsKIAkJaWd0 X2RlYnVnKCJEZXRlY3RpbmcgYXVkaW8gc2lnbmFsLCB0PSVkIG1zZWNcbiIsIG1zZWMpOwogCi0J CWlmIChhdWRpb19zaWduYWxfZGV0ZWN0KHNpZ25hbCwgY2FwdHVyZV9yYXRlLCBjaGFubmVsLAot CQkJCQljaGFubmVsX2xlbikpCi0JCQlzdHJlYWsrKzsKLQkJZWxzZQotCQkJc3RyZWFrID0gMDsK KwkJZm9yIChqID0gMDsgaiA8IHBsYXliYWNrX2NoYW5uZWxzOyBqKyspIHsKKwkJCWlndF9kZWJ1 ZygiUHJvY2Vzc2luZyBjaGFubmVsICV6dVxuIiwgaik7CisKKwkJCWF1ZGlvX2V4dHJhY3RfY2hh bm5lbF9zMzJfbGUoY2hhbm5lbCwgY2hhbm5lbF9sZW4sCisJCQkJCQkgICAgIGJ1ZiwgYnVmX2xl biwKKwkJCQkJCSAgICAgY2FwdHVyZV9jaGFubmVscywgaik7CisKKwkJCWlmIChhdWRpb19zaWdu YWxfZGV0ZWN0KHNpZ25hbCwgY2FwdHVyZV9yYXRlLCBqLAorCQkJCQkJY2hhbm5lbCwgY2hhbm5l bF9sZW4pKQorCQkJCXN0cmVhaysrOworCQkJZWxzZQorCQkJCXN0cmVhayA9IDA7CisJCX0KIAog CQlidWZfbGVuID0gMDsKIAkJaSsrOworCisJCXN1Y2Nlc3MgPSBzdHJlYWsgPT0gTUlOX1NUUkVB SyAqIHBsYXliYWNrX2NoYW5uZWxzOwogCX0KIAogCWlndF9kZWJ1ZygiU3RvcHBpbmcgYXVkaW8g cGxheWJhY2tcbiIpOwpAQCAtOTIxLDEyICs5MzcsMTAgQEAgZG9fdGVzdF9kaXNwbGF5X2F1ZGlv KGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAogCQljaGFtZWxpdW1f ZGVzdHJveV9hdWRpb19maWxlKGF1ZGlvX2ZpbGUpOwogCX0KIAotCWF1ZGlvX3NpZ25hbF9jbGVh bihzaWduYWwpOwotCWZyZWUoc2lnbmFsKTsKLQorCWF1ZGlvX3NpZ25hbF9kZWluaXQoc2lnbmFs KTsKIAljaGFtZWxpdW1fc3RyZWFtX2RlaW5pdChzdHJlYW0pOwogCi0JaWd0X2Fzc2VydChzdHJl YWsgPT0gTUlOX1NUUkVBSyk7CisJaWd0X2Fzc2VydChzdWNjZXNzKTsKIAlyZXR1cm4gdHJ1ZTsK IH0KIAotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=