From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id 128DC3858D28; Fri, 10 Feb 2023 11:52:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 128DC3858D28 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.97,286,1669104000"; d="diff'?scan'208";a="96466091" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 10 Feb 2023 03:52:55 -0800 IronPort-SDR: hai8kh95RM+zrn0+4hqif6F8M/ackUmT20bvDTDhGXoDRhk4TliruxMH+vtbcomzKCnCLEvoBb vOc2PUtXRUkE38A7a9ST1gsG6fji9V76ZJbzLjIzr+dwwK3vlFEEypm5JVO0/wX3pjfaatW3Bz VsudQtZHymfdg/DFycHAyHGsd5NkL3kYnd3g22VeOJJzQT+rKK7Yl8rLbfrng9MjVXUbALOlAo /mMGcG5HoAYe7nV5GC85agDS5Y/9ilqvn4SJaVvqliUre7cMrcYCRFRp+qww8q5qxLocRg73XK Kxc= Content-Type: multipart/mixed; boundary="------------QKZSC2QSXY4F8naoZSNQt5dc" Message-ID: Date: Fri, 10 Feb 2023 12:52:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.2 Subject: [Patch][v2] OpenMP/Fortran: Fix loop-iter var privatization with !$OMP LOOP [PR108512] Content-Language: en-US To: Jakub Jelinek CC: gcc-patches , fortran References: From: Tobias Burnus In-Reply-To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) 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: --------------QKZSC2QSXY4F8naoZSNQt5dc Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Updated version attached. On 31.01.23 12:20, Jakub Jelinek via Gcc-patches wrote: > On Tue, Jan 24, 2023 at 04:24:07PM +0100, Tobias Burnus wrote: >> + if (code->op =3D=3D EXEC_OMP_LOOP) >> + ; /* Already rejected in resolve_omp_clauses. */ > I don't understand why is this needed. Sure, the vast majority of > constructs don't allow reduction(inscan, ...), do we need to list them al= l? I think using the same !=3D condition as in resolve_omp_clauses would be better. The messages inside this procedure come earlier than the ones in resolve_omp_clauses. Thus, they cannot be silenced there. However, while I did try this, preventing some odd error messages, I have now removed it again. =E2=80=93 It is never quite clear when it is bet= ter to have multiple error messages and when suppressing some is better. * * * For more on 'inscan' and combined constructs (mainly with target, an OpenMP 5.1 feature), see the newly filed https://gcc.gnu.org/PR108749 >> diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc >> index 94213cd3cd4..bd2a749776d 100644 >> --- a/gcc/fortran/resolve.cc >> +++ b/gcc/fortran/resolve.cc >> @@ -11950,6 +11950,7 @@ gfc_resolve_code (gfc_code *code, gfc_namespace = *ns) >> case EXEC_OMP_DISTRIBUTE_SIMD: >> case EXEC_OMP_DO: >> case EXEC_OMP_DO_SIMD: >> + case EXEC_OMP_LOOP: >> case EXEC_OMP_SIMD: >> case EXEC_OMP_TARGET_SIMD: >> gfc_resolve_omp_do_blocks (code, ns); > I'm afraid this is needed but insufficient. > I think > case EXEC_OMP_MASKED_TASKLOOP: > case EXEC_OMP_MASKED_TASKLOOP_SIMD: > case EXEC_OMP_MASTER_TASKLOOP: > case EXEC_OMP_MASTER_TASKLOOP_SIMD: > case EXEC_OMP_PARALLEL_LOOP: > case EXEC_OMP_TARGET_PARALLEL_LOOP: > case EXEC_OMP_TARGET_TEAMS_LOOP: > case EXEC_OMP_TARGET_SIMD: > case EXEC_OMP_TEAMS_LOOP: > should be in the list above (of course alphabetically sorted in between t= he > others) > gfc_resolve_omp_parallel_blocks (code, ns); I think 'TARGET_SIMD' shouldn't be resolved though parallel blocks but can call directly call gfc_resolve_omp_do_blocks (as currently/previously implemented). The masked version were already handled inside gfc_resolve_omp_parallel_blocks but missing in gfc_resolve_code, while the 'loop' ones had to be added to both. (I did not extend the testcase, but I updated two to add additional dg-error to the same line.) Thanks for the comments. Any further suggestions? 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 --------------QKZSC2QSXY4F8naoZSNQt5dc Content-Type: text/x-patch; charset="UTF-8"; name="fix-omp-parallel-loop-v2.diff" Content-Disposition: attachment; filename="fix-omp-parallel-loop-v2.diff" Content-Transfer-Encoding: base64 T3Blbk1QL0ZvcnRyYW46IEZpeCBsb29wLWl0ZXIgdmFyIHByaXZhdGl6YXRpb24gd2l0aCAh JE9NUCBMT09QIFtQUjEwODUxMl0KCkZvciAncGFyYWxsZWwnLCBsb29wLWl0ZXJhdGlvbiB2 YXJpYWJsZXMgYXJlIG1hcmtlZCBhcmUgbWFya2VkIGFzICdwcml2YXRlJywKdW5sZXNzIHRo ZXkgZWl0aGVyIGFwcGVhciBpbiBhbiBvbXAgZG8vc2ltZCBsb29wIG9yIGFuIGRhdGEtc2hh cmluZyBjbGF1c2UKYWxyZWFkeSBleGlzdHMgZm9yIHRob3NlIG9uICdwYXJhbGxlbCcuICdv bXAgbG9vcCcgd2Fzbid0IGhhbmRsZWQsIGxlYWRpbmcKdG8gKHBvdGVudGlhbGx5KSBtdWx0 aXBsZSBkYXRhLXNoYXJpbmcgY2xhdXNlcyBpbiBnZmNfcmVzb2x2ZV9kb19pdGVyYXRvcgph cyBvbXBfY3VycmVudF9jdHggcG9pbnRlZCB0byB0aGUgJ3BhcmFsbGVsJyBkaXJlY3RpdmUs IGlnbm9yaW5nIHRoZQppbi1iZXR3ZW4gJ2xvb3AnIGRpcmVjdGl2ZS4KClRoZSBsYXR0ZXIg bGVhZCB0byBhIGJvZ3VzIGRpYWdub3N0aWMgLSBvciByYXRoZXIgYW4gSUNFIGFzIHRoZSBz b3VyY2UKbG9jYXRpb24gdmFyIGNvbnRhaW5lZCBvbmx5ICdcMCcuCgpBZGRpdGlvbmFsbHks IHNldmVyYWwgJ2Nhc2UgRVhFQ19PTVAuLi5MT09QJyBoYXZlIGJlZW4gYWRkZWQgdG8gY2Fs bCB0aGUgCnJpZ2h0IHJlc29sdXRpb24gZnVuY3Rpb24gYW5kIGxpa2V3aXNlIGZvciAne21h c2tlZCxtYXN0ZXJ9IHRhc2tsb29wJy4KCmdjYy9mb3J0cmFuL0NoYW5nZUxvZzoKCglQUiBm b3J0cmFuLzEwODUxMgoJKiBvcGVubXAuY2MgKGdmY19yZXNvbHZlX29tcF9wYXJhbGxlbF9i bG9ja3MpOiBIYW5kbGUgY29tYmluZWQgJ2xvb3AnCglkaXJlY3RpdmVzLgoJKGdmY19yZXNv bHZlX2RvX2l0ZXJhdG9yKTogU2V0IGEgc291cmNlIGxvY2F0aW9uIGZvciBhZGRlZAoJJ3By aXZhdGUnLWNsYXVzZSBhcmd1bWVudHMuCgkqIHJlc29sdmUuY2MgKGdmY19yZXNvbHZlX2Nv ZGUpOiBDYWxsIGdmY19yZXNvbHZlX29tcF9kb19ibG9ja3MKCWFsc28gZm9yIEVYRUNfT01Q X0xPT1AgYW5kIGdmY19yZXNvbHZlX29tcF9wYXJhbGxlbF9ibG9ja3MgZm9yCgljb21iaW5l ZCBkaXJlY3RpdmVzIHdpdGggbG9vcCArICd7bWFza2VkLG1hc3Rlcn0gdGFza2xvb3AgKHNp bWQpJy4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCVBSIGZvcnRyYW4vMTA4NTEyCgkq IGdmb3J0cmFuLmRnL2dvbXAvbG9vcC01LmY5MDogTmV3IHRlc3QuCgkqIGdmb3J0cmFuLmRn L2dvbXAvbG9vcC0yLmY5MDogVXBkYXRlIGRnLWVycm9yLgoJKiBnZm9ydHJhbi5kZy9nb21w L3Rhc2tsb29wLTIuZjkwOiBVcGRhdGUgZGctZXJyb3IuCgogZ2NjL2ZvcnRyYW4vb3Blbm1w LmNjICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrLS0KIGdjYy9mb3J0cmFuL3Jl c29sdmUuY2MgICAgICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKwogZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9nb21wL2xvb3AtMi5mOTAgICAgIHwgIDUgKysKIGdjYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZ29tcC9sb29wLTUuZjkwICAgICB8IDg0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3Rhc2tsb29w LTIuZjkwIHwgIDIgKwogNSBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9vcGVubXAuY2MgYi9nY2Mv Zm9ydHJhbi9vcGVubXAuY2MKaW5kZXggMTg5N2UxZGJjNzEuLmFiY2ExNDZkNzhlIDEwMDY0 NAotLS0gYS9nY2MvZm9ydHJhbi9vcGVubXAuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vb3Blbm1w LmNjCkBAIC05MTI1LDI4ICs5MTI1LDMyIEBAIGdmY19yZXNvbHZlX29tcF9wYXJhbGxlbF9i bG9ja3MgKGdmY19jb2RlICpjb2RlLCBnZmNfbmFtZXNwYWNlICpucykKICAgICB7CiAgICAg Y2FzZSBFWEVDX09NUF9ESVNUUklCVVRFX1BBUkFMTEVMX0RPOgogICAgIGNhc2UgRVhFQ19P TVBfRElTVFJJQlVURV9QQVJBTExFTF9ET19TSU1EOgorICAgIGNhc2UgRVhFQ19PTVBfTUFT S0VEX1RBU0tMT09QOgorICAgIGNhc2UgRVhFQ19PTVBfTUFTS0VEX1RBU0tMT09QX1NJTUQ6 CisgICAgY2FzZSBFWEVDX09NUF9NQVNURVJfVEFTS0xPT1A6CisgICAgY2FzZSBFWEVDX09N UF9NQVNURVJfVEFTS0xPT1BfU0lNRDoKICAgICBjYXNlIEVYRUNfT01QX1BBUkFMTEVMX0RP OgogICAgIGNhc2UgRVhFQ19PTVBfUEFSQUxMRUxfRE9fU0lNRDoKKyAgICBjYXNlIEVYRUNf T01QX1BBUkFMTEVMX0xPT1A6CiAgICAgY2FzZSBFWEVDX09NUF9QQVJBTExFTF9NQVNLRURf VEFTS0xPT1A6CiAgICAgY2FzZSBFWEVDX09NUF9QQVJBTExFTF9NQVNLRURfVEFTS0xPT1Bf U0lNRDoKICAgICBjYXNlIEVYRUNfT01QX1BBUkFMTEVMX01BU1RFUl9UQVNLTE9PUDoKICAg ICBjYXNlIEVYRUNfT01QX1BBUkFMTEVMX01BU1RFUl9UQVNLTE9PUF9TSU1EOgotICAgIGNh c2UgRVhFQ19PTVBfTUFTS0VEX1RBU0tMT09QOgotICAgIGNhc2UgRVhFQ19PTVBfTUFTS0VE X1RBU0tMT09QX1NJTUQ6Ci0gICAgY2FzZSBFWEVDX09NUF9NQVNURVJfVEFTS0xPT1A6Ci0g ICAgY2FzZSBFWEVDX09NUF9NQVNURVJfVEFTS0xPT1BfU0lNRDoKICAgICBjYXNlIEVYRUNf T01QX1RBUkdFVF9QQVJBTExFTF9ETzoKICAgICBjYXNlIEVYRUNfT01QX1RBUkdFVF9QQVJB TExFTF9ET19TSU1EOgorICAgIGNhc2UgRVhFQ19PTVBfVEFSR0VUX1BBUkFMTEVMX0xPT1A6 CiAgICAgY2FzZSBFWEVDX09NUF9UQVJHRVRfVEVBTVNfRElTVFJJQlVURToKICAgICBjYXNl IEVYRUNfT01QX1RBUkdFVF9URUFNU19ESVNUUklCVVRFX1BBUkFMTEVMX0RPOgogICAgIGNh c2UgRVhFQ19PTVBfVEFSR0VUX1RFQU1TX0RJU1RSSUJVVEVfUEFSQUxMRUxfRE9fU0lNRDoK ICAgICBjYXNlIEVYRUNfT01QX1RBUkdFVF9URUFNU19ESVNUUklCVVRFX1NJTUQ6CisgICAg Y2FzZSBFWEVDX09NUF9UQVJHRVRfVEVBTVNfTE9PUDoKICAgICBjYXNlIEVYRUNfT01QX1RB U0tMT09QOgogICAgIGNhc2UgRVhFQ19PTVBfVEFTS0xPT1BfU0lNRDoKICAgICBjYXNlIEVY RUNfT01QX1RFQU1TX0RJU1RSSUJVVEU6CiAgICAgY2FzZSBFWEVDX09NUF9URUFNU19ESVNU UklCVVRFX1BBUkFMTEVMX0RPOgogICAgIGNhc2UgRVhFQ19PTVBfVEVBTVNfRElTVFJJQlVU RV9QQVJBTExFTF9ET19TSU1EOgogICAgIGNhc2UgRVhFQ19PTVBfVEVBTVNfRElTVFJJQlVU RV9TSU1EOgorICAgIGNhc2UgRVhFQ19PTVBfVEVBTVNfTE9PUDoKICAgICAgIGdmY19yZXNv bHZlX29tcF9kb19ibG9ja3MgKGNvZGUsIG5zKTsKICAgICAgIGJyZWFrOwogICAgIGRlZmF1 bHQ6CkBAIC05MjI1LDYgKzkyMjksNyBAQCBnZmNfcmVzb2x2ZV9kb19pdGVyYXRvciAoZ2Zj X2NvZGUgKmNvZGUsIGdmY19zeW1ib2wgKnN5bSwgYm9vbCBhZGRfY2xhdXNlKQogCiAgICAg ICBwID0gZ2ZjX2dldF9vbXBfbmFtZWxpc3QgKCk7CiAgICAgICBwLT5zeW0gPSBzeW07Cisg ICAgICBwLT53aGVyZSA9IG9tcF9jdXJyZW50X2N0eC0+Y29kZS0+bG9jOwogICAgICAgcC0+ bmV4dCA9IG9tcF9jbGF1c2VzLT5saXN0c1tPTVBfTElTVF9QUklWQVRFXTsKICAgICAgIG9t cF9jbGF1c2VzLT5saXN0c1tPTVBfTElTVF9QUklWQVRFXSA9IHA7CiAgICAgfQpkaWZmIC0t Z2l0IGEvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jYyBiL2djYy9mb3J0cmFuL3Jlc29sdmUuY2MK aW5kZXggNTQ5OTE2YzJiNTMuLjk2YzM0MDY1NjkxIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJh bi9yZXNvbHZlLmNjCisrKyBiL2djYy9mb3J0cmFuL3Jlc29sdmUuY2MKQEAgLTExOTIzLDkg KzExOTIzLDE0IEBAIGdmY19yZXNvbHZlX2NvZGUgKGdmY19jb2RlICpjb2RlLCBnZmNfbmFt ZXNwYWNlICpucykKIAkgICAgICBicmVhazsKIAkgICAgY2FzZSBFWEVDX09NUF9ESVNUUklC VVRFX1BBUkFMTEVMX0RPOgogCSAgICBjYXNlIEVYRUNfT01QX0RJU1RSSUJVVEVfUEFSQUxM RUxfRE9fU0lNRDoKKwkgICAgY2FzZSBFWEVDX09NUF9NQVNLRURfVEFTS0xPT1A6CisJICAg IGNhc2UgRVhFQ19PTVBfTUFTS0VEX1RBU0tMT09QX1NJTUQ6CisJICAgIGNhc2UgRVhFQ19P TVBfTUFTVEVSX1RBU0tMT09QOgorCSAgICBjYXNlIEVYRUNfT01QX01BU1RFUl9UQVNLTE9P UF9TSU1EOgogCSAgICBjYXNlIEVYRUNfT01QX1BBUkFMTEVMOgogCSAgICBjYXNlIEVYRUNf T01QX1BBUkFMTEVMX0RPOgogCSAgICBjYXNlIEVYRUNfT01QX1BBUkFMTEVMX0RPX1NJTUQ6 CisJICAgIGNhc2UgRVhFQ19PTVBfUEFSQUxMRUxfTE9PUDoKIAkgICAgY2FzZSBFWEVDX09N UF9QQVJBTExFTF9NQVNLRUQ6CiAJICAgIGNhc2UgRVhFQ19PTVBfUEFSQUxMRUxfTUFTS0VE X1RBU0tMT09QOgogCSAgICBjYXNlIEVYRUNfT01QX1BBUkFMTEVMX01BU0tFRF9UQVNLTE9P UF9TSU1EOgpAQCAtMTE5MzYsMTEgKzExOTQxLDEzIEBAIGdmY19yZXNvbHZlX2NvZGUgKGdm Y19jb2RlICpjb2RlLCBnZmNfbmFtZXNwYWNlICpucykKIAkgICAgY2FzZSBFWEVDX09NUF9U QVJHRVRfUEFSQUxMRUw6CiAJICAgIGNhc2UgRVhFQ19PTVBfVEFSR0VUX1BBUkFMTEVMX0RP OgogCSAgICBjYXNlIEVYRUNfT01QX1RBUkdFVF9QQVJBTExFTF9ET19TSU1EOgorCSAgICBj YXNlIEVYRUNfT01QX1RBUkdFVF9QQVJBTExFTF9MT09QOgogCSAgICBjYXNlIEVYRUNfT01Q X1RBUkdFVF9URUFNUzoKIAkgICAgY2FzZSBFWEVDX09NUF9UQVJHRVRfVEVBTVNfRElTVFJJ QlVURToKIAkgICAgY2FzZSBFWEVDX09NUF9UQVJHRVRfVEVBTVNfRElTVFJJQlVURV9QQVJB TExFTF9ETzoKIAkgICAgY2FzZSBFWEVDX09NUF9UQVJHRVRfVEVBTVNfRElTVFJJQlVURV9Q QVJBTExFTF9ET19TSU1EOgogCSAgICBjYXNlIEVYRUNfT01QX1RBUkdFVF9URUFNU19ESVNU UklCVVRFX1NJTUQ6CisJICAgIGNhc2UgRVhFQ19PTVBfVEFSR0VUX1RFQU1TX0xPT1A6CiAJ ICAgIGNhc2UgRVhFQ19PTVBfVEFTSzoKIAkgICAgY2FzZSBFWEVDX09NUF9UQVNLTE9PUDoK IAkgICAgY2FzZSBFWEVDX09NUF9UQVNLTE9PUF9TSU1EOgpAQCAtMTE5NDksNiArMTE5NTYs NyBAQCBnZmNfcmVzb2x2ZV9jb2RlIChnZmNfY29kZSAqY29kZSwgZ2ZjX25hbWVzcGFjZSAq bnMpCiAJICAgIGNhc2UgRVhFQ19PTVBfVEVBTVNfRElTVFJJQlVURV9QQVJBTExFTF9ETzoK IAkgICAgY2FzZSBFWEVDX09NUF9URUFNU19ESVNUUklCVVRFX1BBUkFMTEVMX0RPX1NJTUQ6 CiAJICAgIGNhc2UgRVhFQ19PTVBfVEVBTVNfRElTVFJJQlVURV9TSU1EOgorCSAgICBjYXNl IEVYRUNfT01QX1RFQU1TX0xPT1A6CiAJICAgICAgb21wX3dvcmtzaGFyZV9zYXZlID0gb21w X3dvcmtzaGFyZV9mbGFnOwogCSAgICAgIG9tcF93b3Jrc2hhcmVfZmxhZyA9IDA7CiAJICAg ICAgZ2ZjX3Jlc29sdmVfb21wX3BhcmFsbGVsX2Jsb2NrcyAoY29kZSwgbnMpOwpAQCAtMTE5 NTcsNiArMTE5NjUsNyBAQCBnZmNfcmVzb2x2ZV9jb2RlIChnZmNfY29kZSAqY29kZSwgZ2Zj X25hbWVzcGFjZSAqbnMpCiAJICAgIGNhc2UgRVhFQ19PTVBfRElTVFJJQlVURV9TSU1EOgog CSAgICBjYXNlIEVYRUNfT01QX0RPOgogCSAgICBjYXNlIEVYRUNfT01QX0RPX1NJTUQ6CisJ ICAgIGNhc2UgRVhFQ19PTVBfTE9PUDoKIAkgICAgY2FzZSBFWEVDX09NUF9TSU1EOgogCSAg ICBjYXNlIEVYRUNfT01QX1RBUkdFVF9TSU1EOgogCSAgICAgIGdmY19yZXNvbHZlX29tcF9k b19ibG9ja3MgKGNvZGUsIG5zKTsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZ29tcC9sb29wLTIuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21w L2xvb3AtMi5mOTAKaW5kZXggNDk2MjY4M2YyYjAuLjJkODNlM2E3NTA3IDEwMDY0NAotLS0g YS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbG9vcC0yLmY5MAorKysgYi9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbG9vcC0yLmY5MApAQCAtMTgsMTggKzE4LDIz IEBAIGRvIGkgPSAxLCA2NAogZW5kIGRvCiAKICEkb21wIGxvb3AgcmVkdWN0aW9uKGluc2Nh biwgKzogcikgICEgeyBkZy1lcnJvciAiJ2luc2NhbicgUkVEVUNUSU9OIGNsYXVzZSBvbiBj b25zdHJ1Y3Qgb3RoZXIgdGhhbiBETywgU0lNRCwgRE8gU0lNRCwgUEFSQUxMRUwgRE8sIFBB UkFMTEVMIERPIFNJTUQiIH0KKyAgISB7IGRnLWVycm9yICJXaXRoIElOU0NBTiBhdCAuMS4s IGV4cGVjdGVkIGxvb3AgYm9keSB3aXRoIC4uT01QIFNDQU4gYmV0d2VlbiB0d28gc3RydWN0 dXJlZC1ibG9jay1zZXF1ZW5jZXMiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0KIGRvIGkg PSAxLCA2NAogZW5kIGRvCiAhJG9tcCB0ZWFtcyBsb29wIHJlZHVjdGlvbihpbnNjYW4sICs6 IHIpICAhIHsgZGctZXJyb3IgIidpbnNjYW4nIFJFRFVDVElPTiBjbGF1c2Ugb24gY29uc3Ry dWN0IG90aGVyIHRoYW4gRE8sIFNJTUQsIERPIFNJTUQsIFBBUkFMTEVMIERPLCBQQVJBTExF TCBETyBTSU1EIiB9CisgICEgeyBkZy1lcnJvciAiV2l0aCBJTlNDQU4gYXQgLjEuLCBleHBl Y3RlZCBsb29wIGJvZHkgd2l0aCAuLk9NUCBTQ0FOIGJldHdlZW4gdHdvIHN0cnVjdHVyZWQt YmxvY2stc2VxdWVuY2VzIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9CiBkbyBpID0gMSwg NjQKIGVuZCBkbwogISRvbXAgcGFyYWxsZWwgbG9vcCByZWR1Y3Rpb24oaW5zY2FuLCArOiBy KSAhIHsgZGctZXJyb3IgIidpbnNjYW4nIFJFRFVDVElPTiBjbGF1c2Ugb24gY29uc3RydWN0 IG90aGVyIHRoYW4gRE8sIFNJTUQsIERPIFNJTUQsIFBBUkFMTEVMIERPLCBQQVJBTExFTCBE TyBTSU1EIiB9CisgICEgeyBkZy1lcnJvciAiV2l0aCBJTlNDQU4gYXQgLjEuLCBleHBlY3Rl ZCBsb29wIGJvZHkgd2l0aCAuLk9NUCBTQ0FOIGJldHdlZW4gdHdvIHN0cnVjdHVyZWQtYmxv Y2stc2VxdWVuY2VzIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9CiBkbyBpID0gMSwgNjQK IGVuZCBkbwogISRvbXAgdGFyZ2V0IHRlYW1zIGxvb3AgcmVkdWN0aW9uKGluc2NhbiwgKzog cikgICEgeyBkZy1lcnJvciAiJ2luc2NhbicgUkVEVUNUSU9OIGNsYXVzZSBvbiBjb25zdHJ1 Y3Qgb3RoZXIgdGhhbiBETywgU0lNRCwgRE8gU0lNRCwgUEFSQUxMRUwgRE8sIFBBUkFMTEVM IERPIFNJTUQiIH0KKyAgISB7IGRnLWVycm9yICJXaXRoIElOU0NBTiBhdCAuMS4sIGV4cGVj dGVkIGxvb3AgYm9keSB3aXRoIC4uT01QIFNDQU4gYmV0d2VlbiB0d28gc3RydWN0dXJlZC1i bG9jay1zZXF1ZW5jZXMiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0KIGRvIGkgPSAxLCA2 NAogZW5kIGRvCiAhJG9tcCB0YXJnZXQgcGFyYWxsZWwgbG9vcCByZWR1Y3Rpb24oaW5zY2Fu LCArOiByKSAgISB7IGRnLWVycm9yICInaW5zY2FuJyBSRURVQ1RJT04gY2xhdXNlIG9uIGNv bnN0cnVjdCBvdGhlciB0aGFuIERPLCBTSU1ELCBETyBTSU1ELCBQQVJBTExFTCBETywgUEFS QUxMRUwgRE8gU0lNRCIgfQorICAhIHsgZGctZXJyb3IgIldpdGggSU5TQ0FOIGF0IC4xLiwg ZXhwZWN0ZWQgbG9vcCBib2R5IHdpdGggLi5PTVAgU0NBTiBiZXR3ZWVuIHR3byBzdHJ1Y3R1 cmVkLWJsb2NrLXNlcXVlbmNlcyIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfQogZG8gaSA9 IDEsIDY0CiBlbmQgZG8KIApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb21wL2xvb3AtNS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbG9v cC01LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTk0OGU3 ODI2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dv bXAvbG9vcC01LmY5MApAQCAtMCwwICsxLDg0IEBACishIHsgZGctYWRkaXRpb25hbC1vcHRp b25zICItZmR1bXAtdHJlZS1vcmlnaW5hbCIgfQorIQorISBQUiBmb3J0cmFuLzEwODUxMgor CishIFRoZSBwcm9ibGVtIHdhcyB0aGF0IHRoZSBjb250ZXh0IHdhc24ndCByZXNldCBmb3Ig dGhlICdMT09QJworISBzdWNoIHRoYXQgdGhlIGNsYXVzZXMgb2YgdGhlIGxvb3BzIHdlcmVu J3Qgc2VlbiB3aGVuIGFkZGluZworISBQUklWQVRFIGNsYXVzZXMuCishCishIEluIHRoZSBm b2xsb3dpbmcsIG9ubHkgdGhlIGxvb3AgdmFyaWFibGUgb2YgdGhlIG5vbi1PcGVuTVAgbG9v cAorISBpbiAnc3Vicm91dGluZSBmb3VyJyBzaG91bGQgZ2V0IGEgZnJvbnQtZW5kIGFkZGRl ZCBQUklWQVRFIGNsYXVzZQorCitpbXBsaWNpdCBub25lCitpbnRlZ2VyIDo6IHgsIGEoMTAp LCBiKDEwKSwgbgorICAgIG4gPSAxMAorICAgIGEgPSAtNDIKKyAgICBiID0gWygyKngsIHg9 MSwxMCldCisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21h IG9tcCB0YXJnZXQgbWFwXFwodG9mcm9tOmFcXCkgbWFwXFwodG9mcm9tOmJcXCkgbWFwXFwo dG9mcm9tOnhcXClcW1xyXG5cXSIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsXFtcclxuXF0iIDIg Im9yaWdpbmFsIiB9IH0KKyEgIF4tIHNob3dzIHVwIHR3aWNlOyBjaGVja2VkIG9ubHkgaGVy ZS4KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBs b29wIGxhc3Rwcml2YXRlXFwoeFxcKVxbXHJcblxdIiAxICJvcmlnaW5hbCIgfSB9CisKKyAg ICAhJG9tcCB0YXJnZXQgcGFyYWxsZWwgbWFwKHRvZnJvbTogYSwgYiwgeCkKKyAgICAhJG9t cCBsb29wIGxhc3Rwcml2YXRlKHgpCisgICAgRE8geCA9IDEsIG4KKyAgICAgIGEoeCkgPSBh KHgpICsgYih4KQorICAgIEVORCBETworICAgICEkb21wIGVuZCBsb29wCisgICAgISRvbXAg ZW5kIHRhcmdldCBwYXJhbGxlbAorICAgIGlmICh4IC89IDExKSBlcnJvciBzdG9wCisgICAg aWYgKGFueSAoYSAvPSBbKDIqeCAtIDQyLCB4PTEsMTApXSkpIGVycm9yIHN0b3AKKyAgICBj YWxsIHR3bygpCisgICAgY2FsbCB0aHJlZSgpCisgICAgY2FsbCBmb3VyKCkKK2VuZAorCitz dWJyb3V0aW5lIHR3bworICBpbXBsaWNpdCBub25lCisgIGludGVnZXIgOjogaWksIG1tLCBh cnIoMTApCisgIG1tID0gMTAKKyAgYXJyID0gMAorCishIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcFxcKHRvZnJvbTphcnJcXCkg bWFwXFwodG9mcm9tOmlpXFwpXFtcclxuXF0iIDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBwYXJhbGxlbCBzaGFy ZWRcXChpaVxcKVxbXHJcblxdIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgbG9vcCBsYXN0cHJpdmF0ZVxcKGlp XFwpXFtcclxuXF0iIDEgIm9yaWdpbmFsIiB9IH0KKworICAhJG9tcCB0YXJnZXQgcGFyYWxs ZWwgbG9vcCBtYXAodG9mcm9tOiBhcnIpIGxhc3Rwcml2YXRlKGlpKQorICAgIERPIGlpID0g MSwgbW0KKyAgICAgIGFycihpaSkgPSBhcnIoaWkpICsgaWkKKyAgICBFTkQgRE8KK2VuZAor CitzdWJyb3V0aW5lIHRocmVlCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciA6OiBraywg enosIHZhcigxMCkKKyAgenogPSAxMAorICB2YXIgPSAwCisKKyEgeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgbWFwXFwodG9mcm9tOnZh clxcKVxbXHJcblxdIiAxICJvcmlnaW5hbCIgfSB9CishICIjcHJhZ21hIG9tcCBwYXJhbGxl bFxbXHJcblxdIiAtIHNob3dzIHVwIHR3aWNlLCBkdW1wIGNoZWNrZWQgYWJvdmUKKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBsb29wXFtcclxu XF0iIDEgIm9yaWdpbmFsIiB9IH0KKworICAhJG9tcCB0YXJnZXQgcGFyYWxsZWwgbG9vcCBt YXAodG9mcm9tOiB2YXIpCisgICAgRE8ga2sgPSAxLCB6egorICAgICAgdmFyKGtrKSA9IHZh cihraykgKyBraworICAgIEVORCBETworZW5kCisKK3N1YnJvdXRpbmUgZm91cgorICBpbXBs aWNpdCBub25lCisgIGludGVnZXIgOjogamosIHFxLCBkaXN0KDEwKQorICBxcSA9IDEwCisg IGRpc3QgPSAwCisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJh Z21hIG9tcCB0YXJnZXQgbWFwXFwodG9mcm9tOmRpc3RcXClcW1xyXG5cXSIgMSAib3JpZ2lu YWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEg b21wIHBhcmFsbGVsIHByaXZhdGVcXChqalxcKVxbXHJcblxdIiAxICJvcmlnaW5hbCIgfSB9 CisKKyAgISRvbXAgdGFyZ2V0IHBhcmFsbGVsIG1hcCh0b2Zyb206IGRpc3QpCisgICAgISAq bm8qICchJG9tcCBkby9sb29wL3NpbWQnCisgICAgRE8gamogPSAxLCBxcQorICAgICAgZGlz dChxcSkgPSBkaXN0KHFxKSArIHFxCisgICAgRU5EIERPCisgICEkb21wIGVuZCB0YXJnZXQg cGFyYWxsZWwKK2VuZApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9n b21wL3Rhc2tsb29wLTIuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3Rh c2tsb29wLTIuZjkwCmluZGV4IDIxNDI3NjIzNTg0Li40MWI0ZDZkMjE5MSAxMDA2NDQKLS0t IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3Rhc2tsb29wLTIuZjkwCisrKyBi L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXNrbG9vcC0yLmY5MApAQCAtMjcs OSArMjcsMTEgQEAgZW5kIGRvCiBkbyBpID0gMSwgNjQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAhIHsgZGctZXJyb3IgIk9NUCBTQ0FOIGJldHdlZW4gdHdvIHN0cnVjdHVy ZWQtYmxvY2stc2VxdWVuY2VzIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9CiBlbmQgZG8K ICEkb21wIG1hc3RlciB0YXNrbG9vcCByZWR1Y3Rpb24oaW5zY2FuLCArOiByKSAhIHsgZGct ZXJyb3IgIidpbnNjYW4nIFJFRFVDVElPTiBjbGF1c2Ugb24gY29uc3RydWN0IG90aGVyIHRo YW4gRE8sIFNJTUQsIERPIFNJTUQsIFBBUkFMTEVMIERPLCBQQVJBTExFTCBETyBTSU1EIiB9 CisgICEgeyBkZy1lcnJvciAiV2l0aCBJTlNDQU4gYXQgLjEuLCBleHBlY3RlZCBsb29wIGJv ZHkgd2l0aCAuLk9NUCBTQ0FOIGJldHdlZW4gdHdvIHN0cnVjdHVyZWQtYmxvY2stc2VxdWVu Y2VzIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9CiBkbyBpID0gMSwgNjQKIGVuZCBkbwog ISRvbXAgbWFzdGVyIHRhc2tsb29wIHNpbWQgcmVkdWN0aW9uKGluc2NhbiwgKzogcikgICEg eyBkZy1lcnJvciAiJ2luc2NhbicgUkVEVUNUSU9OIGNsYXVzZSBvbiBjb25zdHJ1Y3Qgb3Ro ZXIgdGhhbiBETywgU0lNRCwgRE8gU0lNRCwgUEFSQUxMRUwgRE8sIFBBUkFMTEVMIERPIFNJ TUQiIH0KKyAgISB7IGRnLWVycm9yICJXaXRoIElOU0NBTiBhdCAuMS4sIGV4cGVjdGVkIGxv b3AgYm9keSB3aXRoIC4uT01QIFNDQU4gYmV0d2VlbiB0d28gc3RydWN0dXJlZC1ibG9jay1z ZXF1ZW5jZXMiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0KIGRvIGkgPSAxLCA2NAogZW5k IGRvCiAhJG9tcCBwYXJhbGxlbCBtYXN0ZXIgdGFza2xvb3AgcmVkdWN0aW9uKGluc2Nhbiwg KzogcikgICEgeyBkZy1lcnJvciAiJ2luc2NhbicgUkVEVUNUSU9OIGNsYXVzZSBvbiBjb25z dHJ1Y3Qgb3RoZXIgdGhhbiBETywgU0lNRCwgRE8gU0lNRCwgUEFSQUxMRUwgRE8sIFBBUkFM TEVMIERPIFNJTUQiIH0K --------------QKZSC2QSXY4F8naoZSNQt5dc--