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.94.2) (envelope-from ) id 1rkJFK-00BqeY-67 for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Mar 2024 07:41:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rkJFI-00E62U-QQ for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Mar 2024 07:41:53 +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.94.2) (envelope-from ) id 1rkJFI-00E5yn-5p for pgsql-hackers@lists.postgresql.org; Wed, 13 Mar 2024 07:41:52 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rkJFD-004G5I-RB for pgsql-hackers@lists.postgresql.org; Wed, 13 Mar 2024 07:41:52 +0000 Received: from [10.4.12.105] (unknown [93.174.131.141]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: a.melnikov@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id B97E6E20E90; Wed, 13 Mar 2024 10:41:45 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1710315705; bh=9HVYSjxQyAlGF5gYVv+5DJjY0b+OXDpQe1XvaOnN2Cg=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=sP2tid9Sj+MmdzT3RzdwKBsemq+t6UXSOqmUWKhlCJdQGvOYQ0/VWHdvLLeR0oapi TxXoid1NxN4LnC4SicsNCv0RR/Wbph5WssfPM6sLbFL2xyY+NS+bKsYg6JFmNXpYln kv/XFjJ7KR2cZquwWEGD2TB1abUhZWCQTNZT4bhHA5tvYpVgaEjXaeIcNoZpA+56hp QxBAakMffY/O5L1+aLeU+KY0QOZ6Tgo3KsjmcVkqjpq415aYBf/FALvhRgae5MM60o cAI9tSKUkdKk5KIx+V7go49Z1TjfWgunG5wSBVnUlmKIgoUMXkpHJhrKTwutEqvtIt 2of518Q053Jaw== Content-Type: multipart/mixed; boundary="------------20u0xY3IUdSe7YL2gKC1UjVA" Message-ID: Date: Wed, 13 Mar 2024 10:41:45 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Add the ability to limit the amount of memory that can be allocated to backends. To: Aleksander Alekseev , "pgsql-hackers@lists.postgresql.org" Cc: Tomas Vondra , Andres Freund , Andrei Lepikhov , Stephen Frost , reid.thompson@crunchydata.com, Arne Roland , vignesh C , Justin Pryzby , Ibrar Ahmed , "stephen.frost" References: <7912c911af51d5cf28c611190bf3d463b9209343.camel@crunchydata.com> <4edafedc0f8acb12a2979088ac1317bd7dd42145.camel@crunchydata.com> <268e0ac7-8a81-4d65-8b40-b62c4b3f1bf9@postgrespro.ru> <48548d40-634b-4943-a737-3c9d95eacf06@postgrespro.ru> <8fcb4406-49f5-4069-b8e9-197a38004ddd@postgrespro.ru> <20231024024435.yaqrajcchcliwhjl@awork3.anarazel.de> <98646b96-6dcf-8d8a-3daf-837f25f8b1e3@enterprisedb.com> <1c5f1856-817d-45e5-8e1a-acd95c6dd335@enterprisedb.com> Content-Language: en-US From: "Anton A. Melnikov" In-Reply-To: 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. --------------20u0xY3IUdSe7YL2gKC1UjVA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 12.03.2024 16:30, Aleksander Alekseev wrote: > Just wanted to let you know that v20231226 doesn't apply. The patch > needs love from somebody interested in it. Thanks for pointing to this! Here is a version updated for the current master. With the best regards, -- Anton A. Melnikov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --------------20u0xY3IUdSe7YL2gKC1UjVA Content-Type: text/x-patch; charset=UTF-8; name="v20140313-0001-Add-tracking-of-backend-memory-allocated.patch" Content-Disposition: attachment; filename*0="v20140313-0001-Add-tracking-of-backend-memory-allocated.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSBlMzEwMTIyMTdmYjYzZjU3ZmUxNmQ3MjMyZmVjMjdiYjZjZDQ1NTk3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogVHVlLCAyNiBEZWMgMjAyMyAxNzo1NDo0MCArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMS8zXSBBZGQgdHJhY2tpbmcgb2YgYmFja2VuZCBtZW1vcnkgYWxsb2NhdGVkCgpB ZGQgdHJhY2tpbmcgb2YgYmFja2VuZCBtZW1vcnkgYWxsb2NhdGVkIGluIHRvdGFsIGFuZCBi eSBhbGxvY2F0aW9uCnR5cGUgKGFzZXQsIGRzbSwgZ2VuZXJhdGlvbiwgc2xhYikgYnkgcHJv Y2Vzcy4KCmFsbG9jYXRlZF9ieXRlcyB0cmFja3MgdGhlIGN1cnJlbnQgYnl0ZXMgb2YgbWVt b3J5IGFsbG9jYXRlZCB0byB0aGUKYmFja2VuZCBwcm9jZXNzLiBhc2V0X2FsbG9jYXRlZF9i eXRlcywgZHNtX2FsbG9jYXRlZF9ieXRlcywKZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMg YW5kIHNsYWJfYWxsb2NhdGVkX2J5dGVzIHRyYWNrIHRoZQphbGxvY2F0aW9uIGJ5IHR5cGUg Zm9yIHRoZSBiYWNrZW5kIHByb2Nlc3MuIFRoZXkgYXJlIHVwZGF0ZWQgZm9yIHRoZQpwcm9j ZXNzIGFzIG1lbW9yeSBpcyBtYWxsb2MnZC9mcmVlZC4gIE1lbW9yeSBhbGxvY2F0ZWQgdG8g aXRlbXMgb24KdGhlIGZyZWVsaXN0IGlzIGluY2x1ZGVkLiAgRHluYW1pYyBzaGFyZWQgbWVt b3J5IGFsbG9jYXRpb25zIGFyZQppbmNsdWRlZCBvbmx5IGluIHRoZSB2YWx1ZSBkaXNwbGF5 ZWQgZm9yIHRoZSBiYWNrZW5kIHRoYXQgY3JlYXRlZAp0aGVtLCB0aGV5IGFyZSBub3QgaW5j bHVkZWQgaW4gdGhlIHZhbHVlIGZvciBiYWNrZW5kcyB0aGF0IGFyZQphdHRhY2hlZCB0byB0 aGVtIHRvIGF2b2lkIGRvdWJsZSBjb3VudGluZy4gRFNNIGFsbG9jYXRpb25zIHRoYXQgYXJl Cm5vdCBkZXN0cm95ZWQgYnkgdGhlIGNyZWF0aW5nIHByb2Nlc3MgcHJpb3IgdG8gaXQncyBl eGl0IGFyZQpjb25zaWRlcmVkIGxvbmcgbGl2ZWQgYW5kIGFyZSB0cmFja2VkIGluIGEgZ2xv YmFsIGNvdW50ZXIKZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMuIFdlIGxpbWl0IHRoZSBm bG9vciBvZiBhbGxvY2F0aW9uCmNvdW50ZXJzIHRvIHplcm8uIENyZWF0ZWQgdmlld3MgcGdf c3RhdF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb24gYW5kCnBnX3N0YXRfbWVtb3J5X2FsbG9j YXRpb24gZm9yIGFjY2VzcyB0byB0aGVzZSB0cmFja2Vycy4KLS0tCiBkb2Mvc3JjL3NnbWwv bW9uaXRvcmluZy5zZ21sICAgICAgICAgICAgICAgIHwgMjQ2ICsrKysrKysrKysrKysrKysr KysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgIHwgIDM0 ICsrKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvZHNtLmMgICAgICAgICAgICAgICB8ICAx MSArLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvZHNtX2ltcGwuYyAgICAgICAgICB8ICA3 OCArKysrKysrCiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jICAgICAgICAgICAg IHwgICAxICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMg fCAxMTQgKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAg ICAgICAgIHwgIDg0ICsrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQu YyAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9hc2V0LmMgICAg ICAgICAgICAgICB8ICAxNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9u LmMgICAgICAgICB8ICAxNCArKwogc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9zbGFiLmMgICAg ICAgICAgICAgICB8ICAyMiArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAg ICAgICAgICAgICB8ICAxNyArKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmggICAgICAg ICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5o ICAgICAgICAgIHwgMTQ0ICsrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQgICAgICAgICB8ICAyNyArKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3RhdHMub3V0ICAgICAgICAgfCAgMzYgKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9z dGF0cy5zcWwgICAgICAgICAgICAgIHwgIDIwICsrCiAxNyBmaWxlcyBjaGFuZ2VkLCA4Njgg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvbW9uaXRvcmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRl eCA4YWNhMDgxNDBlLi41ZjgyN2ZlMGIwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9u aXRvcmluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTQ1 OTgsNiArNDU5OCwyNTIgQEAgZGVzY3JpcHRpb24gfCBXYWl0aW5nIGZvciBhIG5ld2x5IGlu aXRpYWxpemVkIFdBTCBmaWxlIHRvIHJlYWNoIGR1cmFibGUgc3RvcmFnZQogCiAgPC9zZWN0 Mj4KIAorIDxzZWN0MiBpZD0ibW9uaXRvcmluZy1wZy1zdGF0LW1lbW9yeS1hbGxvY2F0aW9u LXZpZXciPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlv bjwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0+CisgICA8cHJpbWFyeT5w Z19zdGF0X21lbW9yeV9hbGxvY2F0aW9uPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKwor ICA8cGFyYT4KKyAgIFRoZSA8c3RydWN0bmFtZT5wZ19zdGF0X21lbW9yeV9hbGxvY2F0aW9u PC9zdHJ1Y3RuYW1lPiB2aWV3IHdpbGwgaGF2ZSBvbmUKKyAgIHJvdyBwZXIgc2VydmVyIHBy b2Nlc3MsIHNob3dpbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgY3VycmVudCBtZW1v cnkKKyAgIGFsbG9jYXRpb24gb2YgdGhhdCBwcm9jZXNzIGluIHRvdGFsIGFuZCBieSBhbGxv Y2F0b3IgdHlwZS4gRHVlIHRvIHRoZQorICAgZHluYW1pYyBuYXR1cmUgb2YgbWVtb3J5IGFs bG9jYXRpb25zIHRoZSBhbGxvY2F0ZWQgYnl0ZXMgdmFsdWVzIG1heSBub3QgYmUKKyAgIGV4 YWN0IGJ1dCBzaG91bGQgYmUgc3VmZmljaWVudCBmb3IgdGhlIGludGVuZGVkIHB1cnBvc2Vz LiBEeW5hbWljIHNoYXJlZAorICAgbWVtb3J5IGFsbG9jYXRpb25zIGFyZSBpbmNsdWRlZCBv bmx5IGluIHRoZSB2YWx1ZSBkaXNwbGF5ZWQgZm9yIHRoZSBiYWNrZW5kCisgICB0aGF0IGNy ZWF0ZWQgdGhlbSwgdGhleSBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSB2YWx1ZSBmb3IgYmFj a2VuZHMgdGhhdCBhcmUKKyAgIGF0dGFjaGVkIHRvIHRoZW0gdG8gYXZvaWQgZG91YmxlIGNv dW50aW5nLiAgVXNlCisgICA8ZnVuY3Rpb24+cGdfc2l6ZV9wcmV0dHk8L2Z1bmN0aW9uPiBk ZXNjcmliZWQgaW4KKyAgIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1hZG1pbi1kYnNpemUi Lz4gdG8gbWFrZSB0aGVzZSB2YWx1ZXMgbW9yZSBlYXNpbHkKKyAgIHJlYWRhYmxlLgorICA8 L3BhcmE+CisKKyAgPHRhYmxlIGlkPSJwZy1zdGF0LW1lbW9yeS1hbGxvY2F0aW9uLXZpZXci IHhyZWZsYWJlbD0icGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbiI+CisgICA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbjwvc3RydWN0bmFtZT4gVmlldzwv dGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRhdGlkPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgT0lEIG9mIHRoZSBkYXRhYmFzZSB0aGlzIGJhY2tlbmQgaXMgY29ubmVjdGVk IHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBpZDwvc3RydWN0Zmll bGQ+IDx0eXBlPmludGVnZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBQcm9jZXNzIElEIG9mIHRoaXMgYmFja2VuZAorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5hbGxvY2F0ZWRfYnl0ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5i aWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAgTWVtb3J5 IGN1cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhpcyBiYWNrZW5kIGluIGJ5dGVzLiBUaGlzIGlz IHRoZSBiYWxhbmNlCisgICAgICBvZiBieXRlcyBhbGxvY2F0ZWQgYW5kIGZyZWVkIGJ5IHRo aXMgYmFja2VuZC4gRHluYW1pYyBzaGFyZWQgbWVtb3J5CisgICAgICBhbGxvY2F0aW9ucyBh cmUgaW5jbHVkZWQgb25seSBpbiB0aGUgdmFsdWUgZGlzcGxheWVkIGZvciB0aGUgYmFja2Vu ZCB0aGF0CisgICAgICBjcmVhdGVkIHRoZW0sIHRoZXkgYXJlIG5vdCBpbmNsdWRlZCBpbiB0 aGUgdmFsdWUgZm9yIGJhY2tlbmRzIHRoYXQgYXJlCisgICAgICBhdHRhY2hlZCB0byB0aGVt IHRvIGF2b2lkIGRvdWJsZSBjb3VudGluZy4KKyAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5hc2V0X2FsbG9jYXRlZF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2lu dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE1lbW9yeSBj dXJyZW50bHkgYWxsb2NhdGVkIHRvIHRoaXMgYmFja2VuZCBpbiBieXRlcyB2aWEgdGhlIGFs bG9jYXRpb24KKyAgICAgICBzZXQgYWxsb2NhdG9yLgorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5kc21fYWxsb2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTWVt b3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhpcyBiYWNrZW5kIGluIGJ5dGVzIHZpYSB0 aGUgZHluYW1pYworICAgICAgIHNoYXJlZCBtZW1vcnkgYWxsb2NhdG9yLiBVcG9uIHByb2Nl c3MgZXhpdCwgZHNtIGFsbG9jYXRpb25zIHRoYXQgaGF2ZQorICAgICAgIG5vdCBiZWVuIGZy ZWVkIGFyZSBjb25zaWRlcmVkIGxvbmcgbGl2ZWQgYW5kIGFkZGVkIHRvCisgICAgICAgPHN0 cnVjdGZpZWxkPmdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gZm91 bmQgaW4gdGhlCisgICAgICAgPGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LWds b2JhbC1tZW1vcnktYWxsb2NhdGlvbi12aWV3Ij4KKyAgICAgICA8c3RydWN0bmFtZT5wZ19z dGF0X2dsb2JhbF9tZW1vcnlfYWxsb2NhdGlvbjwvc3RydWN0bmFtZT48L2xpbms+IHZpZXcu CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmdlbmVyYXRpb25fYWxsb2Nh dGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTWVtb3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQg dG8gdGhpcyBiYWNrZW5kIGluIGJ5dGVzIHZpYSB0aGUgZ2VuZXJhdGlvbgorICAgICAgIGFs bG9jYXRvci4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2xhYl9hbGxv Y2F0ZWRfYnl0ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBNZW1vcnkgY3VycmVudGx5IGFsbG9jYXRl ZCB0byB0aGlzIGJhY2tlbmQgaW4gYnl0ZXMgdmlhIHRoZSBzbGFiCisgICAgICAgYWxsb2Nh dG9yLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgPC90Ym9k eT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorCisgPC9zZWN0Mj4KKworIDxzZWN0MiBp ZD0ibW9uaXRvcmluZy1wZy1zdGF0LWdsb2JhbC1tZW1vcnktYWxsb2NhdGlvbi12aWV3Ij4K KyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9u PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybT4KKyAgIDxwcmltYXJ5PnBn X3N0YXRfZ2xvYmFsLW1lbW9yeV9hbGxvY2F0aW9uPC9wcmltYXJ5PgorICA8L2luZGV4dGVy bT4KKworICA8cGFyYT4KKyAgIFRoZSA8c3RydWN0bmFtZT5wZ19zdGF0X2dsb2JhbF9tZW1v cnlfYWxsb2NhdGlvbjwvc3RydWN0bmFtZT4gdmlldyB3aWxsCisgICBoYXZlIG9uZSByb3cg c2hvd2luZyBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIGN1cnJlbnQgc2hhcmVkIG1lbW9yeQor ICAgYWxsb2NhdGlvbnMuIER1ZSB0byB0aGUgZHluYW1pYyBuYXR1cmUgb2YgbWVtb3J5IGFs bG9jYXRpb25zIHRoZSBhbGxvY2F0ZWQKKyAgIGJ5dGVzIHZhbHVlcyBtYXkgbm90IGJlIGV4 YWN0IGJ1dCBzaG91bGQgYmUgc3VmZmljaWVudCBmb3IgdGhlIGludGVuZGVkCisgICBwdXJw b3Nlcy4gVXNlIDxmdW5jdGlvbj5wZ19zaXplX3ByZXR0eTwvZnVuY3Rpb24+IGRlc2NyaWJl ZCBpbgorICAgPHhyZWYgbGlua2VuZD0iZnVuY3Rpb25zLWFkbWluLWRic2l6ZSIvPiB0byBt YWtlIHRoZSBieXRlIHBvcHVsYXRlZCB2YWx1ZXMKKyAgIG1vcmUgZWFzaWx5IHJlYWRhYmxl LgorICA8L3BhcmE+CisKKyAgPHRhYmxlIGlkPSJwZy1zdGF0LWdsb2JhbC1tZW1vcnktYWxs b2NhdGlvbi12aWV3IiB4cmVmbGFiZWw9InBnX3N0YXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0 aW9uIj4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X2dsb2JhbF9tZW1vcnlfYWxs b2NhdGlvbjwvc3RydWN0bmFtZT4gVmlldzwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEi PgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg Q29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2Ny aXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVh ZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPmRhdGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT0lEIG9mIHRoZSBkYXRhYmFz ZSB0aGlzIGJhY2tlbmQgaXMgY29ubmVjdGVkIHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnNoYXJlZF9tZW1vcnlfc2l6ZV9tYjwvc3RydWN0ZmllbGQ+IDx0eXBl PmludGVnZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBS ZXBvcnRzIHRoZSBzaXplIG9mIHRoZSBtYWluIHNoYXJlZCBtZW1vcnkgYXJlYSwgcm91bmRl ZCB1cCB0byB0aGUKKyAgICAgICBuZWFyZXN0IG1lZ2FieXRlLiBTZWUgPHhyZWYgbGlua2Vu ZD0iZ3VjLXNoYXJlZC1tZW1vcnktc2l6ZSIvPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+c2hhcmVkX21lbW9yeV9zaXplX2luX2h1Z2VfcGFnZXM8L3N0cnVjdGZp ZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgor ICAgICAgUmVwb3J0cyB0aGUgbnVtYmVyIG9mIGh1Z2UgcGFnZXMgdGhhdCBhcmUgbmVlZGVk IGZvciB0aGUgbWFpbiBzaGFyZWQKKyAgICAgIG1lbW9yeSBhcmVhIGJhc2VkIG9uIHRoZSBz cGVjaWZpZWQgaHVnZV9wYWdlX3NpemUuIElmIGh1Z2UgcGFnZXMgYXJlIG5vdAorICAgICAg c3VwcG9ydGVkLCB0aGlzIHdpbGwgYmUgLTEuIFNlZQorICAgICAgPHhyZWYgbGlua2VuZD0i Z3VjLXNoYXJlZC1tZW1vcnktc2l6ZS1pbi1odWdlLXBhZ2VzIi8+LgorICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVzPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgTG9uZyBsaXZlZCBkeW5hbWljYWxseSBhbGxvY2F0ZWQgbWVtb3J5IGN1 cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhlCisgICAgICAgZGF0YWJhc2UuIFVwb24gcHJvY2Vz cyBleGl0LCBkc20gYWxsb2NhdGlvbnMgdGhhdCBoYXZlIG5vdCBiZWVuIGZyZWVkCisgICAg ICAgYXJlIGNvbnNpZGVyZWQgbG9uZyBsaXZlZCBhbmQgYWRkZWQgdG8KKyAgICAgICA8c3Ry dWN0ZmllbGQ+Z2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXM8L3N0cnVjdGZpZWxkPi4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYXNldF9hbGxvY2F0ZWRf Ynl0ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBTdW0gdG90YWwgb2YgPHN0cnVjdGZpZWxkPmFzZXRf YWxsb2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gZm9yIGFsbAorICAgICAgIGJhY2tlbmQg cHJvY2Vzc2VzIGZyb20KKyAgICAgICA8bGluayBsaW5rZW5kPSJtb25pdG9yaW5nLXBnLXN0 YXQtbWVtb3J5LWFsbG9jYXRpb24tdmlldyI+CisgICAgICAgPHN0cnVjdG5hbWU+cGdfc3Rh dF9tZW1vcnlfYWxsb2NhdGlvbjwvc3RydWN0bmFtZT48L2xpbms+IHZpZXcuCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBTdW0gdG90YWwgb2YgPHN0cnVjdGZpZWxkPmRzbV9hbGxvY2F0 ZWRfYnl0ZXM8L3N0cnVjdGZpZWxkPiBmb3IgYWxsCisgICAgICAgYmFja2VuZCBwcm9jZXNz ZXMgZnJvbQorICAgICAgIDxsaW5rIGxpbmtlbmQ9Im1vbml0b3JpbmctcGctc3RhdC1tZW1v cnktYWxsb2NhdGlvbi12aWV3Ij4KKyAgICAgICA8c3RydWN0bmFtZT5wZ19zdGF0X21lbW9y eV9hbGxvY2F0aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz4gdmlldy4KKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBTdW0gdG90YWwgb2YgPHN0cnVjdGZpZWxkPmdlbmVyYXRpb25f YWxsb2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gZm9yCisgICAgICAgYWxsIGJhY2tlbmQg cHJvY2Vzc2VzIGZyb20KKyAgICAgICA8bGluayBsaW5rZW5kPSJtb25pdG9yaW5nLXBnLXN0 YXQtbWVtb3J5LWFsbG9jYXRpb24tdmlldyI+CisgICAgICAgPHN0cnVjdG5hbWU+cGdfc3Rh dF9tZW1vcnlfYWxsb2NhdGlvbjwvc3RydWN0bmFtZT48L2xpbms+IHZpZXcuCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX3NsYWJfYWxsb2NhdGVkX2J5dGVz PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgU3VtIHRvdGFsIG9mIDxzdHJ1Y3RmaWVsZD5zbGFiX2FsbG9j YXRlZF9ieXRlczwvc3RydWN0ZmllbGQ+IGZvciBhbGwKKyAgICAgICBiYWNrZW5kIHByb2Nl c3NlcyBmcm9tCisgICAgICAgPGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LW1l bW9yeS1hbGxvY2F0aW9uLXZpZXciPgorICAgICAgIDxzdHJ1Y3RuYW1lPnBnX3N0YXRfbWVt b3J5X2FsbG9jYXRpb248L3N0cnVjdG5hbWU+PC9saW5rPiB2aWV3LgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgor ICA8L3RhYmxlPgorCisgPC9zZWN0Mj4KKwogIDxzZWN0MiBpZD0ibW9uaXRvcmluZy1zdGF0 cy1mdW5jdGlvbnMiPgogICA8dGl0bGU+U3RhdGlzdGljcyBGdW5jdGlvbnM8L3RpdGxlPgog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggMDQyMjdhNzJkMS4u NjFmZjRhNTliNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmll d3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAt MTM3NSwzICsxMzc1LDM3IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0 YXRzIEFTCiAKIENSRUFURSBWSUVXIHBnX3dhaXRfZXZlbnRzIEFTCiAgICAgU0VMRUNUICog RlJPTSBwZ19nZXRfd2FpdF9ldmVudHMoKTsKKworQ1JFQVRFIFZJRVcgcGdfc3RhdF9tZW1v cnlfYWxsb2NhdGlvbiBBUworICAgIFNFTEVDVAorICAgICAgICBTLmRhdGlkIEFTIGRhdGlk LAorICAgICAgICBTLnBpZCwKKyAgICAgICAgUy5hbGxvY2F0ZWRfYnl0ZXMsCisgICAgICAg IFMuYXNldF9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgICAgIFMuZHNtX2FsbG9jYXRlZF9ieXRl cywKKyAgICAgICAgUy5nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcywKKyAgICAgICAgUy5z bGFiX2FsbG9jYXRlZF9ieXRlcworICAgIEZST00gcGdfc3RhdF9nZXRfbWVtb3J5X2FsbG9j YXRpb24oTlVMTCkgQVMgUworICAgICAgICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgQVMgRCBP TiAoUy5kYXRpZCA9IEQub2lkKTsKKworQ1JFQVRFIFZJRVcgcGdfc3RhdF9nbG9iYWxfbWVt b3J5X2FsbG9jYXRpb24gQVMKK1dJVEggc3VtcyBBUyAoCisgICAgU0VMRUNUCisgICAgICAg IFNVTShhc2V0X2FsbG9jYXRlZF9ieXRlcykgQVMgdG90YWxfYXNldF9hbGxvY2F0ZWRfYnl0 ZXMsCisgICAgICAgIFNVTShkc21fYWxsb2NhdGVkX2J5dGVzKSBBUyB0b3RhbF9kc21fYWxs b2NhdGVkX2J5dGVzLAorICAgICAgICBTVU0oZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMp IEFTIHRvdGFsX2dlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzLAorICAgICAgICBTVU0oc2xh Yl9hbGxvY2F0ZWRfYnl0ZXMpIEFTIHRvdGFsX3NsYWJfYWxsb2NhdGVkX2J5dGVzCisgICAg RlJPTQorICAgICAgICBwZ19zdGF0X21lbW9yeV9hbGxvY2F0aW9uCispCitTRUxFQ1QKKyAg ICAgICAgUy5kYXRpZCBBUyBkYXRpZCwKKyAgICAgICAgY3VycmVudF9zZXR0aW5nKCdzaGFy ZWRfbWVtb3J5X3NpemUnLCB0cnVlKSBhcyBzaGFyZWRfbWVtb3J5X3NpemUsCisgICAgICAg IChjdXJyZW50X3NldHRpbmcoJ3NoYXJlZF9tZW1vcnlfc2l6ZV9pbl9odWdlX3BhZ2VzJywg dHJ1ZSkpOjppbnRlZ2VyIGFzIHNoYXJlZF9tZW1vcnlfc2l6ZV9pbl9odWdlX3BhZ2VzLAor ICAgICAgICBTLmdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVzLAorICAgICAgICBzdW1zLnRv dGFsX2FzZXRfYWxsb2NhdGVkX2J5dGVzLAorICAgICAgICBzdW1zLnRvdGFsX2RzbV9hbGxv Y2F0ZWRfYnl0ZXMsCisgICAgICAgIHN1bXMudG90YWxfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRf Ynl0ZXMsCisgICAgICAgIHN1bXMudG90YWxfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMKKyAgICBG Uk9NIHN1bXMsIHBnX3N0YXRfZ2V0X2dsb2JhbF9tZW1vcnlfYWxsb2NhdGlvbigpIEFTIFMK KyAgICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIEFTIEQgT04gKFMuZGF0aWQgPSBELm9p ZCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc20uYyBiL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL2RzbS5jCmluZGV4IGMyZTMzYTdlNDMuLmI5NTA2NDA2NDMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbS5jCisrKyBiL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL2RzbS5jCkBAIC04MDIsNiArODAyLDE1IEBAIGRzbV9kZXRh Y2hfYWxsKHZvaWQpCiB2b2lkCiBkc21fZGV0YWNoKGRzbV9zZWdtZW50ICpzZWcpCiB7CisJ LyoKKwkgKiBSZXRhaW4gbWFwcGVkX3NpemUgdG8gcGFzcyBpbnRvIGRlc3Ryb3kgY2FsbCBp biBjYXNlcyB3aGVyZSB0aGUgZGV0YWNoCisJICogaXMgdGhlIGxhc3QgcmVmZXJlbmNlLiBt YXBwZWRfc2l6ZSBpcyB6ZXJvZWQgYXMgcGFydCBvZiB0aGUgZGV0YWNoCisJICogcHJvY2Vz cywgYnV0IGlzIG5lZWRlZCBsYXRlciBpbiB0aGVzZSBjYXNlcyBmb3IgZHNtX2FsbG9jYXRl ZF9ieXRlcworCSAqIGFjY291bnRpbmcuCisJICovCisJU2l6ZQkJbG9jYWxfc2VnX21hcHBl ZF9zaXplID0gc2VnLT5tYXBwZWRfc2l6ZTsKKwlTaXplCSAgICpwdHJfbG9jYWxfc2VnX21h cHBlZF9zaXplID0gJmxvY2FsX3NlZ19tYXBwZWRfc2l6ZTsKKwogCS8qCiAJICogSW52b2tl IHJlZ2lzdGVyZWQgY2FsbGJhY2tzLiAgSnVzdCBpbiBjYXNlIG9uZSBvZiB0aG9zZSBjYWxs YmFja3MKIAkgKiB0aHJvd3MgYSBmdXJ0aGVyIGVycm9yIHRoYXQgYnJpbmdzIHVzIGJhY2sg aGVyZSwgcG9wIHRoZSBjYWxsYmFjawpAQCAtODgyLDcgKzg5MSw3IEBAIGRzbV9kZXRhY2go ZHNtX3NlZ21lbnQgKnNlZykKIAkJCSAqLwogCQkJaWYgKGlzX21haW5fcmVnaW9uX2RzbV9o YW5kbGUoc2VnLT5oYW5kbGUpIHx8CiAJCQkJZHNtX2ltcGxfb3AoRFNNX09QX0RFU1RST1ks IHNlZy0+aGFuZGxlLCAwLCAmc2VnLT5pbXBsX3ByaXZhdGUsCi0JCQkJCQkJJnNlZy0+bWFw cGVkX2FkZHJlc3MsICZzZWctPm1hcHBlZF9zaXplLCBXQVJOSU5HKSkKKwkJCQkJCQkmc2Vn LT5tYXBwZWRfYWRkcmVzcywgcHRyX2xvY2FsX3NlZ19tYXBwZWRfc2l6ZSwgV0FSTklORykp CiAJCQl7CiAJCQkJTFdMb2NrQWNxdWlyZShEeW5hbWljU2hhcmVkTWVtb3J5Q29udHJvbExv Y2ssIExXX0VYQ0xVU0lWRSk7CiAJCQkJaWYgKGlzX21haW5fcmVnaW9uX2RzbV9oYW5kbGUo c2VnLT5oYW5kbGUpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvZHNt X2ltcGwuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMKaW5kZXggOGRk NjY5ZTBjZS4uYWY2N2U1NWJkZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvZHNtX2ltcGwuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5j CkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9kc21faW1wbC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQu aCIKKyNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxz L2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAKQEAgLTIzMiw2ICsyMzMs MTQgQEAgZHNtX2ltcGxfcG9zaXgoZHNtX29wIG9wLCBkc21faGFuZGxlIGhhbmRsZSwgU2l6 ZSByZXF1ZXN0X3NpemUsCiAJCQkJCQkJbmFtZSkpKTsKIAkJCXJldHVybiBmYWxzZTsKIAkJ fQorCisJCS8qCisJCSAqIERldGFjaCBhbmQgZGVzdHJveSBwYXNzIHRocm91Z2ggaGVyZSwg b25seSBkZWNyZWFzZSB0aGUgbWVtb3J5CisJCSAqIHNob3duIGFsbG9jYXRlZCBpbiBwZ19z dGF0X2FjdGl2aXR5IHdoZW4gdGhlIGNyZWF0b3IgZGVzdHJveXMgdGhlCisJCSAqIGFsbG9j YXRpb24uCisJCSAqLworCQlpZiAob3AgPT0gRFNNX09QX0RFU1RST1kpCisJCQlwZ3N0YXRf cmVwb3J0X2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZSgqbWFwcGVkX3NpemUsIFBHX0FMTE9D X0RTTSk7CiAJCSptYXBwZWRfYWRkcmVzcyA9IE5VTEw7CiAJCSptYXBwZWRfc2l6ZSA9IDA7 CiAJCWlmIChvcCA9PSBEU01fT1BfREVTVFJPWSAmJiBzaG1fdW5saW5rKG5hbWUpICE9IDAp CkBAIC0zMzIsNiArMzQxLDMzIEBAIGRzbV9pbXBsX3Bvc2l4KGRzbV9vcCBvcCwgZHNtX2hh bmRsZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQkJCQkJbmFtZSkpKTsKIAkJcmV0 dXJuIGZhbHNlOwogCX0KKworCS8qCisJICogQXR0YWNoIGFuZCBjcmVhdGUgcGFzcyB0aHJv dWdoIGhlcmUsIG9ubHkgdXBkYXRlIGJhY2tlbmQgbWVtb3J5CisJICogYWxsb2NhdGVkIGlu IHBnX3N0YXRfYWN0aXZpdHkgZm9yIHRoZSBjcmVhdG9yIHByb2Nlc3MuCisJICovCisJaWYg KG9wID09IERTTV9PUF9DUkVBVEUpCisJeworCQkvKgorCQkgKiBQb3NpeCBjcmVhdGlvbiBj YWxscyBkc21faW1wbF9wb3NpeF9yZXNpemUgaW1wbHlpbmcgdGhhdCByZXNpemluZworCQkg KiBvY2N1cnMgb3IgbWF5IGJlIGFkZGVkIGluIHRoZSBmdXR1cmUuIEFzIGltcGxlbWVudGVk CisJCSAqIGRzbV9pbXBsX3Bvc2l4X3Jlc2l6ZSB1dGlsaXplcyBmYWxsb2NhdGUgb3IgdHJ1 bmNhdGUsIHBhc3NpbmcgdGhlCisJCSAqIHdob2xlIG5ldyBzaXplIGFzIGlucHV0LCBncm93 aW5nIHRoZSBhbGxvY2F0aW9uIGFzIG5lZWRlZCAob25seQorCQkgKiB0cnVuY2F0ZSBzdXBw b3J0cyBzaHJpbmtpbmcpLiBXZSB1cGRhdGUgYnkgcmVwbGFjaW5nIHRoZSBvbGQKKwkJICog YWxsb2NhdGlvbiB3aXRoIHRoZSBuZXcuCisJCSAqLworI2lmIGRlZmluZWQoSEFWRV9QT1NJ WF9GQUxMT0NBVEUpICYmIGRlZmluZWQoX19saW51eF9fKQorCQkvKgorCQkgKiBwb3NpeF9m YWxsb2NhdGUgZG9lcyBub3Qgc2hyaW5rIGFsbG9jYXRpb25zLCBhZGp1c3Qgb25seSBvbgor CQkgKiBhbGxvY2F0aW9uIGluY3JlYXNlLgorCQkgKi8KKwkJaWYgKHJlcXVlc3Rfc2l6ZSA+ ICptYXBwZWRfc2l6ZSkKKwkJCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2luY3Jl YXNlKHJlcXVlc3Rfc2l6ZSAtICptYXBwZWRfc2l6ZSwgUEdfQUxMT0NfRFNNKTsKKyNlbHNl CisJCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKCptYXBwZWRfc2l6 ZSwgUEdfQUxMT0NfRFNNKTsKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfaW5j cmVhc2UocmVxdWVzdF9zaXplLCBQR19BTExPQ19EU00pOworI2VuZGlmCisJfQogCSptYXBw ZWRfYWRkcmVzcyA9IGFkZHJlc3M7CiAJKm1hcHBlZF9zaXplID0gcmVxdWVzdF9zaXplOwog CWNsb3NlKGZkKTsKQEAgLTUzOCw2ICs1NzQsMTQgQEAgZHNtX2ltcGxfc3lzdihkc21fb3Ag b3AsIGRzbV9oYW5kbGUgaGFuZGxlLCBTaXplIHJlcXVlc3Rfc2l6ZSwKIAkJCQkJCQluYW1l KSkpOwogCQkJcmV0dXJuIGZhbHNlOwogCQl9CisKKwkJLyoKKwkJICogRGV0YWNoIGFuZCBk ZXN0cm95IHBhc3MgdGhyb3VnaCBoZXJlLCBvbmx5IGRlY3JlYXNlIHRoZSBtZW1vcnkKKwkJ ICogc2hvd24gYWxsb2NhdGVkIGluIHBnX3N0YXRfYWN0aXZpdHkgd2hlbiB0aGUgY3JlYXRv ciBkZXN0cm95cyB0aGUKKwkJICogYWxsb2NhdGlvbi4KKwkJICovCisJCWlmIChvcCA9PSBE U01fT1BfREVTVFJPWSkKKwkJCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3Jl YXNlKCptYXBwZWRfc2l6ZSwgUEdfQUxMT0NfRFNNKTsKIAkJKm1hcHBlZF9hZGRyZXNzID0g TlVMTDsKIAkJKm1hcHBlZF9zaXplID0gMDsKIAkJaWYgKG9wID09IERTTV9PUF9ERVNUUk9Z ICYmIHNobWN0bChpZGVudCwgSVBDX1JNSUQsIE5VTEwpIDwgMCkKQEAgLTU4NSw2ICs2Mjks MTMgQEAgZHNtX2ltcGxfc3lzdihkc21fb3Agb3AsIGRzbV9oYW5kbGUgaGFuZGxlLCBTaXpl IHJlcXVlc3Rfc2l6ZSwKIAkJCQkJCW5hbWUpKSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CisK KwkvKgorCSAqIEF0dGFjaCBhbmQgY3JlYXRlIHBhc3MgdGhyb3VnaCBoZXJlLCBvbmx5IHVw ZGF0ZSBiYWNrZW5kIG1lbW9yeQorCSAqIGFsbG9jYXRlZCBpbiBwZ19zdGF0X2FjdGl2aXR5 IGZvciB0aGUgY3JlYXRvciBwcm9jZXNzLgorCSAqLworCWlmIChvcCA9PSBEU01fT1BfQ1JF QVRFKQorCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShyZXF1ZXN0 X3NpemUsIFBHX0FMTE9DX0RTTSk7CiAJKm1hcHBlZF9hZGRyZXNzID0gYWRkcmVzczsKIAkq bWFwcGVkX3NpemUgPSByZXF1ZXN0X3NpemU7CiAKQEAgLTY1Myw2ICs3MDQsMTMgQEAgZHNt X2ltcGxfd2luZG93cyhkc21fb3Agb3AsIGRzbV9oYW5kbGUgaGFuZGxlLCBTaXplIHJlcXVl c3Rfc2l6ZSwKIAkJCXJldHVybiBmYWxzZTsKIAkJfQogCisJCS8qCisJCSAqIERldGFjaCBh bmQgZGVzdHJveSBwYXNzIHRocm91Z2ggaGVyZSwgb25seSBkZWNyZWFzZSB0aGUgbWVtb3J5 CisJCSAqIHNob3duIGFsbG9jYXRlZCBpbiBwZ19zdGF0X2FjdGl2aXR5IHdoZW4gdGhlIGNy ZWF0b3IgZGVzdHJveXMgdGhlCisJCSAqIGFsbG9jYXRpb24uCisJCSAqLworCQlpZiAob3Ag PT0gRFNNX09QX0RFU1RST1kpCisJCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19k ZWNyZWFzZSgqbWFwcGVkX3NpemUsIFBHX0FMTE9DX0RTTSk7CiAJCSppbXBsX3ByaXZhdGUg PSBOVUxMOwogCQkqbWFwcGVkX2FkZHJlc3MgPSBOVUxMOwogCQkqbWFwcGVkX3NpemUgPSAw OwpAQCAtNzY5LDYgKzgyNywxMiBAQCBkc21faW1wbF93aW5kb3dzKGRzbV9vcCBvcCwgZHNt X2hhbmRsZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQlyZXR1cm4gZmFsc2U7CiAJ fQogCisJLyoKKwkgKiBBdHRhY2ggYW5kIGNyZWF0ZSBwYXNzIHRocm91Z2ggaGVyZSwgb25s eSB1cGRhdGUgYmFja2VuZCBtZW1vcnkKKwkgKiBhbGxvY2F0ZWQgaW4gcGdfc3RhdF9hY3Rp dml0eSBmb3IgdGhlIGNyZWF0b3IgcHJvY2Vzcy4KKwkgKi8KKwlpZiAob3AgPT0gRFNNX09Q X0NSRUFURSkKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UoaW5m by5SZWdpb25TaXplLCBQR19BTExPQ19EU00pOwogCSptYXBwZWRfYWRkcmVzcyA9IGFkZHJl c3M7CiAJKm1hcHBlZF9zaXplID0gaW5mby5SZWdpb25TaXplOwogCSppbXBsX3ByaXZhdGUg PSBobWFwOwpAQCAtODEzLDYgKzg3NywxMyBAQCBkc21faW1wbF9tbWFwKGRzbV9vcCBvcCwg ZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQkJCQkJCW5hbWUpKSk7 CiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KKworCQkvKgorCQkgKiBEZXRhY2ggYW5kIGRlc3Ry b3kgcGFzcyB0aHJvdWdoIGhlcmUsIG9ubHkgZGVjcmVhc2UgdGhlIG1lbW9yeQorCQkgKiBz aG93biBhbGxvY2F0ZWQgaW4gcGdfc3RhdF9hY3Rpdml0eSB3aGVuIHRoZSBjcmVhdG9yIGRl c3Ryb3lzIHRoZQorCQkgKiBhbGxvY2F0aW9uLgorCQkgKi8KKwkJcGdzdGF0X3JlcG9ydF9h bGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2UoKm1hcHBlZF9zaXplLCBQR19BTExPQ19EU00pOwog CQkqbWFwcGVkX2FkZHJlc3MgPSBOVUxMOwogCQkqbWFwcGVkX3NpemUgPSAwOwogCQlpZiAo b3AgPT0gRFNNX09QX0RFU1RST1kgJiYgdW5saW5rKG5hbWUpICE9IDApCkBAIC05MzQsNiAr MTAwNSwxMyBAQCBkc21faW1wbF9tbWFwKGRzbV9vcCBvcCwgZHNtX2hhbmRsZSBoYW5kbGUs IFNpemUgcmVxdWVzdF9zaXplLAogCQkJCQkJbmFtZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwog CX0KKworCS8qCisJICogQXR0YWNoIGFuZCBjcmVhdGUgcGFzcyB0aHJvdWdoIGhlcmUsIG9u bHkgdXBkYXRlIGJhY2tlbmQgbWVtb3J5CisJICogYWxsb2NhdGVkIGluIHBnX3N0YXRfYWN0 aXZpdHkgZm9yIHRoZSBjcmVhdG9yIHByb2Nlc3MuCisJICovCisJaWYgKG9wID09IERTTV9P UF9DUkVBVEUpCisJCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2luY3JlYXNlKHJl cXVlc3Rfc2l6ZSwgUEdfQUxMT0NfRFNNKTsKIAkqbWFwcGVkX2FkZHJlc3MgPSBhZGRyZXNz OwogCSptYXBwZWRfc2l6ZSA9IHJlcXVlc3Rfc2l6ZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9w cm9jLmMKaW5kZXggZjNlMjAwMzhmNC4uMTk1OWI1ZjRlNiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xt Z3IvcHJvYy5jCkBAIC0xODAsNiArMTgwLDcgQEAgSW5pdFByb2NHbG9iYWwodm9pZCkKIAlQ cm9jR2xvYmFsLT5jaGVja3BvaW50ZXJMYXRjaCA9IE5VTEw7CiAJcGdfYXRvbWljX2luaXRf dTMyKCZQcm9jR2xvYmFsLT5wcm9jQXJyYXlHcm91cEZpcnN0LCBJTlZBTElEX1BST0NfTlVN QkVSKTsKIAlwZ19hdG9taWNfaW5pdF91MzIoJlByb2NHbG9iYWwtPmNsb2dHcm91cEZpcnN0 LCBJTlZBTElEX1BST0NfTlVNQkVSKTsKKwlwZ19hdG9taWNfaW5pdF91NjQoJlByb2NHbG9i YWwtPmdsb2JhbF9kc21fYWxsb2NhdGlvbiwgMCk7CiAKIAkvKgogCSAqIENyZWF0ZSBhbmQg aW5pdGlhbGl6ZSBhbGwgdGhlIFBHUFJPQyBzdHJ1Y3R1cmVzIHdlJ2xsIG5lZWQuICBUaGVy ZSBhcmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2JhY2tlbmRf c3RhdHVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5j CmluZGV4IDFjY2Y0YzZkODMuLjI1YjU0NTQ0MWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvYmFja2VuZF9zdGF0dXMuYwpAQCAtNDgsNiArNDgsMjQgQEAgaW50CQkJ cGdzdGF0X3RyYWNrX2FjdGl2aXR5X3F1ZXJ5X3NpemUgPSAxMDI0OwogLyogZXhwb3NlZCBz byB0aGF0IGJhY2tlbmRfcHJvZ3Jlc3MuYyBjYW4gYWNjZXNzIGl0ICovCiBQZ0JhY2tlbmRT dGF0dXMgKk15QkVFbnRyeSA9IE5VTEw7CiAKKy8qCisgKiBNZW1vcnkgYWxsb2NhdGVkIHRv IHRoaXMgYmFja2VuZCBwcmlvciB0byBwZ3N0YXRzIGluaXRpYWxpemF0aW9uLiBNaWdyYXRl ZCB0bworICogc2hhcmVkIG1lbW9yeSBvbiBwZ3N0YXRzIGluaXRpYWxpemF0aW9uLgorICov Cit1aW50NjQJCWxvY2FsX215X2FsbG9jYXRlZF9ieXRlcyA9IDA7Cit1aW50NjQJICAgKm15 X2FsbG9jYXRlZF9ieXRlcyA9ICZsb2NhbF9teV9hbGxvY2F0ZWRfYnl0ZXM7CisKKy8qIE1l bW9yeSBhbGxvY2F0ZWQgdG8gdGhpcyBiYWNrZW5kIGJ5IHR5cGUgcHJpb3IgdG8gcGdzdGF0 cyBpbml0aWFsaXphdGlvbi4KKyAqIE1pZ3JhdGVkIHRvIHNoYXJlZCBtZW1vcnkgb24gcGdz dGF0cyBpbml0aWFsaXphdGlvbgorICovCit1aW50NjQJCWxvY2FsX215X2FzZXRfYWxsb2Nh dGVkX2J5dGVzID0gMDsKK3VpbnQ2NAkgICAqbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXMgPSAm bG9jYWxfbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXM7Cit1aW50NjQJCWxvY2FsX215X2RzbV9h bGxvY2F0ZWRfYnl0ZXMgPSAwOwordWludDY0CSAgICpteV9kc21fYWxsb2NhdGVkX2J5dGVz ID0gJmxvY2FsX215X2RzbV9hbGxvY2F0ZWRfYnl0ZXM7Cit1aW50NjQJCWxvY2FsX215X2dl bmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzID0gMDsKK3VpbnQ2NAkgICAqbXlfZ2VuZXJhdGlv bl9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0 ZXM7Cit1aW50NjQJCWxvY2FsX215X3NsYWJfYWxsb2NhdGVkX2J5dGVzID0gMDsKK3VpbnQ2 NAkgICAqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfc2xhYl9hbGxvY2F0 ZWRfYnl0ZXM7CiAKIHN0YXRpYyBQZ0JhY2tlbmRTdGF0dXMgKkJhY2tlbmRTdGF0dXNBcnJh eSA9IE5VTEw7CiBzdGF0aWMgY2hhciAqQmFja2VuZEFwcG5hbWVCdWZmZXIgPSBOVUxMOwpA QCAtMzgyLDYgKzQwMCwzMiBAQCBwZ3N0YXRfYmVzdGFydCh2b2lkKQogCWxiZWVudHJ5LnN0 X3Byb2dyZXNzX2NvbW1hbmRfdGFyZ2V0ID0gSW52YWxpZE9pZDsKIAlsYmVlbnRyeS5zdF9x dWVyeV9pZCA9IFVJTlQ2NENPTlNUKDApOwogCisJLyogQWx0ZXIgYWxsb2NhdGlvbiByZXBv cnRpbmcgZnJvbSBsb2NhbCBzdG9yYWdlIHRvIHNoYXJlZCBtZW1vcnkgKi8KKwlwZ3N0YXRf c2V0X2FsbG9jYXRlZF9ieXRlc19zdG9yYWdlKCZNeUJFRW50cnktPmFsbG9jYXRlZF9ieXRl cywKKwkJCQkJCQkJCSAgICZNeUJFRW50cnktPmFzZXRfYWxsb2NhdGVkX2J5dGVzLAorCQkJ CQkJCQkJICAgJk15QkVFbnRyeS0+ZHNtX2FsbG9jYXRlZF9ieXRlcywKKwkJCQkJCQkJCSAg ICZNeUJFRW50cnktPmdlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzLAorCQkJCQkJCQkJICAg Jk15QkVFbnRyeS0+c2xhYl9hbGxvY2F0ZWRfYnl0ZXMpOworCisJLyoKKwkgKiBQb3B1bGF0 ZSBzdW0gb2YgbWVtb3J5IGFsbG9jYXRlZCBwcmlvciB0byBwZ3N0YXRzIGluaXRpYWxpemF0 aW9uIHRvCisJICogcGdzdGF0cyBhbmQgemVybyB0aGUgbG9jYWwgdmFyaWFibGUuIFRoaXMg aXMgYSArPSBhc3NpZ25tZW50IGJlY2F1c2UKKwkgKiBJbml0UG9zdGdyZXMgYWxsb2NhdGVz IG1lbW9yeSBhZnRlciBwZ3N0YXRfYmVpbml0IGJ1dCBwcmlvciB0bworCSAqIHBnc3RhdF9i ZXN0YXJ0IHNvIHdlIGhhdmUgYWxsb2NhdGlvbnMgdG8gYm90aCBsb2NhbCBhbmQgc2hhcmVk IG1lbW9yeQorCSAqIHRvIGNvbWJpbmUuCisJICovCisJbGJlZW50cnkuYWxsb2NhdGVkX2J5 dGVzICs9IGxvY2FsX215X2FsbG9jYXRlZF9ieXRlczsKKwlsb2NhbF9teV9hbGxvY2F0ZWRf Ynl0ZXMgPSAwOworCWxiZWVudHJ5LmFzZXRfYWxsb2NhdGVkX2J5dGVzICs9IGxvY2FsX215 X2FzZXRfYWxsb2NhdGVkX2J5dGVzOworCWxvY2FsX215X2FzZXRfYWxsb2NhdGVkX2J5dGVz ID0gMDsKKworCWxiZWVudHJ5LmRzbV9hbGxvY2F0ZWRfYnl0ZXMgKz0gbG9jYWxfbXlfZHNt X2FsbG9jYXRlZF9ieXRlczsKKwlsb2NhbF9teV9kc21fYWxsb2NhdGVkX2J5dGVzID0gMDsK KwlsYmVlbnRyeS5nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyArPSBsb2NhbF9teV9nZW5l cmF0aW9uX2FsbG9jYXRlZF9ieXRlczsKKwlsb2NhbF9teV9nZW5lcmF0aW9uX2FsbG9jYXRl ZF9ieXRlcyA9IDA7CisJbGJlZW50cnkuc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgKz0gbG9jYWxf bXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXM7CisJbG9jYWxfbXlfc2xhYl9hbGxvY2F0ZWRfYnl0 ZXMgPSAwOworCiAJLyoKIAkgKiB3ZSBkb24ndCB6ZXJvIHN0X3Byb2dyZXNzX3BhcmFtIGhl cmUgdG8gc2F2ZSBjeWNsZXM7IG5vYm9keSBzaG91bGQKIAkgKiBleGFtaW5lIGl0IHVudGls IHN0X3Byb2dyZXNzX2NvbW1hbmQgaGFzIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBvdGhlcgpA QCAtNDQxLDYgKzQ4NSw5IEBAIHBnc3RhdF9iZXNodXRkb3duX2hvb2soaW50IGNvZGUsIERh dHVtIGFyZykKIHsKIAl2b2xhdGlsZSBQZ0JhY2tlbmRTdGF0dXMgKmJlZW50cnkgPSBNeUJF RW50cnk7CiAKKwkvKiBTdG9wIHJlcG9ydGluZyBtZW1vcnkgYWxsb2NhdGlvbiBjaGFuZ2Vz IHRvIHNoYXJlZCBtZW1vcnkgKi8KKwlwZ3N0YXRfcmVzZXRfYWxsb2NhdGVkX2J5dGVzX3N0 b3JhZ2UoKTsKKwogCS8qCiAJICogQ2xlYXIgbXkgc3RhdHVzIGVudHJ5LCBmb2xsb3dpbmcg dGhlIHByb3RvY29sIG9mIGJ1bXBpbmcgc3RfY2hhbmdlY291bnQKIAkgKiBiZWZvcmUgYW5k IGFmdGVyLiAgV2UgdXNlIGEgdm9sYXRpbGUgcG9pbnRlciBoZXJlIHRvIGVuc3VyZSB0aGUK QEAgLTExOTUsMyArMTI0Miw3MCBAQCBwZ3N0YXRfY2xpcF9hY3Rpdml0eShjb25zdCBjaGFy ICpyYXdfYWN0aXZpdHkpCiAKIAlyZXR1cm4gYWN0aXZpdHk7CiB9CisKKy8qCisgKiBDb25m aWd1cmUgYnl0ZXMgYWxsb2NhdGVkIHJlcG9ydGluZyB0byByZXBvcnQgYWxsb2NhdGVkIGJ5 dGVzIHRvCisgKiBzaGFyZWQgbWVtb3J5LgorICoKKyAqIEV4cGVjdGVkIHRvIGJlIGNhbGxl ZCBkdXJpbmcgYmFja2VuZCBzdGFydHVwIChpbiBwZ3N0YXRfYmVzdGFydCksIHRvIHBvaW50 CisgKiBhbGxvY2F0ZWQgYnl0ZXMgYWNjb3VudGluZyBpbnRvIHNoYXJlZCBtZW1vcnkuCisg Ki8KK3ZvaWQKK3Bnc3RhdF9zZXRfYWxsb2NhdGVkX2J5dGVzX3N0b3JhZ2UodWludDY0ICph bGxvY2F0ZWRfYnl0ZXMsCisJCQkJCQkJCSAgIHVpbnQ2NCAqYXNldF9hbGxvY2F0ZWRfYnl0 ZXMsCisJCQkJCQkJCSAgIHVpbnQ2NCAqZHNtX2FsbG9jYXRlZF9ieXRlcywKKwkJCQkJCQkJ ICAgdWludDY0ICpnZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcywKKwkJCQkJCQkJICAgdWlu dDY0ICpzbGFiX2FsbG9jYXRlZF9ieXRlcykKK3sKKwkvKiBNYXAgYWxsb2NhdGlvbnMgdG8g c2hhcmVkIG1lbW9yeSAqLworCW15X2FsbG9jYXRlZF9ieXRlcyA9IGFsbG9jYXRlZF9ieXRl czsKKwkqYWxsb2NhdGVkX2J5dGVzID0gbG9jYWxfbXlfYWxsb2NhdGVkX2J5dGVzOworCisJ bXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXMgPSBhc2V0X2FsbG9jYXRlZF9ieXRlczsKKwkqYXNl dF9hbGxvY2F0ZWRfYnl0ZXMgPSBsb2NhbF9teV9hc2V0X2FsbG9jYXRlZF9ieXRlczsKKwor CW15X2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPSBkc21fYWxsb2NhdGVkX2J5dGVzOworCSpkc21f YWxsb2NhdGVkX2J5dGVzID0gbG9jYWxfbXlfZHNtX2FsbG9jYXRlZF9ieXRlczsKKworCW15 X2dlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzID0gZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0 ZXM7CisJKmdlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzID0gbG9jYWxfbXlfZ2VuZXJhdGlv bl9hbGxvY2F0ZWRfYnl0ZXM7CisKKwlteV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9IHNsYWJf YWxsb2NhdGVkX2J5dGVzOworCSpzbGFiX2FsbG9jYXRlZF9ieXRlcyA9IGxvY2FsX215X3Ns YWJfYWxsb2NhdGVkX2J5dGVzOworfQorCisvKgorICogUmVzZXQgYWxsb2NhdGVkIGJ5dGVz IHN0b3JhZ2UgbG9jYXRpb24uCisgKgorICogRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGR1cmlu ZyBiYWNrZW5kIHNodXRkb3duLCBiZWZvcmUgdGhlIGxvY2F0aW9ucyBzZXQgdXAKKyAqIGJ5 IHBnc3RhdF9zZXRfYWxsb2NhdGVkX2J5dGVzX3N0b3JhZ2UgYmVjb21lIGludmFsaWQuCisg Ki8KK3ZvaWQKK3Bnc3RhdF9yZXNldF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSh2b2lkKQor eworCWlmIChQcm9jR2xvYmFsKQorCXsKKwkJdm9sYXRpbGUgUFJPQ19IRFIgKnByb2NnbG9i YWwgPSBQcm9jR2xvYmFsOworCisJCS8qCisJCSAqIEFkZCBkc20gYWxsb2NhdGlvbnMgdGhh dCBoYXZlIG5vdCBiZWVuIGZyZWVkIHRvIGdsb2JhbCBkc20KKwkJICogYWNjb3VudGluZwor CQkgKi8KKwkJcGdfYXRvbWljX2FkZF9mZXRjaF91NjQoJnByb2NnbG9iYWwtPmdsb2JhbF9k c21fYWxsb2NhdGlvbiwKKwkJCQkJCQkJKm15X2RzbV9hbGxvY2F0ZWRfYnl0ZXMpOworCX0K KworCS8qIFJlc2V0IG1lbW9yeSBhbGxvY2F0aW9uIHZhcmlhYmxlcyAqLworCSpteV9hbGxv Y2F0ZWRfYnl0ZXMgPSBsb2NhbF9teV9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCSpteV9hc2V0 X2FsbG9jYXRlZF9ieXRlcyA9IGxvY2FsX215X2FzZXRfYWxsb2NhdGVkX2J5dGVzID0gMDsK KwkqbXlfZHNtX2FsbG9jYXRlZF9ieXRlcyA9IGxvY2FsX215X2RzbV9hbGxvY2F0ZWRfYnl0 ZXMgPSAwOworCSpteV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyA9IGxvY2FsX215X2dl bmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzID0gMDsKKwkqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0 ZXMgPSBsb2NhbF9teV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9IDA7CisKKwkvKiBQb2ludCBt eV97Kl99YWxsb2NhdGVkX2J5dGVzIGZyb20gc2hhcmVkIG1lbW9yeSBiYWNrIHRvIGxvY2Fs ICovCisJbXlfYWxsb2NhdGVkX2J5dGVzID0gJmxvY2FsX215X2FsbG9jYXRlZF9ieXRlczsK KwlteV9hc2V0X2FsbG9jYXRlZF9ieXRlcyA9ICZsb2NhbF9teV9hc2V0X2FsbG9jYXRlZF9i eXRlczsKKwlteV9kc21fYWxsb2NhdGVkX2J5dGVzID0gJmxvY2FsX215X2RzbV9hbGxvY2F0 ZWRfYnl0ZXM7CisJbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlf Z2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXM7CisJbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMg PSAmbG9jYWxfbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXM7Cit9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZ3N0YXRmdW5jcy5jCmluZGV4IDM4NzYzMzllZTEuLmZlYzdhZTJkNWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0yMDMyLDMgKzIwMzIsODcgQEAgcGdf c3RhdF9oYXZlX3N0YXRzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fQk9PTChw Z3N0YXRfaGF2ZV9lbnRyeShraW5kLCBkYm9pZCwgb2Jqb2lkKSk7CiB9CisKKy8qCisgKiBH ZXQgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIG9mIFBHIGJhY2tlbmRzLgorICovCitEYXR1bQor cGdfc3RhdF9nZXRfbWVtb3J5X2FsbG9jYXRpb24oUEdfRlVOQ1RJT05fQVJHUykKK3sKKyNk ZWZpbmUgUEdfU1RBVF9HRVRfTUVNT1JZX0FMTE9DQVRJT05fQ09MUwk3CisJaW50CQkJbnVt X2JhY2tlbmRzID0gcGdzdGF0X2ZldGNoX3N0YXRfbnVtYmFja2VuZHMoKTsKKwlpbnQJCQlj dXJyX2JhY2tlbmQ7CisJaW50CQkJcGlkID0gUEdfQVJHSVNOVUxMKDApID8gLTEgOiBQR19H RVRBUkdfSU5UMzIoMCk7CisJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldElu Zm8gKikgZmNpbmZvLT5yZXN1bHRpbmZvOworCisJSW5pdE1hdGVyaWFsaXplZFNSRihmY2lu Zm8sIDApOworCisJLyogMS1iYXNlZCBpbmRleCAqLworCWZvciAoY3Vycl9iYWNrZW5kID0g MTsgY3Vycl9iYWNrZW5kIDw9IG51bV9iYWNrZW5kczsgY3Vycl9iYWNrZW5kKyspCisJewor CQkvKiBmb3IgZWFjaCByb3cgKi8KKwkJRGF0dW0JCXZhbHVlc1tQR19TVEFUX0dFVF9NRU1P UllfQUxMT0NBVElPTl9DT0xTXSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbUEdfU1RBVF9HRVRf TUVNT1JZX0FMTE9DQVRJT05fQ09MU10gPSB7MH07CisJCUxvY2FsUGdCYWNrZW5kU3RhdHVz ICpsb2NhbF9iZWVudHJ5OworCQlQZ0JhY2tlbmRTdGF0dXMgKmJlZW50cnk7CisKKwkJLyog R2V0IHRoZSBuZXh0IG9uZSBpbiB0aGUgbGlzdCAqLworCQlsb2NhbF9iZWVudHJ5ID0gcGdz dGF0X2ZldGNoX3N0YXRfbG9jYWxfYmVlbnRyeShjdXJyX2JhY2tlbmQpOworCQliZWVudHJ5 ID0gJmxvY2FsX2JlZW50cnktPmJhY2tlbmRTdGF0dXM7CisKKwkJLyogSWYgbG9va2luZyBm b3Igc3BlY2lmaWMgUElELCBpZ25vcmUgYWxsIHRoZSBvdGhlcnMgKi8KKwkJaWYgKHBpZCAh PSAtMSAmJiBiZWVudHJ5LT5zdF9wcm9jcGlkICE9IHBpZCkKKwkJCWNvbnRpbnVlOworCisJ CS8qIFZhbHVlcyBhdmFpbGFibGUgdG8gYWxsIGNhbGxlcnMgKi8KKwkJaWYgKGJlZW50cnkt PnN0X2RhdGFiYXNlaWQgIT0gSW52YWxpZE9pZCkKKwkJCXZhbHVlc1swXSA9IE9iamVjdElk R2V0RGF0dW0oYmVlbnRyeS0+c3RfZGF0YWJhc2VpZCk7CisJCWVsc2UKKwkJCW51bGxzWzBd ID0gdHJ1ZTsKKworCQl2YWx1ZXNbMV0gPSBJbnQzMkdldERhdHVtKGJlZW50cnktPnN0X3By b2NwaWQpOworCQl2YWx1ZXNbMl0gPSBVSW50NjRHZXREYXR1bShiZWVudHJ5LT5hbGxvY2F0 ZWRfYnl0ZXMpOworCQl2YWx1ZXNbM10gPSBVSW50NjRHZXREYXR1bShiZWVudHJ5LT5hc2V0 X2FsbG9jYXRlZF9ieXRlcyk7CisJCXZhbHVlc1s0XSA9IFVJbnQ2NEdldERhdHVtKGJlZW50 cnktPmRzbV9hbGxvY2F0ZWRfYnl0ZXMpOworCQl2YWx1ZXNbNV0gPSBVSW50NjRHZXREYXR1 bShiZWVudHJ5LT5nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyk7CisJCXZhbHVlc1s2XSA9 IFVJbnQ2NEdldERhdHVtKGJlZW50cnktPnNsYWJfYWxsb2NhdGVkX2J5dGVzKTsKKworCQl0 dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNj LCB2YWx1ZXMsIG51bGxzKTsKKworCQkvKiBJZiBvbmx5IGEgc2luZ2xlIGJhY2tlbmQgd2Fz IHJlcXVlc3RlZCwgYW5kIHdlIGZvdW5kIGl0LCBicmVhay4gKi8KKwkJaWYgKHBpZCAhPSAt MSkKKwkJCWJyZWFrOworCX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CisKKy8qCisgKiBH ZXQgdGhlIGdsb2JhbCBtZW1vcnkgYWxsb2NhdGlvbiBzdGF0aXN0aWNzLgorICovCitEYXR1 bQorcGdfc3RhdF9nZXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisjZGVmaW5lIFBHX1NUQVRfR0VUX0dMT0JBTF9NRU1PUllfQUxMT0NBVElPTl9D T0xTCTIKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlEYXR1bQkJdmFsdWVzW1BHX1NUQVRfR0VU X0dMT0JBTF9NRU1PUllfQUxMT0NBVElPTl9DT0xTXSA9IHswfTsKKwlib29sCQludWxsc1tQ R19TVEFUX0dFVF9HTE9CQUxfTUVNT1JZX0FMTE9DQVRJT05fQ09MU10gPSB7MH07CisJdm9s YXRpbGUgUFJPQ19IRFIgKnByb2NnbG9iYWwgPSBQcm9jR2xvYmFsOworCisJLyogSW5pdGlh bGlzZSBhdHRyaWJ1dGVzIGluZm9ybWF0aW9uIGluIHRoZSB0dXBsZSBkZXNjcmlwdG9yICov CisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKFBHX1NUQVRfR0VUX0dMT0JB TF9NRU1PUllfQUxMT0NBVElPTl9DT0xTKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpIDEsICJkYXRpZCIsCisJCQkJCSAgIE9JRE9JRCwgLTEsIDApOwor CVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMiwgImdsb2JhbF9k c21fYWxsb2NhdGVkX2J5dGVzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCUJsZXNz VHVwbGVEZXNjKHR1cGRlc2MpOworCisJLyogZGF0aWQgKi8KKwl2YWx1ZXNbMF0gPSBPYmpl Y3RJZEdldERhdHVtKE15RGF0YWJhc2VJZCk7CisKKwkvKiBnZXQgZ2xvYmFsX2RzbV9hbGxv Y2F0ZWRfYnl0ZXMgKi8KKwl2YWx1ZXNbMV0gPSBJbnQ2NEdldERhdHVtKHBnX2F0b21pY19y ZWFkX3U2NCgmcHJvY2dsb2JhbC0+Z2xvYmFsX2RzbV9hbGxvY2F0aW9uKSk7CisKKwkvKiBS ZXR1cm5zIHRoZSByZWNvcmQgYXMgRGF0dW0gKi8KKwlQR19SRVRVUk5fREFUVU0oSGVhcFR1 cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpKSk7 Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMgYi9z cmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMKaW5kZXggNTM3ZDkyYzBjZi4uOWI0 NzQ1MDgxMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYwpAQCAtMTcwLDYgKzE3 MCw5IEBAIEluaXRQb3N0bWFzdGVyQ2hpbGQodm9pZCkKIAkJCQkoZXJyY29kZV9mb3Jfc29j a2V0X2FjY2VzcygpLAogCQkJCSBlcnJtc2dfaW50ZXJuYWwoImNvdWxkIG5vdCBzZXQgcG9z dG1hc3RlciBkZWF0aCBtb25pdG9yaW5nIHBpcGUgdG8gRkRfQ0xPRVhFQyBtb2RlOiAlbSIp KSk7CiAjZW5kaWYKKworCS8qIEluaXQgYWxsb2NhdGVkIGJ5dGVzIHRvIGF2b2lkIGRvdWJs ZSBjb3VudGluZyBwYXJlbnQgYWxsb2NhdGlvbiAqLworCXBnc3RhdF9pbml0X2FsbG9jYXRl ZF9ieXRlcygpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1n ci9hc2V0LmMgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQuYwppbmRleCBkMmRjZjUy NmQ2Li5hNTk5YTNhNmU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2Fz ZXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQuYwpAQCAtNDcsNiArNDcs NyBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJwb3J0L3BnX2JpdHV0 aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvYmFja2VuZF9zdGF0dXMuaCIKICNpbmNsdWRlICJ1 dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVk ZSAidXRpbHMvbWVtdXRpbHNfbWVtb3J5Y2h1bmsuaCIKQEAgLTUxNyw2ICs1MTgsNyBAQCBB bGxvY1NldENvbnRleHRDcmVhdGVJbnRlcm5hbChNZW1vcnlDb250ZXh0IHBhcmVudCwKIAkJ CQkJCW5hbWUpOwogCiAJKChNZW1vcnlDb250ZXh0KSBzZXQpLT5tZW1fYWxsb2NhdGVkID0g Zmlyc3RCbG9ja1NpemU7CisJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVh c2UoZmlyc3RCbG9ja1NpemUsIFBHX0FMTE9DX0FTRVQpOwogCiAJcmV0dXJuIChNZW1vcnlD b250ZXh0KSBzZXQ7CiB9CkBAIC01MzksNiArNTQxLDcgQEAgQWxsb2NTZXRSZXNldChNZW1v cnlDb250ZXh0IGNvbnRleHQpCiAJQWxsb2NTZXQJc2V0ID0gKEFsbG9jU2V0KSBjb250ZXh0 OwogCUFsbG9jQmxvY2sJYmxvY2s7CiAJU2l6ZQkJa2VlcGVyc2l6ZSBQR19VU0VEX0ZPUl9B U1NFUlRTX09OTFk7CisJdWludDY0CQlkZWFsbG9jYXRpb24gPSAwOwogCiAJQXNzZXJ0KEFs bG9jU2V0SXNWYWxpZChzZXQpKTsKIApAQCAtNTgxLDYgKzU4NCw3IEBAIEFsbG9jU2V0UmVz ZXQoTWVtb3J5Q29udGV4dCBjb250ZXh0KQogCQl7CiAJCQkvKiBOb3JtYWwgY2FzZSwgcmVs ZWFzZSB0aGUgYmxvY2sgKi8KIAkJCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgLT0gYmxvY2st PmVuZHB0ciAtICgoY2hhciAqKSBibG9jayk7CisJCQlkZWFsbG9jYXRpb24gKz0gYmxvY2st PmVuZHB0ciAtICgoY2hhciAqKSBibG9jayk7CiAKICNpZmRlZiBDTE9CQkVSX0ZSRUVEX01F TU9SWQogCQkJd2lwZV9tZW0oYmxvY2ssIGJsb2NrLT5mcmVlcHRyIC0gKChjaGFyICopIGJs b2NrKSk7CkBAIC01OTEsNiArNTk1LDcgQEAgQWxsb2NTZXRSZXNldChNZW1vcnlDb250ZXh0 IGNvbnRleHQpCiAJfQogCiAJQXNzZXJ0KGNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgPT0ga2Vl cGVyc2l6ZSk7CisJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2UoZGVh bGxvY2F0aW9uLCBQR19BTExPQ19BU0VUKTsKIAogCS8qIFJlc2V0IGJsb2NrIHNpemUgYWxs b2NhdGlvbiBzZXF1ZW5jZSwgdG9vICovCiAJc2V0LT5uZXh0QmxvY2tTaXplID0gc2V0LT5p bml0QmxvY2tTaXplOwpAQCAtNjA5LDYgKzYxNCw3IEBAIEFsbG9jU2V0RGVsZXRlKE1lbW9y eUNvbnRleHQgY29udGV4dCkKIAlBbGxvY1NldAlzZXQgPSAoQWxsb2NTZXQpIGNvbnRleHQ7 CiAJQWxsb2NCbG9jawlibG9jayA9IHNldC0+YmxvY2tzOwogCVNpemUJCWtlZXBlcnNpemUg UEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCXVpbnQ2NAkJZGVhbGxvY2F0aW9uID0gMDsK IAogCUFzc2VydChBbGxvY1NldElzVmFsaWQoc2V0KSk7CiAKQEAgLTY0NywxMSArNjUzLDEz IEBAIEFsbG9jU2V0RGVsZXRlKE1lbW9yeUNvbnRleHQgY29udGV4dCkKIAogCQkJCWZyZWVs aXN0LT5maXJzdF9mcmVlID0gKEFsbG9jU2V0Q29udGV4dCAqKSBvbGRzZXQtPmhlYWRlci5u ZXh0Y2hpbGQ7CiAJCQkJZnJlZWxpc3QtPm51bV9mcmVlLS07CisJCQkJZGVhbGxvY2F0aW9u ICs9IG9sZHNldC0+aGVhZGVyLm1lbV9hbGxvY2F0ZWQ7CiAKIAkJCQkvKiBBbGwgdGhhdCBy ZW1haW5zIGlzIHRvIGZyZWUgdGhlIGhlYWRlci9pbml0aWFsIGJsb2NrICovCiAJCQkJZnJl ZShvbGRzZXQpOwogCQkJfQogCQkJQXNzZXJ0KGZyZWVsaXN0LT5udW1fZnJlZSA9PSAwKTsK KwkJCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGRlYWxsb2NhdGlv biwgUEdfQUxMT0NfQVNFVCk7CiAJCX0KIAogCQkvKiBOb3cgYWRkIHRoZSBqdXN0LWRlbGV0 ZWQgY29udGV4dCB0byB0aGUgZnJlZWxpc3QuICovCkBAIC02NjgsNyArNjc2LDEwIEBAIEFs bG9jU2V0RGVsZXRlKE1lbW9yeUNvbnRleHQgY29udGV4dCkKIAkJQWxsb2NCbG9jawluZXh0 ID0gYmxvY2stPm5leHQ7CiAKIAkJaWYgKCFJc0tlZXBlckJsb2NrKHNldCwgYmxvY2spKQor CQl7CiAJCQljb250ZXh0LT5tZW1fYWxsb2NhdGVkIC09IGJsb2NrLT5lbmRwdHIgLSAoKGNo YXIgKikgYmxvY2spOworCQkJZGVhbGxvY2F0aW9uICs9IGJsb2NrLT5lbmRwdHIgLSAoKGNo YXIgKikgYmxvY2spOworCQl9CiAKICNpZmRlZiBDTE9CQkVSX0ZSRUVEX01FTU9SWQogCQl3 aXBlX21lbShibG9jaywgYmxvY2stPmZyZWVwdHIgLSAoKGNoYXIgKikgYmxvY2spKTsKQEAg LTY4MSw2ICs2OTIsNyBAQCBBbGxvY1NldERlbGV0ZShNZW1vcnlDb250ZXh0IGNvbnRleHQp CiAJfQogCiAJQXNzZXJ0KGNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgPT0ga2VlcGVyc2l6ZSk7 CisJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2UoZGVhbGxvY2F0aW9u ICsgY29udGV4dC0+bWVtX2FsbG9jYXRlZCwgUEdfQUxMT0NfQVNFVCk7CiAKIAkvKiBGaW5h bGx5LCBmcmVlIHRoZSBjb250ZXh0IGhlYWRlciwgaW5jbHVkaW5nIHRoZSBrZWVwZXIgYmxv Y2sgKi8KIAlmcmVlKHNldCk7CkBAIC03MTcsNiArNzI5LDcgQEAgQWxsb2NTZXRBbGxvY0xh cmdlKE1lbW9yeUNvbnRleHQgY29udGV4dCwgU2l6ZSBzaXplLCBpbnQgZmxhZ3MpCiAJCXJl dHVybiBNZW1vcnlDb250ZXh0QWxsb2NhdGlvbkZhaWx1cmUoY29udGV4dCwgc2l6ZSwgZmxh Z3MpOwogCiAJY29udGV4dC0+bWVtX2FsbG9jYXRlZCArPSBibGtzaXplOworCXBnc3RhdF9y ZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2luY3JlYXNlKGJsa3NpemUsIFBHX0FMTE9DX0FTRVQp OwogCiAJYmxvY2stPmFzZXQgPSBzZXQ7CiAJYmxvY2stPmZyZWVwdHIgPSBibG9jay0+ZW5k cHRyID0gKChjaGFyICopIGJsb2NrKSArIGJsa3NpemU7CkBAIC05MjMsNiArOTM2LDcgQEAg QWxsb2NTZXRBbGxvY0Zyb21OZXdCbG9jayhNZW1vcnlDb250ZXh0IGNvbnRleHQsIFNpemUg c2l6ZSwgaW50IGZsYWdzLAogCQlyZXR1cm4gTWVtb3J5Q29udGV4dEFsbG9jYXRpb25GYWls dXJlKGNvbnRleHQsIHNpemUsIGZsYWdzKTsKIAogCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQg Kz0gYmxrc2l6ZTsKKwlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShi bGtzaXplLCBQR19BTExPQ19BU0VUKTsKIAogCWJsb2NrLT5hc2V0ID0gc2V0OwogCWJsb2Nr LT5mcmVlcHRyID0gKChjaGFyICopIGJsb2NrKSArIEFMTE9DX0JMT0NLSERSU1o7CkBAIC0x MTAwLDYgKzExMTQsNyBAQCBBbGxvY1NldEZyZWUodm9pZCAqcG9pbnRlcikKIAkJCWJsb2Nr LT5uZXh0LT5wcmV2ID0gYmxvY2stPnByZXY7CiAKIAkJc2V0LT5oZWFkZXIubWVtX2FsbG9j YXRlZCAtPSBibG9jay0+ZW5kcHRyIC0gKChjaGFyICopIGJsb2NrKTsKKwkJcGdzdGF0X3Jl cG9ydF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2UoYmxvY2stPmVuZHB0ciAtICgoY2hhciAq KSBibG9jayksIFBHX0FMTE9DX0FTRVQpOwogCiAjaWZkZWYgQ0xPQkJFUl9GUkVFRF9NRU1P UlkKIAkJd2lwZV9tZW0oYmxvY2ssIGJsb2NrLT5mcmVlcHRyIC0gKChjaGFyICopIGJsb2Nr KSk7CkBAIC0xMjMzLDcgKzEyNDgsOSBAQCBBbGxvY1NldFJlYWxsb2Modm9pZCAqcG9pbnRl ciwgU2l6ZSBzaXplLCBpbnQgZmxhZ3MpCiAKIAkJLyogdXBkYXRlZCBzZXBhcmF0ZWx5LCBu b3QgdG8gdW5kZXJmbG93IHdoZW4gKG9sZGJsa3NpemUgPiBibGtzaXplKSAqLwogCQlzZXQt PmhlYWRlci5tZW1fYWxsb2NhdGVkIC09IG9sZGJsa3NpemU7CisJCXBnc3RhdF9yZXBvcnRf YWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKG9sZGJsa3NpemUsIFBHX0FMTE9DX0FTRVQpOwog CQlzZXQtPmhlYWRlci5tZW1fYWxsb2NhdGVkICs9IGJsa3NpemU7CisJCXBnc3RhdF9yZXBv cnRfYWxsb2NhdGVkX2J5dGVzX2luY3JlYXNlKGJsa3NpemUsIFBHX0FMTE9DX0FTRVQpOwog CiAJCWJsb2NrLT5mcmVlcHRyID0gYmxvY2stPmVuZHB0ciA9ICgoY2hhciAqKSBibG9jaykg KyBibGtzaXplOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2dlbmVy YXRpb24uYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvZ2VuZXJhdGlvbi5jCmluZGV4IDkx MjRkOWI5NTIuLmQ1MTFiNjdiMDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21t Z3IvZ2VuZXJhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvZ2VuZXJhdGlv bi5jCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlICJsaWIvaWxpc3QuaCIKICNpbmNs dWRlICJwb3J0L3BnX2JpdHV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvYmFja2VuZF9zdGF0 dXMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL21l bXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHNfbWVtb3J5Y2h1bmsuaCIKQEAg LTI2Niw2ICsyNjcsNyBAQCBHZW5lcmF0aW9uQ29udGV4dENyZWF0ZShNZW1vcnlDb250ZXh0 IHBhcmVudCwKIAkJCQkJCW5hbWUpOwogCiAJKChNZW1vcnlDb250ZXh0KSBzZXQpLT5tZW1f YWxsb2NhdGVkID0gZmlyc3RCbG9ja1NpemU7CisJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRf Ynl0ZXNfaW5jcmVhc2UoZmlyc3RCbG9ja1NpemUsIFBHX0FMTE9DX0dFTkVSQVRJT04pOwog CiAJcmV0dXJuIChNZW1vcnlDb250ZXh0KSBzZXQ7CiB9CkBAIC0yODQsNiArMjg2LDcgQEAg R2VuZXJhdGlvblJlc2V0KE1lbW9yeUNvbnRleHQgY29udGV4dCkKIHsKIAlHZW5lcmF0aW9u Q29udGV4dCAqc2V0ID0gKEdlbmVyYXRpb25Db250ZXh0ICopIGNvbnRleHQ7CiAJZGxpc3Rf bXV0YWJsZV9pdGVyIG1pdGVyOworCXVpbnQ2NAkJZGVhbGxvY2F0aW9uID0gMDsKIAogCUFz c2VydChHZW5lcmF0aW9uSXNWYWxpZChzZXQpKTsKIApAQCAtMzA2LDkgKzMwOSwxNCBAQCBH ZW5lcmF0aW9uUmVzZXQoTWVtb3J5Q29udGV4dCBjb250ZXh0KQogCQlpZiAoSXNLZWVwZXJC bG9jayhzZXQsIGJsb2NrKSkKIAkJCUdlbmVyYXRpb25CbG9ja01hcmtFbXB0eShibG9jayk7 CiAJCWVsc2UKKwkJeworCQkJZGVhbGxvY2F0aW9uICs9IGJsb2NrLT5ibGtzaXplOwogCQkJ R2VuZXJhdGlvbkJsb2NrRnJlZShzZXQsIGJsb2NrKTsKKwkJfQogCX0KIAorCXBnc3RhdF9y ZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGRlYWxsb2NhdGlvbiwgUEdfQUxMT0Nf R0VORVJBVElPTik7CisKIAkvKiBzZXQgaXQgc28gbmV3IGFsbG9jYXRpb25zIHRvIG1ha2Ug dXNlIG9mIHRoZSBrZWVwZXIgYmxvY2sgKi8KIAlzZXQtPmJsb2NrID0gS2VlcGVyQmxvY2so c2V0KTsKIApAQCAtMzI5LDYgKzMzNyw5IEBAIEdlbmVyYXRpb25EZWxldGUoTWVtb3J5Q29u dGV4dCBjb250ZXh0KQogewogCS8qIFJlc2V0IHRvIHJlbGVhc2UgYWxsIHJlbGVhc2FibGUg R2VuZXJhdGlvbkJsb2NrcyAqLwogCUdlbmVyYXRpb25SZXNldChjb250ZXh0KTsKKworCXBn c3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGNvbnRleHQtPm1lbV9hbGxv Y2F0ZWQsIFBHX0FMTE9DX0dFTkVSQVRJT04pOworCiAJLyogQW5kIGZyZWUgdGhlIGNvbnRl eHQgaGVhZGVyIGFuZCBrZWVwZXIgYmxvY2sgKi8KIAlmcmVlKGNvbnRleHQpOwogfQpAQCAt MzY2LDYgKzM3Nyw3IEBAIEdlbmVyYXRpb25BbGxvY0xhcmdlKE1lbW9yeUNvbnRleHQgY29u dGV4dCwgU2l6ZSBzaXplLCBpbnQgZmxhZ3MpCiAJCXJldHVybiBNZW1vcnlDb250ZXh0QWxs b2NhdGlvbkZhaWx1cmUoY29udGV4dCwgc2l6ZSwgZmxhZ3MpOwogCiAJY29udGV4dC0+bWVt X2FsbG9jYXRlZCArPSBibGtzaXplOworCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVz X2luY3JlYXNlKGJsa3NpemUsIFBHX0FMTE9DX0dFTkVSQVRJT04pOwogCiAJLyogYmxvY2sg d2l0aCBhIHNpbmdsZSAodXNlZCkgY2h1bmsgKi8KIAlibG9jay0+Y29udGV4dCA9IHNldDsK QEAgLTQ4OCw2ICs1MDAsNyBAQCBHZW5lcmF0aW9uQWxsb2NGcm9tTmV3QmxvY2soTWVtb3J5 Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUsIGludCBmbGFncywKIAkJcmV0dXJuIE1lbW9y eUNvbnRleHRBbGxvY2F0aW9uRmFpbHVyZShjb250ZXh0LCBzaXplLCBmbGFncyk7CiAKIAlj b250ZXh0LT5tZW1fYWxsb2NhdGVkICs9IGJsa3NpemU7CisJcGdzdGF0X3JlcG9ydF9hbGxv Y2F0ZWRfYnl0ZXNfaW5jcmVhc2UoYmxrc2l6ZSwgUEdfQUxMT0NfR0VORVJBVElPTik7CiAK IAkvKiBpbml0aWFsaXplIHRoZSBuZXcgYmxvY2sgKi8KIAlHZW5lcmF0aW9uQmxvY2tJbml0 KHNldCwgYmxvY2ssIGJsa3NpemUpOwpAQCAtNjcyLDYgKzY4NSw3IEBAIEdlbmVyYXRpb25C bG9ja0ZyZWUoR2VuZXJhdGlvbkNvbnRleHQgKnNldCwgR2VuZXJhdGlvbkJsb2NrICpibG9j aykKIAlkbGlzdF9kZWxldGUoJmJsb2NrLT5ub2RlKTsKIAogCSgoTWVtb3J5Q29udGV4dCkg c2V0KS0+bWVtX2FsbG9jYXRlZCAtPSBibG9jay0+Ymxrc2l6ZTsKKwlwZ3N0YXRfcmVwb3J0 X2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZShibG9jay0+Ymxrc2l6ZSwgUEdfQUxMT0NfR0VO RVJBVElPTik7CiAKICNpZmRlZiBDTE9CQkVSX0ZSRUVEX01FTU9SWQogCXdpcGVfbWVtKGJs b2NrLCBibG9jay0+Ymxrc2l6ZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9t bWdyL3NsYWIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCmluZGV4IDUxNmUx Yzk1YWEuLjk4YThiYmFmOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Iv c2xhYi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCkBAIC02OSw2ICs2 OSw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImxpYi9pbGlzdC5o IgorI2luY2x1ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMv bWVtZGVidWcuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0 aWxzL21lbXV0aWxzX21lbW9yeWNodW5rLmgiCkBAIC00MTcsNiArNDE4LDEzIEBAIFNsYWJD b250ZXh0Q3JlYXRlKE1lbW9yeUNvbnRleHQgcGFyZW50LAogCQkJCQkJcGFyZW50LAogCQkJ CQkJbmFtZSk7CiAKKwkvKgorCSAqIElmIFNsYWJDb250ZXh0Q3JlYXRlIGlzIHVwZGF0ZWQg dG8gYWRkIGNvbnRleHQgaGVhZGVyIHNpemUgdG8KKwkgKiBjb250ZXh0LT5tZW1fYWxsb2Nh dGVkLCB0aGVuIHVwZGF0ZSBoZXJlIGFuZCBTbGFiRGVsZXRlIGFwcHJvcHJpYXRlbHkKKwkg Ki8KKwlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShTbGFiX0NPTlRF WFRfSERSU1ooc2xhYi0+Y2h1bmtzUGVyQmxvY2spLAorCQkJCQkJCQkJCSAgIFBHX0FMTE9D X1NMQUIpOworCiAJcmV0dXJuIChNZW1vcnlDb250ZXh0KSBzbGFiOwogfQogCkBAIC00MzMs NiArNDQxLDcgQEAgU2xhYlJlc2V0KE1lbW9yeUNvbnRleHQgY29udGV4dCkKIAlTbGFiQ29u dGV4dCAqc2xhYiA9IChTbGFiQ29udGV4dCAqKSBjb250ZXh0OwogCWRsaXN0X211dGFibGVf aXRlciBtaXRlcjsKIAlpbnQJCQlpOworCXVpbnQ2NAkJZGVhbGxvY2F0aW9uID0gMDsKIAog CUFzc2VydChTbGFiSXNWYWxpZChzbGFiKSk7CiAKQEAgLTQ1Myw2ICs0NjIsNyBAQCBTbGFi UmVzZXQoTWVtb3J5Q29udGV4dCBjb250ZXh0KQogI2VuZGlmCiAJCWZyZWUoYmxvY2spOwog CQljb250ZXh0LT5tZW1fYWxsb2NhdGVkIC09IHNsYWItPmJsb2NrU2l6ZTsKKwkJZGVhbGxv Y2F0aW9uICs9IHNsYWItPmJsb2NrU2l6ZTsKIAl9CiAKIAkvKiB3YWxrIG92ZXIgYmxvY2ts aXN0IGFuZCBmcmVlIHRoZSBibG9ja3MgKi8KQEAgLTQ2OSw5ICs0NzksMTEgQEAgU2xhYlJl c2V0KE1lbW9yeUNvbnRleHQgY29udGV4dCkKICNlbmRpZgogCQkJZnJlZShibG9jayk7CiAJ CQljb250ZXh0LT5tZW1fYWxsb2NhdGVkIC09IHNsYWItPmJsb2NrU2l6ZTsKKwkJCWRlYWxs b2NhdGlvbiArPSBzbGFiLT5ibG9ja1NpemU7CiAJCX0KIAl9CiAKKwlwZ3N0YXRfcmVwb3J0 X2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZShkZWFsbG9jYXRpb24sIFBHX0FMTE9DX1NMQUIp OwogCXNsYWItPmN1ckJsb2NrbGlzdEluZGV4ID0gMDsKIAogCUFzc2VydChjb250ZXh0LT5t ZW1fYWxsb2NhdGVkID09IDApOwpAQCAtNDg2LDYgKzQ5OCwxNCBAQCBTbGFiRGVsZXRlKE1l bW9yeUNvbnRleHQgY29udGV4dCkKIHsKIAkvKiBSZXNldCB0byByZWxlYXNlIGFsbCB0aGUg U2xhYkJsb2NrcyAqLwogCVNsYWJSZXNldChjb250ZXh0KTsKKworCS8qCisJICogVW50aWwg Y29udGV4dCBoZWFkZXIgYWxsb2NhdGlvbiBpcyBpbmNsdWRlZCBpbiBjb250ZXh0LT5tZW1f YWxsb2NhdGVkLAorCSAqIGNhc3QgdG8gc2xhYiBhbmQgZGVjcmVtZW50IHRoZSBoZWFkZXIg YWxsb2NhdGlvbgorCSAqLworCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3Jl YXNlKFNsYWJfQ09OVEVYVF9IRFJTWigoKFNsYWJDb250ZXh0ICopIGNvbnRleHQpLT5jaHVu a3NQZXJCbG9jayksCisJCQkJCQkJCQkJICAgUEdfQUxMT0NfU0xBQik7CisKIAkvKiBBbmQg ZnJlZSB0aGUgY29udGV4dCBoZWFkZXIgKi8KIAlmcmVlKGNvbnRleHQpOwogfQpAQCAtNTY5 LDYgKzU4OSw3IEBAIFNsYWJBbGxvY0Zyb21OZXdCbG9jayhNZW1vcnlDb250ZXh0IGNvbnRl eHQsIFNpemUgc2l6ZSwgaW50IGZsYWdzKQogCiAJCWJsb2NrLT5zbGFiID0gc2xhYjsKIAkJ Y29udGV4dC0+bWVtX2FsbG9jYXRlZCArPSBzbGFiLT5ibG9ja1NpemU7CisJCXBnc3RhdF9y ZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2luY3JlYXNlKHNsYWItPmJsb2NrU2l6ZSwgUEdfQUxM T0NfU0xBQik7CiAKIAkJLyogdXNlIHRoZSBmaXJzdCBjaHVuayBpbiB0aGUgbmV3IGJsb2Nr ICovCiAJCWNodW5rID0gU2xhYkJsb2NrR2V0Q2h1bmsoc2xhYiwgYmxvY2ssIDApOwpAQCAt Nzk3LDYgKzgxOCw3IEBAIFNsYWJGcmVlKHZvaWQgKnBvaW50ZXIpCiAjZW5kaWYKIAkJCWZy ZWUoYmxvY2spOwogCQkJc2xhYi0+aGVhZGVyLm1lbV9hbGxvY2F0ZWQgLT0gc2xhYi0+Ymxv Y2tTaXplOworCQkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2Uoc2xh Yi0+YmxvY2tTaXplLCBQR19BTExPQ19TTEFCKTsKIAkJfQogCiAJCS8qCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCAyOTFlZDg3NmZjLi40NzkwM2U3NTVlIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKQEAgLTU0MzUsNiArNTQzNSwyMyBAQAogICBwcm9uYW1lID0+ ICdwZ19zdGF0X2dldF9iYWNrZW5kX2lkc2V0JywgcHJvcm93cyA9PiAnMTAwJywgcHJvcmV0 c2V0ID0+ICd0JywKICAgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncics IHByb3JldHR5cGUgPT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ ICdwZ19zdGF0X2dldF9iYWNrZW5kX2lkc2V0JyB9LAoreyBvaWQgPT4gJzk4OTAnLAorICBk ZXNjciA9PiAnc3RhdGlzdGljczogbWVtb3J5IGFsbG9jYXRpb24gaW5mb3JtYXRpb24gZm9y IGJhY2tlbmRzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfbWVtb3J5X2FsbG9jYXRp b24nLCBwcm9yb3dzID0+ICcxMDAnLCBwcm9pc3N0cmljdCA9PiAnZicsCisgIHByb3JldHNl dCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLAorICBw cm9yZXR0eXBlID0+ICdyZWNvcmQnLCBwcm9hcmd0eXBlcyA9PiAnaW50NCcsCisgIHByb2Fs bGFyZ3R5cGVzID0+ICd7aW50NCxvaWQsaW50NCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDh9 JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFt ZXMgPT4gJ3twaWQsZGF0aWQscGlkLGFsbG9jYXRlZF9ieXRlcyxhc2V0X2FsbG9jYXRlZF9i eXRlcyxkc21fYWxsb2NhdGVkX2J5dGVzLGdlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzLHNs YWJfYWxsb2NhdGVkX2J5dGVzfScsCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfbWVtb3J5 X2FsbG9jYXRpb24nIH0sCit7IG9pZCA9PiAnOTg5MScsCisgIGRlc2NyID0+ICdzdGF0aXN0 aWNzOiBnbG9iYWwgbWVtb3J5IGFsbG9jYXRpb24gaW5mb3JtYXRpb24nLAorICBwcm9uYW1l ID0+ICdwZ19zdGF0X2dldF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb24nLCBwcm9pc3N0cmlj dCA9PiAnZicsCisgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLCBw cm9yZXR0eXBlID0+ICdyZWNvcmQnLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvYWxsYXJn dHlwZXMgPT4gJ3tvaWQsaW50OH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sb30nLAorICBw cm9hcmduYW1lcyA9PiAne2RhdGlkLGdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVzfScsCisg IHByb3NyYyA9PidwZ19zdGF0X2dldF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb24nIH0sCiB7 IG9pZCA9PiAnMjAyMicsCiAgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBpbmZvcm1hdGlvbiBh Ym91dCBjdXJyZW50bHkgYWN0aXZlIGJhY2tlbmRzJywKICAgcHJvbmFtZSA9PiAncGdfc3Rh dF9nZXRfYWN0aXZpdHknLCBwcm9yb3dzID0+ICcxMDAnLCBwcm9pc3N0cmljdCA9PiAnZics CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaCBiL3NyYy9pbmNsdWRl L3N0b3JhZ2UvcHJvYy5oCmluZGV4IDEwOTVhZWZkZGYuLmEzNTBmNDU1Y2QgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3Jh Z2UvcHJvYy5oCkBAIC00MjIsNiArNDIyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUFJPQ19IRFIK IAlpbnQJCQlzcGluc19wZXJfZGVsYXk7CiAJLyogQnVmZmVyIGlkIG9mIHRoZSBidWZmZXIg dGhhdCBTdGFydHVwIHByb2Nlc3Mgd2FpdHMgZm9yIHBpbiBvbiwgb3IgLTEgKi8KIAlpbnQJ CQlzdGFydHVwQnVmZmVyUGluV2FpdEJ1ZklkOworCS8qIEdsb2JhbCBkc20gYWxsb2NhdGlv bnMgKi8KKwlwZ19hdG9taWNfdWludDY0IGdsb2JhbF9kc21fYWxsb2NhdGlvbjsKIH0gUFJP Q19IRFI7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBQUk9DX0hEUiAqUHJvY0dsb2JhbDsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmggYi9zcmMvaW5j bHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oCmluZGV4IDdiN2Y2ZjU5ZDAuLmNiZjgwMTg4 NGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmgKKysr IGIvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaApAQCAtMTAsNiArMTAsNyBA QAogI2lmbmRlZiBCQUNLRU5EX1NUQVRVU19ICiAjZGVmaW5lIEJBQ0tFTkRfU1RBVFVTX0gK IAorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJkYXRhdHlwZS90aW1lc3Rh bXAuaCIKICNpbmNsdWRlICJsaWJwcS9wcWNvbW0uaCIKICNpbmNsdWRlICJtaXNjYWRtaW4u aCIJCQkvKiBmb3IgQmFja2VuZFR5cGUgKi8KQEAgLTMyLDYgKzMzLDE0IEBAIHR5cGVkZWYg ZW51bSBCYWNrZW5kU3RhdGUKIAlTVEFURV9ESVNBQkxFRCwKIH0gQmFja2VuZFN0YXRlOwog CisvKiBFbnVtIGhlbHBlciBmb3IgcmVwb3J0aW5nIG1lbW9yeSBhbGxvY2F0b3IgdHlwZSAq LworZW51bSBwZ19hbGxvY2F0b3JfdHlwZQoreworCVBHX0FMTE9DX0FTRVQgPSAxLAorCVBH X0FMTE9DX0RTTSwKKwlQR19BTExPQ19HRU5FUkFUSU9OLAorCVBHX0FMTE9DX1NMQUIKK307 CiAKIC8qIC0tLS0tLS0tLS0KICAqIFNoYXJlZC1tZW1vcnkgZGF0YSBzdHJ1Y3R1cmVzCkBA IC0xNzAsNiArMTc5LDE1IEBAIHR5cGVkZWYgc3RydWN0IFBnQmFja2VuZFN0YXR1cwogCiAJ LyogcXVlcnkgaWRlbnRpZmllciwgb3B0aW9uYWxseSBjb21wdXRlZCB1c2luZyBwb3N0X3Bh cnNlX2FuYWx5emVfaG9vayAqLwogCXVpbnQ2NAkJc3RfcXVlcnlfaWQ7CisKKwkvKiBDdXJy ZW50IG1lbW9yeSBhbGxvY2F0ZWQgdG8gdGhpcyBiYWNrZW5kICovCisJdWludDY0CQlhbGxv Y2F0ZWRfYnl0ZXM7CisKKwkvKiBDdXJyZW50IG1lbW9yeSBhbGxvY2F0ZWQgdG8gdGhpcyBi YWNrZW5kIGJ5IHR5cGUgKi8KKwl1aW50NjQJCWFzZXRfYWxsb2NhdGVkX2J5dGVzOworCXVp bnQ2NAkJZHNtX2FsbG9jYXRlZF9ieXRlczsKKwl1aW50NjQJCWdlbmVyYXRpb25fYWxsb2Nh dGVkX2J5dGVzOworCXVpbnQ2NAkJc2xhYl9hbGxvY2F0ZWRfYnl0ZXM7CiB9IFBnQmFja2Vu ZFN0YXR1czsKIAogCkBAIC0yOTIsNiArMzEwLDExIEBAIGV4dGVybiBQR0RMTElNUE9SVCBp bnQgcGdzdGF0X3RyYWNrX2FjdGl2aXR5X3F1ZXJ5X3NpemU7CiAgKiAtLS0tLS0tLS0tCiAg Ki8KIGV4dGVybiBQR0RMTElNUE9SVCBQZ0JhY2tlbmRTdGF0dXMgKk15QkVFbnRyeTsKK2V4 dGVybiBQR0RMTElNUE9SVCB1aW50NjQgKm15X2FsbG9jYXRlZF9ieXRlczsKK2V4dGVybiBQ R0RMTElNUE9SVCB1aW50NjQgKm15X2FzZXRfYWxsb2NhdGVkX2J5dGVzOworZXh0ZXJuIFBH RExMSU1QT1JUIHVpbnQ2NCAqbXlfZHNtX2FsbG9jYXRlZF9ieXRlczsKK2V4dGVybiBQR0RM TElNUE9SVCB1aW50NjQgKm15X2dlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzOworZXh0ZXJu IFBHRExMSU1QT1JUIHVpbnQ2NCAqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXM7CiAKIAogLyog LS0tLS0tLS0tLQpAQCAtMzIzLDcgKzM0NiwxMiBAQCBleHRlcm4gY29uc3QgY2hhciAqcGdz dGF0X2dldF9iYWNrZW5kX2N1cnJlbnRfYWN0aXZpdHkoaW50IHBpZCwgYm9vbCBjaGVja1Vz ZXIpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKnBnc3RhdF9nZXRfY3Jhc2hlZF9iYWNrZW5kX2Fj dGl2aXR5KGludCBwaWQsIGNoYXIgKmJ1ZmZlciwKIAkJCQkJCQkJCQkJCQkgICBpbnQgYnVm bGVuKTsKIGV4dGVybiB1aW50NjQgcGdzdGF0X2dldF9teV9xdWVyeV9pZCh2b2lkKTsKLQor ZXh0ZXJuIHZvaWQgcGdzdGF0X3NldF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSh1aW50NjQg KmFsbG9jYXRlZF9ieXRlcywKKwkJCQkJCQkJCQkJICAgdWludDY0ICphc2V0X2FsbG9jYXRl ZF9ieXRlcywKKwkJCQkJCQkJCQkJICAgdWludDY0ICpkc21fYWxsb2NhdGVkX2J5dGVzLAor CQkJCQkJCQkJCQkgICB1aW50NjQgKmdlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzLAorCQkJ CQkJCQkJCQkgICB1aW50NjQgKnNsYWJfYWxsb2NhdGVkX2J5dGVzKTsKK2V4dGVybiB2b2lk IHBnc3RhdF9yZXNldF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSh2b2lkKTsKIAogLyogLS0t LS0tLS0tLQogICogU3VwcG9ydCBmdW5jdGlvbnMgZm9yIHRoZSBTUUwtY2FsbGFibGUgZnVu Y3Rpb25zIHRvCkBAIC0zMzYsNSArMzY0LDExOSBAQCBleHRlcm4gTG9jYWxQZ0JhY2tlbmRT dGF0dXMgKnBnc3RhdF9nZXRfbG9jYWxfYmVlbnRyeV9ieV9wcm9jX251bWJlcihQcm9jTnVt YmVyCiBleHRlcm4gTG9jYWxQZ0JhY2tlbmRTdGF0dXMgKnBnc3RhdF9nZXRfbG9jYWxfYmVl bnRyeV9ieV9pbmRleChpbnQgaWR4KTsKIGV4dGVybiBjaGFyICpwZ3N0YXRfY2xpcF9hY3Rp dml0eShjb25zdCBjaGFyICpyYXdfYWN0aXZpdHkpOwogCisvKiAtLS0tLS0tLS0tCisgKiBw Z3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZSgpIC0KKyAqICBDYWxsZWQg dG8gcmVwb3J0IGRlY3JlYXNlIGluIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoaXMgYmFja2Vu ZC4KKyAqCisgKiBteV97Kl99YWxsb2NhdGVkX2J5dGVzIGluaXRpYWxseSBwb2ludHMgdG8g bG9jYWwgbWVtb3J5LCBtYWtpbmcgaXQgc2FmZSB0bworICogY2FsbCB0aGlzIGJlZm9yZSBw Z3N0YXRzIGhhcyBiZWVuIGluaXRpYWxpemVkLgorICogLS0tLS0tLS0tLQorICovCitzdGF0 aWMgaW5saW5lIHZvaWQKK3Bnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNl KGludDY0IHByb2NfYWxsb2NhdGVkX2J5dGVzLAorCQkJCQkJCQkJICAgaW50IHBnX2FsbG9j YXRvcl90eXBlKQoreworCXVpbnQ2NAkJdGVtcDsKKworCS8qIEF2b2lkIGFsbG9jYXRlZF9i eXRlcyB1bnNpZ25lZCBpbnRlZ2VyIG92ZXJmbG93IG9uIGRlY3JlYXNlICovCisJaWYgKHBn X3N1Yl91NjRfb3ZlcmZsb3coKm15X2FsbG9jYXRlZF9ieXRlcywgcHJvY19hbGxvY2F0ZWRf Ynl0ZXMsICZ0ZW1wKSkKKwl7CisJCS8qIE9uIG92ZXJmbG93LCBzZXQgYWxsb2NhdGVkIGJ5 dGVzIGFuZCBhbGxvY2F0b3IgdHlwZSBieXRlcyB0byB6ZXJvICovCisJCSpteV9hbGxvY2F0 ZWRfYnl0ZXMgPSAwOworCQkqbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCQkqbXlf ZHNtX2FsbG9jYXRlZF9ieXRlcyA9IDA7CisJCSpteV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9i eXRlcyA9IDA7CisJCSpteV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9IDA7CisJfQorCWVsc2UK Kwl7CisJCS8qIGRlY3JlYXNlIGFsbG9jYXRpb24gKi8KKwkJKm15X2FsbG9jYXRlZF9ieXRl cyAtPSBwcm9jX2FsbG9jYXRlZF9ieXRlczsKKworCQkvKiBEZWNyZWFzZSBhbGxvY2F0b3Ig dHlwZSBhbGxvY2F0ZWQgYnl0ZXMuICovCisJCXN3aXRjaCAocGdfYWxsb2NhdG9yX3R5cGUp CisJCXsKKwkJCWNhc2UgUEdfQUxMT0NfQVNFVDoKKwkJCQkqbXlfYXNldF9hbGxvY2F0ZWRf Ynl0ZXMgLT0gcHJvY19hbGxvY2F0ZWRfYnl0ZXM7CisJCQkJYnJlYWs7CisJCQljYXNlIFBH X0FMTE9DX0RTTToKKworCQkJCS8qCisJCQkJICogU29tZSBkc20gYWxsb2NhdGlvbnMgbGl2 ZSBiZXlvbmQgcHJvY2VzcyBleGl0LiBUaGVzZSBhcmUKKwkJCQkgKiBhY2NvdW50ZWQgZm9y IGluIGEgZ2xvYmFsIGNvdW50ZXIgaW4KKwkJCQkgKiBwZ3N0YXRfcmVzZXRfYWxsb2NhdGVk X2J5dGVzX3N0b3JhZ2UgYXQgcHJvY2VzcyBleGl0LgorCQkJCSAqLworCQkJCSpteV9kc21f YWxsb2NhdGVkX2J5dGVzIC09IHByb2NfYWxsb2NhdGVkX2J5dGVzOworCQkJCWJyZWFrOwor CQkJY2FzZSBQR19BTExPQ19HRU5FUkFUSU9OOgorCQkJCSpteV9nZW5lcmF0aW9uX2FsbG9j YXRlZF9ieXRlcyAtPSBwcm9jX2FsbG9jYXRlZF9ieXRlczsKKwkJCQlicmVhazsKKwkJCWNh c2UgUEdfQUxMT0NfU0xBQjoKKwkJCQkqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgLT0gcHJv Y19hbGxvY2F0ZWRfYnl0ZXM7CisJCQkJYnJlYWs7CisJCX0KKwl9CisKKwlyZXR1cm47Cit9 CisKKy8qIC0tLS0tLS0tLS0KKyAqIHBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2lu Y3JlYXNlKCkgLQorICogIENhbGxlZCB0byByZXBvcnQgaW5jcmVhc2UgaW4gbWVtb3J5IGFs bG9jYXRlZCBmb3IgdGhpcyBiYWNrZW5kLgorICoKKyAqIG15X2FsbG9jYXRlZF9ieXRlcyBp bml0aWFsbHkgcG9pbnRzIHRvIGxvY2FsIG1lbW9yeSwgbWFraW5nIGl0IHNhZmUgdG8gY2Fs bAorICogdGhpcyBiZWZvcmUgcGdzdGF0cyBoYXMgYmVlbiBpbml0aWFsaXplZC4KKyAqIC0t LS0tLS0tLS0KKyAqLworc3RhdGljIGlubGluZSB2b2lkCitwZ3N0YXRfcmVwb3J0X2FsbG9j YXRlZF9ieXRlc19pbmNyZWFzZShpbnQ2NCBwcm9jX2FsbG9jYXRlZF9ieXRlcywKKwkJCQkJ CQkJCSAgIGludCBwZ19hbGxvY2F0b3JfdHlwZSkKK3sKKwkqbXlfYWxsb2NhdGVkX2J5dGVz ICs9IHByb2NfYWxsb2NhdGVkX2J5dGVzOworCisJLyogSW5jcmVhc2UgYWxsb2NhdG9yIHR5 cGUgYWxsb2NhdGVkIGJ5dGVzICovCisJc3dpdGNoIChwZ19hbGxvY2F0b3JfdHlwZSkKKwl7 CisJCWNhc2UgUEdfQUxMT0NfQVNFVDoKKwkJCSpteV9hc2V0X2FsbG9jYXRlZF9ieXRlcyAr PSBwcm9jX2FsbG9jYXRlZF9ieXRlczsKKwkJCWJyZWFrOworCQljYXNlIFBHX0FMTE9DX0RT TToKKworCQkJLyoKKwkJCSAqIFNvbWUgZHNtIGFsbG9jYXRpb25zIGxpdmUgYmV5b25kIHBy b2Nlc3MgZXhpdC4gVGhlc2UgYXJlCisJCQkgKiBhY2NvdW50ZWQgZm9yIGluIGEgZ2xvYmFs IGNvdW50ZXIgaW4KKwkJCSAqIHBnc3RhdF9yZXNldF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFn ZSBhdCBwcm9jZXNzIGV4aXQuCisJCQkgKi8KKwkJCSpteV9kc21fYWxsb2NhdGVkX2J5dGVz ICs9IHByb2NfYWxsb2NhdGVkX2J5dGVzOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQUxMT0Nf R0VORVJBVElPTjoKKwkJCSpteV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyArPSBwcm9j X2FsbG9jYXRlZF9ieXRlczsKKwkJCWJyZWFrOworCQljYXNlIFBHX0FMTE9DX1NMQUI6CisJ CQkqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgKz0gcHJvY19hbGxvY2F0ZWRfYnl0ZXM7CisJ CQlicmVhazsKKwl9CisKKwlyZXR1cm47Cit9CisKKy8qIC0tLS0tLS0tLQorICogcGdzdGF0 X2luaXRfYWxsb2NhdGVkX2J5dGVzKCkgLQorICoKKyAqIENhbGxlZCB0byBpbml0aWFsaXpl IGFsbG9jYXRlZCBieXRlcyB2YXJpYWJsZXMgYWZ0ZXIgZm9yayBhbmQgdG8KKyAqIGF2b2lk IGRvdWJsZSBjb3VudGluZyBhbGxvY2F0aW9ucy4KKyAqIC0tLS0tLS0tLQorICovCitzdGF0 aWMgaW5saW5lIHZvaWQKK3Bnc3RhdF9pbml0X2FsbG9jYXRlZF9ieXRlcyh2b2lkKQorewor CSpteV9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCSpteV9hc2V0X2FsbG9jYXRlZF9ieXRlcyA9 IDA7CisJKm15X2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCSpteV9nZW5lcmF0aW9uX2Fs bG9jYXRlZF9ieXRlcyA9IDA7CisJKm15X3NsYWJfYWxsb2NhdGVkX2J5dGVzID0gMDsKKwor CXJldHVybjsKK30KIAogI2VuZGlmCQkJCQkJCS8qIEJBQ0tFTkRfU1RBVFVTX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMGNkMmM2NGZjYS4uMmY2MmY1 ZTRlYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE4NzcsNiAr MTg3NywyNCBAQCBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0c3wgU0VMRUNUIG9pZCBBUyBk YXRpZCwKICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKG9p ZCkgQVMgY29uZmxfZGVhZGxvY2ssCiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9n aWNhbHNsb3Qob2lkKSBBUyBjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QKICAgIEZST00gcGdf ZGF0YWJhc2UgZDsKK3BnX3N0YXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9ufCBXSVRIIHN1 bXMgQVMgKAorICAgICAgICAgU0VMRUNUIHN1bShwZ19zdGF0X21lbW9yeV9hbGxvY2F0aW9u LmFzZXRfYWxsb2NhdGVkX2J5dGVzKSBBUyB0b3RhbF9hc2V0X2FsbG9jYXRlZF9ieXRlcywK KyAgICAgICAgICAgIHN1bShwZ19zdGF0X21lbW9yeV9hbGxvY2F0aW9uLmRzbV9hbGxvY2F0 ZWRfYnl0ZXMpIEFTIHRvdGFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgICAgICAgICBz dW0ocGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbi5nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRl cykgQVMgdG90YWxfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgICAgICAgICBz dW0ocGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbi5zbGFiX2FsbG9jYXRlZF9ieXRlcykgQVMg dG90YWxfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMKKyAgICAgICAgICAgRlJPTSBwZ19zdGF0X21l bW9yeV9hbGxvY2F0aW9uCisgICAgICAgICkKKyBTRUxFQ1Qgcy5kYXRpZCwKKyAgICBjdXJy ZW50X3NldHRpbmcoJ3NoYXJlZF9tZW1vcnlfc2l6ZSc6OnRleHQsIHRydWUpIEFTIHNoYXJl ZF9tZW1vcnlfc2l6ZSwKKyAgICAoY3VycmVudF9zZXR0aW5nKCdzaGFyZWRfbWVtb3J5X3Np emVfaW5faHVnZV9wYWdlcyc6OnRleHQsIHRydWUpKTo6aW50ZWdlciBBUyBzaGFyZWRfbWVt b3J5X3NpemVfaW5faHVnZV9wYWdlcywKKyAgICBzLmdsb2JhbF9kc21fYWxsb2NhdGVkX2J5 dGVzLAorICAgIHN1bXMudG90YWxfYXNldF9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgc3Vtcy50 b3RhbF9kc21fYWxsb2NhdGVkX2J5dGVzLAorICAgIHN1bXMudG90YWxfZ2VuZXJhdGlvbl9h bGxvY2F0ZWRfYnl0ZXMsCisgICAgc3Vtcy50b3RhbF9zbGFiX2FsbG9jYXRlZF9ieXRlcwor ICAgRlJPTSBzdW1zLAorICAgIChwZ19zdGF0X2dldF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRp b24oKSBzKGRhdGlkLCBnbG9iYWxfZHNtX2FsbG9jYXRlZF9ieXRlcykKKyAgICAgTEVGVCBK T0lOIHBnX2RhdGFiYXNlIGQgT04gKChzLmRhdGlkID0gZC5vaWQpKSk7CiBwZ19zdGF0X2dz c2FwaXwgU0VMRUNUIHBpZCwKICAgICBnc3NfYXV0aCBBUyBnc3NfYXV0aGVudGljYXRlZCwK ICAgICBnc3NfcHJpbmMgQVMgcHJpbmNpcGFsLApAQCAtMTkwMyw2ICsxOTIxLDE1IEBAIHBn X3N0YXRfaW98IFNFTEVDVCBiYWNrZW5kX3R5cGUsCiAgICAgZnN5bmNfdGltZSwKICAgICBz dGF0c19yZXNldAogICAgRlJPTSBwZ19zdGF0X2dldF9pbygpIGIoYmFja2VuZF90eXBlLCBv YmplY3QsIGNvbnRleHQsIHJlYWRzLCByZWFkX3RpbWUsIHdyaXRlcywgd3JpdGVfdGltZSwg d3JpdGViYWNrcywgd3JpdGViYWNrX3RpbWUsIGV4dGVuZHMsIGV4dGVuZF90aW1lLCBvcF9i eXRlcywgaGl0cywgZXZpY3Rpb25zLCByZXVzZXMsIGZzeW5jcywgZnN5bmNfdGltZSwgc3Rh dHNfcmVzZXQpOworcGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbnwgU0VMRUNUIHMuZGF0aWQs CisgICAgcy5waWQsCisgICAgcy5hbGxvY2F0ZWRfYnl0ZXMsCisgICAgcy5hc2V0X2FsbG9j YXRlZF9ieXRlcywKKyAgICBzLmRzbV9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgcy5nZW5lcmF0 aW9uX2FsbG9jYXRlZF9ieXRlcywKKyAgICBzLnNsYWJfYWxsb2NhdGVkX2J5dGVzCisgICBG Uk9NIChwZ19zdGF0X2dldF9tZW1vcnlfYWxsb2NhdGlvbihOVUxMOjppbnRlZ2VyKSBzKGRh dGlkLCBwaWQsIGFsbG9jYXRlZF9ieXRlcywgYXNldF9hbGxvY2F0ZWRfYnl0ZXMsIGRzbV9h bGxvY2F0ZWRfYnl0ZXMsIGdlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzLCBzbGFiX2FsbG9j YXRlZF9ieXRlcykKKyAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIGQgT04gKChzLmRhdGlk ID0gZC5vaWQpKSk7CiBwZ19zdGF0X3Byb2dyZXNzX2FuYWx5emV8IFNFTEVDVCBzLnBpZCwK ICAgICBzLmRhdGlkLAogICAgIGQuZGF0bmFtZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc3RhdHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dGF0cy5vdXQKaW5kZXggNmUwODg5OGIxOC4uOTAyZDgyNzk5OCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zdGF0cy5vdXQKQEAgLTE2NDYsNCArMTY0Niw0MCBAQCBTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2hvdF8zIFdIRVJFIGEgPSAyOwogCiBEUk9QIFRBQkxFIGJyaW5f aG90XzM7CiBTRVQgZW5hYmxlX3NlcXNjYW4gPSBvbjsKKy0tIGVuc3VyZSB0aGF0IGFsbG9j YXRlZF9ieXRlcyBleGlzdCBmb3IgYmFja2VuZHMKK1NFTEVDVAorICAgIGFsbG9jYXRlZF9i eXRlcyA+IDAgQVMgcmVzdWx0CitGUk9NCisgICAgcGdfc3RhdF9hY3Rpdml0eSBwcworICAg IEpPSU4gcGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbiBwYSBPTiAocGEucGlkID0gcHMucGlk KQorV0hFUkUKKyAgICBiYWNrZW5kX3R5cGUgSU4gKCdjaGVja3BvaW50ZXInLCAnYmFja2dy b3VuZCB3cml0ZXInLCAnd2Fsd3JpdGVyJywgJ2F1dG92YWN1dW0gbGF1bmNoZXInKTsKKyBy ZXN1bHQgCistLS0tLS0tLQorIHQKKyB0CisgdAorIHQKKyg0IHJvd3MpCisKKy0tIGVuc3Vy ZSB0aGF0IHBnX3N0YXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uIHZpZXcgZXhpc3RzCitT RUxFQ1QKKyAgICBkYXRpZCA+IDAsIHBnX3NpemVfYnl0ZXMoc2hhcmVkX21lbW9yeV9zaXpl KSA+PSAwLCBzaGFyZWRfbWVtb3J5X3NpemVfaW5faHVnZV9wYWdlcyA+PSAtMSwgZ2xvYmFs X2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPj0gMAorRlJPTQorICAgIHBnX3N0YXRfZ2xvYmFsX21l bW9yeV9hbGxvY2F0aW9uOworID9jb2x1bW4/IHwgP2NvbHVtbj8gfCA/Y29sdW1uPyB8ID9j b2x1bW4/IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHQgICAgICAgIHwgdCAgICAgICAgfCB0ICAgICAgICB8IHQKKygxIHJvdykKKworLS0gZW5z dXJlIHRoYXQgcGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbiB2aWV3IGV4aXN0cworU0VMRUNU CisgICAgcGlkID4gMCwgYWxsb2NhdGVkX2J5dGVzID49IDAsIGFzZXRfYWxsb2NhdGVkX2J5 dGVzID49IDAsIGRzbV9hbGxvY2F0ZWRfYnl0ZXMgPj0gMCwgZ2VuZXJhdGlvbl9hbGxvY2F0 ZWRfYnl0ZXMgPj0gMCwgc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgPj0gMAorRlJPTQorICAgIHBn X3N0YXRfbWVtb3J5X2FsbG9jYXRpb24gbGltaXQgMTsKKyA/Y29sdW1uPyB8ID9jb2x1bW4/ IHwgP2NvbHVtbj8gfCA/Y29sdW1uPyB8ID9jb2x1bW4/IHwgP2NvbHVtbj8gCistLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHQgICAgICAgIHwgdCAgICAgICAgfCB0ICAgICAgICB8IHQgICAgICAgIHwgdCAg ICAgICAgfCB0CisoMSByb3cpCisKIC0tIEVuZCBvZiBTdGF0cyBUZXN0CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zdGF0cy5zcWwKaW5kZXggZDhhYzBkMDZmNC4uNDA3NDZjOTI1OCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3N0YXRzLnNxbApAQCAtODQ5LDQgKzg0OSwyNCBAQCBEUk9QIFRBQkxFIGJyaW5faG90 XzM7CiAKIFNFVCBlbmFibGVfc2Vxc2NhbiA9IG9uOwogCistLSBlbnN1cmUgdGhhdCBhbGxv Y2F0ZWRfYnl0ZXMgZXhpc3QgZm9yIGJhY2tlbmRzCitTRUxFQ1QKKyAgICBhbGxvY2F0ZWRf Ynl0ZXMgPiAwIEFTIHJlc3VsdAorRlJPTQorICAgIHBnX3N0YXRfYWN0aXZpdHkgcHMKKyAg ICBKT0lOIHBnX3N0YXRfbWVtb3J5X2FsbG9jYXRpb24gcGEgT04gKHBhLnBpZCA9IHBzLnBp ZCkKK1dIRVJFCisgICAgYmFja2VuZF90eXBlIElOICgnY2hlY2twb2ludGVyJywgJ2JhY2tn cm91bmQgd3JpdGVyJywgJ3dhbHdyaXRlcicsICdhdXRvdmFjdXVtIGxhdW5jaGVyJyk7CisK Ky0tIGVuc3VyZSB0aGF0IHBnX3N0YXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uIHZpZXcg ZXhpc3RzCitTRUxFQ1QKKyAgICBkYXRpZCA+IDAsIHBnX3NpemVfYnl0ZXMoc2hhcmVkX21l bW9yeV9zaXplKSA+PSAwLCBzaGFyZWRfbWVtb3J5X3NpemVfaW5faHVnZV9wYWdlcyA+PSAt MSwgZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPj0gMAorRlJPTQorICAgIHBnX3N0YXRf Z2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uOworCistLSBlbnN1cmUgdGhhdCBwZ19zdGF0X21l bW9yeV9hbGxvY2F0aW9uIHZpZXcgZXhpc3RzCitTRUxFQ1QKKyAgICBwaWQgPiAwLCBhbGxv Y2F0ZWRfYnl0ZXMgPj0gMCwgYXNldF9hbGxvY2F0ZWRfYnl0ZXMgPj0gMCwgZHNtX2FsbG9j YXRlZF9ieXRlcyA+PSAwLCBnZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyA+PSAwLCBzbGFi X2FsbG9jYXRlZF9ieXRlcyA+PSAwCitGUk9NCisgICAgcGdfc3RhdF9tZW1vcnlfYWxsb2Nh dGlvbiBsaW1pdCAxOwogLS0gRW5kIG9mIFN0YXRzIFRlc3QKLS0gCjIuNDMuMgoK --------------20u0xY3IUdSe7YL2gKC1UjVA Content-Type: text/x-patch; charset=UTF-8; name="v20140313-0002-fixup-pgstat_get_local_beentry_by_index.patch" Content-Disposition: attachment; filename*0="v20140313-0002-fixup-pgstat_get_local_beentry_by_index.patch" Content-Transfer-Encoding: base64 RnJvbSAwOTM0YTkyZjUxY2NiMTkyNjZhMmZhYTJmMGI5MTQ2ZTNmOWE2NjVjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogVHVlLCAyNiBEZWMgMjAyMyAxODowNTowMiArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMi8zXSBmaXh1cDogcGdzdGF0X2dldF9sb2NhbF9iZWVudHJ5X2J5X2luZGV4Cgot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCBmZWM3YWUyZDVmLi45YzgyZWM0OGNiIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjA1Nyw3ICsyMDU3LDcgQEAg cGdfc3RhdF9nZXRfbWVtb3J5X2FsbG9jYXRpb24oUEdfRlVOQ1RJT05fQVJHUykKIAkJUGdC YWNrZW5kU3RhdHVzICpiZWVudHJ5OwogCiAJCS8qIEdldCB0aGUgbmV4dCBvbmUgaW4gdGhl IGxpc3QgKi8KLQkJbG9jYWxfYmVlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2xvY2FsX2Jl ZW50cnkoY3Vycl9iYWNrZW5kKTsKKwkJbG9jYWxfYmVlbnRyeSA9IHBnc3RhdF9nZXRfbG9j YWxfYmVlbnRyeV9ieV9pbmRleChjdXJyX2JhY2tlbmQpOwogCQliZWVudHJ5ID0gJmxvY2Fs X2JlZW50cnktPmJhY2tlbmRTdGF0dXM7CiAKIAkJLyogSWYgbG9va2luZyBmb3Igc3BlY2lm aWMgUElELCBpZ25vcmUgYWxsIHRoZSBvdGhlcnMgKi8KLS0gCjIuNDMuMgoK --------------20u0xY3IUdSe7YL2gKC1UjVA Content-Type: text/x-patch; charset=UTF-8; name="v20140313-0003-Add-the-ability-to-limit-the-amount-of-memory-that-c.patch" Content-Disposition: attachment; filename*0="v20140313-0003-Add-the-ability-to-limit-the-amount-of-memory"; filename*1="-that-c.patch" Content-Transfer-Encoding: base64 RnJvbSAzZTY1ZWI2YzI5OGQzMTYwZGI5ZTUyOGFiM2MyYjg1N2FjZDU3OTM3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogVHVlLCAyNiBEZWMgMjAyMyAxNzo1NToyMyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMy8zXSBBZGQgdGhlIGFiaWxpdHkgdG8gbGltaXQgdGhlIGFtb3VudCBvZiBtZW1v cnkgdGhhdCBjYW4gYmUKIGFsbG9jYXRlZCB0byBiYWNrZW5kcy4KClRoaXMgYnVpbGRzIG9u IHRoZSB3b3JrIHRoYXQgYWRkcyBiYWNrZW5kIG1lbW9yeSBhbGxvY2F0ZWQgdHJhY2tpbmcu CgpBZGQgR1VDIHZhcmlhYmxlIG1heF90b3RhbF9iYWNrZW5kX21lbW9yeS4KClNwZWNpZmll cyBhIGxpbWl0IHRvIHRoZSBhbW91bnQgb2YgbWVtb3J5IChpbiBNQikgdGhhdCBtYXkgYmUg YWxsb2NhdGVkIHRvCmJhY2tlbmRzIGluIHRvdGFsIChpLmUuIHRoaXMgaXMgbm90IGEgcGVy IHVzZXIgb3IgcGVyIGJhY2tlbmQgbGltaXQpLiBJZiB1bnNldCwKb3Igc2V0IHRvIDAgaXQg aXMgZGlzYWJsZWQuIEl0IGlzIGludGVuZGVkIGFzIGEgcmVzb3VyY2UgdG8gaGVscCBhdm9p ZCB0aGUgT09NCmtpbGxlciBvbiBMSU5VWCBhbmQgbWFuYWdlIHJlc291cmNlcyBpbiBnZW5l cmFsLiBBIGJhY2tlbmQgcmVxdWVzdCB0aGF0IHdvdWxkCmV4aGF1c3QgbWF4X3RvdGFsX2Jh Y2tlbmRfbWVtb3J5IG1lbW9yeSB3aWxsIGJlIGRlbmllZCB3aXRoIGFuIG91dCBvZiBtZW1v cnkKZXJyb3IgY2F1c2luZyB0aGF0IGJhY2tlbmQncyBjdXJyZW50IHF1ZXJ5L3RyYW5zYWN0 aW9uIHRvIGZhaWwuICBGdXJ0aGVyCnJlcXVlc3RzIHdpbGwgbm90IGJlIGFsbG9jYXRlZCB1 bnRpbCBkcm9wcGluZyBiZWxvdyB0aGUgbGltaXQuIEtlZXAgdGhpcyBpbgptaW5kIHdoZW4g c2V0dGluZyB0aGlzIHZhbHVlLiBEdWUgdG8gdGhlIGR5bmFtaWMgbmF0dXJlIG9mIG1lbW9y eSBhbGxvY2F0aW9ucywKdGhpcyBsaW1pdCBpcyBub3QgZXhhY3QuIFRoaXMgbGltaXQgZG9l cyBub3QgYWZmZWN0IGF1eGlsaWFyeSBiYWNrZW5kCnByb2Nlc3Nlcy4gQmFja2VuZCBtZW1v cnkgYWxsb2NhdGlvbnMgYXJlIGRpc3BsYXllZCBpbiB0aGUKcGdfc3RhdF9tZW1vcnlfYWxs b2NhdGlvbiBhbmQgcGdfc3RhdF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb24gdmlld3MuCi0t LQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgIDMw ICsrKwogZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCAgICAgICAgICAgICAgICAgIHwg IDM4ICsrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAg ICB8ICAgMiArCiBzcmMvYmFja2VuZC9wb3J0L3N5c3Zfc2htZW0uYyAgICAgICAgICAgICAg ICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgICAgICAg ICAgIHwgICA1ICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMgICAgICAg ICAgICB8ICAxOCArKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYyAgICAgICAg ICAgICAgIHwgIDQ1ICsrKysrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5k X3N0YXR1cy5jICAgfCAxNzUgKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAgfCAgMTYgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2hhc2gvZHluYWhhc2guYyAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQv dXRpbHMvaW5pdC9taXNjaW5pdC5jICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5k L3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICAxMSArKwogc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgICAzICsKIHNyYy9iYWNr ZW5kL3V0aWxzL21tZ3IvYXNldC5jICAgICAgICAgICAgICAgICB8ICAzMyArKysrCiBzcmMv YmFja2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYyAgICAgICAgICAgfCAgMTYgKysKIHNy Yy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jICAgICAgICAgICAgICAgICB8ICAxNSArLQog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICA2ICst CiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaCAgICAgICAgICAgICAgICAgICAgfCAgIDcg Kwogc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaCAgICAgICAgICAgIHwgMTAz ICsrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAg ICAgICAgfCAgIDQgKy0KIDIwIGZpbGVzIGNoYW5nZWQsIDUyNiBpbnNlcnRpb25zKCspLCAy MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNjVhNmU2YzQwOC4uNGYyNjI4NGVl MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9jb25maWcuc2dtbApAQCAtMjMwNiw2ICsyMzA2LDM2IEBAIGluY2x1ZGVfZGlyICdj b25mLmQnCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg ICA8dmFybGlzdGVudHJ5IGlkPSJndWMtbWF4LXRvdGFsLWJhY2tlbmQtbWVtb3J5IiB4cmVm bGFiZWw9Im1heF90b3RhbF9iYWNrZW5kX21lbW9yeSI+CisgICAgICA8dGVybT48dmFybmFt ZT5tYXhfdG90YWxfYmFja2VuZF9tZW1vcnk8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90 eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+bWF4 X3RvdGFsX2JhY2tlbmRfbWVtb3J5PC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRl cjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAg PGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMgYSBsaW1pdCB0 byB0aGUgYW1vdW50IG9mIG1lbW9yeSAoTUIpIHRoYXQgbWF5IGJlIGFsbG9jYXRlZCB0bwor ICAgICAgICBiYWNrZW5kcyBpbiB0b3RhbCAoaS5lLiB0aGlzIGlzIG5vdCBhIHBlciB1c2Vy IG9yIHBlciBiYWNrZW5kIGxpbWl0KS4KKyAgICAgICAgSWYgdW5zZXQsIG9yIHNldCB0byAw IGl0IGlzIGRpc2FibGVkLiAgQXQgZGF0YWJzZSBzdGFydHVwCisgICAgICAgIG1heF90b3Rh bF9iYWNrZW5kX21lbW9yeSBpcyByZWR1Y2VkIGJ5IHNoYXJlZF9tZW1vcnlfc2l6ZV9tYgor ICAgICAgICAoaW5jbHVkZXMgc2hhcmVkIGJ1ZmZlcnMgYW5kIG90aGVyIG1lbW9yeSByZXF1 aXJlZCBmb3IgaW5pdGlhbGl6YXRpb24pLgorICAgICAgICBFYWNoIGJhY2tlbmQgcHJvY2Vz cyBpcyBpbnRpYWxpemVkIHdpdGggYSAxTUIgbG9jYWwgYWxsb3dhbmNlIHdoaWNoCisgICAg ICAgIGFsc28gcmVkdWNlcyB0b3RhbF9ia2VuZF9tZW1fYnl0ZXNfYXZhaWxhYmxlLiBLZWVw IHRoaXMgaW4gbWluZCB3aGVuCisgICAgICAgIHNldHRpbmcgdGhpcyB2YWx1ZS4gQSBiYWNr ZW5kIHJlcXVlc3QgdGhhdCB3b3VsZCBleGhhdXN0IHRoZSBsaW1pdCB3aWxsCisgICAgICAg IGJlIGRlbmllZCB3aXRoIGFuIG91dCBvZiBtZW1vcnkgZXJyb3IgY2F1c2luZyB0aGF0IGJh Y2tlbmQncyBjdXJyZW50CisgICAgICAgIHF1ZXJ5L3RyYW5zYWN0aW9uIHRvIGZhaWwuIEZ1 cnRoZXIgcmVxdWVzdHMgd2lsbCBub3QgYmUgYWxsb2NhdGVkIHVudGlsCisgICAgICAgIGRy b3BwaW5nIGJlbG93IHRoZSBsaW1pdC4gIFRoaXMgbGltaXQgZG9lcyBub3QgYWZmZWN0IGF1 eGlsaWFyeSBiYWNrZW5kCisgICAgICAgIHByb2Nlc3NlcworICAgICAgICA8eHJlZiBsaW5r ZW5kPSJnbG9zc2FyeS1hdXhpbGlhcnktcHJvYyIvPiBvciB0aGUgcG9zdG1hc3RlciBwcm9j ZXNzLgorICAgICAgICBCYWNrZW5kIG1lbW9yeSBhbGxvY2F0aW9ucyAoPHZhcm5hbWU+YWxs b2NhdGVkX2J5dGVzPC92YXJuYW1lPikgYXJlCisgICAgICAgIGRpc3BsYXllZCBpbiB0aGUK KyAgICAgICAgPGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LW1lbW9yeS1hbGxv Y2F0aW9uLXZpZXciPjxzdHJ1Y3RuYW1lPnBnX3N0YXRfbWVtb3J5X2FsbG9jYXRpb248L3N0 cnVjdG5hbWU+PC9saW5rPgorICAgICAgICB2aWV3LiAgRHVlIHRvIHRoZSBkeW5hbWljIG5h dHVyZSBvZiBtZW1vcnkgYWxsb2NhdGlvbnMsIHRoaXMgbGltaXQgaXMKKyAgICAgICAgbm90 IGV4YWN0LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFy bGlzdGVudHJ5PgorCiAgICAgIDwvdmFyaWFibGVsaXN0PgogICAgICA8L3NlY3QyPgogCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sIGIvZG9jL3NyYy9zZ21s L21vbml0b3Jpbmcuc2dtbAppbmRleCA1ZjgyN2ZlMGIwLi5kYmU0MGI4ODEwIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9t b25pdG9yaW5nLnNnbWwKQEAgLTQ2NTgsMTAgKzQ2NTgsNyBAQCBkZXNjcmlwdGlvbiB8IFdh aXRpbmcgZm9yIGEgbmV3bHkgaW5pdGlhbGl6ZWQgV0FMIGZpbGUgdG8gcmVhY2ggZHVyYWJs ZSBzdG9yYWdlCiAgICAgICA8L3BhcmE+CiAgICAgIDxwYXJhPgogICAgICAgTWVtb3J5IGN1 cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhpcyBiYWNrZW5kIGluIGJ5dGVzLiBUaGlzIGlzIHRo ZSBiYWxhbmNlCi0gICAgICBvZiBieXRlcyBhbGxvY2F0ZWQgYW5kIGZyZWVkIGJ5IHRoaXMg YmFja2VuZC4gRHluYW1pYyBzaGFyZWQgbWVtb3J5Ci0gICAgICBhbGxvY2F0aW9ucyBhcmUg aW5jbHVkZWQgb25seSBpbiB0aGUgdmFsdWUgZGlzcGxheWVkIGZvciB0aGUgYmFja2VuZCB0 aGF0Ci0gICAgICBjcmVhdGVkIHRoZW0sIHRoZXkgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUg dmFsdWUgZm9yIGJhY2tlbmRzIHRoYXQgYXJlCi0gICAgICBhdHRhY2hlZCB0byB0aGVtIHRv IGF2b2lkIGRvdWJsZSBjb3VudGluZy4KKyAgICAgIG9mIGJ5dGVzIGFsbG9jYXRlZCBhbmQg ZnJlZWQgYnkgdGhpcyBiYWNrZW5kLgogICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9y b3c+CiAKQEAgLTQ3NzgsNiArNDc3NSwzOSBAQCBkZXNjcmlwdGlvbiB8IFdhaXRpbmcgZm9y IGEgbmV3bHkgaW5pdGlhbGl6ZWQgV0FMIGZpbGUgdG8gcmVhY2ggZHVyYWJsZSBzdG9yYWdl CiAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+bWF4X3RvdGFsX2JhY2tlbmRf bWVtb3J5X2J5dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIFJlcG9ydHMgdGhlIHVzZXIgZGVmaW5lZCBi YWNrZW5kIG1heGltdW0gYWxsb3dlZCBzaGFyZWQgbWVtb3J5IGluIGJ5dGVzLgorICAgICAg MCBpZiBkaXNhYmxlZCBvciBub3Qgc2V0LiBTZWUKKyAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1 Yy1tYXgtdG90YWwtYmFja2VuZC1tZW1vcnkiLz4uCisgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dG90YWxfYmtlbmRfbWVtX2J5dGVzX2F2YWlsYWJsZTwvc3RydWN0Zmll bGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+Cisg ICAgICBUcmFja3MgbWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5IChpbiBieXRlcykgYXZhaWxh YmxlIGZvciBhbGxvY2F0aW9uLiBBdAorICAgICAgZGF0YWJhc2Ugc3RhcnR1cCwgdG90YWxf YmtlbmRfbWVtX2J5dGVzX2F2YWlsYWJsZSBpcyByZWR1Y2VkIGJ5IHRoZQorICAgICAgYnl0 ZSBlcXVpdmFsZW50IG9mIHNoYXJlZF9tZW1vcnlfc2l6ZV9tYi4gRWFjaCBiYWNrZW5kIHBy b2Nlc3MgaXMKKyAgICAgIGludGlhbGl6ZWQgd2l0aCBhIDFNQiBsb2NhbCBhbGxvd2FuY2Ug d2hpY2ggYWxzbyByZWR1Y2VzCisgICAgICB0b3RhbF9ia2VuZF9tZW1fYnl0ZXNfYXZhaWxh YmxlLiBBIHByb2Nlc3MncyBhbGxvY2F0aW9uIHJlcXVlc3RzIHJlZHVjZQorICAgICAgaXQn cyBsb2NhbCBhbGxvd2FuY2UuIElmIGEgcHJvY2VzcydzIGFsbG9jYXRpb24gcmVxdWVzdCBl eGNlZWRzIGl0J3MKKyAgICAgIHJlbWFpbmluZyBhbGxvd2FuY2UsIGFuIGF0dGVtcHQgaXMg bWFkZSB0byByZWZpbGwgdGhlIGxvY2FsIGFsbG93YW5jZQorICAgICAgZnJvbSB0b3RhbF9i a2VuZF9tZW1fYnl0ZXNfYXZhaWxhYmxlLiBJZiB0aGUgcmVmaWxsIHJlcXVlc3QgZmFpbHMs IHRoZW4KKyAgICAgIHRoZSByZXF1ZXN0aW5nIHByb2Nlc3Mgd2lsbCBmYWlsIHdpdGggYW4g b3V0IG9mIG1lbW9yeSBlcnJvciByZXN1bHRpbmcKKyAgICAgIGluIHRoZSBjYW5jZWxsYXRp b24gb2YgdGhhdCBwcm9jZXNzJ3MgYWN0aXZlIHF1ZXJ5L3RyYW5zYWN0aW9uLiAgVGhlCisg ICAgICBkZWZhdWx0IHJlZmlsbCBhbGxvY2F0aW9uIHF1YW50aXR5IGlzIDFNQi4gIElmIGEg cmVxdWVzdCBpcyBncmVhdGVyIHRoYW4KKyAgICAgIDFNQiwgYW4gYXR0ZW1wdCB3aWxsIGJl IG1hZGUgdG8gYWxsb2NhdGUgdGhlIGZ1bGwgYW1vdW50LiBJZgorICAgICAgbWF4X3RvdGFs X2JhY2tlbmRfbWVtb3J5IGlzIGRpc2FibGVkLCB0aGlzIHdpbGwgYmUgLTEuCisgICAgICA8 eHJlZiBsaW5rZW5kPSJndWMtbWF4LXRvdGFsLWJhY2tlbmQtbWVtb3J5Ii8+LgorICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPmdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVz PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsCmluZGV4IDYxZmY0YTU5YjYuLmM2NDZiMjhmMTYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTE0MDIsNiArMTQwMiw4IEBAIFNF TEVDVAogICAgICAgICBTLmRhdGlkIEFTIGRhdGlkLAogICAgICAgICBjdXJyZW50X3NldHRp bmcoJ3NoYXJlZF9tZW1vcnlfc2l6ZScsIHRydWUpIGFzIHNoYXJlZF9tZW1vcnlfc2l6ZSwK ICAgICAgICAgKGN1cnJlbnRfc2V0dGluZygnc2hhcmVkX21lbW9yeV9zaXplX2luX2h1Z2Vf cGFnZXMnLCB0cnVlKSk6OmludGVnZXIgYXMgc2hhcmVkX21lbW9yeV9zaXplX2luX2h1Z2Vf cGFnZXMsCisgICAgICAgIHBnX3NpemVfYnl0ZXMoY3VycmVudF9zZXR0aW5nKCdtYXhfdG90 YWxfYmFja2VuZF9tZW1vcnknLCB0cnVlKSkgYXMgbWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5 X2J5dGVzLAorICAgICAgICBTLnRvdGFsX2JrZW5kX21lbV9ieXRlc19hdmFpbGFibGUsCiAg ICAgICAgIFMuZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMsCiAgICAgICAgIHN1bXMudG90 YWxfYXNldF9hbGxvY2F0ZWRfYnl0ZXMsCiAgICAgICAgIHN1bXMudG90YWxfZHNtX2FsbG9j YXRlZF9ieXRlcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvc3lzdl9zaG1lbS5j IGIvc3JjL2JhY2tlbmQvcG9ydC9zeXN2X3NobWVtLmMKaW5kZXggMWE2ZDhmYTBmYi4uYzA3 ODg3MzJkZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9ydC9zeXN2X3NobWVtLmMKKysr IGIvc3JjL2JhY2tlbmQvcG9ydC9zeXN2X3NobWVtLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNp bmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNs dWRlICJzdG9yYWdlL3BnX3NobWVtLmgiCisjaW5jbHVkZSAidXRpbHMvYmFja2VuZF9zdGF0 dXMuaCIKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9ndWNfaG9v a3MuaCIKICNpbmNsdWRlICJ1dGlscy9waWRmaWxlLmgiCkBAIC05MTgsNiArOTE5LDE0IEBA IFBHU2hhcmVkTWVtb3J5UmVBdHRhY2godm9pZCkKIAlkc21fc2V0X2NvbnRyb2xfaGFuZGxl KGhkci0+ZHNtX2NvbnRyb2wpOwogCiAJVXNlZFNobWVtU2VnQWRkciA9IGhkcjsJCS8qIHBy b2JhYmx5IHJlZHVuZGFudCAqLworCisJLyoKKwkgKiBJbml0IGFsbG9jYXRlZCBieXRlcyB0 byBhdm9pZCBkb3VibGUgY291bnRpbmcgcGFyZW50IGFsbG9jYXRpb24gZm9yCisJICogZm9y ay9leGVjIHByb2Nlc3Nlcy4gRm9ya2VkIHByb2Nlc3NlcyBwZXJmb3JtIHRoaXMgYWN0aW9u IGluCisJICogSW5pdFBvc3RtYXN0ZXJDaGlsZC4gRm9yIEVYRUNfQkFDS0VORCBwcm9jZXNz ZXMgd2UgaGF2ZSB0byB3YWl0IGZvcgorCSAqIHNoYXJlZCBtZW1vcnkgdG8gYmUgcmVhdHRh Y2hlZC4KKwkgKi8KKwlwZ3N0YXRfaW5pdF9hbGxvY2F0ZWRfYnl0ZXMoKTsKIH0KIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jIGIvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKaW5kZXggNDlmYzZmOTc5ZS4uYWJi MTBlZDdjOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVy LmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAgLTU1Niw2 ICs1NTYsNyBAQCB0eXBlZGVmIHN0cnVjdAogI2VuZGlmCiAJY2hhcgkJbXlfZXhlY19wYXRo W01BWFBHUEFUSF07CiAJY2hhcgkJcGtnbGliX3BhdGhbTUFYUEdQQVRIXTsKKwlpbnQJCQlt YXhfdG90YWxfYmtlbmRfbWVtOwogfSBCYWNrZW5kUGFyYW1ldGVyczsKIAogc3RhdGljIHZv aWQgcmVhZF9iYWNrZW5kX3ZhcmlhYmxlcyhjaGFyICppZCwgQ2xpZW50U29ja2V0ICoqY2xp ZW50X3NvY2ssIEJhY2tncm91bmRXb3JrZXIgKip3b3JrZXIpOwpAQCAtNjE1Miw2ICs2MTUz LDggQEAgc2F2ZV9iYWNrZW5kX3ZhcmlhYmxlcyhCYWNrZW5kUGFyYW1ldGVycyAqcGFyYW0s IENsaWVudFNvY2tldCAqY2xpZW50X3NvY2ssIEJhY2sKIAogCXN0cmxjcHkocGFyYW0tPnBr Z2xpYl9wYXRoLCBwa2dsaWJfcGF0aCwgTUFYUEdQQVRIKTsKIAorCXBhcmFtLT5tYXhfdG90 YWxfYmtlbmRfbWVtID0gbWF4X3RvdGFsX2JrZW5kX21lbTsKKwogCXJldHVybiB0cnVlOwog fQogCkBAIC02MzkxLDYgKzYzOTQsOCBAQCByZXN0b3JlX2JhY2tlbmRfdmFyaWFibGVzKEJh Y2tlbmRQYXJhbWV0ZXJzICpwYXJhbSwgQ2xpZW50U29ja2V0ICoqY2xpZW50X3NvY2ssCiAK IAlzdHJsY3B5KHBrZ2xpYl9wYXRoLCBwYXJhbS0+cGtnbGliX3BhdGgsIE1BWFBHUEFUSCk7 CiAKKwltYXhfdG90YWxfYmtlbmRfbWVtID0gcGFyYW0tPm1heF90b3RhbF9ia2VuZF9tZW07 CisKIAkvKgogCSAqIFdlIG5lZWQgdG8gcmVzdG9yZSBmZC5jJ3MgY291bnRzIG9mIGV4dGVy bmFsbHktb3BlbmVkIEZEczsgdG8gYXZvaWQKIAkgKiBjb25mdXNpb24sIGJlIHN1cmUgdG8g ZG8gdGhpcyBhZnRlciByZXN0b3JpbmcgbWF4X3NhZmVfZmRzLiAgKE5vdGU6CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5jIGIvc3JjL2JhY2tlbmQv c3RvcmFnZS9pcGMvZHNtX2ltcGwuYwppbmRleCBhZjY3ZTU1YmRmLi5iNmRlZTc1NDIzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMKQEAgLTI1NCw2ICsyNTQsMTYgQEAg ZHNtX2ltcGxfcG9zaXgoZHNtX29wIG9wLCBkc21faGFuZGxlIGhhbmRsZSwgU2l6ZSByZXF1 ZXN0X3NpemUsCiAJCXJldHVybiB0cnVlOwogCX0KIAorCS8qIERvIG5vdCBleGNlZWQgbWF4 aW11bSBhbGxvd2VkIG1lbW9yeSBhbGxvY2F0aW9uICovCisJaWYgKG9wID09IERTTV9PUF9D UkVBVEUgJiYgZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKHJlcXVlc3Rfc2l6ZSkpCisJ eworCQllcmVwb3J0KGVsZXZlbCwKKwkJCQkoZXJyY29kZV9mb3JfZHluYW1pY19zaGFyZWRf bWVtb3J5KCksCisJCQkJIGVycm1zZygib3V0IG9mIG1lbW9yeSBmb3Igc2VnbWVudCBcIiVz XCIgLSBleGNlZWRzIG1heF90b3RhbF9iYWNrZW5kX21lbW9yeTogJW0iLAorCQkJCQkJbmFt ZSkpKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwogCS8qCiAJICogQ3JlYXRlIG5ldyBzZWdt ZW50IG9yIG9wZW4gYW4gZXhpc3Rpbmcgb25lIGZvciBhdHRhY2guCiAJICoKQEAgLTUyMyw2 ICs1MzMsMTAgQEAgZHNtX2ltcGxfc3lzdihkc21fb3Agb3AsIGRzbV9oYW5kbGUgaGFuZGxl LCBTaXplIHJlcXVlc3Rfc2l6ZSwKIAkJaW50CQkJZmxhZ3MgPSBJUENQcm90ZWN0aW9uOwog CQlzaXplX3QJCXNlZ3NpemU7CiAKKwkJLyogRG8gbm90IGV4Y2VlZCBtYXhpbXVtIGFsbG93 ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwkJaWYgKG9wID09IERTTV9PUF9DUkVBVEUgJiYg ZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKHJlcXVlc3Rfc2l6ZSkpCisJCQlyZXR1cm4g ZmFsc2U7CisKIAkJLyoKIAkJICogQWxsb2NhdGUgdGhlIG1lbW9yeSBCRUZPUkUgYWNxdWly aW5nIHRoZSByZXNvdXJjZSwgc28gdGhhdCB3ZSBkb24ndAogCQkgKiBsZWFrIHRoZSByZXNv dXJjZSBpZiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlscy4KQEAgLTcxNyw2ICs3MzEsMTAgQEAg ZHNtX2ltcGxfd2luZG93cyhkc21fb3Agb3AsIGRzbV9oYW5kbGUgaGFuZGxlLCBTaXplIHJl cXVlc3Rfc2l6ZSwKIAkJcmV0dXJuIHRydWU7CiAJfQogCisJLyogRG8gbm90IGV4Y2VlZCBt YXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwlpZiAob3AgPT0gRFNNX09Q X0NSRUFURSAmJiBleGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0ocmVxdWVzdF9zaXplKSkK KwkJcmV0dXJuIGZhbHNlOworCiAJLyogQ3JlYXRlIG5ldyBzZWdtZW50IG9yIG9wZW4gYW4g ZXhpc3Rpbmcgb25lIGZvciBhdHRhY2guICovCiAJaWYgKG9wID09IERTTV9PUF9DUkVBVEUp CiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMKaW5kZXggMTk1OWI1ZjRlNi4uNmRiZTQz NzNmOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYworKysg Yi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jCkBAIC01MCw2ICs1MCw3IEBACiAj aW5jbHVkZSAic3RvcmFnZS9wcm9jc2lnbmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9zcGlu LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9zdGFuZGJ5LmgiCisjaW5jbHVkZSAidXRpbHMvZ3Vj LmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZW91dC5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVz dGFtcC5oIgogCkBAIC0xODIsNiArMTgzLDUwIEBAIEluaXRQcm9jR2xvYmFsKHZvaWQpCiAJ cGdfYXRvbWljX2luaXRfdTMyKCZQcm9jR2xvYmFsLT5jbG9nR3JvdXBGaXJzdCwgSU5WQUxJ RF9QUk9DX05VTUJFUik7CiAJcGdfYXRvbWljX2luaXRfdTY0KCZQcm9jR2xvYmFsLT5nbG9i YWxfZHNtX2FsbG9jYXRpb24sIDApOwogCisJLyogU2V0dXAgYmFja2VuZCBtZW1vcnkgbGlt aXRpbmcgaWYgY29uZmlndXJlZCAqLworCWlmIChtYXhfdG90YWxfYmtlbmRfbWVtID4gMCkK Kwl7CisJCS8qCisJCSAqIENvbnZlcnQgbWF4X3RvdGFsX2JrZW5kX21lbSB0byBieXRlcywg YWNjb3VudCBmb3IKKwkJICogc2hhcmVkX21lbW9yeV9zaXplLCBhbmQgaW5pdGlhbGl6ZSB0 b3RhbF9ia2VuZF9tZW1fYnl0ZXMuCisJCSAqLworCQlpbnQJCQlyZXN1bHQgPSAwOworCisJ CS8qIEdldCBpbnRlZ2VyIHZhbHVlIG9mIHNoYXJlZF9tZW1vcnlfc2l6ZSAqLworCQlpZiAo cGFyc2VfaW50KEdldENvbmZpZ09wdGlvbigic2hhcmVkX21lbW9yeV9zaXplIiwgdHJ1ZSwg ZmFsc2UpLCAmcmVzdWx0LCAwLCBOVUxMKSkKKwkJeworCQkJLyoKKwkJCSAqIEVycm9yIG9u IHN0YXJ0dXAgaWYgYmFja2VuZCBtZW1vcnkgbGltaXQgaXMgbGVzcyB0aGFuIHNoYXJlZAor CQkJICogbWVtb3J5IHNpemUuIFdhcm4gb24gc3RhcnR1cCBpZiBiYWNrZW5kIG1lbW9yeSBh dmFpbGFibGUgaXMKKwkJCSAqIGxlc3MgdGhhbiBhcmJpdHJhcmlseSBwaWNrZWQgdmFsdWUg b2YgMTAwTUIuCisJCQkgKi8KKworCQkJaWYgKG1heF90b3RhbF9ia2VuZF9tZW0gLSByZXN1 bHQgPD0gMCkKKwkJCXsKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJybXNnKCJjb25m aWd1cmVkIG1heF90b3RhbF9iYWNrZW5kX21lbW9yeSAlZE1CIGlzIDw9IHNoYXJlZF9tZW1v cnlfc2l6ZSAlZE1CIiwKKwkJCQkJCQkgICBtYXhfdG90YWxfYmtlbmRfbWVtLCByZXN1bHQp LAorCQkJCQkJZXJyaGludCgiRGlzYWJsZSBvciBpbmNyZWFzZSB0aGUgY29uZmlndXJhdGlv biBwYXJhbWV0ZXIgXCJtYXhfdG90YWxfYmFja2VuZF9tZW1vcnlcIi4iKSk7CisJCQl9CisJ CQllbHNlIGlmIChtYXhfdG90YWxfYmtlbmRfbWVtIC0gcmVzdWx0IDw9IDEwMCkKKwkJCXsK KwkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQllcnJtc2coIm1heF90b3RhbF9iYWNrZW5k X21lbW9yeSAlZE1CIC0gc2hhcmVkX21lbW9yeV9zaXplICVkTUIgaXMgPD0gMTAwTUIiLAor CQkJCQkJCSAgIG1heF90b3RhbF9ia2VuZF9tZW0sIHJlc3VsdCksCisJCQkJCQllcnJoaW50 KCJDb25zaWRlciBpbmNyZWFzaW5nIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBcIm1h eF90b3RhbF9iYWNrZW5kX21lbW9yeVwiLiIpKTsKKwkJCX0KKworCQkJLyoKKwkJCSAqIEFj Y291bnQgZm9yIHNoYXJlZCBtZW1vcnkgc2l6ZSBhbmQgaW5pdGlhbGl6ZQorCQkJICogdG90 YWxfYmtlbmRfbWVtX2J5dGVzLgorCQkJICovCisJCQlwZ19hdG9taWNfaW5pdF91NjQoJlBy b2NHbG9iYWwtPnRvdGFsX2JrZW5kX21lbV9ieXRlcywKKwkJCQkJCQkgICAodWludDY0KSBt YXhfdG90YWxfYmtlbmRfbWVtICogMTAyNCAqIDEwMjQgLSAodWludDY0KSByZXN1bHQgKiAx MDI0ICogMTAyNCk7CisJCX0KKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwgZXJybXNnKCJt YXhfdG90YWxfYmFja2VuZF9tZW1vcnkgaW5pdGlhbGl6YXRpb24gaXMgdW5hYmxlIHRvIHBh cnNlIHNoYXJlZF9tZW1vcnlfc2l6ZSIpKTsKKwl9CisKIAkvKgogCSAqIENyZWF0ZSBhbmQg aW5pdGlhbGl6ZSBhbGwgdGhlIFBHUFJPQyBzdHJ1Y3R1cmVzIHdlJ2xsIG5lZWQuICBUaGVy ZSBhcmUKIAkgKiBmaXZlIHNlcGFyYXRlIGNvbnN1bWVyczogKDEpIG5vcm1hbCBiYWNrZW5k cywgKDIpIGF1dG92YWN1dW0gd29ya2VycwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvYmFja2VuZF9zdGF0dXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L2JhY2tlbmRfc3RhdHVzLmMKaW5kZXggMjViNTQ1NDQxYi4uYzEyNWRjM2FiYiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvYmFja2VuZF9zdGF0dXMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jCkBAIC00 NCw2ICs0NCwxMiBAQAogYm9vbAkJcGdzdGF0X3RyYWNrX2FjdGl2aXRpZXMgPSBmYWxzZTsK IGludAkJCXBnc3RhdF90cmFja19hY3Rpdml0eV9xdWVyeV9zaXplID0gMTAyNDsKIAorLyoK KyAqIE1heCBiYWNrZW5kIG1lbW9yeSBhbGxvY2F0aW9uIGFsbG93ZWQgKE1CKS4gMCA9IGRp c2FibGVkLgorICogQ2VudHJhbGl6ZWQgYnVja2V0IFByb2NHbG9iYWwtPm1heF90b3RhbF9i a2VuZF9tZW0gaXMgaW5pdGlhbGl6ZWQKKyAqIGFzIGEgYnl0ZSByZXByZXNlbnRhdGlvbiBv ZiB0aGlzIHZhbHVlIGluIEluaXRQcm9jR2xvYmFsKCkuCisgKi8KK2ludAkJCW1heF90b3Rh bF9ia2VuZF9tZW0gPSAwOwogCiAvKiBleHBvc2VkIHNvIHRoYXQgYmFja2VuZF9wcm9ncmVz cy5jIGNhbiBhY2Nlc3MgaXQgKi8KIFBnQmFja2VuZFN0YXR1cyAqTXlCRUVudHJ5ID0gTlVM TDsKQEAgLTY3LDYgKzczLDMxIEBAIHVpbnQ2NAkgICAqbXlfZ2VuZXJhdGlvbl9hbGxvY2F0 ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXM7CiB1aW50 NjQJCWxvY2FsX215X3NsYWJfYWxsb2NhdGVkX2J5dGVzID0gMDsKIHVpbnQ2NAkgICAqbXlf c2xhYl9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXM7 CiAKKy8qCisgKiBEZWZpbmUgaW5pdGlhbCBhbGxvY2F0aW9uIGFsbG93YW5jZSBmb3IgYSBi YWNrZW5kLgorICoKKyAqIE5PVEU6IGluaXRpYWxfYWxsb2NhdGlvbl9hbGxvd2FuY2UgJiYg YWxsb2NhdGlvbl9hbGxvd2FuY2VfcmVmaWxsX3F0eQorICogbWF5IGJlIGNhbmRpZGF0ZXMg Zm9yIGZ1dHVyZSBHVUMgdmFyaWFibGVzLiBBcmJpdHJhcnkgMU1CIHNlbGVjdGVkIGluaXRp YWxseS4KKyAqLwordWludDY0CQlpbml0aWFsX2FsbG9jYXRpb25fYWxsb3dhbmNlID0gMTAy NCAqIDEwMjQ7Cit1aW50NjQJCWFsbG9jYXRpb25fYWxsb3dhbmNlX3JlZmlsbF9xdHkgPSAx MDI0ICogMTAyNDsKKworLyoKKyAqIExvY2FsIGNvdW50ZXIgdG8gbWFuYWdlIHNoYXJlZCBt ZW1vcnkgYWxsb2NhdGlvbnMuIEF0IGJhY2tlbmQgc3RhcnR1cCwgc2V0IHRvCisgKiBpbml0 aWFsX2FsbG9jYXRpb25fYWxsb3dhbmNlIHZpYSBwZ3N0YXRfaW5pdF9hbGxvY2F0ZWRfYnl0 ZXMoKS4gRGVjcmVhc2UgYXMKKyAqIG1lbW9yeSBpcyBtYWxsb2MnZC4gV2hlbiBleGhhdXN0 ZWQsIGF0b21pY2FsbHkgcmVmaWxsIGlmIGF2YWlsYWJsZSBmcm9tCisgKiBQcm9jR2xvYmFs LT5tYXhfdG90YWxfYmtlbmRfbWVtIHZpYSBleGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0o KS4KKyAqLwordWludDY0CQlhbGxvY2F0aW9uX2FsbG93YW5jZSA9IDA7CisKKy8qCisgKiBM b2NhbCBjb3VudGVyIG9mIGZyZWUnZCBzaGFyZWQgbWVtb3J5LiBSZXR1cm4gdG8gZ2xvYmFs CisgKiBtYXhfdG90YWxfYmtlbmRfbWVtIHdoZW4gcmV0dXJuIHRocmVzaG9sZCBpcyBtZXQu IEFyYml0cmFyeSAxTUIgYnl0ZXMKKyAqIHNlbGVjdGVkIGluaXRpYWxseS4KKyAqLwordWlu dDY0CQlhbGxvY2F0aW9uX3JldHVybiA9IDA7Cit1aW50NjQJCWFsbG9jYXRpb25fcmV0dXJu X3RocmVzaG9sZCA9IDEwMjQgKiAxMDI0OworCiBzdGF0aWMgUGdCYWNrZW5kU3RhdHVzICpC YWNrZW5kU3RhdHVzQXJyYXkgPSBOVUxMOwogc3RhdGljIGNoYXIgKkJhY2tlbmRBcHBuYW1l QnVmZmVyID0gTlVMTDsKIHN0YXRpYyBjaGFyICpCYWNrZW5kQ2xpZW50SG9zdG5hbWVCdWZm ZXIgPSBOVUxMOwpAQCAtMTI3Miw2ICsxMzAzLDggQEAgcGdzdGF0X3NldF9hbGxvY2F0ZWRf Ynl0ZXNfc3RvcmFnZSh1aW50NjQgKmFsbG9jYXRlZF9ieXRlcywKIAogCW15X3NsYWJfYWxs b2NhdGVkX2J5dGVzID0gc2xhYl9hbGxvY2F0ZWRfYnl0ZXM7CiAJKnNsYWJfYWxsb2NhdGVk X2J5dGVzID0gbG9jYWxfbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXM7CisKKwlyZXR1cm47CiB9 CiAKIC8qCkBAIC0xMjk1LDYgKzEzMjgsMjMgQEAgcGdzdGF0X3Jlc2V0X2FsbG9jYXRlZF9i eXRlc19zdG9yYWdlKHZvaWQpCiAJCQkJCQkJCSpteV9kc21fYWxsb2NhdGVkX2J5dGVzKTsK IAl9CiAKKwkvKgorCSAqIFdoZW4gbGltaXRpbmcgbWF4aW11bSBiYWNrZW5kIG1lbW9yeSwg cmV0dXJuIHRoaXMgYmFja2VuZCdzIG1lbW9yeQorCSAqIGFsbG9jYXRpb25zIHRvIGdsb2Jh bC4KKwkgKi8KKwlpZiAobWF4X3RvdGFsX2JrZW5kX21lbSkKKwl7CisJCXZvbGF0aWxlIFBS T0NfSERSICpwcm9jZ2xvYmFsID0gUHJvY0dsb2JhbDsKKworCQlwZ19hdG9taWNfYWRkX2Zl dGNoX3U2NCgmcHJvY2dsb2JhbC0+dG90YWxfYmtlbmRfbWVtX2J5dGVzLAorCQkJCQkJCQkq bXlfYWxsb2NhdGVkX2J5dGVzICsgYWxsb2NhdGlvbl9hbGxvd2FuY2UgKworCQkJCQkJCQlh bGxvY2F0aW9uX3JldHVybik7CisKKwkJLyogUmVzZXQgbWVtb3J5IGFsbG9jYXRpb24gdmFy aWFibGVzICovCisJCWFsbG9jYXRpb25fYWxsb3dhbmNlID0gMDsKKwkJYWxsb2NhdGlvbl9y ZXR1cm4gPSAwOworCX0KKwogCS8qIFJlc2V0IG1lbW9yeSBhbGxvY2F0aW9uIHZhcmlhYmxl cyAqLwogCSpteV9hbGxvY2F0ZWRfYnl0ZXMgPSBsb2NhbF9teV9hbGxvY2F0ZWRfYnl0ZXMg PSAwOwogCSpteV9hc2V0X2FsbG9jYXRlZF9ieXRlcyA9IGxvY2FsX215X2FzZXRfYWxsb2Nh dGVkX2J5dGVzID0gMDsKQEAgLTEzMDgsNCArMTM1OCwxMjkgQEAgcGdzdGF0X3Jlc2V0X2Fs bG9jYXRlZF9ieXRlc19zdG9yYWdlKHZvaWQpCiAJbXlfZHNtX2FsbG9jYXRlZF9ieXRlcyA9 ICZsb2NhbF9teV9kc21fYWxsb2NhdGVkX2J5dGVzOwogCW15X2dlbmVyYXRpb25fYWxsb2Nh dGVkX2J5dGVzID0gJmxvY2FsX215X2dlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzOwogCW15 X3NsYWJfYWxsb2NhdGVkX2J5dGVzID0gJmxvY2FsX215X3NsYWJfYWxsb2NhdGVkX2J5dGVz OworCisJcmV0dXJuOworfQorCisvKgorICogRGV0ZXJtaW5lIGlmIGFsbG9jYXRpb24gcmVx dWVzdCB3aWxsIGV4Y2VlZCBtYXggYmFja2VuZCBtZW1vcnkgYWxsb3dlZC4KKyAqIERvIG5v dCBhcHBseSB0byBhdXhpbGlhcnkgcHJvY2Vzc2VzLgorICogUmVmaWxsIGFsbG9jYXRpb24g cmVxdWVzdCBidWNrZXQgd2hlbiBuZWVkZWQvcG9zc2libGUuCisgKi8KK2Jvb2wKK2V4Y2Vl ZHNfbWF4X3RvdGFsX2JrZW5kX21lbSh1aW50NjQgYWxsb2NhdGlvbl9yZXF1ZXN0KQorewor CWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJLyoKKwkgKiBXaGVuIGxpbWl0aW5nIG1heGlt dW0gYmFja2VuZCBtZW1vcnksIGF0dGVtcHQgdG8gcmVmaWxsIGFsbG9jYXRpb24KKwkgKiBy ZXF1ZXN0IGJ1Y2tldCBpZiBuZWVkZWQuCisJICovCisJaWYgKG1heF90b3RhbF9ia2VuZF9t ZW0gJiYgYWxsb2NhdGlvbl9yZXF1ZXN0ID4gYWxsb2NhdGlvbl9hbGxvd2FuY2UgJiYKKwkJ UHJvY0dsb2JhbCAhPSBOVUxMKQorCXsKKwkJdm9sYXRpbGUgUFJPQ19IRFIgKnByb2NnbG9i YWwgPSBQcm9jR2xvYmFsOworCQl1aW50NjQJCWF2YWlsYWJsZV9tYXhfdG90YWxfYmtlbmRf bWVtID0gMDsKKwkJYm9vbAkJc3RzID0gZmFsc2U7CisKKwkJLyoKKwkJICogSWYgYWxsb2Nh dGlvbiByZXF1ZXN0IGlzIGxhcmdlciB0aGFuIG1lbW9yeSByZWZpbGwgcXVhbnRpdHkgdGhl bgorCQkgKiBhdHRlbXB0IHRvIGluY3JlYXNlIGFsbG9jYXRpb24gYWxsb3dhbmNlIHdpdGgg cmVxdWVzdGVkIGFtb3VudCwKKwkJICogb3RoZXJ3aXNlIGZhbGwgdGhyb3VnaC4gSWYgdGhp cyByZWZpbGwgZmFpbHMgd2UgZG8gbm90IGhhdmUgZW5vdWdoCisJCSAqIG1lbW9yeSB0byBt ZWV0IHRoZSByZXF1ZXN0LgorCQkgKi8KKwkJaWYgKGFsbG9jYXRpb25fcmVxdWVzdCA+PSBh bGxvY2F0aW9uX2FsbG93YW5jZV9yZWZpbGxfcXR5KQorCQl7CisJCQl3aGlsZSAoKGF2YWls YWJsZV9tYXhfdG90YWxfYmtlbmRfbWVtID0gcGdfYXRvbWljX3JlYWRfdTY0KCZwcm9jZ2xv YmFsLT50b3RhbF9ia2VuZF9tZW1fYnl0ZXMpKSA+PSBhbGxvY2F0aW9uX3JlcXVlc3QpCisJ CQl7CisJCQkJaWYgKChyZXN1bHQgPSBwZ19hdG9taWNfY29tcGFyZV9leGNoYW5nZV91NjQo JnByb2NnbG9iYWwtPnRvdGFsX2JrZW5kX21lbV9ieXRlcywKKwkJCQkJCQkJCQkJCQkJCSAm YXZhaWxhYmxlX21heF90b3RhbF9ia2VuZF9tZW0sCisJCQkJCQkJCQkJCQkJCQkgYXZhaWxh YmxlX21heF90b3RhbF9ia2VuZF9tZW0gLSBhbGxvY2F0aW9uX3JlcXVlc3QpKSkKKwkJCQl7 CisJCQkJCWFsbG9jYXRpb25fYWxsb3dhbmNlID0gYWxsb2NhdGlvbl9hbGxvd2FuY2UgKyBh bGxvY2F0aW9uX3JlcXVlc3Q7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKworCQkJLyoK KwkJCSAqIEV4Y2x1ZGUgYXV4aWxpYXJ5IGFuZCBQb3N0bWFzdGVyIHByb2Nlc3NlcyBmcm9t IHRoZSBjaGVjay4KKwkJCSAqIFJldHVybiBmYWxzZS4gV2hpbGUgd2Ugd2FudCB0byBleGNs dWRlIHRoZW0gZnJvbSB0aGUgY2hlY2ssIHdlCisJCQkgKiBkbyBub3Qgd2FudCB0byBleGNs dWRlIHRoZW0gZnJvbSB0aGUgYWJvdmUgYWxsb2NhdGlvbiBoYW5kbGluZy4KKwkJCSAqLwor CQkJc3dpdGNoIChNeUJhY2tlbmRUeXBlKQorCQkJeworCQkJCWNhc2UgQl9TVEFSVFVQOgor CQkJCWNhc2UgQl9BUkNISVZFUjoKKwkJCQljYXNlIEJfQkdfV1JJVEVSOgorCQkJCWNhc2Ug Ql9DSEVDS1BPSU5URVI6CisJCQkJY2FzZSBCX1dBTF9XUklURVI6CisJCQkJY2FzZSBCX1dB TF9SRUNFSVZFUjoKKwkJCQljYXNlIEJfV0FMX1NVTU1BUklaRVI6CisJCQkJCXJldHVybiBm YWxzZTsKKwkJCQlkZWZhdWx0OgorCQkJCQlicmVhazsKKwkJCX0KKworCQkJaWYgKE15UHJv Y1BpZCA9PSBQb3N0bWFzdGVyUGlkKQorCQkJCXJldHVybiBmYWxzZTsKKworCQkJLyoKKwkJ CSAqIElmIHRoZSBhdG9taWMgZXhjaGFuZ2UgZmFpbHMgKHJlc3VsdCA9PSBmYWxzZSksIHdl IGRvIG5vdCBoYXZlCisJCQkgKiBlbm91Z2ggcmVzZXJ2ZSBtZW1vcnkgdG8gbWVldCB0aGUg cmVxdWVzdC4gTmVnYXRlIHJlc3VsdCB0bworCQkJICogcmV0dXJuIHRoZSBwcm9wZXIgdmFs dWUuCisJCQkgKi8KKworCQkJcmV0dXJuICFyZXN1bHQ7CisJCX0KKworCQkvKgorCQkgKiBB dHRlbXB0IHRvIGluY3JlYXNlIGFsbG9jYXRpb24gYWxsb3dhbmNlIGJ5IG1lbW9yeSByZWZp bGwgcXVhbnRpdHkuCisJCSAqIElmIGF2YWlsYWJsZSBtZW1vcnkgaXMvYmVjb21lcyBsZXNz IHRoYW4gbWVtb3J5IHJlZmlsbCBxdWFudGl0eSwKKwkJICogZmFsbCB0aHJvdWdoIHRvIGF0 dGVtcHQgdG8gYWxsb2NhdGUgcmVtYWluaW5nIGF2YWlsYWJsZSBtZW1vcnkuCisJCSAqLwor CQl3aGlsZSAoKGF2YWlsYWJsZV9tYXhfdG90YWxfYmtlbmRfbWVtID0gcGdfYXRvbWljX3Jl YWRfdTY0KCZwcm9jZ2xvYmFsLT50b3RhbF9ia2VuZF9tZW1fYnl0ZXMpKSA+PSBhbGxvY2F0 aW9uX2FsbG93YW5jZV9yZWZpbGxfcXR5KQorCQl7CisJCQlpZiAoKHN0cyA9IHBnX2F0b21p Y19jb21wYXJlX2V4Y2hhbmdlX3U2NCgmcHJvY2dsb2JhbC0+dG90YWxfYmtlbmRfbWVtX2J5 dGVzLAorCQkJCQkJCQkJCQkJCSAgJmF2YWlsYWJsZV9tYXhfdG90YWxfYmtlbmRfbWVtLAor CQkJCQkJCQkJCQkJCSAgYXZhaWxhYmxlX21heF90b3RhbF9ia2VuZF9tZW0gLSBhbGxvY2F0 aW9uX2FsbG93YW5jZV9yZWZpbGxfcXR5KSkpCisJCQl7CisJCQkJYWxsb2NhdGlvbl9hbGxv d2FuY2UgPSBhbGxvY2F0aW9uX2FsbG93YW5jZSArIGFsbG9jYXRpb25fYWxsb3dhbmNlX3Jl ZmlsbF9xdHk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQkvKiBEbyBub3QgYXR0ZW1w dCB0byBpbmNyZWFzZSBhbGxvY2F0aW9uIGlmIGF2YWlsYWJsZSBtZW1vcnkgaXMgYmVsb3cK KwkJICogYWxsb2NhdGlvbl9hbGxvd2FuY2VfcmVmaWxsX3F0eSAuCisJCSAqLworCisJCS8q CisJCSAqIElmIHJlZmlsbCBpcyBub3Qgc3VjY2Vzc2Z1bCwgd2UgcmV0dXJuIHRydWUsIG1l bW9yeSBsaW1pdCBleGNlZWRlZAorCQkgKi8KKwkJaWYgKCFzdHMpCisJCQlyZXN1bHQgPSB0 cnVlOworCX0KKworCS8qCisJICogRXhjbHVkZSBhdXhpbGlhcnkgYW5kIHBvc3RtYXN0ZXIg cHJvY2Vzc2VzIGZyb20gdGhlIGNoZWNrLiBSZXR1cm4gZmFsc2UuCisJICogV2hpbGUgd2Ug d2FudCB0byBleGNsdWRlIHRoZW0gZnJvbSB0aGUgY2hlY2ssIHdlIGRvIG5vdCB3YW50IHRv IGV4Y2x1ZGUKKwkgKiB0aGVtIGZyb20gdGhlIGFib3ZlIGFsbG9jYXRpb24gaGFuZGxpbmcu CisJICovCisJc3dpdGNoIChNeUJhY2tlbmRUeXBlKQorCXsKKwkJY2FzZSBCX1NUQVJUVVA6 CisJCWNhc2UgQl9BUkNISVZFUjoKKwkJY2FzZSBCX0JHX1dSSVRFUjoKKwkJY2FzZSBCX0NI RUNLUE9JTlRFUjoKKwkJY2FzZSBCX1dBTF9XUklURVI6CisJCWNhc2UgQl9XQUxfUkVDRUlW RVI6CisJCWNhc2UgQl9XQUxfU1VNTUFSSVpFUjoKKwkJCXJlc3VsdCA9IGZhbHNlOworCQlk ZWZhdWx0OgorCQkJYnJlYWs7CisJfQorCisJaWYgKE15UHJvY1BpZCA9PSBQb3N0bWFzdGVy UGlkKQorCQlyZXN1bHQgPSBmYWxzZTsKKworCXJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IDljODJlYzQ4Y2IuLjE1ZDI4MDBkNWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0yMDkzLDcgKzIwOTMs NyBAQCBwZ19zdGF0X2dldF9tZW1vcnlfYWxsb2NhdGlvbihQR19GVU5DVElPTl9BUkdTKQog RGF0dW0KIHBnX3N0YXRfZ2V0X2dsb2JhbF9tZW1vcnlfYWxsb2NhdGlvbihQR19GVU5DVElP Tl9BUkdTKQogewotI2RlZmluZSBQR19TVEFUX0dFVF9HTE9CQUxfTUVNT1JZX0FMTE9DQVRJ T05fQ09MUwkyCisjZGVmaW5lIFBHX1NUQVRfR0VUX0dMT0JBTF9NRU1PUllfQUxMT0NBVElP Tl9DT0xTCTMKIAlUdXBsZURlc2MJdHVwZGVzYzsKIAlEYXR1bQkJdmFsdWVzW1BHX1NUQVRf R0VUX0dMT0JBTF9NRU1PUllfQUxMT0NBVElPTl9DT0xTXSA9IHswfTsKIAlib29sCQludWxs c1tQR19TVEFUX0dFVF9HTE9CQUxfTUVNT1JZX0FMTE9DQVRJT05fQ09MU10gPSB7MH07CkBA IC0yMTAzLDE1ICsyMTAzLDIzIEBAIHBnX3N0YXRfZ2V0X2dsb2JhbF9tZW1vcnlfYWxsb2Nh dGlvbihQR19GVU5DVElPTl9BUkdTKQogCXR1cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxl RGVzYyhQR19TVEFUX0dFVF9HTE9CQUxfTUVNT1JZX0FMTE9DQVRJT05fQ09MUyk7CiAJVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxLCAiZGF0aWQiLAogCQkJ CQkgICBPSURPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpIDIsICJnbG9iYWxfZHNtX2FsbG9jYXRlZF9ieXRlcyIsCisJVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAyLCAidG90YWxfYmtlbmRfbWVtX2J5 dGVzX2F2YWlsYWJsZSIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJ bml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDMsICJnbG9iYWxfZHNtX2FsbG9jYXRl ZF9ieXRlcyIsCiAJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKIAlCbGVzc1R1cGxlRGVzYyh0 dXBkZXNjKTsKIAogCS8qIGRhdGlkICovCiAJdmFsdWVzWzBdID0gT2JqZWN0SWRHZXREYXR1 bShNeURhdGFiYXNlSWQpOwogCi0JLyogZ2V0IGdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVz ICovCi0JdmFsdWVzWzFdID0gSW50NjRHZXREYXR1bShwZ19hdG9taWNfcmVhZF91NjQoJnBy b2NnbG9iYWwtPmdsb2JhbF9kc21fYWxsb2NhdGlvbikpOworCS8qIEdldCB0b3RhbF9ia2Vu ZF9tZW1fYnl0ZXMgLSByZXR1cm4gLTEgaWYgZGlzYWJsZWQgKi8KKwlpZiAobWF4X3RvdGFs X2JrZW5kX21lbSA9PSAwKQorCQl2YWx1ZXNbMV0gPSBJbnQ2NEdldERhdHVtKC0xKTsKKwll bHNlCisJCXZhbHVlc1sxXSA9IEludDY0R2V0RGF0dW0ocGdfYXRvbWljX3JlYWRfdTY0KCZw cm9jZ2xvYmFsLT50b3RhbF9ia2VuZF9tZW1fYnl0ZXMpKTsKKworCS8qIEdldCBnbG9iYWxf ZHNtX2FsbG9jYXRlZF9ieXRlcyAqLworCXZhbHVlc1syXSA9IEludDY0R2V0RGF0dW0ocGdf YXRvbWljX3JlYWRfdTY0KCZwcm9jZ2xvYmFsLT5nbG9iYWxfZHNtX2FsbG9jYXRpb24pKTsK IAogCS8qIFJldHVybnMgdGhlIHJlY29yZCBhcyBEYXR1bSAqLwogCVBHX1JFVFVSTl9EQVRV TShIZWFwVHVwbGVHZXREYXR1bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBu dWxscykpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2hhc2gvZHluYWhhc2gu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2hhc2gvZHluYWhhc2guYwppbmRleCBhNDE1MjA4MGI1 Li45NDUwMDMyYTg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9oYXNoL2R5bmFo YXNoLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaGFzaC9keW5haGFzaC5jCkBAIC0xMDQs NyArMTA0LDYgQEAKICNpbmNsdWRlICJ1dGlscy9keW5haGFzaC5oIgogI2luY2x1ZGUgInV0 aWxzL21lbXV0aWxzLmgiCiAKLQogLyoKICAqIENvbnN0YW50cwogICoKQEAgLTM1OSw3ICsz NTgsNiBAQCBoYXNoX2NyZWF0ZShjb25zdCBjaGFyICp0YWJuYW1lLCBsb25nIG5lbGVtLCBj b25zdCBIQVNIQ1RMICppbmZvLCBpbnQgZmxhZ3MpCiAJQXNzZXJ0KGZsYWdzICYgSEFTSF9F TEVNKTsKIAlBc3NlcnQoaW5mby0+a2V5c2l6ZSA+IDApOwogCUFzc2VydChpbmZvLT5lbnRy eXNpemUgPj0gaW5mby0+a2V5c2l6ZSk7Ci0KIAkvKgogCSAqIEZvciBzaGFyZWQgaGFzaCB0 YWJsZXMsIHdlIGhhdmUgYSBsb2NhbCBoYXNoIGhlYWRlciAoSFRBQiBzdHJ1Y3QpIHRoYXQK IAkgKiB3ZSBhbGxvY2F0ZSBpbiBUb3BNZW1vcnlDb250ZXh0OyBhbGwgZWxzZSBpcyBpbiBz aGFyZWQgbWVtb3J5LgpAQCAtMzc3LDYgKzM3NSw3IEBAIGhhc2hfY3JlYXRlKGNvbnN0IGNo YXIgKnRhYm5hbWUsIGxvbmcgbmVsZW0sIGNvbnN0IEhBU0hDVEwgKmluZm8sIGludCBmbGFn cykKIAl9CiAJZWxzZQogCXsKKwkJLyogU2V0IHVwIHRvIGFsbG9jYXRlIHRoZSBoYXNoIGhl YWRlciAqLwogCQkvKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUncyBwcml2YXRlIG1lbW9yeSBj b250ZXh0ICovCiAJCWlmIChmbGFncyAmIEhBU0hfQ09OVEVYVCkKIAkJCUN1cnJlbnREeW5h SGFzaEN4dCA9IGluZm8tPmhjeHQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9p bml0L21pc2Npbml0LmMgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMKaW5k ZXggOWI0NzQ1MDgxMy4uZDcyZWMzYTBkYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvaW5pdC9taXNjaW5pdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2lu aXQuYwpAQCAtMTcxLDggKzE3MSwxNiBAQCBJbml0UG9zdG1hc3RlckNoaWxkKHZvaWQpCiAJ CQkJIGVycm1zZ19pbnRlcm5hbCgiY291bGQgbm90IHNldCBwb3N0bWFzdGVyIGRlYXRoIG1v bml0b3JpbmcgcGlwZSB0byBGRF9DTE9FWEVDIG1vZGU6ICVtIikpKTsKICNlbmRpZgogCisJ LyoKKwkgKiBJbml0IHBnc3RhdCBhbGxvY2F0ZWQgYnl0ZXMgY291bnRlcnMgaGVyZSBmb3Ig Zm9ya2VkIGJhY2tlbmRzLgorCSAqIEZvcmsvZXhlYyBiYWNrZW5kcyBoYXZlIG5vdCB5ZXQg cmVhdHRhY2hlZCB0byBzaGFyZWQgbWVtb3J5IGF0IHRoaXMKKwkgKiBwb2ludC4gVGhleSB3 aWxsIGluaXQgcGdzdGF0IGFsbG9jYXRlZCBieXRlcyBjb3VudGVycyBpbgorCSAqIFBHU2hh cmVkTWVtb3J5UmVBdHRhY2guCisJICovCisjaWZuZGVmIEVYRUNfQkFDS0VORAogCS8qIElu aXQgYWxsb2NhdGVkIGJ5dGVzIHRvIGF2b2lkIGRvdWJsZSBjb3VudGluZyBwYXJlbnQgYWxs b2NhdGlvbiAqLwogCXBnc3RhdF9pbml0X2FsbG9jYXRlZF9ieXRlcygpOworI2VuZGlmCiB9 CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IGQ3NzIxNDc5 NWQuLjU2YWNhN2Q1YmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBA IC0zNjI2LDYgKzM2MjYsMTcgQEAgc3RydWN0IGNvbmZpZ19pbnQgQ29uZmlndXJlTmFtZXNJ bnRbXSA9CiAJCU5VTEwsIE5VTEwsIE5VTEwKIAl9LAogCisJeworCQl7Im1heF90b3RhbF9i YWNrZW5kX21lbW9yeSIsIFBHQ19TVV9CQUNLRU5ELCBSRVNPVVJDRVNfTUVNLAorCQkJZ2V0 dGV4dF9ub29wKCJSZXN0cmljdCB0b3RhbCBiYWNrZW5kIG1lbW9yeSBhbGxvY2F0aW9ucyB0 byB0aGlzIG1heC4iKSwKKwkJCWdldHRleHRfbm9vcCgiMCB0dXJucyB0aGlzIGZlYXR1cmUg b2ZmLiIpLAorCQkJR1VDX1VOSVRfTUIKKwkJfSwKKwkJJm1heF90b3RhbF9ia2VuZF9tZW0s CisJCTAsIDAsIElOVF9NQVgsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCiAJLyogRW5k LW9mLWxpc3QgbWFya2VyICovCiAJewogCQl7TlVMTCwgMCwgMCwgTlVMTCwgTlVMTH0sIE5V TEwsIDAsIDAsIDAsIE5VTEwsIE5VTEwsIE5VTEwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCAyMjQ0ZWU1MmY3Li41MGUyYmIy YmNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29u Zi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYu c2FtcGxlCkBAIC0xNjksNiArMTY5LDkgQEAKICN2YWN1dW1fYnVmZmVyX3VzYWdlX2xpbWl0 ID0gMjU2a0IJIyBzaXplIG9mIHZhY3V1bSBhbmQgYW5hbHl6ZSBidWZmZXIgYWNjZXNzIHN0 cmF0ZWd5IHJpbmc7CiAJCQkJCSMgMCB0byBkaXNhYmxlIHZhY3V1bSBidWZmZXIgYWNjZXNz IHN0cmF0ZWd5OwogCQkJCQkjIHJhbmdlIDEyOGtCIHRvIDE2R0IKKyNtYXhfdG90YWxfYmFj a2VuZF9tZW1vcnkgPSAwTUIJCSMgUmVzdHJpY3QgdG90YWwgYmFja2VuZCBtZW1vcnkgYWxs b2NhdGlvbnMKKwkJCQkJCQkJCSMgdG8gdGhpcyBtYXggKGluIE1CKS4gMCB0dXJucyB0aGlz IGZlYXR1cmUKKwkJCQkJCQkJCSMgb2ZmLgogCiAjIC0gRGlzayAtCiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1n ci9hc2V0LmMKaW5kZXggYTU5OWEzYTZlNC4uYmU1NjU4NTg1MyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvbW1nci9hc2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1n ci9hc2V0LmMKQEAgLTQzOCw2ICs0MzgsMTggQEAgQWxsb2NTZXRDb250ZXh0Q3JlYXRlSW50 ZXJuYWwoTWVtb3J5Q29udGV4dCBwYXJlbnQsCiAJZWxzZQogCQlmaXJzdEJsb2NrU2l6ZSA9 IE1heChmaXJzdEJsb2NrU2l6ZSwgaW5pdEJsb2NrU2l6ZSk7CiAKKwkvKiBEbyBub3QgZXhj ZWVkIG1heGltdW0gYWxsb3dlZCBtZW1vcnkgYWxsb2NhdGlvbiAqLworCWlmIChleGNlZWRz X21heF90b3RhbF9ia2VuZF9tZW0oZmlyc3RCbG9ja1NpemUpKQorCXsKKwkJaWYgKFRvcE1l bW9yeUNvbnRleHQpCisJCQlNZW1vcnlDb250ZXh0U3RhdHMoVG9wTWVtb3J5Q29udGV4dCk7 CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZ KSwKKwkJCQkgZXJybXNnKCJvdXQgb2YgbWVtb3J5IC0gZXhjZWVkcyBtYXhfdG90YWxfYmFj a2VuZF9tZW1vcnkiKSwKKwkJCQkgZXJyZGV0YWlsKCJGYWlsZWQgd2hpbGUgY3JlYXRpbmcg bWVtb3J5IGNvbnRleHQgXCIlc1wiLiIsCisJCQkJCQkgICBuYW1lKSkpOworCX0KKwogCS8q CiAJICogQWxsb2NhdGUgdGhlIGluaXRpYWwgYmxvY2suICBVbmxpa2Ugb3RoZXIgYXNldC5j IGJsb2NrcywgaXQgc3RhcnRzIHdpdGgKIAkgKiB0aGUgY29udGV4dCBoZWFkZXIgYW5kIGl0 cyBibG9jayBoZWFkZXIgZm9sbG93cyB0aGF0LgpAQCAtNzI0LDYgKzczNiwxMSBAQCBBbGxv Y1NldEFsbG9jTGFyZ2UoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUsIGludCBm bGFncykKICNlbmRpZgogCiAJYmxrc2l6ZSA9IGNodW5rX3NpemUgKyBBTExPQ19CTE9DS0hE UlNaICsgQUxMT0NfQ0hVTktIRFJTWjsKKworCS8qIERvIG5vdCBleGNlZWQgbWF4aW11bSBh bGxvd2VkIG1lbW9yeSBhbGxvY2F0aW9uICovCisJaWYgKGV4Y2VlZHNfbWF4X3RvdGFsX2Jr ZW5kX21lbShibGtzaXplKSkKKwkJcmV0dXJuIE5VTEw7CisKIAlibG9jayA9IChBbGxvY0Js b2NrKSBtYWxsb2MoYmxrc2l6ZSk7CiAJaWYgKGJsb2NrID09IE5VTEwpCiAJCXJldHVybiBN ZW1vcnlDb250ZXh0QWxsb2NhdGlvbkZhaWx1cmUoY29udGV4dCwgc2l6ZSwgZmxhZ3MpOwpA QCAtOTE3LDYgKzkzNCwxMCBAQCBBbGxvY1NldEFsbG9jRnJvbU5ld0Jsb2NrKE1lbW9yeUNv bnRleHQgY29udGV4dCwgU2l6ZSBzaXplLCBpbnQgZmxhZ3MsCiAJd2hpbGUgKGJsa3NpemUg PCByZXF1aXJlZF9zaXplKQogCQlibGtzaXplIDw8PSAxOwogCisJLyogRG8gbm90IGV4Y2Vl ZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwlpZiAoZXhjZWVkc19t YXhfdG90YWxfYmtlbmRfbWVtKGJsa3NpemUpKQorCQlyZXR1cm4gTlVMTDsKKwogCS8qIFRy eSB0byBhbGxvY2F0ZSBpdCAqLwogCWJsb2NrID0gKEFsbG9jQmxvY2spIG1hbGxvYyhibGtz aXplKTsKIApAQCAtMTIzOCw2ICsxMjU5LDE4IEBAIEFsbG9jU2V0UmVhbGxvYyh2b2lkICpw b2ludGVyLCBTaXplIHNpemUsIGludCBmbGFncykKIAkJYmxrc2l6ZSA9IGNoa3NpemUgKyBB TExPQ19CTE9DS0hEUlNaICsgQUxMT0NfQ0hVTktIRFJTWjsKIAkJb2xkYmxrc2l6ZSA9IGJs b2NrLT5lbmRwdHIgLSAoKGNoYXIgKikgYmxvY2spOwogCisJCS8qCisJCSAqIERvIG5vdCBl eGNlZWQgbWF4aW11bSBhbGxvd2VkIG1lbW9yeSBhbGxvY2F0aW9uLiBOT1RFOiBjaGVja2lu ZyBmb3IKKwkJICogdGhlIGZ1bGwgc2l6ZSBoZXJlIHJhdGhlciB0aGFuIGp1c3QgdGhlIGFt b3VudCBvZiBpbmNyZWFzZWQKKwkJICogYWxsb2NhdGlvbiB0byBwcmV2ZW50IGEgcG90ZW50 aWFsIHVuZGVyZmxvdyBvZiAqbXlfYWxsb2NhdGlvbgorCQkgKiBhbGxvd2FuY2UgaW4gY2Fz ZXMgd2hlcmUgYmxrc2l6ZSAtIG9sZGJsa3NpemUgZG9lcyBub3QgdHJpZ2dlciBhCisJCSAq IHJlZmlsbCBidXQgYmxrc2l6ZSBpcyBncmVhdGVyIHRoYW4gKm15X2FsbG9jYXRpb25fYWxs b3dhbmNlLgorCQkgKiBVbmRlcmZsb3cgd291bGQgb2NjdXIgd2l0aCB0aGUgY2FsbCBiZWxv dyB0bworCQkgKiBwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZSgpCisJ CSAqLworCQlpZiAoYmxrc2l6ZSA+IG9sZGJsa3NpemUgJiYgZXhjZWVkc19tYXhfdG90YWxf YmtlbmRfbWVtKGJsa3NpemUpKQorCQkJcmV0dXJuIE5VTEw7CisKIAkJYmxvY2sgPSAoQWxs b2NCbG9jaykgcmVhbGxvYyhibG9jaywgYmxrc2l6ZSk7CiAJCWlmIChibG9jayA9PSBOVUxM KQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24u YyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvZ2VuZXJhdGlvbi5jCmluZGV4IGQ1MTFiNjdi MDguLmVhNGRjMmNiMjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvZ2Vu ZXJhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvZ2VuZXJhdGlvbi5jCkBA IC0yMDMsNiArMjAzLDE2IEBAIEdlbmVyYXRpb25Db250ZXh0Q3JlYXRlKE1lbW9yeUNvbnRl eHQgcGFyZW50LAogCWVsc2UKIAkJYWxsb2NTaXplID0gTWF4KGFsbG9jU2l6ZSwgaW5pdEJs b2NrU2l6ZSk7CiAKKwlpZiAoZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKGFsbG9jU2l6 ZSkpCisJeworCQlNZW1vcnlDb250ZXh0U3RhdHMoVG9wTWVtb3J5Q29udGV4dCk7CisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZKSwKKwkJ CQkgZXJybXNnKCJvdXQgb2YgbWVtb3J5IC0gZXhjZWVkcyBtYXhfdG90YWxfYmFja2VuZF9t ZW1vcnkiKSwKKwkJCQkgZXJyZGV0YWlsKCJGYWlsZWQgd2hpbGUgY3JlYXRpbmcgbWVtb3J5 IGNvbnRleHQgXCIlc1wiLiIsCisJCQkJCQkgICBuYW1lKSkpOworCX0KKwogCS8qCiAJICog QWxsb2NhdGUgdGhlIGluaXRpYWwgYmxvY2suICBVbmxpa2Ugb3RoZXIgZ2VuZXJhdGlvbi5j IGJsb2NrcywgaXQKIAkgKiBzdGFydHMgd2l0aCB0aGUgY29udGV4dCBoZWFkZXIgYW5kIGl0 cyBibG9jayBoZWFkZXIgZm9sbG93cyB0aGF0LgpAQCAtMzcyLDYgKzM4Miw5IEBAIEdlbmVy YXRpb25BbGxvY0xhcmdlKE1lbW9yeUNvbnRleHQgY29udGV4dCwgU2l6ZSBzaXplLCBpbnQg ZmxhZ3MpCiAJcmVxdWlyZWRfc2l6ZSA9IGNodW5rX3NpemUgKyBHZW5lcmF0aW9uX0NIVU5L SERSU1o7CiAJYmxrc2l6ZSA9IHJlcXVpcmVkX3NpemUgKyBHZW5lcmF0aW9uX0JMT0NLSERS U1o7CiAKKwlpZiAoZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKGJsa3NpemUpKQorCQly ZXR1cm4gTlVMTDsKKwogCWJsb2NrID0gKEdlbmVyYXRpb25CbG9jayAqKSBtYWxsb2MoYmxr c2l6ZSk7CiAJaWYgKGJsb2NrID09IE5VTEwpCiAJCXJldHVybiBNZW1vcnlDb250ZXh0QWxs b2NhdGlvbkZhaWx1cmUoY29udGV4dCwgc2l6ZSwgZmxhZ3MpOwpAQCAtNDk0LDYgKzUwNyw5 IEBAIEdlbmVyYXRpb25BbGxvY0Zyb21OZXdCbG9jayhNZW1vcnlDb250ZXh0IGNvbnRleHQs IFNpemUgc2l6ZSwgaW50IGZsYWdzLAogCWlmIChibGtzaXplIDwgcmVxdWlyZWRfc2l6ZSkK IAkJYmxrc2l6ZSA9IHBnX25leHRwb3dlcjJfc2l6ZV90KHJlcXVpcmVkX3NpemUpOwogCisJ aWYgKGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbShibGtzaXplKSkKKwkJcmV0dXJuIE5V TEw7CisKIAlibG9jayA9IChHZW5lcmF0aW9uQmxvY2sgKikgbWFsbG9jKGJsa3NpemUpOwog CiAJaWYgKGJsb2NrID09IE5VTEwpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9t bWdyL3NsYWIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCmluZGV4IDk4YThi YmFmOTEuLmQwZjgwZjEwYTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Iv c2xhYi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCkBAIC0zNjAsNyAr MzYwLDE2IEBAIFNsYWJDb250ZXh0Q3JlYXRlKE1lbW9yeUNvbnRleHQgcGFyZW50LAogCQll bG9nKEVSUk9SLCAiYmxvY2sgc2l6ZSAlenUgZm9yIHNsYWIgaXMgdG9vIHNtYWxsIGZvciAl enUtYnl0ZSBjaHVua3MiLAogCQkJIGJsb2NrU2l6ZSwgY2h1bmtTaXplKTsKIAotCisJLyog RG8gbm90IGV4Y2VlZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwlp ZiAoZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKFNsYWJfQ09OVEVYVF9IRFJTWihjaHVu a3NQZXJCbG9jaykpKQorCXsKKwkJTWVtb3J5Q29udGV4dFN0YXRzKFRvcE1lbW9yeUNvbnRl eHQpOworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfT1VUX09GX01F TU9SWSksCisJCQkJIGVycm1zZygib3V0IG9mIG1lbW9yeSAtIGV4Y2VlZHMgbWF4X3RvdGFs X2JhY2tlbmRfbWVtb3J5IiksCisJCQkJIGVycmRldGFpbCgiRmFpbGVkIHdoaWxlIGNyZWF0 aW5nIG1lbW9yeSBjb250ZXh0IFwiJXNcIi4iLAorCQkJCQkJICAgbmFtZSkpKTsKKwl9CiAK IAlzbGFiID0gKFNsYWJDb250ZXh0ICopIG1hbGxvYyhTbGFiX0NPTlRFWFRfSERSU1ooY2h1 bmtzUGVyQmxvY2spKTsKIAlpZiAoc2xhYiA9PSBOVUxMKQpAQCAtNTgyLDYgKzU5MSwxMCBA QCBTbGFiQWxsb2NGcm9tTmV3QmxvY2soTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNp emUsIGludCBmbGFncykKIAl9CiAJZWxzZQogCXsKKwkJLyogRG8gbm90IGV4Y2VlZCBtYXhp bXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwkJaWYgKGV4Y2VlZHNfbWF4X3Rv dGFsX2JrZW5kX21lbShzbGFiLT5ibG9ja1NpemUpKQorCQkJcmV0dXJuIE1lbW9yeUNvbnRl eHRBbGxvY2F0aW9uRmFpbHVyZShjb250ZXh0LCBzaXplLCBmbGFncyk7CisKIAkJYmxvY2sg PSAoU2xhYkJsb2NrICopIG1hbGxvYyhzbGFiLT5ibG9ja1NpemUpOwogCiAJCWlmICh1bmxp a2VseShibG9jayA9PSBOVUxMKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDQ3 OTAzZTc1NWUuLjEzZjFjMTViNmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAt NTQ0OCw5ICs1NDQ4LDkgQEAKICAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IGdsb2JhbCBtZW1v cnkgYWxsb2NhdGlvbiBpbmZvcm1hdGlvbicsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0 X2dsb2JhbF9tZW1vcnlfYWxsb2NhdGlvbicsIHByb2lzc3RyaWN0ID0+ICdmJywKICAgcHJv dm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ3Jl Y29yZCcsCi0gIHByb2FyZ3R5cGVzID0+ICcnLCBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCxp bnQ4fScsCi0gIHByb2FyZ21vZGVzID0+ICd7byxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7 ZGF0aWQsZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXN9JywKKyAgcHJvYXJndHlwZXMgPT4g JycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLGludDgsaW50OH0nLAorICBwcm9hcmdtb2Rl cyA9PiAne28sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7ZGF0aWQsdG90YWxfYmtlbmRf bWVtX2J5dGVzX2F2YWlsYWJsZSxnbG9iYWxfZHNtX2FsbG9jYXRlZF9ieXRlc30nLAogICBw cm9zcmMgPT4ncGdfc3RhdF9nZXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uJyB9LAogeyBv aWQgPT4gJzIwMjInLAogICBkZXNjciA9PiAnc3RhdGlzdGljczogaW5mb3JtYXRpb24gYWJv dXQgY3VycmVudGx5IGFjdGl2ZSBiYWNrZW5kcycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9zdG9yYWdlL3Byb2MuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oCmluZGV4IGEz NTBmNDU1Y2QuLmZhN2M5NGM2YzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv cHJvYy5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oCkBAIC00MjQsNiArNDI0 LDEzIEBAIHR5cGVkZWYgc3RydWN0IFBST0NfSERSCiAJaW50CQkJc3RhcnR1cEJ1ZmZlclBp bldhaXRCdWZJZDsKIAkvKiBHbG9iYWwgZHNtIGFsbG9jYXRpb25zICovCiAJcGdfYXRvbWlj X3VpbnQ2NCBnbG9iYWxfZHNtX2FsbG9jYXRpb247CisKKwkvKgorCSAqIE1heCBiYWNrZW5k IG1lbW9yeSBhbGxvY2F0aW9uIHRyYWNrZXIuIFVzZWQvSW5pdGlhbGl6ZWQgd2hlbgorCSAq IG1heF90b3RhbF9ia2VuZF9tZW0gPiAwIGFzIG1heF90b3RhbF9ia2VuZF9tZW0gKE1CKSBj b252ZXJ0ZWQgdG8gYnl0ZXMuCisJICogRGVjcmVhc2VzL2luY3JlYXNlcyB3aXRoIGZyZWUv bWFsbG9jIG9mIGJhY2tlbmQgbWVtb3J5LgorCSAqLworCXBnX2F0b21pY191aW50NjQgdG90 YWxfYmtlbmRfbWVtX2J5dGVzOwogfSBQUk9DX0hEUjsKIAogZXh0ZXJuIFBHRExMSU1QT1JU IFBST0NfSERSICpQcm9jR2xvYmFsOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMv YmFja2VuZF9zdGF0dXMuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmgK aW5kZXggY2JmODAxODg0ZC4uYTgzMzk0MTI3MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dXRpbHMvYmFja2VuZF9zdGF0dXMuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5k X3N0YXR1cy5oCkBAIC0xNCw3ICsxNCw3IEBACiAjaW5jbHVkZSAiZGF0YXR5cGUvdGltZXN0 YW1wLmgiCiAjaW5jbHVkZSAibGlicHEvcHFjb21tLmgiCiAjaW5jbHVkZSAibWlzY2FkbWlu LmgiCQkJLyogZm9yIEJhY2tlbmRUeXBlICovCi0jaW5jbHVkZSAic3RvcmFnZS9wcm9jbnVt YmVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCiAjaW5jbHVkZSAidXRpbHMvYmFj a2VuZF9wcm9ncmVzcy5oIgogCiAKQEAgLTMwMyw2ICszMDMsNyBAQCB0eXBlZGVmIHN0cnVj dCBMb2NhbFBnQmFja2VuZFN0YXR1cwogICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBw Z3N0YXRfdHJhY2tfYWN0aXZpdGllczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgcGdzdGF0 X3RyYWNrX2FjdGl2aXR5X3F1ZXJ5X3NpemU7CitleHRlcm4gUEdETExJTVBPUlQgaW50IG1h eF90b3RhbF9ia2VuZF9tZW07CiAKIAogLyogLS0tLS0tLS0tLQpAQCAtMzE1LDYgKzMxNiwx MCBAQCBleHRlcm4gUEdETExJTVBPUlQgdWludDY0ICpteV9hc2V0X2FsbG9jYXRlZF9ieXRl czsKIGV4dGVybiBQR0RMTElNUE9SVCB1aW50NjQgKm15X2RzbV9hbGxvY2F0ZWRfYnl0ZXM7 CiBleHRlcm4gUEdETExJTVBPUlQgdWludDY0ICpteV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9i eXRlczsKIGV4dGVybiBQR0RMTElNUE9SVCB1aW50NjQgKm15X3NsYWJfYWxsb2NhdGVkX2J5 dGVzOworZXh0ZXJuIFBHRExMSU1QT1JUIHVpbnQ2NCBhbGxvY2F0aW9uX2FsbG93YW5jZTsK K2V4dGVybiBQR0RMTElNUE9SVCB1aW50NjQgaW5pdGlhbF9hbGxvY2F0aW9uX2FsbG93YW5j ZTsKK2V4dGVybiBQR0RMTElNUE9SVCB1aW50NjQgYWxsb2NhdGlvbl9yZXR1cm47CitleHRl cm4gUEdETExJTVBPUlQgdWludDY0IGFsbG9jYXRpb25fcmV0dXJuX3RocmVzaG9sZDsKIAog CiAvKiAtLS0tLS0tLS0tCkBAIC0zNjMsNiArMzY4LDcgQEAgZXh0ZXJuIFBnQmFja2VuZFN0 YXR1cyAqcGdzdGF0X2dldF9iZWVudHJ5X2J5X3Byb2NfbnVtYmVyKFByb2NOdW1iZXIgcHJv Y051bWJlcikKIGV4dGVybiBMb2NhbFBnQmFja2VuZFN0YXR1cyAqcGdzdGF0X2dldF9sb2Nh bF9iZWVudHJ5X2J5X3Byb2NfbnVtYmVyKFByb2NOdW1iZXIgcHJvY051bWJlcik7CiBleHRl cm4gTG9jYWxQZ0JhY2tlbmRTdGF0dXMgKnBnc3RhdF9nZXRfbG9jYWxfYmVlbnRyeV9ieV9p bmRleChpbnQgaWR4KTsKIGV4dGVybiBjaGFyICpwZ3N0YXRfY2xpcF9hY3Rpdml0eShjb25z dCBjaGFyICpyYXdfYWN0aXZpdHkpOworZXh0ZXJuIGJvb2wgZXhjZWVkc19tYXhfdG90YWxf YmtlbmRfbWVtKHVpbnQ2NCBhbGxvY2F0aW9uX3JlcXVlc3QpOwogCiAvKiAtLS0tLS0tLS0t CiAgKiBwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZSgpIC0KQEAgLTM3 OCw3ICszODQsNyBAQCBwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZShp bnQ2NCBwcm9jX2FsbG9jYXRlZF9ieXRlcywKIHsKIAl1aW50NjQJCXRlbXA7CiAKLQkvKiBB dm9pZCBhbGxvY2F0ZWRfYnl0ZXMgdW5zaWduZWQgaW50ZWdlciBvdmVyZmxvdyBvbiBkZWNy ZWFzZSAqLworCS8qIFNhbml0eSBjaGVjazogbXkgYWxsb2NhdGVkIGJ5dGVzIHNob3VsZCBu ZXZlciBkcm9wIGJlbG93IHplcm8gKi8KIAlpZiAocGdfc3ViX3U2NF9vdmVyZmxvdygqbXlf YWxsb2NhdGVkX2J5dGVzLCBwcm9jX2FsbG9jYXRlZF9ieXRlcywgJnRlbXApKQogCXsKIAkJ LyogT24gb3ZlcmZsb3csIHNldCBhbGxvY2F0ZWQgYnl0ZXMgYW5kIGFsbG9jYXRvciB0eXBl IGJ5dGVzIHRvIHplcm8gKi8KQEAgLTM4NywxMyArMzkzLDM1IEBAIHBnc3RhdF9yZXBvcnRf YWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGludDY0IHByb2NfYWxsb2NhdGVkX2J5dGVzLAog CQkqbXlfZHNtX2FsbG9jYXRlZF9ieXRlcyA9IDA7CiAJCSpteV9nZW5lcmF0aW9uX2FsbG9j YXRlZF9ieXRlcyA9IDA7CiAJCSpteV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9IDA7CisKKwkJ LyogQWRkIGZyZWVkIG1lbW9yeSB0byBhbGxvY2F0aW9uIHJldHVybiBjb3VudGVyLiAqLwor CQlhbGxvY2F0aW9uX3JldHVybiArPSBwcm9jX2FsbG9jYXRlZF9ieXRlczsKKworCQkvKgor CQkgKiBSZXR1cm4gZnJlZWQgbWVtb3J5IHRvIHRoZSBnbG9iYWwgY291bnRlciBpZiByZXR1 cm4gdGhyZXNob2xkIGlzCisJCSAqIG1ldC4KKwkJICovCisJCWlmIChtYXhfdG90YWxfYmtl bmRfbWVtICYmIGFsbG9jYXRpb25fcmV0dXJuID49IGFsbG9jYXRpb25fcmV0dXJuX3RocmVz aG9sZCkKKwkJeworCQkJaWYgKFByb2NHbG9iYWwpCisJCQl7CisJCQkJdm9sYXRpbGUgUFJP Q19IRFIgKnByb2NnbG9iYWwgPSBQcm9jR2xvYmFsOworCisJCQkJLyogQWRkIHRvIGdsb2Jh bCB0cmFja2VyICovCisJCQkJcGdfYXRvbWljX2FkZF9mZXRjaF91NjQoJnByb2NnbG9iYWwt PnRvdGFsX2JrZW5kX21lbV9ieXRlcywKKwkJCQkJCQkJCQlhbGxvY2F0aW9uX3JldHVybik7 CisKKwkJCQkvKiBSZXN0YXJ0IHRoZSBjb3VudCAqLworCQkJCWFsbG9jYXRpb25fcmV0dXJu ID0gMDsKKwkJCX0KKwkJfQogCX0KIAllbHNlCiAJewotCQkvKiBkZWNyZWFzZSBhbGxvY2F0 aW9uICovCi0JCSpteV9hbGxvY2F0ZWRfYnl0ZXMgLT0gcHJvY19hbGxvY2F0ZWRfYnl0ZXM7 CisJCS8qIEFkZCBmcmVlZCBtZW1vcnkgdG8gYWxsb2NhdGlvbiByZXR1cm4gY291bnRlciAq LworCQlhbGxvY2F0aW9uX3JldHVybiArPSBwcm9jX2FsbG9jYXRlZF9ieXRlczsKIAotCQkv KiBEZWNyZWFzZSBhbGxvY2F0b3IgdHlwZSBhbGxvY2F0ZWQgYnl0ZXMuICovCisJCS8qIERl Y3JlYXNlIGFsbG9jYXRvciB0eXBlIGFsbG9jYXRlZCBieXRlcyAqLwogCQlzd2l0Y2ggKHBn X2FsbG9jYXRvcl90eXBlKQogCQl7CiAJCQljYXNlIFBHX0FMTE9DX0FTRVQ6CkBAIC00MTUs NiArNDQzLDMwIEBAIHBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGlu dDY0IHByb2NfYWxsb2NhdGVkX2J5dGVzLAogCQkJCSpteV9zbGFiX2FsbG9jYXRlZF9ieXRl cyAtPSBwcm9jX2FsbG9jYXRlZF9ieXRlczsKIAkJCQlicmVhazsKIAkJfQorCisJCS8qIGRl Y3JlYXNlIGFsbG9jYXRpb24gKi8KKwkJKm15X2FsbG9jYXRlZF9ieXRlcyA9ICpteV9hc2V0 X2FsbG9jYXRlZF9ieXRlcyArCisJCQkqbXlfZHNtX2FsbG9jYXRlZF9ieXRlcyArICpteV9n ZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyArCisJCQkqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0 ZXM7CisKKwkJLyoKKwkJICogUmV0dXJuIGZyZWVkIG1lbW9yeSB0byB0aGUgZ2xvYmFsIGNv dW50ZXIgaWYgcmV0dXJuIHRocmVzaG9sZCBpcworCQkgKiBtZXQuCisJCSAqLworCQlpZiAo bWF4X3RvdGFsX2JrZW5kX21lbSAmJiBhbGxvY2F0aW9uX3JldHVybiA+PSBhbGxvY2F0aW9u X3JldHVybl90aHJlc2hvbGQpCisJCXsKKwkJCWlmIChQcm9jR2xvYmFsKQorCQkJeworCQkJ CXZvbGF0aWxlIFBST0NfSERSICpwcm9jZ2xvYmFsID0gUHJvY0dsb2JhbDsKKworCQkJCS8q IEFkZCB0byBnbG9iYWwgdHJhY2tlciAqLworCQkJCXBnX2F0b21pY19hZGRfZmV0Y2hfdTY0 KCZwcm9jZ2xvYmFsLT50b3RhbF9ia2VuZF9tZW1fYnl0ZXMsCisJCQkJCQkJCQkJYWxsb2Nh dGlvbl9yZXR1cm4pOworCisJCQkJLyogUmVzdGFydCB0aGUgY291bnQgKi8KKwkJCQlhbGxv Y2F0aW9uX3JldHVybiA9IDA7CisJCQl9CisJCX0KIAl9CiAKIAlyZXR1cm47CkBAIC00MzIs NyArNDg0LDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZAogcGdzdGF0X3JlcG9ydF9hbGxvY2F0 ZWRfYnl0ZXNfaW5jcmVhc2UoaW50NjQgcHJvY19hbGxvY2F0ZWRfYnl0ZXMsCiAJCQkJCQkJ CQkgICBpbnQgcGdfYWxsb2NhdG9yX3R5cGUpCiB7Ci0JKm15X2FsbG9jYXRlZF9ieXRlcyAr PSBwcm9jX2FsbG9jYXRlZF9ieXRlczsKKwl1aW50NjQJCXRlbXA7CisKKwkvKiBTYW5pdHkg Y2hlY2s6IG15IGFsbG9jYXRlZCBieXRlcyBzaG91bGQgbmV2ZXIgZHJvcCBiZWxvdyB6ZXJv ICovCisJaWYgKHBnX3N1Yl91NjRfb3ZlcmZsb3coYWxsb2NhdGlvbl9hbGxvd2FuY2UsIHBy b2NfYWxsb2NhdGVkX2J5dGVzLCAmdGVtcCkpCisJCWFsbG9jYXRpb25fYWxsb3dhbmNlID0g MDsKKwllbHNlCisJCWFsbG9jYXRpb25fYWxsb3dhbmNlIC09IHByb2NfYWxsb2NhdGVkX2J5 dGVzOwogCiAJLyogSW5jcmVhc2UgYWxsb2NhdG9yIHR5cGUgYWxsb2NhdGVkIGJ5dGVzICov CiAJc3dpdGNoIChwZ19hbGxvY2F0b3JfdHlwZSkKQEAgLTQ1Nyw2ICs1MTUsOSBAQCBwZ3N0 YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShpbnQ2NCBwcm9jX2FsbG9jYXRl ZF9ieXRlcywKIAkJCWJyZWFrOwogCX0KIAorCSpteV9hbGxvY2F0ZWRfYnl0ZXMgPSAqbXlf YXNldF9hbGxvY2F0ZWRfYnl0ZXMgKyAqbXlfZHNtX2FsbG9jYXRlZF9ieXRlcyArCisJCSpt eV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyArICpteV9zbGFiX2FsbG9jYXRlZF9ieXRl czsKKwogCXJldHVybjsKIH0KIApAQCAtNDc2LDYgKzUzNywzNiBAQCBwZ3N0YXRfaW5pdF9h bGxvY2F0ZWRfYnl0ZXModm9pZCkKIAkqbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMg PSAwOwogCSpteV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9IDA7CiAKKwkvKiBJZiB3ZSdyZSBs aW1pdGluZyBiYWNrZW5kIG1lbW9yeSAqLworCWlmIChtYXhfdG90YWxfYmtlbmRfbWVtKQor CXsKKwkJdm9sYXRpbGUgUFJPQ19IRFIgKnByb2NnbG9iYWwgPSBQcm9jR2xvYmFsOworCQl1 aW50NjQJCWF2YWlsYWJsZV9tYXhfdG90YWxfYmtlbmRfbWVtID0gMDsKKworCQlhbGxvY2F0 aW9uX3JldHVybiA9IDA7CisJCWFsbG9jYXRpb25fYWxsb3dhbmNlID0gMDsKKworCQkvKiBB Y2NvdW50IGZvciB0aGUgaW5pdGlhbCBhbGxvY2F0aW9uIGFsbG93YW5jZSAqLworCQl3aGls ZSAoKGF2YWlsYWJsZV9tYXhfdG90YWxfYmtlbmRfbWVtID0gcGdfYXRvbWljX3JlYWRfdTY0 KCZwcm9jZ2xvYmFsLT50b3RhbF9ia2VuZF9tZW1fYnl0ZXMpKSA+PSBpbml0aWFsX2FsbG9j YXRpb25fYWxsb3dhbmNlKQorCQl7CisJCQkvKgorCQkJICogT24gc3VjY2VzcyBwb3B1bGF0 ZSBhbGxvY2F0aW9uX2FsbG93YW5jZS4gRmFpbHVyZSBoZXJlIHdpbGwKKwkJCSAqIHJlc3Vs dCBpbiB0aGUgYmFja2VuZCdzIGZpcnN0IGludm9jYXRpb24gb2YKKwkJCSAqIGV4Y2VlZHNf bWF4X3RvdGFsX2JrZW5kX21lbSBhbGxvY2F0aW5nIHJlcXVlc3RlZCwgZGVmYXVsdCwgb3IK KwkJCSAqIGF2YWlsYWJsZSBtZW1vcnkgb3IgcmVzdWx0IGluIGFuIG91dCBvZiBtZW1vcnkg ZXJyb3IuCisJCQkgKi8KKwkJCWlmIChwZ19hdG9taWNfY29tcGFyZV9leGNoYW5nZV91NjQo JnByb2NnbG9iYWwtPnRvdGFsX2JrZW5kX21lbV9ieXRlcywKKwkJCQkJCQkJCQkJICAgJmF2 YWlsYWJsZV9tYXhfdG90YWxfYmtlbmRfbWVtLAorCQkJCQkJCQkJCQkgICBhdmFpbGFibGVf bWF4X3RvdGFsX2JrZW5kX21lbSAtCisJCQkJCQkJCQkJCSAgIGluaXRpYWxfYWxsb2NhdGlv bl9hbGxvd2FuY2UpKQorCQkJeworCQkJCWFsbG9jYXRpb25fYWxsb3dhbmNlID0gaW5pdGlh bF9hbGxvY2F0aW9uX2FsbG93YW5jZTsKKworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQor CiAJcmV0dXJuOwogfQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4 IDJmNjJmNWU0ZWEuLjAxZGVlOGRkZWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0CkBAIC0xODg3LDEzICsxODg3LDE1IEBAIHBnX3N0YXRfZ2xvYmFsX21lbW9yeV9h bGxvY2F0aW9ufCBXSVRIIHN1bXMgQVMgKAogIFNFTEVDVCBzLmRhdGlkLAogICAgIGN1cnJl bnRfc2V0dGluZygnc2hhcmVkX21lbW9yeV9zaXplJzo6dGV4dCwgdHJ1ZSkgQVMgc2hhcmVk X21lbW9yeV9zaXplLAogICAgIChjdXJyZW50X3NldHRpbmcoJ3NoYXJlZF9tZW1vcnlfc2l6 ZV9pbl9odWdlX3BhZ2VzJzo6dGV4dCwgdHJ1ZSkpOjppbnRlZ2VyIEFTIHNoYXJlZF9tZW1v cnlfc2l6ZV9pbl9odWdlX3BhZ2VzLAorICAgIHBnX3NpemVfYnl0ZXMoY3VycmVudF9zZXR0 aW5nKCdtYXhfdG90YWxfYmFja2VuZF9tZW1vcnknOjp0ZXh0LCB0cnVlKSkgQVMgbWF4X3Rv dGFsX2JhY2tlbmRfbWVtb3J5X2J5dGVzLAorICAgIHMudG90YWxfYmtlbmRfbWVtX2J5dGVz X2F2YWlsYWJsZSwKICAgICBzLmdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVzLAogICAgIHN1 bXMudG90YWxfYXNldF9hbGxvY2F0ZWRfYnl0ZXMsCiAgICAgc3Vtcy50b3RhbF9kc21fYWxs b2NhdGVkX2J5dGVzLAogICAgIHN1bXMudG90YWxfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0 ZXMsCiAgICAgc3Vtcy50b3RhbF9zbGFiX2FsbG9jYXRlZF9ieXRlcwogICAgRlJPTSBzdW1z LAotICAgIChwZ19zdGF0X2dldF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb24oKSBzKGRhdGlk LCBnbG9iYWxfZHNtX2FsbG9jYXRlZF9ieXRlcykKKyAgICAocGdfc3RhdF9nZXRfZ2xvYmFs X21lbW9yeV9hbGxvY2F0aW9uKCkgcyhkYXRpZCwgdG90YWxfYmtlbmRfbWVtX2J5dGVzX2F2 YWlsYWJsZSwgZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMpCiAgICAgIExFRlQgSk9JTiBw Z19kYXRhYmFzZSBkIE9OICgocy5kYXRpZCA9IGQub2lkKSkpOwogcGdfc3RhdF9nc3NhcGl8 IFNFTEVDVCBwaWQsCiAgICAgZ3NzX2F1dGggQVMgZ3NzX2F1dGhlbnRpY2F0ZWQsCi0tIAoy LjQzLjIKCg== --------------20u0xY3IUdSe7YL2gKC1UjVA--