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 A701D47062 for ; Mon, 25 Sep 2023 19:54:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8F6D168C9CB; Mon, 25 Sep 2023 22:54:30 +0300 (EEST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E9D9B68C702 for ; Mon, 25 Sep 2023 22:54:23 +0300 (EEST) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1c6219307b2so15659745ad.1 for ; Mon, 25 Sep 2023 12:54:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695671661; x=1696276461; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=XWAQDLiAU5jnUn4grYxSTWgzfoNrdyx+Jk0ZboFhQ/s=; b=lO1gfdH/uTc2zlwPTX+1r9wPLKi3OD6cHlw7YjSWJ0MqZW32rRJrdgZWxWGdYh1SNr 9p0CQLDJ9CBYFVjh+ACNBGTV4Of+lg05TGRLNV8IibtVnytsa9g+z1YKZKslsXjw80cN JrKo5m/xjTAvk4svFKePTiUlEQFtW4IPJNd8HpN/g1LN4DjmEWXSr3xL6Qd00Lw9FvDm i3vYwkv9xdhuN8ZDCyvmhwPn1BHpaTq/lcoI+Evha1VN0ZXaueP76gaKhrVkme835ZvY zFfAthJvwU9rIf56pYFsI2ua4ImKJzoqLzJ6u72WDQJmU2B0JB5xlPXDk5O0abx9jqL0 kPqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695671661; x=1696276461; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XWAQDLiAU5jnUn4grYxSTWgzfoNrdyx+Jk0ZboFhQ/s=; b=huoG3cdXbejwE0xu0MpRonkA1yyZMrLvoUa2KPSpCtt2qrMc7QoO+Y+U8lxItwtHB9 56lGM8qMKsI3SB5yRmx23jxdBvU97i8XbaZr9ehnwwoyf/LSeUBdqKNR+7jcjIVprIO3 UIdy/EpnurbchqElFpuo12+JrTcJR2XVJAvaBeRWBxB+1ycb47bfYjQzkbxphcHDVlhA 6kKAZY6Z9y0Yk8KQFiDxwZHC+dTfxwevRICRahDxVRW8KT9nXarHyBejt7rkBvQrWykP gtGuVv2Irj/neyvNqpIKg3K6qYaNz15c5CiMotfBvj6e9qyiAd+q917wtO6qI6/oRaVV iDXg== X-Gm-Message-State: AOJu0YzEkiRooKExBuBnPkg7KM+u/xZ2kxKjEv8jWOONs/8P96CTGrtp J2P7D6rNhB1adQBJh/Daq3rhZQfZCew= X-Google-Smtp-Source: AGHT+IERROR8LNspeeXobJxm1IiySyc0Fc7h1p169l3EeNBH0oC0esl48fWasYfgKQdFeM1csNwmXg== X-Received: by 2002:a17:902:b192:b0:1c6:2b5e:824e with SMTP id s18-20020a170902b19200b001c62b5e824emr891688plr.28.1695671660659; Mon, 25 Sep 2023 12:54:20 -0700 (PDT) Received: from [192.168.0.10] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id jg6-20020a17090326c600b001c61df93afdsm2226639plb.59.2023.09.25.12.54.19 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 25 Sep 2023 12:54:19 -0700 (PDT) Message-ID: <04fc70a5-b697-aa62-b05e-e77507052c66@gmail.com> Date: Mon, 25 Sep 2023 16:54:20 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 From: James Almer To: ffmpeg-devel@ffmpeg.org References: <20230906174431.45558-1-jamrial@gmail.com> <169470621879.20400.7203675987362320361@lain.khirnov.net> Content-Language: en-US In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH 00/10 v4][RFC] AVCodecContext and AVCodecParameters side data 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: T24gOS8xNC8yMDIzIDE6NDAgUE0sIEphbWVzIEFsbWVyIHdyb3RlOgo+IE9uIDkvMTQvMjAyMyAx Mjo0MyBQTSwgQW50b24gS2hpcm5vdiB3cm90ZToKPj4gUXVvdGluZyBKYW1lcyBBbG1lciAoMjAy My0wOS0wNiAxOTo0NDoyMCkKPj4+IENoYW5nZXMgc2luY2UgdGhlIHByZXZpb3VzIHZlcnNpb246 Cj4+PiAtIFJlbW92ZWQgdGhlIEFWUGFja2V0U2lkZURhdGFTZXQgZnJvbSBBVkNvZGVjQ29udGV4 dCwgdXNpbmcgaW5zdGVhZCB0aGUKPj4+IMKgwqAgZXhpc3RpbmcgY29kZWRfc2lkZV9kYXRhIGZp ZWxkLCBhdCBBbnRvbidzIHJlcXVlc3QuCj4+Pgo+Pj4gSSBzdGlsbCBwcmVmZXIgdXNpbmcgYSBu ZXcgZmllbGQgb2YgdHlwZSBBVlBhY2tldFNpZGVEYXRhU2V0LCBnaXZlbiAKPj4+IHRoYXQgdGhl Cj4+PiB1c2VyIGNhbiBjdXJyZW50bHkgb25seSBmaWxsIGNvZGVkX3NpZGVfZGF0YSBtYW51YWxs eSAoU2VlIHRoZSAKPj4+IGltcGxlbWVudGF0aW9uCj4+PiBpbiB0aGUgY29kZWNwYXIgY29weSBm dW5jdGlvbnMsIHdoaWNoIG5vbiBsYXZmIHVzZXJzIHdvdWxkIG5lZWQgdG8gCj4+PiByZXBsaWNh dGUpLAo+Pj4gYW5kIG1vcmUgc28gY29uc2lkZXJpbmcgY29kZWRfc2lkZV9kYXRhIGlzIGEgZmll bGQgcHJldHR5IG11Y2ggCj4+PiBub3RoaW5nIGJ1dCBsYXZmCj4+PiB1c2VzLgo+Pj4KPj4+IE9w aW5pb25zIGFyZSB2ZXJ5IHdlbGNvbWUgYW5kIG5lZWRlZC4KPj4KPj4gVG8gcHJvdmlkZSBtb3Jl IGNvbnRleHQgb24gdGhlIGlzc3VlOgo+Pgo+PiBBVlBhY2tldHMgY2FuIGhhdmUgc2lkZSBkYXRh IGF0dGFjaGVkIHRvIHRoZW0sIGluIHRoZSBmb3JtIG9mCj4+IEFWUGFja2V0LntzaWRlX2RhdGEs c2lkZV9kYXRhX2VsZW1zfSBhcnJheStjb3VudC4KPj4KPj4gU29tZSBvZiB0aGlzIHNpZGUgZGF0 YSBjYW4gb2NjYXNpb25hbGx5IGJlIHN0b3JlZCBpbiBnbG9iYWwgaGVhZGVycywKPj4gZS5nLiBp biBjb250YWluZXJzIG9yIGV4dHJhZGF0YS4gV2UgaGF2ZSBzb21lIGxpbWl0ZWQgc3VwcG9ydCBm b3IgdGhpczoKPj4gKiBBVlN0cmVhbS57c2lkZV9kYXRhLG5iX3NpZGVfZGF0YX0gYXJyYXkrY291 bnQgYWxsb3dzIGRlbXV4ZXJzIHRvCj4+IMKgwqAgZXhwb3J0IHRoaXMgdG8gdXNlciwgYW5kIG11 eGVycyB0byBhY2NlcHQgaXQgZnJvbSB0aGUgdXNlcgo+PiAqIEFWQ29kZWNDb250ZXh0Lntjb2Rl ZF9zaWRlX2RhdGEsbmJfY29kZWRfc2lkZV9kYXRhfSBhbGxvd3MgZGVjb2RlcnMgdG8KPj4gwqDC oCBhY2NlcHQgaXQgZnJvbSB0aGUgdXNlciAoaW4gcHJpbmNpcGxlLCBpbiBwcmFjdGljZSBpdCBp cyBub3QgdXNlZCksCj4+IMKgwqAgYW5kIGVuY29kZXJzIHRvIGV4cG9ydCBpdCB0byB0aGUgdXNl ciAodGhpcyBpcyB1c2VkLCBidXQgbm90IHZlcnkKPj4gwqDCoCBtdWNoKQo+Pgo+PiBUaGUgYnJv YWQgaWRlYSBmb3IgdGhpcyBzZXQgaXMgYWRkaW5nIHN0cmVhbS1nbG9iYWwgImNvZGVkL3BhY2tl dCIgc2lkZQo+PiBkYXRhIHRvIEFWQ29kZWNQYXJhbWV0ZXJzLCBzbyB0aGF0IGl0IGNhbiBiZSBu YXR1cmFsbHkgY29tbXVuaWNhdGVkIGZyb20KPj4gZGVtdXhlcnMgdG8gYml0c3RyZWFtIGZpbHRl cnMgdG8gZGVjb2RlcnMsIGFuZCBmcm9tIGVuY29kZXJzIHRvCj4+IGJpdHN0cmVhbSBmaWx0ZXJz IHRvIG11eGVycy4gU2luY2UgQVZTdHJlYW0gYWxyZWFkeSBjb250YWlucyBhbgo+PiBBVkNvZGVj UGFyYW1ldGVycyBpbnN0YW5jZSwgdGhlIGFib3ZlbWVudGlvbmVkIEFWU3RyZWFtLnNpZGVfZGF0 YQo+PiBiZWNvbWVzIHJlZHVuZGFudCBhbmQgaXMgZGVwcmVjYXRlZCwgdGhlIG11eGVyL2RlbXV4 ZXIgc3RyZWFtLWdsb2JhbAo+PiBzaWRlIGRhdGEgd291bGQgYmUgcGFzc2VkIHRocm91Z2ggQVZT dHJlYW0uY29kZWNwYXIuCj4+Cj4+IFRoZSBvcmlnaW5hbCB2ZXJzaW9uIHByb3Bvc2VkIGJ5IEph bWVzIGFkZHMgYSBuZXcgc3RydWN0LCB0aGF0IGJ1bmRsZXMKPj4gdGhlIHNpZGUgZGF0YSBhcnJh eStjb3VudCwgYW5kIGEgc2V0IG9mIGhlbHBlcnMgb3BlcmF0aW5nIG9uIHRoaXMKPj4gc3RydWN0 LiBUaGVuIHRoaXMgbmV3IHN0cnVjdCBpcyBhZGRlZCB0byBBVkNvZGVjUGFyYW1ldGVycyBhbmQK Pj4gQVZDb2RlY0NvbnRleHQsIHdoaWNoIHJlcGxhY2VzIHRoZSBhYm92ZW1lbnRpb25lZCBBVlN0 cmVhbSBhbmQKPj4gQVZDb2RlY0NvbnRleHQgc2lkZSBkYXRhIGFycmF5K2NvdW50LiBOb3RhYmx5 IEFWUGFja2V0IGlzIGxlZnQgYXMtaXMsCj4+IGJlY2F1c2UgaXRzIHNpZGUgZGF0YSBpcyB3aWRl bHkgdXNlZCBhbmQgcmVwbGFjaW5nIGFycmF5K2NvdW50IGJ5IHRoaXMKPj4gbmV3IHN0cnVjdCB3 b3VsZCBiZSBhIHZlcnkgaW50cnVzaXZlIGJyZWFrIGZvciBsaXR0bGUgZ2Fpbi4KPiAKPiBJbiB0 aGUgZnV0dXJlLCBwYWNrZXQgc2lkZSBkYXRhIGNvdWxkIGJlIG1hZGUgcmVmIGNvdW50ZWQuIEZv ciB0aGlzLCAKPiB3ZSdkIG5lZWQgdG8gYWRkIGEgbmV3IEFWQnVmZmVyUmVmIGZpZWxkIHRvIEFW UGFja2V0U2lkZURhdGEsIHdoaWNoIGlzIAo+IGN1cnJlbnRseSB0aWVkIHRvIHRoZSBBQkkuCj4g SWRlYWxseSwgaWYgdGhpcyBoYXBwZW5zLCBzaXplb2YoQVZQYWNrZXRTaWRlRGF0YSkgd291bGQg YmUgbWFkZSBub3QgYSAKPiBwYXJ0IG9mIHRoZSBBQkksIHB1dHRpbmcgaXQgaW4gbGluZSB3aXRo IHRoZSBBVkZyYW1lIGNvdW50ZXJwYXJ0LiBEb2luZyAKPiB0aGlzIGlzIHByZXR0eSBtdWNoIG5v dCBhbiBvcHRpb24gZm9yIHRoZSBleGlzdGluZyBhcnJheStjb3VudCBmaWVsZHMgaW4gCj4gQVZQ YWNrZXQgYW5kIEFWQ29kZWNDb250ZXh0LCBiZWNhdXNlIGV2ZXJ5b25lLCBmcm9tIGV4dGVybmFs IEFQSSB1c2VycyAKPiB0byBvdXIgb3duIEFQSSB1c2VycyBsaWtlIHRoZSBDTEkgbGFzdCBpIGNo ZWNrZWQsIGxvb3AgdGhyb3VnaCBpdCAKPiBtYW51YWxseSBhcyBub3RoaW5nIHByZXZlbnRzIHRo ZW0gdG8uIEJ1dCBpZiBhIG5ldyBmaWVsZCBvZiB0aGUgbmV3IHNldCAKPiBzdHJ1Y3QgaXMgYWRk ZWQgYXMgcmVwbGFjZW1lbnQgKGEgc3RydWN0IHdoZXJlIHRoZSBBVlBhY2tldFNpZGVEYXRhIAo+ IGZpZWxkIGlzIGFuIGFycmF5IG9mIHBvaW50ZXJzLCBhbmQgd2hvc2UgaGVscGVycyBjYW4gYmUg ZGVmaW5lZCBhcyAibXVzdCAKPiB1c2UgdG8gaGFuZGxlIHRoaXMgc3RydWN0IiksIHRoZW4gdGhp cyB3b3VsZCBub3QgYmUgYW4gaXNzdWUuCj4gCj4gSSBwcm9iYWJseSBzYWlkIGl0IHNldmVyYWwg dGltZXMsIGluY2x1ZGluZyBpbiB0aGUgYWJvdmUgcGFyYWdyYXBoLCBidXQgCj4gb25lIG9mIG15 IG9iamVjdGl2ZXMgaXMgdHJ5aW5nIHRvIHN5bmMgZnJhbWUgYW5kIHBhY2tldCBzaWRlIGRhdGEg Cj4gc3RydWN0cywgZmllbGRzIGFuZCBoZWxwZXJzLCBzaW5jZSByaWdodCBub3cgYm90aCBhcmUg Y29uc2lkZXJhYmx5IAo+IGRpZmZlcmVudC4KPiBKYW4gaGFzIGEgcGF0Y2hzZXQgYWxzbyBpbnRy b2R1Y2luZyBhIHNpZGUgZGF0YSBzZXQgZm9yIGZyYW1lcywgc28gdGhpcyAKPiBpcyB0aGUgdGlt ZSB0byB0cnkgYW5kIGFsaWduIGJvdGggYXMgbXVjaCBhcyBwb3NzaWJsZSAod2hpY2ggaSBhbHJl YWR5IAo+IHRhbGtlZCB0byBoaW0gYWJvdXQpIGFuZCBsYXlpbmcgdGhlIGdyb3VuZCBmb3IgZnV0 dXJlIGNoYW5nZXMuCj4gCj4+Cj4+IE15IG9iamVjdGlvbnMgdG8gdGhpcyBhcHByb2FjaCBhcmUK Pj4gKiBjb2RlZCBzaWRlIGRhdGEgaXMgbm93IHN0b3JlZCBkaWZmZXJlbnRseSBpbiBBVlBhY2tl dCBhbmQgaW4KPj4gwqDCoCBldmVyeXRoaW5nIGVsc2UKPj4gKiB0aGUgY2FzZSBmb3IgcmVwbGFj aW5nIEFWQ29kZWNDb250ZXh0LmNvZGVkX3NpZGVfZGF0YSBkb2VzIG5vdCBzZWVtCj4+IMKgwqAg c3VmZmljaWVudGx5IHN0cm9uZyB0byBtZQo+IAo+IEl0J3MgdXNlZCBvbmx5IGJ5IGEgaGFuZGZ1 bCBvZiBlbmNvZGVycyB0byBleHBvcnQgQ1BCIHNpZGUgZGF0YSwgd2hpY2ggCj4gcHJvYmFibHkg b25seSBsYXZmIGxvb2tzIGF0LCBhbmQgYnkgbm8gZGVjb2RlciBhdCBhbGwuIEl0J3MgYSBmaWVs ZCB0aGF0IAo+IHdvdWxkIGJlIGNvbXBsZXRlbHkgcGFpbmxlc3MgdG8gcmVwbGFjZS4KPiAKPj4K Pj4gTXkgYWx0ZXJuYXRpdmUgc3VnZ2VzdGlvbiB3YXM6Cj4+ICogYXZvaWQgYWRkaW5nIGEgbmV3 IHN0cnVjdCAod2hpY2ggbWVyZWx5IGJ1bmRsZXMgYXJyYXkrY291bnQpCj4+ICogYWRkIGEgc2V0 IG9mIGhlbHBlcnMgdGhhdCBhY2NlcHQgYXJyYXkrY291bnQgYXMgcGFyYW1ldGVycyBhbmQgb3Bl cmF0ZQo+PiDCoMKgIG9uIHRoZW0KPiAKPiBTZWUgYWJvdmUgbXkgY29tbWVudCBhYm91dCBzaXpl b2YoQVZQYWNrZXRTaWRlRGF0YSkgYW5kIHVzZXJzIGFjY2Vzc2luZyAKPiB0aGUgYXJyYXkgaXQg ZGlyZWN0bHkuCj4gCj4+ICogdXNlIHRoZXNlIGhlbHBlcnMgZm9yIGFsbCBvcGVyYXRpb25zIG9u IHNpZGUgZGF0YSBhY3Jvc3MgQVZQYWNrZXQsCj4+IMKgwqAgQVZDb2RlY0NvbnRleHQsIGFuZCBB VkNvZGVjUGFyYW1ldGVycwo+Pgo+PiBJIGhhdmUgYSBtb2RlcmF0ZWx5IHN0cm9uZyBwcmVmZXJl bmNlIGZvciB0aGlzIGFwcHJvYWNoLCBidXQgSmFtZXMKPj4gZGlzYWdyZWVzLiBNb3JlIG9waW5p b25zIGFyZSB2ZXJ5IG11Y2ggd2VsY29tZS4KClBpbmcuIFdlIHJlYWxseSBuZWVkIG9waW5pb25z IG9uIHdoYXQgYXBwcm9hY2ggdG8gdXNlLgoKSGVyZSdzIHNvbWUgdmlzdWFsIHJlcHJlc2VudGF0 aW9uIG9mIHdoYXQgaXMgYmVpbmcgZGlzY3Vzc2VkLgpDdXJyZW50bHksIHRoaW5ncyBsb29rIGxp a2UgdGhpczoKCiMjIyMjIyMjIwpTaWRlIGRhdGEgZGVmaW5pdGlvbgotLS0tLQpzdHJ1Y3QgQVZQ YWNrZXRTaWRlRGF0YSB7CiAgICAgdWludDhfdCAqZGF0YTsKICAgICBzaXplX3QgICBzaXplOwog ICAgIGVudW0gQVZQYWNrZXRTaWRlRGF0YVR5cGUgdHlwZTsKfTsKLS0tLS0KClVzZXJzCi0tLS0t CnN0cnVjdCBBVkNvZGVjQ29udGV4dCB7CiAgICAgWy4uLl0KfQoKc3RydWN0IEFWQ29kZWNQYXJh bWV0ZXJzIHsKICAgICBbLi4uXQp9CgpzdHJ1Y3QgQVZQYWNrZXQgewogICAgIFsuLi5dCiAgICAg QVZQYWNrZXRTaWRlRGF0YSAqc2lkZV9kYXRhOwogICAgIGludCBzaWRlX2RhdGFfZWxlbXM7CiAg ICAgWy4uLl0KfQp1aW50OF90KiBhdl9wYWNrZXRfbmV3X3NpZGVfZGF0YShBVlBhY2tldCAqcGt0 LCBlbnVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVlBhY2tldFNpZGVEYXRh VHlwZSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUp OwppbnQgYXZfcGFja2V0X2FkZF9zaWRlX2RhdGEoQVZQYWNrZXQgKnBrdCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlbnVtIEFWUGFja2V0U2lkZURhdGFUeXBlIHR5cGUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZGF0YSwgc2l6ZV90IHNpemUpOwp1aW50OF90 KiBhdl9wYWNrZXRfZ2V0X3NpZGVfZGF0YShjb25zdCBBVlBhY2tldCAqcGt0LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBBVlBhY2tldFNpZGVEYXRhVHlwZSB0eXBlLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpzaXplKTsKCnN0cnVjdCBB VlN0cmVhbSB7CiAgICAgWy4uLl0KICAgICBBVkNvZGVjUGFyYW1ldGVycyAqY29kZWNfcGFyOwog ICAgIEFWUGFja2V0U2lkZURhdGEgKnNpZGVfZGF0YTsKICAgICBpbnQgbmJfc2lkZV9kYXRhOwog ICAgIFsuLi5dCn07CnVpbnQ4X3QqIGF2X3N0cmVhbV9uZXdfc2lkZV9kYXRhKEFWU3RyZWFtICpz dHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIEFWUGFja2V0U2lk ZURhdGFUeXBlIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg c2l6ZSk7CmludCBhdl9zdHJlYW1fYWRkX3NpZGVfZGF0YShBVlN0cmVhbSAqc3QsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW51bSBBVlBhY2tldFNpZGVEYXRhVHlwZSB0eXBlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBzaXplKTsKdWlu dDhfdCogYXZfc3RyZWFtX2dldF9zaWRlX2RhdGEoY29uc3QgQVZTdHJlYW0gKnN0cmVhbSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQYWNrZXRTaWRlRGF0YVR5cGUg dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2l6ZSk7Ci0t LS0tCiMjIyMjIyMjIwoKVGhlIG9ubHkgd2F5IGZvciBnbG9iYWwgc2lkZSBkYXRhIGV4cG9ydGVk IGJ5IGRlbXV4ZXJzIHRvIGhpdCBkZWNvZGVycyAKb3IgYnNmcyBpcyBieSBpbmplY3RpbmcgaXQg aW50byB0aGUgZmlyc3Qgb3V0cHV0IHBhY2tldC4gVGhpcyBtZWFucyBpdCdzIApub3QgYXZhaWxh YmxlIGF0IGluaXQoKS4KVGhlIHNvbHV0aW9uIGlzIG9idmlvdXNseSBiZWluZyBhYmxlIHRvIHN0 b3JlIHRoZSBzaWRlIGRhdGEgaW4gdGhlIApkZWNvZGVyIGNvbnRleHQsIHdoaWNoIHRoZSBjYWxs ZXIgd291bGQgY29weSBmcm9tIHRoZSBkZW11eGVyIGNvbnRleHQuCk15IHN1Z2dlc3Rpb24gaXMg dG8gaW50cm9kdWNlIGEgbmV3IHN0cnVjdCB0byBob2xkIGEgc2V0IG9mIHNpZGUgZGF0YSwgCmFu ZCBoZWxwZXJzIHRoYXQgd29yayB3aXRoIGl0LCB3aGVyZWFzIEFudG9uJ3Mgc3VnZ2VzdGlvbiBp cyB0byBqdXN0IApzdG9yaW5nIHRoZSBwb2ludGVyIHRvIHNpZGUgZGF0YSBhcnJheSBhbmQgc2lk ZSBkYXRhIGFycmF5IHNpemUgZGlyZWN0bHkgCndpdGhvdXQgd3JhcHBpbmcgdGhlbS4KCk15IHN1 Z2dlc3Rpb24gd291bGQgaGF2ZSB0aGluZ3MgbG9vayBsaWtlIHRoaXM6CgojIyMjIyMjIyMKU2lk ZSBkYXRhIGRlZmluaXRpb24KLS0tLS0Kc3RydWN0IEFWUGFja2V0U2lkZURhdGEgewogICAgIHVp bnQ4X3QgKmRhdGE7CiAgICAgc2l6ZV90ICAgc2l6ZTsKICAgICBlbnVtIEFWUGFja2V0U2lkZURh dGFUeXBlIHR5cGU7Cn07CgpzdHJ1Y3QgQVZQYWNrZXRTaWRlRGF0YVNldCB7CiAgICAgQVZQYWNr ZXRTaWRlRGF0YSAqKnNkOwogICAgIGludCAgICAgICAgICAgICBuYl9zZDsKfTsKCkFWUGFja2V0 U2lkZURhdGEgKmF2X3BhY2tldF9zaWRlX2RhdGFfc2V0X25ldyhBVlBhY2tldFNpZGVEYXRhU2V0 ICpzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQ YWNrZXRTaWRlRGF0YVR5cGUgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZV90IHNpemUpOwpBVlBhY2tldFNpZGVEYXRhICphdl9wYWNrZXRfc2lkZV9k YXRhX3NldF9hZGQoQVZQYWNrZXRTaWRlRGF0YVNldCAqc2V0LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbnVtIEFWUGFja2V0U2lkZURhdGFUeXBlIHR5cGUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRhdGEsIHNp emVfdCBzaXplKTsKQVZQYWNrZXRTaWRlRGF0YSAqYXZfcGFja2V0X3NpZGVfZGF0YV9zZXRfZ2V0 KEFWUGFja2V0U2lkZURhdGFTZXQgKnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbnVtIEFWUGFja2V0U2lkZURhdGFUeXBlIHR5cGUpOwp2b2lkIGF2X3BhY2tl dF9zaWRlX2RhdGFfc2V0X3JlbW92ZShBVlBhY2tldFNpZGVEYXRhU2V0ICpzZXQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIEFWUGFja2V0U2lkZURhdGFUeXBlIHR5 cGUpOwp2b2lkIGF2X3BhY2tldF9zaWRlX2RhdGFfc2V0X3VuaW5pdChBVlBhY2tldFNpZGVEYXRh U2V0ICpzZXQpOwotLS0tLQoKVXNlcnMKLS0tLS0Kc3RydWN0IEFWQ29kZWNDb250ZXh0IHsKICAg ICBbLi4uXQogICAgIEFWUGFja2V0U2lkZURhdGFTZXQgKnNpZGVfZGF0YTsKICAgICBbLi4uXQp9 CgpzdHJ1Y3QgQVZDb2RlY1BhcmFtZXRlcnMgewogICAgIFsuLi5dCiAgICAgQVZQYWNrZXRTaWRl RGF0YVNldCAqc2lkZV9kYXRhOwogICAgIFsuLi5dCn0KCkFWUGFja2V0IGFuZCBpdHMgaGVscGVy cyB1bnRvdWNoZWQuCgpzdHJ1Y3QgQVZTdHJlYW0gewogICAgIFsuLi5dCiAgICAgQVZDb2RlY1Bh cmFtZXRlcnMgKmNvZGVjX3BhcjsKICAgICBbLi4uXQp9OwotLS0tLQoKSW4gd2hpY2ggeW91J2Qg ZG8gZm9yIGV4YW1wbGUKCmF2X3BhY2tldF9zaWRlX2RhdGFfc2V0X25ldyhhdmN0eC0+c2lkZV9k YXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWX1BLVF9EQVRBX0RJU1BMQVlNQVRS SVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGludDMyX3QpICogOSk7CmF2 X3BhY2tldF9zaWRlX2RhdGFfc2V0X25ldyhzdC0+Y29kZWNfcGFyLT5zaWRlX2RhdGEsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQVZfUEtUX0RBVEFfRElTUExBWU1BVFJJWCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoaW50MzJfdCkgKiA5KTsKYXZfcGFja2V0X3Np ZGVfZGF0YV9zZXRfZ2V0KGF2Y3R4LT5zaWRlX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQVZfUEtUX0RBVEFfRElTUExBWU1BVFJJWCk7CmF2X3BhY2tldF9zaWRlX2RhdGFfc2V0 X2dldChzdC0+Y29kZWNfcGFyLT5zaWRlX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQVZfUEtUX0RBVEFfRElTUExBWU1BVFJJWCk7CiMjIyMjIyMjIwoKV2hlcmVhcyBBbnRvbidz IHdvdWxkIGhhdmUgdGhpbmdzIGxvb2sgbGlrZSB0aGlzOgoKIyMjIyMjIyMjClNpZGUgZGF0YSBk ZWZpbml0aW9uCi0tLS0tCnN0cnVjdCBBVlBhY2tldFNpZGVEYXRhIHsKICAgICB1aW50OF90ICpk YXRhOwogICAgIHNpemVfdCAgIHNpemU7CiAgICAgZW51bSBBVlBhY2tldFNpZGVEYXRhVHlwZSB0 eXBlOwp9OwoKQVZQYWNrZXRTaWRlRGF0YSAqYXZfcGFja2V0X3NpZGVfZGF0YV9zZXRfbmV3KAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVlBhY2tldFNpZGVEYXRh ICoqc2QsIC8vIElOT1VUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVfdCAqc2Rfc2l6ZSwgLy8gSU5PVVQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW51bSBBVlBhY2tldFNpZGVEYXRhVHlwZSB0eXBlLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSk7CkFWUGFja2V0U2lkZURh dGEgKmF2X3BhY2tldF9zaWRlX2RhdGFfc2V0X2FkZCgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQVZQYWNrZXRTaWRlRGF0YSAqKnNkLCAvLyBJTk9VVAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnNkX3NpemUsIC8vIElO T1VUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQYWNr ZXRTaWRlRGF0YVR5cGUgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDhfdCAqZGF0YSwgc2l6ZV90IHNpemUpOwpBVlBhY2tldFNpZGVEYXRhICphdl9w YWNrZXRfc2lkZV9kYXRhX3NldF9nZXQoQVZQYWNrZXRTaWRlRGF0YSAqc2QsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNkX3NpemUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBBVlBhY2tldFNpZGVEYXRhVHlwZSB0 eXBlKTsKdm9pZCBhdl9wYWNrZXRfc2lkZV9kYXRhX3NldF9yZW1vdmUoQVZQYWNrZXRTaWRlRGF0 YSAqc2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnNkX3Np emUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIEFWUGFja2V0U2lk ZURhdGFUeXBlIHR5cGUpOwp2b2lkIGF2X3BhY2tldF9zaWRlX2RhdGFfc2V0X3VuaW5pdChBVlBh Y2tldFNpZGVEYXRhICpzZCk7Ci0tLS0tCgpVc2VycwotLS0tLQpzdHJ1Y3QgQVZDb2RlY0NvbnRl eHQgewogICAgIFsuLi5dCiAgICAgQVZQYWNrZXRTaWRlRGF0YSAqY29kZWRfc2lkZV9kYXRhOwog ICAgIGludCBuYl9jb2RlZF9zaWRlX2RhdGE7CiAgICAgWy4uLl0KfQoKc3RydWN0IEFWQ29kZWNQ YXJhbWV0ZXJzIHsKICAgICBbLi4uXQogICAgIEFWUGFja2V0U2lkZURhdGEgKnNpZGVfZGF0YTsK ICAgICBpbnQgbmJfc2lkZV9kYXRhOwogICAgIFsuLi5dCn0KCkFWUGFja2V0IGFuZCBpdHMgaGVs cGVycyB1bnRvdWNoZWQuCgpzdHJ1Y3QgQVZTdHJlYW0gewogICAgIFsuLi5dCiAgICAgQVZDb2Rl Y1BhcmFtZXRlcnMgKmNvZGVjX3BhcjsKICAgICBbLi4uXQp9OwotLS0tLQoKSW4gd2hpY2ggeW91 J2QgZG8gZm9yIGV4YW1wbGUKCmF2X3BhY2tldF9zaWRlX2RhdGFfc2V0X25ldygmYXZjdHgtPmNv ZGVkX3NpZGVfZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXZjdHgtPm5iX2Nv ZGVkX3NpZGVfZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVl9QS1RfREFUQV9E SVNQTEFZTUFUUklYLAphdl9wYWNrZXRfc2lkZV9kYXRhX3NldF9uZXcoJnN0LT5jb2RlY19wYXIt PnNpZGVfZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3QtPmNvZGVjX3Bhci0+ bmJfc2lkZV9kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWX1BLVF9EQVRBX0RJ U1BMQVlNQVRSSVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGludDMyX3Qp ICogOSk7CmF2X3BhY2tldF9zaWRlX2RhdGFfc2V0X2dldChhdmN0eC0+Y29kZWRfc2lkZV9kYXRh LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2Y3R4LT5uYl9jb2RlZF9zaWRlX2RhdGEs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfUEtUX0RBVEFfRElTUExBWU1BVFJJWCk7 CmF2X3BhY2tldF9zaWRlX2RhdGFfc2V0X2dldChzdC0+Y29kZWNfcGFyLT5zaWRlX2RhdGEsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3QtPmNvZGVjX3Bhci0+bmJfc2lkZV9kYXRhLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWX1BLVF9EQVRBX0RJU1BMQVlNQVRSSVgpOwoj IyMjIyMjIyMKCkRvZXMgYW55b25lIGhhdmUgYSBwcmVmZXJlbmNlPwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0 CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVt YWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNj cmliZSIuCg==