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 656674AAA5 for ; Sun, 12 May 2024 09:13:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3A04668D5EE; Sun, 12 May 2024 12:13:20 +0300 (EEST) Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C01CD68D2A4 for ; Sun, 12 May 2024 12:13:13 +0300 (EEST) Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-572baf393ddso7142816a12.1 for ; Sun, 12 May 2024 02:13:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715505193; x=1716109993; darn=ffmpeg.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=N0PclNHRTOHE9vzBsT2OueBH+C8kKvUkK5GlVxQK554=; b=R95gMxQzraWW3wPXCzbFvZ/1rKu/7kxE/J8AXsJP488ATLhvrRMXARMZe5eDn2dxnL mlDtef5ODqpoNTF+qtRqtneLvonzEpa6YtH5+gm1IuMmL42FfERIgTc9ygERBTtn1gNW O5m4pQW+4HdizjpHQzUPZlHookwfIWyTkcJsLbcYUIRNlnD0u/IAcwYKkfc4e63FBmCT K24LPl6wY8yrULAJV4emSt7RLJnClEMPCojNy5QJ378Ksk/fwPYJfGYTb+Ao+9ACi810 ijS2ZAT9ZJiuJFa94VURgVmA5Y9I/Gp2MXJp3r4pv+KNqI3X5n3rjD9mqKxyMhOyfBgM /6Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715505193; x=1716109993; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=N0PclNHRTOHE9vzBsT2OueBH+C8kKvUkK5GlVxQK554=; b=Qp0s+oNwJdKKACEVKtmPpzeb8CcpBH/3bPcFmvnU7Z69yy1PSE/CrnaGbJpxjiaEqZ 5KpZKSgdcyAFkbmlYd91qE8ffKAHKQAIfcApQGnw3/RLfONmQ7udDe9Dpet/eb0WH/y/ sejJe+HmjdeQo7tM2TjhxDWtHTySJKds0LMeNCT2JakPZxNDT1LZE53HKjwVUR6vR2YZ ob3HVAXLtzyhHGXWC4y7rWGYanXY+ZCWXntGrLG7Wfms1PeJcE6KPuUpkPQXt5JmGcbT xsJs4nwDsCi+d/YTXz/jLaAh4lNK/5DShthLAO89w9pMpr66L0yTMdiHoz7KnT9Szgsp Wjbw== X-Gm-Message-State: AOJu0Yw+LyZalWQMAHMVf779wMYtQg5mjgNmc3NAQfr0l72/1oMrljTE fBqqheZf1qcPyGu35yzyGzYU9kDcuzJX1wiMCsCo4BdNyii9GC7WyB1Ke584aK8kwODGUjTwYE0 y+zLf+6kjjmFQH2KL8TWOg1b+2Xu/W0Y= X-Google-Smtp-Source: AGHT+IENvAdp9gRSRkCDKKynoBs08sYs7M8UdSvWBrFneJ1OTOTxK8BUW6xemYtYp0EzikhnFXvmOaUAkN9zkGh0mJE= X-Received: by 2002:a05:6402:2068:b0:574:bdd0:d8b0 with SMTP id 4fb4d7f45d1cf-574bdd0d8b5mr1113850a12.21.1715505192713; Sun, 12 May 2024 02:13:12 -0700 (PDT) MIME-Version: 1.0 References: <821cf833-ed3d-4068-92fb-01b247b767ee@gmail.com> In-Reply-To: From: Ruslan Chernenko Date: Sun, 12 May 2024 12:13:01 +0300 Message-ID: To: Cameron Gutman X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolbox: av1 decoding not copying the sequence header obu into the bitstream 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 Cc: ffmpeg-devel@ffmpeg.org 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: T2theSwgeWVhaC4KVG9vayBhIGJldHRlciBsb29rIGFuZCBpbmRlZWQgaXQgc2hvdWxkIGJlICh2 dGN0eC0+Yml0c3RyZWFtX3NpemUgKyBzaXplKQpmb3IgdGhlIGF2X2Zhc3RfcmVhbGxvYy4KV2ls bCBzZW5kIGFuIHVwZGF0ZSBvbiB0aGlzIHBhdGNoIHRvZGF5LgoKT24gU3VuLCAxMiBNYXkgMjAy NCBhdCAxMTo1MywgUnVzbGFuIENoZXJuZW5rbyA8cmFjdHlmcmVlQGdtYWlsLmNvbT4gd3JvdGU6 Cgo+IChyZXNlbnQgZHVlIHRvIG5vdCBhZGRpbmcgbWFpbC1saXN0IGludG8gdGhlIENDKQo+IEhl eSB0aGVyZSEKPiBUaGFua3MgZm9yIGNoZWNraW5nIG91dCB0aGUgcGF0Y2g7Cj4KPiBBcyBmb3Ig dmlkZW90b29sYm94X2F2MV9zdGFydF9mcmFtZToKPiBGb3IgdGhlIGF2X2Zhc3RfcmVhbGxvYyBj YWxsIGl0J3MgbW9zdGx5IHRoZSBzYW1lIHRoaW5nIGFzCj4gZmZfdmlkZW90b29sYm94X2J1ZmZl cl9jb3B5IGRlZmluZWQgYXQgbGliYXZjb2RlYy92aWRlb3Rvb2xib3guYzo3OS4gSXQKPiB0YWtl cyBhIHBvaW50ZXIgdG8gYSBiaXRzdHJlYW0sIGl0cyBhbGxvY2F0ZWQgc2l6ZSBhbmQgdXBkYXRl cyBpdC4gQWxzbwo+IHRoZXJlIGlzIGEgdmlkZW90b29sYm94X2NvbW1vbl9kZWNvZGVfc2xpY2Ug ZGVmaW5lZCBhdCBsaWJhdmNvZGVjLwo+IHZpZGVvdG9vbGJveDo0MzQsIHdoaWNoIGRvZXMgYSBw cmV0dHkgc2ltaWxhciBqb2IgdG8gdGhlIG9uZSBJIG1lbnRpb25lZCwKPiBidXQgYSBsaXR0bGUg ZGlmZmVyZW50Lgo+Cj4gQXMgZm9yIHZpZGVvdG9vbGJveF9hdjFfZGVjb2RlX3BhcmFtczoKPiB2 dGN0eC0+Yml0c3RyZWFtIGF0IHRoYXQgbW9tZW50IHNoYWxsIGJlIGVtcHR5IGF0IHRoYXQgcG9p bnQsIHNvIGRvZXMgdGhlCj4gdnRjdHgtPmJpdHNyZWFtX3NpemUKPiBBbmQgYXMgaXQgdHVybmVk IG91dCB0aGUgc2VxdWVuY2UgaGVhZGVyIG9idSBuZWVkcyB0byBiZSBjb3BpZWQgaW50byB0aGUK PiBiaXRzdHJlYW0gZm9yIHZpZGVvdG9vbGJveCB0byBkZWNvZGUgYSBmcmFtZSBhcyBtZW50aW9u ZWQgaW4gdGhlIHRocmVhZAo+IG9uIHRoZSBhcHBsZSBmb3J1bXMoY2hlY2sgdGhlIGxhc3QgYnV0 IG9uZSBjb21tZW50KVsxXQo+Cj4gU28gYmFzaWNhbGx5IHdoYXQncyBoYXBwZW5pbmcgaGVyZToK PiB2aWRlb3Rvb2xib3hfYXYxX2RlY29kZV9wYXJhbXMgZ2V0dGluZyBjYWxsZWQgdGhlIGZpcnN0 IGluIHRoYXQgZGVjb2RpbmcKPiBsb29wIGF0IGxpYmF2Y29kZWMvYXYxZGVjLmM6MTI0MywgaXQg Y29waWVzIHRoZSBzZXF1ZW5jZSBoZWFkZXIgb2J1IGludG8KPiB0aGUgYml0c3RyZWFtIGFzIHRo ZSBmaXJzdCBieXRlcyhiZWNhdXNlIGF0IHRoYXQgcG9pbnQgYml0c3RyZWFtIHNoYWxsIGJlCj4g emVybyksIGFuZCBpbmNyZWFzZXMgdGhlIHZ0Y3R4LT5iaXRzdHJlYW1fc2l6ZSBieSB0aGUgc2l6 ZSBvZiB0aGUgc2VxdWVuY2UKPiBoZWFkZXIgb2J1Lgo+IFRoZW4gdmlkZW90b29sYm94X2F2MV9z dGFydF9mcmFtZSBpcyBnZXR0aW5nIGNhbGxlZCBhdAo+IGxpYmF2Y29kZWMvYXYxZGVjLmM6MTM2 NCBhbmQgY29waWVzIHRoZSBmcmFtZSBpdHNlbGYgaW50byB0aGUKPiB2dGN0eC0+Yml0c3RyZWFt LCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzaGlmdCBuZWVkZWQgYnkgdGhlCj4gdnRjdHgtPmJp dHN0cmVhbV9zaXplKHdoaWNoIGF0IHRoYXQgbW9tZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0 aGUKPiBzZXF1ZW5jZSBoZWFkZXIgb2J1KS4KPgo+IFsxXSBodHRwczovL2ZvcnVtcy5kZXZlbG9w ZXIuYXBwbGUuY29tL2ZvcnVtcy90aHJlYWQvNzM5OTUzCj4KPgo+IE9uIFN1biwgMTIgTWF5IDIw MjQgYXQgMTE6NTIsIFJ1c2xhbiBDaGVybmVua28gPHJhY3R5ZnJlZUBnbWFpbC5jb20+Cj4gd3Jv dGU6Cj4KPj4gSGV5IHRoZXJlIQo+PiBUaGFua3MgZm9yIGNoZWNraW5nIG91dCB0aGUgcGF0Y2g7 Cj4+Cj4+IEFzIGZvciB2aWRlb3Rvb2xib3hfYXYxX3N0YXJ0X2ZyYW1lOgo+PiBGb3IgdGhlIGF2 X2Zhc3RfcmVhbGxvYyBjYWxsIGl0J3MgbW9zdGx5IHRoZSBzYW1lIHRoaW5nIGFzCj4+IGZmX3Zp ZGVvdG9vbGJveF9idWZmZXJfY29weSBkZWZpbmVkIGF0IGxpYmF2Y29kZWMvdmlkZW90b29sYm94 LmM6NzkuIEl0Cj4+IHRha2VzIGEgcG9pbnRlciB0byBhIGJpdHN0cmVhbSwgaXRzIGFsbG9jYXRl ZCBzaXplIGFuZCB1cGRhdGVzIGl0LiBBbHNvCj4+IHRoZXJlIGlzIGEgdmlkZW90b29sYm94X2Nv bW1vbl9kZWNvZGVfc2xpY2UgZGVmaW5lZCBhdAo+PiBsaWJhdmNvZGVjL3ZpZGVvdG9vbGJveDo0 MzQsIHdoaWNoIGRvZXMgYSBwcmV0dHkgc2ltaWxhciBqb2IgdG8gdGhlIG9uZSBJCj4+IG1lbnRp b25lZCwgYnV0IGEgbGl0dGxlIGRpZmZlcmVudC4KPj4KPj4gQXMgZm9yIHZpZGVvdG9vbGJveF9h djFfZGVjb2RlX3BhcmFtczoKPj4gdnRjdHgtPmJpdHN0cmVhbSBhdCB0aGF0IG1vbWVudCBzaGFs bCBiZSBlbXB0eSBhdCB0aGF0IHBvaW50LCBzbyBkb2VzIHRoZQo+PiB2dGN0eC0+Yml0c3JlYW1f c2l6ZQo+PiBBbmQgYXMgaXQgdHVybmVkIG91dCB0aGUgc2VxdWVuY2UgaGVhZGVyIG9idSBuZWVk cyB0byBiZSBjb3BpZWQgaW50byB0aGUKPj4gYml0c3RyZWFtIGZvciB2aWRlb3Rvb2xib3ggdG8g ZGVjb2RlIGEgZnJhbWUgYXMgbWVudGlvbmVkIGluIHRoZSB0aHJlYWQgb24KPj4gdGhlIGFwcGxl IGZvcnVtcyhjaGVjayB0aGUgbGFzdCBidXQgb25lIGNvbW1lbnQpWzFdCj4+Cj4+IFNvIGJhc2lj YWxseSB3aGF0J3MgaGFwcGVuaW5nIGhlcmU6Cj4+IHZpZGVvdG9vbGJveF9hdjFfZGVjb2RlX3Bh cmFtcyBnZXR0aW5nIGNhbGxlZCB0aGUgZmlyc3QgaW4gdGhhdCBkZWNvZGluZwo+PiBsb29wIGF0 IGxpYmF2Y29kZWMvYXYxZGVjLmM6MTI0MywgaXQgY29waWVzIHRoZSBzZXF1ZW5jZSBoZWFkZXIg b2J1IGludG8KPj4gdGhlIGJpdHN0cmVhbSBhcyB0aGUgZmlyc3QgYnl0ZXMoYmVjYXVzZSBhdCB0 aGF0IHBvaW50IGJpdHN0cmVhbSBzaGFsbCBiZQo+PiB6ZXJvKSwgYW5kIGluY3JlYXNlcyB0aGUg dnRjdHgtPmJpdHN0cmVhbV9zaXplIGJ5IHRoZSBzaXplIG9mIHRoZSBzZXF1ZW5jZQo+PiBoZWFk ZXIgb2J1Lgo+PiBUaGVuIHZpZGVvdG9vbGJveF9hdjFfc3RhcnRfZnJhbWUgaXMgZ2V0dGluZyBj YWxsZWQgYXQKPj4gbGliYXZjb2RlYy9hdjFkZWMuYzoxMzY0IGFuZCBjb3BpZXMgdGhlIGZyYW1l IGl0c2VsZiBpbnRvIHRoZQo+PiB2dGN0eC0+Yml0c3RyZWFtLCB0YWtpbmcgaW50byBhY2NvdW50 IHRoZSBzaGlmdCBuZWVkZWQgYnkgdGhlCj4+IHZ0Y3R4LT5iaXRzdHJlYW1fc2l6ZSh3aGljaCBh dCB0aGF0IG1vbWVudCBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlCj4+IHNlcXVlbmNlIGhlYWRl ciBvYnUpLgo+Pgo+PiBbMV0gaHR0cHM6Ly9mb3J1bXMuZGV2ZWxvcGVyLmFwcGxlLmNvbS9mb3J1 bXMvdGhyZWFkLzczOTk1Mwo+Pgo+Pgo+PiBPbiBTdW4sIDEyIE1heSAyMDI0IGF0IDA0OjUyLCBD YW1lcm9uIEd1dG1hbiA8YWljb21tYW5kZXJAZ21haWwuY29tPgo+PiB3cm90ZToKPj4KPj4+IE9u IE1vbiwgTWF5IDYsIDIwMjQgYXQgMzo0NeKAr1BNINCn0LXRgNC90LXQvdC60L4g0KDRg9GB0LvQ sNC9IDxyYWN0eWZyZWVAZ21haWwuY29tPgo+Pj4gd3JvdGU6Cj4+PiA+Cj4+PiA+IFNpZ25lZC1v ZmYtYnk6IENoZXJuZW5rbyBSdXNsYW4gPHJhY3R5ZnJlZUBnbWFpbC5jb20+Cj4+PiA+IC0tLQo+ Pj4gPiAgIGxpYmF2Y29kZWMvdmlkZW90b29sYm94X2F2MS5jIHwgMTAyCj4+PiArKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tCj4+PiA+ICAgMSBmaWxlIGNoYW5nZWQsIDcyIGluc2Vy dGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQo+Pj4gPgo+Pj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZj b2RlYy92aWRlb3Rvb2xib3hfYXYxLmMKPj4+IGIvbGliYXZjb2RlYy92aWRlb3Rvb2xib3hfYXYx LmMKPj4+ID4gaW5kZXggN2Y3MjcwYzQ2Ni4uNzM2ZjI1NDhkYiAxMDA2NDQKPj4+ID4gLS0tIGEv bGliYXZjb2RlYy92aWRlb3Rvb2xib3hfYXYxLmMKPj4+ID4gKysrIGIvbGliYXZjb2RlYy92aWRl b3Rvb2xib3hfYXYxLmMKPj4+ID4gQEAgLTE5LDUwICsxOSw5MCBAQAo+Pj4gPiAgICAqIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEK Pj4+ID4gMDIxMTAtMTMwMSBVU0EKPj4+ID4gICAgKi8KPj4+ID4gICAtI2luY2x1ZGUgImxpYmF2 Zm9ybWF0L2F2aW8uaCIKPj4+ID4gLSNpbmNsdWRlICJsaWJhdmZvcm1hdC9hdmlvX2ludGVybmFs LmgiCj4+PiA+IC0jZGVmaW5lIENBTExFRF9GUk9NX0FWQ09ERUMgMQo+Pj4gPiAtI2luY2x1ZGUg ImxpYmF2Zm9ybWF0L2F2MS5jIgo+Pj4gPiAtI3VuZGVmIENBTExFRF9GUk9NX0FWQ09ERUMKPj4+ ID4gICAtI2luY2x1ZGUgImxpYmF2dXRpbC9hdnV0aWwuaCIKPj4+ID4gLSNpbmNsdWRlICJsaWJh dnV0aWwvZnJhbWUuaCIKPj4+ID4gLSNpbmNsdWRlICJsaWJhdnV0aWwvcGl4Zm10LmgiCj4+PiA+ ICsjaW5jbHVkZSAibGliYXZ1dGlsL21lbS5oIgo+Pj4gPiAgICAjaW5jbHVkZSAiYXYxZGVjLmgi Cj4+PiA+IC0jaW5jbHVkZSAiY29kZWNfaWQuaCIKPj4+ID4gICAjaW5jbHVkZSAiaHdhY2NlbF9p bnRlcm5hbC5oIgo+Pj4gPiAgICNpbmNsdWRlICJpbnRlcm5hbC5oIgo+Pj4gPiAgICNpbmNsdWRl ICJ2dF9pbnRlcm5hbC5oIgo+Pj4gPiAgIC1DRkRhdGFSZWYgZmZfdmlkZW90b29sYm94X2F2MWNf ZXh0cmFkYXRhX2NyZWF0ZShBVkNvZGVjQ29udGV4dAo+Pj4gKmF2Y3R4KQo+Pj4gPiArCj4+PiA+ ICtDRkRhdGFSZWYgZmZfdmlkZW90b29sYm94X2F2MWNfZXh0cmFkYXRhX2NyZWF0ZShBVkNvZGVj Q29udGV4dAo+Pj4gKmF2Y3R4KSB7Cj4+PiA+ICsKPj4+ID4gKyAgICBBVjFEZWNDb250ZXh0ICpz ID0gYXZjdHgtPnByaXZfZGF0YTsKPj4+ID4gKyAgICBhdmN0eC0+ZXh0cmFkYXRhID0gYXZfZmFz dF9yZWFsbG9jKGF2Y3R4LT5leHRyYWRhdGEsICsKPj4+ID4gJmF2Y3R4LT5leHRyYWRhdGFfc2l6 ZSwgKyAgICAgICAgICAgIHMtPnNlcV9kYXRhX3JlZi0+c2l6ZSArIDQpOwo+Pj4gPiArICAgIGF2 Y3R4LT5leHRyYWRhdGFfc2l6ZSA9IHMtPnNlcV9kYXRhX3JlZi0+c2l6ZSArIDQ7Cj4+PiA+ICsg ICAgYXZjdHgtPmV4dHJhZGF0YVswXSA9IDB4ODE7IC8vIHZlcnNpb24gYW5kIG1hcmtlciAoY29u c3RhbnQpCj4+PiA+ICsgICAgYXZjdHgtPmV4dHJhZGF0YVsxXSA9IHMtPnJhd19zZXEtPnNlcV9w cm9maWxlIDw8IDUgfAo+Pj4gPiBzLT5yYXdfc2VxLT5zZXFfbGV2ZWxfaWR4WzBdOwo+Pj4gPiAr ICAgIGF2Y3R4LT5leHRyYWRhdGFbMl0gPSBzLT5yYXdfc2VxLT5zZXFfdGllclswXSA8PCA3IHwK Pj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHMtPnJhd19zZXEtPmNvbG9yX2NvbmZpZy5o aWdoX2JpdGRlcHRoIDw8IDYgfAo+Pj4gKwo+Pj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBz LT5yYXdfc2VxLT5jb2xvcl9jb25maWcudHdlbHZlX2JpdCA8PCA1IHwKPj4+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgIHMtPnJhd19zZXEtPmNvbG9yX2NvbmZpZy5tb25vX2Nocm9tZSA8PCA0 IHwKPj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHMtPnJhd19zZXEtPmNvbG9yX2NvbmZp Zy5zdWJzYW1wbGluZ194IDw8IDMgfAo+Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgcy0+ cmF3X3NlcS0+Y29sb3JfY29uZmlnLnN1YnNhbXBsaW5nX3kgPDwgMiB8Cj4+PiA+ICsKPj4+IHMt PnJhd19zZXEtPmNvbG9yX2NvbmZpZy5jaHJvbWFfc2FtcGxlX3Bvc2l0aW9uOwo+Pj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCj4+PiA+ICsgICAgaWYgKHMtPnJhd19zZXEtPmluaXRpYWxfZGlzcGxheV9kZWxh eV9wcmVzZW50X2ZsYWcpICsKPj4+ID4gYXZjdHgtPmV4dHJhZGF0YVszXSA9IDAgPDwgNSB8Cj4+ PiA+IHMtPnJhd19zZXEtPmluaXRpYWxfZGlzcGxheV9kZWxheV9wcmVzZW50X2ZsYWcgPDwgNCB8 Cj4+PiA+IHMtPnJhd19zZXEtPmluaXRpYWxfZGlzcGxheV9kZWxheV9taW51c18xWzBdOwo+Pj4g PiArICAgIGVsc2UKPj4+ID4gKyAgICAgICAgYXZjdHgtPmV4dHJhZGF0YVszXSA9IDB4MDA7Cj4+ PiA+ICsgICAgbWVtY3B5KGF2Y3R4LT5leHRyYWRhdGEgKyA0LCBzLT5zZXFfZGF0YV9yZWYtPmRh dGEsCj4+PiA+IHMtPnNlcV9kYXRhX3JlZi0+c2l6ZSk7Cj4+PiA+ICsgICAgQ0ZEYXRhUmVmIGRh dGEgPSBDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwKPj4+ID4gYXZjdHgtPmV4dHJh ZGF0YSwgYXZjdHgtPmV4dHJhZGF0YV9zaXplKTsKPj4+ID4gKyAgICByZXR1cm4gZGF0YTsKPj4+ ID4gK307Cj4+PiA+ICsKPj4+ID4gKwo+Pj4gPiArc3RhdGljIGludCB2aWRlb3Rvb2xib3hfYXYx X2RlY29kZV9wYXJhbXMoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+Pj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGVhZGVyX3R5cGUsCj4+PiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZmZl ciwKPj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3Qgc2l6ZSkKPj4+ID4gICB7Cj4+PiA+IC0gICAgQVZJT0NvbnRleHQgKnBiOwo+Pj4gPiAtICAg IHVpbnQ4X3QgKmJ1ZjsKPj4+ID4gLSAgICBDRkRhdGFSZWYgZGF0YSA9IE5VTEw7Cj4+PiA+IC0g ICAgaW50IGJ1Zl9zaXplID0gMDsKPj4+ID4gLSAgICBpbnQgcmV0ID0gYXZpb19vcGVuX2R5bl9i dWYoJnBiKTsKPj4+ID4gLSAgICBpZiAocmV0IDwgMCkKPj4+ID4gLSAgICAgICAgcmV0dXJuIE5V TEw7Cj4+PiA+ICsgICAgVlRDb250ZXh0ICp2dGN0eCA9IGF2Y3R4LT5pbnRlcm5hbC0+aHdhY2Nl bF9wcml2X2RhdGE7Cj4+PiA+ICsgICAgdm9pZCAqdG1wOwo+Pj4gPiAgIC0gICAgcmV0ID0gZmZf aXNvbV93cml0ZV9hdjFjKHBiLCBhdmN0eC0+ZXh0cmFkYXRhLAo+Pj4gPiBhdmN0eC0+ZXh0cmFk YXRhX3NpemUsIDEpOwo+Pj4gPiAtICAgIGlmIChyZXQgPCAwKQo+Pj4gPiAtICAgICAgICBnb3Rv IGZhaWw7Cj4+PiA+ICsgICAgdG1wID0gYXZfZmFzdF9yZWFsbG9jKHZ0Y3R4LT5iaXRzdHJlYW0s Cj4+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgJnZ0Y3R4LT5hbGxvY2F0ZWRfc2l6ZSwK Pj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplKTsKPj4+Cj4+PiBUaGlzIHNob3Vs ZCBiZSAnc2l6ZSArIHZ0Y3R4LT5iaXRzdHJlYW1fc2l6ZScgcmlnaHQ/Cj4+Pgo+Pj4gWW91J3Jl IGdvaW5nIHRvIHdyaXRlIGZyb20gdnRjdHgtPmJpdHN0cmVhbV9zaXplIHRvCj4+PiAodnRjdHgt PmJpdHN0cmVhbV9zaXplICsgc2l6ZSkuCj4+Pgo+Pj4gPiAgIC0gICAgYnVmX3NpemUgPSBhdmlv X2dldF9keW5fYnVmKHBiLCAmYnVmKTsKPj4+ID4gLSAgICBpZiAoYnVmX3NpemUpCj4+PiA+IC0g ICAgICAgIGRhdGEgPSBDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmLCBidWZf c2l6ZSk7Cj4+PiA+ICsgICAgaWYgKCF0bXApCj4+PiA+ICsgICAgICAgIHJldHVybiBBVkVSUk9S KEVOT01FTSk7Cj4+PiA+ICAgLWZhaWw6Cj4+PiA+IC0gICAgZmZpb19mcmVlX2R5bl9idWYoJnBi KTsKPj4+ID4gKyAgICB2dGN0eC0+Yml0c3RyZWFtID0gdG1wOwo+Pj4gPiAgIC0gICAgcmV0dXJu IGRhdGE7Cj4+PiA+ICsgICAgLy8gY29weSB0aGUgc2VxdWVuY2UgaGVhZGVyIG9idSBpbnRvIHRo ZSBiaXRzdHJlYW0KPj4+ID4gKyAgICBtZW1jcHkodnRjdHgtPmJpdHN0cmVhbSArIHZ0Y3R4LT5i aXRzdHJlYW1fc2l6ZSwgKwo+Pj4gPiBidWZmZXIsICsgICAgICAgICAgICBzaXplKTsKPj4+Cj4+ PiBJdCBsb29rcyBsaWtlIHlvdXIgbWFpbCBjbGllbnQgbWFuZ2xlZCB0aGUgcGF0Y2ggaGVyZS4K Pj4+Cj4+PiA+ICsKPj4+ID4gKyAgICB2dGN0eC0+Yml0c3RyZWFtX3NpemUgKz0gc2l6ZTsKPj4+ ID4gKyAgICByZXR1cm4gMDsKPj4+ID4gICB9Cj4+PiA+ICAgIHN0YXRpYyBpbnQgdmlkZW90b29s Ym94X2F2MV9zdGFydF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4+PiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZmZlciwK Pj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg c2l6ZSkKPj4+ID4gICB7Cj4+PiA+ICsKPj4+ID4gKyAgICArICAgIFZUQ29udGV4dCAqdnRjdHgg PSBhdmN0eC0+aW50ZXJuYWwtPmh3YWNjZWxfcHJpdl9kYXRhOwo+Pj4gPiArICAgIHZvaWQgKnRt cDsKPj4+ID4gKwo+Pj4gPiArICAgIHRtcCA9IGF2X2Zhc3RfcmVhbGxvYyh2dGN0eC0+Yml0c3Ry ZWFtLAo+Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICZ2dGN0eC0+YWxsb2NhdGVkX3Np emUsCj4+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSk7Cj4+PiA+ICsKPj4+Cj4+ PiBUaGlzIHNob3VsZCBhbHNvIGJlIHNpemUgKyB2dGN0eC0+Yml0c3RyZWFtX3NpemUuCj4+Pgo+ Pj4gPiArICAgIGlmICghdG1wKQo+Pj4gPiArICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0p Owo+Pj4gPiArCj4+PiA+ICsgICAgdnRjdHgtPmJpdHN0cmVhbSA9IHRtcDsKPj4+ID4gKwo+Pj4g PiArICAgIC8vIGNvcHkgdGhlIGZyYW1lIGRhdGEgaW50byB0aGUgYml0c3RyZWFtCj4+PiA+ICsg ICAgbWVtY3B5KHZ0Y3R4LT5iaXRzdHJlYW0gKyB2dGN0eC0+Yml0c3RyZWFtX3NpemUsIGJ1ZmZl ciwgc2l6ZSk7Cj4+PiA+ICsgICAgdnRjdHgtPmJpdHN0cmVhbV9zaXplICs9IHNpemU7Cj4+PiA+ ICAgICAgIHJldHVybiAwOwo+Pj4gPiAgIH0KPj4+ID4gICBAQCAtNzAsMTcgKzExMCwxOCBAQCBz dGF0aWMgaW50Cj4+PiA+IHZpZGVvdG9vbGJveF9hdjFfZGVjb2RlX3NsaWNlKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwKPj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZmZlciwKPj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHNpemUpCj4+PiA+ICAgewo+Pj4gPiAtICAgIFZU Q29udGV4dCAqdnRjdHggPSBhdmN0eC0+aW50ZXJuYWwtPmh3YWNjZWxfcHJpdl9kYXRhOwo+Pj4g PiAtCj4+PiA+IC0gICAgcmV0dXJuIGZmX3ZpZGVvdG9vbGJveF9idWZmZXJfY29weSh2dGN0eCwg YnVmZmVyLCBzaXplKTsKPj4+ID4gKyAgICByZXR1cm4gMDsKPj4+ID4gICB9Cj4+PiA+ICAgIHN0 YXRpYyBpbnQgdmlkZW90b29sYm94X2F2MV9lbmRfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4 KQo+Pj4gPiAgIHsKPj4+ID4gICAgICAgY29uc3QgQVYxRGVjQ29udGV4dCAqcyA9IGF2Y3R4LT5w cml2X2RhdGE7Cj4+PiA+ICsgICAgVlRDb250ZXh0ICp2dGN0eCA9IGF2Y3R4LT5pbnRlcm5hbC0+ aHdhY2NlbF9wcml2X2RhdGE7Cj4+PiA+ICAgICAgIEFWRnJhbWUgKmZyYW1lID0gcy0+Y3VyX2Zy YW1lLmY7Cj4+PiA+ICAgLSAgICByZXR1cm4gZmZfdmlkZW90b29sYm94X2NvbW1vbl9lbmRfZnJh bWUoYXZjdHgsIGZyYW1lKTsKPj4+ID4gKyAgICBpbnQgcmV0ID0gIGZmX3ZpZGVvdG9vbGJveF9j b21tb25fZW5kX2ZyYW1lKGF2Y3R4LCBmcmFtZSk7Cj4+PiA+ICsgICAgdnRjdHgtPmJpdHN0cmVh bV9zaXplID0gMDsKPj4+ID4gKyAgICByZXR1cm4gcmV0Owo+Pj4gPiAgIH0KPj4+ID4gICAgY29u c3QgRkZIV0FjY2VsIGZmX2F2MV92aWRlb3Rvb2xib3hfaHdhY2NlbCA9IHsKPj4+ID4gQEAgLTg5 LDYgKzEzMCw3IEBAIGNvbnN0IEZGSFdBY2NlbCBmZl9hdjFfdmlkZW90b29sYm94X2h3YWNjZWwg PSB7Cj4+PiA+ICAgICAgIC5wLmlkICAgICAgICAgICA9IEFWX0NPREVDX0lEX0FWMSwKPj4+ID4g ICAgICAgLnAucGl4X2ZtdCAgICAgID0gQVZfUElYX0ZNVF9WSURFT1RPT0xCT1gsCj4+PiA+ICAg ICAgIC5hbGxvY19mcmFtZSAgICA9IGZmX3ZpZGVvdG9vbGJveF9hbGxvY19mcmFtZSwKPj4+ID4g KyAgICAuZGVjb2RlX3BhcmFtcyAgPSB2aWRlb3Rvb2xib3hfYXYxX2RlY29kZV9wYXJhbXMsCj4+ PiA+ICAgICAgIC5zdGFydF9mcmFtZSAgICA9IHZpZGVvdG9vbGJveF9hdjFfc3RhcnRfZnJhbWUs Cj4+PiA+ICAgICAgIC5kZWNvZGVfc2xpY2UgICA9IHZpZGVvdG9vbGJveF9hdjFfZGVjb2RlX3Ns aWNlLAo+Pj4gPiAgICAgICAuZW5kX2ZyYW1lICAgICAgPSB2aWRlb3Rvb2xib3hfYXYxX2VuZF9m cmFtZSwKPj4+ID4gLS0KPj4+ID4gMi4zOS4zIChBcHBsZSBHaXQtMTQ2KQo+Pj4gPgo+Pj4gPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4gPiBmZm1w ZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+PiA+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4+PiA+ IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+Pj4gPgo+ Pj4gPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPj4+ID4gZmZt cGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K Pj4+Cj4+Cj4+Cj4+IC0tCj4+IEMg0YPQstCw0LbQtdC90LjQtdC8LAo+PiDQoNGD0YHQu9Cw0L0u Cj4+Cj4+IE1haWw6IHJhY3R5ZnJlZUBnbWFpbC5jb20KPj4gVGVsZWdyYW06IEBuZW5rb3J1Cj4+ IFZLOiBodHRwczovL3ZrLmNvbS9yYWN0eQo+Pgo+Cj4KPiAtLQo+IEMg0YPQstCw0LbQtdC90LjQ tdC8LAo+INCg0YPRgdC70LDQvS4KPgo+IE1haWw6IHJhY3R5ZnJlZUBnbWFpbC5jb20KPiBUZWxl Z3JhbTogQG5lbmtvcnUKPiBWSzogaHR0cHM6Ly92ay5jb20vcmFjdHkKPgoKCi0tIApDINGD0LLQ sNC20LXQvdC40LXQvCwK0KDRg9GB0LvQsNC9LgoKTWFpbDogcmFjdHlmcmVlQGdtYWlsLmNvbQpU ZWxlZ3JhbTogQG5lbmtvcnUKVks6IGh0dHBzOi8vdmsuY29tL3JhY3R5Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxp c3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz dGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3Ig ZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4K