From mboxrd@z Thu Jan 1 00:00:00 1970 From: Qiang Yu Subject: [PATCH v3 xserver 4/4] modesetting: add DRI2 page flip support Date: Mon, 22 Aug 2016 11:53:58 +0800 Message-ID: <1471838038-16382-5-git-send-email-Qiang.Yu@amd.com> References: <1471838038-16382-1-git-send-email-Qiang.Yu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1471838038-16382-1-git-send-email-Qiang.Yu-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org Cc: Qiang Yu , michel-otUistvHUpPR7s880joybQ@public.gmane.org, emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org U2lnbmVkLW9mZi1ieTogUWlhbmcgWXUgPFFpYW5nLll1QGFtZC5jb20+Ci0tLQogaHcveGZyZWU4 Ni9kcml2ZXJzL21vZGVzZXR0aW5nL2RyaTIuYyAgICAgICAgICAgIHwgMjM3ICsrKysrKysrKysr KysrKysrKysrKystCiBody94ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvZHJpdmVyLmggICAg ICAgICAgfCAgIDUgKy0KIGh3L3hmcmVlODYvZHJpdmVycy9tb2Rlc2V0dGluZy9kcm1tb2RlX2Rp c3BsYXkuaCB8ICAgMyArCiBody94ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvcGFnZWZsaXAu YyAgICAgICAgfCAgIDcgKy0KIGh3L3hmcmVlODYvZHJpdmVycy9tb2Rlc2V0dGluZy9wcmVzZW50 LmMgICAgICAgICB8ICAyMCArLQogNSBmaWxlcyBjaGFuZ2VkLCAyNTcgaW5zZXJ0aW9ucygrKSwg MTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaHcveGZyZWU4Ni9kcml2ZXJzL21vZGVzZXR0 aW5nL2RyaTIuYyBiL2h3L3hmcmVlODYvZHJpdmVycy9tb2Rlc2V0dGluZy9kcmkyLmMKaW5kZXgg ODNjYjNlMC4uMTI1YzQxMyAxMDA2NDQKLS0tIGEvaHcveGZyZWU4Ni9kcml2ZXJzL21vZGVzZXR0 aW5nL2RyaTIuYworKysgYi9ody94ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvZHJpMi5jCkBA IC00Niw2ICs0Niw3IEBACiAKIGVudW0gbXNfZHJpMl9mcmFtZV9ldmVudF90eXBlIHsKICAgICBN U19EUkkyX1FVRVVFX1NXQVAsCisgICAgTVNfRFJJMl9RVUVVRV9GTElQLAogICAgIE1TX0RSSTJf V0FJVF9NU0MsCiB9OwogCkBAIC0zOTksNiArNDAwLDE5NyBAQCBtc19kcmkyX2JsaXRfc3dhcChE cmF3YWJsZVB0ciBkcmF3YWJsZSwKICAgICBtc19kcmkyX2NvcHlfcmVnaW9uKGRyYXdhYmxlLCAm cmVnaW9uLCBkc3QsIHNyYyk7CiB9CiAKK3N0cnVjdCBtc19kcmkyX3ZibGFua19ldmVudCB7Cisg ICAgWElEIGRyYXdhYmxlX2lkOworICAgIENsaWVudFB0ciBjbGllbnQ7CisgICAgRFJJMlN3YXBF dmVudFB0ciBldmVudF9jb21wbGV0ZTsKKyAgICB2b2lkICpldmVudF9kYXRhOworfTsKKworc3Rh dGljIHZvaWQKK21zX2RyaTJfZmxpcF9hYm9ydChtb2Rlc2V0dGluZ1B0ciBtcywgdm9pZCAqZGF0 YSkKK3sKKyAgICBzdHJ1Y3QgbXNfcHJlc2VudF92YmxhbmtfZXZlbnQgKmV2ZW50ID0gZGF0YTsK KworICAgIG1zLT5kcm1tb2RlLmRyaTJfZmxpcHBpbmcgPSBGQUxTRTsKKyAgICBmcmVlKGV2ZW50 KTsKK30KKworc3RhdGljIHZvaWQKK21zX2RyaTJfZmxpcF9oYW5kbGVyKG1vZGVzZXR0aW5nUHRy IG1zLCB1aW50NjRfdCBtc2MsIAorICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdXN0LCB2 b2lkICpkYXRhKQoreworICAgIHN0cnVjdCBtc19kcmkyX3ZibGFua19ldmVudCAqZXZlbnQgPSBk YXRhOworICAgIHVpbnQzMl90IGZyYW1lID0gbXNjOworICAgIHVpbnQzMl90IHR2X3NlYyA9IHVz dCAvIDEwMDAwMDA7CisgICAgdWludDMyX3QgdHZfdXNlYyA9IHVzdCAlIDEwMDAwMDA7CisgICAg RHJhd2FibGVQdHIgZHJhd2FibGU7CisgICAgaW50IHN0YXR1czsKKworICAgIHN0YXR1cyA9IGRp eExvb2t1cERyYXdhYmxlKCZkcmF3YWJsZSwgZXZlbnQtPmRyYXdhYmxlX2lkLCBzZXJ2ZXJDbGll bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTV9BTlksIERpeFdyaXRlQWNjZXNz KTsKKyAgICBpZiAoc3RhdHVzID09IFN1Y2Nlc3MpCisgICAgICAgIERSSTJTd2FwQ29tcGxldGUo ZXZlbnQtPmNsaWVudCwgZHJhd2FibGUsIGZyYW1lLCB0dl9zZWMsIHR2X3VzZWMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgRFJJMl9GTElQX0NPTVBMRVRFLCBldmVudC0+ZXZlbnRfY29tcGxl dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQtPmV2ZW50X2RhdGEpOworCisgICAg bXMtPmRybW1vZGUuZHJpMl9mbGlwcGluZyA9IEZBTFNFOworICAgIGZyZWUoZXZlbnQpOworfQor CitzdGF0aWMgQm9vbAorbXNfZHJpMl9zY2hlZHVsZV9mbGlwKG1zX2RyaTJfZnJhbWVfZXZlbnRf cHRyIGluZm8pCit7CisgICAgRHJhd2FibGVQdHIgZHJhdyA9IGluZm8tPmRyYXdhYmxlOworICAg IFNjcmVlblB0ciBzY3JlZW4gPSBkcmF3LT5wU2NyZWVuOworICAgIFNjcm5JbmZvUHRyIHNjcm4g PSB4Zjg2U2NyZWVuVG9TY3JuKHNjcmVlbik7CisgICAgbW9kZXNldHRpbmdQdHIgbXMgPSBtb2Rl c2V0dGluZ1BUUihzY3JuKTsKKyAgICBtc19kcmkyX2J1ZmZlcl9wcml2YXRlX3B0ciBiYWNrX3By aXYgPSBpbmZvLT5iYWNrLT5kcml2ZXJQcml2YXRlOworICAgIHN0cnVjdCBtc19kcmkyX3ZibGFu a19ldmVudCAqZXZlbnQ7CisgICAgZHJtbW9kZV9jcnRjX3ByaXZhdGVfcHRyIGRybW1vZGVfY3J0 YyA9IGluZm8tPmNydGMtPmRyaXZlcl9wcml2YXRlOworCisgICAgZXZlbnQgPSBjYWxsb2MoMSwg c2l6ZW9mKHN0cnVjdCBtc19kcmkyX3ZibGFua19ldmVudCkpOworICAgIGlmICghZXZlbnQpCisg ICAgICAgIHJldHVybiBGQUxTRTsKKworICAgIGV2ZW50LT5kcmF3YWJsZV9pZCA9IGRyYXctPmlk OworICAgIGV2ZW50LT5jbGllbnQgPSBpbmZvLT5jbGllbnQ7CisgICAgZXZlbnQtPmV2ZW50X2Nv bXBsZXRlID0gaW5mby0+ZXZlbnRfY29tcGxldGU7CisgICAgZXZlbnQtPmV2ZW50X2RhdGEgPSBp bmZvLT5ldmVudF9kYXRhOworCisgICAgaWYgKG1zX2RvX3BhZ2VmbGlwKHNjcmVlbiwgYmFja19w cml2LT5waXhtYXAsIGV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICBkcm1tb2RlX2NydGMt PnZibGFua19waXBlLCBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgbXNfZHJpMl9mbGlw X2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgIG1zX2RyaTJfZmxpcF9hYm9ydCkpIHsK KyAgICAgICAgbXMtPmRybW1vZGUuZHJpMl9mbGlwcGluZyA9IFRSVUU7CisgICAgICAgIHJldHVy biBUUlVFOworICAgIH0KKyAgICByZXR1cm4gRkFMU0U7Cit9CisKK3N0YXRpYyBCb29sCit1cGRh dGVfZnJvbnQoRHJhd2FibGVQdHIgZHJhdywgRFJJMkJ1ZmZlclB0ciBmcm9udCkKK3sKKyAgICBT Y3JlZW5QdHIgc2NyZWVuID0gZHJhdy0+cFNjcmVlbjsKKyAgICBQaXhtYXBQdHIgcGl4bWFwID0g Z2V0X2RyYXdhYmxlX3BpeG1hcChkcmF3KTsKKyAgICBtc19kcmkyX2J1ZmZlcl9wcml2YXRlX3B0 ciBwcml2ID0gZnJvbnQtPmRyaXZlclByaXZhdGU7CisgICAgQ0FSRDMyIHNpemU7CisgICAgQ0FS RDE2IHBpdGNoOworCisgICAgZnJvbnQtPm5hbWUgPSBnbGFtb3JfbmFtZV9mcm9tX3BpeG1hcChw aXhtYXAsICZwaXRjaCwgJnNpemUpOworICAgIGlmIChmcm9udC0+bmFtZSA8IDApCisgICAgICAg IHJldHVybiBGQUxTRTsKKworICAgICgqc2NyZWVuLT5EZXN0cm95UGl4bWFwKSAocHJpdi0+cGl4 bWFwKTsKKyAgICBmcm9udC0+cGl0Y2ggPSBwaXhtYXAtPmRldktpbmQ7CisgICAgZnJvbnQtPmNw cCA9IHBpeG1hcC0+ZHJhd2FibGUuYml0c1BlclBpeGVsIC8gODsKKyAgICBwcml2LT5waXhtYXAg PSBwaXhtYXA7CisgICAgcGl4bWFwLT5yZWZjbnQrKzsKKworICAgIHJldHVybiBUUlVFOworfQor CitzdGF0aWMgQm9vbAorY2FuX2V4Y2hhbmdlKFNjcm5JbmZvUHRyIHNjcm4sIERyYXdhYmxlUHRy IGRyYXcsCisJICAgICBEUkkyQnVmZmVyUHRyIGZyb250LCBEUkkyQnVmZmVyUHRyIGJhY2spCit7 CisgICAgbXNfZHJpMl9idWZmZXJfcHJpdmF0ZV9wdHIgZnJvbnRfcHJpdiA9IGZyb250LT5kcml2 ZXJQcml2YXRlOworICAgIG1zX2RyaTJfYnVmZmVyX3ByaXZhdGVfcHRyIGJhY2tfcHJpdiA9IGJh Y2stPmRyaXZlclByaXZhdGU7CisgICAgUGl4bWFwUHRyIGZyb250X3BpeG1hcDsKKyAgICBQaXht YXBQdHIgYmFja19waXhtYXAgPSBiYWNrX3ByaXYtPnBpeG1hcDsKKyAgICB4Zjg2Q3J0Y0NvbmZp Z1B0ciBjb25maWcgPSBYRjg2X0NSVENfQ09ORklHX1BUUihzY3JuKTsKKyAgICBpbnQgbnVtX2Ny dGNzX29uID0gMDsKKyAgICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBjb25maWctPm51 bV9jcnRjOyBpKyspIHsKKyAgICAgICAgZHJtbW9kZV9jcnRjX3ByaXZhdGVfcHRyIGRybW1vZGVf Y3J0YyA9IGNvbmZpZy0+Y3J0Y1tpXS0+ZHJpdmVyX3ByaXZhdGU7CisKKyAgICAgICAgLyogRG9u J3QgZG8gcGFnZWZsaXBwaW5nIGlmIENSVENzIGFyZSByb3RhdGVkLiAqLworI2lmZGVmIEdMQU1P Ul9IQVNfR0JNCisgICAgICAgIGlmIChkcm1tb2RlX2NydGMtPnJvdGF0ZV9iby5nYm0pCisgICAg ICAgICAgICByZXR1cm4gRkFMU0U7CisjZW5kaWYKKworICAgICAgICBpZiAobXNfY3J0Y19vbihj b25maWctPmNydGNbaV0pKQorICAgICAgICAgICAgbnVtX2NydGNzX29uKys7CisgICAgfQorCisg ICAgLyogV2UgY2FuJ3QgZG8gcGFnZWZsaXBwaW5nIGlmIGFsbCB0aGUgQ1JUQ3MgYXJlIG9mZi4g Ki8KKyAgICBpZiAobnVtX2NydGNzX29uID09IDApCisgICAgICAgIHJldHVybiBGQUxTRTsKKwor ICAgIGlmICghdXBkYXRlX2Zyb250KGRyYXcsIGZyb250KSkKKyAgICAgICAgcmV0dXJuIEZBTFNF OworCisgICAgZnJvbnRfcGl4bWFwID0gZnJvbnRfcHJpdi0+cGl4bWFwOworCisgICAgaWYgKGZy b250X3BpeG1hcC0+ZHJhd2FibGUud2lkdGggIT0gYmFja19waXhtYXAtPmRyYXdhYmxlLndpZHRo KQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBpZiAoZnJvbnRfcGl4bWFwLT5kcmF3YWJs ZS5oZWlnaHQgIT0gYmFja19waXhtYXAtPmRyYXdhYmxlLmhlaWdodCkKKyAgICAgICAgcmV0dXJu IEZBTFNFOworCisgICAgaWYgKGZyb250X3BpeG1hcC0+ZHJhd2FibGUuYml0c1BlclBpeGVsICE9 CisgICAgICAgIGJhY2tfcGl4bWFwLT5kcmF3YWJsZS5iaXRzUGVyUGl4ZWwpCisgICAgICAgIHJl dHVybiBGQUxTRTsKKworICAgIGlmIChmcm9udF9waXhtYXAtPmRldktpbmQgIT0gYmFja19waXht YXAtPmRldktpbmQpCisgICAgICAgIHJldHVybiBGQUxTRTsKKworICAgIHJldHVybiBUUlVFOwor fQorCitzdGF0aWMgQm9vbAorY2FuX2ZsaXAoU2NybkluZm9QdHIgc2NybiwgRHJhd2FibGVQdHIg ZHJhdywKKwkgRFJJMkJ1ZmZlclB0ciBmcm9udCwgRFJJMkJ1ZmZlclB0ciBiYWNrKQoreworICAg IG1vZGVzZXR0aW5nUHRyIG1zID0gbW9kZXNldHRpbmdQVFIoc2Nybik7CisKKyAgICByZXR1cm4g ZHJhdy0+dHlwZSA9PSBEUkFXQUJMRV9XSU5ET1cgJiYKKyAgICAgICAgbXMtPmRybW1vZGUucGFn ZWZsaXAgJiYKKyAgICAgICAgIW1zLT5kcm1tb2RlLnByZXNlbnRfZmxpcHBpbmcgJiYKKyAgICAg ICAgc2Nybi0+dnRTZW1hICYmCisgICAgICAgIERSSTJDYW5GbGlwKGRyYXcpICYmIGNhbl9leGNo YW5nZShzY3JuLCBkcmF3LCBmcm9udCwgYmFjayk7Cit9CisKK3N0YXRpYyB2b2lkCittc19kcmky X2V4Y2hhbmdlX2J1ZmZlcnMoRHJhd2FibGVQdHIgZHJhdywgRFJJMkJ1ZmZlclB0ciBmcm9udCwK KyAgICAgICAgICAgICAgICAgICAgICAgICBEUkkyQnVmZmVyUHRyIGJhY2spCit7CisgICAgbXNf ZHJpMl9idWZmZXJfcHJpdmF0ZV9wdHIgZnJvbnRfcHJpdiA9IGZyb250LT5kcml2ZXJQcml2YXRl OworICAgIG1zX2RyaTJfYnVmZmVyX3ByaXZhdGVfcHRyIGJhY2tfcHJpdiA9IGJhY2stPmRyaXZl clByaXZhdGU7CisgICAgU2NyZWVuUHRyIHNjcmVlbiA9IGRyYXctPnBTY3JlZW47CisgICAgU2Ny bkluZm9QdHIgc2NybiA9IHhmODZTY3JlZW5Ub1Njcm4oc2NyZWVuKTsKKyAgICBtb2Rlc2V0dGlu Z1B0ciBtcyA9IG1vZGVzZXR0aW5nUFRSKHNjcm4pOworICAgIG1zUGl4bWFwUHJpdlB0ciBmcm9u dF9waXggPSBtc0dldFBpeG1hcFByaXYoJm1zLT5kcm1tb2RlLCBmcm9udF9wcml2LT5waXhtYXAp OworICAgIG1zUGl4bWFwUHJpdlB0ciBiYWNrX3BpeCA9IG1zR2V0UGl4bWFwUHJpdigmbXMtPmRy bW1vZGUsIGJhY2tfcHJpdi0+cGl4bWFwKTsKKyAgICBtc1BpeG1hcFByaXZSZWMgdG1wX3BpeDsK KyAgICBSZWdpb25SZWMgcmVnaW9uOworICAgIGludCB0bXA7CisKKyAgICAvKiBTd2FwIEJPIG5h bWVzIHNvIERSSSB3b3JrcyAqLworICAgIHRtcCA9IGZyb250LT5uYW1lOworICAgIGZyb250LT5u YW1lID0gYmFjay0+bmFtZTsKKyAgICBiYWNrLT5uYW1lID0gdG1wOworCisgICAgLyogU3dhcCBw aXhtYXAgcHJpdmF0ZXMgKi8KKyAgICB0bXBfcGl4ID0gKmZyb250X3BpeDsKKyAgICAqZnJvbnRf cGl4ID0gKmJhY2tfcGl4OworICAgICpiYWNrX3BpeCA9IHRtcF9waXg7CisKKyAgICBnbGFtb3Jf ZWdsX2V4Y2hhbmdlX2J1ZmZlcnMoZnJvbnRfcHJpdi0+cGl4bWFwLCBiYWNrX3ByaXYtPnBpeG1h cCk7CisKKyAgICAvKiBQb3N0IGRhbWFnZSBvbiB0aGUgZnJvbnQgYnVmZmVyIHNvIHRoYXQgbGlz dGVuZXJzLCBzdWNoCisgICAgICogYXMgRGlzcGxheUxpbmsga25vdyB0YWtlIGEgY29weSBhbmQg c2hvdmUgaXQgb3ZlciB0aGUgVVNCLgorICAgICAqLworICAgIHJlZ2lvbi5leHRlbnRzLngxID0g cmVnaW9uLmV4dGVudHMueTEgPSAwOworICAgIHJlZ2lvbi5leHRlbnRzLngyID0gZnJvbnRfcHJp di0+cGl4bWFwLT5kcmF3YWJsZS53aWR0aDsKKyAgICByZWdpb24uZXh0ZW50cy55MiA9IGZyb250 X3ByaXYtPnBpeG1hcC0+ZHJhd2FibGUud2lkdGg7CisgICAgcmVnaW9uLmRhdGEgPSBOVUxMOwor ICAgIERhbWFnZVJlZ2lvbkFwcGVuZCgmZnJvbnRfcHJpdi0+cGl4bWFwLT5kcmF3YWJsZSwgJnJl Z2lvbik7CisgICAgRGFtYWdlUmVnaW9uUHJvY2Vzc1BlbmRpbmcoJmZyb250X3ByaXYtPnBpeG1h cC0+ZHJhd2FibGUpOworfQorCiBzdGF0aWMgdm9pZAogbXNfZHJpMl9mcmFtZV9ldmVudF9oYW5k bGVyKHVpbnQ2NF90IG1zYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB1 c2VjLApAQCAtNDE3LDYgKzYwOSwxMyBAQCBtc19kcmkyX2ZyYW1lX2V2ZW50X2hhbmRsZXIodWlu dDY0X3QgbXNjLAogICAgIH0KIAogICAgIHN3aXRjaCAoZnJhbWVfaW5mby0+dHlwZSkgeworICAg IGNhc2UgTVNfRFJJMl9RVUVVRV9GTElQOgorICAgICAgICBpZiAoY2FuX2ZsaXAoc2NybiwgZHJh d2FibGUsIGZyYW1lX2luZm8tPmZyb250LCBmcmFtZV9pbmZvLT5iYWNrKSAmJgorICAgICAgICAg ICAgbXNfZHJpMl9zY2hlZHVsZV9mbGlwKGZyYW1lX2luZm8pKSB7CisgICAgICAgICAgICBtc19k cmkyX2V4Y2hhbmdlX2J1ZmZlcnMoZHJhd2FibGUsIGZyYW1lX2luZm8tPmZyb250LCBmcmFtZV9p bmZvLT5iYWNrKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIC8qIGVs c2UgZmFsbCB0aHJvdWdoIHRvIGJsaXQgKi8KICAgICBjYXNlIE1TX0RSSTJfUVVFVUVfU1dBUDoK ICAgICAgICAgbXNfZHJpMl9ibGl0X3N3YXAoZHJhd2FibGUsIGZyYW1lX2luZm8tPmZyb250LCBm cmFtZV9pbmZvLT5iYWNrKTsKICAgICAgICAgRFJJMlN3YXBDb21wbGV0ZShmcmFtZV9pbmZvLT5j bGllbnQsIGRyYXdhYmxlLCBtc2MsIHR2X3NlYywgdHZfdXNlYywKQEAgLTYwNyw3ICs4MDYsNyBA QCBtc19kcmkyX3NjaGVkdWxlX3N3YXAoQ2xpZW50UHRyIGNsaWVudCwgRHJhd2FibGVQdHIgZHJh dywKICAgICBTY3JuSW5mb1B0ciBzY3JuID0geGY4NlNjcmVlblRvU2NybihzY3JlZW4pOwogICAg IG1vZGVzZXR0aW5nUHRyIG1zID0gbW9kZXNldHRpbmdQVFIoc2Nybik7CiAgICAgZHJtVkJsYW5r IHZibDsKLSAgICBpbnQgcmV0OworICAgIGludCByZXQsIGZsaXAgPSAwOwogICAgIHhmODZDcnRj UHRyIGNydGMgPSBtc19kcmkyX2NydGNfY292ZXJpbmdfZHJhd2FibGUoZHJhdyk7CiAgICAgZHJt bW9kZV9jcnRjX3ByaXZhdGVfcHRyIGRybW1vZGVfY3J0YzsKICAgICBtc19kcmkyX2ZyYW1lX2V2 ZW50X3B0ciBmcmFtZV9pbmZvID0gTlVMTDsKQEAgLTY0NSwyMCArODQ0LDM2IEBAIG1zX2RyaTJf c2NoZWR1bGVfc3dhcChDbGllbnRQdHIgY2xpZW50LCBEcmF3YWJsZVB0ciBkcmF3LAogCiAgICAg cmV0ID0gbXNfZ2V0X2NydGNfdXN0X21zYyhjcnRjLCAmY3VycmVudF91c3QsICZjdXJyZW50X21z Yyk7CiAKKyAgICAvKiBGbGlwcyBuZWVkIHRvIGJlIHN1Ym1pdHRlZCBvbmUgZnJhbWUgYmVmb3Jl ICovCisgICAgaWYgKGNhbl9mbGlwKHNjcm4sIGRyYXcsIGZyb250LCBiYWNrKSkgeworICAgICAg ICBmcmFtZV9pbmZvLT50eXBlID0gTVNfRFJJMl9RVUVVRV9GTElQOworICAgICAgICBmbGlwID0g MTsKKyAgICB9CisKKyAgICAvKiBDb3JyZWN0IHRhcmdldF9tc2MgYnkgJ2ZsaXAnIGlmIGZyYW1l X2luZm8tPnR5cGUgPT0gTVNfRFJJMl9RVUVVRV9GTElQLgorICAgICAqIERvIGl0IGVhcmx5LCBz byBoYW5kbGluZyBvZiBkaWZmZXJlbnQgdGltaW5nIGNvbnN0cmFpbnRzCisgICAgICogZm9yIGRp dmlzb3IsIHJlbWFpbmRlciBhbmQgbXNjIHZzLiB0YXJnZXRfbXNjIHdvcmtzLgorICAgICAqLwor ICAgIGlmICgqdGFyZ2V0X21zYyA+IDApCisgICAgICAgICp0YXJnZXRfbXNjIC09IGZsaXA7CisK ICAgICAvKgogICAgICAqIElmIGRpdmlzb3IgaXMgemVybywgb3IgY3VycmVudF9tc2MgaXMgc21h bGxlciB0aGFuIHRhcmdldF9tc2MKICAgICAgKiB3ZSBqdXN0IG5lZWQgdG8gbWFrZSBzdXJlIHRh cmdldF9tc2MgcGFzc2VzIGJlZm9yZSBpbml0aWF0aW5nCiAgICAgICogdGhlIHN3YXAuCiAgICAg ICovCiAgICAgaWYgKGRpdmlzb3IgPT0gMCB8fCBjdXJyZW50X21zYyA8ICp0YXJnZXRfbXNjKSB7 Ci0gICAgICAgIC8qIFdlIG5lZWQgdG8gdXNlIERSTV9WQkxBTktfTkVYVE9OTUlTUyB0byBhdm9p ZCB1bnJlbGlhYmxlCi0gICAgICAgICAqIHRpbWVzdGFtcGluZyBsYXRlciBvbi4KLSAgICAgICAg ICovCiAgICAgICAgIHZibC5yZXF1ZXN0LnR5cGUgPSAoRFJNX1ZCTEFOS19BQlNPTFVURSB8Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX1ZCTEFOS19ORVhUT05NSVNTIHwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEUk1fVkJMQU5LX0VWRU5UIHwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkcm1tb2RlX2NydGMtPnZibGFua19waXBlKTsKIAorICAgICAgICAvKiBJ ZiBub24tcGFnZWZsaXBwaW5nLCBidXQgYmxpdHRpbmcvZXhjaGFuZ2luZywgd2UgbmVlZCB0byB1 c2UKKyAgICAgICAgICogRFJNX1ZCTEFOS19ORVhUT05NSVNTIHRvIGF2b2lkIHVucmVsaWFibGUg dGltZXN0YW1waW5nIGxhdGVyCisgICAgICAgICAqIG9uLgorICAgICAgICAgKi8KKyAgICAgICAg aWYgKGZsaXAgPT0gMCkKKyAgICAgICAgICAgIHZibC5yZXF1ZXN0LnR5cGUgfD0gRFJNX1ZCTEFO S19ORVhUT05NSVNTOworCiAgICAgICAgIC8qIElmIHRhcmdldF9tc2MgYWxyZWFkeSByZWFjaGVk IG9yIHBhc3NlZCwgc2V0IGl0IHRvCiAgICAgICAgICAqIGN1cnJlbnRfbXNjIHRvIGVuc3VyZSB3 ZSByZXR1cm4gYSByZWFzb25hYmxlIHZhbHVlIGJhY2sKICAgICAgICAgICogdG8gdGhlIGNhbGxl ci4gVGhpcyBtYWtlcyBzd2FwX2ludGVydmFsIGxvZ2ljIG1vcmUgcm9idXN0LgpAQCAtNjgzLDcg Kzg5OCw4IEBAIG1zX2RyaTJfc2NoZWR1bGVfc3dhcChDbGllbnRQdHIgY2xpZW50LCBEcmF3YWJs ZVB0ciBkcmF3LAogICAgICAgICAgICAgZ290byBibGl0X2ZhbGxiYWNrOwogICAgICAgICB9CiAK LSAgICAgICAgKnRhcmdldF9tc2MgPSBtc19rZXJuZWxfbXNjX3RvX2NydGNfbXNjKGNydGMsIHZi bC5yZXBseS5zZXF1ZW5jZSk7CisgICAgICAgICp0YXJnZXRfbXNjID0gbXNfa2VybmVsX21zY190 b19jcnRjX21zYyhjcnRjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmJsLnJlcGx5LnNlcXVlbmNlICsgZmxpcCk7CiAgICAgICAgIGZyYW1lX2luZm8t PmZyYW1lID0gKnRhcmdldF9tc2M7CiAKICAgICAgICAgcmV0dXJuIFRSVUU7CkBAIC02OTUsOSAr OTExLDEwIEBAIG1zX2RyaTJfc2NoZWR1bGVfc3dhcChDbGllbnRQdHIgY2xpZW50LCBEcmF3YWJs ZVB0ciBkcmF3LAogICAgICAqIGVxdWF0aW9uLgogICAgICAqLwogICAgIHZibC5yZXF1ZXN0LnR5 cGUgPSAoRFJNX1ZCTEFOS19BQlNPTFVURSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICBEUk1f VkJMQU5LX05FWFRPTk1JU1MgfAogICAgICAgICAgICAgICAgICAgICAgICAgRFJNX1ZCTEFOS19F VkVOVCB8CiAgICAgICAgICAgICAgICAgICAgICAgICBkcm1tb2RlX2NydGMtPnZibGFua19waXBl KTsKKyAgICBpZiAoZmxpcCA9PSAwKQorICAgICAgICB2YmwucmVxdWVzdC50eXBlIHw9IERSTV9W QkxBTktfTkVYVE9OTUlTUzsKIAogICAgIHJlcXVlc3RfbXNjID0gY3VycmVudF9tc2MgLSAoY3Vy cmVudF9tc2MgJSBkaXZpc29yKSArCiAgICAgICAgIHJlbWFpbmRlcjsKQEAgLTcyMSw3ICs5Mzgs OCBAQCBtc19kcmkyX3NjaGVkdWxlX3N3YXAoQ2xpZW50UHRyIGNsaWVudCwgRHJhd2FibGVQdHIg ZHJhdywKICAgICBpZiAoIXNlcSkKICAgICAgICAgZ290byBibGl0X2ZhbGxiYWNrOwogCi0gICAg dmJsLnJlcXVlc3Quc2VxdWVuY2UgPSBtc19jcnRjX21zY190b19rZXJuZWxfbXNjKGNydGMsIHJl cXVlc3RfbXNjKTsKKyAgICAvKiBBY2NvdW50IGZvciAxIGZyYW1lIGV4dHJhIHBhZ2VmbGlwIGRl bGF5IGlmIGZsaXAgPiAwICovCisgICAgdmJsLnJlcXVlc3Quc2VxdWVuY2UgPSBtc19jcnRjX21z Y190b19rZXJuZWxfbXNjKGNydGMsIHJlcXVlc3RfbXNjKSAtIGZsaXA7CiAgICAgdmJsLnJlcXVl c3Quc2lnbmFsID0gKHVuc2lnbmVkIGxvbmcpc2VxOwogCiAgICAgcmV0ID0gZHJtV2FpdFZCbGFu ayhtcy0+ZmQsICZ2YmwpOwpAQCAtNzMyLDcgKzk1MCw4IEBAIG1zX2RyaTJfc2NoZWR1bGVfc3dh cChDbGllbnRQdHIgY2xpZW50LCBEcmF3YWJsZVB0ciBkcmF3LAogICAgICAgICBnb3RvIGJsaXRf ZmFsbGJhY2s7CiAgICAgfQogCi0gICAgKnRhcmdldF9tc2MgPSBtc19rZXJuZWxfbXNjX3RvX2Ny dGNfbXNjKGNydGMsIHZibC5yZXBseS5zZXF1ZW5jZSk7CisgICAgLyogQWRqdXN0IHJldHVybmVk IHZhbHVlIGZvciAxIGZhbWUgcGFnZWZsaXAgb2Zmc2V0IG9mIGZsaXAgPiAwICovCisgICAgKnRh cmdldF9tc2MgPSBtc19rZXJuZWxfbXNjX3RvX2NydGNfbXNjKGNydGMsIHZibC5yZXBseS5zZXF1 ZW5jZSArIGZsaXApOwogICAgIGZyYW1lX2luZm8tPmZyYW1lID0gKnRhcmdldF9tc2M7CiAKICAg ICByZXR1cm4gVFJVRTsKZGlmZiAtLWdpdCBhL2h3L3hmcmVlODYvZHJpdmVycy9tb2Rlc2V0dGlu Zy9kcml2ZXIuaCBiL2h3L3hmcmVlODYvZHJpdmVycy9tb2Rlc2V0dGluZy9kcml2ZXIuaAppbmRl eCAzOGYwZWMwLi43NjE0OTBhIDEwMDY0NAotLS0gYS9ody94ZnJlZTg2L2RyaXZlcnMvbW9kZXNl dHRpbmcvZHJpdmVyLmgKKysrIGIvaHcveGZyZWU4Ni9kcml2ZXJzL21vZGVzZXR0aW5nL2RyaXZl ci5oCkBAIC0xNTYsMTEgKzE1NiwxMiBAQCBCb29sIG1zX3ByZXNlbnRfc2NyZWVuX2luaXQoU2Ny ZWVuUHRyIHNjcmVlbik7CiAKICNpZmRlZiBHTEFNT1IKIAotdHlwZWRlZiB2b2lkICgqbXNfcGFn ZWZsaXBfaGFuZGxlcl9wcm9jKSh1aW50NjRfdCBmcmFtZSwKK3R5cGVkZWYgdm9pZCAoKm1zX3Bh Z2VmbGlwX2hhbmRsZXJfcHJvYykobW9kZXNldHRpbmdQdHIgbXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB1c2VjLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhKTsKIAotdHlwZWRlZiB2b2lkICgq bXNfcGFnZWZsaXBfYWJvcnRfcHJvYykodm9pZCAqZGF0YSk7Cit0eXBlZGVmIHZvaWQgKCptc19w YWdlZmxpcF9hYm9ydF9wcm9jKShtb2Rlc2V0dGluZ1B0ciBtcywgdm9pZCAqZGF0YSk7CiAKIGlu dCBtc19mbHVzaF9kcm1fZXZlbnRzKFNjcmVlblB0ciBzY3JlZW4pOwogCmRpZmYgLS1naXQgYS9o dy94ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvZHJtbW9kZV9kaXNwbGF5LmggYi9ody94ZnJl ZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvZHJtbW9kZV9kaXNwbGF5LmgKaW5kZXggNTQ5OWMxNi4u Zjc3NDI1MCAxMDA2NDQKLS0tIGEvaHcveGZyZWU4Ni9kcml2ZXJzL21vZGVzZXR0aW5nL2RybW1v ZGVfZGlzcGxheS5oCisrKyBiL2h3L3hmcmVlODYvZHJpdmVycy9tb2Rlc2V0dGluZy9kcm1tb2Rl X2Rpc3BsYXkuaApAQCAtODAsNiArODAsOSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgQm9vbCBp c19zZWNvbmRhcnk7CiAKICAgICBQaXhtYXBQdHIgZmJjb25fcGl4bWFwOworCisgICAgQm9vbCBk cmkyX2ZsaXBwaW5nOworICAgIEJvb2wgcHJlc2VudF9mbGlwcGluZzsKIH0gZHJtbW9kZV9yZWMs ICpkcm1tb2RlX3B0cjsKIAogdHlwZWRlZiBzdHJ1Y3QgewpkaWZmIC0tZ2l0IGEvaHcveGZyZWU4 Ni9kcml2ZXJzL21vZGVzZXR0aW5nL3BhZ2VmbGlwLmMgYi9ody94ZnJlZTg2L2RyaXZlcnMvbW9k ZXNldHRpbmcvcGFnZWZsaXAuYwppbmRleCA1ZjM1OTk5Li5hODJlMGQ2IDEwMDY0NAotLS0gYS9o dy94ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvcGFnZWZsaXAuYworKysgYi9ody94ZnJlZTg2 L2RyaXZlcnMvbW9kZXNldHRpbmcvcGFnZWZsaXAuYwpAQCAtOTgsNyArOTgsNyBAQCBtc19wYWdl ZmxpcF9oYW5kbGVyKHVpbnQ2NF90IG1zYywgdWludDY0X3QgdXN0LCB2b2lkICpkYXRhKQogICAg IH0KIAogICAgIGlmIChmbGlwZGF0YS0+ZmxpcF9jb3VudCA9PSAxKSB7Ci0gICAgICAgIGZsaXBk YXRhLT5ldmVudF9oYW5kbGVyKGZsaXBkYXRhLT5mZV9tc2MsCisgICAgICAgIGZsaXBkYXRhLT5l dmVudF9oYW5kbGVyKG1zLCBmbGlwZGF0YS0+ZmVfbXNjLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmbGlwZGF0YS0+ZmVfdXNlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmxpcGRhdGEtPmV2ZW50KTsKIApAQCAtMTE1LDkgKzExNSwxMiBAQCBtc19wYWdlZmxp cF9hYm9ydCh2b2lkICpkYXRhKQogewogICAgIHN0cnVjdCBtc19jcnRjX3BhZ2VmbGlwICpmbGlw ID0gZGF0YTsKICAgICBzdHJ1Y3QgbXNfZmxpcGRhdGEgKmZsaXBkYXRhID0gZmxpcC0+ZmxpcGRh dGE7CisgICAgU2NyZWVuUHRyIHNjcmVlbiA9IGZsaXBkYXRhLT5zY3JlZW47CisgICAgU2Nybklu Zm9QdHIgc2NybiA9IHhmODZTY3JlZW5Ub1Njcm4oc2NyZWVuKTsKKyAgICBtb2Rlc2V0dGluZ1B0 ciBtcyA9IG1vZGVzZXR0aW5nUFRSKHNjcm4pOwogCiAgICAgaWYgKGZsaXBkYXRhLT5mbGlwX2Nv dW50ID09IDEpCi0gICAgICAgIGZsaXBkYXRhLT5hYm9ydF9oYW5kbGVyKGZsaXBkYXRhLT5ldmVu dCk7CisgICAgICAgIGZsaXBkYXRhLT5hYm9ydF9oYW5kbGVyKG1zLCBmbGlwZGF0YS0+ZXZlbnQp OwogCiAgICAgbXNfcGFnZWZsaXBfZnJlZShmbGlwKTsKIH0KZGlmZiAtLWdpdCBhL2h3L3hmcmVl ODYvZHJpdmVycy9tb2Rlc2V0dGluZy9wcmVzZW50LmMgYi9ody94ZnJlZTg2L2RyaXZlcnMvbW9k ZXNldHRpbmcvcHJlc2VudC5jCmluZGV4IGRlZWUxZjEuLmMwYmIyMjEgMTAwNjQ0Ci0tLSBhL2h3 L3hmcmVlODYvZHJpdmVycy9tb2Rlc2V0dGluZy9wcmVzZW50LmMKKysrIGIvaHcveGZyZWU4Ni9k cml2ZXJzL21vZGVzZXR0aW5nL3ByZXNlbnQuYwpAQCAtNTMsNiArNTMsNyBAQAogCiBzdHJ1Y3Qg bXNfcHJlc2VudF92YmxhbmtfZXZlbnQgewogICAgIHVpbnQ2NF90ICAgICAgICBldmVudF9pZDsK KyAgICBCb29sICAgICAgICAgICAgdW5mbGlwOwogfTsKIAogc3RhdGljIFJSQ3J0Y1B0cgpAQCAt MTk2LDcgKzE5Nyw4IEBAIG1zX3ByZXNlbnRfZmx1c2goV2luZG93UHRyIHdpbmRvdykKICAqIGV4 dGVuc2lvbiBjb2RlIHRlbGxpbmcgaXQgd2hlbiB0aGF0IGhhcHBlbmVkCiAgKi8KIHN0YXRpYyB2 b2lkCi1tc19wcmVzZW50X2ZsaXBfaGFuZGxlcih1aW50NjRfdCBtc2MsIHVpbnQ2NF90IHVzdCwg dm9pZCAqZGF0YSkKK21zX3ByZXNlbnRfZmxpcF9oYW5kbGVyKG1vZGVzZXR0aW5nUHRyIG1zLCB1 aW50NjRfdCBtc2MsIAorICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdXN0LCB2b2lk ICpkYXRhKQogewogICAgIHN0cnVjdCBtc19wcmVzZW50X3ZibGFua19ldmVudCAqZXZlbnQgPSBk YXRhOwogCkBAIC0yMDQsNiArMjA2LDkgQEAgbXNfcHJlc2VudF9mbGlwX2hhbmRsZXIodWludDY0 X3QgbXNjLCB1aW50NjRfdCB1c3QsIHZvaWQgKmRhdGEpCiAgICAgICAgICAgICAgICAgICAobG9u ZyBsb25nKSBldmVudC0+ZXZlbnRfaWQsCiAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSBt c2MsIChsb25nIGxvbmcpIHVzdCkpOwogCisgICAgaWYgKGV2ZW50LT51bmZsaXApCisgICAgICAg IG1zLT5kcm1tb2RlLnByZXNlbnRfZmxpcHBpbmcgPSBGQUxTRTsKKwogICAgIG1zX3ByZXNlbnRf dmJsYW5rX2hhbmRsZXIobXNjLCB1c3QsIGV2ZW50KTsKIH0KIApAQCAtMjExLDcgKzIxNiw3IEBA IG1zX3ByZXNlbnRfZmxpcF9oYW5kbGVyKHVpbnQ2NF90IG1zYywgdWludDY0X3QgdXN0LCB2b2lk ICpkYXRhKQogICogQ2FsbGJhY2sgZm9yIHRoZSBmbGlwIGhhcyBiZWVuIGFib3J0ZWQuCiAgKi8K IHN0YXRpYyB2b2lkCi1tc19wcmVzZW50X2ZsaXBfYWJvcnQodm9pZCAqZGF0YSkKK21zX3ByZXNl bnRfZmxpcF9hYm9ydChtb2Rlc2V0dGluZ1B0ciBtcywgdm9pZCAqZGF0YSkKIHsKICAgICBzdHJ1 Y3QgbXNfcHJlc2VudF92YmxhbmtfZXZlbnQgKmV2ZW50ID0gZGF0YTsKIApAQCAtMjM3LDYgKzI0 Miw5IEBAIG1zX3ByZXNlbnRfY2hlY2tfZmxpcChSUkNydGNQdHIgY3J0YywKICAgICBpZiAoIW1z LT5kcm1tb2RlLnBhZ2VmbGlwKQogICAgICAgICByZXR1cm4gRkFMU0U7CiAKKyAgICBpZiAobXMt PmRybW1vZGUuZHJpMl9mbGlwcGluZykKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCiAgICAgaWYg KCFzY3JuLT52dFNlbWEpCiAgICAgICAgIHJldHVybiBGQUxTRTsKIApAQCAtMjgzLDYgKzI5MSw3 IEBAIG1zX3ByZXNlbnRfZmxpcChSUkNydGNQdHIgY3J0YywKIHsKICAgICBTY3JlZW5QdHIgc2Ny ZWVuID0gY3J0Yy0+cFNjcmVlbjsKICAgICBTY3JuSW5mb1B0ciBzY3JuID0geGY4NlNjcmVlblRv U2NybihzY3JlZW4pOworICAgIG1vZGVzZXR0aW5nUHRyIG1zID0gbW9kZXNldHRpbmdQVFIoc2Ny bik7CiAgICAgeGY4NkNydGNQdHIgeGY4Nl9jcnRjID0gY3J0Yy0+ZGV2UHJpdmF0ZTsKICAgICBk cm1tb2RlX2NydGNfcHJpdmF0ZV9wdHIgZHJtbW9kZV9jcnRjID0geGY4Nl9jcnRjLT5kcml2ZXJf cHJpdmF0ZTsKICAgICBCb29sIHJldDsKQEAgLTI5OCwxMCArMzA3LDE0IEBAIG1zX3ByZXNlbnRf ZmxpcChSUkNydGNQdHIgY3J0YywKICAgICBEZWJ1Z1ByZXNlbnQoKCJcdFx0bXM6ZnEgJWxsZFxu IiwgZXZlbnRfaWQpKTsKIAogICAgIGV2ZW50LT5ldmVudF9pZCA9IGV2ZW50X2lkOworICAgIGV2 ZW50LT51bmZsaXAgPSBGQUxTRTsKKwogICAgIHJldCA9IG1zX2RvX3BhZ2VmbGlwKHNjcmVlbiwg cGl4bWFwLCBldmVudCwgZHJtbW9kZV9jcnRjLT52YmxhbmtfcGlwZSwgIXN5bmNfZmxpcCwKICAg ICAgICAgICAgICAgICAgICAgICAgICBtc19wcmVzZW50X2ZsaXBfaGFuZGxlciwgbXNfcHJlc2Vu dF9mbGlwX2Fib3J0KTsKICAgICBpZiAoIXJldCkKICAgICAgICAgeGY4NkRydk1zZyhzY3JuLT5z Y3JuSW5kZXgsIFhfRVJST1IsICJwcmVzZW50IGZsaXAgZmFpbGVkXG4iKTsKKyAgICBlbHNlCisg ICAgICAgIG1zLT5kcm1tb2RlLnByZXNlbnRfZmxpcHBpbmcgPSBUUlVFOwogCiAgICAgcmV0dXJu IHJldDsKIH0KQEAgLTMxMyw2ICszMjYsNyBAQCBzdGF0aWMgdm9pZAogbXNfcHJlc2VudF91bmZs aXAoU2NyZWVuUHRyIHNjcmVlbiwgdWludDY0X3QgZXZlbnRfaWQpCiB7CiAgICAgU2NybkluZm9Q dHIgc2NybiA9IHhmODZTY3JlZW5Ub1Njcm4oc2NyZWVuKTsKKyAgICBtb2Rlc2V0dGluZ1B0ciBt cyA9IG1vZGVzZXR0aW5nUFRSKHNjcm4pOwogICAgIFBpeG1hcFB0ciBwaXhtYXAgPSBzY3JlZW4t PkdldFNjcmVlblBpeG1hcChzY3JlZW4pOwogICAgIHhmODZDcnRjQ29uZmlnUHRyIGNvbmZpZyA9 IFhGODZfQ1JUQ19DT05GSUdfUFRSKHNjcm4pOwogICAgIGludCBpOwpAQCAtMzIzLDYgKzMzNyw3 IEBAIG1zX3ByZXNlbnRfdW5mbGlwKFNjcmVlblB0ciBzY3JlZW4sIHVpbnQ2NF90IGV2ZW50X2lk KQogICAgICAgICByZXR1cm47CiAKICAgICBldmVudC0+ZXZlbnRfaWQgPSBldmVudF9pZDsKKyAg ICBldmVudC0+dW5mbGlwID0gVFJVRTsKIAogICAgIGlmIChtc19wcmVzZW50X2NoZWNrX2ZsaXAo TlVMTCwgc2NyZWVuLT5yb290LCBwaXhtYXAsIFRSVUUpICYmCiAgICAgICAgIG1zX2RvX3BhZ2Vm bGlwKHNjcmVlbiwgcGl4bWFwLCBldmVudCwgLTEsIEZBTFNFLApAQCAtMzU0LDYgKzM2OSw3IEBA IG1zX3ByZXNlbnRfdW5mbGlwKFNjcmVlblB0ciBzY3JlZW4sIHVpbnQ2NF90IGV2ZW50X2lkKQog ICAgIH0KIAogICAgIHByZXNlbnRfZXZlbnRfbm90aWZ5KGV2ZW50X2lkLCAwLCAwKTsKKyAgICBt cy0+ZHJtbW9kZS5wcmVzZW50X2ZsaXBwaW5nID0gRkFMU0U7CiB9CiAjZW5kaWYKIAotLSAKMi43 LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1n ZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=