From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 9AE314B262 for ; Tue, 2 Jul 2024 05:47:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9677068D89E; Tue, 2 Jul 2024 08:47:07 +0300 (EEST) Received: from 12.mo582.mail-out.ovh.net (12.mo582.mail-out.ovh.net [178.32.125.228]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8AF7168D5EE for ; Tue, 2 Jul 2024 08:47:00 +0300 (EEST) Received: from director9.ghost.mail-out.ovh.net (unknown [10.109.176.198]) by mo582.mail-out.ovh.net (Postfix) with ESMTP id 4WCsNw4brNz1D1v for ; Tue, 2 Jul 2024 05:46:56 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-ws82v (unknown [10.110.178.210]) by director9.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 545FB1FE77 for ; Tue, 2 Jul 2024 05:46:56 +0000 (UTC) Received: from courmont.net ([37.59.142.102]) by ghost-submission-6684bf9d7b-ws82v with ESMTPSA id OATwDlCUg2YvCQAA2eec6g (envelope-from ) for ; Tue, 02 Jul 2024 05:46:56 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-102R0046dd82bec-4b0c-42de-8655-f7d8cd381725, B989F31B8FFFE1012D8B9601EF97B969512E36E7) smtp.auth=postmaster@courmont.net X-OVh-ClientIp: 87.95.0.83 Date: Tue, 02 Jul 2024 08:46:53 +0300 From: =?ISO-8859-1?Q?R=E9mi_Denis-Courmont?= To: FFmpeg development discussions and patches User-Agent: K-9 Mail for Android In-Reply-To: <20240702013354.14942-3-yigithanyigitdevel@gmail.com> References: <20240702013354.14942-1-yigithanyigitdevel@gmail.com> <20240702013354.14942-3-yigithanyigitdevel@gmail.com> Message-ID: MIME-Version: 1.0 X-Ovh-Tracer-Id: 10687041918716090873 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeeftddrudeggdeliecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpeffhffvufgfjghfkfggtgfgsehtqhhmtddtreejnecuhfhrohhmpeftrohmihcuffgvnhhishdqvehouhhrmhhonhhtuceorhgvmhhisehrvghmlhgrsgdrnhgvtheqnecuggftrfgrthhtvghrnhepgfeulefhfeffgeevgeetgeeuheeguddvffeltdejgeetuddvtdejhffhgeetvdejnecukfhppeduvdejrddtrddtrddupdekjedrleehrddtrdekfedpfeejrdehledrudegvddruddtvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomheprhgvmhhisehrvghmlhgrsgdrnhgvthdpnhgspghrtghpthhtohepuddprhgtphhtthhopehffhhmphgvghdquggvvhgvlhesfhhfmhhpvghgrdhorhhgpdfovfetjfhoshhtpehmohehkedvpdhmohguvgepshhmthhpohhuth Subject: Re: [FFmpeg-devel] [PATCH v3 2/5] avfilter/af_volumedetect.c: Add 32bit float audio support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: CgpMZSAyIGp1aWxsZXQgMjAyNCAwNDozMzo1MSBHTVQrMDM6MDAsIFlpZ2l0aGFuIFlpZ2l0IDx5 aWdpdGhhbnlpZ2l0ZGV2ZWxAZ21haWwuY29tPiBhIMOpY3JpdMKgOgo+LS0tCj4gbGliYXZmaWx0 ZXIvYWZfdm9sdW1lZGV0ZWN0LmMgfCAxMzkgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLQo+IDEgZmlsZSBjaGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0p CgpEaWQgeW91IHRyeSB0byBjb21waWxlIHRoaXMgcGF0Y2g/Cgo+Cj5kaWZmIC0tZ2l0IGEvbGli YXZmaWx0ZXIvYWZfdm9sdW1lZGV0ZWN0LmMgYi9saWJhdmZpbHRlci9hZl92b2x1bWVkZXRlY3Qu Ywo+aW5kZXggMzI3ODAxYTdmOS4uZWRkMmQ1NmY3YSAxMDA2NDQKPi0tLSBhL2xpYmF2ZmlsdGVy L2FmX3ZvbHVtZWRldGVjdC5jCj4rKysgYi9saWJhdmZpbHRlci9hZl92b2x1bWVkZXRlY3QuYwo+ QEAgLTEsNSArMSw2IEBACj4gLyoKPiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTmljb2xhcyBHZW9y Z2UKPisgKiBDb3B5cmlnaHQgKGMpIDIwMjQgWWlnaXRoYW4gWWlnaXQgLSAzMiBCaXQgRmxvYXQg QXVkaW8gU3VwcG9ydAo+ICAqCj4gICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+ICAq Cj5AQCAtMjAsNDggKzIxLDYyIEBACj4gCj4gI2luY2x1ZGUgImxpYmF2dXRpbC9jaGFubmVsX2xh eW91dC5oIgo+ICNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQuaCIKPisjaW5jbHVkZSAibGli YXZ1dGlsL21lbS5oIgo+ICNpbmNsdWRlICJhdWRpby5oIgo+ICNpbmNsdWRlICJhdmZpbHRlci5o Igo+ICNpbmNsdWRlICJpbnRlcm5hbC5oIgo+IAo+KyNkZWZpbmUgTUFYX0RCX0ZMVCAxMDI0Cj4g I2RlZmluZSBNQVhfREIgOTEKPisjZGVmaW5lIEhJU1RPR1JBTV9TSVpFIDB4MTAwMDAKPisjZGVm aW5lIEhJU1RPR1JBTV9TSVpFX0ZMVCAoTUFYX0RCX0ZMVCoyKQo+Kwo+K3R5cGVkZWYgc3RydWN0 IFZvbERldGVjdENvbnRleHQgVm9sRGV0ZWN0Q29udGV4dDsKPiAKPiB0eXBlZGVmIHN0cnVjdCBW b2xEZXRlY3RDb250ZXh0IHsKPi0gICAgLyoqCj4tICAgICAqIE51bWJlciBvZiBzYW1wbGVzIGF0 IGVhY2ggUENNIHZhbHVlLgo+LSAgICAgKiBoaXN0b2dyYW1bMHg4MDAwICsgaV0gaXMgdGhlIG51 bWJlciBvZiBzYW1wbGVzIGF0IHZhbHVlIGkuCj4tICAgICAqIFRoZSBleHRyYSBlbGVtZW50IGlz IHRoZXJlIGZvciBzeW1tZXRyeS4KPi0gICAgICovCj4tICAgIHVpbnQ2NF90IGhpc3RvZ3JhbVsw eDEwMDAxXTsKPisgICAgdWludDY0X3QqIGhpc3RvZ3JhbTsgLy8vPCBmb3IgaW50ZWdlciBudW1i ZXIgb2Ygc2FtcGxlcyBhdCBlYWNoIFBDTSB2YWx1ZSwgZm9yIGZsb2F0IG51bWJlciBvZiBzYW1w bGVzIGF0IGVhY2ggZEIKPisgICAgdWludDY0X3QgbmJfc2FtcGxlczsgLy8vPCBudW1iZXIgb2Yg c2FtcGxlcwo+KyAgICBkb3VibGUgc3VtMjsgICAgICAgICAvLy88IHN1bSBvZiB0aGUgc3F1YXJl cyBvZiB0aGUgc2FtcGxlcwo+KyAgICBkb3VibGUgbWF4OyAgICAgICAgICAvLy88IG1heGltdW0g c2FtcGxlIHZhbHVlCj4rICAgIGludCBpc19mbG9hdDsgICAgICAgIC8vLzwgdHJ1ZSBpZiB0aGUg aW5wdXQgaXMgaW4gZmxvYXRpbmcgcG9pbnQKPisgICAgdm9pZCAoKnByb2Nlc3Nfc2FtcGxlcyko Vm9sRGV0ZWN0Q29udGV4dCAqdmQsIEFWRnJhbWUgKnNhbXBsZXMpOwo+IH0gVm9sRGV0ZWN0Q29u dGV4dDsKPiAKPi1zdGF0aWMgaW5saW5lIGRvdWJsZSBsb2dkYih1aW50NjRfdCB2KQo+K3N0YXRp YyBpbmxpbmUgZG91YmxlIGxvZ2RiKGRvdWJsZSB2LCBlbnVtIEFWU2FtcGxlRm9ybWF0IHNhbXBs ZV9mbXQpCj4gewo+LSAgICBkb3VibGUgZCA9IHYgLyAoZG91YmxlKSgweDgwMDAgKiAweDgwMDAp Owo+LSAgICBpZiAoIXYpCj4tICAgICAgICByZXR1cm4gTUFYX0RCOwo+LSAgICByZXR1cm4gLWxv ZzEwKGQpICogMTA7Cj4rICAgIGlmIChzYW1wbGVfZm10ID09IEFWX1NBTVBMRV9GTVRfRkxUKSB7 Cj4rICAgICAgICBpZiAoIXYpCj4rICAgICAgICAgICAgcmV0dXJuIE1BWF9EQl9GTFQ7Cj4rICAg ICAgICByZXR1cm4gLWxvZzEwKHYpICogMTA7Cj4rICAgIH0gZWxzZSB7Cj4rICAgICAgICBkb3Vi bGUgZCA9IHYgLyAoZG91YmxlKSgweDgwMDAgKiAweDgwMDApOwo+KyAgICAgICAgaWYgKCF2KQo+ KyAgICAgICAgICAgIHJldHVybiBNQVhfREI7Cj4rICAgICAgICByZXR1cm4gLWxvZzEwKGQpICog MTA7Cj4rICAgIH0KPit9Cj4rCj4rc3RhdGljIHZvaWQgdXBkYXRlX2Zsb2F0X3N0YXRzKFZvbERl dGVjdENvbnRleHQgKnZkLCBmbG9hdCAqYXVkaW9fZGF0YSkKPit7Cj4rICAgIGRvdWJsZSBzYW1w bGU7Cj4rICAgIGludCBpZHg7Cj4rICAgIGlmKCFpc2Zpbml0ZSgqYXVkaW9fZGF0YSkgfHwgaXNu YW4oKmF1ZGlvX2RhdGEpKQo+KyAgICAgICAgcmV0dXJuOwo+KyAgICBzYW1wbGUgPSBmYWJzZigq YXVkaW9fZGF0YSk7Cj4rICAgIGlmIChzYW1wbGUgPiB2ZC0+bWF4KQo+KyAgICAgICAgdmQtPm1h eCA9IHNhbXBsZTsKPisgICAgdmQtPnN1bTIgKz0gc2FtcGxlICogc2FtcGxlOwo+KyAgICBpZHgg PSAoaW50KWZsb29yZihsb2dkYihzYW1wbGUgKiBzYW1wbGUsIEFWX1NBTVBMRV9GTVRfRkxUKSkg KyBNQVhfREJfRkxUOwo+KyAgICB2ZC0+aGlzdG9ncmFtW2lkeF0rKzsKPisgICAgdmQtPm5iX3Nh bXBsZXMrKzsKPiB9Cj4gCj4gc3RhdGljIGludCBmaWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICpp bmxpbmssIEFWRnJhbWUgKnNhbXBsZXMpCj4gewo+ICAgICBBVkZpbHRlckNvbnRleHQgKmN0eCA9 IGlubGluay0+ZHN0Owo+ICAgICBWb2xEZXRlY3RDb250ZXh0ICp2ZCA9IGN0eC0+cHJpdjsKPi0g ICAgaW50IG5iX3NhbXBsZXMgID0gc2FtcGxlcy0+bmJfc2FtcGxlczsKPi0gICAgaW50IG5iX2No YW5uZWxzID0gc2FtcGxlcy0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOwo+LSAgICBpbnQgbmJfcGxh bmVzICAgPSBuYl9jaGFubmVsczsKPi0gICAgaW50IHBsYW5lLCBpOwo+LSAgICBpbnQxNl90ICpw Y207Cj4tCj4tICAgIGlmICghYXZfc2FtcGxlX2ZtdF9pc19wbGFuYXIoc2FtcGxlcy0+Zm9ybWF0 KSkgewo+LSAgICAgICAgbmJfc2FtcGxlcyAqPSBuYl9jaGFubmVsczsKPi0gICAgICAgIG5iX3Bs YW5lcyA9IDE7Cj4tICAgIH0KPi0gICAgZm9yIChwbGFuZSA9IDA7IHBsYW5lIDwgbmJfcGxhbmVz OyBwbGFuZSsrKSB7Cj4tICAgICAgICBwY20gPSAoaW50MTZfdCAqKXNhbXBsZXMtPmV4dGVuZGVk X2RhdGFbcGxhbmVdOwo+LSAgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX3NhbXBsZXM7IGkrKykK Pi0gICAgICAgICAgICB2ZC0+aGlzdG9ncmFtW3BjbVtpXSArIDB4ODAwMF0rKzsKPi0gICAgfQo+ Kwo+KyAgICB2ZC0+cHJvY2Vzc19zYW1wbGVzKHZkLCBzYW1wbGVzKTsKPiAKPiAgICAgcmV0dXJu IGZmX2ZpbHRlcl9mcmFtZShpbmxpbmstPmRzdC0+b3V0cHV0c1swXSwgc2FtcGxlcyk7Cj4gfQo+ QEAgLTczLDYgKzg4LDIwIEBAIHN0YXRpYyB2b2lkIHByaW50X3N0YXRzKEFWRmlsdGVyQ29udGV4 dCAqY3R4KQo+ICAgICB1aW50NjRfdCBuYl9zYW1wbGVzID0gMCwgcG93ZXIgPSAwLCBuYl9zYW1w bGVzX3NoaWZ0ID0gMCwgc3VtID0gMDsKPiAgICAgdWludDY0X3QgaGlzdGRiW01BWF9EQiArIDFd ID0geyAwIH07Cj4gCj4rICAgIGlmICghdmQtPm5iX3NhbXBsZXMpCj4rICAgICAgICByZXR1cm47 Cj4rICAgIGlmICh2ZC0+aXNfZmxvYXQpIHsKPisgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19J TkZPLCAibl9zYW1wbGVzOiAlIiBQUklkNjQgIlxuIiwgdmQtPm5iX3NhbXBsZXMpOwo+KyAgICAg ICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJtZWFuX3ZvbHVtZTogJS4xZiBkQlxuIiwgLWxv Z2RiKHZkLT5zdW0yIC8gdmQtPm5iX3NhbXBsZXMsIEFWX1NBTVBMRV9GTVRfRkxUKSk7Cj4rICAg ICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIm1heF92b2x1bWU6ICUuMWYgZEJcbiIsIC0y LjAqbG9nZGIodmQtPm1heCwgQVZfU0FNUExFX0ZNVF9GTFQpKTsKPisgICAgICAgIGZvciAoaSA9 IDA7IGkgPCBISVNUT0dSQU1fU0laRV9GTFQgJiYgIXZkLT5oaXN0b2dyYW1baV07IGkrKyk7Cj4r ICAgICAgICBmb3IgKDsgaSA+PSAwICYmIHN1bSA8IHZkLT5uYl9zYW1wbGVzIC8gMTAwMDsgaSsr KSB7Cj4rICAgICAgICAgICAgaWYgKCF2ZC0+aGlzdG9ncmFtW2ldKQo+KyAgICAgICAgICAgICAg ICBjb250aW51ZTsKPisgICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgImhpc3Rv Z3JhbV8lZGRiOiAlIiBQUklkNjQgIlxuIiwgTUFYX0RCX0ZMVCAtIGksIHZkLT5oaXN0b2dyYW1b aV0pOwo+KyAgICAgICAgICAgIHN1bSArPSB2ZC0+aGlzdG9ncmFtW2ldOwo+KyAgICAgICAgfQo+ KyAgICB9IGVsc2Ugewo+ICAgICBmb3IgKGkgPSAwOyBpIDwgMHgxMDAwMDsgaSsrKQo+ICAgICAg ICAgbmJfc2FtcGxlcyArPSB2ZC0+aGlzdG9ncmFtW2ldOwo+ICAgICBhdl9sb2coY3R4LCBBVl9M T0dfSU5GTywgIm5fc2FtcGxlczogJSJQUklkNjQiXG4iLCBuYl9zYW1wbGVzKTsKPkBAIC05Miwy NiArMTIxLDYxIEBAIHN0YXRpYyB2b2lkIHByaW50X3N0YXRzKEFWRmlsdGVyQ29udGV4dCAqY3R4 KQo+ICAgICAgICAgcmV0dXJuOwo+ICAgICBwb3dlciA9IChwb3dlciArIG5iX3NhbXBsZXNfc2hp ZnQgLyAyKSAvIG5iX3NhbXBsZXNfc2hpZnQ7Cj4gICAgIGF2X2Fzc2VydDAocG93ZXIgPD0gMHg4 MDAwICogMHg4MDAwKTsKPi0gICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJtZWFuX3ZvbHVt ZTogJS4xZiBkQlxuIiwgLWxvZ2RiKHBvd2VyKSk7Cj4rICAgIGF2X2xvZyhjdHgsIEFWX0xPR19J TkZPLCAibWVhbl92b2x1bWU6ICUuMWYgZEJcbiIsIC1sb2dkYigoZG91YmxlKXBvd2VyLCBBVl9T QU1QTEVfRk1UX1MxNikpOwo+IAo+ICAgICBtYXhfdm9sdW1lID0gMHg4MDAwOwo+ICAgICB3aGls ZSAobWF4X3ZvbHVtZSA+IDAgJiYgIXZkLT5oaXN0b2dyYW1bMHg4MDAwICsgbWF4X3ZvbHVtZV0g JiYKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF2ZC0+aGlzdG9ncmFtWzB4ODAwMCAt IG1heF92b2x1bWVdKQo+ICAgICAgICAgbWF4X3ZvbHVtZS0tOwo+LSAgICBhdl9sb2coY3R4LCBB Vl9MT0dfSU5GTywgIm1heF92b2x1bWU6ICUuMWYgZEJcbiIsIC1sb2dkYihtYXhfdm9sdW1lICog bWF4X3ZvbHVtZSkpOwo+KyAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIm1heF92b2x1bWU6 ICUuMWYgZEJcbiIsIC1sb2dkYigoZG91YmxlKShtYXhfdm9sdW1lICogbWF4X3ZvbHVtZSksIEFW X1NBTVBMRV9GTVRfUzE2KSk7Cj4gCj4gICAgIGZvciAoaSA9IDA7IGkgPCAweDEwMDAwOyBpKysp Cj4tICAgICAgICBoaXN0ZGJbKGludClsb2dkYigoaSAtIDB4ODAwMCkgKiAoaSAtIDB4ODAwMCkp XSArPSB2ZC0+aGlzdG9ncmFtW2ldOwo+KyAgICAgICAgaGlzdGRiWyhpbnQpbG9nZGIoKGRvdWJs ZSkoaSAtIDB4ODAwMCkgKiAoaSAtIDB4ODAwMCksIEFWX1NBTVBMRV9GTVRfUzE2KV0gKz0gdmQt Pmhpc3RvZ3JhbVtpXTsKPiAgICAgZm9yIChpID0gMDsgaSA8PSBNQVhfREIgJiYgIWhpc3RkYltp XTsgaSsrKTsKPiAgICAgZm9yICg7IGkgPD0gTUFYX0RCICYmIHN1bSA8IG5iX3NhbXBsZXMgLyAx MDAwOyBpKyspIHsKPi0gICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiaGlzdG9ncmFt XyVkZGI6ICUiUFJJZDY0IlxuIiwgaSwgaGlzdGRiW2ldKTsKPisgICAgICAgIGF2X2xvZyhjdHgs IEFWX0xPR19JTkZPLCAiaGlzdG9ncmFtXyVkZGI6ICUiUFJJZDY0IlxuIiwgLWksIGhpc3RkYltp XSk7Cj4gICAgICAgICBzdW0gKz0gaGlzdGRiW2ldOwo+ICAgICB9Cj4rICAgIH0KPit9Cj4rCj4r c3RhdGljIGludCBjb25maWdfb3V0cHV0KEFWRmlsdGVyTGluayAqb3V0bGluaykKPit7Cj4rICAg IEFWRmlsdGVyQ29udGV4dCAqY3R4ID0gb3V0bGluay0+c3JjOwo+KyAgICBWb2xEZXRlY3RDb250 ZXh0ICp2ZCA9IGN0eC0+cHJpdjsKPisgICAgc2l6ZV90IGhpc3RvZ3JhbV9zaXplOwo+Kwo+KyAg ICB2ZC0+aXNfZmxvYXQgPSBvdXRsaW5rLT5mb3JtYXQgPT0gQVZfU0FNUExFX0ZNVF9GTFQgfHwK PisgICAgICAgICAgICAgICAgICAgb3V0bGluay0+Zm9ybWF0ID09IEFWX1NBTVBMRV9GTVRfRkxU UDsKPisKPisgICAgaWYgKCF2ZC0+aXNfZmxvYXQpIHsKPisgICAgICAgIC8qCj4rICAgICAgICAq IE51bWJlciBvZiBzYW1wbGVzIGF0IGVhY2ggUENNIHZhbHVlLgo+KyAgICAgICAgKiBPbmx5IHVz ZWQgZm9yIGludGVnZXIgZm9ybWF0cy4KPisgICAgICAgICogRm9yIDE2IGJpdCBzaWduZWQgUENN IHRoZXJlIGFyZSA2NTUzNi4KPisgICAgICAgICogaGlzdG9ncmFtWzB4ODAwMCArIGldIGlzIHRo ZSBudW1iZXIgb2Ygc2FtcGxlcyBhdCB2YWx1ZSBpLgo+KyAgICAgICAgKiBUaGUgZXh0cmEgZWxl bWVudCBpcyB0aGVyZSBmb3Igc3ltbWV0cnkuCj4rICAgICAgICAqLwo+KyAgICAgICAgaGlzdG9n cmFtX3NpemUgPSBISVNUT0dSQU1fU0laRSArIDE7Cj4rICAgIH0gZWxzZSB7Cj4rICAgICAgICAv Kgo+KyAgICAgICAgKiBUaGUgaGlzdG9ncmFtIGlzIHVzZWQgdG8gc3RvcmUgdGhlIG51bWJlciBv ZiBzYW1wbGVzIGF0IGVhY2ggZEIKPisgICAgICAgICogaW5zdGVhZCBvZiB0aGUgbnVtYmVyIG9m IHNhbXBsZXMgYXQgZWFjaCBQQ00gdmFsdWUuCj4rICAgICAgICAqLwo+KyAgICAgICAgaGlzdG9n cmFtX3NpemUgPSBISVNUT0dSQU1fU0laRV9GTFQgKyAxOwo+KyAgICB9Cj4rICAgIHZkLT5oaXN0 b2dyYW0gPSBhdl9jYWxsb2MoaGlzdG9ncmFtX3NpemUsIHNpemVvZih1aW50NjRfdCkpOwo+KyAg ICBpZiAoIXZkLT5oaXN0b2dyYW0pCj4rICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ KyAgICByZXR1cm4gMDsKPiB9Cj4gCj4gc3RhdGljIGF2X2NvbGQgdm9pZCB1bmluaXQoQVZGaWx0 ZXJDb250ZXh0ICpjdHgpCj4gewo+KyAgICBWb2xEZXRlY3RDb250ZXh0ICp2ZCA9IGN0eC0+cHJp djsKPiAgICAgcHJpbnRfc3RhdHMoY3R4KTsKPisgICAgaWYgKHZkLT5oaXN0b2dyYW0pCj4rICAg ICAgICBhdl9mcmVlcCgmdmQtPmhpc3RvZ3JhbSk7Cj4gfQo+IAo+IHN0YXRpYyBjb25zdCBBVkZp bHRlclBhZCB2b2x1bWVkZXRlY3RfaW5wdXRzW10gPSB7Cj5AQCAtMTIyLDYgKzE4NiwxNCBAQCBz dGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgdm9sdW1lZGV0ZWN0X2lucHV0c1tdID0gewo+ICAgICB9 LAo+IH07Cj4gCj4rc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIHZvbHVtZWRldGVjdF9vdXRwdXRz W10gPSB7Cj4rICAgIHsKPisgICAgICAgIC5uYW1lICAgICAgICAgPSAiZGVmYXVsdCIsCj4rICAg ICAgICAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX0FVRElPLAo+KyAgICAgICAgLmNvbmZp Z19wcm9wcyA9IGNvbmZpZ19vdXRwdXQsCj4rICAgIH0sCj4rfTsKPisKPiBjb25zdCBBVkZpbHRl ciBmZl9hZl92b2x1bWVkZXRlY3QgPSB7Cj4gICAgIC5uYW1lICAgICAgICAgID0gInZvbHVtZWRl dGVjdCIsCj4gICAgIC5kZXNjcmlwdGlvbiAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIkRldGVj dCBhdWRpbyB2b2x1bWUuIiksCj5AQCAtMTI5LDYgKzIwMSw5IEBAIGNvbnN0IEFWRmlsdGVyIGZm X2FmX3ZvbHVtZWRldGVjdCA9IHsKPiAgICAgLnVuaW5pdCAgICAgICAgPSB1bmluaXQsCj4gICAg IC5mbGFncyAgICAgICAgID0gQVZGSUxURVJfRkxBR19NRVRBREFUQV9PTkxZLAo+ICAgICBGSUxU RVJfSU5QVVRTKHZvbHVtZWRldGVjdF9pbnB1dHMpLAo+LSAgICBGSUxURVJfT1VUUFVUUyhmZl9h dWRpb19kZWZhdWx0X2ZpbHRlcnBhZCksCj4tICAgIEZJTFRFUl9TQU1QTEVGTVRTKEFWX1NBTVBM RV9GTVRfUzE2LCBBVl9TQU1QTEVfRk1UX1MxNlApLAo+KyAgICBGSUxURVJfT1VUUFVUUyh2b2x1 bWVkZXRlY3Rfb3V0cHV0cyksCj4rICAgIEZJTFRFUl9TQU1QTEVGTVRTKEFWX1NBTVBMRV9GTVRf UzE2LAo+KyAgICAgICAgICAgICAgICAgICAgICBBVl9TQU1QTEVfRk1UX1MxNlAsCj4rICAgICAg ICAgICAgICAgICAgICAgIEFWX1NBTVBMRV9GTVRfRkxULAo+KyAgICAgICAgICAgICAgICAgICAg ICBBVl9TQU1QTEVfRk1UX0ZMVFApLAo+IH07Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl dmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRl dmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K