Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ifkQQ-0007RB-QD for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Dec 2019 12:52:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1ifkQP-0003MY-45 for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Dec 2019 12:52:05 +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_SHA1:256) (Exim 4.89) (envelope-from ) id 1ifkQO-0003MP-Ow for pgsql-hackers@lists.postgresql.org; Fri, 13 Dec 2019 12:52:04 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ifkQK-0001PG-E2 for pgsql-hackers@postgresql.org; Fri, 13 Dec 2019 12:52:04 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id DDF4D8D0 for ; Fri, 13 Dec 2019 07:51:57 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Fri, 13 Dec 2019 07:51:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=1EjG7XAdNrUn8lfxeoRI7hTD4+eo3 BYf4kpUn8sHX8A=; b=k5emW4Fo37qoVhHJOBv+iqNeFW3hQGSaMG/6/3RB2ucGU dc4mvWalw1+0qWjgFyoIKpMnyXhQlAbPHyvUdO9EFENfq6fnS+AQGM2E5n8pCxpa xLtZ08NjozTihLUtblIdh0EgKoxUnGCJBdse5HDF0RnGsz1hZNsz12ln7yBXm/+4 1IdlSLLdKb8uN6o9Cd9sRPo5bqWCRpvZ7aQp05hI7Qdvq458nnah+nykC8EXNRob YVfqA8N15UzymgV3DxqPvXcUBpkSAPHIskni0QNAsXBqZJpAHRlDLmqURIWuueO4 iDfRRnY8/9W3W4OCM86NIkPQsn6xs1dVpi+MM6eVw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrudelledggeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhuffvohfkffgfgggtsehmtderre dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomheqnecuffhomhgrihhnpe dvnhguqhhurggurhgrnhhtrdgtohhmnecukfhppeelfedrvdegfedrfeegrdelleenucfr rghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnhhtrhgruhhtsedvnhguqh hurggurhgrnhhtrdgtohhmnecuvehluhhsthgvrhfuihiivgeptd X-ME-Proxy: Received: from april.pezone.net (p5df32263.dip0.t-ipconnect.de [93.243.34.99]) by mail.messagingengine.com (Postfix) with ESMTPA id 4ADF730600DB for ; Fri, 13 Dec 2019 07:51:56 -0500 (EST) From: Peter Eisentraut Subject: automating pg_config.h.win32 maintenance To: pgsql-hackers Organization: 2ndQuadrant Message-ID: <1441b834-f434-e0bf-46ed-9c4d5c29c2d4@2ndquadrant.com> Date: Fri, 13 Dec 2019 13:51:55 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------DABC7C3C4B1ACEF5617BA246" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------DABC7C3C4B1ACEF5617BA246 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Keeping pg_config.h.win32 up to date with pg_config.h.in is a gratuitous annoyance. This setup dates back to the minimal client-only Windows builds using win32.mak files, which has been removed in PG10. The MSVC build system has the power of Perl available, so we can do better. My proposal is that we essentially emulate what config.status does in Perl code. config.status gets a list of defines discovered by configure and processes pg_config.h.in to pg_config.h by substituting the defines. The MSVC build system basically has those defines hardcoded, but the processing we can do in just the same way. It already had code to do a bit of that anyway, so it's really not a big leap. See attached patches. (I put the remove of pg_config.h.win32 into a separate patch so that reviewers can just apply the first patch and then diff the produced pg_config.h with the existing pg_config.h.win32.) The only thing that's not quite explainable is that the existing code wrapped some parts of the pg_config.h it generated into an #ifndef IGNORE_CONFIGURED_SETTINGS block. I don't see that referenced or used anywhere else. The original commit (fb8155d0d) claimed this was "to be used by the installer", but I didn't find any reference in the current installer's Git repository either. I suspect this is obsolete. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------DABC7C3C4B1ACEF5617BA246 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Generate-pg_config.h-from-pg_config.h.in-on-Windows.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Generate-pg_config.h-from-pg_config.h.in-on-Windows.pat"; filename*1="ch" RnJvbSBiNjMyMmJhZDFiNTk2ODBjOTE1ZDJkYzg2MzZkNWMyMzEwZTlhNGY5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA3IE5vdiAyMDE5IDE1OjU2OjIyICswMTAwClN1YmplY3Q6 IFtQQVRDSCAxLzJdIEdlbmVyYXRlIHBnX2NvbmZpZy5oIGZyb20gcGdfY29uZmlnLmguaW4g b24gV2luZG93cwoKLS0tCiBzcmMvdG9vbHMvbXN2Yy9Tb2x1dGlvbi5wbSB8IDIyNCArKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTc0 IGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90b29s cy9tc3ZjL1NvbHV0aW9uLnBtIGIvc3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0KaW5kZXgg YWM2MjZkZmE1My4uYjEyOWM2NDllYSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL21zdmMvU29s dXRpb24ucG0KKysrIGIvc3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0KQEAgLTgsNiArOCw3 IEBAIHBhY2thZ2UgU29sdXRpb247CiB1c2UgQ2FycDsKIHVzZSBzdHJpY3Q7CiB1c2Ugd2Fy bmluZ3M7Cit1c2UgRmlsZTo6QmFzZW5hbWU7CiB1c2UgVlNPYmplY3RGYWN0b3J5OwogCiBu byB3YXJuaW5ncyBxdyhyZWRlZmluZSk7ICAgICMjIG5vIGNyaXRpYwpAQCAtMjAsNyArMjEs NiBAQCBzdWIgX25ldwogCQlwcm9qZWN0cyAgICAgICAgICAgICAgICAgICA9PiB7fSwKIAkJ b3B0aW9ucyAgICAgICAgICAgICAgICAgICAgPT4gJG9wdGlvbnMsCiAJCW51bXZlciAgICAg ICAgICAgICAgICAgICAgID0+ICcnLAotCQlzdHJ2ZXIgICAgICAgICAgICAgICAgICAgICA9 PiAnJywKIAkJVmlzdWFsU3R1ZGlvVmVyc2lvbiAgICAgICAgPT4gdW5kZWYsCiAJCU1pbmlt dW1WaXN1YWxTdHVkaW9WZXJzaW9uID0+IHVuZGVmLAogCQl2Y3ZlciAgICAgICAgICAgICAg ICAgICAgICA9PiB1bmRlZiwKQEAgLTE0MCwxNiArMTQwLDIyIEBAIHN1YiBHZW5lcmF0ZUZp bGVzCiB7CiAJbXkgJHNlbGYgPSBzaGlmdDsKIAlteSAkYml0cyA9ICRzZWxmLT57cGxhdGZv cm19IGVxICdXaW4zMicgPyAzMiA6IDY0OworCW15ICRwYWNrYWdlX25hbWU7CisJbXkgJHBh Y2thZ2VfdmVyc2lvbjsKKwlteSAkcGFja2FnZV9idWdyZXBvcnQ7CiAKIAkjIFBhcnNlIGNv bmZpZ3VyZS5pbiB0byBnZXQgdmVyc2lvbiBudW1iZXJzCiAJb3BlbihteSAkYywgJzwnLCAi Y29uZmlndXJlLmluIikKIAkgIHx8IGNvbmZlc3MoIkNvdWxkIG5vdCBvcGVuIGNvbmZpZ3Vy ZS5pbiBmb3IgcmVhZGluZ1xuIik7CiAJd2hpbGUgKDwkYz4pCiAJewotCQlpZiAoL15BQ19J TklUXChcW1Bvc3RncmVTUUxcXSwgXFsoW15cXV0rKVxdLykKKwkJaWYgKC9eQUNfSU5JVFwo XFsoW15cXV0rKVxdLCBcWyhbXlxdXSspXF0sIFxbKFteXF1dKylcXS8pCiAJCXsKLQkJCSRz ZWxmLT57c3RydmVyfSA9ICQxOwotCQkJaWYgKCRzZWxmLT57c3RydmVyfSAhfiAvXihcZCsp KD86XC4oXGQrKSk/LykKKwkJCSRwYWNrYWdlX25hbWUgPSAkMTsKKwkJCSRwYWNrYWdlX3Zl cnNpb24gPSAkMjsKKwkJCSRwYWNrYWdlX2J1Z3JlcG9ydCA9ICQzOworCisJCQlpZiAoJHBh Y2thZ2VfdmVyc2lvbiAhfiAvXihcZCspKD86XC4oXGQrKSk/LykKIAkJCXsKIAkJCQljb25m ZXNzICJCYWQgZm9ybWF0IG9mIHZlcnNpb246ICRzZWxmLT57c3RydmVyfVxuIjsKIAkJCX0K QEAgLTE1OSw3ICsxNjUsOCBAQCBzdWIgR2VuZXJhdGVGaWxlcwogCX0KIAljbG9zZSgkYyk7 CiAJY29uZmVzcyAiVW5hYmxlIHRvIHBhcnNlIGNvbmZpZ3VyZS5pbiBmb3IgYWxsIHZhcmlh YmxlcyEiCi0JICBpZiAoJHNlbGYtPntzdHJ2ZXJ9IGVxICcnIHx8ICRzZWxmLT57bnVtdmVy fSBlcSAnJyk7CisJICBpZiAoJHBhY2thZ2VfbmFtZSBlcSAnJyB8fCAkcGFja2FnZV92ZXJz aW9uIGVxICcnIHx8ICRzZWxmLT57bnVtdmVyfSBlcSAnJyB8fAorCQkgICRwYWNrYWdlX2J1 Z3JlcG9ydCBlcSAnJyk7CiAKIAlpZiAoSXNOZXdlcigic3JjL2luY2x1ZGUvcGdfY29uZmln X29zLmgiLCAic3JjL2luY2x1ZGUvcG9ydC93aW4zMi5oIikpCiAJewpAQCAtMTY3LDg5ICsx NzQsMjA2IEBAIHN1YiBHZW5lcmF0ZUZpbGVzCiAJCWNvcHlGaWxlKCJzcmMvaW5jbHVkZS9w b3J0L3dpbjMyLmgiLCAic3JjL2luY2x1ZGUvcGdfY29uZmlnX29zLmgiKTsKIAl9CiAKLQlp ZiAoSXNOZXdlcigic3JjL2luY2x1ZGUvcGdfY29uZmlnLmgiLCAic3JjL2luY2x1ZGUvcGdf Y29uZmlnLmgud2luMzIiKSkKKwlpZiAoSXNOZXdlcigic3JjL2luY2x1ZGUvcGdfY29uZmln LmgiLCAic3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4iKSkKIAl7CiAJCXByaW50ICJHZW5l cmF0aW5nIHBnX2NvbmZpZy5oLi4uXG4iOwotCQlvcGVuKG15ICRpLCAnPCcsICJzcmMvaW5j bHVkZS9wZ19jb25maWcuaC53aW4zMiIpCi0JCSAgfHwgY29uZmVzcyAiQ291bGQgbm90IG9w ZW4gcGdfY29uZmlnLmgud2luMzJcbiI7CisJCW9wZW4obXkgJGksICc8JywgInNyYy9pbmNs dWRlL3BnX2NvbmZpZy5oLmluIikKKwkJICB8fCBjb25mZXNzICJDb3VsZCBub3Qgb3BlbiBw Z19jb25maWcuaC5pblxuIjsKIAkJb3BlbihteSAkbywgJz4nLCAic3JjL2luY2x1ZGUvcGdf Y29uZmlnLmgiKQogCQkgIHx8IGNvbmZlc3MgIkNvdWxkIG5vdCB3cml0ZSB0byBwZ19jb25m aWcuaFxuIjsKKworCQlwcmludCAkbyAiLyogc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguICBH ZW5lcmF0ZWQgZnJvbSBwZ19jb25maWcuaC5pbiBieSAiLCBiYXNlbmFtZShfX0ZJTEVfXyks ICIuICAqL1xuIjsKKworCQlteSAlZGVmaW5lOworCisJCSRkZWZpbmV7UEFDS0FHRV9CVUdS RVBPUlR9ID0gcXF7IiRwYWNrYWdlX2J1Z3JlcG9ydCJ9OworCQkkZGVmaW5le1BBQ0tBR0Vf TkFNRX0gPSBxcXsiJHBhY2thZ2VfbmFtZSJ9OworCQkkZGVmaW5le1BBQ0tBR0VfU1RSSU5H fSA9IHFxeyIkcGFja2FnZV9uYW1lICRwYWNrYWdlX3ZlcnNpb24ifTsKKwkJJGRlZmluZXtQ QUNLQUdFX1RBUk5BTUV9ID0gbGMgJGRlZmluZXtQQUNLQUdFX05BTUV9OworCQkkZGVmaW5l e1BBQ0tBR0VfVkVSU0lPTn0gPSBxcXsiJHBhY2thZ2VfdmVyc2lvbiJ9OworCiAJCW15ICRl eHRyYXZlciA9ICRzZWxmLT57b3B0aW9uc30tPntleHRyYXZlcn07CiAJCSRleHRyYXZlciA9 ICcnIHVubGVzcyBkZWZpbmVkICRleHRyYXZlcjsKLQkJd2hpbGUgKDwkaT4pCi0JCXsKLQkJ CXN7UEdfVkVSU0lPTiAiW14iXSsifXtQR19WRVJTSU9OICIkc2VsZi0+e3N0cnZlcn0kZXh0 cmF2ZXIifTsKLQkJCXN7UEdfVkVSU0lPTl9OVU0gXGQrfXtQR19WRVJTSU9OX05VTSAkc2Vs Zi0+e251bXZlcn19OwotCQkJc3tQR19WRVJTSU9OX1NUUiAiW14iXSsifXtQR19WRVJTSU9O X1NUUiAiUG9zdGdyZVNRTCAkc2VsZi0+e3N0cnZlcn0kZXh0cmF2ZXIsIGNvbXBpbGVkIGJ5 IFZpc3VhbCBDKysgYnVpbGQgIiBDcHBBc1N0cmluZzIoX01TQ19WRVIpICIsICRiaXRzLWJp dCJ9OwotCQkJcHJpbnQgJG8gJF87Ci0JCX0KLQkJcHJpbnQgJG8gIiNkZWZpbmUgUEdfTUFK T1JWRVJTSU9OIFwiJHNlbGYtPnttYWpvcnZlcn1cIlxuIjsKLQkJcHJpbnQgJG8gIi8qIGRl ZmluZXMgYWRkZWQgYnkgY29uZmlnIHN0ZXBzICovXG4iOwotCQlwcmludCAkbyAiI2lmbmRl ZiBJR05PUkVfQ09ORklHVVJFRF9TRVRUSU5HU1xuIjsKLQkJcHJpbnQgJG8gIiNkZWZpbmUg VVNFX0FTU0VSVF9DSEVDS0lORyAxXG4iCisJCSRkZWZpbmV7UEdfVkVSU0lPTn0gPSBxcXsi JHBhY2thZ2VfdmVyc2lvbiRleHRyYXZlciJ9OworCQkkZGVmaW5le1BHX1ZFUlNJT05fTlVN fSA9ICRzZWxmLT57bnVtdmVyfTsKKwkJJGRlZmluZXtQR19WRVJTSU9OX1NUUn0gPSBxcXsi UG9zdGdyZVNRTCAkcGFja2FnZV92ZXJzaW9uJGV4dHJhdmVyLCBjb21waWxlZCBieSBWaXN1 YWwgQysrIGJ1aWxkICIgQ3BwQXNTdHJpbmcyKF9NU0NfVkVSKSAiLCAkYml0cy1iaXQifTsK KworCQkkZGVmaW5le1BHX01BSk9SVkVSU0lPTn0gPSBxcXsiJHNlbGYtPnttYWpvcnZlcn0i fTsKKwkJJGRlZmluZXtVU0VfQVNTRVJUX0NIRUNLSU5HfSA9IDEKIAkJICBpZiAoJHNlbGYt PntvcHRpb25zfS0+e2Fzc2VydHN9KTsKLQkJcHJpbnQgJG8gIiNkZWZpbmUgVVNFX0xEQVAg MVxuIiAgIGlmICgkc2VsZi0+e29wdGlvbnN9LT57bGRhcH0pOwotCQlwcmludCAkbyAiI2Rl ZmluZSBIQVZFX0xJQlogMVxuIiAgaWYgKCRzZWxmLT57b3B0aW9uc30tPnt6bGlifSk7Ci0J CXByaW50ICRvICIjZGVmaW5lIEVOQUJMRV9OTFMgMVxuIiBpZiAoJHNlbGYtPntvcHRpb25z fS0+e25sc30pOwotCi0JCXByaW50ICRvICIjZGVmaW5lIEJMQ0tTWiAiLCAxMDI0ICogJHNl bGYtPntvcHRpb25zfS0+e2Jsb2Nrc2l6ZX0sCi0JCSAgIlxuIjsKLQkJcHJpbnQgJG8gIiNk ZWZpbmUgUkVMU0VHX1NJWkUgIiwKLQkJICAoMTAyNCAvICRzZWxmLT57b3B0aW9uc30tPnti bG9ja3NpemV9KSAqCi0JCSAgJHNlbGYtPntvcHRpb25zfS0+e3NlZ3NpemV9ICogMTAyNCwg IlxuIjsKLQkJcHJpbnQgJG8gIiNkZWZpbmUgWExPR19CTENLU1ogIiwKLQkJICAxMDI0ICog JHNlbGYtPntvcHRpb25zfS0+e3dhbF9ibG9ja3NpemV9LCAiXG4iOworCQkkZGVmaW5le1VT RV9MREFQfSA9IDEgaWYgKCRzZWxmLT57b3B0aW9uc30tPntsZGFwfSk7CisJCSRkZWZpbmV7 SEFWRV9MSUJafSA9IDEgaWYgKCRzZWxmLT57b3B0aW9uc30tPnt6bGlifSk7CisJCSRkZWZp bmV7RU5BQkxFX05MU30gPSAxIGlmICgkc2VsZi0+e29wdGlvbnN9LT57bmxzfSk7CisKKwkJ JGRlZmluZXtCTENLU1p9ID0gMTAyNCAqICRzZWxmLT57b3B0aW9uc30tPntibG9ja3NpemV9 OworCQkkZGVmaW5le1JFTFNFR19TSVpFfSA9ICgoMTAyNCAvICRzZWxmLT57b3B0aW9uc30t PntibG9ja3NpemV9KSAqCisJCQkJCQkJCSAkc2VsZi0+e29wdGlvbnN9LT57c2Vnc2l6ZX0g KiAxMDI0KTsKKwkJJGRlZmluZXtYTE9HX0JMQ0tTWn0gPSAxMDI0ICogJHNlbGYtPntvcHRp b25zfS0+e3dhbF9ibG9ja3NpemV9OwogCiAJCWlmICgkc2VsZi0+e29wdGlvbnN9LT57dXVp ZH0pCiAJCXsKLQkJCXByaW50ICRvICIjZGVmaW5lIEhBVkVfVVVJRF9PU1NQXG4iOwotCQkJ cHJpbnQgJG8gIiNkZWZpbmUgSEFWRV9VVUlEX0hcbiI7CisJCQkkZGVmaW5le0hBVkVfVVVJ RF9PU1NQfSA9IDE7CisJCQkkZGVmaW5le0hBVkVfVVVJRF9IfSA9IDE7CiAJCX0KIAkJaWYg KCRzZWxmLT57b3B0aW9uc30tPnt4bWx9KQogCQl7Ci0JCQlwcmludCAkbyAiI2RlZmluZSBI QVZFX0xJQlhNTDJcbiI7Ci0JCQlwcmludCAkbyAiI2RlZmluZSBVU0VfTElCWE1MXG4iOwor CQkJJGRlZmluZXtIQVZFX0xJQlhNTDJ9ID0gMTsKKwkJCSRkZWZpbmV7VVNFX0xJQlhNTH0g PSAxOwogCQl9CiAJCWlmICgkc2VsZi0+e29wdGlvbnN9LT57eHNsdH0pCiAJCXsKLQkJCXBy aW50ICRvICIjZGVmaW5lIEhBVkVfTElCWFNMVFxuIjsKLQkJCXByaW50ICRvICIjZGVmaW5l IFVTRV9MSUJYU0xUXG4iOworCQkJJGRlZmluZXtIQVZFX0xJQlhTTFR9ID0gMTsKKwkJCSRk ZWZpbmV7VVNFX0xJQlhTTFR9ID0gMTsKIAkJfQogCQlpZiAoJHNlbGYtPntvcHRpb25zfS0+ e2dzc30pCiAJCXsKLQkJCXByaW50ICRvICIjZGVmaW5lIEVOQUJMRV9HU1MgMVxuIjsKKwkJ CSRkZWZpbmV7RU5BQkxFX0dTU30gPSAxOwogCQl9CiAJCWlmICgkc2VsZi0+e29wdGlvbnN9 LT57b3BlbnNzbH0pCiAJCXsKLQkJCXByaW50ICRvICIjZGVmaW5lIFVTRV9PUEVOU1NMIDFc biI7CisJCQkkZGVmaW5le1VTRV9PUEVOU1NMfSA9IDE7CiAKIAkJCW15ICgkZGlnaXQxLCAk ZGlnaXQyLCAkZGlnaXQzKSA9ICRzZWxmLT5HZXRPcGVuU1NMVmVyc2lvbigpOwogCiAJCQkj IE1vcmUgc3ltYm9scyBhcmUgbmVlZGVkIHdpdGggT3BlblNTTCAxLjEuMCBhbmQgYWJvdmUu CiAJCQlpZiAoJGRpZ2l0MSA+PSAnMScgJiYgJGRpZ2l0MiA+PSAnMScgJiYgJGRpZ2l0MyA+ PSAnMCcpCiAJCQl7Ci0JCQkJcHJpbnQgJG8gIiNkZWZpbmUgSEFWRV9BU04xX1NUUklOR19H RVQwX0RBVEEgMVxuIjsKLQkJCQlwcmludCAkbyAiI2RlZmluZSBIQVZFX0JJT19HRVRfREFU QSAxXG4iOwotCQkJCXByaW50ICRvICIjZGVmaW5lIEhBVkVfQklPX01FVEhfTkVXIDFcbiI7 Ci0JCQkJcHJpbnQgJG8gIiNkZWZpbmUgSEFWRV9PUEVOU1NMX0lOSVRfU1NMIDFcbiI7CisJ CQkJJGRlZmluZXtIQVZFX0FTTjFfU1RSSU5HX0dFVDBfREFUQX0gPSAxOworCQkJCSRkZWZp bmV7SEFWRV9CSU9fR0VUX0RBVEF9ID0gMTsKKwkJCQkkZGVmaW5le0hBVkVfQklPX01FVEhf TkVXfSA9IDE7CisJCQkJJGRlZmluZXtIQVZFX09QRU5TU0xfSU5JVF9TU0x9ID0gMTsKIAkJ CX0KIAkJfQogCQlpZiAoJHNlbGYtPntvcHRpb25zfS0+e2ljdX0pCiAJCXsKLQkJCXByaW50 ICRvICIjZGVmaW5lIFVTRV9JQ1UgMVxuIjsKKwkJCSRkZWZpbmV7VVNFX0lDVX0gPSAxOwor CQl9CisJCW15ICRwb3J0ID0gJHNlbGYtPntvcHRpb25zfS0+eyItLXdpdGgtcGdwb3J0In0g fHwgNTQzMjsKKwkJJGRlZmluZXtERUZfUEdQT1JUfSA9ICRwb3J0OworCQkkZGVmaW5le0RF Rl9QR1BPUlRfU1RSfSA9IHFxeyIkcG9ydCJ9OworCQkkZGVmaW5le1BHX0tSQl9TUlZOQU19 ID0gcXF7InBvc3RncmVzIn07CisKKwkJJGRlZmluZXtBQ0NFUFRfVFlQRV9BUkcxfSA9ICd1 bnNpZ25lZCBpbnQnOworCQkkZGVmaW5le0FDQ0VQVF9UWVBFX0FSRzJ9ID0gJ3N0cnVjdCBz b2NrYWRkciAqJzsKKwkJJGRlZmluZXtBQ0NFUFRfVFlQRV9BUkczfSA9ICdpbnQnOworCQkk ZGVmaW5le0FDQ0VQVF9UWVBFX1JFVFVSTn0gPSAndW5zaWduZWQgaW50IFBBU0NBTCc7CisJ CSRkZWZpbmV7QUxJR05PRl9ET1VCTEV9ID0gODsKKwkJJGRlZmluZXtBTElHTk9GX0lOVH0g PSA0OworCQkkZGVmaW5le0FMSUdOT0ZfTE9OR30gPSA0OworCQkkZGVmaW5le0FMSUdOT0Zf TE9OR19MT05HX0lOVH0gPSA4OworCQkkZGVmaW5le0FMSUdOT0ZfU0hPUlR9ID0gMjsKKwkJ JGRlZmluZXtFTkFCTEVfVEhSRUFEX1NBRkVUWX0gPSAxOworCQkkZGVmaW5le0ZMRVhJQkxF X0FSUkFZX01FTUJFUn0gPSAnLyoqLyc7CisJCSRkZWZpbmV7SEFWRV9ERUNMX0ZEQVRBU1lO Q30gPSAwOworCQkkZGVmaW5le0hBVkVfREVDTF9GX0ZVTExGU1lOQ30gPSAwOworCQkkZGVm aW5le0hBVkVfREVDTF9MTFZNR0VUSE9TVENQVU5BTUV9ID0gMDsKKwkJJGRlZmluZXtIQVZF X0RFQ0xfTExWTUdFVEhPU1RDUFVGRUFUVVJFU30gPSAwOworCQkkZGVmaW5le0hBVkVfREVD TF9MTFZNT1JDR0VUU1lNQk9MQUREUkVTU0lOfSA9IDA7CisJCSRkZWZpbmV7SEFWRV9ERUNM X1JUTERfR0xPQkFMfSA9IDA7CisJCSRkZWZpbmV7SEFWRV9ERUNMX1JUTERfTk9XfSA9IDA7 CisJCSRkZWZpbmV7SEFWRV9ERUNMX1NUUk5MRU59ID0gMTsKKwkJJGRlZmluZXtIQVZFX0RF Q0xfU1RSVE9MTH0gPSAxOworCQkkZGVmaW5le0hBVkVfREVDTF9TVFJUT1VMTH0gPSAxOwor CQkkZGVmaW5le0lOVDY0X01PRElGSUVSfSA9IHFxeyJsbCJ9OworCQkkZGVmaW5le01BWElN VU1fQUxJR05PRn0gPSA4OworCQkkZGVmaW5le01FTVNFVF9MT09QX0xJTUlUfSA9IDEwMjQ7 CisJCSRkZWZpbmV7UEdfSU5UNjRfVFlQRX0gPSAnbG9uZyBsb25nIGludCc7CisJCSRkZWZp bmV7U0laRU9GX0JPT0x9ID0gMTsKKwkJJGRlZmluZXtTSVpFT0ZfTE9OR30gPSA0OworCQkk ZGVmaW5le2lubGluZX0gPSAnX19pbmxpbmUnOworCQkkZGVmaW5le3BnX3Jlc3RyaWN0fSA9 ICdfX3Jlc3RyaWN0JzsKKworCQlpZiAoJGJpdHMgPT0gMzIpCisJCXsKKwkJCSRkZWZpbmV7 U0laRU9GX1NJWkVfVH0gPSA0OworCQkJJGRlZmluZXtTSVpFT0ZfVk9JRF9QfSA9IDQ7CisJ CX0KKwkJZWxzZQorCQl7CisJCQkkZGVmaW5le1NJWkVPRl9TSVpFX1R9ID0gODsKKwkJCSRk ZWZpbmV7U0laRU9GX1ZPSURfUH0gPSA4OwogCQl9Ci0JCWlmIChteSAkcG9ydCA9ICRzZWxm LT57b3B0aW9uc30tPnsiLS13aXRoLXBncG9ydCJ9KQorCisJCW15IEBzaW1wbGVfZGVmaW5l cyA9IHF3KAorCQkJSEFWRV9BVE9NSUNTCisJCQlIQVZFX0ZTRUVLTworCQkJSEFWRV9GVU5D TkFNRV9fRlVOQ1RJT04KKwkJCUhBVkVfSU5UX1RJTUVaT05FCisJCQlIQVZFX0lQVjYKKwkJ CUhBVkVfSVNJTkYKKwkJCUhBVkVfTE9DQUxFX1QKKwkJCUhBVkVfTE9OR19MT05HX0lOVF82 NAorCQkJSEFWRV9NQlNUT1dDU19MCisJCQlIQVZFX01FTU1PVkUKKwkJCUhBVkVfTUVNT1JZ X0gKKwkJCUhBVkVfTUlOSURVTVBfVFlQRQorCQkJSEFWRV9TVFJOTEVOCisJCQlIQVZFX1JJ TlQKKwkJCUhBVkVfU1BJTkxPQ0tTCisJCQlIQVZFX1NUREJPT0xfSAorCQkJSEFWRV9TVERM SUJfSAorCQkJSEFWRV9TVFJJTkdfSAorCQkJSEFWRV9TVFJUT0YKKwkJCUhBVkVfU1RSVE9M TAorCQkJSEFWRV9TVFJUT1VMTAorCQkJSEFWRV9TVFJVQ1RfQUREUklORk8KKwkJCUhBVkVf U1RSVUNUX1NPQ0tBRERSX1NUT1JBR0UKKwkJCUhBVkVfU1RSVUNUX1NPQ0tBRERSX1NUT1JB R0VfU1NfRkFNSUxZCisJCQlIQVZFX1NZTUxJTksKKwkJCUhBVkVfU1lTX1NUQVRfSAorCQkJ SEFWRV9TWVNfVFlQRVNfSAorCQkJSEFWRV9VTklTVERfSAorCQkJSEFWRV9VVElNRQorCQkJ SEFWRV9VVElNRV9ICisJCQlIQVZFX1dDSEFSX0gKKwkJCUhBVkVfV0NTVE9NQlNfTAorCQkJ SEFWRV9XQ1RZUEVfSAorCQkJSEFWRV9YNTA5X0dFVF9TSUdOQVRVUkVfTklECisJCQlIQVZF X19DT05GSUdUSFJFQURMT0NBTEUKKwkJCUhBVkVfX0NQVUlECisJCQlQR19VU0VfU1REQk9P TAorCQkJU1REQ19IRUFERVJTCisJCQlVU0VfU1NFNDJfQ1JDMzJDX1dJVEhfUlVOVElNRV9D SEVDSworCQkJVVNFX1dJTjMyX1JBTkRPTQorCQkJVVNFX1dJTjMyX1NFTUFQSE9SRVMKKwkJ CVVTRV9XSU4zMl9TSEFSRURfTUVNT1JZCisJCSAgKTsKKworCQlmb3JlYWNoIG15ICRrIChA c2ltcGxlX2RlZmluZXMpCisJCXsKKwkJCSRkZWZpbmV7JGt9ID0gMTsKKwkJfQorCisJCXdo aWxlICg8JGk+KQogCQl7Ci0JCQlwcmludCAkbyAiI3VuZGVmIERFRl9QR1BPUlRcbiI7Ci0J CQlwcmludCAkbyAiI3VuZGVmIERFRl9QR1BPUlRfU1RSXG4iOwotCQkJcHJpbnQgJG8gIiNk ZWZpbmUgREVGX1BHUE9SVCAkcG9ydFxuIjsKLQkJCXByaW50ICRvICIjZGVmaW5lIERFRl9Q R1BPUlRfU1RSIFwiJHBvcnRcIlxuIjsKKwkJCWlmIChtL14jKFxzKil1bmRlZlxzKyhcdysp LykKKwkJCXsKKwkJCQlteSAkd3MgPSAkMTsKKwkJCQlteSAkbWFjcm8gPSAkMjsKKwkJCQlp ZiAoZXhpc3RzICRkZWZpbmV7JG1hY3JvfSkKKwkJCQl7CisJCQkJCXByaW50ICRvICIjJHt3 c31kZWZpbmUgJG1hY3JvICIsICRkZWZpbmV7JG1hY3JvfSwgIlxuIjsKKwkJCQl9CisJCQkJ ZWxzZQorCQkJCXsKKwkJCQkJcHJpbnQgJG8gIi8qICMke3dzfXVuZGVmICRtYWNybyAqL1xu IjsKKwkJCQl9CisJCQkJZGVsZXRlICRkZWZpbmV7JG1hY3JvfTsKKwkJCX0KKwkJCWVsc2UK KwkJCXsKKwkJCQlwcmludCAkbyAkXzsKKwkJCX0KIAkJfQorCQlwcmludCAkbyAiXG4iOwog CQlwcmludCAkbyAiI2RlZmluZSBWQUxfQ09ORklHVVJFIFwiIgogCQkgIC4gJHNlbGYtPkdl dEZha2VDb25maWd1cmUoKSAuICJcIlxuIjsKLQkJcHJpbnQgJG8gIiNlbmRpZiAvKiBJR05P UkVfQ09ORklHVVJFRF9TRVRUSU5HUyAqL1xuIjsKIAkJY2xvc2UoJG8pOwogCQljbG9zZSgk aSk7CisJCWlmIChzY2FsYXIoa2V5cyAlZGVmaW5lKSA+IDApCisJCXsKKwkJCWNyb2FrICJ1 bnVzZWQgZGVmaW5lczogQHtbJWRlZmluZV19IjsKKwkJfQogCX0KIAogCWlmIChJc05ld2Vy KApAQCAtNTgxLDcgKzcwNSw3IEBAIEVPRgogCW9wZW4obXkgJG8sICc+JywgImRvYy9zcmMv c2dtbC92ZXJzaW9uLnNnbWwiKQogCSAgfHwgY3JvYWsgIkNvdWxkIG5vdCB3cml0ZSB0byB2 ZXJzaW9uLnNnbWxcbiI7CiAJcHJpbnQgJG8gPDxFT0Y7Ci08IUVOVElUWSB2ZXJzaW9uICIk c2VsZi0+e3N0cnZlcn0iPgorPCFFTlRJVFkgdmVyc2lvbiAiJHBhY2thZ2VfdmVyc2lvbiI+ CiA8IUVOVElUWSBtYWpvcnZlcnNpb24gIiRzZWxmLT57bWFqb3J2ZXJ9Ij4KIEVPRgogCWNs b3NlKCRvKTsKLS0gCjIuMjQuMAoK --------------DABC7C3C4B1ACEF5617BA246 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0002-Remove-pg_config.h.win32.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Remove-pg_config.h.win32.patch" RnJvbSAxYmViOWFiZGE3MTJkOGQ2YmFkNTMyMzliYWU3NzQxZDY2NmMwZmQzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA3IE5vdiAyMDE5IDE1OjU5OjU5ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAyLzJdIFJlbW92ZSBwZ19jb25maWcuaC53aW4zMgoKLS0tCiBzcmMvaW5jbHVk ZS9wZ19jb25maWcuaC53aW4zMiB8IDczNiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBzcmMvdG9vbHMvdmVyc2lvbl9zdGFtcC5wbCAgICB8ICAgNyAtCiAyIGZpbGVz IGNoYW5nZWQsIDc0MyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvaW5j bHVkZS9wZ19jb25maWcuaC53aW4zMgoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BnX2Nv bmZpZy5oLndpbjMyIGIvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmgud2luMzIKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwOGY1YWJjZGIuLjAwMDAwMDAwMDAKLS0tIGEvc3Jj L2luY2x1ZGUvcGdfY29uZmlnLmgud2luMzIKKysrIC9kZXYvbnVsbApAQCAtMSw3MzYgKzAs MCBAQAotLyogc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmln dXJlLiAgKi8KLS8qIHNyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZy b20gY29uZmlndXJlLmluIGJ5IGF1dG9oZWFkZXIuICAqLwotCi0vKiBUaGlzIGZpbGUgaXMg Z2VuZXJhdGVkIGZyb20gTWluZ1cgLi9jb25maWd1cmUsIGFuZCB3aXRoIHRoZSBmb2xsb3dp bmcKLSAqIGNoYW5nZXMgdG8gYmUgdmFsaWQgZm9yIFZpc3VhbCBDKysgKGFuZCBjb21wYXRp YmxlKToKLSAqCi0gKiBIQVZFX0NCUlQsIEhBVkVfRlVOQ05BTUVfRlVOQywgSEFWRV9HRVRP UFQsIEhBVkVfR0VUT1BUX0gsIEhBVkVfSU5UVFlQRVNfSCwKLSAqIEhBVkVfR0VUT1BUX0xP TkcsIEhBVkVfTE9DQUxFX1QsIEhBVkVfUklOVCwgSEFWRV9TVFJJTkdTX0gsIEhBVkVfU1RS VE9MTCwKLSAqIEhBVkVfU1RSVE9VTEwsIEhBVkVfU1RSVUNUX09QVElPTiwgRU5BQkxFX1RI UkVBRF9TQUZFVFksCi0gKiBpbmxpbmUsIFVTRV9TU0U0Ml9DUkMzMkNfV0lUSF9SVU5USU1F X0NIRUNLCi0gKi8KLQotLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFyZyAxIG9mICdhY2Nl cHQnICovCi0jZGVmaW5lIEFDQ0VQVF9UWVBFX0FSRzEgdW5zaWduZWQgaW50Ci0KLS8qIERl ZmluZSB0byB0aGUgdHlwZSBvZiBhcmcgMiBvZiAnYWNjZXB0JyAqLwotI2RlZmluZSBBQ0NF UFRfVFlQRV9BUkcyIHN0cnVjdCBzb2NrYWRkciAqCi0KLS8qIERlZmluZSB0byB0aGUgdHlw ZSBvZiBhcmcgMyBvZiAnYWNjZXB0JyAqLwotI2RlZmluZSBBQ0NFUFRfVFlQRV9BUkczIGlu dAotCi0vKiBEZWZpbmUgdG8gdGhlIHJldHVybiB0eXBlIG9mICdhY2NlcHQnICovCi0jZGVm aW5lIEFDQ0VQVF9UWVBFX1JFVFVSTiB1bnNpZ25lZCBpbnQgUEFTQ0FMCi0KLS8qIFRoZSBu b3JtYWwgYWxpZ25tZW50IG9mIGBkb3VibGUnLCBpbiBieXRlcy4gKi8KLSNkZWZpbmUgQUxJ R05PRl9ET1VCTEUgOAotCi0vKiBUaGUgbm9ybWFsIGFsaWdubWVudCBvZiBgaW50JywgaW4g Ynl0ZXMuICovCi0jZGVmaW5lIEFMSUdOT0ZfSU5UIDQKLQotLyogVGhlIG5vcm1hbCBhbGln bm1lbnQgb2YgYGxvbmcnLCBpbiBieXRlcy4gKi8KLSNkZWZpbmUgQUxJR05PRl9MT05HIDQK LQotLyogVGhlIG5vcm1hbCBhbGlnbm1lbnQgb2YgYGxvbmcgbG9uZyBpbnQnLCBpbiBieXRl cy4gKi8KLSNkZWZpbmUgQUxJR05PRl9MT05HX0xPTkdfSU5UIDgKLQotLyogVGhlIG5vcm1h bCBhbGlnbm1lbnQgb2YgYFBHX0lOVDEyOF9UWVBFJywgaW4gYnl0ZXMuICovCi0jdW5kZWYg QUxJR05PRl9QR19JTlQxMjhfVFlQRQotCi0vKiBUaGUgbm9ybWFsIGFsaWdubWVudCBvZiBg c2hvcnQnLCBpbiBieXRlcy4gKi8KLSNkZWZpbmUgQUxJR05PRl9TSE9SVCAyCi0KLS8qIERl ZmluZSB0byB0aGUgZGVmYXVsdCBUQ1AgcG9ydCBudW1iZXIgb24gd2hpY2ggdGhlIHNlcnZl ciBsaXN0ZW5zIGFuZCB0bwotICAgd2hpY2ggY2xpZW50cyB3aWxsIHRyeSB0byBjb25uZWN0 LiBUaGlzIGNhbiBiZSBvdmVycmlkZGVuIGF0IHJ1bi10aW1lLCBidXQKLSAgIGl0J3MgY29u dmVuaWVudCBpZiB5b3VyIGNsaWVudHMgaGF2ZSB0aGUgcmlnaHQgZGVmYXVsdCBjb21waWxl ZCBpbi4KLSAgICgtLXdpdGgtcGdwb3J0PVBPUlROVU0pICovCi0jZGVmaW5lIERFRl9QR1BP UlQgNTQzMgotCi0vKiBEZWZpbmUgdG8gdGhlIGRlZmF1bHQgVENQIHBvcnQgbnVtYmVyIGFz IGEgc3RyaW5nIGNvbnN0YW50LiAqLwotI2RlZmluZSBERUZfUEdQT1JUX1NUUiAiNTQzMiIK LQotLyogRGVmaW5lIHRvIDEgaWYgeW91IHdhbnQgTmF0aW9uYWwgTGFuZ3VhZ2UgU3VwcG9y dC4gKC0tZW5hYmxlLW5scykgKi8KLS8qICN1bmRlZiBFTkFCTEVfTkxTICovCi0KLS8qIERl ZmluZSB0byAxIHRvIGJ1aWxkIGNsaWVudCBsaWJyYXJpZXMgYXMgdGhyZWFkLXNhZmUgY29k ZS4KLSAgICgtLWVuYWJsZS10aHJlYWQtc2FmZXR5KSAqLwotI2RlZmluZSBFTkFCTEVfVEhS RUFEX1NBRkVUWSAxCi0KLS8qIERlZmluZSB0byBub3RoaW5nIGlmIEMgc3VwcG9ydHMgZmxl eGlibGUgYXJyYXkgbWVtYmVycywgYW5kIHRvIDEgaWYgaXQgZG9lcwotICAgbm90LiBUaGF0 IHdheSwgd2l0aCBhIGRlY2xhcmF0aW9uIGxpa2UgYHN0cnVjdCBzIHsgaW50IG47IGRvdWJs ZQotICAgZFtGTEVYSUJMRV9BUlJBWV9NRU1CRVJdOyB9OycsIHRoZSBzdHJ1Y3QgaGFjayBj YW4gYmUgdXNlZCB3aXRoIHByZS1DOTkKLSAgIGNvbXBpbGVycy4gV2hlbiBjb21wdXRpbmcg dGhlIHNpemUgb2Ygc3VjaCBhbiBvYmplY3QsIGRvbid0IHVzZSAnc2l6ZW9mCi0gICAoc3Ry dWN0IHMpJyBhcyBpdCBvdmVyZXN0aW1hdGVzIHRoZSBzaXplLiBVc2UgJ29mZnNldG9mIChz dHJ1Y3QgcywgZCknCi0gICBpbnN0ZWFkLiBEb24ndCB1c2UgJ29mZnNldG9mIChzdHJ1Y3Qg cywgZFswXSknLCBhcyB0aGlzIGRvZXNuJ3Qgd29yayB3aXRoCi0gICBNU1ZDIGFuZCB3aXRo IEMrKyBjb21waWxlcnMuICovCi0jZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUgotCi0v KiBEZWZpbmUgdG8gMSBpZiBnZXR0aW1lb2ZkYXkoKSB0YWtlcyBvbmx5IDEgYXJndW1lbnQu ICovCi0vKiAjdW5kZWYgR0VUVElNRU9GREFZXzFBUkcgKi8KLQotI2lmZGVmIEdFVFRJTUVP RkRBWV8xQVJHCi0jIGRlZmluZSBnZXR0aW1lb2ZkYXkoYSxiKSBnZXR0aW1lb2ZkYXkoYSkK LSNlbmRpZgotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEFTTjFfU1RSSU5H X2dldDBfZGF0YScgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9BU04xX1NUUklOR19H RVQwX0RBVEEgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IHdhbnQgdG8gdXNlIGF0b21p Y3MgaWYgYXZhaWxhYmxlLiAqLwotI2RlZmluZSBIQVZFX0FUT01JQ1MgMQotCi0vKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEJJT19nZXRfZGF0YScgZnVuY3Rpb24uICovCi0v KiAjdW5kZWYgSEFWRV9CSU9fR0VUX0RBVEEgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIGBCSU9fbWV0aF9uZXcnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVf QklPX01FVEhfTkVXICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2Jy dCcgZnVuY3Rpb24uICovCi0vLyNkZWZpbmUgSEFWRV9DQlJUIDEKLQotLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIGBjbGFzcycgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFW RV9DTEFTUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNsb2NrX2dl dHRpbWUnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVfQ0xPQ0tfR0VUVElNRSAqLwot Ci0vKiBEZWZpbmUgdG8gMSBpZiB5b3VyIGNvbXBpbGVyIGhhbmRsZXMgY29tcHV0ZWQgZ290 b3MuICovCi0vKiAjdW5kZWYgSEFWRV9DT01QVVRFRF9HT1RPICovCi0KLS8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgZmRhdGFzeW5jJywgYW5kIHRv IDAgaWYgeW91Ci0gICBkb24ndC4gKi8KLSNkZWZpbmUgSEFWRV9ERUNMX0ZEQVRBU1lOQyAw Ci0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgRl9G VUxMRlNZTkMnLCBhbmQgdG8gMCBpZiB5b3UKLSAgIGRvbid0LiAqLwotI2RlZmluZSBIQVZF X0RFQ0xfRl9GVUxMRlNZTkMgMAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg ZGVjbGFyYXRpb24gb2YKLSAgIGBMTFZNQ3JlYXRlR0RCUmVnaXN0cmF0aW9uTGlzdGVuZXIn LCBhbmQgdG8gMCBpZiB5b3UgZG9uJ3QuICovCi0jdW5kZWYgSEFWRV9ERUNMX0xMVk1DUkVB VEVHREJSRUdJU1RSQVRJT05MSVNURU5FUgotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgZGVjbGFyYXRpb24gb2YKLSAgIGBMTFZNQ3JlYXRlUGVyZkpJVEV2ZW50TGlzdGVu ZXInLCBhbmQgdG8gMCBpZiB5b3UgZG9uJ3QuICovCi0jdW5kZWYgSEFWRV9ERUNMX0xMVk1D UkVBVEVQRVJGSklURVZFTlRMSVNURU5FUgotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgZGVjbGFyYXRpb24gb2YgYExMVk1HZXRIb3N0Q1BVRmVhdHVyZXMnLCBhbmQgdG8K LSAgIDAgaWYgeW91IGRvbid0LiAqLwotI2RlZmluZSBIQVZFX0RFQ0xfTExWTUdFVEhPU1RD UFVGRUFUVVJFUyAwCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJh dGlvbiBvZiBgTExWTUdldEhvc3RDUFVOYW1lJywgYW5kIHRvIDAKLSAgIGlmIHlvdSBkb24n dC4gKi8KLSNkZWZpbmUgSEFWRV9ERUNMX0xMVk1HRVRIT1NUQ1BVTkFNRSAwCi0KLS8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgTExWTU9yY0dldFN5 bWJvbEFkZHJlc3NJbicsIGFuZAotICAgdG8gMCBpZiB5b3UgZG9uJ3QuICovCi0jZGVmaW5l IEhBVkVfREVDTF9MTFZNT1JDR0VUU1lNQk9MQUREUkVTU0lOIDAKLQotLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBSVExEX0dMT0JBTCcsIGFuZCB0 byAwIGlmIHlvdQotICAgZG9uJ3QuICovCi0jZGVmaW5lIEhBVkVfREVDTF9SVExEX0dMT0JB TCAwCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBg UlRMRF9OT1cnLCBhbmQgdG8gMCBpZiB5b3UKLSAgIGRvbid0LiAqLwotI2RlZmluZSBIQVZF X0RFQ0xfUlRMRF9OT1cgMAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVj bGFyYXRpb24gb2YgYHN0cm5sZW4nLCBhbmQgdG8gMCBpZiB5b3UKLSAgIGRvbid0LiAqLwot I2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc3RydG9sbCcsIGFuZCB0byAwIGlmIHlvdQotICAg ZG9uJ3QuICovCi0jZGVmaW5lIEhBVkVfREVDTF9TVFJUT0xMIDEKLQotLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzdHJ0b3VsbCcsIGFuZCB0byAw IGlmIHlvdQotICAgZG9uJ3QuICovCi0jZGVmaW5lIEhBVkVfREVDTF9TVFJUT1VMTCAxCi0K LS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZGxvcGVuJyBmdW5jdGlvbi4gKi8K LS8qICN1bmRlZiBIQVZFX0RMT1BFTiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPGVkaXRsaW5lL2hpc3RvcnkuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYg SEFWRV9FRElUTElORV9ISVNUT1JZX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxlZGl0bGluZS9yZWFkbGluZS5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRl ZiBIQVZFX0VESVRMSU5FX1JFQURMSU5FX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIGBleHBsaWNpdF9iemVybycgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFW RV9FWFBMSUNJVF9CWkVSTyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg YGZkYXRhc3luYycgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9GREFUQVNZTkMgKi8K LQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBmcGNsYXNzJyBmdW5jdGlvbi4g Ki8KLS8qICN1bmRlZiBIQVZFX0ZQQ0xBU1MgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIGBmcF9jbGFzcycgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9GUF9D TEFTUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZwX2NsYXNzX2Qn IGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVfRlBfQ0xBU1NfRCAqLwotCi0vKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZwX2NsYXNzLmg+IGhlYWRlciBmaWxlLiAqLwot LyogI3VuZGVmIEhBVkVfRlBfQ0xBU1NfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBmc2Vl a28gKGFuZCBwcmVzdW1hYmx5IGZ0ZWxsbykgZXhpc3RzIGFuZCBpcyBkZWNsYXJlZC4gKi8K LSNkZWZpbmUgSEFWRV9GU0VFS08gMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3VyIGNvbXBp bGVyIHVuZGVyc3RhbmRzIF9fZnVuY19fLiAqLwotLy8jZGVmaW5lIEhBVkVfRlVOQ05BTUVf X0ZVTkMgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3VyIGNvbXBpbGVyIHVuZGVyc3RhbmRz IF9fRlVOQ1RJT05fXy4gKi8KLSNkZWZpbmUgSEFWRV9GVU5DTkFNRV9fRlVOQ1RJT04gMQot Ci0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGFkZHJpbmZvJyBmdW5jdGlv bi4gKi8KLS8qICN1bmRlZiBIQVZFX0dFVEFERFJJTkZPICovCi0KLS8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSBgZ2V0aG9zdGJ5bmFtZV9yJyBmdW5jdGlvbi4gKi8KLS8qICN1 bmRlZiBIQVZFX0dFVEhPU1RCWU5BTUVfUiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgYGdldG9wdCcgZnVuY3Rpb24uICovCi0vLyNkZWZpbmUgSEFWRV9HRVRPUFQg MQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGdldG9wdC5oPiBoZWFkZXIg ZmlsZS4gKi8KLS8vI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKLQotLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIGBnZXRvcHRfbG9uZycgZnVuY3Rpb24uICovCi0vLyNkZWZpbmUg SEFWRV9HRVRPUFRfTE9ORyAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBg Z2V0cGVlcmVpZCcgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9HRVRQRUVSRUlEICov Ci0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0cHd1aWRfcicgZnVuY3Rp b24uICovCi0vKiAjdW5kZWYgSEFWRV9HRVRQV1VJRF9SICovCi0KLS8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSBgZ2V0cnVzYWdlJyBmdW5jdGlvbi4gKi8KLS8qICN1bmRlZiBI QVZFX0dFVFJVU0FHRSAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGhp c3RvcnkuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9ISVNUT1JZX0ggKi8K LQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpZWVlZnAuaD4gaGVhZGVyIGZp bGUuICovCi0vKiAjdW5kZWYgSEFWRV9JRUVFRlBfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgYGluZXRfYXRvbicgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFW RV9JTkVUX0FUT04gKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhl IHR5cGUgYGludDY0Jy4gKi8KLS8qICN1bmRlZiBIQVZFX0lOVDY0ICovCi0KLS8qIERlZmlu ZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBpbnQ4Jy4gKi8KLS8qICN1bmRl ZiBIQVZFX0lOVDggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0 eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQot Ci0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZ2xvYmFsIHZhcmlhYmxlICdpbnQg dGltZXpvbmUnLiAqLwotI2RlZmluZSBIQVZFX0lOVF9USU1FWk9ORSAxCi0KLS8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHN1cHBvcnQgZm9yIElQdjYuICovCi0jZGVmaW5lIEhBVkVf SVBWNiAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIGlzaW5mKCkuICovCi0jZGVm aW5lIEhBVkVfSVNJTkYgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxh bmdpbmZvLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfTEFOR0lORk9fSCAq LwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxkYXAuaD4gaGVhZGVyIGZp bGUuICovCi0vKiAjdW5kZWYgSEFWRV9MREFQX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIGBsZGFwX2luaXRpYWxpemUnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVm IEhBVkVfTERBUF9JTklUSUFMSVpFICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSBgY3J5cHRvJyBsaWJyYXJ5ICgtbGNyeXB0bykuICovCi0vKiAjdW5kZWYgSEFWRV9M SUJDUllQVE8gKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBsZGFwJyBs aWJyYXJ5ICgtbGxkYXApLiAqLwotLyogI3VuZGVmIEhBVkVfTElCTERBUCAqLwotCi0vKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHBhbScgbGlicmFyeSAoLWxwYW0pLiAqLwot LyogI3VuZGVmIEhBVkVfTElCUEFNICovCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSBhIGZ1 bmN0aW9uIHJlYWRsaW5lIGxpYnJhcnkgKi8KLS8qICN1bmRlZiBIQVZFX0xJQlJFQURMSU5F ICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3NsJyBsaWJyYXJ5ICgt bHNzbCkuICovCi0vKiAjdW5kZWYgSEFWRV9MSUJTU0wgKi8KLQotLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIGB3bGRhcDMyJyBsaWJyYXJ5ICgtbHdsZGFwMzIpLiAqLwotLyog I3VuZGVmIEhBVkVfTElCV0xEQVAzMiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgYHonIGxpYnJhcnkgKC1seikuICovCi0vKiAjdW5kZWYgSEFWRV9MSUJaICovCi0K LS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBsb2NhbGVfdCcu ICovCi0jZGVmaW5lIEhBVkVfTE9DQUxFX1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgbG9u ZyBpbnQnIHdvcmtzIGFuZCBpcyA2NCBiaXRzLiAqLwotLyogI3VuZGVmIEhBVkVfTE9OR19J TlRfNjQgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYGxvbmcgbG9uZyBpbnQnIHdvcmtzIGFu ZCBpcyA2NCBiaXRzLiAqLwotI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlRfNjQgMQotCi0v KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1ic3Rvd2NzX2wnIGZ1bmN0aW9uLiAq LwotI2RlZmluZSBIQVZFX01CU1RPV0NTX0wgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgYG1lbW1vdmUnIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX01FTU1PVkUg MQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIg ZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi0KLS8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSBgbWVtc2V0X3MnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVf TUVNU0VUX1MgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5 cGUgYE1JTklEVU1QX1RZUEUnLiAqLwotI2RlZmluZSBIQVZFX01JTklEVU1QX1RZUEUgMQot Ci0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1rZHRlbXAnIGZ1bmN0aW9uLiAq LwotLyogI3VuZGVmIEhBVkVfTUtEVEVNUCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgPG5ldGluZXQvdGNwLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhB VkVfTkVUSU5FVF9UQ1BfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg YE9QRU5TU0xfaW5pdF9zc2wnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVfT1BFTlNT TF9JTklUX1NTTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBhbS9w YW1fYXBwbC5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1BBTV9QQU1fQVBQ TF9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcG9sbCcgZnVuY3Rp b24uICovCi0vKiAjdW5kZWYgSEFWRV9QT0xMICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSA8cG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1BP TExfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHBvc2l4X2ZhbGxv Y2F0ZScgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9QT1NJWF9GQUxMT0NBVEUgKi8K LQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcG9sbCcgZnVuY3Rpb24uICov Ci0vKiAjdW5kZWYgSEFWRV9QUE9MTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgYHByZWFkJyBmdW5jdGlvbi4gKi8KLS8qICN1bmRlZiBIQVZFX1BSRUFEICovCi0K LS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHN0YXQnIGZ1bmN0aW9uLiAqLwot LyogI3VuZGVmIEhBVkVfUFNUQVQgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIFBTX1NU UklOR1MgdGhpbmcgZXhpc3RzLiAqLwotLyogI3VuZGVmIEhBVkVfUFNfU1RSSU5HUyAqLwot Ci0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHB3cml0ZScgZnVuY3Rpb24uICov Ci0vKiAjdW5kZWYgSEFWRV9QV1JJVEUgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIGByYW5kb20nIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVfUkFORE9NICov Ci0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cmVhZGxpbmUuaD4gaGVhZGVy IGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9SRUFETElORV9IICovCi0KLS8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8cmVhZGxpbmUvaGlzdG9yeS5oPiBoZWFkZXIgZmlsZS4g Ki8KLS8qICN1bmRlZiBIQVZFX1JFQURMSU5FX0hJU1RPUllfSCAqLwotCi0vKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJlYWRsaW5lL3JlYWRsaW5lLmg+IGhlYWRlciBmaWxl LiAqLwotLyogI3VuZGVmIEhBVkVfUkVBRExJTkVfUkVBRExJTkVfSCAqLwotCi0vKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJlYWRsaW5rJyBmdW5jdGlvbi4gKi8KLS8qICN1 bmRlZiBIQVZFX1JFQURMSU5LICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSBgcmludCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfUklOVCAxCi0KLS8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBnbG9iYWwgdmFyaWFibGUKLSAgICdybF9jb21wbGV0 aW9uX2FwcGVuZF9jaGFyYWN0ZXInLiAqLwotLyogI3VuZGVmIEhBVkVfUkxfQ09NUExFVElP Tl9BUFBFTkRfQ0hBUkFDVEVSICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSBgcmxfY29tcGxldGlvbl9tYXRjaGVzJyBmdW5jdGlvbi4gKi8KLS8qICN1bmRlZiBIQVZF X1JMX0NPTVBMRVRJT05fTUFUQ0hFUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgYHJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZnVuY3Rpb24nIGZ1bmN0aW9uLiAqLwot LyogI3VuZGVmIEhBVkVfUkxfRklMRU5BTUVfQ09NUExFVElPTl9GVU5DVElPTiAqLwotCi0v KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNlY3VyaXR5L3BhbV9hcHBsLmg+IGhl YWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAqLwot Ci0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldHByb2N0aXRsZScgZnVuY3Rp b24uICovCi0vKiAjdW5kZWYgSEFWRV9TRVRQUk9DVElUTEUgKi8KLQotLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIGBzZXRzaWQnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhB VkVfU0VUU0lEICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHNwaW5sb2Nrcy4g Ki8KLSNkZWZpbmUgSEFWRV9TUElOTE9DS1MgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgYHNyYW5kb20nIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVfU1JBTkRP TSAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBzdGRib29sLmggY29uZm9ybXMgdG8gQzk5LiAq LwotI2RlZmluZSBIQVZFX1NUREJPT0xfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1RE SU5UX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4g aGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1RETElCX0ggMQotCi0vKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmNocm51bCcgZnVuY3Rpb24uICovCi0vKiAjdW5k ZWYgSEFWRV9TVFJDSFJOVUwgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IGBzdHJlcnJvcl9yJyBmdW5jdGlvbi4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUkVSUk9SX1Ig Ki8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRl ciBmaWxlLiAqLwotLyojZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEgKi8KLQotLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg YHN0cm5sZW4nIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NUUk5MRU4gMQotCi0vKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnNpZ25hbCcgZnVuY3Rpb24uICovCi0v KiAjdW5kZWYgSEFWRV9TVFJTSUdOQUwgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIGBzdHJ0b2YnIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NUUlRPRiAxCi0K LS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RydG9sbCcgZnVuY3Rpb24uICov Ci0jaWZkZWYgSEFWRV9MT05HX0xPTkdfSU5UXzY0Ci0jZGVmaW5lIEhBVkVfU1RSVE9MTCAx Ci0jZW5kaWYKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJ0b3VsbCcg ZnVuY3Rpb24uICovCi0jaWZkZWYgSEFWRV9MT05HX0xPTkdfSU5UXzY0Ci0jZGVmaW5lIEhB VkVfU1RSVE9VTEwgMQotI2VuZGlmCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0g aGFzIHRoZSB0eXBlIGBzdHJ1Y3QgYWRkcmluZm8nLiAqLwotI2RlZmluZSBIQVZFX1NUUlVD VF9BRERSSU5GTyAxCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0 eXBlIGBzdHJ1Y3QgY21zZ2NyZWQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX0NNU0dD UkVEICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBz dHJ1Y3Qgb3B0aW9uJy4gKi8KLS8vI2RlZmluZSBIQVZFX1NUUlVDVF9PUFRJT04gMQotCi0v KiBEZWZpbmUgdG8gMSBpZiBgc2FfbGVuJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHNvY2th ZGRyJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TQV9MRU4gKi8KLQot LyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBzb2Nr YWRkcl9zdG9yYWdlJy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RPUkFH RSAxCi0KLS8qIERlZmluZSB0byAxIGlmIGBzc19mYW1pbHknIGlzIGEgbWVtYmVyIG9mIGBz dHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZScuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tB RERSX1NUT1JBR0VfU1NfRkFNSUxZIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYHNzX2xlbicg aXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlJy4gKi8KLS8qICN1bmRl ZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TVE9SQUdFX1NTX0xFTiAqLwotCi0vKiBEZWZpbmUg dG8gMSBpZiBgX19zc19mYW1pbHknIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJf c3RvcmFnZScuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9f X1NTX0ZBTUlMWSAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgX19zc19sZW4nIGlzIGEgbWVt YmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZScuICovCi0vKiAjdW5kZWYgSEFWRV9T VFJVQ1RfU09DS0FERFJfU1RPUkFHRV9fX1NTX0xFTiAqLwotCi0vKiBEZWZpbmUgdG8gMSBp ZiBgdG1fem9uZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB0bScuICovCi0vKiAjdW5kZWYg SEFWRV9TVFJVQ1RfVE1fVE1fWk9ORSAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgYHN5bWxpbmsnIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NZTUxJTksgMQot Ci0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5bmNfZmlsZV9yYW5nZScgZnVu Y3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9TWU5DX0ZJTEVfUkFOR0UgKi8KLQotLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIHN5c2xvZyBpbnRlcmZhY2UuICovCi0vKiAjdW5k ZWYgSEFWRV9TWVNMT0cgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxz eXMvaXBjLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0lQQ19IICov Ci0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ByY3RsLmg+IGhlYWRl ciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX1BSQ1RMX0ggKi8KLQotLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcHN0YXQuaD4gaGVhZGVyIGZpbGUuICovCi0v KiAjdW5kZWYgSEFWRV9TWVNfUFNUQVRfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgPHN5cy9zZWxlY3QuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFW RV9TWVNfU0VMRUNUX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxz eXMvc2VtLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX1NFTV9IICov Ci0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NobS5oPiBoZWFkZXIg ZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19TSE1fSCAqLwotCi0vKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3VjcmVkLmg+IGhl YWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX1VDUkVEX0ggKi8KLQotLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdW4uaD4gaGVhZGVyIGZpbGUuICovCi0v KiAjdW5kZWYgSEFWRV9TWVNfVU5fSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPHRlcm1pb3MuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9URVJN SU9TX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91ciBjb21waWxlciB1bmRlcnN0YW5k cyBgdHlwZW9mJyBvciBzb21ldGhpbmcgc2ltaWxhci4gKi8KLS8qICN1bmRlZiBIQVZFX1RZ UEVPRiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBg dWludDY0Jy4gKi8KLS8qICN1bmRlZiBIQVZFX1VJTlQ2NCAqLwotCi0vKiBEZWZpbmUgdG8g MSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdWludDgnLiAqLwotLyogI3VuZGVmIEhB VkVfVUlOVDggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5 cGUgYHVuaW9uIHNlbXVuJy4gKi8KLS8qICN1bmRlZiBIQVZFX1VOSU9OX1NFTVVOICovCi0K LS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxl LiAqLwotI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdW5peCBzb2NrZXRzLiAqLwotLyogI3VuZGVmIEhBVkVfVU5JWF9TT0NLRVRTICov Ci0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdW5zZXRlbnYnIGZ1bmN0aW9u LiAqLwotLyogI3VuZGVmIEhBVkVfVU5TRVRFTlYgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIGB1c2Vsb2NhbGUnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVf VVNFTE9DQUxFICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdXRpbWUn IGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1VUSU1FIDEKLQotLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIGB1dGltZXMnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVf VVRJTUVTICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXRpbWUuaD4g aGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfVVRJTUVfSCAxCi0KLS8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8d2NoYXIuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5l IEhBVkVfV0NIQVJfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgd2Nz dG9tYnNfbCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfV0NTVE9NQlNfTCAxCi0KLS8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2N0eXBlLmg+IGhlYWRlciBmaWxlLiAq LwotI2RlZmluZSBIQVZFX1dDVFlQRV9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDx3aW5sZGFwLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfV0lO TERBUF9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgWDUwOV9nZXRf c2lnbmF0dXJlX25pZCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfWDUwOV9HRVRfU0lH TkFUVVJFX05JRCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBhc3NlbWJsZXIgc3VwcG9y dHMgWDg2XzY0J3MgUE9QQ05UUSBpbnN0cnVjdGlvbi4gKi8KLS8qICN1bmRlZiBIQVZFX1g4 Nl82NF9QT1BDTlRRICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRo ZSB0eXBlIGBfQm9vbCcuICovCi0vKiAjdW5kZWYgSEFWRV9fQk9PTCAqLwotCi0vKiBEZWZp bmUgdG8gMSBpZiB5b3VyIGNvbXBpbGVyIHVuZGVyc3RhbmRzIF9fYnVpbHRpbl9ic3dhcDE2 LiAqLwotLyogI3VuZGVmIEhBVkVfX0JVSUxUSU5fQlNXQVAxNiAqLwotCi0vKiBEZWZpbmUg dG8gMSBpZiB5b3VyIGNvbXBpbGVyIHVuZGVyc3RhbmRzIF9fYnVpbHRpbl9ic3dhcDMyLiAq LwotLyogI3VuZGVmIEhBVkVfX0JVSUxUSU5fQlNXQVAzMiAqLwotCi0vKiBEZWZpbmUgdG8g MSBpZiB5b3VyIGNvbXBpbGVyIHVuZGVyc3RhbmRzIF9fYnVpbHRpbl9ic3dhcDY0LiAqLwot LyogI3VuZGVmIEhBVkVfX0JVSUxUSU5fQlNXQVA2NCAqLwotCi0vKiBEZWZpbmUgdG8gMSBp ZiB5b3VyIGNvbXBpbGVyIHVuZGVyc3RhbmRzIF9fYnVpbHRpbl9jbHouICovCi0vKiAjdW5k ZWYgSEFWRV9fQlVJTFRJTl9DTFogKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91ciBjb21w aWxlciB1bmRlcnN0YW5kcyBfX2J1aWx0aW5fY29uc3RhbnRfcC4gKi8KLS8qICN1bmRlZiBI QVZFX19CVUlMVElOX0NPTlNUQU5UX1AgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91ciBj b21waWxlciB1bmRlcnN0YW5kcyBfX2J1aWx0aW5fY3R6LiAqLwotLyogI3VuZGVmIEhBVkVf X0JVSUxUSU5fQ1RaICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdXIgY29tcGlsZXIgdW5k ZXJzdGFuZHMgX19idWlsdGluXyRvcF9vdmVyZmxvdy4gKi8KLS8qICN1bmRlZiBIQVZFX19C VUlMVElOX09QX09WRVJGTE9XICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdXIgY29tcGls ZXIgdW5kZXJzdGFuZHMgX19idWlsdGluX3BvcGNvdW50LiAqLwotLyogI3VuZGVmIEhBVkVf X0JVSUxUSU5fUE9QQ09VTlQgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91ciBjb21waWxl ciB1bmRlcnN0YW5kcyBfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wLiAqLwotLyogI3Vu ZGVmIEhBVkVfX0JVSUxUSU5fVFlQRVNfQ09NUEFUSUJMRV9QICovCi0KLS8qIERlZmluZSB0 byAxIGlmIHlvdXIgY29tcGlsZXIgdW5kZXJzdGFuZHMgX19idWlsdGluX3VucmVhY2hhYmxl LiAqLwotLyogI3VuZGVmIEhBVkVfX0JVSUxUSU5fVU5SRUFDSEFCTEUgKi8KLQotLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBfY29uZmlndGhyZWFkbG9jYWxlJyBmdW5jdGlv bi4gKi8KLSNkZWZpbmUgSEFWRV9fQ09ORklHVEhSRUFETE9DQUxFIDEKLQotLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgX19jcHVpZC4gKi8KLSNkZWZpbmUgSEFWRV9fQ1BVSUQgMQot Ci0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBfX2dldF9jcHVpZC4gKi8KLSN1bmRlZiBI QVZFX19HRVRfQ1BVSUQKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91ciBjb21waWxlciB1bmRl cnN0YW5kcyBfU3RhdGljX2Fzc2VydC4gKi8KLS8qICN1bmRlZiBIQVZFX19TVEFUSUNfQVNT RVJUICovCi0KLS8qIERlZmluZSB0byB0aGUgYXBwcm9wcmlhdGUgcHJpbnRmIGxlbmd0aCBt b2RpZmllciBmb3IgNjQtYml0IGludHMuICovCi0jZGVmaW5lIElOVDY0X01PRElGSUVSICJs bCIKLQotLyogRGVmaW5lIHRvIDEgaWYgYGxvY2FsZV90JyByZXF1aXJlcyA8eGxvY2FsZS5o Pi4gKi8KLS8qICN1bmRlZiBMT0NBTEVfVF9JTl9YTE9DQUxFICovCi0KLS8qIERlZmluZSBh cyB0aGUgbWF4aW11bSBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgb2YgYW55IEMgZGF0YSB0eXBl LiAqLwotI2RlZmluZSBNQVhJTVVNX0FMSUdOT0YgOAotCi0vKiBEZWZpbmUgYnl0ZXMgdG8g dXNlIGxpYmMgbWVtc2V0KCkuICovCi0jZGVmaW5lIE1FTVNFVF9MT09QX0xJTUlUIDEwMjQK LQotLyogRGVmaW5lIHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlz IHBhY2thZ2Ugc2hvdWxkIGJlIHNlbnQuICovCi0jZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJwZ3NxbC1idWdzQGxpc3RzLnBvc3RncmVzcWwub3JnIgotCi0vKiBEZWZpbmUgdG8gdGhl IGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfTkFNRSAi UG9zdGdyZVNRTCIKLQotLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24g b2YgdGhpcyBwYWNrYWdlLiAqLwotI2RlZmluZSBQQUNLQUdFX1NUUklORyAiUG9zdGdyZVNR TCAxM2RldmVsIgotCi0vKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBv ZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAicG9zdGdyZXNx bCIKLQotLyogRGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KLSNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIxM2RldmVsIgotCi0vKiBEZWZpbmUgdG8gdGhlIG5h bWUgb2YgYSBzaWduZWQgMTI4LWJpdCBpbnRlZ2VyIHR5cGUuICovCi0jdW5kZWYgUEdfSU5U MTI4X1RZUEUKLQotLyogRGVmaW5lIHRvIHRoZSBuYW1lIG9mIGEgc2lnbmVkIDY0LWJpdCBp bnRlZ2VyIHR5cGUuICovCi0jZGVmaW5lIFBHX0lOVDY0X1RZUEUgbG9uZyBsb25nIGludAot Ci0vKiBEZWZpbmUgdG8gdGhlIG5hbWUgb2YgdGhlIGRlZmF1bHQgUG9zdGdyZVNRTCBzZXJ2 aWNlIHByaW5jaXBhbCBpbiBLZXJiZXJvcwotICAgKEdTU0FQSSkuICgtLXdpdGgta3JiLXNy dm5hbT1OQU1FKSAqLwotI2RlZmluZSBQR19LUkJfU1JWTkFNICJwb3N0Z3JlcyIKLQotLyog RGVmaW5lIHRvIDEgdG8gdXNlIDxzdGRib29sLmg+IHRvIGRlZmluZSB0eXBlIGJvb2wuICov Ci0jZGVmaW5lIFBHX1VTRV9TVERCT09MIDEKLQotLyogUG9zdGdyZVNRTCB2ZXJzaW9uIGFz IGEgc3RyaW5nICovCi0jZGVmaW5lIFBHX1ZFUlNJT04gIjEzZGV2ZWwiCi0KLS8qIFBvc3Rn cmVTUUwgdmVyc2lvbiBhcyBhIG51bWJlciAqLwotI2RlZmluZSBQR19WRVJTSU9OX05VTSAx MzAwMDAKLQotLyogQSBzdHJpbmcgY29udGFpbmluZyB0aGUgdmVyc2lvbiBudW1iZXIsIHBs YXRmb3JtLCBhbmQgQyBjb21waWxlciAqLwotI2RlZmluZSBQR19WRVJTSU9OX1NUUiAiVW5p bml0aWFsaXplZCB2ZXJzaW9uIHN0cmluZyAod2luMzIpIgotCi0vKiBUaGUgc2l6ZSBvZiBg Ym9vbCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KLSNkZWZpbmUgU0laRU9GX0JPT0wg MQotCi0vKiBUaGUgc2l6ZSBvZiBgbG9uZycsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8K LSNkZWZpbmUgU0laRU9GX0xPTkcgNAotCi0vKiBUaGUgc2l6ZSBvZiBgc2l6ZV90JywgYXMg Y29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwotI2lmbmRlZiBfV0lONjQKLSNkZWZpbmUgU0laRU9G X1NJWkVfVCA0Ci0jZWxzZQotI2RlZmluZSBTSVpFT0ZfU0laRV9UIDgKLSNlbmRpZgotCi0v KiBUaGUgc2l6ZSBvZiBgdm9pZCAqJywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwotI2lm bmRlZiBfV0lONjQKLSNkZWZpbmUgU0laRU9GX1ZPSURfUCA0Ci0jZWxzZQotI2RlZmluZSBT SVpFT0ZfVk9JRF9QIDgKLSNlbmRpZgotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gKi8KLSNkZWZpbmUgU1REQ19IRUFERVJTIDEKLQot LyogRGVmaW5lIHRvIDEgaWYgc3RyZXJyb3JfcigpIHJldHVybnMgaW50LiAqLwotLyogI3Vu ZGVmIFNUUkVSUk9SX1JfSU5UICovCi0KLS8qIERlZmluZSB0byAxIHRvIGJ1aWxkIHdpdGgg YXNzZXJ0aW9uIGNoZWNrcy4gKC0tZW5hYmxlLWNhc3NlcnQpICovCi0vKiAjdW5kZWYgVVNF X0FTU0VSVF9DSEVDS0lORyAqLwotCi0vKiBEZWZpbmUgdG8gMSB0byBidWlsZCB3aXRoIEJv bmpvdXIgc3VwcG9ydC4gKC0td2l0aC1ib25qb3VyKSAqLwotLyogI3VuZGVmIFVTRV9CT05K T1VSICovCi0KLS8qIERlZmluZSB0byAxIHRvIGJ1aWxkIHdpdGggQlNEIEF1dGhlbnRpY2F0 aW9uIHN1cHBvcnQuICgtLXdpdGgtYnNkLWF1dGgpICovCi0vKiAjdW5kZWYgVVNFX0JTRF9B VVRIICovCi0KLS8qIERlZmluZSB0byB1c2UgL2Rldi91cmFuZG9tIGZvciByYW5kb20gbnVt YmVyIGdlbmVyYXRpb24gKi8KLS8qICN1bmRlZiBVU0VfREVWX1VSQU5ET00gKi8KLQotLyog RGVmaW5lIHRvIDEgdG8gYnVpbGQgd2l0aCBMREFQIHN1cHBvcnQuICgtLXdpdGgtbGRhcCkg Ki8KLS8qICN1bmRlZiBVU0VfTERBUCAqLwotCi0vKiBEZWZpbmUgdG8gMSB0byBidWlsZCB3 aXRoIExMVk0gYmFzZWQgSklUIHN1cHBvcnQuICgtLXdpdGgtbGx2bSkgKi8KLS8qICN1bmRl ZiBVU0VfTExWTSAqLwotCi0vKiBEZWZpbmUgdG8gc2VsZWN0IG5hbWVkIFBPU0lYIHNlbWFw aG9yZXMuICovCi0vKiAjdW5kZWYgVVNFX05BTUVEX1BPU0lYX1NFTUFQSE9SRVMgKi8KLQot LyogRGVmaW5lIHRvIGJ1aWxkIHdpdGggT3BlblNTTCBzdXBwb3J0LiAoLS13aXRoLW9wZW5z c2wpICovCi0vKiAjdW5kZWYgVVNFX09QRU5TU0wgKi8KLQotLyogRGVmaW5lIHRvIHVzZSBP cGVuU1NMIGZvciByYW5kb20gbnVtYmVyIGdlbmVyYXRpb24gKi8KLS8qICN1bmRlZiBVU0Vf T1BFTlNTTF9SQU5ET00gKi8KLQotLyogRGVmaW5lIHRvIDEgdG8gYnVpbGQgd2l0aCBQQU0g c3VwcG9ydC4gKC0td2l0aC1wYW0pICovCi0vKiAjdW5kZWYgVVNFX1BBTSAqLwotCi0vKiBE ZWZpbmUgdG8gMSB0byB1c2Ugc29mdHdhcmUgQ1JDLTMyQyBpbXBsZW1lbnRhdGlvbiAoc2xp Y2luZy1ieS04KS4gKi8KLS8qICN1bmRlZiBVU0VfU0xJQ0lOR19CWV84X0NSQzMyQyAqLwot Ci0vKiBEZWZpbmUgdG8gMSB1c2UgSW50ZWwgU1NFIDQuMiBDUkMgaW5zdHJ1Y3Rpb25zLiAq LwotLyogI3VuZGVmIFVTRV9TU0U0Ml9DUkMzMkMgKi8KLQotLyogRGVmaW5lIHRvIDEgdG8g dXNlIEludGVsIFNTRSA0LjIgQ1JDIGluc3RydWN0aW9ucyB3aXRoIGEgcnVudGltZSBjaGVj ay4gKi8KLSNkZWZpbmUgVVNFX1NTRTQyX0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hFQ0sKLQot LyogRGVmaW5lIHRvIHNlbGVjdCBTeXNWLXN0eWxlIHNlbWFwaG9yZXMuICovCi0vKiAjdW5k ZWYgVVNFX1NZU1ZfU0VNQVBIT1JFUyAqLwotCi0vKiBEZWZpbmUgdG8gc2VsZWN0IFN5c1Yt c3R5bGUgc2hhcmVkIG1lbW9yeS4gKi8KLSNkZWZpbmUgVVNFX1NZU1ZfU0hBUkVEX01FTU9S WSAxCi0KLS8qIERlZmluZSB0byBzZWxlY3QgdW5uYW1lZCBQT1NJWCBzZW1hcGhvcmVzLiAq LwotLyogI3VuZGVmIFVTRV9VTk5BTUVEX1BPU0lYX1NFTUFQSE9SRVMgKi8KLQotLyogRGVm aW5lIHRvIHVzZSBuYXRpdmUgV2luZG93cyBBUEkgZm9yIHJhbmRvbSBudW1iZXIgZ2VuZXJh dGlvbiAqLwotI2RlZmluZSBVU0VfV0lOMzJfUkFORE9NIDEKLQotLyogRGVmaW5lIHRvIHNl bGVjdCBXaW4zMi1zdHlsZSBzZW1hcGhvcmVzLiAqLwotI2RlZmluZSBVU0VfV0lOMzJfU0VN QVBIT1JFUyAxCi0KLS8qIERlZmluZSB0byAxIGlmIGB3Y3N0b21ic19sJyByZXF1aXJlcyA8 eGxvY2FsZS5oPi4gKi8KLS8qICN1bmRlZiBXQ1NUT01CU19MX0lOX1hMT0NBTEUgKi8KLQot LyogTnVtYmVyIG9mIGJpdHMgaW4gYSBmaWxlIG9mZnNldCwgb24gaG9zdHMgd2hlcmUgdGhp cyBpcyBzZXR0YWJsZS4gKi8KLS8qICN1bmRlZiBfRklMRV9PRkZTRVRfQklUUyAqLwotCi0v KiBEZWZpbmUgdG8gMSB0byBtYWtlIGZzZWVrbyB2aXNpYmxlIG9uIHNvbWUgaG9zdHMgKGUu Zy4gZ2xpYmMgMi4yKS4gKi8KLS8qICN1bmRlZiBfTEFSR0VGSUxFX1NPVVJDRSAqLwotCi0v KiBEZWZpbmUgZm9yIGxhcmdlIGZpbGVzLCBvbiBBSVgtc3R5bGUgaG9zdHMuICovCi0vKiAj dW5kZWYgX0xBUkdFX0ZJTEVTICovCi0KLS8qIERlZmluZSB0byBgX19pbmxpbmVfXycgb3Ig YF9faW5saW5lJyBpZiB0aGF0J3Mgd2hhdCB0aGUgQyBjb21waWxlcgotICAgY2FsbHMgaXQs IG9yIHRvIG5vdGhpbmcgaWYgJ2lubGluZScgaXMgbm90IHN1cHBvcnRlZCB1bmRlciBhbnkg bmFtZS4gICovCi0jaWZuZGVmIF9fY3BsdXNwbHVzCi0jZGVmaW5lIGlubGluZSBfX2lubGlu ZQotI2VuZGlmCi0KLS8qIERlZmluZSB0byBrZXl3b3JkIHRvIHVzZSBmb3IgQzk5IHJlc3Ry aWN0IHN1cHBvcnQsIG9yIHRvIG5vdGhpbmcgaWYgbm90Ci0gICBzdXBwb3J0ZWQgKi8KLS8q IFdvcmtzIGZvciBDIGFuZCBDKysgaW4gVmlzdWFsIFN0dWRpbyAyMDA4IGFuZCB1cHdhcmRz ICovCi0jZGVmaW5lIHBnX3Jlc3RyaWN0IF9fcmVzdHJpY3QKLQotLyogRGVmaW5lIHRvIHRo ZSBlcXVpdmFsZW50IG9mIHRoZSBDOTkgJ3Jlc3RyaWN0JyBrZXl3b3JkLCBvciB0bwotICAg bm90aGluZyBpZiB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQuICBEbyBub3QgZGVmaW5lIGlmIHJl c3RyaWN0IGlzCi0gICBzdXBwb3J0ZWQgZGlyZWN0bHkuICAqLwotLyogbm90IGRlZmluZWQs IGJlY2F1c2UgaXQnZCBjb25mbGljdCB3aXRoIF9fZGVjbHNwZWMocmVzdHJpY3QpICovCi0K LS8qIERlZmluZSB0byBlbXB0eSBpZiB0aGUgQyBjb21waWxlciBkb2VzIG5vdCB1bmRlcnN0 YW5kIHNpZ25lZCB0eXBlcy4gKi8KLS8qICN1bmRlZiBzaWduZWQgKi8KLQotLyogRGVmaW5l IHRvIGhvdyB0aGUgY29tcGlsZXIgc3BlbGxzIGB0eXBlb2YnLiAqLwotLyogI3VuZGVmIHR5 cGVvZiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3ZlcnNpb25fc3RhbXAucGwgYi9zcmMv dG9vbHMvdmVyc2lvbl9zdGFtcC5wbAppbmRleCAxMGRkYzc5ZDQ5Li41MDg5ODU0OTdmIDEw MDc1NQotLS0gYS9zcmMvdG9vbHMvdmVyc2lvbl9zdGFtcC5wbAorKysgYi9zcmMvdG9vbHMv dmVyc2lvbl9zdGFtcC5wbApAQCAtMTAyLDEzICsxMDIsNiBAQAogCSItZSAncy9BQ19JTklU KFxcW1Bvc3RncmVTUUxcXF0sIFxcW1swLTlhLXouXSpcXF0vQUNfSU5JVChbUG9zdGdyZVNR TF0sIFskZnVsbHZlcnNpb25dLyciCiApOwogCi1zZWRfZmlsZSgic3JjL2luY2x1ZGUvcGdf Y29uZmlnLmgud2luMzIiLAotCSItZSAncy8jZGVmaW5lIFBBQ0tBR0VfU1RSSU5HIFwiUG9z dGdyZVNRTCAuKlwiLyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgXCJQb3N0Z3JlU1FMICRmdWxs dmVyc2lvblwiLycgIgotCSAgLiAiLWUgJ3MvI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gXCIu KlwiLyNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OIFwiJGZ1bGx2ZXJzaW9uXCIvJyAiCi0JICAu ICItZSAncy8jZGVmaW5lIFBHX1ZFUlNJT04gXCIuKlwiLyNkZWZpbmUgUEdfVkVSU0lPTiBc IiRmdWxsdmVyc2lvblwiLycgIgotCSAgLiAiLWUgJ3MvI2RlZmluZSBQR19WRVJTSU9OX05V TSAuKi8jZGVmaW5lIFBHX1ZFUlNJT05fTlVNICRwYWRudW1lcmljdmVyc2lvbi8nIgotKTsK LQogc2VkX2ZpbGUoInNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLnJjLmluIiwKIAkiLWUg J3MvRklMRVZFUlNJT04gWzAtOV0qLFswLTldKixbMC05XSosMC9GSUxFVkVSU0lPTiAkbWFq b3J2ZXJzaW9uLDAsJG51bWVyaWNtaW5vciwwLycgIgogCSAgLiAiLWUgJ3MvUFJPRFVDVFZF UlNJT04gWzAtOV0qLFswLTldKixbMC05XSosMC9QUk9EVUNUVkVSU0lPTiAkbWFqb3J2ZXJz aW9uLDAsJG51bWVyaWNtaW5vciwwLycgIgotLSAKMi4yNC4wCgo= --------------DABC7C3C4B1ACEF5617BA246--