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 1wsLCC-000X9j-2m for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Aug 2026 14:05:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wsLCC-009UTN-18 for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Aug 2026 14:05:11 +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 1wsLCB-009UTB-2j for pgsql-hackers@lists.postgresql.org; Fri, 07 Aug 2026 14:05:11 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wsLC8-00000000lBq-10ma for pgsql-hackers@postgresql.org; Fri, 07 Aug 2026 14:05:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1786111506; bh=awuBYfBm5RyKZoFEvsx23A891yvSEFXNf5MgQVNsDy8=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=qIbzE1catZbtM8OEul/HcBTzsdOL6/tHbrueP8z9F9n6n5YY4c0atd9ddgeh5iLda 0qpropJuaVbIS+GBsvpAy89NqamGrtnOuSXWzZSHskGZxyBIK1P3gLE1uuMnJQCwDz l+X+WovuR8oxNL8vvHOSRt6kOPSfKKnaB0ZSTaBsHdwgXnxRBWe8otcZPB45efsiQt gi8w0i3U6LoEni55BsXDZumsjFmaxWnTW6t3VZnxX4KdvGbSUyG+G7/AsNDL55KFMK jBuJvPxQ+Yu7jfybbuBR/yRXC6NKF55fqFVmobMh4CPLWSfpy3s1uQckqx5KW1HWBM 4q7Z+Jht3813Q== Received: from [172.30.50.22] (debian11-template.l.postgrespro.ru [192.168.2.254]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: m.melnikov@postgrespro.ru) by mail.postgrespro.ru (Postfix/465) with ESMTPSA id 2C55461AF6; Fri, 07 Aug 2026 17:05:06 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------uXapIun4iAk0LimN0RncCyro" Message-ID: Date: Fri, 7 Aug 2026 17:05:05 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Init connection time grows quadratically To: Matthias van de Meent Cc: =?UTF-8?B?0J/QvtGC0LDQv9C+0LIg0JDQu9C10LrRgdCw0L3QtNGA?= , pgsql-hackers@postgresql.org References: <3bdba-68359800-d-249da480@139845401> <2ab4be-6847f380-11-1d048f40@125133490> <3b7e5e-684fdc80-f-48e15c80@193664207> <65d0e5b2-2a40-4b12-be04-0804912d2daf@postgrespro.ru> <08e7c338-e175-4474-be53-6538bb67d4b6@postgrespro.ru> Content-Language: en-US From: "Maksim.Melnikov" In-Reply-To: X-KSMG-AntiPhishing: NotDetected, bases: 2026/08/07 13:39:00 X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 3.0.0.9059, bases: 2026/08/07 13:24:00 #28658503 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 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. --------------uXapIun4iAk0LimN0RncCyro Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 7/17/26 11:54, Matthias van de Meent wrote: > On Thu, 11 Jun 2026 at 16:31, Maksim.Melnikov wrote: >> Patch with fixes was attached. Thanks for review. > You removed the pgxactoff field with its comment from PGPROC, but > haven't yet added a comment on PROC_HDR's pgxactoffs. Please add a > comment to the pgxactoffs array that describes its contents. A simple > adaptation of the comment removed with PGPROC's pgxactoff field should > be sufficient. > > The comments on PROC_HDR and PGPROC also reference the deleted > PGPROC->pgxactoff field, so that also must be adjusted; there may be > several other places, as I didn't do a full check on the codebase. > > Once the relevant comments are added and adjusted I think this is > ready for a committer. > > > Kind regards, > > Matthias van de Meent > Databricks (https://www.databricks.com) > > Sorry for the delay, was unavailable for several weeks. Thanks for review, patch was updated. Best regards, Maksim Melnikov --------------uXapIun4iAk0LimN0RncCyro Content-Type: text/x-patch; charset=UTF-8; name="v3-0001-This-patch-reduce-connection-init-close-time.patch" Content-Disposition: attachment; filename*0="v3-0001-This-patch-reduce-connection-init-close-time.patch" Content-Transfer-Encoding: base64 RnJvbSAxNDJiMjk2MTU0NzVhZWVjNzUwYjljYzkyYzZmNDFkZGI2ZDY4MDQxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYWtzaW0gTWVsbmlrb3YgPG0ubWVsbmlrb3ZAcG9z dGdyZXNwcm8ucnU+CkRhdGU6IFR1ZSwgMTggTm92IDIwMjUgMTc6MjA6MDkgKzAzMDAKU3Vi amVjdDogW1BBVENIIHYzXSBUaGlzIHBhdGNoIHJlZHVjZSBjb25uZWN0aW9uIGluaXQvY2xv c2UgdGltZS4KClByb2NBcnJheVJlbW92ZS9Qcm9jQXJyYXlBZGQgYXJlIGV4cGVuc2l2ZSBp biB0ZXJtcyBvZiBhY2Nlc3NpbmcgcGd4YWN0b2ZmCmZpZWxkIGluIFBHUFJPQywgYmVjYXVz ZSBpdHMgYXJlIHBsYWNlZCBvbiBkaWZmZXJlbnQgcGFnZXMgYW5kIGl0IHRoZQpyZWFzb24g b2YgcGFnZV9mYXVsdHMgb2NjdXJlbmNlLiBOb3cgb25lIG9mIHRoZSB1c2UgY2FzZSB3aXRo IHBneGFjdG9mZgppcyBpdGVyYXRpb24gd2l0aCBnYXBzIG92ZXIgUEdQUk9DcyBhbmQgcmVh ZC93cml0ZSBwZ3hhY3RvZmYsIFBHUFJPQwphbGxvY2F0ZSB+MUtCIGFuZCBpdCBxdWl0ZSBl bm91Z2ggdG8gaGF2ZSBwYWdlX2ZhdWx0cyBpbiBjYXNlIG9mIHN1Y2gKYWNjZXNzaW5nLgoK U28gd2UgcGxhY2VkIGFsbCBwZ3hhY3RvZmYgaW4gdGhlIHNlcGFyYXRlIGFycmF5IHBneGFj dG9mZnMgdG8gaGF2ZSBhZGphY2VudApwYWdlcyBmb3IgdGhlbSBhbGwuIEluZGV4ZXMgaW4g YWxsUHJvY3MgYWxpZ25lZCB3aXRoIHBneGFjdG9mZnMgYXJyYXksIHNvCnRoZSBOdGggZWxl bWVudCBpbiBwZ3hhY3RvZmZzIHJlZmVyIHRvIE50aCBQR1BST0MuCgpFdmVudHVhbGx5IGl0 IGhlbHBzIHRvIGF2b2lkIGV4dHJhIHBhZ2VfZmF1bHRzIGFuZCByZWR1Y2UgY29ubmVjdGlv bgppbml0L2Nsb3NlIHRpbWUuIFRoZSBtYWluIGJlbmVmaXQgaXMgc2VlbiBvbiBjb25maWd1 cmF0aW9ucyB3aXRob3V0IGh1Z2UKcGFnZXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vdmFyc3VwLmMgICAgICAgfCAxMCArKy0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv aW5kZXhjbWRzLmMgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFj dXVtLmMgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9sb2dpY2FsLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5j ICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmMgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMg ICAgICAgfCA1MyArKysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvc3RvcmFn ZS9sbWdyL3Byb2MuYyAgICAgICAgICAgfCAgNiArKy0KIHNyYy9pbmNsdWRlL3N0b3JhZ2Uv cHJvYy5oICAgICAgICAgICAgICAgIHwgMjIgKysrKysrKy0tLQogOSBmaWxlcyBjaGFuZ2Vk LCA2MSBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS92YXJzdXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3ZhcnN1cC5jCmluZGV4IGRjNWUzMmQ4NmYzLi4xYmJjMWJjZDY2NSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdmFyc3VwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vdmFyc3VwLmMKQEAgLTg1LDcgKzg1LDcgQEAgR2V0TmV3 VHJhbnNhY3Rpb25JZChib29sIGlzU3ViWGFjdCkKIAl7CiAJCUFzc2VydCghaXNTdWJYYWN0 KTsKIAkJTXlQcm9jLT54aWQgPSBCb290c3RyYXBUcmFuc2FjdGlvbklkOwotCQlQcm9jR2xv YmFsLT54aWRzW015UHJvYy0+cGd4YWN0b2ZmXSA9IEJvb3RzdHJhcFRyYW5zYWN0aW9uSWQ7 CisJCVByb2NHbG9iYWwtPnhpZHNbUHJvY0dldE15WGFjdE9mZigpXSA9IEJvb3RzdHJhcFRy YW5zYWN0aW9uSWQ7CiAJCXJldHVybiBGdWxsVHJhbnNhY3Rpb25JZEZyb21FcG9jaEFuZFhp ZCgwLCBCb290c3RyYXBUcmFuc2FjdGlvbklkKTsKIAl9CiAKQEAgLTI0NCwxOCArMjQ0LDE4 IEBAIEdldE5ld1RyYW5zYWN0aW9uSWQoYm9vbCBpc1N1YlhhY3QpCiAJICovCiAJaWYgKCFp c1N1YlhhY3QpCiAJewotCQlBc3NlcnQoUHJvY0dsb2JhbC0+c3VieGlkU3RhdGVzW015UHJv Yy0+cGd4YWN0b2ZmXS5jb3VudCA9PSAwKTsKLQkJQXNzZXJ0KCFQcm9jR2xvYmFsLT5zdWJ4 aWRTdGF0ZXNbTXlQcm9jLT5wZ3hhY3RvZmZdLm92ZXJmbG93ZWQpOworCQlBc3NlcnQoUHJv Y0dsb2JhbC0+c3VieGlkU3RhdGVzW1Byb2NHZXRNeVhhY3RPZmYoKV0uY291bnQgPT0gMCk7 CisJCUFzc2VydCghUHJvY0dsb2JhbC0+c3VieGlkU3RhdGVzW1Byb2NHZXRNeVhhY3RPZmYo KV0ub3ZlcmZsb3dlZCk7CiAJCUFzc2VydChNeVByb2MtPnN1YnhpZFN0YXR1cy5jb3VudCA9 PSAwKTsKIAkJQXNzZXJ0KCFNeVByb2MtPnN1YnhpZFN0YXR1cy5vdmVyZmxvd2VkKTsKIAog CQkvKiBMV0xvY2tSZWxlYXNlIGFjdHMgYXMgYmFycmllciAqLwogCQlNeVByb2MtPnhpZCA9 IHhpZDsKLQkJUHJvY0dsb2JhbC0+eGlkc1tNeVByb2MtPnBneGFjdG9mZl0gPSB4aWQ7CisJ CVByb2NHbG9iYWwtPnhpZHNbUHJvY0dldE15WGFjdE9mZigpXSA9IHhpZDsKIAl9CiAJZWxz ZQogCXsKLQkJWGlkQ2FjaGVTdGF0dXMgKnN1YnN0YXQgPSAmUHJvY0dsb2JhbC0+c3VieGlk U3RhdGVzW015UHJvYy0+cGd4YWN0b2ZmXTsKKwkJWGlkQ2FjaGVTdGF0dXMgKnN1YnN0YXQg PSAmUHJvY0dsb2JhbC0+c3VieGlkU3RhdGVzW1Byb2NHZXRNeVhhY3RPZmYoKV07CiAJCWlu dAkJCW54aWRzID0gTXlQcm9jLT5zdWJ4aWRTdGF0dXMuY291bnQ7CiAKIAkJQXNzZXJ0KHN1 YnN0YXQtPmNvdW50ID09IE15UHJvYy0+c3VieGlkU3RhdHVzLmNvdW50KTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggNzEzYmI1ZDEwZjEuLjA0NmMyOGExMGU3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtNDc3OSw2ICs0Nzc5LDYgQEAgc2V0X2lu ZGV4c2FmZV9wcm9jZmxhZ3Modm9pZCkKIAogCUxXTG9ja0FjcXVpcmUoUHJvY0FycmF5TG9j aywgTFdfRVhDTFVTSVZFKTsKIAlNeVByb2MtPnN0YXR1c0ZsYWdzIHw9IFBST0NfSU5fU0FG RV9JQzsKLQlQcm9jR2xvYmFsLT5zdGF0dXNGbGFnc1tNeVByb2MtPnBneGFjdG9mZl0gPSBN eVByb2MtPnN0YXR1c0ZsYWdzOworCVByb2NHbG9iYWwtPnN0YXR1c0ZsYWdzW1Byb2NHZXRN eVhhY3RPZmYoKV0gPSBNeVByb2MtPnN0YXR1c0ZsYWdzOwogCUxXTG9ja1JlbGVhc2UoUHJv Y0FycmF5TG9jayk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1 dW0uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCmluZGV4IDM4NTM5YTZmZDNk Li5mYzQ5YjhlMTRkNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKQEAgLTIwNTksNyArMjA1 OSw3IEBAIHZhY3V1bV9yZWwoT2lkIHJlbGlkLCBSYW5nZVZhciAqcmVsYXRpb24sIFZhY3V1 bVBhcmFtcyBwYXJhbXMsCiAJCU15UHJvYy0+c3RhdHVzRmxhZ3MgfD0gUFJPQ19JTl9WQUNV VU07CiAJCWlmIChwYXJhbXMuaXNfd3JhcGFyb3VuZCkKIAkJCU15UHJvYy0+c3RhdHVzRmxh Z3MgfD0gUFJPQ19WQUNVVU1fRk9SX1dSQVBBUk9VTkQ7Ci0JCVByb2NHbG9iYWwtPnN0YXR1 c0ZsYWdzW015UHJvYy0+cGd4YWN0b2ZmXSA9IE15UHJvYy0+c3RhdHVzRmxhZ3M7CisJCVBy b2NHbG9iYWwtPnN0YXR1c0ZsYWdzW1Byb2NHZXRNeVhhY3RPZmYoKV0gPSBNeVByb2MtPnN0 YXR1c0ZsYWdzOwogCQlMV0xvY2tSZWxlYXNlKFByb2NBcnJheUxvY2spOwogCX0KIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYwppbmRleCAzNTQxZmM3 OTNlNC4uYzJjOTZhNzBjOTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvbG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvbG9naWNhbC5jCkBAIC0xODgsNyArMTg4LDcgQEAgU3RhcnR1cERlY29kaW5nQ29udGV4 dChMaXN0ICpvdXRwdXRfcGx1Z2luX29wdGlvbnMsCiAJewogCQlMV0xvY2tBY3F1aXJlKFBy b2NBcnJheUxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJCU15UHJvYy0+c3RhdHVzRmxhZ3MgfD0g UFJPQ19JTl9MT0dJQ0FMX0RFQ09ESU5HOwotCQlQcm9jR2xvYmFsLT5zdGF0dXNGbGFnc1tN eVByb2MtPnBneGFjdG9mZl0gPSBNeVByb2MtPnN0YXR1c0ZsYWdzOworCQlQcm9jR2xvYmFs LT5zdGF0dXNGbGFnc1tQcm9jR2V0TXlYYWN0T2ZmKCldID0gTXlQcm9jLT5zdGF0dXNGbGFn czsKIAkJTFdMb2NrUmVsZWFzZShQcm9jQXJyYXlMb2NrKTsKIAl9CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Nsb3QuYwppbmRleCBjN2FiODJhMjhlMS4uZGE0ZTAxZjBjYWYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9zbG90LmMKQEAgLTgzMiw3ICs4MzIsNyBAQCBSZXBsaWNhdGlvblNsb3RSZWxl YXNlKHZvaWQpCiAJLyogbWlnaHQgbm90IGhhdmUgYmVlbiBzZXQgd2hlbiB3ZSd2ZSBiZWVu IGEgcGxhaW4gc2xvdCAqLwogCUxXTG9ja0FjcXVpcmUoUHJvY0FycmF5TG9jaywgTFdfRVhD TFVTSVZFKTsKIAlNeVByb2MtPnN0YXR1c0ZsYWdzICY9IH5QUk9DX0lOX0xPR0lDQUxfREVD T0RJTkc7Ci0JUHJvY0dsb2JhbC0+c3RhdHVzRmxhZ3NbTXlQcm9jLT5wZ3hhY3RvZmZdID0g TXlQcm9jLT5zdGF0dXNGbGFnczsKKwlQcm9jR2xvYmFsLT5zdGF0dXNGbGFnc1tQcm9jR2V0 TXlYYWN0T2ZmKCldID0gTXlQcm9jLT5zdGF0dXNGbGFnczsKIAlMV0xvY2tSZWxlYXNlKFBy b2NBcnJheUxvY2spOwogCiAJaWYgKGFtX3dhbHNlbmRlcikKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2Fsc2VuZGVyLmMKaW5kZXggMzVlYmM3ZTYxYzguLjZiODRkZTFiY2ZiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwpAQCAtMzU4LDcgKzM1OCw3IEBAIEluaXRX YWxTZW5kZXIodm9pZCkKIAkJQXNzZXJ0KE15UHJvYy0+eG1pbiA9PSBJbnZhbGlkVHJhbnNh Y3Rpb25JZCk7CiAJCUxXTG9ja0FjcXVpcmUoUHJvY0FycmF5TG9jaywgTFdfRVhDTFVTSVZF KTsKIAkJTXlQcm9jLT5zdGF0dXNGbGFncyB8PSBQUk9DX0FGRkVDVFNfQUxMX0hPUklaT05T OwotCQlQcm9jR2xvYmFsLT5zdGF0dXNGbGFnc1tNeVByb2MtPnBneGFjdG9mZl0gPSBNeVBy b2MtPnN0YXR1c0ZsYWdzOworCQlQcm9jR2xvYmFsLT5zdGF0dXNGbGFnc1tQcm9jR2V0TXlY YWN0T2ZmKCldID0gTXlQcm9jLT5zdGF0dXNGbGFnczsKIAkJTFdMb2NrUmVsZWFzZShQcm9j QXJyYXlMb2NrKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBj L3Byb2NhcnJheS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKaW5k ZXggNjAzMzZiMzE4MDMuLmU2MDc1ZGFmZTlmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9z dG9yYWdlL2lwYy9wcm9jYXJyYXkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9w cm9jYXJyYXkuYwpAQCAtMjg0LDYgKzI4NCwxMiBAQCB0eXBlZGVmIGVudW0gS0FYQ29tcHJl c3NSZWFzb24KIAogc3RhdGljIFBHUFJPQyAqYWxsUHJvY3M7CiAKKy8qCisgKiBvZmZzZXRz IGludG8gdmFyaW91cyBQcm9jR2xvYmFsLT5hcnJheXMgd2l0aCBkYXRhIG1pcnJvcmVkIGZy b20gYXBwcm9wcmlhdGUgUEdQUk9DcywKKyAqIHByb2NubyBkZWZpbmUgb2Zmc2V0IGluZGV4 IGluIHBneGFjdG9mZnMgYXJyYXkoU2VlIFBST0NfSERSIGZvciBkZXRhaWxzKS4KKyAqLwor c3RhdGljIGludCAqcGd4YWN0b2ZmczsKKwogLyoKICAqIENhY2hlIHRvIHJlZHVjZSBvdmVy aGVhZCBvZiByZXBlYXRlZCBjYWxscyB0byBUcmFuc2FjdGlvbklkSXNJblByb2dyZXNzKCkK ICAqLwpAQCAtNDQ5LDYgKzQ1NSw3IEBAIFByb2NBcnJheVNobWVtSW5pdCh2b2lkICphcmcp CiAJVHJhbnNhbVZhcmlhYmxlcy0+eGFjdENvbXBsZXRpb25Db3VudCA9IDE7CiAKIAlhbGxQ cm9jcyA9IFByb2NHbG9iYWwtPmFsbFByb2NzOworCXBneGFjdG9mZnMgPSBQcm9jR2xvYmFs LT5wZ3hhY3RvZmZzOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNDk4LDcgKzUwNSw3IEBAIFBy b2NBcnJheUFkZChQR1BST0MgKnByb2MpCiAJCWludAkJCXRoaXNfcHJvY25vID0gYXJyYXlQ LT5wZ3Byb2Nub3NbaW5kZXhdOwogCiAJCUFzc2VydCh0aGlzX3Byb2NubyA+PSAwICYmIHRo aXNfcHJvY25vIDwgKGFycmF5UC0+bWF4UHJvY3MgKyBOVU1fQVVYSUxJQVJZX1BST0NTKSk7 Ci0JCUFzc2VydChhbGxQcm9jc1t0aGlzX3Byb2Nub10ucGd4YWN0b2ZmID09IGluZGV4KTsK KwkJQXNzZXJ0KHBneGFjdG9mZnNbdGhpc19wcm9jbm9dID09IGluZGV4KTsKIAogCQkvKiBJ ZiB3ZSBoYXZlIGZvdW5kIG91ciByaWdodCBwb3NpdGlvbiBpbiB0aGUgYXJyYXksIGJyZWFr ICovCiAJCWlmICh0aGlzX3Byb2NubyA+IHBncHJvY25vKQpAQCAtNTIwLDIzICs1MjcsMjMg QEAgUHJvY0FycmF5QWRkKFBHUFJPQyAqcHJvYykKIAkJCW1vdmVjb3VudCAqIHNpemVvZigq UHJvY0dsb2JhbC0+c3RhdHVzRmxhZ3MpKTsKIAogCWFycmF5UC0+cGdwcm9jbm9zW2luZGV4 XSA9IEdldE51bWJlckZyb21QR1Byb2MocHJvYyk7Ci0JcHJvYy0+cGd4YWN0b2ZmID0gaW5k ZXg7CisJcGd4YWN0b2Zmc1thcnJheVAtPnBncHJvY25vc1tpbmRleF1dID0gaW5kZXg7CiAJ UHJvY0dsb2JhbC0+eGlkc1tpbmRleF0gPSBwcm9jLT54aWQ7CiAJUHJvY0dsb2JhbC0+c3Vi eGlkU3RhdGVzW2luZGV4XSA9IHByb2MtPnN1YnhpZFN0YXR1czsKIAlQcm9jR2xvYmFsLT5z dGF0dXNGbGFnc1tpbmRleF0gPSBwcm9jLT5zdGF0dXNGbGFnczsKIAogCWFycmF5UC0+bnVt UHJvY3MrKzsKIAotCS8qIGFkanVzdCBwZ3hhY3RvZmYgZm9yIGFsbCBmb2xsb3dpbmcgUEdQ Uk9DcyAqLworCS8qIGFkanVzdCBhcHByb3ByaWF0ZSBwZ3hhY3RvZmYgZm9yIGFsbCBmb2xs b3dpbmcgUEdQUk9DcyAqLwogCWluZGV4Kys7CiAJZm9yICg7IGluZGV4IDwgYXJyYXlQLT5u dW1Qcm9jczsgaW5kZXgrKykKIAl7CiAJCWludAkJCXByb2NubyA9IGFycmF5UC0+cGdwcm9j bm9zW2luZGV4XTsKIAogCQlBc3NlcnQocHJvY25vID49IDAgJiYgcHJvY25vIDwgKGFycmF5 UC0+bWF4UHJvY3MgKyBOVU1fQVVYSUxJQVJZX1BST0NTKSk7Ci0JCUFzc2VydChhbGxQcm9j c1twcm9jbm9dLnBneGFjdG9mZiA9PSBpbmRleCAtIDEpOworCQlBc3NlcnQocGd4YWN0b2Zm c1twcm9jbm9dID09IGluZGV4IC0gMSk7CiAKLQkJYWxsUHJvY3NbcHJvY25vXS5wZ3hhY3Rv ZmYgPSBpbmRleDsKKwkJcGd4YWN0b2Zmc1twcm9jbm9dID0gaW5kZXg7CiAJfQogCiAJLyoK QEAgLTU3NCwxMCArNTgxLDEwIEBAIFByb2NBcnJheVJlbW92ZShQR1BST0MgKnByb2MsIFRy YW5zYWN0aW9uSWQgbGF0ZXN0WGlkKQogCUxXTG9ja0FjcXVpcmUoUHJvY0FycmF5TG9jaywg TFdfRVhDTFVTSVZFKTsKIAlMV0xvY2tBY3F1aXJlKFhpZEdlbkxvY2ssIExXX0VYQ0xVU0lW RSk7CiAKLQlteW9mZiA9IHByb2MtPnBneGFjdG9mZjsKKwlteW9mZiA9IFByb2NHZXRYYWN0 T2ZmKEdldE51bWJlckZyb21QR1Byb2MocHJvYykpOwogCiAJQXNzZXJ0KG15b2ZmID49IDAg JiYgbXlvZmYgPCBhcnJheVAtPm51bVByb2NzKTsKLQlBc3NlcnQoUHJvY0dsb2JhbC0+YWxs UHJvY3NbYXJyYXlQLT5wZ3Byb2Nub3NbbXlvZmZdXS5wZ3hhY3RvZmYgPT0gbXlvZmYpOwor CUFzc2VydChQcm9jR2xvYmFsLT5wZ3hhY3RvZmZzW2FycmF5UC0+cGdwcm9jbm9zW215b2Zm XV0gPT0gbXlvZmYpOwogCiAJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKGxhdGVzdFhpZCkp CiAJewpAQCAtNjI0LDE3ICs2MzEsMTcgQEAgUHJvY0FycmF5UmVtb3ZlKFBHUFJPQyAqcHJv YywgVHJhbnNhY3Rpb25JZCBsYXRlc3RYaWQpCiAJYXJyYXlQLT5udW1Qcm9jcy0tOwogCiAJ LyoKLQkgKiBBZGp1c3QgcGd4YWN0b2ZmIG9mIGZvbGxvd2luZyBwcm9jcyBmb3IgcmVtb3Zl ZCBQR1BST0MgKG5vdGUgdGhhdAotCSAqIG51bVByb2NzIGFscmVhZHkgaGFzIGJlZW4gZGVj cmVtZW50ZWQpLgorCSAqIEFkanVzdCBhcHByb3ByaWF0ZSBwZ3hhY3RvZmYgb2YgZm9sbG93 aW5nIHByb2NzIGZvciByZW1vdmVkIFBHUFJPQworCSAqIChub3RlIHRoYXQgbnVtUHJvY3Mg YWxyZWFkeSBoYXMgYmVlbiBkZWNyZW1lbnRlZCkuCiAJICovCiAJZm9yIChpbnQgaW5kZXgg PSBteW9mZjsgaW5kZXggPCBhcnJheVAtPm51bVByb2NzOyBpbmRleCsrKQogCXsKIAkJaW50 CQkJcHJvY25vID0gYXJyYXlQLT5wZ3Byb2Nub3NbaW5kZXhdOwogCiAJCUFzc2VydChwcm9j bm8gPj0gMCAmJiBwcm9jbm8gPCAoYXJyYXlQLT5tYXhQcm9jcyArIE5VTV9BVVhJTElBUllf UFJPQ1MpKTsKLQkJQXNzZXJ0KGFsbFByb2NzW3Byb2Nub10ucGd4YWN0b2ZmIC0gMSA9PSBp bmRleCk7CisJCUFzc2VydChwZ3hhY3RvZmZzW3Byb2Nub10gLSAxID09IGluZGV4KTsKIAot CQlhbGxQcm9jc1twcm9jbm9dLnBneGFjdG9mZiA9IGluZGV4OworCQlwZ3hhY3RvZmZzW3By b2Nub10gPSBpbmRleDsKIAl9CiAKIAkvKgpAQCAtNzA2LDExICs3MTMsMTMgQEAgUHJvY0Fy cmF5RW5kVHJhbnNhY3Rpb24oUEdQUk9DICpwcm9jLCBUcmFuc2FjdGlvbklkIGxhdGVzdFhp ZCkKIAkJLyogYXZvaWQgdW5uZWNlc3NhcmlseSBkaXJ0eWluZyBzaGFyZWQgY2FjaGVsaW5l cyAqLwogCQlpZiAocHJvYy0+c3RhdHVzRmxhZ3MgJiBQUk9DX1ZBQ1VVTV9TVEFURV9NQVNL KQogCQl7CisJCQlpbnQJCQlwZ3hhY3RvZmYgPSBQcm9jR2V0WGFjdE9mZihHZXROdW1iZXJG cm9tUEdQcm9jKHByb2MpKTsKKwogCQkJQXNzZXJ0KCFMV0xvY2tIZWxkQnlNZShQcm9jQXJy YXlMb2NrKSk7CiAJCQlMV0xvY2tBY3F1aXJlKFByb2NBcnJheUxvY2ssIExXX0VYQ0xVU0lW RSk7Ci0JCQlBc3NlcnQocHJvYy0+c3RhdHVzRmxhZ3MgPT0gUHJvY0dsb2JhbC0+c3RhdHVz RmxhZ3NbcHJvYy0+cGd4YWN0b2ZmXSk7CisJCQlBc3NlcnQocHJvYy0+c3RhdHVzRmxhZ3Mg PT0gUHJvY0dsb2JhbC0+c3RhdHVzRmxhZ3NbcGd4YWN0b2ZmXSk7CiAJCQlwcm9jLT5zdGF0 dXNGbGFncyAmPSB+UFJPQ19WQUNVVU1fU1RBVEVfTUFTSzsKLQkJCVByb2NHbG9iYWwtPnN0 YXR1c0ZsYWdzW3Byb2MtPnBneGFjdG9mZl0gPSBwcm9jLT5zdGF0dXNGbGFnczsKKwkJCVBy b2NHbG9iYWwtPnN0YXR1c0ZsYWdzW3BneGFjdG9mZl0gPSBwcm9jLT5zdGF0dXNGbGFnczsK IAkJCUxXTG9ja1JlbGVhc2UoUHJvY0FycmF5TG9jayk7CiAJCX0KIAl9CkBAIC03MjQsNyAr NzMzLDcgQEAgUHJvY0FycmF5RW5kVHJhbnNhY3Rpb24oUEdQUk9DICpwcm9jLCBUcmFuc2Fj dGlvbklkIGxhdGVzdFhpZCkKIHN0YXRpYyBpbmxpbmUgdm9pZAogUHJvY0FycmF5RW5kVHJh bnNhY3Rpb25JbnRlcm5hbChQR1BST0MgKnByb2MsIFRyYW5zYWN0aW9uSWQgbGF0ZXN0WGlk KQogewotCWludAkJCXBneGFjdG9mZiA9IHByb2MtPnBneGFjdG9mZjsKKwlpbnQJCQlwZ3hh Y3RvZmYgPSBQcm9jR2V0WGFjdE9mZihHZXROdW1iZXJGcm9tUEdQcm9jKHByb2MpKTsKIAog CS8qCiAJICogTm90ZTogd2UgbmVlZCBleGNsdXNpdmUgbG9jayBoZXJlIGJlY2F1c2Ugd2Un cmUgZ29pbmcgdG8gY2hhbmdlIG90aGVyCkBAIC03NDcsNyArNzU2LDcgQEAgUHJvY0FycmF5 RW5kVHJhbnNhY3Rpb25JbnRlcm5hbChQR1BST0MgKnByb2MsIFRyYW5zYWN0aW9uSWQgbGF0 ZXN0WGlkKQogCWlmIChwcm9jLT5zdGF0dXNGbGFncyAmIFBST0NfVkFDVVVNX1NUQVRFX01B U0spCiAJewogCQlwcm9jLT5zdGF0dXNGbGFncyAmPSB+UFJPQ19WQUNVVU1fU1RBVEVfTUFT SzsKLQkJUHJvY0dsb2JhbC0+c3RhdHVzRmxhZ3NbcHJvYy0+cGd4YWN0b2ZmXSA9IHByb2Mt PnN0YXR1c0ZsYWdzOworCQlQcm9jR2xvYmFsLT5zdGF0dXNGbGFnc1twZ3hhY3RvZmZdID0g cHJvYy0+c3RhdHVzRmxhZ3M7CiAJfQogCiAJLyogQ2xlYXIgdGhlIHN1YnRyYW5zYWN0aW9u LVhJRCBjYWNoZSB0b28gd2hpbGUgaG9sZGluZyB0aGUgbG9jayAqLwpAQCAtOTAzLDcgKzkx Miw3IEBAIFByb2NBcnJheUNsZWFyVHJhbnNhY3Rpb24oUEdQUk9DICpwcm9jKQogCS8qCiAJ ICogQ3VycmVudGx5IHdlIG5lZWQgdG8gbG9jayBQcm9jQXJyYXlMb2NrIGV4Y2x1c2l2ZWx5 IGhlcmUsIGFzIHdlCiAJICogaW5jcmVtZW50IHhhY3RDb21wbGV0aW9uQ291bnQgYmVsb3cu IFdlIGFsc28gbmVlZCBpdCBhdCBsZWFzdCBpbiBzaGFyZWQKLQkgKiBtb2RlIGZvciBwZ3By b2MtPnBneGFjdG9mZiB0byBzdGF5IHRoZSBzYW1lIGJlbG93LgorCSAqIG1vZGUgZm9yIHBy b2MncyBwZ3hhY3RvZmYgdG8gc3RheSB0aGUgc2FtZSBiZWxvdy4KIAkgKgogCSAqIFdlIGNv dWxkIGhvd2V2ZXIsIGFzIHRoaXMgYWN0aW9uIGRvZXMgbm90IGFjdHVhbGx5IGNoYW5nZSBh bnlvbmUncyB2aWV3CiAJICogb2YgdGhlIHNldCBvZiBydW5uaW5nIFhJRHMgKG91ciBlbnRy eSBpcyBkdXBsaWNhdGUgd2l0aCB0aGUgZ3hhY3QgdGhhdApAQCAtOTE2LDcgKzkyNSw3IEBA IFByb2NBcnJheUNsZWFyVHJhbnNhY3Rpb24oUEdQUk9DICpwcm9jKQogCSAqLwogCUxXTG9j a0FjcXVpcmUoUHJvY0FycmF5TG9jaywgTFdfRVhDTFVTSVZFKTsKIAotCXBneGFjdG9mZiA9 IHByb2MtPnBneGFjdG9mZjsKKwlwZ3hhY3RvZmYgPSBQcm9jR2V0WGFjdE9mZihHZXROdW1i ZXJGcm9tUEdQcm9jKHByb2MpKTsKIAogCVByb2NHbG9iYWwtPnhpZHNbcGd4YWN0b2ZmXSA9 IEludmFsaWRUcmFuc2FjdGlvbklkOwogCXByb2MtPnhpZCA9IEludmFsaWRUcmFuc2FjdGlv bklkOwpAQCAtMTQ3NSw3ICsxNDg0LDcgQEAgVHJhbnNhY3Rpb25JZElzSW5Qcm9ncmVzcyhU cmFuc2FjdGlvbklkIHhpZCkKIAl9CiAKIAkvKiBObyBzaG9ydGN1dHMsIGdvdHRhIGdyb3Zl bCB0aHJvdWdoIHRoZSBhcnJheSAqLwotCW15cGd4YWN0b2ZmID0gTXlQcm9jLT5wZ3hhY3Rv ZmY7CisJbXlwZ3hhY3RvZmYgPSBQcm9jR2V0TXlYYWN0T2ZmKCk7CiAJbnVtUHJvY3MgPSBh cnJheVAtPm51bVByb2NzOwogCWZvciAoaW50IHBneGFjdG9mZiA9IDA7IHBneGFjdG9mZiA8 IG51bVByb2NzOyBwZ3hhY3RvZmYrKykKIAl7CkBAIC0yMTg0LDcgKzIxOTMsNyBAQCBHZXRT bmFwc2hvdERhdGEoU25hcHNob3Qgc25hcHNob3QpCiAJfQogCiAJbGF0ZXN0X2NvbXBsZXRl ZCA9IFRyYW5zYW1WYXJpYWJsZXMtPmxhdGVzdENvbXBsZXRlZFhpZDsKLQlteXBneGFjdG9m ZiA9IE15UHJvYy0+cGd4YWN0b2ZmOworCW15cGd4YWN0b2ZmID0gUHJvY0dldE15WGFjdE9m ZigpOwogCW15eGlkID0gb3RoZXJfeGlkc1tteXBneGFjdG9mZl07CiAJQXNzZXJ0KG15eGlk ID09IE15UHJvYy0+eGlkKTsKIApAQCAtMjIyMyw3ICsyMjMyLDcgQEAgR2V0U25hcHNob3RE YXRhKFNuYXBzaG90IHNuYXBzaG90KQogCQkJVHJhbnNhY3Rpb25JZCB4aWQgPSBVSU5UMzJf QUNDRVNTX09OQ0Uob3RoZXJfeGlkc1twZ3hhY3RvZmZdKTsKIAkJCXVpbnQ4CQlzdGF0dXNG bGFnczsKIAotCQkJQXNzZXJ0KGFsbFByb2NzW2FycmF5UC0+cGdwcm9jbm9zW3BneGFjdG9m Zl1dLnBneGFjdG9mZiA9PSBwZ3hhY3RvZmYpOworCQkJQXNzZXJ0KHBneGFjdG9mZnNbYXJy YXlQLT5wZ3Byb2Nub3NbcGd4YWN0b2ZmXV0gPT0gcGd4YWN0b2ZmKTsKIAogCQkJLyoKIAkJ CSAqIElmIHRoZSB0cmFuc2FjdGlvbiBoYXMgbm8gWElEIGFzc2lnbmVkLCB3ZSBjYW4gc2tp cCBpdDsgaXQKQEAgLTI1OTEsNyArMjYwMCw3IEBAIFByb2NBcnJheUluc3RhbGxSZXN0b3Jl ZFhtaW4oVHJhbnNhY3Rpb25JZCB4bWluLCBQR1BST0MgKnByb2MpCiAJCU15UHJvYy0+eG1p biA9IFRyYW5zYWN0aW9uWG1pbiA9IHhtaW47CiAJCU15UHJvYy0+c3RhdHVzRmxhZ3MgPSAo TXlQcm9jLT5zdGF0dXNGbGFncyAmIH5QUk9DX1hNSU5fRkxBR1MpIHwKIAkJCShwcm9jLT5z dGF0dXNGbGFncyAmIFBST0NfWE1JTl9GTEFHUyk7Ci0JCVByb2NHbG9iYWwtPnN0YXR1c0Zs YWdzW015UHJvYy0+cGd4YWN0b2ZmXSA9IE15UHJvYy0+c3RhdHVzRmxhZ3M7CisJCVByb2NH bG9iYWwtPnN0YXR1c0ZsYWdzW1Byb2NHZXRNeVhhY3RPZmYoKV0gPSBNeVByb2MtPnN0YXR1 c0ZsYWdzOwogCiAJCXJlc3VsdCA9IHRydWU7CiAJfQpAQCAtNDAxOSw3ICs0MDI4LDcgQEAg WGlkQ2FjaGVSZW1vdmVSdW5uaW5nWGlkcyhUcmFuc2FjdGlvbklkIHhpZCwKIAkgKi8KIAlM V0xvY2tBY3F1aXJlKFByb2NBcnJheUxvY2ssIExXX0VYQ0xVU0lWRSk7CiAKLQlteXN1Ynhp ZHN0YXQgPSAmUHJvY0dsb2JhbC0+c3VieGlkU3RhdGVzW015UHJvYy0+cGd4YWN0b2ZmXTsK KwlteXN1YnhpZHN0YXQgPSAmUHJvY0dsb2JhbC0+c3VieGlkU3RhdGVzW1Byb2NHZXRNeVhh Y3RPZmYoKV07CiAKIAkvKgogCSAqIFVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzIHhpZCBh bmQgeGlkc1tdIHdpbGwgYmUgaW4gaW5jcmVhc2luZyBvcmRlciwKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xt Z3IvcHJvYy5jCmluZGV4IDlkNmU2OTE3NWE1Li5lNjRhYjZlNTk3YyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYworKysgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2xtZ3IvcHJvYy5jCkBAIC0xNjQsNiArMTY0LDcgQEAgUHJvY0dsb2JhbFNobWVtUmVx dWVzdCh2b2lkICphcmcpCiAJc2l6ZSA9IGFkZF9zaXplKHNpemUsIG11bF9zaXplKFRvdGFs UHJvY3MsIHNpemVvZihQR1BST0MpKSk7CiAJc2l6ZSA9IGFkZF9zaXplKHNpemUsIG11bF9z aXplKFRvdGFsUHJvY3MsIHNpemVvZigqUHJvY0dsb2JhbC0+eGlkcykpKTsKIAlzaXplID0g YWRkX3NpemUoc2l6ZSwgbXVsX3NpemUoVG90YWxQcm9jcywgc2l6ZW9mKCpQcm9jR2xvYmFs LT5zdWJ4aWRTdGF0ZXMpKSk7CisJc2l6ZSA9IGFkZF9zaXplKHNpemUsIG11bF9zaXplKFRv dGFsUHJvY3MsIHNpemVvZigqUHJvY0dsb2JhbC0+cGd4YWN0b2ZmcykpKTsKIAlzaXplID0g YWRkX3NpemUoc2l6ZSwgbXVsX3NpemUoVG90YWxQcm9jcywgc2l6ZW9mKCpQcm9jR2xvYmFs LT5zdGF0dXNGbGFncykpKTsKIAlQcm9jR2xvYmFsQWxsUHJvY3NTaG1lbVNpemUgPSBzaXpl OwogCVNobWVtUmVxdWVzdFN0cnVjdCgubmFtZSA9ICJQR1BST0Mgc3RydWN0dXJlcyIsCkBA IC0yNzEsNiArMjcyLDkgQEAgUHJvY0dsb2JhbFNobWVtSW5pdCh2b2lkICphcmcpCiAJUHJv Y0dsb2JhbC0+c3VieGlkU3RhdGVzID0gKFhpZENhY2hlU3RhdHVzICopIHB0cjsKIAlwdHIg PSBwdHIgKyAoVG90YWxQcm9jcyAqIHNpemVvZigqUHJvY0dsb2JhbC0+c3VieGlkU3RhdGVz KSk7CiAKKwlQcm9jR2xvYmFsLT5wZ3hhY3RvZmZzID0gKGludCAqKSBwdHI7CisJcHRyID0g KGNoYXIgKikgcHRyICsgVG90YWxQcm9jcyAqIHNpemVvZigqUHJvY0dsb2JhbC0+cGd4YWN0 b2Zmcyk7CisKIAlQcm9jR2xvYmFsLT5zdGF0dXNGbGFncyA9ICh1aW50OCAqKSBwdHI7CiAJ cHRyID0gcHRyICsgKFRvdGFsUHJvY3MgKiBzaXplb2YoKlByb2NHbG9iYWwtPnN0YXR1c0Zs YWdzKSk7CiAKQEAgLTE1NjEsNyArMTU2NSw3IEBAIFByb2NTbGVlcChMT0NBTExPQ0sgKmxv Y2FsbG9jaykKIAkJCSAqIHRoZSBsb2NrIGhlbGQsIHdoaWNoIGlzIG11Y2ggbW9yZSB1bmRl c2lyYWJsZS4KIAkJCSAqLwogCQkJTFdMb2NrQWNxdWlyZShQcm9jQXJyYXlMb2NrLCBMV19F WENMVVNJVkUpOwotCQkJc3RhdHVzRmxhZ3MgPSBQcm9jR2xvYmFsLT5zdGF0dXNGbGFnc1th dXRvdmFjLT5wZ3hhY3RvZmZdOworCQkJc3RhdHVzRmxhZ3MgPSBQcm9jR2xvYmFsLT5zdGF0 dXNGbGFnc1tQcm9jR2V0WGFjdE9mZihHZXROdW1iZXJGcm9tUEdQcm9jKGF1dG92YWMpKV07 CiAJCQlsb2NrbWV0aG9kX2NvcHkgPSBsb2NrLT50YWcubG9ja3RhZ19sb2NrbWV0aG9kaWQ7 CiAJCQlsb2NrdGFnX2NvcHkgPSBsb2NrLT50YWc7CiAJCQlMV0xvY2tSZWxlYXNlKFByb2NB cnJheUxvY2spOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmggYi9z cmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaAppbmRleCAwM2ExYTQ2NmZhOC4uZTA4ZDhkZDhh NGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oCisrKyBiL3NyYy9p bmNsdWRlL3N0b3JhZ2UvcHJvYy5oCkBAIC0xNzQsNyArMTc0LDggQEAgdHlwZWRlZiBlbnVt CiAgKgogICogU29tZSBmaWVsZHMgaW4gUEdQUk9DIChzZWUgIm1pcnJvcmVkIGluIC4uLiIg Y29tbWVudCkgYXJlIG1pcnJvcmVkIGludG8gYW4KICAqIGVsZW1lbnQgb2YgbW9yZSBkZW5z ZWx5IHBhY2tlZCBQcm9jR2xvYmFsIGFycmF5cy4gVGhlc2UgYXJyYXlzIGFyZSBpbmRleGVk Ci0gKiBieSBQR1BST0MtPnBneGFjdG9mZi4gQm90aCBjb3BpZXMgbmVlZCB0byBiZSBtYWlu dGFpbmVkIGNvaGVyZW50bHkuCisgKiBieSBQUk9DX0hEUi0+cGd4YWN0b2ZmcyBhcnJheSBl bGVtZW50cy4gQm90aCBjb3BpZXMgbmVlZCB0byBiZSBtYWludGFpbmVkCisgKiBjb2hlcmVu dGx5LgogICoKICAqIE5COiBUaGUgcGd4YWN0b2ZmIGluZGV4ZWQgdmFsdWUgY2FuICpuZXZl ciogYmUgYWNjZXNzZWQgd2l0aG91dCBob2xkaW5nCiAgKiBsb2Nrcy4KQEAgLTIxMCw5ICsy MTEsNiBAQCB0eXBlZGVmIHN0cnVjdCBQR1BST0MKIAlPaWQJCQl0ZW1wTmFtZXNwYWNlSWQ7 CS8qIE9JRCBvZiB0ZW1wIHNjaGVtYSB0aGlzIGJhY2tlbmQgaXMKIAkJCQkJCQkJCSAqIHVz aW5nICovCiAKLQlpbnQJCQlwZ3hhY3RvZmY7CQkvKiBvZmZzZXQgaW50byB2YXJpb3VzIFBy b2NHbG9iYWwtPmFycmF5cyB3aXRoCi0JCQkJCQkJCSAqIGRhdGEgbWlycm9yZWQgZnJvbSB0 aGlzIFBHUFJPQyAqLwotCiAJdWludDgJCXN0YXR1c0ZsYWdzOwkvKiB0aGlzIGJhY2tlbmQn cyBzdGF0dXMgZmxhZ3MsIHNlZSBQUk9DXyoKIAkJCQkJCQkJICogYWJvdmUuIG1pcnJvcmVk IGluCiAJCQkJCQkJCSAqIFByb2NHbG9iYWwtPnN0YXR1c0ZsYWdzW3BneGFjdG9mZl0gKi8K QEAgLTQwMiwxMCArNDAwLDExIEBAIGV4dGVybiBQR0RMTElNUE9SVCBQR1BST0MgKk15UHJv YzsKICAqIGZvciBQR1BST0NzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBzaGFyZWQg YXJyYXkgd2l0aCBQcm9jQXJyYXlBZGQoKQogICogKGluIGNvbnRyYXN0IHRvIFBHUFJPQyBh cnJheSB3aGljaCBoYXMgdW51c2VkIFBHUFJPQ3MgaW50ZXJzcGVyc2VkKS4KICAqCi0gKiBU aGUgZGVuc2UgYXJyYXlzIGFyZSBpbmRleGVkIGJ5IFBHUFJPQy0+cGd4YWN0b2ZmLiBBbnkg Y29uY3VycmVudAorICogVGhlIGRlbnNlIGFycmF5cyBhcmUgaW5kZXhlZCBieSBQUk9DX0hE Ui0+cGd4YWN0b2ZmcyBhcnJheSBlbGVtZW50cywgcHJvY25vCisgKiBkZWZpbmUgcG9zaXRp b24gb2YgYXBwcm9wcmlhdGUgb2Zmc2V0IGluIHBneGFjdG9mZnMgYXJyYXkuIEFueSBjb25j dXJyZW50CiAgKiBQcm9jQXJyYXlBZGQoKSAvIFByb2NBcnJheVJlbW92ZSgpIGNhbiBsZWFk IHRvIHBneGFjdG9mZiBvZiBhIHByb2NhcnJheQotICogbWVtYmVyIHRvIGNoYW5nZS4gIFRo ZXJlZm9yZSBpdCBpcyBvbmx5IHNhZmUgdG8gdXNlIFBHUFJPQy0+cGd4YWN0b2ZmIHRvCi0g KiBhY2Nlc3MgdGhlIGRlbnNlIGFycmF5IHdoaWxlIGhvbGRpbmcgZWl0aGVyIFByb2NBcnJh eUxvY2sgb3IgWGlkR2VuTG9jay4KKyAqIG1lbWJlciB0byBjaGFuZ2UuICBUaGVyZWZvcmUg aXQgaXMgb25seSBzYWZlIHRvIHVzZSBhcHByb3ByaWF0ZSBwcm9jJ3MgcGd4YWN0b2ZmCisg KiB0byBhY2Nlc3MgdGhlIGRlbnNlIGFycmF5IHdoaWxlIGhvbGRpbmcgZWl0aGVyIFByb2NB cnJheUxvY2sgb3IgWGlkR2VuTG9jay4KICAqCiAgKiBBcyBsb25nIGFzIGEgUEdQUk9DIGlz IGluIHRoZSBwcm9jYXJyYXksIHRoZSBtaXJyb3JlZCB2YWx1ZXMgbmVlZCB0byBiZQogICog bWFpbnRhaW5lZCBpbiBib3RoIHBsYWNlcyBpbiBhIGNvaGVyZW50IG1hbm5lci4KQEAgLTQ0 Niw2ICs0NDUsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgUFJPQ19IRFIKIAkvKiBBcnJheSBvZiBQ R1BST0Mgc3RydWN0dXJlcyAobm90IGluY2x1ZGluZyBkdW1taWVzIGZvciBwcmVwYXJlZCB0 eG5zKSAqLwogCVBHUFJPQwkgICAqYWxsUHJvY3M7CiAKKwkvKgorCSAqIG9mZnNldHMgaW50 byB2YXJpb3VzIFByb2NHbG9iYWwtPmFycmF5cyB3aXRoIGRhdGEgbWlycm9yZWQgZnJvbQor CSAqIGFwcHJvcHJpYXRlIFBHUFJPQ3MuIFRoZSBQR1BST0MncyBhcHByb3ByaWF0ZSBwZ3hh Y3RvZmYgZWxlbWVudCBpbmRleAorCSAqIGlzIHRoZSBzYW1lIGFzIFBHUFJPQyBpbmRleCBp biBhbGxQcm9jcyhjaGVjayBQcm9jR2V0TXlYYWN0T2ZmKS4KKwkgKi8KKwlpbnQJCSAgICpw Z3hhY3RvZmZzOworCiAJLyogQXJyYXkgbWlycm9yaW5nIFBHUFJPQy54aWQgZm9yIGVhY2gg UEdQUk9DIGN1cnJlbnRseSBpbiB0aGUgcHJvY2FycmF5ICovCiAJVHJhbnNhY3Rpb25JZCAq eGlkczsKIApAQCAtNTExLDYgKzUxNyw4IEBAIGV4dGVybiBQR0RMTElNUE9SVCBQR1BST0Mg KlByZXBhcmVkWGFjdFByb2NzOwogICovCiAjZGVmaW5lIEdldFBHUHJvY0J5TnVtYmVyKG4p ICgmUHJvY0dsb2JhbC0+YWxsUHJvY3NbKG4pXSkKICNkZWZpbmUgR2V0TnVtYmVyRnJvbVBH UHJvYyhwcm9jKSAoKHByb2MpIC0gJlByb2NHbG9iYWwtPmFsbFByb2NzWzBdKQorI2RlZmlu ZSBQcm9jR2V0WGFjdE9mZihwcm9jbm8pIChQcm9jR2xvYmFsLT5wZ3hhY3RvZmZzWyhwcm9j bm8pXSkKKyNkZWZpbmUgUHJvY0dldE15WGFjdE9mZigpIChQcm9jR2V0WGFjdE9mZihHZXRO dW1iZXJGcm9tUEdQcm9jKE15UHJvYykpKQogCiAvKgogICogV2Ugc2V0IGFzaWRlIHNvbWUg ZXh0cmEgUEdQUk9DIHN0cnVjdHVyZXMgZm9yICJzcGVjaWFsIHdvcmtlciIgcHJvY2Vzc2Vz LAotLSAKMi40My4wCgo= --------------uXapIun4iAk0LimN0RncCyro--