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 84E9A46173 for ; Wed, 7 Jun 2023 16:37:35 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9DB5068BF72; Wed, 7 Jun 2023 19:37:32 +0300 (EEST) Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2C80E68BF12 for ; Wed, 7 Jun 2023 19:37:26 +0300 (EEST) Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-38eb2984c82so2999427b6e.0 for ; Wed, 07 Jun 2023 09:37:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686155844; x=1688747844; 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=uu6pZ7bWDyG0lhEJ2xe1XOY5i/ufGM0f4GKkuIkuYB0=; b=j5/4n62W7IQ/W/pkjpzIRe6Pe50debAs4PokDPOJXJx5bIxQFrqbNH1Re6XrZNnYu0 2jdh2YlgDrsnl6PEWQiBUySn1TX+FelsVwuwjwSqa5eeRzZDJHSfVQPqeR6hkdKJkzg+ twKYZxto8yIx4ag4OT1qQ+q8JN2N1ow3JzWSYPzWXpENpiAj30Ekw5SIjOKVXMVEfsko uiVCNGoCNZrCu3luBaahLgITCtGvz3YmtVQutRcGTyej51D5pzFOj7vUy3KGlUa0KLtR 4++iXfPavvcpz+mW7WrtGZ3H0V5d7GNMRidlHLgf5wXgQYLFocBJaUd30JqUCVYmwPBO FJVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686155844; x=1688747844; 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=uu6pZ7bWDyG0lhEJ2xe1XOY5i/ufGM0f4GKkuIkuYB0=; b=KPQ9wTtGXWLyefShaVbrlBIIN34N3kYvkZtyXdTO0o8A2mcmIAO4anrQgTQW9vgHBD WzfzEBGxlvIpRoxpAehAhZfKvtJpBbgEHdgv7/KDALyCWU08dKq8z5364pvPIluBIjmd wD8o5Az2znaWaJpqiLsyB7DylPdxsm393fBtnZMm6kSbTDLL6MH9SQTij201Vw1OcYIN 8RmA5YK8TTG92i5Myp9aUY+xT0/iZsUuev/OdQBmd9FVgM6VEqvJoGEO69nGrfDCMyEE TdSXnZva0yd37zPjEDPztxicQ+NOD1NFrOqpdzUm3eKoCDHvWmswfFq+lWiZOIQn2teI +TqA== X-Gm-Message-State: AC+VfDxOPZ7dFoep24n4rA5jCY7ZFuOkYd7SFO3xbjsbngVHNix16esc FK8zjO+cERi4fT+54cGv5vkx2TQrBBs= X-Google-Smtp-Source: ACHHUZ7k0T7p1b9tJioCLbTsYqX16WHyEbaCU9EYsRoewROk0rVh1YCribsR13U5rUPsEXgnH+yoYQ== X-Received: by 2002:a54:4107:0:b0:39b:4042:bdfb with SMTP id l7-20020a544107000000b0039b4042bdfbmr2347088oic.58.1686155844165; Wed, 07 Jun 2023 09:37:24 -0700 (PDT) Received: from [192.168.0.12] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id t27-20020a0568080b3b00b0039838671e5asm5546335oij.58.2023.06.07.09.37.23 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Jun 2023 09:37:23 -0700 (PDT) Message-ID: <69268ef2-d432-1bbe-0c3b-0897c8375c67@gmail.com> Date: Wed, 7 Jun 2023 13:37:37 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20230526103145.1277-1-d.kozinski@samsung.com> <60cedee7-fe0e-8764-42d5-241875adaab5@gmail.com> <007601d99945$05594570$100bd050$@samsung.com> <8a68fbda-6eac-bc06-eaf9-e0235e6a9711@gmail.com> <008601d9995d$56cf6160$046e2420$@samsung.com> From: James Almer In-Reply-To: <008601d9995d$56cf6160$046e2420$@samsung.com> Subject: Re: [FFmpeg-devel] [PATCH v23 04/10] avformat/evc_demuxer: Added demuxer to handle reading EVC video files 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: T24gNi83LzIwMjMgMTozMCBQTSwgRGF3aWQgS296aW5za2kvTXVsdGltZWRpYSAoUExUKSAvU1JQ T0wvU3RhZmYgCkVuZ2luZWVyL1NhbXN1bmcgRWxlY3Ryb25pY3Mgd3JvdGU6Cj4gCj4gCj4gCj4g Cj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IERhd2lkIEtvemluc2tpL011 bHRpbWVkaWEgKFBMVCkgL1NSUE9ML1N0YWZmIEVuZ2luZWVyL1NhbXN1bmcKPj4gRWxlY3Ryb25p Y3MgPGQua296aW5za2lAc2Ftc3VuZy5jb20+Cj4+IFNlbnQ6IMWbcm9kYSwgNyBjemVyd2NhIDIw MjMgMTc6NDEKPj4gVG86ICdGRm1wZWcgZGV2ZWxvcG1lbnQgZGlzY3Vzc2lvbnMgYW5kIHBhdGNo ZXMnIDxmZm1wZWctCj4+IGRldmVsQGZmbXBlZy5vcmc+Cj4+IFN1YmplY3Q6IFJFOiBbRkZtcGVn LWRldmVsXSBbUEFUQ0ggdjIzIDA0LzEwXSBhdmZvcm1hdC9ldmNfZGVtdXhlcjogQWRkZWQKPj4g ZGVtdXhlciB0byBoYW5kbGUgcmVhZGluZyBFVkMgdmlkZW8gZmlsZXMKPj4KPj4KPj4KPj4KPj4K Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+PiBGcm9tOiBmZm1wZWctZGV2ZWwgPGZm bXBlZy1kZXZlbC1ib3VuY2VzQGZmbXBlZy5vcmc+IE9uIEJlaGFsZiBPZgo+Pj4gSmFtZXMgQWxt ZXIKPj4+IFNlbnQ6IMWbcm9kYSwgNyBjemVyd2NhIDIwMjMgMTU6NDAKPj4+IFRvOiBmZm1wZWct ZGV2ZWxAZmZtcGVnLm9yZwo+Pj4gU3ViamVjdDogUmU6IFtGRm1wZWctZGV2ZWxdIFtQQVRDSCB2 MjMgMDQvMTBdIGF2Zm9ybWF0L2V2Y19kZW11eGVyOgo+Pj4gQWRkZWQgZGVtdXhlciB0byBoYW5k bGUgcmVhZGluZyBFVkMgdmlkZW8gZmlsZXMKPj4+Cj4+PiBPbiA2LzcvMjAyMyAxMDozNiBBTSwg RGF3aWQgS296aW5za2kvTXVsdGltZWRpYSAoUExUKSAvU1JQT0wvU3RhZmYKPj4+IEVuZ2luZWVy L1NhbXN1bmcgRWxlY3Ryb25pY3Mgd3JvdGU6Cj4+Pj4KPj4+Pgo+Pj4+Cj4+Pj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+IEZyb206IGZmbXBlZy1kZXZlbCA8ZmZtcGVnLWRldmVs LWJvdW5jZXNAZmZtcGVnLm9yZz4gT24gQmVoYWxmIE9mCj4+Pj4+IEphbWVzIEFsbWVyCj4+Pj4+ IFNlbnQ6IHBvbmllZHppYcWCZWssIDI5IG1hamEgMjAyMyAxNTowOAo+Pj4+PiBUbzogZmZtcGVn LWRldmVsQGZmbXBlZy5vcmcKPj4+Pj4gU3ViamVjdDogUmU6IFtGRm1wZWctZGV2ZWxdIFtQQVRD SCB2MjMgMDQvMTBdIGF2Zm9ybWF0L2V2Y19kZW11eGVyOgo+Pj4+PiBBZGRlZCBkZW11eGVyIHRv IGhhbmRsZSByZWFkaW5nIEVWQyB2aWRlbyBmaWxlcwo+Pj4+Pgo+Pj4+PiBPbiA1LzI2LzIwMjMg NzozMSBBTSwgRGF3aWQgS296aW5za2kgd3JvdGU6Cj4+Pj4+PiArc3RhdGljIGludCBnZXRfdGVt cG9yYWxfaWQoY29uc3QgdWludDhfdCAqYml0cywgaW50IGJpdHNfc2l6ZSkgewo+Pj4+Pj4gKyAg ICBpbnQgdGVtcG9yYWxfaWQgPSAwOwo+Pj4+Pj4gKyAgICBzaG9ydCB0ID0gMDsKPj4+Pj4+ICsK Pj4+Pj4+ICsgICAgaWYgKGJpdHNfc2l6ZSA+PSBFVkNfTkFMVV9IRUFERVJfU0laRSkgewo+Pj4+ Pj4gKyAgICAgICAgdW5zaWduZWQgY2hhciAqcCA9ICh1bnNpZ25lZCBjaGFyICopYml0czsKPj4+ Pj4+ICsgICAgICAgIC8vIGZvcmJpZGRlbl96ZXJvX2JpdAo+Pj4+Pj4gKyAgICAgICAgaWYgKChw WzBdICYgMHg4MCkgIT0gMCkKPj4+Pj4+ICsgICAgICAgICAgICByZXR1cm4gLTE7Cj4+Pj4+PiAr Cj4+Pj4+PiArICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEVWQ19OQUxVX0hFQURFUl9TSVpF OyBpKyspCj4+Pj4+PiArICAgICAgICAgICAgdCA9ICh0IDw8IDgpIHwgcFtpXTsKPj4+Pj4KPj4+ Pj4gSSB0aGluayB0aGlzIGNhbiBiZSByZXBsYWNlZCB3aXRoIEFWX1JCMTYuCj4+Pj4+Cj4+Pj4+ PiArCj4+Pj4+PiArICAgICAgICB0ZW1wb3JhbF9pZCA9ICh0ID4+IDYpICYgMHgwMDA3Owo+Pj4+ Pj4gKyAgICB9Cj4+Pj4+PiArCj4+Pj4+PiArICAgIHJldHVybiB0ZW1wb3JhbF9pZDsKPj4+Pj4+ ICt9Cj4+Pj4+Cj4+Pj4+IFsuLi5dCj4+Pj4+Cj4+Pj4+PiArc3RhdGljIHVpbnQzMl90IHJlYWRf bmFsX3VuaXRfbGVuZ3RoKGNvbnN0IHVpbnQ4X3QgKmJpdHMsIGludAo+Pj4+Pj4gK2JpdHNfc2l6 ZSkgewo+Pj4+Pj4gKyAgICB1aW50MzJfdCBuYWx1X2xlbiA9IDA7Cj4+Pj4+PiArCj4+Pj4+PiAr ICAgIGlmIChiaXRzX3NpemUgPj0gRVZDX05BTFVfTEVOR1RIX1BSRUZJWF9TSVpFKSB7Cj4+Pj4+ PiArCj4+Pj4+PiArICAgICAgICBpbnQgdCA9IDA7Cj4+Pj4+PiArICAgICAgICB1bnNpZ25lZCBj aGFyICpwID0gKHVuc2lnbmVkIGNoYXIgKiliaXRzOwo+Pj4+Pj4gKwo+Pj4+Pj4gKyAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBFVkNfTkFMVV9MRU5HVEhfUFJFRklYX1NJWkU7IGkrKykKPj4+ Pj4+ICsgICAgICAgICAgICB0ID0gKHQgPDwgOCkgfCBwW2ldOwo+Pj4+Pgo+Pj4+PiBBVl9SQjMy Lgo+Pj4+Pgo+Pj4+Pj4gKwo+Pj4+Pj4gKyAgICAgICAgbmFsdV9sZW4gPSB0Owo+Pj4+Pj4gKyAg ICAgICAgaWYgKG5hbHVfbGVuID09IDApICAgLy8gSW52YWxpZCBiaXRzdHJlYW0gc2l6ZQo+Pj4+ Pj4gKyAgICAgICAgICAgIHJldHVybiAwOwo+Pj4+Pj4gKyAgICB9Cj4+Pj4+PiArCj4+Pj4+PiAr ICAgIHJldHVybiBuYWx1X2xlbjsKPj4+Pj4+ICt9Cj4+Pj4+Cj4+Pj4+IFsuLi5dCj4+Pj4+Cj4+ Pj4+PiArc3RhdGljIGludCBldmNfZnJhbWVfbWVyZ2VfZmlsdGVyKEFWQlNGQ29udGV4dCAqYnNm LCBBVlBhY2tldCAqb3V0KSB7Cj4+Pj4+PiArICAgIEVWQ01lcmdlQ29udGV4dCAqY3R4ID0gYnNm LT5wcml2X2RhdGE7Cj4+Pj4+PiArICAgIEFWUGFja2V0ICppbiA9IGN0eC0+aW47Cj4+Pj4+PiAr Cj4+Pj4+PiArICAgIGludCBmcmVlX3NwYWNlID0gMDsKPj4+Pj4+ICsgICAgc2l6ZV90ICBuYWx1 X3NpemUgPSAwOwo+Pj4+Pj4gKyAgICB1aW50OF90ICpuYWx1ID0gTlVMTDsKPj4+Pj4+ICsgICAg aW50IGF1X2VuZF9mb3VuZCA9IDA7Cj4+Pj4+PiArICAgIGludCBlcnI7Cj4+Pj4+PiArCj4+Pj4+ PiArICAgIGVyciA9IGZmX2JzZl9nZXRfcGFja2V0X3JlZihic2YsIGluKTsKPj4+Pj4+ICsgICAg aWYgKGVyciA8IDApCj4+Pj4+PiArICAgICAgICByZXR1cm4gZXJyOwo+Pj4+Pj4gKwo+Pj4+Pj4g KyAgICBuYWx1X3NpemUgPSByZWFkX25hbF91bml0X2xlbmd0aChpbi0+ZGF0YSwKPj4+Pj4gRVZD X05BTFVfTEVOR1RIX1BSRUZJWF9TSVpFKTsKPj4+Pj4+ICsgICAgaWYobmFsdV9zaXplIDw9IDAp IHsKPj4+Pj4+ICsgICAgICAgIGF2X3BhY2tldF91bnJlZihpbik7Cj4+Pj4+PiArICAgICAgICBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4+Pj4+ICsgICAgfQo+Pj4+Pj4gKwo+Pj4+Pj4g KyAgICBuYWx1ID0gaW4tPmRhdGEgKyBFVkNfTkFMVV9MRU5HVEhfUFJFRklYX1NJWkU7Cj4+Pj4+ PiArICAgIG5hbHVfc2l6ZSA9IGluLT5zaXplIC0gRVZDX05BTFVfTEVOR1RIX1BSRUZJWF9TSVpF Owo+Pj4+Pj4gKwo+Pj4+Pj4gKyAgICAvLyBOQUwgdW5pdCBwYXJzaW5nIG5lZWRlZCB0byBkZXRl cm1pbmUgaWYgZW5kIG9mIEFVIHdhcyBmb3VuZAo+Pj4+Pj4gKyAgICBlcnIgPSBwYXJzZV9uYWxf dW5pdChuYWx1LCBuYWx1X3NpemUsIGJzZik7Cj4+Pj4+PiArICAgIGlmIChlcnIgPCAwKSB7Cj4+ Pj4+PiArICAgICAgICBhdl9sb2coYnNmLCBBVl9MT0dfRVJST1IsICJOQUwgVW5pdCBwYXJzaW5n IGVycm9yXG4iKTsKPj4+Pj4+ICsgICAgICAgIGF2X3BhY2tldF91bnJlZihpbik7Cj4+Pj4+PiAr Cj4+Pj4+PiArICAgICAgICByZXR1cm4gZXJyOwo+Pj4+Pj4gKyAgICB9Cj4+Pj4+PiArCj4+Pj4+ PiArICAgIGF1X2VuZF9mb3VuZCA9IGVuZF9vZl9hY2Nlc3NfdW5pdF9mb3VuZChic2YpOwo+Pj4+ Pj4gKwo+Pj4+Pj4gKyAgICBmcmVlX3NwYWNlID0gY3R4LT5hdV9idWZmZXIuY2FwYWNpdHkgLSBj dHgtPmF1X2J1ZmZlci5kYXRhX3NpemU7Cj4+Pj4+PiArICAgIHdoaWxlKCBmcmVlX3NwYWNlIDwg aW4tPnNpemUgKSB7Cj4+Pj4+PiArICAgICAgICBjdHgtPmF1X2J1ZmZlci5jYXBhY2l0eSAqPSAy Owo+Pj4+Pj4gKyAgICAgICAgZnJlZV9zcGFjZSA9IGN0eC0+YXVfYnVmZmVyLmNhcGFjaXR5IC0K Pj4+Pj4+ICsgY3R4LT5hdV9idWZmZXIuZGF0YV9zaXplOwo+Pj4+Pj4gKwo+Pj4+Pj4gKyAgICAg ICAgaWYoZnJlZV9zcGFjZSA+PSBpbi0+c2l6ZSkgewo+Pj4+Pj4gKyAgICAgICAgICAgIGN0eC0+ YXVfYnVmZmVyLmRhdGEgPSBhdl9yZWFsbG9jKGN0eC0+YXVfYnVmZmVyLmRhdGEsCj4+Pj4+PiAr IGN0eC0KPj4+Pj4+IGF1X2J1ZmZlci5jYXBhY2l0eSk7Cj4+Pj4+PiArICAgICAgICB9Cj4+Pj4+ PiArICAgIH0KPj4+Pj4+ICsKPj4+Pj4+ICsgICAgbWVtY3B5KGN0eC0+YXVfYnVmZmVyLmRhdGEg KyBjdHgtPmF1X2J1ZmZlci5kYXRhX3NpemUsCj4+Pj4+PiArIGluLT5kYXRhLAo+Pj4+Pj4gKyBp bi0+c2l6ZSk7Cj4+Pj4+Cj4+Pj4+IFRoaXMgaXMgaW5jbHVkaW5nIHRoZSBBbm5leC1CJ3MgbmFs X3VuaXRfbGVuZ2h0IHZhbHVlIGludG8gdGhlCj4+Pj4+IGFzc2VtYmxlZAo+Pj4+IHBhY2tldC4g SQo+Pj4+PiBhc3N1bWUgbGlieGV2ZCBleHBlY3RzIHRoaXM/IEFsc28sIGlzIGl0IGRlZmluZWQg YXMgcGFydCBvZiB0aGUKPj4+Pj4gSVNPQk1GRiBlbmNhcHN1bGF0aW9uPyBQYXRjaCAwNy8xMCBk b2VzIG5vdCBzZWVtIHRvIHN0cmlwIGl0Lgo+Pj4+Cj4+Pj4gQ291bGQgeW91IGV4cGFuZCBvbiB0 aGlzIHRvcGljPwo+Pj4+IFdoYXQgZG8geW91IG1lYW4gYnkgIlBhdGNoIDA3LzEwIGRvZXMgbm90 IHNlZW0gdG8gc3RyaXAgaXQiPwo+Pj4+IFBhdGNoIDcvMTAgZXhwYW5kcyB0aGUgaW1wbGVtZW50 YXRpb24gb2YgdGhlIE1PViBNdXhlciB0byBzdXBwb3J0Cj4+Pj4gdGhlIEVWQyBzdHJlYW0uCj4+ Pj4gVGhlIGZ1bmN0aW9uIGZmX2lzb21fd3JpdGVfZXZjYyBwYXJzZXMgdGhlIHJlY2VpdmVkIGRh dGEsIGV4dHJhY3RzCj4+Pj4gTkFMIHVuaXRzIG9mIHR5cGVzIFNQUywgUFBTLCBBUFMsIFNFSSwg YW5kIGluc2VydHMgdGhlaXIgY29udGVudHMKPj4+PiBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVs ZW1lbnRzIG9mIHRoZSBhcnJheXMgYXJyYXksIHdoaWNoIGlzIGEKPj4+PiBjb21wb25lbnQgb2Yg dGhlIEVWQ0RlY29kZXJDb25maWd1cmF0aW9uUmVjb3JkIHN0cnVjdHVyZS4KPj4+PiBBZGRpdGlv bmFsbHksIHRoZSBmZl9pc29tX3dyaXRlX2V2Y2MgZnVuY3Rpb24gcG9wdWxhdGVzIHRoZSByZWxl dmFudAo+Pj4+IGZpZWxkcyBvZiB0aGUgRVZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQgc3Ry dWN0dXJlIGJhc2VkIG9uIHRoZQo+Pj4+IHBhcnNlZCBTUFMgTkFMIHVuaXQgZGF0YSwgYW5kIHRo ZW4gY2FsbHMgdGhlIGV2Y2Nfd3JpdGUgZnVuY3Rpb24sCj4+Pj4gd2hpY2ggd3JpdGVzIHRoZSBF VkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZCB0byB0aGUgc3RyZWFtLgo+Pj4+Cj4+Pj4gSXQg c2VlbXMgdGhhdCBJIGRvbid0IHVuZGVyc3RhbmQgd2hhdCdzIHdyb25nIHdpdGggb3VyCj4+Pj4g aW1wbGVtZW50YXRpb24gKCBJIG1lYW4gTU9WIG11eGVyIGZvciBFVkMpIGFuZCBpdCBzZWVtcyBJ IG5lZWQgeW91cgo+Pj4+IGhlbHAgaW4gdGhpcyBtYXR0ZXIuIEkgbmVlZCBhbiBleHBsYW5hdGlv biBvZiB3aGF0J3Mgd3JvbmcgYW5kIHdoYXQKPj4+PiBzaG91bGQgYmUgZG9uZSB0byBmaXgKPj4+ IHRoZSBpc3N1ZS4KPj4+Cj4+PiBJIG1lYW4gdGhlIHBhY2tldHMgdGhhdCBnbyBpbnRvIElTT0JN RkYgU2FtcGxlLCBub3QgdGhlIGV2Y2MgYXRvbS4gSXMKPj4+IHRoZSBlbmNhcHN1bGF0aW9uIHN1 cHBvc2VkIHRvIGluY2x1ZGUgdGhlIG5hbF91bml0X2xlbmd0aCBmcm9tIEFubmV4LUI/Cj4+Cj4+ IFRoZSBmdW5jdGlvbiBtb3Zfd3JpdGVfc2luZ2xlX3BhY2tldChzLCBwa3QpIHJlY2VpdmVzIHBh Y2tldHMgY29udGFpbmluZyB0aGUKPj4gQWNjZXNzIFVuaXRzIChBVSkgb2YgYW4gRVZDIHN0cmVh bS4gRWFjaCBBVSBjb25zaXN0cyBvZiBhIHNlcXVlbmNlIG9mIE5BTAo+PiB1bml0cywgZWFjaCBw cmVjZWRlZCBieSBhIDQtYnl0ZSBwcmVmaXggdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91 dCB0aGUKPj4gbGVuZ3RoIG9mIHRoZSBOQUwgdW5pdC4gVGhlIGVudGlyZSBBVSBpcyB0aGVuIGNv cGllZCB0byBBVklPQ29udGV4dCB1c2luZwo+PiBhdmlvX3dyaXRlKHBiLCBwa3QtPmRhdGEsIHNp emUpLgo+Pgo+IAo+IEl0IHNlZW1zIHRvIG1lIHRoYXQgZXZlcnl0aGluZyBpcyBva2F5LiBJZiBJ IGFtIG1pc3Rha2VuLCBqdXN0IGxldCBtZSBrbm93Lgo+IEFzIHdlIGhhdmUgYWxzbyBjb21wbGV0 ZWQgYWxsIHRoZSBmaXhlcyBmb2xsb3dpbmcgeW91ciByZXZpZXcgdGhpcyBpcyB0aGUgbGFzdCB0 aGluZyBibG9ja2luZyB1cyBmcm9tIGNyZWF0aW5nIGEgbmV3IHBhdGNoc2V0LgoKSWYgdGhlIDQg Ynl0ZSBwcmVmaXggZ29lcyBpbnRvIElTT0JNRkYgZW5jYXBzdWxhdGlvbiB0aGVuLCBpdCdzIGZp bmUuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBl Zy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1w ZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlz aXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3 aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K