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 Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3C69EC4332F for ; Wed, 4 Jan 2023 03:58:41 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4NmwnW4sTrz308w for ; Wed, 4 Jan 2023 14:58:39 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=russell.cc header.i=@russell.cc header.a=rsa-sha256 header.s=fm3 header.b=YE+5gaIr; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.a=rsa-sha256 header.s=fm2 header.b=rhnRIELK; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=russell.cc (client-ip=66.111.4.27; helo=out3-smtp.messagingengine.com; envelope-from=ruscur@russell.cc; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=russell.cc header.i=@russell.cc header.a=rsa-sha256 header.s=fm3 header.b=YE+5gaIr; dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.a=rsa-sha256 header.s=fm2 header.b=rhnRIELK; dkim-atps=neutral Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4NmwmT67Rtz2xkx for ; Wed, 4 Jan 2023 14:57:45 +1100 (AEDT) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id C62F75C013E; Tue, 3 Jan 2023 22:57:43 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Tue, 03 Jan 2023 22:57:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=russell.cc; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm3; t=1672804663; x= 1672891063; bh=NkYVcwfEcCFIzse50bNaf2RP+wgnvFRuAhQZFCg8WL0=; b=Y E+5gaIrSObAUCej+NEzuwdy/nUrm4VLCdRJT1ASz5nM6K4TFtS9s8U03HBNnO2/2 MPYgDnln7qmMKEYCdwSDEbzYsgCavkDumsJswjssS43BVYOOtvvac2mkDeX+BlMQ 0iMiAjeSzUBKYW9UW55l52WQRH+zCvu7bK2PbJ7RZH0ycV/OAG5xOqhIMSH9px9B gl9WZ8OOOKhhn2Zu+xBxmzZxNCQMgqN276NIv/xtQN9VDXkS9cMWemRqGu2l2rpX yBKF3NfwuKEaCGZaNwIOgWrTxjMQ/uyiLFu2AmH4PZqYiyYX3P7KhnuMgI5NFGQD 9/wOxWDguhoftZ7C8QwAQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1672804663; x= 1672891063; bh=NkYVcwfEcCFIzse50bNaf2RP+wgnvFRuAhQZFCg8WL0=; b=r hnRIELKH51XcbXxeC1A0FDNR6VdvNTQqmTlCmi8hqJXh5WuwyZVsJuc41LNxy2fW a9J1EQ5No/Ie3tJfV5Wpj96arDT2iA028nnxCUn7EvGLC95g4HJHumKxEdXJ4dJJ DjLgFpgkRzdtnLfw1Yy4+pNJWtpJesQ45wYdrmGdI7xGCQ/GU/FzGbC6XPiVsk4d KF7vxn19HvbITth0KsuItdCA1i56wLz5ixoM491h+DqKictWgoEA7Iy90cAQtBts pwkUFGRwjenJEl/ZX2n0Uqli0BTkC4u2rKopPIcvFI05UeehtLjddpTQmaBDoSpq 2z1mjd53e5lYzr9+BqFtw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrjeehgdeijecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecufghrlhcuvffnffculdduhedmnecujfgurhepkffuhf fvveffjghftgfgfgggsehtsgertddtreejnecuhfhrohhmpeftuhhsshgvlhhlucevuhhr rhgvhicuoehruhhstghurhesrhhushhsvghllhdrtggtqeenucggtffrrghtthgvrhhnpe ehudeiudehtdeufeeugeffgfduudfgffevkeevgfetteehvdefvdehuefhgfehhfenucev lhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehruhhstghurh esrhhushhsvghllhdrtggt X-ME-Proxy: Feedback-ID: i4421424f:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 3 Jan 2023 22:57:41 -0500 (EST) Message-ID: <98d6eb9c3b01c5ed67ff2e8ff812c3f18840a2f7.camel@russell.cc> Subject: Re: [PATCH 3/4] powerpc/pseries: Expose PLPKS config values, support additional fields From: Russell Currey To: Andrew Donnellan , linuxppc-dev@lists.ozlabs.org Date: Wed, 04 Jan 2023 14:57:39 +1100 In-Reply-To: <20221220071626.1426786-4-ajd@linux.ibm.com> References: <20221220071626.1426786-1-ajd@linux.ibm.com> <20221220071626.1426786-4-ajd@linux.ibm.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.2 (3.46.2-1.fc37) MIME-Version: 1.0 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: nayna@linux.ibm.com, gjoyce@linux.ibm.com, bgray@linux.ibm.com, brking@linux.ibm.com, gcwilson@linux.ibm.com, stefanb@linux.ibm.com Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" T24gVHVlLCAyMDIyLTEyLTIwIGF0IDE4OjE2ICsxMTAwLCBBbmRyZXcgRG9ubmVsbGFuIHdyb3Rl Ogo+IEZyb206IE5heW5hIEphaW4gPG5heW5hQGxpbnV4LmlibS5jb20+Cj4gCj4gVGhlIHBscGtz IGRyaXZlciB1c2VzIHRoZSBIX1BLU19HRVRfQ09ORklHIGhjYWxsIHRvIHJldHJpZXZlCj4gY29u ZmlndXJhdGlvbgo+IGFuZCBzdGF0dXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFBLUyBmcm9tIHRo ZSBoeXBlcnZpc29yLgo+IAo+IFVwZGF0ZSBfcGxwa3NfZ2V0X2NvbmZpZygpIHRvIGhhbmRsZSBz b21lIGFkZGl0aW9uYWwgZmllbGRzLiBBZGQKPiBnZXR0ZXIKPiBmdW5jdGlvbnMgdG8gYWxsb3cg dGhlIFBLUyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRvIGJlIGFjY2Vzc2VkCj4gZnJvbQo+ IG90aGVyIGZpbGVzLgo+IAo+IFdoaWxlIHdlJ3JlIGhlcmUsIG1vdmUgdGhlIGNvbmZpZyBzdHJ1 Y3QgaW4gX3BscGtzX2dldF9jb25maWcoKSBvZmYKPiB0aGUKPiBzdGFjayAtIGl0J3MgZ2V0dGlu ZyBsYXJnZSBhbmQgd2UgYWxzbyBuZWVkIHRvIG1ha2Ugc3VyZSBpdCBkb2Vzbid0Cj4gY3Jvc3MK PiBhIHBhZ2UgYm91bmRhcnkuCj4gCj4gU2lnbmVkLW9mZi1ieTogTmF5bmEgSmFpbiA8bmF5bmFA bGludXguaWJtLmNvbT4KPiBbYWpkOiBzcGxpdCBwYXRjaCwgZXh0ZW5kIHRvIHN1cHBvcnQgYWRk aXRpb25hbCB2MyBBUEkgZmllbGRzLCBtaW5vcgo+IGZpeGVzXQo+IENvLWRldmVsb3BlZC1ieTog QW5kcmV3IERvbm5lbGxhbiA8YWpkQGxpbnV4LmlibS5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQW5k cmV3IERvbm5lbGxhbiA8YWpkQGxpbnV4LmlibS5jb20+Cj4gLS0tCj4gwqBhcmNoL3Bvd2VycGMv cGxhdGZvcm1zL3BzZXJpZXMvcGxwa3MuYyB8IDExOCArKysrKysrKysrKysrKysrKysrKysrLQo+ IC0tCj4gwqBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcGxwa3MuaCB8wqAgNTggKysr KysrKysrKysrCj4gwqAyIGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspLCAxMiBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVz L3BscGtzLmMKPiBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9wbHBrcy5jCj4gaW5k ZXggOGNjYzkxMTQzMzcwLi5jNWFlMDBhOGE5NjggMTAwNjQ0Cj4gLS0tIGEvYXJjaC9wb3dlcnBj L3BsYXRmb3Jtcy9wc2VyaWVzL3BscGtzLmMKPiArKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z L3BzZXJpZXMvcGxwa3MuYwo+IEBAIC0zOCw4ICszOCwxNiBAQCBzdGF0aWMgdTggKm9zcGFzc3dv cmQ7Cj4gwqBzdGF0aWMgdTE2IG9zcGFzc3dvcmRsZW5ndGg7Cj4gwqAKPiDCoC8vIFJldHJpZXZl ZCB3aXRoIEhfUEtTX0dFVF9DT05GSUcKPiArc3RhdGljIHU4IHZlcnNpb247Cj4gK3N0YXRpYyB1 MTYgb2Jqb3ZlcmhlYWQ7Cj4gwqBzdGF0aWMgdTE2IG1heHB3c2l6ZTsKPiDCoHN0YXRpYyB1MTYg bWF4b2Jqc2l6ZTsKPiArc3RhdGljIHMxNiBtYXhvYmpsYWJlbHNpemU7Cj4gK3N0YXRpYyB1MzIg dG90YWxzaXplOwo+ICtzdGF0aWMgdTMyIHVzZWRzcGFjZTsKPiArc3RhdGljIHUzMiBzdXBwb3J0 ZWRwb2xpY2llczsKPiArc3RhdGljIHUzMiBtYXhsYXJnZW9iamVjdHNpemU7Cj4gK3N0YXRpYyB1 NjQgc2lnbmVkdXBkYXRlYWxnb3JpdGhtczsKPiDCoAo+IMKgc3RydWN0IHBscGtzX2F1dGggewo+ IMKgwqDCoMKgwqDCoMKgwqB1OCB2ZXJzaW9uOwo+IEBAIC0yMjAsMzIgKzIyOCwxMTggQEAgc3Rh dGljIHN0cnVjdCBsYWJlbCAqY29uc3RydWN0X2xhYmVsKGNoYXIKPiAqY29tcG9uZW50LCB1OCB2 YXJvcywgdTggKm5hbWUsCj4gwqBzdGF0aWMgaW50IF9wbHBrc19nZXRfY29uZmlnKHZvaWQpCj4g wqB7Cj4gwqDCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGxvbmcgcmV0YnVmW1BMUEFSX0hDQUxMX0JV RlNJWkVdID0geyAwIH07Cj4gLcKgwqDCoMKgwqDCoMKgc3RydWN0IHsKPiArwqDCoMKgwqDCoMKg wqBzdHJ1Y3QgY29uZmlnIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHU4IHZl cnNpb247Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1OCBmbGFnczsKPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgX19iZTMyIHJzdmQwOwo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBfX2JlMTYgcnN2ZDA7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoF9fYmUxNiBvYmpvdmVyaGVhZDsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoF9fYmUxNiBtYXhwd3NpemU7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBf X2JlMTYgbWF4b2JqbGFiZWxzaXplOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg X19iZTE2IG1heG9ianNpemU7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBfX2Jl MzIgdG90YWxzaXplOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgX19iZTMyIHVz ZWRzcGFjZTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoF9fYmUzMiBzdXBwb3J0 ZWRwb2xpY2llczsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgX19iZTY0IHJzdmQx Owo+IC3CoMKgwqDCoMKgwqDCoH0gX19wYWNrZWQgY29uZmlnOwo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBfX2JlMzIgbWF4bGFyZ2VvYmplY3RzaXplOwo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBfX2JlNjQgc2lnbmVkdXBkYXRlYWxnb3JpdGhtczsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTggcnN2ZDFbNDc2XTsKPiArwqDCoMKgwqDCoMKgwqB9 IF9fcGFja2VkICpjb25maWc7Cj4gwqDCoMKgwqDCoMKgwqDCoHNpemVfdCBzaXplOwo+IC3CoMKg wqDCoMKgwqDCoGludCByYzsKPiArwqDCoMKgwqDCoMKgwqBpbnQgcmMgPSAwOwo+ICsKPiArwqDC oMKgwqDCoMKgwqBzaXplID0gc2l6ZW9mKCpjb25maWcpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqAv LyBDb25maWcgc3RydWN0IG11c3Qgbm90IGNyb3NzIGEgcGFnZSBib3VuZGFyeS4gU28gbG9uZyBh cwo+IHRoZSBzdHJ1Y3QKPiArwqDCoMKgwqDCoMKgwqAvLyBzaXplIGlzIGEgcG93ZXIgb2YgMiwg dGhpcyBzaG91bGQgYmUgZmluZSBhcyBhbGlnbm1lbnQgaXMKPiBndWFyYW50ZWVkCj4gK8KgwqDC oMKgwqDCoMKgY29uZmlnID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKPiArwqDCoMKgwqDC oMKgwqBpZiAoIWNvbmZpZykgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYyA9 IC1FTk9NRU07Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZXJyOwo+ICvC oMKgwqDCoMKgwqDCoH0KPiDCoAo+IC3CoMKgwqDCoMKgwqDCoHNpemUgPSBzaXplb2YoY29uZmln KTsKPiArwqDCoMKgwqDCoMKgwqByYyA9IHBscGFyX2hjYWxsKEhfUEtTX0dFVF9DT05GSUcsIHJl dGJ1ZiwKPiB2aXJ0X3RvX3BoeXMoY29uZmlnKSwgc2l6ZSk7Cj4gwqAKPiAtwqDCoMKgwqDCoMKg wqByYyA9IHBscGFyX2hjYWxsKEhfUEtTX0dFVF9DT05GSUcsIHJldGJ1ZiwKPiB2aXJ0X3RvX3Bo eXMoJmNvbmZpZyksIHNpemUpOwo+ICvCoMKgwqDCoMKgwqDCoGlmIChyYyAhPSBIX1NVQ0NFU1Mp IHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmMgPSBwc2VyaWVzX3N0YXR1c190 b19lcnIocmMpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIGVycjsKPiAr wqDCoMKgwqDCoMKgwqB9Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqBpZiAocmMgIT0gSF9TVUNDRVNT KQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcHNlcmllc19zdGF0dXNf dG9fZXJyKHJjKTsKPiArwqDCoMKgwqDCoMKgwqB2ZXJzaW9uID0gY29uZmlnLT52ZXJzaW9uOwo+ ICvCoMKgwqDCoMKgwqDCoG9iam92ZXJoZWFkID0gYmUxNl90b19jcHUoY29uZmlnLT5vYmpvdmVy aGVhZCk7Cj4gK8KgwqDCoMKgwqDCoMKgbWF4cHdzaXplID0gYmUxNl90b19jcHUoY29uZmlnLT5t YXhwd3NpemUpOwo+ICvCoMKgwqDCoMKgwqDCoG1heG9ianNpemUgPSBiZTE2X3RvX2NwdShjb25m aWctPm1heG9ianNpemUpOwo+ICvCoMKgwqDCoMKgwqDCoG1heG9iamxhYmVsc2l6ZSA9IGJlMTZf dG9fY3B1KGNvbmZpZy0+bWF4b2JqbGFiZWxzaXplKSAtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBNQVhfTEFCRUxfQVRUUl9TSVpFOwo+ICvCoMKg wqDCoMKgwqDCoG1heG9iamxhYmVsc2l6ZSA9IG1heG9iamxhYmVsc2l6ZSA8IDAgPyAwIDogbWF4 b2JqbGFiZWxzaXplOwoKSXNuJ3QgYSBiaXQgb2YgcHJlY2lzaW9uIGxvc3QgaGVyZT8gIFRoZXJl IGhhcyB0byBiZSBhIGJldHRlciB3YXkgdG8KaGFuZGxlIHRoaXMuICBXZSBnZXQgYSBiZTE2IGZy b20gdGhlIGh5cGVydmlzb3IsIHR1cm4gaXQgaW50byBhIHUxNiwKYW5kIGFzc2lnbiB0aGF0IHRv IGFuIHMxNiBpbiBvcmRlciB0byBoYW5kbGUgdW5kZXJmbG93LiAgQ2FuIHdlIGp1c3QKY2hlY2sg aWYgdGhlIHNpemUgd2UncmUgZ2l2ZW4gaXMgbGFyZ2UgZW5vdWdoPyAgVGhlIGh5cGVydmlzb3IK ZG9jdW1lbnRhdGlvbiBhbHNvIHNheXMgdGhpcyB2YWx1ZSBtdXN0IGJlIGF0IGxlYXN0IDI1NSwg aWYgd2Ugc2FuaXR5CmNoZWNrIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCB1bmRl cmZsb3cuCgo+ICvCoMKgwqDCoMKgwqDCoHRvdGFsc2l6ZSA9IGJlMzJfdG9fY3B1KGNvbmZpZy0+ dG90YWxzaXplKTsKPiArwqDCoMKgwqDCoMKgwqB1c2Vkc3BhY2UgPSBiZTMyX3RvX2NwdShjb25m aWctPnVzZWRzcGFjZSk7Cj4gK8KgwqDCoMKgwqDCoMKgc3VwcG9ydGVkcG9saWNpZXMgPSBiZTMy X3RvX2NwdShjb25maWctPnN1cHBvcnRlZHBvbGljaWVzKTsKPiArwqDCoMKgwqDCoMKgwqBtYXhs YXJnZW9iamVjdHNpemUgPSBiZTMyX3RvX2NwdShjb25maWctPm1heGxhcmdlb2JqZWN0c2l6ZSk7 Cj4gK8KgwqDCoMKgwqDCoMKgc2lnbmVkdXBkYXRlYWxnb3JpdGhtcyA9IGJlNjRfdG9fY3B1KGNv bmZpZy0KPiA+c2lnbmVkdXBkYXRlYWxnb3JpdGhtcyk7Cj4gKwo+ICtlcnI6Cj4gK8KgwqDCoMKg wqDCoMKga2ZyZWUoY29uZmlnKTsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gcmM7Cj4gK30KPiDC oAo+IC3CoMKgwqDCoMKgwqDCoG1heHB3c2l6ZSA9IGJlMTZfdG9fY3B1KGNvbmZpZy5tYXhwd3Np emUpOwo+IC3CoMKgwqDCoMKgwqDCoG1heG9ianNpemUgPSBiZTE2X3RvX2NwdShjb25maWcubWF4 b2Jqc2l6ZSk7Cj4gK3U4IHBscGtzX2dldF92ZXJzaW9uKHZvaWQpCj4gK3sKPiArwqDCoMKgwqDC oMKgwqByZXR1cm4gdmVyc2lvbjsKPiArfQo+ICsKPiArdTE2IHBscGtzX2dldF9vYmpvdmVyaGVh ZCh2b2lkKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIG9iam92ZXJoZWFkOwo+ICt9Cj4g Kwo+ICt1MTYgcGxwa3NfZ2V0X21heHB3c2l6ZSh2b2lkKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKg cmV0dXJuIG1heHB3c2l6ZTsKPiArfQo+ICsKPiArdTE2IHBscGtzX2dldF9tYXhvYmplY3RzaXpl KHZvaWQpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gbWF4b2Jqc2l6ZTsKPiArfQo+ICsK PiArdTE2IHBscGtzX2dldF9tYXhvYmplY3RsYWJlbHNpemUodm9pZCkKCmFuZCBpdCdzIHJldHVy bmVkIGFzIGEgdTE2IGhlcmUuCgo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIG1heG9iamxh YmVsc2l6ZTsKPiArfQo+ICsKPiArdTMyIHBscGtzX2dldF90b3RhbHNpemUodm9pZCkKPiArewo+ ICvCoMKgwqDCoMKgwqDCoHJldHVybiB0b3RhbHNpemU7Cj4gK30KPiArCj4gK3UzMiBwbHBrc19n ZXRfdXNlZHNwYWNlKHZvaWQpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gdXNlZHNwYWNl Owo+ICt9Cj4gKwo+ICt1MzIgcGxwa3NfZ2V0X3N1cHBvcnRlZHBvbGljaWVzKHZvaWQpCj4gK3sK PiArwqDCoMKgwqDCoMKgwqByZXR1cm4gc3VwcG9ydGVkcG9saWNpZXM7Cj4gK30KPiArCj4gK3Uz MiBwbHBrc19nZXRfbWF4bGFyZ2VvYmplY3RzaXplKHZvaWQpCj4gK3sKPiArwqDCoMKgwqDCoMKg wqByZXR1cm4gbWF4bGFyZ2VvYmplY3RzaXplOwo+ICt9Cj4gKwo+ICt1NjQgcGxwa3NfZ2V0X3Np Z25lZHVwZGF0ZWFsZ29yaXRobXModm9pZCkKPiArewo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiBz aWduZWR1cGRhdGVhbGdvcml0aG1zOwo+ICt9Cj4gKwo+ICtib29sIHBscGtzX2lzX2F2YWlsYWJs ZSh2b2lkKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IHJjOwo+ICsKPiArwqDCoMKgwqDCoMKg wqByYyA9IF9wbHBrc19nZXRfY29uZmlnKCk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJjKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gwqAKPiAtwqDCoMKg wqDCoMKgwqByZXR1cm4gMDsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gdHJ1ZTsKPiDCoH0KPiDC oAo+IMKgc3RhdGljIGludCBwbHBrc19jb25maXJtX29iamVjdF9mbHVzaGVkKHN0cnVjdCBsYWJl bCAqbGFiZWwsCj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9w bHBrcy5oCj4gYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcGxwa3MuaAo+IGluZGV4 IDI3NWNjZDg2YmZiNS4uYzg5NzQwNzk2NjYwIDEwMDY0NAo+IC0tLSBhL2FyY2gvcG93ZXJwYy9w bGF0Zm9ybXMvcHNlcmllcy9wbHBrcy5oCj4gKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9w c2VyaWVzL3BscGtzLmgKPiBAQCAtNjgsNCArNjgsNjIgQEAgaW50IHBscGtzX3JlYWRfZndfdmFy KHN0cnVjdCBwbHBrc192YXIgKnZhcik7Cj4gwqAgKi8KPiDCoGludCBwbHBrc19yZWFkX2Jvb3Rs b2FkZXJfdmFyKHN0cnVjdCBwbHBrc192YXIgKnZhcik7Cj4gwqAKPiArLyoqCj4gKyAqIFJldHVy bnMgaWYgUEtTIGlzIGF2YWlsYWJsZSBvbiB0aGlzIExQQVIuCj4gKyAqLwo+ICtib29sIHBscGtz X2lzX2F2YWlsYWJsZSh2b2lkKTsKPiArCj4gKy8qKgo+ICsgKiBSZXR1cm5zIHZlcnNpb24gb2Yg dGhlIFBsYXRmb3JtIEtleVN0b3JlLgo+ICsgKi8KPiArdTggcGxwa3NfZ2V0X3ZlcnNpb24odm9p ZCk7Cj4gKwo+ICsvKioKPiArICogUmV0dXJucyBoeXBlcnZpc29yIHN0b3JhZ2Ugb3ZlcmhlYWQg cGVyIG9iamVjdCwgbm90IGluY2x1ZGluZyB0aGUKPiBzaXplIG9mCj4gKyAqIHRoZSBvYmplY3Qg b3IgbGFiZWwuIE9ubHkgdmFsaWQgZm9yIGNvbmZpZyB2ZXJzaW9uID49IDIKPiArICovCj4gK3Ux NiBwbHBrc19nZXRfb2Jqb3ZlcmhlYWQodm9pZCk7Cj4gKwo+ICsvKioKPiArICogUmV0dXJucyBt YXhpbXVtIHBhc3N3b3JkIHNpemUuIE11c3QgYmUgPj0gMzIgYnl0ZXMKPiArICovCj4gK3UxNiBw bHBrc19nZXRfbWF4cHdzaXplKHZvaWQpOwo+ICsKPiArLyoqCj4gKyAqIFJldHVybnMgbWF4aW11 bSBvYmplY3Qgc2l6ZSBzdXBwb3J0ZWQgYnkgUGxhdGZvcm0gS2V5U3RvcmUuCj4gKyAqLwo+ICt1 MTYgcGxwa3NfZ2V0X21heG9iamVjdHNpemUodm9pZCk7Cj4gKwo+ICsvKioKPiArICogUmV0dXJu cyBtYXhpbXVtIG9iamVjdCBsYWJlbCBzaXplIHN1cHBvcnRlZCBieSBQbGF0Zm9ybSBLZXlTdG9y ZS4KPiArICovCj4gK3UxNiBwbHBrc19nZXRfbWF4b2JqZWN0bGFiZWxzaXplKHZvaWQpOwo+ICsK PiArLyoqCj4gKyAqIFJldHVybnMgdG90YWwgc2l6ZSBvZiB0aGUgY29uZmlndXJlZCBQbGF0Zm9y bSBLZXlTdG9yZS4KPiArICovCj4gK3UzMiBwbHBrc19nZXRfdG90YWxzaXplKHZvaWQpOwo+ICsK PiArLyoqCj4gKyAqIFJldHVybnMgdXNlZCBzcGFjZSBmcm9tIHRoZSB0b3RhbCBzaXplIG9mIHRo ZSBQbGF0Zm9ybSBLZXlTdG9yZS4KPiArICovCj4gK3UzMiBwbHBrc19nZXRfdXNlZHNwYWNlKHZv aWQpOwo+ICsKPiArLyoqCj4gKyAqIFJldHVybnMgYml0bWFzayBvZiBwb2xpY2llcyBzdXBwb3J0 ZWQgYnkgdGhlIGh5cGVydmlzb3IuCj4gKyAqLwo+ICt1MzIgcGxwa3NfZ2V0X3N1cHBvcnRlZHBv bGljaWVzKHZvaWQpOwo+ICsKPiArLyoqCj4gKyAqIFJldHVybnMgbWF4aW11bSBieXRlIHNpemUg b2YgYSBzaW5nbGUgb2JqZWN0IHN1cHBvcnRlZCBieSB0aGUKPiBoeXBlcnZpc29yLgo+ICsgKiBP bmx5IHZhbGlkIGZvciBjb25maWcgdmVyc2lvbiA+PSAzCj4gKyAqLwo+ICt1MzIgcGxwa3NfZ2V0 X21heGxhcmdlb2JqZWN0c2l6ZSh2b2lkKTsKPiArCj4gKy8qKgo+ICsgKiBSZXR1cm5zIGJpdG1h c2sgb2Ygc2lnbmF0dXJlIGFsZ29yaXRobXMgc3VwcG9ydGVkIGZvciBzaWduZWQKPiB1cGRhdGVz Lgo+ICsgKiBPbmx5IHZhbGlkIGZvciBjb25maWcgdmVyc2lvbiA+PSAzCj4gKyAqLwo+ICt1NjQg cGxwa3NfZ2V0X3NpZ25lZHVwZGF0ZWFsZ29yaXRobXModm9pZCk7Cj4gKwo+IMKgI2VuZGlmCgo=