From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa1.mentor.iphmx.com (esa1.mentor.iphmx.com [68.232.129.153]) by sourceware.org (Postfix) with ESMTPS id 0603A3858D20; Mon, 22 Jan 2024 20:42:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0603A3858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0603A3858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=68.232.129.153 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705956152; cv=none; b=WPfGRC9mkXPaj8zCXpDuuMeuOWq4aAx9ZPUpWhXhb5bJVhV1VJmNa7z0x9xvifFE3zdEOUeKf+GD9lrvo8GRmnO+OHcYvASBzAK6n2dV/XvIgcgiucTjqB3SWjimTeipVfOQJeKao5yIghOlupqPfaa9MWTpqvtEHqtISVNhuws= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705956152; c=relaxed/simple; bh=mDaKxokkJDs92hRViJXwplzhz5ohI1NdSwPV1mAIeIc=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=WunwYI1dut79olfha/VvM4liVdvI0Klc3W4WeQSuAb+0eg7vH15AGexnLfl3p52W4+hI8pw4eXCF+bVNfjEf0vgblvIAWDqtj7z+xOAZXJDH5lYYfKfaimqPVHZB19ULWazxDsvaQk4khxCUZNhRXiitLpeZsm2ncrEbQo61Ue4= ARC-Authentication-Results: i=1; server2.sourceware.org X-CSE-ConnectionGUID: K/NJLtPCRiaBJ6fM/RIoDg== X-CSE-MsgGUID: FTbXcqlsROOm607rlp9qSg== X-IronPort-AV: E=Sophos;i="6.05,212,1701158400"; d="scan'208,223";a="32283876" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa1.mentor.iphmx.com with ESMTP; 22 Jan 2024 12:42:28 -0800 IronPort-SDR: e+YMsWF0D2XGBTTJgruuUaPXa3OwrEMTc0HFAvogAwyC+LR1uNTI9eyc+fxqUxMbQwoQBSWn7D NCnvBzHDWZObB7XZqYFyMx8osSWPQCJH+YK5v73UZgWrqSY9cnDnge2xGuh3JZ5aF2p2SCWgDP 5ROwiO+9O7lXVd0SmRiLHaSLJtDlLkbXc4jiy8Oe4bB+1hYcpwt4yHqoi8zWSzwAQPAw10Z8yl SyoM9k0HVmZvxsBuVi2R7UDQbP8iTLqS+hyQx+SYDGkQUF8c0LRTiBVgvz3fiHFWP4g0a34yO5 NpU= Content-Type: multipart/mixed; boundary="------------x4E303SU0F0K8ez2e9OiVXQ0" Message-ID: <52181f42-9998-45f9-b3b4-ca718c64188e@codesourcery.com> Date: Mon, 22 Jan 2024 20:41:42 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <37f412ee-58e7-4bde-a763-591268e8f8f4@codesourcery.com> Subject: [PATCH] openmp, fortran: Add Fortran support for indirect clause on the declare target directive Content-Language: en-GB To: gcc-patches , , Jakub Jelinek , Tobias Burnus From: Kwok Cheung Yeung In-Reply-To: <37f412ee-58e7-4bde-a763-591268e8f8f4@codesourcery.com> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,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: --------------x4E303SU0F0K8ez2e9OiVXQ0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit Hi This patch adds support for the indirect clause on the OpenMP 'declare target' directive in Fortran. As with the C and C++ front-ends, this applies the 'omp declare target indirect' attribute on affected function declarations. The C test cases have also been translated to Fortran where appropriate. Okay for mainline? Thanks Kwok --------------x4E303SU0F0K8ez2e9OiVXQ0 Content-Type: text/plain; charset="UTF-8"; name="0002-openmp-fortran-Add-Fortran-support-for-indirect-clau.patch" Content-Disposition: attachment; filename*0="0002-openmp-fortran-Add-Fortran-support-for-indirect-clau.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1NDViZGIyYzhhYjlhNDNlNzljN2EzYTI5OTJiZDllZGM3ZDA4YTZmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLd29rIENoZXVuZyBZZXVuZyA8a2N5QGNvZGVzb3Vy Y2VyeS5jb20+CkRhdGU6IFRodSwgMTEgSmFuIDIwMjQgMTk6NTI6NTMgKzAwMDAKU3ViamVj dDogW1BBVENIIDIvMl0gb3Blbm1wLCBmb3J0cmFuOiBBZGQgRm9ydHJhbiBzdXBwb3J0IGZv ciBpbmRpcmVjdCBjbGF1c2UKIG9uIHRoZSBkZWNsYXJlIHRhcmdldCBkaXJlY3RpdmUKCjIw MjQtMDEtMTkgIEt3b2sgQ2hldW5nIFlldW5nICA8a2N5QGNvZGVzb3VyY2VyeS5jb20+CgoJ Z2NjL2ZvcnRyYW4vCgkqIGR1bXAtcGFyc2UtdHJlZS5jYyAoc2hvd19hdHRyKTogSGFuZGxl IG9tcF9kZWNsYXJlX3RhcmdldF9pbmRpcmVjdAoJYXR0cmlidXRlLgoJKiBmOTUtbGFuZy5j YyAoZ2ZjX2dudV9hdHRyaWJ1dGVzKTogQWRkIGVudHJ5IGZvciAnb21wIGRlY2xhcmUKCXRh cmdldCBpbmRpcmVjdCcuCgkqIGdmb3J0cmFuLmggKHN5bWJvbF9hdHRyaWJ1dGUpOiBBZGQg b21wX2RlY2xhcmVfdGFyZ2V0X2luZGlyZWN0CglmaWVsZC4KCShzdHJ1Y3QgZ2ZjX29tcF9j bGF1c2VzKTogQWRkIGluZGlyZWN0IGZpZWxkLgoJKiBvcGVubXAuY2MgKG9tcF9tYXNrMik6 IEFkZCBPTVBfQ0xBVVNFX0lORElSRUNULgoJKGdmY19tYXRjaF9vbXBfY2xhdXNlcyk6IE1h dGNoIGluZGlyZWN0IGNsYXVzZS4KCShPTVBfREVDTEFSRV9UQVJHRVRfQ0xBVVNFUyk6IEFk ZCBPTVBfQ0xBVVNFX0lORElSRUNULgoJKGdmY19tYXRjaF9vbXBfZGVjbGFyZV90YXJnZXQp OiBDaGVjayBvbXBfZGV2aWNlX3R5cGUgYW5kIGFwcGx5CglvbXBfZGVjbGFyZV90YXJnZXRf aW5kaXJlY3QgYXR0cmlidXRlIHRvIHN5bWJvbCBpZiBpbmRpcmVjdCBjbGF1c2UKCWFjdGl2 ZS4KCSogdHJhbnMtZGVjbC5jYyAoYWRkX2F0dHJpYnV0ZXNfdG9fZGVjbCk6IEFkZCAnb21w IGRlY2xhcmUgdGFyZ2V0CglpbmRpcmVjdCcgYXR0cmlidXRlIGlmIHN5bWJvbCBoYXMgaW5k aXJlY3QgYXR0cmlidXRlIHNldC4KCglnY2MvdGVzdHN1aXRlLwoJKiBnZm9ydHJhbi5kZy9n b21wL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTEuZjkwOiBOZXcuCgkqIGdmb3J0cmFuLmRn L2dvbXAvZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMi5mOTA6IE5ldy4KCglsaWJnb21wLwoJ KiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTEu ZjkwOiBOZXcuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVjbGFyZS10YXJnZXQt aW5kaXJlY3QtMi5mOTA6IE5ldy4KLS0tCiBnY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUu Y2MgICAgICAgICAgICAgICAgfCAgMiArCiBnY2MvZm9ydHJhbi9mOTUtbGFuZy5jYyAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArCiBnY2MvZm9ydHJhbi9nZm9ydHJhbi5oICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMyArLQogZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjICAgICAg ICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysrKy0KIGdjYy9mb3J0cmFuL3Ry YW5zLWRlY2wuY2MgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrCiAuLi4vZ29tcC9kZWNs YXJlLXRhcmdldC1pbmRpcmVjdC0xLmY5MCAgICAgICAgfCA1OCArKysrKysrKysrKysrKysr KysrCiAuLi4vZ29tcC9kZWNsYXJlLXRhcmdldC1pbmRpcmVjdC0yLmY5MCAgICAgICAgfCAy NSArKysrKysrKwogLi4uL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTEuZjkwICAgICAgICAg ICAgIHwgMzkgKysrKysrKysrKysrKwogLi4uL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTIu ZjkwICAgICAgICAgICAgIHwgNTMgKysrKysrKysrKysrKysrKysKIDkgZmlsZXMgY2hhbmdl ZCwgMjI5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlY2xhcmUtdGFyZ2V0LWluZGly ZWN0LTEuZjkwCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb21wL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTIuZjkwCiBjcmVhdGUgbW9kZSAxMDA2 NDQgbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWlu ZGlyZWN0LTEuZjkwCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliZ29tcC90ZXN0c3VpdGUvbGli Z29tcC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTIuZjkwCgpkaWZmIC0tZ2l0 IGEvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmNjIGIvZ2NjL2ZvcnRyYW4vZHVtcC1w YXJzZS10cmVlLmNjCmluZGV4IDE1NjNiODEwYjk4Li43YjE1NGViM2NhNyAxMDA2NDQKLS0t IGEvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmNjCisrKyBiL2djYy9mb3J0cmFuL2R1 bXAtcGFyc2UtdHJlZS5jYwpAQCAtOTE0LDYgKzkxNCw4IEBAIHNob3dfYXR0ciAoc3ltYm9s X2F0dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqIG1vZHVsZSkKICAgICBmcHV0cyAoIiBP TVAtREVDTEFSRS1UQVJHRVQiLCBkdW1wZmlsZSk7CiAgIGlmIChhdHRyLT5vbXBfZGVjbGFy ZV90YXJnZXRfbGluaykKICAgICBmcHV0cyAoIiBPTVAtREVDTEFSRS1UQVJHRVQtTElOSyIs IGR1bXBmaWxlKTsKKyAgaWYgKGF0dHItPm9tcF9kZWNsYXJlX3RhcmdldF9pbmRpcmVjdCkK KyAgICBmcHV0cyAoIiBPTVAtREVDTEFSRS1UQVJHRVQtSU5ESVJFQ1QiLCBkdW1wZmlsZSk7 CiAgIGlmIChhdHRyLT5lbGVtZW50YWwpCiAgICAgZnB1dHMgKCIgRUxFTUVOVEFMIiwgZHVt cGZpbGUpOwogICBpZiAoYXR0ci0+cHVyZSkKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2Y5 NS1sYW5nLmNjIGIvZ2NjL2ZvcnRyYW4vZjk1LWxhbmcuY2MKaW5kZXggMzU4Y2IxN2ZjZTIu LjY3ZmRhMjdhYTNlIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9mOTUtbGFuZy5jYworKysg Yi9nY2MvZm9ydHJhbi9mOTUtbGFuZy5jYwpAQCAtOTYsNiArOTYsOCBAQCBzdGF0aWMgY29u c3QgYXR0cmlidXRlX3NwZWMgZ2ZjX2dudV9hdHRyaWJ1dGVzW10gPQogICAgIGdmY19oYW5k bGVfb21wX2RlY2xhcmVfdGFyZ2V0X2F0dHJpYnV0ZSwgTlVMTCB9LAogICB7ICJvbXAgZGVj bGFyZSB0YXJnZXQgbGluayIsIDAsIDAsIHRydWUsICBmYWxzZSwgZmFsc2UsIGZhbHNlLAog ICAgIGdmY19oYW5kbGVfb21wX2RlY2xhcmVfdGFyZ2V0X2F0dHJpYnV0ZSwgTlVMTCB9LAor ICB7ICJvbXAgZGVjbGFyZSB0YXJnZXQgaW5kaXJlY3QiLCAwLCAwLCB0cnVlLCAgZmFsc2Us IGZhbHNlLCBmYWxzZSwKKyAgICBnZmNfaGFuZGxlX29tcF9kZWNsYXJlX3RhcmdldF9hdHRy aWJ1dGUsIE5VTEwgfSwKICAgeyAib2FjYyBmdW5jdGlvbiIsIDAsIC0xLCB0cnVlLCAgZmFs c2UsIGZhbHNlLCBmYWxzZSwKICAgICBnZmNfaGFuZGxlX29tcF9kZWNsYXJlX3RhcmdldF9h dHRyaWJ1dGUsIE5VTEwgfSwKIH07CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9nZm9ydHJh bi5oIGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAppbmRleCBmZDczZTRjZTQzMS4uZmQ4NDNh MzI0MWQgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKKysrIGIvZ2NjL2Zv cnRyYW4vZ2ZvcnRyYW4uaApAQCAtOTk5LDYgKzk5OSw3IEBAIHR5cGVkZWYgc3RydWN0CiAg IC8qIE1lbnRpb25lZCBpbiBPTVAgREVDTEFSRSBUQVJHRVQuICAqLwogICB1bnNpZ25lZCBv bXBfZGVjbGFyZV90YXJnZXQ6MTsKICAgdW5zaWduZWQgb21wX2RlY2xhcmVfdGFyZ2V0X2xp bms6MTsKKyAgdW5zaWduZWQgb21wX2RlY2xhcmVfdGFyZ2V0X2luZGlyZWN0OjE7CiAgIEVO VU1fQklURklFTEQgKGdmY19vbXBfZGV2aWNlX3R5cGUpIG9tcF9kZXZpY2VfdHlwZToyOwog ICB1bnNpZ25lZCBvbXBfYWxsb2NhdGU6MTsKIApAQCAtMTU4NCw3ICsxNTg1LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgZ2ZjX29tcF9jbGF1c2VzCiAgIHVuc2lnbmVkIGdyYWluc2l6ZV9zdHJp Y3Q6MSwgbnVtX3Rhc2tzX3N0cmljdDoxLCBjb21wYXJlOjEsIHdlYWs6MTsKICAgdW5zaWdu ZWQgbm9uX3JlY3Rhbmd1bGFyOjEsIG9yZGVyX2NvbmN1cnJlbnQ6MTsKICAgdW5zaWduZWQg Y29udGFpbnNfdGVhbXNfY29uc3RydWN0OjEsIHRhcmdldF9maXJzdF9zdF9pc190ZWFtczox OwotICB1bnNpZ25lZCBjb250YWluZWRfaW5fdGFyZ2V0X2NvbnN0cnVjdDoxOworICB1bnNp Z25lZCBjb250YWluZWRfaW5fdGFyZ2V0X2NvbnN0cnVjdDoxLCBpbmRpcmVjdDoxOwogICBF TlVNX0JJVEZJRUxEIChnZmNfb21wX3NjaGVkX2tpbmQpIHNjaGVkX2tpbmQ6MzsKICAgRU5V TV9CSVRGSUVMRCAoZ2ZjX29tcF9kZXZpY2VfdHlwZSkgZGV2aWNlX3R5cGU6MjsKICAgRU5V TV9CSVRGSUVMRCAoZ2ZjX29tcF9tZW1vcmRlcikgbWVtb3JkZXI6MzsKZGlmZiAtLWdpdCBh L2djYy9mb3J0cmFuL29wZW5tcC5jYyBiL2djYy9mb3J0cmFuL29wZW5tcC5jYwppbmRleCAw YWY4MGQ1NGZhZC4uZDFjNWMzMjNjNTQgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL29wZW5t cC5jYworKysgYi9nY2MvZm9ydHJhbi9vcGVubXAuY2MKQEAgLTEwOTYsNiArMTA5Niw3IEBA IGVudW0gb21wX21hc2syCiAgIE9NUF9DTEFVU0VfRE9BQ1JPU1MsIC8qIE9wZW5NUCA1LjIg Ki8KICAgT01QX0NMQVVTRV9BU1NVTVBUSU9OUywgLyogT3Blbk1QIDUuMS4gKi8KICAgT01Q X0NMQVVTRV9VU0VTX0FMTE9DQVRPUlMsIC8qIE9wZW5NUCA1LjAgICovCisgIE9NUF9DTEFV U0VfSU5ESVJFQ1QsIC8qIE9wZW5NUCA1LjEgICovCiAgIC8qIFRoaXMgbXVzdCBjb21lIGxh c3QuICAqLwogICBPTVBfTUFTSzJfTEFTVAogfTsKQEAgLTI3OTgsNiArMjc5OSwzMiBAQCBn ZmNfbWF0Y2hfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqKmNwLCBjb25zdCBvbXBf bWFzayBtYXNrLAogCSAgICAgIG5lZWRzX3NwYWNlID0gdHJ1ZTsKIAkgICAgICBjb250aW51 ZTsKIAkgICAgfQorCSAgaWYgKChtYXNrICYgT01QX0NMQVVTRV9JTkRJUkVDVCkKKwkgICAg ICAmJiAobSA9IGdmY19tYXRjaF9kdXBsX2NoZWNrICghYy0+aW5kaXJlY3QsICJpbmRpcmVj dCIpKQorCQkgICE9IE1BVENIX05PKQorCSAgICB7CisJICAgICAgaWYgKG0gPT0gTUFUQ0hf RVJST1IpCisJCWdvdG8gZXJyb3I7CisJICAgICAgZ2ZjX2V4cHIgKmluZGlyZWN0X2V4cHIg PSBOVUxMOworCSAgICAgIG0gPSBnZmNfbWF0Y2ggKCIgKCAlZSApIiwgJmluZGlyZWN0X2V4 cHIpOworCSAgICAgIGlmIChtID09IE1BVENIX1lFUykKKwkJeworCQkgIGlmICghZ2ZjX3Jl c29sdmVfZXhwciAoaW5kaXJlY3RfZXhwcikKKwkJICAgICAgfHwgaW5kaXJlY3RfZXhwci0+ dHMudHlwZSAhPSBCVF9MT0dJQ0FMCisJCSAgICAgIHx8IGluZGlyZWN0X2V4cHItPmV4cHJf dHlwZSAhPSBFWFBSX0NPTlNUQU5UKQorCQkgICAgeworCQkgICAgICBnZmNfZXJyb3IgKCJJ TkRJUkVDVCBjbGF1c2UgYXQgJUMgcmVxdWlyZXMgYSBjb25zdGFudCAiCisJCQkJICJsb2dp Y2FsIGV4cHJlc3Npb24iKTsKKwkJICAgICAgZ2ZjX2ZyZWVfZXhwciAoaW5kaXJlY3RfZXhw cik7CisJCSAgICAgIGdvdG8gZXJyb3I7CisJCSAgICB9CisJCSAgYy0+aW5kaXJlY3QgPSBp bmRpcmVjdF9leHByLT52YWx1ZS5sb2dpY2FsOworCQkgIGdmY19mcmVlX2V4cHIgKGluZGly ZWN0X2V4cHIpOworCQl9CisJICAgICAgZWxzZQorCQljLT5pbmRpcmVjdCA9IDE7CisJICAg ICAgY29udGludWU7CisJICAgIH0KIAkgIGlmICgobWFzayAmIE9NUF9DTEFVU0VfSVNfREVW SUNFX1BUUikKIAkgICAgICAmJiBnZmNfbWF0Y2hfb21wX3ZhcmlhYmxlX2xpc3QKIAkJICAg KCJpc19kZXZpY2VfcHRyICgiLApAQCAtNDQ2MCw3ICs0NDg3LDcgQEAgY2xlYW51cDoKICAg KG9tcF9tYXNrIChPTVBfQ0xBVVNFX1RIUkVBRFMpIHwgT01QX0NMQVVTRV9TSU1EKQogI2Rl ZmluZSBPTVBfREVDTEFSRV9UQVJHRVRfQ0xBVVNFUyBcCiAgIChvbXBfbWFzayAoT01QX0NM QVVTRV9FTlRFUikgfCBPTVBfQ0xBVVNFX0xJTksgfCBPTVBfQ0xBVVNFX0RFVklDRV9UWVBF IFwKLSAgIHwgT01QX0NMQVVTRV9UTykKKyAgIHwgT01QX0NMQVVTRV9UTyB8IE9NUF9DTEFV U0VfSU5ESVJFQ1QpCiAjZGVmaW5lIE9NUF9BVE9NSUNfQ0xBVVNFUyBcCiAgIChvbXBfbWFz ayAoT01QX0NMQVVTRV9BVE9NSUMpIHwgT01QX0NMQVVTRV9DQVBUVVJFIHwgT01QX0NMQVVT RV9ISU5UCVwKICAgIHwgT01QX0NMQVVTRV9NRU1PUkRFUiB8IE9NUF9DTEFVU0VfQ09NUEFS RSB8IE9NUF9DTEFVU0VfRkFJTCAJXApAQCAtNTUxMyw2ICs1NTQwLDE1IEBAIGdmY19tYXRj aF9vbXBfZGVjbGFyZV90YXJnZXQgKHZvaWQpCiAJCQkgICAgICAgbi0+c3ltLT5uYW1lLCAm bi0+d2hlcmUpOwogCSAgICAgIG4tPnN5bS0+YXR0ci5vbXBfZGV2aWNlX3R5cGUgPSBjLT5k ZXZpY2VfdHlwZTsKIAkgICAgfQorCSAgaWYgKGMtPmluZGlyZWN0KQorCSAgICB7CisJICAg ICAgaWYgKG4tPnN5bS0+YXR0ci5vbXBfZGV2aWNlX3R5cGUgIT0gT01QX0RFVklDRV9UWVBF X1VOU0VUCisJCSAgJiYgbi0+c3ltLT5hdHRyLm9tcF9kZXZpY2VfdHlwZSAhPSBPTVBfREVW SUNFX1RZUEVfQU5ZKQorCQlnZmNfZXJyb3Jfbm93ICgiREVWSUNFX1RZUEUgbXVzdCBiZSBB Tlkgd2hlbiB1c2VkIHdpdGggIgorCQkJICAgICAgICJJTkRJUkVDVCBhdCAlTCIsICZuLT53 aGVyZSk7CisJICAgICAgbi0+c3ltLT5hdHRyLm9tcF9kZWNsYXJlX3RhcmdldF9pbmRpcmVj dCA9IGMtPmluZGlyZWN0OworCSAgICB9CisKIAkgIG4tPnN5bS0+bWFyayA9IDE7CiAJfQog ICAgICAgZWxzZSBpZiAobi0+dS5jb21tb24tPm9tcF9kZWNsYXJlX3RhcmdldApAQCAtNTU1 OCw2ICs1NTk0LDEzIEBAIGdmY19tYXRjaF9vbXBfZGVjbGFyZV90YXJnZXQgKHZvaWQpCiAJ CQkgICAgICAgIiBUQVJHRVQgZGlyZWN0aXZlIHRvIGEgZGlmZmVyZW50IERFVklDRV9UWVBF IiwKIAkJCSAgICAgICBzLT5uYW1lLCAmbi0+d2hlcmUpOwogCSAgICAgIHMtPmF0dHIub21w X2RldmljZV90eXBlID0gYy0+ZGV2aWNlX3R5cGU7CisKKwkgICAgICBpZiAoYy0+aW5kaXJl Y3QKKwkJICAmJiBzLT5hdHRyLm9tcF9kZXZpY2VfdHlwZSAhPSBPTVBfREVWSUNFX1RZUEVf VU5TRVQKKwkJICAmJiBzLT5hdHRyLm9tcF9kZXZpY2VfdHlwZSAhPSBPTVBfREVWSUNFX1RZ UEVfQU5ZKQorCQlnZmNfZXJyb3Jfbm93ICgiREVWSUNFX1RZUEUgbXVzdCBiZSBBTlkgd2hl biB1c2VkIHdpdGggIgorCQkJICAgICAgICJJTkRJUkVDVCBhdCAlTCIsICZuLT53aGVyZSk7 CisJICAgICAgcy0+YXR0ci5vbXBfZGVjbGFyZV90YXJnZXRfaW5kaXJlY3QgPSBjLT5pbmRp cmVjdDsKIAkgICAgfQogCX0KICAgaWYgKGMtPmRldmljZV90eXBlCmRpZmYgLS1naXQgYS9n Y2MvZm9ydHJhbi90cmFucy1kZWNsLmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jYwpp bmRleCBkZTE2MmY2Y2M3NS4uNmQ0NjMwMzY5NjYgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFu L3RyYW5zLWRlY2wuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jYwpAQCAtMTUy Niw2ICsxNTI2LDEwIEBAIGFkZF9hdHRyaWJ1dGVzX3RvX2RlY2wgKHN5bWJvbF9hdHRyaWJ1 dGUgc3ltX2F0dHIsIHRyZWUgbGlzdCkKICAgICBsaXN0ID0gdHJlZV9jb25zIChnZXRfaWRl bnRpZmllciAoIm9tcCBkZWNsYXJlIHRhcmdldCIpLAogCQkgICAgICBjbGF1c2VzLCBsaXN0 KTsKIAorICBpZiAoc3ltX2F0dHIub21wX2RlY2xhcmVfdGFyZ2V0X2luZGlyZWN0KQorICAg IGxpc3QgPSB0cmVlX2NvbnMgKGdldF9pZGVudGlmaWVyICgib21wIGRlY2xhcmUgdGFyZ2V0 IGluZGlyZWN0IiksCisJCSAgICAgIGNsYXVzZXMsIGxpc3QpOworCiAgIHJldHVybiBsaXN0 OwogfQogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVj bGFyZS10YXJnZXQtaW5kaXJlY3QtMS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2dvbXAvZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMS5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU2MGEwNTQxZTlhCi0tLSAvZGV2L251bGwKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0 LTEuZjkwCkBAIC0wLDAgKzEsNTggQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1v cHRpb25zICItZm9wZW5tcCIgfQorCittb2R1bGUgbQorICBpbnRlZ2VyIDo6IGEKKyAgaW50 ZWdlciwgcGFyYW1ldGVyIDo6IFggPSAxCisgIGludGVnZXIsIHBhcmFtZXRlciA6OiBZID0g MgorCisgICEgSW5kaXJlY3Qgb24gYSB2YXJpYWJsZSBzaG91bGQgaGF2ZSBubyBlZmZlY3Qu CisgIGludGVnZXIgOjogegorICAhJG9tcCBkZWNsYXJlIHRhcmdldCB0byAoeikgaW5kaXJl Y3QKK2NvbnRhaW5zCisgIHN1YnJvdXRpbmUgc3ViMQorICAgICEkb21wIGRlY2xhcmUgdGFy Z2V0IGluZGlyZWN0IHRvIChzdWIxKQorICBlbmQgc3Vicm91dGluZQorCisgIHN1YnJvdXRp bmUgc3ViMgorICAgICEkb21wIGRlY2xhcmUgdGFyZ2V0IGVudGVyIChzdWIyKSBpbmRpcmVj dCAoLnRydWUuKQorICBlbmQgc3Vicm91dGluZQorCisgIHN1YnJvdXRpbmUgc3ViMworICAg ICEkb21wIGRlY2xhcmUgdGFyZ2V0IHRvIChzdWIzKSBpbmRpcmVjdCAoLmZhbHNlLikKKyAg ZW5kIHN1YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1YjQKKyAgICAhJG9tcCBkZWNsYXJl IHRhcmdldCB0byAoc3ViNCkgaW5kaXJlY3QgKDEpICEgeyBkZy1lcnJvciAiSU5ESVJFQ1Qg Y2xhdXNlIGF0IC4xLiByZXF1aXJlcyBhIGNvbnN0YW50IGxvZ2ljYWwgZXhwcmVzc2lvbiIg fQorICBlbmQgc3Vicm91dGluZQorCisgICEgQ29tcGlsZS10aW1lIG5vbi1jb25zdGFudCBl eHByZXNzaW9ucyBhcmUgbm90IGFsbG93ZWQuCisgIHN1YnJvdXRpbmUgc3ViNQorICAgICEk b21wIGRlY2xhcmUgdGFyZ2V0IGluZGlyZWN0IChhID4gMCkgdG8gKHN1YjUpICEgeyBkZy1l cnJvciAiSU5ESVJFQ1QgY2xhdXNlIGF0IC4xLiByZXF1aXJlcyBhIGNvbnN0YW50IGxvZ2lj YWwgZXhwcmVzc2lvbiIgfQorICBlbmQgc3Vicm91dGluZQorCisgICEgQ29tcGlsZS10aW1l IGNvbnN0YW50IGV4cHJlc3Npb25zIGFyZSBwZXJtaXNzaWJsZS4KKyAgc3Vicm91dGluZSBz dWI2CisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgaW5kaXJlY3QgKFggLmVxLiBZKSB0byAo c3ViNikKKyAgZW5kIHN1YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1YjcKKyAgICAhJG9t cCBkZWNsYXJlIHRhcmdldCBpbmRpcmVjdCAoLnRydWUuKSBpbmRpcmVjdCAoLmZhbHNlLikg dG8gKHN1YjcpICEgeyBkZy1lcnJvciAiRHVwbGljYXRlZCAuaW5kaXJlY3QuIGNsYXVzZSBh dCAuMS4iIH0KKyAgZW5kIHN1YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1YjgKKyAgICAh JG9tcCBkZWNsYXJlIHRhcmdldCB0byAoc3ViOCkgaW5kaXJlY3QgKCJhYnMiKSAhIHsgZGct ZXJyb3IgIklORElSRUNUIGNsYXVzZSBhdCAuMS4gcmVxdWlyZXMgYSBjb25zdGFudCBsb2dp Y2FsIGV4cHJlc3Npb24iIH0KKyAgZW5kIHN1YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1 YjkKKyAgICAhJG9tcCBkZWNsYXJlIHRhcmdldCB0byAoc3ViOSkgaW5kaXJlY3QgKDUuNSkg ISB7IGRnLWVycm9yICJJTkRJUkVDVCBjbGF1c2UgYXQgLjEuIHJlcXVpcmVzIGEgY29uc3Rh bnQgbG9naWNhbCBleHByZXNzaW9uIiB9CisgIGVuZCBzdWJyb3V0aW5lCisKKyAgc3Vicm91 dGluZSBzdWIxMAorICAgICEkb21wIGRlY2xhcmUgdGFyZ2V0IGluZGlyZWN0ICgudHJ1ZS4p IGRldmljZV90eXBlIChob3N0KSBlbnRlciAoc3ViMTApICEgeyBkZy1lcnJvciAiREVWSUNF X1RZUEUgbXVzdCBiZSBBTlkgd2hlbiB1c2VkIHdpdGggSU5ESVJFQ1QgYXQgLjEuIiB9Cisg IGVuZCBzdWJyb3V0aW5lCisKKyAgc3Vicm91dGluZSBzdWIxMQorICAgICEkb21wIGRlY2xh cmUgdGFyZ2V0IGluZGlyZWN0ICguZmFsc2UuKSBkZXZpY2VfdHlwZSAobm9ob3N0KSBlbnRl ciAoc3ViMTEpCisgIGVuZCBzdWJyb3V0aW5lCitlbmQgbW9kdWxlCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVjbGFyZS10YXJnZXQtaW5kaXJlY3Qt Mi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVjbGFyZS10YXJnZXQt aW5kaXJlY3QtMi5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmY2YjNhZTE3ODU2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTIuZjkwCkBAIC0wLDAgKzEsMjUg QEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItZm9wZW5tcCAtZmR1 bXAtdHJlZS1naW1wbGUiIH0KKworbW9kdWxlIG0KK2NvbnRhaW5zCisgIHN1YnJvdXRpbmUg c3ViMQorICAgICEkb21wIGRlY2xhcmUgdGFyZ2V0IGluZGlyZWN0IGVudGVyIChzdWIxKQor ICBlbmQgc3Vicm91dGluZQorICAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiX19h dHRyaWJ1dGVfX1xcXChcXFwob21wIGRlY2xhcmUgdGFyZ2V0LCBvbXAgZGVjbGFyZSB0YXJn ZXQgaW5kaXJlY3RcXFwpXFxcKVxcXG4uKlxcXG52b2lkIHN1YjEiICJnaW1wbGUiIH0gfQor CisgIHN1YnJvdXRpbmUgc3ViMgorICAgICEkb21wIGRlY2xhcmUgdGFyZ2V0IGluZGlyZWN0 ICguZmFsc2UuKSB0byAoc3ViMikKKyAgZW5kIHN1YnJvdXRpbmUKKyAgISB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAgIl9fYXR0cmlidXRlX19cXFwoXFxcKG9tcCBkZWNsYXJlIHRh cmdldFxcXClcXFwpXFxcbi4qXFxcbnZvaWQgc3ViMiIgImdpbXBsZSIgfSB9CisKKyAgc3Vi cm91dGluZSBzdWIzCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgaW5kaXJlY3QgKC50cnVl LikgdG8gKHN1YjMpCisgIGVuZCBzdWJyb3V0aW5lCisgICEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wICJfX2F0dHJpYnV0ZV9fXFxcKFxcXChvbXAgZGVjbGFyZSB0YXJnZXQsIG9t cCBkZWNsYXJlIHRhcmdldCBpbmRpcmVjdFxcXClcXFwpXFxcbi4qXFxcbnZvaWQgc3ViMyIg ImdpbXBsZSIgfSB9CisKKyAgc3Vicm91dGluZSBzdWI0CisgICAgISRvbXAgZGVjbGFyZSB0 YXJnZXQgaW5kaXJlY3QgKC5mYWxzZS4pIGVudGVyIChzdWI0KQorICBlbmQgc3Vicm91dGlu ZQorICAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiX19hdHRyaWJ1dGVfX1xcXChc XFwob21wIGRlY2xhcmUgdGFyZ2V0XFxcKVxcXClcXFxuLipcXFxudm9pZCBzdWI0IiAiZ2lt cGxlIiB9IH0KK2VuZCBtb2R1bGUKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xp YmdvbXAuZm9ydHJhbi9kZWNsYXJlLXRhcmdldC1pbmRpcmVjdC0xLmY5MCBiL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9kZWNsYXJlLXRhcmdldC1pbmRpcmVjdC0xLmY5 MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzlhOTFkZmNkY2EK LS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4v ZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMS5mOTAKQEAgLTAsMCArMSwzOSBAQAorISB7IGRn LWRvIHJ1biB9CisKK21vZHVsZSBtCitjb250YWlucworICBpbnRlZ2VyIGZ1bmN0aW9uIGZv byAoKQorICAgICEkb21wIGRlY2xhcmUgdGFyZ2V0IHRvIChmb28pIGluZGlyZWN0CisgICAg Zm9vID0gNQorICBlbmQgZnVuY3Rpb24KKworICBpbnRlZ2VyIGZ1bmN0aW9uIGJhciAoKQor ICAgICEkb21wIGRlY2xhcmUgdGFyZ2V0IHRvIChiYXIpIGluZGlyZWN0CisgICAgYmFyID0g OAorICBlbmQgZnVuY3Rpb24KKworICBpbnRlZ2VyIGZ1bmN0aW9uIGJheiAoKQorICAgICEk b21wIGRlY2xhcmUgdGFyZ2V0IHRvIChiYXopIGluZGlyZWN0CisgICAgYmF6ID0gMTEKKyAg ZW5kIGZ1bmN0aW9uCitlbmQgbW9kdWxlCisKK3Byb2dyYW0gbWFpbgorICB1c2UgbQorICBp bXBsaWNpdCBub25lCisKKyAgaW50ZWdlciA6OiB4LCBleHBlY3RlZAorICBwcm9jZWR1cmUg KGZvbyksIHBvaW50ZXIgOjogZm9vX3B0ciwgYmFyX3B0ciwgYmF6X3B0cgorCisgIGZvb19w dHIgPT4gZm9vCisgIGJhcl9wdHIgPT4gYmFyCisgIGJhel9wdHIgPT4gYmF6CisKKyAgZXhw ZWN0ZWQgPSBmb28gKCkgKyBiYXIgKCkgKyBiYXogKCkKKworICAhJG9tcCB0YXJnZXQgbWFw ICh0bzogZm9vX3B0ciwgYmFyX3B0ciwgYmF6X3B0cikgbWFwIChmcm9tOiB4KQorICAgIHgg PSBmb29fcHRyICgpICsgYmFyX3B0ciAoKSArIGJhel9wdHIgKCkKKyAgISRvbXAgZW5kIHRh cmdldAorCisgIHN0b3AgeCAtIGV4cGVjdGVkCitlbmQgcHJvZ3JhbQpkaWZmIC0tZ2l0IGEv bGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWluZGly ZWN0LTIuZjkwIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlY2xhcmUt dGFyZ2V0LWluZGlyZWN0LTIuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5kM2JhYTgxZGQwNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1 aXRlL2xpYmdvbXAuZm9ydHJhbi9kZWNsYXJlLXRhcmdldC1pbmRpcmVjdC0yLmY5MApAQCAt MCwwICsxLDUzIEBACishIHsgZGctZG8gcnVuIH0KKworbW9kdWxlIG0KK2NvbnRhaW5zCisg IGludGVnZXIgZnVuY3Rpb24gZm9vICgpCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgdG8g KGZvbykgaW5kaXJlY3QKKyAgICBmb28gPSA1CisgIGVuZCBmdW5jdGlvbgorCisgIGludGVn ZXIgZnVuY3Rpb24gYmFyICgpCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgdG8gKGJhcikg aW5kaXJlY3QKKyAgICBiYXIgPSA4CisgIGVuZCBmdW5jdGlvbgorCisgIGludGVnZXIgZnVu Y3Rpb24gYmF6ICgpCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgdG8gKGJheikgaW5kaXJl Y3QKKyAgICBiYXogPSAxMQorICBlbmQgZnVuY3Rpb24KK2VuZCBtb2R1bGUKKworcHJvZ3Jh bSBtYWluCisgIHVzZSBtCisgIGltcGxpY2l0IG5vbmUKKworICB0eXBlIGZwCisgICAgcHJv Y2VkdXJlIChmb28pLCBwb2ludGVyLCBub3Bhc3MgOjogZiA9PiBudWxsICgpCisgIGVuZCB0 eXBlCisKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IE4gPSAyNTYKKyAgaW50ZWdlciA6OiBp LCB4ID0gMCwgZXhwZWN0ZWQgPSAwOworICB0eXBlIChmcCkgOjogZm5fcHRyIChOKQorCisg IGRvIGkgPSAxLCBOCisgICAgc2VsZWN0IGNhc2UgKG1vZCAoaSwgMykpCisgICAgICBjYXNl ICgwKQorICAgICAgICBmbl9wdHIgKGkpJWYgPT4gZm9vCisgICAgICBjYXNlICgxKQorICAg ICAgICBmbl9wdHIgKGkpJWYgPT4gYmFyCisgICAgICBjYXNlICgyKQorICAgICAgICBmbl9w dHIgKGkpJWYgPT4gYmF6CisgICAgZW5kIHNlbGVjdAorICAgIGV4cGVjdGVkID0gZXhwZWN0 ZWQgKyBmbl9wdHIgKGkpJWYgKCkKKyAgZW5kIGRvCisKKyAgISRvbXAgdGFyZ2V0IHRlYW1z IGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8gJgorICAhJG9tcCAmIHJlZHVjdGlvbigrOiB4KSBt YXAgKHRvOiBmbl9wdHIpIG1hcCAodG9mcm9tOiB4KQorICAgIGRvIGkgPSAxLCBOCisgICAg ICB4ID0geCArIGZuX3B0ciAoaSklZiAoKQorICAgIGVuZCBkbworICAhJG9tcCBlbmQgdGFy Z2V0IHRlYW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8KKworICBzdG9wIHggLSBleHBlY3Rl ZAorZW5kIHByb2dyYW0KLS0gCjIuMzQuMQoK --------------x4E303SU0F0K8ez2e9OiVXQ0--