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 E645A49FC3 for ; Sun, 17 Mar 2024 22:34:31 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4245B68D214; Mon, 18 Mar 2024 00:34:29 +0200 (EET) Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8855E68D14E for ; Mon, 18 Mar 2024 00:34:23 +0200 (EET) Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-34175878e30so160953f8f.3 for ; Sun, 17 Mar 2024 15:34:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710714863; x=1711319663; darn=ffmpeg.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:to:from:date:from:to:cc :subject:date:message-id:reply-to; bh=3YN0D5HtF7cI439M6OpQNkGCiQN0bccDdoLwq3JhHu4=; b=lfoLbGzEwD1e1/+pPtmMpgtJ1IkBYTeEpSYAkQaxgbnLVG/C5DN78sqVGJf4SCiLfO RzXkhBvYUtaoGz36XdPneayX69/lfTxHZcRXGF6JiKMKIr1pVJ8bsfiyTJayMU8Oz+eX 7NxF1r/0Q2dQ/XzrMUXqWVHeGtQ5XZs33FBa8Ac9UWRRDqWyU7mVpe2CLiMJIz9Rzdyp JK4cMkHzL3yb5+cQg4qyXUrRp/Y89Nfd+dkPCDWyjv0jMpJWN2nvAg7h3LtM9SlU4yDx 4yi6td4wy9UW0/aufc6hXt86k9JuP5xV6cDltpLkeVf74lCulDjlY2MBJaoE1Qv/Wk/J z0NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710714863; x=1711319663; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3YN0D5HtF7cI439M6OpQNkGCiQN0bccDdoLwq3JhHu4=; b=cVa/iDTnPWHuCA3Z/F9n5Jw4/Fgu2JigDek6x2HnBph4Y50YqV1tZOExbvyMr1NVME MtXmryEK17s2yylT4CjRRkpJY/lwNOBYSU2NJkokkaN7tJiBB7gLa/toqKnzcEF/Qidm mudn6z/bp8kFpCB40gZ97+xci+SL0SqQRRKt0+CdGtQTZRcqa7UD5bMAqwil1MouK3p3 LgbijyTKjola3eLegjcGsWFUVEvMyLy/nP8I87Wj6ASiGspxyogxrAGGmXOddvFv0kEL MdMWL2K1yJq1ls2NezhS7gAu2tKnJr116ptbpjbKqh52pdhYhDPQT6AnkFt5ZeeurJ4n NWmQ== X-Gm-Message-State: AOJu0YywiPYmBLaLe815cknJa6yCYpk/8HgVIsRsWMPabFlexEpVVv7h qDaQL7eub8xopkrV/z7Zw97icIuqW+hIPy9cC2uCoidLwm/mWmyMTJSAZz8o X-Google-Smtp-Source: AGHT+IFS6xjyIMh2leIiFkzvJZKjZ7v/fLZTp7hM7gRAN8KnRRGbNfPr4V9+AWUWD30BuieSoZsfbw== X-Received: by 2002:a5d:5404:0:b0:33e:7942:4140 with SMTP id g4-20020a5d5404000000b0033e79424140mr8408484wrv.7.1710714862717; Sun, 17 Mar 2024 15:34:22 -0700 (PDT) Received: from kusa (2a01cb040b6872000000000000000afa.ipv6.abo.wanadoo.fr. [2a01:cb04:b68:7200::afa]) by smtp.gmail.com with ESMTPSA id g4-20020adfe404000000b0033dd2a7167fsm8376263wrm.29.2024.03.17.15.34.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Mar 2024 15:34:22 -0700 (PDT) Date: Sun, 17 Mar 2024 23:34:19 +0100 From: Matthieu Bouron To: FFmpeg development discussions and patches Message-ID: References: <20240213230418.457056-1-matthieu.bouron@gmail.com> <20240227145536.281991-1-matthieu.bouron@gmail.com> <20240227145536.281991-3-matthieu.bouron@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH v2 2/6] avformat: add Android content resolver protocol support 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-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: T24gU3VuLCBNYXIgMTcsIDIwMjQgYXQgMTI6MzM6MDRQTSArMDgwMCwgWmhhbyBaaGlsaSB3cm90 ZToKPiBTb3JyeSBmb3IgdGhlIGxvbmcgZGVsYXkgb2YgcmV2aWV3Lgo+IAo+ID4gT24gTWFyIDUs IDIwMjQsIGF0IDAzOjM3LCBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBnbWFpbC5j b20+IHdyb3RlOgo+ID4gCj4gPiBPbiBUdWUsIEZlYiAyNywgMjAyNCBhdCAwMzo1MDozOFBNICsw MTAwLCBNYXR0aGlldSBCb3Vyb24gd3JvdGU6Cj4gPj4gSGFuZGxlcyBBbmRyb2lkIGNvbnRlbnQt dXJpIHN0YXJ0aW5nIHdpdGggY29udGVudDovLy4KPiA+PiAtLS0KPiA+IAo+ID4gWy4uLl0KPiA+ IAo+IAo+ID4gSGFuZGxlcyBBbmRyb2lkIGNvbnRlbnQtdXJpIHN0YXJ0aW5nIHdpdGggY29udGVu dDovLy4KPiA+IC0tLQo+ID4gIGNvbmZpZ3VyZSAgICAgICAgICAgICAgIHwgICAyICsKPiA+ICBk b2MvQVBJY2hhbmdlcyAgICAgICAgICB8ICAgMyArCj4gPiAgbGliYXZjb2RlYy9qbmkuYyAgICAg ICAgfCAgIDEgKwo+ID4gIGxpYmF2Zm9ybWF0L01ha2VmaWxlICAgIHwgICAxICsKPiA+ICBsaWJh dmZvcm1hdC9maWxlLmMgICAgICB8IDE1NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4gPiAgbGliYXZmb3JtYXQvcHJvdG9jb2xzLmMgfCAgIDEgKwo+ID4gIDYgZmls ZXMgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKykKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2NvbmZp Z3VyZSBiL2NvbmZpZ3VyZQo+ID4gaW5kZXggYmI1ZTYzMGJhZC4uNzkwYTFkZjdjOCAxMDA3NTUK PiA+IC0tLSBhL2NvbmZpZ3VyZQo+ID4gKysrIGIvY29uZmlndXJlCj4gPiBAQCAtMzY1NSw2ICsz NjU1LDggQEAgeGNiZ3JhYl9pbmRldl9zdWdnZXN0PSJsaWJ4Y2Jfc2htIGxpYnhjYl9zaGFwZSBs aWJ4Y2JfeGZpeGVzIgo+ID4gIHh2X291dGRldl9kZXBzPSJ4bGliX3h2IHhsaWJfeDExIHhsaWJf eGV4dCIKPiA+ICAKPiA+ICAjIHByb3RvY29scwo+ID4gK2FuZHJvaWRfY29udGVudF9wcm90b2Nv bF9kZXBzPSJqbmkiCj4gPiArYW5kcm9pZF9jb250ZW50X3Byb3RvY29sX3NlbGVjdD0iZmlsZV9w cm90b2NvbCIKPiA+ICBhc3luY19wcm90b2NvbF9kZXBzPSJ0aHJlYWRzIgo+ID4gIGJsdXJheV9w cm90b2NvbF9kZXBzPSJsaWJibHVyYXkiCj4gPiAgZmZydG1wY3J5cHRfcHJvdG9jb2xfY29uZmxp Y3Q9ImxpYnJ0bXBfcHJvdG9jb2wiCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL0FQSWNoYW5nZXMgYi9k b2MvQVBJY2hhbmdlcwo+ID4gaW5kZXggMTBmNjY2N2U5ZS4uMjU4ZTk1M2NhNiAxMDA2NDQKPiA+ IC0tLSBhL2RvYy9BUEljaGFuZ2VzCj4gPiArKysgYi9kb2MvQVBJY2hhbmdlcwo+ID4gQEAgLTIs NiArMiw5IEBAIFRoZSBsYXN0IHZlcnNpb24gaW5jcmVhc2VzIG9mIGFsbCBsaWJyYXJpZXMgd2Vy ZSBvbiAyMDIzLTAyLTA5Cj4gPiAgCj4gPiAgQVBJIGNoYW5nZXMsIG1vc3QgcmVjZW50IGZpcnN0 Ogo+ID4gIAo+ID4gKzIwMjQtMDIteHggLSB4eHh4eHh4eHh4IC0gbGF2YyA2MC40MS4xMDAgLSBq bmkuaAo+ID4gKyAgQWRkIGF2X2puaV9zZXRfYW5kcm9pZF9hcHBfY3R4KCkgYW5kIGF2X2puaV9n ZXRfYW5kcm9pZF9hcHBfY3R4KCkuCj4gCj4gU2hvdWxkIGJlIGFkZGVkIHRvZ2V0aGVyIHdpdGgg cGF0Y2ggMS82LgoKRml4ZWQuCgo+IAo+ID4gKwo+ID4gIDIwMjQtMDItMjYgLSB4eHh4eHh4eHh4 IC0gbGF2ZiA2MC4yMi4xMDEgLSBhdmZvcm1hdC5oCj4gPiAgICBBVl9ESVNQT1NJVElPTl9ERVBF TkRFTlQgbWF5IG5vdyBhbHNvIGJlIHVzZWQgZm9yIHZpZGVvIHN0cmVhbXMKPiA+ICAgIGludGVu ZGVkIHRvIGJlIG1lcmdlZCB3aXRoIG90aGVyIHZpZGVvIHN0cmVhbXMgZm9yIHByZXNlbnRhdGlv bi4KPiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2puaS5jIGIvbGliYXZjb2RlYy9qbmkuYwo+ ID4gaW5kZXggY2ZlOTViZDFlYy4uMTE5M2M2MDhjMyAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Y29k ZWMvam5pLmMKPiA+ICsrKyBiL2xpYmF2Y29kZWMvam5pLmMKPiA+IEBAIC0zNSw2ICszNSw3IEBA Cj4gPiAgI2luY2x1ZGUgImZmam5pLmgiCj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgKmphdmFfdm07 Cj4gPiArc3RhdGljIHZvaWQgKmFuZHJvaWRfYXBwX2N0eDsKPiA+ICBzdGF0aWMgcHRocmVhZF9t dXRleF90IGxvY2sgPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOwo+ID4gIAo+ID4gIGludCBh dl9qbmlfc2V0X2phdmFfdm0odm9pZCAqdm0sIHZvaWQgKmxvZ19jdHgpCj4gPiBkaWZmIC0tZ2l0 IGEvbGliYXZmb3JtYXQvTWFrZWZpbGUgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+ID4gaW5kZXgg NGEzODA2NjhiZC4uMDhmZTk4YTUzNSAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Zm9ybWF0L01ha2Vm aWxlCj4gPiArKysgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+ID4gQEAgLTY1Nyw2ICs2NTcsNyBA QCBPQkpTLSQoQ09ORklHX0xJQk9QRU5NUFRfREVNVVhFUikgICAgICAgICs9IGxpYm9wZW5tcHQu bwo+ID4gIE9CSlMtJChDT05GSUdfVkFQT1VSU1lOVEhfREVNVVhFUikgICAgICAgKz0gdmFwb3Vy c3ludGgubwo+ID4gIAo+ID4gICMgcHJvdG9jb2xzIEkvTwo+ID4gK09CSlMtJChDT05GSUdfQU5E Uk9JRF9DT05URU5UX1BST1RPQ09MKSAgKz0gZmlsZS5vCj4gPiAgT0JKUy0kKENPTkZJR19BU1lO Q19QUk9UT0NPTCkgICAgICAgICAgICArPSBhc3luYy5vCj4gPiAgT0JKUy0kKENPTkZJR19BUFBM RUhUVFBfUFJPVE9DT0wpICAgICAgICArPSBobHNwcm90by5vCj4gPiAgT0JKUy0kKENPTkZJR19C TFVSQVlfUFJPVE9DT0wpICAgICAgICAgICArPSBibHVyYXkubwo+ID4gZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L2ZpbGUuYyBiL2xpYmF2Zm9ybWF0L2ZpbGUuYwo+ID4gaW5kZXggNjRkZjdmZjZm Yi4uMWIyYjY5ZjA5MCAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Zm9ybWF0L2ZpbGUuYwo+ID4gKysr IGIvbGliYXZmb3JtYXQvZmlsZS5jCj4gPiBAQCAtNDAsNiArNDAsMTIgQEAKPiA+ICAjaW5jbHVk ZSA8c3RkbGliLmg+Cj4gPiAgI2luY2x1ZGUgIm9zX3N1cHBvcnQuaCIKPiA+ICAjaW5jbHVkZSAi dXJsLmgiCj4gPiArI2lmIENPTkZJR19BTkRST0lEX0NPTlRFTlRfUFJPVE9DT0wKPiA+ICsjaW5j bHVkZSA8am5pLmg+Cj4gPiArI2luY2x1ZGUgImxpYmF2Y29kZWMvam5pLmgiCj4gPiArI2luY2x1 ZGUgImxpYmF2Y29kZWMvZmZqbmkuYyIKPiA+ICsjZW5kaWYKPiA+ICsKPiA+ICAKPiA+ICAvKiBT b21lIHN5c3RlbXMgbWF5IG5vdCBoYXZlIFNfSVNGSUZPICovCj4gPiAgI2lmbmRlZiBTX0lTRklG Two+ID4gQEAgLTEwMSw2ICsxMDcsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgRmlsZUNvbnRleHQgewo+ ID4gICAgICBpbnQ2NF90IGluaXRpYWxfcG9zOwo+ID4gIH0gRmlsZUNvbnRleHQ7Cj4gPiAgCj4g PiArCj4gPiArI2lmIENPTkZJR19BTkRST0lEX0NPTlRFTlRfUFJPVE9DT0wKPiA+ICtzdGF0aWMg Y29uc3QgQVZPcHRpb24gYW5kcm9pZF9jb250ZW50X29wdGlvbnNbXSA9IHsKPiA+ICsgICAgeyAi YmxvY2tzaXplIiwgInNldCBJL08gb3BlcmF0aW9uIG1heGltdW0gYmxvY2sgc2l6ZSIsIG9mZnNl dG9mKEZpbGVDb250ZXh0LCBibG9ja3NpemUpLCBBVl9PUFRfVFlQRV9JTlQsIHsgLmk2NCA9IElO VF9NQVggfSwgMSwgSU5UX01BWCwgQVZfT1BUX0ZMQUdfRU5DT0RJTkdfUEFSQU0gfSwKPiA+ICsg ICAgeyBOVUxMIH0KPiA+ICt9Owo+ID4gKwo+ID4gK3N0YXRpYyBjb25zdCBBVkNsYXNzIGFuZHJv aWRfY29udGVudF9jbGFzcyA9IHsKPiA+ICsgICAgLmNsYXNzX25hbWUgPSAiYW5kcm9pZF9jb250 ZW50IiwKPiA+ICsgICAgLml0ZW1fbmFtZSAgPSBhdl9kZWZhdWx0X2l0ZW1fbmFtZSwKPiA+ICsg ICAgLm9wdGlvbiAgICAgPSBhbmRyb2lkX2NvbnRlbnRfb3B0aW9ucywKPiA+ICsgICAgLnZlcnNp b24gICAgPSBMSUJBVlVUSUxfVkVSU0lPTl9JTlQsCj4gPiArfTsKPiA+ICsjZW5kaWYKPiA+ICsK PiA+ICBzdGF0aWMgY29uc3QgQVZPcHRpb24gZmlsZV9vcHRpb25zW10gPSB7Cj4gPiAgICAgIHsg InRydW5jYXRlIiwgInRydW5jYXRlIGV4aXN0aW5nIGZpbGVzIG9uIHdyaXRlIiwgb2Zmc2V0b2Yo RmlsZUNvbnRleHQsIHRydW5jKSwgQVZfT1BUX1RZUEVfQk9PTCwgeyAuaTY0ID0gMSB9LCAwLCAx LCBBVl9PUFRfRkxBR19FTkNPRElOR19QQVJBTSB9LAo+ID4gICAgICB7ICJibG9ja3NpemUiLCAi c2V0IEkvTyBvcGVyYXRpb24gbWF4aW11bSBibG9jayBzaXplIiwgb2Zmc2V0b2YoRmlsZUNvbnRl eHQsIGJsb2Nrc2l6ZSksIEFWX09QVF9UWVBFX0lOVCwgeyAuaTY0ID0gSU5UX01BWCB9LCAxLCBJ TlRfTUFYLCBBVl9PUFRfRkxBR19FTkNPRElOR19QQVJBTSB9LAo+ID4gQEAgLTUyNCwzICs1NDUs MTM5IEBAIGNvbnN0IFVSTFByb3RvY29sIGZmX2ZkX3Byb3RvY29sID0gewo+ID4gIH07Cj4gPiAg Cj4gPiAgI2VuZGlmIC8qIENPTkZJR19GRF9QUk9UT0NPTCAqLwo+ID4gKwo+ID4gKyNpZiBDT05G SUdfQU5EUk9JRF9DT05URU5UX1BST1RPQ09MCj4gPiArCj4gPiArc3RydWN0IEpGaWVsZHMgewo+ ID4gKyAgICBqY2xhc3MgdXJpX2NsYXNzOwo+ID4gKyAgICBqbWV0aG9kSUQgcGFyc2VfaWQ7Cj4g PiArCj4gPiArICAgIGpjbGFzcyBjb250ZXh0X2NsYXNzOwo+ID4gKyAgICBqbWV0aG9kSUQgZ2V0 X2NvbnRlbnRfcmVzb2x2ZXJfaWQ7Cj4gPiArCj4gPiArICAgIGpjbGFzcyBjb250ZW50X3Jlc29s dmVyX2NsYXNzOwo+ID4gKyAgICBqbWV0aG9kSUQgb3Blbl9maWxlX2Rlc2NyaXB0b3JfaWQ7Cj4g PiArCj4gPiArICAgIGpjbGFzcyBwYXJjZWxfZmlsZV9kZXNjcmlwdG9yX2NsYXNzOwo+ID4gKyAg ICBqbWV0aG9kSUQgZGV0YWNoX2ZkX2lkOwo+ID4gK307Cj4gCj4gdHlwZWRlZiBzdHJ1Y3QgaXMg dGhlIHByZWZlcnJlZCBjb2Rpbmcgc3R5bGUgb2YgRkZtcGVnLCBpdOKAmXMgbWVudGlvbmVkIGlu Cj4gZGV2ZWxvcGVyLnRleGkuCgpGaXhlZC4KCj4gCj4gPiArCj4gPiArI2RlZmluZSBPRkZTRVQo eCkgb2Zmc2V0b2Yoc3RydWN0IEpGaWVsZHMsIHgpCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBG RkpuaUZpZWxkIGpmaWVsZHNfbWFwcGluZ1tdID0gewo+ID4gKyAgICB7ICJhbmRyb2lkL25ldC9V cmkiLCBOVUxMLCBOVUxMLCBGRl9KTklfQ0xBU1MsIE9GRlNFVCh1cmlfY2xhc3MpLCAxIH0sCj4g PiArICAgICAgICB7ICJhbmRyb2lkL25ldC9VcmkiLCAicGFyc2UiLCAiKExqYXZhL2xhbmcvU3Ry aW5nOylMYW5kcm9pZC9uZXQvVXJpOyIsIEZGX0pOSV9TVEFUSUNfTUVUSE9ELCBPRkZTRVQocGFy c2VfaWQpLCAxIH0sCj4gPiArCj4gPiArICAgIHsgImFuZHJvaWQvY29udGVudC9Db250ZXh0Iiwg TlVMTCwgTlVMTCwgRkZfSk5JX0NMQVNTLCBPRkZTRVQoY29udGV4dF9jbGFzcyksIDEgfSwKPiA+ ICsgICAgICAgIHsgImFuZHJvaWQvY29udGVudC9Db250ZXh0IiwgImdldENvbnRlbnRSZXNvbHZl ciIsICIoKUxhbmRyb2lkL2NvbnRlbnQvQ29udGVudFJlc29sdmVyOyIsIEZGX0pOSV9NRVRIT0Qs IE9GRlNFVChnZXRfY29udGVudF9yZXNvbHZlcl9pZCksIDEgfSwKPiA+ICsKPiA+ICsgICAgeyAi YW5kcm9pZC9jb250ZW50L0NvbnRlbnRSZXNvbHZlciIsIE5VTEwsIE5VTEwsIEZGX0pOSV9DTEFT UywgT0ZGU0VUKGNvbnRlbnRfcmVzb2x2ZXJfY2xhc3MpLCAxIH0sCj4gPiArICAgICAgICB7ICJh bmRyb2lkL2NvbnRlbnQvQ29udGVudFJlc29sdmVyIiwgIm9wZW5GaWxlRGVzY3JpcHRvciIsICIo TGFuZHJvaWQvbmV0L1VyaTtMamF2YS9sYW5nL1N0cmluZzspTGFuZHJvaWQvb3MvUGFyY2VsRmls ZURlc2NyaXB0b3I7IiwgRkZfSk5JX01FVEhPRCwgT0ZGU0VUKG9wZW5fZmlsZV9kZXNjcmlwdG9y X2lkKSwgMSB9LAo+ID4gKwo+ID4gKyAgICB7ICJhbmRyb2lkL29zL1BhcmNlbEZpbGVEZXNjcmlw dG9yIiwgTlVMTCwgTlVMTCwgRkZfSk5JX0NMQVNTLCBPRkZTRVQocGFyY2VsX2ZpbGVfZGVzY3Jp cHRvcl9jbGFzcyksIDEgfSwKPiA+ICsgICAgICAgIHsgImFuZHJvaWQvb3MvUGFyY2VsRmlsZURl c2NyaXB0b3IiLCAiZGV0YWNoRmQiLCAiKClJIiwgRkZfSk5JX01FVEhPRCwgT0ZGU0VUKGRldGFj aF9mZF9pZCksIDEgfSwKPiA+ICsKPiA+ICsgICAgeyBOVUxMIH0KPiA+ICt9Owo+ID4gKyN1bmRl ZiBPRkZTRVQKPiA+ICsKPiA+ICtzdGF0aWMgaW50IGFuZHJvaWRfY29udGVudF9vcGVuKFVSTENv bnRleHQgKmgsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3MpCj4gPiArewo+ID4gKyAg ICBGaWxlQ29udGV4dCAqYyA9IGgtPnByaXZfZGF0YTsKPiA+ICsgICAgaW50IGZkLCByZXQ7Cj4g PiArICAgIGNvbnN0IGNoYXIgKm1vZGVfc3RyID0gInIiOwo+ID4gKwo+ID4gKyAgICBKTklFbnYg KmVudjsKPiA+ICsgICAgc3RydWN0IEpGaWVsZHMgamZpZWxkcyA9IHsgMCB9Owo+ID4gKyAgICBq b2JqZWN0IGFwcGxpY2F0aW9uX2NvbnRleHQgPSBOVUxMOwo+ID4gKyAgICBqb2JqZWN0IHVybCA9 IE5VTEw7Cj4gPiArICAgIGpvYmplY3QgbW9kZSA9IE5VTEw7Cj4gPiArICAgIGpvYmplY3QgdXJp ID0gTlVMTDsKPiA+ICsgICAgam9iamVjdCBjb250ZW50X3Jlc29sdmVyID0gTlVMTDsKPiA+ICsg ICAgam9iamVjdCBwYXJjZWxfZmlsZV9kZXNjcmlwdG9yID0gTlVMTDsKPiA+ICsKPiA+ICsgICAg ZW52ID0gZmZfam5pX2dldF9lbnYoYyk7Cj4gPiArICAgIGlmICghZW52KSB7Cj4gPiArICAgICAg ICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAgIHJldCA9 IGZmX2puaV9pbml0X2pmaWVsZHMoZW52LCAmamZpZWxkcywgamZpZWxkc19tYXBwaW5nLCAwLCBj KTsKPiA+ICsgICAgaWYgKHJldCA8IDApIHsKPiA+ICsgICAgICAgIGF2X2xvZyhjLCBBVl9MT0df RVJST1IsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBqbmkgZmllbGRzXG4iKTsKPiA+ICsgICAgICAg IHJldHVybiByZXQ7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgYXBwbGljYXRpb25fY29udGV4 dCA9IGF2X2puaV9nZXRfYW5kcm9pZF9hcHBfY3R4KCk7Cj4gPiArICAgIGlmICghYXBwbGljYXRp b25fY29udGV4dCkgewo+ID4gKyAgICAgICAgYXZfbG9nKGMsIEFWX0xPR19FUlJPUiwgImFwcGxp Y2F0aW9uIGNvbnRleHQgaXMgbm90IHNldFxuIik7Cj4gPiArICAgICAgICByZXQgPSBBVkVSUk9S X0VYVEVSTkFMOwo+ID4gKyAgICAgICAgZ290byBkb25lOwo+ID4gKyAgICB9Cj4gPiArCj4gPiAr ICAgIHVybCA9IGZmX2puaV91dGZfY2hhcnNfdG9fanN0cmluZyhlbnYsIGZpbGVuYW1lLCBjKTsK PiA+ICsgICAgaWYgKCF1cmwpIHsKPiA+ICsgICAgICAgIHJldCA9IEFWRVJST1JfRVhURVJOQUw7 Cj4gPiArICAgICAgICBnb3RvIGRvbmU7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgaWYgKGZs YWdzICYgQVZJT19GTEFHX1dSSVRFICYmIGZsYWdzICYgQVZJT19GTEFHX1JFQUQpCj4gPiArICAg ICAgICBtb2RlX3N0ciA9ICJydyI7Cj4gPiArICAgIGVsc2UgaWYgKGZsYWdzICYgQVZJT19GTEFH X1dSSVRFKQo+ID4gKyAgICAgICAgbW9kZV9zdHIgPSAidyI7Cj4gPiArCj4gPiArICAgIG1vZGUg PSBmZl9qbmlfdXRmX2NoYXJzX3RvX2pzdHJpbmcoZW52LCBtb2RlX3N0ciwgYyk7Cj4gPiArICAg IGlmICghbW9kZSkgewo+ID4gKyAgICAgICAgcmV0ID0gQVZFUlJPUl9FWFRFUk5BTDsKPiA+ICsg ICAgICAgIGdvdG8gZG9uZTsKPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICB1cmkgPSAoKmVudikt PkNhbGxTdGF0aWNPYmplY3RNZXRob2QoZW52LCBqZmllbGRzLnVyaV9jbGFzcywgamZpZWxkcy5w YXJzZV9pZCwgdXJsKTsKPiA+ICsgICAgcmV0ID0gZmZfam5pX2V4Y2VwdGlvbl9jaGVjayhlbnYs IDEsIGMpOwo+ID4gKyAgICBpZiAocmV0IDwgMCkKPiA+ICsgICAgICAgIGdvdG8gZG9uZTsKPiA+ ICsKPiA+ICsgICAgY29udGVudF9yZXNvbHZlciA9ICgqZW52KS0+Q2FsbE9iamVjdE1ldGhvZChl bnYsIGFwcGxpY2F0aW9uX2NvbnRleHQsIGpmaWVsZHMuZ2V0X2NvbnRlbnRfcmVzb2x2ZXJfaWQp Owo+ID4gKyAgICByZXQgPSBmZl9qbmlfZXhjZXB0aW9uX2NoZWNrKGVudiwgMSwgYyk7Cj4gPiAr ICAgIGlmIChyZXQgPCAwKQo+ID4gKyAgICAgICAgZ290byBkb25lOwo+ID4gKwo+ID4gKyAgICBw YXJjZWxfZmlsZV9kZXNjcmlwdG9yID0gKCplbnYpLT5DYWxsT2JqZWN0TWV0aG9kKGVudiwgY29u dGVudF9yZXNvbHZlciwgamZpZWxkcy5vcGVuX2ZpbGVfZGVzY3JpcHRvcl9pZCwgdXJpLCBtb2Rl KTsKPiA+ICsgICAgcmV0ID0gZmZfam5pX2V4Y2VwdGlvbl9jaGVjayhlbnYsIDEsIGMpOwo+ID4g KyAgICBpZiAocmV0IDwgMCkKPiA+ICsgICAgICAgIGdvdG8gZG9uZTsKPiA+ICsKPiA+ICsgICAg ZmQgPSAoKmVudiktPkNhbGxJbnRNZXRob2QoZW52LCBwYXJjZWxfZmlsZV9kZXNjcmlwdG9yLCBq ZmllbGRzLmRldGFjaF9mZF9pZCk7Cj4gPiArICAgIHJldCA9IGZmX2puaV9leGNlcHRpb25fY2hl Y2soZW52LCAxLCBjKTsKPiA+ICsgICAgaWYgKHJldCA8IDApCj4gPiArICAgICAgICBnb3RvIGRv bmU7Cj4gPiArCj4gPiArI2lmIEhBVkVfU0VUTU9ERQo+ID4gKyAgICBzZXRtb2RlKGZkLCBPX0JJ TkFSWSk7Cj4gPiArI2VuZGlmCj4gCj4gU2luY2UgaXTigJlzIGFuZHJvaWQgc3BlY2lmaWMgcHJv dG9jb2wsIHRoZSBjb25kaXRpb25hbCBjb21waWxlIGlzIGFsd2F5cyBmYWxzZSwgaXNu4oCZdCBp dD8KCllvdSdyZSByaWdodC4gUmVtb3ZlZC4KCj4gCj4gPiArICAgIGMtPmZkID0gZmQ7Cj4gPiAr ICAgIGgtPmlzX3N0cmVhbWVkID0gMDsKPiAKPiBGaXJzdGx5LCBpc19zdHJlYW1lZCBpcyBkZWZh dWx0IHRvIGZhbHNlLCBzbyB0aGUgYWJvdmUgbGluZSBpcyB1bm5lY2Vzc2FyeS4KPiBTZWNvbmRs eSwgSeKAmW0gbm90IHN1cmUgd2hldGhlciBpdOKAmXMgYWx3YXlzIHNlZWFibGUuCgpBZGRlZCBh IGNoZWNrLgoKVGhhbmtzIGZvciB0aGUgcmV2aWV3LCBJJ3ZlIHNlbnQgYW4gdXBkYXRlZCBwYXRj aCBzZXJpZXMgKHY0KS4KCkJlc3QgcmVnYXJkcywKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2 ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWct ZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWct ZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=