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 92E2E383A0EC; Wed, 14 Dec 2022 10:47:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 92E2E383A0EC Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.96,244,1665475200"; d="diff'?scan'208";a="92862473" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa1.mentor.iphmx.com with ESMTP; 14 Dec 2022 02:47:27 -0800 IronPort-SDR: lWTE8RRZ6l6kmMwgkgODxzRWJ8+skLnvEGdoYlO5cZ5XUfN8RAYS7GS3VpN3smUcLHFOqlnIgE tUS9/FAelA3EKhY8L7qZ0U8JN4iijQqwUzP22toKY0sUCIuYF6tz+8ZVmV0DOM9yLBsDFr7JV7 BUegwIdQQGvi6r02uBt16Yj3yWSJXfXHz/vGuSvP5pVHaEa4I/J8qefHS3cf4egihmnL5wZF1y pQYajWsG3HnYXS3UI6YioSN3cbeOCY6xKh9hFa3t+iMeJrtpPqXi6gVh6xnN/XIfDm+64mWiMT 1h8= Content-Type: multipart/mixed; boundary="------------LHf6ZGWqs7ujtj09yh5zZvN1" Message-ID: <11d6c8f4-cdb1-ddb6-8d48-f76c4c8e6382@codesourcery.com> Date: Wed, 14 Dec 2022 11:47:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Content-Language: en-US To: gcc-patches , Jakub Jelinek , fortran From: Tobias Burnus Subject: [Patch] Fortran/OpenMP: Add parsing support for allocators directive X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_PASS,SPF_PASS,TXREP 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: --------------LHf6ZGWqs7ujtj09yh5zZvN1 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable This patch adds parsing/argument-checking support for '!$omp allocators allocate([align(int),allocator(a) :] list)' This is kind of logical follow-up and prep patch for the '!$omp allocate(list) [align(v) allocator(a)]' support that was submitted as part of a larger patchset by Abid; cf. review at "[PATCH 1/5] [gfortran] Add parsing support for allocate directive (Open= MP 5.0)." https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603258.html My follow-up patch will add parsing support for declarative/executable '!$o= mp allocate'. OK for mainline? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------LHf6ZGWqs7ujtj09yh5zZvN1 Content-Type: text/x-patch; charset="UTF-8"; name="omp-allocators.diff" Content-Disposition: attachment; filename="omp-allocators.diff" Content-Transfer-Encoding: base64 Rm9ydHJhbi9PcGVuTVA6IEFkZCBwYXJzaW5nIHN1cHBvcnQgZm9yIGFsbG9jYXRvcnMgZGly ZWN0aXZlCgpnY2MvZm9ydHJhbi9DaGFuZ2VMb2c6CgoJKiBnZm9ydHJhbi5oIChlbnVtIGdm Y19zdGF0ZW1lbnQpOiBBZGQgU1RfT01QX0FMTE9DQVRPUlMgYW5kCglTVF9PTVBfRU5EX0FM TE9DQVRPUlMuCgkoZW51bSBnZmNfZXhlY19vcCk6IEFkZCBFWEVDX09NUF9BTExPQ0FUT1JT LgoJKiBkdW1wLXBhcnNlLXRyZWUuY2MgKHNob3dfb21wX25vZGUsIHNob3dfY29kZV9ub2Rl KTogSGFuZGxlCglPcGVuTVAncyBBTExPQ0FUT1JTIGRpcmVjdGl2ZS4KCSogbWF0Y2guaCAo Z2ZjX21hdGNoX29tcF9hbGxvY2F0b3JzKTogTmV3IHByb3RvdHlwZS4KCSogb3Blbm1wLmNj IChPTVBfQUxMT0NBVE9SU19DTEFVU0VTKTogRGVmaW5lLgoJKGdmY19tYXRjaF9vbXBfYWxs b2NhdG9ycyk6IE5ldy4KCShyZXNvbHZlX29tcF9jbGF1c2VzLCBvbXBfY29kZV90b19zdGF0 ZW1lbnQsCglnZmNfcmVzb2x2ZV9vbXBfZGlyZWN0aXZlKTogSGFuZGxlIEVYRUNfT01QX0FM TE9DQVRPUlMuCgkqIHBhcnNlLmNjIChwYXJzZV9vcGVubXBfYWxsb2NhdGVfYmxvY2spOiBO ZXcuCgkoY2FzZV9leGVjX21hcmtlcnMpOiBBZGQgU1RfT01QX0FMTE9DQVRPUlMuCgkoZGVj b2RlX29tcF9kaXJlY3RpdmUsIGdmY19hc2NpaV9zdGF0ZW1lbnQsCglwYXJzZV9leGVjdXRh YmxlKTogUGFyc2UgT3Blbk1QIGFsbG9jYXRvcnMgZGlyZWN0aXZlLgoJKiByZXNvbHZlLmNj IChnZmNfcmVzb2x2ZV9ibG9ja3MpOiBIYW5kbGUgRVhFQ19PTVBfQUxMT0NBVE9SUy4KCSog c3QuY2MgKGdmY19mcmVlX3N0YXRlbWVudCk6IExpa2V3aXNlLgoJKiB0cmFucy5jYyAodHJh bnNfY29kZSk6IExpa2V3aXNlLgoJKiB0cmFucy1vcGVubXAuY2MgKGdmY190cmFuc19vbXBf ZGlyZWN0aXZlKTogU2hvdyAnc29ycnknIGZvcgoJRVhFQ19PTVBfQUxMT0NBVE9SUy4KCmdj Yy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCSogZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0b3Jz LTEuZjkwOiBOZXcgdGVzdC4KCSogZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0b3JzLTIuZjkw OiBOZXcgdGVzdC4KCiBnY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MgICAgICAgICAg ICAgICAgICB8ICAyICsKIGdjYy9mb3J0cmFuL2dmb3J0cmFuLmggICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDMgKy0KIGdjYy9mb3J0cmFuL21hdGNoLmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDEgKwogZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAzMSArKysrKysrKysrKysrKy0KIGdjYy9mb3J0cmFuL3BhcnNl LmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysrKysr KysrKysrLQogZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jYyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArCiBnY2MvZm9ydHJhbi9zdC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAxICsKIGdjYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYyAgICAgICAgICAgICAg ICAgICAgIHwgIDMgKysKIGdjYy9mb3J0cmFuL3RyYW5zLmNjICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDEgKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9j YXRvcnMtMS5mOTAgfCAyOCArKysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL2FsbG9jYXRvcnMtMi5mOTAgfCAyMiArKysrKysrKysrKwogMTEgZmlsZXMg Y2hhbmdlZCwgMTQwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmNjIGIvZ2NjL2ZvcnRyYW4vZHVtcC1w YXJzZS10cmVlLmNjCmluZGV4IDVhZTcyZGMxY2FjLi40NTY1YjcxYzc1OCAxMDA2NDQKLS0t IGEvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmNjCisrKyBiL2djYy9mb3J0cmFuL2R1 bXAtcGFyc2UtdHJlZS5jYwpAQCAtMjA4MSw2ICsyMDgxLDcgQEAgc2hvd19vbXBfbm9kZSAo aW50IGxldmVsLCBnZmNfY29kZSAqYykKICAgICBjYXNlIEVYRUNfT0FDQ19DQUNIRTogbmFt ZSA9ICJDQUNIRSI7IGlzX29hY2MgPSB0cnVlOyBicmVhazsKICAgICBjYXNlIEVYRUNfT0FD Q19FTlRFUl9EQVRBOiBuYW1lID0gIkVOVEVSIERBVEEiOyBpc19vYWNjID0gdHJ1ZTsgYnJl YWs7CiAgICAgY2FzZSBFWEVDX09BQ0NfRVhJVF9EQVRBOiBuYW1lID0gIkVYSVQgREFUQSI7 IGlzX29hY2MgPSB0cnVlOyBicmVhazsKKyAgICBjYXNlIEVYRUNfT01QX0FMTE9DQVRPUlM6 IG5hbWUgPSAiQUxMT0NBVE9SUyI7IGJyZWFrOwogICAgIGNhc2UgRVhFQ19PTVBfQVNTVU1F OiBuYW1lID0gIkFTU1VNRSI7IGJyZWFrOwogICAgIGNhc2UgRVhFQ19PTVBfQVRPTUlDOiBu YW1lID0gIkFUT01JQyI7IGJyZWFrOwogICAgIGNhc2UgRVhFQ19PTVBfQkFSUklFUjogbmFt ZSA9ICJCQVJSSUVSIjsgYnJlYWs7CkBAIC0zNDA5LDYgKzM0MTAsNyBAQCBzaG93X2NvZGVf bm9kZSAoaW50IGxldmVsLCBnZmNfY29kZSAqYykKICAgICBjYXNlIEVYRUNfT0FDQ19DQUNI RToKICAgICBjYXNlIEVYRUNfT0FDQ19FTlRFUl9EQVRBOgogICAgIGNhc2UgRVhFQ19PQUND X0VYSVRfREFUQToKKyAgICBjYXNlIEVYRUNfT01QX0FMTE9DQVRPUlM6CiAgICAgY2FzZSBF WEVDX09NUF9BU1NVTUU6CiAgICAgY2FzZSBFWEVDX09NUF9BVE9NSUM6CiAgICAgY2FzZSBF WEVDX09NUF9DQU5DRUw6CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oIGIv Z2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAppbmRleCA1ZjhhODFhZTRhMS4uNjNmMzhkMjY2NjYg MTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKKysrIGIvZ2NjL2ZvcnRyYW4v Z2ZvcnRyYW4uaApAQCAtMzE4LDYgKzMxOCw3IEBAIGVudW0gZ2ZjX3N0YXRlbWVudAogICBT VF9PTVBfRU5EX01BU0tFRF9UQVNLTE9PUCwgU1RfT01QX01BU0tFRF9UQVNLTE9PUF9TSU1E LAogICBTVF9PTVBfRU5EX01BU0tFRF9UQVNLTE9PUF9TSU1ELCBTVF9PTVBfU0NPUEUsIFNU X09NUF9FTkRfU0NPUEUsCiAgIFNUX09NUF9FUlJPUiwgU1RfT01QX0FTU1VNRSwgU1RfT01Q X0VORF9BU1NVTUUsIFNUX09NUF9BU1NVTUVTLAorICBTVF9PTVBfQUxMT0NBVE9SUywgU1Rf T01QX0VORF9BTExPQ0FUT1JTLAogICAvKiBOb3RlOiBnZmNfbWF0Y2hfb21wX25vdGhpbmcg cmV0dXJucyBTVF9OT05FLiAqLwogICBTVF9PTVBfTk9USElORywgU1RfTk9ORQogfTsKQEAg LTI5NTksNyArMjk2MCw3IEBAIGVudW0gZ2ZjX2V4ZWNfb3AKICAgRVhFQ19PTVBfVEFSR0VU X1RFQU1TX0xPT1AsIEVYRUNfT01QX01BU0tFRCwgRVhFQ19PTVBfUEFSQUxMRUxfTUFTS0VE LAogICBFWEVDX09NUF9QQVJBTExFTF9NQVNLRURfVEFTS0xPT1AsIEVYRUNfT01QX1BBUkFM TEVMX01BU0tFRF9UQVNLTE9PUF9TSU1ELAogICBFWEVDX09NUF9NQVNLRURfVEFTS0xPT1As IEVYRUNfT01QX01BU0tFRF9UQVNLTE9PUF9TSU1ELCBFWEVDX09NUF9TQ09QRSwKLSAgRVhF Q19PTVBfRVJST1IKKyAgRVhFQ19PTVBfRVJST1IsIEVYRUNfT01QX0FMTE9DQVRPUlMKIH07 CiAKIHR5cGVkZWYgc3RydWN0IGdmY19jb2RlCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9t YXRjaC5oIGIvZ2NjL2ZvcnRyYW4vbWF0Y2guaAppbmRleCAyYTgwNTgxNWQ5Yy4uYjFmNWRi ODAxMjUgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL21hdGNoLmgKKysrIGIvZ2NjL2ZvcnRy YW4vbWF0Y2guaApAQCAtMTQ5LDYgKzE0OSw3IEBAIG1hdGNoIGdmY19tYXRjaF9vYWNjX3Jv dXRpbmUgKHZvaWQpOwogCiAvKiBPcGVuTVAgZGlyZWN0aXZlIG1hdGNoZXJzLiAgKi8KIG1h dGNoIGdmY19tYXRjaF9vbXBfZW9zX2Vycm9yICh2b2lkKTsKK21hdGNoIGdmY19tYXRjaF9v bXBfYWxsb2NhdG9ycyAodm9pZCk7CiBtYXRjaCBnZmNfbWF0Y2hfb21wX2Fzc3VtZSAodm9p ZCk7CiBtYXRjaCBnZmNfbWF0Y2hfb21wX2Fzc3VtZXMgKHZvaWQpOwogbWF0Y2ggZ2ZjX21h dGNoX29tcF9hdG9taWMgKHZvaWQpOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vb3Blbm1w LmNjIGIvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCmluZGV4IDY4NmY5MjRiNDdhLi5lOTc4Zjg3 NzRjNCAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCisrKyBiL2djYy9mb3J0 cmFuL29wZW5tcC5jYwpAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3QgZ2ZjX29tcF9kaXJlY3Rp dmUgewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGdmY19vbXBfZGlyZWN0aXZlIGdmY19vbXBf ZGlyZWN0aXZlc1tdID0gewogICAvKiB7ImFsbG9jYXRlIiwgR0ZDX09NUF9ESVJfREVDTEFS QVRJVkUsIFNUX09NUF9BTExPQ0FURX0sICovCi0gIC8qIHsiYWxsb2NhdG9ycyIsIEdGQ19P TVBfRElSX0VYRUNVVEFCTEUsIFNUX09NUF9BTExPQ0FUT1JTfSwgKi8KKyAgeyJhbGxvY2F0 b3JzIiwgR0ZDX09NUF9ESVJfRVhFQ1VUQUJMRSwgU1RfT01QX0FMTE9DQVRPUlN9LAogICB7 ImFzc3VtZXMiLCBHRkNfT01QX0RJUl9JTkZPUk1BVElPTkFMLCBTVF9PTVBfQVNTVU1FU30s CiAgIHsiYXNzdW1lIiwgR0ZDX09NUF9ESVJfSU5GT1JNQVRJT05BTCwgU1RfT01QX0FTU1VN RX0sCiAgIHsiYXRvbWljIiwgR0ZDX09NUF9ESVJfRVhFQ1VUQUJMRSwgU1RfT01QX0FUT01J Q30sCkBAIC00MjcwLDYgKzQyNzAsOCBAQCBjbGVhbnVwOgogICAob21wX21hc2sgKE9NUF9D TEFVU0VfQVQpIHwgT01QX0NMQVVTRV9NRVNTQUdFIHwgT01QX0NMQVVTRV9TRVZFUklUWSkK ICNkZWZpbmUgT01QX1dPUktTSEFSRV9DTEFVU0VTIFwKICAgb21wX21hc2sgKE9NUF9DTEFV U0VfTk9XQUlUKQorI2RlZmluZSBPTVBfQUxMT0NBVE9SU19DTEFVU0VTIFwKKyAgb21wX21h c2sgKE9NUF9DTEFVU0VfQUxMT0NBVEUpCiAKIAogc3RhdGljIG1hdGNoCkBAIC00Mjg1LDYg KzQyODcsMTMgQEAgbWF0Y2hfb21wIChnZmNfZXhlY19vcCBvcCwgY29uc3Qgb21wX21hc2sg bWFzaykKIH0KIAogCittYXRjaAorZ2ZjX21hdGNoX29tcF9hbGxvY2F0b3JzICh2b2lkKQor eworICByZXR1cm4gbWF0Y2hfb21wIChFWEVDX09NUF9BTExPQ0FUT1JTLCBPTVBfQUxMT0NB VE9SU19DTEFVU0VTKTsKK30KKworCiBtYXRjaAogZ2ZjX21hdGNoX29tcF9hc3N1bWUgKHZv aWQpCiB7CkBAIC03MzgyLDYgKzczOTEsMjMgQEAgcmVzb2x2ZV9vbXBfY2xhdXNlcyAoZ2Zj X2NvZGUgKmNvZGUsIGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMsCiAJCQkgImluIGFu IGV4cGxpY2l0IHByaXZhdGl6YXRpb24gY2xhdXNlIiwKIAkJCSBuLT5zeW0tPm5hbWUsICZu LT53aGVyZSk7CiAJfQorICAgICAgaWYgKGNvZGUgJiYgY29kZS0+b3AgPT0gRVhFQ19PTVBf QUxMT0NBVE9SUworCSAgJiYgY29kZS0+YmxvY2stPm5leHQgJiYgY29kZS0+YmxvY2stPm5l eHQtPm9wID09IEVYRUNfQUxMT0NBVEUpCisJeworCSAgZ2ZjX2FsbG9jICphOworCSAgZm9y IChuID0gb21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXTsgbjsgbiA9IG4t Pm5leHQpCisJICAgIHsKKwkgICAgICBmb3IgKGEgPSBjb2RlLT5ibG9jay0+bmV4dC0+ZXh0 LmFsbG9jLmxpc3Q7IGE7IGEgPSBhLT5uZXh0KQorCQlpZiAoYS0+ZXhwci0+ZXhwcl90eXBl ID09IEVYUFJfVkFSSUFCTEUKKwkJICAgICYmIGEtPmV4cHItPnN5bXRyZWUtPm4uc3ltID09 IG4tPnN5bSkKKwkJICBicmVhazsKKwkgICAgICBpZiAoYSA9PSBOVUxMKQorCQlnZmNfZXJy b3IgKCIlcXMgc3BlY2lmaWVkIGluICU8YWxsb2NhdGUlPiBjbGF1c2UgYXQgJUwgYnV0IG5v dCAiCisJCQkgICAiaW4gdGhlIGFzc29jaWF0ZWQgQUxMT0NBVEUgc3RhdGVtZW50IiwKKwkJ CSAgIG4tPnN5bS0+bmFtZSwgJm4tPndoZXJlKTsKKwkgICAgfQorCX0KKwogICAgIH0KIAog ICAvKiBPcGVuQUNDIHJlZHVjdGlvbnMuICAqLwpAQCAtOTU1MSw2ICs5NTc3LDggQEAgb21w X2NvZGVfdG9fc3RhdGVtZW50IChnZmNfY29kZSAqY29kZSkKICAgICAgIHJldHVybiBTVF9P TVBfRE87CiAgICAgY2FzZSBFWEVDX09NUF9MT09QOgogICAgICAgcmV0dXJuIFNUX09NUF9M T09QOworICAgIGNhc2UgRVhFQ19PTVBfQUxMT0NBVE9SUzoKKyAgICAgIHJldHVybiBTVF9P TVBfQUxMT0NBVE9SUzsKICAgICBjYXNlIEVYRUNfT01QX0FTU1VNRToKICAgICAgIHJldHVy biBTVF9PTVBfQVNTVU1FOwogICAgIGNhc2UgRVhFQ19PTVBfQVRPTUlDOgpAQCAtMTAwNzIs NiArMTAxMDAsNyBAQCBnZmNfcmVzb2x2ZV9vbXBfZGlyZWN0aXZlIChnZmNfY29kZSAqY29k ZSwgZ2ZjX25hbWVzcGFjZSAqbnMpCiAgICAgY2FzZSBFWEVDX09NUF9URUFNU19MT09QOgog ICAgICAgcmVzb2x2ZV9vbXBfZG8gKGNvZGUpOwogICAgICAgYnJlYWs7CisgICAgY2FzZSBF WEVDX09NUF9BTExPQ0FUT1JTOgogICAgIGNhc2UgRVhFQ19PTVBfQVNTVU1FOgogICAgIGNh c2UgRVhFQ19PTVBfQ0FOQ0VMOgogICAgIGNhc2UgRVhFQ19PTVBfRVJST1I6CmRpZmYgLS1n aXQgYS9nY2MvZm9ydHJhbi9wYXJzZS5jYyBiL2djYy9mb3J0cmFuL3BhcnNlLmNjCmluZGV4 IGJjMmIyMTg4ZWVhLi4yYWI1ZWQwZDZhYSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vcGFy c2UuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vcGFyc2UuY2MKQEAgLTg4NSw2ICs4ODUsNyBAQCBk ZWNvZGVfb21wX2RpcmVjdGl2ZSAodm9pZCkKICAgc3dpdGNoIChjKQogICAgIHsKICAgICBj YXNlICdhJzoKKyAgICAgIG1hdGNobyAoImFsbG9jYXRvcnMiLCBnZmNfbWF0Y2hfb21wX2Fs bG9jYXRvcnMsIFNUX09NUF9BTExPQ0FUT1JTKTsKICAgICAgIG1hdGNobyAoImFzc3VtZXMi LCBnZmNfbWF0Y2hfb21wX2Fzc3VtZXMsIFNUX09NUF9BU1NVTUVTKTsKICAgICAgIG1hdGNo cyAoImFzc3VtZSIsIGdmY19tYXRjaF9vbXBfYXNzdW1lLCBTVF9PTVBfQVNTVU1FKTsKICAg ICAgIG1hdGNobyAoImF0b21pYyIsIGdmY19tYXRjaF9vbXBfYXRvbWljLCBTVF9PTVBfQVRP TUlDKTsKQEAgLTkxNSw2ICs5MTYsNyBAQCBkZWNvZGVfb21wX2RpcmVjdGl2ZSAodm9pZCkK ICAgICAgIGJyZWFrOwogICAgIGNhc2UgJ2UnOgogICAgICAgbWF0Y2hvICgiZXJyb3IiLCBn ZmNfbWF0Y2hfb21wX2Vycm9yLCBTVF9PTVBfRVJST1IpOworICAgICAgbWF0Y2hvICgiZW5k IGFsbG9jYXRvcnMiLCBnZmNfbWF0Y2hfb21wX2Vvc19lcnJvciwgU1RfT01QX0VORF9BTExP Q0FUT1JTKTsKICAgICAgIG1hdGNocyAoImVuZCBhc3N1bWUiLCBnZmNfbWF0Y2hfb21wX2Vv c19lcnJvciwgU1RfT01QX0VORF9BU1NVTUUpOwogICAgICAgbWF0Y2hvICgiZW5kIGF0b21p YyIsIGdmY19tYXRjaF9vbXBfZW9zX2Vycm9yLCBTVF9PTVBfRU5EX0FUT01JQyk7CiAgICAg ICBtYXRjaG8gKCJlbmQgY3JpdGljYWwiLCBnZmNfbWF0Y2hfb21wX2VuZF9jcml0aWNhbCwg U1RfT01QX0VORF9DUklUSUNBTCk7CkBAIC0xNzIwLDcgKzE3MjIsNyBAQCBuZXh0X3N0YXRl bWVudCAodm9pZCkKICAgY2FzZSBTVF9PTVBfVEFSR0VUX1NJTUQ6IGNhc2UgU1RfT01QX1RB U0tMT09QOiBjYXNlIFNUX09NUF9UQVNLTE9PUF9TSU1EOiBcCiAgIGNhc2UgU1RfT01QX0xP T1A6IGNhc2UgU1RfT01QX1BBUkFMTEVMX0xPT1A6IGNhc2UgU1RfT01QX1RFQU1TX0xPT1A6 IFwKICAgY2FzZSBTVF9PTVBfVEFSR0VUX1BBUkFMTEVMX0xPT1A6IGNhc2UgU1RfT01QX1RB UkdFVF9URUFNU19MT09QOiBcCi0gIGNhc2UgU1RfT01QX0FTU1VNRTogXAorICBjYXNlIFNU X09NUF9BTExPQ0FUT1JTOiBjYXNlIFNUX09NUF9BU1NVTUU6IFwKICAgY2FzZSBTVF9DUklU SUNBTDogXAogICBjYXNlIFNUX09BQ0NfUEFSQUxMRUxfTE9PUDogY2FzZSBTVF9PQUNDX1BB UkFMTEVMOiBjYXNlIFNUX09BQ0NfS0VSTkVMUzogXAogICBjYXNlIFNUX09BQ0NfREFUQTog Y2FzZSBTVF9PQUNDX0hPU1RfREFUQTogY2FzZSBTVF9PQUNDX0xPT1A6IFwKQEAgLTIzNTks NiArMjM2MSw5IEBAIGdmY19hc2NpaV9zdGF0ZW1lbnQgKGdmY19zdGF0ZW1lbnQgc3QsIGJv b2wgc3RyaXBfc2VudGluZWwpCiAgICAgY2FzZSBTVF9PQUNDX0VORF9BVE9NSUM6CiAgICAg ICBwID0gIiEkQUNDIEVORCBBVE9NSUMiOwogICAgICAgYnJlYWs7CisgICAgY2FzZSBTVF9P TVBfQUxMT0NBVE9SUzoKKyAgICAgIHAgPSAiISRPTVAgQUxMT0NBVE9SUyI7CisgICAgICBi cmVhazsKICAgICBjYXNlIFNUX09NUF9BU1NVTUU6CiAgICAgICBwID0gIiEkT01QIEFTU1VN RSI7CiAgICAgICBicmVhazsKQEAgLTI0MTMsNiArMjQxOCw5IEBAIGdmY19hc2NpaV9zdGF0 ZW1lbnQgKGdmY19zdGF0ZW1lbnQgc3QsIGJvb2wgc3RyaXBfc2VudGluZWwpCiAgICAgY2Fz ZSBTVF9PTVBfRE9fU0lNRDoKICAgICAgIHAgPSAiISRPTVAgRE8gU0lNRCI7CiAgICAgICBi cmVhazsKKyAgICBjYXNlIFNUX09NUF9FTkRfQUxMT0NBVE9SUzoKKyAgICAgIHAgPSAiISRP TVAgRU5EIEFMTE9DQVRPUlMiOworICAgICAgYnJlYWs7CiAgICAgY2FzZSBTVF9PTVBfRU5E X0FTU1VNRToKICAgICAgIHAgPSAiISRPTVAgRU5EIEFTU1VNRSI7CiAgICAgICBicmVhazsK ICAgICBjYXNlIFNUX05PTkU6CkBAIC01NTI1LDYgKzU1MzIsNDEgQEAgcGFyc2Vfb2FjY19s b29wIChnZmNfc3RhdGVtZW50IGFjY19zdCkKICAgcmV0dXJuIHN0OwogfQogCisvKiBQYXJz ZSBhbiBPcGVuTVAgYWxsb2NhdGUgYmxvY2ssIGluY2x1ZGluZyBvcHRpb25hbCBBTExPQ0FU T1JTCisgICBlbmQgZGlyZWN0aXZlLiAgKi8KKworc3RhdGljIGdmY19zdGF0ZW1lbnQKK3Bh cnNlX29wZW5tcF9hbGxvY2F0ZV9ibG9jayAoZ2ZjX3N0YXRlbWVudCBvbXBfc3QpCit7Cisg IGdmY19zdGF0ZW1lbnQgc3Q7CisgIGdmY19jb2RlICpjcCwgKm5wOworICBnZmNfc3RhdGVf ZGF0YSBzOworCisgIGFjY2VwdF9zdGF0ZW1lbnQgKG9tcF9zdCk7CisKKyAgY3AgPSBnZmNf c3RhdGVfc3RhY2stPnRhaWw7CisgIHB1c2hfc3RhdGUgKCZzLCBDT01QX09NUF9TVFJVQ1RV UkVEX0JMT0NLLCBOVUxMKTsKKyAgbnAgPSBuZXdfbGV2ZWwgKGNwKTsKKyAgbnAtPm9wID0g Y3AtPm9wOworICBucC0+YmxvY2sgPSBOVUxMOworCisgIHN0ID0gbmV4dF9zdGF0ZW1lbnQg KCk7CisgIGlmIChzdCAhPSBTVF9BTExPQ0FURSkKKyAgICB7CisgICAgICBnZmNfZXJyb3Jf bm93ICgiVW5leHBlY3RlZCAlcyBhdCAlQzsgZXhwZWN0ZWQgQUxMT0NBVEUgc3RhdGVtZW50 ICIKKwkJCSAiYWZ0ZXIgJXMiLCBnZmNfYXNjaWlfc3RhdGVtZW50IChzdCksCisJCQkgZ2Zj X2FzY2lpX3N0YXRlbWVudCAob21wX3N0KSk7CisgICAgfQorICBhY2NlcHRfc3RhdGVtZW50 IChzdCk7CisgIHBvcF9zdGF0ZSAoKTsKKyAgc3QgPSBuZXh0X3N0YXRlbWVudCAoKTsKKyAg aWYgKHN0ID09IFNUX09NUF9FTkRfQUxMT0NBVE9SUykKKyAgICB7CisgICAgICBhY2NlcHRf c3RhdGVtZW50IChzdCk7CisgICAgICBzdCA9IG5leHRfc3RhdGVtZW50ICgpOworICAgIH0K KyAgcmV0dXJuIHN0OworfQogCiAvKiBQYXJzZSB0aGUgc3RhdGVtZW50cyBvZiBhbiBPcGVu TVAgc3RydWN0dXJlZCBibG9jay4gICovCiAKQEAgLTU5MjMsNiArNTk2NSwxMCBAQCBwYXJz ZV9leGVjdXRhYmxlIChnZmNfc3RhdGVtZW50IHN0KQogCSAgcGFyc2Vfb2FjY19zdHJ1Y3R1 cmVkX2Jsb2NrIChzdCk7CiAJICBicmVhazsKIAorCWNhc2UgU1RfT01QX0FMTE9DQVRPUlM6 CisJICBzdCA9IHBhcnNlX29wZW5tcF9hbGxvY2F0ZV9ibG9jayAoc3QpOworCSAgY29udGlu dWU7CisKIAljYXNlIFNUX09NUF9BU1NVTUU6CiAJY2FzZSBTVF9PTVBfUEFSQUxMRUw6CiAJ Y2FzZSBTVF9PTVBfUEFSQUxMRUxfTUFTS0VEOgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v cmVzb2x2ZS5jYyBiL2djYy9mb3J0cmFuL3Jlc29sdmUuY2MKaW5kZXggMGY1ZjFkMjc3ZTQu LjBjYjRmZjc2ODUzIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9yZXNvbHZlLmNjCisrKyBi L2djYy9mb3J0cmFuL3Jlc29sdmUuY2MKQEAgLTEwOTA5LDYgKzEwOTA5LDcgQEAgZ2ZjX3Jl c29sdmVfYmxvY2tzIChnZmNfY29kZSAqYiwgZ2ZjX25hbWVzcGFjZSAqbnMpCiAJY2FzZSBF WEVDX09BQ0NfRU5URVJfREFUQToKIAljYXNlIEVYRUNfT0FDQ19FWElUX0RBVEE6CiAJY2Fz ZSBFWEVDX09BQ0NfUk9VVElORToKKwljYXNlIEVYRUNfT01QX0FMTE9DQVRPUlM6CiAJY2Fz ZSBFWEVDX09NUF9BU1NVTUU6CiAJY2FzZSBFWEVDX09NUF9DUklUSUNBTDoKIAljYXNlIEVY RUNfT01QX0RJU1RSSUJVVEU6CkBAIC0xMjM4NCw2ICsxMjM4NSw3IEBAIHN0YXJ0OgogCSAg Z2ZjX3Jlc29sdmVfb2FjY19kaXJlY3RpdmUgKGNvZGUsIG5zKTsKIAkgIGJyZWFrOwogCisJ Y2FzZSBFWEVDX09NUF9BTExPQ0FUT1JTOgogCWNhc2UgRVhFQ19PTVBfQVNTVU1FOgogCWNh c2UgRVhFQ19PTVBfQVRPTUlDOgogCWNhc2UgRVhFQ19PTVBfQkFSUklFUjoKZGlmZiAtLWdp dCBhL2djYy9mb3J0cmFuL3N0LmNjIGIvZ2NjL2ZvcnRyYW4vc3QuY2MKaW5kZXggOGI0Y2E1 ZWMyZWEuLmNhODUyNjI2NDMyIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9zdC5jYworKysg Yi9nY2MvZm9ydHJhbi9zdC5jYwpAQCAtMjE0LDYgKzIxNCw3IEBAIGdmY19mcmVlX3N0YXRl bWVudCAoZ2ZjX2NvZGUgKnApCiAgICAgY2FzZSBFWEVDX09BQ0NfRU5URVJfREFUQToKICAg ICBjYXNlIEVYRUNfT0FDQ19FWElUX0RBVEE6CiAgICAgY2FzZSBFWEVDX09BQ0NfUk9VVElO RToKKyAgICBjYXNlIEVYRUNfT01QX0FMTE9DQVRPUlM6CiAgICAgY2FzZSBFWEVDX09NUF9B U1NVTUU6CiAgICAgY2FzZSBFWEVDX09NUF9BVE9NSUM6CiAgICAgY2FzZSBFWEVDX09NUF9D QU5DRUw6CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MgYi9nY2Mv Zm9ydHJhbi90cmFucy1vcGVubXAuY2MKaW5kZXggN2E0YTMzOTBiNmQuLmY0ZmY4OTFhNGJl IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MKKysrIGIvZ2NjL2Zv cnRyYW4vdHJhbnMtb3Blbm1wLmNjCkBAIC03NTM2LDYgKzc1MzYsOSBAQCBnZmNfdHJhbnNf b21wX2RpcmVjdGl2ZSAoZ2ZjX2NvZGUgKmNvZGUpCiB7CiAgIHN3aXRjaCAoY29kZS0+b3Ap CiAgICAgeworICAgIGNhc2UgRVhFQ19PTVBfQUxMT0NBVE9SUzoKKyAgICAgIHNvcnJ5ICgi JTwhJE9NUCBBTExPQ0FUT1JTJT4gbm90IHlldCBzdXBwb3J0ZWQiKTsKKyAgICAgIHJldHVy biBOVUxMX1RSRUU7CiAgICAgY2FzZSBFWEVDX09NUF9BU1NVTUU6CiAgICAgICByZXR1cm4g Z2ZjX3RyYW5zX29tcF9hc3N1bWUgKGNvZGUpOwogICAgIGNhc2UgRVhFQ19PTVBfQVRPTUlD OgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMuY2MgYi9nY2MvZm9ydHJhbi90cmFu cy5jYwppbmRleCA4YTY0ODgyZWE5ZS4uMzRiMmE5NzZkYTUgMTAwNjQ0Ci0tLSBhL2djYy9m b3J0cmFuL3RyYW5zLmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLmNjCkBAIC0yMTc0LDYg KzIxNzQsNyBAQCB0cmFuc19jb2RlIChnZmNfY29kZSAqIGNvZGUsIHRyZWUgY29uZCkKIAkg IHJlcyA9IGdmY190cmFuc19kdF9lbmQgKGNvZGUpOwogCSAgYnJlYWs7CiAKKwljYXNlIEVY RUNfT01QX0FMTE9DQVRPUlM6CiAJY2FzZSBFWEVDX09NUF9BU1NVTUU6CiAJY2FzZSBFWEVD X09NUF9BVE9NSUM6CiAJY2FzZSBFWEVDX09NUF9CQVJSSUVSOgpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRvcnMtMS5mOTAgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdG9ycy0xLmY5MApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjM5ZjZkMjcyYzEKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdG9ycy0xLmY5MApA QCAtMCwwICsxLDI4IEBACitpbXBsaWNpdCBub25lCitpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6 OiBhLCBiCitpbnRlZ2VyIDo6IHEKK2ludGVnZXIgOjogYXJyKDIpCisKKyEkb21wIGFsbG9j YXRvcnMgYWxsb2NhdGUoYWxpZ24oNjQpOiBhKQorYmxvY2sgICEgeyBkZy1lcnJvciAiZXhw ZWN0ZWQgQUxMT0NBVEUgc3RhdGVtZW50IGFmdGVyICEuT01QIEFMTE9DQVRPUlMiIH0KK2Vu ZCBibG9jayAhIHsgZGctZXJyb3IgIkV4cGVjdGluZyBFTkQgUFJPR1JBTSBzdGF0ZW1lbnQi IH0KKworCishJG9tcCBhbGxvY2F0b3JzIGFsbG9jYXRlKGFsaWduKDY0KTogYSkKKyAgYWxs b2NhdGUoYSwgYikgICEgT0sKKyEkb21wIGVuZCBhbGxvY2F0b3JzCisKKyEkb21wIGFsbG9j YXRvcnMgYWxsb2NhdGUoYWxpZ24oMTI4KTogYikKKyAgYWxsb2NhdGUoYSwgYikgICEgT0sg KGFzc3VtaW5nIG5vdCBhbGxvY2F0ZWQpCisKKworISRvbXAgYWxsb2NhdG9ycyBhbGxvY2F0 ZShhbGlnbig2NCk6IGEpCisgIGFsbG9jYXRlKGEsIGIsIHN0YXQ9YXJyKSAgISB7IGRnLWVy cm9yICJTdGF0LXZhcmlhYmxlIGF0IC4xLiBtdXN0IGJlIGEgc2NhbGFyIElOVEVHRVIgdmFy aWFibGUiIH0KKyEkb21wIGVuZCBhbGxvY2F0b3JzCisKKworISRvbXAgYWxsb2NhdG9ycyBh bGxvY2F0ZShhbGlnbig2NCk6IGEpCisgIGFsbG9jYXRlKHEpICAhIHsgZGctZXJyb3IgImlz IG5laXRoZXIgYSBkYXRhIHBvaW50ZXIgbm9yIGFuIGFsbG9jYXRhYmxlIHZhcmlhYmxlIiB9 CishJG9tcCBlbmQgYWxsb2NhdG9ycyAhIHsgZGctZXJyb3IgIlVuZXhwZWN0ZWQgIS5PTVAg RU5EIEFMTE9DQVRPUlMiIH0KKworZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2dvbXAvYWxsb2NhdG9ycy0yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZ29tcC9hbGxvY2F0b3JzLTIuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi41ZGFiY2UwZjEwYQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0b3JzLTIuZjkwCkBAIC0wLDAgKzEsMjIg QEAKK2ltcGxpY2l0IG5vbmUKK2ludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGEsIGIKK2ludGVn ZXIgOjogcQoraW50ZWdlciA6OiBhcnIoMikKKworISRvbXAgYWxsb2NhdG9ycyBhbGxvY2F0 ZShhbGlnbig2NCk6IGEpCisgIGFsbG9jYXRlKGEsIGIpICAhIE9LCishJG9tcCBlbmQgYWxs b2NhdG9ycworCishJG9tcCBhbGxvY2F0b3JzIGFsbG9jYXRlKGFsaWduKDEyOCk6IGIpCisg IGFsbG9jYXRlKGEsIGIpICAhIE9LIChhc3N1bWluZyBub3QgYWxsb2NhdGVkKQorCisKKyEk b21wIGFsbG9jYXRvcnMgYWxsb2NhdGUoYWxpZ24oNjIuMCk6IGEpICEgeyBkZy1lcnJvciAi YSBzY2FsYXIgcG9zaXRpdmUgY29uc3RhbnQgaW50ZWdlciBhbGlnbm1lbnQgZXhwcmVzc2lv biIgfQorIGFsbG9jYXRlKGEpCisKKworISRvbXAgYWxsb2NhdG9ycyBhbGxvY2F0ZShhbGln big2NCk6IGEsIGIpICAhIHsgZGctZXJyb3IgIidiJyBzcGVjaWZpZWQgaW4gJ2FsbG9jYXRl JyBjbGF1c2UgYXQgXFwoMVxcKSBidXQgbm90IGluIHRoZSBhc3NvY2lhdGVkIEFMTE9DQVRF IHN0YXRlbWVudCIgfQorIGFsbG9jYXRlKGEpCishJG9tcCBlbmQgYWxsb2NhdG9ycworCitl bmQK --------------LHf6ZGWqs7ujtj09yh5zZvN1--