Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3Y6K-0004k7-1U for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Dec 2022 07:47:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p3Y6H-000783-1u for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Dec 2022 07:47:17 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3Y6F-00077t-5t for pgsql-hackers@lists.postgresql.org; Fri, 09 Dec 2022 07:47:16 +0000 Received: from wnew2-smtp.messagingengine.com ([64.147.123.27]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3Y64-0006e5-Oh for pgsql-hackers@postgresql.org; Fri, 09 Dec 2022 07:47:13 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailnew.west.internal (Postfix) with ESMTP id B82222B05E5C for ; Fri, 9 Dec 2022 02:47:02 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Fri, 09 Dec 2022 02:47:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:message-id:mime-version :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1670572022; x= 1670579222; bh=FRHj+0rKqeTTRlbeY+sOfkNf/XeNceqziSHchtrA+zA=; b=l EScbo6VruwMhfcHIbBfAjW/gKQn468+Ht+KlzZrLgQdNTetgJzxq0105ew5lOwFr kpa6Fx+WHp7rKVQaSs+dzFNdCerORkFiQwmlD+a6BXk6dwYwNGzTUE0u6DJPibNd chZ/F4qiUtdKpy9iqvkBzPyO0ZLuH36vGbOv1tK0VAcZcq1Pjeiwl4w04kHqbvXl yrSa7UwNaL3tjBW7U6U9OxdTAyLCYknigHmAaSGCvvBd3HIsQNduwhJRDfHzl6fV 3aGB5LTD4a73Wv30Oj8+qAf4XIr6l1+xCJQ0amIPizcXUr+/sM5W8IAY429HVtHy Ql0SMtJJgN6EgVx8tDPiw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvddugdduudegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfhffuvfesmhdtreertd efjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghi shgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrthhtvg hrnhepteevuedvieekieeghfevfffhhfdvjeevleelfeeikeeikedvffegteekuddtfeel necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvth gvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Fri, 9 Dec 2022 02:47:01 -0500 (EST) Content-Type: multipart/mixed; boundary="------------JZfRCVI3OnzgMPUZJ9nYlGRO" Message-ID: <941a04e7-dd6f-c0e4-8cdf-a33b3338cbda@enterprisedb.com> Date: Fri, 9 Dec 2022 08:46:58 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Content-Language: en-US From: Peter Eisentraut Subject: static assert cleanup To: pgsql-hackers List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------JZfRCVI3OnzgMPUZJ9nYlGRO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit A number of static assertions could be moved to better places. We first added StaticAssertStmt() in 2012, which required all static assertions to be inside function bodies. We then added StaticAssertDecl() in 2020, which enabled static assertions on file level. We have a number of calls that were stuck in not-really-related functions for this historical reason. This patch set cleans that up. 0001-Update-static-assert-usage-comment.patch This updates the usage information in c.h to be more current and precise. 0002-Move-array-size-related-static-assertions.patch This moves some obviously poorly placed ones. 0003-Move-some-static-assertions-to-better-places.patch This moves some that I thought were suboptimally placed but it could be debated or refined. 0004-Use-StaticAssertDecl-where-possible.patch This just changes some StaticAssertStmt() to StaticAssertDecl() where appropriate. It's optional. --------------JZfRCVI3OnzgMPUZJ9nYlGRO Content-Type: text/plain; charset=UTF-8; name="0001-Update-static-assert-usage-comment.patch" Content-Disposition: attachment; filename="0001-Update-static-assert-usage-comment.patch" Content-Transfer-Encoding: base64 RnJvbSBjYTFjYjllNTllMjIxNmYxYmZlZDIzNDc5MjM3OWE0NmU0MjVlMTA1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDE0OjMwOjAxICswMTAwClN1YmplY3Q6 IFtQQVRDSCAxLzRdIFVwZGF0ZSBzdGF0aWMgYXNzZXJ0IHVzYWdlIGNvbW1lbnQKClNpbmNl IHdlIGFkZGVkIFN0YXRpY0Fzc2VydFN0bXQoKSBmaXJzdCBiZWZvcmUgU3RhdGljQXNzZXJ0 RGVjbCgpLCB0aGUKaW5zdHJ1Y3Rpb25zIGluIGMuaCBhcmUgYSBiaXQgYmFja3dhcmRzIGZy b20gdGhlICJuYXRpdmUiIHdheSBzdGF0aWMKYXNzZXJ0aW9ucyBhcmUgbWVhbnQgdG8gYmUg dXNlZCBpbiBDLiAgVXBkYXRlIHRoaXMgdG8gbWFrZSBpdCBtb3JlCnByZWNpc2UuCi0tLQog c3JjL2luY2x1ZGUvYy5oIHwgMzMgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3JjL2luY2x1ZGUvYy5oCmluZGV4IDk4 Y2RkMjg1ZGQuLmJkNmQ4ZTViZjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysg Yi9zcmMvaW5jbHVkZS9jLmgKQEAgLTg0Nyw0NyArODQ3LDUwIEBAIGV4dGVybiB2b2lkIEV4 Y2VwdGlvbmFsQ29uZGl0aW9uKGNvbnN0IGNoYXIgKmNvbmRpdGlvbk5hbWUsCiAgKiBJZiB0 aGUgImNvbmRpdGlvbiIgKGEgY29tcGlsZS10aW1lLWNvbnN0YW50IGV4cHJlc3Npb24pIGV2 YWx1YXRlcyB0byBmYWxzZSwKICAqIHRocm93IGEgY29tcGlsZSBlcnJvciB1c2luZyB0aGUg ImVycm1lc3NhZ2UiIChhIHN0cmluZyBsaXRlcmFsKS4KICAqCi0gKiBnY2MgNC42IGFuZCB1 cCBzdXBwb3J0cyBfU3RhdGljX2Fzc2VydCgpLCBidXQgdGhlcmUgYXJlIGJpemFycmUgc3lu dGFjdGljCi0gKiBwbGFjZW1lbnQgcmVzdHJpY3Rpb25zLiAgTWFjcm9zIFN0YXRpY0Fzc2Vy dFN0bXQoKSBhbmQgU3RhdGljQXNzZXJ0RXhwcigpCisgKiBDMTEgaGFzIF9TdGF0aWNfYXNz ZXJ0KCksIGFuZCBtb3N0IEM5OSBjb21waWxlcnMgYWxyZWFkeSBzdXBwb3J0IHRoYXQuICBG b3IKKyAqIHBvcnRhYmlsaXR5LCB3ZSB3cmFwIGl0IGludG8gU3RhdGljQXNzZXJ0RGVjbCgp LiAgX1N0YXRpY19hc3NlcnQoKSBpcyBhCisgKiAiZGVjbGFyYXRpb24iLCBhbmQgc28gaXQg bXVzdCBiZSBwbGFjZWQgd2hlcmUgZm9yIGV4YW1wbGUgYSB2YXJpYWJsZQorICogZGVjbGFy YXRpb24gd291bGQgYmUgdmFsaWQuICBBcyBsb25nIGFzIHdlIGNvbXBpbGUgd2l0aAorICog LVduby1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQsIHRoYXQgYWxzbyBtZWFucyBpdCBj YW5ub3QgYmUgcGxhY2VkIGFmdGVyCisgKiBzdGF0ZW1lbnRzIGluIGEgZnVuY3Rpb24uICBN YWNyb3MgU3RhdGljQXNzZXJ0U3RtdCgpIGFuZCBTdGF0aWNBc3NlcnRFeHByKCkKICAqIG1h a2UgaXQgc2FmZSB0byB1c2UgYXMgYSBzdGF0ZW1lbnQgb3IgaW4gYW4gZXhwcmVzc2lvbiwg cmVzcGVjdGl2ZWx5LgotICogVGhlIG1hY3JvIFN0YXRpY0Fzc2VydERlY2woKSBpcyBzdWl0 YWJsZSBmb3IgdXNlIGF0IGZpbGUgc2NvcGUgKG91dHNpZGUgb2YKLSAqIGFueSBmdW5jdGlv bikuCiAgKgotICogT3RoZXJ3aXNlIHdlIGZhbGwgYmFjayBvbiBhIGtsdWdlIHRoYXQgYXNz dW1lcyB0aGUgY29tcGlsZXIgd2lsbCBjb21wbGFpbgotICogYWJvdXQgYSBuZWdhdGl2ZSB3 aWR0aCBmb3IgYSBzdHJ1Y3QgYml0LWZpZWxkLiAgVGhpcyB3aWxsIG5vdCBpbmNsdWRlIGEK LSAqIGhlbHBmdWwgZXJyb3IgbWVzc2FnZSwgYnV0IGl0IGJlYXRzIG5vdCBnZXR0aW5nIGFu IGVycm9yIGF0IGFsbC4KKyAqIEZvciBjb21waWxlcnMgd2l0aG91dCBfU3RhdGljX2Fzc2Vy dCgpLCB3ZSBmYWxsIGJhY2sgb24gYSBrbHVnZSB0aGF0CisgKiBhc3N1bWVzIHRoZSBjb21w aWxlciB3aWxsIGNvbXBsYWluIGFib3V0IGEgbmVnYXRpdmUgd2lkdGggZm9yIGEgc3RydWN0 CisgKiBiaXQtZmllbGQuICBUaGlzIHdpbGwgbm90IGluY2x1ZGUgYSBoZWxwZnVsIGVycm9y IG1lc3NhZ2UsIGJ1dCBpdCBiZWF0cyBub3QKKyAqIGdldHRpbmcgYW4gZXJyb3IgYXQgYWxs LgogICovCiAjaWZuZGVmIF9fY3BsdXNwbHVzCiAjaWZkZWYgSEFWRV9fU1RBVElDX0FTU0VS VAorI2RlZmluZSBTdGF0aWNBc3NlcnREZWNsKGNvbmRpdGlvbiwgZXJybWVzc2FnZSkgXAor CV9TdGF0aWNfYXNzZXJ0KGNvbmRpdGlvbiwgZXJybWVzc2FnZSkKICNkZWZpbmUgU3RhdGlj QXNzZXJ0U3RtdChjb25kaXRpb24sIGVycm1lc3NhZ2UpIFwKIAlkbyB7IF9TdGF0aWNfYXNz ZXJ0KGNvbmRpdGlvbiwgZXJybWVzc2FnZSk7IH0gd2hpbGUoMCkKICNkZWZpbmUgU3RhdGlj QXNzZXJ0RXhwcihjb25kaXRpb24sIGVycm1lc3NhZ2UpIFwKIAkoKHZvaWQpICh7IFN0YXRp Y0Fzc2VydFN0bXQoY29uZGl0aW9uLCBlcnJtZXNzYWdlKTsgdHJ1ZTsgfSkpCi0jZGVmaW5l IFN0YXRpY0Fzc2VydERlY2woY29uZGl0aW9uLCBlcnJtZXNzYWdlKSBcCi0JX1N0YXRpY19h c3NlcnQoY29uZGl0aW9uLCBlcnJtZXNzYWdlKQogI2Vsc2UJCQkJCQkJLyogIUhBVkVfX1NU QVRJQ19BU1NFUlQgKi8KKyNkZWZpbmUgU3RhdGljQXNzZXJ0RGVjbChjb25kaXRpb24sIGVy cm1lc3NhZ2UpIFwKKwlleHRlcm4gdm9pZCBzdGF0aWNfYXNzZXJ0X2Z1bmMoaW50IHN0YXRp Y19hc3NlcnRfZmFpbHVyZVsoY29uZGl0aW9uKSA/IDEgOiAtMV0pCiAjZGVmaW5lIFN0YXRp Y0Fzc2VydFN0bXQoY29uZGl0aW9uLCBlcnJtZXNzYWdlKSBcCiAJKCh2b2lkKSBzaXplb2Yo c3RydWN0IHsgaW50IHN0YXRpY19hc3NlcnRfZmFpbHVyZSA6IChjb25kaXRpb24pID8gMSA6 IC0xOyB9KSkKICNkZWZpbmUgU3RhdGljQXNzZXJ0RXhwcihjb25kaXRpb24sIGVycm1lc3Nh Z2UpIFwKIAlTdGF0aWNBc3NlcnRTdG10KGNvbmRpdGlvbiwgZXJybWVzc2FnZSkKLSNkZWZp bmUgU3RhdGljQXNzZXJ0RGVjbChjb25kaXRpb24sIGVycm1lc3NhZ2UpIFwKLQlleHRlcm4g dm9pZCBzdGF0aWNfYXNzZXJ0X2Z1bmMoaW50IHN0YXRpY19hc3NlcnRfZmFpbHVyZVsoY29u ZGl0aW9uKSA/IDEgOiAtMV0pCiAjZW5kaWYJCQkJCQkJLyogSEFWRV9fU1RBVElDX0FTU0VS VCAqLwogI2Vsc2UJCQkJCQkJLyogQysrICovCiAjaWYgZGVmaW5lZChfX2NwcF9zdGF0aWNf YXNzZXJ0KSAmJiBfX2NwcF9zdGF0aWNfYXNzZXJ0ID49IDIwMDQxMAorI2RlZmluZSBTdGF0 aWNBc3NlcnREZWNsKGNvbmRpdGlvbiwgZXJybWVzc2FnZSkgXAorCXN0YXRpY19hc3NlcnQo Y29uZGl0aW9uLCBlcnJtZXNzYWdlKQogI2RlZmluZSBTdGF0aWNBc3NlcnRTdG10KGNvbmRp dGlvbiwgZXJybWVzc2FnZSkgXAogCXN0YXRpY19hc3NlcnQoY29uZGl0aW9uLCBlcnJtZXNz YWdlKQogI2RlZmluZSBTdGF0aWNBc3NlcnRFeHByKGNvbmRpdGlvbiwgZXJybWVzc2FnZSkg XAogCSh7IHN0YXRpY19hc3NlcnQoY29uZGl0aW9uLCBlcnJtZXNzYWdlKTsgfSkKLSNkZWZp bmUgU3RhdGljQXNzZXJ0RGVjbChjb25kaXRpb24sIGVycm1lc3NhZ2UpIFwKLQlzdGF0aWNf YXNzZXJ0KGNvbmRpdGlvbiwgZXJybWVzc2FnZSkKICNlbHNlCQkJCQkJCS8qICFfX2NwcF9z dGF0aWNfYXNzZXJ0ICovCisjZGVmaW5lIFN0YXRpY0Fzc2VydERlY2woY29uZGl0aW9uLCBl cnJtZXNzYWdlKSBcCisJZXh0ZXJuIHZvaWQgc3RhdGljX2Fzc2VydF9mdW5jKGludCBzdGF0 aWNfYXNzZXJ0X2ZhaWx1cmVbKGNvbmRpdGlvbikgPyAxIDogLTFdKQogI2RlZmluZSBTdGF0 aWNBc3NlcnRTdG10KGNvbmRpdGlvbiwgZXJybWVzc2FnZSkgXAogCWRvIHsgc3RydWN0IHN0 YXRpY19hc3NlcnRfc3RydWN0IHsgaW50IHN0YXRpY19hc3NlcnRfZmFpbHVyZSA6IChjb25k aXRpb24pID8gMSA6IC0xOyB9OyB9IHdoaWxlKDApCiAjZGVmaW5lIFN0YXRpY0Fzc2VydEV4 cHIoY29uZGl0aW9uLCBlcnJtZXNzYWdlKSBcCiAJKCh2b2lkKSAoeyBTdGF0aWNBc3NlcnRT dG10KGNvbmRpdGlvbiwgZXJybWVzc2FnZSk7IH0pKQotI2RlZmluZSBTdGF0aWNBc3NlcnRE ZWNsKGNvbmRpdGlvbiwgZXJybWVzc2FnZSkgXAotCWV4dGVybiB2b2lkIHN0YXRpY19hc3Nl cnRfZnVuYyhpbnQgc3RhdGljX2Fzc2VydF9mYWlsdXJlWyhjb25kaXRpb24pID8gMSA6IC0x XSkKICNlbmRpZgkJCQkJCQkvKiBfX2NwcF9zdGF0aWNfYXNzZXJ0ICovCiAjZW5kaWYJCQkJ CQkJLyogQysrICovCiAKCmJhc2UtY29tbWl0OiAwN2MyOWNhN2ZlMzA4MzlhNzVkMTViNDNj MTNiMjkwYTU5YTYwZGRmCi0tIAoyLjM4LjEKCg== --------------JZfRCVI3OnzgMPUZJ9nYlGRO Content-Type: text/plain; charset=UTF-8; name="0002-Move-array-size-related-static-assertions.patch" Content-Disposition: attachment; filename="0002-Move-array-size-related-static-assertions.patch" Content-Transfer-Encoding: base64 RnJvbSAyOTk4YjhkMjRhZWQ3NDIyMWZlZGU0OTU0MTU1YjMxZmM3NjAxYjYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDE0OjMyOjQzICswMTAwClN1YmplY3Q6 IFtQQVRDSCAyLzRdIE1vdmUgYXJyYXktc2l6ZS1yZWxhdGVkIHN0YXRpYyBhc3NlcnRpb25z CgpTaW5jZSB0aGUgYWRkaXRpb24gb2YgU3RhdGljQXNzZXJ0RGVjbCgpLCB3ZSBjYW4gcHV0 IHN0YXRpYyBhc3NlcnRpb25zCmF0IHRoZSBmaWxlIGxldmVsLiAgU29tZSBzdGF0aWMgYXNz ZXJ0aW9ucyB0aGF0IGNoZWNrIHRoZSBzaXplIG9mIGFuCmFycmF5IGFnYWluc3Qgc29tZSBj b25zdGFudCBjYW4gbm93IGJlIG1vdmVkIGNsb3NlciB0byB3aGVyZSB0aG9zZQp0aGluZ3Mg YXJlIGRlZmluZWQsIGluc3RlYWQgb2YgYmVpbmcgc3R1Y2sgaW4gc29tZSB1bnJlbGF0ZWQg ZnVuY3Rpb24KYm9keS4KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAg IHwgMTIgKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC9saWJwcS9oYmEuYyAgICAgICAgICAg IHwgMTIgKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5j IHwgIDYgKysrLS0tCiBzcmMvY29tbW9uL2VuY25hbWVzLmMgICAgICAgICAgICAgIHwgIDYg KysrLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggN2YzZTY0YjVhZS4uMzAz OTRkY2NmNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTE5MSw2ICsxOTEs MTIgQEAgc3RhdGljIGNvbnN0IE9pZCBvYmplY3RfY2xhc3Nlc1tdID0gewogCVRyYW5zZm9y bVJlbGF0aW9uSWQJCQkvKiBPQ0xBU1NfVFJBTlNGT1JNICovCiB9OwogCisvKgorICogTWFr ZSBzdXJlIG9iamVjdF9jbGFzc2VzIGlzIGtlcHQgdXAgdG8gZGF0ZSB3aXRoIHRoZSBPYmpl Y3RDbGFzcyBlbnVtLgorICovCitTdGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKG9iamVjdF9j bGFzc2VzKSA9PSBMQVNUX09DTEFTUyArIDEsCisJCQkJICJvYmplY3RfY2xhc3Nlc1tdIG11 c3QgY292ZXIgYWxsIE9iamVjdENsYXNzZXMiKTsKKwogCiBzdGF0aWMgdm9pZCBmaW5kRGVw ZW5kZW50T2JqZWN0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJCQkJCSBp bnQgb2JqZmxhZ3MsCkBAIC0yNTUwLDEyICsyNTU2LDYgQEAgYWRkX29iamVjdF9hZGRyZXNz KE9iamVjdENsYXNzIG9jbGFzcywgT2lkIG9iamVjdElkLCBpbnQzMiBzdWJJZCwKIHsKIAlP YmplY3RBZGRyZXNzICppdGVtOwogCi0JLyoKLQkgKiBNYWtlIHN1cmUgb2JqZWN0X2NsYXNz ZXMgaXMga2VwdCB1cCB0byBkYXRlIHdpdGggdGhlIE9iamVjdENsYXNzIGVudW0uCi0JICov Ci0JU3RhdGljQXNzZXJ0U3RtdChsZW5ndGhvZihvYmplY3RfY2xhc3NlcykgPT0gTEFTVF9P Q0xBU1MgKyAxLAotCQkJCQkgIm9iamVjdF9jbGFzc2VzW10gbXVzdCBjb3ZlciBhbGwgT2Jq ZWN0Q2xhc3NlcyIpOwotCiAJLyogZW5sYXJnZSBhcnJheSBpZiBuZWVkZWQgKi8KIAlpZiAo YWRkcnMtPm51bXJlZnMgPj0gYWRkcnMtPm1heHJlZnMpCiAJewpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvbGlicHEvaGJhLmMgYi9zcmMvYmFja2VuZC9saWJwcS9oYmEuYwppbmRleCA0 NmU5MTQ0MWFjLi44NzBiOTA3Njk3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9saWJwcS9o YmEuYworKysgYi9zcmMvYmFja2VuZC9saWJwcS9oYmEuYwpAQCAtMTI3LDYgKzEyNywxMiBA QCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgVXNlckF1dGhOYW1lW10gPQogCSJwZWVyIgog fTsKIAorLyoKKyAqIE1ha2Ugc3VyZSBVc2VyQXV0aE5hbWVbXSB0cmFja3MgYWRkaXRpb25z IHRvIHRoZSBVc2VyQXV0aCBlbnVtCisgKi8KK1N0YXRpY0Fzc2VydERlY2wobGVuZ3Rob2Yo VXNlckF1dGhOYW1lKSA9PSBVU0VSX0FVVEhfTEFTVCArIDEsCisJCQkJICJVc2VyQXV0aE5h bWVbXSBtdXN0IG1hdGNoIHRoZSBVc2VyQXV0aCBlbnVtIik7CisKIAogc3RhdGljIExpc3Qg KnRva2VuaXplX2V4cGFuZF9maWxlKExpc3QgKnRva2VucywgY29uc3QgY2hhciAqb3V0ZXJf ZmlsZW5hbWUsCiAJCQkJCQkJCSAgY29uc3QgY2hhciAqaW5jX2ZpbGVuYW1lLCBpbnQgZWxl dmVsLApAQCAtMzExNywxMSArMzEyMyw1IEBAIGhiYV9nZXRhdXRobWV0aG9kKGhiYVBvcnQg KnBvcnQpCiBjb25zdCBjaGFyICoKIGhiYV9hdXRobmFtZShVc2VyQXV0aCBhdXRoX21ldGhv ZCkKIHsKLQkvKgotCSAqIE1ha2Ugc3VyZSBVc2VyQXV0aE5hbWVbXSB0cmFja3MgYWRkaXRp b25zIHRvIHRoZSBVc2VyQXV0aCBlbnVtCi0JICovCi0JU3RhdGljQXNzZXJ0U3RtdChsZW5n dGhvZihVc2VyQXV0aE5hbWUpID09IFVTRVJfQVVUSF9MQVNUICsgMSwKLQkJCQkJICJVc2Vy QXV0aE5hbWVbXSBtdXN0IG1hdGNoIHRoZSBVc2VyQXV0aCBlbnVtIik7Ci0KIAlyZXR1cm4g VXNlckF1dGhOYW1lW2F1dGhfbWV0aG9kXTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNj YWNoZS5jCmluZGV4IGVlYzY0NGVjODQuLmJiM2RkNmY0ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvc3lzY2FjaGUuYwpAQCAtMTA0MCw2ICsxMDQwLDkgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBjYWNoZWRlc2MgY2FjaGVpbmZvW10gPSB7CiAJfQogfTsKIAorU3RhdGljQXNzZXJ0 RGVjbChTeXNDYWNoZVNpemUgPT0gKGludCkgbGVuZ3Rob2YoY2FjaGVpbmZvKSwKKwkJCQkg IlN5c0NhY2hlU2l6ZSBkb2VzIG5vdCBtYXRjaCBzeXNjYWNoZS5jJ3MgYXJyYXkiKTsKKwog c3RhdGljIENhdENhY2hlICpTeXNDYWNoZVtTeXNDYWNoZVNpemVdOwogCiBzdGF0aWMgYm9v bCBDYWNoZUluaXRpYWxpemVkID0gZmFsc2U7CkBAIC0xMDY4LDkgKzEwNzEsNiBAQCBJbml0 Q2F0YWxvZ0NhY2hlKHZvaWQpCiB7CiAJaW50CQkJY2FjaGVJZDsKIAotCVN0YXRpY0Fzc2Vy dFN0bXQoU3lzQ2FjaGVTaXplID09IChpbnQpIGxlbmd0aG9mKGNhY2hlaW5mbyksCi0JCQkJ CSAiU3lzQ2FjaGVTaXplIGRvZXMgbm90IG1hdGNoIHN5c2NhY2hlLmMncyBhcnJheSIpOwot CiAJQXNzZXJ0KCFDYWNoZUluaXRpYWxpemVkKTsKIAogCVN5c0NhY2hlUmVsYXRpb25PaWRT aXplID0gU3lzQ2FjaGVTdXBwb3J0aW5nUmVsT2lkU2l6ZSA9IDA7CmRpZmYgLS1naXQgYS9z cmMvY29tbW9uL2VuY25hbWVzLmMgYi9zcmMvY29tbW9uL2VuY25hbWVzLmMKaW5kZXggNTk2 YTIzYjY0ZC4uMjMyOWRiNTcyYiAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9lbmNuYW1lcy5j CisrKyBiL3NyYy9jb21tb24vZW5jbmFtZXMuYwpAQCAtNDUxLDYgKzQ1MSw5IEBAIHN0YXRp YyBjb25zdCBjaGFyICpjb25zdCBwZ19lbmMyaWN1X3RibFtdID0KIAkiS09JOC1VIiwJCQkJ CS8qIFBHX0tPSThVICovCiB9OwogCitTdGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKHBnX2Vu YzJpY3VfdGJsKSA9PSBQR19FTkNPRElOR19CRV9MQVNUICsgMSwKKwkJCQkgInBnX2VuYzJp Y3VfdGJsIGluY29tcGxldGUiKTsKKwogCiAvKgogICogSXMgdGhpcyBlbmNvZGluZyBzdXBw b3J0ZWQgYnkgSUNVPwpAQCAtNDY5LDkgKzQ3Miw2IEBAIGlzX2VuY29kaW5nX3N1cHBvcnRl ZF9ieV9pY3UoaW50IGVuY29kaW5nKQogY29uc3QgY2hhciAqCiBnZXRfZW5jb2RpbmdfbmFt ZV9mb3JfaWN1KGludCBlbmNvZGluZykKIHsKLQlTdGF0aWNBc3NlcnRTdG10KGxlbmd0aG9m KHBnX2VuYzJpY3VfdGJsKSA9PSBQR19FTkNPRElOR19CRV9MQVNUICsgMSwKLQkJCQkJICJw Z19lbmMyaWN1X3RibCBpbmNvbXBsZXRlIik7Ci0KIAlpZiAoIVBHX1ZBTElEX0JFX0VOQ09E SU5HKGVuY29kaW5nKSkKIAkJcmV0dXJuIE5VTEw7CiAJcmV0dXJuIHBnX2VuYzJpY3VfdGJs W2VuY29kaW5nXTsKLS0gCjIuMzguMQoK --------------JZfRCVI3OnzgMPUZJ9nYlGRO Content-Type: text/plain; charset=UTF-8; name="0003-Move-some-static-assertions-to-better-places.patch" Content-Disposition: attachment; filename="0003-Move-some-static-assertions-to-better-places.patch" Content-Transfer-Encoding: base64 RnJvbSBkZDc0YzEyOGU0ZDk4MTY3ZTkyMWFkYWVlMDlmMjFjMmNmZjdhMTU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDE0OjM0OjQ3ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAzLzRdIE1vdmUgc29tZSBzdGF0aWMgYXNzZXJ0aW9ucyB0byBiZXR0ZXIgcGxh Y2VzCgpTaW5jZSB0aGUgYWRkaXRpb24gb2YgU3RhdGljQXNzZXJ0RGVjbCgpLCB3ZSBjYW4g cHV0IHN0YXRpYyBhc3NlcnRpb25zCmF0IHRoZSBmaWxlIGxldmVsLiAgVGhpcyBtb3ZlcyBz b21lIHN0YXRpYyBhc3NlcnRpb25zIG91dCBvZiBmdW5jdGlvbgpib2RpZXMsIHdoZXJlIHRo ZXkgbWlnaHQgaGF2ZSBiZWVuIHN0dWNrIG91dCBvZiBuZWNlc3NpdHksIHRvIHBlcmhhcHMK YmV0dGVyIHBsYWNlcyBhdCB0aGUgZmlsZSBsZXZlbCBvciBpbiBoZWFkZXIgZmlsZXMuCi0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgIHwgIDQgLS0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5jIHwgIDcgLS0tLS0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jICAgIHwgIDkgLS0tLS0tLS0tCiBzcmMvYmFj a2VuZC9zdG9yYWdlL2xtZ3IvbHdsb2NrLmMgICAgfCAgOSArKystLS0tLS0KIHNyYy9iYWNr ZW5kL3N0b3JhZ2UvcGFnZS9pdGVtcHRyLmMgICB8IDE0ICsrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvdHNnaW5pZHguYyAgICAgfCAgMiAtLQogc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3hpZDhmdW5jcy5jICAgIHwgMTUgKysrKysrKystLS0tLS0tCiBzcmMvY29t bW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMgICAgICAgfCAgOCAtLS0tLS0tLQogc3JjL2luY2x1 ZGUvYWNjZXNzL2dpbi5oICAgICAgICAgICAgIHwgIDMgKysrCiBzcmMvaW5jbHVkZS9hY2Nl c3MvaHR1cF9kZXRhaWxzLmggICAgfCAgMyArKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9uYnRy ZWUuaCAgICAgICAgICB8ICA3ICsrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29u dHJvbC5oICAgICB8ICA4ICsrKysrKysrCiBzcmMvaW5jbHVkZS9zdG9yYWdlL2x3bG9jay5o ICAgICAgICAgfCAgMyArKysKIDEzIGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyks IDUwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggNzQ3 ZGI1MDM3Ni4uMzgzZTFkZGRlNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAg LTU3ODMsMTAgKzU3ODMsNiBAQCBoZWFwX2ZpbmlzaF9zcGVjdWxhdGl2ZShSZWxhdGlvbiBy ZWxhdGlvbiwgSXRlbVBvaW50ZXIgdGlkKQogCiAJaHR1cCA9IChIZWFwVHVwbGVIZWFkZXIp IFBhZ2VHZXRJdGVtKHBhZ2UsIGxwKTsKIAotCS8qIFNwZWNUb2tlbk9mZnNldE51bWJlciBz aG91bGQgYmUgZGlzdGluZ3Vpc2hhYmxlIGZyb20gYW55IHJlYWwgb2Zmc2V0ICovCi0JU3Rh dGljQXNzZXJ0U3RtdChNYXhPZmZzZXROdW1iZXIgPCBTcGVjVG9rZW5PZmZzZXROdW1iZXIs Ci0JCQkJCSAiaW52YWxpZCBzcGVjdWxhdGl2ZSB0b2tlbiBjb25zdGFudCIpOwotCiAJLyog Tk8gRVJFUE9SVChFUlJPUikgZnJvbSBoZXJlIHRpbGwgY2hhbmdlcyBhcmUgbG9nZ2VkICov CiAJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0dXRpbHMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 dXRpbHMuYwppbmRleCBmZjI2MGMzOTNhLi4xMGYxM2U2ZDQxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL25idHJlZS9uYnR1dGlscy5jCkBAIC0yNDg2LDEzICsyNDg2LDYgQEAgX2J0X2NoZWNr X25hdHRzKFJlbGF0aW9uIHJlbCwgYm9vbCBoZWFwa2V5c3BhY2UsIFBhZ2UgcGFnZSwgT2Zm c2V0TnVtYmVyIG9mZm51bSkKIAlBc3NlcnQob2ZmbnVtID49IEZpcnN0T2Zmc2V0TnVtYmVy ICYmCiAJCSAgIG9mZm51bSA8PSBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKHBhZ2UpKTsKIAot CS8qCi0JICogTWFzayBhbGxvY2F0ZWQgZm9yIG51bWJlciBvZiBrZXlzIGluIGluZGV4IHR1 cGxlIG11c3QgYmUgYWJsZSB0byBmaXQKLQkgKiBtYXhpbXVtIHBvc3NpYmxlIG51bWJlciBv ZiBpbmRleCBhdHRyaWJ1dGVzCi0JICovCi0JU3RhdGljQXNzZXJ0U3RtdChCVF9PRkZTRVRf TUFTSyA+PSBJTkRFWF9NQVhfS0VZUywKLQkJCQkJICJCVF9PRkZTRVRfTUFTSyBjYW4ndCBm aXQgSU5ERVhfTUFYX0tFWVMiKTsKLQogCWl0dXAgPSAoSW5kZXhUdXBsZSkgUGFnZUdldEl0 ZW0ocGFnZSwgUGFnZUdldEl0ZW1JZChwYWdlLCBvZmZudW0pKTsKIAl0dXBuYXR0cyA9IEJU cmVlVHVwbGVHZXROQXR0cyhpdHVwLCByZWwpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9nLmMKaW5kZXggYTMxZmJiZmY3OC4uOTE0NzNiMDBkOSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hsb2cuYwpAQCAtMzg4MywxNSArMzg4Myw2IEBAIFdyaXRlQ29udHJvbEZpbGUo dm9pZCkKIAlpbnQJCQlmZDsKIAljaGFyCQlidWZmZXJbUEdfQ09OVFJPTF9GSUxFX1NJWkVd OwkvKiBuZWVkIG5vdCBiZSBhbGlnbmVkICovCiAKLQkvKgotCSAqIEVuc3VyZSB0aGF0IHRo ZSBzaXplIG9mIHRoZSBwZ19jb250cm9sIGRhdGEgc3RydWN0dXJlIGlzIHNhbmUuICBTZWUg dGhlCi0JICogY29tbWVudHMgZm9yIHRoZXNlIHN5bWJvbHMgaW4gcGdfY29udHJvbC5oLgot CSAqLwotCVN0YXRpY0Fzc2VydFN0bXQoc2l6ZW9mKENvbnRyb2xGaWxlRGF0YSkgPD0gUEdf Q09OVFJPTF9NQVhfU0FGRV9TSVpFLAotCQkJCQkgInBnX2NvbnRyb2wgaXMgdG9vIGxhcmdl IGZvciBhdG9taWMgZGlzayB3cml0ZXMiKTsKLQlTdGF0aWNBc3NlcnRTdG10KHNpemVvZihD b250cm9sRmlsZURhdGEpIDw9IFBHX0NPTlRST0xfRklMRV9TSVpFLAotCQkJCQkgInNpemVv ZihDb250cm9sRmlsZURhdGEpIGV4Y2VlZHMgUEdfQ09OVFJPTF9GSUxFX1NJWkUiKTsKLQog CS8qCiAJICogSW5pdGlhbGl6ZSB2ZXJzaW9uIGFuZCBjb21wYXRpYmlsaXR5LWNoZWNrIGZp ZWxkcwogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2x3bG9j ay5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2x3bG9jay5jCmluZGV4IGE1YWQzNmNh NzguLjUyOGIyZTk2NDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9s d2xvY2suYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbHdsb2NrLmMKQEAgLTEw OCw2ICsxMDgsOSBAQCBleHRlcm4gc2xvY2tfdCAqU2htZW1Mb2NrOwogLyogTXVzdCBiZSBn cmVhdGVyIHRoYW4gTUFYX0JBQ0tFTkRTIC0gd2hpY2ggaXMgMl4yMy0xLCBzbyB3ZSdyZSBm aW5lLiAqLwogI2RlZmluZSBMV19TSEFSRURfTUFTSwkJCQkoKHVpbnQzMikgKCgxIDw8IDI0 KS0xKSkKIAorU3RhdGljQXNzZXJ0RGVjbChMV19WQUxfRVhDTFVTSVZFID4gKHVpbnQzMikg TUFYX0JBQ0tFTkRTLAorCQkJCSAiTUFYX0JBQ0tFTkRTIHRvbyBiaWcgZm9yIGx3bG9jay5j Iik7CisKIC8qCiAgKiBUaGVyZSBhcmUgdGhyZWUgc29ydHMgb2YgTFdMb2NrICJ0cmFuY2hl cyI6CiAgKgpAQCAtNDY2LDEyICs0NjksNiBAQCBMV0xvY2tTaG1lbVNpemUodm9pZCkKIHZv aWQKIENyZWF0ZUxXTG9ja3Modm9pZCkKIHsKLQlTdGF0aWNBc3NlcnRTdG10KExXX1ZBTF9F WENMVVNJVkUgPiAodWludDMyKSBNQVhfQkFDS0VORFMsCi0JCQkJCSAiTUFYX0JBQ0tFTkRT IHRvbyBiaWcgZm9yIGx3bG9jay5jIik7Ci0KLQlTdGF0aWNBc3NlcnRTdG10KHNpemVvZihM V0xvY2spIDw9IExXTE9DS19QQURERURfU0laRSwKLQkJCQkJICJNaXNjYWxjdWxhdGVkIExX TG9jayBwYWRkaW5nIik7Ci0KIAlpZiAoIUlzVW5kZXJQb3N0bWFzdGVyKQogCXsKIAkJU2l6 ZQkJc3BhY2VMb2NrcyA9IExXTG9ja1NobWVtU2l6ZSgpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9wYWdlL2l0ZW1wdHIuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFn ZS9pdGVtcHRyLmMKaW5kZXggOTAxMTMzN2FhOC4uYzFhODRhY2RiNiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2l0ZW1wdHIuYworKysgYi9zcmMvYmFja2VuZC9z dG9yYWdlL3BhZ2UvaXRlbXB0ci5jCkBAIC0xNyw2ICsxNywxMyBAQAogI2luY2x1ZGUgInN0 b3JhZ2UvaXRlbXB0ci5oIgogCiAKKy8qCisgKiBXZSByZWFsbHkgd2FudCBJdGVtUG9pbnRl ckRhdGEgdG8gYmUgZXhhY3RseSA2IGJ5dGVzLiAgVGhpcyBpcyByYXRoZXIgYQorICogcmFu ZG9tIHBsYWNlIHRvIGNoZWNrLCBidXQgdGhlcmUgaXMgbm8gYmV0dGVyIHBsYWNlLgorICov CitTdGF0aWNBc3NlcnREZWNsKHNpemVvZihJdGVtUG9pbnRlckRhdGEpID09IDMgKiBzaXpl b2YodWludDE2KSwKKwkJCQkgIkl0ZW1Qb2ludGVyRGF0YSBzdHJ1Y3QgaXMgaW1wcm9wZXJs eSBwYWRkZWQiKTsKKwogLyoKICAqIEl0ZW1Qb2ludGVyRXF1YWxzCiAgKglSZXR1cm5zIHRy dWUgaWYgYm90aCBpdGVtIHBvaW50ZXJzIHBvaW50IHRvIHRoZSBzYW1lIGl0ZW0sCkBAIC0y OCwxMyArMzUsNiBAQAogYm9vbAogSXRlbVBvaW50ZXJFcXVhbHMoSXRlbVBvaW50ZXIgcG9p bnRlcjEsIEl0ZW1Qb2ludGVyIHBvaW50ZXIyKQogewotCS8qCi0JICogV2UgcmVhbGx5IHdh bnQgSXRlbVBvaW50ZXJEYXRhIHRvIGJlIGV4YWN0bHkgNiBieXRlcy4gIFRoaXMgaXMgcmF0 aGVyIGEKLQkgKiByYW5kb20gcGxhY2UgdG8gY2hlY2ssIGJ1dCB0aGVyZSBpcyBubyBiZXR0 ZXIgcGxhY2UuCi0JICovCi0JU3RhdGljQXNzZXJ0U3RtdChzaXplb2YoSXRlbVBvaW50ZXJE YXRhKSA9PSAzICogc2l6ZW9mKHVpbnQxNiksCi0JCQkJCSAiSXRlbVBvaW50ZXJEYXRhIHN0 cnVjdCBpcyBpbXByb3Blcmx5IHBhZGRlZCIpOwotCiAJaWYgKEl0ZW1Qb2ludGVyR2V0Qmxv Y2tOdW1iZXIocG9pbnRlcjEpID09CiAJCUl0ZW1Qb2ludGVyR2V0QmxvY2tOdW1iZXIocG9p bnRlcjIpICYmCiAJCUl0ZW1Qb2ludGVyR2V0T2Zmc2V0TnVtYmVyKHBvaW50ZXIxKSA9PQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvdHNnaW5pZHguYwppbmRleCBlMjcyZmNhMDc1Li5jZjIzYWViNWVh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNnaW5pZHguYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvdHNnaW5pZHguYwpAQCAtMjM2LDggKzIzNiw2IEBAIGdp bl90c3F1ZXJ5X2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJICogcXVlcnkuCiAJ CSAqLwogCQlnY3YuZmlyc3RfaXRlbSA9IEdFVFFVRVJZKHF1ZXJ5KTsKLQkJU3RhdGljQXNz ZXJ0U3RtdChzaXplb2YoR2luVGVybmFyeVZhbHVlKSA9PSBzaXplb2YoYm9vbCksCi0JCQkJ CQkgInNpemVzIG9mIEdpblRlcm5hcnlWYWx1ZSBhbmQgYm9vbCBhcmUgbm90IGVxdWFsIik7 CiAJCWdjdi5jaGVjayA9IChHaW5UZXJuYXJ5VmFsdWUgKikgY2hlY2s7CiAJCWdjdi5tYXBf aXRlbV9vcGVyYW5kID0gKGludCAqKSAoZXh0cmFfZGF0YVswXSk7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94aWQ4ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC94aWQ4ZnVuY3MuYwppbmRleCBkOGU0MGIzYjk2Li5hZmMzZGM4YTQ3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQveGlkOGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3hpZDhmdW5jcy5jCkBAIC03NCw2ICs3NCwxNCBAQCB0eXBlZGVmIHN0 cnVjdAogI2RlZmluZSBQR19TTkFQU0hPVF9NQVhfTlhJUCBcCiAJKChNYXhBbGxvY1NpemUg LSBvZmZzZXRvZihwZ19zbmFwc2hvdCwgeGlwKSkgLyBzaXplb2YoRnVsbFRyYW5zYWN0aW9u SWQpKQogCisvKgorICogQ29tcGlsZS10aW1lIGxpbWl0cyBvbiB0aGUgcHJvY2FycmF5IChN QVhfQkFDS0VORFMgcHJvY2Vzc2VzIHBsdXMKKyAqIE1BWF9CQUNLRU5EUyBwcmVwYXJlZCB0 cmFuc2FjdGlvbnMpIGd1YXJhbnRlZSBueGlwIHdvbid0IGJlIHRvbyBsYXJnZS4KKyAqLwor U3RhdGljQXNzZXJ0RGVjbChNQVhfQkFDS0VORFMgKiAyIDw9IFBHX1NOQVBTSE9UX01BWF9O WElQLAorCQkJCSAicG9zc2libGUgb3ZlcmZsb3cgaW4gcGdfY3VycmVudF9zbmFwc2hvdCgp Iik7CisKKwogLyoKICAqIEhlbHBlciB0byBnZXQgYSBUcmFuc2FjdGlvbklkIGZyb20gYSA2 NC1iaXQgeGlkIHdpdGggd3JhcGFyb3VuZCBkZXRlY3Rpb24uCiAgKgpAQCAtNDAzLDEzICs0 MTEsNiBAQCBwZ19jdXJyZW50X3NuYXBzaG90KFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKGN1 ciA9PSBOVUxMKQogCQllbG9nKEVSUk9SLCAibm8gYWN0aXZlIHNuYXBzaG90IHNldCIpOwog Ci0JLyoKLQkgKiBDb21waWxlLXRpbWUgbGltaXRzIG9uIHRoZSBwcm9jYXJyYXkgKE1BWF9C QUNLRU5EUyBwcm9jZXNzZXMgcGx1cwotCSAqIE1BWF9CQUNLRU5EUyBwcmVwYXJlZCB0cmFu c2FjdGlvbnMpIGd1YXJhbnRlZSBueGlwIHdvbid0IGJlIHRvbyBsYXJnZS4KLQkgKi8KLQlT dGF0aWNBc3NlcnRTdG10KE1BWF9CQUNLRU5EUyAqIDIgPD0gUEdfU05BUFNIT1RfTUFYX05Y SVAsCi0JCQkJCSAicG9zc2libGUgb3ZlcmZsb3cgaW4gcGdfY3VycmVudF9zbmFwc2hvdCgp Iik7Ci0KIAkvKiBhbGxvY2F0ZSAqLwogCW54aXAgPSBjdXItPnhjbnQ7CiAJc25hcCA9IHBh bGxvYyhQR19TTkFQU0hPVF9TSVpFKG54aXApKTsKZGlmZiAtLWdpdCBhL3NyYy9jb21tb24v Y29udHJvbGRhdGFfdXRpbHMuYyBiL3NyYy9jb21tb24vY29udHJvbGRhdGFfdXRpbHMuYwpp bmRleCAyZDFmMzViYmQxLi41YzY1NDc0NmZhIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL2Nv bnRyb2xkYXRhX3V0aWxzLmMKKysrIGIvc3JjL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5j CkBAIC0xNDksMTQgKzE0OSw2IEBAIHVwZGF0ZV9jb250cm9sZmlsZShjb25zdCBjaGFyICpE YXRhRGlyLAogCWNoYXIJCWJ1ZmZlcltQR19DT05UUk9MX0ZJTEVfU0laRV07CiAJY2hhcgkJ Q29udHJvbEZpbGVQYXRoW01BWFBHUEFUSF07CiAKLQkvKgotCSAqIEFwcGx5IHRoZSBzYW1l IHN0YXRpYyBhc3NlcnRpb25zIGFzIGluIGJhY2tlbmQncyBXcml0ZUNvbnRyb2xGaWxlKCku Ci0JICovCi0JU3RhdGljQXNzZXJ0U3RtdChzaXplb2YoQ29udHJvbEZpbGVEYXRhKSA8PSBQ R19DT05UUk9MX01BWF9TQUZFX1NJWkUsCi0JCQkJCSAicGdfY29udHJvbCBpcyB0b28gbGFy Z2UgZm9yIGF0b21pYyBkaXNrIHdyaXRlcyIpOwotCVN0YXRpY0Fzc2VydFN0bXQoc2l6ZW9m KENvbnRyb2xGaWxlRGF0YSkgPD0gUEdfQ09OVFJPTF9GSUxFX1NJWkUsCi0JCQkJCSAic2l6 ZW9mKENvbnRyb2xGaWxlRGF0YSkgZXhjZWVkcyBQR19DT05UUk9MX0ZJTEVfU0laRSIpOwot CiAJLyogVXBkYXRlIHRpbWVzdGFtcCAgKi8KIAlDb250cm9sRmlsZS0+dGltZSA9IChwZ190 aW1lX3QpIHRpbWUoTlVMTCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9n aW4uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naW4uaAppbmRleCBmZmY4NjFlMjE5Li4xMTll ZDY4NWJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2luLmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL2dpbi5oCkBAIC01Nyw2ICs1Nyw5IEBAIHR5cGVkZWYgc3RydWN0 IEdpblN0YXRzRGF0YQogICovCiB0eXBlZGVmIGNoYXIgR2luVGVybmFyeVZhbHVlOwogCitT dGF0aWNBc3NlcnREZWNsKHNpemVvZihHaW5UZXJuYXJ5VmFsdWUpID09IHNpemVvZihib29s KSwKKwkJCQkgInNpemVzIG9mIEdpblRlcm5hcnlWYWx1ZSBhbmQgYm9vbCBhcmUgbm90IGVx dWFsIik7CisKICNkZWZpbmUgR0lOX0ZBTFNFCQkwCQkvKiBpdGVtIGlzIG5vdCBwcmVzZW50 IC8gZG9lcyBub3QgbWF0Y2ggKi8KICNkZWZpbmUgR0lOX1RSVUUJCTEJCS8qIGl0ZW0gaXMg cHJlc2VudCAvIG1hdGNoZXMgKi8KICNkZWZpbmUgR0lOX01BWUJFCQkyCQkvKiBkb24ndCBr bm93IGlmIGl0ZW0gaXMgcHJlc2VudCAvIGRvbid0IGtub3cKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9odHVwX2RldGFpbHMuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9odHVw X2RldGFpbHMuaAppbmRleCA5NTYxYzgzNWYyLi5jMWFmODE0ZThkIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9hY2Nlc3MvaHR1cF9kZXRhaWxzLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL2h0dXBfZGV0YWlscy5oCkBAIC00MjYsNiArNDI2LDkgQEAgZG8geyBcCiAJKHR1cCkt PnRfY2hvaWNlLnRfaGVhcC50X2ZpZWxkMy50X3h2YWMgPSAoeGlkKTsgXAogfSB3aGlsZSAo MCkKIAorU3RhdGljQXNzZXJ0RGVjbChNYXhPZmZzZXROdW1iZXIgPCBTcGVjVG9rZW5PZmZz ZXROdW1iZXIsCisJCQkJICJpbnZhbGlkIHNwZWN1bGF0aXZlIHRva2VuIGNvbnN0YW50Iik7 CisKICNkZWZpbmUgSGVhcFR1cGxlSGVhZGVySXNTcGVjdWxhdGl2ZSh0dXApIFwKICggXAog CShJdGVtUG9pbnRlckdldE9mZnNldE51bWJlck5vQ2hlY2soJih0dXApLT50X2N0aWQpID09 IFNwZWNUb2tlbk9mZnNldE51bWJlcikgXApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL25idHJlZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oCmluZGV4IDhlNGY2 ODY0ZTUuLjdkNWE2ZmE1NTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnRy ZWUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0cmVlLmgKQEAgLTQ2Niw2ICs0NjYs MTMgQEAgdHlwZWRlZiBzdHJ1Y3QgQlRWYWNTdGF0ZQogI2RlZmluZSBCVF9QSVZPVF9IRUFQ X1RJRF9BVFRSCQkweDEwMDAKICNkZWZpbmUgQlRfSVNfUE9TVElORwkJCQkweDIwMDAKIAor LyoKKyAqIE1hc2sgYWxsb2NhdGVkIGZvciBudW1iZXIgb2Yga2V5cyBpbiBpbmRleCB0dXBs ZSBtdXN0IGJlIGFibGUgdG8gZml0CisgKiBtYXhpbXVtIHBvc3NpYmxlIG51bWJlciBvZiBp bmRleCBhdHRyaWJ1dGVzCisgKi8KK1N0YXRpY0Fzc2VydERlY2woQlRfT0ZGU0VUX01BU0sg Pj0gSU5ERVhfTUFYX0tFWVMsCisJCQkJICJCVF9PRkZTRVRfTUFTSyBjYW4ndCBmaXQgSU5E RVhfTUFYX0tFWVMiKTsKKwogLyoKICAqIE5vdGU6IEJUcmVlVHVwbGVJc1Bpdm90KCkgY2Fu IGhhdmUgZmFsc2UgbmVnYXRpdmVzIChidXQgbm90IGZhbHNlCiAgKiBwb3NpdGl2ZXMpIHdo ZW4gdXNlZCB3aXRoICFoZWFwa2V5c3BhY2UgaW5kZXhlcwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jb250cm9sLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nv bnRyb2wuaAppbmRleCAwNjM2OGUyMzY2Li4xYjY0OGI3MTk2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2NvbnRyb2wuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2NvbnRyb2wuaApAQCAtMjQ3LDQgKzI0NywxMiBAQCB0eXBlZGVmIHN0cnVjdCBDb250 cm9sRmlsZURhdGEKICAqLwogI2RlZmluZSBQR19DT05UUk9MX0ZJTEVfU0laRQkJODE5Mgog CisvKgorICogRW5zdXJlIHRoYXQgdGhlIHNpemUgb2YgdGhlIHBnX2NvbnRyb2wgZGF0YSBz dHJ1Y3R1cmUgaXMgc2FuZS4KKyAqLworU3RhdGljQXNzZXJ0RGVjbChzaXplb2YoQ29udHJv bEZpbGVEYXRhKSA8PSBQR19DT05UUk9MX01BWF9TQUZFX1NJWkUsCisJCQkJICJwZ19jb250 cm9sIGlzIHRvbyBsYXJnZSBmb3IgYXRvbWljIGRpc2sgd3JpdGVzIik7CitTdGF0aWNBc3Nl cnREZWNsKHNpemVvZihDb250cm9sRmlsZURhdGEpIDw9IFBHX0NPTlRST0xfRklMRV9TSVpF LAorCQkJCSAic2l6ZW9mKENvbnRyb2xGaWxlRGF0YSkgZXhjZWVkcyBQR19DT05UUk9MX0ZJ TEVfU0laRSIpOworCiAjZW5kaWYJCQkJCQkJLyogUEdfQ09OVFJPTF9IICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL2x3bG9jay5oIGIvc3JjL2luY2x1ZGUvc3RvcmFn ZS9sd2xvY2suaAppbmRleCBhNDk0Y2I1OThmLi5kZDgxOGUxNmFiIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9zdG9yYWdlL2x3bG9jay5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv bHdsb2NrLmgKQEAgLTU5LDYgKzU5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgTFdMb2NrCiAgKi8K ICNkZWZpbmUgTFdMT0NLX1BBRERFRF9TSVpFCVBHX0NBQ0hFX0xJTkVfU0laRQogCitTdGF0 aWNBc3NlcnREZWNsKHNpemVvZihMV0xvY2spIDw9IExXTE9DS19QQURERURfU0laRSwKKwkJ CQkgIk1pc2NhbGN1bGF0ZWQgTFdMb2NrIHBhZGRpbmciKTsKKwogLyogTFdMb2NrLCBwYWRk ZWQgdG8gYSBmdWxsIGNhY2hlIGxpbmUgc2l6ZSAqLwogdHlwZWRlZiB1bmlvbiBMV0xvY2tQ YWRkZWQKIHsKLS0gCjIuMzguMQoK --------------JZfRCVI3OnzgMPUZJ9nYlGRO Content-Type: text/plain; charset=UTF-8; name="0004-Use-StaticAssertDecl-where-possible.patch" Content-Disposition: attachment; filename="0004-Use-StaticAssertDecl-where-possible.patch" Content-Transfer-Encoding: base64 RnJvbSBjN2M3ZTY0ODQ2NmUxYzcwZGQzMDM1NzAwMzFlOGIyM2JmYmIzOGRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDE0OjM0OjA3ICswMTAwClN1YmplY3Q6 IFtQQVRDSCA0LzRdIFVzZSBTdGF0aWNBc3NlcnREZWNsIHdoZXJlIHBvc3NpYmxlCgpXaGVu IHRoZSBzdGF0aWMgYXNzZXJ0aW9uIGFwcGVhcnMgaW4gYSBwb3NpdGlvbiB3aGVyZSBhIGRl Y2xhcmF0aW9uIGlzCmFsbG93ZWQsIHRoZW4gdXNpbmcgU3RhdGljQXNzZXJ0RGVjbCgpIGlz IG1vcmUgbmF0aXZlIHRoYW4KU3RhdGljQXNzZXJ0U3RtdCgpLgotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0vY2xvZy5jICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJh Y2t1cC5jICAgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJ bnRlcnAuYyB8ICAyICstCiBzcmMvYmFja2VuZC9saWJwcS9hdXRoLXNjcmFtLmMgICAgICAg IHwgIDIgKy0KIHNyYy9iYWNrZW5kL3BvcnQvYXRvbWljcy5jICAgICAgICAgICAgfCAgNiAr KystLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgICAgICAgfCAgMyArKy0K IHNyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jICAgICAgICAgfCAgNiArKystLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL21tZ3IvZ2VuZXJhdGlvbi5jICAgfCAgMiArLQogc3JjL2JhY2tl bmQvdXRpbHMvbW1nci9zbGFiLmMgICAgICAgICB8ICAyICstCiBzcmMvY29tbW9uL2NoZWNr c3VtX2hlbHBlci5jICAgICAgICAgIHwgMTAgKysrKystLS0tLQogc3JjL2luY2x1ZGUvY29t bW9uL2ludDEyOC5oICAgICAgICAgICB8ICAyICstCiAxMiBmaWxlcyBjaGFuZ2VkLCAyMiBp bnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bS5jCmluZGV4IDM4M2UxZGRkZTQuLjQyNzU2YTllNmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbS5jCkBAIC03OTE3LDcgKzc5MTcsNyBAQCBpbmRleF9kZWxldGVfc29ydChUTV9J bmRleERlbGV0ZU9wICpkZWxzdGF0ZSkKIAljb25zdCBpbnQJZ2Fwc1s5XSA9IHsxOTY4LCA4 NjEsIDMzNiwgMTEyLCA0OCwgMjEsIDcsIDMsIDF9OwogCiAJLyogVGhpbmsgY2FyZWZ1bGx5 IGJlZm9yZSBjaGFuZ2luZyBhbnl0aGluZyBoZXJlIC0tIGtlZXAgc3dhcHMgY2hlYXAgKi8K LQlTdGF0aWNBc3NlcnRTdG10KHNpemVvZihUTV9JbmRleERlbGV0ZSkgPD0gOCwKKwlTdGF0 aWNBc3NlcnREZWNsKHNpemVvZihUTV9JbmRleERlbGV0ZSkgPD0gOCwKIAkJCQkJICJlbGVt ZW50IHNpemUgZXhjZWVkcyA4IGJ5dGVzIik7CiAKIAlmb3IgKGludCBnID0gMDsgZyA8IGxl bmd0aG9mKGdhcHMpOyBnKyspCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9jbG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMKaW5kZXgg NzdkOTg5NGRhYi4uODgzMmVmYzdjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0vY2xvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cu YwpAQCAtMjc1LDcgKzI3NSw3IEBAIFRyYW5zYWN0aW9uSWRTZXRQYWdlU3RhdHVzKFRyYW5z YWN0aW9uSWQgeGlkLCBpbnQgbnN1YnhpZHMsCiAJCQkJCQkgICBib29sIGFsbF94YWN0X3Nh bWVfcGFnZSkKIHsKIAkvKiBDYW4ndCB1c2UgZ3JvdXAgdXBkYXRlIHdoZW4gUEdQUk9DIG92 ZXJmbG93cy4gKi8KLQlTdGF0aWNBc3NlcnRTdG10KFRIUkVTSE9MRF9TVUJUUkFOU19DTE9H X09QVCA8PSBQR1BST0NfTUFYX0NBQ0hFRF9TVUJYSURTLAorCVN0YXRpY0Fzc2VydERlY2wo VEhSRVNIT0xEX1NVQlRSQU5TX0NMT0dfT1BUIDw9IFBHUFJPQ19NQVhfQ0FDSEVEX1NVQlhJ RFMsCiAJCQkJCSAiZ3JvdXAgY2xvZyB0aHJlc2hvbGQgbGVzcyB0aGFuIFBHUFJPQyBjYWNo ZWQgc3VieGlkcyIpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2JhY2t1cC9i YXNlYmFja3VwLmMgYi9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cC5jCmluZGV4IDc0 ZmI1MjkzODAuLmYyOGJmMTBkZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2JhY2t1cC9i YXNlYmFja3VwLmMKKysrIGIvc3JjL2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXAuYwpAQCAt MzcwLDcgKzM3MCw3IEBAIHBlcmZvcm1fYmFzZV9iYWNrdXAoYmFzZWJhY2t1cF9vcHRpb25z ICpvcHQsIGJic2luayAqc2luaykKIAkJCWVsc2UKIAkJCXsKIAkJCQkvKiBQcm9wZXJseSB0 ZXJtaW5hdGUgdGhlIHRhcmZpbGUuICovCi0JCQkJU3RhdGljQXNzZXJ0U3RtdCgyICogVEFS X0JMT0NLX1NJWkUgPD0gQkxDS1NaLAorCQkJCVN0YXRpY0Fzc2VydERlY2woMiAqIFRBUl9C TE9DS19TSVpFIDw9IEJMQ0tTWiwKIAkJCQkJCQkJICJCTENLU1ogdG9vIHNtYWxsIGZvciAy IHRhciBibG9ja3MiKTsKIAkJCQltZW1zZXQoc2luay0+YmJzX2J1ZmZlciwgMCwgMiAqIFRB Ul9CTE9DS19TSVpFKTsKIAkJCQliYnNpbmtfYXJjaGl2ZV9jb250ZW50cyhzaW5rLCAyICog VEFSX0JMT0NLX1NJWkUpOwpAQCAtMTc0NCw3ICsxNzQ0LDcgQEAgX3RhcldyaXRlSGVhZGVy KGJic2luayAqc2luaywgY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmxpbmt0 YXJnZXQsCiAJCSAqIGxhcmdlIGVub3VnaCB0byBmaXQgYW4gZW50aXJlIHRhciBibG9jay4g V2UgZG91YmxlLWNoZWNrIGJ5IG1lYW5zCiAJCSAqIG9mIHRoZXNlIGFzc2VydGlvbnMuCiAJ CSAqLwotCQlTdGF0aWNBc3NlcnRTdG10KFRBUl9CTE9DS19TSVpFIDw9IEJMQ0tTWiwKKwkJ U3RhdGljQXNzZXJ0RGVjbChUQVJfQkxPQ0tfU0laRSA8PSBCTENLU1osCiAJCQkJCQkgIkJM Q0tTWiB0b28gc21hbGwgZm9yIHRhciBibG9jayIpOwogCQlBc3NlcnQoc2luay0+YmJzX2J1 ZmZlcl9sZW5ndGggPj0gVEFSX0JMT0NLX1NJWkUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYwppbmRleCAxZGFiMjc4N2I3Li5lYzI2YWU1MDZmIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTQ5Niw3ICs0OTYsNyBAQCBF eGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQs IGJvb2wgKmlzbnVsbCkKIAkJJiZDQVNFX0VFT1BfTEFTVAogCX07CiAKLQlTdGF0aWNBc3Nl cnRTdG10KEVFT1BfTEFTVCArIDEgPT0gbGVuZ3Rob2YoZGlzcGF0Y2hfdGFibGUpLAorCVN0 YXRpY0Fzc2VydERlY2woRUVPUF9MQVNUICsgMSA9PSBsZW5ndGhvZihkaXNwYXRjaF90YWJs ZSksCiAJCQkJCSAiZGlzcGF0Y2hfdGFibGUgb3V0IG9mIHdoYWNrIHdpdGggRXhwckV2YWxP cCIpOwogCiAJaWYgKHVubGlrZWx5KHN0YXRlID09IE5VTEwpKQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvbGlicHEvYXV0aC1zY3JhbS5jIGIvc3JjL2JhY2tlbmQvbGlicHEvYXV0aC1z Y3JhbS5jCmluZGV4IGVlN2Y1MjIxOGEuLmM5YmFiODVlODIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYworKysgYi9zcmMvYmFja2VuZC9saWJwcS9hdXRo LXNjcmFtLmMKQEAgLTE0NDMsNyArMTQ0Myw3IEBAIHNjcmFtX21vY2tfc2FsdChjb25zdCBj aGFyICp1c2VybmFtZSkKIAkgKiBub3QgbGFyZ2VyIHRoYW4gdGhlIFNIQTI1NiBkaWdlc3Qg bGVuZ3RoLiAgSWYgdGhlIHNhbHQgaXMgc21hbGxlciwgdGhlCiAJICogY2FsbGVyIHdpbGwg anVzdCBpZ25vcmUgdGhlIGV4dHJhIGRhdGEuKQogCSAqLwotCVN0YXRpY0Fzc2VydFN0bXQo UEdfU0hBMjU2X0RJR0VTVF9MRU5HVEggPj0gU0NSQU1fREVGQVVMVF9TQUxUX0xFTiwKKwlT dGF0aWNBc3NlcnREZWNsKFBHX1NIQTI1Nl9ESUdFU1RfTEVOR1RIID49IFNDUkFNX0RFRkFV TFRfU0FMVF9MRU4sCiAJCQkJCSAic2FsdCBsZW5ndGggZ3JlYXRlciB0aGFuIFNIQTI1NiBk aWdlc3QgbGVuZ3RoIik7CiAKIAljdHggPSBwZ19jcnlwdG9oYXNoX2NyZWF0ZShQR19TSEEy NTYpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9hdG9taWNzLmMgYi9zcmMvYmFj a2VuZC9wb3J0L2F0b21pY3MuYwppbmRleCBiYTI3NGJlZDkzLi5mZjQ3NzFhZTM3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2F0b21pY3MuYworKysgYi9zcmMvYmFja2VuZC9w b3J0L2F0b21pY3MuYwpAQCAtNTQsNyArNTQsNyBAQCBwZ19leHRlcm5fY29tcGlsZXJfYmFy cmllcih2b2lkKQogdm9pZAogcGdfYXRvbWljX2luaXRfZmxhZ19pbXBsKHZvbGF0aWxlIHBn X2F0b21pY19mbGFnICpwdHIpCiB7Ci0JU3RhdGljQXNzZXJ0U3RtdChzaXplb2YocHRyLT5z ZW1hKSA+PSBzaXplb2Yoc2xvY2tfdCksCisJU3RhdGljQXNzZXJ0RGVjbChzaXplb2YocHRy LT5zZW1hKSA+PSBzaXplb2Yoc2xvY2tfdCksCiAJCQkJCSAic2l6ZSBtaXNtYXRjaCBvZiBh dG9taWNfZmxhZyB2cyBzbG9ja190Iik7CiAKICNpZm5kZWYgSEFWRV9TUElOTE9DS1MKQEAg LTEwNSw3ICsxMDUsNyBAQCBwZ19hdG9taWNfdW5sb2NrZWRfdGVzdF9mbGFnX2ltcGwodm9s YXRpbGUgcGdfYXRvbWljX2ZsYWcgKnB0cikKIHZvaWQKIHBnX2F0b21pY19pbml0X3UzMl9p bXBsKHZvbGF0aWxlIHBnX2F0b21pY191aW50MzIgKnB0ciwgdWludDMyIHZhbF8pCiB7Ci0J U3RhdGljQXNzZXJ0U3RtdChzaXplb2YocHRyLT5zZW1hKSA+PSBzaXplb2Yoc2xvY2tfdCks CisJU3RhdGljQXNzZXJ0RGVjbChzaXplb2YocHRyLT5zZW1hKSA+PSBzaXplb2Yoc2xvY2tf dCksCiAJCQkJCSAic2l6ZSBtaXNtYXRjaCBvZiBhdG9taWNfdWludDMyIHZzIHNsb2NrX3Qi KTsKIAogCS8qCkBAIC0xODEsNyArMTgxLDcgQEAgcGdfYXRvbWljX2ZldGNoX2FkZF91MzJf aW1wbCh2b2xhdGlsZSBwZ19hdG9taWNfdWludDMyICpwdHIsIGludDMyIGFkZF8pCiB2b2lk CiBwZ19hdG9taWNfaW5pdF91NjRfaW1wbCh2b2xhdGlsZSBwZ19hdG9taWNfdWludDY0ICpw dHIsIHVpbnQ2NCB2YWxfKQogewotCVN0YXRpY0Fzc2VydFN0bXQoc2l6ZW9mKHB0ci0+c2Vt YSkgPj0gc2l6ZW9mKHNsb2NrX3QpLAorCVN0YXRpY0Fzc2VydERlY2woc2l6ZW9mKHB0ci0+ c2VtYSkgPj0gc2l6ZW9mKHNsb2NrX3QpLAogCQkJCQkgInNpemUgbWlzbWF0Y2ggb2YgYXRv bWljX3VpbnQ2NCB2cyBzbG9ja190Iik7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L251bWVyaWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmlj LmMKaW5kZXggN2YwZTkzYWE4MC4uODEzZTlkNzc3ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L251bWVyaWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVt ZXJpYy5jCkBAIC00MTc2LDcgKzQxNzYsOCBAQCBpbnQ2NF9kaXZfZmFzdF90b19udW1lcmlj KGludDY0IHZhbDEsIGludCBsb2cxMHZhbDIpCiAJewogCQlzdGF0aWMgaW50CXBvdzEwW10g PSB7MSwgMTAsIDEwMCwgMTAwMH07CiAKLQkJU3RhdGljQXNzZXJ0U3RtdChsZW5ndGhvZihw b3cxMCkgPT0gREVDX0RJR0lUUywgIm1pc21hdGNoIHdpdGggREVDX0RJR0lUUyIpOworCQlT dGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKHBvdzEwKSA9PSBERUNfRElHSVRTLCAibWlzbWF0 Y2ggd2l0aCBERUNfRElHSVRTIik7CisKIAkJaWYgKHVubGlrZWx5KHBnX211bF9zNjRfb3Zl cmZsb3codmFsMSwgcG93MTBbREVDX0RJR0lUUyAtIG1dLCAmdmFsMSkpKQogCQl7CiAJCQkv KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9hc2V0LmMgYi9zcmMvYmFj a2VuZC91dGlscy9tbWdyL2FzZXQuYwppbmRleCBiNmE4YmJjZDU5Li5iNDVhMzRhYmNlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9tbWdyL2FzZXQuYwpAQCAtMzA2LDcgKzMwNiw3IEBAIEFsbG9jU2V0RnJl ZUluZGV4KFNpemUgc2l6ZSkKIAkJCQkJdHNpemU7CiAKIAkJLyogU3RhdGljYWxseSBhc3Nl cnQgdGhhdCB3ZSBvbmx5IGhhdmUgYSAxNi1iaXQgaW5wdXQgdmFsdWUuICovCi0JCVN0YXRp Y0Fzc2VydFN0bXQoQUxMT0NfQ0hVTktfTElNSVQgPCAoMSA8PCAxNiksCisJCVN0YXRpY0Fz c2VydERlY2woQUxMT0NfQ0hVTktfTElNSVQgPCAoMSA8PCAxNiksCiAJCQkJCQkgIkFMTE9D X0NIVU5LX0xJTUlUIG11c3QgYmUgbGVzcyB0aGFuIDY0a0IiKTsKIAogCQl0c2l6ZSA9IHNp emUgLSAxOwpAQCAtMzU4LDEwICszNTgsMTAgQEAgQWxsb2NTZXRDb250ZXh0Q3JlYXRlSW50 ZXJuYWwoTWVtb3J5Q29udGV4dCBwYXJlbnQsCiAJQWxsb2NCbG9jawlibG9jazsKIAogCS8q IGVuc3VyZSBNZW1vcnlDaHVuaydzIHNpemUgaXMgcHJvcGVybHkgbWF4YWxpZ25lZCAqLwot CVN0YXRpY0Fzc2VydFN0bXQoQUxMT0NfQ0hVTktIRFJTWiA9PSBNQVhBTElHTihBTExPQ19D SFVOS0hEUlNaKSwKKwlTdGF0aWNBc3NlcnREZWNsKEFMTE9DX0NIVU5LSERSU1ogPT0gTUFY QUxJR04oQUxMT0NfQ0hVTktIRFJTWiksCiAJCQkJCSAic2l6ZW9mKE1lbW9yeUNodW5rKSBp cyBub3QgbWF4YWxpZ25lZCIpOwogCS8qIGNoZWNrIHdlIGhhdmUgZW5vdWdoIHNwYWNlIHRv IHN0b3JlIHRoZSBmcmVlbGlzdCBsaW5rICovCi0JU3RhdGljQXNzZXJ0U3RtdChzaXplb2Yo QWxsb2NGcmVlTGlzdExpbmspIDw9ICgxIDw8IEFMTE9DX01JTkJJVFMpLAorCVN0YXRpY0Fz c2VydERlY2woc2l6ZW9mKEFsbG9jRnJlZUxpc3RMaW5rKSA8PSAoMSA8PCBBTExPQ19NSU5C SVRTKSwKIAkJCQkJICJzaXplb2YoQWxsb2NGcmVlTGlzdExpbmspIGxhcmdlciB0aGFuIG1p bmltdW0gYWxsb2NhdGlvbiBzaXplIik7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvbW1nci9nZW5lcmF0aW9uLmMgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL2dl bmVyYXRpb24uYwppbmRleCBiNDMyYTkyYmUzLi4xZjE3OTA1YjVhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9tbWdyL2dlbmVyYXRpb24uYwpAQCAtMTY3LDcgKzE2Nyw3IEBAIEdlbmVyYXRpb25D b250ZXh0Q3JlYXRlKE1lbW9yeUNvbnRleHQgcGFyZW50LAogCUdlbmVyYXRpb25CbG9jayAq YmxvY2s7CiAKIAkvKiBlbnN1cmUgTWVtb3J5Q2h1bmsncyBzaXplIGlzIHByb3Blcmx5IG1h eGFsaWduZWQgKi8KLQlTdGF0aWNBc3NlcnRTdG10KEdlbmVyYXRpb25fQ0hVTktIRFJTWiA9 PSBNQVhBTElHTihHZW5lcmF0aW9uX0NIVU5LSERSU1opLAorCVN0YXRpY0Fzc2VydERlY2wo R2VuZXJhdGlvbl9DSFVOS0hEUlNaID09IE1BWEFMSUdOKEdlbmVyYXRpb25fQ0hVTktIRFJT WiksCiAJCQkJCSAic2l6ZW9mKE1lbW9yeUNodW5rKSBpcyBub3QgbWF4YWxpZ25lZCIpOwog CiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbW1nci9zbGFiLmMKaW5kZXggNmRmMDgzOWI2YS4uYzJmOWJiNmFk MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9zbGFiLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbW1nci9zbGFiLmMKQEAgLTE1MSw3ICsxNTEsNyBAQCBTbGFiQ29u dGV4dENyZWF0ZShNZW1vcnlDb250ZXh0IHBhcmVudCwKIAlpbnQJCQlpOwogCiAJLyogZW5z dXJlIE1lbW9yeUNodW5rJ3Mgc2l6ZSBpcyBwcm9wZXJseSBtYXhhbGlnbmVkICovCi0JU3Rh dGljQXNzZXJ0U3RtdChTbGFiX0NIVU5LSERSU1ogPT0gTUFYQUxJR04oU2xhYl9DSFVOS0hE UlNaKSwKKwlTdGF0aWNBc3NlcnREZWNsKFNsYWJfQ0hVTktIRFJTWiA9PSBNQVhBTElHTihT bGFiX0NIVU5LSERSU1opLAogCQkJCQkgInNpemVvZihNZW1vcnlDaHVuaykgaXMgbm90IG1h eGFsaWduZWQiKTsKIAlBc3NlcnQoTUFYQUxJR04oY2h1bmtTaXplKSA8PSBNRU1PUllDSFVO S19NQVhfVkFMVUUpOwogCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2NoZWNrc3VtX2hlbHBl ci5jIGIvc3JjL2NvbW1vbi9jaGVja3N1bV9oZWxwZXIuYwppbmRleCA3NGQwY2YwYTJlLi44 OTQ4ZGY0ZGExIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL2NoZWNrc3VtX2hlbHBlci5jCisr KyBiL3NyYy9jb21tb24vY2hlY2tzdW1faGVscGVyLmMKQEAgLTE3NywxNSArMTc3LDE1IEBA IHBnX2NoZWNrc3VtX2ZpbmFsKHBnX2NoZWNrc3VtX2NvbnRleHQgKmNvbnRleHQsIHVpbnQ4 ICpvdXRwdXQpCiB7CiAJaW50CQkJcmV0dmFsID0gMDsKIAotCVN0YXRpY0Fzc2VydFN0bXQo c2l6ZW9mKHBnX2NyYzMyYykgPD0gUEdfQ0hFQ0tTVU1fTUFYX0xFTkdUSCwKKwlTdGF0aWNB c3NlcnREZWNsKHNpemVvZihwZ19jcmMzMmMpIDw9IFBHX0NIRUNLU1VNX01BWF9MRU5HVEgs CiAJCQkJCSAiQ1JDLTMyQyBkaWdlc3QgdG9vIGJpZyBmb3IgUEdfQ0hFQ0tTVU1fTUFYX0xF TkdUSCIpOwotCVN0YXRpY0Fzc2VydFN0bXQoUEdfU0hBMjI0X0RJR0VTVF9MRU5HVEggPD0g UEdfQ0hFQ0tTVU1fTUFYX0xFTkdUSCwKKwlTdGF0aWNBc3NlcnREZWNsKFBHX1NIQTIyNF9E SUdFU1RfTEVOR1RIIDw9IFBHX0NIRUNLU1VNX01BWF9MRU5HVEgsCiAJCQkJCSAiU0hBMjI0 IGRpZ2VzdCB0b28gYmlnIGZvciBQR19DSEVDS1NVTV9NQVhfTEVOR1RIIik7Ci0JU3RhdGlj QXNzZXJ0U3RtdChQR19TSEEyNTZfRElHRVNUX0xFTkdUSCA8PSBQR19DSEVDS1NVTV9NQVhf TEVOR1RILAorCVN0YXRpY0Fzc2VydERlY2woUEdfU0hBMjU2X0RJR0VTVF9MRU5HVEggPD0g UEdfQ0hFQ0tTVU1fTUFYX0xFTkdUSCwKIAkJCQkJICJTSEEyNTYgZGlnZXN0IHRvbyBiaWcg Zm9yIFBHX0NIRUNLU1VNX01BWF9MRU5HVEgiKTsKLQlTdGF0aWNBc3NlcnRTdG10KFBHX1NI QTM4NF9ESUdFU1RfTEVOR1RIIDw9IFBHX0NIRUNLU1VNX01BWF9MRU5HVEgsCisJU3RhdGlj QXNzZXJ0RGVjbChQR19TSEEzODRfRElHRVNUX0xFTkdUSCA8PSBQR19DSEVDS1NVTV9NQVhf TEVOR1RILAogCQkJCQkgIlNIQTM4NCBkaWdlc3QgdG9vIGJpZyBmb3IgUEdfQ0hFQ0tTVU1f TUFYX0xFTkdUSCIpOwotCVN0YXRpY0Fzc2VydFN0bXQoUEdfU0hBNTEyX0RJR0VTVF9MRU5H VEggPD0gUEdfQ0hFQ0tTVU1fTUFYX0xFTkdUSCwKKwlTdGF0aWNBc3NlcnREZWNsKFBHX1NI QTUxMl9ESUdFU1RfTEVOR1RIIDw9IFBHX0NIRUNLU1VNX01BWF9MRU5HVEgsCiAJCQkJCSAi U0hBNTEyIGRpZ2VzdCB0b28gYmlnIGZvciBQR19DSEVDS1NVTV9NQVhfTEVOR1RIIik7CiAK IAlzd2l0Y2ggKGNvbnRleHQtPnR5cGUpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t b24vaW50MTI4LmggYi9zcmMvaW5jbHVkZS9jb21tb24vaW50MTI4LmgKaW5kZXggOGYwMzVj ZjRjYi4uNGIxN2FhOTY4OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbW9uL2ludDEy OC5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9pbnQxMjguaApAQCAtMTc3LDcgKzE3Nyw3 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZAogaW50MTI4X2FkZF9pbnQ2NF9tdWxfaW50NjQoSU5U MTI4ICppMTI4LCBpbnQ2NCB4LCBpbnQ2NCB5KQogewogCS8qIElOVDY0X0FVMzIgbXVzdCB1 c2UgYXJpdGhtZXRpYyByaWdodCBzaGlmdCAqLwotCVN0YXRpY0Fzc2VydFN0bXQoKChpbnQ2 NCkgLTEgPj4gMSkgPT0gKGludDY0KSAtMSwKKwlTdGF0aWNBc3NlcnREZWNsKCgoaW50NjQp IC0xID4+IDEpID09IChpbnQ2NCkgLTEsCiAJCQkJCSAiYXJpdGhtZXRpYyByaWdodCBzaGlm dCBpcyBuZWVkZWQiKTsKIAogCS8qLS0tLS0tLS0tLQotLSAKMi4zOC4xCgo= --------------JZfRCVI3OnzgMPUZJ9nYlGRO--