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 C21FE40212 for ; Thu, 20 Jan 2022 15:04:10 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1B68068B193; Thu, 20 Jan 2022 17:04:08 +0200 (EET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2010.outbound.protection.outlook.com [40.92.91.10]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E34D068B056 for ; Thu, 20 Jan 2022 17:04:01 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nbJyzPjKoJMFllxYSxcOF2Qcwb6p/ACaQkQo3Uz6PjG/mabT8b0EicO7FXogVLz+RWKq7lgA0jEyViQ9mLESJ6C83RBJA9Rak0f11ib2ErmUChJoD/MLTsp2Gc9QQ503X25pw1drxonfb8GM/piOgKI0698Bm1C+5hu4IwMS5Fh5edXU/1XmTJW9V1IqdPzOUax92dQaZHnebi7wWm18KIBrtsXE5q3ytghNOs4Wl/M3nMz7YgCiCoAhP9zK8qwFUj1t01iOizJVaSzTwMBicrrO4ZvreKn+2RrBDNYeas7d0Y0XQKf5LYp7trL8XVJ4kfFJPpgES8cHQsTkC8BNUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+KuFLvpbR+VROdR+hKm4GhC5gEc3FBJWb3umW73thEA=; b=XL+9m2tSxwAzxsY+9c0eyn7xfWCyo5tfPZggtAbuEWXw6je+ssBseDhVamrKg39w7z97VParkDrJPitVpln9YYJKYsX4TYWUUFpb0/XsRq2+1PzNkhsiEpc8Pi94ZYzFKyQ/c/tQrCivGFiRGfVE2xZE9DyIKG0sJOuvst5MxVbMTIi1Y2/OrsUz4JUn5z7dtP353533ofHCgQJUoTWRyn3QRCxmbjpPM+9LNCE5LOovkI5qdBdI7fRLf7tLjrff3Q/NNKBQWaXmznqv5lz7DSrFc29+GRFvKgVcjArK3jn6jFMDVav+E6r7/ZogOxlsZJGC0fOyRye5pfK1l93ZAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+KuFLvpbR+VROdR+hKm4GhC5gEc3FBJWb3umW73thEA=; b=GxNIXdjRzMVHsu71QeOHtQuXvK43J37yn7oR9w0Eu428mDMvfg73qDcxR1g+nH9KgYfqNW6Z1FcGJWB7P9I6bDF+Jm+H2sh57emlGuPkz656InSbpe+lwaVKvALxkpjNbveDBN8gV/A7VINAG2y7hCjU8NT5YN4D7YRXAwn97CZ/+M/Ekr3VEcXy/9+dLbuHXSiID9ALrWBvKohPGWVPRSHH9XFVRSTpM1XcLKUx/wN/MOPzniqPdvXy4oVUJE0ubmky3RSfFBA7RZlVYH6q72CWrRuF8lwocaWWFAktcUS71Rap01UUjLZUwX7q9bRCrrDW5skBrZGn4CwViy+cfQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB7349.eurprd03.prod.outlook.com (2603:10a6:20b:2b6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.10; Thu, 20 Jan 2022 15:04:00 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4909.008; Thu, 20 Jan 2022 15:04:00 +0000 Message-ID: Date: Thu, 20 Jan 2022 16:03:59 +0100 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> From: Andreas Rheinhardt In-Reply-To: <70afd793-820b-83df-6bc8-58e1787cd9c8@mail.de> X-TMN: [bfZGT2bJL53pJ30NZrer3bcoOzqEaQ2j] X-ClientProxiedBy: AM0PR10CA0129.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:e6::46) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6d8c73d4-804c-4363-dc9d-08d9dc261725 X-MS-TrafficTypeDiagnostic: AS8PR03MB7349:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4Rpx9/9V/WTSPipDSfPzt6I6bn/RBSZdmC1embtL7BgjMlMxUAVt4vYVKg3HOcKDtW0B0wz0iUPXduO8Myl1OX1udHmlJaujnCNEYu2OO24EHUMh6LiPGD7ZIArreI4UtZ9k/gGcX3Y1Ay70GV1X06GFQ8WwVyFAYr1j/dPOHJE/38ywRHcVg6rx+XEq3Vd4jTnTs+RmEYEoDp7e11TU3/JE2DgiVSjueflmlWoONifkiJZ6ECTwJjmXP/wSba4OAgo91O+le1zM2uvex/faQ0jl29ZOg5mWCO3MCTkPw7xHSxLTYwxDE0UMySLk5jdfLBinraJhbJk5FYNx62IYLk56LTYmbpAJpeNwhb0oPxzUhkmcgt28PTcy9RDqpDrFDgwbp91BN5McMQ5jAhkFBfWH8V2Lc3PodephfaofLz2zHq7rSjcQw63AcRHt+qQbLE3IeNuUlNZdRPChsBq2TUil6VJWb0MnGRd3lmUXQv884+vNFqej2ZVllJ4T3WLOfYB+5B0PO8tauophCaZiZQ1q8zKN08vW5f60yAa97+thBRQ31XdlgXUwn1IJtF9D+rG+Nu/XludVybC1tNnPcQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?di8wcjJEZ3BLM2huaXNzbkFxblZwNVNCL3pnM0d4cTkzNmlkc1Znb3Y0UWw5?= =?utf-8?B?UUMwdzJtVmQrWXpDSXMxanFIV0ZhS0VvaVdUZ1dGLzBvVWJURE5OdVhCam1Z?= =?utf-8?B?U3BjRU1qdUl2cmh0amxnZkdveDdReEtSNXVHVEc4UnhpU0dNWHljQkpiSExh?= =?utf-8?B?VnpaY2Y2eG01RmJLblZIbXREYlVYZlQ3T2k3MFUvNzMxQ2NvcWFhcjNFYzBz?= =?utf-8?B?Ti9XWG9iRlFYVTg0U09mazZvZm9uNHg5MWFFcUFpcW1aSmhXa3lGK2c2d2VM?= =?utf-8?B?N0wwUHUvdFBQNDBkR0taNmI3QXIrUkZITXZ6ZHBrTE56NkE4cDFCV3FERUw4?= =?utf-8?B?aitpeStTa2lQSFpUQk93RG93WjAvQ0c3OEdoeTRwTUNvMys0TjZSSzd0R01v?= =?utf-8?B?a0pvK25HL1YzdmxEd04vZVVZNm5rMjVSUCtyckxoUE94anJIbzNrY1hKakdF?= =?utf-8?B?ajIyVWYweEF3Ym5tMCt3OVRISWVlY0ZIbWoxejd2dHZWSm5QdWs2MmUvRDFU?= =?utf-8?B?MkJUTUFYWEZUVXdrT3ZZT3hUa1NlcHo0N0hqYnd6eW5NTVVLWms1dElLWC85?= =?utf-8?B?TkIzby8raVBrRXRSS0F2UGY5QUcxb2M0VUJxMXB5aGlqbEdWMFNtOFMrVHo2?= =?utf-8?B?RnZ5Ni9BeGlCbmN1L21kR1VvdGw4ZWpEczdLTnMxa01LTUVSNTU3WStpMXRn?= =?utf-8?B?NTJsc1p3djl5QlliZ2dJZVpLVzFNZlI3U045MWRDc0JpWWRGWEVrY09NTll2?= =?utf-8?B?bk9NeUt3T3JQOU94dDFJNDYxRDA2WDJycVJ3azkrdEhTLzdYMlpzU2N3SU9i?= =?utf-8?B?Q2N3dStZUkJ0dDdzVjg2UlYxcmZMT1pmTERpaXNZTTVYdDJScVVqWURhUkZl?= =?utf-8?B?NjIvWGdyNXVpVlRzUTNmSGs1TVIwc0picU9VWGtQbnYvb1pnbVQyVFhzKzBy?= =?utf-8?B?SHpSMHdWczk2T1hLemdXRFVydndTVUk3aENHOE1meGpzd1VaaCtFcVMvSS9y?= =?utf-8?B?QjZUbHBDd2J5UitkZVpVaXFOejdyaFY2U0kyQU54NC9jZDBuZTkzN2JieEpH?= =?utf-8?B?dTBjeVdsV3BCMVYvMzFTcHVPWDUzTm1kaGNZWjQxR0VLemhBamlPUWc4dFdV?= =?utf-8?B?bmQrU01Ec0Y0SHdGTHJIb3p6TGN2cUdTZFBXd0d6NzdITURWcXpSZ0FYdmRj?= =?utf-8?B?TFREMGlKUUZDYk5IUUlDWFo4blQ5RlYxb3BwandZMndidm5xdnFSRnE3VHFL?= =?utf-8?B?YnpmQ3ZiYkI0Q0YxM3l4cUN2cUdOQXlPMklCNXdpTGxsRVB4Zz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d8c73d4-804c-4363-dc9d-08d9dc261725 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2022 15:04:00.7673 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7349 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-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: VGhpbG8gQm9yZ21hbm46Cj4gQW0gMjAuMDEuMjIgdW0gMTM6MDQgc2NocmllYiBUaGlsbyBCb3Jn bWFubjoKPj4gQW0gMTkuMDEuMjIgdW0gMDQ6MTYgc2NocmllYiAiemhpbGl6aGFvKOi1teW/l+er iykiOgo+Pj4KPj4+Cj4+Pj4gT24gSmFuIDE4LCAyMDIyLCBhdCA4OjUyIFBNLCBUaGlsbyBCb3Jn bWFubiA8dGhpbG8uYm9yZ21hbm5AbWFpbC5kZT4KPj4+PiB3cm90ZToKPj4+Pgo+Pj4+IEFtIDE2 LjAxLjIyIHVtIDEyOjA2IHNjaHJpZWIgTmljb2xhcyBHZW9yZ2U6Cj4+Pj4+IFRoaWxvIEJvcmdt YW4gKDEyMDIyLTAxLTE0KToKPj4+Pj4+IHY2IGRvZXM6Cj4+Pj4+Pgo+Pj4+Pj4gJD4gZmZtcGVn IC4uLiBkcmF3dGV4dD0iZm9udGZpbGU9Li4uOnRleHQ9JyV7bG9jYWx0aW1lwqDCoCBcOiVhICVi Cj4+Pj4+PiAlZCAlWSAlU30nIsKgwqDCoMKgwqDCoMKgwqDCoMKgIChzZWNvbmRzKQo+Pj4+Pj4g JD4gZmZtcGVnIC4uLiBkcmF3dGV4dD0iZm9udGZpbGU9Li4uOnRleHQ9JyV7bG9jYWx0aW1lX21z XDolYSAlYgo+Pj4+Pj4gJWQgJVkgJVN9JyLCoMKgwqDCoMKgwqDCoMKgwqDCoCAobWlsbGlzZWNv bmRzKQo+Pj4+Pj4KPj4+Pj4+IEkgc3VnZ2VzdCB2NyBzaG91bGQgYWNjb3JkaW5nIHRvIHlvdXIg cmVtYXJrOgo+Pj4+Pj4KPj4+Pj4+ICQ+IGZmbXBlZyAuLi4gZHJhd3RleHQ9ImZvbnRmaWxlPS4u Ljp0ZXh0PScle2xvY2FsdGltZcKgwqAgXDolYSAlYgo+Pj4+Pj4gJWQgJVkgJVN9JyLCoMKgwqDC oMKgwqDCoMKgwqDCoCAoc2Vjb25kcykKPj4+Pj4+ICQ+IGZmbXBlZyAuLi4gZHJhd3RleHQ9ImZv bnRmaWxlPS4uLjp0ZXh0PScle2xvY2FsdGltZcKgwqAgXDolYSAlYgo+Pj4+Pj4gJWQgJVkgJVN9 JzpzaG93X21zPTEiIChtaWxsaXNlY29uZHMpCj4+Pj4+Pgo+Pj4+Pj4gR29vZD8KPj4+Pj4KPj4+ Pj4gSSBkaXNsaWtlIGJvdGggdmVyc2lvbnMsIGZyb20gYSB1c2VyIGludGVyZmFjZSBwb2ludCBv ZiB2aWV3OiBpZiB0aGVyZQo+Pj4+PiBpcyBhIGZvcm1hdCBzdHJpbmcsIHRoZW4gaXQgc3RhbmRz IHRvIHJlYXNvbiwgZm9yIHRoZSB1c2VyLCB0aGF0IHRoZQo+Pj4+PiByZXN1bHRpbmcgdGV4dCBp cyBnb3Zlcm5lZCBieSB0aGUgZm9ybWF0IHN0cmluZywgbm90IGJ5IGFuIGV4dHJhCj4+Pj4+IG9w dGlvbgo+Pj4+PiBzb21ld2hlcmUgZWxzZS4KPj4+Pj4KPj4+Pj4gVGhlcmUgaXMgbm8gInVzZV9m b3VyX2RpZ2l0X3llYXI9MSIgb3B0aW9uLCB0aGVyZSBpcyAlWSBpbnN0ZWFkIG9mICV5Lgo+Pj4+ Pgo+Pj4+PiBUaGVyZSBpcyBubyAidXNlX3NsYXNoZXM9MSIgb3B0aW9uLCB5b3Ugd3JpdGUgJVkv JW0vJWQgaW5zdGVhZCBvZgo+Pj4+PiAlWS0lbS0lZC4KPj4+Pj4KPj4+Pj4gVGhlcmUgYXJlIG5v ICJvbWl0X2RhdGU9MSIgYW5kICJvbWl0X2hvdXI9MSIgb3B0aW9ucywgeW91IGp1c3Qgd3JpdGUK Pj4+Pj4gd2hhdCB5b3Ugd2FudCBpbiB0aGUgZm9ybWF0IHN0cmluZy4KPj4+Pj4KPj4+Pj4gTXkg cHJvcG9zYWwgZ29lcyB0aGUgc2FtZSB3YXk6Cj4+Pj4+Cj4+Pj4+ICQ+IGZmbXBlZyAuLi4gZHJh d3RleHQ9ImZvbnRmaWxlPS4uLjp0ZXh0PScle2xvY2FsdGltZcKgwqAgXDolYSAlYiAlZAo+Pj4+ PiAlWSAlUy4lM059JyIKPj4+Pj4KPj4+Pj4gSXQgaGFzIHNldmVyYWwgbWVyaXRzIG92ZXIgeW91 ciBwcm9wb3NhbDoKPj4+Pj4KPj4+Pj4gLSBJdCBjYW4gYmUgZXh0ZW5kZWQgbGF0ZXIgdG8gc3Vw cG9ydCBwcmludGluZyB0aGUgbWlsbGlzZWNvbmRzIGF0Cj4+Pj4+IMKgIGFub3RoZXIgcGxhY2Ug dGhhbiB0aGUgZW5kIChmb3IgZXhhbXBsZSB0byBwdXQgdGhlIHRpbWUgaW4KPj4+Pj4gYnJhY2tl dHMpLgo+Pj4+Pgo+Pj4+PiAtIEl0IGNhbiBiZSBleHRlbmRlZCB0byBzdXBwb3J0IG1pY3Jvc2Vj b25kcyBvciBjZW50aXNlY29uZHMgKCU2TiwKPj4+Pj4gJTJOKS4KPj4+Pj4KPj4+Pj4gLSBJdCBp cyBzb21ld2hhdCBjb21wYXRpYmxlIHdpdGggR05VIGRhdGUgYW5kIHBvc3NpYmx5IGEgZmV3IG90 aGVycy4KPj4+Pj4KPj4+Pj4gQW5kIEkgZG8gbm90IHRoaW5rIGl0IGlzIGhhcmRlciB0byBpbXBs ZW1lbnQuCj4+Pj4KPj4+PiBPaywgZGlkIGludHJvZHVjZSBhIHZhcmlhYmxlOiAlWzEtNl1OCj4+ Pj4gUGFyc2luZyBhbmQgY2xpcHBpbmcgdmFsdWUgdG8gdmFsaWQgcmFuZ2Ugb2YgMS02Lgo+Pj4+ IERlZmF1bHQgMy4KPj4+Pgo+Pj4+IFRoYXQgd2F5IGl0IGlzIHBvc2l0aW9uIGluZGVwZW5kZW50 IGFuZCBjYW4gc2hvdyBhbnkgbnVtYmVyIG9mCj4+Pj4gZGVjaW1hbHMgZnJvbSAxIHRvIDYuCj4+ Pj4KPj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMgYi9saWJh dmZpbHRlci92Zl9kcmF3dGV4dC5jCj4+Pj4gaW5kZXggMmE4ODY5MmNiZC4uNDQ4YjE3NGRiYiAx MDA2NDQKPj4+PiAtLS0gYS9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCj4+Pj4gKysrIGIvbGli YXZmaWx0ZXIvdmZfZHJhd3RleHQuYwo+Pj4+IEBAIC01MSw2ICs1MSw3IEBACj4+Pj4gwqAgI2lu Y2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKPj4+PiDCoCAjaW5jbHVkZSAibGliYXZ1dGlsL3JhbmRv bV9zZWVkLmgiCj4+Pj4gwqAgI2luY2x1ZGUgImxpYmF2dXRpbC9wYXJzZXV0aWxzLmgiCj4+Pj4g KyNpbmNsdWRlICJsaWJhdnV0aWwvdGltZS5oIgo+Pj4+IMKgICNpbmNsdWRlICJsaWJhdnV0aWwv dGltZWNvZGUuaCIKPj4+PiDCoCAjaW5jbHVkZSAibGliYXZ1dGlsL3RpbWVfaW50ZXJuYWwuaCIK Pj4+PiDCoCAjaW5jbHVkZSAibGliYXZ1dGlsL3RyZWUuaCIKPj4+PiBAQCAtMTA0NSwxNCArMTA0 Niw4MiBAQCBzdGF0aWMgaW50IGZ1bmNfc3RyZnRpbWUoQVZGaWx0ZXJDb250ZXh0Cj4+Pj4gKmN0 eCwgQVZCUHJpbnQgKmJwLAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY2hhciAqZmN0LCB1bnNpZ25lZCBhcmdjLCBjaGFyICoqYXJndiwK Pj4+PiBpbnQgdGFnKQo+Pj4+IMKgIHsKPj4+PiDCoMKgwqDCoMKgIGNvbnN0IGNoYXIgKmZtdCA9 IGFyZ2MgPyBhcmd2WzBdIDogIiVZLSVtLSVkICVIOiVNOiVTIjsKPj4+PiArwqDCoMKgIGludDY0 X3QgdW5vdzsKPj4+PiDCoMKgwqDCoMKgIHRpbWVfdCBub3c7Cj4+Pj4gwqDCoMKgwqDCoCBzdHJ1 Y3QgdG0gdG07Cj4+Pj4gLQo+Pj4+IC3CoMKgwqAgdGltZSgmbm93KTsKPj4+PiAtwqDCoMKgIGlm ICh0YWcgPT0gJ0wnKQo+Pj4+ICvCoMKgwqAgY2hhciAqYmVnaW47Cj4+Pj4gK8KgwqDCoCBjaGFy ICp0bXA7Cj4+Pj4gK8KgwqDCoCBpbnQgbGVuOwo+Pj4+ICvCoMKgwqAgY2hhciAqZm10X25ldzsK Pj4+PiArwqDCoMKgIGNvbnN0IGNoYXIgKmZtdF90bXA7Cj4+Pj4gK8KgwqDCoCBpbnQgZGl2Owo+ Pj4+ICsKPj4+PiArwqDCoMKgIHVub3cgPSBhdl9nZXR0aW1lKCk7Cj4+Pj4gK8KgwqDCoCBub3fC oCA9IHVub3cgLyAxMDAwMDAwOwo+Pj4+ICvCoMKgwqAgaWYgKHRhZyA9PSAnTCcgfHwgdGFnID09 ICdtJykKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgbG9jYWx0aW1lX3IoJm5vdywgJnRtKTsKPj4+ PiDCoMKgwqDCoMKgIGVsc2UKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdG0gPSAqZ210aW1lX3Io Jm5vdywgJnRtKTsKPj4+PiArCj4+Pj4gK8KgwqDCoCAvLyBtYW51YWxseSBwYXJzZSBmb3JtYXQg Zm9yICVOIChmcmFjdGlvbmFsIHNlY29uZHMpCj4+Pj4gK8KgwqDCoCBiZWdpbiA9IChjaGFyKilm bXQ7Cj4+Pgo+Pj4gTWFrZSBiZWdpbiBhbmQgdG1wIGNvbnN0IGNoYXIgKiwgc28gdGhlIGNhc3Qg Y2FuIGJlIHJlbW92ZWQuCj4+Pgo+Pj4+ICvCoMKgwqAgd2hpbGUgKChiZWdpbiA9IGF2X3N0cmlz dHIoYmVnaW4sICIlIikpKSB7Cj4+Pgo+Pj4gSG93IGFib3V0IHN0cnN0cigpIHNpbmNlIOKAmCXi gJkgaXMgY2FzZWxlc3M/Cj4+Pgo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB0bXAgPSBiZWdpbiArIDE7 Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGxlbiA9IDA7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIC8vIGNv dW50IGRpZ2l0cyBiZXR3ZWVuICUgYW5kIHBvc3NpYmxlIE4KPj4+PiArwqDCoMKgwqDCoMKgwqAg d2hpbGUgKCp0bXAgIT0gJ1wwJyAmJiBhdl9pc2RpZ2l0KChpbnQpKnRtcCkpIHsKPj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBsZW4rKzsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0 bXArKzsKPj4+PiArwqDCoMKgwqDCoMKgwqAgfQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCAvLyBOIGVu Y291bnRlcmVkLCBpbnNlcnQgdGltZQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoKnRtcCA9PSAn TicpIHsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgbnVtX2RpZ2l0cyA9IDM7IC8v IGRlZmF1bHQgc2hvdyBtaWxsaXNlY29uZCBbMSw2XQo+Pj4+ICsKPj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAvLyBpZiBkaWdpdHMgZ2l2ZW4sIHBhcnNlIGFzIG51bWJlciBpbiBbMSw2XQo+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChsZW4gPiAwKSB7Cj4+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9zc2NhbmYoYmVnaW4gKyAxLCAiJWkiLCAmbnVtX2Rp Z2l0cyk7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBudW1fZGlnaXRzID0g YXZfY2xpcChudW1fZGlnaXRzLCAxLCA2KTsgLy8gZW5zdXJlCj4+Pj4gdmFsaWQgdmFsdWUKPj4+ Cj4+PiBXZSBjYW4gaWdub3JlIGxlbiA+IDEsIHRoZW4gdGhlIGNvZGUgY2FuIGJlIHNpbXBsaWZp ZWQgYXMKPj4+Cj4+PiBpZiAobGVuID09IDEpCj4+PiDCoMKgwqDCoCBudW1fZGlnaXRzID0gYXZf Y2xpcCgqKGJlZ2luICsgMSkgLSDigJhcMOKAmSwgMSwgNikKPj4+Cj4+Pgo+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIH0KPj4+PiArCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGVu ICs9IDI7IC8vIGFkZCAlIGFuZCBOIHRvIGdldCBsZW5ndGggb2Ygc3RyaW5nIHBhcnQKPj4+PiAr Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3dpdGNoKG51bV9kaWdpdHMpIHsKPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIDE6Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBmbXRfdG1wID0gIiUuKnMlMDFkJXMiOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZGl2wqDCoMKgwqAgPSAxMDAwMDA7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNl IDI6Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmbXRfdG1wID0gIiUuKnMl MDJkJXMiOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGl2wqDCoMKgwqAg PSAxMDAwMDsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgMzoKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGZtdF90bXAgPSAiJS4qcyUwM2QlcyI7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBkaXbCoMKgwqDCoCA9IDEwMDA7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNl IDQ6Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmbXRfdG1wID0gIiUuKnMl MDRkJXMiOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGl2wqDCoMKgwqAg PSAxMDA7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIDU6Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBmbXRfdG1wID0gIiUuKnMlMDVkJXMiOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZGl2wqDCoMKgwqAgPSAxMDsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgNjoK Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZtdF90bXAgPSAiJS4qcyUwNmQl cyI7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkaXbCoMKgwqDCoCA9IDE7 Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB9Cj4+Pgo+Pj4gVGhlIHN3aXRjaC1jYXNlIGNhbiBiZSByZXBsYWNl ZCBieSDigJwlMCpk4oCdIGFuZCBwb3coMTAsIDYgLSBudW1fZGlnaXRzKS4KPj4KPj4gSW5kZWVk LCBzaW1wbGlmaWVkLgo+Pgo+Pgo+Pj4+ICsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBm bXRfbmV3ID0gYXZfYXNwcmludGYoZm10X3RtcCwgYmVnaW4gLSBmbXQsIGZtdCwKPj4+PiAoaW50 KSh1bm93ICUgMTAwMDAwMCkgLyBkaXYsIGJlZ2luICsgbGVuKTsKPj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAoIWZtdF9uZXcpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGF2X2JwcmludF9zdHJmdGltZShicCwgZm10X25ldywgJnRtKTsKPj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBhdl9mcmVlcCgmZm10X25ldyk7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuIDA7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4+PiArwqDCoMKgwqDCoMKgwqAg YmVnaW4rKzsKPj4+Cj4+PiBQcm9ncmVzcyBmYXN0ZXIgYnkgdGFraW5nIGFjY291bnQgb2YgbGVu Lgo+Pgo+PiBBcyB3ZWxsLCBhbHNvIGFkZGVkIHRvIHNraXAgIiUlIi4KPj4KPj4KPj4+PiArwqDC oMKgIH0KPj4+PiArCj4+Pj4gwqDCoMKgwqDCoCBhdl9icHJpbnRfc3RyZnRpbWUoYnAsIGZtdCwg JnRtKTsKPj4+PiDCoMKgwqDCoMKgIHJldHVybiAwOwo+Pj4+IMKgIH0KPj4+PiAtLcKgCj4+Cj4+ IHY4IGF0dGFjaGVkLgo+IAo+IEZpeGVkIG9mZi1ieS1vbmUgYnVnLgo+IEFsbG93cyBmb3Igc2V2 ZXJhbCBvY2N1cnJlbmNlcyBvZiAlTiBwYXJhbWV0ZXIgbm93Lgo+IAo+IHY5IGF0dGFjaGVkLgo+ IAo+IFRoYW5rcywKPiBUaGlsbwo+IAo+IAo+ICsgICAgLy8gbWFudWFsbHkgcGFyc2UgZm9ybWF0 IGZvciAlTiAoZnJhY3Rpb25hbCBzZWNvbmRzKQo+ICsgICAgYmVnaW4gPSBmbXQ7Cj4gKyAgICB3 aGlsZSAoKGJlZ2luID0gYXZfc3RyaXN0cihiZWdpbiwgIiUiKSkpIHsKPiArICAgICAgICB0bXAg PSBiZWdpbiArIDE7CgpiZWdpbiA9IHN0cmNocihiZWdpbiwgJyUnKQoKLSBBbmRyZWFzCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBt YWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21h aWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBh Ym92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1Ympl Y3QgInVuc3Vic2NyaWJlIi4K