From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Bernd Jendrissek Newsgroups: gmane.lisp.guile.bugs Subject: bug#23034: AC_CHECK_HEADERS after GUILE_FLAGS loses $CPP Date: Thu, 17 Mar 2016 03:47:04 +0200 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1140fe1eb8e41c052e34ced7 X-Trace: ger.gmane.org 1458179418 30390 80.91.229.3 (17 Mar 2016 01:50:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 17 Mar 2016 01:50:18 +0000 (UTC) To: 23034@debbugs.gnu.org Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Thu Mar 17 02:50:09 2016 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1agN4i-0006wD-MA for guile-bugs@m.gmane.org; Thu, 17 Mar 2016 02:50:09 +0100 Original-Received: from localhost ([::1]:59667 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agN4h-0005xp-UG for guile-bugs@m.gmane.org; Wed, 16 Mar 2016 21:50:07 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37841) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agN4d-0005wu-9K for bug-guile@gnu.org; Wed, 16 Mar 2016 21:50:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1agN4c-0006K9-Ah for bug-guile@gnu.org; Wed, 16 Mar 2016 21:50:03 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:53430) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agN4c-0006K1-80 for bug-guile@gnu.org; Wed, 16 Mar 2016 21:50:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1agN4c-0003M2-2P for bug-guile@gnu.org; Wed, 16 Mar 2016 21:50:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Bernd Jendrissek Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Thu, 17 Mar 2016 01:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 23034 X-GNU-PR-Package: guile X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-guile@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.145817938512863 (code B ref -1); Thu, 17 Mar 2016 01:50:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 17 Mar 2016 01:49:45 +0000 Original-Received: from localhost ([127.0.0.1]:50557 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1agN4K-0003LP-RM for submit@debbugs.gnu.org; Wed, 16 Mar 2016 21:49:45 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:45046) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1agN1t-0003HV-QT for submit@debbugs.gnu.org; Wed, 16 Mar 2016 21:47:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1agN1n-0004cd-V9 for submit@debbugs.gnu.org; Wed, 16 Mar 2016 21:47:08 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:36216) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agN1n-0004cV-Rm for submit@debbugs.gnu.org; Wed, 16 Mar 2016 21:47:07 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36006) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agN1n-0004si-0v for bug-guile@gnu.org; Wed, 16 Mar 2016 21:47:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1agN1m-0004bq-2e for bug-guile@gnu.org; Wed, 16 Mar 2016 21:47:06 -0400 Original-Received: from mail-io0-x232.google.com ([2607:f8b0:4001:c06::232]:33224) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agN1l-0004be-Nr for bug-guile@gnu.org; Wed, 16 Mar 2016 21:47:05 -0400 Original-Received: by mail-io0-x232.google.com with SMTP id n190so81950321iof.0 for ; Wed, 16 Mar 2016 18:47:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to; bh=gH6Rfhuo5Dj0HA+s45ZMsbMwXxLw3l+OY+fIkugVY88=; b=i3gMfL3nxB5Vga6C82qsjMnhq1fMnSujqGxrMCpsa3Xi91wyrmrdQgzvzvQxvIEvqW gGAvnbm5/xAWSPHpocmiceIY/gbQBlvNyIdaVF+yVFjJLPgJN0mrUttzK49srC79oHfR 1s+PJPw2K/81SKokTY4lMVaS0uWCcjsLp0AElzPQQ6jUEcpMr2q6KwBYbD4nLxD6Lr// tWiWVnZ6H2Q8O+gFHTazO0+Ik6LBA12xMVbkPS5W1n2Y095YKi1cL1YpkMbcgDKD0/L1 IKeQB0YitrgLr64SbZ43w+BT6rWgR1qEAhZqmjnDi+ouHgHZKaYiNlQXiVMx3Zc3hzIy GOjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:date:message-id:subject:from :to; bh=gH6Rfhuo5Dj0HA+s45ZMsbMwXxLw3l+OY+fIkugVY88=; b=I57MSrs+wBXjd/QkhkbxaTtYn7AgdXs1FaQGXIJv+h6y7+/iw7JCw+mILDtbcQlM/C qvXy45sABCzBnYl/LV2p/zpWZxh35iDn15q8Tk1kSFbfUvgj2OtEXNCxHcO+9PgM8Q+c CSeDTV4RLQFdSkwu2K4YTqCEEN016NPXPGFC+6IfZ9wow59H26tEcRCWZcntnUWTs5Er gY3tQmSi5Ika2pj7ANaz+GEylz42ltrJWCY3is+z8pC0Gmx4Br0523V50Ju7R2aeK6Gp iccNoscgnMILOnBjy4lHwt9YaqM6tF0GMKaF0/58bnfOfGmdpgTRn1R4b6tgJq0/vdnL +SQQ== X-Gm-Message-State: AD7BkJIzXX5H6iQ1FzdkPRo4az8Xey7goN1SsZA9FwJ32n/5RJkqeKGUZ9NwutdUIkR4xwqQiLjLAuWXjl+4bg== X-Received: by 10.107.162.144 with SMTP id l138mr6520877ioe.123.1458179224921; Wed, 16 Mar 2016 18:47:04 -0700 (PDT) Original-Received: by 10.107.37.1 with HTTP; Wed, 16 Mar 2016 18:47:04 -0700 (PDT) X-Google-Sender-Auth: ccX2le6oIF0QbujLZwn6uf7z8H0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Mailman-Approved-At: Wed, 16 Mar 2016 21:49:43 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.bugs:7987 Archived-At: --001a1140fe1eb8e41c052e34ced7 Content-Type: text/plain; charset=UTF-8 I have a reduced test case where adding GUILE_FLAGS in shell dead code before a call to AC_CHECK_HEADERS causes configure to lose $CPP, which results in warnings like this one: checking stdarg.h usability... yes checking stdarg.h presence... no configure: WARNING: stdarg.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: stdarg.h: proceeding with the compiler's result checking for stdarg.h... yes Versions: /usr/share/aclocal/guile.m4: guile-2.0-dev from Debian jessie (2.0.11+1-9) autoconf: 2.69 Attached: configure.ac guile.m4 To reproduce: Find a config.rpath somewhere (perhaps steal it from gettext). autoreconf -fi ./configure I noticed that a random recent git HEAD of autoconf avoids this problem; it turns out that in commit 11f520c61d8b21f1522968d6e6afb899070f0a6f autoconf transitions to compilation-only header checks. --001a1140fe1eb8e41c052e34ced7 Content-Type: application/octet-stream; name="configure.ac" Content-Disposition: attachment; filename="configure.ac" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ilvley6l0 QUNfSU5JVChbZ3VpbGVmbGFnc10sIFsxLjUuMF0sIFtmb29AZXhhbXBsZS5jb21dKQpBQ19QUkVS RVEoMi41NCkKCiMgQ2hlY2tzIGZvciBwcm9ncmFtcy4KQUNfUFJPR19DQwoKaWYgZmFsc2UKdGhl bgogICBHVUlMRV9GTEFHUwpmaQpBQ19DSEVDS19IRUFERVJTKFtzdGRhcmcuaF0pCmVjaG8gImFj X2NwcD0kYWNfY3BwIENQUD0kQ1BQIiA+JjYKCkFDX09VVFBVVAo= --001a1140fe1eb8e41c052e34ced7 Content-Type: application/x-m4; name="guile.m4" Content-Disposition: attachment; filename="guile.m4" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ilvlf9l81 IyMgQXV0b2NvbmYgbWFjcm9zIGZvciB3b3JraW5nIHdpdGggR3VpbGUuCiMjCiMjICAgQ29weXJp Z2h0IChDKSAxOTk4LDIwMDEsIDIwMDYsIDIwMTAsIDIwMTIsIDIwMTMsIDIwMTQgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMjCiMjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKIyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMjIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m CiMjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoj IwojIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKIyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKIyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKIyMgTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyMKIyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwojIyBMaWNlbnNlIGFsb25n IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMj IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv biwgTUEKIyMgMDIxMTAtMTMwMSBVU0EKCiMgc2VyaWFsIDEwCgojIyBJbmRleAojIyAtLS0tLQoj IwojIyBHVUlMRV9QS0cgLS0gZmluZCBHdWlsZSBkZXZlbG9wbWVudCBmaWxlcwojIyBHVUlMRV9Q Uk9HUyAtLSBzZXQgcGF0aHMgdG8gR3VpbGUgaW50ZXJwcmV0ZXIsIGNvbmZpZyBhbmQgdG9vbCBw cm9ncmFtcwojIyBHVUlMRV9GTEFHUyAtLSBzZXQgZmxhZ3MgZm9yIGNvbXBpbGluZyBhbmQgbGlu a2luZyB3aXRoIEd1aWxlCiMjIEdVSUxFX1NJVEVfRElSIC0tIGZpbmQgcGF0aCB0byBHdWlsZSAi c2l0ZSIgZGlyZWN0b3J5CiMjIEdVSUxFX0NIRUNLIC0tIGV2YWx1YXRlIEd1aWxlIFNjaGVtZSBj b2RlIGFuZCBjYXB0dXJlIHRoZSByZXR1cm4gdmFsdWUKIyMgR1VJTEVfTU9EVUxFX0NIRUNLIC0t IGNoZWNrIGZlYXR1cmUgb2YgYSBHdWlsZSBTY2hlbWUgbW9kdWxlCiMjIEdVSUxFX01PRFVMRV9B VkFJTEFCTEUgLS0gY2hlY2sgYXZhaWxhYmlsaXR5IG9mIGEgR3VpbGUgU2NoZW1lIG1vZHVsZQoj IyBHVUlMRV9NT0RVTEVfUkVRVUlSRUQgLS0gZmFpbCBpZiBhIEd1aWxlIFNjaGVtZSBtb2R1bGUg aXMgdW5hdmFpbGFibGUKIyMgR1VJTEVfTU9EVUxFX0VYUE9SVFMgLS0gY2hlY2sgaWYgYSBtb2R1 bGUgZXhwb3J0cyBhIHZhcmlhYmxlCiMjIEdVSUxFX01PRFVMRV9SRVFVSVJFRF9FWFBPUlQgLS0g ZmFpbCBpZiBhIG1vZHVsZSBkb2Vzbid0IGV4cG9ydCBhIHZhcmlhYmxlCgojIyBDb2RlCiMjIC0t LS0KCiMjIE5PVEU6IENvbW1lbnRzIHByZWNlZGluZyBhbiBBQ19ERUZVTiAoc3RhcnRpbmcgZnJv bSAiVXNhZ2U6IikgYXJlIG1hc3NhZ2VkCiMjIGludG8gZG9jL3JlZi9hdXRvY29uZi1tYWNyb3Mu dGV4aSAoc2VlIE1ha2VmaWxlLmFtIGluIHRoYXQgZGlyZWN0b3J5KS4KCiMgR1VJTEVfUEtHIC0t IGZpbmQgR3VpbGUgZGV2ZWxvcG1lbnQgZmlsZXMKIwojIFVzYWdlOiBHVUlMRV9QS0coW1ZFUlNJ T05TXSkKIwojIFRoaXMgbWFjcm8gcnVucyB0aGUgQGNvZGV7cGtnLWNvbmZpZ30gdG9vbCB0byBm aW5kIGRldmVsb3BtZW50IGZpbGVzCiMgZm9yIGFuIGF2YWlsYWJsZSB2ZXJzaW9uIG9mIEd1aWxl LgojCiMgQnkgZGVmYXVsdCwgdGhpcyBtYWNybyB3aWxsIHNlYXJjaCBmb3IgdGhlIGxhdGVzdCBz dGFibGUgdmVyc2lvbiBvZgojIEd1aWxlIChlLmcuIDIuMCksIGZhbGxpbmcgYmFjayB0byB0aGUg cHJldmlvdXMgc3RhYmxlIHZlcnNpb24KIyAoZS5nLiAxLjgpIGlmIGl0IGlzIGF2YWlsYWJsZS4g IElmIG5vIGd1aWxlLUB2YXJ7VkVSU0lPTn0ucGMgZmlsZSBpcwojIGZvdW5kLCBhbiBlcnJvciBp cyBzaWduYWxsZWQuICBUaGUgZm91bmQgdmVyc2lvbiBpcyBzdG9yZWQgaW4KIyBAdmFye0dVSUxF X0VGRkVDVElWRV9WRVJTSU9OfS4KIwojIElmIEBjb2Rle0dVSUxFX1BST0dTfSB3YXMgYWxyZWFk eSBpbnZva2VkLCB0aGlzIG1hY3JvIGVuc3VyZXMgdGhhdCB0aGUKIyBkZXZlbG9wbWVudCBmaWxl cyBoYXZlIHRoZSBzYW1lIGVmZmVjdGl2ZSB2ZXJzaW9uIGFzIHRoZSBHdWlsZQojIHByb2dyYW0u CiMKIyBAdmFye0dVSUxFX0VGRkVDVElWRV9WRVJTSU9OfSBpcyBtYXJrZWQgZm9yIHN1YnN0aXR1 dGlvbiwgYXMgYnkKIyBAY29kZXtBQ19TVUJTVH0uCiMKQUNfREVGVU4oW0dVSUxFX1BLR10sCiBb UEtHX1BST0dfUEtHX0NPTkZJRwogIF9ndWlsZV92ZXJzaW9uc190b19zZWFyY2g9Im00X2RlZmF1 bHQoWyQxXSwgWzIuMCAxLjhdKSIKICBpZiB0ZXN0IC1uICIkR1VJTEVfRUZGRUNUSVZFX1ZFUlNJ T04iOyB0aGVuCiAgICBfZ3VpbGVfdG1wPSIiCiAgICBmb3IgdiBpbiAkX2d1aWxlX3ZlcnNpb25z X3RvX3NlYXJjaDsgZG8KICAgICAgaWYgdGVzdCAiJHYiID0gIiRHVUlMRV9FRkZFQ1RJVkVfVkVS U0lPTiI7IHRoZW4KICAgICAgICBfZ3VpbGVfdG1wPSR2CiAgICAgIGZpCiAgICBkb25lCiAgICBp ZiB0ZXN0IC16ICIkX2d1aWxlX3RtcCI7IHRoZW4KICAgICAgQUNfTVNHX0ZBSUxVUkUoW3NlYXJj aGluZyBmb3IgZ3VpbGUgZGV2ZWxvcG1lbnQgZmlsZXMgZm9yIHZlcnNpb25zICRfZ3VpbGVfdmVy c2lvbnNfdG9fc2VhcmNoLCBidXQgcHJldmlvdXNseSBmb3VuZCAkR1VJTEUgdmVyc2lvbiAkR1VJ TEVfRUZGRUNUSVZFX1ZFUlNJT05dKQogICAgZmkKICAgIF9ndWlsZV92ZXJzaW9uc190b19zZWFy Y2g9JEdVSUxFX0VGRkVDVElWRV9WRVJTSU9OCiAgZmkKICBHVUlMRV9FRkZFQ1RJVkVfVkVSU0lP Tj0iIgogIF9ndWlsZV9lcnJvcnM9IiIKICBmb3IgdiBpbiAkX2d1aWxlX3ZlcnNpb25zX3RvX3Nl YXJjaDsgZG8KICAgIGlmIHRlc3QgLXogIiRHVUlMRV9FRkZFQ1RJVkVfVkVSU0lPTiI7IHRoZW4K ICAgICAgQUNfTVNHX05PVElDRShbY2hlY2tpbmcgZm9yIGd1aWxlICR2XSkKICAgICAgUEtHX0NI RUNLX0VYSVNUUyhbZ3VpbGUtJHZdLCBbR1VJTEVfRUZGRUNUSVZFX1ZFUlNJT049JHZdLCBbXSkK ICAgIGZpCiAgZG9uZQoKICBpZiB0ZXN0IC16ICIkR1VJTEVfRUZGRUNUSVZFX1ZFUlNJT04iOyB0 aGVuCiAgICBBQ19NU0dfRVJST1IoWwpObyBHdWlsZSBkZXZlbG9wbWVudCBwYWNrYWdlcyB3ZXJl IGZvdW5kLgoKUGxlYXNlIHZlcmlmeSB0aGF0IHlvdSBoYXZlIEd1aWxlIGluc3RhbGxlZC4gIElm IHlvdSBpbnN0YWxsZWQgR3VpbGUKZnJvbSBhIGJpbmFyeSBkaXN0cmlidXRpb24sIHBsZWFzZSB2 ZXJpZnkgdGhhdCB5b3UgaGF2ZSBhbHNvIGluc3RhbGxlZAp0aGUgZGV2ZWxvcG1lbnQgcGFja2Fn ZXMuICBJZiB5b3UgaW5zdGFsbGVkIGl0IHlvdXJzZWxmLCB5b3UgbWlnaHQgbmVlZAp0byBhZGp1 c3QgeW91ciBQS0dfQ09ORklHX1BBVEg7IHNlZSB0aGUgcGtnLWNvbmZpZyBtYW4gcGFnZSBmb3Ig bW9yZS4KXSkKICBmaQogIEFDX01TR19OT1RJQ0UoW2ZvdW5kIGd1aWxlICRHVUlMRV9FRkZFQ1RJ VkVfVkVSU0lPTl0pCiAgQUNfU1VCU1QoW0dVSUxFX0VGRkVDVElWRV9WRVJTSU9OXSkKIF0pCgoj IEdVSUxFX0ZMQUdTIC0tIHNldCBmbGFncyBmb3IgY29tcGlsaW5nIGFuZCBsaW5raW5nIHdpdGgg R3VpbGUKIwojIFVzYWdlOiBHVUlMRV9GTEFHUwojCiMgVGhpcyBtYWNybyBydW5zIHRoZSBAY29k ZXtwa2ctY29uZmlnfSB0b29sIHRvIGZpbmQgb3V0IGhvdyB0byBjb21waWxlCiMgYW5kIGxpbmsg cHJvZ3JhbXMgYWdhaW5zdCBHdWlsZS4gIEl0IHNldHMgZm91ciB2YXJpYWJsZXM6CiMgQHZhcntH VUlMRV9DRkxBR1N9LCBAdmFye0dVSUxFX0xERkxBR1N9LCBAdmFye0dVSUxFX0xJQlN9LCBhbmQK IyBAdmFye0dVSUxFX0xUTElCU30uCiMKIyBAdmFye0dVSUxFX0NGTEFHU306IGZsYWdzIHRvIHBh c3MgdG8gYSBDIG9yIEMrKyBjb21waWxlciB0byBidWlsZCBjb2RlIHRoYXQKIyB1c2VzIEd1aWxl IGhlYWRlciBmaWxlcy4gIFRoaXMgaXMgYWxtb3N0IGFsd2F5cyBqdXN0IG9uZSBvciBtb3JlIEBj b2Rley1JfQojIGZsYWdzLgojCiMgQHZhcntHVUlMRV9MREZMQUdTfTogZmxhZ3MgdG8gcGFzcyB0 byB0aGUgY29tcGlsZXIgdG8gbGluayBhIHByb2dyYW0KIyBhZ2FpbnN0IEd1aWxlLiAgVGhpcyBp bmNsdWRlcyBAY29kZXstbGd1aWxlLUB2YXJ7VkVSU0lPTn19IGZvciB0aGUKIyBHdWlsZSBsaWJy YXJ5IGl0c2VsZiwgYW5kIG1heSBhbHNvIGluY2x1ZGUgb25lIG9yIG1vcmUgQGNvZGV7LUx9IGZs YWcKIyB0byB0ZWxsIHRoZSBjb21waWxlciB3aGVyZSB0byBmaW5kIHRoZSBsaWJyYXJpZXMuICBC dXQgaXQgZG9lcyBub3QKIyBpbmNsdWRlIGZsYWdzIHRoYXQgaW5mbHVlbmNlIHRoZSBwcm9ncmFt J3MgcnVudGltZSBzZWFyY2ggcGF0aCBmb3IKIyBsaWJyYXJpZXMsIGFuZCB3aWxsIHRoZXJlZm9y ZSBsZWFkIHRvIGEgcHJvZ3JhbSB0aGF0IGZhaWxzIHRvIHN0YXJ0LAojIHVubGVzcyBhbGwgbmVj ZXNzYXJ5IGxpYnJhcmllcyBhcmUgaW5zdGFsbGVkIGluIGEgc3RhbmRhcmQgbG9jYXRpb24KIyBz dWNoIGFzIEBmaWxley91c3IvbGlifS4KIwojIEB2YXJ7R1VJTEVfTElCU30gYW5kIEB2YXJ7R1VJ TEVfTFRMSUJTfTogZmxhZ3MgdG8gcGFzcyB0byB0aGUgY29tcGlsZXIgb3IgdG8KIyBsaWJ0b29s LCByZXNwZWN0aXZlbHksIHRvIGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgR3VpbGUuICBJdCBpbmNs dWRlcyBmbGFncwojIHRoYXQgYXVnbWVudCB0aGUgcHJvZ3JhbSdzIHJ1bnRpbWUgc2VhcmNoIHBh dGggZm9yIGxpYnJhcmllcywgc28gdGhhdCBzaGFyZWQKIyBsaWJyYXJpZXMgd2lsbCBiZSBmb3Vu ZCBhdCB0aGUgbG9jYXRpb24gd2hlcmUgdGhleSB3ZXJlIGR1cmluZyBsaW5raW5nLCBldmVuCiMg aW4gbm9uLXN0YW5kYXJkIGxvY2F0aW9ucy4gIEB2YXJ7R1VJTEVfTElCU30gaXMgdG8gYmUgdXNl ZCB3aGVuIGxpbmtpbmcgdGhlCiMgcHJvZ3JhbSBkaXJlY3RseSB3aXRoIHRoZSBjb21waWxlciwg d2hlcmVhcyBAdmFye0dVSUxFX0xUTElCU30gaXMgdG8gYmUgdXNlZAojIHdoZW4gbGlua2luZyB0 aGUgcHJvZ3JhbSBpcyBkb25lIHRocm91Z2ggbGlidG9vbC4KIwojIFRoZSB2YXJpYWJsZXMgYXJl IG1hcmtlZCBmb3Igc3Vic3RpdHV0aW9uLCBhcyBieSBAY29kZXtBQ19TVUJTVH0uCiMKQUNfREVG VU4oW0dVSUxFX0ZMQUdTXSwKIFtBQ19SRVFVSVJFKFtHVUlMRV9QS0ddKQogIFBLR19DSEVDS19N T0RVTEVTKEdVSUxFLCBbZ3VpbGUtJEdVSUxFX0VGRkVDVElWRV9WRVJTSU9OXSkKCiAgZG5sIEdV SUxFX0NGTEFHUyBhbmQgR1VJTEVfTElCUyBhcmUgYWxyZWFkeSBkZWZpbmVkIGFuZCBBQ19TVUJT VCdkIGJ5CiAgZG5sIFBLR19DSEVDS19NT0RVTEVTLiAgQnV0IEdVSUxFX0xJQlMgdG8gcGtnLWNv bmZpZyBpcyBHVUlMRV9MREZMQUdTCiAgZG5sIHRvIHVzLgoKICBHVUlMRV9MREZMQUdTPSRHVUlM RV9MSUJTCgogIGRubCBEZXRlcm1pbmUgdGhlIHBsYXRmb3JtIGRlcGVuZGVudCBwYXJhbWV0ZXJz IG5lZWRlZCB0byB1c2UgcnBhdGguCiAgZG5sIEFDX0xJQl9MSU5LRkxBR1NfRlJPTV9MSUJTIGlz IGRlZmluZWQgaW4gZ251bGliL200L2xpYi1saW5rLm00IGFuZCBuZWVkcwogIGRubCB0aGUgZmls ZSBnbnVsaWIvYnVpbGQtYXV4L2NvbmZpZy5ycGF0aC4KICBBQ19MSUJfTElOS0ZMQUdTX0ZST01f TElCUyhbR1VJTEVfTElCU10sIFskR1VJTEVfTERGTEFHU10sIFtdKQogIEdVSUxFX0xJQlM9IiRH VUlMRV9MREZMQUdTICRHVUlMRV9MSUJTIgogIEFDX0xJQl9MSU5LRkxBR1NfRlJPTV9MSUJTKFtH VUlMRV9MVExJQlNdLCBbJEdVSUxFX0xERkxBR1NdLCBbeWVzXSkKICBHVUlMRV9MVExJQlM9IiRH VUlMRV9MREZMQUdTICRHVUlMRV9MVExJQlMiCgogIEFDX1NVQlNUKFtHVUlMRV9FRkZFQ1RJVkVf VkVSU0lPTl0pCiAgQUNfU1VCU1QoW0dVSUxFX0NGTEFHU10pCiAgQUNfU1VCU1QoW0dVSUxFX0xE RkxBR1NdKQogIEFDX1NVQlNUKFtHVUlMRV9MSUJTXSkKICBBQ19TVUJTVChbR1VJTEVfTFRMSUJT XSkKIF0pCgojIEdVSUxFX1NJVEVfRElSIC0tIGZpbmQgcGF0aCB0byBHdWlsZSAic2l0ZSIgZGly ZWN0b3J5CiMKIyBVc2FnZTogR1VJTEVfU0lURV9ESVIKIwojIFRoaXMgbG9va3MgZm9yIEd1aWxl J3MgInNpdGUiIGRpcmVjdG9yeSwgdXN1YWxseSBzb21ldGhpbmcgbGlrZQojIFBSRUZJWC9zaGFy ZS9ndWlsZS9zaXRlLCBhbmQgc2V0cyB2YXIgQHZhcntHVUlMRV9TSVRFfSB0byB0aGUgcGF0aC4K IyBOb3RlIHRoYXQgdGhlIHZhciBuYW1lIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtYWNybyBuYW1l LgojCiMgVGhlIHZhcmlhYmxlIGlzIG1hcmtlZCBmb3Igc3Vic3RpdHV0aW9uLCBhcyBieSBAY29k ZXtBQ19TVUJTVH0uCiMKQUNfREVGVU4oW0dVSUxFX1NJVEVfRElSXSwKIFtBQ19SRVFVSVJFKFtH VUlMRV9QS0ddKQogIEFDX01TR19DSEVDS0lORyhmb3IgR3VpbGUgc2l0ZSBkaXJlY3RvcnkpCiAg R1VJTEVfU0lURT1gJFBLR19DT05GSUcgLS1wcmludC1lcnJvcnMgLS12YXJpYWJsZT1zaXRlZGly IGd1aWxlLSRHVUlMRV9FRkZFQ1RJVkVfVkVSU0lPTmAKICBBQ19NU0dfUkVTVUxUKCRHVUlMRV9T SVRFKQogIGlmIHRlc3QgIiRHVUlMRV9TSVRFIiA9ICIiOyB0aGVuCiAgICAgQUNfTVNHX0ZBSUxV UkUoc2l0ZWRpciBub3QgZm91bmQpCiAgZmkKICBBQ19TVUJTVChHVUlMRV9TSVRFKQogXSkKCiMg R1VJTEVfUFJPR1MgLS0gc2V0IHBhdGhzIHRvIEd1aWxlIGludGVycHJldGVyLCBjb25maWcgYW5k IHRvb2wgcHJvZ3JhbXMKIwojIFVzYWdlOiBHVUlMRV9QUk9HUyhbVkVSU0lPTl0pCiMKIyBUaGlz IG1hY3JvIGxvb2tzIGZvciBwcm9ncmFtcyBAY29kZXtndWlsZX0gYW5kIEBjb2Rle2d1aWxkfSwg c2V0dGluZwojIHZhcmlhYmxlcyBAdmFye0dVSUxFfSBhbmQgQHZhcntHVUlMRH0gdG8gdGhlaXIg cGF0aHMsIHJlc3BlY3RpdmVseS4KIyBJZiBAY29kZXtndWlsZX0gaXMgbm90IGZvdW5kLCBzaWdu YWwgYW4gZXJyb3IuCiMKIyBCeSBkZWZhdWx0LCB0aGlzIG1hY3JvIHdpbGwgc2VhcmNoIGZvciB0 aGUgbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uIG9mCiMgR3VpbGUgKGUuZy4gMi4wKS4geC55IG9yIHgu eS56IHZlcnNpb25zIGNhbiBiZSBzcGVjaWZpZWQuIElmIGFuIG9sZGVyCiMgdmVyc2lvbiBpcyBm b3VuZCwgdGhlIG1hY3JvIHdpbGwgc2lnbmFsIGFuIGVycm9yLgojCiMgVGhlIGVmZmVjdGl2ZSB2 ZXJzaW9uIG9mIHRoZSBmb3VuZCBAY29kZXtndWlsZX0gaXMgc2V0IHRvCiMgQHZhcntHVUlMRV9F RkZFQ1RJVkVfVkVSU0lPTn0uICBUaGlzIG1hY3JvIGVuc3VyZXMgdGhhdCB0aGUgZWZmZWN0aXZl CiMgdmVyc2lvbiBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHJlc3VsdCBvZiBhIHByZXZpb3VzIGlu dm9jYXRpb24gb2YKIyBAY29kZXtHVUlMRV9GTEFHU30sIGlmIGFueS4KIwojIEFzIGEgbGVnYWN5 IGludGVyZmFjZSwgaXQgYWxzbyBsb29rcyBmb3IgQGNvZGV7Z3VpbGUtY29uZmlnfSBhbmQKIyBA Y29kZXtndWlsZS10b29sc30sIHNldHRpbmcgQHZhcntHVUlMRV9DT05GSUd9IGFuZCBAdmFye0dV SUxFX1RPT0xTfS4KIwojIFRoZSB2YXJpYWJsZXMgYXJlIG1hcmtlZCBmb3Igc3Vic3RpdHV0aW9u LCBhcyBieSBAY29kZXtBQ19TVUJTVH0uCiMKQUNfREVGVU4oW0dVSUxFX1BST0dTXSwKIFtBQ19Q QVRIX1BST0coR1VJTEUsZ3VpbGUpCiAgX2d1aWxlX3JlcXVpcmVkX3ZlcnNpb249Im00X2RlZmF1 bHQoWyQxXSwgWyRHVUlMRV9FRkZFQ1RJVkVfVkVSU0lPTl0pIgogIGlmIHRlc3QgLXogIiRfZ3Vp bGVfcmVxdWlyZWRfdmVyc2lvbiI7IHRoZW4KICAgIF9ndWlsZV9yZXF1aXJlZF92ZXJzaW9uPTIu MAogIGZpCiAgaWYgdGVzdCAiJEdVSUxFIiA9ICIiIDsgdGhlbgogICAgICBBQ19NU0dfRVJST1Io W2d1aWxlIHJlcXVpcmVkIGJ1dCBub3QgZm91bmRdKQogIGZpCiAgQUNfU1VCU1QoR1VJTEUpCgog IF9ndWlsZV9lZmZlY3RpdmVfdmVyc2lvbj1gJEdVSUxFIC1jICIoZGlzcGxheSAoZWZmZWN0aXZl LXZlcnNpb24pKSJgCiAgaWYgdGVzdCAteiAiJEdVSUxFX0VGRkVDVElWRV9WRVJTSU9OIjsgdGhl bgogICAgR1VJTEVfRUZGRUNUSVZFX1ZFUlNJT049JF9ndWlsZV9lZmZlY3RpdmVfdmVyc2lvbgog IGVsaWYgdGVzdCAiJEdVSUxFX0VGRkVDVElWRV9WRVJTSU9OIiAhPSAiJF9ndWlsZV9lZmZlY3Rp dmVfdmVyc2lvbiI7IHRoZW4KICAgIEFDX01TR19FUlJPUihbZm91bmQgZGV2ZWxvcG1lbnQgZmls ZXMgZm9yIEd1aWxlICRHVUlMRV9FRkZFQ1RJVkVfVkVSU0lPTiwgYnV0ICRHVUlMRSBoYXMgZWZm ZWN0aXZlIHZlcnNpb24gJF9ndWlsZV9lZmZlY3RpdmVfdmVyc2lvbl0pCiAgZmkKCiAgX2d1aWxl X21ham9yX3ZlcnNpb249YCRHVUlMRSAtYyAiKGRpc3BsYXkgKG1ham9yLXZlcnNpb24pKSJgCiAg X2d1aWxlX21pbm9yX3ZlcnNpb249YCRHVUlMRSAtYyAiKGRpc3BsYXkgKG1pbm9yLXZlcnNpb24p KSJgCiAgX2d1aWxlX21pY3JvX3ZlcnNpb249YCRHVUlMRSAtYyAiKGRpc3BsYXkgKG1pY3JvLXZl cnNpb24pKSJgCiAgX2d1aWxlX3Byb2dfdmVyc2lvbj0iJF9ndWlsZV9tYWpvcl92ZXJzaW9uLiRf Z3VpbGVfbWlub3JfdmVyc2lvbi4kX2d1aWxlX21pY3JvX3ZlcnNpb24iCgogIEFDX01TR19DSEVD S0lORyhbZm9yIEd1aWxlIHZlcnNpb24gPj0gJF9ndWlsZV9yZXF1aXJlZF92ZXJzaW9uXSkKICBf bWFqb3JfdmVyc2lvbj1gZWNobyAkX2d1aWxlX3JlcXVpcmVkX3ZlcnNpb24gfCBjdXQgLWQgLiAt ZiAxYAogIF9taW5vcl92ZXJzaW9uPWBlY2hvICRfZ3VpbGVfcmVxdWlyZWRfdmVyc2lvbiB8IGN1 dCAtZCAuIC1mIDJgCiAgX21pY3JvX3ZlcnNpb249YGVjaG8gJF9ndWlsZV9yZXF1aXJlZF92ZXJz aW9uIHwgY3V0IC1kIC4gLWYgM2AKICBpZiB0ZXN0ICIkX2d1aWxlX21ham9yX3ZlcnNpb24iIC1n ZSAiJF9tYWpvcl92ZXJzaW9uIjsgdGhlbgogICAgaWYgdGVzdCAiJF9ndWlsZV9taW5vcl92ZXJz aW9uIiAtZ2UgIiRfbWlub3JfdmVyc2lvbiI7IHRoZW4KICAgICAgaWYgdGVzdCAtbiAiJF9taWNy b192ZXJzaW9uIjsgdGhlbgogICAgICAgIGlmIHRlc3QgIiRfZ3VpbGVfbWljcm9fdmVyc2lvbiIg LWx0ICIkX21pY3JvX3ZlcnNpb24iOyB0aGVuCiAgICAgICAgICBBQ19NU0dfRVJST1IoW0d1aWxl ICRfZ3VpbGVfcmVxdWlyZWRfdmVyc2lvbiByZXF1aXJlZCwgYnV0ICRfZ3VpbGVfcHJvZ192ZXJz aW9uIGZvdW5kXSkKICAgICAgICBmaQogICAgICBmaQogICAgZWxpZiB0ZXN0ICIkR1VJTEVfRUZG RUNUSVZFX1ZFUlNJT04iID09ICIkX21ham9yX3ZlcnNpb24uJF9taW5vcl92ZXJzaW9uIiAtYSAt eiAiJF9taWNyb192ZXJzaW9uIjsgdGhlbgogICAgICAjIEFsbG93IHByZXJlbGVhc2VzIHRoYXQg aGF2ZSB0aGUgcmlnaHQgZWZmZWN0aXZlIHZlcnNpb24uCiAgICAgIHRydWUKICAgIGVsc2UKICAg ICAgYXNfZm5fZXJyb3IgJD8gIkd1aWxlICRfZ3VpbGVfcmVxdWlyZWRfdmVyc2lvbiByZXF1aXJl ZCwgYnV0ICRfZ3VpbGVfcHJvZ192ZXJzaW9uIGZvdW5kIiAiJExJTkVOTyIgNQogICAgZmkKICBl bHNlCiAgICBBQ19NU0dfRVJST1IoW0d1aWxlICRfZ3VpbGVfcmVxdWlyZWRfdmVyc2lvbiByZXF1 aXJlZCwgYnV0ICRfZ3VpbGVfcHJvZ192ZXJzaW9uIGZvdW5kXSkKICBmaQogIEFDX01TR19SRVNV TFQoWyRfZ3VpbGVfcHJvZ192ZXJzaW9uXSkKCiAgQUNfUEFUSF9QUk9HKEdVSUxELGd1aWxkKQog IEFDX1NVQlNUKEdVSUxEKQoKICBBQ19QQVRIX1BST0coR1VJTEVfQ09ORklHLGd1aWxlLWNvbmZp ZykKICBBQ19TVUJTVChHVUlMRV9DT05GSUcpCiAgaWYgdGVzdCAtbiAiJEdVSUxEIjsgdGhlbgog ICAgR1VJTEVfVE9PTFM9JEdVSUxECiAgZWxzZQogICAgQUNfUEFUSF9QUk9HKEdVSUxFX1RPT0xT LGd1aWxlLXRvb2xzKQogIGZpCiAgQUNfU1VCU1QoR1VJTEVfVE9PTFMpCiBdKQoKIyBHVUlMRV9D SEVDSyAtLSBldmFsdWF0ZSBHdWlsZSBTY2hlbWUgY29kZSBhbmQgY2FwdHVyZSB0aGUgcmV0dXJu IHZhbHVlCiMKIyBVc2FnZTogR1VJTEVfQ0hFQ0tfUkVUVkFMKHZhcixjaGVjaykKIwojIEB2YXJ7 dmFyfSBpcyBhIHNoZWxsIHZhcmlhYmxlIG5hbWUgdG8gYmUgc2V0IHRvIHRoZSByZXR1cm4gdmFs dWUuCiMgQHZhcntjaGVja30gaXMgYSBHdWlsZSBTY2hlbWUgZXhwcmVzc2lvbiwgZXZhbHVhdGVk IHdpdGggIiRHVUlMRSAtYyIsIGFuZAojICAgIHJldHVybmluZyBlaXRoZXIgMCBvciBub24tI2Yg dG8gaW5kaWNhdGUgdGhlIGNoZWNrIHBhc3NlZC4KIyAgICBOb24tMCBudW1iZXIgb3IgI2YgaW5k aWNhdGVzIGZhaWx1cmUuCiMgICAgQXZvaWQgdXNpbmcgdGhlIGNoYXJhY3RlciAiIyIgc2luY2Ug dGhhdCBjb25mdXNlcyBhdXRvY29uZi4KIwpBQ19ERUZVTihbR1VJTEVfQ0hFQ0tdLAogW0FDX1JF UVVJUkUoW0dVSUxFX1BST0dTXSkKICAkR1VJTEUgLWMgIiQyIiA+IC9kZXYvbnVsbCAyPiYxCiAg JDE9JD8KIF0pCgojIEdVSUxFX01PRFVMRV9DSEVDSyAtLSBjaGVjayBmZWF0dXJlIG9mIGEgR3Vp bGUgU2NoZW1lIG1vZHVsZQojCiMgVXNhZ2U6IEdVSUxFX01PRFVMRV9DSEVDSyh2YXIsbW9kdWxl LGZlYXR1cmV0ZXN0LGRlc2NyaXB0aW9uKQojCiMgQHZhcnt2YXJ9IGlzIGEgc2hlbGwgdmFyaWFi bGUgbmFtZSB0byBiZSBzZXQgdG8gInllcyIgb3IgIm5vIi4KIyBAdmFye21vZHVsZX0gaXMgYSBs aXN0IG9mIHN5bWJvbHMsIGxpa2U6IChpY2UtOSBjb21tb24tbGlzdCkuCiMgQHZhcntmZWF0dXJl dGVzdH0gaXMgYW4gZXhwcmVzc2lvbiBhY2NlcHRhYmxlIHRvIEdVSUxFX0NIRUNLLCBxLnYuCiMg QHZhcntkZXNjcmlwdGlvbn0gaXMgYSBwcmVzZW50LXRlbnNlIHZlcmIgcGhyYXNlIChwYXNzZWQg dG8gQUNfTVNHX0NIRUNLSU5HKS4KIwpBQ19ERUZVTihbR1VJTEVfTU9EVUxFX0NIRUNLXSwKICAg ICAgICAgW0FDX01TR19DSEVDS0lORyhbaWYgJDIgJDRdKQoJICBHVUlMRV9DSEVDSygkMSwodXNl LW1vZHVsZXMgJDIpIChleGl0ICgobGFtYmRhICgpICQzKSkpKQoJICBpZiB0ZXN0ICIkJDEiID0g IjAiIDsgdGhlbiAkMT15ZXMgOyBlbHNlICQxPW5vIDsgZmkKICAgICAgICAgIEFDX01TR19SRVNV TFQoJCQxKQogICAgICAgICBdKQoKIyBHVUlMRV9NT0RVTEVfQVZBSUxBQkxFIC0tIGNoZWNrIGF2 YWlsYWJpbGl0eSBvZiBhIEd1aWxlIFNjaGVtZSBtb2R1bGUKIwojIFVzYWdlOiBHVUlMRV9NT0RV TEVfQVZBSUxBQkxFKHZhcixtb2R1bGUpCiMKIyBAdmFye3Zhcn0gaXMgYSBzaGVsbCB2YXJpYWJs ZSBuYW1lIHRvIGJlIHNldCB0byAieWVzIiBvciAibm8iLgojIEB2YXJ7bW9kdWxlfSBpcyBhIGxp c3Qgb2Ygc3ltYm9scywgbGlrZTogKGljZS05IGNvbW1vbi1saXN0KS4KIwpBQ19ERUZVTihbR1VJ TEVfTU9EVUxFX0FWQUlMQUJMRV0sCiAgICAgICAgIFtHVUlMRV9NT0RVTEVfQ0hFQ0soJDEsJDIs MCxpcyBhdmFpbGFibGUpCiAgICAgICAgIF0pCgojIEdVSUxFX01PRFVMRV9SRVFVSVJFRCAtLSBm YWlsIGlmIGEgR3VpbGUgU2NoZW1lIG1vZHVsZSBpcyB1bmF2YWlsYWJsZQojCiMgVXNhZ2U6IEdV SUxFX01PRFVMRV9SRVFVSVJFRChzeW1saXN0KQojCiMgQHZhcntzeW1saXN0fSBpcyBhIGxpc3Qg b2Ygc3ltYm9scywgV0lUSE9VVCBzdXJyb3VuZGluZyBwYXJlbnMsCiMgbGlrZTogaWNlLTkgY29t bW9uLWxpc3QuCiMKQUNfREVGVU4oW0dVSUxFX01PRFVMRV9SRVFVSVJFRF0sCiAgICAgICAgIFtH VUlMRV9NT0RVTEVfQVZBSUxBQkxFKGFjX2d1aWxlX21vZHVsZV9yZXF1aXJlZCwgKCQxKSkKICAg ICAgICAgIGlmIHRlc3QgIiRhY19ndWlsZV9tb2R1bGVfcmVxdWlyZWQiID0gIm5vIiA7IHRoZW4K ICAgICAgICAgICAgICBBQ19NU0dfRVJST1IoW3JlcXVpcmVkIGd1aWxlIG1vZHVsZSBub3QgZm91 bmQ6ICgkMSldKQogICAgICAgICAgZmkKICAgICAgICAgXSkKCiMgR1VJTEVfTU9EVUxFX0VYUE9S VFMgLS0gY2hlY2sgaWYgYSBtb2R1bGUgZXhwb3J0cyBhIHZhcmlhYmxlCiMKIyBVc2FnZTogR1VJ TEVfTU9EVUxFX0VYUE9SVFModmFyLG1vZHVsZSxtb2R2YXIpCiMKIyBAdmFye3Zhcn0gaXMgYSBz aGVsbCB2YXJpYWJsZSB0byBiZSBzZXQgdG8gInllcyIgb3IgIm5vIi4KIyBAdmFye21vZHVsZX0g aXMgYSBsaXN0IG9mIHN5bWJvbHMsIGxpa2U6IChpY2UtOSBjb21tb24tbGlzdCkuCiMgQHZhcntt b2R2YXJ9IGlzIHRoZSBHdWlsZSBTY2hlbWUgdmFyaWFibGUgdG8gY2hlY2suCiMKQUNfREVGVU4o W0dVSUxFX01PRFVMRV9FWFBPUlRTXSwKIFtHVUlMRV9NT0RVTEVfQ0hFQ0soJDEsJDIsJDMsZXhw b3J0cyBgJDMnKQogXSkKCiMgR1VJTEVfTU9EVUxFX1JFUVVJUkVEX0VYUE9SVCAtLSBmYWlsIGlm IGEgbW9kdWxlIGRvZXNuJ3QgZXhwb3J0IGEgdmFyaWFibGUKIwojIFVzYWdlOiBHVUlMRV9NT0RV TEVfUkVRVUlSRURfRVhQT1JUKG1vZHVsZSxtb2R2YXIpCiMKIyBAdmFye21vZHVsZX0gaXMgYSBs aXN0IG9mIHN5bWJvbHMsIGxpa2U6IChpY2UtOSBjb21tb24tbGlzdCkuCiMgQHZhcnttb2R2YXJ9 IGlzIHRoZSBHdWlsZSBTY2hlbWUgdmFyaWFibGUgdG8gY2hlY2suCiMKQUNfREVGVU4oW0dVSUxF X01PRFVMRV9SRVFVSVJFRF9FWFBPUlRdLAogW0dVSUxFX01PRFVMRV9FWFBPUlRTKGd1aWxlX21v ZHVsZV9yZXF1aXJlZF9leHBvcnQsJDEsJDIpCiAgaWYgdGVzdCAiJGd1aWxlX21vZHVsZV9yZXF1 aXJlZF9leHBvcnQiID0gIm5vIiA7IHRoZW4KICAgICAgQUNfTVNHX0VSUk9SKFttb2R1bGUgJDEg ZG9lcyBub3QgZXhwb3J0ICQyOyByZXF1aXJlZF0pCiAgZmkKIF0pCgojIyBndWlsZS5tNCBlbmRz IGhlcmUK --001a1140fe1eb8e41c052e34ced7--