Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x3slE-006jQV-0Y for pgsql-hackers@arkaria.postgresql.org; Tue, 08 Sep 2026 10:09:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1x3slD-006HRV-05 for pgsql-hackers@arkaria.postgresql.org; Tue, 08 Sep 2026 10:09:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x3slC-006HRN-04 for pgsql-hackers@lists.postgresql.org; Tue, 08 Sep 2026 10:09:02 +0000 Received: from fout-a5-smtp.messagingengine.com ([103.168.172.148]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1x3sl8-00000003YfD-2U0J for pgsql-hackers@postgresql.org; Tue, 08 Sep 2026 10:09:01 +0000 Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.phl.internal (Postfix) with ESMTP id 9E37DEC008C for ; Tue, 8 Sep 2026 06:08:55 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Tue, 08 Sep 2026 06:08:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm3; t=1788862135; x=1788948535; bh=mnWCnj8G6AVx4PrPQOkYNwyBTmizseuF 1XrZ6aJ2x4Q=; b=Rdo0D54iDKtnqplmwwP5PtLzIDODI1RQUcLZp7ElSlXq6WuS NsYlhhUr0PIsTDMt8VfivWUQNA54X/hL/eiHzKAi4CwSpQQhn9FJU59DhcPOIRFu SgKCnRq6myXDNnXwzypqjEIxOYDLh43UObBKVF596CDARakQICoWZbrG/WWi683C szIS6xD7sI92Zv+jKmgGuh011wB7am+Xzrn/Pm24+y8OdUVaD72BMkdNyuAFjGHz 2q3CzCEqpNhnTjqZacgmG6VYYaeRq7xhoJEk6xFYkcfHUc1uRFwag7AeyL1gI/zu bper0IFJGYmfqJewypS5mTJGn3FhZAegFWELBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788862135; x= 1788948535; bh=mnWCnj8G6AVx4PrPQOkYNwyBTmizseuF1XrZ6aJ2x4Q=; b=l wbTEUVORfXKKpywa6hJ7ioBLk0PvgQIaIGffc1XAC1gD0gmkf6cgulupoeMAfHwM Ld1cHhio59RUFYIYGOaXYkmLbcIqYsz7KBDE6S4NDVtsLEocleNzSiRoi08XDN2w /eSRabLOrg1TOfctvSV34NGTgT+h0xHw+hE1f7XZftWTcAP/6se8z0Pw6zddnpmx vmXSAE2VnldJ3rGI7kmUMAFhKm9VGmYrurpuaXQKeNYkgkj+U2fT4HCGgvfT15Pf RNvy9nAZTiYB+qUSJ5urUqGv5RsMm5aBHBOdbakWw7TG3lEeTDICEU6wMTA+NF2i h+ugPbMaRchq+GMuxUq0w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTE5n8eVydayZaRcKLPJjTZWecs8MNqrVuxdrefEYLXeUhjgvrEld5Bhe3X92iGdhG ErM5TH0CANSxH1r1+szqShswNVpa4glKgzgc2Bys1I44BjxfLxDMLTqsCbtH+tZf6NuM6v PONuXCAH9qViyxMvduCniQaUH52LbwMo26LnbauxThfg5JplmV0DBhSxQ5KiBYSpmMcmm0 +lcYCBQyMJ2567bc0BaDk/GdM0TYAT4p9aAOztnpwTX91P27xyEDGd6MJY47QhQshZeCtt TwvpN54qnJ/xuwZB/kSTV79WQ+ooQXTugQa6AdQ8bg6Y9mVAQDcietNQWUNCaU3jpBkLGj 88TVJ3wRnxxAiL3X5LzkuxgrJsPrUW80x12h80cq/huvSA/W3AfQF2gz392FJq+kX9GP0l BNjaejdg2Q6oFH6ZGLArQOI0ZwoEyQGojvAH3fwUEdTNckSkdmTOCdgUDJLYtue6IokTSn LN2snulza0/pGGZHB5N5fLmLypfLvq6Iuwt1HpBUo9DWmWz4ZhVmH1GFaCfm9xEus8lyyp 04InNH21wECCmlBDmQsap1QyiwEt6zEJ/W2GILMwB7EI1NSz9jslms3R6HEbxyZvJhu3Rp rz+G9gN9sqdyYaOcijgSvBN5i6sc227D5M+2mN6YryJ5UdxLpMk7Yxe9KIkg X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 8 Sep 2026 06:08:54 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------fFLlfQM5VHfgxalp2PED2SxX" Message-ID: <94a128da-bf3e-46bd-9e2d-609573c484da@eisentraut.org> Date: Tue, 8 Sep 2026 12:08:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Peter Eisentraut Subject: Use C11 alignas instead of palloc/malloc for alignment 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. --------------fFLlfQM5VHfgxalp2PED2SxX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit There are a number of places where palloc()/malloc()/etc. was used solely to obtain an aligned buffer. We can do these much simpler by using alignas with a local variable instead. See attached patch. One of these revealed a small problem with how pgindent handles alignas (it doesn't know about it and it might or might not work well depending on context), so I added a workaround into pgindent to fix that. (Or we could try to reshuffle that code to avoid the problem.) --------------fFLlfQM5VHfgxalp2PED2SxX Content-Type: text/plain; charset=UTF-8; name="0001-Use-C11-alignas-instead-of-palloc-malloc-for-alignme.patch" Content-Disposition: attachment; filename*0="0001-Use-C11-alignas-instead-of-palloc-malloc-for-alignme.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5ZTVjNWQ2YTY2MDc5MWFhYWIwNmJhYjEwMjcyMjYwZGExMDlkZmI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCA4IFNlcCAyMDI2IDExOjQyOjI0ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxLzJdIFVzZSBDMTEgYWxpZ25hcyBpbnN0ZWFkIG9mIHBhbGxvYy9tYWxsb2Mg Zm9yIGFsaWdubWVudAoKUmVwbGFjZSBzZXZlcmFsIGNhc2VzIHdoZXJlIHBhbGxvYygpL21h bGxvYygpL2V0Yy4gd2FzIHVzZWQgc29sZWx5IHRvCm9idGFpbiBhbiBhbGlnbmVkIGJ1ZmZl ci4gIFVzZSBhbGlnbmFzIHdpdGggYSBsb2NhbCB2YXJpYWJsZSBpbnN0ZWFkLgoKVGhlIHBy ZXZpb3VzIGFsaWdubWVudCBndWFyYW50ZWVzIGFyZSBjYXJyaWVkIG92ZXIuICBwYWxsb2Mt YmFzZWQKYWxsb2NhdGlvbnMgYXJlIHJlcGxhY2VkIGJ5IGFsaWduYXMoTUFYSU1VTV9BTElH Tk9GKS4gIFRoZW9yZXRpY2FsbHksCm1hbGxvYy1iYXNlZCBhbGxvY2F0aW9ucyBzaG91bGQg YmUgcmVwbGFjZWQgYnkgYWxpZ25hcyhtYXhfYWxpZ25fdCksCmJ1dCBNU1ZDIGRvZXNuJ3Qg cHJvdmlkZSBtYXhfYWxpZ25fdCwgYW5kIHNvIHdlIHVzZSBNQVhJTVVNX0FMSUdOT0YKaGVy ZSBhcyB3ZWxsLiAgVGhleSBzaG91bGQgYmUgdGhlIHNhbWUgaW4gcHJhY3RpY2UuCgpUaGUg YWxsb2NhdGlvbnMgaW4gSW5pdFdhbFJlY292ZXJ5KCkgYXJlIG5vdCBjb252ZXJ0ZWQsIGJl Y2F1c2UgdGhlCmNvbW1lbnQgc2F5cyBpdCBpcyBhbHNvIHRoaXMgd2F5IHRvIGF2b2lkIHdh c3Rpbmcgc3RvcmFnZS4gIFRoZQpjb21tZW50IGluIFhMb2dSZWFkZXJBbGxvY2F0ZSgpLCBv biB0aGUgb3RoZXIgaGFuZCwgd2FzIHByb2JhYmx5CmNvcGllZCBmcm9tIEluaXRXYWxSZWNv dmVyeSgpLCBidXQgdGhlIHBhcnQgb2YgdGhlIGNvbW1lbnQgYWJvdXQKd2FzdGluZyBzdG9y YWdlIGRvZXMgbm90IG1ha2Ugc2Vuc2UgaW4gdGhhdCBjb250ZXh0LCBzbyBpdCBpcwpjb252 ZXJ0ZWQuCgpGSVhNRTogaW5kZW50IGluIHhsb2dyZWFkZXIuaAotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2dpbnNlcnQuYyAgIHwgMjggKysrKysrKystLS0tLS0tLS0t LS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWFkZXIuYyAgIHwgMTcg LS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVy eS5jIHwgIDMgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZV94bG9nLmMgICAg ICB8ICA5ICsrKy0tLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvY29weWRpci5jICAg ICAgICB8IDEyICsrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBs LmMgICAgICAgIHwgMTAgKysrKy0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2Uvc21nci9tZC5j ICAgICAgICAgICAgIHwgIDQgKy0tLQogc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdh bC5jICAgICAgICAgfCAgNyArKy0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVhZGVy LmggICAgICAgICAgIHwgIDUgKystLQogOSBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25z KCspLCA2OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9naW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9n aW5zZXJ0LmMKaW5kZXggYzlhZmY5NDRhMmUuLjcwY2JlOWQ3MDliIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9naW5zZXJ0LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZ2luc2VydC5jCkBAIC0xMDUsMTcgKzEwNSw2IEBAIHN0 YXRpYyB1aW50NjQgbWFpbnJkYXRhX2xlbjsJLyogdG90YWwgIyBvZiBieXRlcyBpbiBjaGFp biAqLwogLyogZmxhZ3MgZm9yIHRoZSBpbi1wcm9ncmVzcyBpbnNlcnRpb24gKi8KIHN0YXRp YyB1aW50OCBjdXJpbnNlcnRfZmxhZ3MgPSAwOwogCi0vKgotICogVGhlc2UgYXJlIHVzZWQg dG8gaG9sZCB0aGUgcmVjb3JkIGhlYWRlciB3aGlsZSBjb25zdHJ1Y3RpbmcgYSByZWNvcmQu Ci0gKiAnaGRyX3NjcmF0Y2gnIGlzIG5vdCBhIHBsYWluIHZhcmlhYmxlLCBidXQgaXMgcGFs bG9jJ2QgYXQgaW5pdGlhbGl6YXRpb24sCi0gKiBiZWNhdXNlIHdlIHdhbnQgaXQgdG8gYmUg TUFYQUxJR05lZCBhbmQgcGFkZGluZyBieXRlcyB6ZXJvZWQuCi0gKgotICogRm9yIHNpbXBs aWNpdHksIGl0J3MgYWxsb2NhdGVkIGxhcmdlIGVub3VnaCB0byBob2xkIHRoZSBoZWFkZXJz IGZvciBhbnkKLSAqIFdBTCByZWNvcmQuCi0gKi8KLXN0YXRpYyBYTG9nUmVjRGF0YSBoZHJf cmR0Owotc3RhdGljIGNoYXIgKmhkcl9zY3JhdGNoID0gTlVMTDsKLQogI2RlZmluZSBTaXpl T2ZYbG9nT3JpZ2luCShzaXplb2YoUmVwbE9yaWdpbklkKSArIHNpemVvZihjaGFyKSkKICNk ZWZpbmUgU2l6ZU9mWExvZ1RyYW5zYWN0aW9uSWQJKHNpemVvZihUcmFuc2FjdGlvbklkKSAr IHNpemVvZihjaGFyKSkKIApAQCAtNjIyLDYgKzYxMSwxNiBAQCBYTG9nUmVjb3JkQXNzZW1i bGUoUm1ncklkIHJtaWQsIHVpbnQ4IGluZm8sCiAJCQkJICAgWExvZ1JlY1B0ciAqZnB3X2xz biwgaW50ICpudW1fZnBpLCB1aW50NjQgKmZwaV9ieXRlcywKIAkJCQkgICBib29sICp0b3B4 aWRfaW5jbHVkZWQpCiB7CisJLyoKKwkgKiBUaGVzZSBhcmUgdXNlZCB0byBob2xkIHRoZSBy ZWNvcmQgaGVhZGVyIHdoaWxlIGNvbnN0cnVjdGluZyBhIHJlY29yZC4KKwkgKiAnaGRyX3Nj cmF0Y2gnIG11c3QgYmUgTUFYQUxJR05lZCBhbmQgcGFkZGluZyBieXRlcyB6ZXJvZWQuCisJ ICoKKwkgKiBGb3Igc2ltcGxpY2l0eSwgaXQncyBhbGxvY2F0ZWQgbGFyZ2UgZW5vdWdoIHRv IGhvbGQgdGhlIGhlYWRlcnMgZm9yIGFueQorCSAqIFdBTCByZWNvcmQuCisJICovCisJc3Rh dGljIFhMb2dSZWNEYXRhIGhkcl9yZHQ7CisJc3RhdGljIGFsaWduYXMoTUFYSU1VTV9BTElH Tk9GKSBjaGFyIGhkcl9zY3JhdGNoW0hFQURFUl9TQ1JBVENIX1NJWkVdOworCiAJWExvZ1Jl Y0RhdGEgKnJkdDsKIAl1aW50NjQJCXRvdGFsX2xlbiA9IDA7CiAJaW50CQkJYmxvY2tfaWQ7 CkBAIC0xNDMwLDExICsxNDI5LDQgQEAgSW5pdFhMb2dJbnNlcnQodm9pZCkKIAkJCQkJCQkJ CXNpemVvZihYTG9nUmVjRGF0YSkgKiBYTFJfTk9STUFMX1JEQVRBUyk7CiAJCW1heF9yZGF0 YXMgPSBYTFJfTk9STUFMX1JEQVRBUzsKIAl9Ci0KLQkvKgotCSAqIEFsbG9jYXRlIGEgYnVm ZmVyIHRvIGhvbGQgdGhlIGhlYWRlciBpbmZvcm1hdGlvbiBmb3IgYSBXQUwgcmVjb3JkLgot CSAqLwotCWlmIChoZHJfc2NyYXRjaCA9PSBOVUxMKQotCQloZHJfc2NyYXRjaCA9IE1lbW9y eUNvbnRleHRBbGxvY1plcm8oeGxvZ2luc2VydF9jeHQsCi0JCQkJCQkJCQkJCSBIRUFERVJf U0NSQVRDSF9TSVpFKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3hsb2dyZWFkZXIuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWFk ZXIuYwppbmRleCA3ZGI3YzI3M2IwYy4uM2NkODZkZWRjMjUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWFkZXIuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVyLmMKQEAgLTExOSwyMSArMTE5LDYgQEAgWExvZ1Jl YWRlckFsbG9jYXRlKGludCB3YWxfc2VnbWVudF9zaXplLCBjb25zdCBjaGFyICp3YWxkaXIs CiAJLyogaW5pdGlhbGl6ZSBjYWxsZXItcHJvdmlkZWQgc3VwcG9ydCBmdW5jdGlvbnMgKi8K IAlzdGF0ZS0+cm91dGluZSA9ICpyb3V0aW5lOwogCi0JLyoKLQkgKiBQZXJtYW5lbnRseSBh bGxvY2F0ZSByZWFkQnVmLiAgV2UgZG8gaXQgdGhpcyB3YXksIHJhdGhlciB0aGFuIGp1c3QK LQkgKiBtYWtpbmcgYSBzdGF0aWMgYXJyYXksIGZvciB0d28gcmVhc29uczogKDEpIG5vIG5l ZWQgdG8gd2FzdGUgdGhlCi0JICogc3RvcmFnZSBpbiBtb3N0IGluc3RhbnRpYXRpb25zIG9m IHRoZSBiYWNrZW5kOyAoMikgYSBzdGF0aWMgY2hhciBhcnJheQotCSAqIGlzbid0IGd1YXJh bnRlZWQgdG8gaGF2ZSBhbnkgcGFydGljdWxhciBhbGlnbm1lbnQsIHdoZXJlYXMKLQkgKiBw YWxsb2NfZXh0ZW5kZWQoKSB3aWxsIHByb3ZpZGUgTUFYQUxJR04nZCBzdG9yYWdlLgotCSAq LwotCXN0YXRlLT5yZWFkQnVmID0gKGNoYXIgKikgcGFsbG9jX2V4dGVuZGVkKFhMT0dfQkxD S1NaLAotCQkJCQkJCQkJCQkgIE1DWFRfQUxMT0NfTk9fT09NKTsKLQlpZiAoIXN0YXRlLT5y ZWFkQnVmKQotCXsKLQkJcGZyZWUoc3RhdGUpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0KIAkv KiBJbml0aWFsaXplIHNlZ21lbnQgaW5mby4gKi8KIAlXQUxPcGVuU2VnbWVudEluaXQoJnN0 YXRlLT5zZWcsICZzdGF0ZS0+c2VnY3h0LCB3YWxfc2VnbWVudF9zaXplLAogCQkJCQkgICB3 YWxkaXIpOwpAQCAtMTQ1LDcgKzEzMCw2IEBAIFhMb2dSZWFkZXJBbGxvY2F0ZShpbnQgd2Fs X3NlZ21lbnRfc2l6ZSwgY29uc3QgY2hhciAqd2FsZGlyLAogCQkJCQkJCQkJCSAgTUNYVF9B TExPQ19OT19PT00pOwogCWlmICghc3RhdGUtPmVycm9ybXNnX2J1ZikKIAl7Ci0JCXBmcmVl KHN0YXRlLT5yZWFkQnVmKTsKIAkJcGZyZWUoc3RhdGUpOwogCQlyZXR1cm4gTlVMTDsKIAl9 CkBAIC0xNzEsNyArMTU1LDYgQEAgWExvZ1JlYWRlckZyZWUoWExvZ1JlYWRlclN0YXRlICpz dGF0ZSkKIAlwZnJlZShzdGF0ZS0+ZXJyb3Jtc2dfYnVmKTsKIAlpZiAoc3RhdGUtPnJlYWRS ZWNvcmRCdWYpCiAJCXBmcmVlKHN0YXRlLT5yZWFkUmVjb3JkQnVmKTsKLQlwZnJlZShzdGF0 ZS0+cmVhZEJ1Zik7CiAJcGZyZWUoc3RhdGUpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCmluZGV4IGFjYWM5N2U4OWQzLi5jN2IzYWE3N2Vm ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5 LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKQEAg LTUzNSw3ICs1MzUsOCBAQCBJbml0V2FsUmVjb3ZlcnkoQ29udHJvbEZpbGVEYXRhICpDb250 cm9sRmlsZSwgYm9vbCAqd2FzU2h1dGRvd25fcHRyLAogCSAqIGl0IHRoaXMgd2F5LCByYXRo ZXIgdGhhbiBqdXN0IG1ha2luZyBzdGF0aWMgYXJyYXlzLCBmb3IgdHdvIHJlYXNvbnM6CiAJ ICogKDEpIG5vIG5lZWQgdG8gd2FzdGUgdGhlIHN0b3JhZ2UgaW4gbW9zdCBpbnN0YW50aWF0 aW9ucyBvZiB0aGUgYmFja2VuZDsKIAkgKiAoMikgYSBzdGF0aWMgY2hhciBhcnJheSBpc24n dCBndWFyYW50ZWVkIHRvIGhhdmUgYW55IHBhcnRpY3VsYXIKLQkgKiBhbGlnbm1lbnQsIHdo ZXJlYXMgcGFsbG9jKCkgd2lsbCBwcm92aWRlIE1BWEFMSUdOJ2Qgc3RvcmFnZS4KKwkgKiBh bGlnbm1lbnQsIHdoZXJlYXMgcGFsbG9jKCkgd2lsbCBwcm92aWRlIE1BWEFMSUdOJ2Qgc3Rv cmFnZS4gKEFsdGhvdWdoCisJICogdGhlIGxhdHRlciBjb3VsZCBiZSBoYW5kbGVkIHdpdGgg YWxpZ25hcy4pCiAJICovCiAJcmVwbGF5X2ltYWdlX21hc2tlZCA9IChjaGFyICopIHBhbGxv YyhCTENLU1opOwogCXByaW1hcnlfaW1hZ2VfbWFza2VkID0gKGNoYXIgKikgcGFsbG9jKEJM Q0tTWik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZV94bG9n LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZV94bG9nLmMKaW5kZXggZmNiMzIz MGNmM2IuLjIxMmUzMjFkODA2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXF1ZW5jZV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VxdWVuY2VfeGxv Zy5jCkBAIC0yNiw3ICsyNiw4IEBAIHNlcV9yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCXVpbnQ4CQlpbmZvID0gWExvZ1JlY0dldEluZm8ocmVjb3JkKSAmIH5YTFJfSU5GT19N QVNLOwogCUJ1ZmZlcgkJYnVmZmVyOwogCVBhZ2UJCXBhZ2U7Ci0JUGFnZQkJbG9jYWxwYWdl OworCWFsaWduYXMoTUFYSU1VTV9BTElHTk9GKSBjaGFyIGxvY2FscGFnZV9idWZbQkxDS1Na XTsKKwlQYWdlCQlsb2NhbHBhZ2UgPSAoUGFnZSkgbG9jYWxwYWdlX2J1ZjsKIAljaGFyCSAg ICppdGVtOwogCVNpemUJCWl0ZW1zejsKIAl4bF9zZXFfcmVjICp4bHJlYyA9ICh4bF9zZXFf cmVjICopIFhMb2dSZWNHZXREYXRhKHJlY29yZCk7CkBAIC00NCwxMCArNDUsOCBAQCBzZXFf cmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKiBpcyBleGFtaW5pbmcgdGhlIHBh Z2UgY29uY3VycmVudGx5OyBzbyB3ZSBtdXN0bid0IHRyYW5zaWVudGx5IHRyYXNoIHRoZQog CSAqIGJ1ZmZlci4gIFRoZSBzb2x1dGlvbiBpcyB0byBidWlsZCB0aGUgY29ycmVjdCBuZXcg cGFnZSBjb250ZW50cyBpbgogCSAqIGxvY2FsIHdvcmtzcGFjZSBhbmQgdGhlbiBtZW1jcHkg aW50byB0aGUgYnVmZmVyLiAgVGhlbiBvbmx5IGJ5dGVzIHRoYXQKLQkgKiBhcmUgc3VwcG9z ZWQgdG8gY2hhbmdlIHdpbGwgY2hhbmdlLCBldmVuIHRyYW5zaWVudGx5LiBXZSBtdXN0IHBh bGxvYwotCSAqIHRoZSBsb2NhbCBwYWdlIGZvciBhbGlnbm1lbnQgcmVhc29ucy4KKwkgKiBh cmUgc3VwcG9zZWQgdG8gY2hhbmdlIHdpbGwgY2hhbmdlLCBldmVuIHRyYW5zaWVudGx5Lgog CSAqLwotCWxvY2FscGFnZSA9IChQYWdlKSBwYWxsb2MoQnVmZmVyR2V0UGFnZVNpemUoYnVm ZmVyKSk7CiAKIAlQYWdlSW5pdChsb2NhbHBhZ2UsIEJ1ZmZlckdldFBhZ2VTaXplKGJ1ZmZl ciksIHNpemVvZihzZXF1ZW5jZV9tYWdpYykpOwogCXNtID0gKHNlcXVlbmNlX21hZ2ljICop IFBhZ2VHZXRTcGVjaWFsUG9pbnRlcihsb2NhbHBhZ2UpOwpAQCAtNjUsOCArNjQsNiBAQCBz ZXFfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAlNYXJrQnVmZmVyRGlydHkoYnVm ZmVyKTsKIAlYTG9nRmx1c2hCdWZmZXJGb3JSZWRvSWZJbml0KHJlY29yZCwgMCwgYnVmZmVy KTsKIAlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7Ci0KLQlwZnJlZShsb2NhbHBhZ2Up OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2NvcHlk aXIuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9jb3B5ZGlyLmMKaW5kZXggZWU0MmM3 OTZmNzcuLjNjNzg3OThlNDgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2Zp bGUvY29weWRpci5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9jb3B5ZGlyLmMK QEAgLTEzMywxNiArMTMzLDEzIEBAIGNvcHlkaXIoY29uc3QgY2hhciAqZnJvbWRpciwgY29u c3QgY2hhciAqdG9kaXIsIGJvb2wgcmVjdXJzZSkKIHZvaWQKIGNvcHlfZmlsZShjb25zdCBj aGFyICpmcm9tZmlsZSwgY29uc3QgY2hhciAqdG9maWxlKQogewotCWNoYXIJICAgKmJ1ZmZl cjsKKwlhbGlnbmFzKE1BWElNVU1fQUxJR05PRikgY2hhciBidWZmZXJbOCAqIEJMQ0tTWl07 CiAJaW50CQkJc3JjZmQ7CiAJaW50CQkJZHN0ZmQ7CiAJc3NpemVfdAkJbmJ5dGVzOwogCW9m Zl90CQlvZmZzZXQ7CiAJb2ZmX3QJCWZsdXNoX29mZnNldDsKIAotCS8qIFNpemUgb2YgY29w eSBidWZmZXIgKHJlYWQgYW5kIHdyaXRlIHJlcXVlc3RzKSAqLwotI2RlZmluZSBDT1BZX0JV Rl9TSVpFICg4ICogQkxDS1NaKQotCiAJLyoKIAkgKiBTaXplIG9mIGRhdGEgZmx1c2ggcmVx dWVzdHMuICBJdCBzZWVtcyBiZW5lZmljaWFsIG9uIG1vc3QgcGxhdGZvcm1zIHRvCiAJICog ZG8gdGhpcyBldmVyeSAxTUIgb3Igc28uICBCdXQgbWFjT1MsIGF0IGxlYXN0IHdpdGggZWFy bHkgcmVsZWFzZXMgb2YKQEAgLTE1NSw5ICsxNTIsNiBAQCBjb3B5X2ZpbGUoY29uc3QgY2hh ciAqZnJvbWZpbGUsIGNvbnN0IGNoYXIgKnRvZmlsZSkKICNkZWZpbmUgRkxVU0hfRElTVEFO Q0UgKDEwMjQgKiAxMDI0KQogI2VuZGlmCiAKLQkvKiBVc2UgcGFsbG9jIHRvIGVuc3VyZSB3 ZSBnZXQgYSBtYXhhbGlnbmVkIGJ1ZmZlciAqLwotCWJ1ZmZlciA9IHBhbGxvYyhDT1BZX0JV Rl9TSVpFKTsKLQogCS8qCiAJICogT3BlbiB0aGUgZmlsZXMKIAkgKi8KQEAgLTE5NCw3ICsx ODgsNyBAQCBjb3B5X2ZpbGUoY29uc3QgY2hhciAqZnJvbWZpbGUsIGNvbnN0IGNoYXIgKnRv ZmlsZSkKIAkJfQogCiAJCXBnc3RhdF9yZXBvcnRfd2FpdF9zdGFydChXQUlUX0VWRU5UX0NP UFlfRklMRV9SRUFEKTsKLQkJbmJ5dGVzID0gcmVhZChzcmNmZCwgYnVmZmVyLCBDT1BZX0JV Rl9TSVpFKTsKKwkJbmJ5dGVzID0gcmVhZChzcmNmZCwgYnVmZmVyLCBzaXplb2YgYnVmZmVy KTsKIAkJcGdzdGF0X3JlcG9ydF93YWl0X2VuZCgpOwogCQlpZiAobmJ5dGVzIDwgMCkKIAkJ CWVyZXBvcnQoRVJST1IsCkBAIC0yMjgsOCArMjIyLDYgQEAgY29weV9maWxlKGNvbnN0IGNo YXIgKmZyb21maWxlLCBjb25zdCBjaGFyICp0b2ZpbGUpCiAJCWVyZXBvcnQoRVJST1IsCiAJ CQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCiAJCQkJIGVycm1zZygiY291bGQgbm90 IGNsb3NlIGZpbGUgXCIlc1wiOiAlbSIsIGZyb21maWxlKSkpOwotCi0JcGZyZWUoYnVmZmVy KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9p bXBsLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5jCmluZGV4IGU4YzA3 ODA1ZjU5Li4yMzg2OWMxZTdhMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvZHNtX2ltcGwuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5j CkBAIC04NjcsMTMgKzg2NywxMSBAQCBkc21faW1wbF9tbWFwKGRzbV9vcCBvcCwgZHNtX2hh bmRsZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCWVsc2UKIAl7CiAJCS8qCi0JCSAq IEFsbG9jYXRlIGEgYnVmZmVyIGZ1bGwgb2YgemVyb3MuCi0JCSAqCi0JCSAqIE5vdGU6IHBh bGxvYyB6YnVmZmVyLCBpbnN0ZWFkIG9mIGp1c3QgdXNpbmcgYSBsb2NhbCBjaGFyIGFycmF5 LCB0bwotCQkgKiBlbnN1cmUgaXQgaXMgcmVhc29uYWJseSB3ZWxsLWFsaWduZWQ7IHRoaXMg bWF5IHNhdmUgYSBmZXcgY3ljbGVzCi0JCSAqIHRyYW5zZmVycmluZyBkYXRhIHRvIHRoZSBr ZXJuZWwuCisJCSAqIEEgYnVmZmVyIGZ1bGwgb2YgemVyb3MuICBhbGlnbmFzIGVuc3VyZXMg aXQgaXMgcmVhc29uYWJseQorCQkgKiB3ZWxsLWFsaWduZWQsIHdoaWNoIG1heSBzYXZlIGEg ZmV3IGN5Y2xlcyB0cmFuc2ZlcnJpbmcgaXQgdG8gdGhlCisJCSAqIGtlcm5lbC4KIAkJICov Ci0JCWNoYXIJICAgKnpidWZmZXIgPSAoY2hhciAqKSBwYWxsb2MwKFpCVUZGRVJfU0laRSk7 CisJCWFsaWduYXMoTUFYSU1VTV9BTElHTk9GKSBjb25zdCBjaGFyIHpidWZmZXJbWkJVRkZF Ul9TSVpFXSA9IHswfTsKIAkJU2l6ZQkJcmVtYWluaW5nID0gcmVxdWVzdF9zaXplOwogCQli b29sCQlzdWNjZXNzID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFn ZS9zbWdyL21kLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL3NtZ3IvbWQuYwppbmRleCA3ODBj ODhjMDYzMC4uNzg0YmUzZjk2ZWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv c21nci9tZC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uvc21nci9tZC5jCkBAIC0xODIz LDEzICsxODIzLDExIEBAIF9tZGZkX2dldHNlZyhTTWdyUmVsYXRpb24gcmVsbiwgRm9ya051 bWJlciBmb3JrbnVtLCBCbG9ja051bWJlciBibGtubywKIAkJCSAqLwogCQkJaWYgKG5ibG9j a3MgPCAoKEJsb2NrTnVtYmVyKSBSRUxTRUdfU0laRSkpCiAJCQl7Ci0JCQkJY2hhcgkgICAq emVyb2J1ZiA9IHBhbGxvY19hbGlnbmVkKEJMQ0tTWiwgUEdfSU9fQUxJR05fU0laRSwKLQkJ CQkJCQkJCQkJCQkgTUNYVF9BTExPQ19aRVJPKTsKKwkJCQlhbGlnbmFzKFBHX0lPX0FMSUdO X1NJWkUpIGNvbnN0IGNoYXIgemVyb2J1ZltCTENLU1pdID0gezB9OwogCiAJCQkJbWRleHRl bmQocmVsbiwgZm9ya251bSwKIAkJCQkJCSBuZXh0c2Vnbm8gKiAoKEJsb2NrTnVtYmVyKSBS RUxTRUdfU0laRSkgLSAxLAogCQkJCQkJIHplcm9idWYsIHNraXBGc3luYyk7Ci0JCQkJcGZy ZWUoemVyb2J1Zik7CiAJCQl9CiAJCQlmbGFncyA9IE9fQ1JFQVQ7CiAJCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyBiL3NyYy9iaW4vcGdfcmVz ZXR3YWwvcGdfcmVzZXR3YWwuYwppbmRleCA3OWYzMDg1ZDc2OS4uMDE1ZjY0NDkxNjkgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYworKysgYi9zcmMv YmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKQEAgLTYwMSw3ICs2MDEsNyBAQCByZWFk X2NvbnRyb2xmaWxlKHZvaWQpCiB7CiAJaW50CQkJZmQ7CiAJc3NpemVfdAkJbGVuOwotCWNo YXIJICAgKmJ1ZmZlcjsKKwlhbGlnbmFzKE1BWElNVU1fQUxJR05PRikgY2hhciBidWZmZXJb UEdfQ09OVFJPTF9GSUxFX1NJWkVdOwogCXBnX2NyYzMyYwljcmM7CiAKIAlpZiAoKGZkID0g b3BlbihYTE9HX0NPTlRST0xfRklMRSwgT19SRE9OTFkgfCBQR19CSU5BUlksIDApKSA8IDAp CkBAIC02MjEsMTAgKzYyMSw3IEBAIHJlYWRfY29udHJvbGZpbGUodm9pZCkKIAkJZXhpdCgx KTsKIAl9CiAKLQkvKiBVc2UgbWFsbG9jIHRvIGVuc3VyZSB3ZSBoYXZlIGEgbWF4YWxpZ25l ZCBidWZmZXIgKi8KLQlidWZmZXIgPSAoY2hhciAqKSBwZ19tYWxsb2MoUEdfQ09OVFJPTF9G SUxFX1NJWkUpOwotCi0JbGVuID0gcmVhZChmZCwgYnVmZmVyLCBQR19DT05UUk9MX0ZJTEVf U0laRSk7CisJbGVuID0gcmVhZChmZCwgYnVmZmVyLCBzaXplb2YgYnVmZmVyKTsKIAlpZiAo bGVuIDwgMCkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCByZWFkIGZpbGUgXCIlc1wiOiAlbSIs IFhMT0dfQ09OVFJPTF9GSUxFKTsKIAljbG9zZShmZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9hY2Nlc3MveGxvZ3JlYWRlci5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWFk ZXIuaAppbmRleCA0YTlhNjg3ZTg3OS4uYTI1NjM0NTgwMTggMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2FjY2Vzcy94bG9ncmVhZGVyLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hs b2dyZWFkZXIuaApAQCAtMjYwLDEwICsyNjAsOSBAQCBzdHJ1Y3QgWExvZ1JlYWRlclN0YXRl CiAJRGVjb2RlZFhMb2dSZWNvcmQgKmRlY29kZV9xdWV1ZV90YWlsOwkvKiBuZXdlc3QgZGVj b2RlZCByZWNvcmQgKi8KIAogCS8qCi0JICogQnVmZmVyIGZvciBjdXJyZW50bHkgcmVhZCBw YWdlIChYTE9HX0JMQ0tTWiBieXRlcywgdmFsaWQgdXAgdG8gYXQgbGVhc3QKLQkgKiByZWFk TGVuIGJ5dGVzKQorCSAqIEJ1ZmZlciBmb3IgY3VycmVudGx5IHJlYWQgcGFnZSAodmFsaWQg dXAgdG8gYXQgbGVhc3QgcmVhZExlbiBieXRlcykKIAkgKi8KLQljaGFyCSAgICpyZWFkQnVm OworCQkJCWFsaWduYXMoTUFYSU1VTV9BTElHTk9GKSBjaGFyIHJlYWRCdWZbWExPR19CTENL U1pdOwogCXVpbnQzMgkJcmVhZExlbjsKIAogCS8qIGxhc3QgcmVhZCBYTE9HIHBvc2l0aW9u IGZvciBkYXRhIGN1cnJlbnRseSBpbiByZWFkQnVmICovCi0tIAoyLjU1LjAKCg== --------------fFLlfQM5VHfgxalp2PED2SxX Content-Type: text/plain; charset=UTF-8; name="0002-pgindent-Fix-indentation-of-alignas-in-struct-member.patch" Content-Disposition: attachment; filename*0="0002-pgindent-Fix-indentation-of-alignas-in-struct-member.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5NDYyMjM5YzkwZGI0YWJiNjFiMmRjN2Y4YjQ4ZmZiZjhkZTZkOGRhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCA4IFNlcCAyMDI2IDExOjQyOjI0ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyLzJdIHBnaW5kZW50OiBGaXggaW5kZW50YXRpb24gb2YgYWxpZ25hcygpIGlu IHN0cnVjdCBtZW1iZXJzCgpwZ19ic2RfaW5kZW50IGRvZXNuJ3Qga25vdyBhYm91dCBhbGln bmFzKCkuICBBIHN0cnVjdCBtZW1iZXIgdXNpbmcKYWxpZ25hcygpIGVuZHMgdXAgYmVpbmcg dHJlYXRlZCBhcyB0aGUgdmFyaWFibGUgbmFtZSBvZiB0aGUgcHJlY2VkaW5nCm1lbWJlcidz IGRlY2xhcmF0aW9uIGFuZCBnZXRzIGluZGVudGVkIHRvIHRoZSBkZWNsYXJhdGlvbiBjb2x1 bW4uClRoaXMgb25seSBzaG93cyB1cCBmb3IgbWVtYmVycyB0aGF0IGFyZSBub3QgdGhlIGZp cnN0IG1lbWJlciBvZiB0aGUKc3RydWN0LgoKSGF2ZSBwZ2luZGVudCB0ZW1wb3JhcmlseSBk aXNndWlzZSBhbGlnbmFzKC4uLikgYXMgYSBwbGFpbiBpZGVudGlmaWVyCnRvIGF2b2lkIHRo YXQuCgpBbHNvIHJlaW5kZW50IHRoZSBvbmUgYWZmZWN0ZWQgcGxhY2UgaW4geGxvZ3JlYWRl ci5oLgotLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVhZGVyLmggfCAgMiArLQogc3Jj L3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50ICAgICB8IDEwICsrKysrKysrKysKIDIgZmlsZXMg Y2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVhZGVyLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv eGxvZ3JlYWRlci5oCmluZGV4IGEyNTYzNDU4MDE4Li42ZTI3YjMwZmIzNSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWFkZXIuaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MveGxvZ3JlYWRlci5oCkBAIC0yNjIsNyArMjYyLDcgQEAgc3RydWN0IFhMb2dSZWFk ZXJTdGF0ZQogCS8qCiAJICogQnVmZmVyIGZvciBjdXJyZW50bHkgcmVhZCBwYWdlICh2YWxp ZCB1cCB0byBhdCBsZWFzdCByZWFkTGVuIGJ5dGVzKQogCSAqLwotCQkJCWFsaWduYXMoTUFY SU1VTV9BTElHTk9GKSBjaGFyIHJlYWRCdWZbWExPR19CTENLU1pdOworCWFsaWduYXMoTUFY SU1VTV9BTElHTk9GKSBjaGFyIHJlYWRCdWZbWExPR19CTENLU1pdOwogCXVpbnQzMgkJcmVh ZExlbjsKIAogCS8qIGxhc3QgcmVhZCBYTE9HIHBvc2l0aW9uIGZvciBkYXRhIGN1cnJlbnRs eSBpbiByZWFkQnVmICovCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRl bnQgYi9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKaW5kZXggMDA0YjhmY2FiMDAuLmI4 ZTQyNTE1MTA0IDEwMDc1NQotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKKysr IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50CkBAIC0yNjMsNiArMjYzLDEzIEBAIHN1 YiBwcmVfaW5kZW50CiAJIyBQcm90ZWN0IHdyYXBwaW5nIGluIENBVEFMT0coKQogCSRzb3Vy Y2UgPX4gcyFeKENBVEFMT0dcKC4qKSQhLyokMSovIWdtOwogCisJIyBwZ19ic2RfaW5kZW50 IGRvZXNuJ3Qga25vdyBhYm91dCBhbGlnbmFzKCkuICBBIHN0cnVjdCBtZW1iZXIKKwkjIHVz aW5nIGFsaWduYXMoKSBlbmRzIHVwIGJlaW5nIHRyZWF0ZWQgYXMgdGhlIHZhcmlhYmxlIG5h bWUgb2YKKwkjIHRoZSBwcmVjZWRpbmcgbWVtYmVyJ3MgZGVjbGFyYXRpb24gYW5kIGdldHMg aW5kZW50ZWQgdG8gdGhlCisJIyBkZWNsYXJhdGlvbiBjb2x1bW4uICBEaXNndWlzZSBhbGln bmFzKC4uLikgYXMgYSBwbGFpbiBpZGVudGlmaWVyCisJIyB0byBhdm9pZCB0aGF0LgorCSRz b3VyY2UgPX4gcyFcYmFsaWduYXNcKChbXigpXG5dKilcKSFhbGlnbmFzXyR7MX1fIWc7CisK IAlyZXR1cm4gJHNvdXJjZTsKIH0KIApAQCAtMjcwLDYgKzI3Nyw5IEBAIHN1YiBwb3N0X2lu ZGVudAogewogCW15ICRzb3VyY2UgPSBzaGlmdDsKIAorCSMgUmVzdG9yZSBhbGlnbmFzKC4u LikKKwkkc291cmNlID1+IHMhXGJhbGlnbmFzXyguKj8pXyg/PVxzKSFhbGlnbmFzKCQxKSFn OworCiAJIyBSZXN0b3JlIENBVEFMT0cgbGluZXMKIAkkc291cmNlID1+IHMhXi9cKihDQVRB TE9HXCguKilcKi8kISQxIWdtOwogCi0tIAoyLjU1LjAKCg== --------------fFLlfQM5VHfgxalp2PED2SxX--