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 4F4F6407D0 for ; Mon, 31 Jan 2022 10:13:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 49D9868B221; Mon, 31 Jan 2022 12:13:24 +0200 (EET) Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6171B68B210 for ; Mon, 31 Jan 2022 12:13:17 +0200 (EET) Received: from postfix01.mail.de (postfix02.bt.mail.de [10.0.121.126]) by shout02.mail.de (Postfix) with ESMTP id B031CA1E31 for ; Mon, 31 Jan 2022 11:13:16 +0100 (CET) Received: from smtp01.mail.de (smtp01.bt.mail.de [10.0.121.211]) by postfix01.mail.de (Postfix) with ESMTP id 95B98A03C1 for ; Mon, 31 Jan 2022 11:13:16 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1643623996; bh=MXKLDSNl2sqMiCTst/viZMWLQzb2X75LtOFUqthF1uY=; h=Date:Subject:To:References:From:In-Reply-To:From; b=q+i3FQeQnvReB+spdQ6F7yWUdC8yvULOy6ZwPoGr63A9N88Zg86KXjoZdPWeHi+Ry zzGb8C7bzpUaDPbKl84VSyp923TIy2tD9FdcT8V3z3fMJmx3zvfowpY8hqa8xPnd7f jQ6LqiB9OTY4iArI3Rbc83na+wiqNI7mz9XKVo7xsBqilNin1zlnCr76t6Paq1Uhto oeI73dMjntsuthd7ACoox/YE7Mpaafzf9HryJliYP3Vn4w+rdd8oiZIT0fKZTIWEOB mAL8jO6KawX6wM/9RE76FUs7tJVZLBP3HSud1NmnAvSTEmCzhhoq8gm2kzE5zsCoKS pV+0FY6CRnNog== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtp01.mail.de (Postfix) with ESMTPSA id 5475F1000AA for ; Mon, 31 Jan 2022 11:13:16 +0100 (CET) Message-ID: <079cf800-f26f-34dc-13a5-2a75c7ab7ea3@mail.de> Date: Mon, 31 Jan 2022 11:13:15 +0100 MIME-Version: 1.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <72e9521f-b029-8637-c32c-27cf7c5de170@mail.de> <14470aae-c127-7532-a054-b5d878d415dd@mail.de> <52e4f109-41a4-a609-b583-c001c6077638@mail.de> <350ccc44-07dc-25c6-49a1-4281139d93ac@mail.de> <8b8ae2a5-f77f-5a34-8890-fa68de09e475@mail.de> <5ead1511-a763-782e-7eff-e2256828978c@mail.de> <70afd793-820b-83df-6bc8-58e1787cd9c8@mail.de> <26ca972d-ab44-910c-cc47-5f92da53bc9f@mail.de> From: Thilo Borgmann In-Reply-To: <26ca972d-ab44-910c-cc47-5f92da53bc9f@mail.de> X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 8289 X-purgate-ID: 154282::1643623996-000015F2-57C410D8/0/0 Subject: Re: [FFmpeg-devel] [PATCH v2] lavfi/drawtext: Add localtime_ms for millisecond precision 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: QW0gMjAuMDEuMjIgdW0gMTY6MzIgc2NocmllYiBUaGlsbyBCb3JnbWFubjoKPiBBbSAyMC4wMS4y MiB1bSAxNjowMyBzY2hyaWViIEFuZHJlYXMgUmhlaW5oYXJkdDoKPj4gVGhpbG8gQm9yZ21hbm46 Cj4+PiBBbSAyMC4wMS4yMiB1bSAxMzowNCBzY2hyaWViIFRoaWxvIEJvcmdtYW5uOgo+Pj4+IEFt IDE5LjAxLjIyIHVtIDA0OjE2IHNjaHJpZWIgInpoaWxpemhhbyjotbXlv5fnq4spIjoKPj4+Pj4K Pj4+Pj4KPj4+Pj4+IE9uIEphbiAxOCwgMjAyMiwgYXQgODo1MiBQTSwgVGhpbG8gQm9yZ21hbm4g PHRoaWxvLmJvcmdtYW5uQG1haWwuZGU+Cj4+Pj4+PiB3cm90ZToKPj4+Pj4+Cj4+Pj4+PiBBbSAx Ni4wMS4yMiB1bSAxMjowNiBzY2hyaWViIE5pY29sYXMgR2VvcmdlOgo+Pj4+Pj4+IFRoaWxvIEJv cmdtYW4gKDEyMDIyLTAxLTE0KToKPj4+Pj4+Pj4gdjYgZG9lczoKPj4+Pj4+Pj4KPj4+Pj4+Pj4g JD4gZmZtcGVnIC4uLiBkcmF3dGV4dD0iZm9udGZpbGU9Li4uOnRleHQ9JyV7bG9jYWx0aW1lwqDC oCBcOiVhICViCj4+Pj4+Pj4+ICVkICVZICVTfSciwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNlY29u ZHMpCj4+Pj4+Pj4+ICQ+IGZmbXBlZyAuLi4gZHJhd3RleHQ9ImZvbnRmaWxlPS4uLjp0ZXh0PScl e2xvY2FsdGltZV9tc1w6JWEgJWIKPj4+Pj4+Pj4gJWQgJVkgJVN9JyLCoMKgwqDCoMKgwqDCoMKg wqDCoCAobWlsbGlzZWNvbmRzKQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJIHN1Z2dlc3Qgdjcgc2hvdWxk IGFjY29yZGluZyB0byB5b3VyIHJlbWFyazoKPj4+Pj4+Pj4KPj4+Pj4+Pj4gJD4gZmZtcGVnIC4u LiBkcmF3dGV4dD0iZm9udGZpbGU9Li4uOnRleHQ9JyV7bG9jYWx0aW1lwqDCoCBcOiVhICViCj4+ Pj4+Pj4+ICVkICVZICVTfSciwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNlY29uZHMpCj4+Pj4+Pj4+ ICQ+IGZmbXBlZyAuLi4gZHJhd3RleHQ9ImZvbnRmaWxlPS4uLjp0ZXh0PScle2xvY2FsdGltZcKg wqAgXDolYSAlYgo+Pj4+Pj4+PiAlZCAlWSAlU30nOnNob3dfbXM9MSIgKG1pbGxpc2Vjb25kcykK Pj4+Pj4+Pj4KPj4+Pj4+Pj4gR29vZD8KPj4+Pj4+Pgo+Pj4+Pj4+IEkgZGlzbGlrZSBib3RoIHZl cnNpb25zLCBmcm9tIGEgdXNlciBpbnRlcmZhY2UgcG9pbnQgb2YgdmlldzogaWYgdGhlcmUKPj4+ Pj4+PiBpcyBhIGZvcm1hdCBzdHJpbmcsIHRoZW4gaXQgc3RhbmRzIHRvIHJlYXNvbiwgZm9yIHRo ZSB1c2VyLCB0aGF0IHRoZQo+Pj4+Pj4+IHJlc3VsdGluZyB0ZXh0IGlzIGdvdmVybmVkIGJ5IHRo ZSBmb3JtYXQgc3RyaW5nLCBub3QgYnkgYW4gZXh0cmEKPj4+Pj4+PiBvcHRpb24KPj4+Pj4+PiBz b21ld2hlcmUgZWxzZS4KPj4+Pj4+Pgo+Pj4+Pj4+IFRoZXJlIGlzIG5vICJ1c2VfZm91cl9kaWdp dF95ZWFyPTEiIG9wdGlvbiwgdGhlcmUgaXMgJVkgaW5zdGVhZCBvZiAleS4KPj4+Pj4+Pgo+Pj4+ Pj4+IFRoZXJlIGlzIG5vICJ1c2Vfc2xhc2hlcz0xIiBvcHRpb24sIHlvdSB3cml0ZSAlWS8lbS8l ZCBpbnN0ZWFkIG9mCj4+Pj4+Pj4gJVktJW0tJWQuCj4+Pj4+Pj4KPj4+Pj4+PiBUaGVyZSBhcmUg bm8gIm9taXRfZGF0ZT0xIiBhbmQgIm9taXRfaG91cj0xIiBvcHRpb25zLCB5b3UganVzdCB3cml0 ZQo+Pj4+Pj4+IHdoYXQgeW91IHdhbnQgaW4gdGhlIGZvcm1hdCBzdHJpbmcuCj4+Pj4+Pj4KPj4+ Pj4+PiBNeSBwcm9wb3NhbCBnb2VzIHRoZSBzYW1lIHdheToKPj4+Pj4+Pgo+Pj4+Pj4+ICQ+IGZm bXBlZyAuLi4gZHJhd3RleHQ9ImZvbnRmaWxlPS4uLjp0ZXh0PScle2xvY2FsdGltZcKgwqAgXDol YSAlYiAlZAo+Pj4+Pj4+ICVZICVTLiUzTn0nIgo+Pj4+Pj4+Cj4+Pj4+Pj4gSXQgaGFzIHNldmVy YWwgbWVyaXRzIG92ZXIgeW91ciBwcm9wb3NhbDoKPj4+Pj4+Pgo+Pj4+Pj4+IC0gSXQgY2FuIGJl IGV4dGVuZGVkIGxhdGVyIHRvIHN1cHBvcnQgcHJpbnRpbmcgdGhlIG1pbGxpc2Vjb25kcyBhdAo+ Pj4+Pj4+IMKgwqAgYW5vdGhlciBwbGFjZSB0aGFuIHRoZSBlbmQgKGZvciBleGFtcGxlIHRvIHB1 dCB0aGUgdGltZSBpbgo+Pj4+Pj4+IGJyYWNrZXRzKS4KPj4+Pj4+Pgo+Pj4+Pj4+IC0gSXQgY2Fu IGJlIGV4dGVuZGVkIHRvIHN1cHBvcnQgbWljcm9zZWNvbmRzIG9yIGNlbnRpc2Vjb25kcyAoJTZO LAo+Pj4+Pj4+ICUyTikuCj4+Pj4+Pj4KPj4+Pj4+PiAtIEl0IGlzIHNvbWV3aGF0IGNvbXBhdGli bGUgd2l0aCBHTlUgZGF0ZSBhbmQgcG9zc2libHkgYSBmZXcgb3RoZXJzLgo+Pj4+Pj4+Cj4+Pj4+ Pj4gQW5kIEkgZG8gbm90IHRoaW5rIGl0IGlzIGhhcmRlciB0byBpbXBsZW1lbnQuCj4+Pj4+Pgo+ Pj4+Pj4gT2ssIGRpZCBpbnRyb2R1Y2UgYSB2YXJpYWJsZTogJVsxLTZdTgo+Pj4+Pj4gUGFyc2lu ZyBhbmQgY2xpcHBpbmcgdmFsdWUgdG8gdmFsaWQgcmFuZ2Ugb2YgMS02Lgo+Pj4+Pj4gRGVmYXVs dCAzLgo+Pj4+Pj4KPj4+Pj4+IFRoYXQgd2F5IGl0IGlzIHBvc2l0aW9uIGluZGVwZW5kZW50IGFu ZCBjYW4gc2hvdyBhbnkgbnVtYmVyIG9mCj4+Pj4+PiBkZWNpbWFscyBmcm9tIDEgdG8gNi4KPj4+ Pj4+Cj4+Pj4+Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYyBi L2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMKPj4+Pj4+IGluZGV4IDJhODg2OTJjYmQuLjQ0OGIx NzRkYmIgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCj4+Pj4+ PiArKysgYi9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCj4+Pj4+PiBAQCAtNTEsNiArNTEsNyBA QAo+Pj4+Pj4gwqDCoCAjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgo+Pj4+Pj4gwqDCoCAjaW5j bHVkZSAibGliYXZ1dGlsL3JhbmRvbV9zZWVkLmgiCj4+Pj4+PiDCoMKgICNpbmNsdWRlICJsaWJh dnV0aWwvcGFyc2V1dGlscy5oIgo+Pj4+Pj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvdGltZS5oIgo+ Pj4+Pj4gwqDCoCAjaW5jbHVkZSAibGliYXZ1dGlsL3RpbWVjb2RlLmgiCj4+Pj4+PiDCoMKgICNp bmNsdWRlICJsaWJhdnV0aWwvdGltZV9pbnRlcm5hbC5oIgo+Pj4+Pj4gwqDCoCAjaW5jbHVkZSAi bGliYXZ1dGlsL3RyZWUuaCIKPj4+Pj4+IEBAIC0xMDQ1LDE0ICsxMDQ2LDgyIEBAIHN0YXRpYyBp bnQgZnVuY19zdHJmdGltZShBVkZpbHRlckNvbnRleHQKPj4+Pj4+ICpjdHgsIEFWQlByaW50ICpi cCwKPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjaGFyICpmY3QsIHVuc2lnbmVkIGFyZ2MsIGNoYXIgKiphcmd2LAo+Pj4+Pj4gaW50 IHRhZykKPj4+Pj4+IMKgwqAgewo+Pj4+Pj4gwqDCoMKgwqDCoMKgIGNvbnN0IGNoYXIgKmZtdCA9 IGFyZ2MgPyBhcmd2WzBdIDogIiVZLSVtLSVkICVIOiVNOiVTIjsKPj4+Pj4+ICvCoMKgwqAgaW50 NjRfdCB1bm93Owo+Pj4+Pj4gwqDCoMKgwqDCoMKgIHRpbWVfdCBub3c7Cj4+Pj4+PiDCoMKgwqDC oMKgwqAgc3RydWN0IHRtIHRtOwo+Pj4+Pj4gLQo+Pj4+Pj4gLcKgwqDCoCB0aW1lKCZub3cpOwo+ Pj4+Pj4gLcKgwqDCoCBpZiAodGFnID09ICdMJykKPj4+Pj4+ICvCoMKgwqAgY2hhciAqYmVnaW47 Cj4+Pj4+PiArwqDCoMKgIGNoYXIgKnRtcDsKPj4+Pj4+ICvCoMKgwqAgaW50IGxlbjsKPj4+Pj4+ ICvCoMKgwqAgY2hhciAqZm10X25ldzsKPj4+Pj4+ICvCoMKgwqAgY29uc3QgY2hhciAqZm10X3Rt cDsKPj4+Pj4+ICvCoMKgwqAgaW50IGRpdjsKPj4+Pj4+ICsKPj4+Pj4+ICvCoMKgwqAgdW5vdyA9 IGF2X2dldHRpbWUoKTsKPj4+Pj4+ICvCoMKgwqAgbm93wqAgPSB1bm93IC8gMTAwMDAwMDsKPj4+ Pj4+ICvCoMKgwqAgaWYgKHRhZyA9PSAnTCcgfHwgdGFnID09ICdtJykKPj4+Pj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgIGxvY2FsdGltZV9yKCZub3csICZ0bSk7Cj4+Pj4+PiDCoMKgwqDCoMKgwqAg ZWxzZQo+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgdG0gPSAqZ210aW1lX3IoJm5vdywgJnRt KTsKPj4+Pj4+ICsKPj4+Pj4+ICvCoMKgwqAgLy8gbWFudWFsbHkgcGFyc2UgZm9ybWF0IGZvciAl TiAoZnJhY3Rpb25hbCBzZWNvbmRzKQo+Pj4+Pj4gK8KgwqDCoCBiZWdpbiA9IChjaGFyKilmbXQ7 Cj4+Pj4+Cj4+Pj4+IE1ha2UgYmVnaW4gYW5kIHRtcCBjb25zdCBjaGFyICosIHNvIHRoZSBjYXN0 IGNhbiBiZSByZW1vdmVkLgo+Pj4+Pgo+Pj4+Pj4gK8KgwqDCoCB3aGlsZSAoKGJlZ2luID0gYXZf c3RyaXN0cihiZWdpbiwgIiUiKSkpIHsKPj4+Pj4KPj4+Pj4gSG93IGFib3V0IHN0cnN0cigpIHNp bmNlIOKAmCXigJkgaXMgY2FzZWxlc3M/Cj4+Pj4+Cj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgdG1w ID0gYmVnaW4gKyAxOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGxlbiA9IDA7Cj4+Pj4+PiArwqDC oMKgwqDCoMKgwqAgLy8gY291bnQgZGlnaXRzIGJldHdlZW4gJSBhbmQgcG9zc2libGUgTgo+Pj4+ Pj4gK8KgwqDCoMKgwqDCoMKgIHdoaWxlICgqdG1wICE9ICdcMCcgJiYgYXZfaXNkaWdpdCgoaW50 KSp0bXApKSB7Cj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZW4rKzsKPj4+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRtcCsrOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoCAvLyBOIGVuY291bnRlcmVkLCBpbnNlcnQgdGltZQo+Pj4+Pj4g K8KgwqDCoMKgwqDCoMKgIGlmICgqdG1wID09ICdOJykgewo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaW50IG51bV9kaWdpdHMgPSAzOyAvLyBkZWZhdWx0IHNob3cgbWlsbGlzZWNvbmQg WzEsNl0KPj4+Pj4+ICsKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIGlmIGRpZ2l0 cyBnaXZlbiwgcGFyc2UgYXMgbnVtYmVyIGluIFsxLDZdCj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpZiAobGVuID4gMCkgewo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBhdl9zc2NhbmYoYmVnaW4gKyAxLCAiJWkiLCAmbnVtX2RpZ2l0cyk7Cj4+Pj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG51bV9kaWdpdHMgPSBhdl9jbGlwKG51bV9kaWdp dHMsIDEsIDYpOyAvLyBlbnN1cmUKPj4+Pj4+IHZhbGlkIHZhbHVlCj4+Pj4+Cj4+Pj4+IFdlIGNh biBpZ25vcmUgbGVuID4gMSwgdGhlbiB0aGUgY29kZSBjYW4gYmUgc2ltcGxpZmllZCBhcwo+Pj4+ Pgo+Pj4+PiBpZiAobGVuID09IDEpCj4+Pj4+IMKgwqDCoMKgwqAgbnVtX2RpZ2l0cyA9IGF2X2Ns aXAoKihiZWdpbiArIDEpIC0g4oCYXDDigJksIDEsIDYpCj4+Pj4+Cj4+Pj4+Cj4+Pj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+PiArCj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBsZW4gKz0gMjsgLy8gYWRkICUgYW5kIE4gdG8gZ2V0IGxlbmd0aCBvZiBzdHJpbmcgcGFy dAo+Pj4+Pj4gKwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3dpdGNoKG51bV9kaWdp dHMpIHsKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgMToKPj4+Pj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm10X3RtcCA9ICIlLipzJTAxZCVzIjsKPj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGl2wqDCoMKgwqAgPSAxMDAwMDA7Cj4+ Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY2FzZSAyOgo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBmbXRfdG1wID0gIiUuKnMlMDJkJXMiOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBkaXbCoMKgwqDCoCA9IDEwMDAwOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNh c2UgMzoKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm10X3RtcCA9ICIl LipzJTAzZCVzIjsKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGl2wqDC oMKgwqAgPSAxMDAwOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVh azsKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgNDoKPj4+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm10X3RtcCA9ICIlLipzJTA0ZCVzIjsKPj4+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGl2wqDCoMKgwqAgPSAxMDA7Cj4+Pj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY2FzZSA1Ogo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBmbXRfdG1wID0gIiUuKnMlMDVkJXMiOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBkaXbCoMKgwqDCoCA9IDEwOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBicmVhazsKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgNjoKPj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm10X3RtcCA9ICIlLipzJTA2ZCVz IjsKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGl2wqDCoMKgwqAgPSAx Owo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+Pj4KPj4+Pj4gVGhlIHN3aXRjaC1jYXNlIGNhbiBi ZSByZXBsYWNlZCBieSDigJwlMCpk4oCdIGFuZCBwb3coMTAsIDYgLSBudW1fZGlnaXRzKS4KPj4+ Pgo+Pj4+IEluZGVlZCwgc2ltcGxpZmllZC4KPj4+Pgo+Pj4+Cj4+Pj4+PiArCj4+Pj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBmbXRfbmV3ID0gYXZfYXNwcmludGYoZm10X3RtcCwgYmVnaW4g LSBmbXQsIGZtdCwKPj4+Pj4+IChpbnQpKHVub3cgJSAxMDAwMDAwKSAvIGRpdiwgYmVnaW4gKyBs ZW4pOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFmbXRfbmV3KQo+Pj4+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfYnByaW50X3N0cmZ0aW1lKGJwLCBmbXRf bmV3LCAmdG0pOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfZnJlZXAoJmZtdF9u ZXcpOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+Pj4+PiArwqDC oMKgwqDCoMKgwqAgfQo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGJlZ2luKys7Cj4+Pj4+Cj4+Pj4+ IFByb2dyZXNzIGZhc3RlciBieSB0YWtpbmcgYWNjb3VudCBvZiBsZW4uCj4+Pj4KPj4+PiBBcyB3 ZWxsLCBhbHNvIGFkZGVkIHRvIHNraXAgIiUlIi4KPj4+Pgo+Pj4+Cj4+Pj4+PiArwqDCoMKgIH0K Pj4+Pj4+ICsKPj4+Pj4+IMKgwqDCoMKgwqDCoCBhdl9icHJpbnRfc3RyZnRpbWUoYnAsIGZtdCwg JnRtKTsKPj4+Pj4+IMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+Pj4+IMKgwqAgfQo+Pj4+Pj4g LS0gCj4+Pj4KPj4+PiB2OCBhdHRhY2hlZC4KPj4+Cj4+PiBGaXhlZCBvZmYtYnktb25lIGJ1Zy4K Pj4+IEFsbG93cyBmb3Igc2V2ZXJhbCBvY2N1cnJlbmNlcyBvZiAlTiBwYXJhbWV0ZXIgbm93Lgo+ Pj4KPj4+IHY5IGF0dGFjaGVkLgo+Pj4KPj4+IFRoYW5rcywKPj4+IFRoaWxvCj4+Pgo+Pj4KPj4+ ICvCoMKgwqAgLy8gbWFudWFsbHkgcGFyc2UgZm9ybWF0IGZvciAlTiAoZnJhY3Rpb25hbCBzZWNv bmRzKQo+Pj4gK8KgwqDCoCBiZWdpbiA9IGZtdDsKPj4+ICvCoMKgwqAgd2hpbGUgKChiZWdpbiA9 IGF2X3N0cmlzdHIoYmVnaW4sICIlIikpKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqAgdG1wID0gYmVn aW4gKyAxOwo+Pgo+PiBiZWdpbiA9IHN0cmNocihiZWdpbiwgJyUnKQo+IAo+IERvbmUuCj4gQWxz byBmaXhlZCBidWdneSBmcmVlcCgpIGZvciBub24gdXNlci1zdXBwbGllZCBmb3JtYXQgc3RyaW5n Lgo+IAo+IHYxMCBhdHRhY2hlZC4KCkFsc28gZ29pbmcgdG8gYXBwbHkgc29vbiBpZiB0aGVyZSBh cmUgbm8gbW9yZSBjb21tZW50cy4KCi1UaGlsbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZl bEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k ZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1k ZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==