From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by sourceware.org (Postfix) with ESMTPS id 4F9303858C50; Tue, 28 Mar 2023 21:05:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4F9303858C50 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-x632.google.com with SMTP id iw3so12944680plb.6; Tue, 28 Mar 2023 14:05:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680037508; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=0rGcKaV57MzEGDKkxdkSyKPrgiVF6h9Rm+dt4u4SH6A=; b=GyDzhW+S/b/dLi+hT5rRpCV4p82xVVbO85FQLIoFQ6t0z5fAURZczbOUGXHffaOXmv S7CkHquu1zTSZ0KurM1xLfK1JjEl2Vow/Jub9OLCBC1TW2TjxqEFB30hBXhCxhHhDRJb Za4tYB7VIcl7LUI36/nRgkrwz2dIEFib3XhXm2xZl89VR3d/v0cZ3oPN58DMhr9r6qK0 65KqzmWje+ByE/elOFKJhQYxmdUvB5Tb2I/e1WnAJJyL6OquzHET5JzorPRFkLYfXL64 4FFOG0HIaZ8Dniv1s2iJy7bV7AwUEEIq6xw8RhXgbxtvlz0mpNJYTnbbzRxPzDB4072N f55A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680037508; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=0rGcKaV57MzEGDKkxdkSyKPrgiVF6h9Rm+dt4u4SH6A=; b=viQMgbqAsMlb+H4q/XJ5nxAYl0c1M+c4esolLjT6JaLt9WlB1WdQ8mQpZSX/da4p2I XaBwbQu4sddv6ZaOlR00nnZtuGO/c0/TsJ6rTiD0Q/b4xLsV+XHUzXY6m2xzjK9cwOX0 NG3pZGfiTPgWc5FNLVxyYiqJYzXckivWdvhZS2qeHW8I4zAmGN4+KXs+mGk5hIYnTmeb ntNdPZsMbUDv0kJQXSKGiCdwZWYivLXFqVBjjSFZUh+46E9maLx+U12AvIUGrG09gzyT M0eT1xVrpwUCdntlRLocJhe2HJWtNtSu7YeelWSK5mW8Eg6SYA6YaUhpjSot1EaAKpHr uVzg== X-Gm-Message-State: AAQBX9dqPiTY54vjxxT2z5Bxyk4gIkQwPW1s9wSh95gSHInpwuI/t8s4 s0hZ6NA2j6KYOd+17BFXzHS5pDAyNMmkBEe2cjJcmXWM X-Google-Smtp-Source: AKy350a/spYqYpwo341ChswwRxyTGWoVPVpSD8Wjaal1qHskO052EAoY0AJ2yCWRWug1bOEam7zqW711tUIGuN5IabY= X-Received: by 2002:a17:903:186:b0:1a1:f70c:c800 with SMTP id z6-20020a170903018600b001a1f70cc800mr6127379plg.8.1680037507597; Tue, 28 Mar 2023 14:05:07 -0700 (PDT) MIME-Version: 1.0 From: Paul Richard Thomas Date: Tue, 28 Mar 2023 22:04:55 +0100 Message-ID: Subject: [Patch, fortran] PR87477 - [meta-bug] [F03] issues concerning the ASSOCIATE statement To: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary="000000000000da21ba05f7fc3611" X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,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: --000000000000da21ba05f7fc3611 Content-Type: multipart/alternative; boundary="000000000000da21b805f7fc360f" --000000000000da21b805f7fc360f Content-Type: text/plain; charset="UTF-8" Hi All, I have made a start on ASSOCIATE issues. Some of the low(-ish) hanging fruit are already fixed but I have yet to check that they a really fixed and to close them: pr102106, pr102111, pr104430, pr106048, pr85510, pr87460, pr92960 & pr93338 The attached patch picks up those PRs involving deferred length characters in one guise or another. I believe that it is all pretty straightforward. Structure constructors with allocatable, deferred length, character array components just weren't implemented and so this is the biggest part of the patch. I found two other, non-associate PRs(106918 & 105205) that are fixed and there are probably more. The chunk in trans-io.cc is something of a kludge, which I will come back to. Some descriptors come through with a data pointer that looks as if it should be OK but I thought to submit this now to get it out of the way. The ratio of PRs fixed to the size of the patch warrants this. The next stage is going to be rather messy and so "I might take a little while" (cross talk between associate and select type, in particular). Regtests OK - good for mainline? Cheers Paul Fortran: Fix some of the bugs in associate [PR87477] 2023-03-28 Paul Thomas gcc/fortran PR fortran/87477 * trans-array.cc (gfc_conv_expr_descriptor): Guard string len expression in condition. (duplicate_allocatable): Make element type more explicit with 'eltype'. * trans-expr.cc (gfc_get_expr_charlen): Retain last charlen in 'previous' and use if end expression in substring reference is null. (gfc_conv_string_length): Use gfc_conv_expr_descriptor if 'expr_flat' is an array. (gfc_trans_alloc_subarray_assign): If this is a deferred string length component, store the string length in the hidden comp. Update the typespec length accordingly. Generate a new type spec for the call to gfc_duplicate-allocatable in this case. * trans-io.cc (gfc_trans_transfer): Scalarize transfer of deferred character array components. gcc/testsuite/ PR fortran/92994 * gfortran.dg/finalize_51.f90 : Update an error message. PR fortran/85686 * gfortran.dg/pr85686.f90 : New test PR fortran/88247 * gfortran.dg/pr88247.f90 : New test PR fortran/91941 * gfortran.dg/pr91941.f90 : New test PR fortran/92779 * gfortran.dg/pr92779.f90 : New test PR fortran/93339 * gfortran.dg/pr93339.f90 : New test PR fortran/93813 * gfortran.dg/pr93813.f90 : New test PR fortran/100948 * gfortran.dg/pr100948.f90 : New test PR fortran/102106 * gfortran.dg/pr102106.f90 : New test PR fortran/105205 * gfortran.dg/pr105205.f90 : New test PR fortran/106918 * gfortran.dg/pr106918.f90 : New test --000000000000da21b805f7fc360f-- --000000000000da21ba05f7fc3611 Content-Type: application/x-patch; name="pr100948.diff" Content-Disposition: attachment; filename="pr100948.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsj55730 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2lyZXNvbHZlLmNjIGIvZ2NjL2Zv cnRyYW4vaXJlc29sdmUuY2MKaW5kZXggMzM3OTRmMGE4NTguLjhhY2FkNjBh MDJiIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9pcmVzb2x2ZS5jYworKysg Yi9nY2MvZm9ydHJhbi9pcmVzb2x2ZS5jYwpAQCAtMjMwLDcgKzIzMCw5IEBA IGdmY19yZXNvbHZlX2FkanVzdGwgKGdmY19leHByICpmLCBnZmNfZXhwciAq c3RyaW5nKQogewogICBmLT50cy50eXBlID0gQlRfQ0hBUkFDVEVSOwogICBm LT50cy5raW5kID0gc3RyaW5nLT50cy5raW5kOwotICBpZiAoc3RyaW5nLT50 cy51LmNsKQorICBpZiAoc3RyaW5nLT50cy5kZWZlcnJlZCkKKyAgICBmLT50 cyA9IHN0cmluZy0+dHM7CisgIGVsc2UgaWYgKHN0cmluZy0+dHMudS5jbCkK ICAgICBmLT50cy51LmNsID0gZ2ZjX25ld19jaGFybGVuIChnZmNfY3VycmVu dF9ucywgc3RyaW5nLT50cy51LmNsKTsKIAogICBmLT52YWx1ZS5mdW5jdGlv bi5uYW1lID0gZ2ZjX2dldF9zdHJpbmcgKCJfX2FkanVzdGxfcyVkIiwgZi0+ dHMua2luZCk7CkBAIC0yNDIsNyArMjQ0LDkgQEAgZ2ZjX3Jlc29sdmVfYWRq dXN0ciAoZ2ZjX2V4cHIgKmYsIGdmY19leHByICpzdHJpbmcpCiB7CiAgIGYt PnRzLnR5cGUgPSBCVF9DSEFSQUNURVI7CiAgIGYtPnRzLmtpbmQgPSBzdHJp bmctPnRzLmtpbmQ7Ci0gIGlmIChzdHJpbmctPnRzLnUuY2wpCisgIGlmIChz dHJpbmctPnRzLmRlZmVycmVkKQorICAgIGYtPnRzID0gc3RyaW5nLT50czsK KyAgZWxzZSBpZiAoc3RyaW5nLT50cy51LmNsKQogICAgIGYtPnRzLnUuY2wg PSBnZmNfbmV3X2NoYXJsZW4gKGdmY19jdXJyZW50X25zLCBzdHJpbmctPnRz LnUuY2wpOwogCiAgIGYtPnZhbHVlLmZ1bmN0aW9uLm5hbWUgPSBnZmNfZ2V0 X3N0cmluZyAoIl9fYWRqdXN0cl9zJWQiLCBmLT50cy5raW5kKTsKQEAgLTMz NjEsNyArMzM2NSw3IEBAIGdmY19yZXNvbHZlX212Yml0cyAoZ2ZjX2NvZGUg KmMpCiB9CiAKIAotLyogU2V0IHVwIHRoZSBjYWxsIHRvIFJBTkRPTV9JTklU LiAgKi8gCisvKiBTZXQgdXAgdGhlIGNhbGwgdG8gUkFORE9NX0lOSVQuICAq LwogCiB2b2lkCiBnZmNfcmVzb2x2ZV9yYW5kb21faW5pdCAoZ2ZjX2NvZGUg KmMpCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9yZXNvbHZlLmNjIGIvZ2Nj L2ZvcnRyYW4vcmVzb2x2ZS5jYwppbmRleCAxYTAzZTQ1OGQ5OS4uMjNhMDRk MmM1YmQgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3Jlc29sdmUuY2MKKysr IGIvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jYwpAQCAtOTA4NCw2ICs5MDg0LDcg QEAgc3RhdGljIHZvaWQKIHJlc29sdmVfYXNzb2NfdmFyIChnZmNfc3ltYm9s KiBzeW0sIGJvb2wgcmVzb2x2ZV90YXJnZXQpCiB7CiAgIGdmY19leHByKiB0 YXJnZXQ7CisgIGJvb2wgcGFyZW50aGVzZXMgPSBmYWxzZTsKIAogICBnY2Nf YXNzZXJ0IChzeW0tPmFzc29jKTsKICAgZ2NjX2Fzc2VydCAoc3ltLT5hdHRy LmZsYXZvciA9PSBGTF9WQVJJQUJMRSk7CkBAIC05MDk2LDYgKzkwOTcsMTYg QEAgcmVzb2x2ZV9hc3NvY192YXIgKGdmY19zeW1ib2wqIHN5bSwgYm9vbCBy ZXNvbHZlX3RhcmdldCkKICAgICByZXR1cm47CiAgIGdjY19hc3NlcnQgKCFz eW0tPmFzc29jLT5kYW5nbGluZyk7CiAKKyAgaWYgKHRhcmdldC0+ZXhwcl90 eXBlID09IEVYUFJfT1AKKyAgICAgICYmIHRhcmdldC0+dmFsdWUub3Aub3Ag PT0gSU5UUklOU0lDX1BBUkVOVEhFU0VTCisgICAgICAmJiB0YXJnZXQtPnZh bHVlLm9wLm9wMS0+ZXhwcl90eXBlID09IEVYUFJfVkFSSUFCTEUpCisgICAg eworICAgICAgc3ltLT5hc3NvYy0+dGFyZ2V0ID0gZ2ZjX2NvcHlfZXhwciAo dGFyZ2V0LT52YWx1ZS5vcC5vcDEpOworICAgICAgZ2ZjX2ZyZWVfZXhwciAo dGFyZ2V0KTsKKyAgICAgIHRhcmdldCA9IHN5bS0+YXNzb2MtPnRhcmdldDsK KyAgICAgIHBhcmVudGhlc2VzID0gdHJ1ZTsKKyAgICB9CisKICAgaWYgKHJl c29sdmVfdGFyZ2V0ICYmICFnZmNfcmVzb2x2ZV9leHByICh0YXJnZXQpKQog ICAgIHJldHVybjsKIApAQCAtOTE3Nyw2ICs5MTg4LDcgQEAgcmVzb2x2ZV9h c3NvY192YXIgKGdmY19zeW1ib2wqIHN5bSwgYm9vbCByZXNvbHZlX3Rhcmdl dCkKIAogICAvKiBTZWUgaWYgdGhpcyBpcyBhIHZhbGlkIGFzc29jaWF0aW9u LXRvLXZhcmlhYmxlLiAgKi8KICAgc3ltLT5hc3NvYy0+dmFyaWFibGUgPSAo dGFyZ2V0LT5leHByX3R5cGUgPT0gRVhQUl9WQVJJQUJMRQorCQkJICAmJiAh cGFyZW50aGVzZXMKIAkJCSAgJiYgIWdmY19oYXNfdmVjdG9yX3N1YnNjcmlw dCAodGFyZ2V0KSk7CiAKICAgLyogRmluYWxseSByZXNvbHZlIGlmIHRoaXMg aXMgYW4gYXJyYXkgb3Igbm90LiAgKi8KQEAgLTEwODg1LDExICsxMDg5Nyw2 IEBAIGdmY19yZXNvbHZlX2ZvcmFsbCAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19u YW1lc3BhY2UgKm5zLCBpbnQgZm9yYWxsX3NhdmUpCiAKIAogLyogUmVzb2x2 ZSBhIEJMT0NLIGNvbnN0cnVjdCBzdGF0ZW1lbnQuICAqLwotc3RhdGljIGdm Y19leHByKgotZ2V0X3RlbXBfZnJvbV9leHByIChnZmNfZXhwciAqLCBnZmNf bmFtZXNwYWNlICopOwotc3RhdGljIGdmY19jb2RlICoKLWJ1aWxkX2Fzc2ln bm1lbnQgKGdmY19leGVjX29wLCBnZmNfZXhwciAqLCBnZmNfZXhwciAqLAot CQkgIGdmY19jb21wb25lbnQgKiwgZ2ZjX2NvbXBvbmVudCAqLCBsb2N1cyk7 CiAKIHN0YXRpYyB2b2lkCiByZXNvbHZlX2Jsb2NrX2NvbnN0cnVjdCAoZ2Zj X2NvZGUqIGNvZGUpCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy1h cnJheS5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLWFycmF5LmNjCmluZGV4IDQx NjYxYjQxOTVlLi4yYjljYTNjN2MxZSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRy YW4vdHJhbnMtYXJyYXkuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtYXJy YXkuY2MKQEAgLTc3MzAsNiArNzczMCw3IEBAIGdmY19jb252X2V4cHJfZGVz Y3JpcHRvciAoZ2ZjX3NlICpzZSwgZ2ZjX2V4cHIgKmV4cHIpCiAKIAkgIG5l ZWRfdG1wID0gMTsKIAkgIGlmIChleHByLT50cy50eXBlID09IEJUX0NIQVJB Q1RFUgorCQkmJiBleHByLT50cy51LmNsLT5sZW5ndGgKIAkJJiYgZXhwci0+ dHMudS5jbC0+bGVuZ3RoLT5leHByX3R5cGUgIT0gRVhQUl9DT05TVEFOVCkK IAkgICAgZ2V0X2FycmF5X2NoYXJsZW4gKGV4cHIsIHNlKTsKIApAQCAtODc2 Niw2ICs4NzY3LDcgQEAgZHVwbGljYXRlX2FsbG9jYXRhYmxlICh0cmVlIGRl c3QsIHRyZWUgc3JjLCB0cmVlIHR5cGUsIGludCByYW5rLAogCQkgICAgICAg dHJlZSBhZGRfd2hlbl9hbGxvY2F0ZWQpCiB7CiAgIHRyZWUgdG1wOworICB0 cmVlIGVsdHlwZTsKICAgdHJlZSBzaXplOwogICB0cmVlIG5lbGVtczsKICAg dHJlZSBudWxsX2NvbmQ7CkBAIC04NzgyLDEwICs4Nzg0LDExIEBAIGR1cGxp Y2F0ZV9hbGxvY2F0YWJsZSAodHJlZSBkZXN0LCB0cmVlIHNyYywgdHJlZSB0 eXBlLCBpbnQgcmFuaywKICAgICAgIG51bGxfZGF0YSA9IGdmY19maW5pc2hf YmxvY2sgKCZibG9jayk7CiAKICAgICAgIGdmY19pbml0X2Jsb2NrICgmYmxv Y2spOworICAgICAgZWx0eXBlID0gVFJFRV9UWVBFICh0eXBlKTsKICAgICAg IGlmIChzdHJfc3ogIT0gTlVMTF9UUkVFKQogCXNpemUgPSBzdHJfc3o7CiAg ICAgICBlbHNlCi0Jc2l6ZSA9IFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUg KHR5cGUpKTsKKwlzaXplID0gVFlQRV9TSVpFX1VOSVQgKGVsdHlwZSk7CiAK ICAgICAgIGlmICghbm9fbWFsbG9jKQogCXsKQEAgLTg4MTIsMTEgKzg4MTUs MTkgQEAgZHVwbGljYXRlX2FsbG9jYXRhYmxlICh0cmVlIGRlc3QsIHRyZWUg c3JjLCB0cmVlIHR5cGUsIGludCByYW5rLAogICAgICAgZWxzZQogCW5lbGVt cyA9IGdmY19pbmRleF9vbmVfbm9kZTsKIAorICAgICAgLyogSWYgdHlwZSBp cyBub3QgdGhlIGFycmF5IHR5cGUsIHRoZW4gaXQgaXMgdGhlIGVsZW1lbnQg dHlwZS4gICovCisgICAgICBpZiAoR0ZDX0FSUkFZX1RZUEVfUCAodHlwZSkg fHwgR0ZDX0RFU0NSSVBUT1JfVFlQRV9QICh0eXBlKSkKKwllbHR5cGUgPSBn ZmNfZ2V0X2VsZW1lbnRfdHlwZSAodHlwZSk7CisgICAgICBlbHNlCisJZWx0 eXBlID0gdHlwZTsKKwogICAgICAgaWYgKHN0cl9zeiAhPSBOVUxMX1RSRUUp CiAJdG1wID0gZm9sZF9jb252ZXJ0IChnZmNfYXJyYXlfaW5kZXhfdHlwZSwg c3RyX3N6KTsKICAgICAgIGVsc2UKIAl0bXAgPSBmb2xkX2NvbnZlcnQgKGdm Y19hcnJheV9pbmRleF90eXBlLAotCQkJICAgIFRZUEVfU0laRV9VTklUIChn ZmNfZ2V0X2VsZW1lbnRfdHlwZSAodHlwZSkpKTsKKwkJCSAgICBUWVBFX1NJ WkVfVU5JVCAoZWx0eXBlKSk7CisKKyAgICAgIHRtcCA9IGdmY19ldmFsdWF0 ZV9ub3cgKHRtcCwgJmJsb2NrKTsKICAgICAgIHNpemUgPSBmb2xkX2J1aWxk Ml9sb2MgKGlucHV0X2xvY2F0aW9uLCBNVUxUX0VYUFIsIGdmY19hcnJheV9p bmRleF90eXBlLAogCQkJICAgICAgbmVsZW1zLCB0bXApOwogICAgICAgaWYg KCFub19tYWxsb2MpCkBAIC05ODY1LDYgKzk4NzYsNyBAQCBzdHJ1Y3R1cmVf YWxsb2NfY29tcHMgKGdmY19zeW1ib2wgKiBkZXJfdHlwZSwgdHJlZSBkZWNs LCB0cmVlIGRlc3QsCiAJICAgICAgLyogVGhpcyBjb21wb25lbnQgY2Fubm90 IGhhdmUgYWxsb2NhdGFibGUgY29tcG9uZW50cywKIAkJIHRoZXJlZm9yZSBh ZGRfd2hlbl9hbGxvY2F0ZWQgb2YgZHVwbGljYXRlX2FsbG9jYXRhYmxlICgp CiAJCSBpcyBhbHdheXMgTlVMTC4gICovCisJICAgICAgcmFuayA9IGMtPmFz ID8gYy0+YXMtPnJhbmsgOiAwOwogCSAgICAgIHRtcCA9IGR1cGxpY2F0ZV9h bGxvY2F0YWJsZSAoZGNtcCwgY29tcCwgY3R5cGUsIHJhbmssCiAJCQkJCSAg IGZhbHNlLCBmYWxzZSwgc2l6ZSwgTlVMTF9UUkVFKTsKIAkgICAgICBnZmNf YWRkX2V4cHJfdG9fYmxvY2sgKCZmbmJsb2NrLCB0bXApOwpkaWZmIC0tZ2l0 IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jYyBiL2djYy9mb3J0cmFuL3Ry YW5zLWRlY2wuY2MKaW5kZXggNzc2MTBkZjM0MGIuLmQwNzQ3ZDc0ZjExIDEw MDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1kZWNsLmNjCisrKyBiL2dj Yy9mb3J0cmFuL3RyYW5zLWRlY2wuY2MKQEAgLTE3OTEsNiArMTc5MSw5IEBA IGdmY19nZXRfc3ltYm9sX2RlY2wgKGdmY19zeW1ib2wgKiBzeW0pCiAgICAg ICByZXR1cm4gZGVjbDsKICAgICB9CiAKKyAgaWYgKHN5bS0+dHMudHlwZSA9 PSBCVF9VTktOT1dOKQorICAgIGdmY19mYXRhbF9lcnJvciAoIiVzIGF0ICVD IGhhcyBubyBkZWZhdWx0IHR5cGUiLCBzeW0tPm5hbWUpOworCiAgIGlmIChz eW0tPmF0dHIuaW50cmluc2ljKQogICAgIGdmY19pbnRlcm5hbF9lcnJvciAo ImludHJpbnNpYyB2YXJpYWJsZSB3aGljaCBpc24ndCBhIHByb2NlZHVyZSIp OwogCkBAIC03NTQxLDYgKzc1NDQsNyBAQCBnZmNfZ2VuZXJhdGVfZnVuY3Rp b25fY29kZSAoZ2ZjX25hbWVzcGFjZSAqIG5zKQogICAgIH0KIAogICB0cmFu c19mdW5jdGlvbl9zdGFydCAoc3ltKTsKKyAgZ2ZjX2N1cnJlbnRfbG9jdXMg PSBzeW0tPmRlY2xhcmVkX2F0OwogCiAgIGdmY19pbml0X2Jsb2NrICgmaW5p dCk7CiAgIGdmY19pbml0X2Jsb2NrICgmY2xlYW51cCk7CmRpZmYgLS1naXQg YS9nY2MvZm9ydHJhbi90cmFucy1leHByLmNjIGIvZ2NjL2ZvcnRyYW4vdHJh bnMtZXhwci5jYwppbmRleCBkOTk2ZDI5NWJkMi4uMDIzMjU4YzFiNDMgMTAw NjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLWV4cHIuY2MKKysrIGIvZ2Nj L2ZvcnRyYW4vdHJhbnMtZXhwci5jYwpAQCAtMjEyNCw2ICsyMTI0LDcgQEAg Z2ZjX2dldF9leHByX2NoYXJsZW4gKGdmY19leHByICplKQogewogICBnZmNf cmVmICpyOwogICB0cmVlIGxlbmd0aDsKKyAgdHJlZSBwcmV2aW91cyA9IE5V TExfVFJFRTsKICAgZ2ZjX3NlIHNlOwogCiAgIGdjY19hc3NlcnQgKGUtPmV4 cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFCkBAIC0yMTQ5LDYgKzIxNTAsNyBA QCBnZmNfZ2V0X2V4cHJfY2hhcmxlbiAoZ2ZjX2V4cHIgKmUpCiAgIC8qIExv b2sgdGhyb3VnaCB0aGUgcmVmZXJlbmNlIGNoYWluIGZvciBjb21wb25lbnQg cmVmZXJlbmNlcy4gICovCiAgIGZvciAociA9IGUtPnJlZjsgcjsgciA9IHIt Pm5leHQpCiAgICAgeworICAgICAgcHJldmlvdXMgPSBsZW5ndGg7CiAgICAg ICBzd2l0Y2ggKHItPnR5cGUpCiAJewogCWNhc2UgUkVGX0NPTVBPTkVOVDoK QEAgLTIxNjQsNyArMjE2NiwxMCBAQCBnZmNfZ2V0X2V4cHJfY2hhcmxlbiAo Z2ZjX2V4cHIgKmUpCiAJICBnZmNfaW5pdF9zZSAoJnNlLCBOVUxMKTsKIAkg IGdmY19jb252X2V4cHJfdHlwZSAoJnNlLCByLT51LnNzLnN0YXJ0LCBnZmNf Y2hhcmxlbl90eXBlX25vZGUpOwogCSAgbGVuZ3RoID0gc2UuZXhwcjsKLQkg IGdmY19jb252X2V4cHJfdHlwZSAoJnNlLCByLT51LnNzLmVuZCwgZ2ZjX2No YXJsZW5fdHlwZV9ub2RlKTsKKwkgIGlmIChyLT51LnNzLmVuZCkKKwkgICAg Z2ZjX2NvbnZfZXhwcl90eXBlICgmc2UsIHItPnUuc3MuZW5kLCBnZmNfY2hh cmxlbl90eXBlX25vZGUpOworCSAgZWxzZQorCSAgICBzZS5leHByID0gcHJl dmlvdXM7CiAJICBsZW5ndGggPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xv Y2F0aW9uLCBNSU5VU19FWFBSLAogCQkJCSAgICBnZmNfY2hhcmxlbl90eXBl X25vZGUsCiAJCQkJICAgIHNlLmV4cHIsIGxlbmd0aCk7CkBAIC0yNTU0LDkg KzI1NTksMTIgQEAgZ2ZjX2NvbnZfc3RyaW5nX2xlbmd0aCAoZ2ZjX2NoYXJs ZW4gKiBjbCwgZ2ZjX2V4cHIgKiBleHByLCBzdG10YmxvY2tfdCAqIHBibG9j aykKICAgICAgIGV4cHJfZmxhdCA9IGdmY19jb3B5X2V4cHIgKGV4cHIpOwog ICAgICAgZmxhdHRlbl9hcnJheV9jdG9yc193aXRob3V0X3N0cmxlbiAoZXhw cl9mbGF0KTsKICAgICAgIGdmY19yZXNvbHZlX2V4cHIgKGV4cHJfZmxhdCk7 Ci0KLSAgICAgIGdmY19jb252X2V4cHIgKCZzZSwgZXhwcl9mbGF0KTsKLSAg ICAgIGdmY19hZGRfYmxvY2tfdG9fYmxvY2sgKHBibG9jaywgJnNlLnByZSk7 CisgICAgICBpZiAoZXhwcl9mbGF0LT5yYW5rKQorCWdmY19jb252X2V4cHJf ZGVzY3JpcHRvciAoJnNlLCBleHByX2ZsYXQpOworICAgICAgZWxzZQorCWdm Y19jb252X2V4cHIgKCZzZSwgZXhwcl9mbGF0KTsKKyAgICAgIGlmIChleHBy X2ZsYXQtPmV4cHJfdHlwZSAhPSBFWFBSX1ZBUklBQkxFKQorCWdmY19hZGRf YmxvY2tfdG9fYmxvY2sgKHBibG9jaywgJnNlLnByZSk7CiAgICAgICBjbC0+ YmFja2VuZF9kZWNsID0gY29udmVydCAoZ2ZjX2NoYXJsZW5fdHlwZV9ub2Rl LCBzZS5zdHJpbmdfbGVuZ3RoKTsKIAogICAgICAgZ2ZjX2ZyZWVfZXhwciAo ZXhwcl9mbGF0KTsKQEAgLTg1ODQsNiArODU5MiwyMCBAQCBnZmNfdHJhbnNf YWxsb2Nfc3ViYXJyYXlfYXNzaWduICh0cmVlIGRlc3QsIGdmY19jb21wb25l bnQgKiBjbSwKICAgZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yICgmc2UsIGV4 cHIpOwogICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrICgmYmxvY2ssICZzZS5w cmUpOwogICBnZmNfYWRkX21vZGlmeSAoJmJsb2NrLCBkZXN0LCBzZS5leHBy KTsKKyAgaWYgKGNtLT50cy50eXBlID09IEJUX0NIQVJBQ1RFUgorICAgICAg JiYgZ2ZjX2RlZmVycmVkX3N0cmxlbiAoY20sICZ0bXApKQorICAgIHsKKyAg ICAgIHRtcCA9IGZvbGRfYnVpbGQzX2xvYyAoaW5wdXRfbG9jYXRpb24sIENP TVBPTkVOVF9SRUYsCisJCQkgICAgIFRSRUVfVFlQRSAodG1wKSwKKwkJCSAg ICAgVFJFRV9PUEVSQU5EIChkZXN0LCAwKSwKKwkJCSAgICAgdG1wLCBOVUxM X1RSRUUpOworICAgICAgZ2ZjX2FkZF9tb2RpZnkgKCZibG9jaywgdG1wLAor CQkJICAgICAgZm9sZF9jb252ZXJ0IChUUkVFX1RZUEUgKHRtcCksCisJCQkg ICAgICBzZS5zdHJpbmdfbGVuZ3RoKSk7CisgICAgICBjbS0+dHMudS5jbC0+ YmFja2VuZF9kZWNsID0gZ2ZjX2NyZWF0ZV92YXIgKGdmY19jaGFybGVuX3R5 cGVfbm9kZSwKKwkJCQkJCSAgInNsZW4iKTsKKyAgICAgIGdmY19hZGRfbW9k aWZ5ICgmYmxvY2ssIGNtLT50cy51LmNsLT5iYWNrZW5kX2RlY2wsIHNlLnN0 cmluZ19sZW5ndGgpOworICAgIH0KIAogICAvKiBEZWFsIHdpdGggYXJyYXlz IG9mIGRlcml2ZWQgdHlwZXMgd2l0aCBhbGxvY2F0YWJsZSBjb21wb25lbnRz LiAgKi8KICAgaWYgKGdmY19idF9zdHJ1Y3QgKGNtLT50cy50eXBlKQpAQCAt ODYwNywxMSArODYyOSwxNiBAQCBnZmNfdHJhbnNfYWxsb2Nfc3ViYXJyYXlf YXNzaWduICh0cmVlIGRlc3QsIGdmY19jb21wb25lbnQgKiBjbSwKIAkJCQkJ ICAgdG1wLCBleHByLT5yYW5rLCBOVUxMX1RSRUUpOwogCX0KICAgICB9Cisg IGVsc2UgaWYgKGNtLT50cy50eXBlID09IEJUX0NIQVJBQ1RFUiAmJiBjbS0+ dHMuZGVmZXJyZWQpCisgICAgdG1wID0gZ2ZjX2R1cGxpY2F0ZV9hbGxvY2F0 YWJsZSAoZGVzdCwgc2UuZXhwciwKKwkJCQkgICAgIGdmY190eXBlbm9kZV9m b3Jfc3BlYyAoJmNtLT50cyksCisJCQkJICAgICBjbS0+YXMtPnJhbmssIE5V TExfVFJFRSk7CiAgIGVsc2UKICAgICB0bXAgPSBnZmNfZHVwbGljYXRlX2Fs bG9jYXRhYmxlIChkZXN0LCBzZS5leHByLAogCQkJCSAgICAgVFJFRV9UWVBF KGNtLT5iYWNrZW5kX2RlY2wpLAogCQkJCSAgICAgY20tPmFzLT5yYW5rLCBO VUxMX1RSRUUpOwogCisKICAgZ2ZjX2FkZF9leHByX3RvX2Jsb2NrICgmYmxv Y2ssIHRtcCk7CiAgIGdmY19hZGRfYmxvY2tfdG9fYmxvY2sgKCZibG9jaywg JnNlLnBvc3QpOwogCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy1p by5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLWlvLmNjCmluZGV4IGJhZWVhOTU1 ZDM1Li45YjU0ZDJmMGQzMSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJh bnMtaW8uY2MKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtaW8uY2MKQEAgLTI2 MjIsMTAgKzI2MjIsMTAgQEAgZ2ZjX3RyYW5zX3RyYW5zZmVyIChnZmNfY29k ZSAqIGNvZGUpCiAKICAgICAgIGlmIChleHByLT50cy50eXBlICE9IEJUX0NM QVNTCiAJICYmIGV4cHItPmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFCi0J ICYmIGdmY19leHByX2F0dHIgKGV4cHIpLnBvaW50ZXIpCisJICYmICgoZXhw ci0+c3ltdHJlZS0+bi5zeW0tPnRzLnR5cGUgPT0gQlRfREVSSVZFRCAmJiBl eHByLT50cy5kZWZlcnJlZCkKKwkgICAgIHx8IGdmY19leHByX2F0dHIgKGV4 cHIpLnBvaW50ZXIpKQogCWdvdG8gc2NhbGFyaXplOwogCi0KICAgICAgIGlm ICghKGdmY19idF9zdHJ1Y3QgKGV4cHItPnRzLnR5cGUpCiAJICAgICAgfHwg ZXhwci0+dHMudHlwZSA9PSBCVF9DTEFTUykKIAkgICAgJiYgcmVmICYmIHJl Zi0+bmV4dCA9PSBOVUxMCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2Fzc29jaWF0ZV81MS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2Fzc29jaWF0ZV81MS5mOTAKaW5kZXggZTZmMmU0ZmFmYTMu LjJlNTIxOGM3OGNmIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2Fzc29jaWF0ZV81MS5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9hc3NvY2lhdGVfNTEuZjkwCkBAIC01MSw3ICs1MSw3IEBA IHJlY3Vyc2l2ZSBzdWJyb3V0aW5lIHMKIGVuZAogCiByZWN1cnNpdmUgc3Vi cm91dGluZSBzMgotICAgYXNzb2NpYXRlICh5ID0+IChzMikpICEgeyBkZy1l cnJvciAiQXNzb2NpYXRpbmcgc2VsZWN0b3ItZXhwcmVzc2lvbiBhdCAuMS4g eWllbGRzIGEgcHJvY2VkdXJlIiB9CisgICBhc3NvY2lhdGUgKHkgPT4gKHMy KSkgISB7IGRnLWVycm9yICJpcyBhIHByb2NlZHVyZSBuYW1lIiB9CiAgICBl bmQgYXNzb2NpYXRlCiBlbmQKIAo= --000000000000da21ba05f7fc3611 Content-Type: application/octet-stream; name="pr85686.f90" Content-Disposition: attachment; filename="pr85686.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsj6z7t1 ISB7IGRnLWRvIHJ1biB9CiEKISBVc2VkIHRvIHNlZ2ZhdWx0IGF0IHRoZSB3 cml0ZSBzdGF0ZW1lbnQuCiEKISBDb250cmlidXRlZCBieSBHZXJoYXJkIFN0 ZWlubWV0eiAgPGdzY2ZxQHQtb25saW5lLmRlPgohCiAgY2hhcmFjdGVyKDIw KSA6OiBidWZmZXIKICBjYWxsIHMoWyIgZydkYXkgIiwiIGJ5ZSEhICJdKQog IHByaW50ICosIGJ1ZmZlcgogIGlmICh0cmltIChidWZmZXIpIC5uZS4gIiBh IGcnZGF5IGEgYnllISEiKSBzdG9wIDEKY29udGFpbnMKICBzdWJyb3V0aW5l IHMoeCkKICAgIGNoYXJhY3RlcigqKSA6OiB4KDopCiAgICBhc3NvY2lhdGUg KHkgPT4gJ2EnLy94KQogICAgICB3cml0ZSAoYnVmZmVyLCAqKSB5CiAgICBl bmQgYXNzb2NpYXRlCiAgZW5kCmVuZA== --000000000000da21ba05f7fc3611 Content-Type: application/octet-stream; name="pr88247.f90" Content-Disposition: attachment; filename="pr88247.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsj8ogi2 ISB7IGRnLWRvIHJ1biB9CiEKISBDb250cmlidXRlZCBieSBHZXJoYXJkIFN0 ZWlubWV0eiAgPGdzY2ZxQHQtb25saW5lLmRlPgohCnByb2dyYW0gcAogICBj YWxsIGZvbwpjb250YWlucwogICBzdWJyb3V0aW5lIGZvbwogICAgICB0eXBl IHQKICAgICAgICAgY2hhcmFjdGVyKDopLCBkaW1lbnNpb24oOiksIGFsbG9j YXRhYmxlIDo6IGQKICAgICAgZW5kIHR5cGUgdAogICAgICB0eXBlKHQpLCBh bGxvY2F0YWJsZSA6OiB4CiAgICAgIGNoYXJhY3Rlcig1KSA6OiBidWZmZXIo MykKICAgICAgYWxsb2NhdGUgKHgsIHNvdXJjZSA9IHQgKFsnYWInLCdjZCdd KSkgISBEaWRuJ3Qgd29yawogICAgICB3cml0ZShidWZmZXIoMSksICopIHgl ZCgyOjE6LTEpICAgICAgICAhIFdhcyBmb3VuZCB0byBiZSBicm9rZW4KICAg ICAgd3JpdGUoYnVmZmVyKDIpLCAqKSBbeCVkKDI6MTotMSldICAgICAgISBX YXMgT0sKICAgICAgYXNzb2NpYXRlICh5ID0+IFt4JWQoMjoxOi0xKV0pCiAg ICAgICAgd3JpdGUoYnVmZmVyKDMpLCAqKSB5ICAgICAgICAgICAgICAgICEg QnVnIGluIGNvbW1lbnQgNwogICAgICBlbmQgYXNzb2NpYXRlCiAgICAgIGlm IChhbnkgKGJ1ZmZlciAubmUuICIgY2RhYiIpKSBzdG9wIDEKICAgZW5kIHN1 YnJvdXRpbmUgZm9vCmVuZAo= --000000000000da21ba05f7fc3611 Content-Type: application/octet-stream; name="pr91941.f90" Content-Disposition: attachment; filename="pr91941.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsja2233 ISB7IGRnLWRvLWNvbXBpbGUgfQohCiEgQ29udHJpYnV0ZWQgYnkgR2VyaGFy ZCBTdGVpbm1ldHogIDxnc2NmcUB0LW9ubGluZS5kZT4KIQpwcm9ncmFtIHAK ICAgY2hhcmFjdGVyKDopLCBhbGxvY2F0YWJsZSA6OiB4KDopLCB6KDopCiAg IHggPSBbJyBhYmMnLCAnIHh5eiddCiAgIHogPSBhZGp1c3RsKHgpCiAgIGFz c29jaWF0ZSAoeSA9PiBhZGp1c3RsKHgpKQogICAgICBpZiAoYW55KHkgLm5l LiBbJ2FiYyAnLCAneHl6ICddKSkgc3RvcCAxCiAgIGVuZCBhc3NvY2lhdGUK ICAgZGVhbGxvY2F0ZSh4LCB6KSAhIEZvciB2YWxncmluZCB0ZXN0aW5nCmVu ZAo= --000000000000da21ba05f7fc3611 Content-Type: application/octet-stream; name="pr92779.f90" Content-Disposition: attachment; filename="pr92779.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsq7lmf4 ISB7IGRnLWRvLXJ1biB9CiEKISBDb250cmlidXRlZCBieSBHZXJoYXJkIFN0 ZWlubWV0eiAgPGdzY2ZxQHQtb25saW5lLmRlPgohCnByb2dyYW0gcAogICBj aGFyYWN0ZXIoMykgOjogYSA9ICdhYmMnCiAgIGFzc29jaWF0ZSAoeSA9PiBz cHJlYWQodHJpbShhKSwxLDIpIC8vICdkJykKICAgICAgaWYgKGFueSAoeSAu bmUuIFsnYWJjZCcsJ2FiY2QnXSkpIHN0b3AgMQogICBlbmQgYXNzb2NpYXRl CmVuZAo= --000000000000da21ba05f7fc3611 Content-Type: application/octet-stream; name="pr93339.f90" Content-Disposition: attachment; filename="pr93339.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsq8g3n5 ISB7IGRnLWRvLXJ1biB9CiEKISBDb250cmlidXRlZCBieSBHZXJoYXJkIFN0 ZWlubWV0eiAgPGdzY2ZxQHQtb25saW5lLmRlPgohCnByb2dyYW0gcAogICB0 eXBlIHQKICAgICAgY2hhcmFjdGVyKDopLCBhbGxvY2F0YWJsZSA6OiBhKDop CiAgIGVuZCB0eXBlCiAgIHR5cGUodCkgOjogeAogICB4ID0gdChbImFiYyAi XSkgICAgICAgICAgICAgICAgICAgICEgRGlkbid0IGFzc2lnbiBhbnl0aGlu ZwohICAgYWxsb2NhdGUgKHglYSgxKSwgc291cmNlID0gJ2FiYycpICEgV29y a2VkIE9LCiAgIGFzc29jaWF0ZSAoeSA9PiB4JWEpCiAgICAgICAgIGlmIChh bnkgKHkgLm5lLiAnYWJjICcpKSBzdG9wIDEKICAgICAgYXNzb2NpYXRlICh6 ID0+IHglYSkKICAgICAgICAgaWYgKGFueSAoeSAubmUuIHopKSBzdG9wIDIK ICAgICAgZW5kIGFzc29jaWF0ZQogICBlbmQgYXNzb2NpYXRlCiAgIGRlYWxs b2NhdGUgKHglYSkKZW5kCg== --000000000000da21ba05f7fc3611 Content-Type: application/octet-stream; name="pr93813.f90" Content-Disposition: attachment; filename="pr93813.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsq97v56 ISB7IGRnLWRvLXJ1biB9CiEKISBDb250cmlidXRlZCBieSBHZXJoYXJkIFN0 ZWlubWV0eiAgPGdzY2ZxQHQtb25saW5lLmRlPgohCnByb2dyYW0gcAogICB0 eXBlIHQKICAgZW5kIHR5cGUKICAgdHlwZSwgZXh0ZW5kcyh0KSA6OiB0Mgog ICBlbmQgdHlwZQogICBjbGFzcyh0KSwgYWxsb2NhdGFibGUgOjogeAogICBh c3NvY2lhdGUgKHkgPT4gKHgpKSAgISBUaGUgcGFyZW50aGVzZXMgdHJpZ2dl cmVkIGFuIElDRSBpbiBzZWxlY3QgdHlwZQogICAgICBzZWxlY3QgdHlwZSAo eSkKICAgICAgdHlwZSBpcyAodDIpCiAgICAgICAgICBwcmludCAqLCAiaXMg VDIiCiAgICAgICAgICBzdG9wIDEKICAgICAgdHlwZSBpcyAodCkKICAgICAg ICAgIHByaW50ICosICJpcyBUIgogICAgICBjbGFzcyBkZWZhdWx0CiAgICAg ICAgICBzdG9wIDIKICAgICAgZW5kIHNlbGVjdAogICBlbmQgYXNzb2NpYXRl CmVuZAo= --000000000000da21ba05f7fc3611 Content-Type: application/octet-stream; name="pr102106.f90" Content-Disposition: attachment; filename="pr102106.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsqa7pu7 ISB7IGRnLWRvIHJ1biB9CiEKISBDb250cmlidXRlZCBieSBCcmFkIFJpY2hh cmRzb24gIDxldmVyeXRoaW5nZnVuY3Rpb25hbEBwcm90b25tYWlsLmNvbT4K IQpwcm9ncmFtIG1haW4KICAgIHR5cGUgOjogc3ViX2NsYXNzX3QKICAgICAg ICBpbnRlZ2VyIDo6IGkKICAgIGVuZCB0eXBlCgogICAgdHlwZSA6OiB3aXRo X3BvbHltb3JwaGljX2NvbXBvbmVudF90CiAgICAgICAgY2xhc3Moc3ViX2Ns YXNzX3QpLCBhbGxvY2F0YWJsZSA6OiBzdWJfb2JqXwogICAgZW5kIHR5cGUK CiAgICBhc3NvY2lhdGUob2JqID0+IHdpdGhfcG9seW1vcnBoaWNfY29tcG9u ZW50X3Qoc3ViX2NsYXNzX3QoNDIpKSkKICAgICAgICBpZiAob2JqJXN1Yl9v YmpfJWkgLm5lLiA0Mikgc3RvcCAxCiAgICBlbmQgYXNzb2NpYXRlCmVuZCBw cm9ncmFtCg== --000000000000da21ba05f7fc3611 Content-Type: application/octet-stream; name="pr106918.f90" Content-Disposition: attachment; filename="pr106918.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsqb7768 ISB7IGRnLWRvIHJ1biB9CiEKISBDb250cmlidXRlZCBieSBMaW9uZWwgR3Vl eiAgPGd1ZXpAbG1kLmVucy5mcj4KIQogIGNoYXJhY3RlcihsZW4gPSA6KSwg YWxsb2NhdGFibGU6OiBhdHRyX25hbWUoOikKICBjaGFyYWN0ZXIoNikgOjog YnVmZmVyCiAgdHlwZSBjb29yZF9kZWYKICAgICBjaGFyYWN0ZXIobGVuID0g OiksIGFsbG9jYXRhYmxlOjogYXR0cl9uYW1lKDopCiAgZW5kIHR5cGUgY29v cmRfZGVmCiAgdHlwZShjb29yZF9kZWYpIGNvb3JkaW5hdGVzCiAgYXR0cl9u YW1lID0gWyJ1bml0cyJdCiAgd3JpdGUgKGJ1ZmZlciwgKikgYXR0cl9uYW1l CiAgaWYgKGJ1ZmZlciAubmUuICIgdW5pdHMiKSBzdG9wIDEKICBjb29yZGlu YXRlcyA9IGNvb3JkX2RlZihhdHRyX25hbWUpCiAgd3JpdGUgKGJ1ZmZlciwg KikgY29vcmRpbmF0ZXMlYXR0cl9uYW1lCiAgaWYgKGJ1ZmZlciAubmUuICIg dW5pdHMiKSBzdG9wIDIKZW5kCg== --000000000000da21ba05f7fc3611 Content-Type: application/octet-stream; name="pr105205.f90" Content-Disposition: attachment; filename="pr105205.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsqcg839 ISB7IGRnLWRvIHJ1biB9CiEKISBDb250cmlidXRlZCBieSBSaWNoIFRvd25z ZW5kICA8dG93bnNlbmRAYXN0cm8ud2lzYy5lZHU+CiEKcHJvZ3JhbSBhbGxv Y19jaGFyX3R5cGUKICAgaW1wbGljaXQgbm9uZQogICBpbnRlZ2VyLCBwYXJh bWV0ZXIgOjogc3RhcnQgPSAxLCBmaW5pc2ggPSA0CiAgIGNoYXJhY3Rlcigz KSA6OiBjaGVjayg0KQogICB0eXBlIG15dHlwZQogICAgICBjaGFyYWN0ZXIo OiksIGFsbG9jYXRhYmxlIDo6IGMoOikKICAgZW5kIHR5cGUgbXl0eXBlCiAg IHR5cGUobXl0eXBlKSA6OiBhCiAgIHR5cGUobXl0eXBlKSA6OiBiCiAgIGlu dGVnZXIgOjogaQogICBhJWMgPSBbJ2ZvbycsJ2JhcicsJ2JpeicsJ2J1egog ICBjaGVjayA9IFsnZm9vJywnYmFyJywnYml6JywnYnV6J10KICAgYiA9IGEK ICAgZG8gaSA9IDEsIHNpemUoYiVjKQogICAgICBpZiAoYiVjKGkpIC5uZS4g Y2hlY2soaSkpIHN0b3AxCiAgIGVuZCBkbwogICBpZiAoYW55IChhJWMgLm5l LiBjaGVjaykpIHN0b3AgMgogICBpZiAoYW55IChhJWMoc3RhcnQ6ZmluaXNo KSAubmUuIGNoZWNrKSkgc3RvcCAzCmVuZAo= --000000000000da21ba05f7fc3611 Content-Type: text/x-fortran; charset="US-ASCII"; name="pr100948.f90" Content-Disposition: attachment; filename="pr100948.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfsqxyc310 ISB7IGRnLWRvLXJ1biB9CiEKISBDb250cmlidXRlZCBieSBHZXJoYXJkIFN0 ZWlubWV0eiAgPGdzY2ZxQHQtb25saW5lLmRlPgohCnByb2dyYW0gcAogICB0 eXBlIHQKICAgICAgY2hhcmFjdGVyKDopLCBhbGxvY2F0YWJsZSA6OiBjKDop CiAgIGVuZCB0eXBlCiAgIHR5cGUodCksIGFsbG9jYXRhYmxlIDo6IHgKIQoh IFZhbGlkIHRlc3QgaW4gY29tbWVudCAxCiEKICAgeCA9IHQoWydhYicsJ2Nk J10pCiAgIGFzc29jaWF0ZSAoeSA9PiB4JWMoOikpCiAgICAgIGlmIChhbnkg KHkgLm5lLiB4JWMpKSBzdG9wIDEKICAgICAgaWYgKGFueSAoeSAubmUuIFsn YWInLCdjZCddKSkgc3RvcCAyCiAgIGVuZCBhc3NvY2lhdGUKICAgZGVhbGxv Y2F0ZSAoeCkKIQohIEFsbG9jYXRpb24gd2l0aCBzb3VyY2Ugd2FzIGZvdW5k IHRvIG9ubHkgY29weSBvdmVyIG9uZSBvZiB0aGUgYXJyYXkgZWxlbWVudHMK IQogICBhbGxvY2F0ZSAoeCwgc291cmNlID0gdChbJ2VmJywnZ2gnXSkpCiAg IGFzc29jaWF0ZSAoeSA9PiB4JWMoOikpCiAgICAgIGlmIChhbnkgKHkgLm5l LiB4JWMpKSBzdG9wIDMKICAgICAgaWYgKGFueSAoeSAubmUuIFsnZWYnLCdn aCddKSkgc3RvcCA0CiAgIGVuZCBhc3NvY2lhdGUKICAgZGVhbGxvY2F0ZSAo eCkKZW5kCg== --000000000000da21ba05f7fc3611--