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 AF93346EA1 for ; Tue, 22 Aug 2023 14:24:27 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3B15D68C485; Tue, 22 Aug 2023 17:24:24 +0300 (EEST) Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 238226806D8 for ; Tue, 22 Aug 2023 17:24:18 +0300 (EEST) Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-3fee843b44cso27444415e9.1 for ; Tue, 22 Aug 2023 07:24:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kynesim-co-uk.20221208.gappssmtp.com; s=20221208; t=1692714257; x=1693319057; h=content-transfer-encoding:mime-version:user-agent:in-reply-to :references:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=zs1TpcTMKYenY1JCQfbYBpiBvNCzyC+4dlr5+IvEe8I=; b=1SdaaAjZtx43TXxo0CfSJ6htozesvbmnCtAJklfpVAWbIGZBE87FamouMK0TGG9DRt OwNBhNQy/RBnpweZFN5KiLy5AKTxERBzaH1x0+BNsB1/Hdyf8nBAjdzZOHT0HhBsEK2b CbrkvX+dgh2Cd5ULhy1IQlAE2NbpOzNQty6nZkHEdEaH9MQncpZ6rR3HrRWV/R8tLWrI 0e+Vfem8yxk7AfMrdT1L9Jgl7EIuhTE5yqNvQeFbvuhlyvO5mNNsg0ylBjuQrCFtHOkR HMyDr1n/Vg5dyJHg2PYYoUBmfMwJtZAnrTYWwyukpS78f6me46oroK2M0hSj8thPyV/L Ms/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692714257; x=1693319057; h=content-transfer-encoding:mime-version:user-agent:in-reply-to :references:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=zs1TpcTMKYenY1JCQfbYBpiBvNCzyC+4dlr5+IvEe8I=; b=TpnleRxbRsb1PJqiYcLFneJ3qNec60WG0I0h439E2NRHoHT7u+TK6cRl5buinJrMbW g3/gzsNHOAPto8OK/7Xy3CN1QZxnWhyl3l9d/qoPjFZCLuZ6Gmw5r8tVC9ZNjN5vYwSY 3R0PfPkd+HRqz6D5+zB0s7XlhQd+jBqfIpNOQOwG8zMra+eFtnRkx7P5xUTXb3kFnfBB kAw4E0Uops0UzBu2VRclZRIEXa2ZpnwROQrzP1r58GhHpSWKlsxUcevTiz6GOZM/Ku8p pW8ChHvnZXOKmh4EOzEQmH9PPEpmg3BJv+1pwO8QDpnzkGSwdppeq9s2bcwdi4k4rQrG zrrA== X-Gm-Message-State: AOJu0YznjHrP3vrkMpJkO6ggoQGAhjQRlLSQp5YrwGxxdIsfseEOS0YG DcMPsxdvI2UOZytEPn2fnt4+Ryg0YuSZeXdnJSU= X-Google-Smtp-Source: AGHT+IHTdinhs+H6WQgtJ2rZx4nSTJ+RPMEorfSD+xonwq7NGjCU8xvfEObAmfR/xnV6/PjnoK/Z+g== X-Received: by 2002:a7b:c34d:0:b0:3fd:2e89:31bd with SMTP id l13-20020a7bc34d000000b003fd2e8931bdmr7741135wmj.14.1692714256905; Tue, 22 Aug 2023 07:24:16 -0700 (PDT) Received: from CTHALPA.outer.uphall.net (cpc1-cmbg20-2-0-cust759.5-4.cable.virginm.net. [86.21.218.248]) by smtp.gmail.com with ESMTPSA id z9-20020a7bc7c9000000b003fef57e64c4sm3990894wmk.25.2023.08.22.07.24.16 for (version=TLS1 cipher=ECDHE-ECDSA-AES128-SHA bits=128/128); Tue, 22 Aug 2023 07:24:16 -0700 (PDT) From: John Cox To: FFmpeg development discussions and patches Cc: FFmpeg development discussions and patches Date: Tue, 22 Aug 2023 15:24:17 +0100 Message-ID: References: <20230820151022.2204421-1-jc@kynesim.co.uk> <20230820151022.2204421-4-jc@kynesim.co.uk> <20230820171614.GC7802@pb2> <20230820174511.GD7802@pb2> <5pl4eilterjun2l0up51r8jg1pvdluq7b2@4ax.com> <20230821191537.GE7802@pb2> In-Reply-To: <20230821191537.GE7802@pb2> User-Agent: ForteAgent/8.00.32.1272 MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH v1 3/6] swscale: Add explicit rgb24->yv12 conversion 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: T24gTW9uLCAyMSBBdWcgMjAyMyAyMToxNTozNyArMDIwMCwgeW91IHdyb3RlOgoKPk9uIFN1biwg QXVnIDIwLCAyMDIzIGF0IDA3OjI4OjQwUE0gKzAxMDAsIEpvaG4gQ294IHdyb3RlOgo+PiBPbiBT dW4sIDIwIEF1ZyAyMDIzIDE5OjQ1OjExICswMjAwLCB5b3Ugd3JvdGU6Cj4+IAo+PiA+T24gU3Vu LCBBdWcgMjAsIDIwMjMgYXQgMDc6MTY6MTRQTSArMDIwMCwgTWljaGFlbCBOaWVkZXJtYXllciB3 cm90ZToKPj4gPj4gT24gU3VuLCBBdWcgMjAsIDIwMjMgYXQgMDM6MTA6MTlQTSArMDAwMCwgSm9o biBDb3ggd3JvdGU6Cj4+ID4+ID4gQWRkIGEgcmdiMjQtPnl1djQyMHAgY29udmVyc2lvbi4gVXNl cyB0aGUgc2FtZSBjb2RlIGFzIHRoZSBleGlzdGluZwo+PiA+PiA+IGJncjI0LT55dXYgY29udmVy dGVyIGJ1dCBwZXJtdXRlcyB0aGUgY29udmVyc2lvbiBhcnJheSB0byBzd2FwIFIgJiBCCj4+ID4+ ID4gY29lZmZpY2llbnRzLgo+PiA+PiA+IAo+PiA+PiA+IFNpZ25lZC1vZmYtYnk6IEpvaG4gQ294 IDxqY0BreW5lc2ltLmNvLnVrPgo+PiA+PiA+IC0tLQo+PiA+PiA+ICBsaWJzd3NjYWxlL3JnYjJy Z2IuYyAgICAgICAgICB8ICA1ICsrKysrCj4+ID4+ID4gIGxpYnN3c2NhbGUvcmdiMnJnYi5oICAg ICAgICAgIHwgIDcgKysrKysrKwo+PiA+PiA+ICBsaWJzd3NjYWxlL3JnYjJyZ2JfdGVtcGxhdGUu YyB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4+ID4+ID4gIGxpYnN3 c2NhbGUvc3dzY2FsZV91bnNjYWxlZC5jIHwgMjQgKysrKysrKysrKysrKysrKysrKysrLQo+PiA+ PiA+ICA0IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4+ ID4+ID4gCj4+ID4+ID4gZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUvcmdiMnJnYi5jIGIvbGlic3dz Y2FsZS9yZ2IycmdiLmMKPj4gPj4gPiBpbmRleCA4NzA3OTE3ODAwLi5kZTkwZTUxOTNmIDEwMDY0 NAo+PiA+PiA+IC0tLSBhL2xpYnN3c2NhbGUvcmdiMnJnYi5jCj4+ID4+ID4gKysrIGIvbGlic3dz Y2FsZS9yZ2IycmdiLmMKPj4gPj4gPiBAQCAtODMsNiArODMsMTEgQEAgdm9pZCAoKmZmX2JncjI0 dG95djEyKShjb25zdCB1aW50OF90ICpzcmMsIHVpbnQ4X3QgKnlkc3QsCj4+ID4+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAo+PiA+PiA+ICAgICAgICAg ICAgICAgICAgICAgICAgIGludCBsdW1TdHJpZGUsIGludCBjaHJvbVN0cmlkZSwgaW50IHNyY1N0 cmlkZSwKPj4gPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICpyZ2IyeXV2KTsK Pj4gPj4gPiArdm9pZCAoKmZmX3JnYjI0dG95djEyKShjb25zdCB1aW50OF90ICpzcmMsIHVpbnQ4 X3QgKnlkc3QsCj4+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqdWRzdCwg dWludDhfdCAqdmRzdCwKPj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgs IGludCBoZWlnaHQsCj4+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGx1bVN0cmlk ZSwgaW50IGNocm9tU3RyaWRlLCBpbnQgc3JjU3RyaWRlLAo+PiA+PiA+ICsgICAgICAgICAgICAg ICAgICAgICAgIGludDMyX3QgKnJnYjJ5dXYpOwo+PiA+PiA+ICB2b2lkICgqcGxhbmFyMngpKGNv bnN0IHVpbnQ4X3QgKnNyYywgdWludDhfdCAqZHN0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCj4+ ID4+ID4gICAgICAgICAgICAgICAgICAgaW50IHNyY1N0cmlkZSwgaW50IGRzdFN0cmlkZSk7Cj4+ ID4+ID4gIHZvaWQgKCppbnRlcmxlYXZlQnl0ZXMpKGNvbnN0IHVpbnQ4X3QgKnNyYzEsIGNvbnN0 IHVpbnQ4X3QgKnNyYzIsIHVpbnQ4X3QgKmRzdCwKPj4gPj4gPiBkaWZmIC0tZ2l0IGEvbGlic3dz Y2FsZS9yZ2IycmdiLmggYi9saWJzd3NjYWxlL3JnYjJyZ2IuaAo+PiA+PiA+IGluZGV4IDMwNWI4 MzA5MjAuLmY3YTc2YTkyYmEgMTAwNjQ0Cj4+ID4+ID4gLS0tIGEvbGlic3dzY2FsZS9yZ2Iycmdi LmgKPj4gPj4gPiArKysgYi9saWJzd3NjYWxlL3JnYjJyZ2IuaAo+PiA+PiA+IEBAIC03OSw2ICs3 OSw5IEBAIHZvaWQgICAgcmdiMTJ0bzE1KGNvbnN0IHVpbnQ4X3QgKnNyYywgdWludDhfdCAqZHN0 LCBpbnQgc3JjX3NpemUpOwo+PiA+PiA+ICB2b2lkIGZmX2JncjI0dG95djEyX2MoY29uc3QgdWlu dDhfdCAqc3JjLCB1aW50OF90ICp5ZHN0LCB1aW50OF90ICp1ZHN0LAo+PiA+PiA+ICAgICAgICAg ICAgICAgICAgICAgICAgdWludDhfdCAqdmRzdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQg bHVtU3RyaWRlLAo+PiA+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNocm9tU3RyaWRl LCBpbnQgc3JjU3RyaWRlLCBpbnQzMl90ICpyZ2IyeXV2KTsKPj4gPj4gPiArdm9pZCBmZl9yZ2Iy NHRveXYxMl9jKGNvbnN0IHVpbnQ4X3QgKnNyYywgdWludDhfdCAqeWRzdCwgdWludDhfdCAqdWRz dCwKPj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKnZkc3QsIGludCB3aWR0 aCwgaW50IGhlaWdodCwgaW50IGx1bVN0cmlkZSwKPj4gPj4gPiArICAgICAgICAgICAgICAgICAg ICAgIGludCBjaHJvbVN0cmlkZSwgaW50IHNyY1N0cmlkZSwgaW50MzJfdCAqcmdiMnl1dik7Cj4+ ID4+ID4gIAo+PiA+PiA+ICAvKioKPj4gPj4gPiAgICogSGVpZ2h0IHNob3VsZCBiZSBhIG11bHRp cGxlIG9mIDIgYW5kIHdpZHRoIHNob3VsZCBiZSBhIG11bHRpcGxlIG9mIDE2Lgo+PiA+PiA+IEBA IC0xMjgsNiArMTMxLDEwIEBAIGV4dGVybiB2b2lkICgqZmZfYmdyMjR0b3l2MTIpKGNvbnN0IHVp bnQ4X3QgKnNyYywgdWludDhfdCAqeWRzdCwgdWludDhfdCAqdWRzdCwKPj4gPj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAo+PiA+PiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbHVtU3RyaWRlLCBpbnQgY2hyb21TdHJp ZGUsIGludCBzcmNTdHJpZGUsCj4+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludDMyX3QgKnJnYjJ5dXYpOwo+PiA+PiA+ICtleHRlcm4gdm9pZCAoKmZmX3JnYjI0dG95djEy KShjb25zdCB1aW50OF90ICpzcmMsIHVpbnQ4X3QgKnlkc3QsIHVpbnQ4X3QgKnVkc3QsIHVpbnQ4 X3QgKnZkc3QsCj4+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0 aCwgaW50IGhlaWdodCwKPj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IGx1bVN0cmlkZSwgaW50IGNocm9tU3RyaWRlLCBpbnQgc3JjU3RyaWRlLAo+PiA+PiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICpyZ2IyeXV2KTsKPj4gPj4gPiAgZXh0 ZXJuIHZvaWQgKCpwbGFuYXIyeCkoY29uc3QgdWludDhfdCAqc3JjLCB1aW50OF90ICpkc3QsIGlu dCB3aWR0aCwgaW50IGhlaWdodCwKPj4gPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IHNyY1N0cmlkZSwgaW50IGRzdFN0cmlkZSk7Cj4+ID4+ID4gIAo+PiA+PiA+IGRpZmYgLS1naXQg YS9saWJzd3NjYWxlL3JnYjJyZ2JfdGVtcGxhdGUuYyBiL2xpYnN3c2NhbGUvcmdiMnJnYl90ZW1w bGF0ZS5jCj4+ID4+ID4gaW5kZXggOGVmNGEyY2Y1ZC4uZTU3YmZhNjU0NSAxMDA2NDQKPj4gPj4g PiAtLS0gYS9saWJzd3NjYWxlL3JnYjJyZ2JfdGVtcGxhdGUuYwo+PiA+PiA+ICsrKyBiL2xpYnN3 c2NhbGUvcmdiMnJnYl90ZW1wbGF0ZS5jCj4+ID4+IAo+PiA+PiAKPj4gPj4gPiBAQCAtNjQ2LDEz ICs2NDYsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIHV5dnl0b3l2MTJfYyhjb25zdCB1aW50OF90 ICpzcmMsIHVpbnQ4X3QgKnlkc3QsCj4+ID4+ID4gICAqIG90aGVycyBhcmUgaWdub3JlZCBpbiB0 aGUgQyB2ZXJzaW9uLgo+PiA+PiA+ICAgKiBGSVhNRTogV3JpdGUgSFEgdmVyc2lvbi4KPj4gPj4g PiAgICovCj4+ID4+ID4gLXZvaWQgZmZfYmdyMjR0b3l2MTJfYyhjb25zdCB1aW50OF90ICpzcmMs IHVpbnQ4X3QgKnlkc3QsIHVpbnQ4X3QgKnVkc3QsCj4+ID4+ID4gK3N0YXRpYyB2b2lkIHJnYjI0 dG95djEyX3goY29uc3QgdWludDhfdCAqc3JjLCB1aW50OF90ICp5ZHN0LCB1aW50OF90ICp1ZHN0 LAo+PiA+PiAKPj4gPj4gdGhpcyBwcm9iYWJseSBzaG91bGQgYmUgaW5saW5lCj4+ID4+IAo+PiA+ PiBhbHNvIGkgc2VlIG5vdyAiRklYTUU6IFdyaXRlIEhRIHZlcnNpb24uIiBhYm92ZSBoZXJlLiBE byB5b3UgcmVhbGx5IHdhbnQgdG8KPj4gPj4gYWRkIGEgbG93IHF1YWxpdHkgcmdiMjR0b3l2MTIg Pwo+PiA+PiAoaXQgaXMgdmlzc2libGUgb24gdGhlIGRpYWdvbmFsIGJvcmRlciAoY3lhbiAvIHJl ZCApKSBpbgo+PiA+PiAgLi9mZm1wZWcgLWYgbGF2ZmkgLWkgdGVzdHNyYz1zaXplPTU2MzJ4MzE2 OCAtcGl4X2ZtdCB5dXY0MjBwIC12ZnJhbWVzIDEgLXFzY2FsZSAxIC1zdHJpY3QgLTEgbmV3Lmpw Zwo+PiA+PiAKPj4gPj4gIGFsc28gb24gc21hbGxlciBzaXplcyBidXQgZm9yIHNvbWUgcmVhc29u IGl0cyBjbGVhcmVyIG9uIHRoZSBiaWcgb25lIHpvb21lZCBpbiA0MDAlIHdpdGggZ2ltcAo+PiA+ PiAodGhlIGdpbXAgdGVzdCB3YXMgZG9uZSB3aXRoIHRoZSB3aG9sZSBwYXRjaHNldCBub3QgYWZ0 ZXIgdGhpcyBwYXRjaCkKPj4gPgo+PiA+QWxzbyB0aGUgcmVhc29uIHdoeSBpdHMgTFEgYW5kIGxv b2tzIGxpa2UgaXQgZG9lcyBpcyBiZWNhdXNlCj4+ID4xLiBoYWxmIHRoZSBSR0Igc2FtcGxlcyBh cmUgaWdub3JlZCBpbiBjb21wdXRpbmcgdGhlIGNocm9tYSBzYW1wbGVzCj4+IAo+PiBJIHRob3Vn aHQgaXQgd2FzIGEgYml0IGxpZ2h0IGJ1dCBpdCBpcyB3aGF0IHRoZSBleGlzdGluZyBjb2RlIGRp ZAo+PiAKPj4gPjIuIHRoZSBjaHJvbWEgc2FtcGxlIGxvY2F0aW9ucyBhcmUgaWdub3JlZCwgdGhl IGxvY2F0aW9ucyBmb3IgeXV2NDIwIGFyZSByZWFvbmFibGUgc3RhbmRhcmQKPj4gCj4+IEFzIEkg cmVjYWxsIE1QRUctMSBoYXMgY2hyb21hIGF0ICgwLjUsIDAuNSksIE1QRUctSUkgZGVmYXVsdHMg dG8gKDAuNSwKPj4gMCksCj4KPnllcwo+Cj4KPj4gSC4yNjUgZGVmYXVsdHMgdG8gKDAsMCkuCj4K PmhtbQo+ICAgIFdoZW4gdGhlIHZhbHVlIG9mIGNocm9tYV9mb3JtYXRfaWRjIGlzIGVxdWFsIHRv IDEsIHRoZSBub21pbmFsIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIHJlbGF0aXZlIGxvY2F0aW9u cyBvZiBsdW1hIGFuZAo+ICAgIGNocm9tYSBzYW1wbGVzIGluIHBpY3R1cmVzIGFyZSBzaG93biBp biBGaWd1cmUgNi0xLiBBbHRlcm5hdGl2ZSBjaHJvbWEgc2FtcGxlIHJlbGF0aXZlIGxvY2F0aW9u cyBtYXkgYmUgaW5kaWNhdGVkIGluCj4gICAgdmlkZW8gdXNhYmlsaXR5IGluZm9ybWF0aW9uIChz ZWUgQW5uZXggRSkuCj4KPiAgICBYICBYICBYICBYICBYICBYCj4gICAgTyAgICAgTyAgICAgTyAg ICAuLi4KPiAgICBYICBYICBYICBYICBYICBYCj4KPiAgICBYICBYICBYICBYICBYICBYCj4gICAg TyAgICAgTyAgICAgTwo+ICAgIFggIFggIFggIFggIFggIFgKPgo+ICAgIFggIFggIFggIFggIFgg IFgKPiAgICBPICAgICBPICAgICBPCj4gICAgWCAgWCAgWCAgWCAgWCAgWAo+ICAgIC4gICAgICAg ICAgICAgICAgLgo+ICAgIDogICAgICAgICAgICAgICAgIMK0Lgo+ICAgIFggTG9jYXRpb24gb2Yg bHVtYSBzYW1wbGUKPiAgICBPIExvY2F0aW9uIG9mIGNocm9tYSBzYW1wbGUKPgo+ICAgIEZpZ3Vy ZSA2LTEg4oCTIE5vbWluYWwgdmVydGljYWwgYW5kIGhvcml6b250YWwgbG9jYXRpb25zIG9mIDQ6 MjowIGx1bWEgYW5kIGNocm9tYSBzYW1wbGVzIGluIGEgcGljdHVyZQoKWW91IGFyZSByaWdodCAt IEkgd2FzIHJlbWVtYmVyaW5nIHRoZSBzcGVjaWFsIGNhc2UgZm9yIEJUMjAyMCAoIldoZW4KY2hy b21hX2Zvcm1hdF9pZGMgaXMgZXF1YWwgdG8gMSAoNDoyOjAgY2hyb21hIGZvcm1hdCkgYW5kIHRo ZSBkZWNvZGVkCnZpZGVvIGNvbnRlbnQgaXMgaW50ZW5kZWQgZm9yIGludGVycHJldGF0aW9uIGFj Y29yZGluZyB0byBSZWMuIElUVS1SCkJULjIwMjAtMiBvciBSZWMuIElUVS1SIEJULjIxMDAtMiwg Y2hyb21hX2xvY19pbmZvX3ByZXNlbnRfZmxhZyBzaG91bGQKYmUgZXF1YWwgdG8gMSwgYW5kIGNo cm9tYV9zYW1wbGVfbG9jX3R5cGVfdG9wX2ZpZWxkIGFuZApjaHJvbWFfc2FtcGxlX2xvY190eXBl X2JvdHRvbV9maWVsZCBzaG91bGQgYm90aCBiZSBlcXVhbCB0byAyIikKCj4+IFByaW50aW5nIG91 dCBkc3RfaF9jaHJfcG9zLCBkc3Rfdl9jaHJfcG9zCj4+IGluIHRoZSBzZXR1cCBvZiB5b3VyIGV4 YW1wbGUgeWllbGRzIC01MTMsIDEyOCB3aGljaCBJJ20gZ3Vlc3NpbmcgbWVhbnMKPj4gKHVuc2V0 LCAwLjUpIC0gYW0gSSBsb29raW5nIGF0IHRoZSBjb3JyZWN0IHZhcnM/Cj4+IAo+PiA+dGhpcyBu ZWVkcyBzb21lIHNpbXBsZSBmaWx0ZXIgdG8gZ2V0IGZyb20gYSBmZXcgUkdCIHNhbXBsZXMgdG8g dGhlIFJHQiBzYW1wbGUgY28tbG9jYXRlZAo+PiA+d2l0aCB0aHMgVVYgc2FtcGxlIGJlZm9yZSBS R0ItPlVWCj4+IAo+Cj4+IEkgY2FuIGdldCB0byBzaW1wbGUgYmlsaW5lYXIgd2l0aG91dCBhZGRp bmcgc28gbXVjaCBjb21wbGV4aXR5IHRoYXQgSQo+PiBsb3NlIHRoZSBzcGVlZCBJIG5lZWQgLSB3 b3VsZCB0aGF0IGJlIE9LPwo+Cj5Ob3Qgc3VyZSBzaW1wbGUgYmlsaW5lYXIgaXMgMTAwJSBjbGVh cmx5IGRlZmluZWQKPkkgdGhpbmsgaXQgY291bGQgbWVhbiAzIHRoaW5ncwo+Cj4xIDIgMQo+ICBD Cj4xIDIgMQo+Cj5vcgo+Cj4gIDEKPiAgQwo+ICAxCj4KPiAgb3IKPgo+MSAyIDEKPgo+MyA2IDMK PiAgQwo+MyA2IDMKPgo+MSAyIDEKPgo+SSB0aGluayB0aGUgNiBhbmQgMTIgdGFwIGNhc2VzIHdv dWxkIHByb2R1Y2Ugb2sgcmVzdWx0cyB0ZWggMiB0YXAgbm90Cj5BbHNvIG1heWJlIHRoZXJlIGFy ZSBtb3JlIGZpbmV0dW5lZCBmaWx0ZXJzIGZvciB0aGlzIHNwZWNpZmljIGNhc2UsIGkgZG9udAo+ a25vdyAvIGRpZG50IGxvb2suCj5UZXN0aW5nIHRoZXNlIHByb2JhYmx5IHdvdWxkIG5vdCBiZSBh IGJhZCBpZGVhIGJlZm9yZSBpbXBsZW1lbnRhdGlvbgo+Cj5JIHRoaW5rIHVzZXJzIGluIDIwMjMg ZXhwZWN0IHRoZSBkZWZhdWx0IHRvIGJlIGJldHRlciB0aGFuIHdoYXQgdGhlCj5leGlzdGluZyBj b2RlIHdhcyBkb2luZyBieSBkZWZhdWx0Cj5zbyBmZWVsIGZyZWUgdG8gcmVwbGFjZSB0aGUgZXhp c3RpbmcgImlkZW50aWNhbCIgY29kZSB0b28KCkkgd2FzIHRoaW5raW5nIG9mIDItdGFwIChpbiBi b3RoIFggJiBZKSB3aGljaCBpcyBlcXVpdmFsZW50IHRvClNXU19GQVNUX0JJTElORUFSIGluIGZm bXBlZy4gSW4gdGhlIGNhc2UgSSdtIGxvb2tpbmcgYXQgSSBuZWVkIHRoZSBzcGVlZAptb3JlIHRo YW4gSSBuZWVkIHRoZSBxdWFsaXR5IGFuZCBJJ20gcXVpdGUgaGFwcHkgdG8gZ2F0ZSB0aGVtIGJl aGluZCBhCnRlc3QgZm9yIFNXU19GQVNUX0JJTElORUFSLgoKQXMgYW4gYXNpZGUsIHdpdGggU1dT X0ZBU1RfQklMSU5FQVIgKGFuZCBwcm9iYWJseSB0aGUgb3RoZXIgbWV0aG9kcykgaW4KZmZtcGVn IHlvdSBuZWVkIGZsYWdzPW91dF92X2Nocl9wb3M9MDpvdXRfaF9jaHJfcG9zPTEyOCB0byBsYW5k IHRoZSBZVVYKY2hyb21hIHNhbXBsZSBvbiB0aGUgdG9wLWxlZnQgUkdCIHNhbXBsZSAtIHRoYXQg Y29uZnVzZWQgbWUgZm9yIGEgd2hpbGUKd2hpbHN0IEkgd2FzIHRyeWluZyB0byB3b3JrIG91dCB3 aGF0IGZmbXBlZyBhY3R1YWxseSBkb2VzIQoKUmVnYXJkcwoKSkMKCj5bLi4uXQo+Cj50aHgKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVs IG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcv bWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5r IGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLgo=