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 0DE9849620 for ; Fri, 15 Mar 2024 16:27:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 74A6368A906; Fri, 15 Mar 2024 18:27:10 +0200 (EET) Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ABFD568C558 for ; Fri, 15 Mar 2024 18:27:03 +0200 (EET) Received: from ursule.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 63610C006E for ; Fri, 15 Mar 2024 18:27:02 +0200 (EET) Received: from noel.localnet ([2600:1700:5d80:1c00::42]) by ursule.remlab.net with ESMTPSA id 7PKJNNV29GWZaBEAwZXkwQ (envelope-from ) for ; Fri, 15 Mar 2024 18:27:02 +0200 From: =?ISO-8859-1?Q?R=E9mi?= Denis-Courmont To: "ffmpeg-devel@ffmpeg.org" Date: Fri, 15 Mar 2024 18:26:38 +0200 Message-ID: <4550732.LvFx2qVVIh@noel> In-Reply-To: References: MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH] avformat: enable UDP IPv6 multicast interface selection 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: TGUgamV1ZGkgMTQgbWFycyAyMDI0LCAxMToyMjo0MCBFRVQgSWduamF0b3ZpxIcsIExhemFyIChS UykgYSDDqWNyaXQgOgo+IGF2Zm9ybWF0OiBlbmFibGUgVURQIElQdjYgbXVsdGljYXN0IGludGVy ZmFjZSBzZWxlY3Rpb24KPiAKPiBsb2NhbGFkZHIgb3B0aW9uIG5vdyBwcm9wZXJseSB3b3JrcyB3 aXRoIElQdjYgYWRkcmVzc2VzLiBQcm9wZXJseSByZXNvbHZlZAo+IGludGVyZmFjZSBpbmRleCBp biBwbGFjZXMgd2hlcmUgZGVmYXVsdCAwIGludGVyZmFjZSBpbmRleCBpcyB1c2VkIChtYXJrZWQK PiB3aXRoIFRPRE86IHdpdGhpbiB1ZHAuYykuIEFkZGVkIFNPX0JJTkRUT0RFVklDRSBmb3IgbWNh c3Qgc29ja2V0cyB0aGF0IGFyZQo+IHVzZWQgZm9yIHJlYWRpbmcgZnJvbSB0aGUgbmV0d29yay4K CkFGQUlLLCB0aGF0IGlzIHByaXZpbGVnZWQsIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIHRoZSBw dXJwb3NlIG9mIHNjb3BpbmcgCm11bHRpY2FzdC5XaGVyZSB0aGUgbmVlZCBhcmlzZXMgdG8gc3Bl Y2lmeSBhbiBpbnRlcmZhY2UgZm9yIG11bHRpY2FzdCwgdGhlcmUgCmlzIHR5cGljYWxseSBhIGRl ZGljYXRlZCBpb2N0bCBvciBmaWVsZCBvZiBhbiBpb2N0bC4KCj4gTmVlZCBmb3IgdGhpcyBhcmlz ZXMgZnJvbSB0aGUgZmFjdCB0aGF0Cj4gW2ZmeDE6OipdIGFuZCBbZmZ4Mjo6Kl0gbWNhc3QgYWRk cmVzc2VzIG5lZWQgdG8gaGF2ZSBhIGRlZmluZWQgaW50ZXJmYWNlCj4gZm9yIGJpbmRpbmcgdG8g YXZvaWQgYW1iaWd1aXR5IGJldHdlZW4gbXVsdGlwbGUgbGluay1sb2NhbCBuZXR3b3JrcyBvbiB0 aGUKPiBzYW1lIGhvc3QuIEZhaWxpbmcgdG8gc2V0IHRoaXMgb3B0aW9uIGNhdXNlcyBlcnJvcnMg b24gTGludXggc3lzdGVtcyBmb3IKPiBpbnRlcmZhY2UgYW5kIGxpbmstbG9jYWwgc2NvcGVzLgo+ Cj4gRm9yIG1jYXN0IGFkZHJlc3NlcywgYmluZCB0byBtY2FzdCBhZGRyZXNzIGlzIGF0dGVtcHRl ZCBhcyBiZWZvcmUuIEluIGNhc2UKPiB0aGF0IHRoaXMgZmFpbHMsIHdoaWNoIHdpbGwgaGFwcGVu IG9uIFdpbmRvd3MsIHNvY2tldCBpcyBib3VuZCB0bwo+IElOQUREUl9BTlkvSU42QUREUl9BTllf SU5JVCBkZXBlbmRpbmcgb24gYWRkcmVzcyBmYW1pbHkuIEFjdHVhbCBpbnRlcmZhY2UKPiBzZWxl Y3Rpb24gaXMgcGVyZm9ybWVkIHVzaW5nIHVkcF9zZXRfbXVsdGljYXN0X2ludGVyZmFjZSB0byBw b2ludCB0byB0aGUKPiBkZXNpcmVkIGludGVyZmFjZSBmb3Igc2VuZGluZy9saXN0ZW5pbmcuCj4g Cj4gVXRpbGl6YXRpb24gb2Ygc2luNl9zY29wZV9pZCBmaWVsZCBlbmFibGVzIHVzYWdlIGFuZCBh ZGVxdWF0ZSByZXNvbHZpbmcgb2YKPiBJUHY2IGFkZHJlc3NlcyB0aGF0IHV0aWxpemUgem9uZSBp bmRleCAoZS5nLiBmZTgwOjoxZmY6ZmUyMzo0NTY3Ojg5MGElZXRoMiApCj4gVGhpcyBpcyBub3Qg ZnVsbHkgc3VwcG9ydGVkIG9uIFdpbmRvd3MsIHRodXMgcmVseWluZyBvbiB0aGlzIGZpZWxkIGlz IG5vdAo+IGRvbmUgb24gV2luZG93cyBzeXN0ZW1zLgo+IAo+IENsb3NlczogIzM2OAo+IAo+IFNp Z25lZC1vZmYtYnk6IExhemFyIElnbmphdG92aWMgPExhemFyLklnbmphdG92aWNAY3ViaWMuY29t Pgo+IC0tLQo+ICBjb25maWd1cmUgICAgICAgICAgICAgfCAgMyArKwo+ICBsaWJhdmZvcm1hdC9p cC5jICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysKPiAgbGliYXZmb3JtYXQvaXAu aCAgICAgIHwgIDYgKysrKwo+ICBsaWJhdmZvcm1hdC9uZXR3b3JrLmggfCAgNiArKysrCj4gIGxp YmF2Zm9ybWF0L3VkcC5jICAgICB8IDgwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0KPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4gaW5kZXgg YzM0YmRkMTNmNS4uNzdmMDM5NDhjZSAxMDA3NTUKPiAtLS0gYS9jb25maWd1cmUKPiArKysgYi9j b25maWd1cmUKPiBAQCAtMjI1Niw2ICsyMjU2LDcgQEAgSEVBREVSU19MSVNUPSIKPiAgICAgIHZh bGdyaW5kX3ZhbGdyaW5kX2gKPiAgICAgIHdpbmRvd3NfaAo+ICAgICAgd2luc29jazJfaAo+ICsg ICAgaXBobHBhcGlfaAo+ICAiCj4gCj4gIElOVFJJTlNJQ1NfTElTVD0iCj4gQEAgLTY0MDgsNiAr NjQwOSw4IEBAIGlmICEgZGlzYWJsZWQgbmV0d29yazsgdGhlbgo+ICAgICAgICAgIGNoZWNrX3N0 cnVjdCB3aW5zb2NrMi5oICJzdHJ1Y3Qgc29ja2FkZHIiIHNhX2xlbgo+ICAgICAgICAgIGNoZWNr X3R5cGUgd3MydGNwaXAuaCAic3RydWN0IHNvY2thZGRyX2luNiIKPiAgICAgICAgICBjaGVja190 eXBlIHdzMnRjcGlwLmggInN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIgo+ICsgICAgICAgIGNoZWNr X2hlYWRlcnMgaXBobHBhcGkuaCAmJiBuZXR3b3JrX2V4dHJhbGlicys9IiAtbGlwaGxwYXBpIiB8 fAo+IGRpc2FibGUgaXBobHBhcGlfaCArICAgICAgICBjaGVja19mdW5jX2hlYWRlcnMgaXBobHBh cGkuaAo+IEdldEJlc3RJbnRlcmZhY2VFeAo+ICAgICAgZWxzZQo+ICAgICAgICAgIGRpc2FibGUg bmV0d29yawo+ICAgICAgZmkKPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaXAuYyBiL2xpYmF2 Zm9ybWF0L2lwLmMKPiBpbmRleCBiMmM3ZWYwN2U1Li40ZjJkOTk4YzM0IDEwMDY0NAo+IC0tLSBh L2xpYmF2Zm9ybWF0L2lwLmMKPiArKysgYi9saWJhdmZvcm1hdC9pcC5jCj4gQEAgLTE4LDYgKzE4 LDkgQEAKPiAgICogNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAw MjExMC0xMzAxIFVTQQo+ICAgKi8KPiAKPiArI2RlZmluZSBfREVGQVVMVF9TT1VSQ0UKPiArI2Rl ZmluZSBfU1ZJRF9TT1VSQ0UKPiArCj4gICNpbmNsdWRlIDxzdHJpbmcuaD4KPiAgI2luY2x1ZGUg ImlwLmgiCj4gICNpbmNsdWRlICJsaWJhdnV0aWwvYXZzdHJpbmcuaCIKPiBAQCAtMTU5LDMgKzE2 Miw0NSBAQCB2b2lkIGZmX2lwX3Jlc2V0X2ZpbHRlcnMoSVBTb3VyY2VGaWx0ZXJzICpmaWx0ZXJz KQo+ICAgICAgZmlsdGVycy0+bmJfaW5jbHVkZV9hZGRycyA9IDA7Cj4gICAgICBmaWx0ZXJzLT5u Yl9leGNsdWRlX2FkZHJzID0gMDsKPiAgfQo+ICsKPiArdW5zaWduZWQgaW50IGZmX2lwX3Jlc29s dmVfaW50ZXJmYWNlX2luZGV4KHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlCj4gKmxvY2FsX2FkZHIp ICt7Cj4gKyNpZiBIQVZFX1dJTlNPQ0syX0ggJiYgSEFWRV9JUEhMUEFQSV9ICj4gKyAgICBEV09S RCByZXR2YWw7Cj4gKyAgICB1bnNpZ25lZCBsb25nIGlmYWNlOwo+ICsKPiArICAgIGlmIChsb2Nh bF9hZGRyID09IE5VTEwpCj4gKyAgICAgICAgcmV0dXJuIDA7Cj4gKwo+ICsgICAgcmV0dmFsID0g R2V0QmVzdEludGVyZmFjZUV4KChzdHJ1Y3Qgc29ja2FkZHIqKWxvY2FsX2FkZHIsICZpZmFjZSk7 Cj4gKyAgICBpZiAocmV0dmFsID09IE5PX0VSUk9SKQo+ICsgICAgICAgIHJldHVybiBpZmFjZTsK PiArCj4gKyAgICByZXR1cm4gMDsKPiArI2VsaWYgIUhBVkVfV0lOU09DSzJfSAo+ICsgICAgc3Ry dWN0IGlmYWRkcnMgKmlmYWRkciwgKmlmYTsKPiArCj4gKyAgICBpZiAobG9jYWxfYWRkciA9PSBO VUxMKQo+ICsgICAgICAgIHJldHVybiAwOwo+ICsKPiArICAgIC8qIFNwZWNpYWwgY2FzZSBmb3Ig bGluay1sb2NhbCBhZGRyZXNzZXMsIHJlbGV2YW50IGludGVyZmFjZSBpcyBzdG9yZWQKPiBpbiBz aW42X3Njb3BlX2lkICovICsjaWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42ICYmCj4gZGVmaW5l ZChJTjZfSVNfQUREUl9MSU5LTE9DQUwpCj4gKyAgICBpZiAobG9jYWxfYWRkci0+c3NfZmFtaWx5 ID09IEFGX0lORVQ2ICYmCj4gSU42X0lTX0FERFJfTElOS0xPQ0FMKCYoKHN0cnVjdCBzb2NrYWRk cl9pbjYqKWxvY2FsX2FkZHIpLT5zaW42X2FkZHIpKSB7CgpJbnZhbGlkIGNhc3QsIGJyZWFrcyBh bGlhc2luZywgQUZBSUNULgoKPiArIAo+ICAgICAgIHVuc2lnbmVkIGludCBpbnRlcmZhY2U7Cj4g KyAgICAgICAgaW50ZXJmYWNlID0gKChzdHJ1Y3Qgc29ja2FkZHJfaW42Kilsb2NhbF9hZGRyKS0+ c2luNl9zY29wZV9pZDsKCj4gKwo+ICsgICAgICAgIGlmIChpbnRlcmZhY2UgIT0gMCkKPiArICAg ICAgICAgICAgcmV0dXJuIGludGVyZmFjZTsKPiArICAgIH0KPiArI2VuZGlmCj4gKyAgICBpZiAo Z2V0aWZhZGRycygmaWZhZGRyKSA9PSAtMSkKPiArICAgICAgICByZXR1cm4gMDsKPiArCj4gKyAg ICBmb3IgKGlmYSA9IGlmYWRkcjsgaWZhICE9IE5VTEw7IGlmYSA9IGlmYS0+aWZhX25leHQpIHsK PiArICAgICAgICBpZiAoaWZhLT5pZmFfYWRkciAhPSBOVUxMICYmIGNvbXBhcmVfYWRkcigoc3Ry dWN0Cj4gc29ja2FkZHJfc3RvcmFnZSopaWZhLT5pZmFfYWRkciwgbG9jYWxfYWRkcikgPT0gMCkg KyAgICAgICAgICAgIHJldHVybgo+IGlmX25hbWV0b2luZGV4KGlmYS0+aWZhX25hbWUpOwoKPiAr ICAgIH0KPiArCj4gKyAgICByZXR1cm4gMDsKPiArI2VuZGlmCj4gK30KPiBkaWZmIC0tZ2l0IGEv bGliYXZmb3JtYXQvaXAuaCBiL2xpYmF2Zm9ybWF0L2lwLmgKPiBpbmRleCBiNzZjZGFiOTFjLi40 MDg1ZTk2ZjA4IDEwMDY0NAo+IC0tLSBhL2xpYmF2Zm9ybWF0L2lwLmgKPiArKysgYi9saWJhdmZv cm1hdC9pcC5oCj4gQEAgLTY5LDQgKzY5LDEwIEBAIGludCBmZl9pcF9wYXJzZV9ibG9ja3Modm9p ZCAqbG9nX2N0eCwgY29uc3QgY2hhciAqYnVmLAo+IElQU291cmNlRmlsdGVycyAqZmlsdGVycykg Ki8KPiAgdm9pZCBmZl9pcF9yZXNldF9maWx0ZXJzKElQU291cmNlRmlsdGVycyAqZmlsdGVycyk7 Cj4gCj4gKy8qKgo+ICsgKiBSZXNvbHZlcyBJUCBhZGRyZXNzIHRvIGFuIGFzc29jaWF0ZWQgaW50 ZXJmYWNlIGluZGV4Cj4gKyAqIEByZXR1cm4gaW50ZXJmYWNlIGluZGV4LCAwIGFzIGRlZmF1bHQg aW50ZXJmYWNlIHZhbHVlIG9uIGVycm9yCj4gKyAqLwo+ICt1bnNpZ25lZCBpbnQgZmZfaXBfcmVz b2x2ZV9pbnRlcmZhY2VfaW5kZXgoc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UKPiAqbG9jYWxfYWRk cik7ICsKPiAgI2VuZGlmIC8qIEFWRk9STUFUX0lQX0ggKi8KPiBkaWZmIC0tZ2l0IGEvbGliYXZm b3JtYXQvbmV0d29yay5oIGIvbGliYXZmb3JtYXQvbmV0d29yay5oCj4gaW5kZXggY2EyMTQwODdm Yy4uMjQ2MWI2NTFkNCAxMDA2NDQKPiAtLS0gYS9saWJhdmZvcm1hdC9uZXR3b3JrLmgKPiArKysg Yi9saWJhdmZvcm1hdC9uZXR3b3JrLmgKPiBAQCAtMzgsNiArMzgsMTAgQEAKPiAgI2luY2x1ZGUg PHdpbnNvY2syLmg+Cj4gICNpbmNsdWRlIDx3czJ0Y3BpcC5oPgo+IAo+ICsjaWYgSEFWRV9JUEhM UEFQSV9ICj4gKyNpbmNsdWRlIDxpcGhscGFwaS5oPgo+ICsjZW5kaWYKPiArCj4gICNpZm5kZWYg RVBST1RPTk9TVVBQT1JUCj4gICNkZWZpbmUgRVBST1RPTk9TVVBQT1JUIFdTQUVQUk9UT05PU1VQ UE9SVAo+ICAjZW5kaWYKPiBAQCAtNjQsNiArNjgsOCBAQCBpbnQgZmZfbmV0ZXJybm8odm9pZCk7 Cj4gICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+Cj4gICNpbmNsdWRlIDxuZXRpbmV0L3RjcC5oPgo+ ICAjaW5jbHVkZSA8bmV0ZGIuaD4KPiArI2luY2x1ZGUgPG5ldC9pZi5oPgo+ICsjaW5jbHVkZSA8 aWZhZGRycy5oPgo+IAo+ICAjZGVmaW5lIGZmX25ldGVycm5vKCkgQVZFUlJPUihlcnJubykKPiAg I2VuZGlmIC8qIEhBVkVfV0lOU09DSzJfSCAqLwo+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC91 ZHAuYyBiL2xpYmF2Zm9ybWF0L3VkcC5jCj4gaW5kZXggZDk1MTRmNTAyNi4uOWI4Y2E3NDI4MiAx MDA2NDQKPiAtLS0gYS9saWJhdmZvcm1hdC91ZHAuYwo+ICsrKyBiL2xpYmF2Zm9ybWF0L3VkcC5j Cj4gQEAgLTIyMCw4ICsyMjAsNyBAQCBzdGF0aWMgaW50IHVkcF9qb2luX211bHRpY2FzdF9ncm91 cChpbnQgc29ja2ZkLCBzdHJ1Y3QKPiBzb2NrYWRkciAqYWRkciwgc3RydWN0IGlwdjZfbXJlcSBt cmVxNjsKPiAKPiAgICAgICAgICBtZW1jcHkoJm1yZXE2LmlwdjZtcl9tdWx0aWFkZHIsICYoKChz dHJ1Y3Qgc29ja2FkZHJfaW42Cj4gKilhZGRyKS0+c2luNl9hZGRyKSwgc2l6ZW9mKHN0cnVjdCBp bjZfYWRkcikpOyAtICAgICAgICAvL1RPRE86IEludGVyZmFjZQo+IGluZGV4IHNob3VsZCBiZSBs b29rZWQgdXAgZnJvbSBsb2NhbF9hZGRyIC0gICAgICAgIG1yZXE2LmlwdjZtcl9pbnRlcmZhY2Ug PQo+IDA7Cj4gKyAgICAgICAgbXJlcTYuaXB2Nm1yX2ludGVyZmFjZSA9IGZmX2lwX3Jlc29sdmVf aW50ZXJmYWNlX2luZGV4KChzdHJ1Y3QKPiBzb2NrYWRkcl9zdG9yYWdlICopbG9jYWxfYWRkcik7 IGlmIChzZXRzb2Nrb3B0KHNvY2tmZCwgSVBQUk9UT19JUFY2LAo+IElQVjZfQUREX01FTUJFUlNI SVAsICZtcmVxNiwgc2l6ZW9mKG1yZXE2KSkgPCAwKSB7IGZmX2xvZ19uZXRfZXJyb3IobG9nY3R4 LAo+IEFWX0xPR19FUlJPUiwgInNldHNvY2tvcHQoSVBWNl9BRERfTUVNQkVSU0hJUCkiKTsgcmV0 dXJuIGZmX25ldGVycm5vKCk7Cj4gQEAgLTIzMSw2ICsyMzAsMzggQEAgc3RhdGljIGludCB1ZHBf am9pbl9tdWx0aWNhc3RfZ3JvdXAoaW50IHNvY2tmZCwgc3RydWN0Cj4gc29ja2FkZHIgKmFkZHIs IHJldHVybiAwOwo+ICB9Cj4gCj4gK3N0YXRpYyBpbnQgdWRwX3NldF9tdWx0aWNhc3RfaW50ZXJm YWNlKGludCBzb2NrZmQsIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyICpsb2NhbF9hZGRyLCB2b2lkCj4g KmxvZ2N0eCkgK3sKPiArI2lmZGVmIElQX01VTFRJQ0FTVF9JRgo+ICsgICAgaWYgKGFkZHItPnNh X2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4gKyAgICAgICAgc3RydWN0IGlwX21yZXEgbXJlcTsKPiAr Cj4gKyAgICAgICAgbXJlcS5pbXJfbXVsdGlhZGRyLnNfYWRkciA9ICgoc3RydWN0IHNvY2thZGRy X2luCj4gKilhZGRyKS0+c2luX2FkZHIuc19hZGRyOyArICAgICAgICBpZiAobG9jYWxfYWRkcikK PiArICAgICAgICAgICAgbXJlcS5pbXJfaW50ZXJmYWNlID0gKChzdHJ1Y3Qgc29ja2FkZHJfaW4K PiAqKWxvY2FsX2FkZHIpLT5zaW5fYWRkcjsgKyAgICAgICAgZWxzZQo+ICsgICAgICAgICAgICBt cmVxLmltcl9pbnRlcmZhY2Uuc19hZGRyID0gSU5BRERSX0FOWTsKPiArCj4gKyAgICAgICAgaWYg KHNldHNvY2tvcHQoc29ja2ZkLCBJUFBST1RPX0lQLCBJUF9NVUxUSUNBU1RfSUYsIChjb25zdCB2 b2lkCj4gKikmbXJlcSwgc2l6ZW9mKG1yZXEpKSA8IDApIHsgKyAgICAgICAgICAgIGZmX2xvZ19u ZXRfZXJyb3IobG9nY3R4LAo+IEFWX0xPR19FUlJPUiwgInNldHNvY2tvcHQoSVBfTVVMVElDQVNU X0lGKSIpOyArICAgICAgICAgICAgcmV0dXJuCj4gZmZfbmV0ZXJybm8oKTsKPiArICAgICAgICB9 Cj4gKyAgICB9Cj4gKyNlbmRpZgo+ICsjaWYgZGVmaW5lZChJUFY2X01VTFRJQ0FTVF9JRikgJiYg ZGVmaW5lZChJUFBST1RPX0lQVjYpCj4gKyAgICBpZiAoYWRkci0+c2FfZmFtaWx5ID09IEFGX0lO RVQ2KSB7Cj4gKyAgICAgICAgdW5zaWduZWQgaW50IGlmYWNlID0gZmZfaXBfcmVzb2x2ZV9pbnRl cmZhY2VfaW5kZXgoKHN0cnVjdAo+IHNvY2thZGRyX3N0b3JhZ2UgKilsb2NhbF9hZGRyKTsgKwo+ ICsgICAgICAgIGlmIChzZXRzb2Nrb3B0KHNvY2tmZCwgSVBQUk9UT19JUFY2LCBJUFY2X01VTFRJ Q0FTVF9JRiwgJmlmYWNlLAo+IHNpemVvZih1bnNpZ25lZCBpbnQpKSA8IDApIHsgKyAgICAgICAg ICAgIGZmX2xvZ19uZXRfZXJyb3IobG9nY3R4LAo+IEFWX0xPR19FUlJPUiwgInNldHNvY2tvcHQo SVBWNl9NVUxUSUNBU1RfSUYpIik7ICsgICAgICAgICAgICByZXR1cm4KPiBmZl9uZXRlcnJubygp Owo+ICsgICAgICAgIH0KPiArICAgIH0KPiArI2VuZGlmCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ ICsKPiAgc3RhdGljIGludCB1ZHBfbGVhdmVfbXVsdGljYXN0X2dyb3VwKGludCBzb2NrZmQsIHN0 cnVjdCBzb2NrYWRkciAqYWRkciwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBzb2NrYWRkciAqbG9jYWxfYWRkciwgdm9pZAo+ICpsb2djdHgpIHsKPiBAQCAt MjU0LDggKzI4NSw3IEBAIHN0YXRpYyBpbnQgdWRwX2xlYXZlX211bHRpY2FzdF9ncm91cChpbnQg c29ja2ZkLCBzdHJ1Y3QKPiBzb2NrYWRkciAqYWRkciwgc3RydWN0IGlwdjZfbXJlcSBtcmVxNjsK PiAKPiAgICAgICAgICBtZW1jcHkoJm1yZXE2LmlwdjZtcl9tdWx0aWFkZHIsICYoKChzdHJ1Y3Qg c29ja2FkZHJfaW42Cj4gKilhZGRyKS0+c2luNl9hZGRyKSwgc2l6ZW9mKHN0cnVjdCBpbjZfYWRk cikpOyAtICAgICAgICAvL1RPRE86IEludGVyZmFjZQo+IGluZGV4IHNob3VsZCBiZSBsb29rZWQg dXAgZnJvbSBsb2NhbF9hZGRyIC0gICAgICAgIG1yZXE2LmlwdjZtcl9pbnRlcmZhY2UgPQo+IDA7 Cj4gKyAgICAgICAgbXJlcTYuaXB2Nm1yX2ludGVyZmFjZSA9IGZmX2lwX3Jlc29sdmVfaW50ZXJm YWNlX2luZGV4KChzdHJ1Y3QKPiBzb2NrYWRkcl9zdG9yYWdlICopbG9jYWxfYWRkcik7IGlmIChz ZXRzb2Nrb3B0KHNvY2tmZCwgSVBQUk9UT19JUFY2LAo+IElQVjZfRFJPUF9NRU1CRVJTSElQLCAm bXJlcTYsIHNpemVvZihtcmVxNikpIDwgMCkgewo+IGZmX2xvZ19uZXRfZXJyb3IobG9nY3R4LCBB Vl9MT0dfRVJST1IsICJzZXRzb2Nrb3B0KElQVjZfRFJPUF9NRU1CRVJTSElQKSIpOwo+IHJldHVy biAtMTsKPiBAQCAtMjgyLDggKzMxMiw3IEBAIHN0YXRpYyBpbnQgdWRwX3NldF9tdWx0aWNhc3Rf c291cmNlcyhVUkxDb250ZXh0ICpoLAo+ICAgICAgICAgICAgICBzdHJ1Y3QgZ3JvdXBfc291cmNl X3JlcSBtcmVxczsKPiAgICAgICAgICAgICAgaW50IGxldmVsID0gYWRkci0+c2FfZmFtaWx5ID09 IEFGX0lORVQgPyBJUFBST1RPX0lQIDoKPiBJUFBST1RPX0lQVjY7Cj4gCj4gLSAgICAgICAgICAg IC8vVE9ETzogSW50ZXJmYWNlIGluZGV4IHNob3VsZCBiZSBsb29rZWQgdXAgZnJvbSBsb2NhbF9h ZGRyCj4gLSAgICAgICAgICAgIG1yZXFzLmdzcl9pbnRlcmZhY2UgPSAwOwo+ICsgICAgICAgICAg ICBtcmVxcy5nc3JfaW50ZXJmYWNlID0KPiBmZl9pcF9yZXNvbHZlX2ludGVyZmFjZV9pbmRleChs b2NhbF9hZGRyKTsgbWVtY3B5KCZtcmVxcy5nc3JfZ3JvdXAsIGFkZHIsCj4gYWRkcl9sZW4pOwo+ ICAgICAgICAgICAgICBtZW1jcHkoJm1yZXFzLmdzcl9zb3VyY2UsICZzb3VyY2VzW2ldLCBzaXpl b2YoKnNvdXJjZXMpKTsKPiAKPiBAQCAtODM5LDEwICs4NjgsMzkgQEAgc3RhdGljIGludCB1ZHBf b3BlbihVUkxDb250ZXh0ICpoLCBjb25zdCBjaGFyICp1cmksCj4gaW50IGZsYWdzKSAqIHBvcnQu IFRoaXMgZmFpbHMgb24gd2luZG93cy4gVGhpcyBtYWtlcyBzZW5kaW5nIHRvIHRoZSBzYW1lCj4g YWRkcmVzcyAqIHVzaW5nIHNlbmR0bygpIGZhaWwsIHNvIG9ubHkgZG8gaXQgaWYgd2UncmUgb3Bl bmVkIGluIHJlYWQtb25seQo+IG1vZGUuICovIGlmIChzLT5pc19tdWx0aWNhc3QgJiYgKGgtPmZs YWdzICYgQVZJT19GTEFHX1JFQUQpKSB7Cj4gKyNpZiBkZWZpbmVkKFNPX0JJTkRUT0RFVklDRSkg JiYgIUhBVkVfV0lOU09DSzJfSAo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgc3RydWN0IGlm cmVxIGlmcjsKPiArICAgICAgICAgICAgdW5zaWduZWQgaW50IGlmYWNlOwo+ICsgICAgICAgICAg ICBpZmFjZSA9IGZmX2lwX3Jlc29sdmVfaW50ZXJmYWNlX2luZGV4KChzdHJ1Y3Qgc29ja2FkZHJf c3RvcmFnZQo+ICopJnMtPmxvY2FsX2FkZHJfc3RvcmFnZSk7ICsgICAgICAgICAgICBtZW1zZXQo JmlmciwgMCwgc2l6ZW9mKGlmcikpOwo+ICsKPiArICAgICAgICAgICAgaWYgKGlmX2luZGV4dG9u YW1lKGlmYWNlLCBpZnIuaWZyX25hbWUpKSB7Cj4gKyAgICAgICAgICAgICAgICBpZiAoc2V0c29j a29wdCh1ZHBfZmQsIFNPTF9TT0NLRVQsIFNPX0JJTkRUT0RFVklDRSwgKHZvaWQKPiAqKSZpZnIs IHNpemVvZihpZnIpKSA8IDApIHsgKyAgICAgICAgICAgICAgICAgICAgcGVycm9yKCJzZXRzb2Nr b3B0Cj4gU09fQklORFRPREVWSUNFIik7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAg ICAgIH0KPiArICAgICAgICB9Cj4gKyNlbmRpZiAvLyBkZWZpbmVkKFNPX0JJTkRUT0RFVklDRSkg JiYgIUhBVkVfV0lOU09DSzJfSAo+ICAgICAgICAgIGJpbmRfcmV0ID0gYmluZCh1ZHBfZmQsKHN0 cnVjdCBzb2NrYWRkciAqKSZzLT5kZXN0X2FkZHIsIGxlbik7Cj4gICAgICB9Cj4gLSAgICAvKiBi aW5kIHRvIHRoZSBsb2NhbCBhZGRyZXNzIGlmIG5vdCBtdWx0aWNhc3Qgb3IgaWYgdGhlIG11bHRp Y2FzdAo+IC0gICAgICogYmluZCBmYWlsZWQgKi8KPiArCj4gKyAgICAvKiBiaW5kIHRvIEFERFJf QU5ZIGlmIHRoZSBtdWx0aWNhc3QgYmluZCBmYWlsZWQgKi8KPiArICAgIGlmIChzLT5pc19tdWx0 aWNhc3QgJiYgYmluZF9yZXQgPCAwKSB7Cj4gKyAgICAgICAgc3RydWN0IGFkZHJpbmZvICpyZXM7 Cj4gKwo+ICsgICAgICAgIGlmIChzLT5kZXN0X2FkZHIuc3NfZmFtaWx5ID09IEFGX0lORVQpCj4g KyAgICAgICAgICAgIHJlcyA9IGZmX2lwX3Jlc29sdmVfaG9zdChoLCAiMC4wLjAuMCIsIDAsIFNP Q0tfREdSQU0sCj4gQUZfVU5TUEVDLCAwKTsgKyAgICAgICAgZWxzZSBpZiAocy0+ZGVzdF9hZGRy LnNzX2ZhbWlseSA9PSBBRl9JTkVUNikKPiArICAgICAgICAgICAgcmVzID0gZmZfaXBfcmVzb2x2 ZV9ob3N0KGgsICI6OiIsIDAsIFNPQ0tfREdSQU0sIEFGX1VOU1BFQywgMCk7Cj4gKwo+ICsgICAg ICAgIGlmIChyZXMgJiYgcmVzLT5haV9hZGRyKSB7Cj4gKyAgICAgICAgICAgIGJpbmRfcmV0ID0g YmluZCh1ZHBfZmQsIHJlcy0+YWlfYWRkciwgcmVzLT5haV9hZGRybGVuKTsKPiArICAgICAgICB9 Cj4gKwo+ICsgICAgICAgIGZyZWVhZGRyaW5mbyhyZXMpOwo+ICsgICAgfQo+ICsKPiAgICAgIC8q IHRoZSBiaW5kIGlzIG5lZWRlZCB0byBnaXZlIGEgcG9ydCB0byB0aGUgc29ja2V0IG5vdyAqLwo+ ICAgICAgaWYgKGJpbmRfcmV0IDwgMCAmJiBiaW5kKHVkcF9mZCwoc3RydWN0IHNvY2thZGRyICop Jm15X2FkZHIsIGxlbikgPCAwKQo+IHsgZmZfbG9nX25ldF9lcnJvcihoLCBBVl9MT0dfRVJST1Is ICJiaW5kIGZhaWxlZCIpOwo+IEBAIC04NTUsNiArOTEzLDEyIEBAIHN0YXRpYyBpbnQgdWRwX29w ZW4oVVJMQ29udGV4dCAqaCwgY29uc3QgY2hhciAqdXJpLCBpbnQKPiBmbGFncykgcy0+bG9jYWxf cG9ydCA9IHVkcF9wb3J0KCZteV9hZGRyLCBsZW4pOwo+IAo+ICAgICAgaWYgKHMtPmlzX211bHRp Y2FzdCkgewo+ICsgICAgICAgIGlmICgocmV0ID0gdWRwX3NldF9tdWx0aWNhc3RfaW50ZXJmYWNl KHVkcF9mZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1 Y3Qgc29ja2FkZHIgKikmcy0+ZGVzdF9hZGRyLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cnVjdCBzb2NrYWRkcgo+ICopJnMtPmxvY2FsX2FkZHJfc3RvcmFn ZSwgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoKSkgPCAwKQo+ICsg ICAgICAgICAgICBnb3RvIGZhaWw7Cj4gKwo+ICAgICAgICAgIGlmIChoLT5mbGFncyAmIEFWSU9f RkxBR19XUklURSkgewo+ICAgICAgICAgICAgICAvKiBvdXRwdXQgKi8KPiAgICAgICAgICAgICAg aWYgKChyZXQgPSB1ZHBfc2V0X211bHRpY2FzdF90dGwodWRwX2ZkLCBzLT50dGwsIChzdHJ1Y3QK PiBzb2NrYWRkciAqKSZzLT5kZXN0X2FkZHIsIGgpKSA8IDApIC0tCj4gMi40MS4wLndpbmRvd3Mu Mgo+IAo+IAo+IFRoaXMgbWVzc2FnZSBoYXMgYmVlbiBtYXJrZWQgYXMgUHVibGljIG9uIDAzLzE0 LzIwMjQgMDk6MjJaLgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcu b3JnCj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4g Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRl dmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVs IG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcv bWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5r IGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLgo=