From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from xry111.site (xry111.site [IPv6:2001:470:683e::1]) by sourceware.org (Postfix) with ESMTPS id B46A43858C5F for ; Sat, 22 Jul 2023 07:43:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B46A43858C5F Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=xry111.site Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xry111.site DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xry111.site; s=default; t=1690011794; bh=EZyxq/73F8bi+izUWrpSyk6fucrcJ2zULW4jZ/j5ckc=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=co2F+9lA3UeTcT5adTeFlEi06hPo3/oLG9Me+bsT666uI0VFFwooG0UZo9eUPYBYQ Cgz4/EqRJIoL+SYhfprmMeCgdiAao5TvwTthEtqQUA2hQKGfR42hopPVJynBhwOBfs EDQfPJx329B1z+YPpFCNhHcBeODT1RafTSAHM1Yo= Received: from [IPv6:240e:358:117b:1c00:dc73:854d:832e:4] (unknown [IPv6:240e:358:117b:1c00:dc73:854d:832e:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-384) server-digest SHA384) (Client did not present a certificate) (Authenticated sender: xry111@xry111.site) by xry111.site (Postfix) with ESMTPSA id D65F36599C; Sat, 22 Jul 2023 03:43:09 -0400 (EDT) Message-ID: <8d4a1972d027cdef81d6fbba33d3fc97cc67305b.camel@xry111.site> Subject: Re: [PATCH] LoongArch: ld: Simplify inserting IRELATIVE relocations to .rela.dyn From: Xi Ruoyao To: mengqinggang , binutils@sourceware.org, Nick Clifton Cc: xuchenghua@loongson.cn, chenglulu@loongson.cn, liuzhensong@loongson.cn, i.swmail@xen0n.name, maskray@google.com Date: Sat, 22 Jul 2023 15:43:02 +0800 In-Reply-To: References: <20230719021721.776961-1-mengqinggang@loongson.cn> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.48.4 MIME-Version: 1.0 X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,LIKELY_SPAM_FROM,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: T24gRnJpLCAyMDIzLTA3LTIxIGF0IDExOjUzICswODAwLCBtZW5ncWluZ2dhbmcgd3JvdGU6Cj4g SGksCj4gCj4gCj4gRm9yIGNvbnNpc3RlbmN5LCB0aGlzIHBhdGNoIGFsc28gbmVlZHMgdG8gYmUg bWVyZ2VkIGludG8gdGhlIDIuNDEKPiBicmFuY2guCgorTmljay4KCkJ1dCBnZW5lcmFsbHkgImNv bnNpc3RlbmN5IiBpcyBub3QgYSB2YWxpZCByZWFzb24gdG8gYmFja3BvcnQgYSBwYXRjaAppbnRv IHRoZSByZWxlYXNlIHVwY29taW5nIHZlcnkgc29vbi4gIElzIHRoZXJlIGFueSBvdGhlciByZWFz b24/Cgo+IOWcqCAyMDIzLzcvMTkg5LiK5Y2IMTA6MTcsIG1lbmdxaW5nZ2FuZyDlhpnpgZM6Cj4g PiBJbiBMb29uZ0FyY2gsIHRoZSBSX0xBUkNIX0lSRUxBVElWRSByZWxvY2F0aW9ucyBmb3IgbG9j YWwgaWZ1bmMgc3ltYm9scyBhcmUKPiA+IGluIC5yZWxhLmR5bi4gQmVmb3JlLCB0aGlzIGlzIGRv bmUgYnkgbG9vbmdhcmNoX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucy4KPiA+IEJ1dCB0aGlz IGZ1bmN0aW9uIGlzIGNhbGxlZCBhZnRlciBlbGZfbGlua19zb3J0X3JlbG9jcywgaXQgbmVlZCB0 byBmaW5kIGEKPiA+IG51bGwgc2xvdCB0byBpbnNlcnQgSVJFTEFUSVZFIHJlbG9jYXRpb24uCj4g PiAKPiA+IE5vdywgaXQgaXMgcHJvY2Vzc2VkIGJ5IGVsZl9sb29uZ2FyY2hfb3V0cHV0X2FyY2hf bG9jYWxfc3ltcyBiZWZvcmUKPiA+IGVsZl9saW5rX3NvcnRfcmVsb2NzLCBqdXN0IG5lZWQgdG8g Y2FsbCBsb29uZ2FyY2hfZWxmX2FwcGVuZF9yZWxhIHRvCj4gPiBpbnNlcnQgSVJFTEFUSVZFIHJl bG9jYXRpb24uCj4gPiAKPiA+IGJmZC9DaGFuZ2VMb2c6Cj4gPiAKPiA+IMKgwqDCoMKgwqDCoMKg wqAqIGVsZm5uLWxvb25nYXJjaC5jIChlbGZOTl9hbGxvY2F0ZV9sb2NhbF9pZnVuY19keW5yZWxv Y3MpOiBSZXR1cm4KPiA+IMKgwqDCoMKgwqDCoMKgwqB0eXBlIGNoYW5nZSB0byBpbnQuCj4gPiDC oMKgwqDCoMKgwqDCoMKgKGxvb25nYXJjaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRGVs ZXRlICh2b2lkICopLgo+ID4gwqDCoMKgwqDCoMKgwqDCoChsb29uZ2FyY2hfZWxmX2ZpbmlzaF9k eW5hbWljX3N5bWJvbCk6IFVzZSBsb29uZ2FyY2hfZWxmX2FwcGVuZF9yZWxhCj4gPiDCoMKgwqDC oMKgwqDCoMKgaW5zZXJ0IElSRUxBVElWRSByZWxvY2F0aW9uIHRvIC5yZWxhLmR5bi4KPiA+IMKg wqDCoMKgwqDCoMKgwqAoZWxmTk5fbG9vbmdhcmNoX2ZpbmlzaF9sb2NhbF9keW5hbWljX3N5bWJv bCk6IFJldHVybiB0eXBlIGNoYW5nZSB0bwo+ID4gwqDCoMKgwqDCoMKgwqDCoGludC4KPiA+IMKg wqDCoMKgwqDCoMKgwqAobG9vbmdhcmNoX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IERl bGV0ZSBwcm9jZXNzIG9mIGxvY2FsCj4gPiDCoMKgwqDCoMKgwqDCoMKgaWZ1bmMgc3ltYm9scy4K PiA+IMKgwqDCoMKgwqDCoMKgwqAoZWxmX2JhY2tlbmRfb3V0cHV0X2FyY2hfbG9jYWxfc3ltcyk6 IE5ldy4KPiA+IAo+ID4gbGQvQ2hhbmdlTG9nOgo+ID4gCj4gPiDCoMKgwqDCoMKgwqDCoMKgKiB0 ZXN0c3VpdGUvbGQtbG9vbmdhcmNoLWVsZi9sb2NhbC1pZnVuYy1yZWxvYy5kOiBSZWdlbmVyYXRl ZC4KPiA+IC0tLQo+ID4gwqAgYmZkL2VsZm5uLWxvb25nYXJjaC5jwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgNjcgKysrKysrKysrLS0tLS0tLS0tLQo+ ID4gwqAgLi4uL2xkLWxvb25nYXJjaC1lbGYvbG9jYWwtaWZ1bmMtcmVsb2MuZMKgwqDCoMKgwqAg fMKgIDIgKy0KPiA+IMKgIDIgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMzUgZGVs ZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9iZmQvZWxmbm4tbG9vbmdhcmNoLmMgYi9i ZmQvZWxmbm4tbG9vbmdhcmNoLmMKPiA+IGluZGV4IGQzZDg0MTlkODBiLi42N2E1MTRiOWIyYiAx MDA2NDQKPiA+IC0tLSBhL2JmZC9lbGZubi1sb29uZ2FyY2guYwo+ID4gKysrIGIvYmZkL2VsZm5u LWxvb25nYXJjaC5jCj4gPiBAQCAtMTUzOCw3ICsxNTM4LDcgQEAgZWxmTk5fYWxsb2NhdGVfaWZ1 bmNfZHlucmVsb2NzIChzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSAqaCwgdm9pZCAqaW5mKQo+ ID4gwqAgLyogQWxsb2NhdGUgc3BhY2UgaW4gLnBsdCwgLmdvdCBhbmQgYXNzb2NpYXRlZCByZWxv YyBzZWN0aW9ucyBmb3IKPiA+IMKgwqDCoMKgIGlmdW5jIGR5bmFtaWMgcmVsb2NzLsKgICovCj4g PiDCoCAKPiA+IC1zdGF0aWMgYm9vbAo+ID4gK3N0YXRpYyBpbnQKPiA+IMKgIGVsZk5OX2FsbG9j YXRlX2xvY2FsX2lmdW5jX2R5bnJlbG9jcyAodm9pZCAqKnNsb3QsIHZvaWQgKmluZikKPiA+IMKg IHsKPiA+IMKgwqDCoCBzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSAqaCA9IChzdHJ1Y3QgZWxm X2xpbmtfaGFzaF9lbnRyeSAqKSAqc2xvdDsKPiA+IEBAIC0xNzAwLDcgKzE3MDAsNyBAQCBsb29u Z2FyY2hfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRfYmZkLAo+ID4gwqAg Cj4gPiDCoMKgwqAgLyogQWxsb2NhdGUgLnBsdCBhbmQgLmdvdCBlbnRyaWVzLCBhbmQgc3BhY2Ug Zm9yIGxvY2FsIGlmdW5jIHN5bWJvbHMuwqAgKi8KPiA+IMKgwqDCoCBodGFiX3RyYXZlcnNlICho dGFiLT5sb2NfaGFzaF90YWJsZSwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KHZvaWQgKikgZWxmTk5fYWxsb2NhdGVfbG9jYWxfaWZ1bmNfZHlucmVsb2NzLCBpbmZvKTsKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZWxmTk5fYWxsb2NhdGVfbG9jYWxfaWZ1 bmNfZHlucmVsb2NzLCBpbmZvKTsKPiA+IMKgIAo+ID4gwqDCoMKgIC8qIERvbid0IGFsbG9jYXRl IC5nb3QucGx0IHNlY3Rpb24gaWYgdGhlcmUgYXJlIG5vIFBMVC7CoCAqLwo+ID4gwqDCoMKgIGlm IChodGFiLT5lbGYuc2dvdHBsdCAmJiBodGFiLT5lbGYuc2dvdHBsdC0+c2l6ZSA9PSBHT1RQTFRf SEVBREVSX1NJWkUKPiA+IEBAIC00MDAxLDEyICs0MDAxLDYgQEAgbG9vbmdhcmNoX2VsZl9maW5p c2hfZHluYW1pY19zeW1ib2wgKGJmZCAqb3V0cHV0X2JmZCwKPiA+IMKgIHsKPiA+IMKgwqDCoCBz dHJ1Y3QgbG9vbmdhcmNoX2VsZl9saW5rX2hhc2hfdGFibGUgKmh0YWIgPSBsb29uZ2FyY2hfZWxm X2hhc2hfdGFibGUgKGluZm8pOwo+ID4gwqDCoMKgIGNvbnN0IHN0cnVjdCBlbGZfYmFja2VuZF9k YXRhICpiZWQgPSBnZXRfZWxmX2JhY2tlbmRfZGF0YSAob3V0cHV0X2JmZCk7Cj4gPiAtwqAgYXNl Y3Rpb24gKnJlbGFfZHluID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKG91dHB1dF9iZmQsICIu cmVsYS5keW4iKTsKPiA+IC3CoCBzdHJ1Y3QgYmZkX2xpbmtfb3JkZXIgKmxvID0gTlVMTDsKPiA+ IC3CoCBFbGZfSW50ZXJuYWxfUmVsYSAqc2xvdCA9IE5VTEwsICpsYXN0X3Nsb3QgPSBOVUxMOwo+ ID4gLQo+ID4gLcKgIGlmIChyZWxhX2R5bikKPiA+IC3CoMKgwqAgbG8gPSByZWxhX2R5bi0+bWFw X2hlYWQubGlua19vcmRlcjsKPiA+IMKgIAo+ID4gwqDCoMKgIGlmIChoLT5wbHQub2Zmc2V0ICE9 IE1JTlVTX09ORSkKPiA+IMKgwqDCoMKgwqAgewo+ID4gQEAgLTQwMTYsNyArNDAxMCw2IEBAIGxv b25nYXJjaF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sIChiZmQgKm91dHB1dF9iZmQsCj4gPiDC oMKgwqDCoMKgwqDCoCB1aW50MzJfdCBwbHRfZW50cnlbUExUX0VOVFJZX0lOU05TXTsKPiA+IMKg wqDCoMKgwqDCoMKgIGJmZF9ieXRlICpsb2M7Cj4gPiDCoMKgwqDCoMKgwqDCoCBFbGZfSW50ZXJu YWxfUmVsYSByZWxhOwo+ID4gLcKgwqDCoMKgwqAgYXNlY3Rpb24gKnJlbGFfc2VjID0gTlVMTDsK PiA+IMKgIAo+ID4gwqDCoMKgwqDCoMKgwqAgaWYgKGh0YWItPmVsZi5zcGx0KQo+ID4gwqDCoMKg wqDCoMKgwqDCoHsKPiA+IEBAIC00MDc0LDI2ICs0MDY3LDcgQEAgbG9vbmdhcmNoX2VsZl9maW5p c2hfZHluYW1pY19zeW1ib2wgKGJmZCAqb3V0cHV0X2JmZCwKPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArIGgtPnJvb3QudS5k ZWYuc2VjdGlvbi0+b3V0cHV0X3NlY3Rpb24tPnZtYQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICsgaC0+cm9vdC51LmRlZi5z ZWN0aW9uLT5vdXRwdXRfb2Zmc2V0KTsKPiA+IMKgIAo+ID4gLcKgwqDCoMKgwqDCoMKgwqAgLyog RmluZCB0aGUgc3BhY2UgYWZ0ZXIgZHluIHNvcnQuwqAgKi8KPiA+IC3CoMKgwqDCoMKgwqDCoMKg IHdoaWxlIChzbG90ID09IGxhc3Rfc2xvdCB8fCBzbG90LT5yX29mZnNldCAhPSAwKQo+ID4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgIHsKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHNs b3QgIT0gbGFzdF9zbG90KQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsKPiA+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzbG90Kys7Cj4gPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGludWU7Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfQo+ID4gLQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCRkRfQVNT RVJUIChsbyAhPSBOVUxMKTsKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVsYV9zZWMg PSBsby0+dS5pbmRpcmVjdC5zZWN0aW9uOwo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBs byA9IGxvLT5uZXh0Owo+ID4gLQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzbG90ID0g KEVsZl9JbnRlcm5hbF9SZWxhICopcmVsYV9zZWMtPmNvbnRlbnRzOwo+ID4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBsYXN0X3Nsb3QgPSAoRWxmX0ludGVybmFsX1JlbGEgKikocmVsYV9zZWMt PmNvbnRlbnRzICsKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVs YV9zZWMtPnNpemUpOwo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiA+IC0KPiA+IC3CoMKg wqDCoMKgwqDCoMKgIGJlZC0+cy0+c3dhcF9yZWxvY2Ffb3V0IChvdXRwdXRfYmZkLCAmcmVsYSwg KGJmZF9ieXRlICopc2xvdCk7Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoCByZWxhX3NlYy0+cmVsb2Nf Y291bnQrKzsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgIGxvb25nYXJjaF9lbGZfYXBwZW5kX3JlbGEg KG91dHB1dF9iZmQsIHJlbHBsdCwgJnJlbGEpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoH0KPiA+IMKg wqDCoMKgwqDCoMKgIGVsc2UKPiA+IMKgwqDCoMKgwqDCoMKgwqB7Cj4gPiBAQCAtNDI2MCw3ICs0 MjM0LDcgQEAgbG9vbmdhcmNoX2ZpbmlzaF9keW4gKGJmZCAqb3V0cHV0X2JmZCwgc3RydWN0IGJm ZF9saW5rX2luZm8gKmluZm8sIGJmZCAqZHlub2JqLAo+ID4gwqAgLyogRmluaXNoIHVwIGxvY2Fs IGR5bmFtaWMgc3ltYm9sIGhhbmRsaW5nLsKgIFdlIHNldCB0aGUgY29udGVudHMgb2YKPiA+IMKg wqDCoMKgIHZhcmlvdXMgZHluYW1pYyBzZWN0aW9ucyBoZXJlLsKgICovCj4gPiDCoCAKPiA+IC1z dGF0aWMgYm9vbAo+ID4gK3N0YXRpYyBpbnQKPiA+IMKgIGVsZk5OX2xvb25nYXJjaF9maW5pc2hf bG9jYWxfZHluYW1pY19zeW1ib2wgKHZvaWQgKipzbG90LCB2b2lkICppbmYpCj4gPiDCoCB7Cj4g PiDCoMKgwqAgc3RydWN0IGVsZl9saW5rX2hhc2hfZW50cnkgKmggPSAoc3RydWN0IGVsZl9saW5r X2hhc2hfZW50cnkgKikgKnNsb3Q7Cj4gPiBAQCAtNDI2OSw2ICs0MjQzLDMzIEBAIGVsZk5OX2xv b25nYXJjaF9maW5pc2hfbG9jYWxfZHluYW1pY19zeW1ib2wgKHZvaWQgKipzbG90LCB2b2lkICpp bmYpCj4gPiDCoMKgwqAgcmV0dXJuIGxvb25nYXJjaF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9s IChpbmZvLT5vdXRwdXRfYmZkLCBpbmZvLCBoLCBOVUxMKTsKPiA+IMKgIH0KPiA+IMKgIAo+ID4g Ky8qIFZhbHVlIG9mIHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhLT5lbGZfYmFja2VuZF9vdXRwdXRf YXJjaF9sb2NhbF9zeW1zLAo+ID4gK8KgwqAgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3Jl IGVsZl9saW5rX3NvcnRfcmVsb2NzLgo+ID4gK8KgwqAgU28gcmVsb2NhdGlvbiBSX0xBUkNIX0lS RUxBVElWRSBmb3IgbG9jYWwgaWZ1bmMgY2FuIGJlIGFwcGVuZCB0bwo+ID4gK8KgwqAgLnJlbGEu ZHluICgucmVsYS5nb3QpIGJ5IGxvb25nYXJjaF9lbGZfYXBwZW5kX3JlbGEuwqAgKi8KPiA+ICsK PiA+ICtzdGF0aWMgYm9vbAo+ID4gK2VsZl9sb29uZ2FyY2hfb3V0cHV0X2FyY2hfbG9jYWxfc3lt cwo+ID4gK8KgIChiZmQgKm91dHB1dF9iZmQgQVRUUklCVVRFX1VOVVNFRCwKPiA+ICvCoMKgIHN0 cnVjdCBiZmRfbGlua19pbmZvICppbmZvLAo+ID4gK8KgwqAgdm9pZCAqZmxhZ2luZm8gQVRUUklC VVRFX1VOVVNFRCwKPiA+ICvCoMKgIGludCAoKmZ1bmMpICh2b2lkICosIGNvbnN0IGNoYXIgKiwK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBFbGZfSW50ZXJuYWxfU3ltICosCj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXNlY3Rpb24gKiwKPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSAqKSBBVFRS SUJVVEVfVU5VU0VEKQo+ID4gK3sKPiA+ICvCoCBzdHJ1Y3QgbG9vbmdhcmNoX2VsZl9saW5rX2hh c2hfdGFibGUgKmh0YWIgPSBsb29uZ2FyY2hfZWxmX2hhc2hfdGFibGUgKGluZm8pOwo+ID4gK8Kg IGlmIChodGFiID09IE5VTEwpCj4gPiArwqDCoMKgIHJldHVybiBmYWxzZTsKPiA+ICsKPiA+ICvC oCAvKiBGaWxsIFBMVCBhbmQgR09UIGVudHJpZXMgZm9yIGxvY2FsIFNUVF9HTlVfSUZVTkMgc3lt Ym9scy7CoCAqLwo+ID4gK8KgIGh0YWJfdHJhdmVyc2UgKGh0YWItPmxvY19oYXNoX3RhYmxlLAo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbGZOTl9sb29uZ2FyY2hfZmluaXNo X2xvY2FsX2R5bmFtaWNfc3ltYm9sLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBpbmZvKTsKPiA+ICsKPiA+ICvCoCByZXR1cm4gdHJ1ZTsKPiA+ICt9Cj4gPiArCj4gPiDCoCBz dGF0aWMgYm9vbAo+ID4gwqAgbG9vbmdhcmNoX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyAo YmZkICpvdXRwdXRfYmZkLAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYmZkX2xpbmtf aW5mbyAqaW5mbykKPiA+IEBAIC00MzQ3LDEwICs0MzQ4LDYgQEAgbG9vbmdhcmNoX2VsZl9maW5p c2hfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRfYmZkLAo+ID4gwqDCoMKgwqDCoMKgwqAg ZWxmX3NlY3Rpb25fZGF0YSAob3V0cHV0X3NlY3Rpb24pLT50aGlzX2hkci5zaF9lbnRzaXplID0g R09UX0VOVFJZX1NJWkU7Cj4gPiDCoMKgwqDCoMKgIH0KPiA+IMKgIAo+ID4gLcKgIC8qIEZpbGwg UExUIGFuZCBHT1QgZW50cmllcyBmb3IgbG9jYWwgU1RUX0dOVV9JRlVOQyBzeW1ib2xzLsKgICov Cj4gPiAtwqAgaHRhYl90cmF2ZXJzZSAoaHRhYi0+bG9jX2hhc2hfdGFibGUsCj4gPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh2b2lkICopIGVsZk5OX2xvb25nYXJjaF9maW5pc2hf bG9jYWxfZHluYW1pY19zeW1ib2wsIGluZm8pOwo+ID4gLQo+ID4gwqDCoMKgIHJldHVybiB0cnVl Owo+ID4gwqAgfQo+ID4gwqAgCj4gPiBAQCAtNDYxNSw2ICs0NjEyLDggQEAgZWxmX2xvb25nYXJj aDY0X2hhc2hfc3ltYm9sIChzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSAqaCkKPiA+IMKgICNk ZWZpbmUgZWxmX2JhY2tlbmRfc2l6ZV9keW5hbWljX3NlY3Rpb25zIGxvb25nYXJjaF9lbGZfc2l6 ZV9keW5hbWljX3NlY3Rpb25zCj4gPiDCoCAjZGVmaW5lIGVsZl9iYWNrZW5kX3JlbG9jYXRlX3Nl Y3Rpb24gbG9vbmdhcmNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uCj4gPiDCoCAjZGVmaW5lIGVsZl9i YWNrZW5kX2ZpbmlzaF9keW5hbWljX3N5bWJvbCBsb29uZ2FyY2hfZWxmX2ZpbmlzaF9keW5hbWlj X3N5bWJvbAo+ID4gKyNkZWZpbmUgZWxmX2JhY2tlbmRfb3V0cHV0X2FyY2hfbG9jYWxfc3ltcyBc Cj4gPiArwqAgZWxmX2xvb25nYXJjaF9vdXRwdXRfYXJjaF9sb2NhbF9zeW1zCj4gPiDCoCAjZGVm aW5lIGVsZl9iYWNrZW5kX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPiDCoMKgwqAgbG9v bmdhcmNoX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucwo+ID4gwqAgI2RlZmluZSBlbGZfYmFj a2VuZF9vYmplY3RfcCBsb29uZ2FyY2hfZWxmX29iamVjdF9wCj4gPiBkaWZmIC0tZ2l0IGEvbGQv dGVzdHN1aXRlL2xkLWxvb25nYXJjaC1lbGYvbG9jYWwtaWZ1bmMtcmVsb2MuZCBiL2xkL3Rlc3Rz dWl0ZS9sZC1sb29uZ2FyY2gtZWxmL2xvY2FsLWlmdW5jLXJlbG9jLmQKPiA+IGluZGV4IDI5ZjJk M2YzNmQzLi5iZjczZDlmMjg3NSAxMDA2NDQKPiA+IC0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1sb29u Z2FyY2gtZWxmL2xvY2FsLWlmdW5jLXJlbG9jLmQKPiA+ICsrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1s b29uZ2FyY2gtZWxmL2xvY2FsLWlmdW5jLXJlbG9jLmQKPiA+IEBAIC02LDUgKzYsNSBAQAo+ID4g wqAgCj4gPiDCoCBEWU5BTUlDIFJFTE9DQVRJT04gUkVDT1JEUwo+ID4gwqAgT0ZGU0VUICtUWVBF ICtWQUxVRQo+ID4gLVtbOnhkaWdpdDpdXSsgUl9MQVJDSF9JUkVMQVRJVkUgK1wqQUJTXCpcKzB4 W1s6eGRpZ2l0Ol1dKwo+ID4gwqAgW1s6eGRpZ2l0Ol1dKyBSX0xBUkNIXzY0ICt0ZXN0Cj4gPiAr W1s6eGRpZ2l0Ol1dKyBSX0xBUkNIX0lSRUxBVElWRSArXCpBQlNcKlwrMHhbWzp4ZGlnaXQ6XV0r Cj4gCgotLSAKWGkgUnVveWFvIDx4cnkxMTFAeHJ5MTExLnNpdGU+ClNjaG9vbCBvZiBBZXJvc3Bh Y2UgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSwgWGlkaWFuIFVuaXZlcnNpdHkK