From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from xry111.site (xry111.site [89.208.246.23]) by sourceware.org (Postfix) with ESMTPS id 5088B3858001 for ; Fri, 26 Jan 2024 08:50:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5088B3858001 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=xry111.site Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xry111.site ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5088B3858001 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=89.208.246.23 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706259005; cv=none; b=Wt7vT9kux3tbpwLwN/Ao0t7Avml8foSj12e/dN68DE/O/q9uOpQxieSpooPZJj/hFfaizsKJbVuCkrvNqCkr8vr5FDBmspin6EaiIljzOJYegoE6J6OyFTZU6o3VsXRWPtojAea9KT+nmFdeFlzSosQkDp6KDpSHrmK7FJpDiXE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706259005; c=relaxed/simple; bh=AAaI1JQ/gTamunp1ddJk+A/CyKz9zYkctlkcdicK4kU=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=UWzpXS4tvvyB8s5QyicODJ9ZndhduEIKM1qrOVI+IIAPtzS6bHKjKRyMY1SDJjDg8Wg6ygX9GWOZb3K66E+Oo/Jt+I4jDahWjen9ZgKcQ4tBKm+Gm0AFeeLjIwz2YBhIBXAvFRa28EWa+DP9wNuAFpdbgEnr/uTdiaKTQ/W5q4M= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xry111.site; s=default; t=1706258997; bh=AAaI1JQ/gTamunp1ddJk+A/CyKz9zYkctlkcdicK4kU=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=ii8IosPuhNSLyDiZ2YH94hFHEG5MsHqdGNH6irIaK39czQJD+cNIu+ADSlHdrVd8G //c0Al6UVf9Jg3bB1qmzDyyLb2A/24Jd6tNvqkU8BfsScbdm5/Fglken+owQicBRiN UYnfQji0THsRW5d/+bvZJq/hTitUPtnPxUvFiaMI= Received: from [IPv6:2408:8471:1001:36b4:2388:85aa:5ecd:df12] (unknown [IPv6:2408:8471:1001:36b4:2388:85aa:5ecd:df12]) (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 1219166F72; Fri, 26 Jan 2024 03:49:53 -0500 (EST) Message-ID: <8031fd77ea3209ccac6c085ac5692f92f4291534.camel@xry111.site> Subject: Re: [PATCH v4 0/4] When cmodel=extreme, add macro support and only support macros. From: Xi Ruoyao To: Lulu Cheng , gcc-patches@gcc.gnu.org Cc: i@xen0n.name, xuchenghua@loongson.cn Date: Fri, 26 Jan 2024 16:49:48 +0800 In-Reply-To: <20240126073745.13252-1-chenglulu@loongson.cn> References: <20240126073745.13252-1-chenglulu@loongson.cn> Autocrypt: addr=xry111@xry111.site; prefer-encrypt=mutual; keydata=mDMEYnkdPhYJKwYBBAHaRw8BAQdAsY+HvJs3EVKpwIu2gN89cQT/pnrbQtlvd6Yfq7egugi0HlhpIFJ1b3lhbyA8eHJ5MTExQHhyeTExMS5zaXRlPoiTBBMWCgA7FiEEkdD1djAfkk197dzorKrSDhnnEOMFAmJ5HT4CGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQrKrSDhnnEOPHFgD8D9vUToTd1MF5bng9uPJq5y3DfpcxDp+LD3joA3U2TmwA/jZtN9xLH7CGDHeClKZK/ZYELotWfJsqRcthOIGjsdAPuDgEYnkdPhIKKwYBBAGXVQEFAQEHQG+HnNiPZseiBkzYBHwq/nN638o0NPwgYwH70wlKMZhRAwEIB4h4BBgWCgAgFiEEkdD1djAfkk197dzorKrSDhnnEOMFAmJ5HT4CGwwACgkQrKrSDhnnEOPjXgD/euD64cxwqDIqckUaisT3VCst11RcnO5iRHm6meNIwj0BALLmWplyi7beKrOlqKfuZtCLbiAPywGfCNg8LOTt4iMD Content-Type: multipart/mixed; boundary="=-+jQZYfrlXFFzETv2tc+3" User-Agent: Evolution 3.50.3 MIME-Version: 1.0 X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,KAM_STOCKGEN,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: --=-+jQZYfrlXFFzETv2tc+3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2024-01-26 at 15:37 +0800, Lulu Cheng wrote: > v3 -> v4: > =C2=A0 1. Add macro support for TLS symbols > =C2=A0 2. Added support for loading __get_tls_addr symbol address using c= all36. > =C2=A0 3. Merge template got_load_tls_{ld/gd/le/ie}. > =C2=A0 4. Enable explicit reloc for extreme TLS GD/LD with -mexplicit-rel= ocs=3Dauto. I've rebased and attached the patch to fix the bad split in -mexplicit- relocs=3D{always,auto} -mcmodel=3Dextreme on top of this series. I've not tested it seriously though (only tested the added and modified test cases). --=20 Xi Ruoyao School of Aerospace Science and Technology, Xidian University --=-+jQZYfrlXFFzETv2tc+3 Content-Disposition: attachment; filename*0=0001-LoongArch-Don-t-split-the-instructions-containing-re.pat; filename*1=ch Content-Type: text/x-patch; name="0001-LoongArch-Don-t-split-the-instructions-containing-re.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA4N2M5ZWFmZDg4YWU0YTQzMzllMDk0YWYwOGM3N2U3ZGZjOWVhNzAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaSBSdW95YW8gPHhyeTExMUB4cnkxMTEuc2l0ZT4KRGF0ZTog RnJpLCA1IEphbiAyMDI0IDE4OjQwOjA2ICswODAwClN1YmplY3Q6IFtQQVRDSF0gTG9vbmdBcmNo OiBEb24ndCBzcGxpdCB0aGUgaW5zdHJ1Y3Rpb25zIGNvbnRhaW5pbmcgcmVsb2NzIGZvcgogZXh0 cmVtZSBjb2RlIG1vZGVsCgpUaGUgQUJJIG1hbmRhdGVzIHRoZSBwY2FsYXUxMmkvYWRkaS5kL2x1 MzJpLmQvbHU1MmkuZCBpbnN0cnVjdGlvbnMgZm9yCmFkZHJlc3NpbmcgYSBzeW1ib2wgdG8gYmUg YWRqYWNlbnQuICBTbyBtb2RlbCB0aGVtIGFzICJvbmUgbGFyZ2UKaW5zdHJ1Y3Rpb24iLCBpLmUu IGRlZmluZV9pbnNuLCB3aXRoIHR3byBvdXRwdXQgcmVnaXN0ZXJzLiAgVGhlIHJlYWwKYWRkcmVz cyBpcyB0aGUgc3VtIG9mIHRoZXNlIHR3byByZWdpc3RlcnMuCgpUaGUgYWR2YW50YWdlIG9mIHRo aXMgYXBwcm9hY2ggaXMgdGhlIFJUTCBwYXNzZXMgY2FuIHN0aWxsIHVzZSBsZHgvc3R4Cmluc3Ry dWN0aW9ucyB0byBza2lwIGFuIGFkZGkuZCBpbnN0cnVjdGlvbi4KCmdjYy9DaGFuZ2VMb2c6CgoJ KiBjb25maWcvbG9vbmdhcmNoL2xvb25nYXJjaC5tZCAodW5zcGVjKTogQWRkCglVTlNQRUNfTEFf UENSRUxfNjRfUEFSVDEgYW5kIFVOU1BFQ19MQV9QQ1JFTF82NF9QQVJUMi4KCShsYV9wY3JlbDY0 X3R3b19wYXJ0cyk6IE5ldyBkZWZpbmVfaW5zbi4KCSogY29uZmlnL2xvb25nYXJjaC9sb29uZ2Fy Y2guY2MgKGxvb25nYXJjaF90bHNfc3ltYm9sKTogRml4IGEKCXR5cG8gaW4gdGhlIGNvbW1lbnQu CgkobG9vbmdhcmNoX2NhbGxfdGxzX2dldF9hZGRyKTogSWYgLW1jbW9kZWw9ZXh0cmVtZQoJLW1l eHBsaWNpdC1yZWxvY3M9e2Fsd2F5cyxhdXRvfSwgdXNlIGxhX3BjcmVsNjRfdHdvX3BhcnRzIGZv cgoJYWRkcmVzc2luZyB0aGUgVExTIHN5bWJvbCBhbmQgX190bHNfZ2V0X2FkZHIuICBFbWl0IGFu IFJFR19FUVVBTAoJbm90ZSB0byBhbGxvdyBDU0UgYWRkcmVzc2luZyBfX3Rsc19nZXRfYWRkci4K CShsb29uZ2FyY2hfbGVnaXRpbWl6ZV90bHNfYWRkcmVzcyk6IElmIC1tY21vZGVsPWV4dHJlbWUK CS1tZXhwbGljaXQtcmVsb2NzPXthbHdheXMsYXV0b30sIGFkZHJlc3MgVExTIElFIHN5bWJvbHMg d2l0aAoJbGFfcGNyZWw2NF90d29fcGFydHMuCgkobG9vbmdhcmNoX3NwbGl0X3N5bWJvbCk6IElm IC1tY21vZGVsPWV4dHJlbWUKCS1tZXhwbGljaXQtcmVsb2NzPXthbHdheXMsYXV0b30sIGFkZHJl c3Mgc3ltYm9scyB3aXRoCglsYV9wY3JlbDY0X3R3b19wYXJ0cy4KCmdjYy90ZXN0c3VpdGUvQ2hh bmdlTG9nOgoKCSogZ2NjLnRhcmdldC9sb29uZ2FyY2gvZnVuYy1jYWxsLWV4dHJlbWUtMS5jIChk Zy1vcHRpb25zKToKCVVzZSAtTzIgaW5zdGVhZCBvZiAtTzAgdG8gZW5zdXJlIHRoZSBwY2FsYXUx MmkvYWRkaS9sdTMyaS9sdTUyaQoJaW5zdHJ1Y3Rpb24gc2VxdWVuY2VzIGFyZSBub3QgcmVvcmRl cmVkIGJ5IHRoZSBjb21waWxlci4KCShOT0lQQSk6IERpc2FsbG93IGludGVycHJvY2VkdXJhbCBv cHRpbWl6YXRpb25zLgoJKiBnY2MudGFyZ2V0L2xvb25nYXJjaC9mdW5jLWNhbGwtZXh0cmVtZS0y LmM6IFJlbW92ZSB0aGUgY29udGVudAoJZHVwbGljYXRlZCBmcm9tIGZ1bmMtY2FsbC1leHRyZW1l LTEuYywgaW5jbHVkZSBpdCBpbnN0ZWFkLgoJKGRnLW9wdGlvbnMpOiBMaWtld2lzZS4KCSogZ2Nj LnRhcmdldC9sb29uZ2FyY2gvZnVuYy1jYWxsLWV4dHJlbWUtMy5jIChkZy1vcHRpb25zKToKCUxp a2V3aXNlLgoJKiBnY2MudGFyZ2V0L2xvb25nYXJjaC9mdW5jLWNhbGwtZXh0cmVtZS00LmMgKGRn LW9wdGlvbnMpOgoJTGlrZXdpc2UuCgkqIGdjYy50YXJnZXQvbG9vbmdhcmNoL2Ntb2RlbC1leHRy ZW1lLTEuYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvbG9vbmdhcmNoL2Ntb2RlbC1leHRyZW1l LTIuYzogTmV3IHRlc3QuCi0tLQogZ2NjL2NvbmZpZy9sb29uZ2FyY2gvbG9vbmdhcmNoLmNjICAg ICAgICAgICAgIHwgMTEyICsrKysrKysrKystLS0tLS0tLQogZ2NjL2NvbmZpZy9sb29uZ2FyY2gv bG9vbmdhcmNoLm1kICAgICAgICAgICAgIHwgIDIwICsrKysKIC4uLi9nY2MudGFyZ2V0L2xvb25n YXJjaC9jbW9kZWwtZXh0cmVtZS0xLmMgICB8ICAxOCArKysKIC4uLi9nY2MudGFyZ2V0L2xvb25n YXJjaC9jbW9kZWwtZXh0cmVtZS0yLmMgICB8ICAgNyArKwogLi4uL2xvb25nYXJjaC9mdW5jLWNh bGwtZXh0cmVtZS0xLmMgICAgICAgICAgIHwgIDE0ICsrLQogLi4uL2xvb25nYXJjaC9mdW5jLWNh bGwtZXh0cmVtZS0yLmMgICAgICAgICAgIHwgIDI5ICstLS0tCiAuLi4vbG9vbmdhcmNoL2Z1bmMt Y2FsbC1leHRyZW1lLTMuYyAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9sb29uZ2FyY2gvZnVuYy1j YWxsLWV4dHJlbWUtNC5jICAgICAgICAgICB8ICAgMiArLQogOCBmaWxlcyBjaGFuZ2VkLCAxMjIg aW5zZXJ0aW9ucygrKSwgODIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2xvb25nYXJjaC9jbW9kZWwtZXh0cmVtZS0xLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvbG9vbmdhcmNoL2Ntb2RlbC1leHRy ZW1lLTIuYwoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbG9vbmdhcmNoL2xvb25nYXJjaC5jYyBi L2djYy9jb25maWcvbG9vbmdhcmNoL2xvb25nYXJjaC5jYwppbmRleCA0ODE5MDMxNDdiOC4uZTcw Y2U4MGM3YjMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvbG9vbmdhcmNoL2xvb25nYXJjaC5jYwor KysgYi9nY2MvY29uZmlnL2xvb25nYXJjaC9sb29uZ2FyY2guY2MKQEAgLTI3MzcsNyArMjczNyw3 IEBAIGxvb25nYXJjaF9hZGRfb2Zmc2V0IChydHggdGVtcCwgcnR4IHJlZywgSE9TVF9XSURFX0lO VCBvZmZzZXQpCiAgIHJldHVybiBwbHVzX2NvbnN0YW50IChQbW9kZSwgcmVnLCBvZmZzZXQpOwog fQogCi0vKiBUaGUgX190bHNfZ2V0X2F0dHIgc3ltYm9sLiAgKi8KKy8qIFRoZSBfX3Rsc19nZXRf YWRkciBzeW1ib2wuICAqLwogc3RhdGljIEdUWSAoKCkpIHJ0eCBsb29uZ2FyY2hfdGxzX3N5bWJv bDsKIAogLyogTG9hZCBhbiBlbnRyeSBmb3IgYSBUTFMgYWNjZXNzLiAgKi8KQEAgLTI3NzcsMjAg KzI3NzcsMjIgQEAgbG9vbmdhcmNoX2NhbGxfdGxzX2dldF9hZGRyIChydHggc3ltLCBlbnVtIGxv b25nYXJjaF9zeW1ib2xfdHlwZSB0eXBlLCBydHggdjApCiAKICAgaWYgKGxvb25nYXJjaF9leHBs aWNpdF9yZWxvY3NfcCAodHlwZSkpCiAgICAgewotICAgICAgLyogU3BsaXQgdGxzIHN5bWJvbCB0 byBoaWdoIGFuZCBsb3cuICAqLwotICAgICAgcnR4IGhpZ2ggPSBnZW5fcnR4X0hJR0ggKFBtb2Rl LCBjb3B5X3J0eCAobG9jKSk7Ci0gICAgICBoaWdoID0gbG9vbmdhcmNoX2ZvcmNlX3RlbXBvcmFy eSAodG1wLCBoaWdoKTsKLQogICAgICAgaWYgKFRBUkdFVF9DTU9ERUxfRVhUUkVNRSkKIAl7Ci0J ICBydHggdG1wMSA9IGdlbl9yZWdfcnR4IChQbW9kZSk7Ci0JICBlbWl0X2luc24gKGdlbl90bHNf bG93IChQbW9kZSwgdG1wMSwgZ2VuX3J0eF9SRUcgKFBtb2RlLCAwKSwgbG9jKSk7Ci0JICBlbWl0 X2luc24gKGdlbl9sdWlfaF9sbzIwICh0bXAxLCB0bXAxLCBsb2MpKTsKLQkgIGVtaXRfaW5zbiAo Z2VuX2x1aV9oX2hpMTIgKHRtcDEsIHRtcDEsIGxvYykpOwotCSAgZW1pdF9tb3ZlX2luc24gKGEw LCBnZW5fcnR4X1BMVVMgKFBtb2RlLCBoaWdoLCB0bXAxKSk7CisJICBydHggcGFydDEgPSBnZW5f cmVnX3J0eCAoUG1vZGUpOworCSAgcnR4IHBhcnQyID0gZ2VuX3JlZ19ydHggKFBtb2RlKTsKKwor CSAgZW1pdF9pbnNuIChnZW5fbGFfcGNyZWw2NF90d29fcGFydHMgKHBhcnQxLCBwYXJ0MiwgbG9j KSk7CisJICBlbWl0X21vdmVfaW5zbiAoYTAsIGdlbl9ydHhfUExVUyAoUG1vZGUsIHBhcnQxLCBw YXJ0MikpOwogCX0KICAgICAgIGVsc2UKLQllbWl0X2luc24gKGdlbl90bHNfbG93IChQbW9kZSwg YTAsIGhpZ2gsIGxvYykpOworCXsKKwkgIC8qIFNwbGl0IHRscyBzeW1ib2wgdG8gaGlnaCBhbmQg bG93LiAgKi8KKwkgIHJ0eCBoaWdoID0gZ2VuX3J0eF9ISUdIIChQbW9kZSwgY29weV9ydHggKGxv YykpOworCisJICBoaWdoID0gbG9vbmdhcmNoX2ZvcmNlX3RlbXBvcmFyeSAodG1wLCBoaWdoKTsK KwkgIGVtaXRfaW5zbiAoZ2VuX3Rsc19sb3cgKFBtb2RlLCBhMCwgaGlnaCwgbG9jKSk7CisJfQog ICAgIH0KICAgZWxzZQogICAgIGVtaXRfaW5zbiAobG9vbmdhcmNoX2xvYWRfdGxzIChhMCwgbG9j LCB0eXBlKSk7CkBAIC0yODcwLDIwICsyODcyLDMwIEBAIGxvb25nYXJjaF9jYWxsX3Rsc19nZXRf YWRkciAocnR4IHN5bSwgZW51bSBsb29uZ2FyY2hfc3ltYm9sX3R5cGUgdHlwZSwgcnR4IHYwKQog CSAgICB7CiAJICAgICAgaWYgKGxvb25nYXJjaF9leHBsaWNpdF9yZWxvY3NfcCAoU1lNQk9MX0dP VF9ESVNQKSkKIAkJewotCQkgIHJ0eCB0bXAxID0gZ2VuX3JlZ19ydHggKFBtb2RlKTsKLQkJICBy dHggaGlnaCA9IGdlbl9yZWdfcnR4IChQbW9kZSk7CisJCSAgZ2NjX2Fzc2VydCAobGFfb3B0X2V4 cGxpY2l0X3JlbG9jcyAhPQorCQkJICAgICAgRVhQTElDSVRfUkVMT0NTX05PTkUpOwogCi0JCSAg bG9vbmdhcmNoX2VtaXRfbW92ZSAoaGlnaCwKLQkJCQkgICAgICAgZ2VuX3J0eF9ISUdIIChQbW9k ZSwgbG9vbmdhcmNoX3Rsc19zeW1ib2wpKTsKLQkJICBsb29uZ2FyY2hfZW1pdF9tb3ZlICh0bXAx LCBnZW5fcnR4X0xPX1NVTSAoUG1vZGUsCi0JCQkJCQkJICAgICBnZW5fcnR4X1JFRyAoUG1vZGUs IDApLAotCQkJCQkJCSAgICAgbG9vbmdhcmNoX3Rsc19zeW1ib2wpKTsKLQkJICBlbWl0X2luc24g KGdlbl9sdWlfaF9sbzIwICh0bXAxLCB0bXAxLCBsb29uZ2FyY2hfdGxzX3N5bWJvbCkpOwotCQkg IGVtaXRfaW5zbiAoZ2VuX2x1aV9oX2hpMTIgKHRtcDEsIHRtcDEsIGxvb25nYXJjaF90bHNfc3lt Ym9sKSk7Ci0JCSAgbG9vbmdhcmNoX2VtaXRfbW92ZSAoZGVzdCwKLQkJCQkgICAgICAgZ2VuX3J0 eF9NRU0gKFBtb2RlLAotCQkJCQkJICAgIGdlbl9ydHhfUExVUyAoUG1vZGUsCi0JCQkJCQkJCSAg aGlnaCwgdG1wMSkpKTsKKwkJICBydHggcGFydDEgPSBnZW5fcmVnX3J0eCAoUG1vZGUpOworCQkg IHJ0eCBwYXJ0MiA9IGdlbl9yZWdfcnR4IChQbW9kZSk7CisKKwkJICBlbWl0X2luc24gKAorCQkg ICAgZ2VuX2xhX3BjcmVsNjRfdHdvX3BhcnRzIChwYXJ0MSwgcGFydDIsCisJCQkJCSAgICAgIGxv b25nYXJjaF90bHNfc3ltYm9sKSk7CisJCSAgbG9vbmdhcmNoX2VtaXRfbW92ZSAoCisJCSAgICBk ZXN0LAorCQkgICAgZ2VuX3J0eF9NRU0gKFBtb2RlLCBnZW5fcnR4X1BMVVMgKFBtb2RlLAorCQkJ CQkJICAgICAgcGFydDEsCisJCQkJCQkgICAgICBwYXJ0MikpKTsKKworCQkgIC8qIFB1dCBhbiBS RUdfRVFVQUwgbm90ZSBoZXJlIHRvIGFsbG93IENTRSAoc3RvcmluZworCQkgICAgIHBhcnQxICsg cGFydDIsIGkuZS4gdGhlIGFkZHJlc3Mgb2YgdGxzX2dldF9hZGRyIGludG8KKwkJICAgICBhIHNh dmVkIHJlZ2lzdGVyIGFuZCB1c2UgaXQgZm9yIG11bHRpcGxlIFRMUworCQkgICAgIGFjY2Vzc2Vz KS4gICovCisJCSAgcnR4IHN1bSA9IGdlbl9ydHhfVU5TUEVDICgKKwkJICAgIFBtb2RlLCBnZW5f cnR2ZWMgKDEsIGxvb25nYXJjaF90bHNfc3ltYm9sKSwKKwkJICAgIFVOU1BFQ19BRERSRVNTX0ZJ UlNUCisJCSAgICArIGxvb25nYXJjaF9jbGFzc2lmeV9zeW1ib2wgKGxvb25nYXJjaF90bHNfc3lt Ym9sKSk7CisJCSAgc2V0X3VuaXF1ZV9yZWdfbm90ZSAoZ2V0X2xhc3RfaW5zbiAoKSwgUkVHX0VR VUFMLCBzdW0pOwogCQl9CiAJICAgICAgZWxzZQogCSAgICAgICBlbWl0X2luc24gKGdlbl9tb3Zk aV9zeW1ib2xpY19vZmY2NCAoZGVzdCwgbG9vbmdhcmNoX3Rsc19zeW1ib2wsCkBAIC0yOTQ2LDI0 ICsyOTU4LDMwIEBAIGxvb25nYXJjaF9sZWdpdGltaXplX3Rsc19hZGRyZXNzIChydHggbG9jKQog CSAgZGVzdCA9IGdlbl9yZWdfcnR4IChQbW9kZSk7CiAJICBpZiAobG9vbmdhcmNoX2V4cGxpY2l0 X3JlbG9jc19wIChTWU1CT0xfVExTX0lFKSkKIAkgICAgewotCSAgICAgIHRtcDMgPSBnZW5fcmVn X3J0eCAoUG1vZGUpOwotCSAgICAgIHJ0eCBoaWdoID0gZ2VuX3J0eF9ISUdIIChQbW9kZSwgY29w eV9ydHggKHRtcDIpKTsKLQkgICAgICBoaWdoID0gbG9vbmdhcmNoX2ZvcmNlX3RlbXBvcmFyeSAo dG1wMywgaGlnaCk7Ci0KIAkgICAgICBpZiAoVEFSR0VUX0NNT0RFTF9FWFRSRU1FKQogCQl7Ci0J CSAgcnR4IHRtcDMgPSBnZW5fcmVnX3J0eCAoUG1vZGUpOwotCQkgIGVtaXRfaW5zbiAoZ2VuX3Rs c19sb3cgKFBtb2RlLCB0bXAzLAotCQkJCQkgIGdlbl9ydHhfUkVHIChQbW9kZSwgMCksIHRtcDIp KTsKLQkJICBlbWl0X2luc24gKGdlbl9sdWlfaF9sbzIwICh0bXAzLCB0bXAzLCB0bXAyKSk7Ci0J CSAgZW1pdF9pbnNuIChnZW5fbHVpX2hfaGkxMiAodG1wMywgdG1wMywgdG1wMikpOworCQkgIGdj Y19hc3NlcnQgKGxhX29wdF9leHBsaWNpdF9yZWxvY3MKKwkJCSAgICAgICE9IEVYUExJQ0lUX1JF TE9DU19OT05FKTsKKworCQkgIHJ0eCBwYXJ0MSA9IGdlbl9yZWdfcnR4IChQbW9kZSk7CisJCSAg cnR4IHBhcnQyID0gZ2VuX3JlZ19ydHggKFBtb2RlKTsKKworCQkgIGVtaXRfaW5zbiAoZ2VuX2xh X3BjcmVsNjRfdHdvX3BhcnRzIChwYXJ0MSwgcGFydDIsCisJCQkJCQkgICAgICAgdG1wMikpOwog CQkgIGVtaXRfbW92ZV9pbnNuICh0bXAxLAogCQkJCSAgZ2VuX3J0eF9NRU0gKFBtb2RlLAogCQkJ CQkgICAgICAgZ2VuX3J0eF9QTFVTIChQbW9kZSwKLQkJCQkJCQkgICAgIGhpZ2gsIHRtcDMpKSk7 CisJCQkJCQkJICAgICBwYXJ0MSwKKwkJCQkJCQkgICAgIHBhcnQyKSkpOwogCQl9CiAJICAgICAg ZWxzZQotCQllbWl0X2luc24gKGdlbl9sZF9mcm9tX2dvdCAoUG1vZGUsIHRtcDEsIGhpZ2gsIHRt cDIpKTsKKwkJeworCQkgIHRtcDMgPSBnZW5fcmVnX3J0eCAoUG1vZGUpOworCQkgIHJ0eCBoaWdo ID0gZ2VuX3J0eF9ISUdIIChQbW9kZSwgY29weV9ydHggKHRtcDIpKTsKKworCQkgIGhpZ2ggPSBs b29uZ2FyY2hfZm9yY2VfdGVtcG9yYXJ5ICh0bXAzLCBoaWdoKTsKKwkJICBlbWl0X2luc24gKGdl bl9sZF9mcm9tX2dvdCAoUG1vZGUsIHRtcDEsIGhpZ2gsIHRtcDIpKTsKKwkJfQogCSAgICB9CiAJ ICBlbHNlCiAJICAgIGVtaXRfaW5zbiAobG9vbmdhcmNoX2xvYWRfdGxzICh0bXAxLCB0bXAyLCBT WU1CT0xfVExTX0lFKSk7CkBAIC0zMTQyLDI0ICszMTYwLDIzIEBAIGxvb25nYXJjaF9zcGxpdF9z eW1ib2wgKHJ0eCB0ZW1wLCBydHggYWRkciwgbWFjaGluZV9tb2RlIG1vZGUsIHJ0eCAqbG93X291 dCkKICAgICAgIHx8ICFsb29uZ2FyY2hfc3BsaXRfc3ltYm9sX3R5cGUgKHN5bWJvbF90eXBlKSkK ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgcnR4IGhpZ2gsIHRlbXAxID0gTlVMTDsKKyAgcnR4IGhp Z2g7CiAKICAgaWYgKHRlbXAgPT0gTlVMTCkKICAgICB0ZW1wID0gZ2VuX3JlZ19ydHggKFBtb2Rl KTsKIAotICAvKiBHZXQgdGhlIDEyLTMxIGJpdHMgb2YgdGhlIGFkZHJlc3MuICAqLwotICBoaWdo ID0gZ2VuX3J0eF9ISUdIIChQbW9kZSwgY29weV9ydHggKGFkZHIpKTsKLSAgaGlnaCA9IGxvb25n YXJjaF9mb3JjZV90ZW1wb3JhcnkgKHRlbXAsIGhpZ2gpOwotCiAgIGlmIChsb29uZ2FyY2hfc3lt Ym9sX2V4dHJlbWVfcCAoc3ltYm9sX3R5cGUpICYmIGNhbl9jcmVhdGVfcHNldWRvX3AgKCkpCiAg ICAgewogICAgICAgZ2NjX2Fzc2VydCAobGFfb3B0X2V4cGxpY2l0X3JlbG9jcyAhPSBFWFBMSUNJ VF9SRUxPQ1NfTk9ORSk7CiAKLSAgICAgIHRlbXAxID0gZ2VuX3JlZ19ydHggKFBtb2RlKTsKLSAg ICAgIGVtaXRfbW92ZV9pbnNuICh0ZW1wMSwgZ2VuX3J0eF9MT19TVU0gKFBtb2RlLCBnZW5fcnR4 X1JFRyAoUG1vZGUsIDApLAotCQkJCQkgICAgIGFkZHIpKTsKLSAgICAgIGVtaXRfaW5zbiAoZ2Vu X2x1aV9oX2xvMjAgKHRlbXAxLCB0ZW1wMSwgYWRkcikpOwotICAgICAgZW1pdF9pbnNuIChnZW5f bHVpX2hfaGkxMiAodGVtcDEsIHRlbXAxLCBhZGRyKSk7CisgICAgICBoaWdoID0gZ2VuX3JlZ19y dHggKFBtb2RlKTsKKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2xhX3BjcmVsNjRfdHdvX3BhcnRzICho aWdoLCB0ZW1wLCBhZGRyKSk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgLyogR2V0IHRo ZSAxMi0zMSBiaXRzIG9mIHRoZSBhZGRyZXNzLiAgKi8KKyAgICAgIGhpZ2ggPSBnZW5fcnR4X0hJ R0ggKFBtb2RlLCBjb3B5X3J0eCAoYWRkcikpOworICAgICAgaGlnaCA9IGxvb25nYXJjaF9mb3Jj ZV90ZW1wb3JhcnkgKHRlbXAsIGhpZ2gpOwogICAgIH0KIAogICBpZiAobG93X291dCkKQEAgLTMx NjgsNyArMzE4NSw3IEBAIGxvb25nYXJjaF9zcGxpdF9zeW1ib2wgKHJ0eCB0ZW1wLCBydHggYWRk ciwgbWFjaGluZV9tb2RlIG1vZGUsIHJ0eCAqbG93X291dCkKICAgICAgIGNhc2UgU1lNQk9MX1BD UkVMNjQ6CiAJaWYgKGNhbl9jcmVhdGVfcHNldWRvX3AgKCkpCiAJICB7Ci0JICAgICpsb3dfb3V0 ID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgaGlnaCwgdGVtcDEpOworCSAgICAqbG93X291dCA9IGdl bl9ydHhfUExVUyAoUG1vZGUsIGhpZ2gsIHRlbXApOwogCSAgICBicmVhazsKIAkgIH0KIAkvKiBm YWxsIHRocm91Z2ggKi8KQEAgLTMxODAsNyArMzE5Nyw4IEBAIGxvb25nYXJjaF9zcGxpdF9zeW1i b2wgKHJ0eCB0ZW1wLCBydHggYWRkciwgbWFjaGluZV9tb2RlIG1vZGUsIHJ0eCAqbG93X291dCkK IAkvKiBTWU1CT0xfR09UX0RJU1Agc3ltYm9scyBhcmUgbG9hZGVkIGZyb20gdGhlIEdPVC4gICov CiAJewogCSAgaWYgKFRBUkdFVF9DTU9ERUxfRVhUUkVNRSAmJiBjYW5fY3JlYXRlX3BzZXVkb19w ICgpKQotCSAgICAqbG93X291dCA9IGdlbl9ydHhfTUVNIChQbW9kZSwgZ2VuX3J0eF9QTFVTIChQ bW9kZSwgaGlnaCwgdGVtcDEpKTsKKwkgICAgKmxvd19vdXQgPSBnZW5fcnR4X01FTSAoUG1vZGUs IGdlbl9ydHhfUExVUyAoUG1vZGUsIGhpZ2gsCisJCQkJCQkJIHRlbXApKTsKIAkgIGVsc2UKIAkg ICAgewogCSAgICAgIHJ0eCBsb3cgPSBnZW5fcnR4X0xPX1NVTSAoUG1vZGUsIGhpZ2gsIGFkZHIp OwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9sb29uZ2FyY2gvbG9vbmdhcmNoLm1kIGIvZ2NjL2Nv bmZpZy9sb29uZ2FyY2gvbG9vbmdhcmNoLm1kCmluZGV4IDVhMmIxODE3MTZhLi5mMjdhMjYzODQ4 ZCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9sb29uZ2FyY2gvbG9vbmdhcmNoLm1kCisrKyBiL2dj Yy9jb25maWcvbG9vbmdhcmNoL2xvb25nYXJjaC5tZApAQCAtODQsNiArODQsOCBAQCAoZGVmaW5l X2NfZW51bSAidW5zcGVjIiBbCiAgIFVOU1BFQ19DQUxMX1ZBTFVFX01VTFRJUExFX0lOVEVSTkFM XzEKIAogICBVTlNQRUNfTE9BRF9TWU1CT0xfT0ZGU0VUNjQKKyAgVU5TUEVDX0xBX1BDUkVMXzY0 X1BBUlQxCisgIFVOU1BFQ19MQV9QQ1JFTF82NF9QQVJUMgogXSkKIAogKGRlZmluZV9jX2VudW0g InVuc3BlY3YiIFsKQEAgLTIyMjQsNiArMjIyNiwyNCBAQCAoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICJtb3ZkaV9zeW1ib2xpY19vZmY2NCIKICBbKHNldF9hdHRyICJtb2RlIiAiREkiKQogICAoc2V0 X2F0dHIgImxlbmd0aCIgIjUiKV0pCiAKKzs7IFRoZSA2NC1iaXQgUEMtcmVsYXRpdmUgcGFydCBv ZiBhZGRyZXNzIGxvYWRpbmcuCis7OyBOb3RlIHRoYXQgdGhlIHBzQUJJIGRvZXMgbm90IGFsbG93 IHNwbGl0dGluZyBpdC4KKyhkZWZpbmVfaW5zbiAibGFfcGNyZWw2NF90d29fcGFydHMiCisgIFso c2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKHVuc3Bl YzpESSBbKG1hdGNoX29wZXJhbmQ6REkgMiAiIikgKHBjKV0gVU5TUEVDX0xBX1BDUkVMXzY0X1BB UlQxKSkKKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6REkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIj1y IikKKwkodW5zcGVjOkRJIFsobWF0Y2hfZHVwIDIpIChwYyldIFVOU1BFQ19MQV9QQ1JFTF82NF9Q QVJUMikpXQorICAiVEFSR0VUX0FCSV9MUDY0ICYmIGxhX29wdF9leHBsaWNpdF9yZWxvY3MgIT0g RVhQTElDSVRfUkVMT0NTX05PTkUiCisgIHsKKyAgICByZXR1cm4gInBjYWxhdTEyaVx0JTAsJXIy XG5cdCIKKwkgICAiYWRkaS5kXHQlMSwkcjAsJUwyXG5cdCIKKwkgICAibHUzMmkuZFx0JTEsJVIy XG5cdCIKKwkgICAibHU1MmkuZFx0JTEsJTEsJUgyIjsKKyAgfQorICBbKHNldF9hdHRyICJtb3Zl X3R5cGUiICJtb3ZlIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIikKKyAgIChzZXRfYXR0ciAi bGVuZ3RoIiAiMTYiKV0pCisKIDs7IDMyLWJpdCBJbnRlZ2VyIG1vdmVzCiAKIChkZWZpbmVfZXhw YW5kICJtb3ZzaSIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9sb29uZ2Fy Y2gvY21vZGVsLWV4dHJlbWUtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2xvb25nYXJj aC9jbW9kZWwtZXh0cmVtZS0xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjU2NGVlNDAxN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2xvb25nYXJjaC9jbW9kZWwtZXh0cmVtZS0xLmMKQEAgLTAsMCArMSwxOCBAQAorLyogeyBk Zy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPWxvb25nYXJjaDY0IC1t YWJpPWxwNjRkIC1PMiAtbWNtb2RlbD1leHRyZW1lIC1mbm8tcGx0IC1tZXhwbGljaXQtcmVsb2Nz PWFsd2F5cyAtZmR1bXAtcnRsLWZpbmFsIiB9ICovCisKK2ludCBhOworZXh0ZXJuIGludCBiOwor X190aHJlYWQgaW50IGMgX19hdHRyaWJ1dGVfXyAoKHRsc19tb2RlbCAoImxvY2FsLWV4ZWMiKSkp OworX190aHJlYWQgaW50IGQgX19hdHRyaWJ1dGVfXyAoKHRsc19tb2RlbCAoImluaXRpYWwtZXhl YyIpKSk7CitfX3RocmVhZCBpbnQgZSBfX2F0dHJpYnV0ZV9fICgodGxzX21vZGVsICgibG9jYWwt ZHluYW1pYyIpKSk7CitfX3RocmVhZCBpbnQgZiBfX2F0dHJpYnV0ZV9fICgodGxzX21vZGVsICgi Z2xvYmFsLWR5bmFtaWMiKSkpOworCit2b2lkCit0ZXN0ICh2b2lkKQoreworICBhID0gYiArIGMg KyBkICsgZSArIGY7Cit9CisKKy8qIGEsIGIsIGQsIGUsIGYsIGFuZCBfX3Rsc19nZXRfYWRkci4g ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAibGFfcGNyZWw2NF90d29f cGFydHMiIDYgImZpbmFsIiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9sb29uZ2FyY2gvY21vZGVsLWV4dHJlbWUtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2xvb25nYXJjaC9jbW9kZWwtZXh0cmVtZS0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmNlODM0ODA1ZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2xvb25nYXJjaC9jbW9kZWwtZXh0cmVtZS0yLmMKQEAgLTAsMCArMSw3 IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9bG9v bmdhcmNoNjQgLW1hYmk9bHA2NGQgLU8yIC1tY21vZGVsPWV4dHJlbWUgLWZuby1wbHQgLW1leHBs aWNpdC1yZWxvY3M9YXV0byAtZmR1bXAtcnRsLWZpbmFsIiB9ICovCisKKyNpbmNsdWRlICJjbW9k ZWwtZXh0cmVtZS0xLmMiCisKKy8qIGEsIGIsIGQsIGUsIGYsIGFuZCBfX3Rsc19nZXRfYWRkci4g ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAibGFfcGNyZWw2NF90d29f cGFydHMiIDYgImZpbmFsIiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9sb29uZ2FyY2gvZnVuYy1jYWxsLWV4dHJlbWUtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2xvb25nYXJjaC9mdW5jLWNhbGwtZXh0cmVtZS0xLmMKaW5kZXggZGIxZTBmODUzOTYu LmZkYjRjZjFmZjdmIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvbG9vbmdh cmNoL2Z1bmMtY2FsbC1leHRyZW1lLTEuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv bG9vbmdhcmNoL2Z1bmMtY2FsbC1leHRyZW1lLTEuYwpAQCAtMSwzMSArMSwzMyBAQAogLyogeyBk Zy1kbyBjb21waWxlIH0gKi8KLS8qIHsgZGctb3B0aW9ucyAiLW1hYmk9bHA2NGQgLU8wIC1mbm8t cGljIC1mbm8tcGx0IC1tZXhwbGljaXQtcmVsb2NzIC1tY21vZGVsPWV4dHJlbWUiIH0gKi8KKy8q IHsgZGctb3B0aW9ucyAiLW1hYmk9bHA2NGQgLU8yIC1mbm8tcGljIC1mbm8tcGx0IC1tZXhwbGlj aXQtcmVsb2NzIC1tY21vZGVsPWV4dHJlbWUiIH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlciAidGVzdDouKnBjYWxhdTEyaS4qJWdvdF9wY19oaTIwLipcblx0YWRkaVwuZC4qJWdv dF9wY19sbzEyLipcblx0bHUzMmlcLmQuKiVnb3Q2NF9wY19sbzIwLipcblx0bHU1MmlcLmQuKiVn b3Q2NF9wY19oaTEyLipcblx0bGR4XC5kIiB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlciAidGVzdDE6LipwY2FsYXUxMmkuKiVwY19oaTIwLipcblx0YWRkaVwuZC4qJXBjX2xv MTIuKlxuXHRsdTMyaVwuZC4qJXBjNjRfbG8yMC4qXG5cdGx1NTJpXC5kLipwYzY0X2hpMTIuKlxu XHRhZGRcLmQiIH0gfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ0ZXN0Mjou KnBjYWxhdTEyaS4qJXBjX2hpMjAuKlxuXHRhZGRpXC5kLiolcGNfbG8xMi4qXG5cdGx1MzJpXC5k LiolcGM2NF9sbzIwLipcblx0bHU1MmlcLmQuKnBjNjRfaGkxMi4qXG5cdGFkZFwuZCIgfSB9ICov CiAKKyNkZWZpbmUgTk9JUEEgX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkKKwogZXh0ZXJuIHZvaWQg ZyAodm9pZCk7Ci12b2lkCitOT0lQQSB2b2lkCiBmICh2b2lkKQoge30KIAotc3RhdGljIHZvaWQK K05PSVBBIHN0YXRpYyB2b2lkCiBsICh2b2lkKQoge30KIAotdm9pZAorTk9JUEEgdm9pZAogdGVz dCAodm9pZCkKIHsKICAgZyAoKTsKIH0KIAotdm9pZAorTk9JUEEgdm9pZAogdGVzdDEgKHZvaWQp CiB7CiAgIGYgKCk7CiB9CiAKLXZvaWQKK05PSVBBIHZvaWQKIHRlc3QyICh2b2lkKQogewogICBs ICgpOwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2xvb25nYXJjaC9mdW5j LWNhbGwtZXh0cmVtZS0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvbG9vbmdhcmNoL2Z1 bmMtY2FsbC1leHRyZW1lLTIuYwppbmRleCAyMWJmODFhZTgzNy4uZGZiYTM4ODJiOTcgMTAwNjQ0 Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9sb29uZ2FyY2gvZnVuYy1jYWxsLWV4dHJl bWUtMi5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9sb29uZ2FyY2gvZnVuYy1jYWxs LWV4dHJlbWUtMi5jCkBAIC0xLDMyICsxLDcgQEAKIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0v KiB7IGRnLW9wdGlvbnMgIi1tYWJpPWxwNjRkIC1PMCAtZnBpYyAtZm5vLXBsdCAtbWV4cGxpY2l0 LXJlbG9jcyAtbWNtb2RlbD1leHRyZW1lIiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYWJpPWxw NjRkIC1PMiAtZnBpYyAtZm5vLXBsdCAtbWV4cGxpY2l0LXJlbG9jcyAtbWNtb2RlbD1leHRyZW1l IiB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInRlc3Q6LipwY2FsYXUxMmku KiVnb3RfcGNfaGkyMC4qXG5cdGFkZGlcLmQuKiVnb3RfcGNfbG8xMi4qXG5cdGx1MzJpXC5kLiol Z290NjRfcGNfbG8yMC4qXG5cdGx1NTJpXC5kLiolZ290NjRfcGNfaGkxMi4qXG5cdGxkeFwuZCIg fSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInRlc3QxOi4qcGNhbGF1MTJp LiolZ290X3BjX2hpMjAuKlxuXHRhZGRpXC5kLiolZ290X3BjX2xvMTIuKlxuXHRsdTMyaVwuZC4q JWdvdDY0X3BjX2xvMjAuKlxuXHRsdTUyaVwuZC4qJWdvdDY0X3BjX2hpMTIuKlxuXHRsZHhcLmQi IH0gfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ0ZXN0MjouKnBjYWxhdTEy aS4qJXBjX2hpMjAuKlxuXHRhZGRpXC5kLiolcGNfbG8xMi4qXG5cdGx1MzJpXC5kLiolcGM2NF9s bzIwLipcblx0bHU1MmlcLmQuKnBjNjRfaGkxMi4qXG5cdGFkZFwuZCIgfSB9ICovCiAKLWV4dGVy biB2b2lkIGcgKHZvaWQpOwotdm9pZAotZiAodm9pZCkKLXt9Ci0KLXN0YXRpYyB2b2lkCi1sICh2 b2lkKQote30KLQotdm9pZAotdGVzdCAodm9pZCkKLXsKLSAgZyAoKTsKLX0KLQotdm9pZAotdGVz dDEgKHZvaWQpCi17Ci0gIGYgKCk7Ci19Ci0KLXZvaWQKLXRlc3QyICh2b2lkKQotewotICBsICgp OwotfQorI2luY2x1ZGUgImZ1bmMtY2FsbC1leHRyZW1lLTEuYyIKZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9sb29uZ2FyY2gvZnVuYy1jYWxsLWV4dHJlbWUtMy5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2xvb25nYXJjaC9mdW5jLWNhbGwtZXh0cmVtZS0zLmMKaW5k ZXggYTRkYTQ0YjRhM2QuLjFmNTIzNGY4M2QxIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvbG9vbmdhcmNoL2Z1bmMtY2FsbC1leHRyZW1lLTMuYworKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvbG9vbmdhcmNoL2Z1bmMtY2FsbC1leHRyZW1lLTMuYwpAQCAtMSw1ICsx LDUgQEAKIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1tYWJpPWxw NjRkIC1PMCAtZm5vLXBpYyAtZm5vLXBsdCAtbWV4cGxpY2l0LXJlbG9jcz1hdXRvIC1tY21vZGVs PWV4dHJlbWUiIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hYmk9bHA2NGQgLU8yIC1mbm8tcGlj IC1mbm8tcGx0IC1tZXhwbGljaXQtcmVsb2NzPWF1dG8gLW1jbW9kZWw9ZXh0cmVtZSIgfSAqLwog LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ0ZXN0Oi4qcGNhbGF1MTJpLiolZ290X3Bj X2hpMjAuKlxuXHRhZGRpXC5kLiolZ290X3BjX2xvMTIuKlxuXHRsdTMyaVwuZC4qJWdvdDY0X3Bj X2xvMjAuKlxuXHRsdTUyaVwuZC4qJWdvdDY0X3BjX2hpMTIuKlxuXHRsZHhcLmQiIH0gfSAqLwog LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ0ZXN0MTouKnBjYWxhdTEyaS4qJXBjX2hp MjAuKlxuXHRhZGRpXC5kLiolcGNfbG8xMi4qXG5cdGx1MzJpXC5kLiolcGM2NF9sbzIwLipcblx0 bHU1MmlcLmQuKnBjNjRfaGkxMi4qXG5cdGFkZFwuZCIgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXIgInRlc3QyOi4qcGNhbGF1MTJpLiolcGNfaGkyMC4qXG5cdGFkZGlcLmQu KiVwY19sbzEyLipcblx0bHUzMmlcLmQuKiVwYzY0X2xvMjAuKlxuXHRsdTUyaVwuZC4qcGM2NF9o aTEyLipcblx0YWRkXC5kIiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9sb29uZ2FyY2gvZnVuYy1jYWxsLWV4dHJlbWUtNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2xvb25nYXJjaC9mdW5jLWNhbGwtZXh0cmVtZS00LmMKaW5kZXggMTZiMDBmNGM1ZjIu LmM0MjI4NTAwNjM1IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvbG9vbmdh cmNoL2Z1bmMtY2FsbC1leHRyZW1lLTQuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv bG9vbmdhcmNoL2Z1bmMtY2FsbC1leHRyZW1lLTQuYwpAQCAtMSw1ICsxLDUgQEAKIC8qIHsgZGct ZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1tYWJpPWxwNjRkIC1PMCAtZnBpYyAt Zm5vLXBsdCAtbWV4cGxpY2l0LXJlbG9jcz1hdXRvIC1tY21vZGVsPWV4dHJlbWUiIH0gKi8KKy8q IHsgZGctb3B0aW9ucyAiLW1hYmk9bHA2NGQgLU8yIC1mcGljIC1mbm8tcGx0IC1tZXhwbGljaXQt cmVsb2NzPWF1dG8gLW1jbW9kZWw9ZXh0cmVtZSIgfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJ0ZXN0Oi4qcGNhbGF1MTJpLiolZ290X3BjX2hpMjAuKlxuXHRhZGRpXC5kLiol Z290X3BjX2xvMTIuKlxuXHRsdTMyaVwuZC4qJWdvdDY0X3BjX2xvMjAuKlxuXHRsdTUyaVwuZC4q JWdvdDY0X3BjX2hpMTIuKlxuXHRsZHhcLmQiIH0gfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJ0ZXN0MTouKnBjYWxhdTEyaS4qJWdvdF9wY19oaTIwLipcblx0YWRkaVwuZC4q JWdvdF9wY19sbzEyLipcblx0bHUzMmlcLmQuKiVnb3Q2NF9wY19sbzIwLipcblx0bHU1MmlcLmQu KiVnb3Q2NF9wY19oaTEyLipcblx0bGR4XC5kIiB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciAidGVzdDI6LipwY2FsYXUxMmkuKiVwY19oaTIwLipcblx0YWRkaVwuZC4qJXBj X2xvMTIuKlxuXHRsdTMyaVwuZC4qJXBjNjRfbG8yMC4qXG5cdGx1NTJpXC5kLipwYzY0X2hpMTIu KlxuXHRhZGRcLmQiIH0gfSAqLwotLSAKMi40My4wCgo= --=-+jQZYfrlXFFzETv2tc+3--