From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6676 invoked by alias); 24 May 2010 22:58:11 -0000 Received: (qmail 6666 invoked by uid 22791); 24 May 2010 22:58:10 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 24 May 2010 22:58:05 +0000 Received: from kpbe19.cbf.corp.google.com (kpbe19.cbf.corp.google.com [172.25.105.83]) by smtp-out.google.com with ESMTP id o4OMw3hI031250 for ; Mon, 24 May 2010 15:58:03 -0700 Received: from pvg2 (pvg2.prod.google.com [10.241.210.130]) by kpbe19.cbf.corp.google.com with ESMTP id o4OMw1Ll010626 for ; Mon, 24 May 2010 15:58:02 -0700 Received: by pvg2 with SMTP id 2so522300pvg.8 for ; Mon, 24 May 2010 15:58:01 -0700 (PDT) MIME-Version: 1.0 Received: by 10.141.188.26 with SMTP id q26mr4576182rvp.150.1274741881763; Mon, 24 May 2010 15:58:01 -0700 (PDT) Received: by 10.140.255.14 with HTTP; Mon, 24 May 2010 15:58:01 -0700 (PDT) In-Reply-To: References: <20100520230406.0D0C084398@ruffy.mtv.corp.google.com> Date: Mon, 24 May 2010 23:07:00 -0000 Message-ID: Subject: Re: [patch] Try to use python-config to get python include and lib parameters. From: Doug Evans To: tromey@redhat.com Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd17ec60af97404875ef99f X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-05/txt/msg00560.txt.bz2 --000e0cd17ec60af97404875ef99f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1438 On Fri, May 21, 2010 at 9:25 AM, Tom Tromey wrote: >>>>>> "Doug" =3D=3D Doug Evans writes: > > Doug> 2010-05-20 =A0Doug Evans =A0 > Doug> =A0 =A0 =A0 =A0 * configure.ac: For non-canadian-cross builds (buil= d =3D=3D host), > Doug> =A0 =A0 =A0 =A0 try to use python-config to get python include and = lib parameters. > Doug> =A0 =A0 =A0 =A0 * configure: Regenerate. > > It seems reasonable to me. I've learned that "python-config", which is a python script, can be pretty much used with any recent python version. I've also learned that it's not always spelled "python-config" when install= ed. This version of the patch provides our own copy in python/python-config.py. [NOTE: I didn't name it py-config.py on purpose. It doesn't violate the 8.3 file name rule, and since there already is python-internal.h spelled the way it is, I wanted to keep the spelling close to the public name.] This version runs python-config.py with the specified copy of python. Note that it can also work in a cross-compilation environment if the user provides his/her own script that mimics what `python python-config.py --includes|--ldflags' does. I will let it soak until tomorrow. 2010-05-24 Doug Evans * configure.ac: Try to use python's distutils to fetch compilation parameters. * configure: Regenerate. * python/python-config.py: New file. --000e0cd17ec60af97404875ef99f Content-Type: text/plain; charset=US-ASCII; name="gdb-100524-python-config-3.patch.txt" Content-Disposition: attachment; filename="gdb-100524-python-config-3.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9lwdhj50 Content-length: 13477 MjAxMC0wNS0yNCAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog Y29uZmlndXJlLmFjOiBUcnkgdG8gdXNlIHB5dGhvbidzIGRpc3R1dGlscyB0 byBmZXRjaCBjb21waWxhdGlvbgoJcGFyYW1ldGVycy4KCSogY29uZmlndXJl OiBSZWdlbmVyYXRlLgoJKiBweXRob24vcHl0aG9uLWNvbmZpZy5weTogTmV3 IGZpbGUuCgpJbmRleDogY29uZmlndXJlLmFjCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvY29uZmlndXJlLmFj LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExNwpkaWZmIC11IC1wIC1yMS4x MTcgY29uZmlndXJlLmFjCi0tLSBjb25maWd1cmUuYWMJMjMgQXByIDIwMTAg MTg6MDc6MjYgLTAwMDAJMS4xMTcKKysrIGNvbmZpZ3VyZS5hYwkyNCBNYXkg MjAxMCAyMjo0Mzo0NCAtMDAwMApAQCAtNTg5LDIyICs1ODksMzEgQEAgZWxz ZQogZmkKIAogZG5sIFV0aWxpdHkgdG8gc2ltcGxpZnkgZmluZGluZyBsaWJw eXRob24uCitkbmwgJDEgPSBweXRob25YLlkKK2RubCAkMiA9IHRoZSBzaGVs bCB2YXJpYWJsZSB0byBhc3NpZ24gdGhlIHJlc3VsdCB0bworZG5sICAgICAg SWYgbGlicHl0aG9uIGlzIGZvdW5kIHdlIHN0b3JlICR2ZXJzaW9uIGhlcmUu CitkbmwgJDMgPSBhZGRpdGlvbmFsIGZsYWdzIHRvIGFkZCB0byBDUFBGTEFH UworZG5sICQ0ID0gYWRkaXRpb25hbCBmbGFncyB0byBhZGQgdG8gTElCUwor CiBBQ19ERUZVTihbQUNfVFJZX0xJQlBZVEhPTl0sCiBbCiAgIHZlcnNpb249 JDEKICAgZGVmaW5lKFtoYXZlX2xpYnB5dGhvbl92YXJdLCQyKQotICBkZWZp bmUoW1ZFUlNJT05dLFt0cmFuc2xpdChbJDFdLFthYmNkZWZnaGlqa2xtbm9w cXJzdHV2d3h5ei4vLV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgW0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaX19fXSldKQotICBb SEFWRV9MSUJdVkVSU0lPTj1ubworICBuZXdfQ1BQRkxBR1M9JDMKKyAgbmV3 X0xJQlM9JDQKICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgJHt2ZXJzaW9ufV0p CisgIHNhdmVfQ1BQRkxBR1M9JENQUEZMQUdTCiAgIHNhdmVfTElCUz0kTElC UwotICBMSUJTPSIkTElCUyAtbCR7dmVyc2lvbn0iCisgIENQUEZMQUdTPSIk Q1BQRkxBR1MgJG5ld19DUFBGTEFHUyIKKyAgTElCUz0iJExJQlMgJG5ld19M SUJTIgorICBmb3VuZF91c2FibGVfcHl0aG9uPW5vCiAgIEFDX0xJTktfSUZF TFNFKEFDX0xBTkdfUFJPR1JBTShbWyNpbmNsdWRlICIke3ZlcnNpb259L1B5 dGhvbi5oIl1dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W1tQeV9Jbml0aWFsaXplICgpO11dKSwKLSAgICAgICAgICAgICAgICAgW1tI QVZFX0xJQl1WRVJTSU9OPXllcwotICAgICAgICAgICAgICAgICAgaGF2ZV9s aWJweXRob25fdmFyPXllc10sCi0gICAgICAgICAgICAgICAgIFtMSUJTPSRz YXZlX0xJQlNdKQotICBBQ19NU0dfUkVTVUxUKFskW0hBVkVfTElCXVZFUlNJ T05dKQorICAgICAgICAgICAgICAgICBbaGF2ZV9saWJweXRob25fdmFyPSR7 dmVyc2lvbn0KKyAgICAgICAgICAgICAgICAgIGZvdW5kX3VzYWJsZV9weXRo b249eWVzXSwKKyAgICAgICAgICAgICAgICAgW0NQUEZMQUdTPSRzYXZlX0NQ UEZMQUdTCisgICAgICAgICAgICAgICAgICBMSUJTPSRzYXZlX0xJQlNdKQor ICBBQ19NU0dfUkVTVUxUKFske2ZvdW5kX3VzYWJsZV9weXRob259XSkKIF0p CiAKIEFDX0FSR19XSVRIKHB5dGhvbiwKQEAgLTYxNyw0NSArNjI2LDEzMCBA QCBpZiB0ZXN0ICIke3dpdGhfcHl0aG9ufSIgPSBubzsgdGhlbgogICBBQ19N U0dfV0FSTihbcHl0aG9uIHN1cHBvcnQgZGlzYWJsZWQ7IHNvbWUgZmVhdHVy ZXMgbWF5IGJlIHVuYXZhaWxhYmxlLl0pCiAgIGhhdmVfbGlicHl0aG9uPW5v CiBlbHNlCisgIGhhdmVfcHl0aG9uX2NvbmZpZz1ubwogICBjYXNlICIke3dp dGhfcHl0aG9ufSIgaW4KLSAgeWVzIHwgYXV0bykKLSAgICAjIExlYXZlIGFz IGVtcHR5LCB1c2UgZGVmYXVsdHMuCi0gICAgcHl0aG9uX2luY2x1ZGVzPQot ICAgIHB5dGhvbl9saWJzPQotICAgIDs7CiAgIC8qKQotICAgIHB5dGhvbl9p bmNsdWRlcz0iLUkke3dpdGhfcHl0aG9ufS9pbmNsdWRlIgotICAgIHB5dGhv bl9saWJzPSItTCR7d2l0aF9weXRob259L2xpYiIKKyAgICBpZiB0ZXN0IC1k ICR7d2l0aF9weXRob259OyB0aGVuCisgICAgICAjIEFzc3VtZSB0aGUgcHl0 aG9uIGJpbmFyeSBpcyAke3dpdGhfcHl0aG9ufS9iaW4vcHl0aG9uLgorICAg ICAgcHl0aG9uX3ByZWZpeD0ke3dpdGhfcHl0aG9ufQorICAgICAgcHl0aG9u X3Byb2c9IiR7d2l0aF9weXRob259L2Jpbi9weXRob24iCisgICAgICBpZiB0 ZXN0ICEgLXggJHtweXRob25fcHJvZ307IHRoZW4KKyAgICAgICAgIyBGYWxs IGJhY2sgdG8gZ2RiIDcuMC83LjEgYmVoYXZpb3VyLgorICAgICAgICBweXRo b25fcHJvZz1taXNzaW5nCisgICAgICBmaQorICAgIGVsaWYgdGVzdCAteCAk e3dpdGhfcHl0aG9ufTsgdGhlbgorICAgICAgIyBXaGlsZSB3ZSBjYW4ndCBy dW4gcHl0aG9uIGNvbXBpbGVkIGZvciAkaG9zdCAodW5sZXNzIGhvc3QgPT0g YnVpbGQpLAorICAgICAgIyB0aGUgdXNlciBjb3VsZCB3cml0ZSBhIHNjcmlw dCB0aGF0IHByb3ZpZGVzIHRoZSBuZWVkZWQgaW5mb3JtYXRpb24sCisgICAg ICAjIHNvIHdlIHN1cHBvcnQgdGhhdC4KKyAgICAgIHB5dGhvbl9wcmVmaXg9 CisgICAgICBweXRob25fcHJvZz0ke3dpdGhfcHl0aG9ufQorICAgIGVsc2UK KyAgICAgIEFDX0VSUk9SKGludmFsaWQgdmFsdWUgZm9yIC0td2l0aC1weXRo b24pCisgICAgZmkKICAgICA7OwotICAqKQorICAqLyopCisgICAgIyBEaXNh bGxvdyAtLXdpdGgtcHl0aG9uPWZvby9iYXIuCiAgICAgQUNfRVJST1IoaW52 YWxpZCB2YWx1ZSBmb3IgLS13aXRoLXB5dGhvbikKICAgICA7OworICAqKQor ICAgICMgVGhlIHVzZXIgaGFzIGVpdGhlciBzcGVjaWZpZWQgYXV0bywgeWVz LCBvciB0aGUgbmFtZSBvZiB0aGUgcHl0aG9uCisgICAgIyBwcm9ncmFtIGFz c3VtZWQgdG8gYmUgaW4gJFBBVEguCisgICAgcHl0aG9uX3ByZWZpeD0KKyAg ICBjYXNlICIke3dpdGhfcHl0aG9ufSIgaW4KKyAgICB5ZXMgfCBhdXRvKQor ICAgICAgaWYgdGVzdCAke2J1aWxkfSA9ICR7aG9zdH07IHRoZW4KKyAgICAg ICAgQUNfUEFUSF9QUk9HKHB5dGhvbl9wcm9nX3BhdGgsIHB5dGhvbiwgbWlz c2luZykKKyAgICAgICAgaWYgdGVzdCAiJHtweXRob25fcHJvZ19wYXRofSIg PSBtaXNzaW5nOyB0aGVuCisgICAgICAgICAgcHl0aG9uX3Byb2c9bWlzc2lu ZworICAgICAgICBlbHNlCisgICAgICAgICAgcHl0aG9uX3Byb2c9JHtweXRo b25fcHJvZ19wYXRofQorICAgICAgICBmaQorICAgICAgZWxzZQorICAgICAg ICAjIE5vdCBtdWNoIHdlIGNhbiBkbyBleGNlcHQgYXNzdW1lIHRoZSBjcm9z cy1jb21waWxlciB3aWxsIGZpbmQgdGhlCisgICAgICAgICMgcmlnaHQgZmls ZXMuCisgICAgICAgIHB5dGhvbl9wcm9nPW1pc3NpbmcKKyAgICAgIGZpCisg ICAgICA7OworICAgICopCisgICAgICAjIFdoaWxlIHdlIGNhbid0IHJ1biBw eXRob24gY29tcGlsZWQgZm9yICRob3N0ICh1bmxlc3MgaG9zdCA9PSBidWls ZCksCisgICAgICAjIHRoZSB1c2VyIGNvdWxkIHdyaXRlIGEgc2NyaXB0IHRo YXQgcHJvdmlkZXMgdGhlIG5lZWRlZCBpbmZvcm1hdGlvbiwKKyAgICAgICMg c28gd2Ugc3VwcG9ydCB0aGF0LgorICAgICAgcHl0aG9uX3Byb2c9IiR7d2l0 aF9weXRob259IgorICAgICAgQUNfUEFUSF9QUk9HKHB5dGhvbl9wcm9nX3Bh dGgsICR7cHl0aG9uX3Byb2d9LCBtaXNzaW5nKQorICAgICAgaWYgdGVzdCAi JHtweXRob25fcHJvZ19wYXRofSIgPSBtaXNzaW5nOyB0aGVuCisgICAgICAg IEFDX0VSUk9SKHVuYWJsZSB0byBmaW5kIHB5dGhvbiBwcm9ncmFtICR7cHl0 aG9uX3Byb2d9KQorICAgICAgZmkKKyAgICAgIDs7CisgICAgZXNhYwogICBl c2FjCiAKLSAgc2F2ZV9DUFBGTEFHUz0kQ1BQRkxBR1MKLSAgQ1BQRkxBR1M9 IiRDUFBGTEFHUyAke3B5dGhvbl9pbmNsdWRlc30iCi0gIHNhdmVfTElCUz0k TElCUwotICBMSUJTPSIkTElCUyAke3B5dGhvbl9saWJzfSIKLSAgaGF2ZV9s aWJweXRob249bm8KLSAgaWYgdGVzdCAiJHtoYXZlX2xpYnB5dGhvbn0iID0g bm87IHRoZW4KLSAgICBBQ19UUllfTElCUFlUSE9OKHB5dGhvbjIuNiwgaGF2 ZV9saWJweXRob24pCi0gICAgaWYgdGVzdCAiJHtIQVZFX0xJQlBZVEhPTjJf Nn0iID0geWVzOyB0aGVuCi0gICAgICBBQ19ERUZJTkUoSEFWRV9MSUJQWVRI T04yXzYsIDEsIFtEZWZpbmUgaWYgUHl0aG9uIDIuNiBpcyBiZWluZyB1c2Vk Ll0pCisgIGlmIHRlc3QgIiR7cHl0aG9uX3Byb2d9IiAhPSBtaXNzaW5nOyB0 aGVuCisgICAgcHl0aG9uX2luY2x1ZGVzPWAke3B5dGhvbl9wcm9nfSAke3Ny Y2Rpcn0vcHl0aG9uL3B5dGhvbi1jb25maWcucHkgLS1pbmNsdWRlc2AKKyAg ICBpZiB0ZXN0ICQ/ICE9IDA7IHRoZW4KKyAgICAgIEFDX0VSUk9SKGZhaWx1 cmUgcnVubmluZyBweXRob24tY29uZmlnIC0taW5jbHVkZXMpCiAgICAgZmkK LSAgZmkKLSAgaWYgdGVzdCAke2hhdmVfbGlicHl0aG9ufSA9IG5vOyB0aGVu Ci0gICAgQUNfVFJZX0xJQlBZVEhPTihweXRob24yLjUsIGhhdmVfbGlicHl0 aG9uKQotICAgIGlmIHRlc3QgIiR7SEFWRV9MSUJQWVRIT04yXzV9IiA9IHll czsgdGhlbgotICAgICAgQUNfREVGSU5FKEhBVkVfTElCUFlUSE9OMl81LCAx LCBbRGVmaW5lIGlmIFB5dGhvbiAyLjUgaXMgYmVpbmcgdXNlZC5dKQorICAg IHB5dGhvbl9saWJzPWAke3B5dGhvbl9wcm9nfSAke3NyY2Rpcn0vcHl0aG9u L3B5dGhvbi1jb25maWcucHkgLS1sZGZsYWdzYAorICAgIGlmIHRlc3QgJD8g IT0gMDsgdGhlbgorICAgICAgQUNfRVJST1IoZmFpbHVyZSBydW5uaW5nIHB5 dGhvbi1jb25maWcgLS1sZGZsYWdzKQorICAgIGZpCisgICAgaGF2ZV9weXRo b25fY29uZmlnPXllcworICBlbHNlCisgICAgIyBGYWxsIGJhY2sgdG8gZ2Ri IDcuMC83LjEgYmVoYXZpb3VyLgorICAgIGlmIHRlc3QgLXogJHtweXRob25f cHJlZml4fTsgdGhlbgorICAgICAgcHl0aG9uX2luY2x1ZGVzPQorICAgICAg cHl0aG9uX2xpYnM9CisgICAgZWxzZQorICAgICAgcHl0aG9uX2luY2x1ZGVz PSItSSR7cHl0aG9uX3ByZWZpeH0vaW5jbHVkZSIKKyAgICAgIHB5dGhvbl9s aWJzPSItTCR7cHl0aG9uX3ByZWZpeH0vbGliIgogICAgIGZpCiAgIGZpCi0g IGlmIHRlc3QgJHtoYXZlX2xpYnB5dGhvbn0gPSBubzsgdGhlbgotICAgIEFD X1RSWV9MSUJQWVRIT04ocHl0aG9uMi40LCBoYXZlX2xpYnB5dGhvbikKLSAg ICBpZiB0ZXN0ICIke0hBVkVfTElCUFlUSE9OMl80fSIgPSB5ZXM7IHRoZW4K LSAgICAgIEFDX0RFRklORShIQVZFX0xJQlBZVEhPTjJfNCwgMSwgW0RlZmlu ZSBpZiBQeXRob24gMi40IGlzIGJlaW5nIHVzZWQuXSkKKworICAjIEhhdmlu ZyAiL3B5dGhvblguWSIgaW4gdGhlIGluY2x1ZGUgcGF0aCBpcyBhd2t3YXJk LgorICAjIEFsbCB0aG9zZSBweXRob24gaGVhZGVycyBnZXQgYnViYmxlZCB1 cCB0byB0aGUgdG9wIGludml0aW5nIGxvdHMKKyAgIyBvZiByYW5kb20gY29s bGlzaW9ucy4gIEdEQiBvcmlnaW5hbGx5IGRpZG4ndCB1c2UgcHl0aG9uLWNv bmZpZyB0bworICAjIGZpbmQgdGhlIGNvbXBpbGF0aW9uIHBhcmFtZXRlcnMg YW5kIGluY2x1ZGVzICJweXRob25YLlkvIiBpbiB0aGUKKyAgIyBwYXRoIG9m IHRoZSwgdW1tLCBpbmNsdWRlIGZpbGUuICBTbyBzdHJpcCBhd2F5IHRoaXMg cGFydCBvZiB0aGUKKyAgIyBvdXRwdXQgb2YgcHl0aG9uLWNvbmZpZyAtLWlu Y2x1ZGVzLgorICBweXRob25faW5jbHVkZXM9YGVjaG8gIiR7cHl0aG9uX2lu Y2x1ZGVzfSAiIFwKKyAgCQkJfCBzZWQgLWUgJ3MsL3B5dGhvbltbMC05XV0q W1suXV1bWzAtOV1dKiAsICxnJ2AKKworICAjIElmIHdlIGhhdmUgcHl0aG9u LWNvbmZpZywgb25seSB0cnkgdGhlIGNvbmZpZ3VyYXRpb24gaXQgcHJvdmlk ZXMuCisgICMgT3RoZXJ3aXNlIGZhbGxiYWNrIG9uIHRoZSBvbGQgd2F5IG9m IHRyeWluZyBkaWZmZXJlbnQgdmVyc2lvbnMgb2YKKyAgIyBweXRob24gaW4g dHVybi4KKworICBoYXZlX2xpYnB5dGhvbj1ubworICBpZiB0ZXN0ICIke2hh dmVfcHl0aG9uX2NvbmZpZ30iID0geWVzOyB0aGVuCisgICAgcHl0aG9uX3Zl cnNpb249YGVjaG8gIiAke3B5dGhvbl9saWJzfSAiIFwKKyAgICAJCQkgfCBz ZWQgLWUgJ3MsXi4qIC1sXChweXRob25bWzAtOV1dKltbLl1dW1swLTldXSpc KSAuKiQsXDEsJ2AKKyAgICBpZiB0ZXN0ICIke3B5dGhvbl92ZXJzaW9ufSIg IT0gIiI7IHRoZW4KKyAgICAgIEFDX1RSWV9MSUJQWVRIT04oJHtweXRob25f dmVyc2lvbn0sIGhhdmVfbGlicHl0aG9uLAorICAgICAgICAgICAgICAgICAg ICAgICAke3B5dGhvbl9pbmNsdWRlc30sICR7cHl0aG9uX2xpYnN9KQorICAg IGVsc2UKKyAgICAgIEFDX01TR19FUlJPUihbdW5hYmxlIHRvIGRldGVybWlu ZSBweXRob24gdmVyc2lvbiBmcm9tICR7cHl0aG9uX2xpYnN9XSkKKyAgICBm aQorICBlbHNlCisgICAgaWYgdGVzdCAiJHtoYXZlX2xpYnB5dGhvbn0iID0g bm87IHRoZW4KKyAgICAgIEFDX1RSWV9MSUJQWVRIT04ocHl0aG9uMi42LCBo YXZlX2xpYnB5dGhvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgJHtweXRo b25faW5jbHVkZXN9LCAiJHtweXRob25fbGlic30gLWxweXRob24yLjYiKQor ICAgIGZpCisgICAgaWYgdGVzdCAke2hhdmVfbGlicHl0aG9ufSA9IG5vOyB0 aGVuCisgICAgICBBQ19UUllfTElCUFlUSE9OKHB5dGhvbjIuNSwgaGF2ZV9s aWJweXRob24sCisgICAgICAgICAgICAgICAgICAgICAgICR7cHl0aG9uX2lu Y2x1ZGVzfSwgIiR7cHl0aG9uX2xpYnN9IC1scHl0aG9uMi41IikKICAgICBm aQorICAgIGlmIHRlc3QgJHtoYXZlX2xpYnB5dGhvbn0gPSBubzsgdGhlbgor ICAgICAgQUNfVFJZX0xJQlBZVEhPTihweXRob24yLjQsIGhhdmVfbGlicHl0 aG9uLAorICAgICAgICAgICAgICAgICAgICAgICAke3B5dGhvbl9pbmNsdWRl c30sICIke3B5dGhvbl9saWJzfSAtbHB5dGhvbjIuNCIpCisgICAgZmkKKyAg ZmkKKyAgaWYgdGVzdCAiJHtoYXZlX2xpYnB5dGhvbn0iID0gcHl0aG9uMi42 OyB0aGVuCisgICAgQUNfREVGSU5FKEhBVkVfTElCUFlUSE9OMl82LCAxLCBb RGVmaW5lIGlmIFB5dGhvbiAyLjYgaXMgYmVpbmcgdXNlZC5dKQorICBlbGlm IHRlc3QgIiR7aGF2ZV9saWJweXRob259IiA9IHB5dGhvbjIuNTsgdGhlbgor ICAgIEFDX0RFRklORShIQVZFX0xJQlBZVEhPTjJfNSwgMSwgW0RlZmluZSBp ZiBQeXRob24gMi41IGlzIGJlaW5nIHVzZWQuXSkKKyAgZWxpZiB0ZXN0ICIk e2hhdmVfbGlicHl0aG9ufSIgPSBweXRob24yLjQ7IHRoZW4KKyAgICBBQ19E RUZJTkUoSEFWRV9MSUJQWVRIT04yXzQsIDEsIFtEZWZpbmUgaWYgUHl0aG9u IDIuNCBpcyBiZWluZyB1c2VkLl0pCiAgIGZpCi0gIGlmIHRlc3QgJHtoYXZl X2xpYnB5dGhvbn0gPSBubzsgdGhlbgorCisgIGlmIHRlc3QgIiR7aGF2ZV9s aWJweXRob259IiA9IG5vOyB0aGVuCiAgICAgY2FzZSAiJHt3aXRoX3B5dGhv bn0iIGluCiAgICAgeWVzKQogICAgICAgQUNfTVNHX0VSUk9SKFtweXRob24g aXMgbWlzc2luZyBvciB1bnVzYWJsZV0pCkBAIC02NjcsMTIgKzc2MSwxMCBA QCBlbHNlCiAgICAgICBBQ19NU0dfRVJST1IoW25vIHVzYWJsZSBweXRob24g Zm91bmQgYXQgJHt3aXRoX3B5dGhvbn1dKQogICAgICAgOzsKICAgICBlc2Fj Ci0gICAgQ1BQRkxBR1M9JHNhdmVfQ1BQRkxBR1MKLSAgICBMSUJTPSRzYXZl X0xJQlMKICAgZmkKIGZpCiAKLWlmIHRlc3QgIiR7aGF2ZV9saWJweXRob259 IiA9IHllczsgdGhlbgoraWYgdGVzdCAiJHtoYXZlX2xpYnB5dGhvbn0iICE9 IG5vOyB0aGVuCiAgIEFDX0RFRklORShIQVZFX1BZVEhPTiwgMSwgW0RlZmlu ZSBpZiBQeXRob24gaW50ZXJwcmV0ZXIgaXMgYmVpbmcgbGlua2VkIGluLl0p CiAgIENPTkZJR19PQlM9IiRDT05GSUdfT0JTIFwkKFNVQkRJUl9QWVRIT05f T0JTKSIKICAgQ09ORklHX0RFUFM9IiRDT05GSUdfREVQUyBcJChTVUJESVJf UFlUSE9OX0RFUFMpIgpJbmRleDogcHl0aG9uL3B5dGhvbi1jb25maWcucHkK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogcHl0aG9uL3B5dGhv bi1jb25maWcucHkKZGlmZiAtTiBweXRob24vcHl0aG9uLWNvbmZpZy5weQot LS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIHB5 dGhvbi9weXRob24tY29uZmlnLnB5CTI0IE1heSAyMDEwIDIyOjQzOjQ0IC0w MDAwCkBAIC0wLDAgKzEsNTQgQEAKKyMgUHJvZ3JhbSB0byBmZXRjaCBweXRo b24gY29tcGlsYXRpb24gcGFyYW1ldGVycy4KKyMgQ29waWVkIGZyb20gcHl0 aG9uLWNvbmZpZyBvZiB0aGUgMi42LjUgcmVsZWFzZS4KKworaW1wb3J0IHN5 cworaW1wb3J0IG9zCitpbXBvcnQgZ2V0b3B0Citmcm9tIGRpc3R1dGlscyBp bXBvcnQgc3lzY29uZmlnCisKK3ZhbGlkX29wdHMgPSBbJ3ByZWZpeCcsICdl eGVjLXByZWZpeCcsICdpbmNsdWRlcycsICdsaWJzJywgJ2NmbGFncycsIAor ICAgICAgICAgICAgICAnbGRmbGFncycsICdoZWxwJ10KKworZGVmIGV4aXRf d2l0aF91c2FnZShjb2RlPTEpOgorICAgIHByaW50ID4+c3lzLnN0ZGVyciwg IlVzYWdlOiAlcyBbJXNdIiAlIChzeXMuYXJndlswXSwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd8Jy5qb2luKCct LScrb3B0IGZvciBvcHQgaW4gdmFsaWRfb3B0cykpCisgICAgc3lzLmV4aXQo Y29kZSkKKwordHJ5OgorICAgIG9wdHMsIGFyZ3MgPSBnZXRvcHQuZ2V0b3B0 KHN5cy5hcmd2WzE6XSwgJycsIHZhbGlkX29wdHMpCitleGNlcHQgZ2V0b3B0 LmVycm9yOgorICAgIGV4aXRfd2l0aF91c2FnZSgpCisKK2lmIG5vdCBvcHRz OgorICAgIGV4aXRfd2l0aF91c2FnZSgpCisKK29wdCA9IG9wdHNbMF1bMF0K KworcHl2ZXIgPSBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ1ZFUlNJT04n KQorZ2V0dmFyID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyCisKK2lmIG9w dCA9PSAnLS1oZWxwJzoKKyAgICBleGl0X3dpdGhfdXNhZ2UoMCkKKworZWxp ZiBvcHQgPT0gJy0tcHJlZml4JzoKKyAgICBwcmludCBzeXNjb25maWcuUFJF RklYCisKK2VsaWYgb3B0ID09ICctLWV4ZWMtcHJlZml4JzoKKyAgICBwcmlu dCBzeXNjb25maWcuRVhFQ19QUkVGSVgKKworZWxpZiBvcHQgaW4gKCctLWlu Y2x1ZGVzJywgJy0tY2ZsYWdzJyk6CisgICAgZmxhZ3MgPSBbJy1JJyArIHN5 c2NvbmZpZy5nZXRfcHl0aG9uX2luYygpLAorICAgICAgICAgICAgICctSScg KyBzeXNjb25maWcuZ2V0X3B5dGhvbl9pbmMocGxhdF9zcGVjaWZpYz1UcnVl KV0KKyAgICBpZiBvcHQgPT0gJy0tY2ZsYWdzJzoKKyAgICAgICAgZmxhZ3Mu ZXh0ZW5kKGdldHZhcignQ0ZMQUdTJykuc3BsaXQoKSkKKyAgICBwcmludCAn ICcuam9pbihmbGFncykKKworZWxpZiBvcHQgaW4gKCctLWxpYnMnLCAnLS1s ZGZsYWdzJyk6CisgICAgbGlicyA9IGdldHZhcignTElCUycpLnNwbGl0KCkg KyBnZXR2YXIoJ1NZU0xJQlMnKS5zcGxpdCgpCisgICAgbGlicy5hcHBlbmQo Jy1scHl0aG9uJytweXZlcikKKyAgICAjIGFkZCB0aGUgcHJlZml4L2xpYi9w eXRob25YLlkvY29uZmlnIGRpciwgYnV0IG9ubHkgaWYgdGhlcmUgaXMgbm8K KyAgICAjIHNoYXJlZCBsaWJyYXJ5IGluIHByZWZpeC9saWIvLgorICAgIGlm IG9wdCA9PSAnLS1sZGZsYWdzJyBhbmQgbm90IGdldHZhcignUHlfRU5BQkxF X1NIQVJFRCcpOgorICAgICAgICBsaWJzLmluc2VydCgwLCAnLUwnICsgZ2V0 dmFyKCdMSUJQTCcpKQorICAgIHByaW50ICcgJy5qb2luKGxpYnMpCisK --000e0cd17ec60af97404875ef99f--