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 1rhxMR-00EHEI-QO for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Mar 2024 19:55:33 +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 1rhxMQ-00DhYA-B6 for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Mar 2024 19:55:30 +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 1rhxMP-00DhY1-QL for pgsql-hackers@lists.postgresql.org; Wed, 06 Mar 2024 19:55:30 +0000 Received: from lahtoruutu.iki.fi ([2a0b:5c81:1c1::37]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rhxML-0038Zg-Cg for pgsql-hackers@postgresql.org; Wed, 06 Mar 2024 19:55:29 +0000 Received: from [192.168.1.115] (dsl-hkibng22-54f8db-125.dhcp.inet.fi [84.248.219.125]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by lahtoruutu.iki.fi (Postfix) with ESMTPSA id 4TqjpL3PVcz49Q8d; Wed, 6 Mar 2024 21:55:22 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1709754922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=JVn19GgcYBhqvm+WVed7RypgWP8LT+xQA6gpExmVbAA=; b=DV5v92vfNXAtdc0lLVNtnR2R13XcDhnMVSKLAv0YjyK+9UvjvqBnwy2VOsltd6Y/DB3D9t uP/I/qgWXAwGiQqzgGCLcz9qKV9iTW3mOlsA8qqhr0XEqFqzqUBG1kBm9MM6z52WOjmBGt ldkTxjIJBGsnnGIaDYDFl5zbuREP26RFW6ZccHju1fdopqjbHZMV5zXjOp5UQ/UHiPYjFk XP5ffodM15bf4MnjFrWZ5wy6LtH4znG6vrJz5AWreegtH6x3ADhr94CAOXMoBoLJPKNCVD rhjGk63X1YkpYK3ycM8JwwloCqIpirPqTGZG7gCPx9xIp4qpCnOH2mh28XLSwA== ARC-Seal: i=1; s=lahtoruutu; d=iki.fi; t=1709754922; a=rsa-sha256; cv=none; b=M4FEfk8jc6PKlyolbwVu3CA+q7qA+ROxLQISFKU0LT8MGqiwGvY0v6g56Al4CXYiz2LtRW kqIFgPn8hZsE2R4vZbo9ji5Zcp/qN2QubBkDLjBL+2Afx8BF/UlAUqLaLD/gMYOxc4SjED JoFseIiCmlHfh6ZZuFe/Lc7Xr3Z52m/VuryMnX25g+CqTr6mvRiPYXMHDoqBtBlBqQ7Usa h6QIo2wwtxrq7IxPJ7uuR3DY5ogDgaGv9NB58XWFQ5fr8/srZzA8DlSzQUS2x/iRCchhe1 Jd5dxDbb5FIH8phuW2b21p9h8r5ftIR//5yvQPDhOo9vfCT/TpYFlpCGEuSiQg== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1709754922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=JVn19GgcYBhqvm+WVed7RypgWP8LT+xQA6gpExmVbAA=; b=KfseF9dYyt1Xm8fGzZ37LvROinBTJwc7pVg7RHdfos/TnSXVehN0swc8TZg/a+/VoywGrd JXjdd8xqCN/LZIWwBi+Z59Tvd3Ka1R9rNLARir3kfukLwsFUelFXMDwGt+cSC4fdGpFl9L gJN480kJ3432xZZv6cHpBsCR+raKb//NwjJJQWCWcAQ4I9lG/gCtdrnDgAFRorjZ3zo2RY BfrXP0Qbv+OQWkX12cvISzjeah42x8neL8Z08306PIN1jc9XV0aOmTmmhWdQY+UKOroP4P N289jUtTEfbDDsEsi71nYdCCFO1c8ZE7uGUaIwJNL9VnJkHMOwdxfat+qH132g== Content-Type: multipart/mixed; boundary="------------Ze5oVHUbYJic98vu4c4VEpse" Message-ID: <1eeccf12-d5d1-4b7e-b88b-7342410129d7@iki.fi> Date: Wed, 6 Mar 2024 21:55:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Confine vacuum skip logic to lazy_scan_skip Content-Language: en-US To: Melanie Plageman , vignesh C Cc: Andres Freund , Pg Hackers , Thomas Munro , Nazir Bilal Yavuz , Robert Haas References: <20240104202309.77h5llrambkl5a3m@awork3.anarazel.de> From: Heikki Linnakangas 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. --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 27/02/2024 21:47, Melanie Plageman wrote: > The attached v5 has some simplifications when compared to v4 but takes > largely the same approach. > > 0001-0004 are refactoring I'm looking at just these 0001-0004 patches for now. I like those changes a lot for the sake of readablity even without any of the later patches. I made some further changes. I kept them as separate commits for easier review, see the commit messages for details. Any thoughts on those changes? I feel heap_vac_scan_get_next_block() function could use some love. Maybe just some rewording of the comments, or maybe some other refactoring; not sure. But I'm pretty happy with the function signature and how it's called. BTW, do we have tests that would fail if we botched up heap_vac_scan_get_next_block() so that it would skip pages incorrectly, for example? Not asking you to write them for this patch, but I'm just wondering. -- Heikki Linnakangas Neon (https://neon.tech) --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/x-patch; charset=UTF-8; name="v6-0001-lazy_scan_skip-remove-unneeded-local-var-nskippab.patch" Content-Disposition: attachment; filename*0="v6-0001-lazy_scan_skip-remove-unneeded-local-var-nskippab.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2ZTAyNThjM2UzMWU4NTUyNjQ3NWY0NmIyZTE0Y2JiY2JiODYxOTA5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2Vt YW5AZ21haWwuY29tPgpEYXRlOiBTYXQsIDMwIERlYyAyMDIzIDE2OjMwOjU5IC0wNTAwClN1 YmplY3Q6IFtQQVRDSCB2NiAxLzldIGxhenlfc2Nhbl9za2lwIHJlbW92ZSB1bm5lZWRlZCBs b2NhbCB2YXIKIG5za2lwcGFibGVfYmxvY2tzCgpuc2tpcHBhYmxlX2Jsb2NrcyBjYW4gYmUg ZWFzaWx5IGRlcml2ZWQgZnJvbSBuZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrJ3MKcHJvZ3Jlc3Mg d2hlbiBjb21wYXJlZCB0byB0aGUgcGFzc2VkIGluIG5leHRfYmxvY2suCi0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgNiArKy0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDhiMzIwYzNmODlhLi4xZGM2Y2M4ZTRkYiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTEwMyw4ICsxMTAzLDcg QEAgbGF6eV9zY2FuX3NraXAoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgKnZtYnVmZmVy LCBCbG9ja051bWJlciBuZXh0X2Jsb2NrLAogCQkJICAgYm9vbCAqbmV4dF91bnNraXBwYWJs ZV9hbGx2aXMsIGJvb2wgKnNraXBwaW5nX2N1cnJlbnRfcmFuZ2UpCiB7CiAJQmxvY2tOdW1i ZXIgcmVsX3BhZ2VzID0gdmFjcmVsLT5yZWxfcGFnZXMsCi0JCQkJbmV4dF91bnNraXBwYWJs ZV9ibG9jayA9IG5leHRfYmxvY2ssCi0JCQkJbnNraXBwYWJsZV9ibG9ja3MgPSAwOworCQkJ CW5leHRfdW5za2lwcGFibGVfYmxvY2sgPSBuZXh0X2Jsb2NrOwogCWJvb2wJCXNraXBzYWxs dmlzID0gZmFsc2U7CiAKIAkqbmV4dF91bnNraXBwYWJsZV9hbGx2aXMgPSB0cnVlOwpAQCAt MTE2MSw3ICsxMTYwLDYgQEAgbGF6eV9zY2FuX3NraXAoTFZSZWxTdGF0ZSAqdmFjcmVsLCBC dWZmZXIgKnZtYnVmZmVyLCBCbG9ja051bWJlciBuZXh0X2Jsb2NrLAogCiAJCXZhY3V1bV9k ZWxheV9wb2ludCgpOwogCQluZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrKys7Ci0JCW5za2lwcGFi bGVfYmxvY2tzKys7CiAJfQogCiAJLyoKQEAgLTExNzQsNyArMTE3Miw3IEBAIGxhenlfc2Nh bl9za2lwKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyICp2bWJ1ZmZlciwgQmxvY2tOdW1i ZXIgbmV4dF9ibG9jaywKIAkgKiBub24tYWdncmVzc2l2ZSBWQUNVVU1zLiAgSWYgdGhlIHJh bmdlIGhhcyBhbnkgYWxsLXZpc2libGUgcGFnZXMgdGhlbgogCSAqIHNraXBwaW5nIG1ha2Vz IHVwZGF0aW5nIHJlbGZyb3plbnhpZCB1bnNhZmUsIHdoaWNoIGlzIGEgcmVhbCBkb3duc2lk ZS4KIAkgKi8KLQlpZiAobnNraXBwYWJsZV9ibG9ja3MgPCBTS0lQX1BBR0VTX1RIUkVTSE9M RCkKKwlpZiAobmV4dF91bnNraXBwYWJsZV9ibG9jayAtIG5leHRfYmxvY2sgPCBTS0lQX1BB R0VTX1RIUkVTSE9MRCkKIAkJKnNraXBwaW5nX2N1cnJlbnRfcmFuZ2UgPSBmYWxzZTsKIAll bHNlCiAJewotLSAKMi4zOS4yCgo= --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/x-patch; charset=UTF-8; name="v6-0002-Add-lazy_scan_skip-unskippable-state-to-LVRelStat.patch" Content-Disposition: attachment; filename*0="v6-0002-Add-lazy_scan_skip-unskippable-state-to-LVRelStat.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyNThiY2U0NGUzMjc1YmM2MjhiZjk4NDg5Mjc5N2VlY2FlYmYwNDA0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2Vt YW5AZ21haWwuY29tPgpEYXRlOiBTYXQsIDMwIERlYyAyMDIzIDE2OjIyOjEyIC0wNTAwClN1 YmplY3Q6IFtQQVRDSCB2NiAyLzldIEFkZCBsYXp5X3NjYW5fc2tpcCB1bnNraXBwYWJsZSBz dGF0ZSB0byBMVlJlbFN0YXRlCgpGdXR1cmUgY29tbWl0cyB3aWxsIHJlbW92ZSBhbGwgc2tp cHBpbmcgbG9naWMgZnJvbSBsYXp5X3NjYW5faGVhcCgpIGFuZApjb25maW5lIGl0IHRvIGxh enlfc2Nhbl9za2lwKCkuIFRvIG1ha2UgdGhvc2UgY29tbWl0cyBtb3JlIGNsZWFyLCBmaXJz dAppbnRyb2R1Y2UgYWRkIGEgc3RydWN0IHRvIExWUmVsU3RhdGUgY29udGFpbmluZyB2YXJp YWJsZXMgbmVlZGVkIHRvIHNraXAKcmFuZ2VzIGxlc3MgdGhhbiBTS0lQX1BBR0VTX1RIUkVT SE9MRC4KCmxhenlfc2Nhbl9wcnVuZSgpIGFuZCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KCkg Y2FuIG5vdyBhY2Nlc3MgdGhlCmJ1ZmZlciBjb250YWluaW5nIHRoZSByZWxldmFudCBibG9j ayBvZiB0aGUgdmlzaWJpbGl0eSBtYXAgdGhyb3VnaCB0aGUKTFZSZWxTdGF0ZS5za2lwLCBz byBpdCBubyBsb25nZXIgbmVlZHMgdG8gYmUgYSBzZXBhcmF0ZSBmdW5jdGlvbgpwYXJhbWV0 ZXIuCgpXaGlsZSB3ZSBhcmUgYXQgaXQsIGFkZCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRv IHRoZSBsYXp5X3NjYW5fc2tpcCgpCmNvbW1lbnQsIGluY2x1ZGluZyBkZXNjcmlwdGlvbnMg b2YgdGhlIHJvbGUgYW5kIGV4cGVjdGF0aW9ucyBmb3IgaXRzCmZ1bmN0aW9uIHBhcmFtZXRl cnMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgMTU0ICsr KysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkwIGluc2VydGlv bnMoKyksIDY0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYwppbmRleCAxZGM2Y2M4ZTRkYi4uMGRkYjk4NmJjMDMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTIwNCw2ICsyMDQsMjIgQEAgdHlwZWRlZiBzdHJ1 Y3QgTFZSZWxTdGF0ZQogCWludDY0CQlsaXZlX3R1cGxlczsJLyogIyBsaXZlIHR1cGxlcyBy ZW1haW5pbmcgKi8KIAlpbnQ2NAkJcmVjZW50bHlfZGVhZF90dXBsZXM7CS8qICMgZGVhZCwg YnV0IG5vdCB5ZXQgcmVtb3ZhYmxlICovCiAJaW50NjQJCW1pc3NlZF9kZWFkX3R1cGxlczsg LyogIyByZW1vdmFibGUsIGJ1dCBub3QgcmVtb3ZlZCAqLworCisJLyoKKwkgKiBQYXJhbWV0 ZXJzIG1haW50YWluZWQgYnkgbGF6eV9zY2FuX3NraXAoKSB0byBtYW5hZ2Ugc2tpcHBpbmcg cmFuZ2VzIG9mCisJICogcGFnZXMgZ3JlYXRlciB0aGFuIFNLSVBfUEFHRVNfVEhSRVNIT0xE LgorCSAqLworCXN0cnVjdAorCXsKKwkJLyogTmV4dCB1bnNraXBwYWJsZSBibG9jayAqLwor CQlCbG9ja051bWJlciBuZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrOworCQkvKiBCdWZmZXIgY29u dGFpbmluZyBuZXh0IHVuc2tpcHBhYmxlIGJsb2NrJ3MgdmlzaWJpbGl0eSBpbmZvICovCisJ CUJ1ZmZlcgkJdm1idWZmZXI7CisJCS8qIE5leHQgdW5za2lwcGFibGUgYmxvY2sncyB2aXNp YmlsaXR5IHN0YXR1cyAqLworCQlib29sCQluZXh0X3Vuc2tpcHBhYmxlX2FsbHZpczsKKwkJ LyogV2hldGhlciBvciBub3Qgc2tpcHBhYmxlIGJsb2NrcyBzaG91bGQgYmUgc2tpcHBlZCAq LworCQlib29sCQlza2lwcGluZ19jdXJyZW50X3JhbmdlOworCX0JCQlza2lwOwogfSBMVlJl bFN0YXRlOwogCiAvKiBTdHJ1Y3QgZm9yIHNhdmluZyBhbmQgcmVzdG9yaW5nIHZhY3V1bSBl cnJvciBpbmZvcm1hdGlvbi4gKi8KQEAgLTIxNCwxOSArMjMwLDE1IEBAIHR5cGVkZWYgc3Ry dWN0IExWU2F2ZWRFcnJJbmZvCiAJVmFjRXJyUGhhc2UgcGhhc2U7CiB9IExWU2F2ZWRFcnJJ bmZvOwogCi0KIC8qIG5vbi1leHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwogc3RhdGlj IHZvaWQgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKLXN0YXRpYyBCbG9j a051bWJlciBsYXp5X3NjYW5fc2tpcChMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciAqdm1i dWZmZXIsCi0JCQkJCQkJCSAgQmxvY2tOdW1iZXIgbmV4dF9ibG9jaywKLQkJCQkJCQkJICBi b29sICpuZXh0X3Vuc2tpcHBhYmxlX2FsbHZpcywKLQkJCQkJCQkJICBib29sICpza2lwcGlu Z19jdXJyZW50X3JhbmdlKTsKK3N0YXRpYyB2b2lkIGxhenlfc2Nhbl9za2lwKExWUmVsU3Rh dGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgbmV4dF9ibG9jayk7CiBzdGF0aWMgYm9vbCBsYXp5 X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKIAkJ CQkJCQkJICAgQmxvY2tOdW1iZXIgYmxrbm8sIFBhZ2UgcGFnZSwKLQkJCQkJCQkJICAgYm9v bCBzaGFyZWxvY2ssIEJ1ZmZlciB2bWJ1ZmZlcik7CisJCQkJCQkJCSAgIGJvb2wgc2hhcmVs b2NrKTsKIHN0YXRpYyB2b2lkIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWws IEJ1ZmZlciBidWYsCiAJCQkJCQkJQmxvY2tOdW1iZXIgYmxrbm8sIFBhZ2UgcGFnZSwKLQkJ CQkJCQlCdWZmZXIgdm1idWZmZXIsIGJvb2wgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3Zt LAorCQkJCQkJCWJvb2wgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLAogCQkJCQkJCWJv b2wgKmhhc19scGRlYWRfaXRlbXMpOwogc3RhdGljIGJvb2wgbGF6eV9zY2FuX25vcHJ1bmUo TFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCSAgQmxvY2tOdW1iZXIg Ymxrbm8sIFBhZ2UgcGFnZSwKQEAgLTgwMywxMiArODE1LDggQEAgbGF6eV9zY2FuX2hlYXAo TFZSZWxTdGF0ZSAqdmFjcmVsKQogewogCUJsb2NrTnVtYmVyIHJlbF9wYWdlcyA9IHZhY3Jl bC0+cmVsX3BhZ2VzLAogCQkJCWJsa25vLAotCQkJCW5leHRfdW5za2lwcGFibGVfYmxvY2ss CiAJCQkJbmV4dF9mc21fYmxvY2tfdG9fdmFjdXVtID0gMDsKIAlWYWNEZWFkSXRlbXMgKmRl YWRfaXRlbXMgPSB2YWNyZWwtPmRlYWRfaXRlbXM7Ci0JQnVmZmVyCQl2bWJ1ZmZlciA9IElu dmFsaWRCdWZmZXI7Ci0JYm9vbAkJbmV4dF91bnNraXBwYWJsZV9hbGx2aXMsCi0JCQkJc2tp cHBpbmdfY3VycmVudF9yYW5nZTsKIAljb25zdCBpbnQJaW5pdHByb2dfaW5kZXhbXSA9IHsK IAkJUFJPR1JFU1NfVkFDVVVNX1BIQVNFLAogCQlQUk9HUkVTU19WQUNVVU1fVE9UQUxfSEVB UF9CTEtTLApAQCAtODIyLDEwICs4MzAsOSBAQCBsYXp5X3NjYW5faGVhcChMVlJlbFN0YXRl ICp2YWNyZWwpCiAJaW5pdHByb2dfdmFsWzJdID0gZGVhZF9pdGVtcy0+bWF4X2l0ZW1zOwog CXBnc3RhdF9wcm9ncmVzc191cGRhdGVfbXVsdGlfcGFyYW0oMywgaW5pdHByb2dfaW5kZXgs IGluaXRwcm9nX3ZhbCk7CiAKKwl2YWNyZWwtPnNraXAudm1idWZmZXIgPSBJbnZhbGlkQnVm ZmVyOwogCS8qIFNldCB1cCBhbiBpbml0aWFsIHJhbmdlIG9mIHNraXBwYWJsZSBibG9ja3Mg dXNpbmcgdGhlIHZpc2liaWxpdHkgbWFwICovCi0JbmV4dF91bnNraXBwYWJsZV9ibG9jayA9 IGxhenlfc2Nhbl9za2lwKHZhY3JlbCwgJnZtYnVmZmVyLCAwLAotCQkJCQkJCQkJCQkmbmV4 dF91bnNraXBwYWJsZV9hbGx2aXMsCi0JCQkJCQkJCQkJCSZza2lwcGluZ19jdXJyZW50X3Jh bmdlKTsKKwlsYXp5X3NjYW5fc2tpcCh2YWNyZWwsIDApOwogCWZvciAoYmxrbm8gPSAwOyBi bGtubyA8IHJlbF9wYWdlczsgYmxrbm8rKykKIAl7CiAJCUJ1ZmZlcgkJYnVmOwpAQCAtODM0 LDI2ICs4NDEsMjMgQEAgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCQli b29sCQloYXNfbHBkZWFkX2l0ZW1zOwogCQlib29sCQlnb3RfY2xlYW51cF9sb2NrID0gZmFs c2U7CiAKLQkJaWYgKGJsa25vID09IG5leHRfdW5za2lwcGFibGVfYmxvY2spCisJCWlmIChi bGtubyA9PSB2YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9ibG9jaykKIAkJewogCQkJ LyoKIAkJCSAqIENhbid0IHNraXAgdGhpcyBwYWdlIHNhZmVseS4gIE11c3Qgc2NhbiB0aGUg cGFnZS4gIEJ1dAogCQkJICogZGV0ZXJtaW5lIHRoZSBuZXh0IHNraXBwYWJsZSByYW5nZSBh ZnRlciB0aGUgcGFnZSBmaXJzdC4KIAkJCSAqLwotCQkJYWxsX3Zpc2libGVfYWNjb3JkaW5n X3RvX3ZtID0gbmV4dF91bnNraXBwYWJsZV9hbGx2aXM7Ci0JCQluZXh0X3Vuc2tpcHBhYmxl X2Jsb2NrID0gbGF6eV9zY2FuX3NraXAodmFjcmVsLCAmdm1idWZmZXIsCi0JCQkJCQkJCQkJ CQkJYmxrbm8gKyAxLAotCQkJCQkJCQkJCQkJCSZuZXh0X3Vuc2tpcHBhYmxlX2FsbHZpcywK LQkJCQkJCQkJCQkJCQkmc2tpcHBpbmdfY3VycmVudF9yYW5nZSk7CisJCQlhbGxfdmlzaWJs ZV9hY2NvcmRpbmdfdG9fdm0gPSB2YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9hbGx2 aXM7CisJCQlsYXp5X3NjYW5fc2tpcCh2YWNyZWwsIGJsa25vICsgMSk7CiAKLQkJCUFzc2Vy dChuZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrID49IGJsa25vICsgMSk7CisJCQlBc3NlcnQodmFj cmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYmxvY2sgPj0gYmxrbm8gKyAxKTsKIAkJfQog CQllbHNlCiAJCXsKIAkJCS8qIExhc3QgcGFnZSBhbHdheXMgc2Nhbm5lZCAobWF5IG5lZWQg dG8gc2V0IG5vbmVtcHR5X3BhZ2VzKSAqLwogCQkJQXNzZXJ0KGJsa25vIDwgcmVsX3BhZ2Vz IC0gMSk7CiAKLQkJCWlmIChza2lwcGluZ19jdXJyZW50X3JhbmdlKQorCQkJaWYgKHZhY3Jl bC0+c2tpcC5za2lwcGluZ19jdXJyZW50X3JhbmdlKQogCQkJCWNvbnRpbnVlOwogCiAJCQkv KiBDdXJyZW50IHJhbmdlIGlzIHRvbyBzbWFsbCB0byBza2lwIC0tIGp1c3Qgc2NhbiB0aGUg cGFnZSAqLwpAQCAtODk2LDEwICs5MDAsMTAgQEAgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0 ZSAqdmFjcmVsKQogCQkJICogY29ycmVjdG5lc3MsIGJ1dCB3ZSBkbyBpdCBhbnl3YXkgdG8g YXZvaWQgaG9sZGluZyB0aGUgcGluCiAJCQkgKiBhY3Jvc3MgYSBsZW5ndGh5LCB1bnJlbGF0 ZWQgb3BlcmF0aW9uLgogCQkJICovCi0JCQlpZiAoQnVmZmVySXNWYWxpZCh2bWJ1ZmZlcikp CisJCQlpZiAoQnVmZmVySXNWYWxpZCh2YWNyZWwtPnNraXAudm1idWZmZXIpKQogCQkJewot CQkJCVJlbGVhc2VCdWZmZXIodm1idWZmZXIpOwotCQkJCXZtYnVmZmVyID0gSW52YWxpZEJ1 ZmZlcjsKKwkJCQlSZWxlYXNlQnVmZmVyKHZhY3JlbC0+c2tpcC52bWJ1ZmZlcik7CisJCQkJ dmFjcmVsLT5za2lwLnZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIAkJCX0KIAogCQkJLyog UGVyZm9ybSBhIHJvdW5kIG9mIGluZGV4IGFuZCBoZWFwIHZhY3V1bWluZyAqLwpAQCAtOTI0 LDcgKzkyOCw3IEBAIGxhenlfc2Nhbl9oZWFwKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJICog YWxsLXZpc2libGUuICBJbiBtb3N0IGNhc2VzIHRoaXMgd2lsbCBiZSB2ZXJ5IGNoZWFwLCBi ZWNhdXNlIHdlJ2xsCiAJCSAqIGFscmVhZHkgaGF2ZSB0aGUgY29ycmVjdCBwYWdlIHBpbm5l ZCBhbnl3YXkuCiAJCSAqLwotCQl2aXNpYmlsaXR5bWFwX3Bpbih2YWNyZWwtPnJlbCwgYmxr bm8sICZ2bWJ1ZmZlcik7CisJCXZpc2liaWxpdHltYXBfcGluKHZhY3JlbC0+cmVsLCBibGtu bywgJnZhY3JlbC0+c2tpcC52bWJ1ZmZlcik7CiAKIAkJYnVmID0gUmVhZEJ1ZmZlckV4dGVu ZGVkKHZhY3JlbC0+cmVsLCBNQUlOX0ZPUktOVU0sIGJsa25vLCBSQk1fTk9STUFMLAogCQkJ CQkJCQkgdmFjcmVsLT5ic3RyYXRlZ3kpOwpAQCAtOTQyLDggKzk0Niw3IEBAIGxhenlfc2Nh bl9oZWFwKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJCUxvY2tCdWZmZXIoYnVmLCBCVUZGRVJf TE9DS19TSEFSRSk7CiAKIAkJLyogQ2hlY2sgZm9yIG5ldyBvciBlbXB0eSBwYWdlcyBiZWZv cmUgbGF6eV9zY2FuX1tub11wcnVuZSBjYWxsICovCi0JCWlmIChsYXp5X3NjYW5fbmV3X29y X2VtcHR5KHZhY3JlbCwgYnVmLCBibGtubywgcGFnZSwgIWdvdF9jbGVhbnVwX2xvY2ssCi0J CQkJCQkJCSAgIHZtYnVmZmVyKSkKKwkJaWYgKGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkodmFj cmVsLCBidWYsIGJsa25vLCBwYWdlLCAhZ290X2NsZWFudXBfbG9jaykpCiAJCXsKIAkJCS8q IFByb2Nlc3NlZCBhcyBuZXcvZW1wdHkgcGFnZSAobG9jayBhbmQgcGluIHJlbGVhc2VkKSAq LwogCQkJY29udGludWU7CkBAIC05ODUsNyArOTg4LDcgQEAgbGF6eV9zY2FuX2hlYXAoTFZS ZWxTdGF0ZSAqdmFjcmVsKQogCQkgKi8KIAkJaWYgKGdvdF9jbGVhbnVwX2xvY2spCiAJCQls YXp5X3NjYW5fcHJ1bmUodmFjcmVsLCBidWYsIGJsa25vLCBwYWdlLAotCQkJCQkJCXZtYnVm ZmVyLCBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sCisJCQkJCQkJYWxsX3Zpc2libGVf YWNjb3JkaW5nX3RvX3ZtLAogCQkJCQkJCSZoYXNfbHBkZWFkX2l0ZW1zKTsKIAogCQkvKgpA QCAtMTAzNSw4ICsxMDM4LDExIEBAIGxhenlfc2Nhbl9oZWFwKExWUmVsU3RhdGUgKnZhY3Jl bCkKIAl9CiAKIAl2YWNyZWwtPmJsa25vID0gSW52YWxpZEJsb2NrTnVtYmVyOwotCWlmIChC dWZmZXJJc1ZhbGlkKHZtYnVmZmVyKSkKLQkJUmVsZWFzZUJ1ZmZlcih2bWJ1ZmZlcik7CisJ aWYgKEJ1ZmZlcklzVmFsaWQodmFjcmVsLT5za2lwLnZtYnVmZmVyKSkKKwl7CisJCVJlbGVh c2VCdWZmZXIodmFjcmVsLT5za2lwLnZtYnVmZmVyKTsKKwkJdmFjcmVsLT5za2lwLnZtYnVm ZmVyID0gSW52YWxpZEJ1ZmZlcjsKKwl9CiAKIAkvKiByZXBvcnQgdGhhdCBldmVyeXRoaW5n IGlzIG5vdyBzY2FubmVkICovCiAJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9H UkVTU19WQUNVVU1fSEVBUF9CTEtTX1NDQU5ORUQsIGJsa25vKTsKQEAgLTEwODAsMTUgKzEw ODYsMzQgQEAgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICoJbGF6eV9z Y2FuX3NraXAoKSAtLSBzZXQgdXAgcmFuZ2Ugb2Ygc2tpcHBhYmxlIGJsb2NrcyB1c2luZyB2 aXNpYmlsaXR5IG1hcC4KICAqCiAgKiBsYXp5X3NjYW5faGVhcCgpIGNhbGxzIGhlcmUgZXZl cnkgdGltZSBpdCBuZWVkcyB0byBzZXQgdXAgYSBuZXcgcmFuZ2Ugb2YKLSAqIGJsb2NrcyB0 byBza2lwIHZpYSB0aGUgdmlzaWJpbGl0eSBtYXAuICBDYWxsZXIgcGFzc2VzIHRoZSBuZXh0 IGJsb2NrIGluCi0gKiBsaW5lLiAgV2UgcmV0dXJuIGEgbmV4dF91bnNraXBwYWJsZV9ibG9j ayBmb3IgdGhpcyByYW5nZS4gIFdoZW4gdGhlcmUgYXJlCi0gKiBubyBza2lwcGFibGUgYmxv Y2tzIHdlIGp1c3QgcmV0dXJuIGNhbGxlcidzIG5leHRfYmxvY2suICBUaGUgYWxsLXZpc2li bGUKLSAqIHN0YXR1cyBvZiB0aGUgcmV0dXJuZWQgYmxvY2sgaXMgc2V0IGluICpuZXh0X3Vu c2tpcHBhYmxlX2FsbHZpcyBmb3IgY2FsbGVyLAotICogdG9vLiAgQmxvY2sgdXN1YWxseSB3 b24ndCBiZSBhbGwtdmlzaWJsZSAoc2luY2UgaXQncyB1bnNraXBwYWJsZSksIGJ1dCBpdAot ICogY2FuIGJlIGR1cmluZyBhZ2dyZXNzaXZlIFZBQ1VVTXMgKGFzIHdlbGwgYXMgaW4gY2Vy dGFpbiBlZGdlIGNhc2VzKS4KKyAqIGJsb2NrcyB0byBza2lwIHZpYSB0aGUgdmlzaWJpbGl0 eSBtYXAuICBDYWxsZXIgcGFzc2VzIG5leHRfYmxvY2ssIHRoZSBuZXh0CisgKiBibG9jayBp biBsaW5lLiBUaGUgcGFyYW1ldGVycyBvZiB0aGUgc2tpcHBlZCByYW5nZSBhcmUgcmVjb3Jk ZWQgaW4gc2tpcC4KKyAqIHZhY3JlbCBpcyBhbiBpbi9vdXQgcGFyYW1ldGVyIGhlcmU7IHZh Y3V1bSBvcHRpb25zIGFuZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKKyAqIHJlbGF0aW9uIGFy ZSByZWFkIGFuZCB2YWNyZWwtPnNraXBwZWRhbGx2aXMgaXMgc2V0IHRvIGVuc3VyZSB3ZSBk b24ndAorICogYWR2YW5jZSByZWxmcm96ZW54aWQgd2hlbiB3ZSBoYXZlIHNraXBwZWQgdmFj dXVtaW5nIGFsbCB2aXNpYmxlIGJsb2Nrcy4KKyAqCisgKiBza2lwLT52bWJ1ZmZlciB3aWxs IGNvbnRhaW4gdGhlIGJsb2NrIGZyb20gdGhlIFZNIGNvbnRhaW5pbmcgdmlzaWJpbGl0eQor ICogaW5mb3JtYXRpb24gZm9yIHRoZSBuZXh0IHVuc2tpcHBhYmxlIGhlYXAgYmxvY2suIFdl IG1heSBlbmQgdXAgbmVlZGVkIGEKKyAqIGRpZmZlcmVudCBibG9jayBmcm9tIHRoZSBWTSAo aWYgd2UgZGVjaWRlIG5vdCB0byBza2lwIGEgc2tpcHBhYmxlIGJsb2NrKS4KKyAqIFRoaXMg aXMgb2theTsgdmlzaWJpbGl0eW1hcF9waW4oKSB3aWxsIHRha2UgY2FyZSBvZiB0aGlzIHdo aWxlIHByb2Nlc3NpbmcKKyAqIHRoZSBibG9jay4KKyAqCisgKiBBIGJsb2NrIGlzIHVuc2tp cHBhYmxlIGlmIGl0IGlzIG5vdCBhbGwgdmlzaWJsZSBhY2NvcmRpbmcgdG8gdGhlIHZpc2li aWxpdHkKKyAqIG1hcC4gSXQgaXMgYWxzbyB1bnNraXBwYWJsZSBpZiBpdCBpcyB0aGUgbGFz dCBibG9jayBpbiB0aGUgcmVsYXRpb24sIGlmIHRoZQorICogdmFjdXVtIGlzIGFuIGFnZ3Jl c3NpdmUgdmFjdXVtLCBvciBpZiBESVNBQkxFX1BBR0VfU0tJUFBJTkcgd2FzIHBhc3NlZCB0 bworICogdmFjdXVtLgogICoKLSAqIFNldHMgKnNraXBwaW5nX2N1cnJlbnRfcmFuZ2UgdG8g aW5kaWNhdGUgaWYgY2FsbGVyIHNob3VsZCBza2lwIHRoaXMgcmFuZ2UuCi0gKiBDb3N0cyBh bmQgYmVuZWZpdHMgZHJpdmUgb3VyIGRlY2lzaW9uLiAgVmVyeSBzbWFsbCByYW5nZXMgd29u J3QgYmUgc2tpcHBlZC4KKyAqIEV2ZW4gaWYgYSBibG9jayBpcyBza2lwcGFibGUsIHdlIG1h eSBjaG9vc2Ugbm90IHRvIHNraXAgaXQgaWYgdGhlIHJhbmdlIG9mCisgKiBza2lwcGFibGUg YmxvY2tzIGlzIHRvbyBzbWFsbCAoYmVsb3cgU0tJUF9QQUdFU19USFJFU0hPTEQpLiBBcyBh CisgKiBjb25zZXF1ZW5jZSwgd2UgbXVzdCBrZWVwIHRyYWNrIG9mIHRoZSBuZXh0IHRydWx5 IHVuc2tpcHBhYmxlIGJsb2NrIGFuZCBpdHMKKyAqIHZpc2liaWxpdHkgc3RhdHVzIGFsb25n IHdpdGggd2hldGhlciBvciBub3Qgd2UgYXJlIHNraXBwaW5nIHRoZSBjdXJyZW50CisgKiBy YW5nZSBvZiBza2lwcGFibGUgYmxvY2tzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGRlcml2ZSB0 aGUgbmV4dCBibG9jaworICogbGF6eV9zY2FuX2hlYXAoKSBtdXN0IHByb2Nlc3MgYW5kIGl0 cyB2aXNpYmlsaXR5IHN0YXR1cy4KKyAqCisgKiBUaGUgYmxvY2sgbnVtYmVyIGFuZCB2aXNp YmlsaXR5IHN0YXR1cyBvZiB0aGUgbmV4dCB1bnNraXBwYWJsZSBibG9jayBhcmUgc2V0Cisg KiBpbiBza2lwLT5uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrIGFuZCBuZXh0X3Vuc2tpcHBhYmxl X2FsbHZpcy4KKyAqIHNraXAtPnNraXBwaW5nX2N1cnJlbnRfcmFuZ2UgaW5kaWNhdGVzIHRv IHRoZSBjYWxsZXIgd2hldGhlciBvciBub3QgaXQgaXMKKyAqIHByb2Nlc3NpbmcgYSBza2lw cGFibGUgKGFuZCB0aHVzIGFsbC12aXNpYmxlKSBibG9jay4KICAqCiAgKiBOb3RlOiBvdXIg b3BpbmlvbiBvZiB3aGljaCBibG9ja3MgY2FuIGJlIHNraXBwZWQgY2FuIGdvIHN0YWxlIGlt bWVkaWF0ZWx5LgogICogSXQncyBva2F5IGlmIGNhbGxlciAibWlzc2VzIiBhIHBhZ2Ugd2hv c2UgYWxsLXZpc2libGUgb3IgYWxsLWZyb3plbiBtYXJraW5nCkBAIC0xMDk4LDI1ICsxMTIz LDI2IEBAIGxhenlfc2Nhbl9oZWFwKExWUmVsU3RhdGUgKnZhY3JlbCkKICAqIG9sZGVyIFhJ RHMvTVhJRHMuICBUaGUgdmFjcmVsLT5za2lwcGVkYWxsdmlzIGZsYWcgd2lsbCBiZSBzZXQg aGVyZSB3aGVuIHRoZQogICogY2hvaWNlIHRvIHNraXAgc3VjaCBhIHJhbmdlIGlzIGFjdHVh bGx5IG1hZGUsIG1ha2luZyBldmVyeXRoaW5nIHNhZmUuKQogICovCi1zdGF0aWMgQmxvY2tO dW1iZXIKLWxhenlfc2Nhbl9za2lwKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyICp2bWJ1 ZmZlciwgQmxvY2tOdW1iZXIgbmV4dF9ibG9jaywKLQkJCSAgIGJvb2wgKm5leHRfdW5za2lw cGFibGVfYWxsdmlzLCBib29sICpza2lwcGluZ19jdXJyZW50X3JhbmdlKQorc3RhdGljIHZv aWQKK2xhenlfc2Nhbl9za2lwKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgbmV4 dF9ibG9jaykKIHsKKwkvKiBVc2UgbG9jYWwgdmFyaWFibGVzIGZvciBiZXR0ZXIgb3B0aW1p emVkIGxvb3AgY29kZSAqLwogCUJsb2NrTnVtYmVyIHJlbF9wYWdlcyA9IHZhY3JlbC0+cmVs X3BhZ2VzLAogCQkJCW5leHRfdW5za2lwcGFibGVfYmxvY2sgPSBuZXh0X2Jsb2NrOworCiAJ Ym9vbAkJc2tpcHNhbGx2aXMgPSBmYWxzZTsKIAotCSpuZXh0X3Vuc2tpcHBhYmxlX2FsbHZp cyA9IHRydWU7CisJdmFjcmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYWxsdmlzID0gdHJ1 ZTsKIAl3aGlsZSAobmV4dF91bnNraXBwYWJsZV9ibG9jayA8IHJlbF9wYWdlcykKIAl7CiAJ CXVpbnQ4CQltYXBiaXRzID0gdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKHZhY3JlbC0+cmVs LAogCQkJCQkJCQkJCQkJCSAgIG5leHRfdW5za2lwcGFibGVfYmxvY2ssCi0JCQkJCQkJCQkJ CQkJICAgdm1idWZmZXIpOworCQkJCQkJCQkJCQkJCSAgICZ2YWNyZWwtPnNraXAudm1idWZm ZXIpOwogCiAJCWlmICgobWFwYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09 IDApCiAJCXsKIAkJCUFzc2VydCgobWFwYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pF TikgPT0gMCk7Ci0JCQkqbmV4dF91bnNraXBwYWJsZV9hbGx2aXMgPSBmYWxzZTsKKwkJCXZh Y3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBhYmxlX2FsbHZpcyA9IGZhbHNlOwogCQkJYnJlYWs7 CiAJCX0KIApAQCAtMTEzNyw3ICsxMTYzLDcgQEAgbGF6eV9zY2FuX3NraXAoTFZSZWxTdGF0 ZSAqdmFjcmVsLCBCdWZmZXIgKnZtYnVmZmVyLCBCbG9ja051bWJlciBuZXh0X2Jsb2NrLAog CQlpZiAoIXZhY3JlbC0+c2tpcHdpdGh2bSkKIAkJewogCQkJLyogQ2FsbGVyIHNob3VsZG4n dCByZWx5IG9uIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSAqLwotCQkJKm5leHRfdW5z a2lwcGFibGVfYWxsdmlzID0gZmFsc2U7CisJCQl2YWNyZWwtPnNraXAubmV4dF91bnNraXBw YWJsZV9hbGx2aXMgPSBmYWxzZTsKIAkJCWJyZWFrOwogCQl9CiAKQEAgLTExNjIsNiArMTE4 OCw4IEBAIGxhenlfc2Nhbl9za2lwKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyICp2bWJ1 ZmZlciwgQmxvY2tOdW1iZXIgbmV4dF9ibG9jaywKIAkJbmV4dF91bnNraXBwYWJsZV9ibG9j aysrOwogCX0KIAorCXZhY3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrID0gbmV4 dF91bnNraXBwYWJsZV9ibG9jazsKKwogCS8qCiAJICogV2Ugb25seSBza2lwIGEgcmFuZ2Ug d2l0aCBhdCBsZWFzdCBTS0lQX1BBR0VTX1RIUkVTSE9MRCBjb25zZWN1dGl2ZQogCSAqIHBh Z2VzLiAgU2luY2Ugd2UncmUgcmVhZGluZyBzZXF1ZW50aWFsbHksIHRoZSBPUyBzaG91bGQg YmUgZG9pbmcKQEAgLTExNzIsMTYgKzEyMDAsMTQgQEAgbGF6eV9zY2FuX3NraXAoTFZSZWxT dGF0ZSAqdmFjcmVsLCBCdWZmZXIgKnZtYnVmZmVyLCBCbG9ja051bWJlciBuZXh0X2Jsb2Nr LAogCSAqIG5vbi1hZ2dyZXNzaXZlIFZBQ1VVTXMuICBJZiB0aGUgcmFuZ2UgaGFzIGFueSBh bGwtdmlzaWJsZSBwYWdlcyB0aGVuCiAJICogc2tpcHBpbmcgbWFrZXMgdXBkYXRpbmcgcmVs ZnJvemVueGlkIHVuc2FmZSwgd2hpY2ggaXMgYSByZWFsIGRvd25zaWRlLgogCSAqLwotCWlm IChuZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrIC0gbmV4dF9ibG9jayA8IFNLSVBfUEFHRVNfVEhS RVNIT0xEKQotCQkqc2tpcHBpbmdfY3VycmVudF9yYW5nZSA9IGZhbHNlOworCWlmICh2YWNy ZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9ibG9jayAtIG5leHRfYmxvY2sgPCBTS0lQX1BB R0VTX1RIUkVTSE9MRCkKKwkJdmFjcmVsLT5za2lwLnNraXBwaW5nX2N1cnJlbnRfcmFuZ2Ug PSBmYWxzZTsKIAllbHNlCiAJewotCQkqc2tpcHBpbmdfY3VycmVudF9yYW5nZSA9IHRydWU7 CisJCXZhY3JlbC0+c2tpcC5za2lwcGluZ19jdXJyZW50X3JhbmdlID0gdHJ1ZTsKIAkJaWYg KHNraXBzYWxsdmlzKQogCQkJdmFjcmVsLT5za2lwcGVkYWxsdmlzID0gdHJ1ZTsKIAl9Ci0K LQlyZXR1cm4gbmV4dF91bnNraXBwYWJsZV9ibG9jazsKIH0KIAogLyoKQEAgLTEyMTQsNyAr MTI0MCw3IEBAIGxhenlfc2Nhbl9za2lwKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyICp2 bWJ1ZmZlciwgQmxvY2tOdW1iZXIgbmV4dF9ibG9jaywKICAqLwogc3RhdGljIGJvb2wKIGxh enlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBC bG9ja051bWJlciBibGtubywKLQkJCQkJICAgUGFnZSBwYWdlLCBib29sIHNoYXJlbG9jaywg QnVmZmVyIHZtYnVmZmVyKQorCQkJCQkgICBQYWdlIHBhZ2UsIGJvb2wgc2hhcmVsb2NrKQog ewogCVNpemUJCWZyZWVzcGFjZTsKIApAQCAtMTMwMCw3ICsxMzI2LDcgQEAgbGF6eV9zY2Fu X25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVt YmVyIGJsa25vLAogCiAJCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKIAkJCXZpc2liaWxp dHltYXBfc2V0KHZhY3JlbC0+cmVsLCBibGtubywgYnVmLCBJbnZhbGlkWExvZ1JlY1B0ciwK LQkJCQkJCQkgIHZtYnVmZmVyLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKKwkJCQkJCQkgIHZh Y3JlbC0+c2tpcC52bWJ1ZmZlciwgSW52YWxpZFRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJICBW SVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsK IAkJCUVORF9DUklUX1NFQ1RJT04oKTsKIAkJfQpAQCAtMTMzNiwxMCArMTM2MiwxMSBAQCBs YXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1Ziwg QmxvY2tOdW1iZXIgYmxrbm8sCiAgKiBhbnkgdHVwbGUgdGhhdCBiZWNvbWVzIGRlYWQgYWZ0 ZXIgdGhlIGNhbGwgdG8gaGVhcF9wYWdlX3BydW5lKCkgY2FuJ3QgbmVlZCB0bwogICogYmUg ZnJvemVuLCBiZWNhdXNlIGl0IHdhcyB2aXNpYmxlIHRvIGFub3RoZXIgc2Vzc2lvbiB3aGVu IHZhY3V1bSBzdGFydGVkLgogICoKLSAqIHZtYnVmZmVyIGlzIHRoZSBidWZmZXIgY29udGFp bmluZyB0aGUgVk0gYmxvY2sgd2l0aCB2aXNpYmlsaXR5IGluZm9ybWF0aW9uCi0gKiBmb3Ig dGhlIGhlYXAgYmxvY2ssIGJsa25vLiBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gaXMg dGhlIHNhdmVkCi0gKiB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUgaGVhcCBibG9jayBsb29r ZWQgdXAgZWFybGllciBieSB0aGUgY2FsbGVyLiBXZQotICogd29uJ3QgcmVseSBlbnRpcmVs eSBvbiB0aGlzIHN0YXR1cywgYXMgaXQgbWF5IGJlIG91dCBvZiBkYXRlLgorICogdmFjcmVs LT5za2lwc3RhdGUudm1idWZmZXIgaXMgdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBWTSBi bG9jayB3aXRoCisgKiB2aXNpYmlsaXR5IGluZm9ybWF0aW9uIGZvciB0aGUgaGVhcCBibG9j aywgYmxrbm8uCisgKiBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gaXMgdGhlIHNhdmVk IHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBoZWFwIGJsb2NrCisgKiBsb29rZWQgdXAgZWFy bGllciBieSB0aGUgY2FsbGVyLiBXZSB3b24ndCByZWx5IGVudGlyZWx5IG9uIHRoaXMgc3Rh dHVzLCBhcworICogaXQgbWF5IGJlIG91dCBvZiBkYXRlLgogICoKICAqICpoYXNfbHBkZWFk X2l0ZW1zIGlzIHNldCB0byB0cnVlIG9yIGZhbHNlIGRlcGVuZGluZyBvbiB3aGV0aGVyLCB1 cG9uIHJldHVybgogICogZnJvbSB0aGlzIGZ1bmN0aW9uLCBhbnkgTFBfREVBRCBpdGVtcyBh cmUgc3RpbGwgcHJlc2VudCBvbiB0aGUgcGFnZS4KQEAgLTEzNDksNyArMTM3Niw2IEBAIGxh enlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCQkJQnVmZmVyIGJ1ZiwKIAkJ CQlCbG9ja051bWJlciBibGtubywKIAkJCQlQYWdlIHBhZ2UsCi0JCQkJQnVmZmVyIHZtYnVm ZmVyLAogCQkJCWJvb2wgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLAogCQkJCWJvb2wg Kmhhc19scGRlYWRfaXRlbXMpCiB7CkBAIC0xNzgzLDcgKzE4MDksNyBAQCBsYXp5X3NjYW5f cHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsK IAkJTWFya0J1ZmZlckRpcnR5KGJ1Zik7CiAJCXZpc2liaWxpdHltYXBfc2V0KHZhY3JlbC0+ cmVsLCBibGtubywgYnVmLCBJbnZhbGlkWExvZ1JlY1B0ciwKLQkJCQkJCSAgdm1idWZmZXIs IHZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCSAgdmFjcmVsLT5za2lwLnZtYnVmZmVy LCB2aXNpYmlsaXR5X2N1dG9mZl94aWQsCiAJCQkJCQkgIGZsYWdzKTsKIAl9CiAKQEAgLTE3 OTQsMTEgKzE4MjAsMTEgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwK IAkgKiBidWZmZXIgbG9jayBiZWZvcmUgY29uY2x1ZGluZyB0aGF0IHRoZSBWTSBpcyBjb3Jy dXB0LgogCSAqLwogCWVsc2UgaWYgKGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSAmJiAh UGFnZUlzQWxsVmlzaWJsZShwYWdlKSAmJgotCQkJIHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1 cyh2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcikgIT0gMCkKKwkJCSB2aXNpYmlsaXR5 bWFwX2dldF9zdGF0dXModmFjcmVsLT5yZWwsIGJsa25vLCAmdmFjcmVsLT5za2lwLnZtYnVm ZmVyKSAhPSAwKQogCXsKIAkJZWxvZyhXQVJOSU5HLCAicGFnZSBpcyBub3QgbWFya2VkIGFs bC12aXNpYmxlIGJ1dCB2aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0IGluIHJlbGF0aW9uIFwi JXNcIiBwYWdlICV1IiwKIAkJCSB2YWNyZWwtPnJlbG5hbWUsIGJsa25vKTsKLQkJdmlzaWJp bGl0eW1hcF9jbGVhcih2YWNyZWwtPnJlbCwgYmxrbm8sIHZtYnVmZmVyLAorCQl2aXNpYmls aXR5bWFwX2NsZWFyKHZhY3JlbC0+cmVsLCBibGtubywgdmFjcmVsLT5za2lwLnZtYnVmZmVy LAogCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJfQogCkBAIC0xODIyLDcg KzE4NDgsNyBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkJIHZh Y3JlbC0+cmVsbmFtZSwgYmxrbm8pOwogCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwog CQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKLQkJdmlzaWJpbGl0eW1hcF9jbGVhcih2YWNyZWwt PnJlbCwgYmxrbm8sIHZtYnVmZmVyLAorCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHZhY3JlbC0+ cmVsLCBibGtubywgdmFjcmVsLT5za2lwLnZtYnVmZmVyLAogCQkJCQkJCVZJU0lCSUxJVFlN QVBfVkFMSURfQklUUyk7CiAJfQogCkBAIC0xODMyLDcgKzE4NTgsNyBAQCBsYXp5X3NjYW5f cHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCSAqIHRydWUsIHNvIHdlIG11c3QgY2hlY2sg Ym90aCBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbi4KIAkgKi8KIAllbHNlIGlmIChhbGxf dmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgYWxsX3Zpc2libGUgJiYKLQkJCSBhbGxfZnJv emVuICYmICFWTV9BTExfRlJPWkVOKHZhY3JlbC0+cmVsLCBibGtubywgJnZtYnVmZmVyKSkK KwkJCSBhbGxfZnJvemVuICYmICFWTV9BTExfRlJPWkVOKHZhY3JlbC0+cmVsLCBibGtubywg JnZhY3JlbC0+c2tpcC52bWJ1ZmZlcikpCiAJewogCQkvKgogCQkgKiBBdm9pZCByZWx5aW5n IG9uIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSBhcyBhIHByb3h5IGZvciB0aGUKQEAg LTE4NTQsNyArMTg4MCw3IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWws CiAJCSAqLwogCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHZpc2liaWxpdHlfY3V0 b2ZmX3hpZCkpOwogCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sIGJ1 ZiwgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkgIHZtYnVmZmVyLCBJbnZhbGlkVHJhbnNh Y3Rpb25JZCwKKwkJCQkJCSAgdmFjcmVsLT5za2lwLnZtYnVmZmVyLCBJbnZhbGlkVHJhbnNh Y3Rpb25JZCwKIAkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CiAJCQkJCQkg IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7CiAJfQotLSAKMi4zOS4yCgo= --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/x-patch; charset=UTF-8; name="v6-0003-Confine-vacuum-skip-logic-to-lazy_scan_skip.patch" Content-Disposition: attachment; filename*0="v6-0003-Confine-vacuum-skip-logic-to-lazy_scan_skip.patch" Content-Transfer-Encoding: base64 RnJvbSA2YjJiMDMxM2VjZjVhOGYzNWEzZmJhYjllM2JhODE3YTVjZmYyYzczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2Vt YW5AZ21haWwuY29tPgpEYXRlOiBTYXQsIDMwIERlYyAyMDIzIDE2OjU5OjI3IC0wNTAwClN1 YmplY3Q6IFtQQVRDSCB2NiAzLzldIENvbmZpbmUgdmFjdXVtIHNraXAgbG9naWMgdG8gbGF6 eV9zY2FuX3NraXAKCkluIHByZXBhcmF0aW9uIGZvciB2YWN1dW0gdG8gdXNlIHRoZSBzdHJl YW1pbmcgcmVhZCBpbnRlcmZhY2UgKGFuZApldmVudHVhbGx5IEFJTyksIHJlZmFjdG9yIHZh Y3V1bSdzIGxvZ2ljIGZvciBza2lwcGluZyBibG9ja3Mgc3VjaCB0aGF0Cml0IGlzIGVudGly ZWx5IGNvbmZpbmVkIHRvIGxhenlfc2Nhbl9za2lwKCkuIFRoaXMgdHVybnMgbGF6eV9zY2Fu X3NraXAoKQphbmQgdGhlIHNraXAgc3RhdGUgaW4gTFZSZWxTdGF0ZSBpdCB1c2VzIGludG8g YW4gaXRlcmF0b3Igd2hpY2ggeWllbGRzCmJsb2NrcyB0byBsYXp5X3NjYW5faGVhcCgpLiBT dWNoIGEgc3RydWN0dXJlIGlzIGNvbmR1Y2l2ZSB0byBhbiBhc3luYwppbnRlcmZhY2UuIFdo aWxlIHdlIGFyZSBhdCBpdCwgcmVuYW1lIGxhenlfc2Nhbl9za2lwKCkgdG8KaGVhcF92YWNf c2Nhbl9nZXRfbmV4dF9ibG9jaygpLCB3aGljaCBub3cgbW9yZSBhY2N1cmF0ZWx5IGRlc2Ny aWJlcyBpdC4KCkJ5IGFsd2F5cyBjYWxsaW5nIGhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxv Y2soKSAtLSBpbnN0ZWFkIG9mIG9ubHkgd2hlbgp3ZSBoYXZlIHJlYWNoZWQgdGhlIG5leHQg dW5za2lwcGFibGUgYmxvY2ssIHdlIG5vIGxvbmdlciBuZWVkIHRoZQpza2lwcGluZ19jdXJy ZW50X3JhbmdlIHZhcmlhYmxlLiBsYXp5X3NjYW5faGVhcCgpIG5vIGxvbmdlciBuZWVkcyB0 bwptYW5hZ2UgdGhlIHNraXBwZWQgcmFuZ2UgLS0gY2hlY2tpbmcgaWYgd2UgcmVhY2hlZCB0 aGUgZW5kIGluIG9yZGVyIHRvCnRoZW4gY2FsbCBoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Js b2NrKCkuIEFuZApoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKCkgY2FuIGRlcml2ZSB0 aGUgdmlzaWJpbGl0eSBzdGF0dXMgb2YgYQpibG9jayBmcm9tIHdoZXRoZXIgb3Igbm90IHdl IGFyZSBpbiBhIHNraXBwYWJsZSByYW5nZSAtLSB0aGF0IGlzLAp3aGV0aGVyIG9yIG5vdCB0 aGUgbmV4dF9ibG9jayBpcyBlcXVhbCB0byB0aGUgbmV4dCB1bnNraXBwYWJsZSBibG9jay4K LS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAyNDMgKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMo KyksIDExNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKaW5kZXggMGRkYjk4NmJjMDMuLjk5ZDE2MDMzNWUxIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0yMDYsOCArMjA2LDggQEAgdHlwZWRlZiBzdHJ1Y3Qg TFZSZWxTdGF0ZQogCWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7IC8qICMgcmVtb3ZhYmxl LCBidXQgbm90IHJlbW92ZWQgKi8KIAogCS8qCi0JICogUGFyYW1ldGVycyBtYWludGFpbmVk IGJ5IGxhenlfc2Nhbl9za2lwKCkgdG8gbWFuYWdlIHNraXBwaW5nIHJhbmdlcyBvZgotCSAq IHBhZ2VzIGdyZWF0ZXIgdGhhbiBTS0lQX1BBR0VTX1RIUkVTSE9MRC4KKwkgKiBQYXJhbWV0 ZXJzIG1haW50YWluZWQgYnkgaGVhcF92YWNfc2Nhbl9nZXRfbmV4dF9ibG9jaygpIHRvIG1h bmFnZQorCSAqIHNraXBwaW5nIHJhbmdlcyBvZiBwYWdlcyBncmVhdGVyIHRoYW4gU0tJUF9Q QUdFU19USFJFU0hPTEQuCiAJICovCiAJc3RydWN0CiAJewpAQCAtMjMyLDcgKzIzMiw5IEBA IHR5cGVkZWYgc3RydWN0IExWU2F2ZWRFcnJJbmZvCiAKIC8qIG5vbi1leHBvcnQgZnVuY3Rp b24gcHJvdG90eXBlcyAqLwogc3RhdGljIHZvaWQgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0 ZSAqdmFjcmVsKTsKLXN0YXRpYyB2b2lkIGxhenlfc2Nhbl9za2lwKExWUmVsU3RhdGUgKnZh Y3JlbCwgQmxvY2tOdW1iZXIgbmV4dF9ibG9jayk7CitzdGF0aWMgYm9vbCBoZWFwX3ZhY19z Y2FuX2dldF9uZXh0X2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgbmV4 dF9ibG9jaywKKwkJCQkJCQkJCQkgQmxvY2tOdW1iZXIgKmJsa25vLAorCQkJCQkJCQkJCSBi b29sICphbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0pOwogc3RhdGljIGJvb2wgbGF6eV9z Y2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJCQkJ CQkJCSAgIEJsb2NrTnVtYmVyIGJsa25vLCBQYWdlIHBhZ2UsCiAJCQkJCQkJCSAgIGJvb2wg c2hhcmVsb2NrKTsKQEAgLTgxNCw4ICs4MTYsMTEgQEAgc3RhdGljIHZvaWQKIGxhenlfc2Nh bl9oZWFwKExWUmVsU3RhdGUgKnZhY3JlbCkKIHsKIAlCbG9ja051bWJlciByZWxfcGFnZXMg PSB2YWNyZWwtPnJlbF9wYWdlcywKLQkJCQlibGtubywKIAkJCQluZXh0X2ZzbV9ibG9ja190 b192YWN1dW0gPSAwOworCWJvb2wJCWFsbF92aXNpYmxlX2FjY29yZGluZ190b192bTsKKwor CS8qIHJlbGllcyBvbiBJbnZhbGlkQmxvY2tOdW1iZXIgb3ZlcmZsb3dpbmcgdG8gMCAqLwor CUJsb2NrTnVtYmVyIGJsa25vID0gSW52YWxpZEJsb2NrTnVtYmVyOwogCVZhY0RlYWRJdGVt cyAqZGVhZF9pdGVtcyA9IHZhY3JlbC0+ZGVhZF9pdGVtczsKIAljb25zdCBpbnQJaW5pdHBy b2dfaW5kZXhbXSA9IHsKIAkJUFJPR1JFU1NfVkFDVVVNX1BIQVNFLApAQCAtODMwLDQwICs4 MzUsMTcgQEAgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCWluaXRwcm9n X3ZhbFsyXSA9IGRlYWRfaXRlbXMtPm1heF9pdGVtczsKIAlwZ3N0YXRfcHJvZ3Jlc3NfdXBk YXRlX211bHRpX3BhcmFtKDMsIGluaXRwcm9nX2luZGV4LCBpbml0cHJvZ192YWwpOwogCisJ dmFjcmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYmxvY2sgPSBJbnZhbGlkQmxvY2tOdW1i ZXI7CiAJdmFjcmVsLT5za2lwLnZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKLQkvKiBTZXQg dXAgYW4gaW5pdGlhbCByYW5nZSBvZiBza2lwcGFibGUgYmxvY2tzIHVzaW5nIHRoZSB2aXNp YmlsaXR5IG1hcCAqLwotCWxhenlfc2Nhbl9za2lwKHZhY3JlbCwgMCk7Ci0JZm9yIChibGtu byA9IDA7IGJsa25vIDwgcmVsX3BhZ2VzOyBibGtubysrKQorCisJd2hpbGUgKGhlYXBfdmFj X3NjYW5fZ2V0X25leHRfYmxvY2sodmFjcmVsLCBibGtubyArIDEsCisJCQkJCQkJCQkJJmJs a25vLCAmYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtKSkKIAl7CiAJCUJ1ZmZlcgkJYnVm OwogCQlQYWdlCQlwYWdlOwotCQlib29sCQlhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm07 CiAJCWJvb2wJCWhhc19scGRlYWRfaXRlbXM7CiAJCWJvb2wJCWdvdF9jbGVhbnVwX2xvY2sg PSBmYWxzZTsKIAotCQlpZiAoYmxrbm8gPT0gdmFjcmVsLT5za2lwLm5leHRfdW5za2lwcGFi bGVfYmxvY2spCi0JCXsKLQkJCS8qCi0JCQkgKiBDYW4ndCBza2lwIHRoaXMgcGFnZSBzYWZl bHkuICBNdXN0IHNjYW4gdGhlIHBhZ2UuICBCdXQKLQkJCSAqIGRldGVybWluZSB0aGUgbmV4 dCBza2lwcGFibGUgcmFuZ2UgYWZ0ZXIgdGhlIHBhZ2UgZmlyc3QuCi0JCQkgKi8KLQkJCWFs bF92aXNpYmxlX2FjY29yZGluZ190b192bSA9IHZhY3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBh YmxlX2FsbHZpczsKLQkJCWxhenlfc2Nhbl9za2lwKHZhY3JlbCwgYmxrbm8gKyAxKTsKLQot CQkJQXNzZXJ0KHZhY3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrID49IGJsa25v ICsgMSk7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkvKiBMYXN0IHBhZ2UgYWx3YXlzIHNjYW5u ZWQgKG1heSBuZWVkIHRvIHNldCBub25lbXB0eV9wYWdlcykgKi8KLQkJCUFzc2VydChibGtu byA8IHJlbF9wYWdlcyAtIDEpOwotCi0JCQlpZiAodmFjcmVsLT5za2lwLnNraXBwaW5nX2N1 cnJlbnRfcmFuZ2UpCi0JCQkJY29udGludWU7Ci0KLQkJCS8qIEN1cnJlbnQgcmFuZ2UgaXMg dG9vIHNtYWxsIHRvIHNraXAgLS0ganVzdCBzY2FuIHRoZSBwYWdlICovCi0JCQlhbGxfdmlz aWJsZV9hY2NvcmRpbmdfdG9fdm0gPSB0cnVlOwotCQl9Ci0KIAkJdmFjcmVsLT5zY2FubmVk X3BhZ2VzKys7CiAKIAkJLyogUmVwb3J0IGFzIGJsb2NrIHNjYW5uZWQsIHVwZGF0ZSBlcnJv ciB0cmFjZWJhY2sgaW5mb3JtYXRpb24gKi8KQEAgLTEwODMsMjAgKzEwNjUsMTQgQEAgbGF6 eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogfQogCiAvKgotICoJbGF6eV9zY2Fu X3NraXAoKSAtLSBzZXQgdXAgcmFuZ2Ugb2Ygc2tpcHBhYmxlIGJsb2NrcyB1c2luZyB2aXNp YmlsaXR5IG1hcC4KLSAqCi0gKiBsYXp5X3NjYW5faGVhcCgpIGNhbGxzIGhlcmUgZXZlcnkg dGltZSBpdCBuZWVkcyB0byBzZXQgdXAgYSBuZXcgcmFuZ2Ugb2YKLSAqIGJsb2NrcyB0byBz a2lwIHZpYSB0aGUgdmlzaWJpbGl0eSBtYXAuICBDYWxsZXIgcGFzc2VzIG5leHRfYmxvY2ss IHRoZSBuZXh0Ci0gKiBibG9jayBpbiBsaW5lLiBUaGUgcGFyYW1ldGVycyBvZiB0aGUgc2tp cHBlZCByYW5nZSBhcmUgcmVjb3JkZWQgaW4gc2tpcC4KLSAqIHZhY3JlbCBpcyBhbiBpbi9v dXQgcGFyYW1ldGVyIGhlcmU7IHZhY3V1bSBvcHRpb25zIGFuZCBpbmZvcm1hdGlvbiBhYm91 dCB0aGUKLSAqIHJlbGF0aW9uIGFyZSByZWFkIGFuZCB2YWNyZWwtPnNraXBwZWRhbGx2aXMg aXMgc2V0IHRvIGVuc3VyZSB3ZSBkb24ndAotICogYWR2YW5jZSByZWxmcm96ZW54aWQgd2hl biB3ZSBoYXZlIHNraXBwZWQgdmFjdXVtaW5nIGFsbCB2aXNpYmxlIGJsb2Nrcy4KKyAqCWhl YXBfdmFjX3NjYW5fZ2V0X25leHRfYmxvY2soKSAtLSBnZXQgbmV4dCBibG9jayBmb3IgdmFj dXVtIHRvIHByb2Nlc3MKICAqCi0gKiBza2lwLT52bWJ1ZmZlciB3aWxsIGNvbnRhaW4gdGhl IGJsb2NrIGZyb20gdGhlIFZNIGNvbnRhaW5pbmcgdmlzaWJpbGl0eQotICogaW5mb3JtYXRp b24gZm9yIHRoZSBuZXh0IHVuc2tpcHBhYmxlIGhlYXAgYmxvY2suIFdlIG1heSBlbmQgdXAg bmVlZGVkIGEKLSAqIGRpZmZlcmVudCBibG9jayBmcm9tIHRoZSBWTSAoaWYgd2UgZGVjaWRl IG5vdCB0byBza2lwIGEgc2tpcHBhYmxlIGJsb2NrKS4KLSAqIFRoaXMgaXMgb2theTsgdmlz aWJpbGl0eW1hcF9waW4oKSB3aWxsIHRha2UgY2FyZSBvZiB0aGlzIHdoaWxlIHByb2Nlc3Np bmcKLSAqIHRoZSBibG9jay4KKyAqIGxhenlfc2Nhbl9oZWFwKCkgY2FsbHMgaGVyZSBldmVy eSB0aW1lIGl0IG5lZWRzIHRvIGdldCB0aGUgbmV4dCBibG9jayB0bworICogcHJ1bmUgYW5k IHZhY3V1bSwgdXNpbmcgdGhlIHZpc2liaWxpdHkgbWFwLCB2YWN1dW0gb3B0aW9ucywgYW5k IHZhcmlvdXMKKyAqIHRocmVzaG9sZHMgdG8gc2tpcCBibG9ja3Mgd2hpY2ggZG8gbm90IG5l ZWQgdG8gYmUgcHJvY2Vzc2VkLiBDYWxsZXIgcGFzc2VzCisgKiBuZXh0X2Jsb2NrLCB0aGUg bmV4dCBibG9jayBpbiBsaW5lLiBUaGlzIGJsb2NrIG1heSBlbmQgdXAgYmVpbmcgc2tpcHBl ZC4KKyAqIGhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxvY2soKSBzZXRzIGJsa25vIHRvIG5l eHQgYmxvY2sgdGhhdCBhY3R1YWxseSBuZWVkcworICogdG8gYmUgcHJvY2Vzc2VkLgogICoK ICAqIEEgYmxvY2sgaXMgdW5za2lwcGFibGUgaWYgaXQgaXMgbm90IGFsbCB2aXNpYmxlIGFj Y29yZGluZyB0byB0aGUgdmlzaWJpbGl0eQogICogbWFwLiBJdCBpcyBhbHNvIHVuc2tpcHBh YmxlIGlmIGl0IGlzIHRoZSBsYXN0IGJsb2NrIGluIHRoZSByZWxhdGlvbiwgaWYgdGhlCkBA IC0xMTA2LDE0ICsxMDgyLDI1IEBAIGxhenlfc2Nhbl9oZWFwKExWUmVsU3RhdGUgKnZhY3Jl bCkKICAqIEV2ZW4gaWYgYSBibG9jayBpcyBza2lwcGFibGUsIHdlIG1heSBjaG9vc2Ugbm90 IHRvIHNraXAgaXQgaWYgdGhlIHJhbmdlIG9mCiAgKiBza2lwcGFibGUgYmxvY2tzIGlzIHRv byBzbWFsbCAoYmVsb3cgU0tJUF9QQUdFU19USFJFU0hPTEQpLiBBcyBhCiAgKiBjb25zZXF1 ZW5jZSwgd2UgbXVzdCBrZWVwIHRyYWNrIG9mIHRoZSBuZXh0IHRydWx5IHVuc2tpcHBhYmxl IGJsb2NrIGFuZCBpdHMKLSAqIHZpc2liaWxpdHkgc3RhdHVzIGFsb25nIHdpdGggd2hldGhl ciBvciBub3Qgd2UgYXJlIHNraXBwaW5nIHRoZSBjdXJyZW50Ci0gKiByYW5nZSBvZiBza2lw cGFibGUgYmxvY2tzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGRlcml2ZSB0aGUgbmV4dCBibG9j awotICogbGF6eV9zY2FuX2hlYXAoKSBtdXN0IHByb2Nlc3MgYW5kIGl0cyB2aXNpYmlsaXR5 IHN0YXR1cy4KKyAqIHZpc2liaWxpdHkgc3RhdHVzIHNlcGFyYXRlIGZyb20gdGhlIG5leHQg YmxvY2sgbGF6eV9zY2FuX2hlYXAoKSBzaG91bGQKKyAqIHByb2Nlc3MgKGFuZCBpdHMgdmlz aWJpbGl0eSBzdGF0dXMpLgogICoKICAqIFRoZSBibG9jayBudW1iZXIgYW5kIHZpc2liaWxp dHkgc3RhdHVzIG9mIHRoZSBuZXh0IHVuc2tpcHBhYmxlIGJsb2NrIGFyZSBzZXQKLSAqIGlu IHNraXAtPm5leHRfdW5za2lwcGFibGVfYmxvY2sgYW5kIG5leHRfdW5za2lwcGFibGVfYWxs dmlzLgotICogc2tpcC0+c2tpcHBpbmdfY3VycmVudF9yYW5nZSBpbmRpY2F0ZXMgdG8gdGhl IGNhbGxlciB3aGV0aGVyIG9yIG5vdCBpdCBpcwotICogcHJvY2Vzc2luZyBhIHNraXBwYWJs ZSAoYW5kIHRodXMgYWxsLXZpc2libGUpIGJsb2NrLgorICogaW4gdmFjcmVsLT5za2lwLT5u ZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrIGFuZCBuZXh0X3Vuc2tpcHBhYmxlX2FsbHZpcy4KKyAq CisgKiBUaGUgYmxvY2sgbnVtYmVyIGFuZCB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUgbmV4 dCBibG9jayB0byBwcm9jZXNzIGFyZSBzZXQKKyAqIGluIGJsa25vIGFuZCBhbGxfdmlzaWJs ZV9hY2NvcmRpbmdfdG9fdm0uIGhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxvY2soKQorICog cmV0dXJucyBmYWxzZSBpZiB0aGVyZSBhcmUgbm8gZnVydGhlciBibG9ja3MgdG8gcHJvY2Vz cy4KKyAqCisgKiB2YWNyZWwgaXMgYW4gaW4vb3V0IHBhcmFtZXRlciBoZXJlOyB2YWN1dW0g b3B0aW9ucyBhbmQgaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgKiByZWxhdGlvbiBhcmUgcmVh ZCBhbmQgdmFjcmVsLT5za2lwcGVkYWxsdmlzIGlzIHNldCB0byBlbnN1cmUgd2UgZG9uJ3QK KyAqIGFkdmFuY2UgcmVsZnJvemVueGlkIHdoZW4gd2UgaGF2ZSBza2lwcGVkIHZhY3V1bWlu ZyBhbGwgdmlzaWJsZSBibG9ja3MuCisgKgorICogc2tpcC0+dm1idWZmZXIgd2lsbCBjb250 YWluIHRoZSBibG9jayBmcm9tIHRoZSBWTSBjb250YWluaW5nIHZpc2liaWxpdHkKKyAqIGlu Zm9ybWF0aW9uIGZvciB0aGUgbmV4dCB1bnNraXBwYWJsZSBoZWFwIGJsb2NrLiBXZSBtYXkg ZW5kIHVwIG5lZWRlZCBhCisgKiBkaWZmZXJlbnQgYmxvY2sgZnJvbSB0aGUgVk0gKGlmIHdl IGRlY2lkZSBub3QgdG8gc2tpcCBhIHNraXBwYWJsZSBibG9jaykuCisgKiBUaGlzIGlzIG9r YXk7IHZpc2liaWxpdHltYXBfcGluKCkgd2lsbCB0YWtlIGNhcmUgb2YgdGhpcyB3aGlsZSBw cm9jZXNzaW5nCisgKiB0aGUgYmxvY2suCiAgKgogICogTm90ZTogb3VyIG9waW5pb24gb2Yg d2hpY2ggYmxvY2tzIGNhbiBiZSBza2lwcGVkIGNhbiBnbyBzdGFsZSBpbW1lZGlhdGVseS4K ICAqIEl0J3Mgb2theSBpZiBjYWxsZXIgIm1pc3NlcyIgYSBwYWdlIHdob3NlIGFsbC12aXNp YmxlIG9yIGFsbC1mcm96ZW4gbWFya2luZwpAQCAtMTEyMyw5MSArMTExMCwxMTMgQEAgbGF6 eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICogb2xkZXIgWElEcy9NWElEcy4g IFRoZSB2YWNyZWwtPnNraXBwZWRhbGx2aXMgZmxhZyB3aWxsIGJlIHNldCBoZXJlIHdoZW4g dGhlCiAgKiBjaG9pY2UgdG8gc2tpcCBzdWNoIGEgcmFuZ2UgaXMgYWN0dWFsbHkgbWFkZSwg bWFraW5nIGV2ZXJ5dGhpbmcgc2FmZS4pCiAgKi8KLXN0YXRpYyB2b2lkCi1sYXp5X3NjYW5f c2tpcChMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIG5leHRfYmxvY2spCitzdGF0 aWMgYm9vbAoraGVhcF92YWNfc2Nhbl9nZXRfbmV4dF9ibG9jayhMVlJlbFN0YXRlICp2YWNy ZWwsIEJsb2NrTnVtYmVyIG5leHRfYmxvY2ssCisJCQkJCQkJIEJsb2NrTnVtYmVyICpibGtu bywgYm9vbCAqYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtKQogewotCS8qIFVzZSBsb2Nh bCB2YXJpYWJsZXMgZm9yIGJldHRlciBvcHRpbWl6ZWQgbG9vcCBjb2RlICovCi0JQmxvY2tO dW1iZXIgcmVsX3BhZ2VzID0gdmFjcmVsLT5yZWxfcGFnZXMsCi0JCQkJbmV4dF91bnNraXBw YWJsZV9ibG9jayA9IG5leHRfYmxvY2s7Ci0KIAlib29sCQlza2lwc2FsbHZpcyA9IGZhbHNl OwogCi0JdmFjcmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYWxsdmlzID0gdHJ1ZTsKLQl3 aGlsZSAobmV4dF91bnNraXBwYWJsZV9ibG9jayA8IHJlbF9wYWdlcykKKwlpZiAobmV4dF9i bG9jayA+PSB2YWNyZWwtPnJlbF9wYWdlcykKIAl7Ci0JCXVpbnQ4CQltYXBiaXRzID0gdmlz aWJpbGl0eW1hcF9nZXRfc3RhdHVzKHZhY3JlbC0+cmVsLAotCQkJCQkJCQkJCQkJCSAgIG5l eHRfdW5za2lwcGFibGVfYmxvY2ssCi0JCQkJCQkJCQkJCQkJICAgJnZhY3JlbC0+c2tpcC52 bWJ1ZmZlcik7CisJCSpibGtubyA9IEludmFsaWRCbG9ja051bWJlcjsKKwkJcmV0dXJuIGZh bHNlOworCX0KIAotCQlpZiAoKG1hcGJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF KSA9PSAwKQorCWlmICh2YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9ibG9jayA9PSBJ bnZhbGlkQmxvY2tOdW1iZXIgfHwKKwkJbmV4dF9ibG9jayA+IHZhY3JlbC0+c2tpcC5uZXh0 X3Vuc2tpcHBhYmxlX2Jsb2NrKQorCXsKKwkJLyogVXNlIGxvY2FsIHZhcmlhYmxlcyBmb3Ig YmV0dGVyIG9wdGltaXplZCBsb29wIGNvZGUgKi8KKwkJQmxvY2tOdW1iZXIgcmVsX3BhZ2Vz ID0gdmFjcmVsLT5yZWxfcGFnZXM7CisJCUJsb2NrTnVtYmVyIG5leHRfdW5za2lwcGFibGVf YmxvY2sgPSB2YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9ibG9jazsKKworCQl3aGls ZSAoKytuZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrIDwgcmVsX3BhZ2VzKQogCQl7Ci0JCQlBc3Nl cnQoKG1hcGJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pID09IDApOwotCQkJdmFj cmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYWxsdmlzID0gZmFsc2U7Ci0JCQlicmVhazsK LQkJfQorCQkJdWludDgJCW1hcGJpdHMgPSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXModmFj cmVsLT5yZWwsCisJCQkJCQkJCQkJCQkJCSAgIG5leHRfdW5za2lwcGFibGVfYmxvY2ssCisJ CQkJCQkJCQkJCQkJCSAgICZ2YWNyZWwtPnNraXAudm1idWZmZXIpOwogCi0JCS8qCi0JCSAq IENhbGxlciBtdXN0IHNjYW4gdGhlIGxhc3QgcGFnZSB0byBkZXRlcm1pbmUgd2hldGhlciBp dCBoYXMgdHVwbGVzCi0JCSAqIChjYWxsZXIgbXVzdCBoYXZlIHRoZSBvcHBvcnR1bml0eSB0 byBzZXQgdmFjcmVsLT5ub25lbXB0eV9wYWdlcykuCi0JCSAqIFRoaXMgcnVsZSBhdm9pZHMg aGF2aW5nIGxhenlfdHJ1bmNhdGVfaGVhcCgpIHRha2UgYWNjZXNzLWV4Y2x1c2l2ZQotCQkg KiBsb2NrIG9uIHJlbCB0byBhdHRlbXB0IGEgdHJ1bmNhdGlvbiB0aGF0IGZhaWxzIGFueXdh eSwganVzdCBiZWNhdXNlCi0JCSAqIHRoZXJlIGFyZSB0dXBsZXMgb24gdGhlIGxhc3QgcGFn ZSAoaXQgaXMgbGlrZWx5IHRoYXQgdGhlcmUgd2lsbCBiZQotCQkgKiB0dXBsZXMgb24gb3Ro ZXIgbmVhcmJ5IHBhZ2VzIGFzIHdlbGwsIGJ1dCB0aG9zZSBjYW4gYmUgc2tpcHBlZCkuCi0J CSAqCi0JCSAqIEltcGxlbWVudCB0aGlzIGJ5IGFsd2F5cyB0cmVhdGluZyB0aGUgbGFzdCBi bG9jayBhcyB1bnNhZmUgdG8gc2tpcC4KLQkJICovCi0JCWlmIChuZXh0X3Vuc2tpcHBhYmxl X2Jsb2NrID09IHJlbF9wYWdlcyAtIDEpCi0JCQlicmVhazsKKwkJCXZhY3JlbC0+c2tpcC5u ZXh0X3Vuc2tpcHBhYmxlX2FsbHZpcyA9IG1hcGJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9W SVNJQkxFOwogCi0JCS8qIERJU0FCTEVfUEFHRV9TS0lQUElORyBtYWtlcyBhbGwgc2tpcHBp bmcgdW5zYWZlICovCi0JCWlmICghdmFjcmVsLT5za2lwd2l0aHZtKQotCQl7Ci0JCQkvKiBD YWxsZXIgc2hvdWxkbid0IHJlbHkgb24gYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtICov Ci0JCQl2YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9hbGx2aXMgPSBmYWxzZTsKLQkJ CWJyZWFrOwotCQl9CisJCQlpZiAoIXZhY3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBhYmxlX2Fs bHZpcykKKwkJCXsKKwkJCQlBc3NlcnQoKG1hcGJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9G Uk9aRU4pID09IDApOworCQkJCWJyZWFrOworCQkJfQogCi0JCS8qCi0JCSAqIEFnZ3Jlc3Np dmUgVkFDVVVNIGNhbGxlciBjYW4ndCBza2lwIHBhZ2VzIGp1c3QgYmVjYXVzZSB0aGV5IGFy ZQotCQkgKiBhbGwtdmlzaWJsZS4gIFRoZXkgbWF5IHN0aWxsIHNraXAgYWxsLWZyb3plbiBw YWdlcywgd2hpY2ggY2FuJ3QKLQkJICogY29udGFpbiBYSURzIDwgT2xkZXN0WG1pbiAoWElE cyB0aGF0IGFyZW4ndCBhbHJlYWR5IGZyb3plbiBieSBub3cpLgotCQkgKi8KLQkJaWYgKCht YXBiaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAwKQotCQl7Ci0JCQlpZiAo dmFjcmVsLT5hZ2dyZXNzaXZlKQorCQkJLyoKKwkJCSAqIENhbGxlciBtdXN0IHNjYW4gdGhl IGxhc3QgcGFnZSB0byBkZXRlcm1pbmUgd2hldGhlciBpdCBoYXMKKwkJCSAqIHR1cGxlcyAo Y2FsbGVyIG11c3QgaGF2ZSB0aGUgb3Bwb3J0dW5pdHkgdG8gc2V0CisJCQkgKiB2YWNyZWwt Pm5vbmVtcHR5X3BhZ2VzKS4gVGhpcyBydWxlIGF2b2lkcyBoYXZpbmcKKwkJCSAqIGxhenlf dHJ1bmNhdGVfaGVhcCgpIHRha2UgYWNjZXNzLWV4Y2x1c2l2ZSBsb2NrIG9uIHJlbCB0bwor CQkJICogYXR0ZW1wdCBhIHRydW5jYXRpb24gdGhhdCBmYWlscyBhbnl3YXksIGp1c3QgYmVj YXVzZSB0aGVyZSBhcmUKKwkJCSAqIHR1cGxlcyBvbiB0aGUgbGFzdCBwYWdlIChpdCBpcyBs aWtlbHkgdGhhdCB0aGVyZSB3aWxsIGJlIHR1cGxlcworCQkJICogb24gb3RoZXIgbmVhcmJ5 IHBhZ2VzIGFzIHdlbGwsIGJ1dCB0aG9zZSBjYW4gYmUgc2tpcHBlZCkuCisJCQkgKgorCQkJ ICogSW1wbGVtZW50IHRoaXMgYnkgYWx3YXlzIHRyZWF0aW5nIHRoZSBsYXN0IGJsb2NrIGFz IHVuc2FmZSB0bworCQkJICogc2tpcC4KKwkJCSAqLworCQkJaWYgKG5leHRfdW5za2lwcGFi bGVfYmxvY2sgPT0gcmVsX3BhZ2VzIC0gMSkKIAkJCQlicmVhazsKIAorCQkJLyogRElTQUJM RV9QQUdFX1NLSVBQSU5HIG1ha2VzIGFsbCBza2lwcGluZyB1bnNhZmUgKi8KKwkJCWlmICgh dmFjcmVsLT5za2lwd2l0aHZtKQorCQkJeworCQkJCS8qIENhbGxlciBzaG91bGRuJ3QgcmVs eSBvbiBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gKi8KKwkJCQl2YWNyZWwtPnNraXAu bmV4dF91bnNraXBwYWJsZV9hbGx2aXMgPSBmYWxzZTsKKwkJCQlicmVhazsKKwkJCX0KKwog CQkJLyoKLQkJCSAqIEFsbC12aXNpYmxlIGJsb2NrIGlzIHNhZmUgdG8gc2tpcCBpbiBub24t YWdncmVzc2l2ZSBjYXNlLiAgQnV0Ci0JCQkgKiByZW1lbWJlciB0aGF0IHRoZSBmaW5hbCBy YW5nZSBjb250YWlucyBzdWNoIGEgYmxvY2sgZm9yIGxhdGVyLgorCQkJICogQWdncmVzc2l2 ZSBWQUNVVU0gY2FsbGVyIGNhbid0IHNraXAgcGFnZXMganVzdCBiZWNhdXNlIHRoZXkgYXJl CisJCQkgKiBhbGwtdmlzaWJsZS4gIFRoZXkgbWF5IHN0aWxsIHNraXAgYWxsLWZyb3plbiBw YWdlcywgd2hpY2ggY2FuJ3QKKwkJCSAqIGNvbnRhaW4gWElEcyA8IE9sZGVzdFhtaW4gKFhJ RHMgdGhhdCBhcmVuJ3QgYWxyZWFkeSBmcm96ZW4gYnkKKwkJCSAqIG5vdykuCiAJCQkgKi8K LQkJCXNraXBzYWxsdmlzID0gdHJ1ZTsKKwkJCWlmICgobWFwYml0cyAmIFZJU0lCSUxJVFlN QVBfQUxMX0ZST1pFTikgPT0gMCkKKwkJCXsKKwkJCQlpZiAodmFjcmVsLT5hZ2dyZXNzaXZl KQorCQkJCQlicmVhazsKKworCQkJCS8qCisJCQkJICogQWxsLXZpc2libGUgYmxvY2sgaXMg c2FmZSB0byBza2lwIGluIG5vbi1hZ2dyZXNzaXZlIGNhc2UuCisJCQkJICogQnV0IHJlbWVt YmVyIHRoYXQgdGhlIGZpbmFsIHJhbmdlIGNvbnRhaW5zIHN1Y2ggYSBibG9jayBmb3IKKwkJ CQkgKiBsYXRlci4KKwkJCQkgKi8KKwkJCQlza2lwc2FsbHZpcyA9IHRydWU7CisJCQl9CisK KwkJCXZhY3V1bV9kZWxheV9wb2ludCgpOwogCQl9CiAKLQkJdmFjdXVtX2RlbGF5X3BvaW50 KCk7Ci0JCW5leHRfdW5za2lwcGFibGVfYmxvY2srKzsKLQl9CisJCXZhY3JlbC0+c2tpcC5u ZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrID0gbmV4dF91bnNraXBwYWJsZV9ibG9jazsKIAotCXZh Y3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrID0gbmV4dF91bnNraXBwYWJsZV9i bG9jazsKKwkJLyoKKwkJICogV2Ugb25seSBza2lwIGEgcmFuZ2Ugd2l0aCBhdCBsZWFzdCBT S0lQX1BBR0VTX1RIUkVTSE9MRCBjb25zZWN1dGl2ZQorCQkgKiBwYWdlcy4gIFNpbmNlIHdl J3JlIHJlYWRpbmcgc2VxdWVudGlhbGx5LCB0aGUgT1Mgc2hvdWxkIGJlIGRvaW5nCisJCSAq IHJlYWRhaGVhZCBmb3IgdXMsIHNvIHRoZXJlJ3Mgbm8gZ2FpbiBpbiBza2lwcGluZyBhIHBh Z2Ugbm93IGFuZAorCQkgKiB0aGVuLiBTa2lwcGluZyBzdWNoIGEgcmFuZ2UgbWlnaHQgZXZl biBkaXNjb3VyYWdlIHNlcXVlbnRpYWwKKwkJICogZGV0ZWN0aW9uLgorCQkgKgorCQkgKiBU aGlzIHRlc3QgYWxzbyBlbmFibGVzIG1vcmUgZnJlcXVlbnQgcmVsZnJvemVueGlkIGFkdmFu Y2VtZW50CisJCSAqIGR1cmluZyBub24tYWdncmVzc2l2ZSBWQUNVVU1zLiAgSWYgdGhlIHJh bmdlIGhhcyBhbnkgYWxsLXZpc2libGUKKwkJICogcGFnZXMgdGhlbiBza2lwcGluZyBtYWtl cyB1cGRhdGluZyByZWxmcm96ZW54aWQgdW5zYWZlLCB3aGljaCBpcyBhCisJCSAqIHJlYWwg ZG93bnNpZGUuCisJCSAqLworCQlpZiAodmFjcmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVf YmxvY2sgLSBuZXh0X2Jsb2NrID49IFNLSVBfUEFHRVNfVEhSRVNIT0xEKQorCQl7CisJCQlu ZXh0X2Jsb2NrID0gdmFjcmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYmxvY2s7CisJCQlp ZiAoc2tpcHNhbGx2aXMpCisJCQkJdmFjcmVsLT5za2lwcGVkYWxsdmlzID0gdHJ1ZTsKKwkJ fQorCX0KIAotCS8qCi0JICogV2Ugb25seSBza2lwIGEgcmFuZ2Ugd2l0aCBhdCBsZWFzdCBT S0lQX1BBR0VTX1RIUkVTSE9MRCBjb25zZWN1dGl2ZQotCSAqIHBhZ2VzLiAgU2luY2Ugd2Un cmUgcmVhZGluZyBzZXF1ZW50aWFsbHksIHRoZSBPUyBzaG91bGQgYmUgZG9pbmcKLQkgKiBy ZWFkYWhlYWQgZm9yIHVzLCBzbyB0aGVyZSdzIG5vIGdhaW4gaW4gc2tpcHBpbmcgYSBwYWdl IG5vdyBhbmQgdGhlbi4KLQkgKiBTa2lwcGluZyBzdWNoIGEgcmFuZ2UgbWlnaHQgZXZlbiBk aXNjb3VyYWdlIHNlcXVlbnRpYWwgZGV0ZWN0aW9uLgotCSAqCi0JICogVGhpcyB0ZXN0IGFs c28gZW5hYmxlcyBtb3JlIGZyZXF1ZW50IHJlbGZyb3plbnhpZCBhZHZhbmNlbWVudCBkdXJp bmcKLQkgKiBub24tYWdncmVzc2l2ZSBWQUNVVU1zLiAgSWYgdGhlIHJhbmdlIGhhcyBhbnkg YWxsLXZpc2libGUgcGFnZXMgdGhlbgotCSAqIHNraXBwaW5nIG1ha2VzIHVwZGF0aW5nIHJl bGZyb3plbnhpZCB1bnNhZmUsIHdoaWNoIGlzIGEgcmVhbCBkb3duc2lkZS4KLQkgKi8KLQlp ZiAodmFjcmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYmxvY2sgLSBuZXh0X2Jsb2NrIDwg U0tJUF9QQUdFU19USFJFU0hPTEQpCi0JCXZhY3JlbC0+c2tpcC5za2lwcGluZ19jdXJyZW50 X3JhbmdlID0gZmFsc2U7CisJaWYgKG5leHRfYmxvY2sgPT0gdmFjcmVsLT5za2lwLm5leHRf dW5za2lwcGFibGVfYmxvY2spCisJCSphbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gPSB2 YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9hbGx2aXM7CiAJZWxzZQotCXsKLQkJdmFj cmVsLT5za2lwLnNraXBwaW5nX2N1cnJlbnRfcmFuZ2UgPSB0cnVlOwotCQlpZiAoc2tpcHNh bGx2aXMpCi0JCQl2YWNyZWwtPnNraXBwZWRhbGx2aXMgPSB0cnVlOwotCX0KKwkJKmFsbF92 aXNpYmxlX2FjY29yZGluZ190b192bSA9IHRydWU7CisKKwkqYmxrbm8gPSBuZXh0X2Jsb2Nr OworCXJldHVybiB0cnVlOwogfQogCiAvKgotLSAKMi4zOS4yCgo= --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/x-patch; charset=UTF-8; name="v6-0004-Remove-unneeded-vacuum_delay_point-from-heap_vac_.patch" Content-Disposition: attachment; filename*0="v6-0004-Remove-unneeded-vacuum_delay_point-from-heap_vac_.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwMjZhZjNkNGIxOWZlYWJlYThlZDc4Nzk1YzY0YjMyNzhmYTkzZDdmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2Vt YW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDMxIERlYyAyMDIzIDEyOjQ5OjU2IC0wNTAwClN1 YmplY3Q6IFtQQVRDSCB2NiA0LzldIFJlbW92ZSB1bm5lZWRlZCB2YWN1dW1fZGVsYXlfcG9p bnQgZnJvbQogaGVhcF92YWNfc2Nhbl9nZXRfbmV4dF9ibG9jawoKaGVhcF92YWNfc2Nhbl9n ZXRfbmV4dF9ibG9jaygpIGRvZXMgcmVsYXRpdmVseSBsaXR0bGUgd29yaywgc28gdGhlcmUg aXMKbm8gbmVlZCB0byBjYWxsIHZhY3V1bV9kZWxheV9wb2ludCgpLiBBIGZ1dHVyZSBjb21t aXQgd2lsbCBjYWxsCmhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxvY2soKSBmcm9tIGEgY2Fs bGJhY2ssIGFuZCB3ZSB3b3VsZCBsaWtlIHRvCmF2b2lkIGNhbGxpbmcgdmFjdXVtX2RlbGF5 X3BvaW50KCkgaW4gdGhhdCBjYWxsYmFjay4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgfCAyIC0tCiAxIGZpbGUgY2hhbmdlZCwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggOTlkMTYwMzM1ZTEu LjY1ZDI1N2FhYjgzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBA IC0xMTg0LDggKzExODQsNiBAQCBoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKExWUmVs U3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgbmV4dF9ibG9jaywKIAkJCQkgKi8KIAkJCQlz a2lwc2FsbHZpcyA9IHRydWU7CiAJCQl9Ci0KLQkJCXZhY3V1bV9kZWxheV9wb2ludCgpOwog CQl9CiAKIAkJdmFjcmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYmxvY2sgPSBuZXh0X3Vu c2tpcHBhYmxlX2Jsb2NrOwotLSAKMi4zOS4yCgo= --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/x-patch; charset=UTF-8; name="v6-0005-Remove-unused-skipping_current_range-field.patch" Content-Disposition: attachment; filename="v6-0005-Remove-unused-skipping_current_range-field.patch" Content-Transfer-Encoding: base64 RnJvbSBiNDA0N2I5NDExODJhZjA2NDM4MzhmZGUwNTZjMjk4ZDVjYzNhZTMyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAyMDoxMzo0MiArMDIwMApT dWJqZWN0OiBbUEFUQ0ggdjYgNS85XSBSZW1vdmUgdW51c2VkICdza2lwcGluZ19jdXJyZW50 X3JhbmdlJyBmaWVsZAoKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMgfCAyIC0tCiAxIGZpbGUgY2hhbmdlZCwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNjVkMjU3YWFiODMuLjUxMzkxODcwYmYz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0yMTcsOCArMjE3 LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZSZWxTdGF0ZQogCQlCdWZmZXIJCXZtYnVmZmVyOwog CQkvKiBOZXh0IHVuc2tpcHBhYmxlIGJsb2NrJ3MgdmlzaWJpbGl0eSBzdGF0dXMgKi8KIAkJ Ym9vbAkJbmV4dF91bnNraXBwYWJsZV9hbGx2aXM7Ci0JCS8qIFdoZXRoZXIgb3Igbm90IHNr aXBwYWJsZSBibG9ja3Mgc2hvdWxkIGJlIHNraXBwZWQgKi8KLQkJYm9vbAkJc2tpcHBpbmdf Y3VycmVudF9yYW5nZTsKIAl9CQkJc2tpcDsKIH0gTFZSZWxTdGF0ZTsKIAotLSAKMi4zOS4y Cgo= --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/x-patch; charset=UTF-8; name="v6-0006-Move-vmbuffer-back-to-a-local-varible-in-lazy_sca.patch" Content-Disposition: attachment; filename*0="v6-0006-Move-vmbuffer-back-to-a-local-varible-in-lazy_sca.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyN2U0MzFlOGRjNjliYmYwOWQ4MzFjYjFjZjI5MDNkMTZmMTc3ZDc0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAyMDo1ODo1NyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggdjYgNi85XSBNb3ZlIHZtYnVmZmVyIGJhY2sgdG8gYSBsb2NhbCB2 YXJpYmxlIGluCiBsYXp5X3NjYW5faGVhcCgpCgpJdCBmZWx0IGNvbmZ1c2luZyB0aGF0IHdl IHBhc3NlZCBhcm91bmQgdGhlIGN1cnJlbnQgYmxvY2ssICdibGtubycsIGFzCmFuIGFyZ3Vt ZW50IHRvIGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkoKSBhbmQgbGF6eV9zY2FuX3BydW5lKCks IGJ1dAondm1idWZmZXInIHdhcyBhY2Nlc3NlZCBkaXJlY3RseSBpbiB0aGUgJ3NjYW5fc3Rh dGUnLgoKSXQgd2FzIGFsc28gYSBiaXQgdmFndWUsIHdoZW4gZXhhY3RseSAndm1idWZmZXIn IHdhcyB2YWxpZC4gQ2FsbGluZwpoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKCkgc2V0 IGl0LCBzb21ldGltZXMsIHRvIGEgYnVmZmVyIHRoYXQKbWlnaHQgb3IgbWlnaHQgbm90IGNv bnRhaW4gdGhlIFZNIGJpdCBmb3IgJ2Jsa25vJy4gQnV0IG90aGVyCmZ1bmN0aW9ucywgbGlr ZSBsYXp5X3NjYW5fcHJ1bmUoKSwgYXNzdW1lZCBpdCB0byBjb250YWluIHRoZSBjb3JyZWN0 CmJ1ZmZlci4gVGhhdCB3YXMgZml4ZWQgdXAgdmlzaWJpbGl0eW1hcF9waW4oKS4gQnV0IGNs ZWFybHkgaXQgd2FzIG5vdAoib3duZWQiIGJ5IGhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxv Y2soKSwgbGlrZSB0aGUgb3RoZXIgJ3NjYW5fc3RhdGUnCmZpZWxkcy4KCkkgbW92ZWQgaXQg YmFjayB0byBhIGxvY2FsIHZhcmlhYmxlLCBsaWtlIGl0IHdhcy4gTWF5YmUgdGhlcmUgd291 bGQgYmUKZXZlbiBiZXR0ZXIgd2F5cyB0byBoYW5kbGUgaXQsIGJ1dCBhdCBsZWFzdCB0aGlz IGlzIG5vdCB3b3JzZSB0aGFuCndoYXQgd2UgaGF2ZSBpbiBtYXN0ZXIgY3VycmVudGx5Lgot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8IDcyICsrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCsp LCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMK aW5kZXggNTEzOTE4NzBiZjMuLjNmMTY2MWNlYTYxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jCkBAIC0yMTMsOCArMjEzLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZS ZWxTdGF0ZQogCXsKIAkJLyogTmV4dCB1bnNraXBwYWJsZSBibG9jayAqLwogCQlCbG9ja051 bWJlciBuZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrOwotCQkvKiBCdWZmZXIgY29udGFpbmluZyBu ZXh0IHVuc2tpcHBhYmxlIGJsb2NrJ3MgdmlzaWJpbGl0eSBpbmZvICovCi0JCUJ1ZmZlcgkJ dm1idWZmZXI7CiAJCS8qIE5leHQgdW5za2lwcGFibGUgYmxvY2sncyB2aXNpYmlsaXR5IHN0 YXR1cyAqLwogCQlib29sCQluZXh0X3Vuc2tpcHBhYmxlX2FsbHZpczsKIAl9CQkJc2tpcDsK QEAgLTIzMiwxMyArMjMwLDE0IEBAIHR5cGVkZWYgc3RydWN0IExWU2F2ZWRFcnJJbmZvCiBz dGF0aWMgdm9pZCBsYXp5X3NjYW5faGVhcChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGlj IGJvb2wgaGVhcF92YWNfc2Nhbl9nZXRfbmV4dF9ibG9jayhMVlJlbFN0YXRlICp2YWNyZWws IEJsb2NrTnVtYmVyIG5leHRfYmxvY2ssCiAJCQkJCQkJCQkJIEJsb2NrTnVtYmVyICpibGtu bywKLQkJCQkJCQkJCQkgYm9vbCAqYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtKTsKKwkJ CQkJCQkJCQkgYm9vbCAqYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLAorCQkJCQkJCQkJ CSBCdWZmZXIgKnZtYnVmZmVyKTsKIHN0YXRpYyBib29sIGxhenlfc2Nhbl9uZXdfb3JfZW1w dHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCQkgICBCbG9ja051 bWJlciBibGtubywgUGFnZSBwYWdlLAotCQkJCQkJCQkgICBib29sIHNoYXJlbG9jayk7CisJ CQkJCQkJCSAgIGJvb2wgc2hhcmVsb2NrLCBCdWZmZXIgdm1idWZmZXIpOwogc3RhdGljIHZv aWQgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKIAkJ CQkJCQlCbG9ja051bWJlciBibGtubywgUGFnZSBwYWdlLAotCQkJCQkJCWJvb2wgYWxsX3Zp c2libGVfYWNjb3JkaW5nX3RvX3ZtLAorCQkJCQkJCUJ1ZmZlciB2bWJ1ZmZlciwgYm9vbCBh bGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sCiAJCQkJCQkJYm9vbCAqaGFzX2xwZGVhZF9p dGVtcyk7CiBzdGF0aWMgYm9vbCBsYXp5X3NjYW5fbm9wcnVuZShMVlJlbFN0YXRlICp2YWNy ZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJICBCbG9ja051bWJlciBibGtubywgUGFnZSBwYWdl LApAQCAtODE1LDExICs4MTQsMTAgQEAgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFj cmVsKQogewogCUJsb2NrTnVtYmVyIHJlbF9wYWdlcyA9IHZhY3JlbC0+cmVsX3BhZ2VzLAog CQkJCW5leHRfZnNtX2Jsb2NrX3RvX3ZhY3V1bSA9IDA7Ci0JYm9vbAkJYWxsX3Zpc2libGVf YWNjb3JkaW5nX3RvX3ZtOwotCi0JLyogcmVsaWVzIG9uIEludmFsaWRCbG9ja051bWJlciBv dmVyZmxvd2luZyB0byAwICovCi0JQmxvY2tOdW1iZXIgYmxrbm8gPSBJbnZhbGlkQmxvY2tO dW1iZXI7CiAJVmFjRGVhZEl0ZW1zICpkZWFkX2l0ZW1zID0gdmFjcmVsLT5kZWFkX2l0ZW1z OworCUJsb2NrTnVtYmVyIGJsa25vOworCWJvb2wJCWFsbF92aXNpYmxlX2FjY29yZGluZ190 b192bTsKKwlCdWZmZXIJCXZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIAljb25zdCBpbnQJ aW5pdHByb2dfaW5kZXhbXSA9IHsKIAkJUFJPR1JFU1NfVkFDVVVNX1BIQVNFLAogCQlQUk9H UkVTU19WQUNVVU1fVE9UQUxfSEVBUF9CTEtTLApAQCAtODM0LDEwICs4MzIsOSBAQCBsYXp5 X3NjYW5faGVhcChMVlJlbFN0YXRlICp2YWNyZWwpCiAJcGdzdGF0X3Byb2dyZXNzX3VwZGF0 ZV9tdWx0aV9wYXJhbSgzLCBpbml0cHJvZ19pbmRleCwgaW5pdHByb2dfdmFsKTsKIAogCXZh Y3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrID0gSW52YWxpZEJsb2NrTnVtYmVy OwotCXZhY3JlbC0+c2tpcC52bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAKIAl3aGlsZSAo aGVhcF92YWNfc2Nhbl9nZXRfbmV4dF9ibG9jayh2YWNyZWwsIGJsa25vICsgMSwKLQkJCQkJ CQkJCQkmYmxrbm8sICZhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0pKQorCQkJCQkJCQkJ CSZibGtubywgJmFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSwgJnZtYnVmZmVyKSkKIAl7 CiAJCUJ1ZmZlcgkJYnVmOwogCQlQYWdlCQlwYWdlOwpAQCAtODgwLDEwICs4NzcsMTAgQEAg bGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCQkJICogY29ycmVjdG5lc3Ms IGJ1dCB3ZSBkbyBpdCBhbnl3YXkgdG8gYXZvaWQgaG9sZGluZyB0aGUgcGluCiAJCQkgKiBh Y3Jvc3MgYSBsZW5ndGh5LCB1bnJlbGF0ZWQgb3BlcmF0aW9uLgogCQkJICovCi0JCQlpZiAo QnVmZmVySXNWYWxpZCh2YWNyZWwtPnNraXAudm1idWZmZXIpKQorCQkJaWYgKEJ1ZmZlcklz VmFsaWQodm1idWZmZXIpKQogCQkJewotCQkJCVJlbGVhc2VCdWZmZXIodmFjcmVsLT5za2lw LnZtYnVmZmVyKTsKLQkJCQl2YWNyZWwtPnNraXAudm1idWZmZXIgPSBJbnZhbGlkQnVmZmVy OworCQkJCVJlbGVhc2VCdWZmZXIodm1idWZmZXIpOworCQkJCXZtYnVmZmVyID0gSW52YWxp ZEJ1ZmZlcjsKIAkJCX0KIAogCQkJLyogUGVyZm9ybSBhIHJvdW5kIG9mIGluZGV4IGFuZCBo ZWFwIHZhY3V1bWluZyAqLwpAQCAtOTA4LDcgKzkwNSw3IEBAIGxhenlfc2Nhbl9oZWFwKExW UmVsU3RhdGUgKnZhY3JlbCkKIAkJICogYWxsLXZpc2libGUuICBJbiBtb3N0IGNhc2VzIHRo aXMgd2lsbCBiZSB2ZXJ5IGNoZWFwLCBiZWNhdXNlIHdlJ2xsCiAJCSAqIGFscmVhZHkgaGF2 ZSB0aGUgY29ycmVjdCBwYWdlIHBpbm5lZCBhbnl3YXkuCiAJCSAqLwotCQl2aXNpYmlsaXR5 bWFwX3Bpbih2YWNyZWwtPnJlbCwgYmxrbm8sICZ2YWNyZWwtPnNraXAudm1idWZmZXIpOwor CQl2aXNpYmlsaXR5bWFwX3Bpbih2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcik7CiAK IAkJYnVmID0gUmVhZEJ1ZmZlckV4dGVuZGVkKHZhY3JlbC0+cmVsLCBNQUlOX0ZPUktOVU0s IGJsa25vLCBSQk1fTk9STUFMLAogCQkJCQkJCQkgdmFjcmVsLT5ic3RyYXRlZ3kpOwpAQCAt OTI2LDcgKzkyMyw4IEBAIGxhenlfc2Nhbl9oZWFwKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJ CUxvY2tCdWZmZXIoYnVmLCBCVUZGRVJfTE9DS19TSEFSRSk7CiAKIAkJLyogQ2hlY2sgZm9y IG5ldyBvciBlbXB0eSBwYWdlcyBiZWZvcmUgbGF6eV9zY2FuX1tub11wcnVuZSBjYWxsICov Ci0JCWlmIChsYXp5X3NjYW5fbmV3X29yX2VtcHR5KHZhY3JlbCwgYnVmLCBibGtubywgcGFn ZSwgIWdvdF9jbGVhbnVwX2xvY2spKQorCQlpZiAobGF6eV9zY2FuX25ld19vcl9lbXB0eSh2 YWNyZWwsIGJ1ZiwgYmxrbm8sIHBhZ2UsICFnb3RfY2xlYW51cF9sb2NrLAorCQkJCQkJCQkg ICB2bWJ1ZmZlcikpCiAJCXsKIAkJCS8qIFByb2Nlc3NlZCBhcyBuZXcvZW1wdHkgcGFnZSAo bG9jayBhbmQgcGluIHJlbGVhc2VkKSAqLwogCQkJY29udGludWU7CkBAIC05NjgsNyArOTY2 LDcgQEAgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCQkgKi8KIAkJaWYg KGdvdF9jbGVhbnVwX2xvY2spCiAJCQlsYXp5X3NjYW5fcHJ1bmUodmFjcmVsLCBidWYsIGJs a25vLCBwYWdlLAotCQkJCQkJCWFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSwKKwkJCQkJ CQl2bWJ1ZmZlciwgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLAogCQkJCQkJCSZoYXNf bHBkZWFkX2l0ZW1zKTsKIAogCQkvKgpAQCAtMTAxOCwxMSArMTAxNiw4IEBAIGxhenlfc2Nh bl9oZWFwKExWUmVsU3RhdGUgKnZhY3JlbCkKIAl9CiAKIAl2YWNyZWwtPmJsa25vID0gSW52 YWxpZEJsb2NrTnVtYmVyOwotCWlmIChCdWZmZXJJc1ZhbGlkKHZhY3JlbC0+c2tpcC52bWJ1 ZmZlcikpCi0JewotCQlSZWxlYXNlQnVmZmVyKHZhY3JlbC0+c2tpcC52bWJ1ZmZlcik7Ci0J CXZhY3JlbC0+c2tpcC52bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7Ci0JfQorCWlmIChCdWZm ZXJJc1ZhbGlkKHZtYnVmZmVyKSkKKwkJUmVsZWFzZUJ1ZmZlcih2bWJ1ZmZlcik7CiAKIAkv KiByZXBvcnQgdGhhdCBldmVyeXRoaW5nIGlzIG5vdyBzY2FubmVkICovCiAJcGdzdGF0X3By b2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19WQUNVVU1fSEVBUF9CTEtTX1NDQU5ORUQs IGJsa25vKTsKQEAgLTEwOTQsNyArMTA4OSw3IEBAIGxhenlfc2Nhbl9oZWFwKExWUmVsU3Rh dGUgKnZhY3JlbCkKICAqIHJlbGF0aW9uIGFyZSByZWFkIGFuZCB2YWNyZWwtPnNraXBwZWRh bGx2aXMgaXMgc2V0IHRvIGVuc3VyZSB3ZSBkb24ndAogICogYWR2YW5jZSByZWxmcm96ZW54 aWQgd2hlbiB3ZSBoYXZlIHNraXBwZWQgdmFjdXVtaW5nIGFsbCB2aXNpYmxlIGJsb2Nrcy4K ICAqCi0gKiBza2lwLT52bWJ1ZmZlciB3aWxsIGNvbnRhaW4gdGhlIGJsb2NrIGZyb20gdGhl IFZNIGNvbnRhaW5pbmcgdmlzaWJpbGl0eQorICogdm1idWZmZXIgd2lsbCBjb250YWluIHRo ZSBibG9jayBmcm9tIHRoZSBWTSBjb250YWluaW5nIHZpc2liaWxpdHkKICAqIGluZm9ybWF0 aW9uIGZvciB0aGUgbmV4dCB1bnNraXBwYWJsZSBoZWFwIGJsb2NrLiBXZSBtYXkgZW5kIHVw IG5lZWRlZCBhCiAgKiBkaWZmZXJlbnQgYmxvY2sgZnJvbSB0aGUgVk0gKGlmIHdlIGRlY2lk ZSBub3QgdG8gc2tpcCBhIHNraXBwYWJsZSBibG9jaykuCiAgKiBUaGlzIGlzIG9rYXk7IHZp c2liaWxpdHltYXBfcGluKCkgd2lsbCB0YWtlIGNhcmUgb2YgdGhpcyB3aGlsZSBwcm9jZXNz aW5nCkBAIC0xMTEwLDcgKzExMDUsNyBAQCBsYXp5X3NjYW5faGVhcChMVlJlbFN0YXRlICp2 YWNyZWwpCiAgKi8KIHN0YXRpYyBib29sCiBoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2Nr KExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgbmV4dF9ibG9jaywKLQkJCQkJCQkg QmxvY2tOdW1iZXIgKmJsa25vLCBib29sICphbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0p CisJCQkJCQkJIEJsb2NrTnVtYmVyICpibGtubywgYm9vbCAqYWxsX3Zpc2libGVfYWNjb3Jk aW5nX3RvX3ZtLCBCdWZmZXIgKnZtYnVmZmVyKQogewogCWJvb2wJCXNraXBzYWxsdmlzID0g ZmFsc2U7CiAKQEAgLTExMzEsNyArMTEyNiw3IEBAIGhlYXBfdmFjX3NjYW5fZ2V0X25leHRf YmxvY2soTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBuZXh0X2Jsb2NrLAogCQl7 CiAJCQl1aW50OAkJbWFwYml0cyA9IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyh2YWNyZWwt PnJlbCwKIAkJCQkJCQkJCQkJCQkJICAgbmV4dF91bnNraXBwYWJsZV9ibG9jaywKLQkJCQkJ CQkJCQkJCQkJICAgJnZhY3JlbC0+c2tpcC52bWJ1ZmZlcik7CisJCQkJCQkJCQkJCQkJCSAg IHZtYnVmZmVyKTsKIAogCQkJdmFjcmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYWxsdmlz ID0gbWFwYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CiAKQEAgLTEyNDUsNyAr MTI0MCw3IEBAIGhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxvY2soTFZSZWxTdGF0ZSAqdmFj cmVsLCBCbG9ja051bWJlciBuZXh0X2Jsb2NrLAogICovCiBzdGF0aWMgYm9vbAogbGF6eV9z Y2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2Nr TnVtYmVyIGJsa25vLAotCQkJCQkgICBQYWdlIHBhZ2UsIGJvb2wgc2hhcmVsb2NrKQorCQkJ CQkgICBQYWdlIHBhZ2UsIGJvb2wgc2hhcmVsb2NrLCBCdWZmZXIgdm1idWZmZXIpCiB7CiAJ U2l6ZQkJZnJlZXNwYWNlOwogCkBAIC0xMzMxLDcgKzEzMjYsNyBAQCBsYXp5X3NjYW5fbmV3 X29yX2VtcHR5KExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwgQmxvY2tOdW1iZXIg Ymxrbm8sCiAKIAkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwogCQkJdmlzaWJpbGl0eW1h cF9zZXQodmFjcmVsLT5yZWwsIGJsa25vLCBidWYsIEludmFsaWRYTG9nUmVjUHRyLAotCQkJ CQkJCSAgdmFjcmVsLT5za2lwLnZtYnVmZmVyLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKKwkJ CQkJCQkgIHZtYnVmZmVyLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKIAkJCQkJCQkgIFZJU0lC SUxJVFlNQVBfQUxMX1ZJU0lCTEUgfCBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwogCQkJ RU5EX0NSSVRfU0VDVElPTigpOwogCQl9CkBAIC0xMzY3LDExICsxMzYyLDEwIEBAIGxhenlf c2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9j a051bWJlciBibGtubywKICAqIGFueSB0dXBsZSB0aGF0IGJlY29tZXMgZGVhZCBhZnRlciB0 aGUgY2FsbCB0byBoZWFwX3BhZ2VfcHJ1bmUoKSBjYW4ndCBuZWVkIHRvCiAgKiBiZSBmcm96 ZW4sIGJlY2F1c2UgaXQgd2FzIHZpc2libGUgdG8gYW5vdGhlciBzZXNzaW9uIHdoZW4gdmFj dXVtIHN0YXJ0ZWQuCiAgKgotICogdmFjcmVsLT5za2lwc3RhdGUudm1idWZmZXIgaXMgdGhl IGJ1ZmZlciBjb250YWluaW5nIHRoZSBWTSBibG9jayB3aXRoCi0gKiB2aXNpYmlsaXR5IGlu Zm9ybWF0aW9uIGZvciB0aGUgaGVhcCBibG9jaywgYmxrbm8uCi0gKiBhbGxfdmlzaWJsZV9h Y2NvcmRpbmdfdG9fdm0gaXMgdGhlIHNhdmVkIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBo ZWFwIGJsb2NrCi0gKiBsb29rZWQgdXAgZWFybGllciBieSB0aGUgY2FsbGVyLiBXZSB3b24n dCByZWx5IGVudGlyZWx5IG9uIHRoaXMgc3RhdHVzLCBhcwotICogaXQgbWF5IGJlIG91dCBv ZiBkYXRlLgorICogdm1idWZmZXIgaXMgdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBWTSBi bG9jayB3aXRoIHZpc2liaWxpdHkgaW5mb3JtYXRpb24KKyAqIGZvciB0aGUgaGVhcCBibG9j aywgYmxrbm8uIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSBpcyB0aGUgc2F2ZWQKKyAq IHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBoZWFwIGJsb2NrIGxvb2tlZCB1cCBlYXJsaWVy IGJ5IHRoZSBjYWxsZXIuIFdlCisgKiB3b24ndCByZWx5IGVudGlyZWx5IG9uIHRoaXMgc3Rh dHVzLCBhcyBpdCBtYXkgYmUgb3V0IG9mIGRhdGUuCiAgKgogICogKmhhc19scGRlYWRfaXRl bXMgaXMgc2V0IHRvIHRydWUgb3IgZmFsc2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIsIHVwb24g cmV0dXJuCiAgKiBmcm9tIHRoaXMgZnVuY3Rpb24sIGFueSBMUF9ERUFEIGl0ZW1zIGFyZSBz dGlsbCBwcmVzZW50IG9uIHRoZSBwYWdlLgpAQCAtMTM4MSw2ICsxMzc1LDcgQEAgbGF6eV9z Y2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJCQlCdWZmZXIgYnVmLAogCQkJCUJs b2NrTnVtYmVyIGJsa25vLAogCQkJCVBhZ2UgcGFnZSwKKwkJCQlCdWZmZXIgdm1idWZmZXIs CiAJCQkJYm9vbCBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sCiAJCQkJYm9vbCAqaGFz X2xwZGVhZF9pdGVtcykKIHsKQEAgLTE4MTQsOCArMTgwOSw3IEBAIGxhenlfc2Nhbl9wcnVu ZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwogCQlN YXJrQnVmZmVyRGlydHkoYnVmKTsKIAkJdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5yZWws IGJsa25vLCBidWYsIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJICB2YWNyZWwtPnNraXAu dm1idWZmZXIsIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKLQkJCQkJCSAgZmxhZ3MpOworCQkJ CQkJICB2bWJ1ZmZlciwgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLCBmbGFncyk7CiAJfQogCiAJ LyoKQEAgLTE4MjUsMTEgKzE4MTksMTEgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUg KnZhY3JlbCwKIAkgKiBidWZmZXIgbG9jayBiZWZvcmUgY29uY2x1ZGluZyB0aGF0IHRoZSBW TSBpcyBjb3JydXB0LgogCSAqLwogCWVsc2UgaWYgKGFsbF92aXNpYmxlX2FjY29yZGluZ190 b192bSAmJiAhUGFnZUlzQWxsVmlzaWJsZShwYWdlKSAmJgotCQkJIHZpc2liaWxpdHltYXBf Z2V0X3N0YXR1cyh2YWNyZWwtPnJlbCwgYmxrbm8sICZ2YWNyZWwtPnNraXAudm1idWZmZXIp ICE9IDApCisJCQkgdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKHZhY3JlbC0+cmVsLCBibGtu bywgJnZtYnVmZmVyKSAhPSAwKQogCXsKIAkJZWxvZyhXQVJOSU5HLCAicGFnZSBpcyBub3Qg bWFya2VkIGFsbC12aXNpYmxlIGJ1dCB2aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0IGluIHJl bGF0aW9uIFwiJXNcIiBwYWdlICV1IiwKIAkJCSB2YWNyZWwtPnJlbG5hbWUsIGJsa25vKTsK LQkJdmlzaWJpbGl0eW1hcF9jbGVhcih2YWNyZWwtPnJlbCwgYmxrbm8sIHZhY3JlbC0+c2tp cC52bWJ1ZmZlciwKKwkJdmlzaWJpbGl0eW1hcF9jbGVhcih2YWNyZWwtPnJlbCwgYmxrbm8s IHZtYnVmZmVyLAogCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJfQogCkBA IC0xODUzLDcgKzE4NDcsNyBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVs LAogCQkJIHZhY3JlbC0+cmVsbmFtZSwgYmxrbm8pOwogCQlQYWdlQ2xlYXJBbGxWaXNpYmxl KHBhZ2UpOwogCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKLQkJdmlzaWJpbGl0eW1hcF9jbGVh cih2YWNyZWwtPnJlbCwgYmxrbm8sIHZhY3JlbC0+c2tpcC52bWJ1ZmZlciwKKwkJdmlzaWJp bGl0eW1hcF9jbGVhcih2YWNyZWwtPnJlbCwgYmxrbm8sIHZtYnVmZmVyLAogCQkJCQkJCVZJ U0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJfQogCkBAIC0xODYzLDcgKzE4NTcsNyBAQCBs YXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCSAqIHRydWUsIHNvIHdlIG11 c3QgY2hlY2sgYm90aCBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbi4KIAkgKi8KIAllbHNl IGlmIChhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgYWxsX3Zpc2libGUgJiYKLQkJ CSBhbGxfZnJvemVuICYmICFWTV9BTExfRlJPWkVOKHZhY3JlbC0+cmVsLCBibGtubywgJnZh Y3JlbC0+c2tpcC52bWJ1ZmZlcikpCisJCQkgYWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pF Tih2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcikpCiAJewogCQkvKgogCQkgKiBBdm9p ZCByZWx5aW5nIG9uIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSBhcyBhIHByb3h5IGZv ciB0aGUKQEAgLTE4ODUsNyArMTg3OSw3IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRl ICp2YWNyZWwsCiAJCSAqLwogCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHZpc2li aWxpdHlfY3V0b2ZmX3hpZCkpOwogCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwg Ymxrbm8sIGJ1ZiwgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkgIHZhY3JlbC0+c2tpcC52 bWJ1ZmZlciwgSW52YWxpZFRyYW5zYWN0aW9uSWQsCisJCQkJCQkgIHZtYnVmZmVyLCBJbnZh bGlkVHJhbnNhY3Rpb25JZCwKIAkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8 CiAJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7CiAJfQotLSAKMi4zOS4yCgo= --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/x-patch; charset=UTF-8; name="v6-0007-Rename-skip_state.patch" Content-Disposition: attachment; filename="v6-0007-Rename-skip_state.patch" Content-Transfer-Encoding: base64 RnJvbSA1MTllMjZhMDFiNmU2OTc0ZjllMGVkYjk0YjAwNzU2YWYwNTNmN2VlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAyMDoyNzo1NyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggdjYgNy85XSBSZW5hbWUgc2tpcF9zdGF0ZQoKSSBkb24ndCB3YW50 IHRvIGVtcGhhc2l6ZSB0aGUgInNraXBwaW5nIiBwYXJ0LiBSYXRoZXIsIGl0J3MgdGhlIHN0 YXRlCm9ud2VkIGJ5IHRoZSBoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKCkgZnVuY3Rp b24KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAzMiArKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9u cygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jCmluZGV4IDNmMTY2MWNlYTYxLi4xN2UwNjA2NWY3ZSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjA2LDggKzIwNiw4IEBAIHR5cGVkZWYgc3RydWN0 IExWUmVsU3RhdGUKIAlpbnQ2NAkJbWlzc2VkX2RlYWRfdHVwbGVzOyAvKiAjIHJlbW92YWJs ZSwgYnV0IG5vdCByZW1vdmVkICovCiAKIAkvKgotCSAqIFBhcmFtZXRlcnMgbWFpbnRhaW5l ZCBieSBoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKCkgdG8gbWFuYWdlCi0JICogc2tp cHBpbmcgcmFuZ2VzIG9mIHBhZ2VzIGdyZWF0ZXIgdGhhbiBTS0lQX1BBR0VTX1RIUkVTSE9M RC4KKwkgKiBTdGF0ZSBtYWludGFpbmVkIGJ5IGhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxv Y2soKSB0byBtYW5hZ2Ugc2tpcHBpbmcKKwkgKiByYW5nZXMgb2YgcGFnZXMgZ3JlYXRlciB0 aGFuIFNLSVBfUEFHRVNfVEhSRVNIT0xELgogCSAqLwogCXN0cnVjdAogCXsKQEAgLTIxNSw3 ICsyMTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAJCUJsb2NrTnVtYmVyIG5l eHRfdW5za2lwcGFibGVfYmxvY2s7CiAJCS8qIE5leHQgdW5za2lwcGFibGUgYmxvY2sncyB2 aXNpYmlsaXR5IHN0YXR1cyAqLwogCQlib29sCQluZXh0X3Vuc2tpcHBhYmxlX2FsbHZpczsK LQl9CQkJc2tpcDsKKwl9CQkJZ2V0X25leHRfYmxvY2tfc3RhdGU7CiB9IExWUmVsU3RhdGU7 CiAKIC8qIFN0cnVjdCBmb3Igc2F2aW5nIGFuZCByZXN0b3JpbmcgdmFjdXVtIGVycm9yIGlu Zm9ybWF0aW9uLiAqLwpAQCAtODMxLDcgKzgzMSw3IEBAIGxhenlfc2Nhbl9oZWFwKExWUmVs U3RhdGUgKnZhY3JlbCkKIAlpbml0cHJvZ192YWxbMl0gPSBkZWFkX2l0ZW1zLT5tYXhfaXRl bXM7CiAJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9tdWx0aV9wYXJhbSgzLCBpbml0cHJvZ19p bmRleCwgaW5pdHByb2dfdmFsKTsKIAotCXZhY3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBhYmxl X2Jsb2NrID0gSW52YWxpZEJsb2NrTnVtYmVyOworCXZhY3JlbC0+Z2V0X25leHRfYmxvY2tf c3RhdGUubmV4dF91bnNraXBwYWJsZV9ibG9jayA9IEludmFsaWRCbG9ja051bWJlcjsKIAog CXdoaWxlIChoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKHZhY3JlbCwgYmxrbm8gKyAx LAogCQkJCQkJCQkJCSZibGtubywgJmFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSwgJnZt YnVmZmVyKSkKQEAgLTEwNzksNyArMTA3OSw3IEBAIGxhenlfc2Nhbl9oZWFwKExWUmVsU3Rh dGUgKnZhY3JlbCkKICAqIHByb2Nlc3MgKGFuZCBpdHMgdmlzaWJpbGl0eSBzdGF0dXMpLgog ICoKICAqIFRoZSBibG9jayBudW1iZXIgYW5kIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBu ZXh0IHVuc2tpcHBhYmxlIGJsb2NrIGFyZSBzZXQKLSAqIGluIHZhY3JlbC0+c2tpcC0+bmV4 dF91bnNraXBwYWJsZV9ibG9jayBhbmQgbmV4dF91bnNraXBwYWJsZV9hbGx2aXMuCisgKiBp biB2YWNyZWwtPnNjYW5fc2F0ZS0+bmV4dF91bnNraXBwYWJsZV9ibG9jayBhbmQgbmV4dF91 bnNraXBwYWJsZV9hbGx2aXMuCiAgKgogICogVGhlIGJsb2NrIG51bWJlciBhbmQgdmlzaWJp bGl0eSBzdGF0dXMgb2YgdGhlIG5leHQgYmxvY2sgdG8gcHJvY2VzcyBhcmUgc2V0CiAgKiBp biBibGtubyBhbmQgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLiBoZWFwX3ZhY19zY2Fu X2dldF9uZXh0X2Jsb2NrKCkKQEAgLTExMTUsMTIgKzExMTUsMTIgQEAgaGVhcF92YWNfc2Nh bl9nZXRfbmV4dF9ibG9jayhMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIG5leHRf YmxvY2ssCiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlpZiAodmFjcmVsLT5za2lwLm5leHRf dW5za2lwcGFibGVfYmxvY2sgPT0gSW52YWxpZEJsb2NrTnVtYmVyIHx8Ci0JCW5leHRfYmxv Y2sgPiB2YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9ibG9jaykKKwlpZiAodmFjcmVs LT5nZXRfbmV4dF9ibG9ja19zdGF0ZS5uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrID09IEludmFs aWRCbG9ja051bWJlciB8fAorCQluZXh0X2Jsb2NrID4gdmFjcmVsLT5nZXRfbmV4dF9ibG9j a19zdGF0ZS5uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrKQogCXsKIAkJLyogVXNlIGxvY2FsIHZh cmlhYmxlcyBmb3IgYmV0dGVyIG9wdGltaXplZCBsb29wIGNvZGUgKi8KIAkJQmxvY2tOdW1i ZXIgcmVsX3BhZ2VzID0gdmFjcmVsLT5yZWxfcGFnZXM7Ci0JCUJsb2NrTnVtYmVyIG5leHRf dW5za2lwcGFibGVfYmxvY2sgPSB2YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9ibG9j azsKKwkJQmxvY2tOdW1iZXIgbmV4dF91bnNraXBwYWJsZV9ibG9jayA9IHZhY3JlbC0+Z2V0 X25leHRfYmxvY2tfc3RhdGUubmV4dF91bnNraXBwYWJsZV9ibG9jazsKIAogCQl3aGlsZSAo KytuZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrIDwgcmVsX3BhZ2VzKQogCQl7CkBAIC0xMTI4LDkg KzExMjgsOSBAQCBoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKExWUmVsU3RhdGUgKnZh Y3JlbCwgQmxvY2tOdW1iZXIgbmV4dF9ibG9jaywKIAkJCQkJCQkJCQkJCQkJICAgbmV4dF91 bnNraXBwYWJsZV9ibG9jaywKIAkJCQkJCQkJCQkJCQkJICAgdm1idWZmZXIpOwogCi0JCQl2 YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9hbGx2aXMgPSBtYXBiaXRzICYgVklTSUJJ TElUWU1BUF9BTExfVklTSUJMRTsKKwkJCXZhY3JlbC0+Z2V0X25leHRfYmxvY2tfc3RhdGUu bmV4dF91bnNraXBwYWJsZV9hbGx2aXMgPSBtYXBiaXRzICYgVklTSUJJTElUWU1BUF9BTExf VklTSUJMRTsKIAotCQkJaWYgKCF2YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9hbGx2 aXMpCisJCQlpZiAoIXZhY3JlbC0+Z2V0X25leHRfYmxvY2tfc3RhdGUubmV4dF91bnNraXBw YWJsZV9hbGx2aXMpCiAJCQl7CiAJCQkJQXNzZXJ0KChtYXBiaXRzICYgVklTSUJJTElUWU1B UF9BTExfRlJPWkVOKSA9PSAwKTsKIAkJCQlicmVhazsKQEAgLTExNTUsNyArMTE1NSw3IEBA IGhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxvY2soTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9j a051bWJlciBuZXh0X2Jsb2NrLAogCQkJaWYgKCF2YWNyZWwtPnNraXB3aXRodm0pCiAJCQl7 CiAJCQkJLyogQ2FsbGVyIHNob3VsZG4ndCByZWx5IG9uIGFsbF92aXNpYmxlX2FjY29yZGlu Z190b192bSAqLwotCQkJCXZhY3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBhYmxlX2FsbHZpcyA9 IGZhbHNlOworCQkJCXZhY3JlbC0+Z2V0X25leHRfYmxvY2tfc3RhdGUubmV4dF91bnNraXBw YWJsZV9hbGx2aXMgPSBmYWxzZTsKIAkJCQlicmVhazsKIAkJCX0KIApAQCAtMTE3OSw3ICsx MTc5LDcgQEAgaGVhcF92YWNfc2Nhbl9nZXRfbmV4dF9ibG9jayhMVlJlbFN0YXRlICp2YWNy ZWwsIEJsb2NrTnVtYmVyIG5leHRfYmxvY2ssCiAJCQl9CiAJCX0KIAotCQl2YWNyZWwtPnNr aXAubmV4dF91bnNraXBwYWJsZV9ibG9jayA9IG5leHRfdW5za2lwcGFibGVfYmxvY2s7CisJ CXZhY3JlbC0+Z2V0X25leHRfYmxvY2tfc3RhdGUubmV4dF91bnNraXBwYWJsZV9ibG9jayA9 IG5leHRfdW5za2lwcGFibGVfYmxvY2s7CiAKIAkJLyoKIAkJICogV2Ugb25seSBza2lwIGEg cmFuZ2Ugd2l0aCBhdCBsZWFzdCBTS0lQX1BBR0VTX1RIUkVTSE9MRCBjb25zZWN1dGl2ZQpA QCAtMTE5MywxNiArMTE5MywxNiBAQCBoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKExW UmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgbmV4dF9ibG9jaywKIAkJICogcGFnZXMg dGhlbiBza2lwcGluZyBtYWtlcyB1cGRhdGluZyByZWxmcm96ZW54aWQgdW5zYWZlLCB3aGlj aCBpcyBhCiAJCSAqIHJlYWwgZG93bnNpZGUuCiAJCSAqLwotCQlpZiAodmFjcmVsLT5za2lw Lm5leHRfdW5za2lwcGFibGVfYmxvY2sgLSBuZXh0X2Jsb2NrID49IFNLSVBfUEFHRVNfVEhS RVNIT0xEKQorCQlpZiAodmFjcmVsLT5nZXRfbmV4dF9ibG9ja19zdGF0ZS5uZXh0X3Vuc2tp cHBhYmxlX2Jsb2NrIC0gbmV4dF9ibG9jayA+PSBTS0lQX1BBR0VTX1RIUkVTSE9MRCkKIAkJ ewotCQkJbmV4dF9ibG9jayA9IHZhY3JlbC0+c2tpcC5uZXh0X3Vuc2tpcHBhYmxlX2Jsb2Nr OworCQkJbmV4dF9ibG9jayA9IHZhY3JlbC0+Z2V0X25leHRfYmxvY2tfc3RhdGUubmV4dF91 bnNraXBwYWJsZV9ibG9jazsKIAkJCWlmIChza2lwc2FsbHZpcykKIAkJCQl2YWNyZWwtPnNr aXBwZWRhbGx2aXMgPSB0cnVlOwogCQl9CiAJfQogCi0JaWYgKG5leHRfYmxvY2sgPT0gdmFj cmVsLT5za2lwLm5leHRfdW5za2lwcGFibGVfYmxvY2spCi0JCSphbGxfdmlzaWJsZV9hY2Nv cmRpbmdfdG9fdm0gPSB2YWNyZWwtPnNraXAubmV4dF91bnNraXBwYWJsZV9hbGx2aXM7CisJ aWYgKG5leHRfYmxvY2sgPT0gdmFjcmVsLT5nZXRfbmV4dF9ibG9ja19zdGF0ZS5uZXh0X3Vu c2tpcHBhYmxlX2Jsb2NrKQorCQkqYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtID0gdmFj cmVsLT5nZXRfbmV4dF9ibG9ja19zdGF0ZS5uZXh0X3Vuc2tpcHBhYmxlX2FsbHZpczsKIAll bHNlCiAJCSphbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gPSB0cnVlOwogCi0tIAoyLjM5 LjIKCg== --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/x-patch; charset=UTF-8; name="v6-0008-Track-current_block-in-the-skip-state.patch" Content-Disposition: attachment; filename="v6-0008-Track-current_block-in-the-skip-state.patch" Content-Transfer-Encoding: base64 RnJvbSA2ZGZhZTkzNmEyOWUyZDM0NzkyNzNmOGFiNDc3NzhhNTk2MjU4YjE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAyMTowMzoxOSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggdjYgOC85XSBUcmFjayAnY3VycmVudF9ibG9jaycgaW4gdGhlIHNr aXAgc3RhdGUKClRoZSBjYWxsZXIgd2FzIGV4cGVjdGVkIHRvIGFsd2F5cyBwYXNzIGxhc3Qg YmxrICsgMS4gSXQncyBub3QgY2xlYXIgaWYKdGhlIG5leHRfdW5za2lwcGFibGUgYmxvY2sg YWNjb3VudGluZyB3b3VsZCB3b3JrIGNvcnJlY3RseSBpZiB5b3UKcGFzc2VkIHNvbWV0aGlu ZyBlbHNlLiBTbyByYXRoZXIgdGhhbiBleHBlY3RpbmcgdGhlIGNhbGxlciB0byBkbyB0aGF0 LApoYXZlIGhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxvY2soKSBrZWVwIHRyYWNrIG9mIHRo ZSBsYXN0IHJldHVybmVkCmJsb2NrIGl0c2VsZiwgaW4gdGhlICdza2lwJyBzdGF0ZS4KClRo aXMgaXMgbGFyZ2VseSByZWR1bmRhbnQgd2l0aCB0aGUgTFZSZWxTdGF0ZS0+Ymxrbm8gZmll bGQuIEJ1dCB0aGF0Cm9uZSBpcyBjdXJyZW50bHkgb25seSB1c2VkIGZvciBlcnJvciByZXBv cnRpbmcsIHNvIGl0IGZlZWxzIGJlc3QgdG8KZ2l2ZSBoZWFwX3ZhY19zY2FuX2dldF9uZXh0 X2Jsb2NrKCkgaXRzIG93biBmaWVsZCB0aGF0IGl0IG93bnMuCi0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgMjcgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDE3ZTA2MDY1Zjdl Li41MzVkNzBiNzFjMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpA QCAtMjExLDYgKzIxMSw4IEBAIHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAkgKi8KIAlz dHJ1Y3QKIAl7CisJCUJsb2NrTnVtYmVyIGN1cnJlbnRfYmxvY2s7CisKIAkJLyogTmV4dCB1 bnNraXBwYWJsZSBibG9jayAqLwogCQlCbG9ja051bWJlciBuZXh0X3Vuc2tpcHBhYmxlX2Js b2NrOwogCQkvKiBOZXh0IHVuc2tpcHBhYmxlIGJsb2NrJ3MgdmlzaWJpbGl0eSBzdGF0dXMg Ki8KQEAgLTIyOCw3ICsyMzAsNyBAQCB0eXBlZGVmIHN0cnVjdCBMVlNhdmVkRXJySW5mbwog CiAvKiBub24tZXhwb3J0IGZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KIHN0YXRpYyB2b2lkIGxh enlfc2Nhbl9oZWFwKExWUmVsU3RhdGUgKnZhY3JlbCk7Ci1zdGF0aWMgYm9vbCBoZWFwX3Zh Y19zY2FuX2dldF9uZXh0X2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIg bmV4dF9ibG9jaywKK3N0YXRpYyBib29sIGhlYXBfdmFjX3NjYW5fZ2V0X25leHRfYmxvY2so TFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkJCQkJCQkJCSBCbG9ja051bWJlciAqYmxrbm8sCiAJ CQkJCQkJCQkJIGJvb2wgKmFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSwKIAkJCQkJCQkJ CQkgQnVmZmVyICp2bWJ1ZmZlcik7CkBAIC04MzEsMTAgKzgzMywxMSBAQCBsYXp5X3NjYW5f aGVhcChMVlJlbFN0YXRlICp2YWNyZWwpCiAJaW5pdHByb2dfdmFsWzJdID0gZGVhZF9pdGVt cy0+bWF4X2l0ZW1zOwogCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfbXVsdGlfcGFyYW0oMywg aW5pdHByb2dfaW5kZXgsIGluaXRwcm9nX3ZhbCk7CiAKKwkvKiBpbml0aWFsaXplIGZvciBm aXJzdCBoZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKCkgY2FsbCAqLworCXZhY3JlbC0+ Z2V0X25leHRfYmxvY2tfc3RhdGUuY3VycmVudF9ibG9jayA9IEludmFsaWRCbG9ja051bWJl cjsKIAl2YWNyZWwtPmdldF9uZXh0X2Jsb2NrX3N0YXRlLm5leHRfdW5za2lwcGFibGVfYmxv Y2sgPSBJbnZhbGlkQmxvY2tOdW1iZXI7CiAKLQl3aGlsZSAoaGVhcF92YWNfc2Nhbl9nZXRf bmV4dF9ibG9jayh2YWNyZWwsIGJsa25vICsgMSwKLQkJCQkJCQkJCQkmYmxrbm8sICZhbGxf dmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sICZ2bWJ1ZmZlcikpCisJd2hpbGUgKGhlYXBfdmFj X3NjYW5fZ2V0X25leHRfYmxvY2sodmFjcmVsLCAmYmxrbm8sICZhbGxfdmlzaWJsZV9hY2Nv cmRpbmdfdG9fdm0sICZ2bWJ1ZmZlcikpCiAJewogCQlCdWZmZXIJCWJ1ZjsKIAkJUGFnZQkJ cGFnZTsKQEAgLTEwNjEsMTEgKzEwNjQsOSBAQCBsYXp5X3NjYW5faGVhcChMVlJlbFN0YXRl ICp2YWNyZWwpCiAgKgloZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKCkgLS0gZ2V0IG5l eHQgYmxvY2sgZm9yIHZhY3V1bSB0byBwcm9jZXNzCiAgKgogICogbGF6eV9zY2FuX2hlYXAo KSBjYWxscyBoZXJlIGV2ZXJ5IHRpbWUgaXQgbmVlZHMgdG8gZ2V0IHRoZSBuZXh0IGJsb2Nr IHRvCi0gKiBwcnVuZSBhbmQgdmFjdXVtLCB1c2luZyB0aGUgdmlzaWJpbGl0eSBtYXAsIHZh Y3V1bSBvcHRpb25zLCBhbmQgdmFyaW91cwotICogdGhyZXNob2xkcyB0byBza2lwIGJsb2Nr cyB3aGljaCBkbyBub3QgbmVlZCB0byBiZSBwcm9jZXNzZWQuIENhbGxlciBwYXNzZXMKLSAq IG5leHRfYmxvY2ssIHRoZSBuZXh0IGJsb2NrIGluIGxpbmUuIFRoaXMgYmxvY2sgbWF5IGVu ZCB1cCBiZWluZyBza2lwcGVkLgotICogaGVhcF92YWNfc2Nhbl9nZXRfbmV4dF9ibG9jaygp IHNldHMgYmxrbm8gdG8gbmV4dCBibG9jayB0aGF0IGFjdHVhbGx5IG5lZWRzCi0gKiB0byBi ZSBwcm9jZXNzZWQuCisgKiBwcnVuZSBhbmQgdmFjdXVtLiAgV2UgdXNlIHRoZSB2aXNpYmls aXR5IG1hcCwgdmFjdXVtIG9wdGlvbnMsIGFuZCB2YXJpb3VzCisgKiB0aHJlc2hvbGRzIHRv IHNraXAgYmxvY2tzIHdoaWNoIGRvIG5vdCBuZWVkIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHNl dCBibGtubworICogdG8gbmV4dCBibG9jayB0aGF0IGFjdHVhbGx5IG5lZWRzIHRvIGJlIHBy b2Nlc3NlZC4KICAqCiAgKiBBIGJsb2NrIGlzIHVuc2tpcHBhYmxlIGlmIGl0IGlzIG5vdCBh bGwgdmlzaWJsZSBhY2NvcmRpbmcgdG8gdGhlIHZpc2liaWxpdHkKICAqIG1hcC4gSXQgaXMg YWxzbyB1bnNraXBwYWJsZSBpZiBpdCBpcyB0aGUgbGFzdCBibG9jayBpbiB0aGUgcmVsYXRp b24sIGlmIHRoZQpAQCAtMTEwNCwxNCArMTEwNSwxNiBAQCBsYXp5X3NjYW5faGVhcChMVlJl bFN0YXRlICp2YWNyZWwpCiAgKiBjaG9pY2UgdG8gc2tpcCBzdWNoIGEgcmFuZ2UgaXMgYWN0 dWFsbHkgbWFkZSwgbWFraW5nIGV2ZXJ5dGhpbmcgc2FmZS4pCiAgKi8KIHN0YXRpYyBib29s Ci1oZWFwX3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxv Y2tOdW1iZXIgbmV4dF9ibG9jaywKLQkJCQkJCQkgQmxvY2tOdW1iZXIgKmJsa25vLCBib29s ICphbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sIEJ1ZmZlciAqdm1idWZmZXIpCitoZWFw X3ZhY19zY2FuX2dldF9uZXh0X2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1i ZXIgKmJsa25vLAorCQkJCQkJCSBib29sICphbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0s IEJ1ZmZlciAqdm1idWZmZXIpCiB7CisJLyogUmVsaWVzIG9uIEludmFsaWRCbG9ja051bWJl ciArIDEgPT0gMCAqLworCUJsb2NrTnVtYmVyIG5leHRfYmxvY2sgPSB2YWNyZWwtPmdldF9u ZXh0X2Jsb2NrX3N0YXRlLmN1cnJlbnRfYmxvY2sgKyAxOwogCWJvb2wJCXNraXBzYWxsdmlz ID0gZmFsc2U7CiAKIAlpZiAobmV4dF9ibG9jayA+PSB2YWNyZWwtPnJlbF9wYWdlcykKIAl7 Ci0JCSpibGtubyA9IEludmFsaWRCbG9ja051bWJlcjsKKwkJdmFjcmVsLT5nZXRfbmV4dF9i bG9ja19zdGF0ZS5jdXJyZW50X2Jsb2NrID0gKmJsa25vID0gSW52YWxpZEJsb2NrTnVtYmVy OwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCkBAIC0xMjA2LDcgKzEyMDksNyBAQCBoZWFwX3Zh Y19zY2FuX2dldF9uZXh0X2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIg bmV4dF9ibG9jaywKIAllbHNlCiAJCSphbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gPSB0 cnVlOwogCi0JKmJsa25vID0gbmV4dF9ibG9jazsKKwl2YWNyZWwtPmdldF9uZXh0X2Jsb2Nr X3N0YXRlLmN1cnJlbnRfYmxvY2sgPSAqYmxrbm8gPSBuZXh0X2Jsb2NrOwogCXJldHVybiB0 cnVlOwogfQogCi0tIAoyLjM5LjIKCg== --------------Ze5oVHUbYJic98vu4c4VEpse Content-Type: text/x-patch; charset=UTF-8; name="v6-0009-Comment-whitespace-cleanup.patch" Content-Disposition: attachment; filename="v6-0009-Comment-whitespace-cleanup.patch" Content-Transfer-Encoding: base64 RnJvbSA2MTk1NTZjYWQ0YWFkNjhkMTcxMWMxMmI5NjJlOTAwMmU1NmQ4ZGIyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAyMTozNToxMSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggdjYgOS85XSBDb21tZW50ICYgd2hpdGVzcGFjZSBjbGVhbnVwCgpJ IG1vdmVkIHNvbWUgb2YgdGhlIHBhcmFncmFwaHMgdG8gaW5zaWRlIHRoZQpoZWFwX3ZhY19z Y2FuX2dldF9uZXh0X2Jsb2NrKCkgZnVuY3Rpb24uIEkgZm91bmQgdGhlIGV4cGxhbmF0aW9u IGluCnRoZSBmdW5jdGlvbiBjb21tZW50IGF0IHRoZSBvbGQgcGxhY2UgbGlrZSB0b28gbXVj aCBkZXRhaWwuIFNvbWVvbmUKbG9va2luZyBhdCB0aGUgZnVuY3Rpb24gc2lnbmF0dXJlIGFu ZCBob3cgdG8gY2FsbCBpdCB3b3VsZCBub3QgY2FyZQphYm91dCBhbGwgdGhlIGRldGFpbHMg b2Ygd2hhdCBjYW4gb3IgY2Fubm90IGJlIHNraXBwZWQuCgpUaGUgbmV3IHBsYWNlIGlzbid0 IGdyZWF0IGVpdGhlciwgYnV0IHdpbGwgZG8gZm9yIG5vdwotLS0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8IDQxICsrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNTM1ZDcwYjcxYzMu LmI4YTJkY2ZiYmFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBA IC0yMjgsNiArMjI4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZTYXZlZEVyckluZm8KIAlWYWNF cnJQaGFzZSBwaGFzZTsKIH0gTFZTYXZlZEVyckluZm87CiAKKwogLyogbm9uLWV4cG9ydCBm dW5jdGlvbiBwcm90b3R5cGVzICovCiBzdGF0aWMgdm9pZCBsYXp5X3NjYW5faGVhcChMVlJl bFN0YXRlICp2YWNyZWwpOwogc3RhdGljIGJvb2wgaGVhcF92YWNfc2Nhbl9nZXRfbmV4dF9i bG9jayhMVlJlbFN0YXRlICp2YWNyZWwsCkBAIC0xMDY4LDMwICsxMDY5LDE3IEBAIGxhenlf c2Nhbl9oZWFwKExWUmVsU3RhdGUgKnZhY3JlbCkKICAqIHRocmVzaG9sZHMgdG8gc2tpcCBi bG9ja3Mgd2hpY2ggZG8gbm90IG5lZWQgdG8gYmUgcHJvY2Vzc2VkLCBhbmQgc2V0IGJsa25v CiAgKiB0byBuZXh0IGJsb2NrIHRoYXQgYWN0dWFsbHkgbmVlZHMgdG8gYmUgcHJvY2Vzc2Vk LgogICoKLSAqIEEgYmxvY2sgaXMgdW5za2lwcGFibGUgaWYgaXQgaXMgbm90IGFsbCB2aXNp YmxlIGFjY29yZGluZyB0byB0aGUgdmlzaWJpbGl0eQotICogbWFwLiBJdCBpcyBhbHNvIHVu c2tpcHBhYmxlIGlmIGl0IGlzIHRoZSBsYXN0IGJsb2NrIGluIHRoZSByZWxhdGlvbiwgaWYg dGhlCi0gKiB2YWN1dW0gaXMgYW4gYWdncmVzc2l2ZSB2YWN1dW0sIG9yIGlmIERJU0FCTEVf UEFHRV9TS0lQUElORyB3YXMgcGFzc2VkIHRvCi0gKiB2YWN1dW0uCi0gKgotICogRXZlbiBp ZiBhIGJsb2NrIGlzIHNraXBwYWJsZSwgd2UgbWF5IGNob29zZSBub3QgdG8gc2tpcCBpdCBp ZiB0aGUgcmFuZ2Ugb2YKLSAqIHNraXBwYWJsZSBibG9ja3MgaXMgdG9vIHNtYWxsIChiZWxv dyBTS0lQX1BBR0VTX1RIUkVTSE9MRCkuIEFzIGEKLSAqIGNvbnNlcXVlbmNlLCB3ZSBtdXN0 IGtlZXAgdHJhY2sgb2YgdGhlIG5leHQgdHJ1bHkgdW5za2lwcGFibGUgYmxvY2sgYW5kIGl0 cwotICogdmlzaWJpbGl0eSBzdGF0dXMgc2VwYXJhdGUgZnJvbSB0aGUgbmV4dCBibG9jayBs YXp5X3NjYW5faGVhcCgpIHNob3VsZAotICogcHJvY2VzcyAoYW5kIGl0cyB2aXNpYmlsaXR5 IHN0YXR1cykuCi0gKgotICogVGhlIGJsb2NrIG51bWJlciBhbmQgdmlzaWJpbGl0eSBzdGF0 dXMgb2YgdGhlIG5leHQgdW5za2lwcGFibGUgYmxvY2sgYXJlIHNldAotICogaW4gdmFjcmVs LT5zY2FuX3NhdGUtPm5leHRfdW5za2lwcGFibGVfYmxvY2sgYW5kIG5leHRfdW5za2lwcGFi bGVfYWxsdmlzLgotICoKLSAqIFRoZSBibG9jayBudW1iZXIgYW5kIHZpc2liaWxpdHkgc3Rh dHVzIG9mIHRoZSBuZXh0IGJsb2NrIHRvIHByb2Nlc3MgYXJlIHNldAotICogaW4gYmxrbm8g YW5kIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bS4gaGVhcF92YWNfc2Nhbl9nZXRfbmV4 dF9ibG9jaygpCi0gKiByZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGFyZSBubyBmdXJ0aGVyIGJs b2NrcyB0byBwcm9jZXNzLgorICogVGhlIGJsb2NrIG51bWJlciBhbmQgdmlzaWJpbGl0eSBz dGF0dXMgb2YgdGhlIG5leHQgYmxvY2sgdG8gcHJvY2VzcyBhcmUKKyAqIHJldHVybmVkIGlu IGJsa25vIGFuZCBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0uCisgKiBoZWFwX3ZhY19z Y2FuX2dldF9uZXh0X2Jsb2NrKCkgcmV0dXJucyBmYWxzZSBpZiB0aGVyZSBhcmUgbm8gZnVy dGhlciBibG9ja3MKKyAqIHRvIHByb2Nlc3MuCiAgKgogICogdmFjcmVsIGlzIGFuIGluL291 dCBwYXJhbWV0ZXIgaGVyZTsgdmFjdXVtIG9wdGlvbnMgYW5kIGluZm9ybWF0aW9uIGFib3V0 IHRoZQogICogcmVsYXRpb24gYXJlIHJlYWQgYW5kIHZhY3JlbC0+c2tpcHBlZGFsbHZpcyBp cyBzZXQgdG8gZW5zdXJlIHdlIGRvbid0CiAgKiBhZHZhbmNlIHJlbGZyb3plbnhpZCB3aGVu IHdlIGhhdmUgc2tpcHBlZCB2YWN1dW1pbmcgYWxsIHZpc2libGUgYmxvY2tzLgogICoKICAq IHZtYnVmZmVyIHdpbGwgY29udGFpbiB0aGUgYmxvY2sgZnJvbSB0aGUgVk0gY29udGFpbmlu ZyB2aXNpYmlsaXR5Ci0gKiBpbmZvcm1hdGlvbiBmb3IgdGhlIG5leHQgdW5za2lwcGFibGUg aGVhcCBibG9jay4gV2UgbWF5IGVuZCB1cCBuZWVkZWQgYQorICogaW5mb3JtYXRpb24gZm9y IHRoZSBuZXh0IHVuc2tpcHBhYmxlIGhlYXAgYmxvY2suICBXZSBtYXkgZW5kIHVwIG5lZWRp bmcgYQogICogZGlmZmVyZW50IGJsb2NrIGZyb20gdGhlIFZNIChpZiB3ZSBkZWNpZGUgbm90 IHRvIHNraXAgYSBza2lwcGFibGUgYmxvY2spLgogICogVGhpcyBpcyBva2F5OyB2aXNpYmls aXR5bWFwX3BpbigpIHdpbGwgdGFrZSBjYXJlIG9mIHRoaXMgd2hpbGUgcHJvY2Vzc2luZwog ICogdGhlIGJsb2NrLgpAQCAtMTEyNSw2ICsxMTEzLDIzIEBAIGhlYXBfdmFjX3NjYW5fZ2V0 X25leHRfYmxvY2soTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciAqYmxrbm8sCiAJ CUJsb2NrTnVtYmVyIHJlbF9wYWdlcyA9IHZhY3JlbC0+cmVsX3BhZ2VzOwogCQlCbG9ja051 bWJlciBuZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrID0gdmFjcmVsLT5nZXRfbmV4dF9ibG9ja19z dGF0ZS5uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrOwogCisJCS8qCisJCSAqIEEgYmxvY2sgaXMg dW5za2lwcGFibGUgaWYgaXQgaXMgbm90IGFsbCB2aXNpYmxlIGFjY29yZGluZyB0byB0aGUK KwkJICogdmlzaWJpbGl0eSBtYXAuICBJdCBpcyBhbHNvIHVuc2tpcHBhYmxlIGlmIGl0IGlz IHRoZSBsYXN0IGJsb2NrIGluCisJCSAqIHRoZSByZWxhdGlvbiwgaWYgdGhlIHZhY3V1bSBp cyBhbiBhZ2dyZXNzaXZlIHZhY3V1bSwgb3IgaWYKKwkJICogRElTQUJMRV9QQUdFX1NLSVBQ SU5HIHdhcyBwYXNzZWQgdG8gdmFjdXVtLgorCQkgKgorCQkgKiBFdmVuIGlmIGEgYmxvY2sg aXMgc2tpcHBhYmxlLCB3ZSBtYXkgY2hvb3NlIG5vdCB0byBza2lwIGl0IGlmIHRoZQorCQkg KiByYW5nZSBvZiBza2lwcGFibGUgYmxvY2tzIGlzIHRvbyBzbWFsbCAoYmVsb3cKKwkJICog U0tJUF9QQUdFU19USFJFU0hPTEQpLiAgQXMgYSBjb25zZXF1ZW5jZSwgd2UgbXVzdCBrZWVw IHRyYWNrIG9mIHRoZQorCQkgKiBuZXh0IHRydWx5IHVuc2tpcHBhYmxlIGJsb2NrIGFuZCBp dHMgdmlzaWJpbGl0eSBzdGF0dXMgc2VwYXJhdGUKKwkJICogZnJvbSB0aGUgbmV4dCBibG9j ayBsYXp5X3NjYW5faGVhcCgpIHNob3VsZCBwcm9jZXNzIChhbmQgaXRzCisJCSAqIHZpc2li aWxpdHkgc3RhdHVzKS4KKwkJICoKKwkJICogVGhlIGJsb2NrIG51bWJlciBhbmQgdmlzaWJp bGl0eSBzdGF0dXMgb2YgdGhlIG5leHQgdW5za2lwcGFibGUKKwkJICogYmxvY2sgYXJlIHNl dCBpbiB2YWNyZWwtPnNjYW5fc2F0ZS0+bmV4dF91bnNraXBwYWJsZV9ibG9jayBhbmQKKwkJ ICogbmV4dF91bnNraXBwYWJsZV9hbGx2aXMuCisJCSAqLwogCQl3aGlsZSAoKytuZXh0X3Vu c2tpcHBhYmxlX2Jsb2NrIDwgcmVsX3BhZ2VzKQogCQl7CiAJCQl1aW50OAkJbWFwYml0cyA9 IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyh2YWNyZWwtPnJlbCwKLS0gCjIuMzkuMgoK --------------Ze5oVHUbYJic98vu4c4VEpse--