Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1ZIglE-000057-Ag for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Jul 2015 17:27:52 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1ZIglC-0001tX-Cy for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Jul 2015 17:27:50 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1ZIglB-0001tQ-Gf for pgsql-hackers@postgresql.org; Fri, 24 Jul 2015 17:27:49 +0000 Received: from mail-wi0-x232.google.com ([2a00:1450:400c:c05::232]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1ZIgl8-0000S2-Mq for pgsql-hackers@postgresql.org; Fri, 24 Jul 2015 17:27:48 +0000 Received: by wicgb10 with SMTP id gb10so37953805wic.1 for ; Fri, 24 Jul 2015 10:27:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:reply-to:user-agent:mime-version:to:cc :subject:references:in-reply-to:content-type; bh=8+YQN4GmSI7KKxM6iDQYTpKgs/FicggVH3jxwUsL/Jg=; b=a7giRAi/Ht2bHzroVjeYq602YdA6lhcnOJ/ylTR+IekcP5C7iprsE2IH3lgBpuPZmo ljLOfdiy16R5xR72DAea6QKVP5lfiVXMF4CGci8pnrZkHI3+8ixcHFTdvo66dtKCmSJV anzTA0vR1sf47/ELg+JIrp9t/B6iXfAmLpNatx8HaU5LDILV29Hm8sdPktmpQ7j8drVK 8VlWd1jSULMrtVFBMTPgXOuBQDbBGRrwHzw/MgESUx2ac6BzfJZ7D8zW55yPVqzPp3/I ww3EZhEXwxYagxcuyW8rYvDDbLB30h4wzbRz6sqPGwZ1hG89FLKyIfUDwEnXb8HqEkNQ oHKw== X-Received: by 10.180.81.106 with SMTP id z10mr8962890wix.22.1437758865301; Fri, 24 Jul 2015 10:27:45 -0700 (PDT) Received: from [192.168.1.105] (dsl-hkibrasgw1-58c38f-82.dhcp.inet.fi. [88.195.143.82]) by smtp.gmail.com with ESMTPSA id gc4sm4476603wib.23.2015.07.24.10.27.43 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 Jul 2015 10:27:44 -0700 (PDT) Message-ID: <55B2758E.1010205@iki.fi> Date: Fri, 24 Jul 2015 20:27:42 +0300 From: Heikki Linnakangas Reply-To: hlinnaka@iki.fi User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 To: Michael Paquier , Noah Misch CC: PostgreSQL mailing lists Subject: Re: Supporting TAP tests with MSVC and Windows References: <20150403062230.GA1153652@tornado.leadboat.com> In-Reply-To: Content-Type: multipart/mixed; boundary="------------000509030008090603030101" X-Pg-Spam-Score: -2.4 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org This is a multi-part message in MIME format. --------------000509030008090603030101 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 06/25/2015 07:40 AM, Michael Paquier wrote: > On Tue, May 26, 2015 at 3:39 PM, Michael Paquier wrote: >> Here is v6, a rebased version on HEAD (79f2b5d). There were some >> conflicts with the indentation and some other patches related to >> pg_rewind and initdb's tests. > > Attached is v7, rebased on 0b157a0. Thanks! I fiddled with this a bit more, to centralize more of the platform-dependent stuff to RewindTest.pm. Also, Windows doesn't have "cat" and "touch" if you haven't installed MinGW, so I replaced those calls with built-in perl code. Can you double-check that the attached still works in your environment? It works for me now. Note: I had some trouble installing IPC::Run on my system, with ActiveState Perl and MSVC. There is no PPM package of that for Windows, so I had to do "cpan install IPC::Run". That downloaded the MinGW C compiler and make utility, which took a while. But some of the IPC::Run regression tests failed, and the installation was aborted. I forced my way through that "notest install IPC::Run". The next obstacle was that "vcregress " no longer worked. It complained about finding some function in the Install module. Turns out that when it installed the C compiler and make utility, it also installed a module called "install" from cpan, which has the same name as the PostgreSQL Install.pm module. We really should rename our module. I got through that by manually removing the system install.pm module from the perl installation's site directory. But after that, it worked great :-). We need to put some instructions in the docs on how to install IPC::Run on Windows. I can write up something unless you're eager to. - Heikki --------------000509030008090603030101 Content-Type: application/x-patch; name="0001-Make-TAP-tests-work-on-Windows.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Make-TAP-tests-work-on-Windows.patch" RnJvbSAxNzkzZjI3M2NiMmQ4NDljOWZjNjM0ODNhYjQ4NWZiYTI5YzExNGQ2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFr YW5nYXMgPGhlaWtraS5saW5uYWthbmdhc0Bpa2kuZmk+CkRhdGU6IEZyaSwg MjQgSnVsIDIwMTUgMTc6Mzk6MjQgKzAzMDAKU3ViamVjdDogW1BBVENIXSBN YWtlIFRBUCB0ZXN0cyB3b3JrIG9uIFdpbmRvd3MuCgpPbiBXaW5kb3dzLCB1 c2UgbGlzdGVuX2FkZHJlc3M9MTI3LjAuMC4xIHRvIGFsbG93IGNvbm5lY3Rp b25zLiBXZSB3ZXJlCmFscmVhZHkgdXNpbmcgInBnX3JlZ3Jlc3MgLS1jb25m aWctYXV0aCIgdG8gc2V0IHVwIEhCQSBhcHByb3ByaWF0ZWx5LgpUaGUgc3Rh bmRhcmRfaW5pdGRiIGhlbHBlciBmdW5jdGlvbiBub3cgc2V0cyB1cCB0aGUg c2VydmVyJ3MKdW5peF9zb2NrZXRfZGlyZWN0b3JpZXMgb3IgbGlzdGVuX2Fk ZHJlc3NlcyBpbiB0aGUgY29uZmlnIGZpbGUsIHNvIHRoYXQKdGhleSBkb24n dCBuZWVkIHRvIGJlIHNwZWNpZmllZCBpbiB0aGUgcGdfY3RsIGNvbW1hbmQg bGluZSBhbnltb3JlLiBUaGF0CndheSwgdGhlIHBnX2N0bCBpbnZvY2F0aW9u cyBpbiB0ZXN0IHByb2dyYW1zIGRvbid0IG5lZWQgdG8gZGlmZmVyIGJldHdl ZW4KV2luZG93cyBhbmQgVW5peC4KCkFkZCBhbm90aGVyIGhlbHBlciBmdW5j dGlvbiB0byBjb25maWd1cmUgdGhlIHNlcnZlcidzIHBnX2hiYS5jb25mIHRv CmFsbG93IHJlcGxpY2F0aW9uIGNvbm5lY3Rpb25zLiBUaGUgY29uZmlndXJh dGlvbiBpcyBkb25lIHNpbWlsYXJseSB0bwpwZ19yZWdyZXNzIC0tY29uZmln LWF1dGg6IHRydXN0IG9uIGRvbWFpbiBzb2NrZXRzIG9uIFVuaXgsIGFuZCBT U1BJCmF1dGhlbnRpY2F0aW9uIG9uIFdpbmRvd3MuCgpSZXBsYWNlIGNhbGxz IHRvICJjYXQiIGFuZCAidG91Y2giIHByb2dyYW1zIHdpdGggYnVpbHQtaW4g cGVybCBjb2RlLgoKQWRkICJ2Y3JlZ3Jlc3MgdGFwY2hlY2siIGNvbW1hbmQg Zm9yIGxhdW5jaGluZyB0aGUgdGVzdHMgb24gV2luZG93cy4KCk1pY2hhZWwg UGFxdWllcgoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbnN0YWxsLXdp bmRvd3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9pbnN0YWxsLXdpbmRvd3Muc2dt bAppbmRleCBkMTU0YjQ0Li4yMDQ3NzkwIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvaW5zdGFsbC13aW5kb3dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2luc3RhbGwtd2luZG93cy5zZ21sCkBAIC00MzksNiArNDM5LDcgQEAgJEVO VntDT05GSUd9PSJEZWJ1ZyI7CiA8dXNlcmlucHV0PnZjcmVncmVzcyBtb2R1 bGVzY2hlY2s8L3VzZXJpbnB1dD4KIDx1c2VyaW5wdXQ+dmNyZWdyZXNzIGVj cGdjaGVjazwvdXNlcmlucHV0PgogPHVzZXJpbnB1dD52Y3JlZ3Jlc3MgaXNv bGF0aW9uY2hlY2s8L3VzZXJpbnB1dD4KKzx1c2VyaW5wdXQ+dmNyZWdyZXNz IHRhcGNoZWNrPC91c2VyaW5wdXQ+CiA8dXNlcmlucHV0PnZjcmVncmVzcyB1 cGdyYWRlY2hlY2s8L3VzZXJpbnB1dD4KIDwvc2NyZWVuPgogCmRpZmYgLS1n aXQgYS9zcmMvTWFrZWZpbGUuZ2xvYmFsLmluIGIvc3JjL01ha2VmaWxlLmds b2JhbC5pbgppbmRleCBlMmY3MjExLi41OWM5ZWVkIDEwMDY0NAotLS0gYS9z cmMvTWFrZWZpbGUuZ2xvYmFsLmluCisrKyBiL3NyYy9NYWtlZmlsZS5nbG9i YWwuaW4KQEAgLTMzOSw3ICszMzksNyBAQCBlbmRlZgogCiBkZWZpbmUgcHJv dmVfY2hlY2sKIHJtIC1yZiAkKHNyY2RpcikvdG1wX2NoZWNrL2xvZwotY2Qg JChzcmNkaXIpICYmIFRFU1RESVI9JyQoQ1VSRElSKScgJCh3aXRoX3RlbXBf aW5zdGFsbCkgUEdQT1JUPSc2JChERUZfUEdQT1JUKScgdG9wX2J1aWxkZGly PSckKENVUkRJUikvJCh0b3BfYnVpbGRkaXIpJyAkKFBST1ZFKSAkKFBHX1BS T1ZFX0ZMQUdTKSAkKFBST1ZFX0ZMQUdTKSB0LyoucGwKK2NkICQoc3JjZGly KSAmJiBURVNURElSPSckKENVUkRJUiknIFBHX1JFR1JFU1M9JyQodG9wX2J1 aWxkZGlyKS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MnICQod2l0aF90 ZW1wX2luc3RhbGwpIFBHUE9SVD0nNiQoREVGX1BHUE9SVCknICQoUFJPVkUp ICQoUEdfUFJPVkVfRkxBR1MpICQoUFJPVkVfRkxBR1MpIHQvKi5wbAogZW5k ZWYKIAogZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3Vw L3QvMDEwX3BnX2Jhc2ViYWNrdXAucGwgYi9zcmMvYmluL3BnX2Jhc2ViYWNr dXAvdC8wMTBfcGdfYmFzZWJhY2t1cC5wbAppbmRleCBlNDdjM2EwLi40MGI2 Yjc2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wMTBf cGdfYmFzZWJhY2t1cC5wbAorKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAv dC8wMTBfcGdfYmFzZWJhY2t1cC5wbApAQCAtMSw2ICsxLDcgQEAKIHVzZSBz dHJpY3Q7CiB1c2Ugd2FybmluZ3M7CiB1c2UgQ3dkOwordXNlIENvbmZpZzsK IHVzZSBUZXN0TGliOwogdXNlIFRlc3Q6Ok1vcmUgdGVzdHMgPT4gMzU7CiAK QEAgLTI1LDExICsyNiw3IEBAIGlmIChvcGVuIEJBRENIQVJTLCAiPj4kdGVt cGRpci9wZ2RhdGEvRk9PXHhlMFx4ZTBceGUwQkFSIikKIAljbG9zZSBCQURD SEFSUzsKIH0KIAotb3BlbiBIQkEsICI+PiR0ZW1wZGlyL3BnZGF0YS9wZ19o YmEuY29uZiI7Ci1wcmludCBIQkEgImxvY2FsIHJlcGxpY2F0aW9uIGFsbCB0 cnVzdFxuIjsKLXByaW50IEhCQSAiaG9zdCByZXBsaWNhdGlvbiBhbGwgMTI3 LjAuMC4xLzMyIHRydXN0XG4iOwotcHJpbnQgSEJBICJob3N0IHJlcGxpY2F0 aW9uIGFsbCA6OjEvMTI4IHRydXN0XG4iOwotY2xvc2UgSEJBOworY29uZmln dXJlX2hiYV9mb3JfcmVwbGljYXRpb24gIiR0ZW1wZGlyL3BnZGF0YSI7CiBz eXN0ZW1fb3JfYmFpbCAncGdfY3RsJywgJy1EJywgIiR0ZW1wZGlyL3BnZGF0 YSIsICdyZWxvYWQnOwogCiBjb21tYW5kX2ZhaWxzKApAQCAtNTcsNjEgKzU0 LDcgQEAgY29tbWFuZF9vayhbICdwZ19iYXNlYmFja3VwJywgJy1EJywgIiR0 ZW1wZGlyL3RhcmJhY2t1cCIsICctRnQnIF0sCiAJJ3RhciBmb3JtYXQnKTsK IG9rKC1mICIkdGVtcGRpci90YXJiYWNrdXAvYmFzZS50YXIiLCAnYmFja3Vw IHRhciB3YXMgY3JlYXRlZCcpOwogCi1teSAkc3VwZXJsb25nbmFtZSA9ICJz dXBlcmxvbmduYW1lXyIgLiAoIngiIHggMTAwKTsKLQotc3lzdGVtX29yX2Jh aWwgJ3RvdWNoJywgIiR0ZW1wZGlyL3BnZGF0YS8kc3VwZXJsb25nbmFtZSI7 Ci1jb21tYW5kX2ZhaWxzKFsgJ3BnX2Jhc2ViYWNrdXAnLCAnLUQnLCAiJHRl bXBkaXIvdGFyYmFja3VwX2wxIiwgJy1GdCcgXSwKLQkncGdfYmFzZWJhY2t1 cCB0YXIgd2l0aCBsb25nIG5hbWUgZmFpbHMnKTsKLXVubGluayAiJHRlbXBk aXIvcGdkYXRhLyRzdXBlcmxvbmduYW1lIjsKLQotIyBDcmVhdGUgYSB0ZW1w b3JhcnkgZGlyZWN0b3J5IGluIHRoZSBzeXN0ZW0gbG9jYXRpb24gYW5kIHN5 bWxpbmsgaXQKLSMgdG8gb3VyIHBoeXNpY2FsIHRlbXAgbG9jYXRpb24uICBU aGF0IHdheSB3ZSBjYW4gdXNlIHNob3J0ZXIgbmFtZXMKLSMgZm9yIHRoZSB0 YWJsZXNwYWNlIGRpcmVjdG9yaWVzLCB3aGljaCBob3BlZnVsbHkgd29uJ3Qg cnVuIGFmb3VsIG9mCi0jIHRoZSA5OSBjaGFyYWN0ZXIgbGVuZ3RoIGxpbWl0 LgotbXkgJHNob3J0ZXJfdGVtcGRpciA9IHRlbXBkaXJfc2hvcnQgLiAiL3Rl bXBkaXIiOwotc3ltbGluayAiJHRlbXBkaXIiLCAkc2hvcnRlcl90ZW1wZGly OwotCi1ta2RpciAiJHRlbXBkaXIvdGJsc3BjMSI7Ci1wc3FsICdwb3N0Z3Jl cycsCi0gICJDUkVBVEUgVEFCTEVTUEFDRSB0YmxzcGMxIExPQ0FUSU9OICck c2hvcnRlcl90ZW1wZGlyL3RibHNwYzEnOyI7Ci1wc3FsICdwb3N0Z3Jlcycs ICJDUkVBVEUgVEFCTEUgdGVzdDEgKGEgaW50KSBUQUJMRVNQQUNFIHRibHNw YzE7IjsKLWNvbW1hbmRfb2soWyAncGdfYmFzZWJhY2t1cCcsICctRCcsICIk dGVtcGRpci90YXJiYWNrdXAyIiwgJy1GdCcgXSwKLQkndGFyIGZvcm1hdCB3 aXRoIHRhYmxlc3BhY2VzJyk7Ci1vaygtZiAiJHRlbXBkaXIvdGFyYmFja3Vw Mi9iYXNlLnRhciIsICdiYWNrdXAgdGFyIHdhcyBjcmVhdGVkJyk7Ci1teSBA dGJsc3BjX3RhcnMgPSBnbG9iICIkdGVtcGRpci90YXJiYWNrdXAyL1swLTld Ki50YXIiOwotaXMoc2NhbGFyKEB0YmxzcGNfdGFycyksIDEsICdvbmUgdGFi bGVzcGFjZSB0YXIgd2FzIGNyZWF0ZWQnKTsKLQotY29tbWFuZF9mYWlscygK LQlbICdwZ19iYXNlYmFja3VwJywgJy1EJywgIiR0ZW1wZGlyL2JhY2t1cDEi LCAnLUZwJyBdLAotCSdwbGFpbiBmb3JtYXQgd2l0aCB0YWJsZXNwYWNlcyBm YWlscyB3aXRob3V0IHRhYmxlc3BhY2UgbWFwcGluZycpOwotCi1jb21tYW5k X29rKAotCVsgICAncGdfYmFzZWJhY2t1cCcsICctRCcsICIkdGVtcGRpci9i YWNrdXAxIiwgJy1GcCcsCi0JCSItVCRzaG9ydGVyX3RlbXBkaXIvdGJsc3Bj MT0kdGVtcGRpci90YmFja3VwL3RibHNwYzEiIF0sCi0JJ3BsYWluIGZvcm1h dCB3aXRoIHRhYmxlc3BhY2VzIHN1Y2NlZWRzIHdpdGggdGFibGVzcGFjZSBt YXBwaW5nJyk7Ci1vaygtZCAiJHRlbXBkaXIvdGJhY2t1cC90YmxzcGMxIiwg J3RhYmxlc3BhY2Ugd2FzIHJlbG9jYXRlZCcpOwotb3BlbmRpcihteSAkZGgs ICIkdGVtcGRpci9wZ2RhdGEvcGdfdGJsc3BjIikgb3IgZGllOwotb2soICgg ICBncmVwIHsKLQkJCS1sICIkdGVtcGRpci9iYWNrdXAxL3BnX3RibHNwYy8k XyIKLQkJCSAgYW5kIHJlYWRsaW5rICIkdGVtcGRpci9iYWNrdXAxL3BnX3Ri bHNwYy8kXyIgZXEKLQkJCSAgIiR0ZW1wZGlyL3RiYWNrdXAvdGJsc3BjMSIK LQkJICB9IHJlYWRkaXIoJGRoKSksCi0JInRhYmxlc3BhY2Ugc3ltbGluayB3 YXMgdXBkYXRlZCIpOwotY2xvc2VkaXIgJGRoOwotCi1ta2RpciAiJHRlbXBk aXIvdGJsPXNwYzIiOwotcHNxbCAncG9zdGdyZXMnLCAiRFJPUCBUQUJMRSB0 ZXN0MTsiOwotcHNxbCAncG9zdGdyZXMnLCAiRFJPUCBUQUJMRVNQQUNFIHRi bHNwYzE7IjsKLXBzcWwgJ3Bvc3RncmVzJywKLSAgIkNSRUFURSBUQUJMRVNQ QUNFIHRibHNwYzIgTE9DQVRJT04gJyRzaG9ydGVyX3RlbXBkaXIvdGJsPXNw YzInOyI7Ci1jb21tYW5kX29rKAotCVsgICAncGdfYmFzZWJhY2t1cCcsICct RCcsICIkdGVtcGRpci9iYWNrdXAzIiwgJy1GcCcsCi0JCSItVCRzaG9ydGVy X3RlbXBkaXIvdGJsXFw9c3BjMj0kdGVtcGRpci90YmFja3VwL3RibFxcPXNw YzIiIF0sCi0JJ21hcHBpbmcgdGFibGVzcGFjZSB3aXRoID0gc2lnbiBpbiBw YXRoJyk7Ci1vaygtZCAiJHRlbXBkaXIvdGJhY2t1cC90Ymw9c3BjMiIsICd0 YWJsZXNwYWNlIHdpdGggPSBzaWduIHdhcyByZWxvY2F0ZWQnKTsKLQotcHNx bCAncG9zdGdyZXMnLCAiRFJPUCBUQUJMRVNQQUNFIHRibHNwYzI7IjsKLQor IyBUZXN0IGluY29ycmVjdCBhcmd1bWVudHMKIGNvbW1hbmRfZmFpbHMoCiAJ WyAncGdfYmFzZWJhY2t1cCcsICctRCcsICIkdGVtcGRpci9iYWNrdXBfZm9v IiwgJy1GcCcsICItVD0vZm9vIiBdLAogCSctVCB3aXRoIGVtcHR5IG9sZCBk aXJlY3RvcnkgZmFpbHMnKTsKQEAgLTEzMiw5ICs3NSw3MiBAQCBjb21tYW5k X2ZhaWxzKAogCVsgJ3BnX2Jhc2ViYWNrdXAnLCAnLUQnLCAiJHRlbXBkaXIv YmFja3VwX2ZvbyIsICctRnAnLCAiLVRmb28iIF0sCiAJJy1UIHdpdGggaW52 YWxpZCBmb3JtYXQgZmFpbHMnKTsKIAotbWtkaXIgIiR0ZW1wZGlyLyRzdXBl cmxvbmduYW1lIjsKLXBzcWwgJ3Bvc3RncmVzJywKLSAgIkNSRUFURSBUQUJM RVNQQUNFIHRibHNwYzMgTE9DQVRJT04gJyR0ZW1wZGlyLyRzdXBlcmxvbmdu YW1lJzsiOwotY29tbWFuZF9vayhbICdwZ19iYXNlYmFja3VwJywgJy1EJywg IiR0ZW1wZGlyL3RhcmJhY2t1cF9sMyIsICctRnQnIF0sCi0JJ3BnX2Jhc2Vi YWNrdXAgdGFyIHdpdGggbG9uZyBzeW1saW5rIHRhcmdldCcpOwotcHNxbCAn cG9zdGdyZXMnLCAiRFJPUCBUQUJMRVNQQUNFIHRibHNwYzM7IjsKKyMgVGFy IGZvcm1hdCBkb2Vzbid0IHN1cHBvcnQgZmlsZW5hbWVzIGxvbmdlciB0aGFu IDEwMCBieXRlcy4KK215ICRzdXBlcmxvbmduYW1lID0gInN1cGVybG9uZ25h bWVfIiAuICgieCIgeCAxMDApOworbXkgJHN1cGVybG9uZ3BhdGggPSAiJHRl bXBkaXIvcGdkYXRhLyRzdXBlcmxvbmduYW1lIjsKKworb3BlbiBGSUxFLCAi PiRzdXBlcmxvbmdwYXRoIiBvciBkaWUgInVuYWJsZSB0byBjcmVhdGUgZmls ZSAkc3VwZXJsb25ncGF0aCI7CitjbG9zZSBGSUxFOworY29tbWFuZF9mYWls cyhbICdwZ19iYXNlYmFja3VwJywgJy1EJywgIiR0ZW1wZGlyL3RhcmJhY2t1 cF9sMSIsICctRnQnIF0sCisJJ3BnX2Jhc2ViYWNrdXAgdGFyIHdpdGggbG9u ZyBuYW1lIGZhaWxzJyk7Cit1bmxpbmsgIiR0ZW1wZGlyL3BnZGF0YS8kc3Vw ZXJsb25nbmFtZSI7CisKKyMgVGhlIGZvbGxvd2luZyB0ZXN0cyB0ZXN0IHN5 bWxpbmtzLiBXaW5kb3dzIGRvZXNuJ3QgaGF2ZSBzeW1saW5rcywgc28KKyMg c2tpcCBvbiBXaW5kb3dzLgorU0tJUDogeworICAgIHNraXAgInN5bWxpbmtz IG5vdCBzdXBwb3J0ZWQgb24gV2luZG93cyIsIDEwIGlmICgkQ29uZmlne29z bmFtZX0gZXEgIk1TV2luMzIiKTsKKworCSMgQ3JlYXRlIGEgdGVtcG9yYXJ5 IGRpcmVjdG9yeSBpbiB0aGUgc3lzdGVtIGxvY2F0aW9uIGFuZCBzeW1saW5r IGl0CisJIyB0byBvdXIgcGh5c2ljYWwgdGVtcCBsb2NhdGlvbi4gIFRoYXQg d2F5IHdlIGNhbiB1c2Ugc2hvcnRlciBuYW1lcworCSMgZm9yIHRoZSB0YWJs ZXNwYWNlIGRpcmVjdG9yaWVzLCB3aGljaCBob3BlZnVsbHkgd29uJ3QgcnVu IGFmb3VsIG9mCisJIyB0aGUgOTkgY2hhcmFjdGVyIGxlbmd0aCBsaW1pdC4K KwlteSAkc2hvcnRlcl90ZW1wZGlyID0gdGVtcGRpcl9zaG9ydCAuICIvdGVt cGRpciI7CisJc3ltbGluayAiJHRlbXBkaXIiLCAkc2hvcnRlcl90ZW1wZGly OworCisJbWtkaXIgIiR0ZW1wZGlyL3RibHNwYzEiOworCXBzcWwgJ3Bvc3Rn cmVzJywKKwkiQ1JFQVRFIFRBQkxFU1BBQ0UgdGJsc3BjMSBMT0NBVElPTiAn JHNob3J0ZXJfdGVtcGRpci90YmxzcGMxJzsiOworCXBzcWwgJ3Bvc3RncmVz JywgIkNSRUFURSBUQUJMRSB0ZXN0MSAoYSBpbnQpIFRBQkxFU1BBQ0UgdGJs c3BjMTsiOworCWNvbW1hbmRfb2soWyAncGdfYmFzZWJhY2t1cCcsICctRCcs ICIkdGVtcGRpci90YXJiYWNrdXAyIiwgJy1GdCcgXSwKKwkJCSAgICd0YXIg Zm9ybWF0IHdpdGggdGFibGVzcGFjZXMnKTsKKwlvaygtZiAiJHRlbXBkaXIv dGFyYmFja3VwMi9iYXNlLnRhciIsICdiYWNrdXAgdGFyIHdhcyBjcmVhdGVk Jyk7CisJbXkgQHRibHNwY190YXJzID0gZ2xvYiAiJHRlbXBkaXIvdGFyYmFj a3VwMi9bMC05XSoudGFyIjsKKwlpcyhzY2FsYXIoQHRibHNwY190YXJzKSwg MSwgJ29uZSB0YWJsZXNwYWNlIHRhciB3YXMgY3JlYXRlZCcpOworCisJY29t bWFuZF9mYWlscygKKwkJWyAncGdfYmFzZWJhY2t1cCcsICctRCcsICIkdGVt cGRpci9iYWNrdXAxIiwgJy1GcCcgXSwKKwkJJ3BsYWluIGZvcm1hdCB3aXRo IHRhYmxlc3BhY2VzIGZhaWxzIHdpdGhvdXQgdGFibGVzcGFjZSBtYXBwaW5n Jyk7CisKKwljb21tYW5kX29rKAorCQlbICAgJ3BnX2Jhc2ViYWNrdXAnLCAn LUQnLCAiJHRlbXBkaXIvYmFja3VwMSIsICctRnAnLAorCQkJIi1UJHNob3J0 ZXJfdGVtcGRpci90YmxzcGMxPSR0ZW1wZGlyL3RiYWNrdXAvdGJsc3BjMSIg XSwKKwkJJ3BsYWluIGZvcm1hdCB3aXRoIHRhYmxlc3BhY2VzIHN1Y2NlZWRz IHdpdGggdGFibGVzcGFjZSBtYXBwaW5nJyk7CisJb2soLWQgIiR0ZW1wZGly L3RiYWNrdXAvdGJsc3BjMSIsICd0YWJsZXNwYWNlIHdhcyByZWxvY2F0ZWQn KTsKKwlvcGVuZGlyKG15ICRkaCwgIiR0ZW1wZGlyL3BnZGF0YS9wZ190Ymxz cGMiKSBvciBkaWU7CisJb2soICggICBncmVwIHsKKwkJLWwgIiR0ZW1wZGly L2JhY2t1cDEvcGdfdGJsc3BjLyRfIgorCQkJYW5kIHJlYWRsaW5rICIkdGVt cGRpci9iYWNrdXAxL3BnX3RibHNwYy8kXyIgZXEKKwkJCSIkdGVtcGRpci90 YmFja3VwL3RibHNwYzEiCisJCQl9IHJlYWRkaXIoJGRoKSksCisJCSJ0YWJs ZXNwYWNlIHN5bWxpbmsgd2FzIHVwZGF0ZWQiKTsKKwljbG9zZWRpciAkZGg7 CisKKwlta2RpciAiJHRlbXBkaXIvdGJsPXNwYzIiOworCXBzcWwgJ3Bvc3Rn cmVzJywgIkRST1AgVEFCTEUgdGVzdDE7IjsKKwlwc3FsICdwb3N0Z3Jlcycs ICJEUk9QIFRBQkxFU1BBQ0UgdGJsc3BjMTsiOworCXBzcWwgJ3Bvc3RncmVz JywKKwkiQ1JFQVRFIFRBQkxFU1BBQ0UgdGJsc3BjMiBMT0NBVElPTiAnJHNo b3J0ZXJfdGVtcGRpci90Ymw9c3BjMic7IjsKKwljb21tYW5kX29rKAorCQlb ICAgJ3BnX2Jhc2ViYWNrdXAnLCAnLUQnLCAiJHRlbXBkaXIvYmFja3VwMyIs ICctRnAnLAorCQkJIi1UJHNob3J0ZXJfdGVtcGRpci90YmxcXD1zcGMyPSR0 ZW1wZGlyL3RiYWNrdXAvdGJsXFw9c3BjMiIgXSwKKwkJJ21hcHBpbmcgdGFi bGVzcGFjZSB3aXRoID0gc2lnbiBpbiBwYXRoJyk7CisJb2soLWQgIiR0ZW1w ZGlyL3RiYWNrdXAvdGJsPXNwYzIiLCAndGFibGVzcGFjZSB3aXRoID0gc2ln biB3YXMgcmVsb2NhdGVkJyk7CisJcHNxbCAncG9zdGdyZXMnLCAiRFJPUCBU QUJMRVNQQUNFIHRibHNwYzI7IjsKKworCW1rZGlyICIkdGVtcGRpci8kc3Vw ZXJsb25nbmFtZSI7CisJcHNxbCAncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFC TEVTUEFDRSB0YmxzcGMzIExPQ0FUSU9OICckdGVtcGRpci8kc3VwZXJsb25n bmFtZSc7IjsKKwljb21tYW5kX29rKFsgJ3BnX2Jhc2ViYWNrdXAnLCAnLUQn LCAiJHRlbXBkaXIvdGFyYmFja3VwX2wzIiwgJy1GdCcgXSwKKwkJCSAgICdw Z19iYXNlYmFja3VwIHRhciB3aXRoIGxvbmcgc3ltbGluayB0YXJnZXQnKTsK Kwlwc3FsICdwb3N0Z3JlcycsICJEUk9QIFRBQkxFU1BBQ0UgdGJsc3BjMzsi OworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jdGwvdC8wMDFfc3RhcnRf c3RvcC5wbCBiL3NyYy9iaW4vcGdfY3RsL3QvMDAxX3N0YXJ0X3N0b3AucGwK aW5kZXggYmNjZWI1N2QuLjRmNjVhZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfY3RsL3QvMDAxX3N0YXJ0X3N0b3AucGwKKysrIGIvc3JjL2Jpbi9wZ19j dGwvdC8wMDFfc3RhcnRfc3RvcC5wbApAQCAtMTUsMTMgKzE1LDkgQEAgY29t bWFuZF9leGl0X2lzKFsgJ3BnX2N0bCcsICdzdGFydCcsICctRCcsICIkdGVt cGRpci9ub25leGlzdGVudCIgXSwKIAogY29tbWFuZF9vayhbICdwZ19jdGwn LCAnaW5pdGRiJywgJy1EJywgIiR0ZW1wZGlyL2RhdGEiIF0sICdwZ19jdGwg aW5pdGRiJyk7CiBjb21tYW5kX29rKAotCVsgICAiJEVOVnt0b3BfYnVpbGRk aXJ9L3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcyIsICctLWNvbmZpZy1h dXRoJywKKwlbICRFTlZ7UEdfUkVHUkVTU30sICctLWNvbmZpZy1hdXRoJywK IAkJIiR0ZW1wZGlyL2RhdGEiIF0sCiAJJ2NvbmZpZ3VyZSBhdXRoZW50aWNh dGlvbicpOwotb3BlbiBDT05GLCAiPj4kdGVtcGRpci9kYXRhL3Bvc3RncmVz cWwuY29uZiI7Ci1wcmludCBDT05GICJsaXN0ZW5fYWRkcmVzc2VzID0gJydc biI7Ci1wcmludCBDT05GICJ1bml4X3NvY2tldF9kaXJlY3RvcmllcyA9ICck dGVtcGRpcl9zaG9ydCdcbiI7Ci1jbG9zZSBDT05GOwogY29tbWFuZF9vayhb ICdwZ19jdGwnLCAnc3RhcnQnLCAnLUQnLCAiJHRlbXBkaXIvZGF0YSIsICct dycgXSwKIAkncGdfY3RsIHN0YXJ0IC13Jyk7CiBjb21tYW5kX29rKFsgJ3Bn X2N0bCcsICdzdGFydCcsICctRCcsICIkdGVtcGRpci9kYXRhIiwgJy13JyBd LApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jdGwvdC8wMDJfc3RhdHVzLnBs IGIvc3JjL2Jpbi9wZ19jdGwvdC8wMDJfc3RhdHVzLnBsCmluZGV4IGVjMGEy YTcuLjMxZjdjNzIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY3RsL3QvMDAy X3N0YXR1cy5wbAorKysgYi9zcmMvYmluL3BnX2N0bC90LzAwMl9zdGF0dXMu cGwKQEAgLTEwLDEwICsxMCw2IEBAIGNvbW1hbmRfZXhpdF9pcyhbICdwZ19j dGwnLCAnc3RhdHVzJywgJy1EJywgIiR0ZW1wZGlyL25vbmV4aXN0ZW50IiBd LAogCTQsICdwZ19jdGwgc3RhdHVzIHdpdGggbm9uZXhpc3RlbnQgZGlyZWN0 b3J5Jyk7CiAKIHN0YW5kYXJkX2luaXRkYiAiJHRlbXBkaXIvZGF0YSI7Ci1v cGVuIENPTkYsICI+PiR0ZW1wZGlyL2RhdGEvcG9zdGdyZXNxbC5jb25mIjsK LXByaW50IENPTkYgImxpc3Rlbl9hZGRyZXNzZXMgPSAnJ1xuIjsKLXByaW50 IENPTkYgInVuaXhfc29ja2V0X2RpcmVjdG9yaWVzID0gJyR0ZW1wZGlyX3No b3J0J1xuIjsKLWNsb3NlIENPTkY7CiAKIGNvbW1hbmRfZXhpdF9pcyhbICdw Z19jdGwnLCAnc3RhdHVzJywgJy1EJywgIiR0ZW1wZGlyL2RhdGEiIF0sCiAJ MywgJ3BnX2N0bCBzdGF0dXMgd2l0aCBzZXJ2ZXIgbm90IHJ1bm5pbmcnKTsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmV3aW5kL1Jld2luZFRlc3QucG0g Yi9zcmMvYmluL3BnX3Jld2luZC9SZXdpbmRUZXN0LnBtCmluZGV4IGRiNWU5 MGIuLjdmZDhhZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmV3aW5kL1Jl d2luZFRlc3QucG0KKysrIGIvc3JjL2Jpbi9wZ19yZXdpbmQvUmV3aW5kVGVz dC5wbQpAQCAtMTk1LDE5ICsxOTUsMTQgQEAgbWF4X2Nvbm5lY3Rpb25zID0g MTAKICkpOwogCiAJIyBBY2NlcHQgcmVwbGljYXRpb24gY29ubmVjdGlvbnMg b24gbWFzdGVyCi0JYXBwZW5kX3RvX2ZpbGUoCi0JCSIkdGVzdF9tYXN0ZXJf ZGF0YWRpci9wZ19oYmEuY29uZiIsIHFxKAotbG9jYWwgcmVwbGljYXRpb24g YWxsIHRydXN0Ci0pKTsKKwljb25maWd1cmVfaGJhX2Zvcl9yZXBsaWNhdGlv biAkdGVzdF9tYXN0ZXJfZGF0YWRpcjsKIAotCXN5c3RlbV9vcl9iYWlsKCdw Z19jdGwnICwgJy13JywKLQkJCQkgICAnLUQnICwgJHRlc3RfbWFzdGVyX2Rh dGFkaXIsCi0JCQkJICAgIi1vIiwgIi1rICR0ZW1wZGlyX3Nob3J0IC0tbGlz dGVuLWFkZHJlc3Nlcz0nJyAtcCAkcG9ydF9tYXN0ZXIiLAotCQkJCSAgICdz dGFydCcpOworCXN5c3RlbV9vcl9iYWlsKCdwZ19jdGwnLCAnLXcnLAorCQkJ CSAgICctRCcsICR0ZXN0X21hc3Rlcl9kYXRhZGlyLAorCQkJCSAgICctbycs ICItcCAkcG9ydF9tYXN0ZXIiLCAnc3RhcnQnKTsKIAogCSMjIyMgTm93IHJ1 biB0aGUgdGVzdC1zcGVjaWZpYyBwYXJ0cyB0byBpbml0aWFsaXplIHRoZSBt YXN0ZXIgYmVmb3JlIHNldHRpbmcKIAkjIHVwIHN0YW5kYnkKLQkkRU5We1BH SE9TVH0gPSAkdGVtcGRpcl9zaG9ydDsKIH0KIAogc3ViIGNyZWF0ZV9zdGFu ZGJ5CkBAIC0yMjgsOCArMjIzLDcgQEAgcmVjb3ZlcnlfdGFyZ2V0X3RpbWVs aW5lPSdsYXRlc3QnCiAKIAkjIFN0YXJ0IHN0YW5kYnkKIAlzeXN0ZW1fb3Jf YmFpbCgncGdfY3RsJywgJy13JywgJy1EJywgJHRlc3Rfc3RhbmRieV9kYXRh ZGlyLAotCQkJCSAgICctbycsICItayAkdGVtcGRpcl9zaG9ydCAtLWxpc3Rl bi1hZGRyZXNzZXM9JycgLXAgJHBvcnRfc3RhbmRieSIsCi0JCQkJICAgJ3N0 YXJ0Jyk7CisJCQkJICAgJy1vJywgIi1wICRwb3J0X3N0YW5kYnkiLCAnc3Rh cnQnKTsKIAogCSMgV2FpdCB1bnRpbCB0aGUgc3RhbmRieSBoYXMgY2F1Z2h0 IHVwIHdpdGggdGhlIHByaW1hcnksIGJ5IHBvbGxpbmcKIAkjIHBnX3N0YXRf cmVwbGljYXRpb24uCkBAIC0yNjUsNyArMjU5LDcgQEAgc3ViIHJ1bl9wZ19y ZXdpbmQKIAlteSAkdGVzdF9tb2RlID0gc2hpZnQ7CiAKIAkjIFN0b3AgdGhl IG1hc3RlciBhbmQgYmUgcmVhZHkgdG8gcGVyZm9ybSB0aGUgcmV3aW5kCi0J c3lzdGVtX29yX2JhaWwoJ3BnX2N0bCcsICctRCcsICR0ZXN0X21hc3Rlcl9k YXRhZGlyLCAnc3RvcCcsICctbScsICdmYXN0Jyk7CisJc3lzdGVtX29yX2Jh aWwoJ3BnX2N0bCcsICctRCcsICR0ZXN0X21hc3Rlcl9kYXRhZGlyLCAnLW0n LCAnZmFzdCcsICdzdG9wJyk7CiAKIAkjIEF0IHRoaXMgcG9pbnQsIHRoZSBy ZXdpbmQgcHJvY2Vzc2luZyBpcyByZWFkeSB0byBydW4uCiAJIyBXZSBub3cg aGF2ZSBhIHZlcnkgc2ltcGxlIHNjZW5hcmlvIHdpdGggYSBmZXcgZGl2ZXJn ZWQgV0FMIHJlY29yZC4KQEAgLTI4Myw4ICsyNzcsOCBAQCBzdWIgcnVuX3Bn X3Jld2luZAogCXsKIAkJIyBEbyByZXdpbmQgdXNpbmcgYSBsb2NhbCBwZ2Rh dGEgYXMgc291cmNlCiAJCSMgU3RvcCB0aGUgbWFzdGVyIGFuZCBiZSByZWFk eSB0byBwZXJmb3JtIHRoZSByZXdpbmQKLQkJc3lzdGVtX29yX2JhaWwoJ3Bn X2N0bCcsICctRCcsICR0ZXN0X3N0YW5kYnlfZGF0YWRpciwgJ3N0b3AnLAot CQkJCQkgICAnLW0nLCAnZmFzdCcpOworCQlzeXN0ZW1fb3JfYmFpbCgncGdf Y3RsJywgJy1EJywgJHRlc3Rfc3RhbmRieV9kYXRhZGlyLAorCQkJCQkgICAn LW0nLCAnZmFzdCcsICdzdG9wJyk7CiAJCWNvbW1hbmRfb2soWydwZ19yZXdp bmQnLAogCQkJCQkiLS1kZWJ1ZyIsCiAJCQkJCSItLXNvdXJjZS1wZ2RhdGE9 JHRlc3Rfc3RhbmRieV9kYXRhZGlyIiwKQEAgLTMwMyw3ICsyOTcsNiBAQCBz dWIgcnVuX3BnX3Jld2luZAogCX0KIAllbHNlCiAJewotCiAJCSMgQ2Fubm90 IGNvbWUgaGVyZSBub3JtYWxseQogCQlkaWUoIkluY29ycmVjdCB0ZXN0IG1v ZGUgc3BlY2lmaWVkIik7CiAJfQpAQCAtMzIzLDggKzMxNiw3IEBAIHJlY292 ZXJ5X3RhcmdldF90aW1lbGluZT0nbGF0ZXN0JwogCiAJIyBSZXN0YXJ0IHRo ZSBtYXN0ZXIgdG8gY2hlY2sgdGhhdCByZXdpbmQgd2VudCBjb3JyZWN0bHkK IAlzeXN0ZW1fb3JfYmFpbCgncGdfY3RsJywgJy13JywgJy1EJywgJHRlc3Rf bWFzdGVyX2RhdGFkaXIsCi0JCQkJICAgJy1vJywgIi1rICR0ZW1wZGlyX3No b3J0IC0tbGlzdGVuLWFkZHJlc3Nlcz0nJyAtcCAkcG9ydF9tYXN0ZXIiLAot CQkJCSAgICdzdGFydCcpOworCQkJCSAgICctbycsICItcCAkcG9ydF9tYXN0 ZXIiLCAnc3RhcnQnKTsKIAogCSMjIyMgTm93IHJ1biB0aGUgdGVzdC1zcGVj aWZpYyBwYXJ0cyB0byBjaGVjayB0aGUgcmVzdWx0CiB9CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9wZXJsL1Rlc3RMaWIucG0gYi9zcmMvdGVzdC9wZXJsL1Rl c3RMaWIucG0KaW5kZXggMDE5M2Q1Ny4uNGQwZGQ0NSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcGVybC9UZXN0TGliLnBtCisrKyBiL3NyYy90ZXN0L3Blcmwv VGVzdExpYi5wbQpAQCAtMywxMSArMywxMyBAQCBwYWNrYWdlIFRlc3RMaWI7 CiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzOwogCit1c2UgQ29uZmlnOwog dXNlIEV4cG9ydGVyICdpbXBvcnQnOwogb3VyIEBFWFBPUlQgPSBxdygKICAg dGVtcGRpcgogICB0ZW1wZGlyX3Nob3J0CiAgIHN0YW5kYXJkX2luaXRkYgor ICBjb25maWd1cmVfaGJhX2Zvcl9yZXBsaWNhdGlvbgogICBzdGFydF90ZXN0 X3NlcnZlcgogICByZXN0YXJ0X3Rlc3Rfc2VydmVyCiAgIHBzcWwKQEAgLTEx MiwyOSArMTE0LDgzIEBAIHN1YiB0ZW1wZGlyX3Nob3J0CiAJcmV0dXJuIEZp bGU6OlRlbXA6OnRlbXBkaXIoQ0xFQU5VUCA9PiAxKTsKIH0KIAorIyBJbml0 aWFsaXplIGEgbmV3IGNsdXN0ZXIgZm9yIHRlc3RpbmcuCisjCisjIFRoZSBQ R0hPU1QgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0IHRvIGNvbm5lY3Qg dG8gdGhlIG5ldyBjbHVzdGVyLgorIworIyBBdXRoZW50aWNhdGlvbiBpcyBz ZXQgdXAgc28gdGhhdCBvbmx5IHRoZSBjdXJyZW50IE9TIHVzZXIgY2FuIGFj Y2VzcyB0aGUKKyMgY2x1c3Rlci4gT24gVW5peCwgd2UgdXNlIFVuaXggZG9t YWluIHNvY2tldCBjb25uZWN0aW9ucywgd2l0aCB0aGUgc29ja2V0IGluCisj IGEgZGlyZWN0b3J5IHRoYXQncyBvbmx5IGFjY2Vzc2libGUgdG8gdGhlIGN1 cnJlbnQgdXNlciB0byBlbnN1cmUgdGhhdC4KKyMgT24gV2luZG93cywgd2Ug dXNlIFNTUEkgYXV0aGVudGljYXRpb24gdG8gZW5zdXJlIHRoZSBzYW1lIChi eSBwZ19yZWdyZXNzCisjIC0tY29uZmlnLWF1dGgpLgogc3ViIHN0YW5kYXJk X2luaXRkYgogewogCW15ICRwZ2RhdGEgPSBzaGlmdDsKIAlzeXN0ZW1fb3Jf YmFpbCgnaW5pdGRiJywgJy1EJywgIiRwZ2RhdGEiLCAnLUEnICwgJ3RydXN0 JywgJy1OJyk7Ci0Jc3lzdGVtX29yX2JhaWwoIiRFTlZ7dG9wX2J1aWxkZGly fS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MiLAotCQknLS1jb25maWct YXV0aCcsICRwZ2RhdGEpOworCXN5c3RlbV9vcl9iYWlsKCRFTlZ7UEdfUkVH UkVTU30sICctLWNvbmZpZy1hdXRoJywgJHBnZGF0YSk7CisKKwlteSAkdGVt cGRpcl9zaG9ydCA9IHRlbXBkaXJfc2hvcnQ7CisKKwlvcGVuIENPTkYsICI+ PiRwZ2RhdGEvcG9zdGdyZXNxbC5jb25mIjsKKwlwcmludCBDT05GICJcbiMg QWRkZWQgYnkgVGVzdExpYi5wbSlcbiI7CisJaWYgKCRDb25maWd7b3NuYW1l fSBlcSAiTVNXaW4zMiIpCisJeworCQlwcmludCBDT05GICJsaXN0ZW5fYWRk cmVzc2VzID0gJzEyNy4wLjAuMSdcbiI7CisJfQorCWVsc2UKKwl7CisJCXBy aW50IENPTkYgInVuaXhfc29ja2V0X2RpcmVjdG9yaWVzID0gJyR0ZW1wZGly X3Nob3J0J1xuIjsKKwl9CisJY2xvc2UgQ09ORjsKKworCSRFTlZ7UEdIT1NU fSAgICAgICAgID0gKCRDb25maWd7b3NuYW1lfSBlcSAiTVNXaW4zMiIpID8g IjEyNy4wLjAuMSIgOiAkdGVtcGRpcl9zaG9ydDsKK30KKworIyBTZXQgdXAg dGhlIGNsdXN0ZXIgdG8gYWxsb3cgcmVwbGljYXRpb24gY29ubmVjdGlvbnMs IGluIHRoZSBzYW1lIHdheSB0aGF0CisjIHN0YW5kYXJkX2luaXRkYiBkb2Vz IGZvciBub3JtYWwgY29ubmVjdGlvbnMuCitzdWIgY29uZmlndXJlX2hiYV9m b3JfcmVwbGljYXRpb24KK3sKKwlteSAkcGdkYXRhID0gc2hpZnQ7CisKKwlv cGVuIEhCQSwgIj4+JHBnZGF0YS9wZ19oYmEuY29uZiI7CisJcHJpbnQgSEJB ICJcbiMgQWxsb3cgcmVwbGljYXRpb24gKHNldCB1cCBieSBUZXN0TGliLnBt KVxuIjsKKwlpZiAoJENvbmZpZ3tvc25hbWV9IG5lICJNU1dpbjMyIikKKwl7 CisJCXByaW50IEhCQSAibG9jYWwgcmVwbGljYXRpb24gYWxsIHRydXN0XG4i OworCX0KKwllbHNlCisJeworCQlwcmludCBIQkEgImhvc3QgcmVwbGljYXRp b24gYWxsIDEyNy4wLjAuMS8zMiBzc3BpIGluY2x1ZGVfcmVhbG09MSBtYXA9 cmVncmVzc1xuIjsKKwkJcHJpbnQgSEJBICJob3N0IHJlcGxpY2F0aW9uIGFs bCA6OjEvMTI4IHNzcGkgaW5jbHVkZV9yZWFsbT0xIG1hcD1yZWdyZXNzXG4i OworCX0KKwljbG9zZSBIQkE7CiB9CiAKIG15ICgkdGVzdF9zZXJ2ZXJfZGF0 YWRpciwgJHRlc3Rfc2VydmVyX2xvZ2ZpbGUpOwogCisKKyMgSW5pdGlhbGl6 ZSBhIG5ldyBjbHVzdGVyIGZvciB0ZXN0aW5nLCBhbmQgc3RhcnQgaXQuCisj CisjIFRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIHRlbXBvcmFyeSBkaXJlY3Rv cnkgdG8gY3JlYXRlIHRoZSBjbHVzdGVyIGluLgorIyBJZiB0aGUgc2Vjb25k IGFyZ3VtZW50IGlzIHRydWUsIHRoZSBjbHVzdGVyIGNvbmZpZ3VyZWQgdG8g YWNjZXB0CisjIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb25zLgogc3ViIHN0YXJ0 X3Rlc3Rfc2VydmVyCiB7Ci0JbXkgKCR0ZW1wZGlyKSA9IEBfOworCW15ICR0 ZW1wZGlyID0gc2hpZnQ7CisJbXkgJHJlcGxpY2F0aW9uID0gc2hpZnQ7CiAJ bXkgJHJldDsKIAotCW15ICR0ZW1wZGlyX3Nob3J0ID0gdGVtcGRpcl9zaG9y dDsKLQogCXByaW50KCIjIyMgU3RhcnRpbmcgdGVzdCBzZXJ2ZXIgaW4gJHRl bXBkaXJcbiIpOwogCXN0YW5kYXJkX2luaXRkYiAiJHRlbXBkaXIvcGdkYXRh IjsKLQkkcmV0ID0gc3lzdGVtX2xvZygncGdfY3RsJywgJy1EJywgIiR0ZW1w ZGlyL3BnZGF0YSIsICctdycsICctbCcsCi0JICAiJHRlbXBkaXIvbG9nZmls ZSIsICctbycsCi0iLS1mc3luYz1vZmYgLWsgXCIkdGVtcGRpcl9zaG9ydFwi IC0tbGlzdGVuLWFkZHJlc3Nlcz0nJyAtLWxvZy1zdGF0ZW1lbnQ9YWxsIiwK LQkJCQkJJ3N0YXJ0Jyk7CisJaWYgKCRyZXBsaWNhdGlvbikKKwl7CisJCWNv bmZpZ3VyZV9mb3JfcmVwbGljYXRpb24oIiR0ZW1wZGlyL3BnZGF0YSIpOwor CX0KKworCSRyZXQgPSBzeXN0ZW1fbG9nKCdwZ19jdGwnLCAnLUQnLCAiJHRl bXBkaXIvcGdkYXRhIiwgJy13JywKKwkgICctbCcsICIkdGVtcGRpci9sb2dm aWxlIiwgJy1vJywgIi0tZnN5bmM9b2ZmIC0tbG9nLXN0YXRlbWVudD1hbGwi LAorCSAgJ3N0YXJ0Jyk7CisKIAlpZiAoJHJldCAhPSAwKQogCXsKIAkJcHJp bnQgIiMgcGdfY3RsIGZhaWxlZDsgbG9nZmlsZTpcbiI7CkBAIC0xNDIsNyAr MTk4LDYgQEAgc3ViIHN0YXJ0X3Rlc3Rfc2VydmVyCiAJCUJBSUxfT1VUKCJw Z19jdGwgZmFpbGVkIik7CiAJfQogCi0JJEVOVntQR0hPU1R9ICAgICAgICAg PSAkdGVtcGRpcl9zaG9ydDsKIAkkdGVzdF9zZXJ2ZXJfZGF0YWRpciA9ICIk dGVtcGRpci9wZ2RhdGEiOwogCSR0ZXN0X3NlcnZlcl9sb2dmaWxlID0gIiR0 ZW1wZGlyL2xvZ2ZpbGUiOwogfQpAQCAtMjE2LDcgKzI3MSw5IEBAIHN1YiBj b21tYW5kX2V4aXRfaXMKIAlwcmludCgiIyBSdW5uaW5nOiAiIC4gam9pbigi ICIsIEB7JGNtZH0pIC4iXG4iKTsKIAlteSAkaCA9IHN0YXJ0ICRjbWQ7CiAJ JGgtPmZpbmlzaCgpOwotCWlzKCRoLT5yZXN1bHQoMCksICRleHBlY3RlZCwg JHRlc3RfbmFtZSk7CisJbXkgJHJlc3VsdCA9ICgkQ29uZmlne29zbmFtZX0g ZXEgIk1TV2luMzIiKSA/CisJCSgkaC0+ZnVsbF9yZXN1bHRzKVswXSA6ICRo LT5yZXN1bHQoMCk7CisJaXMoJHJlc3VsdCwgJGV4cGVjdGVkLCAkdGVzdF9u YW1lKTsKIH0KIAogc3ViIHByb2dyYW1faGVscF9vawpAQCAtMjY5LDcgKzMy NiwxMiBAQCBzdWIgaXNzdWVzX3NxbF9saWtlCiAJdHJ1bmNhdGUgJHRlc3Rf c2VydmVyX2xvZ2ZpbGUsIDA7CiAJbXkgJHJlc3VsdCA9IHJ1bl9sb2coJGNt ZCk7CiAJb2soJHJlc3VsdCwgIkAkY21kIGV4aXQgY29kZSAwIik7Ci0JbXkg JGxvZyA9IGBjYXQgJyR0ZXN0X3NlcnZlcl9sb2dmaWxlJ2A7CisKKwkjIHJl YWQgdGhlIHNlcnZlciBsb2cgZmlsZSBpbnRvIHZhcmlhYmxlCisJb3BlbiBT RVJWRVJMT0csICc8JywgJHRlc3Rfc2VydmVyX2xvZ2ZpbGUgb3IgZGllICJD b3VsZCBub3Qgb3BlbiBzZXJ2ZXIgbG9nIGZpbGUgJHRlc3Rfc2VydmVyX2xv Z2ZpbGU6ICQhIjsKKwlteSAkbG9nID0gZG8geyBsb2NhbCAkLzsgPFNFUlZF UkxPRz4gfTsKKwljbG9zZSBTRVJWRVJMT0c7CisKIAlsaWtlKCRsb2csICRl eHBlY3RlZF9zcWwsICIkdGVzdF9uYW1lOiBTUUwgZm91bmQgaW4gc2VydmVy IGxvZyIpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9jbGVh bi5iYXQgYi9zcmMvdG9vbHMvbXN2Yy9jbGVhbi5iYXQKaW5kZXggZmJlM2Nj Ni4uNTBjMzYxZSAxMDA3NTUKLS0tIGEvc3JjL3Rvb2xzL21zdmMvY2xlYW4u YmF0CisrKyBiL3NyYy90b29scy9tc3ZjL2NsZWFuLmJhdApAQCAtODgsNiAr ODgsMTQgQEAgaWYgZXhpc3Qgc3JjXHRlc3RccmVncmVzc1xyZWdyZXNzLmRs bCBkZWwgL3Egc3JjXHRlc3RccmVncmVzc1xyZWdyZXNzLmRsbAogaWYgZXhp c3Qgc3JjXHRlc3RccmVncmVzc1xyZWZpbnQuZGxsIGRlbCAvcSBzcmNcdGVz dFxyZWdyZXNzXHJlZmludC5kbGwKIGlmIGV4aXN0IHNyY1x0ZXN0XHJlZ3Jl c3NcYXV0b2luYy5kbGwgZGVsIC9xIHNyY1x0ZXN0XHJlZ3Jlc3NcYXV0b2lu Yy5kbGwKIAoraWYgZXhpc3Qgc3JjXHRlc3Rcc3NsXHRtcF9jaGVjayByZCAv cyAvcSBzcmNcdGVzdFxzc2xcdG1wX2NoZWNrCitpZiBleGlzdCBzcmNcYmlu XGluaXRkYlx0bXBfY2hlY2sgcmQgL3MgL3Egc3JjXGJpblxpbml0ZGJcdG1w X2NoZWNrCitpZiBleGlzdCBzcmNcYmluXHBnX2Jhc2ViYWNrdXBcdG1wX2No ZWNrIHJkIC9zIC9xIHNyY1xiaW5ccGdfYmFzZWJhY2t1cFx0bXBfY2hlY2sK K2lmIGV4aXN0IHNyY1xiaW5ccGdfY29uZmlnXHRtcF9jaGVjayByZCAvcyAv cSBzcmNcYmluXHBnX2NvbmZpZ1x0bXBfY2hlY2sKK2lmIGV4aXN0IHNyY1xi aW5ccGdfY3RsXHRtcF9jaGVjayByZCAvcyAvcSBzcmNcYmluXHBnX2N0bFx0 bXBfY2hlY2sKK2lmIGV4aXN0IHNyY1xiaW5ccGdfcmV3aW5kXHRtcF9jaGVj ayByZCAvcyAvcSBzcmNcYmluXHBnX3Jld2luZFx0bXBfY2hlY2sKK2lmIGV4 aXN0IHNyY1xiaW5cc2NyaXB0c1x0bXBfY2hlY2sgcmQgL3MgL3Egc3JjXGJp blxzY3JpcHRzXHRtcF9jaGVjaworCiBSRU0gQ2xlYW4gdXAgZGF0YWZpbGVz IGJ1aWx0IHdpdGggY29udHJpYgogUkVNIGNkIGNvbnRyaWIKIFJFTSBmb3Ig L3IgJSVmIGluICgqLnNxbCkgZG8gaWYgZXhpc3QgJSVmLmluIGRlbCAlJWYK ZGlmZiAtLWdpdCBhL3NyYy90b29scy9tc3ZjL3ZjcmVncmVzcy5wbCBiL3Ny Yy90b29scy9tc3ZjL3ZjcmVncmVzcy5wbAppbmRleCA2MTk2MzgzLi5iMDJm MGU2IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvbXN2Yy92Y3JlZ3Jlc3MucGwK KysrIGIvc3JjL3Rvb2xzL21zdmMvdmNyZWdyZXNzLnBsCkBAIC03LDcgKzcs OSBAQCB1c2Ugc3RyaWN0Owogb3VyICRjb25maWc7CiAKIHVzZSBDd2Q7Cit1 c2UgRmlsZTo6QmFzZW5hbWU7CiB1c2UgRmlsZTo6Q29weTsKK3VzZSBGaWxl OjpGaW5kICgpOwogCiB1c2UgSW5zdGFsbCBxdyhJbnN0YWxsKTsKIApAQCAt MzIsNyArMzQsNyBAQCBpZiAoLWUgInNyYy90b29scy9tc3ZjL2J1aWxkZW52 LnBsIikKIAogbXkgJHdoYXQgPSBzaGlmdCB8fCAiIjsKIGlmICgkd2hhdCA9 fgotL14oY2hlY2t8aW5zdGFsbGNoZWNrfHBsY2hlY2t8Y29udHJpYmNoZWNr fG1vZHVsZXNjaGVja3xlY3BnY2hlY2t8aXNvbGF0aW9uY2hlY2t8dXBncmFk ZWNoZWNrKSQvaQorL14oY2hlY2t8aW5zdGFsbGNoZWNrfHBsY2hlY2t8Y29u dHJpYmNoZWNrfG1vZHVsZXNjaGVja3xlY3BnY2hlY2t8aXNvbGF0aW9uY2hl Y2t8dXBncmFkZWNoZWNrfHRhcGNoZWNrKSQvaQogICApCiB7CiAJJHdoYXQg PSB1YyAkd2hhdDsKQEAgLTc5LDYgKzgxLDcgQEAgbXkgJWNvbW1hbmQgPSAo CiAJQ09OVFJJQkNIRUNLICAgPT4gXCZjb250cmliY2hlY2ssCiAJTU9EVUxF U0NIRUNLICAgPT4gXCZtb2R1bGVzY2hlY2ssCiAJSVNPTEFUSU9OQ0hFQ0sg PT4gXCZpc29sYXRpb25jaGVjaywKKwlUQVBDSEVDSyAgICAgICA9PiBcJnRh cGNoZWNrLAogCVVQR1JBREVDSEVDSyAgID0+IFwmdXBncmFkZWNoZWNrLCk7 CiAKIG15ICRwcm9jID0gJGNvbW1hbmR7JHdoYXR9OwpAQCAtMTcyLDYgKzE3 NSw0MyBAQCBzdWIgaXNvbGF0aW9uY2hlY2sKIAlleGl0ICRzdGF0dXMgaWYg JHN0YXR1czsKIH0KIAorc3ViIHRhcGNoZWNrCit7CisJSW5zdGFsbFRlbXAo KTsKKworCW15IEBhcmdzID0gKCAicHJvdmUiLCAiLS12ZXJib3NlIiwgInQv Ki5wbCIpOworCisJJEVOVntQQVRIfSA9ICIkdG1wX2luc3RhbGxkaXIvYmlu OyRFTlZ7UEFUSH0iOworCSRFTlZ7UEVSTDVMSUJ9ID0gIiR0b3BkaXIvc3Jj L3Rlc3QvcGVybDskRU5We1BFUkw1TElCfSI7CisJJEVOVntQR19SRUdSRVNT fSA9ICIkdG9wZGlyLyRDb25maWcvcGdfcmVncmVzcy9wZ19yZWdyZXNzIjsK KworCSMgRmluZCBvdXQgYWxsIHRoZSBleGlzdGluZyBUQVAgdGVzdHMgYnkg c2ltcGx5IGxvb2tpbmcgZm9yIHQvCisJIyBpbiB0aGUgdHJlZS4KKwlteSAk dGFwX2RpcnMgPSBbXTsKKwlteSBAdG9wX2RpciA9ICgkdG9wZGlyKTsKKwlG aWxlOjpGaW5kOjpmaW5kKAorCQl7ICAgd2FudGVkID0+IHN1YiB7CisJCQkJ L150XHovcworCQkJCSAgJiYgcHVzaChAJHRhcF9kaXJzLCAkRmlsZTo6Rmlu ZDo6bmFtZSk7CisJCQkgIH0KKwkJfSwKKwkJQHRvcF9kaXIpOworCisJIyBQ cm9jZXNzIGVhY2ggdGVzdAorCWZvcmVhY2ggbXkgJHRlc3RfcGF0aCAoQCR0 YXBfZGlycykKKwl7CisJCW5leHQgaWYgKCR0ZXN0X3BhdGggPX4gL1wvc3Ns XC8vICYmICFkZWZpbmVkKCRjb25maWctPntvcGVuc3NsfSkpOworCisJCW15 ICRkaXIgPSBkaXJuYW1lKCR0ZXN0X3BhdGgpOworCQljaGRpciAkZGlyOwor CQkjIFJlc2V0IHRob3NlIHZhbHVlcywgdGhleSBtYXkgaGF2ZSBiZWVuIGNo YW5nZWQgYnkgYW5vdGhlciB0ZXN0LgorCQkkRU5We1RFU1RESVJ9ID0gIiRk aXIiOworCQlzeXN0ZW0oQGFyZ3MpOworCQlteSAkc3RhdHVzID0gJD8gPj4g ODsKKwkJZXhpdCAkc3RhdHVzIGlmICRzdGF0dXM7CisJfQorfQorCiBzdWIg cGxjaGVjawogewogCWNoZGlyICRzdGFydGRpcjsKLS0gCjIuMS40Cgo= --------------000509030008090603030101 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------000509030008090603030101--