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 718B44CED0 for ; Sat, 1 Nov 2025 21:54:13 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'sHLq9OODLBfKAQt+AZ2MMsS47rlNUBMigUrHmdgkkVw=', expected b'gCDW0+jUKYaqM3hfLaPIovh8XtdJMyk5wKauG/8yIGo=')) 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=1762034005; 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=sHLq9OODLBfKAQt+AZ2MMsS47rlNUBMigUrHmdgkkVw=; b=3lNYQ0hRLWi/LUSNM+7AfIh/U+2YwPEHBuoyoOP+JBtZjaeXVVunRL/VkYQPMvve4OJL6 ABX1mhANXvl9CCcB+mhDpvKQ8qNiJZTCC7SNl3qPhnSZStvIxMEEVAcBgL5d91KosJH3QOZ hMB0/l3EoHoMcZZoGJqRkVEQOHfuGokKtO6TS/Z0IwK0Xv91aIwAVVMDbn2OC7VI4rttsw/ 8Psm0NlcYSIKXG647UNNi3zqiItJSwwnEYeMAdjYqr5gFXJGa9D2TZoGWJHRO9rjPlstKQ9 iKbNkg+pzyoZI5ED7VRvf0Fnh2IVW9Qew37ilN3QpvyEGwuOyRhYrqZN3T4Q== Received: from [172.19.0.2] (unknown [172.19.0.2]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id D4CD768F8E8; Sat, 1 Nov 2025 23:53:25 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1762033971; b=O/FsG10Jvc+HBKXGOBno89s3gqPLn47gMyN2fcdVRDTNgwbnkzG/o5WhnhXyb6KlKt7aS HcU+wtJy48+deBkovT83p4P6QbYY7q6mnIBNYpWLhCWYuX8d9oV3r3UOx83DnmDhcQ5bDB7 f3yxJSWcfvHnPIixoOwfN9LDyQbfQC7ag01Umochavd7+V1WOYVDhWN33MJ0cb0WUItqsTN 8w+pQPkjtpDGQXhDBw6DgXd7Gv/95bS1Fqg9OnKfiD3o1gSmE0Ie/Uy8GlAzc/ARfUjlB8A jpDGoXVQkFPChbVvZJzWjBr036+yKKf7JWnWRKvyHm05n81a9h1JnaIzDRFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1762033971; 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=sHLq9OODLBfKAQt+AZ2MMsS47rlNUBMigUrHmdgkkVw=; b=W4NSlFkzdnfxaOLKM9ae0UAX2YdoaRkDSZjFfzfwt8FzRVQdD6eiKEcGQUeChszpXYHje goxB9DBuYNzFYYaJ2gykg1W3KFDD9MDi3QRvgGUNjuLojYq42KyLEHfRKfoyy/MXq1eSQIE WXc3ym/lLYQYE5KvRtEJQkqunrieqe/PEUsgBAlSPzsR0qyKsNo8d0DIQxGQMcKOO2JR+HP AMJLMefOgU3SDUeclY0+qXQuSIwxpPh0mWOH+slHgBjbKcJmDqAfjzVXxPxF9ib6CLNjF6q rh+w43v2ZSCsxlBSG1ntJZ5MTMFfphVrksIUfxdCVPQblDyEvocO2mCKGJLQ== 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=1762033961; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=gCDW0+jUKYaqM3hfLaPIovh8XtdJMyk5wKauG/8yIGo=; b=XjZZG8WfFCxYBrFSS5P8Y8dlSWxatEnpgiCoyB0mgLjXhSNZJfW2kN5IFBtU+OcIK2oLq LTZh1JyzAc8xUz4F01LaX1QvqsdbZoHwn2V7Kx/rJcp7ocrjezj3fgj5F3J0uuXbM5bAJlT SVQdYDn+6znSaejR6X9dy+Du+02hNGQqfafzF4eZzm7vadZY/Qq819QQEdPHsdBXegMtim3 Myvl1YGZRc0HVRG2WY2TyiAxdml5W5S5dppmLCeZ4cZZEpHP3Y4ty1vpwPMWXkuTc95j0OY LfdbtzLm18ileeObdU847nkACHpu0cUNZe3fzudMTs+qb2z00z8rnme6GVzQ== Received: from 02c22a36bd31 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 87E4E68F7CB for ; Sat, 1 Nov 2025 23:52:40 +0200 (EET) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Sat, 01 Nov 2025 21:52:40 -0000 Message-ID: <176203396175.25.15536116445189443205@2cb04c0e5124> Message-ID-Hash: 54WZOVQ2FRFDHXJTRGPDPFTBB77ZRWVL X-Message-ID-Hash: 54WZOVQ2FRFDHXJTRGPDPFTBB77ZRWVL X-MailFrom: code@ffmpeg.org 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; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] avcodec/aacenc: add bitrate threshold for PNS and improve attack detection (PR #20815) 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: Agent45 via ffmpeg-devel Cc: Agent45 Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: UFIgIzIwODE1IG9wZW5lZCBieSBBZ2VudDQ1ClVSTDogaHR0cHM6Ly9jb2RlLmZmbXBlZy5vcmcv RkZtcGVnL0ZGbXBlZy9wdWxscy8yMDgxNQpQYXRjaCBVUkw6IGh0dHBzOi8vY29kZS5mZm1wZWcu b3JnL0ZGbXBlZy9GRm1wZWcvcHVsbHMvMjA4MTUucGF0Y2gKCi0gRml4ZXMgaW5kZXhpbmcgZXJy b3JzIGluIGF0dGFjayBkZXRlY3Rpb24gbG9naWMgYW5kIGludHJvZHVjZXMgYSBzdGF0ZSBmbGFn IChuZXh0X2F0dGFjazBfemVybykgdG8gc3RhYmlsaXplIGF0dGFja1swXSBwcmVkaWN0aW9uIGFj cm9zcyBmcmFtZXMuIFRoaXMgcmVkdWNlcyB2ZXJ0aWNhbCBsaW5lIGFydGlmYWN0cyBpbiBwZXJp b2RpYyBzaWduYWxzIHN1Y2ggYXMgdHJ1bXBldC4NCi0gQ2hhbmdlcyBQU1lfTEFNRV9OVU1fU1VC QkxPQ0tTIGZyb20gMyB0byAyIHRvIGVuc3VyZSBmdWxsIGNvdmVyYWdlIG9mIGFsbCAxMDI0IE1E Q1Qgc2FtcGxlcywgd2l0aCBlYWNoIHN1YmJsb2NrIGNvbnRhaW5pbmcgZXhhY3RseSA2NCBzYW1w bGVz4oCUbWF0Y2hpbmcgTEFNReKAmXMgZW1waXJpY2FsIGRlc2lnbi4gQW5kIGFkanVzdCBhdHRh Y2sgdGhyZXNob2xkIHByZXNldHMuIFRoaXMgaW1wcm92ZXMgdGhlIGhhbmRsaW5nIG9mIHBlcmlv ZGljIHNpZ25hbHMsIGVzcGVjaWFsbHkgdW5kZXIgbG93IGJpdHJhdGUgY29uZGl0aW9ucy4NCi0g RGlzYWJsZXMgUE5TIHdoZW4gdGhlIHBlci1jaGFubmVsIGJpdHJhdGUgZXhjZWVkcyA2NCBrYnBz LiBUaGlzIGF2b2lkcyB1bm5lY2Vzc2FyeSBub2lzZSBzdWJzdGl0dXRpb24gaW4gaGlnaC1iaXRy YXRlIHNjZW5hcmlvcyB3aGVyZSBpdCBtYXkgZGVncmFkZSBxdWFsaXR5Lg0KVGhpcyByZXNvbHZl cyBpc3N1ZSAjMjAyMDAuCgoKRnJvbSA0NThhOTQyNDgxMTUxZWRlMjc0NzhlNmFjNmQ5ZDI4NjZk NDM4Yjg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZ2VudDQ1IDxhZ2VudDQ1QG5v cmVwbHkuY29kZS5mZm1wZWcub3JnPgpEYXRlOiBTYXQsIDEgTm92IDIwMjUgMTk6NDk6MDUgKzAw MDAKU3ViamVjdDogW1BBVENIIDEvMl0gYXZjb2RlYy9hYWNlbmM6IGFkZCBiaXRyYXRlIHRocmVz aG9sZCBmb3IgUE5TCgotLS0KIGxpYmF2Y29kZWMvYWFjY29kZXIuYyB8IDkgKysrKysrKy0tCiAx IGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvYWFjY29kZXIuYyBiL2xpYmF2Y29kZWMvYWFjY29kZXIuYwppbmRleCA3 ZjFjNGNkY2MxLi5kZGViZGZkNTNkIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FhY2NvZGVyLmMK KysrIGIvbGliYXZjb2RlYy9hYWNjb2Rlci5jCkBAIC01OCw2ICs1OCw5IEBACiAgKiByZXBsYWNl IGxvdyBlbmVyZ3kgbm9uIHplcm8gYmFuZHMgKi8KICNkZWZpbmUgTk9JU0VfTEFNQkRBX1JFUExB Q0UgMS45NDhmCiAKKy8qIEJpdHJhdGUgdGhyZXNob2xkIChpbiBiaXRzL3NlYy9jaGFubmVsKSBh Ym92ZSB3aGljaCBQTlMgaXMgZGlzYWJsZWQuICovCisjZGVmaW5lIFBOU19CSVRSQVRFX0xJTUlU IDY0MDAwLjBmCisKICNpbmNsdWRlICJsaWJhdmNvZGVjL2FhY2NvZGVyX3RyZWxsaXMuaCIKIAog dHlwZWRlZiBmbG9hdCAoKnF1YW50aXplX2FuZF9lbmNvZGVfYmFuZF9mdW5jKShzdHJ1Y3QgQUFD RW5jQ29udGV4dCAqcywgUHV0Qml0Q29udGV4dCAqcGIsCkBAIC01MTMsNiArNTE2LDcgQEAgc3Rh dGljIHZvaWQgc2VhcmNoX2Zvcl9wbnMoQUFDRW5jQ29udGV4dCAqcywgQVZDb2RlY0NvbnRleHQg KmF2Y3R4LCBTaW5nbGVDaGFubmUKICAgICAgICAgPyAocmVmYml0cyAqIHJhdGVfYmFuZHdpZHRo X211bHRpcGxpZXIgKiBhdmN0eC0+c2FtcGxlX3JhdGUgLyAxMDI0KQogICAgICAgICA6IChhdmN0 eC0+Yml0X3JhdGUgLyBhdmN0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzKTsKIAorCWludCBwbnNf YXRfbG93X2JpdHJhdGUgPSBmcmFtZV9iaXRfcmF0ZSA8IFBOU19CSVRSQVRFX0xJTUlUOwogICAg IGZyYW1lX2JpdF9yYXRlICo9IDEuMTVmOwogCiAgICAgaWYgKGF2Y3R4LT5jdXRvZmYgPiAwKSB7 CkBAIC01MzYsNyArNTQwLDcgQEAgc3RhdGljIHZvaWQgc2VhcmNoX2Zvcl9wbnMoQUFDRW5jQ29u dGV4dCAqcywgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBTaW5nbGVDaGFubmUKICAgICAgICAgICAg IGNvbnN0IGludCBzdGFydCA9IHdzdGFydCtzY2UtPmljcy5zd2Jfb2Zmc2V0W2ddOwogICAgICAg ICAgICAgY29uc3QgZmxvYXQgZnJlcSA9IChzdGFydC13c3RhcnQpKmZyZXFfbXVsdDsKICAgICAg ICAgICAgIGNvbnN0IGZsb2F0IGZyZXFfYm9vc3QgPSBGRk1BWCgwLjg4ZipmcmVxL05PSVNFX0xP V19MSU1JVCwgMS4wZik7Ci0gICAgICAgICAgICBpZiAoZnJlcSA8IE5PSVNFX0xPV19MSU1JVCB8 fCAoc3RhcnQtd3N0YXJ0KSA+PSBjdXRvZmYpIHsKKyAgICAgICAgICAgIGlmICghcG5zX2F0X2xv d19iaXRyYXRlIHx8IGZyZXEgPCBOT0lTRV9MT1dfTElNSVQgfHwgKHN0YXJ0LXdzdGFydCkgPj0g Y3V0b2ZmKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzY2UtPnplcm9lc1t3KjE2K2ddKQogICAg ICAgICAgICAgICAgICAgICBwcmV2X3NmID0gc2NlLT5zZl9pZHhbdyoxNitnXTsKICAgICAgICAg ICAgICAgICBjb250aW51ZTsKQEAgLTY0OSw2ICs2NTMsNyBAQCBzdGF0aWMgdm9pZCBtYXJrX3Bu cyhBQUNFbmNDb250ZXh0ICpzLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsIFNpbmdsZUNoYW5uZWxF bGVtZQogICAgICAgICA/IChyZWZiaXRzICogcmF0ZV9iYW5kd2lkdGhfbXVsdGlwbGllciAqIGF2 Y3R4LT5zYW1wbGVfcmF0ZSAvIDEwMjQpCiAgICAgICAgIDogKGF2Y3R4LT5iaXRfcmF0ZSAvIGF2 Y3R4LT5jaF9sYXlvdXQubmJfY2hhbm5lbHMpOwogCisJaW50IHBuc19hdF9sb3dfYml0cmF0ZSA9 IGZyYW1lX2JpdF9yYXRlIDwgUE5TX0JJVFJBVEVfTElNSVQ7CiAgICAgZnJhbWVfYml0X3JhdGUg Kj0gMS4xNWY7CiAKICAgICBpZiAoYXZjdHgtPmN1dG9mZiA+IDApIHsKQEAgLTY2Nyw3ICs2NzIs NyBAQCBzdGF0aWMgdm9pZCBtYXJrX3BucyhBQUNFbmNDb250ZXh0ICpzLCBBVkNvZGVjQ29udGV4 dCAqYXZjdHgsIFNpbmdsZUNoYW5uZWxFbGVtZQogICAgICAgICAgICAgY29uc3QgaW50IHN0YXJ0 ID0gc2NlLT5pY3Muc3diX29mZnNldFtnXTsKICAgICAgICAgICAgIGNvbnN0IGZsb2F0IGZyZXEg PSBzdGFydCpmcmVxX211bHQ7CiAgICAgICAgICAgICBjb25zdCBmbG9hdCBmcmVxX2Jvb3N0ID0g RkZNQVgoMC44OGYqZnJlcS9OT0lTRV9MT1dfTElNSVQsIDEuMGYpOwotICAgICAgICAgICAgaWYg KGZyZXEgPCBOT0lTRV9MT1dfTElNSVQgfHwgc3RhcnQgPj0gY3V0b2ZmKSB7CisgICAgICAgICAg ICBpZiAoIXBuc19hdF9sb3dfYml0cmF0ZSB8fCBmcmVxIDwgTk9JU0VfTE9XX0xJTUlUIHx8IHN0 YXJ0ID49IGN1dG9mZikgewogICAgICAgICAgICAgICAgIHNjZS0+Y2FuX3Buc1t3KjE2K2ddID0g MDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLS0gCjIuNDkuMQoK CkZyb20gODFhOTg1ZDZhOTJlYjQxMWJhNDk1ZmIwNWEzYTk2MmQxODE2NDllYSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogQWdlbnQ0NSA8YWdlbnQ0NUBub3JlcGx5LmNvZGUuZmZtcGVn Lm9yZz4KRGF0ZTogU2F0LCAxIE5vdiAyMDI1IDIwOjQxOjI0ICswMDAwClN1YmplY3Q6IFtQQVRD SCAyLzJdIGF2Y29kZWMvYWFjcHN5OiBmaXggYXR0YWNrIGRldGVjdGlvbiBsb2dpYyBhbmQgc3Vi YmxvY2sKIGluZGV4aW5nCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpGaXggc2V2 ZXJhbCBpbmRleGluZyBlcnJvcnMgaW4gYXR0YWNrIGRldGVjdGlvbiBsb2dpYyBhbmQgcmVmaW5l IHRyYW5zaWVudCBoYW5kbGluZyBpbiB0aGUgQUFDIHBzeWNob2Fjb3VzdGljIG1vZGVsLgoKLSBD aGFuZ2UgUFNZX0xBTUVfTlVNX1NVQkJMT0NLUyBmcm9tIDMgdG8gMiB0byBlbnN1cmUgZnVsbCBj b3ZlcmFnZSBvZiBhbGwgMTAyNCBNRENUIHNhbXBsZXMsIHdpdGggZWFjaCBzdWJibG9jayBjb250 YWluaW5nIGV4YWN0bHkgMTAyNCAvICg4ICogMikgPSA2NCBzYW1wbGVz4oCUbWF0Y2hpbmcgTEFN ReKAmXMgZW1waXJpY2FsIGRlc2lnbi4KLSBJbnRyb2R1Y2UgbmV4dF9hdHRhY2swX3plcm8gc3Rh dGUgZmxhZyB0byBzdGFiaWxpemUgYXR0YWNrWzBdIHByZWRpY3Rpb24gYWNyb3NzIGZyYW1lcy4K LSBBZGp1c3QgYXR0YWNrIHRocmVzaG9sZCBwcmVzZXRzLgoKVGhlc2UgY2hhbmdlcyBpbXByb3Zl IHRoZSBoYW5kbGluZyBvZiBwZXJpb2RpYyBzaWduYWxzIHN1Y2ggYXMgdHJ1bXBldCwgZXNwZWNp YWxseSB1bmRlciBsb3cgYml0cmF0ZSBjb25kaXRpb25zLgotLS0KIGxpYmF2Y29kZWMvYWFjcHN5 LmMgfCA2NCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL2FhY3BzeS5jIGIvbGliYXZjb2RlYy9hYWNwc3kuYwppbmRleCBlZDAz Y2I2OGFjLi5mOTFiYTQ1YTUyIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FhY3BzeS5jCisrKyBi L2xpYmF2Y29kZWMvYWFjcHN5LmMKQEAgLTk3LDcgKzk3LDcgQEAgZW51bSB7CiAjZGVmaW5lIEFB Q19CTE9DS19TSVpFX0xPTkcgMTAyNCAgICAvLy88IGxvbmcgYmxvY2sgc2l6ZQogI2RlZmluZSBB QUNfQkxPQ0tfU0laRV9TSE9SVCAxMjggICAgLy8vPCBzaG9ydCBibG9jayBzaXplCiAjZGVmaW5l IEFBQ19OVU1fQkxPQ0tTX1NIT1JUIDggICAgICAvLy88IG51bWJlciBvZiBibG9ja3MgaW4gYSBz aG9ydCBzZXF1ZW5jZQotI2RlZmluZSBQU1lfTEFNRV9OVU1fU1VCQkxPQ0tTIDMgICAgLy8vPCBO dW1iZXIgb2Ygc3ViLWJsb2NrcyBpbiBlYWNoIHNob3J0IGJsb2NrCisjZGVmaW5lIFBTWV9MQU1F X05VTV9TVUJCTE9DS1MgMiAgICAvLy88IE51bWJlciBvZiBzdWItYmxvY2tzIGluIGVhY2ggc2hv cnQgYmxvY2sKIAogLyoqCiAgKiBAfQpAQCAtMTMzLDYgKzEzMyw3IEBAIHR5cGVkZWYgc3RydWN0 IEFhY1BzeUNoYW5uZWx7CiAgICAgZmxvYXQgYXR0YWNrX3RocmVzaG9sZDsgICAgICAgICAgICAg IC8vLzwgYXR0YWNrIHRocmVzaG9sZCBmb3IgdGhpcyBjaGFubmVsCiAgICAgZmxvYXQgcHJldl9l bmVyZ3lfc3Vic2hvcnRbQUFDX05VTV9CTE9DS1NfU0hPUlQgKiBQU1lfTEFNRV9OVU1fU1VCQkxP Q0tTXTsKICAgICBpbnQgICBwcmV2X2F0dGFjazsgICAgICAgICAgICAgICAgICAgLy8vPCBhdHRh Y2sgdmFsdWUgZm9yIHRoZSBsYXN0IHNob3J0IGJsb2NrIGluIHRoZSBwcmV2aW91cyBzZXF1ZW5j ZQorICAgIGludCAgIG5leHRfYXR0YWNrMF96ZXJvOyAgICAgICAgICAvLy88IHdoZXRoZXIgYXR0 YWNrWzBdIG9mIHRoZSBuZXh0IGZyYW1lIGlzIHplcm8KIH1BYWNQc3lDaGFubmVsOwogCiAvKioK QEAgLTE4MSwxOSArMTgyLDE5IEBAIHR5cGVkZWYgc3RydWN0IFBzeUxhbWVQcmVzZXQgewogc3Rh dGljIGNvbnN0IFBzeUxhbWVQcmVzZXQgcHN5X2Ficl9tYXBbXSA9IHsKIC8qIFRPRE86IFR1bmlu Zy4gVGhlc2Ugd2VyZSB0YWtlbiBmcm9tIExBTUUuICovCiAvKiBrYnBzL2NoIHN0X2xybSAgICov Ci0gICAgeyAgOCwgIDYuNjB9LAotICAgIHsgMTYsICA2LjYwfSwKLSAgICB7IDI0LCAgNi42MH0s Ci0gICAgeyAzMiwgIDYuNjB9LAotICAgIHsgNDAsICA2LjYwfSwKLSAgICB7IDQ4LCAgNi42MH0s Ci0gICAgeyA1NiwgIDYuNjB9LAotICAgIHsgNjQsICA2LjQwfSwKLSAgICB7IDgwLCAgNi4wMH0s Ci0gICAgeyA5NiwgIDUuNjB9LAotICAgIHsxMTIsICA1LjIwfSwKLSAgICB7MTI4LCAgNS4yMH0s Ci0gICAgezE2MCwgIDUuMjB9CisgICAgeyAgOCwgIDcuNjB9LAorICAgIHsgMTYsICA3LjYwfSwK KyAgICB7IDI0LCAgNy42MH0sCisgICAgeyAzMiwgIDcuNjB9LAorICAgIHsgNDAsICA3LjYwfSwK KyAgICB7IDQ4LCAgNy42MH0sCisgICAgeyA1NiwgIDcuNjB9LAorICAgIHsgNjQsICA3LjQwfSwK KyAgICB7IDgwLCAgNy4wMH0sCisgICAgeyA5NiwgIDYuNjB9LAorICAgIHsxMTIsICA2LjIwfSwK KyAgICB7MTI4LCAgNi4yMH0sCisgICAgezE2MCwgIDYuMjB9CiB9OwogCiAvKioKQEAgLTkwMCw4 ICs5MDEsOCBAQCBzdGF0aWMgRkZQc3lXaW5kb3dJbmZvIHBzeV9sYW1lX3dpbmRvdyhGRlBzeUNv bnRleHQgKmN0eCwgY29uc3QgZmxvYXQgKmF1ZGlvLAogICAgICAgICAvKiBDYWxjdWxhdGUgdGhl IGVuZXJnaWVzIG9mIGVhY2ggc3ViLXNob3J0YmxvY2sgKi8KICAgICAgICAgZm9yIChpID0gMDsg aSA8IFBTWV9MQU1FX05VTV9TVUJCTE9DS1M7IGkrKykgewogICAgICAgICAgICAgZW5lcmd5X3N1 YnNob3J0W2ldID0gcGNoLT5wcmV2X2VuZXJneV9zdWJzaG9ydFtpICsgKChBQUNfTlVNX0JMT0NL U19TSE9SVCAtIDEpICogUFNZX0xBTUVfTlVNX1NVQkJMT0NLUyldOwotICAgICAgICAgICAgYXNz ZXJ0KHBjaC0+cHJldl9lbmVyZ3lfc3Vic2hvcnRbaSArICgoQUFDX05VTV9CTE9DS1NfU0hPUlQg LSAyKSAqIFBTWV9MQU1FX05VTV9TVUJCTE9DS1MgKyAxKV0gPiAwKTsKLSAgICAgICAgICAgIGF0 dGFja19pbnRlbnNpdHlbaV0gPSBlbmVyZ3lfc3Vic2hvcnRbaV0gLyBwY2gtPnByZXZfZW5lcmd5 X3N1YnNob3J0W2kgKyAoKEFBQ19OVU1fQkxPQ0tTX1NIT1JUIC0gMikgKiBQU1lfTEFNRV9OVU1f U1VCQkxPQ0tTICsgMSldOworICAgICAgICAgICAgYXNzZXJ0KHBjaC0+cHJldl9lbmVyZ3lfc3Vi c2hvcnRbaSArICgoQUFDX05VTV9CTE9DS1NfU0hPUlQgLSAxKSAqIFBTWV9MQU1FX05VTV9TVUJC TE9DS1MgLSAyKV0gPiAwKTsKKyAgICAgICAgICAgIGF0dGFja19pbnRlbnNpdHlbaV0gPSBlbmVy Z3lfc3Vic2hvcnRbaV0gLyBwY2gtPnByZXZfZW5lcmd5X3N1YnNob3J0W2kgKyAoKEFBQ19OVU1f QkxPQ0tTX1NIT1JUIC0gMSkgKiBQU1lfTEFNRV9OVU1fU1VCQkxPQ0tTIC0gMildOwogICAgICAg ICAgICAgZW5lcmd5X3Nob3J0WzBdICs9IGVuZXJneV9zdWJzaG9ydFtpXTsKICAgICAgICAgfQog CkBAIC05MTIsMTcgKzkxMywxMiBAQCBzdGF0aWMgRkZQc3lXaW5kb3dJbmZvIHBzeV9sYW1lX3dp bmRvdyhGRlBzeUNvbnRleHQgKmN0eCwgY29uc3QgZmxvYXQgKmF1ZGlvLAogICAgICAgICAgICAg ICAgIHAgPSBGRk1BWChwLCBmYWJzZigqcGYpKTsKICAgICAgICAgICAgIHBjaC0+cHJldl9lbmVy Z3lfc3Vic2hvcnRbaV0gPSBlbmVyZ3lfc3Vic2hvcnRbaSArIFBTWV9MQU1FX05VTV9TVUJCTE9D S1NdID0gcDsKICAgICAgICAgICAgIGVuZXJneV9zaG9ydFsxICsgaSAvIFBTWV9MQU1FX05VTV9T VUJCTE9DS1NdICs9IHA7Ci0gICAgICAgICAgICAvKiBOT1RFOiBUaGUgaW5kZXhlcyBiZWxvdyBh cmUgW2kgKyAzIC0gMl0gaW4gdGhlIExBTUUgc291cmNlLgotICAgICAgICAgICAgICogICAgICAg T2J2aW91c2x5IHRoZSAzIGFuZCAyIGhhdmUgc29tZSBzaWduaWZpY2FuY2UsIG9yIHRoaXMgd291 bGQgYmUganVzdCBbaSArIDFdCi0gICAgICAgICAgICAgKiAgICAgICAod2hpY2ggaXMgd2hhdCB3 ZSB1c2UgaGVyZSkuIFdoYXQgdGhlIDMgc3RhbmRzIGZvciBpcyBhbWJpZ3VvdXMsIGFzIGl0IGlz IGJvdGgKLSAgICAgICAgICAgICAqICAgICAgIG51bWJlciBvZiBzaG9ydCBibG9ja3MsIGFuZCB0 aGUgbnVtYmVyIG9mIHN1Yi1zaG9ydCBibG9ja3MuCi0gICAgICAgICAgICAgKiAgICAgICBJdCBz ZWVtcyB0aGF0IExBTUUgaXMgY29tcGFyaW5nIGVhY2ggc3ViLWJsb2NrIHRvIHN1Yi1ibG9jayAr IDEgaW4gdGhlCi0gICAgICAgICAgICAgKiAgICAgICBwcmV2aW91cyBibG9jay4KLSAgICAgICAg ICAgICAqLwotICAgICAgICAgICAgaWYgKHAgPiBlbmVyZ3lfc3Vic2hvcnRbaSArIDFdKQotICAg ICAgICAgICAgICAgIHAgPSBwIC8gZW5lcmd5X3N1YnNob3J0W2kgKyAxXTsKLSAgICAgICAgICAg IGVsc2UgaWYgKGVuZXJneV9zdWJzaG9ydFtpICsgMV0gPiBwICogMTAuMGYpCi0gICAgICAgICAg ICAgICAgcCA9IGVuZXJneV9zdWJzaG9ydFtpICsgMV0gLyAocCAqIDEwLjBmKTsKKyAgICAgICAg ICAgIAorICAgICAgICAgICAgLyogTk9URTogVGhlIGluZGV4ZXMgYmVsb3cgYXJlIFtpICsgMyAt IDJdIGluIHRoZSBMQU1FIHNvdXJjZS4gQ29tcGFyZSBlYWNoIHN1Yi1ibG9jayB0byBzdWItYmxv Y2sgLSAyICovCisgICAgICAgICAgICBpZiAocCA+IGVuZXJneV9zdWJzaG9ydFtpICsgUFNZX0xB TUVfTlVNX1NVQkJMT0NLUyAtIDJdKQorICAgICAgICAgICAgICAgIHAgPSBwIC8gZW5lcmd5X3N1 YnNob3J0W2kgKyBQU1lfTEFNRV9OVU1fU1VCQkxPQ0tTIC0gMl07CisgICAgICAgICAgICBlbHNl IGlmIChlbmVyZ3lfc3Vic2hvcnRbaSArIFBTWV9MQU1FX05VTV9TVUJCTE9DS1MgLSAyXSA+IHAg KiAxMC4wZikKKyAgICAgICAgICAgICAgICBwID0gZW5lcmd5X3N1YnNob3J0W2kgKyBQU1lfTEFN RV9OVU1fU1VCQkxPQ0tTIC0gMl0gLyAocCAqIDEwLjBmKTsKICAgICAgICAgICAgIGVsc2UKICAg ICAgICAgICAgICAgICBwID0gMC4wOwogICAgICAgICAgICAgYXR0YWNrX2ludGVuc2l0eVtpICsg UFNZX0xBTUVfTlVNX1NVQkJMT0NLU10gPSBwOwpAQCAtOTQzLDcgKzkzOSw3IEBAIHN0YXRpYyBG RlBzeVdpbmRvd0luZm8gcHN5X2xhbWVfd2luZG93KEZGUHN5Q29udGV4dCAqY3R4LCBjb25zdCBm bG9hdCAqYXVkaW8sCiAgICAgICAgICAgICBjb25zdCBmbG9hdCB2ID0gZW5lcmd5X3Nob3J0W2ld OwogICAgICAgICAgICAgY29uc3QgZmxvYXQgbSA9IEZGTUFYKHUsIHYpOwogICAgICAgICAgICAg aWYgKG0gPCA0MDAwMCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogKDIpICovCi0gICAg ICAgICAgICAgICAgaWYgKHUgPCAxLjdmICogdiAmJiB2IDwgMS43ZiAqIHUpIHsgICAvKiAoMSkg Ki8KKyAgICAgICAgICAgICAgICBpZiAodSA8IDIuM2YgKiB2ICYmIHYgPCAyLjNmICogdSkgeyAg IC8qICgxKSAqLwogICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAxICYmIGF0dGFja3NbMF0g PCBhdHRhY2tzW2ldKQogICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNrc1swXSA9IDA7CiAg ICAgICAgICAgICAgICAgICAgIGF0dGFja3NbaV0gPSAwOwpAQCAtOTUxLDEzICs5NDcsMTkgQEAg c3RhdGljIEZGUHN5V2luZG93SW5mbyBwc3lfbGFtZV93aW5kb3coRkZQc3lDb250ZXh0ICpjdHgs IGNvbnN0IGZsb2F0ICphdWRpbywKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGF0dF9zdW0g Kz0gYXR0YWNrc1tpXTsKICAgICAgICAgfQorCQlpZiAocGNoLT5uZXh0X2F0dGFjazBfemVybykK KyAgICAgICAgICAgIGF0dGFja3NbMF0gPSAwOworCQlpZiAoYXR0YWNrc1tBQUNfTlVNX0JMT0NL U19TSE9SVF0gPT0gMCkKKyAgICAgICAgICAgIHBjaC0+bmV4dF9hdHRhY2swX3plcm8gPSAxOwor ICAgICAgICBlbHNlCisJCQlwY2gtPm5leHRfYXR0YWNrMF96ZXJvID0gMDsKIAogICAgICAgICBp ZiAoYXR0YWNrc1swXSA8PSBwY2gtPnByZXZfYXR0YWNrKQogICAgICAgICAgICAgYXR0YWNrc1sw XSA9IDA7CiAKICAgICAgICAgYXR0X3N1bSArPSBhdHRhY2tzWzBdOwotICAgICAgICAvKiAzIGJl bG93IGluZGljYXRlcyB0aGUgcHJldmlvdXMgYXR0YWNrIGhhcHBlbmVkIGluIHRoZSBsYXN0IHN1 Yi1ibG9jayBvZiB0aGUgcHJldmlvdXMgc2VxdWVuY2UgKi8KLSAgICAgICAgaWYgKHBjaC0+cHJl dl9hdHRhY2sgPT0gMyB8fCBhdHRfc3VtKSB7CisJCS8qIElmIHRoZSBwcmV2aW91cyBhdHRhY2sg aGFwcGVuZWQgaW4gdGhlIGxhc3Qgc3ViLWJsb2NrIG9mIHRoZSBwcmV2aW91cyBzZXF1ZW5jZSwg b3IgaWYgdGhlcmUncyBhIG5ldyBhdHRhY2ssIHVzZSBzaG9ydCB3aW5kb3cgKi8KKyAgICAgICAg aWYgKHBjaC0+cHJldl9hdHRhY2sgPT0gUFNZX0xBTUVfTlVNX1NVQkJMT0NLUyB8fCBhdHRfc3Vt KSB7CiAgICAgICAgICAgICB1c2Vsb25nYmxvY2sgPSAwOwogCiAgICAgICAgICAgICBmb3IgKGkg PSAxOyBpIDwgQUFDX05VTV9CTE9DS1NfU0hPUlQgKyAxOyBpKyspCkBAIC0xMDA3LDcgKzEwMDks NyBAQCBzdGF0aWMgRkZQc3lXaW5kb3dJbmZvIHBzeV9sYW1lX3dpbmRvdyhGRlBzeUNvbnRleHQg KmN0eCwgY29uc3QgZmxvYXQgKmF1ZGlvLAogICAgIH0KICAgICBwY2gtPm5leHRfZ3JvdXBpbmcg PSB3aW5kb3dfZ3JvdXBpbmdbZ3JvdXBpbmddOwogCi0gICAgcGNoLT5wcmV2X2F0dGFjayA9IGF0 dGFja3NbOF07CisgICAgcGNoLT5wcmV2X2F0dGFjayA9IGF0dGFja3NbQUFDX05VTV9CTE9DS1Nf U0hPUlQgLSAxXTsKIAogICAgIHJldHVybiB3aTsKIH0KLS0gCjIuNDkuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcg bGlzdCAtLSBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVt YWlsIHRvIGZmbXBlZy1kZXZlbC1sZWF2ZUBmZm1wZWcub3JnCg==