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 3916F46ECA for ; Thu, 20 Jun 2024 14:59:29 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 85A7568D855; Thu, 20 Jun 2024 17:59:26 +0300 (EEST) Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C3D568D5AB for ; Thu, 20 Jun 2024 17:59:20 +0300 (EEST) Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-2c7bf925764so871012a91.0 for ; Thu, 20 Jun 2024 07:59:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718895558; x=1719500358; darn=ffmpeg.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=deRUmsz9dVNmVgceVP6OrnZPDBEciogkScm5neyvqxc=; b=PAflKq9hcAuC/+oWQixuVT8xAQOL9Kl29FAamZwjczbPkzkyZM+jY/thOJxgizZTMv uYAQyd6ZnnvlqAROAEjFP96r77s2Vu7Pfcw9gSGaroNBPubgf/eV0Yj+gemfOftw0gJI x2u7PUtRfteIjr+4HNpdplCpUNG/KxYllqV96lh/XN497n+A9Z4mSTLxrxElTO+0obhD 7YgSkoaj9A1MkncLqq5loCzh9Kv/wXCM51izfNd8VeIJFPD5T6fn3LmPlUkDFCNLWKVL IgqhAJiAQZJc/lRTdOHSr+4rHhUR5DQlKkpzjbYqoDx97l9JLRkn/KuIgVSt/4r3W9ty VzFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718895558; x=1719500358; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=deRUmsz9dVNmVgceVP6OrnZPDBEciogkScm5neyvqxc=; b=khZ/2RGCSJU8aTSGdzku532ypckZpNrQRAxtohSR8LhH8VzDSEEFh3GL0wcFLUhZ4e v6/aaVjgE0P2PX0IqlZkqIqbEG169qMlEMWoHxwUK6oY/5a+br58knCcAR+lFBkdUblv FpN3qF2gvKhDq6eCy5XLfdl1qsAHt5QlwchjDNb49tavb15iOtyy1ZMNm1+jYa7R0UDg +jOy95gskJJHXDX/MPkGndjLEf7ur8/lJ/c0noub2blIQXO741V+sjMe8nAGNG5kPdB9 4lxzutWl5PZDStBVqyVxjX8Xs07RuryUfhdW6MSe6H93gauWUcj/IRm2+UgRQwpJwBAn NJGQ== X-Gm-Message-State: AOJu0YwNV/aEpsqcZmFGTS2+U3Sv+E+gywAAl8qk7jOvSYW0gSgwXO0+ 7ISvqcolGHqdRchukrFxy6VHI3Zp+7GfJoGzYULw4F5B/PCjLgGl5sYH4tqa/ExqYCnz8BGnHhh QeAZqIni7cDsKcgjngiHQwWMS78Xbq5LF X-Google-Smtp-Source: AGHT+IExVPFe1RSLZn5V13pLW7ZtJ5/ZA4SyibUuNlY/TRxkoqowM/lhtXYFSvCPa81LTbkew9KmY4d+01lZQ12uFx4= X-Received: by 2002:a17:90b:110e:b0:2c4:aab1:1803 with SMTP id 98e67ed59e1d1-2c7b5d5b206mr5677787a91.33.1718895557932; Thu, 20 Jun 2024 07:59:17 -0700 (PDT) MIME-Version: 1.0 References: <20240616222849.420361-1-ramiro.polla@gmail.com> <20240616222849.420361-5-ramiro.polla@gmail.com> In-Reply-To: <20240616222849.420361-5-ramiro.polla@gmail.com> From: Ramiro Polla Date: Thu, 20 Jun 2024 16:59:07 +0200 Message-ID: To: ffmpeg-devel@ffmpeg.org Subject: Re: [FFmpeg-devel] [PATCH 5/6] checkasm: add tests for yuv2rgb 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: T24gTW9uLCBKdW4gMTcsIDIwMjQgYXQgMTI6MjjigK9BTSBSYW1pcm8gUG9sbGEgPHJhbWlyby5w b2xsYUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gLS0tCj4gIHRlc3RzL2NoZWNrYXNtL01ha2VmaWxl ICAgICB8ICAgMiArLQo+ICB0ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jICAgfCAgIDEgKwo+ICB0 ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oICAgfCAgIDEgKwo+ICB0ZXN0cy9jaGVja2FzbS9zd195 dXYycmdiLmMgfCAyMDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIHRl c3RzL2ZhdGUvY2hlY2thc20ubWFrICAgICB8ICAgMSArCj4gIDUgZmlsZXMgY2hhbmdlZCwgMjA5 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3Rz L2NoZWNrYXNtL3N3X3l1djJyZ2IuYwo+Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL01h a2VmaWxlIGIvdGVzdHMvY2hlY2thc20vTWFrZWZpbGUKPiBpbmRleCBmMjA3MzJiMzdhLi4zYTc2 NzBlMjRiIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2NoZWNrYXNtL01ha2VmaWxlCj4gKysrIGIvdGVz dHMvY2hlY2thc20vTWFrZWZpbGUKPiBAQCAtNjMsNyArNjMsNyBAQCBBVkZJTFRFUk9CSlMtJChD T05GSUdfU09CRUxfRklMVEVSKSAgICAgICs9IHZmX2NvbnZvbHV0aW9uLm8KPiAgQ0hFQ0tBU01P QkpTLSQoQ09ORklHX0FWRklMVEVSKSArPSAkKEFWRklMVEVST0JKUy15ZXMpCj4KPiAgIyBzd3Nj YWxlIHRlc3RzCj4gLVNXU0NBTEVPQkpTICAgICAgICAgICAgICAgICAgICAgICAgICAgICArPSBz d19nYnJwLm8gc3dfcmFuZ2VfY29udmVydC5vIHN3X3JnYi5vIHN3X3NjYWxlLm8KPiArU1dTQ0FM RU9CSlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICs9IHN3X2dicnAubyBzd19yYW5nZV9j b252ZXJ0Lm8gc3dfcmdiLm8gc3dfc2NhbGUubyBzd195dXYycmdiLm8KPgo+ICBDSEVDS0FTTU9C SlMtJChDT05GSUdfU1dTQ0FMRSkgICs9ICQoU1dTQ0FMRU9CSlMpCj4KPiBkaWZmIC0tZ2l0IGEv dGVzdHMvY2hlY2thc20vY2hlY2thc20uYyBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKPiBp bmRleCA1NjIzMmFiMWUwLi5kOWFjNzcyYTA4IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2NoZWNrYXNt L2NoZWNrYXNtLmMKPiArKysgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCj4gQEAgLTI1NCw2 ICsyNTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKPiAgICAgIHsgInN3X3JhbmdlX2NvbnZl cnQiLCBjaGVja2FzbV9jaGVja19zd19yYW5nZV9jb252ZXJ0IH0sCj4gICAgICB7ICJzd19yZ2Ii LCBjaGVja2FzbV9jaGVja19zd19yZ2IgfSwKPiAgICAgIHsgInN3X3NjYWxlIiwgY2hlY2thc21f Y2hlY2tfc3dfc2NhbGUgfSwKPiArICAgIHsgInN3X3l1djJyZ2IiLCBjaGVja2FzbV9jaGVja19z d195dXYycmdiIH0sCj4gICNlbmRpZgo+ICAjaWYgQ09ORklHX0FWVVRJTAo+ICAgICAgICAgIHsg ImZpeGVkX2RzcCIsIGNoZWNrYXNtX2NoZWNrX2ZpeGVkX2RzcCB9LAo+IGRpZmYgLS1naXQgYS90 ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaAo+IGlu ZGV4IGU1NDQwMDdiNjcuLjRkNWYzZTM4N2UgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvY2hlY2thc20v Y2hlY2thc20uaAo+ICsrKyBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmgKPiBAQCAtMTIyLDYg KzEyMiw3IEBAIHZvaWQgY2hlY2thc21fY2hlY2tfc3dfZ2JycCh2b2lkKTsKPiAgdm9pZCBjaGVj a2FzbV9jaGVja19zd19yYW5nZV9jb252ZXJ0KHZvaWQpOwo+ICB2b2lkIGNoZWNrYXNtX2NoZWNr X3N3X3JnYih2b2lkKTsKPiAgdm9pZCBjaGVja2FzbV9jaGVja19zd19zY2FsZSh2b2lkKTsKPiAr dm9pZCBjaGVja2FzbV9jaGVja19zd195dXYycmdiKHZvaWQpOwo+ICB2b2lkIGNoZWNrYXNtX2No ZWNrX3Rha2RzcCh2b2lkKTsKPiAgdm9pZCBjaGVja2FzbV9jaGVja191dHZpZGVvZHNwKHZvaWQp Owo+ICB2b2lkIGNoZWNrYXNtX2NoZWNrX3YyMTBkZWModm9pZCk7Cj4gZGlmZiAtLWdpdCBhL3Rl c3RzL2NoZWNrYXNtL3N3X3l1djJyZ2IuYyBiL3Rlc3RzL2NoZWNrYXNtL3N3X3l1djJyZ2IuYwo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMC4uZmJlMDFhNzc4OAo+IC0t LSAvZGV2L251bGwKPiArKysgYi90ZXN0cy9jaGVja2FzbS9zd195dXYycmdiLmMKPiBAQCAtMCww ICsxLDIwNSBAQAo+ICsvKgo+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4gKyAq Cj4gKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4gKyAqIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+ICsgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCj4gKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCj4gKyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCj4gKyAqIHdpdGggRkZtcGVnOyBpZiBub3Qs IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCj4gKyAqIDUxIEZy YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCj4g KyAqLwo+ICsKPiArI2luY2x1ZGUgPHN0cmluZy5oPgo+ICsKPiArI2luY2x1ZGUgImxpYmF2dXRp bC9jb21tb24uaCIKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3JpdGUuaCIKPiArI2lu Y2x1ZGUgImxpYmF2dXRpbC9tZW1faW50ZXJuYWwuaCIKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9w aXhkZXNjLmgiCj4gKwo+ICsjaW5jbHVkZSAibGlic3dzY2FsZS9zd3NjYWxlLmgiCj4gKyNpbmNs dWRlICJsaWJzd3NjYWxlL3N3c2NhbGVfaW50ZXJuYWwuaCIKPiArCj4gKyNpbmNsdWRlICJjaGVj a2FzbS5oIgo+ICsKPiArI2RlZmluZSByYW5kb21pemVfYnVmZmVycyhidWYsIHNpemUpICAgICAg XAo+ICsgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAg ICAgZm9yIChpbnQgaiA9IDA7IGogPCBzaXplOyBqICs9IDQpIFwKPiArICAgICAgICAgICAgQVZf V04zMihidWYgKyBqLCBybmQoKSk7ICAgICAgXAo+ICsgICAgfSB3aGlsZSAoMCkKPiArCj4gK3N0 YXRpYyBjb25zdCBpbnQgZHN0X2ZtdHNbXSA9IHsKPiArLy8gICAgIEFWX1BJWF9GTVRfQkdSNDhC RSwKPiArLy8gICAgIEFWX1BJWF9GTVRfQkdSNDhMRSwKPiArLy8gICAgIEFWX1BJWF9GTVRfUkdC NDhCRSwKPiArLy8gICAgIEFWX1BJWF9GTVRfUkdCNDhMRSwKPiArICAgIEFWX1BJWF9GTVRfQVJH QiwKPiArICAgIEFWX1BJWF9GTVRfQUJHUiwKPiArICAgIEFWX1BJWF9GTVRfUkdCQSwKPiArICAg IEFWX1BJWF9GTVRfQkdSQSwKPiArICAgIEFWX1BJWF9GTVRfUkdCMjQsCj4gKyAgICBBVl9QSVhf Rk1UX0JHUjI0LAo+ICsgICAgQVZfUElYX0ZNVF9SR0I1NjUsCj4gKyAgICBBVl9QSVhfRk1UX0JH UjU2NSwKPiArICAgIEFWX1BJWF9GTVRfUkdCNTU1LAo+ICsgICAgQVZfUElYX0ZNVF9CR1I1NTUs Cj4gKy8vICAgICBBVl9QSVhfRk1UX1JHQjQ0NCwKPiArLy8gICAgIEFWX1BJWF9GTVRfQkdSNDQ0 LAo+ICsvLyAgICAgQVZfUElYX0ZNVF9SR0I4LAo+ICsvLyAgICAgQVZfUElYX0ZNVF9CR1I4LAo+ ICsvLyAgICAgQVZfUElYX0ZNVF9SR0I0LAo+ICsvLyAgICAgQVZfUElYX0ZNVF9CR1I0LAo+ICsv LyAgICAgQVZfUElYX0ZNVF9SR0I0X0JZVEUsCj4gKy8vICAgICBBVl9QSVhfRk1UX0JHUjRfQllU RSwKPiArLy8gICAgIEFWX1BJWF9GTVRfTU9OT0JMQUNLLAo+ICt9Owo+ICsKPiArc3RhdGljIGlu dCBjbXBfb2ZmX2J5X24oY29uc3QgdWludDhfdCAqcmVmLCBjb25zdCB1aW50OF90ICp0ZXN0LCBz aXplX3QgbiwgaW50IGFjY3VyYWN5KQo+ICt7Cj4gKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8 IG47IGkrKykgewo+ICsgICAgICAgIGlmIChhYnMocmVmW2ldIC0gdGVzdFtpXSkgPiBhY2N1cmFj eSkKPiArICAgICAgICAgICAgcmV0dXJuIDE7Cj4gKyAgICB9Cj4gKyAgICByZXR1cm4gMDsKPiAr fQo+ICsKPiArc3RhdGljIGludCBjbXBfNTU1X2J5X24oY29uc3QgdWludDhfdCAqcmVmLCBjb25z dCB1aW50OF90ICp0ZXN0LCBzaXplX3QgbiwgaW50IGFjY3VyYWN5KQo+ICt7Cj4gKyAgICBjb25z dCB1aW50MTZfdCAqcmVmMTYgID0gKGNvbnN0IHVpbnQxNl90ICopIHJlZjsKPiArICAgIGNvbnN0 IHVpbnQxNl90ICp0ZXN0MTYgPSAoY29uc3QgdWludDE2X3QgKikgdGVzdDsKPiArICAgIGZvciAo c2l6ZV90IGkgPSAwOyBpIDwgbjsgaSsrKSB7Cj4gKyAgICAgICAgaWYgKGFicygoIHJlZjE2W2ld ICAgICAgICAmIDB4MWYpIC0gKCB0ZXN0MTZbaV0gICAgICAgICYgMHgxZikpID4gYWNjdXJhY3kp Cj4gKyAgICAgICAgICAgIHJldHVybiAxOwo+ICsgICAgICAgIGlmIChhYnMoKChyZWYxNltpXSA+ PiAgNSkgJiAweDFmKSAtICgodGVzdDE2W2ldID4+ICA1KSAmIDB4MWYpKSA+IGFjY3VyYWN5KQo+ ICsgICAgICAgICAgICByZXR1cm4gMTsKPiArICAgICAgICBpZiAoYWJzKCgocmVmMTZbaV0gPj4g MTApICYgMHgxZikgLSAoKHRlc3QxNltpXSA+PiAxMCkgJiAweDFmKSkgPiBhY2N1cmFjeSkKPiAr ICAgICAgICAgICAgcmV0dXJuIDE7Cj4gKyAgICB9Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsK PiArc3RhdGljIGludCBjbXBfNTY1X2J5X24oY29uc3QgdWludDhfdCAqcmVmLCBjb25zdCB1aW50 OF90ICp0ZXN0LCBzaXplX3QgbiwgaW50IGFjY3VyYWN5KQo+ICt7Cj4gKyAgICBjb25zdCB1aW50 MTZfdCAqcmVmMTYgID0gKGNvbnN0IHVpbnQxNl90ICopIHJlZjsKPiArICAgIGNvbnN0IHVpbnQx Nl90ICp0ZXN0MTYgPSAoY29uc3QgdWludDE2X3QgKikgdGVzdDsKPiArICAgIGZvciAoc2l6ZV90 IGkgPSAwOyBpIDwgbjsgaSsrKSB7Cj4gKyAgICAgICAgaWYgKGFicygoIHJlZjE2W2ldICAgICAg ICAmIDB4MWYpIC0gKCB0ZXN0MTZbaV0gICAgICAgICYgMHgxZikpID4gYWNjdXJhY3kpCj4gKyAg ICAgICAgICAgIHJldHVybiAxOwo+ICsgICAgICAgIGlmIChhYnMoKChyZWYxNltpXSA+PiAgNSkg JiAweDNmKSAtICgodGVzdDE2W2ldID4+ICA1KSAmIDB4M2YpKSA+IGFjY3VyYWN5KQo+ICsgICAg ICAgICAgICByZXR1cm4gMTsKPiArICAgICAgICBpZiAoYWJzKCgocmVmMTZbaV0gPj4gMTEpICYg MHgxZikgLSAoKHRlc3QxNltpXSA+PiAxMSkgJiAweDFmKSkgPiBhY2N1cmFjeSkKPiArICAgICAg ICAgICAgcmV0dXJuIDE7Cj4gKyAgICB9Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgY2hlY2tfeXV2MnJnYihpbnQgc3JjX3BpeF9mbXQpCj4gK3sKPiArICAgIGNvbnN0 IEFWUGl4Rm10RGVzY3JpcHRvciAqc3JjX2Rlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KHNyY19w aXhfZm10KTsKPiArI2RlZmluZSBNQVhfTElORV9TSVpFIDE5MjAKPiArICAgIHN0YXRpYyBjb25z dCBpbnQgaW5wdXRfc2l6ZXNbXSA9IHs4LCAxMjgsIDEwODAsIE1BWF9MSU5FX1NJWkV9Owo+ICsK PiArICAgIGRlY2xhcmVfZnVuY19lbW1zKEFWX0NQVV9GTEFHX01NWCB8IEFWX0NQVV9GTEFHX01N WEVYVCwKPiArICAgICAgICAgICAgICAgICAgICAgIGludCwgU3dzQ29udGV4dCAqYywgY29uc3Qg dWludDhfdCAqc3JjW10sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNTdHJp ZGVbXSwgaW50IHNyY1NsaWNlWSwgaW50IHNyY1NsaWNlSCwKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDhfdCAqZHN0W10sIGludCBkc3RTdHJpZGVbXSk7Cj4gKwo+ICsgICAgTE9D QUxfQUxJR05FRF84KHVpbnQ4X3QsIHNyY195LCBbTUFYX0xJTkVfU0laRSAqIDJdKTsKPiArICAg IExPQ0FMX0FMSUdORURfOCh1aW50OF90LCBzcmNfdSwgW01BWF9MSU5FX1NJWkVdKTsKPiArICAg IExPQ0FMX0FMSUdORURfOCh1aW50OF90LCBzcmNfdiwgW01BWF9MSU5FX1NJWkVdKTsKPiArICAg IExPQ0FMX0FMSUdORURfOCh1aW50OF90LCBzcmNfYSwgW01BWF9MSU5FX1NJWkUgKiAyXSk7Cj4g KyAgICBjb25zdCB1aW50OF90ICpzcmNbNF0gPSB7IHNyY195LCBzcmNfdSwgc3JjX3YsIHNyY19h IH07Cj4gKwo+ICsgICAgTE9DQUxfQUxJR05FRF84KHVpbnQ4X3QsIGRzdDBfLCBbMiAqIE1BWF9M SU5FX1NJWkUgKiA2XSk7Cj4gKyAgICB1aW50OF90ICpkc3QwWzRdID0geyBkc3QwXyB9Owo+ICsg ICAgdWludDhfdCAqbGluZXMwWzJdID0geyBkc3QwXywgZHN0MF8gKyBNQVhfTElORV9TSVpFICog NiB9Owo+ICsKPiArICAgIExPQ0FMX0FMSUdORURfOCh1aW50OF90LCBkc3QxXywgWzIgKiBNQVhf TElORV9TSVpFICogNl0pOwo+ICsgICAgdWludDhfdCAqZHN0MVs0XSA9IHsgZHN0MV8gfTsKPiAr ICAgIHVpbnQ4X3QgKmxpbmVzMVsyXSA9IHsgZHN0MV8sIGRzdDFfICsgTUFYX0xJTkVfU0laRSAq IDYgfTsKPiArCj4gKyAgICByYW5kb21pemVfYnVmZmVycyhzcmNfeSwgTUFYX0xJTkVfU0laRSAq IDIpOwo+ICsgICAgcmFuZG9taXplX2J1ZmZlcnMoc3JjX3UsIE1BWF9MSU5FX1NJWkUpOwo+ICsg ICAgcmFuZG9taXplX2J1ZmZlcnMoc3JjX3YsIE1BWF9MSU5FX1NJWkUpOwo+ICsgICAgcmFuZG9t aXplX2J1ZmZlcnMoc3JjX2EsIE1BWF9MSU5FX1NJWkUgKiAyKTsKPiArCj4gKyAgICBmb3IgKGlu dCBkZmkgPSAwOyBkZmkgPCBGRl9BUlJBWV9FTEVNUyhkc3RfZm10cyk7IGRmaSsrKSB7Cj4gKyAg ICAgICAgaW50IGRzdF9waXhfZm10ID0gZHN0X2ZtdHNbZGZpXTsKPiArICAgICAgICBjb25zdCBB VlBpeEZtdERlc2NyaXB0b3IgKmRzdF9kZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChkc3RfcGl4 X2ZtdCk7Cj4gKyAgICAgICAgaW50IHNhbXBsZV9zaXplID0gYXZfZ2V0X3BhZGRlZF9iaXRzX3Bl cl9waXhlbChkc3RfZGVzYykgPj4gMzsKPiArICAgICAgICBmb3IgKGludCBpc2kgPSAwOyBpc2kg PCBGRl9BUlJBWV9FTEVNUyhpbnB1dF9zaXplcyk7IGlzaSsrKSB7Cj4gKyAgICAgICAgICAgIHN0 cnVjdCBTd3NDb250ZXh0ICpjdHg7Cj4gKyAgICAgICAgICAgIGludCB3aWR0aCA9IGlucHV0X3Np emVzW2lzaV07Cj4gKyAgICAgICAgICAgIGludCBzcmNTbGljZVkgPSAwOwo+ICsgICAgICAgICAg ICBpbnQgc3JjU2xpY2VIID0gMjsKPiArICAgICAgICAgICAgaW50IHNyY1N0cmlkZVs0XSA9IHsK PiArICAgICAgICAgICAgICAgIHdpZHRoLAo+ICsgICAgICAgICAgICAgICAgd2lkdGggPj4gc3Jj X2Rlc2MtPmxvZzJfY2hyb21hX3csCj4gKyAgICAgICAgICAgICAgICB3aWR0aCA+PiBzcmNfZGVz Yy0+bG9nMl9jaHJvbWFfdywKPiArICAgICAgICAgICAgICAgIHdpZHRoLAo+ICsgICAgICAgICAg ICB9Owo+ICsgICAgICAgICAgICBpbnQgZHN0U3RyaWRlWzRdID0geyBNQVhfTElORV9TSVpFICog NiB9Owo+ICsKPiArICAgICAgICAgICAgY3R4ID0gc3dzX2dldENvbnRleHQod2lkdGgsIHNyY1Ns aWNlSCwgc3JjX3BpeF9mbXQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp ZHRoLCBzcmNTbGljZUgsIGRzdF9waXhfZm10LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKCmNoZWNrYXNtIGdldHMgYSBsaXR0bGUgc3Bh bW15IHdpdGggdGhpcyBjb21taXQgYnkgcHJpbnRpbmcgIk5vCmFjY2VsZXJhdGVkIGNvbG9yc3Bh Y2UgY29udmVyc2lvbiBmb3VuZCBmcm9tICVzIHRvICVzLlxuIiBmcm9tCmxpYnN3c2NhbGUveXV2 MnJnYi5jIG11bHRpcGxlIHRpbWVzLiBBbnkgc3VnZ2VzdGlvbnM/IFBlcmhhcHMKZG93bmdyYWRp bmcgdGhhdCBtZXNzYWdlIHRvIEFWX0xPR19WRVJCT1NFLCBvciByYWlzaW5nIGxvZ2xldmVsIGFy b3VuZAp0aGUgY2FsbCB0byBzd3NfZ2V0Q29udGV4dCgpPwoKPiArICAgICAgICAgICAgaWYgKCFj dHgpCj4gKyAgICAgICAgICAgICAgICBmYWlsKCk7Cj4gKwo+ICsgICAgICAgICAgICBpZiAoY2hl Y2tfZnVuYyhjdHgtPmNvbnZlcnRfdW5zY2FsZWQsICIlc18lc18lZCIsIHNyY19kZXNjLT5uYW1l LCBkc3RfZGVzYy0+bmFtZSwgd2lkdGgpKSB7Cj4gKyAgICAgICAgICAgICAgICBtZW1zZXQoZHN0 MF8sIDB4RkYsIDIgKiBNQVhfTElORV9TSVpFICogNik7Cj4gKyAgICAgICAgICAgICAgICBtZW1z ZXQoZHN0MV8sIDB4RkYsIDIgKiBNQVhfTElORV9TSVpFICogNik7Cj4gKwo+ICsgICAgICAgICAg ICAgICAgY2FsbF9yZWYoY3R4LCBzcmMsIHNyY1N0cmlkZSwgc3JjU2xpY2VZLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgc3JjU2xpY2VILCBkc3QwLCBkc3RTdHJpZGUpOwo+ICsgICAgICAg ICAgICAgICAgY2FsbF9uZXcoY3R4LCBzcmMsIHNyY1N0cmlkZSwgc3JjU2xpY2VZLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgc3JjU2xpY2VILCBkc3QxLCBkc3RTdHJpZGUpOwo+ICsKPiAr ICAgICAgICAgICAgICAgIGlmIChkc3RfcGl4X2ZtdCA9PSBBVl9QSVhfRk1UX0FSR0IgIHx8Cj4g KyAgICAgICAgICAgICAgICAgICAgZHN0X3BpeF9mbXQgPT0gQVZfUElYX0ZNVF9BQkdSICB8fAo+ ICsgICAgICAgICAgICAgICAgICAgIGRzdF9waXhfZm10ID09IEFWX1BJWF9GTVRfUkdCQSAgfHwK PiArICAgICAgICAgICAgICAgICAgICBkc3RfcGl4X2ZtdCA9PSBBVl9QSVhfRk1UX0JHUkEgIHx8 Cj4gKyAgICAgICAgICAgICAgICAgICAgZHN0X3BpeF9mbXQgPT0gQVZfUElYX0ZNVF9SR0IyNCB8 fAo+ICsgICAgICAgICAgICAgICAgICAgIGRzdF9waXhfZm10ID09IEFWX1BJWF9GTVRfQkdSMjQp IHsKPiArICAgICAgICAgICAgICAgICAgICBpZiAoY21wX29mZl9ieV9uKGxpbmVzMFswXSwgbGlu ZXMxWzBdLCB3aWR0aCAqIHNhbXBsZV9zaXplLCAzKSB8fAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBjbXBfb2ZmX2J5X24obGluZXMwWzFdLCBsaW5lczFbMV0sIHdpZHRoICogc2FtcGxlX3Np emUsIDMpKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCk7Cj4gKyAgICAgICAgICAg ICAgICB9IGVsc2UgaWYgKGRzdF9waXhfZm10ID09IEFWX1BJWF9GTVRfUkdCNTY1IHx8Cj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9waXhfZm10ID09IEFWX1BJWF9GTVRfQkdSNTY1 KSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgaWYgKGNtcF81NjVfYnlfbihsaW5lczBbMF0sIGxp bmVzMVswXSwgd2lkdGgsIDIpIHx8Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNtcF81NjVf YnlfbihsaW5lczBbMV0sIGxpbmVzMVsxXSwgd2lkdGgsIDIpKQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBmYWlsKCk7Cj4gKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRzdF9waXhfZm10 ID09IEFWX1BJWF9GTVRfUkdCNTU1IHx8Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRz dF9waXhfZm10ID09IEFWX1BJWF9GTVRfQkdSNTU1KSB7Cj4gKyAgICAgICAgICAgICAgICAgICAg aWYgKGNtcF81NTVfYnlfbihsaW5lczBbMF0sIGxpbmVzMVswXSwgd2lkdGgsIDIpIHx8Cj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGNtcF81NTVfYnlfbihsaW5lczBbMV0sIGxpbmVzMVsxXSwg d2lkdGgsIDIpKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCk7Cj4gKyAgICAgICAg ICAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICAgICAgICAgIGZhaWwoKTsKPiArICAgICAg ICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgICAgICBiZW5jaF9uZXcoY3R4LCBzcmMsIHNy Y1N0cmlkZSwgc3JjU2xpY2VZLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1NsaWNl SCwgZHN0MCwgZHN0U3RyaWRlKTsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICBzd3Nf ZnJlZUNvbnRleHQoY3R4KTsKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gK30KPiArCj4gKyN1bmRl ZiBNQVhfTElORV9TSVpFCj4gKwo+ICt2b2lkIGNoZWNrYXNtX2NoZWNrX3N3X3l1djJyZ2Iodm9p ZCkKPiArewo+ICsgICAgY2hlY2tfeXV2MnJnYihBVl9QSVhfRk1UX1lVVjQyMFApOwo+ICsgICAg cmVwb3J0KCJ5dXY0MjBwIik7Cj4gKyAgICBjaGVja195dXYycmdiKEFWX1BJWF9GTVRfWVVWNDIy UCk7Cj4gKyAgICByZXBvcnQoInl1djQyMnAiKTsKPiArICAgIGNoZWNrX3l1djJyZ2IoQVZfUElY X0ZNVF9ZVVZBNDIwUCk7Cj4gKyAgICByZXBvcnQoInl1dmE0MjBwIik7Cj4gK30KPiBkaWZmIC0t Z2l0IGEvdGVzdHMvZmF0ZS9jaGVja2FzbS5tYWsgYi90ZXN0cy9mYXRlL2NoZWNrYXNtLm1hawo+ IGluZGV4IDBlZDJlYTViZTYuLjQ5ODMyYjA5YmYgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZmF0ZS9j aGVja2FzbS5tYWsKPiArKysgYi90ZXN0cy9mYXRlL2NoZWNrYXNtLm1hawo+IEBAIC00NCw2ICs0 NCw3IEBAIEZBVEVfQ0hFQ0tBU00gPSBmYXRlLWNoZWNrYXNtLWFhY2VuY2RzcCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgICAgICAgICAgICAgIGZhdGUtY2hlY2thc20t c3dfcmFuZ2VfY29udmVydCAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAgICAg ICAgICAgZmF0ZS1jaGVja2FzbS1zd19yZ2IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gICAgICAgICAgICAgICAgICBmYXRlLWNoZWNrYXNtLXN3X3NjYWxlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAgICAgIGZhdGUtY2hlY2th c20tc3dfeXV2MnJnYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAg ICAgICAgICAgZmF0ZS1jaGVja2FzbS10YWtkc3AgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCj4gICAgICAgICAgICAgICAgICBmYXRlLWNoZWNrYXNtLXV0dmlkZW9kc3AgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgICAgICAgICAgICAgIGZhdGUtY2hl Y2thc20tdjIxMGRlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+IC0tCj4g Mi4zMC4yCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczov L2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJl LCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcu b3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=