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 679FF4EA80 for ; Thu, 12 Feb 2026 03:15:58 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'qo0rWMH7zBi6NPDo3KbIuH1cEdUkjamOuOGA2CBEt1A=', expected b'zriRHYZckBwJmjKulKxD5Xel/WgnPZqhqKNkOlqbbCA=')) 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=1770866128; 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=qo0rWMH7zBi6NPDo3KbIuH1cEdUkjamOuOGA2CBEt1A=; b=hxfQ7xm4xaPvQCELVZX+AmhUEY6EQWfh83Y1KwMJcLBmMJ5nreScwzhxqnfvgNP2N7Qu6 W96c6U1EmAn+ePSVBuviCK3YGV0+JhMLmarvZ8uZY/rk82houzgwmfnzd3D3nTFOodTJM+V U6Fms6cb7hRhacPUlDlush/EnX2bmKiJADNc77MNdkvN5Xhy1r79GRHXXk5AQq9/r616ye1 gmfuYtI/cPBJdD5uM8/fpYax8VV+bLsmSyL39ShABEkJbSh6oCkwnWDx220ogGfbjYfPATn z7F/iAfG8dGvD++6q7BTlgvfse0HmRnkojYgem/ByC/dTBMczIM8rDTp/rJw== Received: from [172.20.0.3] (unknown [172.20.0.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 061F7691D3B; Thu, 12 Feb 2026 05:15:28 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1770866120; b=ZI/GNHv63HyV+ny9jp6cw3oeJEZWRU4Yz3ty5VpahFACrz3tLj9pZhlkqHRXcigzUQIGW c0gpynEV+X/TT7sP+fGleVWvHQ3bWhZsdyR3U/huDDmFNRI3lC+mQh5pl5RrYoFUSssXHoE CmjyKM0GrU6+ehZ4TjG+MDXyOZWb14qeSRx0kMVCqO9bgYSbgA6X1oStw/g/cWq6pC6JwTg UIgcBW4eC/Dq8ml7ZQstneBjhxM+idXFVQnnRc+sWY/Ih4DiSzWk5Amr/qDp0+3XJcJP3Ea xvXJHJFY94Jt+viNWjTdeVwjjGiiYd3Mb8Y5hKY1AVY2nvHMHGhBrsGKv1gQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1770866120; 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=qo0rWMH7zBi6NPDo3KbIuH1cEdUkjamOuOGA2CBEt1A=; b=eryf8HpLEvWlYz8GT0eo/WZDYbhW1qfglFY106DJkyDrB5eFlWyW0tC/D9uq7wOGo/gho La5in3CxmPOgLxvVobnzFAxsqsrTT1pdtDFZGMKhmZolasrX6WfFwc8iswto7utz4l6p33k pIclLcfWwtupQcVBbj5KammQ0xWYVXUN8MBu80i9K7FT9FYM9P2xLsPiRZ9yuqhpIGcHF2x KRAaOkFCASGYI9PIepVPRyfFqrtUvCT+l+SNUwogX/7kJYWQ1mVSaATrmu+6+bzM+158qLw 8CtwOeQSxy5I4L55Hr+flXzYFaIxYeJtvXZPSwuSRgEwoNPANawP0HDdhXOQ== 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=1770866112; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=zriRHYZckBwJmjKulKxD5Xel/WgnPZqhqKNkOlqbbCA=; b=jvFn4B1s3zHCxY0dh+jTrqOtR40B+LIsN8jMYXVryndqFw42j8IEh2yz565sT9kTFqjvT I4VXoJdaQdML8xdwEYV6p3Fk+UCH5yX9a3xOLb+i+Txt8vkYNQIhlY6ChWYzjJmVfHzNSNf COKhLZwNLd4RRg80bqAH537zuLTN7WtK2THoYtaqiBM24fqmk8uDPhjvIgd3Fp+9UzmThxk 3bqX8IRzYT6SPG2L32bMBeLAasB2yGvMWQuNG8ZT0Wck88mn0ZBIo14ygihaqa2xWWimCAP 0YLoUUYVJdXlYRZZmtWpszjiPDKkPiy/bIrklsVX31OEQZ+52Muz+pyQYkQw== Received: from c8d966988b92 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 241E5691CEA for ; Thu, 12 Feb 2026 05:15:12 +0200 (EET) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Thu, 12 Feb 2026 03:15:11 -0000 Message-ID: <177086611232.25.3449383925441327778@009cbcb3d8cd> Message-ID-Hash: XSC2ONTFB7S6TF7DF5MX2WLYRZZMTRVU X-Message-ID-Hash: XSC2ONTFB7S6TF7DF5MX2WLYRZZMTRVU 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] [PR] NEON rgb2rgb conversions: channel swap + alpha drop/insert (PR #21738) 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: David Christle via ffmpeg-devel Cc: David Christle Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: UFIgIzIxNzM4IG9wZW5lZCBieSBEYXZpZCBDaHJpc3RsZSAoZGNocmlzdGxlKQpVUkw6IGh0dHBz Oi8vY29kZS5mZm1wZWcub3JnL0ZGbXBlZy9GRm1wZWcvcHVsbHMvMjE3MzgKUGF0Y2ggVVJMOiBo dHRwczovL2NvZGUuZmZtcGVnLm9yZy9GRm1wZWcvRkZtcGVnL3B1bGxzLzIxNzM4LnBhdGNoCgpU aHJlZSBuZXcgTkVPTi1vcHRpbWl6ZWQgcmdiMnJnYiBmdW5jdGlvbnMgZm9yIGFhcmNoNjQ6DQoN Ci0gcmdiMjR0b2JncjI0OiBS4oaUQiBjaGFubmVsIHN3YXAgdmlhIGxkMy9zdDMgKDE0eCBvdmVy IHNjYWxhciBDKQ0KLSByZ2IzMnRvYmdyMjQ6IGFscGhhIGRyb3AgdmlhIGxkcCt0Ymwrc3RwICgx Ljh4IG92ZXIgY2xhbmcgYXV0by12ZWMpDQotIHJnYjI0dG9iZ3IzMjogYWxwaGEgaW5zZXJ0IHZp YSBsZHArdGJsK3N0cCAoMS42eCBvdmVyIGNsYW5nIGF1dG8tdmVjKQ0KDQpjaGVja2FzbSB0ZXN0 cyBjb3ZlciBhbGwgdGhyZWUgY29kZSB0aWVycyAoMTZweCBORU9OLCA4cHggTkVPTiwgc2NhbGFy IHRhaWwpIHdpdGggb3ZlcndyaXRlIGRldGVjdGlvbi4KCgpGcm9tIGIyYzgwMjM3NmIxMzAzNGYw M2E4OWRjN2ExYWQwYjZlYWMwNGFjOTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh dmlkIENocmlzdGxlIDxkZXZAY2hyaXN0bGUuaXM+CkRhdGU6IEZyaSwgNiBGZWIgMjAyNiAxNjo0 NToxMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBzd3NjYWxlL2FhcmNoNjQ6IGFkZCBORU9O IHJnYjI0dG9iZ3IyNCBieXRlLXN3YXAKCkFkZCBhIE5FT04gcmdiMjR0b2JncjI0IHVzaW5nIGxk My9zdDMgdG8gc3dhcCBSIGFuZCBCIGNoYW5uZWxzIGluCnBhY2tlZCAyNGJwcCBSR0IgYnVmZmVy cy4gSGFuZGxlcyBhbGwgaW5wdXQgc2l6ZXMgd2l0aCBhIDE2LXBpeGVsCk5FT04gZmFzdCBwYXRo LCA4LXBpeGVsIE5FT04gY2xlYW51cCwgYW5kIHNjYWxhciB0YWlsLgoKY2hlY2thc20gLS1iZW5j aCBvbiBBcHBsZSBNMyBNYXggKDE5MjAqMyA9IDU3NjAgYnl0ZXMpOgogIHJnYjI0dG9iZ3IyNF9j OiAgICA4NzIuMyAoIDEuMDB4KQogIHJnYjI0dG9iZ3IyNF9uZW9uOiAgNjIuNCAoMTMuOTh4KQoK U2lnbmVkLW9mZi1ieTogRGF2aWQgQ2hyaXN0bGUgPGRldkBjaHJpc3RsZS5pcz4KLS0tCiBsaWJz d3NjYWxlL2FhcmNoNjQvcmdiMnJnYi5jICAgICAgfCAgMyArKysKIGxpYnN3c2NhbGUvYWFyY2g2 NC9yZ2IycmdiX25lb24uUyB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRl c3RzL2NoZWNrYXNtL3N3X3JnYi5jICAgICAgICAgICB8IDMxICsrKysrKysrKysrKysrKysrKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2xpYnN3 c2NhbGUvYWFyY2g2NC9yZ2IycmdiLmMgYi9saWJzd3NjYWxlL2FhcmNoNjQvcmdiMnJnYi5jCmlu ZGV4IGY0NzQyMjgyOTguLjU4NzM0MzlkYjUgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvYWFyY2g2 NC9yZ2IycmdiLmMKKysrIGIvbGlic3dzY2FsZS9hYXJjaDY0L3JnYjJyZ2IuYwpAQCAtNTEsNiAr NTEsOCBAQCBzdGF0aWMgdm9pZCByZ2IyNHRveXYxMihjb25zdCB1aW50OF90ICpzcmMsIHVpbnQ4 X3QgKnlkc3QsIHVpbnQ4X3QgKnVkc3QsCiAgICAgfQogfQogCit2b2lkIGZmX3JnYjI0dG9iZ3Iy NF9uZW9uKGNvbnN0IHVpbnQ4X3QgKnNyYywgdWludDhfdCAqZHN0LCBpbnQgc3JjX3NpemUpOwor CiB2b2lkIGZmX2ludGVybGVhdmVfYnl0ZXNfbmVvbihjb25zdCB1aW50OF90ICpzcmMxLCBjb25z dCB1aW50OF90ICpzcmMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAq ZGVzdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IHNyYzFTdHJpZGUsIGludCBzcmMyU3RyaWRlLCBpbnQgZHN0U3RyaWRlKTsKQEAgLTg1 LDYgKzg3LDcgQEAgYXZfY29sZCB2b2lkIHJnYjJyZ2JfaW5pdF9hYXJjaDY0KHZvaWQpCiAKICAg ICBpZiAoaGF2ZV9uZW9uKGNwdV9mbGFncykpIHsKICAgICAgICAgZmZfcmdiMjR0b3l2MTIgID0g cmdiMjR0b3l2MTI7CisgICAgICAgIHJnYjI0dG9iZ3IyNCAgICA9IGZmX3JnYjI0dG9iZ3IyNF9u ZW9uOwogICAgICAgICBpbnRlcmxlYXZlQnl0ZXMgPSBmZl9pbnRlcmxlYXZlX2J5dGVzX25lb247 CiAgICAgICAgIGRlaW50ZXJsZWF2ZUJ5dGVzID0gZmZfZGVpbnRlcmxlYXZlX2J5dGVzX25lb247 CiAgICAgICAgIHNodWZmbGVfYnl0ZXNfMDMyMSA9IGZmX3NodWZmbGVfYnl0ZXNfMDMyMV9uZW9u OwpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9hYXJjaDY0L3JnYjJyZ2JfbmVvbi5TIGIvbGlic3dz Y2FsZS9hYXJjaDY0L3JnYjJyZ2JfbmVvbi5TCmluZGV4IGY2ZDYyNWYxMWYuLjI1ZTZjNzNmNDIg MTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvYWFyY2g2NC9yZ2IycmdiX25lb24uUworKysgYi9saWJz d3NjYWxlL2FhcmNoNjQvcmdiMnJnYl9uZW9uLlMKQEAgLTI0MSw2ICsyNDEsNDkgQEAgZnVuY3Rp b24gZmZfcmdiMjR0b3l2MTJfbmVvbiwgZXhwb3J0PTEKICAgICAgICAgcmV0CiBlbmRmdW5jCiAK Ky8vIHZvaWQgZmZfcmdiMjR0b2JncjI0X25lb24oY29uc3QgdWludDhfdCAqc3JjLCB1aW50OF90 ICpkc3QsIGludCBzcmNfc2l6ZSk7CitmdW5jdGlvbiBmZl9yZ2IyNHRvYmdyMjRfbmVvbiwgZXhw b3J0PTEKKyAgICAgICAgLy8geDAgPSBzcmMsIHgxID0gZHN0LCB3MiA9IHNyY19zaXplIChieXRl cykKKworICAgICAgICAvLyBGYXN0IHBhdGg6IDQ4IGJ5dGVzICgxNiBwaXhlbHMpIHBlciBpdGVy YXRpb24KKyAgICAgICAgc3VicyAgICAgICAgICAgIHcyLCB3MiwgIzQ4CisgICAgICAgIGIubHQg ICAgICAgICAgICAyZgorMToKKyAgICAgICAgbGQzICAgICAgICAgICAgIHt2MC4xNmIsIHYxLjE2 YiwgdjIuMTZifSwgW3gwXSwgIzQ4CisgICAgICAgIG1vdiAgICAgICAgICAgICB2My4xNmIsIHYw LjE2YgorICAgICAgICBtb3YgICAgICAgICAgICAgdjAuMTZiLCB2Mi4xNmIKKyAgICAgICAgbW92 ICAgICAgICAgICAgIHYyLjE2YiwgdjMuMTZiCisgICAgICAgIHN0MyAgICAgICAgICAgICB7djAu MTZiLCB2MS4xNmIsIHYyLjE2Yn0sIFt4MV0sICM0OAorICAgICAgICBzdWJzICAgICAgICAgICAg dzIsIHcyLCAjNDgKKyAgICAgICAgYi5nZSAgICAgICAgICAgIDFiCisyOgorICAgICAgICBhZGQg ICAgICAgICAgICAgdzIsIHcyLCAjNDgKKyAgICAgICAgLy8gTWVkaXVtIHBhdGg6IDI0IGJ5dGVz ICg4IHBpeGVscykKKyAgICAgICAgY21wICAgICAgICAgICAgIHcyLCAjMjQKKyAgICAgICAgYi5s dCAgICAgICAgICAgIDNmCisgICAgICAgIGxkMyAgICAgICAgICAgICB7djAuOGIsIHYxLjhiLCB2 Mi44Yn0sIFt4MF0sICMyNAorICAgICAgICBtb3YgICAgICAgICAgICAgdjMuOGIsIHYwLjhiCisg ICAgICAgIG1vdiAgICAgICAgICAgICB2MC44YiwgdjIuOGIKKyAgICAgICAgbW92ICAgICAgICAg ICAgIHYyLjhiLCB2My44YgorICAgICAgICBzdWIgICAgICAgICAgICAgdzIsIHcyLCAjMjQKKyAg ICAgICAgc3QzICAgICAgICAgICAgIHt2MC44YiwgdjEuOGIsIHYyLjhifSwgW3gxXSwgIzI0Cisz OgorICAgICAgICAvLyBTY2FsYXIgdGFpbDogMyBieXRlcyAoMSBwaXhlbCkgYXQgYSB0aW1lCisg ICAgICAgIGNtcCAgICAgICAgICAgICB3MiwgIzMKKyAgICAgICAgYi5sdCAgICAgICAgICAgIDRm Cis1OgorICAgICAgICBsZHJiICAgICAgICAgICAgdzMsIFt4MF0sICMxCisgICAgICAgIGxkcmIg ICAgICAgICAgICB3NCwgW3gwXSwgIzEKKyAgICAgICAgbGRyYiAgICAgICAgICAgIHc1LCBbeDBd LCAjMQorICAgICAgICBzdWJzICAgICAgICAgICAgdzIsIHcyLCAjMworICAgICAgICBzdHJiICAg ICAgICAgICAgdzUsIFt4MV0sICMxCisgICAgICAgIHN0cmIgICAgICAgICAgICB3NCwgW3gxXSwg IzEKKyAgICAgICAgc3RyYiAgICAgICAgICAgIHczLCBbeDFdLCAjMQorICAgICAgICBiLmd0ICAg ICAgICAgICAgNWIKKzQ6CisgICAgICAgIHJldAorZW5kZnVuYworCiAvLyB2b2lkIGZmX2ludGVy bGVhdmVfYnl0ZXNfbmVvbihjb25zdCB1aW50OF90ICpzcmMxLCBjb25zdCB1aW50OF90ICpzcmMy LAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZGVzdCwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNy YzFTdHJpZGUsIGludCBzcmMyU3RyaWRlLCBpbnQgZHN0U3RyaWRlKTsKZGlmZiAtLWdpdCBhL3Rl c3RzL2NoZWNrYXNtL3N3X3JnYi5jIGIvdGVzdHMvY2hlY2thc20vc3dfcmdiLmMKaW5kZXggNmVk ZmM5M2IwYi4uYmFlYjM0YjQ2NSAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vc3dfcmdiLmMK KysrIGIvdGVzdHMvY2hlY2thc20vc3dfcmdiLmMKQEAgLTgzNCw2ICs4MzQsMzcgQEAgdm9pZCBj aGVja2FzbV9jaGVja19zd19yZ2Iodm9pZCkKICAgICBjaGVja19zaHVmZmxlX2J5dGVzKHNodWZm bGVfYnl0ZXNfMjEzMCwgInNodWZmbGVfYnl0ZXNfMjEzMCIpOwogICAgIHJlcG9ydCgic2h1ZmZs ZV9ieXRlc18yMTMwIik7CiAKKyAgICB7CisgICAgICAgIC8qIHJnYjI0dG9iZ3IyNCBvcGVyYXRl cyBvbiAzLWJ5dGUgcGl4ZWxzLCBzbyB0ZXN0IHdpZHRocyBtdXN0IGJlCisgICAgICAgICAqIG11 bHRpcGxlcyBvZiAzIHRvIGF2b2lkIHJlYWRpbmcgcGFzdCB0aGUgc291cmNlIGJ1ZmZlci4gKi8K KyAgICAgICAgc3RhdGljIGNvbnN0IGludCByZ2IyNF93aWR0aFtdID0gezMsIDEyLCAyNCwgMzYs IDQ4LCAxMjYsIDE5MjAgKiAzfTsKKyAgICAgICAgaW50IGk7CisjZGVmaW5lIFJHQjI0X0JFTkNI X1dJRFRIICgxOTIwICogMykKKyAgICAgICAgTE9DQUxfQUxJR05FRF8zMih1aW50OF90LCBzcmMw LCBbUkdCMjRfQkVOQ0hfV0lEVEhdKTsKKyAgICAgICAgTE9DQUxfQUxJR05FRF8zMih1aW50OF90 LCBzcmMxLCBbUkdCMjRfQkVOQ0hfV0lEVEhdKTsKKyAgICAgICAgTE9DQUxfQUxJR05FRF8zMih1 aW50OF90LCBkc3QwLCBbUkdCMjRfQkVOQ0hfV0lEVEhdKTsKKyAgICAgICAgTE9DQUxfQUxJR05F RF8zMih1aW50OF90LCBkc3QxLCBbUkdCMjRfQkVOQ0hfV0lEVEhdKTsKKworICAgICAgICBkZWNs YXJlX2Z1bmModm9pZCwgY29uc3QgdWludDhfdCAqc3JjLCB1aW50OF90ICpkc3QsIGludCBzcmNf c2l6ZSk7CisKKyAgICAgICAgbWVtc2V0KGRzdDAsIDAsIFJHQjI0X0JFTkNIX1dJRFRIKTsKKyAg ICAgICAgbWVtc2V0KGRzdDEsIDAsIFJHQjI0X0JFTkNIX1dJRFRIKTsKKyAgICAgICAgcmFuZG9t aXplX2J1ZmZlcnMoc3JjMCwgUkdCMjRfQkVOQ0hfV0lEVEgpOworICAgICAgICBtZW1jcHkoc3Jj MSwgc3JjMCwgUkdCMjRfQkVOQ0hfV0lEVEgpOworCisgICAgICAgIGlmIChjaGVja19mdW5jKHJn YjI0dG9iZ3IyNCwgInJnYjI0dG9iZ3IyNCIpKSB7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBp IDwgRkZfQVJSQVlfRUxFTVMocmdiMjRfd2lkdGgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBj YWxsX3JlZihzcmMwLCBkc3QwLCByZ2IyNF93aWR0aFtpXSk7CisgICAgICAgICAgICAgICAgY2Fs bF9uZXcoc3JjMSwgZHN0MSwgcmdiMjRfd2lkdGhbaV0pOworICAgICAgICAgICAgICAgIGlmICht ZW1jbXAoZHN0MCwgZHN0MSwgcmdiMjRfd2lkdGhbaV0pKQorICAgICAgICAgICAgICAgICAgICBm YWlsKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBiZW5jaF9uZXcoc3JjMCwgZHN0MCwg UkdCMjRfQkVOQ0hfV0lEVEgpOworICAgICAgICB9CisjdW5kZWYgUkdCMjRfQkVOQ0hfV0lEVEgK KyAgICB9CisgICAgcmVwb3J0KCJyZ2IyNHRvYmdyMjQiKTsKKwogICAgIGNoZWNrX3V5dnlfdG9f NDIycCgpOwogICAgIHJlcG9ydCgidXl2eXRveXV2NDIyIik7CiAKLS0gCjIuNTIuMAoKCkZyb20g ZWVjMTliOWU4NjBiYmZmYjY1YTY0MGIxNjQ3YmQ2ZjJkMWM2M2QwZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGF2aWQgQ2hyaXN0bGUgPGRldkBjaHJpc3RsZS5pcz4KRGF0ZTogRnJp LCA2IEZlYiAyMDI2IDIxOjE1OjUyIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIHN3c2NhbGUv YWFyY2g2NDogYWRkIE5FT04gcmdiMzJ0b2JncjI0IGFuZCByZ2IyNHRvYmdyMzIKIGNvbnZlcnNp b25zCgpBZGQgTkVPTiBhbHBoYSBkcm9wL2luc2VydCB1c2luZyBsZHArdGJsK3N0cCBpbnN0ZWFk IG9mIGxkNC9zdDMgYW5kCmxkMy9zdDQgc3RydWN0dXJlIG9wZXJhdGlvbnMuIEJvdGggdXNlIGEg Mi1yZWdpc3RlciBzbGlkaW5nLXdpbmRvdwp0Ymwgd2l0aCBwb3N0LWluZGV4ZWQgYWRkcmVzc2lu Zy4gSW5zdHJ1Y3Rpb24gc2NoZWR1bGluZyB0YXJnZXRzCm5hcnJvdyBpbi1vcmRlciBjb3JlcyAo QTU1KSB3aGlsZSByZW1haW5pbmcgbmV1dHJhbCBvbiB3aWRlIE9vTy4KClNjYWxhciB0YWlscyB1 c2UgY29hbGVzY2VkIGxvYWRzL3N0b3JlcyAobGRyK3N0cmgrbHNyK3N0cmIgZm9yIGFscGhhCmRy b3AsIGxkcmgrbGRyYitvcnIrc3RyIGZvciBhbHBoYSBpbnNlcnQpIHRvIHJlZHVjZSBwZXItcGl4 ZWwKaW5zdHJ1Y3Rpb24gY291bnQuIEluZGVwZW5kZW50IGluc3RydWN0aW9ucyBwbGFjZWQgYmV0 d2VlbiBsb2FkcyBhbmQKZGVwZW5kZW50IG9wZXJhdGlvbnMgdG8gZmlsbCBsb2FkLXVzZSBsYXRl bmN5IG9uIGluLW9yZGVyIGNvcmVzLgoKY2hlY2thc20gLS1iZW5jaCBvbiBBcHBsZSBNMyBNYXgg KGRlY2ljeWNsZXMsIDE5MjBweCk6CiAgcmdiMzJ0b2JncjI0X2M6ICAgIDExNC40ICggMS4wMHgp CiAgcmdiMzJ0b2JncjI0X25lb246ICA2NC4zICggMS43OHgpCiAgcmdiMjR0b2JncjMyX2M6ICAg IDEyOC45ICggMS4wMHgpCiAgcmdiMjR0b2JncjMyX25lb246ICA4MC45ICggMS41OXgpCgpDIGJh c2VsaW5lIGlzIGNsYW5nIGF1dG8tdmVjdG9yaXplZDsgc3BlZWR1cCBpcyBvdmVyIGNvbXBpbGVy IE5FT04uCgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBDaHJpc3RsZSA8ZGV2QGNocmlzdGxlLmlzPgot LS0KIGxpYnN3c2NhbGUvYWFyY2g2NC9yZ2IycmdiLmMgICAgICB8ICAgNCArCiBsaWJzd3NjYWxl L2FhcmNoNjQvcmdiMnJnYl9uZW9uLlMgfCAxMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiB0ZXN0cy9jaGVja2FzbS9zd19yZ2IuYyAgICAgICAgICAgfCAgOTEgKysrKysrKysrKysr KysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyMzQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2xpYnN3c2NhbGUvYWFyY2g2NC9yZ2IycmdiLmMgYi9saWJzd3NjYWxlL2FhcmNoNjQvcmdiMnJn Yi5jCmluZGV4IDU4NzM0MzlkYjUuLmI5ZDhhYTRkYzIgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUv YWFyY2g2NC9yZ2IycmdiLmMKKysrIGIvbGlic3dzY2FsZS9hYXJjaDY0L3JnYjJyZ2IuYwpAQCAt NTIsNiArNTIsOCBAQCBzdGF0aWMgdm9pZCByZ2IyNHRveXYxMihjb25zdCB1aW50OF90ICpzcmMs IHVpbnQ4X3QgKnlkc3QsIHVpbnQ4X3QgKnVkc3QsCiB9CiAKIHZvaWQgZmZfcmdiMjR0b2JncjI0 X25lb24oY29uc3QgdWludDhfdCAqc3JjLCB1aW50OF90ICpkc3QsIGludCBzcmNfc2l6ZSk7Cit2 b2lkIGZmX3JnYjMydG9iZ3IyNF9uZW9uKGNvbnN0IHVpbnQ4X3QgKnNyYywgdWludDhfdCAqZHN0 LCBpbnQgc3JjX3NpemUpOwordm9pZCBmZl9yZ2IyNHRvYmdyMzJfbmVvbihjb25zdCB1aW50OF90 ICpzcmMsIHVpbnQ4X3QgKmRzdCwgaW50IHNyY19zaXplKTsKIAogdm9pZCBmZl9pbnRlcmxlYXZl X2J5dGVzX25lb24oY29uc3QgdWludDhfdCAqc3JjMSwgY29uc3QgdWludDhfdCAqc3JjMiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRlc3QsIGludCB3aWR0aCwgaW50 IGhlaWdodCwKQEAgLTg4LDYgKzkwLDggQEAgYXZfY29sZCB2b2lkIHJnYjJyZ2JfaW5pdF9hYXJj aDY0KHZvaWQpCiAgICAgaWYgKGhhdmVfbmVvbihjcHVfZmxhZ3MpKSB7CiAgICAgICAgIGZmX3Jn YjI0dG95djEyICA9IHJnYjI0dG95djEyOwogICAgICAgICByZ2IyNHRvYmdyMjQgICAgPSBmZl9y Z2IyNHRvYmdyMjRfbmVvbjsKKyAgICAgICAgcmdiMzJ0b2JncjI0ICAgID0gZmZfcmdiMzJ0b2Jn cjI0X25lb247CisgICAgICAgIHJnYjI0dG9iZ3IzMiAgICA9IGZmX3JnYjI0dG9iZ3IzMl9uZW9u OwogICAgICAgICBpbnRlcmxlYXZlQnl0ZXMgPSBmZl9pbnRlcmxlYXZlX2J5dGVzX25lb247CiAg ICAgICAgIGRlaW50ZXJsZWF2ZUJ5dGVzID0gZmZfZGVpbnRlcmxlYXZlX2J5dGVzX25lb247CiAg ICAgICAgIHNodWZmbGVfYnl0ZXNfMDMyMSA9IGZmX3NodWZmbGVfYnl0ZXNfMDMyMV9uZW9uOwpk aWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9hYXJjaDY0L3JnYjJyZ2JfbmVvbi5TIGIvbGlic3dzY2Fs ZS9hYXJjaDY0L3JnYjJyZ2JfbmVvbi5TCmluZGV4IDI1ZTZjNzNmNDIuLjM3OWM2YmYzNDMgMTAw NjQ0Ci0tLSBhL2xpYnN3c2NhbGUvYWFyY2g2NC9yZ2IycmdiX25lb24uUworKysgYi9saWJzd3Nj YWxlL2FhcmNoNjQvcmdiMnJnYl9uZW9uLlMKQEAgLTk3LDYgKzk3LDMyIEBAIGNvbnN0IHNodWZf MjEzMF90YmwsIGFsaWduPTQKICAgICAgICAgLmJ5dGUgIDE0LCAxMywgMTUsIDEyCiBlbmRjb25z dAogCisvLyByZ2IzMnRvYmdyMjQ6IHRibCBpbmRpY2VzIGZvciAyLXJlZ2lzdGVyIHNsaWRpbmcg d2luZG93IChsZHArdGJsK3N0cCBhcHByb2FjaCkKKy8vIENvbnZlcnRzIDE2IEJHUkEgcGl4ZWxz ICg2NCBieXRlcykgdG8gMTYgQkdSIHBpeGVscyAoNDggYnl0ZXMpIGJ5IGRyb3BwaW5nIGFscGhh LgorLy8gRWFjaCAxNi1ieXRlIG91dHB1dCByZWdpc3RlciBzZWxlY3RzIDMtb2YtNCBieXRlcyBm cm9tIGEge1ZuLCBWbisxfSBwYWlyLgorY29uc3QgcmdiMzJ0b2JncjI0X3RibCwgYWxpZ249NAor ICAgICAgICAvLyBvdXQwIGZyb20ge3YwLHYxfTogcGl4ZWxzIDAtNeKFkyDihpIgQjAgRzAgUjAg QjEgRzEgUjEgQjIgRzIgUjIgQjMgRzMgUjMgQjQgRzQgUjQgQjUKKyAgICAgICAgLmJ5dGUgIDAs ICAxLCAgMiwgIDQsICA1LCAgNiwgIDgsICA5LCAxMCwgMTIsIDEzLCAxNCwgMTYsIDE3LCAxOCwg MjAKKyAgICAgICAgLy8gb3V0MSBmcm9tIHt2MSx2Mn06IHBpeGVscyA14oWTLTEw4oWUIOKGkiBH NSBSNSBCNiBHNiBSNiBCNyBHNyBSNyBCOCBHOCBSOCBCOSBHOSBSOSBCMTAgRzEwCisgICAgICAg IC5ieXRlICA1LCAgNiwgIDgsICA5LCAxMCwgMTIsIDEzLCAxNCwgMTYsIDE3LCAxOCwgMjAsIDIx LCAyMiwgMjQsIDI1CisgICAgICAgIC8vIG91dDIgZnJvbSB7djIsdjN9OiBwaXhlbHMgMTDihZQt MTUg4oaSIFIxMCBCMTEgRzExIFIxMSBCMTIgRzEyIFIxMiBCMTMgRzEzIFIxMyBCMTQgRzE0IFIx NCBCMTUgRzE1IFIxNQorICAgICAgICAuYnl0ZSAxMCwgMTIsIDEzLCAxNCwgMTYsIDE3LCAxOCwg MjAsIDIxLCAyMiwgMjQsIDI1LCAyNiwgMjgsIDI5LCAzMAorZW5kY29uc3QKKworLy8gcmdiMjR0 b2JncjMyOiB0YmwgaW5kaWNlcyBmb3Igc2xpZGluZyB3aW5kb3cgKGxkcCt0Ymwrb3JyK3N0cCBh cHByb2FjaCkKKy8vIENvbnZlcnRzIDE2IEJHUiBwaXhlbHMgKDQ4IGJ5dGVzKSB0byAxNiBCR1JB IHBpeGVscyAoNjQgYnl0ZXMpIGJ5IGluc2VydGluZyBhbHBoYT0yNTUuCisvLyBPdXQtb2YtcmFu Z2UgaW5kZXggMTI4IHByb2R1Y2VzIDAgZnJvbSB0Ymw7IG9yciB3aXRoIGFscGhhIG1hc2sgZmls bHMgaW4gMHhGRi4KK2NvbnN0IHJnYjI0dG9iZ3IzMl90YmwsIGFsaWduPTQKKyAgICAgICAgLy8g b3V0MCBmcm9tIHt2MH06IHBpeGVscyAwLTMg4oaSIEIwIEcwIFIwIF8gQjEgRzEgUjEgXyBCMiBH MiBSMiBfIEIzIEczIFIzIF8KKyAgICAgICAgLmJ5dGUgIDAsICAxLCAgMiwgMTI4LCAgMywgIDQs ICA1LCAxMjgsICA2LCAgNywgIDgsIDEyOCwgIDksIDEwLCAxMSwgMTI4CisgICAgICAgIC8vIG91 dDEgZnJvbSB7djAsdjF9OiBwaXhlbHMgNC03IOKGkiBCNCBHNCBSNCBfIEI1IEc1IFI1IF8gQjYg RzYgUjYgXyBCNyBHNyBSNyBfCisgICAgICAgIC5ieXRlIDEyLCAxMywgMTQsIDEyOCwgMTUsIDE2 LCAxNywgMTI4LCAxOCwgMTksIDIwLCAxMjgsIDIxLCAyMiwgMjMsIDEyOAorICAgICAgICAvLyBv dXQyIGZyb20ge3YxLHYyfTogcGl4ZWxzIDgtMTEg4oaSIEI4IEc4IFI4IF8gQjkgRzkgUjkgXyBC MTAgRzEwIFIxMCBfIEIxMSBHMTEgUjExIF8KKyAgICAgICAgLmJ5dGUgIDgsICA5LCAxMCwgMTI4 LCAxMSwgMTIsIDEzLCAxMjgsIDE0LCAxNSwgMTYsIDEyOCwgMTcsIDE4LCAxOSwgMTI4CisgICAg ICAgIC8vIG91dDMgZnJvbSB7djJ9OiBwaXhlbHMgMTItMTUg4oaSIEIxMiBHMTIgUjEyIF8gQjEz IEcxMyBSMTMgXyBCMTQgRzE0IFIxNCBfIEIxNSBHMTUgUjE1IF8KKyAgICAgICAgLmJ5dGUgIDQs ICA1LCAgNiwgMTI4LCAgNywgIDgsICA5LCAxMjgsIDEwLCAxMSwgMTIsIDEyOCwgMTMsIDE0LCAx NSwgMTI4CitlbmRjb25zdAorCiAvLyBjb252ZXJ0IHJnYiB0byAxNi1iaXQgeSwgdSwgb3Igdgog Ly8gdXNlcyB2MyBhbmQgdjQKIApAQCAtMjg0LDYgKzMxMCwxMTkgQEAgZnVuY3Rpb24gZmZfcmdi MjR0b2JncjI0X25lb24sIGV4cG9ydD0xCiAgICAgICAgIHJldAogZW5kZnVuYwogCisvLyB2b2lk IGZmX3JnYjMydG9iZ3IyNF9uZW9uKGNvbnN0IHVpbnQ4X3QgKnNyYywgdWludDhfdCAqZHN0LCBp bnQgc3JjX3NpemUpOworZnVuY3Rpb24gZmZfcmdiMzJ0b2JncjI0X25lb24sIGV4cG9ydD0xCisg ICAgICAgIC8vIHgwID0gc3JjIChCR1JBKSwgeDEgPSBkc3QgKEJHUiksIHcyID0gc3JjX3NpemUg KGJ5dGVzKQorCisgICAgICAgIC8vIExvYWQgMyB0YmwgcGVybXV0YXRpb24gbWFza3MgZm9yIDIt cmVnaXN0ZXIgc2xpZGluZyB3aW5kb3cKKyAgICAgICAgbW92cmVsICAgICAgICAgIHgzLCByZ2Iz MnRvYmdyMjRfdGJsCisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE2LjE2YiwgdjE3LjE2Yiwg djE4LjE2Yn0sIFt4M10KKworICAgICAgICAvLyBGYXN0IHBhdGg6IDY0IGJ5dGVzIGlucHV0ICgx NiBwaXhlbHMpIOKGkiA0OCBieXRlcyBvdXRwdXQKKyAgICAgICAgLy8gVXNlcyBsZHArdGJsKDIt cmVnIHNsaWRpbmcgd2luZG93KStzdHAgdG8gYXZvaWQgZXhwZW5zaXZlIGxkNC9zdDMuCisgICAg ICAgIC8vIFBvc3QtaW5kZXhlZCBhZGRyZXNzaW5nIGVsaW1pbmF0ZXMgcG9pbnRlci1hZHZhbmNl IGluc3RydWN0aW9ucy4KKyAgICAgICAgLy8gc3VicyBwbGFjZWQgYmV0d2VlbiBsb2FkcyBhbmQg dGJsIHRvIGZpbGwgbG9hZC1sYXRlbmN5IGdhcCBvbgorICAgICAgICAvLyBpbi1vcmRlciBjb3Jl cyAoQTU1KS4KKyAgICAgICAgc3VicyAgICAgICAgICAgIHcyLCB3MiwgIzY0CisgICAgICAgIGIu bHQgICAgICAgICAgICAyZgorMToKKyAgICAgICAgbGRwICAgICAgICAgICAgIHEwLCBxMSwgW3gw XSwgIzY0CisgICAgICAgIGxkcCAgICAgICAgICAgICBxMiwgcTMsIFt4MCwgIy0zMl0KKyAgICAg ICAgc3VicyAgICAgICAgICAgIHcyLCB3MiwgIzY0CisgICAgICAgIHRibCAgICAgICAgICAgICB2 NC4xNmIsIHt2MC4xNmIsIHYxLjE2Yn0sIHYxNi4xNmIKKyAgICAgICAgdGJsICAgICAgICAgICAg IHY1LjE2Yiwge3YxLjE2YiwgdjIuMTZifSwgdjE3LjE2YgorICAgICAgICB0YmwgICAgICAgICAg ICAgdjYuMTZiLCB7djIuMTZiLCB2My4xNmJ9LCB2MTguMTZiCisgICAgICAgIHN0cCAgICAgICAg ICAgICBxNCwgcTUsIFt4MV0sICM0OAorICAgICAgICBzdHIgICAgICAgICAgICAgcTYsIFt4MSwg Iy0xNl0KKyAgICAgICAgYi5nZSAgICAgICAgICAgIDFiCisyOgorICAgICAgICBhZGQgICAgICAg ICAgICAgdzIsIHcyLCAjNjQKKyAgICAgICAgLy8gTWVkaXVtIHBhdGg6IDMyIGJ5dGVzIGlucHV0 ICg4IHBpeGVscykg4oaSIDI0IGJ5dGVzIG91dHB1dAorICAgICAgICBjbXAgICAgICAgICAgICAg dzIsICMzMgorICAgICAgICBiLmx0ICAgICAgICAgICAgM2YKKyAgICAgICAgbGQ0ICAgICAgICAg ICAgIHt2MC44YiwgdjEuOGIsIHYyLjhiLCB2My44Yn0sIFt4MF0sICMzMgorICAgICAgICBzdDMg ICAgICAgICAgICAge3YwLjhiLCB2MS44YiwgdjIuOGJ9LCBbeDFdLCAjMjQKKyAgICAgICAgc3Vi ICAgICAgICAgICAgIHcyLCB3MiwgIzMyCiszOgorICAgICAgICAvLyBTY2FsYXIgdGFpbDogNCBi eXRlcyDihpIgMyBieXRlcyBhdCBhIHRpbWUKKyAgICAgICAgLy8gVXNlcyB3b3JkIGxvYWQgKyBo YWxmd29yZC9ieXRlIHN0b3JlcyB0byByZWR1Y2UgaW5zdHJ1Y3Rpb25zLgorICAgICAgICAvLyBP biBMRTogbGRyIGdpdmVzIEE8PDI0fFI8PDE2fEc8PDh8Qjsgc3RyaCBzdG9yZXMgW0IsR107IGxz citzdHJiIHN0b3JlcyBSLgorICAgICAgICAvLyBzdWJzIHBsYWNlZCBiZXR3ZWVuIGxkciBhbmQg c3RyaCB0byBmaWxsIGxvYWQtdXNlIGxhdGVuY3kgb24gQTU1LgorICAgICAgICBjbXAgICAgICAg ICAgICAgdzIsICM0CisgICAgICAgIGIubHQgICAgICAgICAgICA0ZgorNToKKyAgICAgICAgbGRy ICAgICAgICAgICAgIHczLCBbeDBdLCAjNAorICAgICAgICBzdWJzICAgICAgICAgICAgdzIsIHcy LCAjNAorICAgICAgICBzdHJoICAgICAgICAgICAgdzMsIFt4MV0sICMyCisgICAgICAgIGxzciAg ICAgICAgICAgICB3MywgdzMsICMxNgorICAgICAgICBzdHJiICAgICAgICAgICAgdzMsIFt4MV0s ICMxCisgICAgICAgIGIuZ3QgICAgICAgICAgICA1YgorNDoKKyAgICAgICAgcmV0CitlbmRmdW5j CisKKy8vIHZvaWQgZmZfcmdiMjR0b2JncjMyX25lb24oY29uc3QgdWludDhfdCAqc3JjLCB1aW50 OF90ICpkc3QsIGludCBzcmNfc2l6ZSk7CitmdW5jdGlvbiBmZl9yZ2IyNHRvYmdyMzJfbmVvbiwg ZXhwb3J0PTEKKyAgICAgICAgLy8geDAgPSBzcmMgKEJHUiksIHgxID0gZHN0IChCR1JBKSwgdzIg PSBzcmNfc2l6ZSAoYnl0ZXMpCisKKyAgICAgICAgLy8gTG9hZCB0YmwgcGVybXV0YXRpb24gaW5k aWNlcyBhbmQgYWxwaGEgbWFzayBmb3IgdGhlIGZhc3QgcGF0aAorICAgICAgICBtb3ZyZWwgICAg ICAgICAgeDMsIHJnYjI0dG9iZ3IzMl90YmwKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTYu MTZiLCB2MTcuMTZiLCB2MTguMTZiLCB2MTkuMTZifSwgW3gzXQorICAgICAgICBtb3ZpICAgICAg ICAgICAgdjIwLjRzLCAjMjU1LCBsc2wgIzI0ICAgICAgICAgICAgIC8vIEFscGhhIG1hc2s6IDAw IDAwIDAwIEZGIHBlciBwaXhlbAorCisgICAgICAgIC8vIEZhc3QgcGF0aDogNDggYnl0ZXMgaW5w dXQgKDE2IHBpeGVscykg4oaSIDY0IGJ5dGVzIG91dHB1dAorICAgICAgICAvLyBVc2VzIGxkcCt0 Ymwrb3JyK3N0cCB0byBhdm9pZCBleHBlbnNpdmUgbGQzL3N0NCBzdHJ1Y3R1cmUgbG9hZC9zdG9y ZXMuCisgICAgICAgIC8vIHRibCBwcm9kdWNlcyAwIGZvciBhbHBoYSBwb3NpdGlvbnM7IG9yciBm aWxscyBpbiAweEZGLgorICAgICAgICAvLyBQb3N0LWluZGV4ZWQgYWRkcmVzc2luZyBlbGltaW5h dGVzIHBvaW50ZXItYWR2YW5jZSBpbnN0cnVjdGlvbnMuCisgICAgICAgIC8vIHRibC9vcnIgaW50 ZXJsZWF2ZWQgc28gZWFjaCBvcnIgc3RhcnRzIGFzIHNvb24gYXMgaXRzIHRibCByZXN1bHQKKyAg ICAgICAgLy8gaXMgcmVhZHksIGhpZGluZyBsYXRlbmN5IG9uIG5hcnJvdyBpbi1vcmRlciBjb3Jl cyAoQTU1KS4KKyAgICAgICAgc3VicyAgICAgICAgICAgIHcyLCB3MiwgIzQ4CisgICAgICAgIGIu bHQgICAgICAgICAgICAyZgorMToKKyAgICAgICAgbGRwICAgICAgICAgICAgIHEwLCBxMSwgW3gw XSwgIzQ4CisgICAgICAgIGxkciAgICAgICAgICAgICBxMiwgW3gwLCAjLTE2XQorICAgICAgICBz dWJzICAgICAgICAgICAgdzIsIHcyLCAjNDgKKyAgICAgICAgdGJsICAgICAgICAgICAgIHY0LjE2 Yiwge3YwLjE2Yn0sIHYxNi4xNmIKKyAgICAgICAgdGJsICAgICAgICAgICAgIHY1LjE2Yiwge3Yw LjE2YiwgdjEuMTZifSwgdjE3LjE2YgorICAgICAgICBvcnIgICAgICAgICAgICAgdjQuMTZiLCB2 NC4xNmIsIHYyMC4xNmIKKyAgICAgICAgdGJsICAgICAgICAgICAgIHY2LjE2Yiwge3YxLjE2Yiwg djIuMTZifSwgdjE4LjE2YgorICAgICAgICBvcnIgICAgICAgICAgICAgdjUuMTZiLCB2NS4xNmIs IHYyMC4xNmIKKyAgICAgICAgdGJsICAgICAgICAgICAgIHY3LjE2Yiwge3YyLjE2Yn0sIHYxOS4x NmIKKyAgICAgICAgb3JyICAgICAgICAgICAgIHY2LjE2YiwgdjYuMTZiLCB2MjAuMTZiCisgICAg ICAgIHN0cCAgICAgICAgICAgICBxNCwgcTUsIFt4MV0sICM2NAorICAgICAgICBvcnIgICAgICAg ICAgICAgdjcuMTZiLCB2Ny4xNmIsIHYyMC4xNmIKKyAgICAgICAgc3RwICAgICAgICAgICAgIHE2 LCBxNywgW3gxLCAjLTMyXQorICAgICAgICBiLmdlICAgICAgICAgICAgMWIKKzI6CisgICAgICAg IGFkZCAgICAgICAgICAgICB3MiwgdzIsICM0OAorICAgICAgICAvLyBNZWRpdW0gcGF0aDogMjQg Ynl0ZXMgaW5wdXQgKDggcGl4ZWxzKSDihpIgMzIgYnl0ZXMgb3V0cHV0CisgICAgICAgIGNtcCAg ICAgICAgICAgICB3MiwgIzI0CisgICAgICAgIGIubHQgICAgICAgICAgICAzZgorICAgICAgICBt b3ZpICAgICAgICAgICAgdjMuOGIsICMyNTUKKyAgICAgICAgbGQzICAgICAgICAgICAgIHt2MC44 YiwgdjEuOGIsIHYyLjhifSwgW3gwXSwgIzI0CisgICAgICAgIHN0NCAgICAgICAgICAgICB7djAu OGIsIHYxLjhiLCB2Mi44YiwgdjMuOGJ9LCBbeDFdLCAjMzIKKyAgICAgICAgc3ViICAgICAgICAg ICAgIHcyLCB3MiwgIzI0CiszOgorICAgICAgICAvLyBTY2FsYXIgdGFpbDogMyBieXRlcyDihpIg NCBieXRlcyBhdCBhIHRpbWUKKyAgICAgICAgLy8gVXNlcyBoYWxmd29yZCtieXRlIGxvYWRzLCBv cnIgdG8gY29tYmluZSB3aXRoIGFscGhhLCB3b3JkIHN0b3JlLgorICAgICAgICAvLyBPbiBMRTog bGRyaCBnaXZlcyBHPDw4fEIsIGxkcmIgZ2l2ZXMgUjsgb3JyIGFzc2VtYmxlcyAweEZGPDwyNHxS PDwxNnxHPDw4fEI7CisgICAgICAgIC8vIHN0ciBzdG9yZXMgW0IsRyxSLDB4RkZdLiBzdWJzIGFu ZCBhZGQgcGxhY2VkIGJldHdlZW4gbG9hZHMgYW5kIGZpcnN0CisgICAgICAgIC8vIG9yciB0byBm aWxsIGxvYWQtdXNlIGxhdGVuY3kgb24gQTU1LgorICAgICAgICBjbXAgICAgICAgICAgICAgdzIs ICMzCisgICAgICAgIGIubHQgICAgICAgICAgICA0ZgorNToKKyAgICAgICAgbGRyaCAgICAgICAg ICAgIHc0LCBbeDBdCisgICAgICAgIGxkcmIgICAgICAgICAgICB3NSwgW3gwLCAjMl0KKyAgICAg ICAgYWRkICAgICAgICAgICAgIHgwLCB4MCwgIzMKKyAgICAgICAgc3VicyAgICAgICAgICAgIHcy LCB3MiwgIzMKKyAgICAgICAgb3JyICAgICAgICAgICAgIHc0LCB3NCwgdzUsIGxzbCAjMTYKKyAg ICAgICAgb3JyICAgICAgICAgICAgIHc0LCB3NCwgIzB4RkYwMDAwMDAKKyAgICAgICAgc3RyICAg ICAgICAgICAgIHc0LCBbeDFdLCAjNAorICAgICAgICBiLmd0ICAgICAgICAgICAgNWIKKzQ6Cisg ICAgICAgIHJldAorZW5kZnVuYworCiAvLyB2b2lkIGZmX2ludGVybGVhdmVfYnl0ZXNfbmVvbihj b25zdCB1aW50OF90ICpzcmMxLCBjb25zdCB1aW50OF90ICpzcmMyLAogLy8gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDhfdCAqZGVzdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAog Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyYzFTdHJpZGUsIGludCBzcmMy U3RyaWRlLCBpbnQgZHN0U3RyaWRlKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL3N3X3Jn Yi5jIGIvdGVzdHMvY2hlY2thc20vc3dfcmdiLmMKaW5kZXggYmFlYjM0YjQ2NS4uYTM4ZTFkNjhm NSAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vc3dfcmdiLmMKKysrIGIvdGVzdHMvY2hlY2th c20vc3dfcmdiLmMKQEAgLTg2NSw2ICs4NjUsOTcgQEAgdm9pZCBjaGVja2FzbV9jaGVja19zd19y Z2Iodm9pZCkKICAgICB9CiAgICAgcmVwb3J0KCJyZ2IyNHRvYmdyMjQiKTsKIAorICAgIHsKKyAg ICAgICAgLyogcmdiMzJ0b2JncjI0OiA0LWJ5dGUgcGl4ZWxzIOKGkiAzLWJ5dGUgcGl4ZWxzLgor ICAgICAgICAgKiBUZXN0IHdpZHRocyBtdXN0IGJlIG11bHRpcGxlcyBvZiA0IChvbmUgcGl4ZWwp LgorICAgICAgICAgKiBTaXplcyBjaG9zZW4gdG8gZXhlcmNpc2UgZWFjaCBjb2RlcGF0aCB0aWVy OgorICAgICAgICAgKiAgIDQgICAgICAgPSBzY2FsYXIgb25seSAoMSBwaXhlbCkKKyAgICAgICAg ICogICAxNiAgICAgID0gc2NhbGFyIG9ubHkgKDQgcGl4ZWxzLCBsb29wIGl0ZXJhdGlvbikKKyAg ICAgICAgICogICAzMiAgICAgID0gbWVkaXVtIG9ubHkKKyAgICAgICAgICogICA0OCAgICAgID0g bWVkaXVtICsgc2NhbGFyCisgICAgICAgICAqICAgNjQgICAgICA9IGZhc3Qgb25seSAoZXhhY3Qp CisgICAgICAgICAqICAgNjggICAgICA9IGZhc3QgKyBzY2FsYXIgKHNraXAgbWVkaXVtKQorICAg ICAgICAgKiAgIDEwMCAgICAgPSBmYXN0ICsgbWVkaXVtICsgc2NhbGFyIChhbGwgdGllcnMpCisg ICAgICAgICAqICAgMTI4ICAgICA9IGZhc3Qgb25seSAobXVsdGktaXRlcmF0aW9uKQorICAgICAg ICAgKiAgIDE5MjAqNCAgPSBmYXN0IG9ubHkgKGJlbmNobWFyayB3aWR0aCkKKyAgICAgICAgICov CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcmdiMzJfd2lkdGhzW10gPSB7NCwgMTYsIDMyLCA0 OCwgNjQsIDY4LCAxMDAsIDEyOCwgMTkyMCAqIDR9OworI2RlZmluZSBSR0IzMl9CRU5DSF9XSURU SCAoMTkyMCAqIDQpCisjZGVmaW5lIFJHQjMyX0RTVF9TSVpFIChSR0IzMl9CRU5DSF9XSURUSCAq IDMgLyA0ICsgOCkKKyAgICAgICAgTE9DQUxfQUxJR05FRF8zMih1aW50OF90LCBzcmMwLCBbUkdC MzJfQkVOQ0hfV0lEVEhdKTsKKyAgICAgICAgTE9DQUxfQUxJR05FRF8zMih1aW50OF90LCBzcmMx LCBbUkdCMzJfQkVOQ0hfV0lEVEhdKTsKKyAgICAgICAgTE9DQUxfQUxJR05FRF8zMih1aW50OF90 LCBkc3QwLCBbUkdCMzJfRFNUX1NJWkVdKTsKKyAgICAgICAgTE9DQUxfQUxJR05FRF8zMih1aW50 OF90LCBkc3QxLCBbUkdCMzJfRFNUX1NJWkVdKTsKKworICAgICAgICBkZWNsYXJlX2Z1bmModm9p ZCwgY29uc3QgdWludDhfdCAqc3JjLCB1aW50OF90ICpkc3QsIGludCBzcmNfc2l6ZSk7CisKKyAg ICAgICAgcmFuZG9taXplX2J1ZmZlcnMoc3JjMCwgUkdCMzJfQkVOQ0hfV0lEVEgpOworICAgICAg ICBtZW1jcHkoc3JjMSwgc3JjMCwgUkdCMzJfQkVOQ0hfV0lEVEgpOworCisgICAgICAgIGlmIChj aGVja19mdW5jKHJnYjMydG9iZ3IyNCwgInJnYjMydG9iZ3IyNCIpKSB7CisgICAgICAgICAgICBm b3IgKGludCBpID0gMDsgaSA8IEZGX0FSUkFZX0VMRU1TKHJnYjMyX3dpZHRocyk7IGkrKykgewor ICAgICAgICAgICAgICAgIGludCBvdXRfc2l6ZSA9IHJnYjMyX3dpZHRoc1tpXSAqIDMgLyA0Owor ICAgICAgICAgICAgICAgIG1lbXNldChkc3QwLCAweEFBLCBSR0IzMl9EU1RfU0laRSk7CisgICAg ICAgICAgICAgICAgbWVtc2V0KGRzdDEsIDB4QUEsIFJHQjMyX0RTVF9TSVpFKTsKKyAgICAgICAg ICAgICAgICBjYWxsX3JlZihzcmMwLCBkc3QwLCByZ2IzMl93aWR0aHNbaV0pOworICAgICAgICAg ICAgICAgIGNhbGxfbmV3KHNyYzEsIGRzdDEsIHJnYjMyX3dpZHRoc1tpXSk7CisgICAgICAgICAg ICAgICAgaWYgKG1lbWNtcChkc3QwLCBkc3QxLCBvdXRfc2l6ZSkgfHwKKyAgICAgICAgICAgICAg ICAgICAgZHN0MFtvdXRfc2l6ZV0gIT0gMHhBQSB8fAorICAgICAgICAgICAgICAgICAgICBkc3Qx W291dF9zaXplXSAhPSAweEFBKQorICAgICAgICAgICAgICAgICAgICBmYWlsKCk7CisgICAgICAg ICAgICB9CisgICAgICAgICAgICBiZW5jaF9uZXcoc3JjMCwgZHN0MCwgUkdCMzJfQkVOQ0hfV0lE VEgpOworICAgICAgICB9CisjdW5kZWYgUkdCMzJfRFNUX1NJWkUKKyN1bmRlZiBSR0IzMl9CRU5D SF9XSURUSAorICAgIH0KKyAgICByZXBvcnQoInJnYjMydG9iZ3IyNCIpOworCisgICAgeworICAg ICAgICAvKiByZ2IyNHRvYmdyMzI6IDMtYnl0ZSBwaXhlbHMg4oaSIDQtYnl0ZSBwaXhlbHMuCisg ICAgICAgICAqIFRlc3Qgd2lkdGhzIG11c3QgYmUgbXVsdGlwbGVzIG9mIDMgKG9uZSBwaXhlbCku CisgICAgICAgICAqIFNpemVzIGNob3NlbiB0byBleGVyY2lzZSBlYWNoIGNvZGVwYXRoIHRpZXI6 CisgICAgICAgICAqICAgMyAgICAgICA9IHNjYWxhciBvbmx5ICgxIHBpeGVsKQorICAgICAgICAg KiAgIDEyICAgICAgPSBzY2FsYXIgb25seSAoNCBwaXhlbHMsIGxvb3AgaXRlcmF0aW9uKQorICAg ICAgICAgKiAgIDI0ICAgICAgPSBtZWRpdW0gb25seQorICAgICAgICAgKiAgIDM2ICAgICAgPSBt ZWRpdW0gKyBzY2FsYXIKKyAgICAgICAgICogICA0OCAgICAgID0gZmFzdCBvbmx5IChleGFjdCkK KyAgICAgICAgICogICA1MSAgICAgID0gZmFzdCArIHNjYWxhciAoc2tpcCBtZWRpdW0pCisgICAg ICAgICAqICAgMTI2ICAgICA9IGZhc3QgKyBtZWRpdW0gKyBzY2FsYXIgKGFsbCB0aWVycykKKyAg ICAgICAgICogICAxOTIwKjMgID0gZmFzdCBvbmx5IChiZW5jaG1hcmsgd2lkdGgpCisgICAgICAg ICAqLworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHJnYjI0dG8zMl93aWR0aHNbXSA9IHszLCAx MiwgMjQsIDM2LCA0OCwgNTEsIDEyNiwgMTkyMCAqIDN9OworI2RlZmluZSBSR0IyNFRPMzJfQkVO Q0hfV0lEVEggKDE5MjAgKiAzKQorI2RlZmluZSBSR0IyNFRPMzJfRFNUX1NJWkUgKFJHQjI0VE8z Ml9CRU5DSF9XSURUSCAqIDQgLyAzICsgOCkKKyAgICAgICAgTE9DQUxfQUxJR05FRF8zMih1aW50 OF90LCBzcmMwLCBbUkdCMjRUTzMyX0JFTkNIX1dJRFRIXSk7CisgICAgICAgIExPQ0FMX0FMSUdO RURfMzIodWludDhfdCwgc3JjMSwgW1JHQjI0VE8zMl9CRU5DSF9XSURUSF0pOworICAgICAgICBM T0NBTF9BTElHTkVEXzMyKHVpbnQ4X3QsIGRzdDAsIFtSR0IyNFRPMzJfRFNUX1NJWkVdKTsKKyAg ICAgICAgTE9DQUxfQUxJR05FRF8zMih1aW50OF90LCBkc3QxLCBbUkdCMjRUTzMyX0RTVF9TSVpF XSk7CisKKyAgICAgICAgZGVjbGFyZV9mdW5jKHZvaWQsIGNvbnN0IHVpbnQ4X3QgKnNyYywgdWlu dDhfdCAqZHN0LCBpbnQgc3JjX3NpemUpOworCisgICAgICAgIHJhbmRvbWl6ZV9idWZmZXJzKHNy YzAsIFJHQjI0VE8zMl9CRU5DSF9XSURUSCk7CisgICAgICAgIG1lbWNweShzcmMxLCBzcmMwLCBS R0IyNFRPMzJfQkVOQ0hfV0lEVEgpOworCisgICAgICAgIGlmIChjaGVja19mdW5jKHJnYjI0dG9i Z3IzMiwgInJnYjI0dG9iZ3IzMiIpKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IEZGX0FSUkFZX0VMRU1TKHJnYjI0dG8zMl93aWR0aHMpOyBpKyspIHsKKyAgICAgICAgICAgICAg ICBpbnQgb3V0X3NpemUgPSByZ2IyNHRvMzJfd2lkdGhzW2ldICogNCAvIDM7CisgICAgICAgICAg ICAgICAgbWVtc2V0KGRzdDAsIDB4QUEsIFJHQjI0VE8zMl9EU1RfU0laRSk7CisgICAgICAgICAg ICAgICAgbWVtc2V0KGRzdDEsIDB4QUEsIFJHQjI0VE8zMl9EU1RfU0laRSk7CisgICAgICAgICAg ICAgICAgY2FsbF9yZWYoc3JjMCwgZHN0MCwgcmdiMjR0bzMyX3dpZHRoc1tpXSk7CisgICAgICAg ICAgICAgICAgY2FsbF9uZXcoc3JjMSwgZHN0MSwgcmdiMjR0bzMyX3dpZHRoc1tpXSk7CisgICAg ICAgICAgICAgICAgaWYgKG1lbWNtcChkc3QwLCBkc3QxLCBvdXRfc2l6ZSkgfHwKKyAgICAgICAg ICAgICAgICAgICAgZHN0MFtvdXRfc2l6ZV0gIT0gMHhBQSB8fAorICAgICAgICAgICAgICAgICAg ICBkc3QxW291dF9zaXplXSAhPSAweEFBKQorICAgICAgICAgICAgICAgICAgICBmYWlsKCk7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgICBiZW5jaF9uZXcoc3JjMCwgZHN0MCwgUkdCMjRUTzMy X0JFTkNIX1dJRFRIKTsKKyAgICAgICAgfQorI3VuZGVmIFJHQjI0VE8zMl9EU1RfU0laRQorI3Vu ZGVmIFJHQjI0VE8zMl9CRU5DSF9XSURUSAorICAgIH0KKyAgICByZXBvcnQoInJnYjI0dG9iZ3Iz MiIpOworCiAgICAgY2hlY2tfdXl2eV90b180MjJwKCk7CiAgICAgcmVwb3J0KCJ1eXZ5dG95dXY0 MjIiKTsKIAotLSAKMi41Mi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0IC0tIGZmbXBlZy1kZXZlbEBmZm1w ZWcub3JnClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gZmZtcGVnLWRldmVsLWxlYXZl QGZmbXBlZy5vcmcK