From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, FROM_EXCESS_BASE64,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3A9CEC43381 for ; Tue, 5 Mar 2019 17:05:31 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0560A20652 for ; Tue, 5 Mar 2019 17:05:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="H+dAG9yd"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="W8VR/1ns" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0560A20652 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=kRda0UWZHlto+wkAZqVRr7hg5CinH+VIGsXbd/8W3ws=; b=H+dAG9ydYU7h9T x1A73TvnWDDXBJwMnjdUR6OP03NXHqMIitjJRAbHHz7KhCuUXKMH48FWqxuFB7Zu9EeZM2ZTvbfRH PYvsjzb+F1X7ExOE0yAbQo0UuB/DFrNv88vw7A0fQyVCjw2wZKOhZMuTqAqrixrGlzJ8qvNAOMt5E hPc7Z1o/w8VM6g8CIxAM+hZsSrrTVMhx0elqI8rB8xP3yaSDJSrYGOxX7dhxHaaUFIS2r/JwxJzgI 1K6cJhPphzI3czGkHSJNXxzU7DQpr+PovRYFgtXDJXYESaXJtix64odnflWtNWq2XHrrTtppk3XWp xRUTxd7T/V/1642aY8cA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h1DVJ-00027s-Aj; Tue, 05 Mar 2019 17:05:21 +0000 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h1DVF-00027K-3E for linux-arm-kernel@lists.infradead.org; Tue, 05 Mar 2019 17:05:19 +0000 Received: by mail-wr1-x442.google.com with SMTP id t18so10315500wrx.2 for ; Tue, 05 Mar 2019 09:05:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0rIQ23b82KNvAjyy8VyUiujyHxPv2fKEUVNQ4h0FuCc=; b=W8VR/1nsWrFG64s9a45ixMkH0fk9/45AtRcyVK/MaQAJlKsSDY+ZKrOttg6aZFkMPq Q2G7Y389CdkTCf2kC7Z9XQfIJHNDk6SeRTII5Scj8lkj9G9h1MPZlq6VxHnQwoOt61J3 sJyGpCnTP3lZLF39UWZarFLHCkiO+KM2sK01hZ1XGYq0n86l+9gunp4apYv41DQf7YHq 0UJazzSmQO8kRDZkbCRJ1OyLlEgt7/VDqz+AujrEwxgN1ShMBEGDImS/378HkexACe2i D+NzVlZ7aXvoKao5GKCBpM1feIdH4EkCfzavOwVBnTyBrqWhxe/WUmopH5QtvZB14Occ 1Pww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0rIQ23b82KNvAjyy8VyUiujyHxPv2fKEUVNQ4h0FuCc=; b=qiCMt/1PKEUEbO/erX+YHsE1MRA2dhOe74ZV1JWhg4yioU42/SpERfVqjqLp4wHfKk VLvWsIEwlAlxzTn94DgJ0cf//mNzdpBoz2tnCVtDaoYRUYrJCrhIT/CSx6umpeC/He2W ERtdqLAhwWo/f/9aZRYviuay+kikujVQRtmYBGdKc59lAHWt2VZDzapbvEiAOyUuKboC SYBz7sJP5xSaYI/XoyKPxtTV/dUV9ASaj91NoR+41vZCzvX48gxx9Y2ZnV489So/jL4B Et2KFykcUdIoJCJNkzqRpfuoscbLvH5CwgZmg+sbadRvJ0wgWQazKlFGDNwcdaYZxKwo GBpQ== X-Gm-Message-State: APjAAAXagtIPCJtz2VogAy8H6Q2G++KiHsHD0o+G73jxL0AkV0B/4TGp DSFaXgsv1XfyotcaelRFJDA= X-Google-Smtp-Source: APXvYqztpCzx0hB4CQVenURhy5bxwE6KafhcT2Sn+17CuzFvVShSFrokbdVH6mLRa+0p2edrv4QZeg== X-Received: by 2002:a5d:458b:: with SMTP id p11mr17434123wrq.22.1551805513659; Tue, 05 Mar 2019 09:05:13 -0800 (PST) Received: from jernej-laptop.localnet (cpe-86-58-52-202.static.triera.net. [86.58.52.202]) by smtp.gmail.com with ESMTPSA id 2sm10112589wrg.89.2019.03.05.09.05.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 05 Mar 2019 09:05:10 -0800 (PST) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Maxime Ripard Subject: Re: [PATCH v4 2/2] media: cedrus: Add H264 decoding support Date: Tue, 05 Mar 2019 18:05:08 +0100 Message-ID: <7218484.YqF67YIo71@jernej-laptop> In-Reply-To: <20190305101732.3eylxubiiboygjc5@flea> References: <1717029.ugS2kBEt89@jernej-laptop> <20190305101732.3eylxubiiboygjc5@flea> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190305_090517_165211_004D9EF0 X-CRM114-Status: GOOD ( 41.91 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-arm-kernel@lists.infradead.org, Thomas Petazzoni , acourbot@chromium.org, jonas@kwiboo.se, jenskuske@gmail.com, linux-sunxi@googlegroups.com, linux-kernel@vger.kernel.org, tfiga@chromium.org, Paul Kocialkowski , Chen-Yu Tsai , hans.verkuil@cisco.com, Laurent Pinchart , sakari.ailus@linux.intel.com, nicolas.dufresne@collabora.com, ezequiel@collabora.com, posciak@chromium.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org RG5lIHRvcmVrLCAwNS4gbWFyZWMgMjAxOSBvYiAxMToxNzozMiBDRVQgamUgTWF4aW1lIFJpcGFy ZCBuYXBpc2FsKGEpOgo+IEhpIEplcm5laiwKPiAKPiBPbiBXZWQsIEZlYiAyMCwgMjAxOSBhdCAw Njo1MDo1NFBNICswMTAwLCBKZXJuZWogxaBrcmFiZWMgd3JvdGU6Cj4gPiBJIHJlYWxseSB3YW50 ZWQgdG8gZG8gYW5vdGhlciByZXZpZXcgb24gcHJldmlvdXMgc2VyaWVzIGJ1dCBnb3QgZGlzdHJh Y3RlZAo+ID4gYnkgYW5hbHl6aW5nIG9uZSBwYXJ0aWN1bGFyeSB0cm91Ymxlc29tZSBIMjY0IHNh bXBsZS4gSXQgc3RpbGwgZG9lc24ndAo+ID4gd29yayBjb3JyZWN0bHksIHNvIEkgd291bGQgYXNr IHlvdSBpZiB5b3UgY2FuIHRlc3QgaXQgd2l0aCB5b3VyIHN0YWNrIChpdAo+ID4gbWlnaHQgYmUg dXNlcnNwYWNlIGlzc3VlKToKPiA+IAo+ID4gaHR0cDovL2plcm5lai5saWJyZWVsZWMudHYvdmlk ZW9zL3Byb2JsZW1hdGljL3Rlc3QubWt2Cj4gPiAKPiA+IFBsZWFzZSB0YWtlIGEgbG9vayBhdCBt eSBjb21tZW50cyBiZWxvdy4KPiAKPiBJJ2QgcmVhbGx5IHByZWZlciB0byBmb2N1cyBvbiBnZXR0 aW5nIHRoaXMgbWVyZ2VkIGF0IHRoaXMgcG9pbnQsIGFuZAo+IHRoZW4gZml4aW5nIG9kZCB2aWRl b3MgYW5kIC8gb3Igc2V0dXBzIHdlIGNhbiBmaW5kIGxhdGVyCj4gb24uIEVzcGVjaWFsbHkgd2hl biBuZXcgc3RhY2tzIGFyZSBnb2luZyB0byBiZSBkZXZlbG9wcGVkIG9uIHRvcCBvZgo+IHRoaXMs IEknbSBzdXJlIHdlJ3JlIGdvaW5nIHRvIGhhdmUgcGxlbnR5IG9mIGJ1Z3MgdG8gYWRkcmVzcyA6 KQoKSSBmb3Jnb3QgdG8gbWVudGlvbiwgeW91IGNhbiBhZGQ6ClJldmlld2VkLWJ5OiBKZXJuZWog U2tyYWJlYyA8amVybmVqLnNrcmFiZWNAc2lvbC5uZXQ+CgpvbmNlIHlvdSBmaXggaXNzdWVzLiBQ bGVhc2UgdGFrZSBhIGxvb2sgYmVsb3cgZm9yIGNvbW1lbnRzLgoKPiAKPiA+IERuZSBzcmVkYSwg MjAuIGZlYnJ1YXIgMjAxOSBvYiAxNToxNzozNCBDRVQgamUgTWF4aW1lIFJpcGFyZCBuYXBpc2Fs KGEpOgo+ID4gPiBJbnRyb2R1Y2Ugc29tZSBiYXNpYyBIMjY0IGRlY29kaW5nIHN1cHBvcnQgaW4g Y2VkcnVzLiBTbyBmYXIsIG9ubHkgdGhlCj4gPiA+IGJhc2VsaW5lIHByb2ZpbGUgdmlkZW9zIGhh dmUgYmVlbiB0ZXN0ZWQsIGFuZCBzb21lIG1vcmUgYWR2YW5jZWQKPiA+ID4gZmVhdHVyZXMKPiA+ ID4gdXNlZCBpbiBoaWdoZXIgcHJvZmlsZXMgYXJlIG5vdCBldmVuIGltcGxlbWVudGVkLgo+ID4g Cj4gPiBXaGF0IGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQ/IE11bHRpIHNsaWNlIGZyYW1lIGRlY29k aW5nLCBpbnRlcmxhY2VkIGZyYW1lcwo+ID4gYW5kIGRlY29kaW5nIGZyYW1lcyB3aXRoIHdpZHRo ID4gMjA0OC4gQW55dGhpbmcgZWxzZT8KPiAKPiBPZmYgdGhlIHRvcCBvZiBteSBoZWFkLCBub3Bl Lgo+IAo+ID4gPiArc3RhdGljIHZvaWQgY2VkcnVzX2gyNjRfd3JpdGVfc3JhbShzdHJ1Y3QgY2Vk cnVzX2RldiAqZGV2LAo+ID4gPiArCQkJCSAgIGVudW0gY2VkcnVzX2gyNjRfc3JhbV9vZmYgb2Zm LAo+ID4gPiArCQkJCSAgIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pCj4gPiA+ICt7Cj4g PiA+ICsJY29uc3QgdTMyICpidWZmZXIgPSBkYXRhOwo+ID4gPiArCXNpemVfdCBjb3VudCA9IERJ Vl9ST1VORF9VUChsZW4sIDQpOwo+ID4gPiArCj4gPiA+ICsJY2VkcnVzX3dyaXRlKGRldiwgVkVf QVZDX1NSQU1fUE9SVF9PRkZTRVQsIG9mZiA8PCAyKTsKPiA+ID4gKwo+ID4gPiArCWRvIHsKPiA+ ID4gKwkJY2VkcnVzX3dyaXRlKGRldiwgVkVfQVZDX1NSQU1fUE9SVF9EQVRBLCAqYnVmZmVyKysp Owo+ID4gPiArCX0gd2hpbGUgKC0tY291bnQpOwo+ID4gCj4gPiBBYm92ZSBsb29wIHdpbGwgc3Rp bGwgd3JpdGUgb25lIHdvcmQgZm9yIGNvdW50ID0gMC4gSSBwcm9wb3NlIGZvbGxvd2luZzoKPiA+ IAo+ID4gd2hpbGUgKGNvdW50LS0pCj4gPiAKPiA+IAljZWRydXNfd3JpdGUoZGV2LCBWRV9BVkNf U1JBTV9QT1JUX0RBVEEsICpidWZmZXIrKyk7Cj4gCj4gR29vZCBjYXRjaCwgdGhhbmtzIQo+IAo+ ID4gPiArCXBvc2l0aW9uID0gZmluZF9uZXh0X3plcm9fYml0KCZ1c2VkX2RwYnMsIENFRFJVU19I MjY0X0ZSQU1FX05VTSwKPiA+ID4gKwkJCQkgICAgICBvdXRwdXQpOwo+ID4gPiArCWlmIChwb3Np dGlvbiA+PSBDRURSVVNfSDI2NF9GUkFNRV9OVU0pCj4gPiA+ICsJCXBvc2l0aW9uID0gZmluZF9m aXJzdF96ZXJvX2JpdCgmdXNlZF9kcGJzLAo+ID4gCj4gPiBDRURSVVNfSDI2NF9GUkFNRV9OVU0p Owo+ID4gCj4gPiBJIGd1ZXNzIHlvdSBkaWRuJ3QgdHJ5IGFueSBpbnRlcmxhY2VkIHZpZGVvcz8g U29tZXRpbWVzIGl0IGhhcHBlbnMgdGhhdAo+ID4gYnVmZmVyIGlzIHJlZmVyZW5jZSBhbmQgb3V0 cHV0IGF0IHRoZSBzYW1lIHRpbWUuIEluIHN1Y2ggY2FzZXMsIGFib3ZlCj4gPiBjb2RlIHdvdWxk IG1ha2UgdHdvIGVudHJpZXMsIHdoaWNoIGRvZXNuJ3Qgd29yayBiYXNlZCBvbiBLd2lib28ncyBh bmQgbXkKPiA+IGV4cGVyaW1lbnRzLgo+ID4gCj4gPiBJIGd1ZXNzIGRlY29kaW5nIGludGVybGFj ZWQgdmlkZW9zIGlzIG91dCBvZiBzY29wZSBhdCB0aGlzIHRpbWU/Cj4gCj4gWWVwLCBhbmQgdGhh dCBzaG91bGQgYmUgcHJldHR5IGVhc3kgdG8gZml4Lgo+IAo+ID4gPiArCj4gPiA+ICsJb3V0cHV0 X2J1ZiA9IHZiMl90b19jZWRydXNfYnVmZmVyKCZydW4tPmRzdC0+dmIyX2J1Zik7Cj4gPiA+ICsJ b3V0cHV0X2J1Zi0+Y29kZWMuaDI2NC5wb3NpdGlvbiA9IHBvc2l0aW9uOwo+ID4gPiArCj4gPiA+ ICsJaWYgKHNsaWNlLT5mbGFncyAmIFY0TDJfSDI2NF9TTElDRV9GTEFHX0ZJRUxEX1BJQykKPiA+ ID4gKwkJb3V0cHV0X2J1Zi0+Y29kZWMuaDI2NC5waWNfdHlwZSA9Cj4gPiAKPiA+IENFRFJVU19I MjY0X1BJQ19UWVBFX0ZJRUxEOwo+ID4gCj4gPiA+ICsJZWxzZSBpZiAoc3BzLT5mbGFncyAmIFY0 TDJfSDI2NF9TUFNfRkxBR19NQl9BREFQVElWRV9GUkFNRV9GSUVMRCkKPiA+ID4gKwkJb3V0cHV0 X2J1Zi0+Y29kZWMuaDI2NC5waWNfdHlwZSA9Cj4gPiAKPiA+IENFRFJVU19IMjY0X1BJQ19UWVBF X01CQUZGOwo+ID4gCj4gPiA+ICsJZWxzZQo+ID4gPiArCQlvdXRwdXRfYnVmLT5jb2RlYy5oMjY0 LnBpY190eXBlID0KPiA+IAo+ID4gQ0VEUlVTX0gyNjRfUElDX1RZUEVfRlJBTUU7Cj4gPiAKPiA+ ID4gKwo+ID4gPiArCWNlZHJ1c19maWxsX3JlZl9waWMoY3R4LCBvdXRwdXRfYnVmLAo+ID4gPiAr CQkJICAgIGRlY19wYXJhbS0+dG9wX2ZpZWxkX29yZGVyX2NudCwKPiA+ID4gKwkJCSAgICBkZWNf cGFyYW0tPmJvdHRvbV9maWVsZF9vcmRlcl9jbnQsCj4gPiA+ICsJCQkgICAgJnBpY19saXN0W3Bv c2l0aW9uXSk7Cj4gPiA+ICsKPiA+ID4gKwljZWRydXNfaDI2NF93cml0ZV9zcmFtKGRldiwgQ0VE UlVTX1NSQU1fSDI2NF9GUkFNRUJVRkZFUl9MSVNULAo+ID4gPiArCQkJICAgICAgIHBpY19saXN0 LCBzaXplb2YocGljX2xpc3QpKTsKPiA+ID4gKwo+ID4gPiArCWNlZHJ1c193cml0ZShkZXYsIFZF X0gyNjRfT1VUUFVUX0ZSQU1FX0lEWCwgcG9zaXRpb24pOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ ICsjZGVmaW5lIENFRFJVU19NQVhfUkVGX0lEWAkzMgo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9p ZCBfY2VkcnVzX3dyaXRlX3JlZl9saXN0KHN0cnVjdCBjZWRydXNfY3R4ICpjdHgsCj4gPiA+ICsJ CQkJICAgc3RydWN0IGNlZHJ1c19ydW4gKnJ1biwKPiA+ID4gKwkJCQkgICBjb25zdCB1OCAqcmVm X2xpc3QsIHU4IApudW1fcmVmLAo+ID4gPiArCQkJCSAgIGVudW0gY2VkcnVzX2gyNjRfc3JhbV9v ZmYgc3JhbSkKPiA+ID4gK3sKPiA+ID4gKwljb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX2gyNjRfZGVj b2RlX3BhcmFtICpkZWNvZGUgPSBydW4tCj4gPiA+Cj4gPiA+aDI2NC5kZWNvZGVfcGFyYW07Cj4g PiA+Cj4gPiA+ICsJc3RydWN0IHZiMl9xdWV1ZSAqY2FwX3EgPSAmY3R4LT5maC5tMm1fY3R4LT5j YXBfcV9jdHgucTsKPiA+ID4gKwljb25zdCBzdHJ1Y3QgdmIyX2J1ZmZlciAqZHN0X2J1ZiA9ICZy dW4tPmRzdC0+dmIyX2J1ZjsKPiA+ID4gKwlzdHJ1Y3QgY2VkcnVzX2RldiAqZGV2ID0gY3R4LT5k ZXY7Cj4gPiA+ICsJdTggc3JhbV9hcnJheVtDRURSVVNfTUFYX1JFRl9JRFhdOwo+ID4gPiArCXVu c2lnbmVkIGludCBpOwo+ID4gPiArCXNpemVfdCBzaXplOwo+ID4gPiArCj4gPiA+ICsJbWVtc2V0 KHNyYW1fYXJyYXksIDAsIHNpemVvZihzcmFtX2FycmF5KSk7Cj4gPiA+ICsKPiA+ID4gKwlmb3Ig KGkgPSAwOyBpIDwgbnVtX3JlZjsgaSsrKSB7Cj4gPiA+ICsJCWNvbnN0IHN0cnVjdCB2NGwyX2gy NjRfZHBiX2VudHJ5ICpkcGI7Cj4gPiA+ICsJCWNvbnN0IHN0cnVjdCBjZWRydXNfYnVmZmVyICpj ZWRydXNfYnVmOwo+ID4gPiArCQljb25zdCBzdHJ1Y3QgdmIyX3Y0bDJfYnVmZmVyICpyZWZfYnVm Owo+ID4gPiArCQl1bnNpZ25lZCBpbnQgcG9zaXRpb247Cj4gPiA+ICsJCWludCBidWZfaWR4Owo+ ID4gPiArCQl1OCBkcGJfaWR4Owo+ID4gPiArCj4gPiA+ICsJCWRwYl9pZHggPSByZWZfbGlzdFtp XTsKPiA+ID4gKwkJZHBiID0gJmRlY29kZS0+ZHBiW2RwYl9pZHhdOwo+ID4gPiArCj4gPiA+ICsJ CWlmICghKGRwYi0+ZmxhZ3MgJiBWNEwyX0gyNjRfRFBCX0VOVFJZX0ZMQUdfQUNUSVZFKSkKPiA+ ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCWJ1Zl9pZHggPSB2YjJfZmluZF90aW1l c3RhbXAoY2FwX3EsIGRwYi0+dGltZXN0YW1wLCAwKTsKPiA+ID4gKwkJaWYgKGJ1Zl9pZHggPCAw KQo+ID4gPiArCQkJY29udGludWU7Cj4gPiA+ICsKPiA+ID4gKwkJcmVmX2J1ZiA9IHRvX3ZiMl92 NGwyX2J1ZmZlcihjdHgtPmRzdF9idWZzW2J1Zl9pZHhdKTsKPiA+ID4gKwkJY2VkcnVzX2J1ZiA9 IHZiMl92NGwyX3RvX2NlZHJ1c19idWZmZXIocmVmX2J1Zik7Cj4gPiA+ICsJCXBvc2l0aW9uID0g Y2VkcnVzX2J1Zi0+Y29kZWMuaDI2NC5wb3NpdGlvbjsKPiA+ID4gKwo+ID4gPiArCQlzcmFtX2Fy cmF5W2ldIHw9IHBvc2l0aW9uIDw8IDE7Cj4gPiA+ICsJCWlmIChyZWZfYnVmLT5maWVsZCA9PSBW NEwyX0ZJRUxEX0JPVFRPTSkKPiA+IAo+ID4gSSdtIHN0aWxsIG5vdCBjb252aW5jZWQgdGhhdCBj aGVja2luZyBidWZmZXIgZmllbGQgaXMgYXBwcm9wcmlhdGUgc29sdXRpb24KPiA+IGhlcmUuIElN TyB0aGlzIGJpdCBkZWZpbmVzIHRvcCBvciBib3R0b20gcmVmZXJlbmNlIGFuZCBzYW1lIGJ1ZmZl ciBjb3VsZAo+ID4gYmUgdXNlZCBmb3IgYm90aC4KPiA+IAo+ID4gQnV0IEkgZ3Vlc3MgdGhpcyBi ZWxvbmdzIGZvciBmb2xsb3cgdXAgcGF0Y2ggd2hpY2ggd2lsbCBmaXggZGVjb2RpbmcKPiA+IGlu dGVybGFjZWQgdmlkZW9zLgo+IAo+IEFuZCB3ZSBjYW4gYWx3YXlzIGNoYW5nZSB0aGUgQVBJIGxh dGVyIG9uIGlmIHdlIGZpbmQgdGhhdCBub3QgYWRlcXVhdGUKPiAKPiA+ID4gK3N0YXRpYyB2b2lk IGNlZHJ1c193cml0ZV9zY2FsaW5nX2xpc3RzKHN0cnVjdCBjZWRydXNfY3R4ICpjdHgsCj4gPiA+ ICsJCQkJICAgICAgIHN0cnVjdCBjZWRydXNfcnVuICpydW4pCj4gPiA+ICt7Cj4gPiA+ICsJY29u c3Qgc3RydWN0IHY0bDJfY3RybF9oMjY0X3NjYWxpbmdfbWF0cml4ICpzY2FsaW5nID0KPiA+ID4g KwkJcnVuLT5oMjY0LnNjYWxpbmdfbWF0cml4Owo+ID4gPiArCXN0cnVjdCBjZWRydXNfZGV2ICpk ZXYgPSBjdHgtPmRldjsKPiA+ID4gKwo+ID4gPiArCWlmICghc2NhbGluZykKPiA+ID4gKwkJcmV0 dXJuOwo+ID4gPiArCj4gPiA+ICsJY2VkcnVzX2gyNjRfd3JpdGVfc3JhbShkZXYsIENFRFJVU19T UkFNX0gyNjRfU0NBTElOR19MSVNUXzh4OF8wLAo+ID4gPiArCQkJICAgICAgIHNjYWxpbmctPnNj YWxpbmdfbGlzdF84eDhbMF0sCj4gPiA+ICsJCQkgICAgICAgc2l6ZW9mKHNjYWxpbmctCj5zY2Fs aW5nX2xpc3RfOHg4WzBdKSk7Cj4gPiA+ICsKPiA+ID4gKwljZWRydXNfaDI2NF93cml0ZV9zcmFt KGRldiwgQ0VEUlVTX1NSQU1fSDI2NF9TQ0FMSU5HX0xJU1RfOHg4XzEsCj4gPiA+ICsJCQkgICAg ICAgc2NhbGluZy0+c2NhbGluZ19saXN0Xzh4OFsxXSwKPiA+ID4gKwkJCSAgICAgICBzaXplb2Yo c2NhbGluZy0KPnNjYWxpbmdfbGlzdF84eDhbMV0pKTsKPiA+IAo+ID4gSW5kZXggYWJvdmUgc2hv dWxkIGJlIDMuIElJUkMgMSBhbmQgMyBhcmUgdXNlZCBieSA0OjI6MCBjaHJvbWEKPiA+IHN1YnNh bXBsaW5nLAo+ID4gYnV0IGN1cnJlbnRseSBJJ20gdW5hYmxlIHRvIGZpbmQgcmVmZXJlbmNlIHRv IHRoYXQgaW4gc3RhbmRhcmQuCj4gCj4gWWVwLCBpbmRlZWQsIEknbGwgZml4IHRoYXQsIHRoYW5r cyEKCkFzIEkgc2FpZCBpbiBwcmV2aW91cyBlLW1haWwsIEkgbWFkZSBhIG1pc3Rha2UsIGl0IHNo b3VsZCBiZSAwIGFuZCAzLgoKPiAKPiA+ID4gKwo+ID4gPiArCWNlZHJ1c19oMjY0X3dyaXRlX3Ny YW0oZGV2LCBDRURSVVNfU1JBTV9IMjY0X1NDQUxJTkdfTElTVF80eDQsCj4gPiA+ICsJCQkgICAg ICAgc2NhbGluZy0+c2NhbGluZ19saXN0XzR4NCwKPiA+ID4gKwkJCSAgICAgICBzaXplb2Yoc2Nh bGluZy0+c2NhbGluZ19saXN0XzR4NCkpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMg dm9pZCBjZWRydXNfd3JpdGVfcHJlZF93ZWlnaHRfdGFibGUoc3RydWN0IGNlZHJ1c19jdHggKmN0 eCwKPiA+ID4gKwkJCQkJICAgc3RydWN0IGNlZHJ1c19ydW4KPiA+IAo+ID4gKnJ1bikKPiA+IAo+ ID4gPiArewo+ID4gPiArCWNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaDI2NF9zbGljZV9wYXJhbSAq c2xpY2UgPQo+ID4gPiArCQlydW4tPmgyNjQuc2xpY2VfcGFyYW07Cj4gPiA+ICsJY29uc3Qgc3Ry dWN0IHY0bDJfaDI2NF9wcmVkX3dlaWdodF90YWJsZSAqcHJlZF93ZWlnaHQgPQo+ID4gPiArCQkm c2xpY2UtPnByZWRfd2VpZ2h0X3RhYmxlOwo+ID4gPiArCXN0cnVjdCBjZWRydXNfZGV2ICpkZXYg PSBjdHgtPmRldjsKPiA+ID4gKwlpbnQgaSwgaiwgazsKPiA+ID4gKwo+ID4gPiArCWNlZHJ1c193 cml0ZShkZXYsIFZFX0gyNjRfU0hTX1dQLAo+ID4gPiArCQkgICAgICgocHJlZF93ZWlnaHQtPmNo cm9tYV9sb2cyX3dlaWdodF9kZW5vbSAmIDB4ZikgPDwKPiA+IAo+ID4gNCkgfAo+ID4gCj4gPiA+ ICsJCSAgICAgKChwcmVkX3dlaWdodC0+bHVtYV9sb2cyX3dlaWdodF9kZW5vbSAmIDB4ZikgPDwK PiA+IAo+ID4gMCkpOwo+ID4gCj4gPiBEZW5vbWluYXRvcnMgYXJlIG9ubHkgaW4gcmFuZ2Ugb2Yg MC03LCBzbyBtYXNrIHNob3VsZCBiZSAweDcuIENlZGFyWCBjb2RlCj4gPiBhbHNvIHNwZWNpZnkg dGhvc2UgdHdvIGZpZWxkcyAzIGJpdHMgd2lkZS4KPiAKPiBJbmRlZWQsIEknbGwgZml4IGl0Lgo+ IAo+ID4gPiArCj4gPiA+ICsJY2VkcnVzX3dyaXRlKGRldiwgVkVfQVZDX1NSQU1fUE9SVF9PRkZT RVQsCj4gPiA+ICsJCSAgICAgQ0VEUlVTX1NSQU1fSDI2NF9QUkVEX1dFSUdIVF9UQUJMRSA8PCAy KTsKPiA+ID4gKwo+ID4gPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHByZWRfd2VpZ2h0 LT53ZWlnaHRfZmFjdG9ycyk7IGkrKykgewo+ID4gPiArCQljb25zdCBzdHJ1Y3QgdjRsMl9oMjY0 X3dlaWdodF9mYWN0b3JzICpmYWN0b3JzID0KPiA+ID4gKwkJCSZwcmVkX3dlaWdodC0+d2VpZ2h0 X2ZhY3RvcnNbaV07Cj4gPiA+ICsKPiA+ID4gKwkJZm9yIChqID0gMDsgaiA8IEFSUkFZX1NJWkUo ZmFjdG9ycy0+bHVtYV93ZWlnaHQpOyBqKyspIAp7Cj4gPiA+ICsJCQl1MzIgdmFsOwo+ID4gPiAr Cj4gPiA+ICsJCQl2YWwgPSAoKGZhY3RvcnMtPmx1bWFfb2Zmc2V0W2pdICYgMHgxZmYpIDw8IAox NikKPiA+ID4gCj4gPiA+ICsJCQkJKGZhY3RvcnMtPmx1bWFfd2VpZ2h0W2pdICYgMHgxZmYpOwo+ ID4gPiArCQkJY2VkcnVzX3dyaXRlKGRldiwgVkVfQVZDX1NSQU1fUE9SVF9EQVRBLAo+ID4gCj4g PiB2YWwpOwo+ID4gCj4gPiBZb3Ugc2hvdWxkIGNhc3Qgb2Zmc2V0IHZhcmlibGUgdG8gd2lkZXIg dHlwZS4gQ3VycmVudGx5IHNvbWUgdmlkZW9zIHdoaWNoCj4gPiB1c2UgcHJlZGljdGlvbiB3ZWln aHQgdGFibGUgZG9uJ3Qgd29yayBmb3IgbWUsIHVubGVzcyBvZmZzZXQgaXMgY2FzdGVkIHRvCj4g PiB1MzIgZmlyc3QuIFNoaWZ0aW5nIDggYml0IHZhcmlhYmxlIGZvciAxNiBwbGFjZXMgZ2l2ZXMg eW91IDAgZXZlcnkgdGltZS4KPiAKPiBJJ2xsIGRvIGl0Lgo+IAo+ID4gTHVtYSBvZmZzZXQgYW5k IHdlaWdodCBhcmUgZGVmaW5lZCBhcyBzOCwgc28gaGF2aW5nIHdpZGVyIG1hc2sgZG9lc24ndAo+ ID4gcmVhbGx5IG1ha2Ugc2Vuc2UuIEhvd2V2ZXIsIEkgdGhpbmsgd2VpZ2h0IHNob3VsZCBiZSBz MTYgYW55d2F5LCBiZWNhdXNlCj4gPiBzdGFuZGFyZCBzYXlzIHRoYXQgaXQncyB2YWx1ZSBjb3Vs ZCBiZSAyXmRlbm9taW5hdG9yIGZvciBkZWZhdWx0IHZhbHVlIG9yCj4gPiBpbiByYW5nZSAtMTI4 Li4xMjcuIFdvcnN0IGNhc2Ugd291bGQgYmUgMl43ID0gMTI4IGFuZCAtMTI4LiBUbyBjb3ZlciBi b3RoCj4gPiB2YWx1ZXMgeW91IG5lZWQgYXQgbGVhc3QgOSBiaXRzLgo+IAo+IEJ1dCBpZiBJIHVu ZGVyc3Rvb2QgdGhlIHNwZWMgcmlnaHQsIGluIHRoYXQgY2FzZSB5b3Ugd291bGQganVzdCBoYXZl Cj4gdGhlIGRlbm9taW5hdG9yIHNldCwgYW5kIG5vdCB0aGUgb2Zmc2V0LCB3aGlsZSB0aGUgb2Zm c2V0IGlzIHVzZWQgaWYKPiB5b3UgZG9uJ3QgdXNlIHRoZSBkZWZhdWx0IGZvcm11bGEgKGFuZCB0 aGVyZWZvcmUgcmVtYWlucyBpbiB0aGUgLTEyOAo+IDEyNyByYW5nZSB3aGljaCBpcyBjb3ZlcmVk IGJ5IHRoZSBzOCksIHJpZ2h0PwoKWWVhaCwgZGVmYXVsdCBvZmZzZXQgaXMgMCBhbmQgczggaXMg c3VmZmljaWVudCBmb3IgdGhhdC4gSSdtIHRhbGtpbmcgYWJvdXQgCndlaWdodC4gRGVmYXVsdCB3 ZWlnaHQgaXMgIjEgPDwgZGVub21pbmF0b3IiLCB3aGljaCBtaWdodCBiZSAxIDw8IDcgb3IgMTI4 LgoKV2UgY291bGQgYWxzbyBhZGQgYSBmbGFnLCB3aGljaCB3b3VsZCBzaWduYWwgZGVmYXVsdCB0 YWJsZS4gSW4gdGhhdCBjYXNlIHdlIApjb3VsZCBqdXN0IHNldCBhIGJpdCB0byB0ZWxsIFZQVSB0 byB1c2UgZGVmYXVsdCB2YWx1ZXMuIEV2ZW4gaWYgc29tZSBWUFVzIG5lZWQgCmRlZmF1bHQgdGFi bGUgdG8gYmUgc2V0IGV4cGxpY2l0bHksIGl0J3MgdmVyeSBlYXN5IHRvIGNhbGN1bGF0ZSB2YWx1 ZXMgYXMgCm1lbnRpb25lZCBpbiBwcmV2aW91cyBwYXJhZ3JhcGguCgpCZXN0IHJlZ2FyZHMsCkpl cm5lagoKPiAKPiA+ID4gKwlyZWcgPSAwOwo+ID4gPiArCWlmICghKHNjYWxpbmcgJiYgKHBwcy0+ ZmxhZ3MgJgo+ID4gPiBWNEwyX0gyNjRfUFBTX0ZMQUdfUElDX1NDQUxJTkdfTUFUUklYX1BSRVNF TlQpKSkgKwkJcmVnIHw9Cj4gPiA+IFZFX0gyNjRfU0hTX1FQX1NDQUxJTkdfTUFUUklYX0RFRkFV TFQ7Cj4gPiA+ICsJcmVnIHw9IChwcHMtPnNlY29uZF9jaHJvbWFfcXBfaW5kZXhfb2Zmc2V0ICYg MHgzZikgPDwgMTY7Cj4gPiA+ICsJcmVnIHw9IChwcHMtPmNocm9tYV9xcF9pbmRleF9vZmZzZXQg JiAweDNmKSA8PCA4Owo+ID4gPiArCXJlZyB8PSAocHBzLT5waWNfaW5pdF9xcF9taW51czI2ICsg MjYgKyBzbGljZS0+c2xpY2VfcXBfZGVsdGEpICYKPiA+IAo+ID4gMHgzZjsKPiA+IAo+ID4gPiAr CWNlZHJ1c193cml0ZShkZXYsIFZFX0gyNjRfU0hTX1FQLCByZWcpOwo+ID4gPiArCj4gPiA+ICsJ Ly8gY2xlYXIgc3RhdHVzIGZsYWdzCj4gPiA+ICsJY2VkcnVzX3dyaXRlKGRldiwgVkVfSDI2NF9T VEFUVVMsIGNlZHJ1c19yZWFkKGRldiwKPiA+IAo+ID4gVkVfSDI2NF9TVEFUVVMpKTsKPiA+IAo+ ID4gSSdtIG5vdCBzdXJlIGNsZWFyaW5nIHN0YXR1cyBoZXJlIGlzIG5lZWRlZC4gRG8geW91IGhh dmUgYW55IGNhc2Ugd2hlcmUgaXQKPiA+IGlzIG5lZWQ/IE1heWJlIGlmIHNvbWUgZXJyb3IgaGFw cGVuZWQgYmVmb3JlIGFuZCBjZWRydXNfaDI2NF9pcnFfY2xlYXIoKQo+ID4gd2Fzbid0IGNsZWFy ZWQuIEknbSBmaW5lIGVpdGhlciB3YXkuCj4gCj4gWWVhaCwgaXQncyBqdXN0IHNvbWUgZXh0cmEg cHJlY2F1dGlvbi4KPiAKPiA+ID4gKwo+ID4gPiArCS8vIGVuYWJsZSBpbnQKPiA+ID4gKwlyZWcg PSBjZWRydXNfcmVhZChkZXYsIFZFX0gyNjRfQ1RSTCk7Cj4gPiA+ICsJY2VkcnVzX3dyaXRlKGRl diwgVkVfSDI2NF9DVFJMLCByZWcgfAo+ID4gPiArCQkgICAgIFZFX0gyNjRfQ1RSTF9TTElDRV9E RUNPREVfSU5UIHwKPiA+ID4gKwkJICAgICBWRV9IMjY0X0NUUkxfREVDT0RFX0VSUl9JTlQgfAo+ ID4gPiArCQkgICAgIFZFX0gyNjRfQ1RSTF9WTERfREFUQV9SRVFfSU5UKTsKPiA+IAo+ID4gU2lu Y2UgdGhpcyBpcyB0aGUgb25seSBwbGFjZSB3aGVyZSB5b3Ugc2V0IFZFX0gyNjRfQ1RSTCwgSSB3 b3VsZG4ndAo+ID4gcHJlc2VydmUgcHJldmlvdXMgY29udGVudC4gVGhpcyBtb2RlIGlzIGFsc28g Y2FwYWJsZSBvZiBkZWNvZGluZyBWUDggYW5kCj4gPiBBVlMuIFNvIGluIHRoZW9yeSwgaWYgdXNl ciB3b3VsZCB3YW50IHRvIGRlY29kZSBIMjY0IGFuZCBWUDggdmlkZW9zIGF0Cj4gPiB0aGUgc2Ft ZSB0aW1lLCBwcmVzZXJ2aW5nIGNvbnRlbnQgd2lsbCBwcm9iYWJseSBjb3JydXB0IHlvdXIgb3V0 cHV0LiBJCj4gPiB3b3VsZCBqdXN0IHNldCBhbGwgb3RoZXIgYml0cyB0byAwLiBXaGF0IGRvIHlv dSB0aGluaz8gSSB0ZXN0ZWQgdGhpcwo+ID4gd2l0aG91dCBwcmVzZXJ2YXRpb24gYW5kIGl0IHdv cmtzIGZpbmUuCj4gCj4gSSdsbCBjaGFuZ2UgaXQuCj4gCj4gPiA+ICsJLyoKPiA+ID4gKwkgKiBG SVhNRTogVGhpcyBpcyBhY3R1YWxseSBjb25kaXRpb25hbCB0bwo+ID4gPiArCSAqIFY0TDJfSDI2 NF9TUFNfRkxBR19GUkFNRV9NQlNfT05MWSBub3QgYmVpbmcgc2V0LCB3ZSBtaWdodAo+ID4gPiAr CSAqIGhhdmUgdG8gcmV3b3JrIHRoaXMgaWYgbWVtb3J5IGVmZmljaWVuY3kgZXZlciBpcyBzb21l dGhpbmcKPiA+ID4gKwkgKiB3ZSBuZWVkIHRvIHdvcmsgb24uCj4gPiA+ICsJICovCj4gPiA+ICsJ ZmllbGRfc2l6ZSA9IGZpZWxkX3NpemUgKiAyOwo+ID4gPiArCWN0eC0+Y29kZWMuaDI2NC5tdl9j b2xfYnVmX2ZpZWxkX3NpemUgPSBmaWVsZF9zaXplOwo+ID4gCj4gPiBDZWRhclggY29kZSBhbGln bnMgdGhpcyBidWZmZXIgdG8gMTAyNC4gU2hvdWxkIHdlIGRvIGl0IHRvbyBqdXN0IHRvIGJlIG9u Cj4gPiB0aGUgc2FmZSBzaWRlPyBJIGRvbid0IHRoaW5rIGl0IGNvc3QgdXMgYW55dGhpbmcgZHVl IHRvCj4gPiBkbWFfYWxsb2NfY29oZXJlbnQoKSBhbGlnbm1lbnRzLgo+IAo+IGRtYV9hbGxvY19j b2hlcmVudCB3aWxsIG9wZXJhdGUgb24gcGFnZXMsIHNvIGl0IGRvZXNuJ3QgbWFrZSBhbnkKPiBk aWZmZXJlbmNlIHRoZXJlLgo+IAo+ID4gU29ycnkgYWdhaW4gZm9yIGEgYml0IGxhdGUgaW4tZGVw dGggcmV2aWV3Lgo+IAo+IFRoYW5rcyBhIGxvdCEKPiBNYXhpbWUKCgoKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==