From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de [85.215.255.22]) by sourceware.org (Postfix) with ESMTPS id A95B13858D33 for ; Thu, 4 Jan 2024 16:28:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A95B13858D33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gjlay.de Authentication-Results: sourceware.org; spf=none smtp.mailfrom=gjlay.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A95B13858D33 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=85.215.255.22 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1704385696; cv=pass; b=JtRRgynstOK8ahcypJOW3b+T24QuJEVIr6gr/NhbxpDopMOEnZMsAG7S1yesggw/am3fzYSx1b8LQLkFLEvPCw/ydqcgul3nQy4jaPq/mn6mqg8r3EXOXMUAgAyeQrQAMj5Nwo3ARdH+AKcdQGAhJNINI6N9YTToYL/DzM5hxpo= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1704385696; c=relaxed/simple; bh=zAErYjpbhxYkrBGqwHZ3AelnB374ew7uzxqNcvelQQI=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:MIME-Version:To: From:Subject; b=PEvChnlMP0UB3UHEC+FRtUVpClnFU1CvxIhge8KFwS9HK9ARnElCi42FBBGXzpQBDfNzsivLykAfbdzqPr0wblPCgxawpd2g5NLUtdQFiE8HXIukpUdKMvx/iduJn68Lj59jb9dKzFN5PaNGskM9woctvlML8vPkyJ+m+Tpk/3c= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; t=1704385691; cv=none; d=strato.com; s=strato-dkim-0002; b=pFoouICMJgKALjVwrSIv/0d7gOvyBxt6vjaHrfjqPWImu9MUxlUMV34HQcKj0ML+mA joklDU+HHObeld4/qYAqr5YCmblkgVDv+yRxZ3Fcy6PJJKeik0UMg/w4aIPiPgDAROg7 UY9W91KfwP+TQgkK0ud7zV4sv8FiMaxO1htIu/fvt+Ws+eFmUnV9UrOZYySm4DXRXC/W IW1PuQ6YOUH65JA2gRQUT42EnWubST8F+eqEXJNft34a+o4zQzbksWyJWXE2E+hSCBjb b7lt9HLMPvB0HVwcsQLhoSkFgCygfsyB2WNuSpoxWUYnGKWg2LsceV7FQgZSPMjeb9NZ xO9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1704385691; s=strato-dkim-0002; d=strato.com; h=Subject:From:To:Date:Message-ID:Cc:Date:From:Subject:Sender; bh=RsUdm1MuagHgwZ05hw3KR6y6dlap+sui1R+KPSdZ7j0=; b=ZjWLKU9+z9f5m/frYn3zs6I0di83Q6jRYZloYstzcdmqp1YJctVCoUM5I1Nn7eRFin W77ba0hQK0o7q6f+jIO8jH7LZs3PmTglF4tCga8I1kFul1JPmhW+x95FKGd+wzsu8+PR nrxG0nrMV1HupQErFWjJjsR3vMwcTMh6hFRjsEZ298DqJflArHTMRrLZL1iqR03mezqZ InX+FltUPXeNaZPfkemhedLjmWvfGMYu/yV2GASTk2V0zjo/hLRGrxY0kfU9FZJObhz8 UzF83UkvrlRrQI184fN3+02wDrVIvv5Nd8ltS2moxsBUCFG9zf3zUYZ5tesuJbaFh1mL N/CA== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1704385691; s=strato-dkim-0002; d=gjlay.de; h=Subject:From:To:Date:Message-ID:Cc:Date:From:Subject:Sender; bh=RsUdm1MuagHgwZ05hw3KR6y6dlap+sui1R+KPSdZ7j0=; b=kCnwKOJCmac4xwbwBLeyguJ8PnM0xJupR+VMU7olJ7dlyKMD7smpIfD1d6Hq1oBZvC z90N742Iz8rPqL2b3GDN52msIpG9FnWArZJiDw+L88FYWKnvbM0/bAGJ39KNONUF9LtV 0dTPcJop82eDA0nGKvYZ+QAwayMJT+6Cz7GyJKJPJgVfnpm4x105ZiLjKqp/Olnd0jhD tl33p/z2ObdwvBimeEopIieQeV9kjaWeLsYDC5z7bYO29Lcm5An08ijo8JLqmGYfpn+U 1JYt061C0zofTD9PJUhklDzwHvbrYiypwPxwoywHhmFVQlVOCfTxmjrzBKvHhapRYT++ SLig== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1704385691; s=strato-dkim-0003; d=gjlay.de; h=Subject:From:To:Date:Message-ID:Cc:Date:From:Subject:Sender; bh=RsUdm1MuagHgwZ05hw3KR6y6dlap+sui1R+KPSdZ7j0=; b=7vmJf5VTaKy6oRJSZrO9/W3ra6OxQgX3OkwygqHJstZHK4vt/e4wysUIeUiab7V5X5 9Py0etRvl0N9GaOW7JDg== X-RZG-AUTH: ":LXoWVUeid/7A29J/hMvvT3koxZnKT7Qq0xotTetVnKkSjsSjo3O/MHXSz1aalw==" Received: from [192.168.2.102] by smtp.strato.de (RZmta 49.10.2 DYNA|AUTH) with ESMTPSA id 641e88004GSA9mh (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Thu, 4 Jan 2024 17:28:10 +0100 (CET) Content-Type: multipart/mixed; boundary="------------nDWnoucXn0mKAfT0A8Vv4M5I" Message-ID: <83b90302-bd7b-4064-8c8e-7495ebd3931e@gjlay.de> Date: Thu, 4 Jan 2024 17:28:02 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gcc-patches@gcc.gnu.org, Denis Chertykov From: Georg-Johann Lay Subject: [patch,avr,applied] PR target/112952 Fix attribute "io" et al. handling. Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,KAM_STOCKGEN,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_NONE,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: This is a multi-part message in MIME format. --------------nDWnoucXn0mKAfT0A8Vv4M5I Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This fixes the avr-specific attributes io, io_low and address, that are all basically the same except that io and io_low imply assertions on allowed addressing modes. It also improves some diagnostics. Johann -- gcc/ PR target/112952 * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid range when diagnosing attribute "io" and "io_low" are out of range. (avr_eval_addr_attrib): Don't ICE on empty address at that place. (avr_insert_attributes): Reject if attribute "address", "io" or "io_low" in contexts other than static storage. (avr_asm_output_aligned_decl_common): Move output of decls with attribute "address", "io", and "io_low" to... (avr_output_addr_attrib): ...this new function. (avr_asm_asm_output_aligned_bss): Remove output for decls with attribute "address", "io", and "io_low". (avr_encode_section_info): Rectify handling of decls with attribute "address", "io", and "io_low". gcc/testsuite/ PR target/112952 * gcc.target/avr/attribute-io.h: New file. * gcc.target/avr/pr112952-0.c: New test. * gcc.target/avr/pr112952-1.c: New test. * gcc.target/avr/pr112952-2.c: New test. * gcc.target/avr/pr112952-3.c: New test. --------------nDWnoucXn0mKAfT0A8Vv4M5I Content-Type: text/x-patch; charset=UTF-8; name="pr112952-attr-io.patch" Content-Disposition: attachment; filename="pr112952-attr-io.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hdnIvYXR0cmlidXRlLWlv LmggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXZyL2F0dHJpYnV0ZS1pby5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zOWFiZDRlZjU5ZgotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hdnIvYXR0cmlidXRlLWlv LmgKQEAgLTAsMCArMSw3NCBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRp b25zICItT3MgLXNhdmUtdGVtcHMiIH0gKi8KKworX19hdHRyaWJ1dGVfXygoYWRkcmVzcygx MjM0KSkpCitpbnQgZ18xMjM0OworCitfX2F0dHJpYnV0ZV9fKCh3ZWFrLCBhZGRyZXNzKDQz MjEpKSkKK2ludCB3XzQzMjE7CisKK19fYXR0cmlidXRlX18oKGFkZHJlc3MoNTY3OCkpKQor c3RhdGljIGludCBsXzU2Nzg7CisKK19fYXR0cmlidXRlX18oKGlvX2xvdyhfX0FWUl9TRlJf T0ZGU0VUX18gKyAzKSkpCit2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGdfbG93OworCitfX2F0 dHJpYnV0ZV9fKCh3ZWFrLCBpb19sb3coX19BVlJfU0ZSX09GRlNFVF9fICsgMikpKQordm9s YXRpbGUgdW5zaWduZWQgY2hhciB3X2xvdzsKKworX19hdHRyaWJ1dGVfXygoaW9fbG93KF9f QVZSX1NGUl9PRkZTRVRfXyArIDEpKSkKK3N0YXRpYyB2b2xhdGlsZSB1bnNpZ25lZCBjaGFy IGxfbG93OworCitfX2F0dHJpYnV0ZV9fKChpbyhfX0FWUl9TRlJfT0ZGU0VUX18gKyAzNSkp KQordm9sYXRpbGUgdW5zaWduZWQgY2hhciBnX2lvOworCitfX2F0dHJpYnV0ZV9fKCh3ZWFr LCBpbyhfX0FWUl9TRlJfT0ZGU0VUX18gKyAzNCkpKQordm9sYXRpbGUgdW5zaWduZWQgY2hh ciB3X2lvOworCitfX2F0dHJpYnV0ZV9fKChpbyhfX0FWUl9TRlJfT0ZGU0VUX18gKyAzMykp KQorc3RhdGljIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgbF9pbzsKKworI2RlZmluZSBDTVAo U1lNLCBWQUwpCQkJCVwKKyAgZG8gewkJCQkJCVwKKyAgICB1bnNpZ25lZCB4OwkJCQkJXAor ICAgIF9fYXNtICgiIiA6ICI9ZCIgKHgpIDogIjAiICgmIFNZTSkpOwlcCisgICAgaWYgKHgg IT0gVkFMKQkJCQlcCisgICAgICBfX2J1aWx0aW5fYWJvcnQoKTsJCQlcCisgIH0gd2hpbGUo MCkKKworCitpbnQgbWFpbiAodm9pZCkKK3sKKyAgQ01QIChnXzEyMzQsIDEyMzQpOworICBD TVAgKHdfNDMyMSwgNDMyMSk7CisgIENNUCAobF81Njc4LCA1Njc4KTsKKworICBDTVAgKGdf bG93LCBfX0FWUl9TRlJfT0ZGU0VUX18gKyAzKTsKKyAgQ01QICh3X2xvdywgX19BVlJfU0ZS X09GRlNFVF9fICsgMik7CisgIENNUCAobF9sb3csIF9fQVZSX1NGUl9PRkZTRVRfXyArIDEp OworCisgIENNUCAoZ19pbywgX19BVlJfU0ZSX09GRlNFVF9fICsgMzUpOworICBDTVAgKHdf aW8sIF9fQVZSX1NGUl9PRkZTRVRfXyArIDM0KTsKKyAgQ01QIChsX2lvLCBfX0FWUl9TRlJf T0ZGU0VUX18gKyAzMyk7CisKKyAgbF9sb3cgPSBsX2lvOworICBnX2xvdyA9IGdfaW87Cisg IHdfbG93ID0gd19pbzsKKyAgbF9sb3cgfD0gMTsKKyAgZ19sb3cgfD0gMjsKKyAgd19sb3cg fD0gNDsKKworICByZXR1cm4gMDsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyICJnXzEyMzQgPSAxMjM0IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciAid180MzIxID0gNDMyMSIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXIgImxfNTY3OCA9IDU2NzgiIH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXIgIlxcLmdsb2JsCWdfMTIzNCIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgIlxcLmdsb2JsCWdfbG93IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAiXFwuZ2xvYmwJZ19pbyIgfSB9ICovCisKKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlciAiXFwud2Vhawl3XzQzMjEiIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJcXC53ZWFrCXdfbG93IiB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAiXFwud2Vhawl3X2lvIiB9IH0gKi8KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hdnIvcHIxMTI5NTItMC5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2F2ci9wcjExMjk1Mi0wLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjE4NzBiZjNmNzAyCi0tLSAvZGV2L251bGwKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2F2ci9wcjExMjk1Mi0wLmMKQEAgLTAsMCArMSwxNiBA QAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItT3MgLXNhdmUtdGVt cHMgLWZuby1kYXRhLXNlY3Rpb25zIC1mbm8tY29tbW9uIiB9ICovCisKKyNpbmNsdWRlICJh dHRyaWJ1dGUtaW8uaCIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJnXzEy MzQgPSAxMjM0IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAid180 MzIxID0gNDMyMSIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImxf NTY3OCA9IDU2NzgiIH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIg IlxcLmdsb2JsCWdfMTIzNCIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXIgIlxcLmdsb2JsCWdfbG93IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciAiXFwuZ2xvYmwJZ19pbyIgfSB9ICovCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlciAiXFwud2Vhawl3XzQzMjEiIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJcXC53ZWFrCXdfbG93IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciAiXFwud2Vhawl3X2lvIiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hdnIvcHIxMTI5NTItMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2F2ci9wcjExMjk1Mi0xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjZlN2QyNzNjOTc5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2F2ci9wcjExMjk1Mi0xLmMKQEAgLTAsMCArMSwxNiBAQAorLyogeyBk Zy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItT3MgLXNhdmUtdGVtcHMgLWZuby1k YXRhLXNlY3Rpb25zIC1mY29tbW9uIiB9ICovCisKKyNpbmNsdWRlICJhdHRyaWJ1dGUtaW8u aCIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJnXzEyMzQgPSAxMjM0IiB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAid180MzIxID0gNDMyMSIg fSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImxfNTY3OCA9IDU2Nzgi IH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIlxcLmdsb2JsCWdf MTIzNCIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIlxcLmdsb2Js CWdfbG93IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiXFwuZ2xv YmwJZ19pbyIgfSB9ICovCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiXFwu d2Vhawl3XzQzMjEiIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJc XC53ZWFrCXdfbG93IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAi XFwud2Vhawl3X2lvIiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hdnIvcHIxMTI5NTItMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2F2ci9w cjExMjk1Mi0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBl ZjA1OTgwNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2F2ci9wcjExMjk1Mi0yLmMKQEAgLTAsMCArMSwxNiBAQAorLyogeyBkZy1kbyBydW4gfSAq LworLyogeyBkZy1vcHRpb25zICItT3MgLXNhdmUtdGVtcHMgLWZkYXRhLXNlY3Rpb25zIC1m bm8tY29tbW9uIiB9ICovCisKKyNpbmNsdWRlICJhdHRyaWJ1dGUtaW8uaCIKKworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJnXzEyMzQgPSAxMjM0IiB9IH0gKi8KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAid180MzIxID0gNDMyMSIgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImxfNTY3OCA9IDU2NzgiIH0gfSAqLworCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIlxcLmdsb2JsCWdfMTIzNCIgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIlxcLmdsb2JsCWdfbG93IiB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiXFwuZ2xvYmwJZ19pbyIgfSB9 ICovCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiXFwud2Vhawl3XzQzMjEi IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJcXC53ZWFrCXdfbG93 IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiXFwud2Vhawl3X2lv IiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hdnIvcHIx MTI5NTItMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2F2ci9wcjExMjk1Mi0zLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUxZGE5Njc2MWY3Ci0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2F2ci9wcjExMjk1 Mi0zLmMKQEAgLTAsMCArMSwxNiBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1v cHRpb25zICItT3MgLXNhdmUtdGVtcHMgLWZkYXRhLXNlY3Rpb25zIC1mY29tbW9uIiB9ICov CisKKyNpbmNsdWRlICJhdHRyaWJ1dGUtaW8uaCIKKworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJnXzEyMzQgPSAxMjM0IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciAid180MzIxID0gNDMyMSIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgImxfNTY3OCA9IDU2NzgiIH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXIgIlxcLmdsb2JsCWdfMTIzNCIgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXIgIlxcLmdsb2JsCWdfbG93IiB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAiXFwuZ2xvYmwJZ19pbyIgfSB9ICovCisKKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiXFwud2Vhawl3XzQzMjEiIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJcXC53ZWFrCXdfbG93IiB9IH0gKi8KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiXFwud2Vhawl3X2lvIiB9IH0gKi8KZGlmZiAt LWdpdCBhL2djYy9jb25maWcvYXZyL2F2ci5jYyBiL2djYy9jb25maWcvYXZyL2F2ci5jYwpp bmRleCAyMjRjYjZjNjY1Zi4uN2ViNWQwODY1M2UgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv YXZyL2F2ci5jYworKysgYi9nY2MvY29uZmlnL2F2ci9hdnIuY2MKQEAgLTEwMzYyLDYgKzEw MzYyLDEwIEBAIGF2cl9oYW5kbGVfYWRkcl9hdHRyaWJ1dGUgKHRyZWUgKm5vZGUsIHRyZWUg bmFtZSwgdHJlZSBhcmdzLAogCQkJICAgaW50IGZsYWdzIEFUVFJJQlVURV9VTlVTRUQsIGJv b2wgKm5vX2FkZCkKIHsKICAgYm9vbCBpb19wID0gc3RhcnRzd2l0aCAoSURFTlRJRklFUl9Q T0lOVEVSIChuYW1lKSwgImlvIik7CisgIEhPU1RfV0lERV9JTlQgaW9fc3RhcnQgPSBhdnJf YXJjaC0+c2ZyX29mZnNldDsKKyAgSE9TVF9XSURFX0lOVCBpb19lbmQgPSBzdHJjbXAgKElE RU5USUZJRVJfUE9JTlRFUiAobmFtZSksICJpb19sb3ciKSA9PSAwCisgICAgPyBpb19zdGFy dCArIDB4MWYKKyAgICA6IGlvX3N0YXJ0ICsgMHgzZjsKICAgbG9jYXRpb25fdCBsb2MgPSBE RUNMX1NPVVJDRV9MT0NBVElPTiAoKm5vZGUpOwogCiAgIGlmICghVkFSX1AgKCpub2RlKSkK QEAgLTEwMzg1LDEyICsxMDM4OSwxMCBAQCBhdnJfaGFuZGxlX2FkZHJfYXR0cmlidXRlICh0 cmVlICpub2RlLCB0cmVlIG5hbWUsIHRyZWUgYXJncywKIAl9CiAgICAgICBlbHNlIGlmIChp b19wCiAJICAgICAgICYmICghdHJlZV9maXRzX3Nod2lfcCAoYXJnKQotCQkgICB8fCAhKHN0 cmNtcCAoSURFTlRJRklFUl9QT0lOVEVSIChuYW1lKSwgImlvX2xvdyIpID09IDAKLQkJCT8g bG93X2lvX2FkZHJlc3Nfb3BlcmFuZCA6IGlvX2FkZHJlc3Nfb3BlcmFuZCkKLQkJCSAoR0VO X0lOVCAoVFJFRV9JTlRfQ1NUX0xPVyAoYXJnKSksIFFJbW9kZSkpKQorCQkgICB8fCAhIElO X1JBTkdFIChUUkVFX0lOVF9DU1RfTE9XIChhcmcpLCBpb19zdGFydCwgaW9fZW5kKSkpCiAJ ewotCSAgd2FybmluZ19hdCAobG9jLCBPUFRfV2F0dHJpYnV0ZXMsICIlcUUgYXR0cmlidXRl IGFkZHJlc3MgIgotCQkgICAgICAib3V0IG9mIHJhbmdlIiwgbmFtZSk7CisJICB3YXJuaW5n X2F0IChsb2MsIE9QVF9XYXR0cmlidXRlcywgIiVxRSBhdHRyaWJ1dGUgYWRkcmVzcyBvdXQg b2YgIgorCQkgICAgICAicmFuZ2UgMHgleC4uLjB4JXgiLCBuYW1lLCAoaW50KSBpb19zdGFy dCwgKGludCkgaW9fZW5kKTsKIAkgICpub19hZGQgPSB0cnVlOwogCX0KICAgICAgIGVsc2UK QEAgLTEwNDMzLDcgKzEwNDM1LDYgQEAgYXZyX2V2YWxfYWRkcl9hdHRyaWIgKHJ0eCB4KQog CSAgYXR0ciA9IGxvb2t1cF9hdHRyaWJ1dGUgKCJpbyIsIERFQ0xfQVRUUklCVVRFUyAoZGVj bCkpOwogICAgICAgICAgIGlmICghYXR0ciB8fCAhVFJFRV9WQUxVRSAoYXR0cikpCiAgICAg ICAgICAgICBhdHRyID0gbG9va3VwX2F0dHJpYnV0ZSAoImlvX2xvdyIsIERFQ0xfQVRUUklC VVRFUyAoZGVjbCkpOwotCSAgZ2NjX2Fzc2VydCAoYXR0cik7CiAJfQogICAgICAgaWYgKCFh dHRyIHx8ICFUUkVFX1ZBTFVFIChhdHRyKSkKIAlhdHRyID0gbG9va3VwX2F0dHJpYnV0ZSAo ImFkZHJlc3MiLCBERUNMX0FUVFJJQlVURVMgKGRlY2wpKTsKQEAgLTEwNjg5LDYgKzEwNjkw LDE2IEBAIGF2cl9wZ21fY2hlY2tfdmFyX2RlY2wgKHRyZWUgbm9kZSkKIHN0YXRpYyB2b2lk CiBhdnJfaW5zZXJ0X2F0dHJpYnV0ZXMgKHRyZWUgbm9kZSwgdHJlZSAqYXR0cmlidXRlcykK IHsKKyAgaWYgKFZBUl9QIChub2RlKQorICAgICAgJiYgISBUUkVFX1NUQVRJQyAobm9kZSkp CisgICAgeworICAgICAgY29uc3QgY2hhciAqbmFtZXNbXSA9IHsgImlvIiwgImlvX2xvdyIs ICJhZGRyZXNzIiwgTlVMTCB9OworICAgICAgZm9yIChjb25zdCBjaGFyICoqcCA9IG5hbWVz OyAqcDsgKytwKQorCWlmIChsb29rdXBfYXR0cmlidXRlICgqcCwgKmF0dHJpYnV0ZXMpKQor CSAgZXJyb3IgKCJ2YXJpYWJsZSAlcStEIHdpdGggYXR0cmlidXRlICVxcyBtdXN0IGJlIGxv Y2F0ZWQgaW4gIgorCQkgInN0YXRpYyBzdG9yYWdlIiwgbm9kZSwgKnApOworICAgIH0KKwog ICBhdnJfcGdtX2NoZWNrX3Zhcl9kZWNsIChub2RlKTsKIAogICBpZiAoVEFSR0VUX01BSU5f SVNfT1NfVEFTSwpAQCAtMTA3OTIsMzcgKzEwODAzLDExIEBAIGF2cl9yb2RhdGFfaW5fZmxh c2hfcCAoKQogLyogVHJhY2sgbmVlZCBvZiBfX2RvX2NsZWFyX2Jzcy4gICovCiAKIHZvaWQK LWF2cl9hc21fb3V0cHV0X2FsaWduZWRfZGVjbF9jb21tb24gKEZJTEUgKiBzdHJlYW0sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlIGRlY2wsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBz aXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IGFsaWduLCBib29sIGxvY2FsX3ApCithdnJfYXNtX291dHB1dF9hbGlnbmVkX2RlY2xfY29t bW9uIChGSUxFICpzdHJlYW0sIHRyZWUgLyogZGVjbCAqLywKKwkJCQkgICAgY29uc3QgY2hh ciAqbmFtZSwKKwkJCQkgICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBzaXplLAorCQkJCSAg ICB1bnNpZ25lZCBpbnQgYWxpZ24sIGJvb2wgbG9jYWxfcCkKIHsKLSAgcnR4IG1lbSA9IGRl Y2wgPT0gTlVMTF9UUkVFID8gTlVMTF9SVFggOiBERUNMX1JUTCAoZGVjbCk7Ci0gIHJ0eCBz eW1ib2w7Ci0KLSAgaWYgKG1lbSAhPSBOVUxMX1JUWCAmJiBNRU1fUCAobWVtKQotICAgICAg JiYgU1lNQk9MX1JFRl9QICgoc3ltYm9sID0gWEVYUCAobWVtLCAwKSkpCi0gICAgICAmJiAo U1lNQk9MX1JFRl9GTEFHUyAoc3ltYm9sKSAmIChTWU1CT0xfRkxBR19JTyB8IFNZTUJPTF9G TEFHX0FERFJFU1MpKSkKLSAgICB7Ci0gICAgICBpZiAoIWxvY2FsX3ApCi0JewotCSAgZnBy aW50ZiAoc3RyZWFtLCAiXHQuZ2xvYmxcdCIpOwotCSAgYXNzZW1ibGVfbmFtZSAoc3RyZWFt LCBuYW1lKTsKLQkgIGZwcmludGYgKHN0cmVhbSwgIlxuIik7Ci0JfQotICAgICAgaWYgKFNZ TUJPTF9SRUZfRkxBR1MgKHN5bWJvbCkgJiBTWU1CT0xfRkxBR19BRERSRVNTKQotCXsKLQkg IGFzc2VtYmxlX25hbWUgKHN0cmVhbSwgbmFtZSk7Ci0JICBmcHJpbnRmIChzdHJlYW0sICIg PSAlbGRcbiIsCi0JCSAgIChsb25nKSBJTlRWQUwgKGF2cl9ldmFsX2FkZHJfYXR0cmliIChz eW1ib2wpKSk7Ci0JfQotICAgICAgZWxzZSBpZiAobG9jYWxfcCkKLQllcnJvcl9hdCAoREVD TF9TT1VSQ0VfTE9DQVRJT04gKGRlY2wpLAotCQkgICJzdGF0aWMgSU8gZGVjbGFyYXRpb24g Zm9yICVxK0QgbmVlZHMgYW4gYWRkcmVzcyIsIGRlY2wpOwotICAgICAgcmV0dXJuOwotICAg IH0KLQogICAvKiBfX2dudV9sdG9fc2xpbSBpcyBqdXN0IGEgbWFya2VyIGZvciB0aGUgbGlu a2VyIGluamVjdGVkIGJ5IHRvcGxldi5jYy4KICAgICAgVGhlcmUgaXMgbm8gbmVlZCB0byB0 cmlnZ2VyIF9fZG9fY2xlYXJfYnNzIGNvZGUgZm9yIHRoZW0uICAqLwogCkBAIC0xMDgzNSw2 ICsxMDgyMCw5IEBAIGF2cl9hc21fb3V0cHV0X2FsaWduZWRfZGVjbF9jb21tb24gKEZJTEUg KiBzdHJlYW0sCiAgICAgQVNNX09VVFBVVF9BTElHTkVEX0NPTU1PTiAoc3RyZWFtLCBuYW1l LCBzaXplLCBhbGlnbik7CiB9CiAKKworLyogSW1wbGVtZW50IGBBU01fT1VUUFVUX0FMSUdO RURfQlNTJy4gICovCisKIHZvaWQKIGF2cl9hc21fYXNtX291dHB1dF9hbGlnbmVkX2JzcyAo RklMRSAqZmlsZSwgdHJlZSBkZWNsLCBjb25zdCBjaGFyICpuYW1lLAogCQkJCXVuc2lnbmVk IEhPU1RfV0lERV9JTlQgc2l6ZSwgaW50IGFsaWduLApAQCAtMTA4NDIsMjAgKzEwODMwLDEw IEBAIGF2cl9hc21fYXNtX291dHB1dF9hbGlnbmVkX2JzcyAoRklMRSAqZmlsZSwgdHJlZSBk ZWNsLCBjb25zdCBjaGFyICpuYW1lLAogCQkJCSAgKEZJTEUgKiwgdHJlZSwgY29uc3QgY2hh ciAqLAogCQkJCSAgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQsIGludCkpCiB7Ci0gIHJ0eCBt ZW0gPSBkZWNsID09IE5VTExfVFJFRSA/IE5VTExfUlRYIDogREVDTF9SVEwgKGRlY2wpOwot ICBydHggc3ltYm9sOworICBpZiAoIXN0YXJ0c3dpdGggKG5hbWUsICJfX2dudV9sdG8iKSkK KyAgICBhdnJfbmVlZF9jbGVhcl9ic3NfcCA9IHRydWU7CiAKLSAgaWYgKG1lbSAhPSBOVUxM X1JUWCAmJiBNRU1fUCAobWVtKQotICAgICAgJiYgU1lNQk9MX1JFRl9QICgoc3ltYm9sID0g WEVYUCAobWVtLCAwKSkpCi0gICAgICAmJiAoU1lNQk9MX1JFRl9GTEFHUyAoc3ltYm9sKSAm IChTWU1CT0xfRkxBR19JTyB8IFNZTUJPTF9GTEFHX0FERFJFU1MpKSkKLSAgICB7Ci0gICAg ICBpZiAoIShTWU1CT0xfUkVGX0ZMQUdTIChzeW1ib2wpICYgU1lNQk9MX0ZMQUdfQUREUkVT UykpCi0JZXJyb3JfYXQgKERFQ0xfU09VUkNFX0xPQ0FUSU9OIChkZWNsKSwKLQkJICAiSU8g ZGVmaW5pdGlvbiBmb3IgJXErRCBuZWVkcyBhbiBhZGRyZXNzIiwgZGVjbCk7Ci0gICAgICBh dnJfYXNtX291dHB1dF9hbGlnbmVkX2RlY2xfY29tbW9uIChmaWxlLCBkZWNsLCBuYW1lLCBz aXplLCBhbGlnbiwgZmFsc2UpOwotICAgIH0KLSAgZWxzZQotICAgIGRlZmF1bHRfZnVuYyAo ZmlsZSwgZGVjbCwgbmFtZSwgc2l6ZSwgYWxpZ24pOworICBkZWZhdWx0X2Z1bmMgKGZpbGUs IGRlY2wsIG5hbWUsIHNpemUsIGFsaWduKTsKIH0KIAogCkBAIC0xMDg5NCw2ICsxMDg3Miw1 OCBAQCBhdnJfb3V0cHV0X3Byb2dtZW1fc2VjdGlvbl9hc21fb3AgKGNvbnN0IGNoYXIgKmRh dGEpCiB9CiAKIAorLyogQSBub3N3aXRjaCBzZWN0aW9uIGNhbGxiYWNrIHRvIG91dHB1dCBz eW1ib2wgZGVmaW5pdGlvbnMgZm9yCisgICBhdHRyaWJ1dGVzICJpbyIsICJpb19sb3ciIGFu ZCAiYWRkcmVzcyIuICAqLworCitzdGF0aWMgYm9vbAorYXZyX291dHB1dF9hZGRyX2F0dHJp YiAodHJlZSBkZWNsLCBjb25zdCBjaGFyICpuYW1lLAorCQkJdW5zaWduZWQgSE9TVF9XSURF X0lOVCAvKiBzaXplICovLAorCQkJdW5zaWduZWQgSE9TVF9XSURFX0lOVCAvKiBhbGlnbiAq LykKK3sKKyAgZ2NjX2Fzc2VydCAoREVDTF9SVExfU0VUX1AgKGRlY2wpKTsKKworICBGSUxF ICpzdHJlYW0gPSBhc21fb3V0X2ZpbGU7CisgIGJvb2wgbG9jYWxfcCA9ICEgREVDTF9XRUFL IChkZWNsKSAmJiAhIFRSRUVfUFVCTElDIChkZWNsKTsKKyAgcnR4IHN5bWJvbCwgbWVtID0g REVDTF9SVEwgKGRlY2wpOworCisgIGlmIChtZW0gIT0gTlVMTF9SVFggJiYgTUVNX1AgKG1l bSkKKyAgICAgICYmIFNZTUJPTF9SRUZfUCAoKHN5bWJvbCA9IFhFWFAgKG1lbSwgMCkpKQor ICAgICAgJiYgKFNZTUJPTF9SRUZfRkxBR1MgKHN5bWJvbCkgJiAoU1lNQk9MX0ZMQUdfSU8g fCBTWU1CT0xfRkxBR19BRERSRVNTKSkpCisgICAgeworICAgICAgaWYgKCEgbG9jYWxfcCkK Kwl7CisJICBmcHJpbnRmIChzdHJlYW0sICJcdCVzXHQiLCBERUNMX1dFQUsgKGRlY2wpID8g Ii53ZWFrIiA6ICIuZ2xvYmwiKTsKKwkgIGFzc2VtYmxlX25hbWUgKHN0cmVhbSwgbmFtZSk7 CisJICBmcHJpbnRmIChzdHJlYW0sICJcbiIpOworCX0KKworICAgICAgaWYgKFNZTUJPTF9S RUZfRkxBR1MgKHN5bWJvbCkgJiBTWU1CT0xfRkxBR19BRERSRVNTKQorCXsKKwkgIGFzc2Vt YmxlX25hbWUgKHN0cmVhbSwgbmFtZSk7CisJICBmcHJpbnRmIChzdHJlYW0sICIgPSAlbGRc biIsCisJCSAgIChsb25nKSBJTlRWQUwgKGF2cl9ldmFsX2FkZHJfYXR0cmliIChzeW1ib2wp KSk7CisJfQorICAgICAgZWxzZSBpZiAobG9jYWxfcCkKKwl7CisJICBjb25zdCBjaGFyICpu YW1lc1tdID0geyAiaW8iLCAiaW9fbG93IiwgImFkZHJlc3MiLCBOVUxMIH07CisJICBmb3Ig KGNvbnN0IGNoYXIgKipwID0gbmFtZXM7ICpwOyArK3ApCisJICAgIGlmIChsb29rdXBfYXR0 cmlidXRlICgqcCwgREVDTF9BVFRSSUJVVEVTIChkZWNsKSkpCisJICAgICAgeworCQllcnJv ciAoInN0YXRpYyBhdHRyaWJ1dGUgJXFzIGRlY2xhcmF0aW9uIGZvciAlcStEIG5lZWRzIGFu ICIKKwkJICAgICAgICJhZGRyZXNzIiwgKnAsIGRlY2wpOworCQlicmVhazsKKwkgICAgICB9 CisJfQorCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgZ2NjX3VucmVhY2hhYmxl KCk7CisKKyAgcmV0dXJuIGZhbHNlOworfQorCisKIC8qIEltcGxlbWVudCBgVEFSR0VUX0FT TV9JTklUX1NFQ1RJT05TJy4gICovCiAKIHN0YXRpYyB2b2lkCkBAIC0xMDkwNyw2ICsxMDkz Nyw3IEBAIGF2cl9hc21faW5pdF9zZWN0aW9ucyAodm9pZCkKICAgICByZWFkb25seV9kYXRh X3NlY3Rpb24tPnVubmFtZWQuY2FsbGJhY2sgPSBhdnJfb3V0cHV0X2RhdGFfc2VjdGlvbl9h c21fb3A7CiAgIGRhdGFfc2VjdGlvbi0+dW5uYW1lZC5jYWxsYmFjayA9IGF2cl9vdXRwdXRf ZGF0YV9zZWN0aW9uX2FzbV9vcDsKICAgYnNzX3NlY3Rpb24tPnVubmFtZWQuY2FsbGJhY2sg PSBhdnJfb3V0cHV0X2Jzc19zZWN0aW9uX2FzbV9vcDsKKyAgdGxzX2NvbW1fc2VjdGlvbi0+ bm9zd2l0Y2guY2FsbGJhY2sgPSBhdnJfb3V0cHV0X2FkZHJfYXR0cmliOwogfQogCiAKQEAg LTExMDg1LDE1ICsxMTExNiwxNyBAQCBhdnJfZW5jb2RlX3NlY3Rpb25faW5mbyAodHJlZSBk ZWNsLCBydHggcnRsLCBpbnQgbmV3X2RlY2xfcCkKIAogICAgICAgdHJlZSBpb19sb3dfYXR0 ciA9IGxvb2t1cF9hdHRyaWJ1dGUgKCJpb19sb3ciLCBhdHRyKTsKICAgICAgIHRyZWUgaW9f YXR0ciA9IGxvb2t1cF9hdHRyaWJ1dGUgKCJpbyIsIGF0dHIpOworICAgICAgdHJlZSBhZGRy ZXNzX2F0dHIgPSBsb29rdXBfYXR0cmlidXRlICgiYWRkcmVzcyIsIGF0dHIpOwogCiAgICAg ICBpZiAoaW9fbG93X2F0dHIKIAkgICYmIFRSRUVfVkFMVUUgKGlvX2xvd19hdHRyKSAmJiBU UkVFX1ZBTFVFIChUUkVFX1ZBTFVFIChpb19sb3dfYXR0cikpKQotCWFkZHJfYXR0ciA9IGlv X2F0dHI7CisJYWRkcl9hdHRyID0gaW9fbG93X2F0dHI7CiAgICAgICBlbHNlIGlmIChpb19h dHRyCiAJICAgICAgICYmIFRSRUVfVkFMVUUgKGlvX2F0dHIpICYmIFRSRUVfVkFMVUUgKFRS RUVfVkFMVUUgKGlvX2F0dHIpKSkKIAlhZGRyX2F0dHIgPSBpb19hdHRyOwogICAgICAgZWxz ZQotCWFkZHJfYXR0ciA9IGxvb2t1cF9hdHRyaWJ1dGUgKCJhZGRyZXNzIiwgYXR0cik7CisJ YWRkcl9hdHRyID0gYWRkcmVzc19hdHRyOworCiAgICAgICBpZiAoaW9fbG93X2F0dHIKIAkg IHx8IChpb19hdHRyICYmIGFkZHJfYXR0cgogICAgICAgICAgICAgICAmJiBsb3dfaW9fYWRk cmVzc19vcGVyYW5kCkBAIC0xMTEwOCw2ICsxMTE0MSwzNiBAQCBhdnJfZW5jb2RlX3NlY3Rp b25faW5mbyAodHJlZSBkZWNsLCBydHggcnRsLCBpbnQgbmV3X2RlY2xfcCkKIAkgZG9uJ3Qg dXNlIHRoZSBleGFjdCB2YWx1ZSBmb3IgY29uc3RhbnQgcHJvcGFnYXRpb24uICAqLwogICAg ICAgaWYgKGFkZHJfYXR0ciAmJiAhREVDTF9FWFRFUk5BTCAoZGVjbCkpCiAJU1lNQk9MX1JF Rl9GTEFHUyAoc3ltKSB8PSBTWU1CT0xfRkxBR19BRERSRVNTOworCisgICAgICBpZiAoaW9f YXR0ciB8fCBpb19sb3dfYXR0ciB8fCBhZGRyZXNzX2F0dHIpCisJeworCSAgaWYgKERFQ0xf SU5JVElBTCAoZGVjbCkpCisJICAgIHsKKwkgICAgICAvKiBJbml0aWFsaXplcnMgYXJlIG5v dCB5ZXQgcGFyc2VkIGluIFRBUkdFVF9JTlNFUlRfQVRUUklCVVRFUywKKwkJIGhlbmNlIGRl bnkgaW5pdGlhbGl6ZXJzIG5vdy4gIFRoZSB2YWx1ZXMgb2Ygc3ltYm9scyB3aXRoIGFuCisJ CSBhZGRyZXNzIGF0dHJpYnV0ZSBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgYXR0cmlidXRlLCBu b3QgYnkKKwkJIHNvbWUgaW5pdGlhbGl6ZXIuICAqLworCisJICAgICAgZXJyb3IgKCJ2YXJp YWJsZSAlcStEIHdpdGggYXR0cmlidXRlICVxcyBtdXN0IG5vdCBoYXZlIGFuICIKKwkJICAg ICAiaW5pdGlhbGl6ZXIiLCBkZWNsLAorCQkgICAgIGlvX2xvd19hdHRyID8gImlvX2xvdyIg OiBpb19hdHRyID8gImlvIiA6ICJhZGRyZXNzIik7CisJICAgIH0KKwkgIGVsc2UKKwkgICAg eworCSAgICAgIC8qIFBSMTEyOTUyOiBUaGUgb25seSB3YXkgdG8gb3V0cHV0IGEgdmFyaWFi bGUgZGVjbGFyYXRpb24gaW4gYQorCQkgY3VzdG9tIG1hbm5lciBpcyBieSBtZWFucyBvZiBh IG5vc3dpdGNoIHNlY3Rpb24gY2FsbGJhY2suCisJCSBUaGVyZSBhcmUgb25seSB0aHJlZSBu b3N3aXRjaCBzZWN0aW9uczogY29tbV9zZWN0aW9uLAorCQkgbGNvbW1fc2VjdGlvbiBhbmQg dGxzX2NvbW1fc2VjdGlvbi4gIEFuZCB0aGVyZSBpcyBubyB3YXkgdG8KKwkJIHdpcmUgYSBj dXN0b20gbm9zd2l0Y2ggc2VjdGlvbiB0byBhIGRlY2wuICBBcyBsY29tbV9zZWN0aW9uCisJ CSBpcyBieXBhc3NlZCB3aXRoIC1mZGF0YS1zZWN0aW9ucyAtZm5vLWNvbW1vbiwgdGhlcmUg aXMgbm8KKwkJIG90aGVyIHdheSB0aGFuIG1ha2luZyB1c2Ugb2YgdGxzX2NvbW1fc2VjdGlv bi4gIEFzIHdlIGFyZQorCQkgdXNpbmcgdGhhdCBzZWN0aW9uIGFueXdheSwgYWxzbyB1c2Ug aXQgaW4gdGhlIHB1YmxpYyBjYXNlLiAgKi8KKworCSAgICAgIERFQ0xfQ09NTU9OIChkZWNs KSA9IDE7CisJICAgICAgc2V0X2RlY2xfc2VjdGlvbl9uYW1lIChkZWNsLCAoY29uc3QgY2hh ciopIG51bGxwdHIpOworCSAgICAgIHNldF9kZWNsX3Rsc19tb2RlbCAoZGVjbCwgKHRsc19t b2RlbCkgMik7CisJICAgIH0KKwl9CiAgICAgfQogCiAgIGlmIChBVlJfVElOWQo= --------------nDWnoucXn0mKAfT0A8Vv4M5I--