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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 09CE9C98316 for ; Thu, 24 Sep 2026 07:33:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5WqAmNMeO55tKm1V+AFB7LsBFbDoitH9uZa+6kROIvQ=; b=1I6BghoZZBsAzz rTrh9Rr8v68+mWh0m8T+LwZhxk6pcgXoSNO/LtWf+OQfVzB2/W62QH6lE09Z0N4D1HY01RojXkqUr h0/1Mv1IGzE1TeCfvYr057KmQKTbUDOjBjPOd+Iob5jwXj2IQ2ijcsJTzfklljp/xfWJ3kIRDJJ3Y QJC1wa6ov8NONqPaEjFpKMrFql7iAhLkcuV4a4i4SlK0HJ95zfDNXrXrxrqMXuADQfY9/m5YLbHKr EsFnZr5GviYJ3sQ1UTxqD0bpXy7abi+qkwZcG8rEyESKhNRnV9Mhs8/PC8l6r62OR2XnRyZ8B5k+q I5LIt2IYAdwo7FFuClWQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9dxb-0000000AIdR-2U8K; Thu, 24 Sep 2026 07:33:39 +0000 Received: from mail-pj2-x11.google.com ([2607:f8b0:4864:39::11]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9dxY-0000000AIbZ-3uAo for opensbi@lists.infradead.org; Thu, 24 Sep 2026 07:33:38 +0000 Received: by mail-pj2-x11.google.com with SMTP id d9443c01a7336-2d8fb334e72so8101695ad.1 for ; Thu, 24 Sep 2026 00:33:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1790235215; x=1790840015; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :content-type:mime-version:references:message-id:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to:content-type; bh=WCUZd5QaGIHrqev3Sy6BHQs/0V8U0Saa3u4+Kv45SPg=; b=VmHxNUQbOUQKf+CqDLhzsYl91WlRQcyUhoyipZhTvTuP0Hh9qqgDiUCJtf0IJ1wnnH HMMAfVfuc7VCCK+oEjNiYQEwSU4aPYQ5L8Co+SqnN229/swLxsKbPawDYyGIJehS0rLI XbozczMo4silHaN8Erxikz+5f3GqeiNqs/s3eWNQE9SDKjl1iKLAKb4w3CvZO8VEo+R7 4yRI+zNCjbHqKgMr7RGYaK+80DgzI2zoMD9FcC+840joWQXBs6DLpv97NwqYOU84Ipxd fTngOLvycZq2vTrqHsmsWcaT6jnyTPwe8/rY68/XZUQVoCjl3bsBLBjZdTLEh2Mt9oC4 cN4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790235215; x=1790840015; h=in-reply-to:content-transfer-encoding:content-disposition :content-type:mime-version:references:message-id:subject:cc:to:from :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=WCUZd5QaGIHrqev3Sy6BHQs/0V8U0Saa3u4+Kv45SPg=; b=AmN2/s4nkEyfc9af066WhFLSvyt7C17F99SuxZy5gmuYYbhx/cWeDweX7GRHrMVKMR CfIH+175APCU0+g27QYVAcG+HKvmTJMZfu2RbayKyZ5PhaVVK5Vyl9jnHblvV6v6UrD3 GLj3PyTt+ufiViNwtuoq7O9Cn7AR7ogS8+4Or5JBSON9uaQRoHtVOAhxTOszaIm5tF8L /em+5SCN20qP1erMtPJMA6o7519BxJUWi0AWkNzIahqV7CejmaL3m2mtul2ZeFELBIEt ohYfcQ6wzjettcdVermWdZQ1hpIE5pTul2JvCsgzQbW8siqX8xc18WJEeo45AuPXgO36 OXYw== X-Gm-Message-State: AFuF++l33uoLYupssFqrqHOrGR7Jhc1H/rW74UQuF5NnCsY1+Seki7JJ PGYefvlLa4GQzMEHESD2zX0LSWWjU+zWQyoO4OlZeH8K4/feX9NFJOdxeY6TBb3j8ls= X-Gm-Gg: AYBFou1KOpb3/nOHNclkAaeDmGbCdM7e3wJJB2OGP0RFDJjHaBd2zBUrlKr7OKkyxd4 0NntQluiwkXMPHudx7FB4+JDv4T2Il8zPYlWOwzL3WmCn8Lh/9DA8SakS3nnoh7tZziFl1Sr4kF 7AqW7QqP7L5zb9hBxbloCVZXTps3MmUlePxnGRTG8lLHjeKr3IfPWyTQHsy62FcXP5cYKoht4ff 7kgRXTfdtYP48UoE40g5oaw16PQx2a7153M2jtybdZwCoxiNFdi8Oxsoxmj6EabBYbhfwO8MNLB JzdBra63d0EaBA7FKWPZSxZfrV6bDE+Qs4XrMxaY+9cJuDNqCQT3gQL15R650n/KbJExnXv6Ync mm/FM/zO13tRg2Zx5073HC/AcGK76PR3YSQqxIt98daYYg4zS9XcBkQhw9LnIz6VcMMhSAfMDKp hN9TW3+f4x4SCJhWqA6YQmYPS2Jb5YMTDr5ykQ9v4WHsLxDD3shY4G/cS0J91wFjLGJONn X-Received: by 2002:a17:902:ebd2:b0:2d9:43f5:b462 with SMTP id d9443c01a7336-2df7da5f82fmr13337395ad.5.1790235215568; Thu, 24 Sep 2026 00:33:35 -0700 (PDT) Received: from plin-1878 ([136.226.240.195]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2df6a5f53cfsm22573535ad.71.2026.09.24.00.33.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Sep 2026 00:33:34 -0700 (PDT) Date: Thu, 24 Sep 2026 15:33:27 +0800 From: Yu-Chien Peter Lin To: Pawandeep Oza Cc: opensbi@lists.infradead.org, zong.li@sifive.com, greentime.hu@sifive.com, anup@brainfault.org, scott@riscstar.com, conor@kernel.org, dave.patel@riscstar.com, raymond.mao@riscstar.com, robin.randhawa@sifive.com, samuel.holland@sifive.com, krzk@kernel.org Subject: Re: [PATCH v2 2/9] lib: utils: fdt_helper: parse RISC-V Worlds per-hart WID properties Message-ID: References: <20260817090503.2104998-1-peter.lin@sifive.com> <20260817090503.2104998-3-peter.lin@sifive.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260924_003337_023778_479B5DC7 X-CRM114-Status: GOOD ( 29.79 ) X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "opensbi" Errors-To: opensbi-bounces+opensbi=archiver.kernel.org@lists.infradead.org SGkgT3phLAoKT24gVGh1LCBTZXAgMDMsIDIwMjYgYXQgMDI6MTU6MTZQTSAtMDcwMCwgUGF3YW5k ZWVwIE96YSB3cm90ZToKPiBPbiBNb24sIEF1ZyAxNywgMjAyNiBhdCAyOjA14oCvQU0gWXUtQ2hp ZW4gUGV0ZXIgTGluIDxwZXRlci5saW5Ac2lmaXZlLmNvbT4gd3JvdGU6Cj4gPgo+ID4gQWRkIGZk dF9wYXJzZV93b3JsZHNfYWxsX2hhcnRzKCkgdG8gcGFyc2UgcGxhdGZvcm0tZGVmaW5lZCBEVAo+ ID4gcHJvcGVydGllcyBpbiB0aGUgL2NwdXMvY3B1QFg6Cj4gPiAtIHJpc2N2LHBtd2lkOiBNLW1v ZGUgV29ybGQgSUQKPiA+IC0gcmlzY3YscG13aWRsaXN0OiBiaXRtYXAgb2YgcGVybWl0dGVkIE0t bW9kZSBXSURzCj4gPiAtIHJpc2N2LHBtbHdpZGxpc3Q6IGJpdG1hcCBvZiBwZXJtaXR0ZWQgbG93 ZXItcHJpdmlsZWdlIFdJRHMKPiA+IEluaXRpYWxpemUgcGFyc2VkIHZhbHVlcyBpbiBzYmlfaGFy dF9mZWF0dXJlcyB3aXRoIGhhc18qIHByZXNlbmNlCj4gPiBmbGFncy4KPiA+Cj4gPiBUaGVzZSBw bGF0Zm9ybS1kZWZpbmVkIHZhbHVlcyBzZXJ2ZSBhcyB0aGUgcm9vdC1vZi10cnVzdCBjb25zdHJh aW50cwo+ID4gZm9yIHBlci1kb21haW4gV0lEIGFzc2lnbm1lbnQgZHVyaW5nIGRvbWFpbiBjcmVh dGlvbiBhbmQgY29udGV4dAo+ID4gc3dpdGNoaW5nLgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFl1 LUNoaWVuIFBldGVyIExpbiA8cGV0ZXIubGluQHNpZml2ZS5jb20+Cj4gPiAtLS0KPiA+ICBpbmNs dWRlL3NiaS9zYmlfaGFydC5oICAgICAgICAgICAgIHwgIDYgKysKPiA+ICBpbmNsdWRlL3NiaV91 dGlscy9mZHQvZmR0X2hlbHBlci5oIHwgIDIgKwo+ID4gIGxpYi91dGlscy9mZHQvZmR0X2hlbHBl ci5jICAgICAgICAgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBwbGF0 Zm9ybS9nZW5lcmljL3BsYXRmb3JtLmMgICAgICAgIHwgMTMgKysrKy0KPiA+ICA0IGZpbGVzIGNo YW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPgo+ID4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvc2JpL3NiaV9oYXJ0LmggYi9pbmNsdWRlL3NiaS9zYmlfaGFydC5oCj4gPiBp bmRleCAyOTQxODA5ZS4uNGZjZjUzNzIgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL3NiaS9zYmlf aGFydC5oCj4gPiArKysgYi9pbmNsdWRlL3NiaS9zYmlfaGFydC5oCj4gPiBAQCAtMTM1LDYgKzEz NSwxMiBAQCBzdHJ1Y3Qgc2JpX2hhcnRfZmVhdHVyZXMgewo+ID4gICAgICAgICB1bnNpZ25lZCBp bnQgcG1wX2xvZzJncmFuOwo+ID4gICAgICAgICB1bnNpZ25lZCBpbnQgbWhwbV9tYXNrOwo+ID4g ICAgICAgICB1bnNpZ25lZCBpbnQgbWhwbV9iaXRzOwo+ID4gKyAgICAgICB1MzIgcG13aWQ7Cj4g PiArICAgICAgIHU2NCBwbXdpZGxpc3Q7Cj4gPiArICAgICAgIHU2NCBwbWx3aWRsaXN0Owo+ID4g KyAgICAgICBib29sIGhhc19wbXdpZDsKPiA+ICsgICAgICAgYm9vbCBoYXNfcG13aWRsaXN0Owo+ ID4gKyAgICAgICBib29sIGhhc19wbWx3aWRsaXN0Owo+IAo+IE96YTogZG8geW91IG5lZWQgdGhl c2UgMyBib29sZWFucyA/Cj4gCj4geW91IGNhbiBmaW5kIG91dCBmcm9tIHRoZSB2YWx1ZSBpdHNs ZWYgPwo+IHBtd2lkbGlzdCA9PSAwIG1lYW5zIG5vdCBycGVzZW50Cj4gcG1sd2lkbGlzdCA9IDAg bWVhbnMgbm90IHJwZXNlbnQKPiBhbmQgbWF5IGJlIHBtd2lkID09IFVJTlRfTUFYIHRoZW4gbm90 IHByZXNlbnQgPwoKSSdkIGxpa2UgdG8ga2VlcCBoYXNfcG13aWQuIHBtd2lkID0gMCBpcyBhIHZh bGlkIFdJRCwgYXMKc2JpX2hhcnRfZmVhdHVyZXMgaXMgemVyby1pbml0aWFsaXplZCwgdXNpbmcg YSBzZW50aW5lbApsaWtlIFVJTlRfTUFYIHRvIG1lYW4gIm5vdCBzZXQiIHdvdWxkIHJlcXVpcmUg YWRkaW5nIGFuCmV4cGxpY2l0IGluaXQgc3RlcCBhdCBzYmlfaGFydF9mZWF0dXJlIGFsbG9jYXRp b24gdGltZS4KCkknZCBsaWtlIHRvIGtlZXAgaGFzX3BtbHdpZGxpc3QgdG9vLiBQZXIgdGhlIHNw ZWMsCnBtbHdpZGxpc3QgPSAwIGlzIGEgbGVnYWwgY29uZmlndXJhdGlvbiBtZWFuaW5nCiJubyBX SUQgaXMgYXV0aG9yaXplZCBmb3IgbWx3aWQiIHdoaWNoIGlzIHRoZSBvcHBvc2l0ZQpvZiB1bnJl c3RyaWN0ZWQuCgpJIGFncmVlIHdlIGNhbiBkcm9wIGhhc19wbXdpZGxpc3QsIGFzIHBtd2lkbGlz dCBjYW4gbmV2ZXIKYmUgMC4KClRoYW5rcywKUGV0ZXIgTGluCgo+IAo+ID4gIH07Cj4gPgo+ID4g IGV4dGVybiB1bnNpZ25lZCBsb25nIGhhcnRfZmVhdHVyZXNfb2Zmc2V0Owo+ID4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvc2JpX3V0aWxzL2ZkdC9mZHRfaGVscGVyLmggYi9pbmNsdWRlL3NiaV91dGls cy9mZHQvZmR0X2hlbHBlci5oCj4gPiBpbmRleCA3NWE1NjRkMS4uM2YzZDA5MWIgMTAwNjQ0Cj4g PiAtLS0gYS9pbmNsdWRlL3NiaV91dGlscy9mZHQvZmR0X2hlbHBlci5oCj4gPiArKysgYi9pbmNs dWRlL3NiaV91dGlscy9mZHQvZmR0X2hlbHBlci5oCj4gPiBAQCAtNTYsNiArNTYsOCBAQCBpbnQg ZmR0X3BhcnNlX3RpbWViYXNlX2ZyZXF1ZW5jeShjb25zdCB2b2lkICpmZHQsIHVuc2lnbmVkIGxv bmcgKmZyZXEpOwo+ID4KPiA+ICBpbnQgZmR0X3BhcnNlX2lzYV9leHRlbnNpb25zX2FsbF9oYXJ0 cyhjb25zdCB2b2lkICpmZHQpOwo+ID4KPiA+ICtpbnQgZmR0X3BhcnNlX3dvcmxkc19hbGxfaGFy dHMoY29uc3Qgdm9pZCAqZmR0KTsKPiA+ICsKPiA+ICBpbnQgZmR0X3BhcnNlX2dhaXNsZXJfdWFy dF9ub2RlKGNvbnN0IHZvaWQgKmZkdCwgaW50IG5vZGVvZmZzZXQsCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwbGF0Zm9ybV91YXJ0X2RhdGEgKnVhcnQpOwo+ID4K PiA+IGRpZmYgLS1naXQgYS9saWIvdXRpbHMvZmR0L2ZkdF9oZWxwZXIuYyBiL2xpYi91dGlscy9m ZHQvZmR0X2hlbHBlci5jCj4gPiBpbmRleCA3NDdiYTAyOC4uZDYwMjU3MDUgMTAwNjQ0Cj4gPiAt LS0gYS9saWIvdXRpbHMvZmR0L2ZkdF9oZWxwZXIuYwo+ID4gKysrIGIvbGliL3V0aWxzL2ZkdC9m ZHRfaGVscGVyLmMKPiA+IEBAIC00NTcsNiArNDU3LDk4IEBAIGludCBmZHRfcGFyc2VfaXNhX2V4 dGVuc2lvbnNfYWxsX2hhcnRzKGNvbnN0IHZvaWQgKmZkdCkKPiA+ICAgICAgICAgcmV0dXJuIDA7 Cj4gPiAgfQo+ID4KPiA+ICtpbnQgZmR0X3BhcnNlX3dvcmxkc19hbGxfaGFydHMoY29uc3Qgdm9p ZCAqZmR0KQo+ID4gK3sKPiA+ICsgICAgICAgdTMyIGhhcnRpZDsKPiA+ICsgICAgICAgY29uc3Qg ZmR0MzJfdCAqdmFsOwo+ID4gKyAgICAgICBzdHJ1Y3Qgc2JpX3NjcmF0Y2ggKnNjcmF0Y2g7Cj4g PiArICAgICAgIHN0cnVjdCBzYmlfaGFydF9mZWF0dXJlcyAqaGZlYXR1cmVzOwo+ID4gKyAgICAg ICBpbnQgZXJyLCBjcHVfb2Zmc2V0LCBjcHVzX29mZnNldCwgbGVuOwo+ID4gKwo+ID4gKyAgICAg ICBpZiAoIWZkdCkKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gU0JJX0VJTlZBTDsKPiA+ICsK PiA+ICsgICAgICAgY3B1c19vZmZzZXQgPSBmZHRfcGF0aF9vZmZzZXQoZmR0LCAiL2NwdXMiKTsK PiA+ICsgICAgICAgaWYgKGNwdXNfb2Zmc2V0IDwgMCkKPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gY3B1c19vZmZzZXQ7Cj4gPiArCj4gPiArICAgICAgIGZkdF9mb3JfZWFjaF9zdWJub2RlKGNw dV9vZmZzZXQsIGZkdCwgY3B1c19vZmZzZXQpIHsKPiA+ICsgICAgICAgICAgICAgICBlcnIgPSBm ZHRfcGFyc2VfaGFydF9pZChmZHQsIGNwdV9vZmZzZXQsICZoYXJ0aWQpOwo+ID4gKyAgICAgICAg ICAgICAgIGlmIChlcnIpCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+ ICsKPiA+ICsgICAgICAgICAgICAgICBpZiAoIWZkdF9ub2RlX2lzX2VuYWJsZWQoZmR0LCBjcHVf b2Zmc2V0KSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gKwo+ID4g KyAgICAgICAgICAgICAgIHNjcmF0Y2ggPSBzYmlfaGFydGlkX3RvX3NjcmF0Y2goaGFydGlkKTsK PiA+ICsgICAgICAgICAgICAgICBpZiAoIXNjcmF0Y2gpCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gU0JJX0VOT0VOVDsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICBoZmVhdHVy ZXMgPSBzYmlfaGFydF9mZWF0dXJlc19wdHIoc2NyYXRjaCk7Cj4gPiArICAgICAgICAgICAgICAg aWYgKCFoZmVhdHVyZXMpCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU0JJX0VO T0VOVDsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICB2YWwgPSBmZHRfZ2V0cHJvcChmZHQsIGNw dV9vZmZzZXQsICJyaXNjdixwbXdpZCIsICZsZW4pOwo+ID4gKyAgICAgICAgICAgICAgIGlmICh2 YWwgJiYgbGVuID09IHNpemVvZihmZHQzMl90KSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgaGZlYXR1cmVzLT5wbXdpZCA9IGZkdDMyX3RvX2NwdSgqdmFsKTsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGhmZWF0dXJlcy0+aGFzX3Btd2lkID0gdHJ1ZTsKPiA+ICsgICAgICAgICAg ICAgICB9Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgdmFsID0gZmR0X2dldHByb3AoZmR0LCBj cHVfb2Zmc2V0LCAicmlzY3YscG13aWRsaXN0IiwgJmxlbik7Cj4gPiArICAgICAgICAgICAgICAg aWYgKHZhbCAmJiBsZW4gPT0gMiAqIHNpemVvZihmZHQzMl90KSkgewo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgaGZlYXR1cmVzLT5wbXdpZGxpc3QgPSAoKHU2NClmZHQzMl90b19jcHUodmFs WzBdKSA8PCAzMikgfAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmR0MzJfdG9fY3B1KHZhbFsxXSk7Cj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBoZmVhdHVyZXMtPmhhc19wbXdpZGxpc3QgPSB0cnVlOwo+ID4gKyAgICAgICAgICAgICAgIH0K PiA+ICsKPiA+ICsgICAgICAgICAgICAgICB2YWwgPSBmZHRfZ2V0cHJvcChmZHQsIGNwdV9vZmZz ZXQsICJyaXNjdixwbWx3aWRsaXN0IiwgJmxlbik7Cj4gPiArICAgICAgICAgICAgICAgaWYgKHZh bCAmJiBsZW4gPT0gMiAqIHNpemVvZihmZHQzMl90KSkgewo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgaGZlYXR1cmVzLT5wbWx3aWRsaXN0ID0gKCh1NjQpZmR0MzJfdG9fY3B1KHZhbFswXSkg PDwgMzIpIHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmZHQzMl90b19jcHUodmFsWzFdKTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGhm ZWF0dXJlcy0+aGFzX3BtbHdpZGxpc3QgPSB0cnVlOwo+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ ICsKPiA+ICsgICAgICAgICAgICAgICAvKiBTYW5pdHkgY2hlY2tzICovCj4gPiArICAgICAgICAg ICAgICAgaWYgKGhmZWF0dXJlcy0+aGFzX3Btd2lkbGlzdCAmJiAhaGZlYXR1cmVzLT5wbXdpZGxp c3QpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHNiaV9wcmludGYoIiVzOiBoYXJ0JXUg cmlzY3YscG13aWRsaXN0IGlzIGVtcHR5XG4iLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBfX2Z1bmNfXywgaGFydGlkKTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBTQklfRUlOVkFMOwo+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ICsKPiA+ICsjaWYg X19yaXNjdl94bGVuID09IDMyCj4gPiArICAgICAgICAgICAgICAgaWYgKGhmZWF0dXJlcy0+aGFz X3Btd2lkbGlzdCAmJgo+ID4gKyAgICAgICAgICAgICAgICAgICAoaGZlYXR1cmVzLT5wbXdpZGxp c3QgPj4gMzIpKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzYmlfcHJpbnRmKCIlczog aGFydCV1IHJpc2N2LHBtd2lkbGlzdCBoYXMgYml0cyBiZXlvbmQgWExFTlxuIiwKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGhhcnRpZCk7Cj4gPiArICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gU0JJX0VJTlZBTDsKPiA+ICsgICAgICAgICAgICAg ICB9Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgaWYgKGhmZWF0dXJlcy0+aGFzX3BtbHdpZGxp c3QgJiYKPiA+ICsgICAgICAgICAgICAgICAgICAgKGhmZWF0dXJlcy0+cG1sd2lkbGlzdCA+PiAz MikpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHNiaV9wcmludGYoIiVzOiBoYXJ0JXUg cmlzY3YscG1sd2lkbGlzdCBoYXMgYml0cyBiZXlvbmQgWExFTlxuIiwKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGhhcnRpZCk7Cj4gPiArICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gU0JJX0VJTlZBTDsKPiA+ICsgICAgICAgICAgICAgICB9Cj4g PiArI2VuZGlmCj4gPiArCj4gPiArICAgICAgICAgICAgICAgaWYgKGhmZWF0dXJlcy0+aGFzX3Bt d2lkICYmCj4gPiArICAgICAgICAgICAgICAgICAgIGhmZWF0dXJlcy0+cG13aWQgPj0gX19yaXNj dl94bGVuKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzYmlfcHJpbnRmKCIlczogaGFy dCV1IHJpc2N2LHBtd2lkICgldSkgZXhjZWVkcyBtYXggV0lEXG4iLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgaGFydGlkLCBoZmVhdHVyZXMtPnBtd2lk KTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTQklfRUlOVkFMOwo+ID4gKyAg ICAgICAgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgICAgICAgICBpZiAoaGZlYXR1cmVzLT5o YXNfcG13aWRsaXN0ICYmIGhmZWF0dXJlcy0+aGFzX3Btd2lkICYmCj4gPiArICAgICAgICAgICAg ICAgICAgICEoaGZlYXR1cmVzLT5wbXdpZGxpc3QgJiBCSVRfVUxMKGhmZWF0dXJlcy0+cG13aWQp KSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgc2JpX3ByaW50ZigiJXM6IGhhcnQldSBy aXNjdixwbXdpZCAoJXUpIG5vdCBpbiBwbXdpZGxpc3RcbiIsCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBoYXJ0aWQsIGhmZWF0dXJlcy0+cG13aWQpOwo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNCSV9FSU5WQUw7Cj4gPiArICAgICAg ICAgICAgICAgfQo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIHJldHVybiAwOwo+ID4g K30KPiA+ICsKPiA+ICBzdGF0aWMgaW50IGZkdF9wYXJzZV91YXJ0X25vZGVfY29tbW9uKGNvbnN0 IHZvaWQgKmZkdCwgaW50IG5vZGVvZmZzZXQsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBwbGF0Zm9ybV91YXJ0X2RhdGEgKnVhcnQsCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZGVmYXVsdF9mcmVx LAo+ID4gZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvcGxhdGZvcm0uYyBiL3BsYXRmb3Jt L2dlbmVyaWMvcGxhdGZvcm0uYwo+ID4gaW5kZXggMWRmMDI4MGQuLjUxZTlmMzQyIDEwMDY0NAo+ ID4gLS0tIGEvcGxhdGZvcm0vZ2VuZXJpYy9wbGF0Zm9ybS5jCj4gPiArKysgYi9wbGF0Zm9ybS9n ZW5lcmljL3BsYXRmb3JtLmMKPiA+IEBAIC0yNTUsMTEgKzI1NSwyMiBAQCBpbnQgZ2VuZXJpY19m aW5hbF9pbml0KGJvb2wgY29sZF9ib290KQo+ID4KPiA+ICBpbnQgZ2VuZXJpY19leHRlbnNpb25z X2luaXQoYm9vbCBjb2xkX2Jvb3QpCj4gPiAgewo+ID4gKyAgICAgICBpbnQgcmM7Cj4gPiArCj4g PiAgICAgICAgIGlmICghY29sZF9ib290KQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAwOwo+ ID4KPiA+ICAgICAgICAgLyogUGFyc2UgdGhlIElTQSBzdHJpbmcgZnJvbSBGRFQgYW5kIGVuYWJs ZSB0aGUgbGlzdGVkIGV4dGVuc2lvbnMgKi8KPiA+IC0gICAgICAgcmV0dXJuIGZkdF9wYXJzZV9p c2FfZXh0ZW5zaW9uc19hbGxfaGFydHMoZmR0X2dldF9hZGRyZXNzKCkpOwo+ID4gKyAgICAgICBy YyA9IGZkdF9wYXJzZV9pc2FfZXh0ZW5zaW9uc19hbGxfaGFydHMoZmR0X2dldF9hZGRyZXNzKCkp Owo+ID4gKyAgICAgICBpZiAocmMpCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHJjOwo+ID4g Kwo+ID4gKyAgICAgICAvKiBQYXJzZSBSSVNDLVYgV29ybGRzIENQVSBwcm9wZXJ0aWVzIGZyb20g RkRUICovCj4gPiArICAgICAgIHJjID0gZmR0X3BhcnNlX3dvcmxkc19hbGxfaGFydHMoZmR0X2dl dF9hZGRyZXNzKCkpOwo+ID4gKyAgICAgICBpZiAocmMpCj4gPiArICAgICAgICAgICAgICAgcmV0 dXJuIHJjOwo+ID4gKwo+ID4gKyAgICAgICByZXR1cm4gMDsKPiA+ICB9Cj4gPgo+ID4gIGludCBn ZW5lcmljX2RvbWFpbnNfaW5pdCh2b2lkKQo+ID4gLS0KPiA+IDIuNDMuNwo+ID4KCi0tIApvcGVu c2JpIG1haWxpbmcgbGlzdApvcGVuc2JpQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9vcGVuc2JpCg==