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 BF759475A7 for ; Tue, 12 Sep 2023 16:57:28 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6D8CC68C970; Tue, 12 Sep 2023 19:57:26 +0300 (EEST) Received: from mail-oo1-f42.google.com (mail-oo1-f42.google.com [209.85.161.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1D73068C8AD for ; Tue, 12 Sep 2023 19:57:20 +0300 (EEST) Received: by mail-oo1-f42.google.com with SMTP id 006d021491bc7-573249e73f8so3780883eaf.1 for ; Tue, 12 Sep 2023 09:57:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694537838; x=1695142638; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=YC1sv7PWOj8C71piRzwr0MBkdMNGXgoDuL8ykL1dPvQ=; b=T5Lfh++yAqvGU+smc3DLU5PH41JpE5lU3VAXcMQVB4mrtxnHFz2dtdCzeOcbFb6FUI gIZsB2NUsXTeDF2g3N73rWWcrje+ucMg2D+PZnsublaXcwW7QV8hLBqltXko7PRxM4sK PzrBs9jNXGSXyKqJ4e9EcI82XtpouyRR0/mMH/SZI/LLuHViUUkyU/pKVLV/r2dvXIs3 lVvh9nfZv6lWHQ6tfEPjYdm8gDgkon0oDpAEg8psJc4yPwHGoDJ9keRSHH8tW1QfdwtA pAHkqJ4TKY/NQgwsJ0GpVGZTDHS08g37VbXfbi8Z7+r+EuSJRrljCzeHcjLMs2gBV4Y1 5mlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694537838; x=1695142638; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=YC1sv7PWOj8C71piRzwr0MBkdMNGXgoDuL8ykL1dPvQ=; b=YOdGZdkT7Fka9+eRrsoMvVDo8qvJRTqUKYqeYzF/TBaUfXChNFYIzbdC4sJqXwP16D DufrE8V9k/oJhkJdC+JF+ZWVqa70oTmEWLajoG1Zf8d8EoxUzT9msrEg1Ryri27dBxcT +fIAL6ltIcL3Xgi6SPaypgO2JZDXi2e62KFtj+59YxMtnXjiq4YWggoCkeBfZWmik4UI CeVaMABF+ujDwhlkauZog9F18/+zGxI0blmzv1YrH9J2ubisxY1fUtUCTp1RxeZ/84dz 6nitjRw9rgkSh7PHv/oRfhSLutnz0I022kmqA7XHxSfiZL6wYIAb06cb3WLju3G9c5NK q4Gw== X-Gm-Message-State: AOJu0Yz0StYwKwItS8wjPUmGyFtisl4phMg61VBQt172ErOkPGFCpBoP aLtRUPmzuAlNaqE67RNKo4JsKelqoqs= X-Google-Smtp-Source: AGHT+IGQKrCLDcm83cvO2tAKLf9tOpQc9HcYfEDADtpJfSv0nh7MQgZWfKQEKg1OR8tD0xfxMg9qxQ== X-Received: by 2002:a4a:9b0f:0:b0:571:24b4:15b7 with SMTP id a15-20020a4a9b0f000000b0057124b415b7mr200651ook.1.1694537837819; Tue, 12 Sep 2023 09:57:17 -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 y22-20020a056830109600b006b74bea76c0sm4275566oto.47.2023.09.12.09.57.16 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 12 Sep 2023 09:57:17 -0700 (PDT) Message-ID: <5706d46a-ad9c-e62c-08f4-1835fbdaf6dc@gmail.com> Date: Tue, 12 Sep 2023 13:57:15 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20230906174431.45558-1-jamrial@gmail.com> <20230906174431.45558-4-jamrial@gmail.com> From: James Almer In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH 03/10] avformat/avformat: use the side data from AVStream.codecpar 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: T24gOS8xMi8yMDIzIDE6NDMgUE0sIEFuZHJlYXMgUmhlaW5oYXJkdCB3cm90ZToKPiBKYW1lcyBB bG1lcjoKPj4gT24gOS8xMS8yMDIzIDQ6MTkgUE0sIEFuZHJlYXMgUmhlaW5oYXJkdCB3cm90ZToK Pj4+IEphbWVzIEFsbWVyOgo+Pj4+IERlcHJlY2F0ZSBBVlN0cmVhbS5zaWRlX2RhdGEgYW5kIGl0 cyBoZWxwZXJzIGluIGZhdm9yIG9mIHRoZSBBVlN0cmVhbSdzCj4+Pj4gY29kZWNwYXIuc2lkZV9k YXRhLgo+Pj4+Cj4+Pj4gVGhpcyB3aWxsIGNvbnNpZGVyYWJseSBzaW1wbGlmeSB0aGUgcHJvcGFn YXRpb24gb2YgZ2xvYmFsIHNpZGUgZGF0YQo+Pj4+IHRvIGRlY29kZXJzCj4+Pj4gYW5kIGZyb20g ZW5jb2RlcnMuIEluc3RlYWQgb2YgaGF2aW5nIHRvIGRvIGl0IGluc2lkZSBwYWNrZXRzLCBpdCB3 aWxsIGJlCj4+Pj4gYXZhaWxhYmxlIGR1cmluZyBpbml0KCkuCj4+Pj4gR2xvYmFsIGFuZCBmcmFt ZSBzcGVjaWZpYyBzaWRlIGRhdGEgd2lsbCB0aGVyZWZvcmUgYmUgZGlzdGluY3QuCj4+Pj4KPj4+ PiBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBBbG1lciA8amFtcmlhbEBnbWFpbC5jb20+Cj4+Pj4gLS0t PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYXZmb3JtYXQuaCBiL2xpYmF2Zm9ybWF0L2F2Zm9y bWF0LmgKPj4+PiBpbmRleCAxOTE2YWEyZGM1Li5mNzhhMDI3ZjY0IDEwMDY0NAo+Pj4+IC0tLSBh L2xpYmF2Zm9ybWF0L2F2Zm9ybWF0LmgKPj4+PiArKysgYi9saWJhdmZvcm1hdC9hdmZvcm1hdC5o Cj4+Pj4gQEAgLTE2NCw2ICsxNjQsMTMgQEAKPj4+PiAgwqDCoCAqIGRlY29kaW5nIGZ1bmN0aW9u cyBhdmNvZGVjX3NlbmRfcGFja2V0KCkgb3IKPj4+PiBhdmNvZGVjX2RlY29kZV9zdWJ0aXRsZTIo KSBpZiB0aGUKPj4+PiAgwqDCoCAqIGNhbGxlciB3aXNoZXMgdG8gZGVjb2RlIHRoZSBkYXRhLgo+ Pj4+ICDCoMKgICoKPj4+PiArICogVGhlcmUgbWF5IGJlIG5vIG92ZXJsYXAgYmV0d2VlbiB0aGUg c3RyZWFtJ3MgQHJlZgo+Pj4+IEFWQ29kZWNQYXJhbWV0ZXJzLnNpZGVfZGF0YQo+Pj4+ICsgKiAi c2lkZSBkYXRhIiBhbmQgQHJlZiBBVlBhY2tldC5zaWRlX2RhdGEgInNpZGUgZGF0YSIgaW4gcGFj a2V0cy4KPj4+PiBJLmUuIGEgZ2l2ZW4KPj4+PiArICogc2lkZSBkYXRhIGlzIGVpdGhlciBleHBv cnRlZCBieSB0aGUgZGVtdXhlciBpbiBBVkNvZGVjUGFyYW1ldGVycywKPj4+PiB0aGVuIGl0IG5l dmVyCj4+Pj4gKyAqIGFwcGVhcnMgaW4gdGhlIHBhY2tldHMsIG9yIHRoZSBzaWRlIGRhdGEgaXMg ZXhwb3J0ZWQgdGhyb3VnaCB0aGUKPj4+PiBwYWNrZXRzIChhbHdheXMKPj4+PiArICogaW4gdGhl IGZpcnN0IHBhY2tldCB3aGVyZSB0aGUgdmFsdWUgYmVjb21lcyBrbm93biBvciBjaGFuZ2VzKSwK Pj4+PiB0aGVuIGl0IGRvZXMgbm90Cj4+Pj4gKyAqIGFwcGVhciBpbiBBVkNvZGVjUGFyYW1ldGVy cy4KPj4+PiArICoKPj4+Cj4+PiBJcyBpdCBhY3R1YWxseSBjZXJ0YWluIHRoYXQgb3VyIGRlbXV4 ZXJzIGN1cnJlbnRseSBhYmlkZSBieSB0aGlzPyBFLmcuCj4+PiBpbiBtcGVndHMsIHN0cmVhbSBw YXJhbWV0ZXJzIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUsIHNvIHdoeSBkb2VzIGl0IHNldAo+Pj4g aXQgYXQgdGhlIHN0cmVhbSBsZXZlbCBhbmQgbm90IHRoZSBwYWNrZXQgbGV2ZWw/Cj4+Cj4+IERv ZXMgbXBlZ3RzIGNoYW5nZSBBVlN0cmVhbS5jb2RlY3BhciBtaWQgZGVtdXhpbmc/IHdvdWxkbid0 IHRoYXQgYmUgYW4KPj4gQVBJIHZpb2xhdGlvbj8gSSBhc3N1bWVkIHRoYXQgd2FzIHdoYXQgQVZf UEtUX0RBVEFfUEFSQU1fQ0hBTkdFIGFuZAo+PiBBVl9QS1RfREFUQV9ORVdfRVhUUkFEQVRBIHBh Y2tldCBzaWRlIGRhdGEgd2VyZSBmb3IuCj4+Cj4gCj4gSXQgc2VlbXMgdGhhdCB0aGUgZG92aSBz dHJlYW0gc2lkZSBkYXRhIGNhbiBiZSBhZGRlZCAoYW5kIHBvdGVudGlhbGx5Cj4gZXZlbiByZXBs YWNlZCkgbG9uZyBhZnRlciB0aGUgc3RyZWFtIGhhcyBiZWVuIGNyZWF0ZWQuCgpZZWFoLCBhcyB3 ZWxsIGFzIG90aGVyIGNvZGVjcGFyIGZpZWxkcy4gSG93IGlzIHRoZSBsaWJyYXJ5IHVzZXIgZXZl biAKbWVhbnQgdG8ga25vdyB0aGlzIGhhcHBlbmVkPyBUaGUgZG94eSBzdGF0ZXMgY29kZWNwYXIg aXMgZmlsbGVkIG9uIApzdHJlYW0gY3JlYXRpb24gb3IgZHVyaW5nIGF2Zm9ybWF0X2ZpbmRfc3Ry ZWFtX2luZm8oKSwgc28gdGhleSB3b3VsZCBub3QgCmV4cGVjdCBpdCB0byBjaGFuZ2UgYWZ0ZXIg dGhhdC4KCkFWX1BLVF9EQVRBX1BBUkFNX0NIQU5HRSBzZWVtcyB0byBtZSB0aGF0IGl0J3MgdGhl IHByb3BlciB3YXkgdG8gCnByb3BhZ2F0ZSB0aGVzZSBjaGFuZ2VzLCB5ZXQgaXQgbG9va3MgdW5k ZXJ1c2VkIGFuZCBmdXp6aWx5IGRlZmluZWQuCk1heWJlIGl0IHNob3VsZCBiZSBleHBhbmRlZCBh bmQgaW1wcm92ZWQgZm9yIHRoaXMuCgo+IChUaGUgY29uY2F0IGRlbXV4ZXIgbWF5IGV2ZW4gc2V0 IGV4dHJhZGF0YSBsYXRlcm9uIGFuZCBldmVuIGNoYW5nZSBpdAo+IGFmdGVyIGl0IGhhcyBiZWVu IGFsbG9jYXRlZDsgc2VlIG1hdGNoX3N0cmVhbXMoKSBpbgo+IGNvbmNhdF9yZWFkX3BhY2tldCgp LiBUaGUgY29uY2F0IGRlbXV4ZXIgc2hvdWxkIGFjdHVhbGx5IGFkZCB0aGUgZ2xvYmFsCj4gc2lk ZSBkYXRhIG9mIGV2ZXJ5IGlucHV0IHRvIHRoZSBmaXJzdCBwYWNrZXQgZnJvbSBzYWlkIGlucHV0 IHdoaWNoIG1lYW5zCj4gdGhhdCBjb3B5aW5nIHNpZGUgZGF0YSAod2hldGhlciBpbiBmZl9zdHJl YW1fc2lkZV9kYXRhX2NvcHkoKSBvciBpbgo+IGF2Y29kZWNfcGFyYW1ldGVyc19jb3B5KCkgaXMg cG90ZW50aWFsbHkgcHJvYmxlbWF0aWMuKQo+IAo+Pj4KPj4+PiAgwqDCoCAqIEFWUGFja2V0LnB0 cywgQVZQYWNrZXQuZHRzIGFuZCBBVlBhY2tldC5kdXJhdGlvbiB0aW1pbmcKPj4+PiBpbmZvcm1h dGlvbiB3aWxsIGJlCj4+Pj4gIMKgwqAgKiBzZXQgaWYga25vd24uIFRoZXkgbWF5IGFsc28gYmUg dW5zZXQgKGkuZS4gQVZfTk9QVFNfVkFMVUUgZm9yCj4+Pj4gIMKgwqAgKiBwdHMvZHRzLCAwIGZv ciBkdXJhdGlvbikgaWYgdGhlIHN0cmVhbSBkb2VzIG5vdCBwcm92aWRlIHRoZW0uCj4+Pj4gVGhl IHRpbWluZwo+Pj4+IEBAIC0yMDksNiArMjE2LDExIEBACj4+Pj4gIMKgwqAgKsKgwqAgQVZDb2Rl Y1BhcmFtZXRlcnMsIHJhdGhlciB0aGFuIHVzaW5nIEByZWYKPj4+PiBhdmNvZGVjX3BhcmFtZXRl cnNfY29weSgpIGR1cmluZwo+Pj4+ICDCoMKgICrCoMKgIHJlbXV4aW5nOiB0aGVyZSBpcyBubyBn dWFyYW50ZWUgdGhhdCB0aGUgY29kZWMgY29udGV4dCB2YWx1ZXMKPj4+PiByZW1haW4gdmFsaWQK Pj4+PiAgwqDCoCAqwqDCoCBmb3IgYm90aCBpbnB1dCBhbmQgb3V0cHV0IGZvcm1hdCBjb250ZXh0 cy4KPj4+PiArICogLSBUaGVyZSBtYXkgYmUgbm8gb3ZlcmxhcCBiZXR3ZWVuIEFWQ29kZWNQYXJh bWV0ZXJzLnNpZGVfZGF0YSBhbmQKPj4+PiBzaWRlIGRhdGEgaW4KPj4+PiArICrCoMKgIHBhY2tl dHMuIEkuZS4gYSBnaXZlbiBzaWRlIGRhdGEgaXMgZWl0aGVyIHNldCBieSB0aGUgY2FsbGVyIGlu Cj4+Pj4gKyAqwqDCoCBBVkNvZGVjUGFyYW1ldGVycywgdGhlbiBpdCBuZXZlciBhcHBlYXJzIGlu IHRoZSBwYWNrZXRzLCBvciB0aGUKPj4+PiBzaWRlIGRhdGEgaXMKPj4+PiArICrCoMKgIHNlbnQg dGhyb3VnaCB0aGUgcGFja2V0cyAoYWx3YXlzIGluIHRoZSBmaXJzdCBwYWNrZXQgd2hlcmUgdGhl Cj4+Pj4gdmFsdWUgYmVjb21lcwo+Pj4+ICsgKsKgwqAga25vd24gb3IgY2hhbmdlcyksIHRoZW4g aXQgZG9lcyBub3QgYXBwZWFyIGluIEFWQ29kZWNQYXJhbWV0ZXJzLgo+Pj4KPj4+IEkgaGF2ZSB0 byBzYXksIEkgZG9uJ3QgcmVhbGx5IGxpa2UgdGhpcyAoYW5kIG9mIGNvdXJzZSBJIGFtIGF3YXJl IHRoYXQKPj4+IHlvdSBhcmUgYmFzaWNhbGx5IGNvcHlpbmcgdGhlIGRveHkgb2YgQVZQYWNrZXRT aWRlRGF0YSBoZXJlKS4gQXMgeW91Cj4+Cj4+IEkgY2FuIHJlbW92ZSB0aGlzIHBhcnQsIHRvIGJl IGFkZGVkIGxhdGVyIGlmIG5lZWRlZC4KPj4KPj4+IGtub3csIHRoZSBNYXRyb3NrYSBtdXhlciBu ZWVkcyB0byBhZGQgaGVhZGVyIGZpZWxkcyBpbiBvcmRlciB0byBhZGQKPj4+IGNlcnRhaW4gcGFj a2V0IHNpZGUgZGF0YSB0byBibG9ja3MgbGF0ZXIuIEluIGNhc2Ugb2Ygc2Vla2FibGUgb3V0cHV0 LAo+Pj4gb25lIGNhbiB1cGRhdGUgdGhlIGhlYWRlciBsYXRlciwgYnV0IGluIGNhc2Ugb2YgdW5z ZWVrYWJsZSBvdXRwdXQgdGhhdAo+Pj4gaXMgbm90IHRydWUuIEknZCBsaWtlIHRoZXJlIHRvIGJl IGFuIGVhc3kgd2F5IGZvciB0aGUgdXNlciB0byBzaWduYWwgdGhlCj4+PiBpbnRlbnRpb24gdG8g c2VuZCBwYWNrZXQgc2lkZSBkYXRhIG9mIGEgc3BlY2lmaWMgdHlwZSBsYXRlci4KPj4KPj4gTWF5 YmUgYSBuZXcgQVZGTVRfRkxBR18/Cj4+Cj4gCj4gVGhhdCB3b3VsZCBwb3RlbnRpYWxseSBiZSBh IG5ldyBBVkZNVF9GTEFHXyBmb3IgZXZlcnkgc2lkZSBkYXRhIHR5cGU7Cj4gdGhhdCBtYWtlcyBu byBzZW5zZS4KClllYWgsIG1pc3NlZCB0aGUgInNwZWNpZmljIHR5cGUiIHBhcnQsIGFuZCBhc3N1 bWVkIHlvdSBtZWFudCBvbmx5IGEgd2F5IAp0byBzaWduYWwgYSBzaW1wbGUgIktlZXAgYW4gZXll IGZvciBzaWRlIGRhdGEgaW4gcGFja2V0cyIgc2NlbmFyaW8uCj4gCj4+Pgo+Pj4+ICDCoMKgICog LSBUaGUgY2FsbGVyIG1heSBmaWxsIGluIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIHN1Y2ggYXMg QHJlZgo+Pj4+ICDCoMKgICrCoMKgIEFWRm9ybWF0Q29udGV4dC5tZXRhZGF0YSAiZ2xvYmFsIiBv ciBAcmVmIEFWU3RyZWFtLm1ldGFkYXRhCj4+Pj4gInBlci1zdHJlYW0iCj4+Pj4gIMKgwqAgKsKg wqAgbWV0YWRhdGEsIEByZWYgQVZGb3JtYXRDb250ZXh0LmNoYXB0ZXJzICJjaGFwdGVycyIsIEBy ZWYKPj4+PiBAQCAtOTM3LDYgKzk0OSw3IEBAIHR5cGVkZWYgc3RydWN0IEFWU3RyZWFtIHsKPj4+ PiAgwqDCoMKgwqDCoMKgICovCj4+Pj4gIMKgwqDCoMKgwqAgQVZQYWNrZXQgYXR0YWNoZWRfcGlj Owo+Pj4+ICDCoCArI2lmIEZGX0FQSV9BVlNUUkVBTV9TSURFX0RBVEEKPj4+PiAgwqDCoMKgwqDC oCAvKioKPj4+PiAgwqDCoMKgwqDCoMKgICogQW4gYXJyYXkgb2Ygc2lkZSBkYXRhIHRoYXQgYXBw bGllcyB0byB0aGUgd2hvbGUgc3RyZWFtIChpLmUuCj4+Pj4gdGhlCj4+Pj4gIMKgwqDCoMKgwqDC oCAqIGNvbnRhaW5lciBkb2VzIG5vdCBhbGxvdyBpdCB0byBjaGFuZ2UgYmV0d2VlbiBwYWNrZXRz KS4KPj4+PiBAQCAtOTUzLDEzICs5NjYsMjAgQEAgdHlwZWRlZiBzdHJ1Y3QgQVZTdHJlYW0gewo+ Pj4+ICDCoMKgwqDCoMKgwqAgKgo+Pj4+ICDCoMKgwqDCoMKgwqAgKiBGcmVlZCBieSBsaWJhdmZv cm1hdCBpbiBhdmZvcm1hdF9mcmVlX2NvbnRleHQoKS4KPj4+PiAgwqDCoMKgwqDCoMKgICoKPj4+ PiAtwqDCoMKgwqAgKiBAc2VlIGF2X2Zvcm1hdF9pbmplY3RfZ2xvYmFsX3NpZGVfZGF0YSgpCj4+ Pj4gK8KgwqDCoMKgICogQGRlcHJlY2F0ZWQgdXNlIEFWU3RyZWFtJ3MgQHJlZiBBVkNvZGVjUGFy YW1ldGVycy5zaWRlX2RhdGEKPj4+PiArwqDCoMKgwqAgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAiY29kZWNwYXIgc2lkZSBkYXRhIi4KPj4+PiAgwqDCoMKgwqDCoMKgICovCj4+Pj4gK8KgwqDC oCBhdHRyaWJ1dGVfZGVwcmVjYXRlZAo+Pj4+ICDCoMKgwqDCoMKgIEFWUGFja2V0U2lkZURhdGEg KnNpZGVfZGF0YTsKPj4+PiAgwqDCoMKgwqDCoCAvKioKPj4+PiAgwqDCoMKgwqDCoMKgICogVGhl IG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgQVZTdHJlYW0uc2lkZV9kYXRhIGFycmF5Lgo+Pj4+ ICvCoMKgwqDCoCAqCj4+Pj4gK8KgwqDCoMKgICogQGRlcHJlY2F0ZWQgdXNlIEFWU3RyZWFtJ3Mg QHJlZiBBVkNvZGVjUGFyYW1ldGVycy5zaWRlX2RhdGEKPj4+PiArwqDCoMKgwqAgKsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAiY29kZWNwYXIgc2lkZSBkYXRhIi4KPj4+PiAgwqDCoMKgwqDCoMKg ICovCj4+Pj4gK8KgwqDCoCBhdHRyaWJ1dGVfZGVwcmVjYXRlZAo+Pj4+ICDCoMKgwqDCoMKgIGlu dMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmJfc2lkZV9kYXRhOwo+Pj4+ICsjZW5kaWYKPj4+PiAg wqAgwqDCoMKgwqDCoCAvKioKPj4+PiAgwqDCoMKgwqDCoMKgICogRmxhZ3MgaW5kaWNhdGluZyBl dmVudHMgaGFwcGVuaW5nIG9uIHRoZSBzdHJlYW0sIGEKPj4+PiBjb21iaW5hdGlvbiBvZgo+Pj4+ IEBAIC0xNzE1LDExICsxNzM1LDE4IEBAIHR5cGVkZWYgc3RydWN0IEFWRm9ybWF0Q29udGV4dCB7 Cj4+Pj4gIMKgwqDCoMKgwqAgaW50ICgqaW9fY2xvc2UyKShzdHJ1Y3QgQVZGb3JtYXRDb250ZXh0 ICpzLCBBVklPQ29udGV4dCAqcGIpOwo+Pj4+ICDCoCB9IEFWRm9ybWF0Q29udGV4dDsKPj4+PiAg wqAgKyNpZiBGRl9BUElfQVZTVFJFQU1fU0lERV9EQVRBCj4+Pj4gIMKgIC8qKgo+Pj4+ICDCoMKg ICogVGhpcyBmdW5jdGlvbiB3aWxsIGNhdXNlIGdsb2JhbCBzaWRlIGRhdGEgdG8gYmUgaW5qZWN0 ZWQgaW4gdGhlCj4+Pj4gbmV4dCBwYWNrZXQKPj4+PiAgwqDCoCAqIG9mIGVhY2ggc3RyZWFtIGFz IHdlbGwgYXMgYWZ0ZXIgYW55IHN1YnNlcXVlbnQgc2Vlay4KPj4+PiArICoKPj4+PiArICogQGRl cHJlY2F0ZWQgZ2xvYmFsIHNpZGUgZGF0YSBpcyBhbHdheXMgYXZhaWxhYmxlIGluIGV2ZXJ5IEFW U3RyZWFtJ3MKPj4+PiArICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQHJlZiBBVkNvZGVjUGFy YW1ldGVycy5zaWRlX2RhdGEgImNvZGVjcGFyIHNpZGUgZGF0YSIKPj4+PiBhcnJheS4KPj4+PiAr ICogQHNlZSBhdl9wYWNrZXRfc2lkZV9kYXRhX3NldF9nZXQoKQo+Pj4+ICDCoMKgICovCj4+Pj4g K2F0dHJpYnV0ZV9kZXByZWNhdGVkCj4+Pj4gIMKgIHZvaWQgYXZfZm9ybWF0X2luamVjdF9nbG9i YWxfc2lkZV9kYXRhKEFWRm9ybWF0Q29udGV4dCAqcyk7Cj4+Pj4gKyNlbmRpZgo+Pj4+ICDCoCDC oCAvKioKPj4+PiAgwqDCoCAqIFJldHVybnMgdGhlIG1ldGhvZCB1c2VkIHRvIHNldCBjdHgtPmR1 cmF0aW9uLgo+Pj4+IEBAIC0xODQ0LDYgKzE4NzEsNyBAQCBjb25zdCBBVkNsYXNzICphdl9zdHJl YW1fZ2V0X2NsYXNzKHZvaWQpOwo+Pj4+ICDCoMKgICovCj4+Pj4gIMKgIEFWU3RyZWFtICphdmZv cm1hdF9uZXdfc3RyZWFtKEFWRm9ybWF0Q29udGV4dCAqcywgY29uc3QgQVZDb2RlYyAqYyk7Cj4+ Pj4gIMKgICsjaWYgRkZfQVBJX0FWU1RSRUFNX1NJREVfREFUQQo+Pj4+ICDCoCAvKioKPj4+PiAg wqDCoCAqIFdyYXAgYW4gZXhpc3RpbmcgYXJyYXkgYXMgc3RyZWFtIHNpZGUgZGF0YS4KPj4+PiAg wqDCoCAqCj4+Pj4gQEAgLTE4NTYsNyArMTg4NCwxMCBAQCBBVlN0cmVhbSAqYXZmb3JtYXRfbmV3 X3N0cmVhbShBVkZvcm1hdENvbnRleHQKPj4+PiAqcywgY29uc3QgQVZDb2RlYyAqYyk7Cj4+Pj4g IMKgwqAgKgo+Pj4+ICDCoMKgICogQHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIGEgbmVnYXRpdmUg QVZFUlJPUiBjb2RlIG9uIGZhaWx1cmUuIE9uCj4+Pj4gZmFpbHVyZSwKPj4+PiAgwqDCoCAqwqDC oMKgwqDCoMKgwqDCoCB0aGUgc3RyZWFtIGlzIHVuY2hhbmdlZCBhbmQgdGhlIGRhdGEgcmVtYWlu cyBvd25lZCBieQo+Pj4+IHRoZSBjYWxsZXIuCj4+Pj4gKyAqIEBkZXByZWNhdGVkIHVzZSBhdl9w YWNrZXRfc2lkZV9kYXRhX3NldF9hZGQoKSB3aXRoIHRoZSBzdHJlYW0ncwo+Pj4+ICsgKsKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBAcmVmIEFWQ29kZWNQYXJhbWV0ZXJzLnNpZGVfZGF0YSAiY29k ZWNwYXIgc2lkZSBkYXRhIgo+Pj4+ICDCoMKgICovCj4+Pj4gK2F0dHJpYnV0ZV9kZXByZWNhdGVk Cj4+Pj4gIMKgIGludCBhdl9zdHJlYW1fYWRkX3NpZGVfZGF0YShBVlN0cmVhbSAqc3QsIGVudW0g QVZQYWNrZXRTaWRlRGF0YVR5cGUKPj4+PiB0eXBlLAo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVpbnQ4X3QgKmRhdGEsIHNp emVfdCBzaXplKTsKPj4+PiAgwqAgQEAgLTE4NjgsNyArMTg5OSwxMCBAQCBpbnQgYXZfc3RyZWFt X2FkZF9zaWRlX2RhdGEoQVZTdHJlYW0gKnN0LAo+Pj4+IGVudW0gQVZQYWNrZXRTaWRlRGF0YVR5 cGUgdHlwZSwKPj4+PiAgwqDCoCAqIEBwYXJhbSBzaXplwqDCoCBzaWRlIGluZm9ybWF0aW9uIHNp emUKPj4+PiAgwqDCoCAqCj4+Pj4gIMKgwqAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gZnJlc2ggYWxs b2NhdGVkIGRhdGEgb3IgTlVMTCBvdGhlcndpc2UKPj4+PiArICogQGRlcHJlY2F0ZWQgdXNlIGF2 X3BhY2tldF9zaWRlX2RhdGFfc2V0X25ldygpIHdpdGggdGhlIHN0cmVhbSdzCj4+Pj4gKyAqwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIEByZWYgQVZDb2RlY1BhcmFtZXRlcnMuc2lkZV9kYXRhICJj b2RlY3BhciBzaWRlIGRhdGEiCj4+Pj4gIMKgwqAgKi8KPj4+PiArYXR0cmlidXRlX2RlcHJlY2F0 ZWQKPj4+PiAgwqAgdWludDhfdCAqYXZfc3RyZWFtX25ld19zaWRlX2RhdGEoQVZTdHJlYW0gKnN0 cmVhbSwKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSBBVlBhY2tldFNpZGVEYXRhVHlwZSB0eXBlLAo+ Pj4+IHNpemVfdCBzaXplKTsKPj4+PiAgwqAgLyoqCj4+Pj4gQEAgLTE4ODAsOSArMTkxNCwxMyBA QCB1aW50OF90ICphdl9zdHJlYW1fbmV3X3NpZGVfZGF0YShBVlN0cmVhbQo+Pj4+ICpzdHJlYW0s Cj4+Pj4gIMKgwqAgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3IgdG8gemVybyBpZiB0 aGUgZGVzaXJlZCBzaWRlIGRhdGEgaXMgbm90IHByZXNlbnQuCj4+Pj4gIMKgwqAgKgo+Pj4+ICDC oMKgICogQHJldHVybiBwb2ludGVyIHRvIGRhdGEgaWYgcHJlc2VudCBvciBOVUxMIG90aGVyd2lz ZQo+Pj4+ICsgKiBAZGVwcmVjYXRlZCB1c2UgYXZfcGFja2V0X3NpZGVfZGF0YV9zZXRfZ2V0KCkg d2l0aCB0aGUgc3RyZWFtJ3MKPj4+PiArICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQHJlZiBB VkNvZGVjUGFyYW1ldGVycy5zaWRlX2RhdGEgImNvZGVjcGFyIHNpZGUgZGF0YSIKPj4+PiAgwqDC oCAqLwo+Pj4+ICthdHRyaWJ1dGVfZGVwcmVjYXRlZAo+Pj4+ICDCoCB1aW50OF90ICphdl9zdHJl YW1fZ2V0X3NpZGVfZGF0YShjb25zdCBBVlN0cmVhbSAqc3RyZWFtLAo+Pj4+ICDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBlbnVtIEFWUGFja2V0U2lkZURhdGFUeXBlIHR5cGUsCj4+Pj4gc2l6ZV90ICpzaXplKTsKPj4+ PiArI2VuZGlmCj4+Pj4gIMKgIMKgIEFWUHJvZ3JhbSAqYXZfbmV3X3Byb2dyYW0oQVZGb3JtYXRD b250ZXh0ICpzLCBpbnQgaWQpOwo+Pj4+ICAgIAo+Pj4KPiAKPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QK PiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ZmbXBlZy1kZXZlbAo+IAo+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3Zl LCBvciBlbWFpbAo+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0 ICJ1bnN1YnNjcmliZSIuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcK aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1 YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RA ZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K