From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 2E47F4BCD7 for <ffmpegdev@gitmailbox.com>; Fri, 4 Apr 2025 01:18:41 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4CC3D687DBE; Fri, 4 Apr 2025 04:18:39 +0300 (EEST) Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A17F687D4F for <ffmpeg-devel@ffmpeg.org>; Fri, 4 Apr 2025 04:18:32 +0300 (EEST) Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2260c915749so11409585ad.3 for <ffmpeg-devel@ffmpeg.org>; Thu, 03 Apr 2025 18:18:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743729509; x=1744334309; darn=ffmpeg.org; h=message-id:in-reply-to:to:references:date:subject:mime-version:from :from:to:cc:subject:date:message-id:reply-to; bh=nQH10WvGVS/pgyhR3OzMmwSMyxn/f0SU4IQyrbufVMM=; b=dlz8SMmQRo7VEsZefLmYWs65J9fTSdi7psdzmq9Crj+PNsavSnNJwuwAq4qqH0IA9K QJVDsKGIlzjuWHpCpaAMqTm0Qv4V9ssn4ClYgG41nq2kV3zw8jVb9cUFjFQPVcIClARn IvsfL5KY8DwFVcpNq62np29JB1xXdIjAibdE380WAcROETdjtmaibfNr4h4+3za486Gl K06Dr5wNBYDtjMByxdte5GTpnSQSE3HjjKqUkvkf2s3LsPR9Lz3A7I6evGWbRnzkWaNA GkAbCV283l6l/jrbb15QrvGHgNk3G5O0t6DFa2yyxie6VMiOBAudr3SXritRNNCa0aiW dNnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743729509; x=1744334309; h=message-id:in-reply-to:to:references:date:subject:mime-version:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nQH10WvGVS/pgyhR3OzMmwSMyxn/f0SU4IQyrbufVMM=; b=ZCykpLH7bxNc3Gke+kMcZEUrS0KGPC3J5tzYgH/PhsN2V54355+JQSLYg431YJLXcJ wP5CdwL91xnxA/ciYk+iUMpqxKRyzfqjVzLekdBtseiKBogGIqJg68xHMoP5FTjMFZW6 0fyI1S6sQZ+Pi16yAmv7oKZpvHiWalNsMoUPxGxnoLYi95Q28IIR579/fY6q19yUn4HI EnGBclFUFhA0oeaegfIUuiEhJnOqRghYht0hJSYdJrFHHJvCkLQPddPrEB/Z3DYbjOTu JnuF6Ao3E1OQl4RSv5OhOZwt8i1gRceASjiq5Q24cdTPuCbabgyk3pFEiMnYGAjwuERR 4hsQ== X-Gm-Message-State: AOJu0Yz88N4YNqGAYReWtlureGi1i6lfL/UDAU5E45POR3mg+EU+tqVM 3NRJxABXeZL/5//NiPvuCMOL+il2tp7BTyqg7ndPY13bvBg8nAHFLo1JfvbDzkg= X-Gm-Gg: ASbGnctyFupQeifdhBIkmh0rxvnd7RA5KurjrsvATZrGyX96zdMlatPI2pMEIiB4qLl ehk3/bmiPERm2tZdYPBzozImbhc1ccGIWrNzXwAnRCPJEzukwGk5tLivorfmF7GoW4C5lbkfsGP Oe/KEyCyVQFBNSNGE13fe+qzT7kvf8+WeOHvNXQl0HlLnEIlytXcBVF/itBmmG6d1iHxrfc3Yjn et8lSO1gn8ilghZgb6j0SjvSS92o0aeb30kclNrBceKU0yJ19Te7P48SR/7NgmVhqACK4sLlPml SGqq47DkP5cWxuIvPCwdm+np+3fdoyFdg7fJ13TugPC2PVUg5iAao3Jb0Pz3SyMmQg== X-Google-Smtp-Source: AGHT+IFK1GFFf9X5me4Jl5WsCeqY3Q0P+++gszEY6QoPzXKIppjwiUYstaS6o7Dzk9JMTMdV0e1Zqw== X-Received: by 2002:a17:903:1b2d:b0:216:7926:8d69 with SMTP id d9443c01a7336-22a8a8dd69emr12784285ad.47.1743729509047; Thu, 03 Apr 2025 18:18:29 -0700 (PDT) Received: from smtpclient.apple ([2a00:79e1:abc:12d:cd00:47c0:6be8:c827]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2297866e633sm21151105ad.195.2025.04.03.18.18.28 for <ffmpeg-devel@ffmpeg.org> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Apr 2025 18:18:28 -0700 (PDT) From: Peter Xia <aattyy@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.500.181.1.5\)) Date: Thu, 3 Apr 2025 18:18:17 -0700 References: <20250401102902.89332-1-aattyy@gmail.com> <13759e52-d981-48e4-801e-eb5d55315e66@gmail.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> In-Reply-To: <13759e52-d981-48e4-801e-eb5d55315e66@gmail.com> Message-Id: <E0E4D77E-D7D0-4AAD-AEB1-55EA047D4D6D@gmail.com> X-Mailer: Apple Mail (2.3826.500.181.1.5) X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] avcodec/libwebpdec: Add libwebp WebP decoder. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/E0E4D77E-D7D0-4AAD-AEB1-55EA047D4D6D@gmail.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> SGkgTGVvbiwgCgpUaGFua3MgZm9yIHRoZSBmZWVkYmFjayEgSeKAmXZlIHNlbmQgYSB2MiBvZiB0 aGlzIHBhdGNoLgoKUGV0ZXIKCj4gT24gQXByIDMsIDIwMjUsIGF0IDEyOjEx4oCvQU0sIExlb24g R3J1dHRlcnMgPGdydXR0ZXJzbGVvbmJvdDJAZ21haWwuY29tPiB3cm90ZToKPiAKPiBPbiA0LzEv MjUgMTI6MjkgUE0sIFBldGVyIFhpYSB3cm90ZToKPj4gQWRkcyBzdXBwb3J0IG9mIGRlY29kaW5n IGFuaW1hdGVkIHdlYnAuCj4+IAo+PiBTaWduZWQtb2ZmLWJ5OiBQZXRlciBYaWEgPGFhdHR5eUBn bWFpbC5jb20+Cj4+IC0tLQo+PiAgQ2hhbmdlbG9nICAgICAgICAgICAgICAgICB8ICAgMSArCj4+ ICBjb25maWd1cmUgICAgICAgICAgICAgICAgIHwgICA0ICstCj4+ICBkb2MvZ2VuZXJhbF9jb250 ZW50cy50ZXhpIHwgICAyICstCj4+ICBsaWJhdmNvZGVjL01ha2VmaWxlICAgICAgIHwgICAxICsK Pj4gIGxpYmF2Y29kZWMvYWxsY29kZWNzLmMgICAgfCAgIDMgKy0KPj4gIGxpYmF2Y29kZWMvbGli d2VicGRlYy5jICAgfCAyMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK Pj4gIGxpYmF2Y29kZWMvdmVyc2lvbi5oICAgICAgfCAgIDIgKy0KPj4gIDcgZmlsZXMgY2hhbmdl ZCwgMjA5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgbGliYXZjb2RlYy9saWJ3ZWJwZGVjLmMKPj4gCj4+IGRpZmYgLS1naXQgYS9DaGFuZ2Vsb2cg Yi9DaGFuZ2Vsb2cKPj4gaW5kZXggYTAzYTc5ZDE3YS4uNDYzNWUxNmMwNSAxMDA2NDQKPj4gLS0t IGEvQ2hhbmdlbG9nCj4+ICsrKyBiL0NoYW5nZWxvZwo+PiBAQCAtMTIsNiArMTIsNyBAQCB2ZXJz aW9uIDxuZXh0PjoKPj4gIC0gQW5pbWF0ZWQgSlBFRyBYTCBlbmNvZGluZyAodmlhIGxpYmp4bCkK Pj4gIC0gVlZDIGluIE1hdHJvc2thCj4+ICAtIENFTkMgQVYxIHN1cHBvcnQgaW4gTVA0IG11eGVy Cj4+ICstIEFuaW1hdGVkIFdlYlAgZGVjb2RpbmcKPj4gICAgdmVyc2lvbiA3LjE6Cj4+ICAtIFJh dyBDYXB0aW9ucyB3aXRoIFRpbWUgKFJDV1QpIGNsb3NlZCBjYXB0aW9uIGRlbXV4ZXIKPj4gZGlm ZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQo+PiBpbmRleCA0NTU5OTYyYTRhLi4yOGE1 MzI2NDFiIDEwMDc1NQo+PiAtLS0gYS9jb25maWd1cmUKPj4gKysrIGIvY29uZmlndXJlCj4+IEBA IC0zNjExLDYgKzM2MTEsNyBAQCBsaWJ2cHhfdnA5X2VuY29kZXJfZGVwcz0ibGlidnB4Igo+PiAg bGlidnZlbmNfZW5jb2Rlcl9kZXBzPSJsaWJ2dmVuYyIKPj4gIGxpYndlYnBfZW5jb2Rlcl9kZXBz PSJsaWJ3ZWJwIgo+PiAgbGlid2VicF9hbmltX2VuY29kZXJfZGVwcz0ibGlid2VicCIKPj4gK2xp YndlYnBfZGVjb2Rlcl9kZXBzPSJsaWJ3ZWJwIgo+PiAgbGlieDI2Ml9lbmNvZGVyX2RlcHM9Imxp YngyNjIiCj4+ICBsaWJ4MjY0X2VuY29kZXJfZGVwcz0ibGlieDI2NCIKPj4gIGxpYngyNjRfZW5j b2Rlcl9zZWxlY3Q9ImF0c2NfYTUzIGdvbG9tYiIKPj4gQEAgLTcwODEsNyArNzA4Miw4IEBAIGVu YWJsZWQgbGlidnB4ICAgICAgICAgICAgJiYgewo+PiAgZW5hYmxlZCBsaWJ2dmVuYyAgICAgICAg ICAmJiByZXF1aXJlX3BrZ19jb25maWcgbGlidnZlbmMgImxpYnZ2ZW5jID49IDEuNi4xIiAidnZl bmMvdnZlbmMuaCIgdnZlbmNfZ2V0X3ZlcnNpb24KPj4gIGVuYWJsZWQgbGlid2VicCAgICAgICAg ICAgJiYgewo+PiAgICAgIGVuYWJsZWQgbGlid2VicF9lbmNvZGVyICAgICAgJiYgcmVxdWlyZV9w a2dfY29uZmlnIGxpYndlYnAgImxpYndlYnAgPj0gMC4yLjAiIHdlYnAvZW5jb2RlLmggV2ViUEdl dEVuY29kZXJWZXJzaW9uCj4+IC0gICAgZW5hYmxlZCBsaWJ3ZWJwX2FuaW1fZW5jb2RlciAmJiBj aGVja19wa2dfY29uZmlnIGxpYndlYnBfYW5pbV9lbmNvZGVyICJsaWJ3ZWJwbXV4ID49IDAuNC4w IiB3ZWJwL211eC5oIFdlYlBBbmltRW5jb2Rlck9wdGlvbnNJbml0OyB9Cj4+ICsgICAgZW5hYmxl ZCBsaWJ3ZWJwX2FuaW1fZW5jb2RlciAmJiBjaGVja19wa2dfY29uZmlnIGxpYndlYnBfYW5pbV9l bmNvZGVyICJsaWJ3ZWJwbXV4ID49IDAuNC4wIiB3ZWJwL211eC5oIFdlYlBBbmltRW5jb2Rlck9w dGlvbnNJbml0Cj4+ICsgICAgZW5hYmxlZCBsaWJ3ZWJwX2RlY29kZXIgICAgICAmJiBjaGVja19w a2dfY29uZmlnIGxpYndlYnBfZGVjb2RlciAibGlid2VicGRlbXV4ID49IDEuNS4wIiB3ZWJwL2Rl bXV4LmggV2ViUEFuaW1EZWNvZGVyT3B0aW9uc0luaXRJbnRlcm5hbDsgfQo+PiAgZW5hYmxlZCBs aWJ4MjY0ICAgICAgICAgICAmJiByZXF1aXJlX3BrZ19jb25maWcgbGlieDI2NCB4MjY0ICJzdGRp bnQuaCB4MjY0LmgiIHgyNjRfZW5jb2Rlcl9lbmNvZGUgJiYKPj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVxdWlyZV9jcHBfY29uZGl0aW9uIGxpYngyNjQgeDI2NC5oICJYMjY0X0JV SUxEID49IDE1NSIgJiYgewo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbICIkdG9v bGNoYWluIiAhPSAibXN2YyIgXSB8fAo+PiBkaWZmIC0tZ2l0IGEvZG9jL2dlbmVyYWxfY29udGVu dHMudGV4aSBiL2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRleGkKPj4gaW5kZXggNWZhZjg5ODE1Yi4u NGYxMGMzZTM0YSAxMDA2NDQKPj4gLS0tIGEvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aQo+PiAr KysgYi9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCj4+IEBAIC04NTcsNyArODU3LDcgQEAgZm9s bG93aW5nIGltYWdlIGZvcm1hdHMgYXJlIHN1cHBvcnRlZDoKPj4gIEBpdGVtIFdCTVAgICAgICAg ICBAdGFiIFggQHRhYiBYCj4+ICAgICAgQHRhYiBXaXJlbGVzcyBBcHBsaWNhdGlvbiBQcm90b2Nv bCBCaXRtYXAgaW1hZ2UgZm9ybWF0Cj4+ICBAaXRlbSBXZWJQICAgICAgICAgQHRhYiBFIEB0YWIg WAo+PiAtICAgIEB0YWIgV2ViUCBpbWFnZSBmb3JtYXQsIGVuY29kaW5nIHN1cHBvcnRlZCB0aHJv dWdoIGV4dGVybmFsIGxpYnJhcnkgbGlid2VicAo+PiArICAgIEB0YWIgV2ViUCBpbWFnZSBmb3Jt YXQsIHN1cHBvcnRlZCB0aHJvdWdoIGV4dGVybmFsIGxpYnJhcnkgbGlid2VicAo+PiAgQGl0ZW0g WEJNICBAdGFiIFggQHRhYiBYCj4+ICAgICAgQHRhYiBYIEJpdE1hcCBpbWFnZSBmb3JtYXQKPj4g IEBpdGVtIFhGYWNlIEB0YWIgWCBAdGFiIFgKPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvTWFr ZWZpbGUgYi9saWJhdmNvZGVjL01ha2VmaWxlCj4+IGluZGV4IGIyNDIwMWIxYWYuLmM5NjM3YTIx MTQgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMvTWFrZWZpbGUKPj4gKysrIGIvbGliYXZjb2Rl Yy9NYWtlZmlsZQo+PiBAQCAtMTE3OSw2ICsxMTc5LDcgQEAgT0JKUy0kKENPTkZJR19MSUJWUFhf VlA5X0VOQ09ERVIpICAgICAgICAgKz0gbGlidnB4ZW5jLm8KPj4gIE9CSlMtJChDT05GSUdfTElC VlZFTkNfRU5DT0RFUikgICAgICAgICAgICs9IGxpYnZ2ZW5jLm8KPj4gIE9CSlMtJChDT05GSUdf TElCV0VCUF9FTkNPREVSKSAgICAgICAgICAgICs9IGxpYndlYnBlbmNfY29tbW9uLm8gbGlid2Vi cGVuYy5vCj4+ICBPQkpTLSQoQ09ORklHX0xJQldFQlBfQU5JTV9FTkNPREVSKSAgICAgICArPSBs aWJ3ZWJwZW5jX2NvbW1vbi5vIGxpYndlYnBlbmNfYW5pbWVuY29kZXIubwo+PiArT0JKUy0kKENP TkZJR19MSUJXRUJQX0RFQ09ERVIpICAgICAgICAgICAgKz0gbGlid2VicGRlYy5vCj4+ICBPQkpT LSQoQ09ORklHX0xJQlgyNjJfRU5DT0RFUikgICAgICAgICAgICArPSBsaWJ4MjY0Lm8KPj4gIE9C SlMtJChDT05GSUdfTElCWDI2NF9FTkNPREVSKSAgICAgICAgICAgICs9IGxpYngyNjQubwo+PiAg T0JKUy0kKENPTkZJR19MSUJYMjY1X0VOQ09ERVIpICAgICAgICAgICAgKz0gbGlieDI2NS5vCj4+ IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jIGIvbGliYXZjb2RlYy9hbGxjb2Rl Y3MuYwo+PiBpbmRleCBmMTA1MTk2MTdlLi41ZjhmNjgyMTExIDEwMDY0NAo+PiAtLS0gYS9saWJh dmNvZGVjL2FsbGNvZGVjcy5jCj4+ICsrKyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKPj4gQEAg LTgxMCw4ICs4MTAsOSBAQCBleHRlcm4gRkZDb2RlYyBmZl9saWJ2cHhfdnA5X2VuY29kZXI7Cj4+ ICBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9saWJ2cHhfdnA5X2RlY29kZXI7Cj4+ICBleHRlcm4g Y29uc3QgRkZDb2RlYyBmZl9saWJ2dmVuY19lbmNvZGVyOwo+PiAgLyogcHJlZmVycmVkIG92ZXIg bGlid2VicCAqLwo+PiAtZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfbGlid2VicF9hbmltX2VuY29k ZXI7Cj4+ICBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9saWJ3ZWJwX2VuY29kZXI7Cj4+ICtleHRl cm4gY29uc3QgRkZDb2RlYyBmZl9saWJ3ZWJwX2FuaW1fZW5jb2RlcjsKPj4gK2V4dGVybiBjb25z dCBGRkNvZGVjIGZmX2xpYndlYnBfZGVjb2RlcjsKPj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZm X2xpYngyNjJfZW5jb2RlcjsKPj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYngyNjRfZW5j b2RlcjsKPj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYngyNjRyZ2JfZW5jb2RlcjsKPj4g ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbGlid2VicGRlYy5jIGIvbGliYXZjb2RlYy9saWJ3ZWJw ZGVjLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMC4uOWVjM2I2 MDcwOQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2xpYmF2Y29kZWMvbGlid2VicGRlYy5jCj4+ IEBAIC0wLDAgKzEsMjAwIEBACj4+ICsvKgo+PiArICogTGliV2ViUCBkZWNvZGVyCj4+ICsgKiBD b3B5cmlnaHQgKGMpIDIwMjUgUGV0ZXIgWGlhCj4+ICsgKgo+PiArICogVGhpcyBmaWxlIGlzIHBh cnQgb2YgRkZtcGVnLgo+PiArICoKPj4gKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPj4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4gKyAqIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+PiArICogdmVy c2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCj4+ICsgKgo+PiArICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+PiArICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPj4gKyAq IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4+ICsgKgo+ PiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYwo+PiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3 cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+PiArICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQo+PiAr ICovCj4+ICsKPj4gKy8qKgo+PiArICogQGZpbGUKPj4gKyAqIExpYldlYlAgZGVjb2Rlcgo+PiAr ICovCj4+ICsKPj4gKyNpbmNsdWRlICJkZWNvZGUuaCIKPj4gKyNpbmNsdWRlICJjb2RlY19pbnRl cm5hbC5oIgo+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9hdnV0aWwuaCIKPj4gKyNpbmNsdWRlICJs aWJhdnV0aWwvb3B0LmgiCj4+ICsjaW5jbHVkZSAibGliYXZmb3JtYXQvYXZmb3JtYXQuaCIKPj4g KyNpbmNsdWRlICJsaWJhdmZvcm1hdC9hdmlvLmgiCj4+ICsKPj4gKyNpbmNsdWRlIDx3ZWJwL2Rl bXV4Lmg+Cj4+ICsjaW5jbHVkZSA8d2VicC9kZWNvZGUuaD4KPj4gKwo+PiArdHlwZWRlZiBzdHJ1 Y3QgQW5pbWF0ZWRXZWJQQ29udGV4dAo+PiArewo+PiArICAgIGNvbnN0IEFWQ2xhc3MgKmNsYXNz Owo+PiArICAgIFdlYlBBbmltRGVjb2Rlck9wdGlvbnMgZGVjX29wdGlvbnM7Cj4+ICsgICAgV2Vi UEFuaW1EZWNvZGVyICpkZWM7Cj4+ICsgICAgQVZCdWZmZXJSZWYgKmZpbGVfY29udGVudDsKPj4g KyAgICBXZWJQRGF0YSB3ZWJwX2RhdGE7IC8vIHJlZmVyZW5jZXMgfGZpbGVfY29udGVudHwKPj4g KyAgICB1aW50MzJfdCBsb29wX3RvX3NlbmQ7Cj4+ICsgICAgdWludDMyX3QgbG9vcF9zZW50Owo+ PiArCj4+ICsgICAgLy8gLS0tIE9wdGlvbnMgLS0tCj4+ICsgICAgaW50IGlnbm9yZV9sb29wOwo+ PiArfSBBbmltYXRlZFdlYlBDb250ZXh0Owo+PiArCj4+ICsvLyBJbml0aWFsaXplIHRoZSBkZWNv ZGVyIGNvbnRleHQKPj4gK3N0YXRpYyBhdl9jb2xkIGludCBkZWNvZGVfbGlid2VicF9pbml0KEFW Q29kZWNDb250ZXh0ICphdmN0eCkKPj4gK3sKPj4gKyAgICBBbmltYXRlZFdlYlBDb250ZXh0ICpz ID0gYXZjdHgtPnByaXZfZGF0YTsKPj4gKwo+PiArICAgIGlmICghV2ViUEFuaW1EZWNvZGVyT3B0 aW9uc0luaXQoJnMtPmRlY19vcHRpb25zKSkKPj4gKyAgICB7Cj4gQnJhY2VzIGZvciBpZi1zdGF0 ZW1lbnRzIHNob3VsZCBiZSBvbiB0aGUgc2FtZSBsaW5lIGFzIHRoZSBpZi1zdGF0ZW1lbnQKPj4g KyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJDYW5ub3QgaW5pdGlhbGl6ZSBX ZWJQQW5pbURlY29kZXJPcHRpb25zXG4iKTsKPj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5P TUVNKTsKPj4gKyAgICB9Cj4+ICsgICAgcy0+ZGVjX29wdGlvbnMuY29sb3JfbW9kZSA9IE1PREVf UkdCQTsKPj4gKyAgICBzLT5kZWNfb3B0aW9ucy51c2VfdGhyZWFkcyA9IDE7Cj4+ICsgICAgcy0+ ZmlsZV9jb250ZW50ID0gTlVMTDsKPj4gKyAgICBzLT5sb29wX3NlbnQgPSAwOwo+PiArCj4+ICsg ICAgYXZjdHgtPnBpeF9mbXQgPSBBVl9QSVhfRk1UX1JHQkE7Cj4+ICsgICAgYXZjdHgtPnBrdF90 aW1lYmFzZSA9IGF2X21ha2VfcSgxLCAxMDAwKTsKPj4gKyAgICBhdmN0eC0+ZnJhbWVyYXRlID0g YXZfbWFrZV9xKDEsIDApOwo+PiArCj4+ICsgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcs ICJBbmltYXRlZCBXZWJQIGRlY29kZXIgaW5pdGlhbGl6ZWQuXG4iKTsKPj4gKyAgICByZXR1cm4g MDsgLy8gU3VjY2Vzcwo+PiArfQo+PiArCj4+ICsvLyBEZWNvZGUgb25lIGZyYW1lIG9mIHRoZSBh bmltYXRlZCBXZWJQCj4+ICsvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIG11bHRpcGxl IHRpbWVzIGJ5IEZGbXBlZy4KPj4gKy8vIFRoZSBmaXJzdCBjYWxsIHJlY2VpdmVzIHRoZSBBVlBh Y2tldCB3aXRoIHRoZSBmdWxsIFdlYlAgZmlsZS4KPj4gKy8vIFN1YnNlcXVlbnQgY2FsbHMgcmVj ZWl2ZSBlbXB0eSBBVlBhY2tldCB1bnRpbCBhbGwgZnJhbWVzIGFyZSBkZWNvZGVkLgo+IFRoZXNl IGNvbW1lbnRzIHNob3VsZCBwcm9iYWJseSBiZSBpbiBKYXZhZG9jIGZvcm1hdAo+PiArc3RhdGlj IGludCBkZWNvZGVfbGlid2VicF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUg KnAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqZ290X2ZyYW1lLCBB VlBhY2tldCAqYXZwa3QpCj4+ICt7Cj4+ICsgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfSU5GTywg ImRlY29kZV9saWJ3ZWJwX2ZyYW1lKClcbiIpOwo+PiArCj4+ICsgICAgV2ViUEFuaW1JbmZvIGFu aW1faW5mbzsKPiBUaGlzIGdpdmVzIGEgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgd2Fy bmluZwo+ICh0aG91Z2ggdGhhdCB3b3VsZG4ndCBtYXR0ZXIgaWYKPiBodHRwczovL3BhdGNod29y ay5mZm1wZWcub3JnL3Byb2plY3QvZmZtcGVnL3BhdGNoL0FTOFAyNTBNQjA3NDQ2QUU4QzdDRERE MUFDNzk1REQ1NjhGQTIyQEFTOFAyNTBNQjA3NDQuRVVSUDI1MC5QUk9ELk9VVExPT0suQ09NLwo+ IGlzIG1lcmdlZCkKPj4gKyAgICB1aW50OF90ICpmcmFtZV9yZ2JhOwo+PiArICAgIGludCB0aW1l c3RhbXBfbXM7Cj4+ICsKPj4gKyAgICBBbmltYXRlZFdlYlBDb250ZXh0ICpzID0gYXZjdHgtPnBy aXZfZGF0YTsKPj4gKyAgICBpbnQgcmV0ID0gYXZwa3QtPnNpemU7Cj4+ICsKPj4gKyAgICAvLyBJ bml0aWFsaXphdGlvbiBQaGFzZSAoRmlyc3QgQ2FsbCkKPj4gKyAgICAvLyB8YXZwa3R8IGNvbnRh aW5zIHRoZSBlbnRpcmUgZmlsZS4KPj4gKyAgICBpZiAoIXMtPmRlYykKPj4gKyAgICB7Cj4+ICsg ICAgICAgIGlmICghYXZwa3QgfHwgYXZwa3QtPnNpemUgPD0gMCkKPj4gKyAgICAgICAgewo+PiAr ICAgICAgICAgICAgLy8gU2hvdWxkIG5vdCBoYXBwZW4gb24gdGhlIGZpcnN0IGNhbGwsIGJ1dCBj aGVjayBhbnl3YXkuCj4+ICsgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwg Ik5vIGlucHV0IGRhdGEgcHJvdmlkZWQgb24gZmlyc3QgY2FsbC5cbiIpOwo+PiArICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPj4gKyAgICAgICAgfQo+PiArCj4+ICsgICAgICAg IC8vIFN0b3JlIGVudGlyZSBXZWJQIGZpbGUgaW4gbWVtb3J5Lgo+PiArICAgICAgICBzLT5maWxl X2NvbnRlbnQgPSBhdl9idWZmZXJfcmVmKGF2cGt0LT5idWYpOwo+PiArICAgICAgICBzLT53ZWJw X2RhdGEuYnl0ZXMgPSBzLT5maWxlX2NvbnRlbnQtPmRhdGE7Cj4+ICsgICAgICAgIHMtPndlYnBf ZGF0YS5zaXplID0gcy0+ZmlsZV9jb250ZW50LT5zaXplOwo+PiArCj4+ICsgICAgICAgIHMtPmRl YyA9IFdlYlBBbmltRGVjb2Rlck5ldygmcy0+d2VicF9kYXRhLCAmcy0+ZGVjX29wdGlvbnMpOwo+ PiArICAgICAgICBpZiAoIXMtPmRlYykKPj4gKyAgICAgICAgewo+PiArICAgICAgICAgICAgYXZf bG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJFcnJvciBjcmVhdGluZyBXZWJQQW5pbURlY29kZXIu XG4iKTsKPj4gKyAgICAgICAgICAgIGF2X2J1ZmZlcl91bnJlZigmcy0+ZmlsZV9jb250ZW50KTsK Pj4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4+ICsgICAgICAgIH0KPj4g Kwo+PiArICAgICAgICBXZWJQQW5pbURlY29kZXJHZXRJbmZvKHMtPmRlYywgJmFuaW1faW5mbyk7 Cj4+ICsKPj4gKyAgICAgICAgcy0+bG9vcF90b19zZW5kID0gcy0+aWdub3JlX2xvb3AgPyAxIDog YW5pbV9pbmZvLmxvb3BfY291bnQ7Cj4+ICsgICAgICAgIGF2Y3R4LT53aWR0aCA9IGFuaW1faW5m by5jYW52YXNfd2lkdGg7Cj4+ICsgICAgICAgIGF2Y3R4LT5jb2RlZF93aWR0aCA9IGFuaW1faW5m by5jYW52YXNfd2lkdGg7Cj4+ICsgICAgICAgIGF2Y3R4LT5oZWlnaHQgPSBhbmltX2luZm8uY2Fu dmFzX2hlaWdodDsKPj4gKyAgICAgICAgYXZjdHgtPmNvZGVkX2hlaWdodCA9IGFuaW1faW5mby5j YW52YXNfaGVpZ2h0Owo+PiArICAgICAgICBhdmN0eC0+ZnJhbWVyYXRlID0gYXZfbWFrZV9xKDEs IDApOwo+PiArICAgIH0KPj4gKwo+PiArICAgIGlmICghV2ViUEFuaW1EZWNvZGVySGFzTW9yZUZy YW1lcyhzLT5kZWMpKQo+PiArICAgIHsKPj4gKyAgICAgICAgcy0+bG9vcF9zZW50Kys7Cj4+ICsg ICAgICAgIFdlYlBBbmltRGVjb2RlclJlc2V0KHMtPmRlYyk7Cj4+ICsgICAgfQo+PiArCj4+ICsg ICAgaWYgKHMtPmxvb3Bfc2VudCA+PSBzLT5sb29wX3RvX3NlbmQpCj4+ICsgICAgewo+PiArICAg ICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIkVuZCBvZiBhbmltYXRlZCBXZWJQIHN0 cmVhbS5cbiIpOwo+PiArICAgICAgICByZXR1cm4gQVZFUlJPUl9FT0Y7Cj4+ICsgICAgfQo+PiAr Cj4+ICsKPj4gKyAgICBpZiAoIVdlYlBBbmltRGVjb2RlckdldE5leHQocy0+ZGVjLCAmZnJhbWVf cmdiYSwgJnRpbWVzdGFtcF9tcykpCj4+ICsgICAgewo+PiArICAgICAgICBhdl9sb2coYXZjdHgs IEFWX0xPR19FUlJPUiwgIkVycm9yIGdldHRpbmcgbmV4dCBmcmFtZSBmcm9tIFdlYlBBbmltRGVj b2Rlci5cbiIpOwo+PiArICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwo+PiArICAgIH0K Pj4gKwo+PiArICAgIHJldCA9IGZmX2dldF9idWZmZXIoYXZjdHgsIHAsIDApOwo+PiArICAgIGlm IChyZXQpCj4+ICsgICAgewo+PiArICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwg IkZhaWxlZCB0byBhbGxvY2F0ZWQgYnVmZmVyLlxuIik7Cj4+ICsgICAgICAgIHJldHVybiBBVkVS Uk9SKEVOT01FTSk7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcC0+d2lkdGggPSBhdmN0eC0+d2lk dGg7Cj4+ICsgICAgcC0+aGVpZ2h0ID0gYXZjdHgtPmhlaWdodDsKPj4gKyAgICBwLT5mb3JtYXQg PSBBVl9QSVhfRk1UX1JHQkE7Cj4+ICsgICAgcC0+cHRzID0gdGltZXN0YW1wX21zOwo+PiArICAg IHAtPnBrdF9kdHMgPSAwOwo+PiArICAgIHAtPnBpY3RfdHlwZSA9IEFWX1BJQ1RVUkVfVFlQRV9J Owo+PiArCj4+ICsgICAgbWVtY3B5KHAtPmRhdGFbMF0sIGZyYW1lX3JnYmEsIHAtPndpZHRoICog cC0+aGVpZ2h0ICogNCk7Cj4+ICsKPj4gKyAgICAqZ290X2ZyYW1lID0gMTsKPj4gKyAgICByZXR1 cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgYXZfY29sZCBpbnQgZGVjb2RlX2xpYndlYnBf Y2xvc2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+PiArewo+PiArICAgIEFuaW1hdGVkV2ViUENv bnRleHQgKnMgPSBhdmN0eC0+cHJpdl9kYXRhOwo+PiArICAgIGF2X2J1ZmZlcl91bnJlZigmcy0+ ZmlsZV9jb250ZW50KTsKPj4gKyAgICBpZiAocy0+ZGVjKQo+PiArICAgIHsKPj4gKyAgICAgICAg V2ViUEFuaW1EZWNvZGVyRGVsZXRlKHMtPmRlYyk7Cj4+ICsgICAgICAgIHMtPmRlYyA9IE5VTEw7 Cj4+ICsgICAgfQo+PiArICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgY29uc3Qg QVZPcHRpb24gb3B0aW9uc1tdID0gewo+PiArICAgIHsiaWdub3JlX2xvb3AiLCAiaWdub3JlIGxv b3Agc2V0dGluZyAobmV0c2NhcGUgZXh0ZW5zaW9uKSIsIG9mZnNldG9mKEFuaW1hdGVkV2ViUENv bnRleHQsIGlnbm9yZV9sb29wKSwgQVZfT1BUX1RZUEVfQk9PTCwgey5pNjQgPSAxfSwgMCwgMSwg QVZfT1BUX0ZMQUdfREVDT0RJTkdfUEFSQU19LAo+PiArICAgIHtOVUxMfX07Cj4gVGhpcyBjbG9z aW5nIGJyYWNlIHNob3VsZCBiZSBvbiBpdHMgbGluZQo+PiArCj4+ICtzdGF0aWMgY29uc3QgQVZD bGFzcyBsaWJ3ZWJwX2RlY29kZXJfY2xhc3MgPSB7Cj4+ICsgICAgLmNsYXNzX25hbWUgPSAibGli d2VicF9kZWNvZGVyIiwKPj4gKyAgICAuaXRlbV9uYW1lID0gYXZfZGVmYXVsdF9pdGVtX25hbWUs Cj4+ICsgICAgLm9wdGlvbiA9IG9wdGlvbnMsCj4+ICsgICAgLnZlcnNpb24gPSBMSUJBVlVUSUxf VkVSU0lPTl9JTlQsCj4+ICsgICAgLmNhdGVnb3J5ID0gQVZfQ0xBU1NfQ0FURUdPUllfREVDT0RF UiwKPj4gK307Cj4+ICsKPj4gKy8vIERlZmluZSB0aGUgQVZDb2RlYyBzdHJ1Y3R1cmUgZm9yIEZG bXBlZwo+PiArY29uc3QgRkZDb2RlYyBmZl9saWJ3ZWJwX2RlY29kZXIgPSB7Cj4+ICsgICAgLnAu bmFtZSAgICAgICAgID0gImxpYndlYnAiLAo+PiArICAgIENPREVDX0xPTkdfTkFNRSgibGlid2Vi cCBpbWFnZS9hbmltYXRpb24gZGVjb2RlciIpLAo+PiArICAgIC5wLnR5cGUgICAgICAgICA9IEFW TUVESUFfVFlQRV9WSURFTywKPj4gKyAgICAucC5pZCAgICAgICAgICAgPSBBVl9DT0RFQ19JRF9X RUJQLAo+PiArICAgIC5wLnByaXZfY2xhc3MgICA9ICZsaWJ3ZWJwX2RlY29kZXJfY2xhc3MsCj4+ ICsgICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKEFuaW1hdGVkV2ViUENvbnRleHQpLAo+PiAr ICAgIC5wLndyYXBwZXJfbmFtZSA9ICJsaWJ3ZWJwIiwKPj4gKyAgICAuaW5pdCAgICAgICAgICAg PSBkZWNvZGVfbGlid2VicF9pbml0LAo+PiArICAgIEZGX0NPREVDX0RFQ09ERV9DQihkZWNvZGVf bGlid2VicF9mcmFtZSksCj4+ICsgICAgLmNsb3NlICAgICAgICAgID0gZGVjb2RlX2xpYndlYnBf Y2xvc2UsCj4+ICsgICAgLnAuY2FwYWJpbGl0aWVzID0gQVZfQ09ERUNfQ0FQX0RSMSB8IEFWX0NP REVDX0NBUF9ERUxBWSwKPj4gK307Cj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZlcnNpb24u aCBiL2xpYmF2Y29kZWMvdmVyc2lvbi5oCj4+IGluZGV4IDhjM2Q0NzYwMDMuLjU5NTcwMDk0NTcg MTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMvdmVyc2lvbi5oCj4+ICsrKyBiL2xpYmF2Y29kZWMv dmVyc2lvbi5oCj4gVGhpcyBwYXRjaCBkb2Vzbid0IGFwcGx5IGFueW1vcmUgYmVjYXVzZSBvZiBh IG1lcmdlIGNvbmZsaWN0Cj4gaW4gdGhpcyBmaWxlIHNpbmNlIDgzOWI0MTkKPiAob2YgY291cnNl IHRoYXQncyBub3QgeW91ciBmYXVsdCwgYnV0IGp1c3QgYSBoZWFkcyB1cCEpCj4+IEBAIC0yOSw3 ICsyOSw3IEBACj4+ICAgICNpbmNsdWRlICJ2ZXJzaW9uX21ham9yLmgiCj4+ICAtI2RlZmluZSBM SUJBVkNPREVDX1ZFUlNJT05fTUlOT1IgICAwCj4+ICsjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lP Tl9NSU5PUiAgIDEKPj4gICNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX01JQ1JPIDEwMAo+PiAg ICAjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgIEFWX1ZFUlNJT05fSU5UKExJQkFWQ09E RUNfVkVSU0lPTl9NQUpPUiwgXAo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1k ZXZlbEBmZm1wZWcub3JnIDxtYWlsdG86ZmZtcGVnLWRldmVsQGZmbXBlZy5vcmc+Cj4gaHR0cHM6 Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4gCj4gVG8gdW5zdWJz Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RA ZmZtcGVnLm9yZyA8bWFpbHRvOmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmc+IHdpdGgg c3ViamVjdCAidW5zdWJzY3JpYmUiLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZt cGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwK ClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwt cmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=