From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83B6321D3F6; Thu, 13 Feb 2025 11:19:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739445587; cv=none; b=QExpW9WtnDMfU7jb4o2656D/1xosdryIpGh0JVznbFMek+AM2582PC7Q1Go/pJrGimuFvT7f1r8mVSmHXsK7Ww0Y6sZ16G22F2WgTqOMeGZM7bcLw6VL92P2LiNASvcpfC0EqNF0eop51i8DP81UsJI25/ubjJPOz/p4xpIXFwQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739445587; c=relaxed/simple; bh=rssjeyIiAeL8XBn/wMcEhJ0splDoaYGMtiY4pRMGGyo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=t8yoXUTsunHuXJvFadq1I3bIalMskzYyXLXr+pcHNQNxrDmEZi735p4/i4UAEphAz7YL+9i3kdOFMey51NwM2PjU4lBbb/qLmaSO6fU+b3r6AAw4/JIZ7O0XffRSDe+02PUI5llkc0/35ED7zq93j50rCAMseW9PDuwH5VhOLWs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=psFKTMu9; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="psFKTMu9" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1739445568; x=1740050368; i=ps.report@gmx.net; bh=rssjeyIiAeL8XBn/wMcEhJ0splDoaYGMtiY4pRMGGyo=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=psFKTMu9GGzORwmLPp1j7GZEGhtCIN3Jsd95gBQWOV+6W0KARNn5WGVPUaaT7YRR OHbKksvbSMjRpYLb3R+aFRvjd3KUZ0vGLEFjjURDb4x+FxRGa4S4bhzhVhwzpo9yn n2yHF7hjEFDL/V31a3p0MxWcM2fxSAT66PUWK7wdkuVr++i0gNPn7CaD+VNfoZgoJ ovA1Ow4c6bx3/isdpkmHVk3oz2yQMsYNm9F3Sf5xpYTiGL8Uq5QRdTdcFbXkP70BH /SY4w95txUJZqjnoMYyQ9O1whxhkQXs3kfBIEPVsGi7WQqVRAn2ZF1vuMuJoQwen7 s9JLsq4q9oFcelhO7w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.197]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MVNAr-1tqTKh00tL-00VMYe; Thu, 13 Feb 2025 12:19:28 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Peter Seiderer , Thomas Gleixner , Artem Chernyshev , Nam Cao , Frederic Weisbecker Subject: [PATCH net-next v5 8/8] selftest: net: add proc_net_pktgen Date: Thu, 13 Feb 2025 12:19:20 +0100 Message-ID: <20250213111920.1439021-9-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250213111920.1439021-1-ps.report@gmx.net> References: <20250213111920.1439021-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:mWvR9DhNJksyPW1NHcmez+JupXYV8O2yEd/D3bL+dFi3jF/A47o Fch4zqSo3B0u7mRLur0ADukS5ZuMnlol5pUTwtFZuw4wM+cgWGzV6vGAHpnpvsxb7lngXRn avBe8FU93JpiHUs20uMXhx2zUBLVd2rEWYgCzLFmh36Sfu1JVWj8jdmBAYAO9N5voz5cd5K ZMgaR+KJFlzvaQGz6GWSg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:tvyH2MbilQo=;kKH4Nf1RIqtXLOfbIIJV7tXK76q wK05TqkYm625nt812eWDDZFW9haJDnZb5dLn9+KMc3CnCn2y+ftx6PuoE7yhYY0dS/5xs7fCR PGR5DExnxW2Rh0J5OqTuCEurM36ryyAh6Ii96ZdIjFuoemDp8LSNm+zMPNIYQLAZASp/ytB9C o1azae0kxTbZz//qMMBsoCrHr/IPcJNcypuynQpk1q5L0KvMlzOpXfoqpwULcbPmyim9zxVSZ 6G9xZ/Oo/WSwhFVaTVc50HDn++XE6dRRxEJDSCBCCcFvNR2NlAAkw/vnMfxbHwSkpPowaPBZq ceebkNR2sZvYUZujj9N8oryOPeBvLP0PqSw2iZLyuEZ2tp2q6HRMrV/H5qP2+CceCyvrm2keI jzQhWH8p801k9rRknk8MWwS4fxMoOLg7uXwGNUfJMIqYQEIjBKrdm7PU7vz4oQsp1NOplAGvm cr13i0qQPwsP4tfPtaJ22cfYjoTk0oDj2B+ecKLU9lPQKAFMpoQ7OpUJgap1CQCMLRpzupS3P aSFH1OS0ES4QywbY2bVDzY8WJG5dJhYPAogBigSSM3aInQzY9xFlmYUy92d+TkvDDJfCBfJ+7 TVK22v8xw4UMBnhN71MDDs97OAScabJW5nq88uJhkTa3CJBzhyeMqawI4gudmTz8/EVQrKovy ohHbeZiPFSLPj6thxEENQebaPqt3VnHNZ3jdTmCfOTeEe+AYOPxm70WnyrzHC6XBxA3K32RXY pq480FPG15m1neMWNxpdZ/iSKh+XwggMkvbyW3WYr7bxKtUaE9objjggsMywVQR9kF47iANhK NRdh/H4diA4iGK76W7Ikri+b7DcdOvYr9AJ5q8d61ddUGYuBMGCcgKLTLQKR1degvmuIRQ6uw P/eUGR3Z6YCFA+TBLCUa3HIqu0esNS51c3PnOvLyu5e6Ps5HtHgdqeQGTl0WW+cGxLENLJRje tciqCZPQVJLKWI+xkMZagKPMozsPIXWaia0fyI21FW9MRIBCPCOyFx/2UqZg8TfI9tNUXwvt8 uqfNRkoM022hXvgKqYAngBaGPsRfVnc0opfy1LkXsWcEbG29iib+giJEn35jV/tkCGd/6plGU Jk8G4ncNGXnZd7b7OVUUiDIXMcOmritvsZFIZYAGX+hmXh67CUwnlqniObIyg4IaYwi8B1V9G 1ZqX1N6eAyrb/z01QqDtTzvwHkgu3uHq1LguKSJi7k0mAKHjHFi7cWar1yvMZKL7yCBqNhfJ7 SFs9a38a5YJezptXDubEnhHWCbVbPOLu0f0p/WWta33oauBI3mXMmsKL+xaQGy5Uekjx1Ladj vqsSVJTs+8/4N57NiDaxjR2Lg+7U+YESnYb1QlARz8EY5UZjv3aPYPJSdy/ZNy64HJPW8n0EW MLvJ6NdUpVc8d4DKJf2/FN32foPAHWpvwrPAD3cPLHwwazxYA9LnH+03dV QWRkIHNvbWUgdGVzdCBmb3IgL3Byb2MvbmV0L3BrdGdlbi8uLi4gaW50ZXJmYWNlLgoKLSBlbmFi bGUgJ0NPTkZJR19ORVRfUEtUR0VOPW0nIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9j b25maWcKClNpZ25lZC1vZmYtYnk6IFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4K LS0tCkNoYW5nZXMgdjQgLT4gdjUKICAtIHNwbGl0IHVwIHBhdGNoc2V0IGludG8gcGFydCBpL2lp IChzdWdnZXN0ZWQgYnkgU2ltb24gSG9ybWFuKQogIC0gYWRkYXB0IHRvIGRyb3BwZWQgcGF0Y2gg J25ldDogcGt0Z2VuOiBoZXgzMl9hcmcvbnVtX2FyZyBlcnJvciBvdXQgaW4gY2FzZQogICAgbm8g Y2hhcmFjdGVycyBhcmUgYXZhaWxhYmxlJywgZW1wdHkgaGV4L251bSBhcmcgaXMgbm93IGltcGxp Y2l0IGFzc3VtZWQgYXMKICAgIHplcm8gdmFsdWUgKGluc3RlYWQgb2YgZmFpbHVyZSkKCkNoYW5n ZXMgdjMgLT4gdjQ6CiAgLSBubyBjaGFuZ2VzCgpDaGFuZ2VzIHYyIC0+IHYzOgogIC0gZml4IHR5 cG8gaW4gY2hhbmdlIGRlc2NyaXB0aW9uICgndjEgLT4gdjEnIGFuZCB0eW9wKQogIC0gcmVuYW1l IHNvbWUgdmFycyB0byBiZXR0ZXIgbWF0Y2ggdXNhZ2UKICAgIGFkZF9sb29wYmFja18wIC0+IHRo cl9jbWRfYWRkX2xvb3BiYWNrXzAKICAgIHJtX2xvb3BiYWNrXzAgLT4gdGhyX2NtZF9ybV9sb29w YmFja18wCiAgICB3cm9uZ19jdHJsX2NtZCAtPiB3cm9uZ190aHJfY21kCiAgICBsZWdhY3lfY3Ry bF9jbWQgLT4gbGVnYWN5X3Rocl9jbWQKICAgIGN0cmxfZmQgLT4gdGhyX2ZkCiAgLSBhZGQgY3Ry bCBpbnRlcmZhY2UgdGVzdHMKCkNoYW5nZXMgdjEgLT4gdjI6CiAgLSBmaXggdHlvcCBub3QgdnMu IG5vZCAoc3VnZ2VzdGVkIGJ5IEpha3ViIEtpY2luc2tpKQogIC0gZml4IG1pc2FsaWduZWQgbGlu ZSAoc3VnZ2VzdGVkIGJ5IEpha3ViIEtpY2luc2tpKQogIC0gZW5hYmxlIGZvbWVybHkgY29tbWVu dGVkIG91dCBDT05GSUdfWEZSTSBkZXBlbmRlbnQgdGVzdCAoY29tbWFuZCBzcGkpLAogICAgYXMg Q09ORklHX1hGUk0gaXMgZW5hYmxlZCB2aWEgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2Nv bmZpZwogICAgQ09ORklHX1hGUk1fSU5URVJGQUNFL0NPTkZJR19YRlJNX1VTRVIgKHN1Z2dlc3Rl eCBieSBKYWt1YiBLaWNpbnNraSkKICAtIGFkZCBDT05GSUdfTkVUX1BLVEdFTj1tIHRvIHRvb2xz L3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9jb25maWcKICAgIChzdWdnZXN0ZWQgYnkgSmFrdWIgS2lj aW5za2kpCiAgLSBhZGQgbW9kcHJvYmUgcGt0Z2VuIHRvIEZJWFRVUkVfU0VUVVAoKSAoc3VnZ2Vz dGVkIGJ5IEpha3ViIEtpY2luc2tpKQogIC0gZml4IHNvbWUgY2hlY2twYXRjaCB3YXJuaW5ncyAo TWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zKQogIC0gc2hyaW5rIGxpbmUg bGVuZ3RoIGJ5IHJlLW5hbWluZyBzb21lIHZhcmlhYmxlcyAoY29tbWFuZCAtPiBjbWQsCiAgICBk ZXZpY2UgLT4gZGV2KQogIC0gYWRkICdyYXRlIDAnIHRlc3RjYXNlCiAgLSBhZGQgJ3JhdGVwIDAn IHRlc3RjYXNlCi0tLQogdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlICAgICAg ICAgIHwgICAxICsKIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9jb25maWcgICAgICAgICAg ICB8ICAgMSArCiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMg fCA2NDYgKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDY0OCBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2Nf bmV0X3BrdGdlbi5jCgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01h a2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlCmluZGV4IGI2Mjcx NzE0NTA0ZC4uMzhjNmU0YjcyZDM3IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0 cy9uZXQvTWFrZWZpbGUKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxl CkBAIC0xMDEsNiArMTAxLDcgQEAgVEVTVF9QUk9HUyArPSB2bGFuX2JyaWRnZV9iaW5kaW5nLnNo CiBURVNUX1BST0dTICs9IGJwZl9vZmZsb2FkLnB5CiBURVNUX1BST0dTICs9IGlwdjZfcm91dGVf dXBkYXRlX3NvZnRfbG9ja3VwLnNoCiBURVNUX1BST0dTICs9IGJ1c3lfcG9sbF90ZXN0LnNoCitU RVNUX0dFTl9QUk9HUyArPSBwcm9jX25ldF9wa3RnZW4KIAogIyBZTkwgZmlsZXMsIG11c3QgYmUg YmVmb3JlICJpbmNsdWRlIC4ubGliLm1rIgogWU5MX0dFTl9GSUxFUyA6PSBidXN5X3BvbGxlciBu ZXRsaW5rLWR1bXBzCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29u ZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZwppbmRleCA1YjliYWY3MDg5 NTAuLjlmZTFiMzQ2NGZiYyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0 L2NvbmZpZworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29uZmlnCkBAIC0xMDcs MyArMTA3LDQgQEAgQ09ORklHX1hGUk1fSU5URVJGQUNFPW0KIENPTkZJR19YRlJNX1VTRVI9bQog Q09ORklHX0lQX05GX01BVENIX1JQRklMVEVSPW0KIENPTkZJR19JUDZfTkZfTUFUQ0hfUlBGSUxU RVI9bQorQ09ORklHX05FVF9QS1RHRU49bQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvbmV0L3Byb2NfbmV0X3BrdGdlbi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0 L3Byb2NfbmV0X3BrdGdlbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uOTE3ZjQ1YmU0NzY5Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvbmV0L3Byb2NfbmV0X3BrdGdlbi5jCkBAIC0wLDAgKzEsNjQ2IEBACisvLyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIHByb2NfbmV0X3BrdGdlbjoga3NlbGZ0ZXN0 IGZvciAvcHJvYy9uZXQvcGt0Z2VuIGludGVyZmFjZQorICoKKyAqIENvcHlyaWdodCAoYykgMjAy NSBQZXRlciBTZWlkZXJlciA8cHMucmVwb3J0QGdteC5uZXQ+CisgKgorICovCisjaW5jbHVkZSA8 ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1 ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAiLi4va3NlbGZ0ZXN0X2hhcm5lc3MuaCIKKworc3Rh dGljIGNvbnN0IGNoYXIgY3RybF9jbWRfc3RvcFtdID0gInN0b3AiOworc3RhdGljIGNvbnN0IGNo YXIgY3RybF9jbWRfc3RhcnRbXSA9ICJzdGFydCI7CitzdGF0aWMgY29uc3QgY2hhciBjdHJsX2Nt ZF9yZXNldFtdID0gInJlc2V0IjsKKworc3RhdGljIGNvbnN0IGNoYXIgd3JvbmdfY3RybF9jbWRb XSA9ICIwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4 OTAxMjM0NTY3ODkwMTIzNDU2Nzg5IjsKKworc3RhdGljIGNvbnN0IGNoYXIgdGhyX2NtZF9hZGRf bG9vcGJhY2tfMFtdID0gImFkZF9kZXZpY2UgbG9AMCI7CitzdGF0aWMgY29uc3QgY2hhciB0aHJf Y21kX3JtX2xvb3BiYWNrXzBbXSA9ICJyZW1fZGV2aWNlX2FsbCI7CisKK3N0YXRpYyBjb25zdCBj aGFyIHdyb25nX3Rocl9jbWRbXSA9ICJmb3JzdXJlYXdyb25nY29tbWFuZCI7CitzdGF0aWMgY29u c3QgY2hhciBsZWdhY3lfdGhyX2NtZFtdID0gIm1heF9iZWZvcmVfc29mdGlycSI7CisKK3N0YXRp YyBjb25zdCBjaGFyIHdyb25nX2Rldl9jbWRbXSA9ICJmb3JzdXJld3Jvbmdjb21tYW5kIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzBbXSA9ICJtaW5fcGt0X3NpemUi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0X3NpemVfMVtdID0gIm1pbl9wa3Rf c2l6ZSAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0X3NpemVfMltdID0gIm1p bl9wa3Rfc2l6ZSAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzNb XSA9ICJtaW5fcGt0X3NpemUgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rf c2l6ZV80W10gPSAibWluX3BrdF9zaXplIDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21k X21pbl9wa3Rfc2l6ZV81W10gPSAibWluX3BrdF9zaXplPTEwMDEiOworc3RhdGljIGNvbnN0IGNo YXIgZGV2X2NtZF9taW5fcGt0X3NpemVfNltdID0gIm1pbl9wa3Rfc2l6ZSA9MjAwMiI7CitzdGF0 aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV83W10gPSAibWluX3BrdF9zaXplPSAz MDAzIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzhbXSA9ICJtaW5f cGt0X3NpemUgPSA0MDA0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWF4X3BrdF9zaXpl XzBbXSA9ICJtYXhfcGt0X3NpemUgMjAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfcGt0 X3NpemVfMFtdID0gInBrdF9zaXplIDMwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2lt aXhfd2VpZ2h0c18wW10gPSAiaW1peF93ZWlnaHRzIDAsNyA1NzYsNCAxNTAwLDEiOworc3RhdGlj IGNvbnN0IGNoYXIgZGV2X2NtZF9pbWl4X3dlaWdodHNfMVtdID0gImltaXhfd2VpZ2h0cyAxMDEs MSAxMDIsMiAxMDMsMyAxMDQsNCAxMDUsNSAxMDYsNiAxMDcsNyAxMDgsOCAxMDksOSAxMTAsMTAg MTExLDExIDExMiwxMiAxMTMsMTMgMTE0LDE0IDExNSwxNSAxMTYsMTYgMTE3LDE3IDExOCwxOCAx MTksMTkgMTIwLDIwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfaW1peF93ZWlnaHRzXzJb XSA9ICJpbWl4X3dlaWdodHMgMTAwLDEgMTAyLDIgMTAzLDMgMTA0LDQgMTA1LDUgMTA2LDYgMTA3 LDcgMTA4LDggMTA5LDkgMTEwLDEwIDExMSwxMSAxMTIsMTIgMTEzLDEzIDExNCwxNCAxMTUsMTUg MTE2LDE2IDExNywxNyAxMTgsMTggMTE5LDE5IDEyMCwyMCAxMjEsMjEiOworc3RhdGljIGNvbnN0 IGNoYXIgZGV2X2NtZF9kZWJ1Z18wW10gPSAiZGVidWcgMSI7CitzdGF0aWMgY29uc3QgY2hhciBk ZXZfY21kX2RlYnVnXzFbXSA9ICJkZWJ1ZyAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRf ZnJhZ3NfMFtdID0gImZyYWdzIDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RlbGF5 XzBbXSA9ICJkZWxheSAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kZWxheV8xW10g PSAiZGVsYXkgMjE0NzQ4MzY0NyI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3JhdGVfMFtd ID0gInJhdGUgMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3JhdGVfMVtdID0gInJhdGUg MTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfcmF0ZXBfMFtdID0gInJhdGVwIDAiOwor c3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9yYXRlcF8xW10gPSAicmF0ZXAgMjAwIjsKK3N0YXRp YyBjb25zdCBjaGFyIGRldl9jbWRfdWRwX3NyY19taW5fMFtdID0gInVkcF9zcmNfbWluIDEiOwor c3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF91ZHBfZHN0X21pbl8wW10gPSAidWRwX2RzdF9taW4g MiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3VkcF9zcmNfbWF4XzBbXSA9ICJ1ZHBfc3Jj X21heCAzIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdWRwX2RzdF9tYXhfMFtdID0gInVk cF9kc3RfbWF4IDQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9jbG9uZV9za2JfMFtdID0g ImNsb25lX3NrYiAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfY2xvbmVfc2tiXzFbXSA9 ICJjbG9uZV9za2IgMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2NvdW50XzBbXSA9ICJj b3VudCAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zcmNfbWFjX2NvdW50XzBbXSA9 ICJzcmNfbWFjX2NvdW50IDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdF9tYWNf Y291bnRfMFtdID0gImRzdF9tYWNfY291bnQgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9j bWRfYnVyc3RfMFtdID0gImJ1cnN0IDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9ub2Rl XzBbXSA9ICJub2RlIDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3htaXRfbW9kZV8w W10gPSAieG1pdF9tb2RlIHN0YXJ0X3htaXQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF94 bWl0X21vZGVfMVtdID0gInhtaXRfbW9kZSBuZXRpZl9yZWNlaXZlIjsKK3N0YXRpYyBjb25zdCBj aGFyIGRldl9jbWRfeG1pdF9tb2RlXzJbXSA9ICJ4bWl0X21vZGUgcXVldWVfeG1pdCI7CitzdGF0 aWMgY29uc3QgY2hhciBkZXZfY21kX3htaXRfbW9kZV8zW10gPSAieG1pdF9tb2RlIG5vbnNlbnNl IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZmxhZ18wW10gPSAiZmxhZyBVRFBDU1VNIjsK K3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZmxhZ18xW10gPSAiZmxhZyAhVURQQ1NVTSI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2ZsYWdfMltdID0gImZsYWcgbm9uc2Vuc2UiOworc3Rh dGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kc3RfbWluXzBbXSA9ICJkc3RfbWluIDEwMS4xMDIuMTAz LjEwNCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdF8wW10gPSAiZHN0IDEwMS4xMDIu MTAzLjEwNCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdF9tYXhfMFtdID0gImRzdF9t YXggMjAxLjIwMi4yMDMuMjA0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZHN0Nl8wW10g PSAiZHN0NiAyMDAxOmRiMzg6MTIzNDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDAiOworc3RhdGlj IGNvbnN0IGNoYXIgZGV2X2NtZF9kc3Q2X21pbl8wW10gPSAiZHN0Nl9taW4gMjAwMTpkYjg6MTIz NDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9k c3Q2X21heF8wW10gPSAiZHN0Nl9tYXggMjAwMTpkYjg6MTIzNDowMDAwOjAwMDA6MDAwMDowMDAw OjAwMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zcmM2XzBbXSA9ICJzcmM2IDIwMDE6 ZGIzODoxMjM0OjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMCI7CitzdGF0aWMgY29uc3QgY2hhciBk ZXZfY21kX3NyY19taW5fMFtdID0gInNyY19taW4gMTAxLjEwMi4xMDMuMTA0IjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfc3JjX21heF8wW10gPSAic3JjX21heCAyMDEuMjAyLjIwMy4yMDQi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kc3RfbWFjXzBbXSA9ICJkc3RfbWFjIDAxOjAy OjAzOjA0OjA1OjA2IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3JjX21hY18wW10gPSAi c3JjX21hYyAxMToxMjoxMzoxNDoxNToxNiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2Ns ZWFyX2NvdW50ZXJzXzBbXSA9ICJjbGVhcl9jb3VudGVycyI7CitzdGF0aWMgY29uc3QgY2hhciBk ZXZfY21kX2Zsb3dzXzBbXSA9ICJmbG93cyAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF9zcGlfMFtdID0gInNwaSAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9mbG93bGVu XzBbXSA9ICJmbG93bGVuIDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3F1ZXVlX21h cF9taW5fMFtdID0gInF1ZXVlX21hcF9taW4gMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21k X3F1ZXVlX21hcF9tYXhfMFtdID0gInF1ZXVlX21hcF9tYXggMiI7CitzdGF0aWMgY29uc3QgY2hh ciBkZXZfY21kX21wbHNfMFtdID0gIm1wbHMgMDAwMDAwMDEiOworc3RhdGljIGNvbnN0IGNoYXIg ZGV2X2NtZF9tcGxzXzFbXSA9ICJtcGxzIDAwMDAwMDAxLDAwMDAwMGYyIjsKK3N0YXRpYyBjb25z dCBjaGFyIGRldl9jbWRfbXBsc18yW10gPSAibXBscyAwMDAwMGYwMCwwMDAwMGYwMSwwMDAwMGYw MiwwMDAwMGYwMywwMDAwMGYwNCwwMDAwMGYwNSwwMDAwMGYwNiwwMDAwMGYwNywwMDAwMGYwOCww MDAwMGYwOSwwMDAwMGYwYSwwMDAwMGYwYiwwMDAwMGYwYywwMDAwMGYwZCwwMDAwMGYwZSwwMDAw MGYwZiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21wbHNfM1tdID0gIm1wbHMgMDAwMDBm MDAsMDAwMDBmMDEsMDAwMDBmMDIsMDAwMDBmMDMsMDAwMDBmMDQsMDAwMDBmMDUsMDAwMDBmMDYs MDAwMDBmMDcsMDAwMDBmMDgsMDAwMDBmMDksMDAwMDBmMGEsMDAwMDBmMGIsMDAwMDBmMGMsMDAw MDBmMGQsMDAwMDBmMGUsMDAwMDBmMGYsMDAwMDBmMTAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2 X2NtZF92bGFuX2lkXzBbXSA9ICJ2bGFuX2lkIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF92bGFuX3BfMFtdID0gInZsYW5fcCAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdmxh bl9jZmlfMFtdID0gInZsYW5fY2ZpIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF92bGFu X2lkXzFbXSA9ICJ2bGFuX2lkIDQwOTYiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zdmxh bl9pZF8wW10gPSAic3ZsYW5faWQgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3N2bGFu X3BfMFtdID0gInN2bGFuX3AgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3N2bGFuX2Nm aV8wW10gPSAic3ZsYW5fY2ZpIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zdmxhbl9p ZF8xW10gPSAic3ZsYW5faWQgNDA5NiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3Rvc18w W10gPSAidG9zIDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF90b3NfMVtdID0gInRvcyAw ZiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3Rvc18yW10gPSAidG9zIDBmZiI7CitzdGF0 aWMgY29uc3QgY2hhciBkZXZfY21kX3RyYWZmaWNfY2xhc3NfMFtdID0gInRyYWZmaWNfY2xhc3Mg ZjAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9za2JfcHJpb3JpdHlfMFtdID0gInNrYl9w cmlvcml0eSA5OTkiOworCitGSVhUVVJFKHByb2NfbmV0X3BrdGdlbikgeworCWludCBjdHJsX2Zk OworCWludCB0aHJfZmQ7CisJaW50IGRldl9mZDsKK307CisKK0ZJWFRVUkVfU0VUVVAocHJvY19u ZXRfcGt0Z2VuKSB7CisJaW50IHI7CisJc3NpemVfdCBsZW47CisKKwlyID0gc3lzdGVtKCJtb2Rw cm9iZSBwa3RnZW4iKTsKKwlBU1NFUlRfRVEociwgMCkgVEhfTE9HKCJDT05GSUdfTkVUX1BLVEdF TiBub3QgZW5hYmxlZCwgbW9kdWxlIHBrdGdlbiBub3QgbG9hZGVkPyIpOworCisJc2VsZi0+Y3Ry bF9mZCA9IG9wZW4oIi9wcm9jL25ldC9wa3RnZW4vcGdjdHJsIiwgT19SRFdSKTsKKwlBU1NFUlRf R0Uoc2VsZi0+Y3RybF9mZCwgMCkgVEhfTE9HKCJDT05GSUdfTkVUX1BLVEdFTiBub3QgZW5hYmxl ZCwgbW9kdWxlIHBrdGdlbiBub3QgbG9hZGVkPyIpOworCisJc2VsZi0+dGhyX2ZkID0gb3Blbigi L3Byb2MvbmV0L3BrdGdlbi9rcGt0Z2VuZF8wIiwgT19SRFdSKTsKKwlBU1NFUlRfR0Uoc2VsZi0+ dGhyX2ZkLCAwKSBUSF9MT0coIkNPTkZJR19ORVRfUEtUR0VOIG5vdCBlbmFibGVkLCBtb2R1bGUg cGt0Z2VuIG5vdCBsb2FkZWQ/Iik7CisKKwlsZW4gPSB3cml0ZShzZWxmLT50aHJfZmQsIHRocl9j bWRfYWRkX2xvb3BiYWNrXzAsIHNpemVvZih0aHJfY21kX2FkZF9sb29wYmFja18wKSk7CisJQVNT RVJUX0VRKGxlbiwgc2l6ZW9mKHRocl9jbWRfYWRkX2xvb3BiYWNrXzApKSBUSF9MT0coImRldmlj ZSBsb0AwIGFscmVhZHkgcmVnaXN0ZXJlZD8iKTsKKworCXNlbGYtPmRldl9mZCA9IG9wZW4oIi9w cm9jL25ldC9wa3RnZW4vbG9AMCIsIE9fUkRXUik7CisJQVNTRVJUX0dFKHNlbGYtPmRldl9mZCwg MCkgVEhfTE9HKCJkZXZpY2UgZW50cnkgZm9yIGxvQDAgbWlzc2luZz8iKTsKK30KKworRklYVFVS RV9URUFSRE9XTihwcm9jX25ldF9wa3RnZW4pIHsKKwlpbnQgcmV0OworCXNzaXplX3QgbGVuOwor CisJcmV0ID0gY2xvc2Uoc2VsZi0+ZGV2X2ZkKTsKKwlFWFBFQ1RfRVEocmV0LCAwKTsKKworCWxl biA9IHdyaXRlKHNlbGYtPnRocl9mZCwgdGhyX2NtZF9ybV9sb29wYmFja18wLCBzaXplb2YodGhy X2NtZF9ybV9sb29wYmFja18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKHRocl9jbWRfcm1f bG9vcGJhY2tfMCkpOworCisJcmV0ID0gY2xvc2Uoc2VsZi0+dGhyX2ZkKTsKKwlFWFBFQ1RfRVEo cmV0LCAwKTsKKworCXJldCA9IGNsb3NlKHNlbGYtPmN0cmxfZmQpOworCUVYUEVDVF9FUShyZXQs IDApOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCB3cm9uZ19jdHJsX2NtZCkgeworCWZv ciAoaW50IGkgPSAwOyBpIDw9IHNpemVvZih3cm9uZ19jdHJsX2NtZCk7IGkrKykgeworCQlzc2l6 ZV90IGxlbjsKKworCQlsZW4gPSB3cml0ZShzZWxmLT5jdHJsX2ZkLCB3cm9uZ19jdHJsX2NtZCwg aSk7CisJCUVYUEVDVF9FUShsZW4sIC0xKTsKKwkJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwpOwor CX0KK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgY3RybF9jbWQpIHsKKwlzc2l6ZV90IGxl bjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmN0cmxfZmQsIGN0cmxfY21kX3N0b3AsIHNpemVvZihj dHJsX2NtZF9zdG9wKSk7CisJRVhQRUNUX0VRKGxlbiwJc2l6ZW9mKGN0cmxfY21kX3N0b3ApKTsK KworCWxlbiA9IHdyaXRlKHNlbGYtPmN0cmxfZmQsIGN0cmxfY21kX3N0b3AsIHNpemVvZihjdHJs X2NtZF9zdG9wKSAtIDEpOworCUVYUEVDVF9FUShsZW4sCXNpemVvZihjdHJsX2NtZF9zdG9wKSAt IDEpOworCisJbGVuID0gd3JpdGUoc2VsZi0+Y3RybF9mZCwgY3RybF9jbWRfc3RhcnQsIHNpemVv ZihjdHJsX2NtZF9zdGFydCkpOworCUVYUEVDVF9FUShsZW4sCXNpemVvZihjdHJsX2NtZF9zdGFy dCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+Y3RybF9mZCwgY3RybF9jbWRfc3RhcnQsIHNpemVv ZihjdHJsX2NtZF9zdGFydCkgLSAxKTsKKwlFWFBFQ1RfRVEobGVuLAlzaXplb2YoY3RybF9jbWRf c3RhcnQpIC0gMSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5jdHJsX2ZkLCBjdHJsX2NtZF9yZXNl dCwgc2l6ZW9mKGN0cmxfY21kX3Jlc2V0KSk7CisJRVhQRUNUX0VRKGxlbiwJc2l6ZW9mKGN0cmxf Y21kX3Jlc2V0KSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5jdHJsX2ZkLCBjdHJsX2NtZF9yZXNl dCwgc2l6ZW9mKGN0cmxfY21kX3Jlc2V0KSAtIDEpOworCUVYUEVDVF9FUShsZW4sCXNpemVvZihj dHJsX2NtZF9yZXNldCkgLSAxKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgd3Jvbmdf dGhyX2NtZCkgeworCWZvciAoaW50IGkgPSAwOyBpIDw9IHNpemVvZih3cm9uZ190aHJfY21kKTsg aSsrKSB7CisJCXNzaXplX3QgbGVuOworCisJCWxlbiA9IHdyaXRlKHNlbGYtPnRocl9mZCwgd3Jv bmdfdGhyX2NtZCwgaSk7CisJCUVYUEVDVF9FUShsZW4sIC0xKTsKKwkJRVhQRUNUX0VRKGVycm5v LCBFSU5WQUwpOworCX0KK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgbGVnYWN5X3Rocl9j bWQpIHsKKwlmb3IgKGludCBpID0gMDsgaSA8PSBzaXplb2YobGVnYWN5X3Rocl9jbWQpOyBpKysp IHsKKwkJc3NpemVfdCBsZW47CisKKwkJbGVuID0gd3JpdGUoc2VsZi0+dGhyX2ZkLCBsZWdhY3lf dGhyX2NtZCwgaSk7CisJCWlmIChpIDwgKHNpemVvZihsZWdhY3lfdGhyX2NtZCkgLSAxKSkgewor CQkJLy8gaW5jb21wbGV0ZSBjb21tYW5kIHN0cmluZworCQkJRVhQRUNUX0VRKGxlbiwgLTEpOwor CQkJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwpOworCQl9IGVsc2UgeworCQkJLy8gY29tcGxldGUg Y29tbWFuZCBzdHJpbmcgd2l0aG91dC93aXRoIHRyYWlsaW5nICdcMCcKKwkJCUVYUEVDVF9FUShs ZW4sIGkpOworCQl9CisJfQorfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCB3cm9uZ19kZXZf Y21kKSB7CisJZm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZW9mKHdyb25nX2Rldl9jbWQpOyBpKysp IHsKKwkJc3NpemVfdCBsZW47CisKKwkJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCB3cm9uZ19k ZXZfY21kLCBpKTsKKwkJRVhQRUNUX0VRKGxlbiwgLTEpOworCQlFWFBFQ1RfRVEoZXJybm8sIEVJ TlZBTCk7CisJfQorfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX21pbl9wa3Rf c2l6ZSkgeworCXNzaXplX3QgbGVuOworCisJLy8gd2l0aCB0cmFpbGluZyAnXDAnCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8wLCBzaXplb2YoZGV2X2Nt ZF9taW5fcGt0X3NpemVfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9w a3Rfc2l6ZV8wKSk7CisKKwkvLyB3aXRob3V0IHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShz ZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzAsIHNpemVvZihkZXZfY21kX21pbl9w a3Rfc2l6ZV8wKSAtIDEpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rf c2l6ZV8wKSAtIDEpOworCisJLy8gd2l0aCB0cmFpbGluZyAnXDAnCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8xLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0 X3NpemVfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8x KSk7CisKKwkvLyB3aXRob3V0IHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZf ZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzEsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8x KSAtIDEpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8xKSAt IDEpOworCisJLy8gd2l0aCB0cmFpbGluZyAnXDAnCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8yLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfMikp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSk7CisKKwkv LyB3aXRob3V0IHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfbWluX3BrdF9zaXplXzIsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSAtIDEpOwor CUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSAtIDEpOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8zLCBzaXplb2Yo ZGV2X2NtZF9taW5fcGt0X3NpemVfMykpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X21pbl9wa3Rfc2l6ZV8zKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf bWluX3BrdF9zaXplXzQsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV80KSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzQpKTsKKworCWxlbiA9IHdyaXRl KHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0X3NpemVfNSwgc2l6ZW9mKGRldl9jbWRfbWlu X3BrdF9zaXplXzUpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3Np emVfNSkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6 ZV82LCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfNikpOworCUVYUEVDVF9FUShsZW4sIHNp emVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV82KSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZf ZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzcsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV83 KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzcpKTsKKwor CWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0X3NpemVfOCwgc2l6ZW9m KGRldl9jbWRfbWluX3BrdF9zaXplXzgpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2Nt ZF9taW5fcGt0X3NpemVfOCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21k X21heF9wa3Rfc2l6ZSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2 X2ZkLCBkZXZfY21kX21heF9wa3Rfc2l6ZV8wLCBzaXplb2YoZGV2X2NtZF9tYXhfcGt0X3NpemVf MCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21heF9wa3Rfc2l6ZV8wKSk7Cit9 CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcGt0X3NpemUpIHsKKwlzc2l6ZV90 IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9wa3Rfc2l6ZV8wLCBz aXplb2YoZGV2X2NtZF9wa3Rfc2l6ZV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9j bWRfcGt0X3NpemVfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2lt aXhfd2VpZ2h0cykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX2ltaXhfd2VpZ2h0c18wLCBzaXplb2YoZGV2X2NtZF9pbWl4X3dlaWdodHNfMCkp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2ltaXhfd2VpZ2h0c18wKSk7CisKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfaW1peF93ZWlnaHRzXzEsIHNpemVvZihk ZXZfY21kX2ltaXhfd2VpZ2h0c18xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf aW1peF93ZWlnaHRzXzEpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9p bWl4X3dlaWdodHNfMiwgc2l6ZW9mKGRldl9jbWRfaW1peF93ZWlnaHRzXzIpKTsKKwlFWFBFQ1Rf RVEobGVuLCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBFMkJJRyk7Cit9CisKK1RFU1RfRihwcm9j X25ldF9wa3RnZW4sIGRldl9jbWRfZGVidWcpIHsKKwlzc2l6ZV90IGxlbjsKKworCS8vIGRlYnVn IG9uCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RlYnVnXzAsIHNpemVvZihk ZXZfY21kX2RlYnVnXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kZWJ1Z18w KSk7CisKKwkvLyBkZWJ1ZyBvZmYKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf ZGVidWdfMSwgc2l6ZW9mKGRldl9jbWRfZGVidWdfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVv ZihkZXZfY21kX2RlYnVnXzEpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2Nt ZF9mcmFncykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBk ZXZfY21kX2ZyYWdzXzAsIHNpemVvZihkZXZfY21kX2ZyYWdzXzApKTsKKwlFWFBFQ1RfRVEobGVu LCBzaXplb2YoZGV2X2NtZF9mcmFnc18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4s IGRldl9jbWRfZGVsYXkpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF9kZWxheV8wLCBzaXplb2YoZGV2X2NtZF9kZWxheV8wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZGVsYXlfMCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ ZGV2X2ZkLCBkZXZfY21kX2RlbGF5XzEsIHNpemVvZihkZXZfY21kX2RlbGF5XzEpKTsKKwlFWFBF Q1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kZWxheV8xKSk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfcmF0ZSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3JhdGVfMCwgc2l6ZW9mKGRldl9jbWRfcmF0ZV8wKSk7CisJ RVhQRUNUX0VRKGxlbiwgLTEpOworCUVYUEVDVF9FUShlcnJubywgRUlOVkFMKTsKKworCWxlbiA9 IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9yYXRlXzEsIHNpemVvZihkZXZfY21kX3JhdGVf MSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3JhdGVfMSkpOworfQorCitURVNU X0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3JhdGVwKSB7CisJc3NpemVfdCBsZW47CisKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfcmF0ZXBfMCwgc2l6ZW9mKGRldl9jbWRf cmF0ZXBfMCkpOworCUVYUEVDVF9FUShsZW4sIC0xKTsKKwlFWFBFQ1RfRVEoZXJybm8sIEVJTlZB TCk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfcmF0ZXBfMSwgc2l6ZW9m KGRldl9jbWRfcmF0ZXBfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3JhdGVw XzEpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF91ZHBfc3JjX21pbikg eworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3Vk cF9zcmNfbWluXzAsIHNpemVvZihkZXZfY21kX3VkcF9zcmNfbWluXzApKTsKKwlFWFBFQ1RfRVEo bGVuLCBzaXplb2YoZGV2X2NtZF91ZHBfc3JjX21pbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfdWRwX2RzdF9taW4pIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9 IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF91ZHBfZHN0X21pbl8wLCBzaXplb2YoZGV2X2Nt ZF91ZHBfZHN0X21pbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdWRwX2Rz dF9taW5fMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3VkcF9zcmNf bWF4KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfdWRwX3NyY19tYXhfMCwgc2l6ZW9mKGRldl9jbWRfdWRwX3NyY19tYXhfMCkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX3VkcF9zcmNfbWF4XzApKTsKK30KKworVEVTVF9GKHBy b2NfbmV0X3BrdGdlbiwgZGV2X2NtZF91ZHBfZHN0X21heCkgeworCXNzaXplX3QgbGVuOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3VkcF9kc3RfbWF4XzAsIHNpemVvZihk ZXZfY21kX3VkcF9kc3RfbWF4XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF91 ZHBfZHN0X21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfY2xv bmVfc2tiKSB7CisJc3NpemVfdCBsZW47CisKKwkvLyBjbG9uZV9za2Igb24gKGdpdmVzIEVPUE5P VFNVUFAgb24gbG8gZGV2aWNlKQorCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9j bG9uZV9za2JfMCwgc2l6ZW9mKGRldl9jbWRfY2xvbmVfc2tiXzApKTsKKwlFWFBFQ1RfRVEobGVu LCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBFT1BOT1RTVVBQKTsKKworCS8vIGNsb25lX3NrYiBv ZmYKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfY2xvbmVfc2tiXzEsIHNpemVv ZihkZXZfY21kX2Nsb25lX3NrYl8xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf Y2xvbmVfc2tiXzEpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9jb3Vu dCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X2NvdW50XzAsIHNpemVvZihkZXZfY21kX2NvdW50XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXpl b2YoZGV2X2NtZF9jb3VudF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9j bWRfc3JjX21hY19jb3VudCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ ZGV2X2ZkLCBkZXZfY21kX3NyY19tYWNfY291bnRfMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY19j b3VudF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY19jb3VudF8w KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0X21hY19jb3VudCkg eworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2Rz dF9tYWNfY291bnRfMCwgc2l6ZW9mKGRldl9jbWRfZHN0X21hY19jb3VudF8wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZHN0X21hY19jb3VudF8wKSk7Cit9CisKK1RFU1RfRihw cm9jX25ldF9wa3RnZW4sIGRldl9jbWRfYnVyc3QpIHsKKwlzc2l6ZV90IGxlbjsKKworCS8vIGJ1 cnN0IG9mZgorCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9idXJzdF8wLCBzaXpl b2YoZGV2X2NtZF9idXJzdF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfYnVy c3RfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX25vZGUpIHsKKwlz c2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9ub2RlXzAs IHNpemVvZihkZXZfY21kX25vZGVfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X25vZGVfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3htaXRfbW9k ZSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X3htaXRfbW9kZV8wLCBzaXplb2YoZGV2X2NtZF94bWl0X21vZGVfMCkpOworCUVYUEVDVF9FUShs ZW4sIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5k ZXZfZmQsIGRldl9jbWRfeG1pdF9tb2RlXzEsIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8xKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfeG1pdF9tb2RlXzEpKTsKKworCWxlbiA9 IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF94bWl0X21vZGVfMiwgc2l6ZW9mKGRldl9jbWRf eG1pdF9tb2RlXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF94bWl0X21vZGVf MikpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3htaXRfbW9kZV8zLCBz aXplb2YoZGV2X2NtZF94bWl0X21vZGVfMykpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZf Y21kX3htaXRfbW9kZV8zKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRf ZmxhZykgeworCXNzaXplX3QgbGVuOworCisJLy8gZmxhZyBVRFBDU1VNIG9uCisJbGVuID0gd3Jp dGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ZsYWdfMCwgc2l6ZW9mKGRldl9jbWRfZmxhZ18wKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxhZ18wKSk7CisKKwkvLyBmbGFnIFVE UENTVU0gb2ZmCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ZsYWdfMSwgc2l6 ZW9mKGRldl9jbWRfZmxhZ18xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxh Z18xKSk7CisKKwkvLyBmbGFnIGludmFsaWQKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRl dl9jbWRfZmxhZ18yLCBzaXplb2YoZGV2X2NtZF9mbGFnXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBz aXplb2YoZGV2X2NtZF9mbGFnXzIpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2 X2NtZF9kc3RfbWluKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZf ZmQsIGRldl9jbWRfZHN0X21pbl8wLCBzaXplb2YoZGV2X2NtZF9kc3RfbWluXzApKTsKKwlFWFBF Q1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kc3RfbWluXzApKTsKK30KKworVEVTVF9GKHByb2Nf bmV0X3BrdGdlbiwgZGV2X2NtZF9kc3QpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRl KHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kc3RfMCwgc2l6ZW9mKGRldl9jbWRfZHN0XzApKTsKKwlF WFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kc3RfMCkpOworfQorCitURVNUX0YocHJvY19u ZXRfcGt0Z2VuLCBkZXZfY21kX2RzdF9tYXgpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdy aXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kc3RfbWF4XzAsIHNpemVvZihkZXZfY21kX2RzdF9t YXhfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdF9tYXhfMCkpOworfQor CitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2RzdDYpIHsKKwlzc2l6ZV90IGxlbjsK KworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kc3Q2XzAsIHNpemVvZihkZXZf Y21kX2RzdDZfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdDZfMCkpOwor fQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2RzdDZfbWluKSB7CisJc3NpemVf dCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZHN0Nl9taW5fMCwg c2l6ZW9mKGRldl9jbWRfZHN0Nl9taW5fMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZf Y21kX2RzdDZfbWluXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9k c3Q2X21heCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBk ZXZfY21kX2RzdDZfbWF4XzAsIHNpemVvZihkZXZfY21kX2RzdDZfbWF4XzApKTsKKwlFWFBFQ1Rf RVEobGVuLCBzaXplb2YoZGV2X2NtZF9kc3Q2X21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfc3JjNikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyYzZfMCwgc2l6ZW9mKGRldl9jbWRfc3JjNl8wKSk7CisJ RVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjNl8wKSk7Cit9CisKK1RFU1RfRihwcm9j X25ldF9wa3RnZW4sIGRldl9jbWRfc3JjX21pbikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19taW5fMCwgc2l6ZW9mKGRldl9jbWRfc3Jj X21pbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjX21pbl8wKSk7Cit9 CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjX21heCkgeworCXNzaXplX3Qg bGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19tYXhfMCwgc2l6 ZW9mKGRldl9jbWRfc3JjX21heF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf c3JjX21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0X21h YykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X2RzdF9tYWNfMCwgc2l6ZW9mKGRldl9jbWRfZHN0X21hY18wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfZHN0X21hY18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4s IGRldl9jbWRfc3JjX21hYykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ ZGV2X2ZkLCBkZXZfY21kX3NyY19tYWNfMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY18wKSk7CisJ RVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY18wKSk7Cit9CisKK1RFU1RfRihw cm9jX25ldF9wa3RnZW4sIGRldl9jbWRfY2xlYXJfY291bnRlcnMpIHsKKwlzc2l6ZV90IGxlbjsK KworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9jbGVhcl9jb3VudGVyc18wLCBz aXplb2YoZGV2X2NtZF9jbGVhcl9jb3VudGVyc18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9m KGRldl9jbWRfY2xlYXJfY291bnRlcnNfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2Vu LCBkZXZfY21kX2Zsb3dzKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5k ZXZfZmQsIGRldl9jbWRfZmxvd3NfMCwgc2l6ZW9mKGRldl9jbWRfZmxvd3NfMCkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX2Zsb3dzXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0 X3BrdGdlbiwgZGV2X2NtZF9zcGkpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNl bGYtPmRldl9mZCwgZGV2X2NtZF9zcGlfMCwgc2l6ZW9mKGRldl9jbWRfc3BpXzApKTsKKwlFWFBF Q1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcGlfMCkpIFRIX0xPRygiQ09ORklHX1hGUk0gbm90 IGVuYWJsZWQ/Iik7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZmxvd2xl bikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X2Zsb3dsZW5fMCwgc2l6ZW9mKGRldl9jbWRfZmxvd2xlbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfZmxvd2xlbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4s IGRldl9jbWRfcXVldWVfbWFwX21pbikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3F1ZXVlX21hcF9taW5fMCwgc2l6ZW9mKGRldl9jbWRfcXVl dWVfbWFwX21pbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFw X21pbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcXVldWVfbWFw X21heCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZf Y21kX3F1ZXVlX21hcF9tYXhfMCwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21heF8wKSk7CisJ RVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21heF8wKSk7Cit9CisKK1RF U1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfbXBscykgeworCXNzaXplX3QgbGVuOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21wbHNfMCwgc2l6ZW9mKGRldl9jbWRf bXBsc18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbXBsc18wKSk7CisKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbXBsc18xLCBzaXplb2YoZGV2X2NtZF9t cGxzXzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9tcGxzXzEpKTsKKworCWxl biA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9tcGxzXzIsIHNpemVvZihkZXZfY21kX21w bHNfMikpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21wbHNfMikpOworCisJbGVu ID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21wbHNfMywgc2l6ZW9mKGRldl9jbWRfbXBs c18zKSk7CisJRVhQRUNUX0VRKGxlbiwgLTEpOworCUVYUEVDVF9FUShlcnJubywgRTJCSUcpOwor fQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3ZsYW5faWQpIHsKKwlzc2l6ZV90 IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF92bGFuX2lkXzAsIHNp emVvZihkZXZfY21kX3ZsYW5faWRfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X3ZsYW5faWRfMCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3ZsYW5f cF8wLCBzaXplb2YoZGV2X2NtZF92bGFuX3BfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihk ZXZfY21kX3ZsYW5fcF8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf dmxhbl9jZmlfMCwgc2l6ZW9mKGRldl9jbWRfdmxhbl9jZmlfMCkpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX3ZsYW5fY2ZpXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF92bGFuX2lkXzEsIHNpemVvZihkZXZfY21kX3ZsYW5faWRfMSkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX3ZsYW5faWRfMSkpOworfQorCitURVNUX0YocHJvY19u ZXRfcGt0Z2VuLCBkZXZfY21kX3N2bGFuX2lkKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3 cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3ZsYW5faWRfMCwgc2l6ZW9mKGRldl9jbWRfc3Zs YW5faWRfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX2lkXzApKTsK KworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9zdmxhbl9wXzAsIHNpemVvZihk ZXZfY21kX3N2bGFuX3BfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2bGFu X3BfMCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3N2bGFuX2NmaV8w LCBzaXplb2YoZGV2X2NtZF9zdmxhbl9jZmlfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihk ZXZfY21kX3N2bGFuX2NmaV8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfc3ZsYW5faWRfMSwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5faWRfMSkpOworCUVYUEVDVF9FUShs ZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX2lkXzEpKTsKK30KKworCitURVNUX0YocHJvY19uZXRf cGt0Z2VuLCBkZXZfY21kX3RvcykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3Rvc18wLCBzaXplb2YoZGV2X2NtZF90b3NfMCkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX3Rvc18wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5k ZXZfZmQsIGRldl9jbWRfdG9zXzEsIHNpemVvZihkZXZfY21kX3Rvc18xKSk7CisJRVhQRUNUX0VR KGxlbiwgc2l6ZW9mKGRldl9jbWRfdG9zXzEpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF90b3NfMiwgc2l6ZW9mKGRldl9jbWRfdG9zXzIpKTsKKwlFWFBFQ1RfRVEobGVu LCBzaXplb2YoZGV2X2NtZF90b3NfMikpOworfQorCisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4s IGRldl9jbWRfdHJhZmZpY19jbGFzcykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3RyYWZmaWNfY2xhc3NfMCwgc2l6ZW9mKGRldl9jbWRfdHJh ZmZpY19jbGFzc18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdHJhZmZpY19j bGFzc18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc2tiX3ByaW9y aXR5KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfc2tiX3ByaW9yaXR5XzAsIHNpemVvZihkZXZfY21kX3NrYl9wcmlvcml0eV8wKSk7CisJRVhQ RUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc2tiX3ByaW9yaXR5XzApKTsKK30KKworVEVTVF9I QVJORVNTX01BSU4KLS0gCjIuNDguMQoK