From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id A33794D056 for ; Mon, 8 Dec 2025 06:30:57 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'hQJpXb7JlvTgooc9XT/x35awfrvZAYCv4BkqksIMc0E=', expected b'caFMzrm+n5XzomO1rKWeIcKxOHgIunQ1dArNHc+OgDA=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1765175443; h=content-type : mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-transfer-encoding : from; bh=hQJpXb7JlvTgooc9XT/x35awfrvZAYCv4BkqksIMc0E=; b=dXsebxTCMVA1ujSGx4+ULx2FzNrtT4MJOPg2p6N9X4rlOWj9+UhWeepDS1o2i1hOZDbNO zYAOYkKuzgLBJkWfH/+1ivDGKaUnC4cmzXHGjzXDOei9/WGEc0a1KwZXfTDy/fgyc580Ses PlOxKk2djz5dbBcX3AHmaBDLYgruLT2lDHduM/2yuow4ce6t3SC0NCT5r/qJyQdJBOCQfCV 4IdUy/YXqNeR54TlBe7CJss+eOGT30Apqg8y2ONmBNkjikOyF4BMtX69I5r6bMhyvmcMCur Gn4/FzH4JRh7xDx7nsFLTvqjvRSuTcQlUDl+b/VDCw88qq/6ASHBBYsrDMuw== Received: from [172.19.0.3] (unknown [172.19.0.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 27FF2690651; Mon, 8 Dec 2025 08:30:43 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1765175427; b=o4Jcfg47xcXjQHaZNHJfn/wc4NghFvBLmw35BAFVGp5FB7U4mWrHprK+N8kCce3FQrGgd N4YnPONGjiV88mJxmeSalVOu3uScsE7cLTFIS2gSxmk0MMBMW7/Qjy+X+ujVRgVNm+sMv2/ 4bQ/8MmOYbpe4BqR5sJXleQNDiCaeiDm50HZCw3VQDbJ8YJplDEjAclvPmJ2jf3sSOcVYyU HH0T4XOlUVafonL137Vb/KdWotyxUZ9z7Y41kMAA4qYPnTNP6xvLRyfIUnoTZNkWeaHCXa1 vkeLTW2KeEkmA8iv9OEJaKoYq4QvkSZS4xvLQrfs6KP9Y7QiBvhsCQsez+rQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1765175427; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=hQJpXb7JlvTgooc9XT/x35awfrvZAYCv4BkqksIMc0E=; b=B6Q/4uG83IdInv4wP/qL81fzHCgP+uU9yHuAeY/j2qKnhb68WOUTIa8eBSbjyL+9hTzXJ T5FpZlIwsee4Utg9k5hP9fUdfodMH7ogRIx5JAR0WMGrQO8Es4MjfQtNj9tt8BoVOCZY8RR 9I/d87++lAySrxvbNX5+LyznJBGUx11m9Ca7fWSM+blPUflaEfOfKitB4sLb2wQz4EzcvA4 KNQcT25RMb/cYyn3fBx0jTQR5Pu7/GIhL10YCzQO32Q3ItkVT6WmYrUIF3JRWgX3HZvvfYd hjeOfvcYewrcgkwyipNBtZwolJQvR+95LxPDipsIVQvLwZnIhN7YYY1BvfOA== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1765175419; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=caFMzrm+n5XzomO1rKWeIcKxOHgIunQ1dArNHc+OgDA=; b=p6Y6Z8GT9Fi+4IK8n/6wTAvCTqxiVq8usDZsVW9NCF5BH7NbQki5VAEA4124JqjRDu825 q/hPAnq1ulHsmRlPeDiqrIsIQ1Nblcbp5KWJ7F14gbcX6orAf8wp0554fIKPeQ7MmIpwsC+ 8WV4oe6bdy6cXOSklozq24sgVBqNKxgi9EB+G/Ugg4X1EXDPobYlNynCg12i1FFHLU2Dlb9 tsLIexHofW9lexZzTqjavTpq+/2X6CL6nUEGkkdq3qsX8zzdQ0HVDrExUZEdQPvP7C7PIXp 1zIPehu6yYUfnmgC84Yl/gyq/lCP1AIF3mFIbPRrIvtTNv0Uko8JnakH271g== Received: from 55ca25703178 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 65F84690386 for ; Mon, 8 Dec 2025 08:30:19 +0200 (EET) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Mon, 08 Dec 2025 06:30:19 -0000 Message-ID: <176517541952.39.14467878994184499363@2cb04c0e5124> Message-ID-Hash: E7G56ELGDS2GYZEZX65VZDEQDMPSXNIN X-Message-ID-Hash: E7G56ELGDS2GYZEZX65VZDEQDMPSXNIN X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] libavcodec/v4l2_buffers: fixing buffer alignment issue (PR #21129) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: yinwenjie via ffmpeg-devel Cc: yinwenjie Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: UFIgIzIxMTI5IG9wZW5lZCBieSB5aW53ZW5qaWUKVVJMOiBodHRwczovL2NvZGUuZmZtcGVnLm9y Zy9GRm1wZWcvRkZtcGVnL3B1bGxzLzIxMTI5ClBhdGNoIFVSTDogaHR0cHM6Ly9jb2RlLmZmbXBl Zy5vcmcvRkZtcGVnL0ZGbXBlZy9wdWxscy8yMTEyOS5wYXRjaAoKVjRsMiBkcml2ZXJzIG1heSBy ZXR1cm4gYnVmZmVyIHdpZHRoICYgaGVpZ2h0IHdpdGggYWxpZ25lZCB2YWx1ZXMsIHdoaWNoDQpt YXkgYmUgZGlmZmVyZW50IGZyb20gZnJhbWUgd2lkdGggJiBoZWlnaHQuIEJ5dGVzcGVybGluZXMg YW5kIHN0cmlkZXMNCnNob3VsZCBiZSBjaGVjayBmb3IgYWxpZ25lZCBidWZmZXJzIHdoZW4gY29w eWluZyBwaXhlbCBkYXRhLiBXaGVuIHdpZHRoDQphbGlnbmVkLCBjb3B5IHdpdGggcGxhbmFyOyBv dGhlcndpc2UsIGNvcHkgbGluZS1ieS1saW5lIHRvIGRlc3QgYnVmZmVyLg0KDQpDby1hdXRob3Jl ZC1ieTogUmVuamlhbmcgSGFuIDxyZW5qaWFuZy5oYW5Ab3NzLnF1YWxjb21tLmNvbT4NClNpZ25l ZC1vZmYtYnk6IFdlbmppZSBZaW4gPHdlbmp5aW5AcXRpLnF1YWxjb21tLmNvbT4KCgpGcm9tIGNm NjQ4NDUwNWRkY2FlMjgxYmJlMGY2M2JlYzg4NWNkNGVhZDkwNWQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFdlbmppZSBZaW4gPHdlbmp5aW5AcXRpLnF1YWxjb21tLmNvbT4KRGF0ZTog V2VkLCAyOSBPY3QgMjAyNSAxMzo1OTo0NyArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGxpYmF2Y29k ZWMvdjRsMl9idWZmZXJzOiBmaXhpbmcgYnVmZmVyIGFsaWdubWVudCBpc3N1ZQoKVjRsMiBkcml2 ZXJzIG1heSByZXR1cm4gYnVmZmVyIHdpZHRoICYgaGVpZ2h0IHdpdGggYWxpZ25lZCB2YWx1ZXMs IHdoaWNoCm1heSBiZSBkaWZmZXJlbnQgZnJvbSBmcmFtZSB3aWR0aCAmIGhlaWdodC4gQnl0ZXNw ZXJsaW5lcyBhbmQgc3RyaWRlcwpzaG91bGQgYmUgY2hlY2sgZm9yIGFsaWduZWQgYnVmZmVycyB3 aGVuIGNvcHlpbmcgcGl4ZWwgZGF0YS4gV2hlbiB3aWR0aAphbGlnbmVkLCBjb3B5IHdpdGggcGxh bmFyOyBvdGhlcndpc2UsIGNvcHkgbGluZS1ieS1saW5lIHRvIGRlc3QgYnVmZmVyLgoKQ28tYXV0 aG9yZWQtYnk6IFJlbmppYW5nIEhhbiA8cmVuamlhbmcuaGFuQG9zcy5xdWFsY29tbS5jb20+ClNp Z25lZC1vZmYtYnk6IFdlbmppZSBZaW4gPHdlbmp5aW5AcXRpLnF1YWxjb21tLmNvbT4KLS0tCiBs aWJhdmNvZGVjL3Y0bDJfYnVmZmVycy5jIHwgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92NGwyX2J1ZmZlcnMuYyBiL2xpYmF2Y29k ZWMvdjRsMl9idWZmZXJzLmMKaW5kZXggMDc3YzFlZTk0NC4uNjczZTY2Njc3ZiAxMDA2NDQKLS0t IGEvbGliYXZjb2RlYy92NGwyX2J1ZmZlcnMuYworKysgYi9saWJhdmNvZGVjL3Y0bDJfYnVmZmVy cy5jCkBAIC0zNTksNiArMzU5LDMzIEBAIHN0YXRpYyBpbnQgdjRsMl9idWZmZXJfYnVmX3RvX3N3 ZnJhbWUoQVZGcmFtZSAqZnJhbWUsIFY0TDJCdWZmZXIgKmF2YnVmKQogICAgIHJldHVybiAwOwog fQogCitzdGF0aWMgaW50IHY0bDJfcGxhbmVfdG9fcGxhbmVfYWxpZ24oVjRMMkJ1ZmZlciAqb3V0 LCBpbnQgcGxhbmUsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIGludCBzaXplLCBpbnQgb2Zmc2V0LCBp bnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBzdHJpZGUpCit7CisgICAgdW5zaWduZWQgaW50IGJ5 dGVzdXNlZCwgbGVuZ3RoOworCisgICAgaWYgKHBsYW5lID49IG91dC0+bnVtX3BsYW5lcykKKyAg ICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKworICAgIGxlbmd0aCA9IG91dC0+cGxhbmVf aW5mb1twbGFuZV0ubGVuZ3RoOworICAgIGJ5dGVzdXNlZCA9IEZGTUlOKHNpemUrb2Zmc2V0LCBs ZW5ndGgpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBoZWlnaHQ7IGkrKykgeworICAgICAg ICBtZW1jcHkoKHVpbnQ4X3QqKW91dC0+cGxhbmVfaW5mb1twbGFuZV0ubW1fYWRkciArIG9mZnNl dCwgZGF0YSwgd2lkdGgpOworICAgICAgICBvZmZzZXQgKz0gc3RyaWRlOworICAgICAgICBkYXRh ICs9IHdpZHRoOworICAgIH0KKworICAgIGlmIChWNEwyX1RZUEVfSVNfTVVMVElQTEFOQVIob3V0 LT5idWYudHlwZSkpIHsKKyAgICAgICAgb3V0LT5wbGFuZXNbcGxhbmVdLmJ5dGVzdXNlZCA9IGJ5 dGVzdXNlZDsKKyAgICAgICAgb3V0LT5wbGFuZXNbcGxhbmVdLmxlbmd0aCA9IGxlbmd0aDsKKyAg ICB9IGVsc2UgeworICAgICAgICBvdXQtPmJ1Zi5ieXRlc3VzZWQgPSBieXRlc3VzZWQ7CisgICAg ICAgIG91dC0+YnVmLmxlbmd0aCA9IGxlbmd0aDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30K Kwogc3RhdGljIGludCB2NGwyX2J1ZmZlcl9zd2ZyYW1lX3RvX2J1Zihjb25zdCBBVkZyYW1lICpm cmFtZSwgVjRMMkJ1ZmZlciAqb3V0KQogewogICAgIGludCBpLCByZXQ7CkBAIC0zNjcsNyArMzk0 LDExIEBAIHN0YXRpYyBpbnQgdjRsMl9idWZmZXJfc3dmcmFtZV90b19idWYoY29uc3QgQVZGcmFt ZSAqZnJhbWUsIFY0TDJCdWZmZXIgKm91dCkKICAgICAgICAgICAgICAgICAgICAgICAgZm10LmZt dC5waXhfbXAucGl4ZWxmb3JtYXQgOiBmbXQuZm10LnBpeC5waXhlbGZvcm1hdDsKICAgICBpbnQg aGVpZ2h0ICAgICAgID0gVjRMMl9UWVBFX0lTX01VTFRJUExBTkFSKGZtdC50eXBlKSA/CiAgICAg ICAgICAgICAgICAgICAgICAgIGZtdC5mbXQucGl4X21wLmhlaWdodCA6IGZtdC5mbXQucGl4Lmhl aWdodDsKLSAgICBpbnQgaXNfcGxhbmFyX2Zvcm1hdCA9IDA7CisgICAgaW50IGJ5dGVzcGVybGlu ZSA9IFY0TDJfVFlQRV9JU19NVUxUSVBMQU5BUihmbXQudHlwZSkgPworICAgICAgICAgICAgICAg ICAgICAgICAoZm10LmZtdC5waXhfbXAubnVtX3BsYW5lcyA/IGZtdC5mbXQucGl4X21wLnBsYW5l X2ZtdFswXS5ieXRlc3BlcmxpbmU6IDApIDogZm10LmZtdC5waXguYnl0ZXNwZXJsaW5lOworICAg IGludCBzaXplaW1hZ2UgICAgPSBWNEwyX1RZUEVfSVNfTVVMVElQTEFOQVIoZm10LnR5cGUpID8K KyAgICAgICAgICAgICAgICAgICAgICAgKGZtdC5mbXQucGl4X21wLm51bV9wbGFuZXMgPyBmbXQu Zm10LnBpeF9tcC5wbGFuZV9mbXRbMF0uc2l6ZWltYWdlOiAwKSA6IGZtdC5mbXQucGl4LnNpemVp bWFnZTsKKyAgICBpbnQgaXNfcGxhbmFyX2Zvcm1hdCA9IDAsIGJ1ZmZlcl9oZWlnaHQgPSAwOwog CiAgICAgc3dpdGNoIChwaXhlbF9mb3JtYXQpIHsKICAgICBjYXNlIFY0TDJfUElYX0ZNVF9ZVVY0 MjBNOgpAQCAtMzk3LDIxICs0MjgsNjcgQEAgc3RhdGljIGludCB2NGwyX2J1ZmZlcl9zd2ZyYW1l X3RvX2J1Zihjb25zdCBBVkZyYW1lICpmcmFtZSwgVjRMMkJ1ZmZlciAqb3V0KQogICAgICAgICBj b25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKmRlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KGZyYW1l LT5mb3JtYXQpOwogICAgICAgICBpbnQgcGxhbmVzX25iID0gMDsKICAgICAgICAgaW50IG9mZnNl dCA9IDA7CisgICAgICAgIGludCBjaHJvbWFfaGVpZ2h0ID0gQVZfQ0VJTF9SU0hJRlQoaGVpZ2h0 LCBkZXNjLT5sb2cyX2Nocm9tYV9oKTsKKyAgICAgICAgaW50IGNvbXBvbmVudHNfaGVpZ2h0c1s0 XSA9IHswfTsKKyAgICAgICAgaW50IHRvdGFsX2hlaWdodHMgPSAwOworCisgICAgICAgIC8qIElm IGJ5dGVzcGVybGluZSBpcyBzZXQgdG8gMCBieSBkcml2ZXIsIHVzZSBmcmFtZSBsaW5lc2l6ZSBp bnN0ZWFkICovCisgICAgICAgIGlmICghYnl0ZXNwZXJsaW5lKQorICAgICAgICAgICAgYnl0ZXNw ZXJsaW5lID0gZnJhbWUtPmxpbmVzaXplWzBdOworCisgICAgICAgIC8qIGhlaWdodCBvZiBwaXhl bHMgaW4gdjRsMiBidWZmZXIgKi8KKyAgICAgICAgYnVmZmVyX2hlaWdodCA9IHNpemVpbWFnZSAv IGJ5dGVzcGVybGluZTsKIAogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGVzYy0+bmJfY29tcG9u ZW50czsgaSsrKQogICAgICAgICAgICAgcGxhbmVzX25iID0gRkZNQVgocGxhbmVzX25iLCBkZXNj LT5jb21wW2ldLnBsYW5lICsgMSk7CiAKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHBsYW5lc19u YjsgaSsrKSB7Ci0gICAgICAgICAgICBpbnQgc2l6ZSwgaCA9IGhlaWdodDsKLSAgICAgICAgICAg IGlmIChpID09IDEgfHwgaSA9PSAyKSB7Ci0gICAgICAgICAgICAgICAgaCA9IEFWX0NFSUxfUlNI SUZUKGgsIGRlc2MtPmxvZzJfY2hyb21hX2gpOworICAgICAgICAvKiBjYWxjdWxhdGUgdG90YWwg ZnJhbWUgaGVpZ2h0cyBvZiBhbGwgY29tcG9uZW50cyAqLworICAgICAgICBpbnQgbiA9IHBsYW5l c19uYiA8IDQgPyBwbGFuZXNfbmIgOiA0OworICAgICAgICBpZiAobiA+IDApIHsKKyAgICAgICAg ICAgIGNvbXBvbmVudHNfaGVpZ2h0c1swXSA9IGhlaWdodDsKKyAgICAgICAgICAgIHRvdGFsX2hl aWdodHMgPSBoZWlnaHQ7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgKytp KSB7CisgICAgICAgICAgICAgICAgY29tcG9uZW50c19oZWlnaHRzW2ldID0gY2hyb21hX2hlaWdo dDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNpemUgPSBmcmFtZS0+bGluZXNpemVbaV0g KiBoOwotICAgICAgICAgICAgcmV0ID0gdjRsMl9idWZyZWZfdG9fYnVmKG91dCwgMCwgZnJhbWUt PmRhdGFbaV0sIHNpemUsIG9mZnNldCk7Ci0gICAgICAgICAgICBpZiAocmV0KQotICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgICAgICBvZmZzZXQgKz0gc2l6ZTsKKyAgICAgICAg ICAgIHRvdGFsX2hlaWdodHMgKz0gKG4gLSAxKSAqIGNocm9tYV9oZWlnaHQ7CiAgICAgICAgIH0K KworICAgICAgICBjb25zdCBpbnQgc2FtZV9zdHJpZGUgPSAoYnl0ZXNwZXJsaW5lID09IGZyYW1l LT5saW5lc2l6ZVswXSk7CisgICAgICAgIGlmIChzYW1lX3N0cmlkZSkgeworICAgICAgICAgICAg LyogRmFzdCBwYXRoOiBwbGFuZSBzdHJpZGUgZXF1YWxzIGJ5dGVzcGVybGluZSAqLworICAgICAg ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAvKiBH ZXQgYnVmZmVyIGhlaWdodCBmb3IgdGhpcyBjb21wb25uZXQgd2l0aCBjb21wL3RvdGFsIGhlaWdo dC1yYXRpbyBhbmQgYnVmZmVyX2hlaWdodHMgKi8KKyAgICAgICAgICAgICAgICBjb25zdCBpbnQg aCA9IGNvbXBvbmVudHNfaGVpZ2h0c1tpXTsKKyAgICAgICAgICAgICAgICBjb25zdCBpbnQgY29t cF9idWZfaGVpZ2h0ID0gKGJ1ZmZlcl9oZWlnaHQgKiBoKSAvIHRvdGFsX2hlaWdodHM7CisKKyAg ICAgICAgICAgICAgICAvKiBTaXplIHRvIGNvcHkgZnJvbSBzb3VyY2UgKi8KKyAgICAgICAgICAg ICAgICBzaXplX3Qgc2l6ZSA9IChzaXplX3QpZnJhbWUtPmxpbmVzaXplW2ldICogKHNpemVfdClo OworCisgICAgICAgICAgICAgICAgaW50IHJldCA9IHY0bDJfYnVmcmVmX3RvX2J1ZihvdXQsIDAs IGZyYW1lLT5kYXRhW2ldLCBzaXplLCBvZmZzZXQpOworICAgICAgICAgICAgICAgIGlmIChyZXQp CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisKKyAgICAgICAgICAgICAgICAvKiBB ZHZhbmNlIGRlc3RpbmF0aW9uIG9mZnNldCBieSB0aGUgKmJ1ZmZlciogcG9ydGlvbiBoZWlnaHQg KG5vdCBzb3VyY2UgaGVpZ2h0KSAqLworICAgICAgICAgICAgICAgIG9mZnNldCArPSAoc2l6ZV90 KWZyYW1lLT5saW5lc2l6ZVtpXSAqIChzaXplX3QpY29tcF9idWZfaGVpZ2h0OworICAgICAgICAg ICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogR2VuZXJhbCBwYXRoOiBwbGFu ZSBzdHJpZGUgZGlmZmVycyDihpIgdXNlIHBsYW5lLXRvLXBsYW5lIGFsaWdubWVudCAqLworICAg ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAv KiBHZXQgYnVmZmVyIGhlaWdodCBmb3IgdGhpcyBjb21wb25uZXQgd2l0aCBjb21wL3RvdGFsIGhl aWdodC1yYXRpbyBhbmQgYnVmZmVyX2hlaWdodHMgKi8KKyAgICAgICAgICAgICAgICBjb25zdCBp bnQgaCA9IGNvbXBvbmVudHNfaGVpZ2h0c1tpXTsKKyAgICAgICAgICAgICAgICBjb25zdCBpbnQg Y29tcF9idWZfaGVpZ2h0ID0gKGJ1ZmZlcl9oZWlnaHQgKiBoKSAvIHRvdGFsX2hlaWdodHM7Cisg ICAgICAgICAgICAgICAgc2l6ZV90IHNpemUgPSAoc2l6ZV90KWJ5dGVzcGVybGluZSAqIChzaXpl X3QpY29tcF9idWZfaGVpZ2h0OworCisgICAgICAgICAgICAgICAgaW50IHJldCA9IHY0bDJfcGxh bmVfdG9fcGxhbmVfYWxpZ24ob3V0LCAwLCBmcmFtZS0+ZGF0YVtpXSwgc2l6ZSwgb2Zmc2V0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1l LT5saW5lc2l6ZVtpXSwgaCwgYnl0ZXNwZXJsaW5lKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0 KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0OworCisgICAgICAgICAgICAgICAgb2Zm c2V0ICs9IHNpemU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICByZXR1cm4g MDsKICAgICB9CiAKLS0gCjIuNDkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdCAtLSBmZm1wZWctZGV2ZWxA ZmZtcGVnLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGZmbXBlZy1kZXZlbC1s ZWF2ZUBmZm1wZWcub3JnCg==