From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 57CED4DB1F for ; Tue, 3 Jun 2025 18:50:55 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id AD5D168DC05; Tue, 3 Jun 2025 21:50:51 +0300 (EEST) Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com [209.85.128.180]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 4697568A866 for ; Tue, 3 Jun 2025 21:50:45 +0300 (EEST) Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-70e5e6ab7b8so54947337b3.1 for ; Tue, 03 Jun 2025 11:50:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748976644; x=1749581444; darn=ffmpeg.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=kBE8IG3wetUQ+tcQdzSYaHdYj+YwSbNuJF5ng+IsgF0=; b=Tzl0Ntke4HI4p9neWnl+nS6Ql0dJaL7kquNatIFg351rbeikfKpLEDchoqDnHViE1j m5wEoFCwbtC33qDW6CAmlWHeMMzEhjK/+QwgggIODtLBjBuOTdkU1Ta6vpBmwR+BaJDx XPuM1waKsesacKP40pCHt1d/QSWgUPofa+SH/E4xPtppM8AB7aWmlT0OGwD6md3Y27pv WNWq7/eDVeX4KYgNgV5Rc+YmullkcHEu7sZw45gUgC/tCUUR51MnzObvt29mf41p38X8 yvp+J/0j3+OisOdmKdo/C0RXhaBKsU9dnnnUEqkGWwHBsQUIMo7QP/chZsxqeui5LD+y Bshw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748976644; x=1749581444; h=content-transfer-encoding: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=kBE8IG3wetUQ+tcQdzSYaHdYj+YwSbNuJF5ng+IsgF0=; b=wORlRf/2WWwpwRUwOH0W48JGQAblgPqtSiEHZc5IwCExbA5sGalKW0cWhepa0d9G0l 1uJK4wvevWna4q6zKjM+HlXG+5aj8ZVVfdN4kifhvYxeOCzZv2a1sJKLesLN8qF7bGGI LsC/Oo4QE1maLFGpS3w5+o+Pw5Ct4EXDHJWebMJwcKkOzH+2JjBoaiHKqSHS87LaqoVL uScVnXhZLfverTUwVefYsnca1esdsXZkfCAJ1V/zc9gPJJ2luSJbcn5CdNhj6m9SRWFT x+Dk+ZWSZWBhyYdsvMhIq8CCJLKroWvOVblqO37WLxq5tslIMm75qQzywDW4Njh3htZL OufA== X-Gm-Message-State: AOJu0Yz2z6jjwsns8G9NkYKg5F4YfyIEo3aLKRSNPWY/vs02rYsJnN/a 2DWUyJsmb94pSjsUo7m+h6UL2WrRBU3fM1sGKf9/7Hj48XRgHyGe8E30OHd0DY6le4+v2iktHhy mLwZ8zOIap5EtPjv5Tb6NqMJlyOPtiXE= X-Gm-Gg: ASbGnct3qhze59OvqnzZs6b6PyZwsqq8jQAitsry+nS5P0jeaW6MxGD81ak7VzGShvw 5ftEYoVEDN6W9fyxqMoPw3s/2Ds+rXkfj1QdjJpGcS+kghstgd/k7Jrhw/421ACHAT+jA7aOYJ/ KVViBNOFbhlPjAR18FHheJzFztt3Z0+lXLwg== X-Google-Smtp-Source: AGHT+IHp1T1fKukavs+hU1B4RlFG98ST4/Wk4iosPn/blZvfCjHDsf9dm9iXWjCalD36wcTydO36gYArqCezbVm+RL0= X-Received: by 2002:a05:690c:3707:b0:703:b5ae:a3da with SMTP id 00721157ae682-70f97f50aa3mr277094367b3.32.1748976643443; Tue, 03 Jun 2025 11:50:43 -0700 (PDT) MIME-Version: 1.0 References: <20250601162114.66907-1-romain.beauxis@gmail.com> In-Reply-To: From: Romain Beauxis Date: Tue, 3 Jun 2025 13:50:31 -0500 X-Gm-Features: AX0GCFv09d9A7s6uxrJO5jo9380p9jbWVC9aLgko9KlRxT-jyHWvkBTrUggDGYY Message-ID: To: Andreas Rheinhardt Subject: Re: [FFmpeg-devel] [PATCH] ogg/vorbis: implement header packet skip in chained ogg bitstreams. 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: TGUgbWFyLiAzIGp1aW4gMjAyNSDDoCAxMjoxMiwgQW5kcmVhcyBSaGVpbmhhcmR0CjxhbmRyZWFz LnJoZWluaGFyZHRAb3V0bG9vay5jb20+IGEgw6ljcml0IDoKPgo+IFJvbWFpbiBCZWF1eGlzOgo+ ID4gVGhpcyBpcyBhIHJlZG8gb2YgNTc0ZjYzNGU0OTg0N2UyMjI1ZWU1MDAxM2FmZWJmMGRlMDNl ZjAxMyB1c2luZyBhIGZsYXQKPiA+IG1lbW9yeSBzdG9yYWdlIGZvciB0aGUgZXh0cmFkYXRhLgo+ ID4KPiA+IFBSIHJldmlldyBjb21tZW50cyBhZGRyZXNzZWQ6Cj4gPiAqIFVzZSBmbGF0IG1lbW9y eSBhcnJheQo+ID4gKiBSZW5hbWUgc3RydWN0dXJlIHRvIGZvbGxvdyBjb252ZW50aW9uCj4gPiAq IEFkZCBzdGRkZWYuaCBoZWFkZXIKPiA+Cj4gPiBCb251czogbGliYXZjb2RlYy92b3JiaXNkZWMu YyBkaWZmIGlzIGdyZWF0bHkgaW1wcm92ZWQhCj4gPgo+ID4gLS0tCj4gPiAgbGliYXZjb2RlYy92 b3JiaXNfcGFyc2VyLmggICAgICAgICAgICAgICAgIHwgIDcgKysrCj4gPiAgbGliYXZjb2RlYy92 b3JiaXNkZWMuYyAgICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysrLS0tLS0KPiA+ ICBsaWJhdmZvcm1hdC9vZ2dwYXJzZXZvcmJpcy5jICAgICAgICAgICAgICAgfCA1NiArKysrKysr KysrKysrKysrKysrKy0tCj4gPiAgdGVzdHMvcmVmL2ZhdGUvb2dnLXZvcmJpcy1jaGFpbmVkLW1l dGEudHh0IHwgIDMgLS0KPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDE3 IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZvcmJpc19wYXJz ZXIuaCBiL2xpYmF2Y29kZWMvdm9yYmlzX3BhcnNlci5oCj4gPiBpbmRleCA3ODk5MzJhYzQ5Li45 MDEwNzIzNTkwIDEwMDY0NAo+ID4gLS0tIGEvbGliYXZjb2RlYy92b3JiaXNfcGFyc2VyLmgKPiA+ ICsrKyBiL2xpYmF2Y29kZWMvdm9yYmlzX3BhcnNlci5oCj4gPiBAQCAtMjcsNiArMjcsNyBAQAo+ ID4gICNkZWZpbmUgQVZDT0RFQ19WT1JCSVNfUEFSU0VSX0gKPiA+Cj4gPiAgI2luY2x1ZGUgPHN0 ZGludC5oPgo+ID4gKyNpbmNsdWRlIDxzdGRkZWYuaD4KPiA+Cj4gPiAgdHlwZWRlZiBzdHJ1Y3Qg QVZWb3JiaXNQYXJzZUNvbnRleHQgQVZWb3JiaXNQYXJzZUNvbnRleHQ7Cj4gPgo+ID4gQEAgLTQ1 LDYgKzQ2LDEyIEBAIHZvaWQgYXZfdm9yYmlzX3BhcnNlX2ZyZWUoQVZWb3JiaXNQYXJzZUNvbnRl eHQgKipzKTsKPiA+ICAjZGVmaW5lIFZPUkJJU19GTEFHX0NPTU1FTlQgMHgwMDAwMDAwMgo+ID4g ICNkZWZpbmUgVk9SQklTX0ZMQUdfU0VUVVAgICAweDAwMDAwMDA0Cj4gPgo+ID4gK3R5cGVkZWYg c3RydWN0IEFWVm9yYmlzSGVhZGVyRXh0cmFkYXRhIHsKPiA+ICsgICAgdW5zaWduZWQgaW50IGhl YWRlcl90eXBlOwo+ID4gKyAgICBzaXplX3QgICBoZWFkZXJfc2l6ZTsKPiA+ICsgICAgdWludDhf dCBoZWFkZXJbXTsKPiA+ICt9IEFWVm9yYmlzSGVhZGVyRXh0cmFkYXRhOwo+ID4gKwo+Cj4gSXQg c2VlbXMgeW91IHN0YXJ0ZWQgdGhpcyB3b3JrIGJlZm9yZSBteSBsYXRlc3QgbWFpbAo+IGh0dHBz Oi8vZmZtcGVnLm9yZy9waXBlcm1haWwvZmZtcGVnLWRldmVsLzIwMjUtTWF5LzM0NDQyMi5odG1s Ogo+IEFWX1BLVF9EQVRBX05FV19FWFRSQURBVEEgc2hvdWxkIHVzZSB0aGUgc2FtZSBmb3JtYXQg YXMgb3JkaW5hcnkKPiBleHRyYWRhdGEuIChBIHVzZXIgbWF5IGUuZy4gdXNlIHRoaXMgbmV3IGV4 dHJhZGF0YSBmb3IgbXV4aW5nLCB3aGVyZSB0aGUKPiBvcmRpbmFyeSBleHRyYWRhdGEgaXMgZXhw ZWN0ZWQuKSBUaGlzIGdlbmVyYWxseSBhbGxvd3MgdG8gcmV1c2UKPiBleHRyYWRhdGEgcGFyc2lu ZyBmdW5jdGlvbnMgKHBvdGVudGlhbGx5IGFmdGVyIGhhdmluZyBmYWN0b3JlZCB0aGVtIG91dAo+ IG9mIHRoZSBpbml0IGZ1bmN0aW9uKS4KCkknbSBub3Qgc3VyZSB3aGF0IHlvdSBtZWFuLiBDb3Vs ZCB5b3UgZWxhYm9yYXRlPwoKSWYgeW91IGxvb2sgYXQgaHR0cHM6Ly9mZm1wZWcub3JnL3BpcGVy bWFpbC9mZm1wZWctZGV2ZWwvMjAyNS1KdW5lLzM0NDQ0Ni5odG1sCnlvdSB3aWxsIHNlZSB0aGF0 IHRoZSBmb3JtYXQgc2VlbXMgbGlrZSBvcmRpbmFyeSBleHRyYWRhdGEgdG8gbWUuIEluCmZhY3Qs IGFzIHNvb24gYXMgdGhlIGtleSBpcyBjaGFuZ2VkLCB2b3JiaXMgbWV0YWRhdGEgdXBkYXRlIGZp bmFsbHkKc3RhcnRzIHRvIGZsb3cgYXMgZXhwZWN0ZWQgd2l0aG91dCBjaGFuZ2luZyB0aGUgZGVj b2RlciBzaWRlIG9mCnRoaW5ncywgYXMgZXhlbXBsaWZpZWQgYnkgdGhlIHRlc3QgZGlmZiBpbiB0 aGUgY2hhbmdlc2V0LgoKPiBCZXNpZGVzIHRoYXQsIHRoZXJlIGFyZSBzb21lIHByb2JsZW1zIHdp dGggeW91ciBhcHByb2FjaDogWW91IGFyZSBzaW1wbHkKPiBjYXN0aW5nIGEgcG9pbnRlciBpbnRv IHRoZSBuZXcgZXh0cmFkYXRhIHRvIEFWVm9yYmlzSGVhZGVyRXh0cmFkYXRhKiwKPiBhbHRob3Vn aCB0aGUgYWRkcmVzcyBtYXkgbm90IGJlIHByb3Blcmx5IGFsaWduZWQuIFlvdSBhcmUgYWxzbyBu b3QKPiBjaGVja2luZyB0aGF0IHRoZSBleHRyYWRhdGEgY29udGFpbnMgYXMgbXVjaCBkYXRhIGFz IGhlYWRlcl9zaXplIGNsYWltcwo+IGl0IGRvZXMuIFRoZSBsYXlvdXQgb2YgeW91ciBuZXcgZXh0 cmFkYXRhIGFsc28gZGVwZW5kcyBvbiB0aGUgc3lzdGVtCj4gKGR1ZSB0byBzaXplb2YoaGVhZGVy X3NpemUpIGFuZCBkdWUgdG8gZW5kaWFubmVzcyksIHdoaWNoIG1ha2VzIGl0IGhhcmQKPiB0byBj aGVja3N1bSBpdC4gQW5kIHlvdSBmb3Jnb3QgdGhlIEFQSWNoYW5nZXMgZW50cnkvdmVyc2lvbiBi dW1wIGZvcgo+IHRoaXMgc3RydWN0ICh0aGlzIHBvaW50IHdpbGwgYmVjb21lIG1vb3QgaW4gYSBm dXR1cmUgdmVyc2lvbiBvZiB0aGlzCj4gcGF0Y2gsIHdoZW4gbm8gbmV3IHN0cnVjdCBpcyBhZGRl ZCkuCgpPayB0aGlzIG1ha2VzIHNlbnNlLCBJIGNhbiB3b3JrIG9uIGl0LgoKTGV0IG1lIHJlY2Fw IHRoZSBuZWVkczoKKiBleHRyYWRhdGEgbmVlZHMgdG8gYmUgYSBmbGF0IG1lbW9yeSBhcnJheQoq IGV4dHJhZGF0YSBuZWVkcyB0byBiZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBhbmQgY29uc3RhbnRs eSBjaGVja3N1bS1hYmxlLgoqIFdoYXQncyB0aGUgZXhhY3QgcmVxdWlyZW1lbnQgZm9yIGFsaWdu bWVudD8KQ29uc2lkZXJpbmcgdGhhdCB0aGUgYXJyYXkgY29udGFpbnMgMiBvciBtb3JlIHNlcXVl bnRpYWxseSBzdG9yZWQKaGVhZGVyIGNodW5rcywgZG8geW91IHJlcXVpcmUgdGhlIHN0YXJ0IG9m IGVhY2ggaGVhZGVyIGNodW5rIHRvIGhhdmUKdG8gYmUgYWxpZ25lZD8gSXMgdGhlcmUgYSB0ZWNo bmljYWwgcmVhc29uIGZvciB0aGF0PwoKLS0gUm9tYWluCgoKPiA+ICAvKioKPiA+ICAgKiBHZXQg dGhlIGR1cmF0aW9uIGZvciBhIFZvcmJpcyBwYWNrZXQuCj4gPiAgICoKPiA+IGRpZmYgLS1naXQg YS9saWJhdmNvZGVjL3ZvcmJpc2RlYy5jIGIvbGliYXZjb2RlYy92b3JiaXNkZWMuYwo+ID4gaW5k ZXggYWRiZDcyNjE4My4uMTc3ZDNjOTVjMiAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Y29kZWMvdm9y YmlzZGVjLmMKPiA+ICsrKyBiL2xpYmF2Y29kZWMvdm9yYmlzZGVjLmMKPiA+IEBAIC00Myw2ICs0 Myw3IEBACj4gPiAgI2luY2x1ZGUgInZvcmJpcy5oIgo+ID4gICNpbmNsdWRlICJ2b3JiaXNkc3Au aCIKPiA+ICAjaW5jbHVkZSAidm9yYmlzX2RhdGEuaCIKPiA+ICsjaW5jbHVkZSAidm9yYmlzX3Bh cnNlci5oIgo+ID4gICNpbmNsdWRlICJ4aXBoLmgiCj4gPgo+ID4gICNkZWZpbmUgVl9OQl9CSVRT IDgKPiA+IEBAIC0xNzc4LDExICsxNzc5LDQwIEBAIHN0YXRpYyBpbnQgdm9yYmlzX2RlY29kZV9m cmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lLAo+ID4gICAgICBHZXRC aXRDb250ZXh0ICpnYiA9ICZ2Yy0+Z2I7Cj4gPiAgICAgIGZsb2F0ICpjaGFubmVsX3B0cnNbMjU1 XTsKPiA+ICAgICAgaW50IGksIGxlbiwgcmV0Owo+ID4gKyAgICBzaXplX3QgbmV3X2V4dHJhZGF0 YV9zaXplOwo+ID4gKyAgICBjb25zdCB1aW50OF90ICpuZXdfZXh0cmFkYXRhOwo+ID4gKyAgICBB VlZvcmJpc0hlYWRlckV4dHJhZGF0YSAqbmV3X2hlYWRlcjsKPiA+ICsgICAgY29uc3QgdWludDhf dCAqaGVhZGVyID0gTlVMTDsKPiA+ICsgICAgc2l6ZV90IGhlYWRlcl9zaXplID0gMDsKPiA+ICsg ICAgY29uc3QgdWludDhfdCAqc2V0dXAgPSBOVUxMOwo+ID4gKyAgICBzaXplX3Qgc2V0dXBfc2l6 ZSA9IDA7Cj4gPgo+ID4gICAgICBmZl9kbG9nKE5VTEwsICJwYWNrZXQgbGVuZ3RoICVkIFxuIiwg YnVmX3NpemUpOwo+ID4KPiA+IC0gICAgaWYgKCpidWYgPT0gMSAmJiBidWZfc2l6ZSA+IDcpIHsK PiA+IC0gICAgICAgIGlmICgocmV0ID0gaW5pdF9nZXRfYml0czgoZ2IsIGJ1ZiArIDEsIGJ1Zl9z aXplIC0gMSkpIDwgMCkKPiA+ICsgICAgbmV3X2V4dHJhZGF0YSA9IGF2X3BhY2tldF9nZXRfc2lk ZV9kYXRhKGF2cGt0LCBBVl9QS1RfREFUQV9ORVdfRVhUUkFEQVRBLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICZuZXdfZXh0cmFkYXRhX3NpemUpOwo+ID4gKwo+ID4gKyAgICBpZiAobmV3 X2V4dHJhZGF0YSkgewo+ID4gKyAgICAgICAgaSA9IDA7Cj4gPiArICAgICAgICB3aGlsZSAoaSA8 IG5ld19leHRyYWRhdGFfc2l6ZSkgewo+ID4gKyAgICAgICAgICAgIG5ld19oZWFkZXIgPSAoQVZW b3JiaXNIZWFkZXJFeHRyYWRhdGEgKikobmV3X2V4dHJhZGF0YStpKTsKPiA+ICsKPiA+ICsgICAg ICAgICAgICBpZiAobmV3X2hlYWRlci0+aGVhZGVyX3R5cGUgPT0gVk9SQklTX0ZMQUdfSEVBREVS KSB7Cj4gPiArICAgICAgICAgICAgICAgIGhlYWRlcl9zaXplID0gbmV3X2hlYWRlci0+aGVhZGVy X3NpemU7Cj4gPiArICAgICAgICAgICAgICAgIGhlYWRlciA9IG5ld19oZWFkZXItPmhlYWRlcjsK PiA+ICsgICAgICAgICAgICB9Cj4gPiArCj4gPiArICAgICAgICAgICAgaWYgKG5ld19oZWFkZXIt PmhlYWRlcl90eXBlID09IFZPUkJJU19GTEFHX1NFVFVQKSB7Cj4gPiArICAgICAgICAgICAgICAg IHNldHVwX3NpemUgPSBuZXdfaGVhZGVyLT5oZWFkZXJfc2l6ZTsKPiA+ICsgICAgICAgICAgICAg ICAgc2V0dXAgPSBuZXdfaGVhZGVyLT5oZWFkZXI7Cj4gPiArICAgICAgICAgICAgfQo+ID4gKwo+ ID4gKyAgICAgICAgICAgIGkgKz0gc2l6ZW9mKEFWVm9yYmlzSGVhZGVyRXh0cmFkYXRhKStuZXdf aGVhZGVyLT5oZWFkZXJfc2l6ZTsKPiA+ICsgICAgICAgIH0KPiA+ICsgICAgfQo+ID4gKwo+ID4g KyAgICBpZiAoaGVhZGVyX3NpemUgPiA3ICYmICpoZWFkZXIgPT0gMSkgewo+ID4gKyAgICAgICAg aWYgKChyZXQgPSBpbml0X2dldF9iaXRzOChnYiwgaGVhZGVyICsgMSwgaGVhZGVyX3NpemUgLSAx KSkgPCAwKQo+ID4gICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPgo+ID4gICAgICAgICAgdm9y YmlzX2ZyZWUodmMpOwo+ID4gQEAgLTE4MDEsMTYgKzE4MzEsMTAgQEAgc3RhdGljIGludCB2b3Ji aXNfZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCj4g PiAgICAgICAgICB9Cj4gPgo+ID4gICAgICAgICAgYXZjdHgtPnNhbXBsZV9yYXRlID0gdmMtPmF1 ZGlvX3NhbXBsZXJhdGU7Cj4gPiAtICAgICAgICByZXR1cm4gYnVmX3NpemU7Cj4gPiAtICAgIH0K PiA+IC0KPiA+IC0gICAgaWYgKCpidWYgPT0gMyAmJiBidWZfc2l6ZSA+IDcpIHsKPiA+IC0gICAg ICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RFQlVHLCAiSWdub3JpbmcgY29tbWVudCBoZWFkZXJc biIpOwo+ID4gLSAgICAgICAgcmV0dXJuIGJ1Zl9zaXplOwo+ID4gICAgICB9Cj4gPgo+ID4gLSAg ICBpZiAoKmJ1ZiA9PSA1ICYmIGJ1Zl9zaXplID4gNyAmJiB2Yy0+Y2hhbm5lbF9yZXNpZHVlcyAm JiAhdmMtPm1vZGVzKSB7Cj4gPiAtICAgICAgICBpZiAoKHJldCA9IGluaXRfZ2V0X2JpdHM4KGdi LCBidWYgKyAxLCBidWZfc2l6ZSAtIDEpKSA8IDApCj4gPiArICAgIGlmIChzZXR1cF9zaXplID4g NyAmJiAqc2V0dXAgPT0gNSAmJiB2Yy0+Y2hhbm5lbF9yZXNpZHVlcyAmJiAhdmMtPm1vZGVzKSB7 Cj4gPiArICAgICAgICBpZiAoKHJldCA9IGluaXRfZ2V0X2JpdHM4KGdiLCBzZXR1cCArIDEsIHNl dHVwX3NpemUgLSAxKSkgPCAwKQo+ID4gICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPgo+ID4g ICAgICAgICAgaWYgKChyZXQgPSB2b3JiaXNfcGFyc2Vfc2V0dXBfaGRyKHZjKSkpIHsKPiA+IEBA IC0xODE4LDcgKzE4NDIsNiBAQCBzdGF0aWMgaW50IHZvcmJpc19kZWNvZGVfZnJhbWUoQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSwKPiA+ICAgICAgICAgICAgICB2b3JiaXNf ZnJlZSh2Yyk7Cj4gPiAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICAgICAgICAgIH0KPiA+ IC0gICAgICAgIHJldHVybiBidWZfc2l6ZTsKPiA+ICAgICAgfQo+ID4KPiA+ICAgICAgaWYgKCF2 Yy0+Y2hhbm5lbF9yZXNpZHVlcyB8fCAhdmMtPm1vZGVzKSB7Cj4gPiBkaWZmIC0tZ2l0IGEvbGli YXZmb3JtYXQvb2dncGFyc2V2b3JiaXMuYyBiL2xpYmF2Zm9ybWF0L29nZ3BhcnNldm9yYmlzLmMK PiA+IGluZGV4IDYyY2MyZGE2ZGUuLjdlODEyODQ2ZmUgMTAwNjQ0Cj4gPiAtLS0gYS9saWJhdmZv cm1hdC9vZ2dwYXJzZXZvcmJpcy5jCj4gPiArKysgYi9saWJhdmZvcm1hdC9vZ2dwYXJzZXZvcmJp cy5jCj4gPiBAQCAtNDM0LDYgKzQzNCw5IEBAIHN0YXRpYyBpbnQgdm9yYmlzX3BhY2tldChBVkZv cm1hdENvbnRleHQgKnMsIGludCBpZHgpCj4gPiAgICAgIHN0cnVjdCBvZ2dfc3RyZWFtICpvcyA9 IG9nZy0+c3RyZWFtcyArIGlkeDsKPiA+ICAgICAgc3RydWN0IG9nZ3ZvcmJpc19wcml2YXRlICpw cml2ID0gb3MtPnByaXZhdGU7Cj4gPiAgICAgIGludCBkdXJhdGlvbiwgZmxhZ3MgPSAwOwo+ID4g KyAgICBpbnQgc2tpcF9wYWNrZXQgPSAwOwo+ID4gKyAgICBpbnQgcmV0LCBoZWFkZXJfc2l6ZTsK PiA+ICsgICAgQVZWb3JiaXNIZWFkZXJFeHRyYWRhdGEgKm5ld19oZWFkZXI7Cj4gPgo+ID4gICAg ICBpZiAoIXByaXYtPnZwKQo+ID4gICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7 Cj4gPiBAQCAtNDk2LDEwICs0OTksNTcgQEAgc3RhdGljIGludCB2b3JiaXNfcGFja2V0KEFWRm9y bWF0Q29udGV4dCAqcywgaW50IGlkeCkKPiA+ICAgICAgICAgIGlmIChkdXJhdGlvbiA8IDApIHsK PiA+ICAgICAgICAgICAgICBvcy0+cGZsYWdzIHw9IEFWX1BLVF9GTEFHX0NPUlJVUFQ7Cj4gPiAg ICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiAtICAgICAgICB9IGVsc2UgaWYgKGZsYWdzICYgVk9S QklTX0ZMQUdfQ09NTUVOVCkgewo+ID4gLSAgICAgICAgICAgIHZvcmJpc191cGRhdGVfbWV0YWRh dGEocywgaWR4KTsKPiA+ICsgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgIGlmIChmbGFncyAm IFZPUkJJU19GTEFHX0hFQURFUikgewo+ID4gKyAgICAgICAgICAgIHJldCA9IHZvcmJpc19wYXJz ZV9oZWFkZXIocywgcy0+c3RyZWFtc1tpZHhdLCBvcy0+YnVmICsgb3MtPnBzdGFydCwgb3MtPnBz aXplKTsKPiA+ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkKPiA+ICsgICAgICAgICAgICAgICAg cmV0dXJuIHJldDsKPiA+ICsKPiA+ICsgICAgICAgICAgICBoZWFkZXJfc2l6ZSA9IHNpemVvZihB VlZvcmJpc0hlYWRlckV4dHJhZGF0YSkrb3MtPnBzaXplOwo+ID4gKyAgICAgICAgICAgIHJldCA9 IGF2X3JlYWxsb2NwKCZvcy0+bmV3X2V4dHJhZGF0YSwKPiA+ICsgICAgICAgICAgICAgICAgb3Mt Pm5ld19leHRyYWRhdGFfc2l6ZStoZWFkZXJfc2l6ZSk7Cj4gPiArCj4gPiArICAgICAgICAgICAg aWYgKHJldCA8IDApCj4gPiArICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiArCj4gPiAr ICAgICAgICAgICAgbmV3X2hlYWRlciA9IChBVlZvcmJpc0hlYWRlckV4dHJhZGF0YSAqKShvcy0+ bmV3X2V4dHJhZGF0YStvcy0+bmV3X2V4dHJhZGF0YV9zaXplKTsKPiA+ICsgICAgICAgICAgICBu ZXdfaGVhZGVyLT5oZWFkZXJfdHlwZSA9IFZPUkJJU19GTEFHX0hFQURFUjsKPiA+ICsgICAgICAg ICAgICBuZXdfaGVhZGVyLT5oZWFkZXJfc2l6ZSA9IG9zLT5wc2l6ZTsKPiA+ICsgICAgICAgICAg ICBtZW1jcHkobmV3X2hlYWRlci0+aGVhZGVyLCBvcy0+YnVmICsgb3MtPnBzdGFydCwgb3MtPnBz aXplKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICBvcy0+bmV3X2V4dHJhZGF0YV9zaXplICs9IGhl YWRlcl9zaXplOwo+ID4gKwo+ID4gKyAgICAgICAgICAgIHNraXBfcGFja2V0ID0gMTsKPiA+ICsg ICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgIGlmIChmbGFncyAmIFZPUkJJU19GTEFHX0NPTU1F TlQpIHsKPiA+ICsgICAgICAgICAgICByZXQgPSB2b3JiaXNfdXBkYXRlX21ldGFkYXRhKHMsIGlk eCk7Cj4gPiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gPiArICAgICAgICAgICAgICAgIHJl dHVybiByZXQ7Cj4gPiArCj4gPiAgICAgICAgICAgICAgZmxhZ3MgPSAwOwo+ID4gKyAgICAgICAg ICAgIHNraXBfcGFja2V0ID0gMTsKPiA+ICsgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgIGlm IChmbGFncyAmIFZPUkJJU19GTEFHX1NFVFVQKSB7Cj4gPiArICAgICAgICAgICAgaGVhZGVyX3Np emUgPSBzaXplb2YoQVZWb3JiaXNIZWFkZXJFeHRyYWRhdGEpK29zLT5wc2l6ZTsKPiA+ICsgICAg ICAgICAgICByZXQgPSBhdl9yZWFsbG9jcCgmb3MtPm5ld19leHRyYWRhdGEsCj4gPiArICAgICAg ICAgICAgICAgIG9zLT5uZXdfZXh0cmFkYXRhX3NpemUraGVhZGVyX3NpemUpOwo+ID4gKwo+ID4g KyAgICAgICAgICAgIGlmIChyZXQgPCAwKQo+ID4gKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0 Owo+ID4gKwo+ID4gKyAgICAgICAgICAgIG5ld19oZWFkZXIgPSAoQVZWb3JiaXNIZWFkZXJFeHRy YWRhdGEgKikob3MtPm5ld19leHRyYWRhdGErb3MtPm5ld19leHRyYWRhdGFfc2l6ZSk7Cj4gPiAr ICAgICAgICAgICAgbmV3X2hlYWRlci0+aGVhZGVyX3R5cGUgPSBWT1JCSVNfRkxBR19TRVRVUDsK PiA+ICsgICAgICAgICAgICBuZXdfaGVhZGVyLT5oZWFkZXJfc2l6ZSA9IG9zLT5wc2l6ZTsKPiA+ ICsgICAgICAgICAgICBtZW1jcHkobmV3X2hlYWRlci0+aGVhZGVyLCBvcy0+YnVmICsgb3MtPnBz dGFydCwgb3MtPnBzaXplKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICBvcy0+bmV3X2V4dHJhZGF0 YV9zaXplICs9IGhlYWRlcl9zaXplOwo+ID4gKwo+ID4gKyAgICAgICAgICAgIHNraXBfcGFja2V0 ID0gMTsKPiA+ICAgICAgICAgIH0KPiA+ICsKPiA+ICAgICAgICAgIG9zLT5wZHVyYXRpb24gPSBk dXJhdGlvbjsKPiA+ICAgICAgfQo+ID4KPiA+IEBAIC01MjEsNyArNTcxLDcgQEAgc3RhdGljIGlu dCB2b3JiaXNfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgaW50IGlkeCkKPiA+ICAgICAgICAg IHByaXYtPmZpbmFsX2R1cmF0aW9uICs9IG9zLT5wZHVyYXRpb247Cj4gPiAgICAgIH0KPiA+Cj4g PiAtICAgIHJldHVybiAwOwo+ID4gKyAgICByZXR1cm4gc2tpcF9wYWNrZXQ7Cj4gPiAgfQo+ID4K PiA+ICBjb25zdCBzdHJ1Y3Qgb2dnX2NvZGVjIGZmX3ZvcmJpc19jb2RlYyA9IHsKPiA+IGRpZmYg LS1naXQgYS90ZXN0cy9yZWYvZmF0ZS9vZ2ctdm9yYmlzLWNoYWluZWQtbWV0YS50eHQgYi90ZXN0 cy9yZWYvZmF0ZS9vZ2ctdm9yYmlzLWNoYWluZWQtbWV0YS50eHQKPiA+IGluZGV4IGI3YTk3Yzkw ZTIuLjEyMDZmODZjMWYgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0cy9yZWYvZmF0ZS9vZ2ctdm9yYmlz LWNoYWluZWQtbWV0YS50eHQKPiA+ICsrKyBiL3Rlc3RzL3JlZi9mYXRlL29nZy12b3JiaXMtY2hh aW5lZC1tZXRhLnR4dAo+ID4gQEAgLTYsMTAgKzYsNyBAQCBTdHJlYW0gSUQ6IDAsIGZyYW1lIFBU UzogMTI4LCBtZXRhZGF0YTogTi9BCj4gPiAgU3RyZWFtIElEOiAwLCBwYWNrZXQgUFRTOiA3MDQs IHBhY2tldCBEVFM6IDcwNAo+ID4gIFN0cmVhbSBJRDogMCwgZnJhbWUgUFRTOiA3MDQsIG1ldGFk YXRhOiBOL0EKPiA+ICBTdHJlYW0gSUQ6IDAsIHBhY2tldCBQVFM6IDAsIHBhY2tldCBEVFM6IDAK PiA+IC1TdHJlYW0gSUQ6IDAsIHBhY2tldCBQVFM6IDAsIHBhY2tldCBEVFM6IDAKPiA+ICBTdHJl YW0gSUQ6IDAsIG5ldyBtZXRhZGF0YTogZW5jb2Rlcj1MYXZjNjEuMTkuMTAwIGxpYnZvcmJpczp0 aXRsZT1TZWNvbmQgU3RyZWFtCj4gPiAtU3RyZWFtIElEOiAwLCBwYWNrZXQgUFRTOiAwLCBwYWNr ZXQgRFRTOiAwCj4gPiAtU3RyZWFtIElEOiAwLCBwYWNrZXQgUFRTOiAwLCBwYWNrZXQgRFRTOiAw Cj4gPiAgU3RyZWFtIElEOiAwLCBmcmFtZSBQVFM6IDAsIG1ldGFkYXRhOiBOL0EKPiA+ICBTdHJl YW0gSUQ6IDAsIHBhY2tldCBQVFM6IDEyOCwgcGFja2V0IERUUzogMTI4Cj4gPiAgU3RyZWFtIElE OiAwLCBmcmFtZSBQVFM6IDEyOCwgbWV0YWRhdGE6IE4vQQo+Cl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZt cGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8v ZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwK ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJl Ii4K