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 B3A6E46C3E for ; Thu, 6 Jul 2023 08:55:41 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E8A1968C697; Thu, 6 Jul 2023 11:55:38 +0300 (EEST) Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 89EEF68C677 for ; Thu, 6 Jul 2023 11:55:32 +0300 (EEST) Received: from postfix03.mail.de (postfix03.bt.mail.de [10.0.121.127]) by shout02.mail.de (Postfix) with ESMTP id 3081CA2D68 for ; Thu, 6 Jul 2023 10:55:32 +0200 (CEST) Received: from smtp03.mail.de (smtp03.bt.mail.de [10.0.121.213]) by postfix03.mail.de (Postfix) with ESMTP id 10FFF801D0 for ; Thu, 6 Jul 2023 10:55:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1688633732; bh=aQoRx6NQPxhG+2vIBHoOu1zhhgVJ2xZc6YZygwDtB9c=; h=Message-ID:Date:Subject:To:From:From:To:CC:Subject:Reply-To; b=gvCYbELpJYjznfZYM0uFPe0oPBnQfvRGyehw6vG2ONsqz2+CIgZfjxbRay8PLwgct 6ilyrcy21puY2JNGt37ct1FyWmsLP6aQYSSaUYue33JGIiy2srwDd5mvt6p1uWZ7+K qVhF9sTxYLuOGIT65Bo3tK6FQHQbVfuVacdYh//fgVxoa20AET6YDJ/DBJglATL9hr DnKpqnofL0fghdrNZj3jxrR1V9CC1kYyOw36P2CszOZrLrxZ8SzIT613kyP6YdvmSv caNjoVIYvHPa8sU9GSbF2kGsTHzlQTtZn3PUdG4egvpvIQyAQ87AmZ3r+iNLIHTOxx a2krDKcbnCmVw== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtp03.mail.de (Postfix) with ESMTPSA id D2BEEA0484 for ; Thu, 6 Jul 2023 10:55:31 +0200 (CEST) Message-ID: Date: Thu, 6 Jul 2023 10:55:31 +0200 MIME-Version: 1.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20230519164133.3278597-1-quinkblack@foxmail.com> From: Thilo Borgmann In-Reply-To: X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 10917 X-purgate-ID: 154282::1688633731-C134B647-370EA15F/0/0 Subject: Re: [FFmpeg-devel] [PATCH 3/5] avcodec/h264_mp4toannexb_bsf: fix missing PS before IDR frames 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: QW0gMDUuMDcuMjMgdW0gMTg6MDggc2NocmllYiBUaGlsbyBCb3JnbWFubjoKPiBIaSwKPiAKPiBB bSAxOS4wNS4yMyB1bSAxODo0MSBzY2hyaWViIFpoYW8gWmhpbGk6Cj4+IEZyb206IFpoYW8gWmhp bGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbT4KPj4KPj4gSWYgdGhlcmUgaXMgYSBzaW5nbGUgZ3Jv dXAgb2YgU1BTL1BQUyBiZWZvcmUgYW4gSURSIGZyYW1lLCBidXQgbm8KPj4gU1BTL1BQUyBhZnRl ciB0aGF0LCB3ZSB3aWxsIG1pc3MgdGhlIGNoYW5jZSB0byByZXNldAo+PiBpZHJfc3BzX3NlZW4v aWRyX3Bwc19zZWVuLiBObyBTUFMvUFBTIGFyZSBpbnNlcnRlZCBhZnRlcndhcmRzLgo+Pgo+PiBU aGlzIHBhdGNoIHNhdmVzIGluLWJhbmQgU1BTL1BQUyBhbmQgaW5zZXJ0IHRoZW0gYmVmb3JlIElE UiBmcmFtZXMKPj4gd2hlbiBuZWNlc3NhcnkuCj4+IC0tLQo+PiBzYW1wbGUgZmlsZSBoMjY0L3Bz X3ByZWZpeF9maXJzdF9pZHIubXA0Cj4+IGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9maWxlL2Qv MUdFSW1lRS1XeDFUMHZlUUNsU3Vhc0VKYnM0ZnNzTW85L3ZpZXc/dXNwPXNoYXJpbmcKPj4KPj4g wqAgbGliYXZjb2RlYy9oMjY0X21wNHRvYW5uZXhiX2JzZi5jIHwgODMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLQo+PiDCoCB0ZXN0cy9mYXRlL2gyNjQubWFrwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB8wqAgOCArKy0KPj4gwqAgMiBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oMjY0 X21wNHRvYW5uZXhiX2JzZi5jIGIvbGliYXZjb2RlYy9oMjY0X21wNHRvYW5uZXhiX2JzZi5jCj4+ IGluZGV4IDg0NjY3MWFiYjYuLjQwNzNjNzgwYzUgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMv aDI2NF9tcDR0b2FubmV4Yl9ic2YuYwo+PiArKysgYi9saWJhdmNvZGVjL2gyNjRfbXA0dG9hbm5l eGJfYnNmLmMKPj4gQEAgLTM2LDYgKzM2LDggQEAgdHlwZWRlZiBzdHJ1Y3QgSDI2NEJTRkNvbnRl eHQgewo+PiDCoMKgwqDCoMKgIHVpbnQ4X3QgKnBwczsKPj4gwqDCoMKgwqDCoCBpbnTCoMKgwqDC oMKgIHNwc19zaXplOwo+PiDCoMKgwqDCoMKgIGludMKgwqDCoMKgwqAgcHBzX3NpemU7Cj4+ICvC oMKgwqAgdW5zaWduZWQgc3BzX2J1Zl9zaXplOwo+PiArwqDCoMKgIHVuc2lnbmVkIHBwc19idWZf c2l6ZTsKPj4gwqDCoMKgwqDCoCB1aW50OF90wqAgbGVuZ3RoX3NpemU7Cj4+IMKgwqDCoMKgwqAg dWludDhfdMKgIG5ld19pZHI7Cj4+IMKgwqDCoMKgwqAgdWludDhfdMKgIGlkcl9zcHNfc2VlbjsK Pj4gQEAgLTEzMCwxNiArMTMyLDMzIEBAIHBwczoKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIG1lbXNl dChvdXQgKyB0b3RhbF9zaXplLCAwLCBwYWRkaW5nKTsKPj4gwqDCoMKgwqDCoCBpZiAocHBzX29m ZnNldCkgewo+PiAtwqDCoMKgwqDCoMKgwqAgcy0+c3BzwqDCoMKgwqDCoCA9IG91dDsKPj4gK8Kg wqDCoMKgwqDCoMKgIHVpbnQ4X3QgKnNwczsKPj4gKwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+ c3BzX3NpemUgPSBwcHNfb2Zmc2V0Owo+PiArwqDCoMKgwqDCoMKgwqAgc3BzID0gYXZfZmFzdF9y ZWFsbG9jKHMtPnNwcywgJnMtPnNwc19idWZfc2l6ZSwgcy0+c3BzX3NpemUpOwo+PiArwqDCoMKg wqDCoMKgwqAgaWYgKCFzcHMpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfZnJlZShv dXQpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqAgcy0+c3BzID0gc3BzOwo+PiAr wqDCoMKgwqDCoMKgwqAgbWVtY3B5KHMtPnNwcywgb3V0LCBzLT5zcHNfc2l6ZSk7Cj4+IMKgwqDC oMKgwqAgfSBlbHNlIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhjdHgsIEFWX0xPR19X QVJOSU5HLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiV2FybmluZzogU1BT IE5BTFUgbWlzc2luZyBvciBpbnZhbGlkLiAiCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICJUaGUgcmVzdWx0aW5nIHN0cmVhbSBtYXkgbm90IHBsYXkuXG4iKTsKPj4gwqDCoMKg wqDCoCB9Cj4+IMKgwqDCoMKgwqAgaWYgKHBwc19vZmZzZXQgPCB0b3RhbF9zaXplKSB7Cj4+IC3C oMKgwqDCoMKgwqDCoCBzLT5wcHPCoMKgwqDCoMKgID0gb3V0ICsgcHBzX29mZnNldDsKPj4gK8Kg wqDCoMKgwqDCoMKgIHVpbnQ4X3QgKnBwczsKPj4gKwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+ cHBzX3NpemUgPSB0b3RhbF9zaXplIC0gcHBzX29mZnNldDsKPj4gK8KgwqDCoMKgwqDCoMKgIHBw cyA9IGF2X2Zhc3RfcmVhbGxvYyhzLT5wcHMsICZzLT5wcHNfYnVmX3NpemUsIHMtPnBwc19zaXpl KTsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmICghcHBzKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGF2X2ZyZWVwKCZzLT5zcHMpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9mcmVl KG91dCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7 Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoCBzLT5wcHMgPSBwcHM7Cj4+ ICvCoMKgwqDCoMKgwqDCoCBtZW1jcHkocy0+cHBzLCBvdXQgKyBwcHNfb2Zmc2V0LCBzLT5wcHNf c2l6ZSk7Cj4+IMKgwqDCoMKgwqAgfSBlbHNlIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xv ZyhjdHgsIEFWX0xPR19XQVJOSU5HLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAiV2FybmluZzogUFBTIE5BTFUgbWlzc2luZyBvciBpbnZhbGlkLiAiCj4+IEBAIC0xNTMsNiAr MTcyLDM1IEBAIHBwczoKPj4gwqDCoMKgwqDCoCByZXR1cm4gbGVuZ3RoX3NpemU7Cj4+IMKgIH0K Pj4gK3N0YXRpYyBpbnQgaDI2NF9tcDR0b2FubmV4Yl9zYXZlX3BzKHVpbnQ4X3QgKipkc3QsIGlu dCAqZHN0X3NpemUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkICpkc3RfYnVmX3NpemUsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGNvbnN0IHVpbnQ4X3QgKm5hbCwgdWludDMyX3QgbmFsX3NpemUsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGludCBmaXJzdCkKPj4gK3sKPj4gK8KgwqDCoCBzdGF0aWMgY29uc3Qg dWludDhfdCBuYWx1X2hlYWRlcls0XSA9IHsgMCwgMCwgMCwgMSB9Owo+PiArwqDCoMKgIGNvbnN0 IGludCBzdGFydF9jb2RlX3NpemUgPSBzaXplb2YobmFsdV9oZWFkZXIpOwo+PiArwqDCoMKgIHVp bnQ4X3QgKnB0cjsKPj4gK8KgwqDCoCB1aW50MzJfdCBzaXplOwo+PiArCj4+ICvCoMKgwqAgaWYg KGZpcnN0KQo+PiArwqDCoMKgwqDCoMKgwqAgc2l6ZSA9IDA7Cj4+ICvCoMKgwqAgZWxzZQo+PiAr wqDCoMKgwqDCoMKgwqAgc2l6ZSA9ICpkc3Rfc2l6ZTsKPj4gKwo+PiArwqDCoMKgIHB0ciA9IGF2 X2Zhc3RfcmVhbGxvYygqZHN0LCBkc3RfYnVmX3NpemUsIHNpemUgKyBuYWxfc2l6ZSArIHN0YXJ0 X2NvZGVfc2l6ZSk7Cj4+ICvCoMKgwqAgaWYgKCFwdHIpCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1 cm4gQVZFUlJPUihFTk9NRU0pOwo+PiArCj4+ICvCoMKgwqAgbWVtY3B5KHB0ciArIHNpemUsIG5h bHVfaGVhZGVyLCBzdGFydF9jb2RlX3NpemUpOwo+PiArwqDCoMKgIHNpemUgKz0gc3RhcnRfY29k ZV9zaXplOwo+PiArwqDCoMKgIG1lbWNweShwdHIgKyBzaXplLCBuYWwsIG5hbF9zaXplKTsKPj4g K8KgwqDCoCBzaXplICs9IG5hbF9zaXplOwo+PiArCj4+ICvCoMKgwqAgKmRzdCA9IHB0cjsKPj4g K8KgwqDCoCAqZHN0X3NpemUgPSBzaXplOwo+PiArwqDCoMKgIHJldHVybiAwOwo+PiArfQo+PiAr Cj4+IMKgIHN0YXRpYyBpbnQgaDI2NF9tcDR0b2FubmV4Yl9pbml0KEFWQlNGQ29udGV4dCAqY3R4 KQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgSDI2NEJTRkNvbnRleHQgKnMgPSBjdHgtPnByaXZfZGF0 YTsKPj4gQEAgLTIxMSw2ICsyNTksOSBAQCBzdGF0aWMgaW50IGgyNjRfbXA0dG9hbm5leGJfZmls dGVyKEFWQlNGQ29udGV4dCAqY3R4LCBBVlBhY2tldCAqb3BrdCkKPj4gwqDCoMKgwqDCoCBpZiAo aikgXAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfbG9nKF9fVkFfQVJHU19fKQo+PiDCoMKgwqDC oMKgIGZvciAoaW50IGogPSAwOyBqIDwgMjsgaisrKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpbnQg c3BzX2NvdW50ID0gMDsKPj4gK8KgwqDCoMKgwqDCoMKgIGludCBwcHNfY291bnQgPSAwOwo+PiAr Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBidWbCoMKgwqDCoMKgID0gaW4tPmRhdGE7Cj4+IMKgwqDC oMKgwqDCoMKgwqDCoCBuZXdfaWRywqAgPSBzLT5uZXdfaWRyOwo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgc3BzX3NlZW4gPSBzLT5pZHJfc3BzX3NlZW47Cj4+IEBAIC0yNDEsOCArMjkyLDE4IEBAIHN0 YXRpYyBpbnQgaDI2NF9tcDR0b2FubmV4Yl9maWx0ZXIoQVZCU0ZDb250ZXh0ICpjdHgsIEFWUGFj a2V0ICpvcGt0KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAodW5pdF90eXBlID09 IEgyNjRfTkFMX1NQUykgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNw c19zZWVuID0gbmV3X2lkciA9IDE7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aWYgKCFqKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBoMjY0 X21wNHRvYW5uZXhiX3NhdmVfcHMoJnMtPnNwcywgJnMtPnNwc19zaXplLCAmcy0+c3BzX2J1Zl9z aXplLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWYsIG5hbF9zaXplLCAh c3BzX2NvdW50KTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNw c19jb3VudCsrOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmICh1bml0X3R5cGUgPT0gSDI2NF9OQUxfUFBT KSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHBzX3NlZW4gPSBuZXdf aWRyID0gMTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWopIHsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGgyNjRfbXA0dG9hbm5leGJf c2F2ZV9wcygmcy0+cHBzLCAmcy0+cHBzX3NpemUsICZzLT5wcHNfYnVmX3NpemUsCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZiwgbmFsX3NpemUsICFwcHNfY291bnQpOwo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHBzX2NvdW50Kys7Cj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC8qIGlmIFNQUyBoYXMgbm90IGJlZW4gc2VlbiB5ZXQsIHByZXBlbmQg dGhlIEFWQ0Mgb25lIHRvIFBQUyAqLwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGlmICghc3BzX3NlZW4pIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGlmICghcy0+c3BzX3NpemUpIHsKPj4gQEAgLTI2Miw5ICszMjMsMTAgQEAgc3Rh dGljIGludCBoMjY0X21wNHRvYW5uZXhiX2ZpbHRlcihBVkJTRkNvbnRleHQgKmN0eCwgQVZQYWNr ZXQgKm9wa3QpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIHByZXBlbmQgb25seSB0 byB0aGUgZmlyc3QgdHlwZSA1IE5BTCB1bml0IG9mIGFuIElEUiBwaWN0dXJlLCBpZiBubyBzcHMv cHBzIGFyZSBhbHJlYWR5IHByZXNlbnQgKi8KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aWYgKG5ld19pZHIgJiYgdW5pdF90eXBlID09IEgyNjRfTkFMX0lEUl9TTElDRSAmJiAhc3BzX3Nl ZW4gJiYgIXBwc19zZWVuKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYg KGN0eC0+cGFyX291dC0+ZXh0cmFkYXRhKQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY291bnRfb3JfY29weSgmb3V0LCAmb3V0X3NpemUsIGN0eC0+cGFyX291dC0+ ZXh0cmFkYXRhLAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN0eC0+cGFyX291dC0+ZXh0cmFkYXRhX3NpemUsIFBT X09VVF9PRl9CQU5ELCBqKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAo cy0+c3BzX3NpemUpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj b3VudF9vcl9jb3B5KCZvdXQsICZvdXRfc2l6ZSwgcy0+c3BzLCBzLT5zcHNfc2l6ZSwgUFNfT1VU X09GX0JBTkQsIGopOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChzLT5w cHNfc2l6ZSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvdW50 X29yX2NvcHkoJm91dCwgJm91dF9zaXplLCBzLT5wcHMsIHMtPnBwc19zaXplLCBQU19PVVRfT0Zf QkFORCwgaik7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmV3X2lkciA9 IDA7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIGlmIG9ubHkgU1BTIGhhcyBiZWVu IHNlZW4sIGFsc28gaW5zZXJ0IFBQUyAqLwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9 IGVsc2UgaWYgKG5ld19pZHIgJiYgdW5pdF90eXBlID09IEgyNjRfTkFMX0lEUl9TTElDRSAmJiBz cHNfc2VlbiAmJiAhcHBzX3NlZW4pIHsKPj4gQEAgLTI4MCw3ICszNDIsNyBAQCBzdGF0aWMgaW50 IGgyNjRfbXA0dG9hbm5leGJfZmlsdGVyKEFWQlNGQ29udGV4dCAqY3R4LCBBVlBhY2tldCAqb3Br dCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZWxzZQo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHBzID0gUFNfTk9ORTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgY291bnRfb3JfY29weSgmb3V0LCAmb3V0X3NpemUsIGJ1ZiwgbmFsX3NpemUsIHBzLCBq KTsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFuZXdfaWRyICYmIHVuaXRfdHlwZSA9 PSBIMjY0X05BTF9TTElDRSkgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAodW5pdF90 eXBlID09IEgyNjRfTkFMX1NMSUNFKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgbmV3X2lkcsKgID0gMTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBzcHNfc2VlbiA9IDA7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHBz X3NlZW4gPSAwOwo+PiBAQCAtMzIwLDYgKzM4MiwxNCBAQCBmYWlsOgo+PiDCoMKgwqDCoMKgIHJl dHVybiByZXQ7Cj4+IMKgIH0KPj4gK3N0YXRpYyB2b2lkIGgyNjRfbXA0dG9hbm5leGJfY2xvc2Uo QVZCU0ZDb250ZXh0ICpjdHgpCj4+ICt7Cj4+ICvCoMKgwqAgSDI2NEJTRkNvbnRleHQgKnMgPSBj dHgtPnByaXZfZGF0YTsKPj4gKwo+PiArwqDCoMKgIGF2X2ZyZWVwKCZzLT5zcHMpOwo+PiArwqDC oMKgIGF2X2ZyZWVwKCZzLT5wcHMpOwo+PiArfQo+PiArCj4+IMKgIHN0YXRpYyB2b2lkIGgyNjRf bXA0dG9hbm5leGJfZmx1c2goQVZCU0ZDb250ZXh0ICpjdHgpCj4+IMKgIHsKPj4gwqDCoMKgwqDC oCBIMjY0QlNGQ29udGV4dCAqcyA9IGN0eC0+cHJpdl9kYXRhOwo+PiBAQCAtMzM5LDUgKzQwOSw2 IEBAIGNvbnN0IEZGQml0U3RyZWFtRmlsdGVyIGZmX2gyNjRfbXA0dG9hbm5leGJfYnNmID0gewo+ PiDCoMKgwqDCoMKgIC5wcml2X2RhdGFfc2l6ZSA9IHNpemVvZihIMjY0QlNGQ29udGV4dCksCj4+ IMKgwqDCoMKgwqAgLmluaXTCoMKgwqDCoMKgwqDCoMKgwqDCoCA9IGgyNjRfbXA0dG9hbm5leGJf aW5pdCwKPj4gwqDCoMKgwqDCoCAuZmlsdGVywqDCoMKgwqDCoMKgwqDCoCA9IGgyNjRfbXA0dG9h bm5leGJfZmlsdGVyLAo+PiArwqDCoMKgIC5jbG9zZcKgwqDCoMKgwqDCoMKgwqDCoCA9IGgyNjRf bXA0dG9hbm5leGJfY2xvc2UsCj4+IMKgwqDCoMKgwqAgLmZsdXNowqDCoMKgwqDCoMKgwqDCoMKg ID0gaDI2NF9tcDR0b2FubmV4Yl9mbHVzaCwKPj4gwqAgfTsKPj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L2ZhdGUvaDI2NC5tYWsgYi90ZXN0cy9mYXRlL2gyNjQubWFrCj4+IGluZGV4IDBmZjNkNmRmNTUu LmQ3NWFlYmIyNTMgMTAwNjQ0Cj4+IC0tLSBhL3Rlc3RzL2ZhdGUvaDI2NC5tYWsKPj4gKysrIGIv dGVzdHMvZmF0ZS9oMjY0Lm1hawo+PiBAQCAtMjI0LDcgKzIyNCw5IEBAIEZBVEVfSDI2NC0kKGNh bGwgRlJBTUVDUkMsIE1PViwgSDI2NCkgKz0gZmF0ZS1oMjY0LXVuZXNjYXBlZC1leHRyYWRhdGEK Pj4gwqAgIyB0aGlzIHNhbXBsZSBjb250YWlucyBmaWVsZC1jb2RlZCBmcmFtZXMsIHdpdGggYm90 aCBmaWVsZHMgaW4gYSBzaW5nbGUgcGFja2V0Cj4+IMKgIEZBVEVfSDI2NC0kKGNhbGwgRlJBTUVD UkMsIE1PViwgSDI2NCkgKz0gZmF0ZS1oMjY0LXR3b2ZpZWxkcy1wYWNrZXQKPj4gLUZBVEVfSDI2 NC0kKGNhbGwgREVNTVVYLCBNT1YsIEgyNjQsIEgyNjRfTVA0VE9BTk5FWEJfQlNGKSArPSBmYXRl LWgyNjQtYnNmLW1wNHRvYW5uZXhiCj4+ICtGQVRFX0gyNjQtJChjYWxsIERFTU1VWCwgTU9WLCBI MjY0LCBIMjY0X01QNFRPQU5ORVhCX0JTRikgKz0gZmF0ZS1oMjY0LWJzZi1tcDR0b2FubmV4YiBc Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgZmF0ZS1oMjY0LWJzZi1tcDR0b2FubmV4Yi0yCj4+ICsKPj4gwqAgRkFURV9I MjY0LSQoY2FsbCBGUkFNRUNSQywgTUFUUk9TS0EsIEgyNjQpICs9IGZhdGUtaDI2NC1kaXJlY3Qt YmZmCj4+IMKgIEZBVEVfSDI2NC0kKGNhbGwgRlJBTUVDUkMsIEZMViwgSDI2NCwgU0NBTEVfRklM VEVSKSArPSBmYXRlLWgyNjQtYnJva2Vuc3BzLTI1ODAKPj4gwqAgRkFURV9IMjY0LSQoY2FsbCBG UkFNRUNSQywgTVhGLCBIMjY0LCBQQ01fUzI0TEVfREVDT0RFUiBTQ0FMRV9GSUxURVIgQVJFU0FN UExFX0ZJTFRFUikgKz0gZmF0ZS1oMjY0LXhhdmMtNDM4OQo+PiBAQCAtNDI2LDYgKzQyOCwxMCBA QCBmYXRlLWgyNjQtY29uZm9ybWFuY2Utc3ZhX25sMV9iOsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgQ01EID0gZnJhbWVjcmMgLWkgJChUQVJHRVRfU0FNCj4+IMKgIGZhdGUtaDI2 NC1jb25mb3JtYW5jZS1zdmFfbmwyX2U6wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBDTUQgPSBmcmFtZWNyYyAtaSAkKFRBUkdFVF9TQU1QTEVTKS9oMjY0LWNvbmZvcm1hbmNlL1NW QV9OTDJfRS4yNjQKPj4gwqAgZmF0ZS1oMjY0LWJzZi1tcDR0b2FubmV4YjrCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIENNRCA9IG1kNSAtaSAkKFRBUkdFVF9T QU1QTEVTKS9oMjY0L2ludGVybGFjZWRfY3JvcC5tcDQgLWM6diBjb3B5IC1mIGgyNjQKPj4gKyMg Rmlyc3QgSURSIGlzIHByZWZpeGVkIGJ5IFNQUy9QUFMKPj4gK2ZhdGUtaDI2NC1ic2YtbXA0dG9h bm5leGItMjrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQ01EID0g bWQ1IC1pICQoVEFSR0VUX1NBTVBMRVMpL2gyNjQvcHNfcHJlZml4X2ZpcnN0X2lkci5tcDQgLWM6 diBjb3B5IC1mIGgyNjQKPj4gK2ZhdGUtaDI2NC1ic2YtbXA0dG9hbm5leGItMjrCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQ01QID0gb25lbGluZQo+PiArZmF0ZS1o MjY0LWJzZi1tcDR0b2FubmV4Yi0yOsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBSRUYgPSA4NzI2MDgzOTlhOWFhYzdjZjkxYTdjNDQ3ZjM2NmYzMgo+PiDCoCBmYXRl LWgyNjQtY3JvcC10by1jb250YWluZXI6wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIENNRCA9IGZyYW1lbWQ1IC1pICQoVEFSR0VUX1NBTVBMRVMpL2gyNjQvY3JvcC10 by1jb250YWluZXItZGltcy1jYW5vbi5tb3YKPj4gwqAgZmF0ZS1oMjY0LWRpcmVjdC1iZmY6wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQ01E ID0gZnJhbWVjcmMgLWkgJChUQVJHRVRfU0FNUExFUykvaDI2NC9kaXJlY3QtYmZmLm1rdgo+IAo+ IHRoZSBzYW1wbGUgeW91IHByb3ZpZGUgaXMgPjYwMCBLQiwgYW55IGNoYW5jZSBpdCBjYW4gYmUg bWVsdGVkIGRvd24gdG8gc29tZXRoaW5nIGp1c3QgYSBmZXcgZnJhbWVzIGxvbmc/CgpJIGdvdCBh IERNQVJDIHJlamV0aW9uIG9mIG15IHByZXZpb3VzIG1haWwsIGFsc28gWmhhbyB1cGRhdGVkIHRv IHYyIC0gc28gcmVzZW5kaW5nIG15IHF1ZXN0aW9uIGp1c3QgaW4gY2FzZS4KCi1UaGlsbwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVs IG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcv bWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5r IGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLgo=