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 1rUp7W-00DDqm-9K for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jan 2024 14:29:51 +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 1rUp7U-006cNi-5q for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jan 2024 14:29:48 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rUp7T-006cNU-FR for pgsql-hackers@lists.postgresql.org; Tue, 30 Jan 2024 14:29:47 +0000 Received: from mail.verite.pro ([185.16.44.216]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rUp7O-004A3v-Db for pgsql-hackers@postgresql.org; Tue, 30 Jan 2024 14:29:46 +0000 Received: by mail.verite.pro (Postfix, from userid 1000) id 794E18C0233; Tue, 30 Jan 2024 15:29:39 +0100 (CET) MIME-Version: 1.0 From: "Daniel Verite" Subject: Re: psql's FETCH_COUNT (cursor) is not being respected for CTEs To: "vignesh C" Cc: PostgreSQL Hackers , Tom Lane , Robert Haas , Jakub Wartak In-Reply-To: Date: Tue, 30 Jan 2024 15:29:37 +0100 Message-Id: X-Mailer: Manitou v1.7.3 Content-type: multipart/mixed; boundary="----------=_1706624979-1514-1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format... ------------=_1706624979-1514-1 Content-Type: text/plain; charset="iso-8859-15" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable vignesh C wrote: > patching file src/interfaces/libpq/exports.txt > Hunk #1 FAILED at 191. > 1 out of 1 hunk FAILED -- saving rejects to file > src/interfaces/libpq/exports.txt.rej >=20 > Please post an updated version for the same. PFA a rebased version. Best regards, --=20 Daniel V=E9rit=E9 https://postgresql.verite.pro/ Twitter: @DanielVerite ------------=_1706624979-1514-1 Content-Type: text-x-patch; name="v6-0001-Implement-retrieval-of-results-in-chunks-with-lib.patch" Content-Disposition: attachment; filename="v6-0001-Implement-retrieval-of-results-in-chunks-with-lib.patch" Content-Transfer-Encoding: base64 RnJvbSA4Y2ZiODJiMWUzNmU5Njk5NjYzNzk0OGEyMzFhZTM1YjlhZjFlMDc0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RGFu aWVsPTIwVj1DMz1BOXJpdD1DMz1BOT89IDxkYW5pZWxAbWFuaXRvdS1tYWls Lm9yZz4KRGF0ZTogVHVlLCAzMCBKYW4gMjAyNCAxNDozODoyMSArMDEwMApT dWJqZWN0OiBbUEFUQ0ggdjYgMS8yXSBJbXBsZW1lbnQgcmV0cmlldmFsIG9m IHJlc3VsdHMgaW4gY2h1bmtzIHdpdGggbGlicHEuCgpUaGlzIG1vZGUgaXMg c2ltaWxhciB0byB0aGUgc2luZ2xlLXJvdyBtb2RlIGV4Y2VwdCB0aGF0IGNo dW5rcwpvZiByZXN1bHRzIGNvbnRhaW4gdXAgdG8gTiByb3dzIGluc3RlYWQg b2YgYSBzaW5nbGUgcm93LgpJdCBpcyBtZWFudCB0byByZWR1Y2UgdGhlIG92 ZXJoZWFkIG9mIHRoZSByb3ctYnktcm93IGFsbG9jYXRpb25zCmZvciBsYXJn ZSByZXN1bHQgc2V0cy4KVGhlIG1vZGUgaXMgc2VsZWN0ZWQgd2l0aCBQUXNl dENodW5rZWRSb3dzTW9kZShpbnQgbWF4Um93cykgYW5kIHJlc3VsdHMKaGF2 ZSB0aGUgbmV3IHN0YXR1cyBjb2RlIFBHUkVTX1RVUExFU19DSFVOSy4KLS0t CiBkb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAgICAgICAgICAg ICAgfCAgOTYgKysrKysrKysrKy0tLS0KIC4uLi9saWJwcXdhbHJlY2VpdmVy L2xpYnBxd2FscmVjZWl2ZXIuYyAgICAgICB8ICAgMSArCiBzcmMvYmluL3Bn X2FtY2hlY2svcGdfYW1jaGVjay5jICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYyAgICAg ICAgICAgICAgICB8IDExNyArKysrKysrKysrKysrKystLS0KIHNyYy9pbnRl cmZhY2VzL2xpYnBxL2xpYnBxLWZlLmggICAgICAgICAgICAgICB8ICAgNCAr LQogc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggICAgICAgICAg ICAgIHwgICA3ICstCiA3IGZpbGVzIGNoYW5nZWQsIDE4NCBpbnNlcnRpb25z KCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvbGlicHEuc2dtbCBiL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCmluZGV4 IGQwZDVhZWZhZGMuLmY3ZjVhMDRkZjYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9saWJwcS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21s CkBAIC0zNTM3LDcgKzM1MzcsMjAgQEAgRXhlY1N0YXR1c1R5cGUgUFFyZXN1 bHRTdGF0dXMoY29uc3QgUEdyZXN1bHQgKnJlcyk7CiAgICAgICAgICAgICBU aGUgPHN0cnVjdG5hbWU+UEdyZXN1bHQ8L3N0cnVjdG5hbWU+IGNvbnRhaW5z IGEgc2luZ2xlIHJlc3VsdCB0dXBsZQogICAgICAgICAgICAgZnJvbSB0aGUg Y3VycmVudCBjb21tYW5kLiAgVGhpcyBzdGF0dXMgb2NjdXJzIG9ubHkgd2hl bgogICAgICAgICAgICAgc2luZ2xlLXJvdyBtb2RlIGhhcyBiZWVuIHNlbGVj dGVkIGZvciB0aGUgcXVlcnkKLSAgICAgICAgICAgIChzZWUgPHhyZWYgbGlu a2VuZD0ibGlicHEtc2luZ2xlLXJvdy1tb2RlIi8+KS4KKyAgICAgICAgICAg IChzZWUgPHhyZWYgbGlua2VuZD0ibGlicHEtY2h1bmtlZC1yZXN1bHRzLW1v ZGVzIi8+KS4KKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAg PHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtcGdyZXMtdHVwbGVzLWNodW5rIj4K KyAgICAgICAgICA8dGVybT48bGl0ZXJhbD5QR1JFU19UVVBMRVNfQ0hVTks8 L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgPHN0cnVjdG5hbWU+UEdy ZXN1bHQ8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIHNldmVyYWwgdHVwbGVzCisg ICAgICAgICAgICBmcm9tIHRoZSBjdXJyZW50IGNvbW1hbmQuIFRoZSBjb3Vu dCBvZiB0dXBsZXMgY2Fubm90IGV4Y2VlZAorICAgICAgICAgICAgdGhlIG1h eGltdW0gcGFzc2VkIHRvIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2V0Q2h1 bmtlZFJvd3NNb2RlIi8+LgorICAgICAgICAgICAgVGhpcyBzdGF0dXMgb2Nj dXJzIG9ubHkgd2hlbiB0aGUgY2h1bmtlZCBtb2RlIGhhcyBiZWVuIHNlbGVj dGVkCisgICAgICAgICAgICBmb3IgdGhlIHF1ZXJ5IChzZWUgPHhyZWYgbGlu a2VuZD0ibGlicHEtY2h1bmtlZC1yZXN1bHRzLW1vZGVzIi8+KS4KICAgICAg ICAgICAgPC9wYXJhPgogICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAg ICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTUxODksOCArNTIwMiw4IEBAIFBHcmVz dWx0ICpQUWdldFJlc3VsdChQR2Nvbm4gKmNvbm4pOwogICA8cGFyYT4KICAg IEFub3RoZXIgZnJlcXVlbnRseS1kZXNpcmVkIGZlYXR1cmUgdGhhdCBjYW4g YmUgb2J0YWluZWQgd2l0aAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFz ZW5kUXVlcnkiLz4gYW5kIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZ2V0UmVz dWx0Ii8+Ci0gICBpcyByZXRyaWV2aW5nIGxhcmdlIHF1ZXJ5IHJlc3VsdHMg YSByb3cgYXQgYSB0aW1lLiAgVGhpcyBpcyBkaXNjdXNzZWQKLSAgIGluIDx4 cmVmIGxpbmtlbmQ9ImxpYnBxLXNpbmdsZS1yb3ctbW9kZSIvPi4KKyAgIGlz IHJldHJpZXZpbmcgbGFyZ2UgcXVlcnkgcmVzdWx0cyBhIGxpbWl0ZWQgbnVt YmVyIG9mIHJvd3MgYXQgYSB0aW1lLiAgVGhpcyBpcyBkaXNjdXNzZWQKKyAg IGluIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLWNodW5rZWQtcmVzdWx0cy1tb2Rl cyIvPi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtNTU1NCwxMiArNTU2 NywxMyBAQCBpbnQgUFFmbHVzaChQR2Nvbm4gKmNvbm4pOwogICAgIDwvcGFy YT4KIAogICAgIDxwYXJhPgotICAgICBUbyBlbnRlciBzaW5nbGUtcm93IG1v ZGUsIGNhbGwgPGZ1bmN0aW9uPlBRc2V0U2luZ2xlUm93TW9kZTwvZnVuY3Rp b24+Ci0gICAgIGJlZm9yZSByZXRyaWV2aW5nIHJlc3VsdHMgd2l0aCA8ZnVu Y3Rpb24+UFFnZXRSZXN1bHQ8L2Z1bmN0aW9uPi4KLSAgICAgVGhpcyBtb2Rl IHNlbGVjdGlvbiBpcyBlZmZlY3RpdmUgb25seSBmb3IgdGhlIHF1ZXJ5IGN1 cnJlbnRseQotICAgICBiZWluZyBwcm9jZXNzZWQuIEZvciBtb3JlIGluZm9y bWF0aW9uIG9uIHRoZSB1c2Ugb2YKLSAgICAgPGZ1bmN0aW9uPlBRc2V0U2lu Z2xlUm93TW9kZTwvZnVuY3Rpb24+LAotICAgICByZWZlciB0byA8eHJlZiBs aW5rZW5kPSJsaWJwcS1zaW5nbGUtcm93LW1vZGUiLz4uCisgICAgIFRvIGVu dGVyIHNpbmdsZS1yb3cgb3IgY2h1bmtlZCBtb2RlcywgY2FsbAorICAgICBy ZXNwZWN0aXZlbHkgPGZ1bmN0aW9uPlBRc2V0U2luZ2xlUm93TW9kZTwvZnVu Y3Rpb24+CisgICAgIG9yIDxmdW5jdGlvbj5QUXNldENodW5rZWRSb3dzTW9k ZTwvZnVuY3Rpb24+IGJlZm9yZSByZXRyaWV2aW5nIHJlc3VsdHMKKyAgICAg d2l0aCA8ZnVuY3Rpb24+UFFnZXRSZXN1bHQ8L2Z1bmN0aW9uPi4gIFRoaXMg bW9kZSBzZWxlY3Rpb24gaXMgZWZmZWN0aXZlCisgICAgIG9ubHkgZm9yIHRo ZSBxdWVyeSBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkLiBGb3IgbW9yZSBp bmZvcm1hdGlvbiBvbiB0aGUKKyAgICAgdXNlIG9mIHRoZXNlIGZ1bmN0aW9u cyByZWZlcgorICAgICB0byA8eHJlZiBsaW5rZW5kPSJsaWJwcS1jaHVua2Vk LXJlc3VsdHMtbW9kZXMiIC8+LgogICAgIDwvcGFyYT4KIAogICAgIDxwYXJh PgpAQCAtNTkyNiwxMCArNTk0MCwxMCBAQCBVUERBVEUgbXl0YWJsZSBTRVQg eCA9IHggKyAxIFdIRVJFIGlkID0gNDI7CiAgIDwvc2VjdDI+CiAgPC9zZWN0 MT4KIAotIDxzZWN0MSBpZD0ibGlicHEtc2luZ2xlLXJvdy1tb2RlIj4KLSAg PHRpdGxlPlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0cyBSb3ctYnktUm93PC90 aXRsZT4KKyA8c2VjdDEgaWQ9ImxpYnBxLWNodW5rZWQtcmVzdWx0cy1tb2Rl cyI+CisgIDx0aXRsZT5SZXRyaWV2aW5nIFF1ZXJ5IFJlc3VsdHMgYnkgY2h1 bmtzPC90aXRsZT4KIAotICA8aW5kZXh0ZXJtIHpvbmU9ImxpYnBxLXNpbmds ZS1yb3ctbW9kZSI+CisgIDxpbmRleHRlcm0gem9uZT0ibGlicHEtY2h1bmtl ZC1yZXN1bHRzLW1vZGVzIj4KICAgIDxwcmltYXJ5PmxpYnBxPC9wcmltYXJ5 PgogICAgPHNlY29uZGFyeT5zaW5nbGUtcm93IG1vZGU8L3NlY29uZGFyeT4K ICAgPC9pbmRleHRlcm0+CkBAIC01OTQwLDEzICs1OTU0LDE1IEBAIFVQREFU RSBteXRhYmxlIFNFVCB4ID0geCArIDEgV0hFUkUgaWQgPSA0MjsKICAgIDxz dHJ1Y3RuYW1lPlBHcmVzdWx0PC9zdHJ1Y3RuYW1lPi4gIFRoaXMgY2FuIGJl IHVud29ya2FibGUgZm9yIGNvbW1hbmRzCiAgICB0aGF0IHJldHVybiBhIGxh cmdlIG51bWJlciBvZiByb3dzLiAgRm9yIHN1Y2ggY2FzZXMsIGFwcGxpY2F0 aW9ucyBjYW4gdXNlCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRR dWVyeSIvPiBhbmQgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFnZXRSZXN1bHQi Lz4gaW4KLSAgIDxmaXJzdHRlcm0+c2luZ2xlLXJvdyBtb2RlPC9maXJzdHRl cm0+LiAgSW4gdGhpcyBtb2RlLCB0aGUgcmVzdWx0IHJvdyhzKSBhcmUKLSAg IHJldHVybmVkIHRvIHRoZSBhcHBsaWNhdGlvbiBvbmUgYXQgYSB0aW1lLCBh cyB0aGV5IGFyZSByZWNlaXZlZCBmcm9tIHRoZQotICAgc2VydmVyLgorICAg PGZpcnN0dGVybT5zaW5nbGUtcm93IG1vZGU8L2ZpcnN0dGVybT4gb3IgPGZp cnN0dGVybT5jaHVua2VkIG1vZGU8L2ZpcnN0dGVybT4uCisgICBJbiB0aGVz ZSBtb2RlcywgdGhlIHJlc3VsdCByb3cocykgYXJlIHJldHVybmVkIHRvIHRo ZSBhcHBsaWNhdGlvbiBvbmUgYXQgYQorICAgdGltZSBmb3IgdGhlIHNpbmds ZS1yb3cgbW9kZSBhbmQgYnkgY2h1bmtzIGZvciB0aGUgY2h1bmtlZCBtb2Rl LCBhcyB0aGV5CisgICBhcmUgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLgog ICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBUbyBlbnRlciBzaW5nbGUtcm93 IG1vZGUsIGNhbGwgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZXRTaW5nbGVS b3dNb2RlIi8+CisgICBUbyBlbnRlciB0aGVzZSBtb2RlcywgY2FsbCA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUXNldFNpbmdsZVJvd01vZGUiLz4KKyAgICBv ciA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNldENodW5rZWRSb3dzTW9kZSIv PgogICAgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgb2Yg PHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnkiLz4KICAgIChvciBh IHNpYmxpbmcgZnVuY3Rpb24pLiAgVGhpcyBtb2RlIHNlbGVjdGlvbiBpcyBl ZmZlY3RpdmUgb25seSBmb3IgdGhlCiAgICBjdXJyZW50bHkgZXhlY3V0aW5n IHF1ZXJ5LiAgVGhlbiBjYWxsIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZ2V0 UmVzdWx0Ii8+CkBAIC01OTU0LDcgKzU5NzAsOCBAQCBVUERBVEUgbXl0YWJs ZSBTRVQgeCA9IHggKyAxIFdIRVJFIGlkID0gNDI7CiAgICBsaW5rZW5kPSJs aWJwcS1hc3luYyIvPi4gIElmIHRoZSBxdWVyeSByZXR1cm5zIGFueSByb3dz LCB0aGV5IGFyZSByZXR1cm5lZAogICAgYXMgaW5kaXZpZHVhbCA8c3RydWN0 bmFtZT5QR3Jlc3VsdDwvc3RydWN0bmFtZT4gb2JqZWN0cywgd2hpY2ggbG9v ayBsaWtlCiAgICBub3JtYWwgcXVlcnkgcmVzdWx0cyBleGNlcHQgZm9yIGhh dmluZyBzdGF0dXMgY29kZQotICAgPGxpdGVyYWw+UEdSRVNfU0lOR0xFX1RV UExFPC9saXRlcmFsPiBpbnN0ZWFkIG9mCisgICA8bGl0ZXJhbD5QR1JFU19T SU5HTEVfVFVQTEU8L2xpdGVyYWw+IGZvciB0aGUgc2luZ2xlLXJvdyBtb2Rl IGFuZAorICAgPGxpdGVyYWw+UEdSRVNfVFVQTEVTX0NIVU5LPC9saXRlcmFs PiBmb3IgdGhlIGNodW5rZWQgbW9kZSwgaW5zdGVhZCBvZgogICAgPGxpdGVy YWw+UEdSRVNfVFVQTEVTX09LPC9saXRlcmFsPi4gIEFmdGVyIHRoZSBsYXN0 IHJvdywgb3IgaW1tZWRpYXRlbHkgaWYKICAgIHRoZSBxdWVyeSByZXR1cm5z IHplcm8gcm93cywgYSB6ZXJvLXJvdyBvYmplY3Qgd2l0aCBzdGF0dXMKICAg IDxsaXRlcmFsPlBHUkVTX1RVUExFU19PSzwvbGl0ZXJhbD4gaXMgcmV0dXJu ZWQ7IHRoaXMgaXMgdGhlIHNpZ25hbCB0aGF0IG5vCkBAIC01OTY3LDkgKzU5 ODQsOSBAQCBVUERBVEUgbXl0YWJsZSBTRVQgeCA9IHggKyAxIFdIRVJFIGlk ID0gNDI7CiAgIDwvcGFyYT4KIAogICA8cGFyYT4KLSAgIFdoZW4gdXNpbmcg cGlwZWxpbmUgbW9kZSwgc2luZ2xlLXJvdyBtb2RlIG5lZWRzIHRvIGJlIGFj dGl2YXRlZCBmb3IgZWFjaAotICAgcXVlcnkgaW4gdGhlIHBpcGVsaW5lIGJl Zm9yZSByZXRyaWV2aW5nIHJlc3VsdHMgZm9yIHRoYXQgcXVlcnkKLSAgIHdp dGggPGZ1bmN0aW9uPlBRZ2V0UmVzdWx0PC9mdW5jdGlvbj4uCisgICBXaGVu IHVzaW5nIHBpcGVsaW5lIG1vZGUsIHRoZSBzaW5nbGUtcm93IG9yIGNodW5r ZWQgbW9kZSBuZWVkIHRvIGJlCisgICBhY3RpdmF0ZWQgZm9yIGVhY2ggcXVl cnkgaW4gdGhlIHBpcGVsaW5lIGJlZm9yZSByZXRyaWV2aW5nIHJlc3VsdHMg Zm9yIHRoYXQKKyAgIHF1ZXJ5IHdpdGggPGZ1bmN0aW9uPlBRZ2V0UmVzdWx0 PC9mdW5jdGlvbj4uCiAgICBTZWUgPHhyZWYgbGlua2VuZD0ibGlicHEtcGlw ZWxpbmUtbW9kZSIvPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgPC9wYXJh PgogCkBAIC02MDAzLDE0ICs2MDIwLDQ5IEBAIGludCBQUXNldFNpbmdsZVJv d01vZGUoUEdjb25uICpjb25uKTsKICAgIDwvdmFyaWFibGVsaXN0PgogICA8 L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAg PHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFzZXRDaHVua2VkUm93c01vZGUi PgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRc2V0Q2h1bmtlZFJvd3NNb2Rl PC9mdW5jdGlvbj4KKyAgICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5QUXNl dENodW5rZWRSb3dzTW9kZTwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFNlbGVj dCB0aGUgbW9kZSByZXRyaWV2aW5nIHJlc3VsdHMgaW4gY2h1bmtzIGZvciB0 aGUgY3VycmVudGx5LWV4ZWN1dGluZyBxdWVyeS4KKworPHN5bm9wc2lzPgor ICBpbnQgUFFzZXRDaHVua2VkUm93c01vZGUoUEdjb25uICpjb25uLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heFJvd3MpOworPC9zeW5v cHNpcz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAg VGhpcyBmdW5jdGlvbiBpcyBzaW1pbGFyIHRvIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRc2V0U2luZ2xlUm93TW9kZSIvPiwKKyAgICAgICBleGNlcHQgdGhh dCBpdCBjYW4gcmV0cmlldmUgYSB1c2VyLXNwZWNpZmllZCBudW1iZXIgb2Yg cm93cworICAgICAgIHBlciBjYWxsIHRvIDx4cmVmIGxpbmtlbmQ9ImxpYnBx LVBRZ2V0UmVzdWx0Ii8+LCBpbnN0ZWFkIG9mIGEgc2luZ2xlIHJvdy4KKyAg ICAgICBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCBpbW1lZGlh dGVseSBhZnRlcgorICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2Vu ZFF1ZXJ5Ii8+IG9yIG9uZSBvZiBpdHMgc2libGluZyBmdW5jdGlvbnMsCisg ICAgICAgYmVmb3JlIGFueSBvdGhlciBvcGVyYXRpb24gb24gdGhlIGNvbm5l Y3Rpb24gc3VjaCBhcworICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBR Y29uc3VtZUlucHV0Ii8+IG9yCisgICAgICAgPHhyZWYgbGlua2VuZD0ibGli cHEtUFFnZXRSZXN1bHQiLz4uICBJZiBjYWxsZWQgYXQgdGhlIGNvcnJlY3Qg dGltZSwKKyAgICAgICB0aGUgZnVuY3Rpb24gYWN0aXZhdGVzIHRoZSBjaHVu a2VkIG1vZGUgZm9yIHRoZSBjdXJyZW50IHF1ZXJ5IGFuZAorICAgICAgIHJl dHVybnMgMS4gIE90aGVyd2lzZSB0aGUgbW9kZSBzdGF5cyB1bmNoYW5nZWQg YW5kIHRoZSBmdW5jdGlvbgorICAgICAgIHJldHVybnMgMC4gIEluIGFueSBj YXNlLCB0aGUgbW9kZSByZXZlcnRzIHRvIG5vcm1hbCBhZnRlcgorICAgICAg IGNvbXBsZXRpb24gb2YgdGhlIGN1cnJlbnQgcXVlcnkuCisgICAgICA8L3Bh cmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+Cisg ICA8L3ZhcmlhYmxlbGlzdD4KKyAgPC9wYXJhPgorCiAgIDxjYXV0aW9uPgog ICAgPHBhcmE+CiAgICAgV2hpbGUgcHJvY2Vzc2luZyBhIHF1ZXJ5LCB0aGUg c2VydmVyIG1heSByZXR1cm4gc29tZSByb3dzIGFuZCB0aGVuCiAgICAgZW5j b3VudGVyIGFuIGVycm9yLCBjYXVzaW5nIHRoZSBxdWVyeSB0byBiZSBhYm9y dGVkLiAgT3JkaW5hcmlseSwKICAgICA8YXBwbGljYXRpb24+bGlicHE8L2Fw cGxpY2F0aW9uPiBkaXNjYXJkcyBhbnkgc3VjaCByb3dzIGFuZCByZXBvcnRz IG9ubHkgdGhlCi0gICAgZXJyb3IuICBCdXQgaW4gc2luZ2xlLXJvdyBtb2Rl LCB0aG9zZSByb3dzIHdpbGwgaGF2ZSBhbHJlYWR5IGJlZW4KKyAgICBlcnJv ci4gIEJ1dCBpbiBzaW5nbGUtcm93IG9yIGNodW5rZWQgbW9kZXMsIHRob3Nl IHJvd3Mgd2lsbCBoYXZlIGFscmVhZHkgYmVlbgogICAgIHJldHVybmVkIHRv IHRoZSBhcHBsaWNhdGlvbi4gIEhlbmNlLCB0aGUgYXBwbGljYXRpb24gd2ls bCBzZWUgc29tZQotICAgIDxsaXRlcmFsPlBHUkVTX1NJTkdMRV9UVVBMRTwv bGl0ZXJhbD4gPHN0cnVjdG5hbWU+UEdyZXN1bHQ8L3N0cnVjdG5hbWU+Cisg ICAgPGxpdGVyYWw+UEdSRVNfU0lOR0xFX1RVUExFPC9saXRlcmFsPiBvciA8 bGl0ZXJhbD5QR1JFU19UVVBMRVNfQ0hVTks8L2xpdGVyYWw+CisgICAgPHN0 cnVjdG5hbWU+UEdyZXN1bHQ8L3N0cnVjdG5hbWU+CiAgICAgb2JqZWN0cyBm b2xsb3dlZCBieSBhIDxsaXRlcmFsPlBHUkVTX0ZBVEFMX0VSUk9SPC9saXRl cmFsPiBvYmplY3QuICBGb3IKICAgICBwcm9wZXIgdHJhbnNhY3Rpb25hbCBi ZWhhdmlvciwgdGhlIGFwcGxpY2F0aW9uIG11c3QgYmUgZGVzaWduZWQgdG8K ICAgICBkaXNjYXJkIG9yIHVuZG8gd2hhdGV2ZXIgaGFzIGJlZW4gZG9uZSB3 aXRoIHRoZSBwcmV2aW91c2x5LXByb2Nlc3NlZApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdh bHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdh bHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYwppbmRleCAyNDM5NzMzYjU1 Li45NzExMWQ5NjZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xp YnBxd2FscmVjZWl2ZXIuYwpAQCAtMTE4Myw2ICsxMTgzLDcgQEAgbGlicHFy Y3ZfZXhlYyhXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnF1 ZXJ5LAogCXN3aXRjaCAoUFFyZXN1bHRTdGF0dXMocGdyZXMpKQogCXsKIAkJ Y2FzZSBQR1JFU19TSU5HTEVfVFVQTEU6CisJCWNhc2UgUEdSRVNfVFVQTEVT X0NIVU5LOgogCQljYXNlIFBHUkVTX1RVUExFU19PSzoKIAkJCXdhbHJlcy0+ c3RhdHVzID0gV0FMUkNWX09LX1RVUExFUzsKIAkJCWxpYnBxcmN2X3Byb2Nl c3NUdXBsZXMocGdyZXMsIHdhbHJlcywgblJldFR5cGVzLCByZXRUeXBlcyk7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2FtY2hlY2svcGdfYW1jaGVjay5j IGIvc3JjL2Jpbi9wZ19hbWNoZWNrL3BnX2FtY2hlY2suYwppbmRleCBlNWY5 ZWVkYzQ3Li43MjgzMDVhN2NmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Ft Y2hlY2svcGdfYW1jaGVjay5jCisrKyBiL3NyYy9iaW4vcGdfYW1jaGVjay9w Z19hbWNoZWNrLmMKQEAgLTk4OSw2ICs5ODksNyBAQCBzaG91bGRfcHJvY2Vz c2luZ19jb250aW51ZShQR3Jlc3VsdCAqcmVzKQogCQljYXNlIFBHUkVTX0NP UFlfSU46CiAJCWNhc2UgUEdSRVNfQ09QWV9CT1RIOgogCQljYXNlIFBHUkVT X1NJTkdMRV9UVVBMRToKKwkJY2FzZSBQR1JFU19UVVBMRVNfQ0hVTks6CiAJ CWNhc2UgUEdSRVNfUElQRUxJTkVfU1lOQzoKIAkJY2FzZSBQR1JFU19QSVBF TElORV9BQk9SVEVEOgogCQkJcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQgYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9leHBvcnRzLnR4dAppbmRleCAwODg1OTJkZWIxLi4yMGVm ZmM4MzM3IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBv cnRzLnR4dAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4 dApAQCAtMTkzLDMgKzE5Myw0IEBAIFBRc2VuZENsb3NlUHJlcGFyZWQgICAg ICAgMTkwCiBQUXNlbmRDbG9zZVBvcnRhbCAgICAgICAgIDE5MQogUFFjaGFu Z2VQYXNzd29yZCAgICAgICAgICAxOTIKIFBRc2VuZFBpcGVsaW5lU3luYyAg ICAgICAgMTkzCitQUXNldENodW5rZWRSb3dzTW9kZQkgIDE5NApkaWZmIC0t Z2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCmluZGV4IGMwMmE5MTgwYjIuLmI5 YTczYjU4M2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2Zl LWV4ZWMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMK QEAgLTQxLDcgKzQxLDggQEAgY2hhcgkgICAqY29uc3QgcGdyZXNTdGF0dXNb XSA9IHsKIAkiUEdSRVNfQ09QWV9CT1RIIiwKIAkiUEdSRVNfU0lOR0xFX1RV UExFIiwKIAkiUEdSRVNfUElQRUxJTkVfU1lOQyIsCi0JIlBHUkVTX1BJUEVM SU5FX0FCT1JURUQiCisJIlBHUkVTX1BJUEVMSU5FX0FCT1JURUQiLAorCSJQ R1JFU19UVVBMRVNfQ0hVTksiCiB9OwogCiAvKiBXZSByZXR1cm4gdGhpcyBp ZiB3ZSdyZSB1bmFibGUgdG8gbWFrZSBhIFBHcmVzdWx0IGF0IGFsbCAqLwpA QCAtODMsNyArODQsNyBAQCBzdGF0aWMgaW50CWNoZWNrX2ZpZWxkX251bWJl cihjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIHN0YXRp YyB2b2lkIHBxUGlwZWxpbmVQcm9jZXNzUXVldWUoUEdjb25uICpjb25uKTsK IHN0YXRpYyBpbnQJcHFQaXBlbGluZVN5bmNJbnRlcm5hbChQR2Nvbm4gKmNv bm4sIGJvb2wgaW1tZWRpYXRlX2ZsdXNoKTsKIHN0YXRpYyBpbnQJcHFQaXBl bGluZUZsdXNoKFBHY29ubiAqY29ubik7Ci0KK3N0YXRpYyBib29sIGNhbkNo YW5nZVJvd01vZGUoUEdjb25uICpjb25uKTsKIAogLyogLS0tLS0tLS0tLS0t LS0tLQogICogU3BhY2UgbWFuYWdlbWVudCBmb3IgUEdyZXN1bHQuCkBAIC0y MDAsNiArMjAxLDcgQEAgUFFtYWtlRW1wdHlQR3Jlc3VsdChQR2Nvbm4gKmNv bm4sIEV4ZWNTdGF0dXNUeXBlIHN0YXR1cykKIAkJCWNhc2UgUEdSRVNfQ09Q WV9JTjoKIAkJCWNhc2UgUEdSRVNfQ09QWV9CT1RIOgogCQkJY2FzZSBQR1JF U19TSU5HTEVfVFVQTEU6CisJCQljYXNlIFBHUkVTX1RVUExFU19DSFVOSzoK IAkJCQkvKiBub24tZXJyb3IgY2FzZXMgKi8KIAkJCQlicmVhazsKIAkJCWRl ZmF1bHQ6CkBAIC05MTMsOCArOTE1LDkgQEAgcHFQcmVwYXJlQXN5bmNSZXN1 bHQoUEdjb25uICpjb25uKQogCS8qCiAJICogUmVwbGFjZSBjb25uLT5yZXN1 bHQgd2l0aCBuZXh0X3Jlc3VsdCwgaWYgYW55LiAgSW4gdGhlIG5vcm1hbCBj YXNlCiAJICogdGhlcmUgaXNuJ3QgYSBuZXh0IHJlc3VsdCBhbmQgd2UncmUg anVzdCBkcm9wcGluZyBvd25lcnNoaXAgb2YgdGhlCi0JICogY3VycmVudCBy ZXN1bHQuICBJbiBzaW5nbGUtcm93IG1vZGUgdGhpcyByZXN0b3JlcyB0aGUg c2l0dWF0aW9uIHRvIHdoYXQKLQkgKiBpdCB3YXMgYmVmb3JlIHdlIGNyZWF0 ZWQgdGhlIGN1cnJlbnQgc2luZ2xlLXJvdyByZXN1bHQuCisJICogY3VycmVu dCByZXN1bHQuICBJbiBzaW5nbGUtcm93IGFuZCBjaHVua2VkIG1vZGVzIHRo aXMgcmVzdG9yZXMgdGhlCisJICogc2l0dWF0aW9uIHRvIHdoYXQgaXQgd2Fz IGJlZm9yZSB3ZSBjcmVhdGVkIHRoZSBjdXJyZW50IHNpbmdsZS1yb3cgb3IK KwkgKiBjaHVuay1vZi1yb3dzIHJlc3VsdC4KIAkgKi8KIAljb25uLT5yZXN1 bHQgPSBjb25uLT5uZXh0X3Jlc3VsdDsKIAljb25uLT5lcnJvcl9yZXN1bHQg PSBmYWxzZTsgLyogbmV4dF9yZXN1bHQgaXMgbmV2ZXIgYW4gZXJyb3IgKi8K QEAgLTEyMDAsMTAgKzEyMDMsMTEgQEAgcHFTYXZlUGFyYW1ldGVyU3RhdHVz KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAq dmFsdWUpCiAgKiAoU3VjaCBhIHN0cmluZyBzaG91bGQgYWxyZWFkeSBiZSB0 cmFuc2xhdGVkIHZpYSBsaWJwcV9nZXR0ZXh0KCkuKQogICogSWYgaXQgaXMg bGVmdCBOVUxMLCB0aGUgZXJyb3IgaXMgcHJlc3VtZWQgdG8gYmUgIm91dCBv ZiBtZW1vcnkiLgogICoKLSAqIEluIHNpbmdsZS1yb3cgbW9kZSwgd2UgY3Jl YXRlIGEgbmV3IHJlc3VsdCBob2xkaW5nIGp1c3QgdGhlIGN1cnJlbnQgcm93 LAotICogc3Rhc2hpbmcgdGhlIHByZXZpb3VzIHJlc3VsdCBpbiBjb25uLT5u ZXh0X3Jlc3VsdCBzbyB0aGF0IGl0IGJlY29tZXMKLSAqIGFjdGl2ZSBhZ2Fp biBhZnRlciBwcVByZXBhcmVBc3luY1Jlc3VsdCgpLiAgVGhpcyBhbGxvd3Mg dGhlIHJlc3VsdCBtZXRhZGF0YQotICogKGNvbHVtbiBkZXNjcmlwdGlvbnMp IHRvIGJlIGNhcnJpZWQgZm9yd2FyZCB0byBlYWNoIHJlc3VsdCByb3cuCisg KiBJbiBzaW5nbGUtcm93IG9yIGNodW5rZWQgbW9kZSwgd2UgY3JlYXRlIGEg bmV3IHJlc3VsdCBob2xkaW5nIGp1c3QgdGhlCisgKiBjdXJyZW50IHNldCBv ZiByb3dzLCBzdGFzaGluZyB0aGUgcHJldmlvdXMgcmVzdWx0IGluIGNvbm4t Pm5leHRfcmVzdWx0IHNvCisgKiB0aGF0IGl0IGJlY29tZXMgYWN0aXZlIGFn YWluIGFmdGVyIHBxUHJlcGFyZUFzeW5jUmVzdWx0KCkuICBUaGlzIGFsbG93 cyB0aGUKKyAqIHJlc3VsdCBtZXRhZGF0YSAoY29sdW1uIGRlc2NyaXB0aW9u cykgdG8gYmUgY2FycmllZCBmb3J3YXJkIHRvIGVhY2ggcmVzdWx0CisgKiBy b3cuCiAgKi8KIGludAogcHFSb3dQcm9jZXNzb3IoUEdjb25uICpjb25uLCBj b25zdCBjaGFyICoqZXJybXNncCkKQEAgLTEyMjgsNiArMTIzMiwyOCBAQCBw cVJvd1Byb2Nlc3NvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKiplcnJt c2dwKQogCQlpZiAoIXJlcykKIAkJCXJldHVybiAwOwogCX0KKwllbHNlIGlm IChjb25uLT5yb3dzQ2h1bmtTaXplID4gMCkKKwl7CisJCS8qCisJCSAqIElu IGNodW5rZWQgbW9kZSwgbWFrZSBhIG5ldyBQR3Jlc3VsdCB0aGF0IHdpbGwg aG9sZCBOIHJvd3M7IHRoZQorCQkgKiBvcmlnaW5hbCBjb25uLT5yZXN1bHQg aXMgbGVmdCB1bmNoYW5nZWQsIGFzIGluIHRoZSBzaW5nbGUtcm93IG1vZGUu CisJCSAqLworCQlpZiAoIWNvbm4tPmNodW5rX3Jlc3VsdCkKKwkJeworCQkJ LyogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgdGhlIHJlc3VsdCB0byBob2xk IGEgY2h1bmsgb2Ygcm93cyAqLworCQkJcmVzID0gUFFjb3B5UmVzdWx0KHJl cywKKwkJCQkJCQkgICBQR19DT1BZUkVTX0FUVFJTIHwgUEdfQ09QWVJFU19F VkVOVFMgfAorCQkJCQkJCSAgIFBHX0NPUFlSRVNfTk9USUNFSE9PS1MpOwor CQkJaWYgKCFyZXMpCisJCQkJcmV0dXJuIDA7CisJCQkvKiBDaGFuZ2UgcmVz dWx0IHN0YXR1cyB0byBzcGVjaWFsIGNodW5rLW9mLXJvd3MgdmFsdWUgKi8K KwkJCXJlcy0+cmVzdWx0U3RhdHVzID0gUEdSRVNfVFVQTEVTX0NIVU5LOwor CQkJLyogS2VlcCB0aGlzIHJlc3VsdCB0byByZXVzZSBmb3IgdGhlIG5leHQg cm93cyBvZiB0aGUgY2h1bmsgKi8KKwkJCWNvbm4tPmNodW5rX3Jlc3VsdCA9 IHJlczsKKwkJfQorCQllbHNlCisJCQlyZXMgPSBjb25uLT5jaHVua19yZXN1 bHQ7CS8qIFVzZSB0aGUgY3VycmVudCBjaHVuayAqLworCX0KIAogCS8qCiAJ ICogQmFzaWNhbGx5IHdlIGp1c3QgYWxsb2NhdGUgc3BhY2UgaW4gdGhlIFBH cmVzdWx0IGZvciBlYWNoIGZpZWxkIGFuZApAQCAtMTI5MCw2ICsxMzE2LDIx IEBAIHBxUm93UHJvY2Vzc29yKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAq KmVycm1zZ3ApCiAJCWNvbm4tPmFzeW5jU3RhdHVzID0gUEdBU1lOQ19SRUFE WV9NT1JFOwogCX0KIAorCS8qCisJICogSW4gY2h1bmtlZCBtb2RlLCBpZiB0 aGUgY291bnQgaGFzIHJlYWNoZWQgdGhlIHJlcXVlc3RlZCBsaW1pdCwgbWFr ZSB0aGUKKwkgKiByb3dzIG9mIHRoZSBjdXJyZW50IGNodW5rIGF2YWlsYWJs ZSBpbW1lZGlhdGVseS4KKwkgKi8KKwllbHNlIGlmIChjb25uLT5yb3dzQ2h1 bmtTaXplID4gMCAmJiByZXMtPm50dXBzID49IGNvbm4tPnJvd3NDaHVua1Np emUpCisJeworCQkvKiBTdGFzaCBvbGQgcmVzdWx0IGZvciByZS11c2UgbGF0 ZXIgKi8KKwkJY29ubi0+bmV4dF9yZXN1bHQgPSBjb25uLT5yZXN1bHQ7CisJ CWNvbm4tPnJlc3VsdCA9IHJlczsKKwkJLyogRG8gbm90IHJldXNlIHRoYXQg Y2h1bmsgb2YgcmVzdWx0cyAqLworCQljb25uLT5jaHVua19yZXN1bHQgPSBO VUxMOworCQkvKiBBbmQgbWFyayB0aGUgcmVzdWx0IHJlYWR5IHRvIHJldHVy biAqLworCQljb25uLT5hc3luY1N0YXR1cyA9IFBHQVNZTkNfUkVBRFlfTU9S RTsKKwl9CisKIAlyZXR1cm4gMTsKIAogZmFpbDoKQEAgLTE3NDUsOCArMTc4 Niw5IEBAIFBRc2VuZFF1ZXJ5U3RhcnQoUEdjb25uICpjb25uLCBib29sIG5l d1F1ZXJ5KQogCQkgKi8KIAkJcHFDbGVhckFzeW5jUmVzdWx0KGNvbm4pOwog Ci0JCS8qIHJlc2V0IHNpbmdsZS1yb3cgcHJvY2Vzc2luZyBtb2RlICovCisJ CS8qIHJlc2V0IHJvdy1ieS1yb3cgYW5kIGNodW5rZWQgcHJvY2Vzc2luZyBt b2RlcyAqLwogCQljb25uLT5zaW5nbGVSb3dNb2RlID0gZmFsc2U7CisJCWNv bm4tPnJvd3NDaHVua1NpemUgPSAwOwogCX0KIAogCS8qIHJlYWR5IHRvIHNl bmQgY29tbWFuZCBtZXNzYWdlICovCkBAIC0xOTMwLDI1ICsxOTcyLDUxIEBA IHNlbmRGYWlsZWQ6CiAgKi8KIGludAogUFFzZXRTaW5nbGVSb3dNb2RlKFBH Y29ubiAqY29ubikKK3sKKwlpZiAoY2FuQ2hhbmdlUm93TW9kZShjb25uKSkK Kwl7CisJCWNvbm4tPnNpbmdsZVJvd01vZGUgPSB0cnVlOworCQlyZXR1cm4g MTsKKwl9CisJZWxzZQorCQlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNlbGVj dCBjaHVua2VkIHJlc3VsdHMgcHJvY2Vzc2luZyBtb2RlCisgKi8KK2ludAor UFFzZXRDaHVua2VkUm93c01vZGUoUEdjb25uICpjb25uLCBpbnQgY2h1bmtT aXplKQoreworCWlmIChjaHVua1NpemUgPj0gMCAmJiBjYW5DaGFuZ2VSb3dN b2RlKGNvbm4pKQorCXsKKwkJY29ubi0+cm93c0NodW5rU2l6ZSA9IGNodW5r U2l6ZTsKKwkJcmV0dXJuIDE7CisJfQorCWVsc2UKKwkJcmV0dXJuIDA7Cit9 CisKK3N0YXRpYworYm9vbAorY2FuQ2hhbmdlUm93TW9kZShQR2Nvbm4gKmNv bm4pCiB7CiAJLyoKLQkgKiBPbmx5IGFsbG93IHNldHRpbmcgdGhlIGZsYWcg d2hlbiB3ZSBoYXZlIGxhdW5jaGVkIGEgcXVlcnkgYW5kIG5vdCB5ZXQKLQkg KiByZWNlaXZlZCBhbnkgcmVzdWx0cy4KKwkgKiBPbmx5IGFsbG93IHNldHRp bmcgdGhlIHJvdy1ieS1yb3cgb3IgYnktY2h1bmtzIG1vZGVzIHdoZW4gd2Ug aGF2ZQorCSAqIGxhdW5jaGVkIGEgcXVlcnkgYW5kIG5vdCB5ZXQgcmVjZWl2 ZWQgYW55IHJlc3VsdHMuCiAJICovCiAJaWYgKCFjb25uKQotCQlyZXR1cm4g MDsKKwkJcmV0dXJuIGZhbHNlOwogCWlmIChjb25uLT5hc3luY1N0YXR1cyAh PSBQR0FTWU5DX0JVU1kpCi0JCXJldHVybiAwOworCQlyZXR1cm4gZmFsc2U7 CiAJaWYgKCFjb25uLT5jbWRfcXVldWVfaGVhZCB8fAogCQkoY29ubi0+Y21k X3F1ZXVlX2hlYWQtPnF1ZXJ5Y2xhc3MgIT0gUEdRVUVSWV9TSU1QTEUgJiYK IAkJIGNvbm4tPmNtZF9xdWV1ZV9oZWFkLT5xdWVyeWNsYXNzICE9IFBHUVVF UllfRVhURU5ERUQpKQotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIGZhbHNlOwog CWlmIChwZ0hhdmVQZW5kaW5nUmVzdWx0KGNvbm4pKQotCQlyZXR1cm4gMDsK KwkJcmV0dXJuIGZhbHNlOwogCi0JLyogT0ssIHNldCBmbGFnICovCi0JY29u bi0+c2luZ2xlUm93TW9kZSA9IHRydWU7Ci0JcmV0dXJuIDE7CisJcmV0dXJu IHRydWU7CiB9CiAKIC8qCkBAIC0yMTE1LDYgKzIxODMsMTYgQEAgUFFnZXRS ZXN1bHQoUEdjb25uICpjb25uKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBQR0FT WU5DX1JFQURZOgorCQkJLyoKKwkJCSAqIElmIHRoZXJlIGlzIGEgcGVuZGlu ZyBjaHVuayBvZiByZXN1bHRzLCByZXR1cm4gaXQKKwkJCSAqLworCQkJaWYg KGNvbm4tPmNodW5rX3Jlc3VsdCAhPSBOVUxMKQorCQkJeworCQkJCXJlcyA9 IGNvbm4tPmNodW5rX3Jlc3VsdDsKKwkJCQljb25uLT5jaHVua19yZXN1bHQg PSBOVUxMOworCQkJCWJyZWFrOworCQkJfQorCiAJCQlyZXMgPSBwcVByZXBh cmVBc3luY1Jlc3VsdChjb25uKTsKIAogCQkJLyogQWR2YW5jZSB0aGUgcXVl dWUgYXMgYXBwcm9wcmlhdGUgKi8KQEAgLTMxNzMsMTAgKzMyNTEsMTEgQEAg cHFQaXBlbGluZVByb2Nlc3NRdWV1ZShQR2Nvbm4gKmNvbm4pCiAJfQogCiAJ LyoKLQkgKiBSZXNldCBzaW5nbGUtcm93IHByb2Nlc3NpbmcgbW9kZS4gIChD bGllbnQgaGFzIHRvIHNldCBpdCB1cCBmb3IgZWFjaAorCSAqIFJlc2V0IHRv IGZ1bGwgcmVzdWx0IHNldHMgbW9kZS4gKENsaWVudCBoYXMgdG8gc2V0IGl0 IHVwIGZvciBlYWNoCiAJICogcXVlcnksIGlmIGRlc2lyZWQuKQogCSAqLwog CWNvbm4tPnNpbmdsZVJvd01vZGUgPSBmYWxzZTsKKwljb25uLT5yb3dzQ2h1 bmtTaXplID0gMDsKIAogCS8qCiAJICogSWYgdGhlcmUgYXJlIG5vIGZ1cnRo ZXIgY29tbWFuZHMgdG8gcHJvY2VzcyBpbiB0aGUgcXVldWUsIGdldCB1cyBp bgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUu aCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKaW5kZXggZGVm YzQxNWZhMy4uMjFkZTIxZmJlOCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvbGlicHEtZmUuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJw cS9saWJwcS1mZS5oCkBAIC0xMDksOCArMTA5LDkgQEAgdHlwZWRlZiBlbnVt CiAJUEdSRVNfQ09QWV9CT1RILAkJCS8qIENvcHkgSW4vT3V0IGRhdGEgdHJh bnNmZXIgaW4gcHJvZ3Jlc3MgKi8KIAlQR1JFU19TSU5HTEVfVFVQTEUsCQkJ Lyogc2luZ2xlIHR1cGxlIGZyb20gbGFyZ2VyIHJlc3VsdHNldCAqLwogCVBH UkVTX1BJUEVMSU5FX1NZTkMsCQkvKiBwaXBlbGluZSBzeW5jaHJvbml6YXRp b24gcG9pbnQgKi8KLQlQR1JFU19QSVBFTElORV9BQk9SVEVECQkvKiBDb21t YW5kIGRpZG4ndCBydW4gYmVjYXVzZSBvZiBhbiBhYm9ydAorCVBHUkVTX1BJ UEVMSU5FX0FCT1JURUQsCQkvKiBDb21tYW5kIGRpZG4ndCBydW4gYmVjYXVz ZSBvZiBhbiBhYm9ydAogCQkJCQkJCQkgKiBlYXJsaWVyIGluIGEgcGlwZWxp bmUgKi8KKwlQR1JFU19UVVBMRVNfQ0hVTksJCQkvKiBzZXQgb2YgdHVwbGVz IGZyb20gbGFyZ2VyIHJlc3VsdHNldCAqLwogfSBFeGVjU3RhdHVzVHlwZTsK IAogdHlwZWRlZiBlbnVtCkBAIC00NjMsNiArNDY0LDcgQEAgZXh0ZXJuIGlu dAlQUXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCQkJ Y29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1bHRG b3JtYXQpOwogZXh0ZXJuIGludAlQUXNldFNpbmdsZVJvd01vZGUoUEdjb25u ICpjb25uKTsKK2V4dGVybiBpbnQJUFFzZXRDaHVua2VkUm93c01vZGUoUEdj b25uICpjb25uLCBpbnQgY2h1bmtTaXplKTsKIGV4dGVybiBQR3Jlc3VsdCAq UFFnZXRSZXN1bHQoUEdjb25uICpjb25uKTsKIAogLyogUm91dGluZXMgZm9y IG1hbmFnaW5nIGFuIGFzeW5jaHJvbm91cyBxdWVyeSAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAppbmRleCBmZjhlMGRjZTc3Li43 NjEzMGUyOTEyIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9s aWJwcS1pbnQuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1p bnQuaApAQCAtNDMxLDYgKzQzMSw4IEBAIHN0cnVjdCBwZ19jb25uCiAJCQkJ CQkJCSAqIHNlbmRpbmcgc2VtYW50aWNzICovCiAJUEdwaXBlbGluZVN0YXR1 cyBwaXBlbGluZVN0YXR1czsJLyogc3RhdHVzIG9mIHBpcGVsaW5lIG1vZGUg Ki8KIAlib29sCQlzaW5nbGVSb3dNb2RlOwkvKiByZXR1cm4gY3VycmVudCBx dWVyeSByZXN1bHQgcm93LWJ5LXJvdz8gKi8KKwlpbnQJCQlyb3dzQ2h1bmtT aXplOwkvKiBub24temVybyB0byByZXR1cm4gcXVlcnkgcmVzdWx0cyBieSBj aHVua3MKKwkJCQkJCQkJICogbm90IGV4Y2VlZGluZyB0aGF0IG51bWJlciBv ZiByb3dzICovCiAJY2hhcgkJY29weV9pc19iaW5hcnk7IC8qIDEgPSBjb3B5 IGJpbmFyeSwgMCA9IGNvcHkgdGV4dCAqLwogCWludAkJCWNvcHlfYWxyZWFk eV9kb25lOwkvKiAjIGJ5dGVzIGFscmVhZHkgcmV0dXJuZWQgaW4gQ09QWSBP VVQgKi8KIAlQR25vdGlmeSAgICpub3RpZnlIZWFkOwkJLyogb2xkZXN0IHVu cmVwb3J0ZWQgTm90aWZ5IG1zZyAqLwpAQCAtNTM2LDcgKzUzOCwxMCBAQCBz dHJ1Y3QgcGdfY29ubgogCSAqLwogCVBHcmVzdWx0ICAgKnJlc3VsdDsJCQkv KiByZXN1bHQgYmVpbmcgY29uc3RydWN0ZWQgKi8KIAlib29sCQllcnJvcl9y ZXN1bHQ7CS8qIGRvIHdlIG5lZWQgdG8gbWFrZSBhbiBFUlJPUiByZXN1bHQ/ ICovCi0JUEdyZXN1bHQgICAqbmV4dF9yZXN1bHQ7CS8qIG5leHQgcmVzdWx0 ICh1c2VkIGluIHNpbmdsZS1yb3cgbW9kZSkgKi8KKwlQR3Jlc3VsdCAgICpu ZXh0X3Jlc3VsdDsJLyogbmV4dCByZXN1bHQgKHVzZWQgaW4gc2luZ2xlLXJv dyBhbmQKKwkJCQkJCQkJICogYnktY2h1bmtzIG1vZGVzKSAqLworCVBHcmVz dWx0ICAgKmNodW5rX3Jlc3VsdDsJLyogY3VycmVudCBjaHVuayBvZiByZXN1 bHRzIChsaW1pdGVkIHRvCisJCQkJCQkJCSAqIHJvd3NDaHVua1NpemUpICov CiAKIAkvKiBBc3NvcnRlZCBzdGF0ZSBmb3IgU0FTTCwgU1NMLCBHU1MsIGV0 YyAqLwogCWNvbnN0IHBnX2ZlX3Nhc2xfbWVjaCAqc2FzbDsKLS0gCjIuMzQu MQoK ------------=_1706624979-1514-1 Content-Type: text-x-patch; name="v6-0002-Reimplement-FETCH_COUNT-with-the-chunked-mode-in-.patch" Content-Disposition: attachment; filename="v6-0002-Reimplement-FETCH_COUNT-with-the-chunked-mode-in-.patch" Content-Transfer-Encoding: base64 RnJvbSAwYzU1MWFkOTUzNTdiNTI0ZWVkN2U2ZDEyZGExMzMyZjNiMWRiNWI5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RGFu aWVsPTIwVj1DMz1BOXJpdD1DMz1BOT89IDxkYW5pZWxAbWFuaXRvdS1tYWls Lm9yZz4KRGF0ZTogVHVlLCAzMCBKYW4gMjAyNCAxNDo0MDoxMiArMDEwMApT dWJqZWN0OiBbUEFUQ0ggdjYgMi8yXSBSZWltcGxlbWVudCBGRVRDSF9DT1VO VCB3aXRoIHRoZSBjaHVua2VkIG1vZGUgaW4KIGxpYnBxLgoKQ3Vyc29ycyB3 ZXJlIHVzZWQgb25seSB3aGVuIHRoZSBjb21tYW5kIHN0YXJ0cyB3aXRoIHRo ZSBrZXl3b3JkICJTRUxFQ1QiLApleGNsdWRpbmcgcXVlcmllcyB0aGF0IHN0 YXJ0IHdpdGggIldJVEgiIG9yICJVUERBVEUiIG9yICJJTlNFUlQiIHRoYXQK bWF5IGFsc28gcmV0dXJuIGxhcmdlIHJlc3VsdCBzZXRzLgotLS0KIHNyYy9i aW4vcHNxbC9jb21tb24uYyAgICAgICAgICAgICAgfCA1NDUgKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9iaW4vcHNxbC90LzAwMV9iYXNp Yy5wbCAgICAgICAgfCAgIDYgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHNxbC5vdXQgfCAgIDkgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Bz cWwuc3FsICAgICAgfCAgIDQgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTk2IGlu c2VydGlvbnMoKyksIDM2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmluL3BzcWwvY29tbW9uLmMgYi9zcmMvYmluL3BzcWwvY29tbW9uLmMK aW5kZXggNzZlMDFiMDJhMy4uMjllMzUyZGRkZSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tb24u YwpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgInNldHRpbmdzLmgiCiAK IHN0YXRpYyBib29sIERlc2NyaWJlUXVlcnkoY29uc3QgY2hhciAqcXVlcnks IGRvdWJsZSAqZWxhcHNlZF9tc2VjKTsKLXN0YXRpYyBib29sIEV4ZWNRdWVy eVVzaW5nQ3Vyc29yKGNvbnN0IGNoYXIgKnF1ZXJ5LCBkb3VibGUgKmVsYXBz ZWRfbXNlYyk7CiBzdGF0aWMgaW50CUV4ZWNRdWVyeUFuZFByb2Nlc3NSZXN1 bHRzKGNvbnN0IGNoYXIgKnF1ZXJ5LAogCQkJCQkJCQkJICAgZG91YmxlICpl bGFwc2VkX21zZWMsCiAJCQkJCQkJCQkgICBib29sICpzdnB0X2dvbmVfcCwK QEAgLTQwLDggKzM5LDYgQEAgc3RhdGljIGludAlFeGVjUXVlcnlBbmRQcm9j ZXNzUmVzdWx0cyhjb25zdCBjaGFyICpxdWVyeSwKIAkJCQkJCQkJCSAgIGNv bnN0IHByaW50UXVlcnlPcHQgKm9wdCwKIAkJCQkJCQkJCSAgIEZJTEUgKnBy aW50UXVlcnlGb3V0KTsKIHN0YXRpYyBib29sIGNvbW1hbmRfbm9fYmVnaW4o Y29uc3QgY2hhciAqcXVlcnkpOwotc3RhdGljIGJvb2wgaXNfc2VsZWN0X2Nv bW1hbmQoY29uc3QgY2hhciAqcXVlcnkpOwotCiAKIC8qCiAgKiBvcGVuUXVl cnlPdXRwdXRGaWxlIC0tLSBhdHRlbXB0IHRvIG9wZW4gYSBxdWVyeSBvdXRw dXQgZmlsZQpAQCAtMzczLDYgKzM3MCw3IEBAIEFjY2VwdFJlc3VsdChjb25z dCBQR3Jlc3VsdCAqcmVzdWx0LCBib29sIHNob3dfZXJyb3IpCiAJCXsKIAkJ CWNhc2UgUEdSRVNfQ09NTUFORF9PSzoKIAkJCWNhc2UgUEdSRVNfVFVQTEVT X09LOgorCQkJY2FzZSBQR1JFU19UVVBMRVNfQ0hVTks6CiAJCQljYXNlIFBH UkVTX0VNUFRZX1FVRVJZOgogCQkJY2FzZSBQR1JFU19DT1BZX0lOOgogCQkJ Y2FzZSBQR1JFU19DT1BZX09VVDoKQEAgLTExMzEsMTYgKzExMjksMTAgQEAg U2VuZFF1ZXJ5KGNvbnN0IGNoYXIgKnF1ZXJ5KQogCQkvKiBEZXNjcmliZSBx dWVyeSdzIHJlc3VsdCBjb2x1bW5zLCB3aXRob3V0IGV4ZWN1dGluZyBpdCAq LwogCQlPSyA9IERlc2NyaWJlUXVlcnkocXVlcnksICZlbGFwc2VkX21zZWMp OwogCX0KLQllbHNlIGlmIChwc2V0LmZldGNoX2NvdW50IDw9IDAgfHwgcHNl dC5nZXhlY19mbGFnIHx8Ci0JCQkgcHNldC5jcm9zc3RhYl9mbGFnIHx8ICFp c19zZWxlY3RfY29tbWFuZChxdWVyeSkpCi0JewotCQkvKiBEZWZhdWx0IGZl dGNoLWl0LWFsbC1hbmQtcHJpbnQgbW9kZSAqLwotCQlPSyA9IChFeGVjUXVl cnlBbmRQcm9jZXNzUmVzdWx0cyhxdWVyeSwgJmVsYXBzZWRfbXNlYywgJnN2 cHRfZ29uZSwgZmFsc2UsIDAsIE5VTEwsIE5VTEwpID4gMCk7Ci0JfQogCWVs c2UKIAl7Ci0JCS8qIEZldGNoLWluLXNlZ21lbnRzIG1vZGUgKi8KLQkJT0sg PSBFeGVjUXVlcnlVc2luZ0N1cnNvcihxdWVyeSwgJmVsYXBzZWRfbXNlYyk7 CisJCS8qIERlZmF1bHQgZmV0Y2gtYW5kLXByaW50IG1vZGUgKi8KKwkJT0sg PSAoRXhlY1F1ZXJ5QW5kUHJvY2Vzc1Jlc3VsdHMocXVlcnksICZlbGFwc2Vk X21zZWMsICZzdnB0X2dvbmUsIGZhbHNlLCAwLCBOVUxMLCBOVUxMKSA+IDAp OwogCX0KIAogCWlmICghT0sgJiYgcHNldC5lY2hvID09IFBTUUxfRUNIT19F UlJPUlMpCkBAIC0xMzkyLDYgKzEzODQsNDcgQEAgRGVzY3JpYmVRdWVyeShj b25zdCBjaGFyICpxdWVyeSwgZG91YmxlICplbGFwc2VkX21zZWMpCiAJcmV0 dXJuIE9LOwogfQogCisvKgorICogQ2hlY2sgaWYgYW4gb3V0cHV0IHN0cmVh bSBmb3IgXGcgbmVlZHMgdG8gYmUgb3BlbmVkLCBhbmQgaWYKKyAqIHllcywg b3BlbiBpdC4KKyAqIFJldHVybiBmYWxzZSBpZiBhbiBlcnJvciBvY2N1cnJl ZCwgdHJ1ZSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBib29sCitTZXR1cEdP dXRwdXQoUEdyZXN1bHQgKnJlc3VsdCwgRklMRSAqKmdmaWxlX2ZvdXQsIGJv b2wgKmlzX3BpcGUpCit7CisJRXhlY1N0YXR1c1R5cGUgc3RhdHVzID0gUFFy ZXN1bHRTdGF0dXMocmVzdWx0KTsKKwlpZiAocHNldC5nZm5hbWUgIT0gTlVM TCAmJgkJCS8qIHRoZXJlIGlzIGEgXGcgZmlsZSBvciBwcm9ncmFtICovCisJ CSpnZmlsZV9mb3V0ID09IE5VTEwgJiYgICAgICAgICAgIC8qIGFuZCBpdCdz IG5vdCBhbHJlYWR5IG9wZW5lZCAqLworCQkoc3RhdHVzID09IFBHUkVTX1RV UExFU19PSyB8fAorCQkgc3RhdHVzID09IFBHUkVTX1RVUExFU19DSFVOSyB8 fAorCQkgc3RhdHVzID09IFBHUkVTX0NPUFlfT1VUKSkKKwl7CisJCWlmIChv cGVuUXVlcnlPdXRwdXRGaWxlKHBzZXQuZ2ZuYW1lLCBnZmlsZV9mb3V0LCBp c19waXBlKSkKKwkJeworCQkJaWYgKGlzX3BpcGUpCisJCQkJZGlzYWJsZV9z aWdwaXBlX3RyYXAoKTsKKwkJfQorCQllbHNlCisJCQlyZXR1cm4gZmFsc2U7 CisJfQorCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgdm9pZAorQ2xvc2VH T3V0cHV0KEZJTEUgKmdmaWxlX2ZvdXQsIGJvb2wgaXNfcGlwZSkKK3sKKwkv KiBjbG9zZSBcZyBmaWxlIGlmIHdlIG9wZW5lZCBpdCAqLworCWlmIChnZmls ZV9mb3V0KQorCXsKKwkJaWYgKGlzX3BpcGUpCisJCXsKKwkJCVNldFNoZWxs UmVzdWx0VmFyaWFibGVzKHBjbG9zZShnZmlsZV9mb3V0KSk7CisJCQlyZXN0 b3JlX3NpZ3BpcGVfdHJhcCgpOworCQl9CisJCWVsc2UKKwkJCWZjbG9zZShn ZmlsZV9mb3V0KTsKKwl9Cit9CiAKIC8qCiAgKiBFeGVjUXVlcnlBbmRQcm9j ZXNzUmVzdWx0czogdXRpbGl0eSBmdW5jdGlvbiBmb3IgdXNlIGJ5IFNlbmRR dWVyeSgpCkBAIC0xNDI0LDEwICsxNDU3LDE2IEBAIEV4ZWNRdWVyeUFuZFBy b2Nlc3NSZXN1bHRzKGNvbnN0IGNoYXIgKnF1ZXJ5LAogCWJvb2wJCXJldHVy bl9lYXJseSA9IGZhbHNlOwogCWluc3RyX3RpbWUJYmVmb3JlLAogCQkJCWFm dGVyOworCWludCBmZXRjaF9jb3VudCA9IHBzZXQuZmV0Y2hfY291bnQ7CiAJ UEdyZXN1bHQgICAqcmVzdWx0OworCiAJRklMRQkgICAqZ2ZpbGVfZm91dCA9 IE5VTEw7CiAJYm9vbAkJZ2ZpbGVfaXNfcGlwZSA9IGZhbHNlOwogCisJaW50 NjQJCXRvdGFsX3R1cGxlcyA9IDA7CisJaW50CQkJZmx1c2hfZXJyb3IgPSAw OworCWJvb2wJCWlzX3BhZ2VyID0gZmFsc2U7CisKIAlpZiAodGltaW5nKQog CQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGJlZm9yZSk7CiAJZWxzZQpAQCAt MTQ1MCw2ICsxNDg5LDI5IEBAIEV4ZWNRdWVyeUFuZFByb2Nlc3NSZXN1bHRz KGNvbnN0IGNoYXIgKnF1ZXJ5LAogCQlyZXR1cm4gLTE7CiAJfQogCisJLyoK KwkgKiBJZiBGRVRDSF9DT1VOVCBpcyBzZXQgYW5kIHRoZSBjb250ZXh0IGFs bG93cyBpdCwgdXNlIHRoZSBzaW5nbGUgcm93CisJICogbW9kZSB0byBmZXRj aCByZXN1bHRzIGFuZCBoYXZlIG5vIG1vcmUgdGhhbiBGRVRDSF9DT1VOVCBy b3dzIGluCisJICogbWVtb3J5LgorCSAqLworCWlmIChmZXRjaF9jb3VudCA+ IDAgJiYgIXBzZXQuY3Jvc3N0YWJfZmxhZyAmJiAhcHNldC5nZXhlY19mbGFn ICYmICFpc193YXRjaAorCQkmJiAhcHNldC5nc2V0X3ByZWZpeCAmJiBwc2V0 LnNob3dfYWxsX3Jlc3VsdHMpCisJeworCQkvKgorCQkgKiBUaGUgcm93LWJ5 LWNodW5rcyBmZXRjaCBpcyBub3QgZW5hYmxlZCB3aGVuIFNIT1dfQUxMX1JF U1VMVFMgaXMgZmFsc2UsCisJCSAqIHNpbmNlIHdlIHdvdWxkIG5lZWQgdG8g YWNjdW11bGF0ZSBhbGwgcm93cyBiZWZvcmUga25vd2luZworCQkgKiB3aGV0 aGVyIHRoZXkgbmVlZCB0byBiZSBkaXNjYXJkZWQgb3IgZGlzcGxheWVkLCB3 aGljaCBjb250cmFkaWN0cworCQkgKiBGRVRDSF9DT1VOVC4KKwkJICovCisJ CWlmICghUFFzZXRDaHVua2VkUm93c01vZGUocHNldC5kYiwgZmV0Y2hfY291 bnQpKQorCQl7CisJCQlwZ19sb2dfd2FybmluZygiZmV0Y2hpbmcgcmVzdWx0 cyBpbiBjaHVua3MgbW9kZSBpcyB1bmF2YWlsYWJsZSIpOworCQkJZmV0Y2hf Y291bnQgPSAwOworCQl9CisJfQorCWVsc2UKKwkJZmV0Y2hfY291bnQgPSAw OwkJLyogZmV0Y2ggb25lIHJlc3VsdHNldCBwZXIgcXVlcnkgKi8KKwogCS8q CiAJICogSWYgU0lHSU5UIGlzIHNlbnQgd2hpbGUgdGhlIHF1ZXJ5IGlzIHBy b2Nlc3NpbmcsIHRoZSBpbnRlcnJ1cHQgd2lsbCBiZQogCSAqIGNvbnN1bWVk LiAgVGhlIHVzZXIncyBpbnRlbnRpb24sIHRob3VnaCwgaXMgdG8gY2FuY2Vs IHRoZSBlbnRpcmUgd2F0Y2gKQEAgLTE0NzMsNiArMTUzNSw4IEBAIEV4ZWNR dWVyeUFuZFByb2Nlc3NSZXN1bHRzKGNvbnN0IGNoYXIgKnF1ZXJ5LAogCQlF eGVjU3RhdHVzVHlwZSByZXN1bHRfc3RhdHVzOwogCQlQR3Jlc3VsdCAgICpu ZXh0X3Jlc3VsdDsKIAkJYm9vbAkJbGFzdDsKKwkJLyogd2hldGhlciB0aGUg b3V0cHV0IHN0YXJ0cyBiZWZvcmUgcmVzdWx0cyBhcmUgZnVsbHkgZmV0Y2hl ZCAqLworCQlib29sCQlwYXJ0aWFsX2Rpc3BsYXkgPSBmYWxzZTsKIAogCQlp ZiAoIUFjY2VwdFJlc3VsdChyZXN1bHQsIGZhbHNlKSkKIAkJewpAQCAtMTU2 OCwyMCArMTYzMiw5IEBAIEV4ZWNRdWVyeUFuZFByb2Nlc3NSZXN1bHRzKGNv bnN0IGNoYXIgKnF1ZXJ5LAogCQkJCX0KIAkJCQllbHNlIGlmIChwc2V0Lmdm bmFtZSkKIAkJCQl7Ci0JCQkJCS8qIHNlbmQgdG8gXGcgZmlsZSwgd2hpY2gg d2UgbWF5IGhhdmUgb3BlbmVkIGFscmVhZHkgKi8KLQkJCQkJaWYgKGdmaWxl X2ZvdXQgPT0gTlVMTCkKLQkJCQkJewotCQkJCQkJaWYgKG9wZW5RdWVyeU91 dHB1dEZpbGUocHNldC5nZm5hbWUsCi0JCQkJCQkJCQkJCQkmZ2ZpbGVfZm91 dCwgJmdmaWxlX2lzX3BpcGUpKQotCQkJCQkJewotCQkJCQkJCWlmIChnZmls ZV9pc19waXBlKQotCQkJCQkJCQlkaXNhYmxlX3NpZ3BpcGVfdHJhcCgpOwot CQkJCQkJCWNvcHlfc3RyZWFtID0gZ2ZpbGVfZm91dDsKLQkJCQkJCX0KLQkJ CQkJCWVsc2UKLQkJCQkJCQlzdWNjZXNzID0gZmFsc2U7Ci0JCQkJCX0KLQkJ CQkJZWxzZQorCQkJCQkvKiBDT1BZIGZvbGxvd2VkIGJ5IFxnIGZpbGVuYW1l IG9yIFxnIHxwcm9ncmFtICovCisJCQkJCXN1Y2Nlc3MgPSBTZXR1cEdPdXRw dXQocmVzdWx0LCAmZ2ZpbGVfZm91dCwgJmdmaWxlX2lzX3BpcGUpOworCQkJ CQlpZiAoc3VjY2VzcykKIAkJCQkJCWNvcHlfc3RyZWFtID0gZ2ZpbGVfZm91 dDsKIAkJCQl9CiAJCQkJZWxzZQpAQCAtMTU5OSw2ICsxNjUyLDkwIEBAIEV4 ZWNRdWVyeUFuZFByb2Nlc3NSZXN1bHRzKGNvbnN0IGNoYXIgKnF1ZXJ5LAog CQkJc3VjY2VzcyAmPSBIYW5kbGVDb3B5UmVzdWx0KCZyZXN1bHQsIGNvcHlf c3RyZWFtKTsKIAkJfQogCisJCWlmIChmZXRjaF9jb3VudCA+IDAgJiYgcmVz dWx0X3N0YXR1cyA9PSBQR1JFU19UVVBMRVNfQ0hVTkspCisJCXsKKwkJCUZJ TEUJICAgKnR1cGxlc19mb3V0ID0gcHJpbnRRdWVyeUZvdXQgPyBwcmludFF1 ZXJ5Rm91dCA6IHN0ZG91dDsKKwkJCXByaW50UXVlcnlPcHQgbXlfcG9wdCA9 IHBzZXQucG9wdDsKKworCQkJdG90YWxfdHVwbGVzID0gMDsKKwkJCXBhcnRp YWxfZGlzcGxheSA9IHRydWU7CisKKwkJCXN1Y2Nlc3MgPSBTZXR1cEdPdXRw dXQocmVzdWx0LCAmZ2ZpbGVfZm91dCwgJmdmaWxlX2lzX3BpcGUpOworCQkJ aWYgKGdmaWxlX2ZvdXQpCisJCQkJdHVwbGVzX2ZvdXQgPSBnZmlsZV9mb3V0 OworCisJCQkvKiBpbml0aWFsaXplIHByaW50IG9wdGlvbnMgZm9yIHBhcnRp YWwgdGFibGUgb3V0cHV0ICovCisJCQlteV9wb3B0LnRvcHQuc3RhcnRfdGFi bGUgPSB0cnVlOworCQkJbXlfcG9wdC50b3B0LnN0b3BfdGFibGUgPSBmYWxz ZTsKKwkJCW15X3BvcHQudG9wdC5wcmlvcl9yZWNvcmRzID0gMDsKKworCQkJ d2hpbGUgKHN1Y2Nlc3MpCisJCQl7CisJCQkJLyogcGFnZXI6IG9wZW4gYXQg bW9zdCBvbmNlIHBlciByZXN1bHRzZXQgKi8KKwkJCQlpZiAodHVwbGVzX2Zv dXQgPT0gc3Rkb3V0ICYmICFpc19wYWdlcikKKwkJCQl7CisJCQkJCXR1cGxl c19mb3V0ID0gUGFnZU91dHB1dChJTlRfTUFYLCAmKG15X3BvcHQudG9wdCkp OworCQkJCQlpc19wYWdlciA9IHRydWU7CisJCQkJfQorCQkJCS8qIGRpc3Bs YXkgdGhlIGN1cnJlbnQgY2h1bmsgb2YgcmVzdWx0cyB1bmxlc3MgdGhlIG91 dHB1dCBzdHJlYW0gaXMgbm90IHdvcmtpbmcgKi8KKwkJCQlpZiAoIWZsdXNo X2Vycm9yKQorCQkJCXsKKwkJCQkJcHJpbnRRdWVyeShyZXN1bHQsICZteV9w b3B0LCB0dXBsZXNfZm91dCwgaXNfcGFnZXIsIHBzZXQubG9nZmlsZSk7CisJ CQkJCWZsdXNoX2Vycm9yID0gZmZsdXNoKHR1cGxlc19mb3V0KTsKKwkJCQl9 CisKKwkJCQkvKiBhZnRlciB0aGUgZmlyc3QgcmVzdWx0IHNldCwgZGlzYWxs b3cgaGVhZGVyIGRlY29yYXRpb24gKi8KKwkJCQlteV9wb3B0LnRvcHQuc3Rh cnRfdGFibGUgPSBmYWxzZTsKKwkJCQlteV9wb3B0LnRvcHQucHJpb3JfcmVj b3JkcyArPSBQUW50dXBsZXMocmVzdWx0KTsKKwkJCQl0b3RhbF90dXBsZXMg Kz0gUFFudHVwbGVzKHJlc3VsdCk7CisKKwkJCQlDbGVhck9yU2F2ZVJlc3Vs dChyZXN1bHQpOworCisJCQkJcmVzdWx0ID0gUFFnZXRSZXN1bHQocHNldC5k Yik7CisJCQkJaWYgKHJlc3VsdCA9PSBOVUxMKQorCQkJCXsKKwkJCQkJLyoK KwkJCQkJICogRXJyb3IuIFdlIGV4cGVjdCBhIFBHUkVTX1RVUExFU19PSyBy ZXN1bHQgd2l0aAorCQkJCQkgKiB6ZXJvIHR1cGxlIGluIGl0IHRvIGZpbmlz aCB0aGUgZmV0Y2ggc2VxdWVuY2UuCisJCQkJCSAqLworCQkJCQlzdWNjZXNz ID0gZmFsc2U7CisJCQkJCWlmIChpc19wYWdlcikKKwkJCQkJCUNsb3NlUGFn ZXIodHVwbGVzX2ZvdXQpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJZWxz ZSBpZiAoUFFyZXN1bHRTdGF0dXMocmVzdWx0KSA9PSBQR1JFU19UVVBMRVNf T0spCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBUaGUgbGFzdCByb3cgaGFz IGJlZW4gcmVhZC4gRGlzcGxheSB0aGUgZm9vdGVyLgorCQkJCQkgKi8KKwkJ CQkJbXlfcG9wdC50b3B0LnN0b3BfdGFibGUgPSB0cnVlOworCQkJCQlwcmlu dFF1ZXJ5KHJlc3VsdCwgJm15X3BvcHQsIHR1cGxlc19mb3V0LCBpc19wYWdl ciwgcHNldC5sb2dmaWxlKTsKKwkJCQkJdG90YWxfdHVwbGVzICs9IFBRbnR1 cGxlcyhyZXN1bHQpOworCisJCQkJCWlmIChpc19wYWdlcikKKwkJCQkJCUNs b3NlUGFnZXIodHVwbGVzX2ZvdXQpOworCQkJCQlDbGVhck9yU2F2ZVJlc3Vs dChyZXN1bHQpOworCQkJCQlyZXN1bHQgPSBOVUxMOworCQkJCQlicmVhazsK KwkJCQl9CisJCQkJZWxzZSBpZiAoUFFyZXN1bHRTdGF0dXMocmVzdWx0KSAh PSBQR1JFU19UVVBMRVNfQ0hVTkspCisJCQkJeworCQkJCQkvKgorCQkJCQkg KiBFcnJvci4gV2UgZXhwZWN0IGVpdGhlciBQR1JFU19UVVBMRVNfQ0hVTksg b3IKKwkJCQkJICogUEdSRVNfVFVQTEVTX09LLgorCQkJCQkgKi8KKwkJCQkJ aWYgKGlzX3BhZ2VyKQorCQkJCQkJQ2xvc2VQYWdlcih0dXBsZXNfZm91dCk7 CisJCQkJCXN1Y2Nlc3MgPSBmYWxzZTsKKwkJCQkJQWNjZXB0UmVzdWx0KHJl c3VsdCwgdHJ1ZSk7IC8qIGRpc3BsYXkgZXJyb3Igd2hlbmV2ZXIgYXBwcm9w cmlhdGUgKi8KKwkJCQkJU2V0UmVzdWx0VmFyaWFibGVzKHJlc3VsdCwgc3Vj Y2Vzcyk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJfQorCQllbHNl CisJCQlwYXJ0aWFsX2Rpc3BsYXkgPSBmYWxzZTsKKwogCQkvKgogCQkgKiBD aGVjayBQUWdldFJlc3VsdCgpIGFnYWluLiAgSW4gdGhlIHR5cGljYWwgY2Fz ZSBvZiBhIHNpbmdsZS1jb21tYW5kCiAJCSAqIHN0cmluZywgaXQgd2lsbCBy ZXR1cm4gTlVMTC4gIE90aGVyd2lzZSwgd2UnbGwgaGF2ZSBvdGhlciByZXN1 bHRzCkBAIC0xNjI3LDcgKzE3NjQsNyBAQCBFeGVjUXVlcnlBbmRQcm9jZXNz UmVzdWx0cyhjb25zdCBjaGFyICpxdWVyeSwKIAkJfQogCiAJCS8qIHRoaXMg bWF5IG9yIG1heSBub3QgcHJpbnQgc29tZXRoaW5nIGRlcGVuZGluZyBvbiBz ZXR0aW5ncyAqLwotCQlpZiAocmVzdWx0ICE9IE5VTEwpCisJCWlmIChyZXN1 bHQgIT0gTlVMTCAmJiAhcGFydGlhbF9kaXNwbGF5KQogCQl7CiAJCQkvKgog CQkJICogSWYgcmVzdWx0cyBuZWVkIHRvIGJlIHByaW50ZWQgaW50byB0aGUg ZmlsZSBzcGVjaWZpZWQgYnkgXGcsCkBAIC0xNjM2LDMyICsxNzczLDMzIEBA IEV4ZWNRdWVyeUFuZFByb2Nlc3NSZXN1bHRzKGNvbnN0IGNoYXIgKnF1ZXJ5 LAogCQkJICogdHVwbGUgb3V0cHV0LCBidXQgaXQncyBzdGlsbCB1c2VkIGZv ciBzdGF0dXMgb3V0cHV0LgogCQkJICovCiAJCQlGSUxFCSAgICp0dXBsZXNf Zm91dCA9IHByaW50UXVlcnlGb3V0OwotCQkJYm9vbAkJZG9fcHJpbnQgPSB0 cnVlOwotCi0JCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzdWx0KSA9PSBQR1JF U19UVVBMRVNfT0sgJiYKLQkJCQlwc2V0LmdmbmFtZSkKLQkJCXsKLQkJCQlp ZiAoZ2ZpbGVfZm91dCA9PSBOVUxMKQotCQkJCXsKLQkJCQkJaWYgKG9wZW5R dWVyeU91dHB1dEZpbGUocHNldC5nZm5hbWUsCi0JCQkJCQkJCQkJCSZnZmls ZV9mb3V0LCAmZ2ZpbGVfaXNfcGlwZSkpCi0JCQkJCXsKLQkJCQkJCWlmIChn ZmlsZV9pc19waXBlKQotCQkJCQkJCWRpc2FibGVfc2lncGlwZV90cmFwKCk7 Ci0JCQkJCX0KLQkJCQkJZWxzZQotCQkJCQkJc3VjY2VzcyA9IGRvX3ByaW50 ID0gZmFsc2U7Ci0JCQkJfQorCQkJc3VjY2VzcyA9IFNldHVwR091dHB1dChy ZXN1bHQsICZnZmlsZV9mb3V0LCAmZ2ZpbGVfaXNfcGlwZSk7CisJCQlpZiAo Z2ZpbGVfZm91dCkKIAkJCQl0dXBsZXNfZm91dCA9IGdmaWxlX2ZvdXQ7Ci0J CQl9Ci0JCQlpZiAoZG9fcHJpbnQpCisJCQlpZiAoc3VjY2VzcykKIAkJCQlz dWNjZXNzICY9IFByaW50UXVlcnlSZXN1bHQocmVzdWx0LCBsYXN0LCBvcHQs CiAJCQkJCQkJCQkJCXR1cGxlc19mb3V0LCBwcmludFF1ZXJ5Rm91dCk7CiAJ CX0KIAogCQkvKiBzZXQgdmFyaWFibGVzIGZyb20gbGFzdCByZXN1bHQgKi8K IAkJaWYgKCFpc193YXRjaCAmJiBsYXN0KQotCQkJU2V0UmVzdWx0VmFyaWFi bGVzKHJlc3VsdCwgc3VjY2Vzcyk7CisJCXsKKwkJCWlmICghcGFydGlhbF9k aXNwbGF5KQorCQkJCVNldFJlc3VsdFZhcmlhYmxlcyhyZXN1bHQsIHN1Y2Nl c3MpOworCQkJZWxzZSBpZiAoc3VjY2VzcykKKwkJCXsKKwkJCQkvKgorCQkJ CSAqIGZha2UgU2V0UmVzdWx0VmFyaWFibGVzKCkuIElmIGFuIGVycm9yIG9j Y3VycmVkIHdoZW4KKwkJCQkgKiByZXRyaWV2aW5nIGNodW5rcywgdGhlc2Ug dmFyaWFibGVzIGhhdmUgYmVlbiBzZXQgYWxyZWFkeS4KKwkJCQkgKi8KKwkJ CQljaGFyCQlidWZbMzJdOworCisJCQkJU2V0VmFyaWFibGUocHNldC52YXJz LCAiRVJST1IiLCAiZmFsc2UiKTsKKwkJCQlTZXRWYXJpYWJsZShwc2V0LnZh cnMsICJTUUxTVEFURSIsICIwMDAwMCIpOworCQkJCXNucHJpbnRmKGJ1Ziwg c2l6ZW9mKGJ1ZiksIElOVDY0X0ZPUk1BVCwgdG90YWxfdHVwbGVzKTsKKwkJ CQlTZXRWYXJpYWJsZShwc2V0LnZhcnMsICJST1dfQ09VTlQiLCBidWYpOwor CQkJfQorCQl9CiAKIAkJQ2xlYXJPclNhdmVSZXN1bHQocmVzdWx0KTsKIAkJ cmVzdWx0ID0gbmV4dF9yZXN1bHQ7CkBAIC0xNjczLDE3ICsxODExLDcgQEAg RXhlY1F1ZXJ5QW5kUHJvY2Vzc1Jlc3VsdHMoY29uc3QgY2hhciAqcXVlcnks CiAJCX0KIAl9CiAKLQkvKiBjbG9zZSBcZyBmaWxlIGlmIHdlIG9wZW5lZCBp dCAqLwotCWlmIChnZmlsZV9mb3V0KQotCXsKLQkJaWYgKGdmaWxlX2lzX3Bp cGUpCi0JCXsKLQkJCVNldFNoZWxsUmVzdWx0VmFyaWFibGVzKHBjbG9zZShn ZmlsZV9mb3V0KSk7Ci0JCQlyZXN0b3JlX3NpZ3BpcGVfdHJhcCgpOwotCQl9 Ci0JCWVsc2UKLQkJCWZjbG9zZShnZmlsZV9mb3V0KTsKLQl9CisJQ2xvc2VH T3V0cHV0KGdmaWxlX2ZvdXQsIGdmaWxlX2lzX3BpcGUpOwogCiAJLyogbWF5 IG5lZWQgdGhpcyB0byByZWNvdmVyIGZyb20gY29ubiBsb3NzIGR1cmluZyBD T1BZICovCiAJaWYgKCFDaGVja0Nvbm5lY3Rpb24oKSkKQEAgLTE2OTYsMjc0 ICsxODI0LDYgQEAgRXhlY1F1ZXJ5QW5kUHJvY2Vzc1Jlc3VsdHMoY29uc3Qg Y2hhciAqcXVlcnksCiB9CiAKIAotLyoKLSAqIEV4ZWNRdWVyeVVzaW5nQ3Vy c29yOiBydW4gYSBTRUxFQ1QtbGlrZSBxdWVyeSB1c2luZyBhIGN1cnNvcgot ICoKLSAqIFRoaXMgZmVhdHVyZSBhbGxvd3MgcmVzdWx0IHNldHMgbGFyZ2Vy IHRoYW4gUkFNIHRvIGJlIGRlYWx0IHdpdGguCi0gKgotICogUmV0dXJucyB0 cnVlIGlmIHRoZSBxdWVyeSBleGVjdXRlZCBzdWNjZXNzZnVsbHksIGZhbHNl IG90aGVyd2lzZS4KLSAqCi0gKiBJZiBwc2V0LnRpbWluZyBpcyBvbiwgdG90 YWwgcXVlcnkgdGltZSAoZXhjbHVzaXZlIG9mIHJlc3VsdC1wcmludGluZykg aXMKLSAqIHN0b3JlZCBpbnRvICplbGFwc2VkX21zZWMuCi0gKi8KLXN0YXRp YyBib29sCi1FeGVjUXVlcnlVc2luZ0N1cnNvcihjb25zdCBjaGFyICpxdWVy eSwgZG91YmxlICplbGFwc2VkX21zZWMpCi17Ci0JYm9vbAkJT0sgPSB0cnVl OwotCVBHcmVzdWx0ICAgKnJlc3VsdDsKLQlQUUV4cEJ1ZmZlckRhdGEgYnVm OwotCXByaW50UXVlcnlPcHQgbXlfcG9wdCA9IHBzZXQucG9wdDsKLQlib29s CQl0aW1pbmcgPSBwc2V0LnRpbWluZzsKLQlGSUxFCSAgICpmb3V0OwotCWJv b2wJCWlzX3BpcGU7Ci0JYm9vbAkJaXNfcGFnZXIgPSBmYWxzZTsKLQlib29s CQlzdGFydGVkX3R4biA9IGZhbHNlOwotCWludDY0CQl0b3RhbF90dXBsZXMg PSAwOwotCWludAkJCW50dXBsZXM7Ci0JaW50CQkJZmV0Y2hfY291bnQ7Ci0J Y2hhcgkJZmV0Y2hfY21kWzY0XTsKLQlpbnN0cl90aW1lCWJlZm9yZSwKLQkJ CQlhZnRlcjsKLQlpbnQJCQlmbHVzaF9lcnJvcjsKLQotCSplbGFwc2VkX21z ZWMgPSAwOwotCi0JLyogaW5pdGlhbGl6ZSBwcmludCBvcHRpb25zIGZvciBw YXJ0aWFsIHRhYmxlIG91dHB1dCAqLwotCW15X3BvcHQudG9wdC5zdGFydF90 YWJsZSA9IHRydWU7Ci0JbXlfcG9wdC50b3B0LnN0b3BfdGFibGUgPSBmYWxz ZTsKLQlteV9wb3B0LnRvcHQucHJpb3JfcmVjb3JkcyA9IDA7Ci0KLQlpZiAo dGltaW5nKQotCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGJlZm9yZSk7Ci0J ZWxzZQotCQlJTlNUUl9USU1FX1NFVF9aRVJPKGJlZm9yZSk7Ci0KLQkvKiBp ZiB3ZSdyZSBub3QgaW4gYSB0cmFuc2FjdGlvbiwgc3RhcnQgb25lICovCi0J aWYgKFBRdHJhbnNhY3Rpb25TdGF0dXMocHNldC5kYikgPT0gUFFUUkFOU19J RExFKQotCXsKLQkJcmVzdWx0ID0gUFFleGVjKHBzZXQuZGIsICJCRUdJTiIp OwotCQlPSyA9IEFjY2VwdFJlc3VsdChyZXN1bHQsIHRydWUpICYmCi0JCQko UFFyZXN1bHRTdGF0dXMocmVzdWx0KSA9PSBQR1JFU19DT01NQU5EX09LKTsK LQkJQ2xlYXJPclNhdmVSZXN1bHQocmVzdWx0KTsKLQkJaWYgKCFPSykKLQkJ CXJldHVybiBmYWxzZTsKLQkJc3RhcnRlZF90eG4gPSB0cnVlOwotCX0KLQot CS8qIFNlbmQgREVDTEFSRSBDVVJTT1IgKi8KLQlpbml0UFFFeHBCdWZmZXIo JmJ1Zik7Ci0JYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIkRFQ0xBUkUgX3Bz cWxfY3Vyc29yIE5PIFNDUk9MTCBDVVJTT1IgRk9SXG4lcyIsCi0JCQkJCSAg cXVlcnkpOwotCi0JcmVzdWx0ID0gUFFleGVjKHBzZXQuZGIsIGJ1Zi5kYXRh KTsKLQlPSyA9IEFjY2VwdFJlc3VsdChyZXN1bHQsIHRydWUpICYmCi0JCShQ UXJlc3VsdFN0YXR1cyhyZXN1bHQpID09IFBHUkVTX0NPTU1BTkRfT0spOwot CWlmICghT0spCi0JCVNldFJlc3VsdFZhcmlhYmxlcyhyZXN1bHQsIE9LKTsK LQlDbGVhck9yU2F2ZVJlc3VsdChyZXN1bHQpOwotCXRlcm1QUUV4cEJ1ZmZl cigmYnVmKTsKLQlpZiAoIU9LKQotCQlnb3RvIGNsZWFudXA7Ci0KLQlpZiAo dGltaW5nKQotCXsKLQkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChhZnRlcik7 Ci0JCUlOU1RSX1RJTUVfU1VCVFJBQ1QoYWZ0ZXIsIGJlZm9yZSk7Ci0JCSpl bGFwc2VkX21zZWMgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYWZ0ZXIp OwotCX0KLQotCS8qCi0JICogSW4gXGdzZXQgbW9kZSwgd2UgZm9yY2UgdGhl IGZldGNoIGNvdW50IHRvIGJlIDIsIHNvIHRoYXQgd2Ugd2lsbCB0aHJvdwot CSAqIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBpZiB0aGUgcXVlcnkgcmV0dXJu cyBtb3JlIHRoYW4gb25lIHJvdy4KLQkgKi8KLQlpZiAocHNldC5nc2V0X3By ZWZpeCkKLQkJZmV0Y2hfY291bnQgPSAyOwotCWVsc2UKLQkJZmV0Y2hfY291 bnQgPSBwc2V0LmZldGNoX2NvdW50OwotCi0Jc25wcmludGYoZmV0Y2hfY21k LCBzaXplb2YoZmV0Y2hfY21kKSwKLQkJCSAiRkVUQ0ggRk9SV0FSRCAlZCBG Uk9NIF9wc3FsX2N1cnNvciIsCi0JCQkgZmV0Y2hfY291bnQpOwotCi0JLyog cHJlcGFyZSB0byB3cml0ZSBvdXRwdXQgdG8gXGcgYXJndW1lbnQsIGlmIGFu eSAqLwotCWlmIChwc2V0LmdmbmFtZSkKLQl7Ci0JCWlmICghb3BlblF1ZXJ5 T3V0cHV0RmlsZShwc2V0LmdmbmFtZSwgJmZvdXQsICZpc19waXBlKSkKLQkJ ewotCQkJT0sgPSBmYWxzZTsKLQkJCWdvdG8gY2xlYW51cDsKLQkJfQotCQlp ZiAoaXNfcGlwZSkKLQkJCWRpc2FibGVfc2lncGlwZV90cmFwKCk7Ci0JfQot CWVsc2UKLQl7Ci0JCWZvdXQgPSBwc2V0LnF1ZXJ5Rm91dDsKLQkJaXNfcGlw ZSA9IGZhbHNlOwkJLyogZG9lc24ndCBtYXR0ZXIgKi8KLQl9Ci0KLQkvKiBj bGVhciBhbnkgcHJlLWV4aXN0aW5nIGVycm9yIGluZGljYXRpb24gb24gdGhl IG91dHB1dCBzdHJlYW0gKi8KLQljbGVhcmVycihmb3V0KTsKLQotCWZvciAo OzspCi0JewotCQlpZiAodGltaW5nKQotCQkJSU5TVFJfVElNRV9TRVRfQ1VS UkVOVChiZWZvcmUpOwotCi0JCS8qIGdldCBmZXRjaF9jb3VudCB0dXBsZXMg YXQgYSB0aW1lICovCi0JCXJlc3VsdCA9IFBRZXhlYyhwc2V0LmRiLCBmZXRj aF9jbWQpOwotCi0JCWlmICh0aW1pbmcpCi0JCXsKLQkJCUlOU1RSX1RJTUVf U0VUX0NVUlJFTlQoYWZ0ZXIpOwotCQkJSU5TVFJfVElNRV9TVUJUUkFDVChh ZnRlciwgYmVmb3JlKTsKLQkJCSplbGFwc2VkX21zZWMgKz0gSU5TVFJfVElN RV9HRVRfTUlMTElTRUMoYWZ0ZXIpOwotCQl9Ci0KLQkJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlc3VsdCkgIT0gUEdSRVNfVFVQTEVTX09LKQotCQl7Ci0JCQkv KiBzaHV0IGRvd24gcGFnZXIgYmVmb3JlIHByaW50aW5nIGVycm9yIG1lc3Nh Z2UgKi8KLQkJCWlmIChpc19wYWdlcikKLQkJCXsKLQkJCQlDbG9zZVBhZ2Vy KGZvdXQpOwotCQkJCWlzX3BhZ2VyID0gZmFsc2U7Ci0JCQl9Ci0KLQkJCU9L ID0gQWNjZXB0UmVzdWx0KHJlc3VsdCwgdHJ1ZSk7Ci0JCQlBc3NlcnQoIU9L KTsKLQkJCVNldFJlc3VsdFZhcmlhYmxlcyhyZXN1bHQsIE9LKTsKLQkJCUNs ZWFyT3JTYXZlUmVzdWx0KHJlc3VsdCk7Ci0JCQlicmVhazsKLQkJfQotCi0J CWlmIChwc2V0LmdzZXRfcHJlZml4KQotCQl7Ci0JCQkvKiBTdG9yZVF1ZXJ5 VHVwbGUgd2lsbCBjb21wbGFpbiBpZiBub3QgZXhhY3RseSBvbmUgcm93ICov Ci0JCQlPSyA9IFN0b3JlUXVlcnlUdXBsZShyZXN1bHQpOwotCQkJQ2xlYXJP clNhdmVSZXN1bHQocmVzdWx0KTsKLQkJCWJyZWFrOwotCQl9Ci0KLQkJLyoK LQkJICogTm90ZSB3ZSBkbyBub3QgZGVhbCB3aXRoIFxnZGVzYywgXGdleGVj IG9yIFxjcm9zc3RhYnZpZXcgbW9kZXMgaGVyZQotCQkgKi8KLQotCQludHVw bGVzID0gUFFudHVwbGVzKHJlc3VsdCk7Ci0JCXRvdGFsX3R1cGxlcyArPSBu dHVwbGVzOwotCi0JCWlmIChudHVwbGVzIDwgZmV0Y2hfY291bnQpCi0JCXsK LQkJCS8qIHRoaXMgaXMgdGhlIGxhc3QgcmVzdWx0IHNldCwgc28gYWxsb3cg Zm9vdGVyIGRlY29yYXRpb24gKi8KLQkJCW15X3BvcHQudG9wdC5zdG9wX3Rh YmxlID0gdHJ1ZTsKLQkJfQotCQllbHNlIGlmIChmb3V0ID09IHN0ZG91dCAm JiAhaXNfcGFnZXIpCi0JCXsKLQkJCS8qCi0JCQkgKiBJZiBxdWVyeSByZXF1 aXJlcyBtdWx0aXBsZSByZXN1bHQgc2V0cywgaGFjayB0byBlbnN1cmUgdGhh dAotCQkJICogb25seSBvbmUgcGFnZXIgaW5zdGFuY2UgaXMgdXNlZCBmb3Ig dGhlIHdob2xlIG1lc3MKLQkJCSAqLwotCQkJZm91dCA9IFBhZ2VPdXRwdXQo SU5UX01BWCwgJihteV9wb3B0LnRvcHQpKTsKLQkJCWlzX3BhZ2VyID0gdHJ1 ZTsKLQkJfQotCi0JCXByaW50UXVlcnkocmVzdWx0LCAmbXlfcG9wdCwgZm91 dCwgaXNfcGFnZXIsIHBzZXQubG9nZmlsZSk7Ci0KLQkJQ2xlYXJPclNhdmVS ZXN1bHQocmVzdWx0KTsKLQotCQkvKiBhZnRlciB0aGUgZmlyc3QgcmVzdWx0 IHNldCwgZGlzYWxsb3cgaGVhZGVyIGRlY29yYXRpb24gKi8KLQkJbXlfcG9w dC50b3B0LnN0YXJ0X3RhYmxlID0gZmFsc2U7Ci0JCW15X3BvcHQudG9wdC5w cmlvcl9yZWNvcmRzICs9IG50dXBsZXM7Ci0KLQkJLyoKLQkJICogTWFrZSBz dXJlIHRvIGZsdXNoIHRoZSBvdXRwdXQgc3RyZWFtLCBzbyBpbnRlcm1lZGlh dGUgcmVzdWx0cyBhcmUKLQkJICogdmlzaWJsZSB0byB0aGUgY2xpZW50IGlt bWVkaWF0ZWx5LiAgV2UgY2hlY2sgdGhlIHJlc3VsdHMgYmVjYXVzZSBpZgot CQkgKiB0aGUgcGFnZXIgZGllcy9leGl0cy9ldGMsIHRoZXJlJ3Mgbm8gc2Vu c2UgdGhyb3dpbmcgbW9yZSBkYXRhIGF0Ci0JCSAqIGl0LgotCQkgKi8KLQkJ Zmx1c2hfZXJyb3IgPSBmZmx1c2goZm91dCk7Ci0KLQkJLyoKLQkJICogQ2hl Y2sgaWYgd2UgYXJlIGF0IHRoZSBlbmQsIGlmIGEgY2FuY2VsIHdhcyBwcmVz c2VkLCBvciBpZiB0aGVyZQotCQkgKiB3ZXJlIGFueSBlcnJvcnMgZWl0aGVy IHRyeWluZyB0byBmbHVzaCBvdXQgdGhlIHJlc3VsdHMsIG9yIG1vcmUKLQkJ ICogZ2VuZXJhbGx5IG9uIHRoZSBvdXRwdXQgc3RyZWFtIGF0IGFsbC4gIElm IHdlIGhpdCBhbnkgZXJyb3JzCi0JCSAqIHdyaXRpbmcgdGhpbmdzIHRvIHRo ZSBzdHJlYW0sIHdlIHByZXN1bWUgJFBBR0VSIGhhcyBkaXNhcHBlYXJlZCBh bmQKLQkJICogc3RvcCBib3RoZXJpbmcgdG8gcHVsbCBkb3duIG1vcmUgZGF0 YS4KLQkJICovCi0JCWlmIChudHVwbGVzIDwgZmV0Y2hfY291bnQgfHwgY2Fu Y2VsX3ByZXNzZWQgfHwgZmx1c2hfZXJyb3IgfHwKLQkJCWZlcnJvcihmb3V0 KSkKLQkJCWJyZWFrOwotCX0KLQotCWlmIChwc2V0LmdmbmFtZSkKLQl7Ci0J CS8qIGNsb3NlIFxnIGFyZ3VtZW50IGZpbGUvcGlwZSAqLwotCQlpZiAoaXNf cGlwZSkKLQkJewotCQkJU2V0U2hlbGxSZXN1bHRWYXJpYWJsZXMocGNsb3Nl KGZvdXQpKTsKLQkJCXJlc3RvcmVfc2lncGlwZV90cmFwKCk7Ci0JCX0KLQkJ ZWxzZQotCQkJZmNsb3NlKGZvdXQpOwotCX0KLQllbHNlIGlmIChpc19wYWdl cikKLQl7Ci0JCS8qIGNsb3NlIHRyYW5zaWVudCBwYWdlciAqLwotCQlDbG9z ZVBhZ2VyKGZvdXQpOwotCX0KLQotCWlmIChPSykKLQl7Ci0JCS8qCi0JCSAq IFdlIGRvbid0IGhhdmUgYSBQR3Jlc3VsdCBoZXJlLCBhbmQgZXZlbiBpZiB3 ZSBkaWQgaXQgd291bGRuJ3QgaGF2ZQotCQkgKiB0aGUgcmlnaHQgcm93IGNv dW50LCBzbyBmYWtlIFNldFJlc3VsdFZhcmlhYmxlcygpLiAgSW4gZXJyb3Ig Y2FzZXMsCi0JCSAqIHdlIGFscmVhZHkgc2V0IHRoZSByZXN1bHQgdmFyaWFi bGVzIGFib3ZlLgotCQkgKi8KLQkJY2hhcgkJYnVmWzMyXTsKLQotCQlTZXRW YXJpYWJsZShwc2V0LnZhcnMsICJFUlJPUiIsICJmYWxzZSIpOwotCQlTZXRW YXJpYWJsZShwc2V0LnZhcnMsICJTUUxTVEFURSIsICIwMDAwMCIpOwotCQlz bnByaW50ZihidWYsIHNpemVvZihidWYpLCBJTlQ2NF9GT1JNQVQsIHRvdGFs X3R1cGxlcyk7Ci0JCVNldFZhcmlhYmxlKHBzZXQudmFycywgIlJPV19DT1VO VCIsIGJ1Zik7Ci0JfQotCi1jbGVhbnVwOgotCWlmICh0aW1pbmcpCi0JCUlO U1RSX1RJTUVfU0VUX0NVUlJFTlQoYmVmb3JlKTsKLQotCS8qCi0JICogV2Ug dHJ5IHRvIGNsb3NlIHRoZSBjdXJzb3Igb24gZWl0aGVyIHN1Y2Nlc3Mgb3Ig ZmFpbHVyZSwgYnV0IG9uIGZhaWx1cmUKLQkgKiBpZ25vcmUgdGhlIHJlc3Vs dCAoaXQncyBwcm9iYWJseSBqdXN0IGEgYmxlYXQgYWJvdXQgYmVpbmcgaW4g YW4gYWJvcnRlZAotCSAqIHRyYW5zYWN0aW9uKQotCSAqLwotCXJlc3VsdCA9 IFBRZXhlYyhwc2V0LmRiLCAiQ0xPU0UgX3BzcWxfY3Vyc29yIik7Ci0JaWYg KE9LKQotCXsKLQkJT0sgPSBBY2NlcHRSZXN1bHQocmVzdWx0LCB0cnVlKSAm JgotCQkJKFBRcmVzdWx0U3RhdHVzKHJlc3VsdCkgPT0gUEdSRVNfQ09NTUFO RF9PSyk7Ci0JCUNsZWFyT3JTYXZlUmVzdWx0KHJlc3VsdCk7Ci0JfQotCWVs c2UKLQkJUFFjbGVhcihyZXN1bHQpOwotCi0JaWYgKHN0YXJ0ZWRfdHhuKQot CXsKLQkJcmVzdWx0ID0gUFFleGVjKHBzZXQuZGIsIE9LID8gIkNPTU1JVCIg OiAiUk9MTEJBQ0siKTsKLQkJT0sgJj0gQWNjZXB0UmVzdWx0KHJlc3VsdCwg dHJ1ZSkgJiYKLQkJCShQUXJlc3VsdFN0YXR1cyhyZXN1bHQpID09IFBHUkVT X0NPTU1BTkRfT0spOwotCQlDbGVhck9yU2F2ZVJlc3VsdChyZXN1bHQpOwot CX0KLQotCWlmICh0aW1pbmcpCi0JewotCQlJTlNUUl9USU1FX1NFVF9DVVJS RU5UKGFmdGVyKTsKLQkJSU5TVFJfVElNRV9TVUJUUkFDVChhZnRlciwgYmVm b3JlKTsKLQkJKmVsYXBzZWRfbXNlYyArPSBJTlNUUl9USU1FX0dFVF9NSUxM SVNFQyhhZnRlcik7Ci0JfQotCi0JcmV0dXJuIE9LOwotfQotCi0KIC8qCiAg KiBBZHZhbmNlIHRoZSBnaXZlbiBjaGFyIHBvaW50ZXIgb3ZlciB3aGl0ZSBz cGFjZSBhbmQgU1FMIGNvbW1lbnRzLgogICovCkBAIC0yMjQzLDQzICsyMTAz LDYgQEAgY29tbWFuZF9ub19iZWdpbihjb25zdCBjaGFyICpxdWVyeSkKIH0K IAogCi0vKgotICogQ2hlY2sgd2hldGhlciB0aGUgc3BlY2lmaWVkIGNvbW1h bmQgaXMgYSBTRUxFQ1QgKG9yIFZBTFVFUykuCi0gKi8KLXN0YXRpYyBib29s Ci1pc19zZWxlY3RfY29tbWFuZChjb25zdCBjaGFyICpxdWVyeSkKLXsKLQlp bnQJCQl3b3JkbGVuOwotCi0JLyoKLQkgKiBGaXJzdCBhZHZhbmNlIG92ZXIg YW55IHdoaXRlc3BhY2UsIGNvbW1lbnRzIGFuZCBsZWZ0IHBhcmVudGhlc2Vz LgotCSAqLwotCWZvciAoOzspCi0JewotCQlxdWVyeSA9IHNraXBfd2hpdGVf c3BhY2UocXVlcnkpOwotCQlpZiAocXVlcnlbMF0gPT0gJygnKQotCQkJcXVl cnkrKzsKLQkJZWxzZQotCQkJYnJlYWs7Ci0JfQotCi0JLyoKLQkgKiBDaGVj ayB3b3JkIGxlbmd0aCAoc2luY2UgInNlbGVjdHgiIGlzIG5vdCAic2VsZWN0 IikuCi0JICovCi0Jd29yZGxlbiA9IDA7Ci0Jd2hpbGUgKGlzYWxwaGEoKHVu c2lnbmVkIGNoYXIpIHF1ZXJ5W3dvcmRsZW5dKSkKLQkJd29yZGxlbiArPSBQ UW1ibGVuQm91bmRlZCgmcXVlcnlbd29yZGxlbl0sIHBzZXQuZW5jb2Rpbmcp OwotCi0JaWYgKHdvcmRsZW4gPT0gNiAmJiBwZ19zdHJuY2FzZWNtcChxdWVy eSwgInNlbGVjdCIsIDYpID09IDApCi0JCXJldHVybiB0cnVlOwotCi0JaWYg KHdvcmRsZW4gPT0gNiAmJiBwZ19zdHJuY2FzZWNtcChxdWVyeSwgInZhbHVl cyIsIDYpID09IDApCi0JCXJldHVybiB0cnVlOwotCi0JcmV0dXJuIGZhbHNl OwotfQotCi0KIC8qCiAgKiBUZXN0IGlmIHRoZSBjdXJyZW50IHVzZXIgaXMg YSBkYXRhYmFzZSBzdXBlcnVzZXIuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4vcHNxbC90LzAwMV9i YXNpYy5wbAppbmRleCA5ZjBiNmNmOGNhLi5iNWZlZGJjMDkxIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvdC8wMDFfYmFzaWMucGwKKysrIGIvc3JjL2Jp bi9wc3FsL3QvMDAxX2Jhc2ljLnBsCkBAIC0xNjEsNyArMTYxLDcgQEAgcHNx bF9saWtlKAogCSdcZXJydmVyYm9zZSB3aXRoIG5vIHByZXZpb3VzIGVycm9y Jyk7CiAKICMgVGhlcmUgYXJlIHRocmVlIG1haW4gd2F5cyB0byBydW4gYSBx dWVyeSB0aGF0IG1pZ2h0IGFmZmVjdAotIyBcZXJydmVyYm9zZTogVGhlIG5v cm1hbCB3YXksIHVzaW5nIGEgY3Vyc29yIGJ5IHNldHRpbmcgRkVUQ0hfQ09V TlQsCisjIFxlcnJ2ZXJib3NlOiBUaGUgbm9ybWFsIHdheSwgcGllY2VtZWFs IHJldHJpZXZhbCB1c2luZyBGRVRDSF9DT1VOVCwKICMgYW5kIHVzaW5nIFxn ZGVzYy4gIFRlc3QgdGhlbSBhbGwuCiAKIGxpa2UoCkBAIC0xODQsMTAgKzE4 NCwxMCBAQCBsaWtlKAogCQkJIlxcc2V0IEZFVENIX0NPVU5UIDFcblNFTEVD VCBlcnJvcjtcblxcZXJydmVyYm9zZSIsCiAJCQlvbl9lcnJvcl9zdG9wID0+ IDApKVsyXSwKIAlxci9cQV5wc3FsOjxzdGRpbj46MjogRVJST1I6ICAuKiQK LV5MSU5FIDI6IFNFTEVDVCBlcnJvcjskCiteTElORSAxOiBTRUxFQ1QgZXJy b3I7JAogXiAqXi4qJAogXnBzcWw6PHN0ZGluPjozOiBlcnJvcjogRVJST1I6 ICBbMC05QS1aXXs1fTogLiokCi1eTElORSAyOiBTRUxFQ1QgZXJyb3I7JAor XkxJTkUgMTogU0VMRUNUIGVycm9yOyQKIF4gKl4uKiQKIF5MT0NBVElPTjog LiokL20sCiAJJ1xlcnJ2ZXJib3NlIGFmdGVyIEZFVENIX0NPVU5UIHF1ZXJ5 IHdpdGggZXJyb3InKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BzcWwub3V0CmluZGV4IGFkMDI3NzI1NjIuLjQ2Zjk5OGRmMTIgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNDc1 NSw3ICs0NzU1LDcgQEAgbnVtYmVyIG9mIHJvd3M6IDAKIGxhc3QgZXJyb3Ig bWVzc2FnZTogc3ludGF4IGVycm9yIGF0IGVuZCBvZiBpbnB1dAogXGVjaG8g J2xhc3QgZXJyb3IgY29kZTonIDpMQVNUX0VSUk9SX1NRTFNUQVRFCiBsYXN0 IGVycm9yIGNvZGU6IDQyNjAxCi0tLSBjaGVjayByb3cgY291bnQgZm9yIGEg Y3Vyc29yLWZldGNoZWQgcXVlcnkKKy0tIGNoZWNrIHJvdyBjb3VudCBmb3Ig YSBxdWVyeSB3aXRoIGNodW5rZWQgcmVzdWx0cwogXHNldCBGRVRDSF9DT1VO VCAxMAogc2VsZWN0IHVuaXF1ZTIgZnJvbSB0ZW5rMSBvcmRlciBieSB1bmlx dWUyIGxpbWl0IDE5OwogIHVuaXF1ZTIgCkBAIC00Nzg3LDcgKzQ3ODcsNyBA QCBlcnJvcjogZmFsc2UKIGVycm9yIGNvZGU6IDAwMDAwCiBcZWNobyAnbnVt YmVyIG9mIHJvd3M6JyA6Uk9XX0NPVU5UCiBudW1iZXIgb2Ygcm93czogMTkK LS0tIGN1cnNvci1mZXRjaGVkIHF1ZXJ5IHdpdGggYW4gZXJyb3IgYWZ0ZXIg dGhlIGZpcnN0IGdyb3VwCistLSBjaHVua2VkIHJlc3VsdHMgd2l0aCBhbiBl cnJvciBhZnRlciB0aGUgZmlyc3QgY2h1bmsKIHNlbGVjdCAxLygxNS11bmlx dWUyKSBmcm9tIHRlbmsxIG9yZGVyIGJ5IHVuaXF1ZTIgbGltaXQgMTk7CiAg P2NvbHVtbj8gCiAtLS0tLS0tLS0tCkBAIC00ODAxLDYgKzQ4MDEsMTEgQEAg c2VsZWN0IDEvKDE1LXVuaXF1ZTIpIGZyb20gdGVuazEgb3JkZXIgYnkgdW5p cXVlMiBsaW1pdCAxOTsKICAgICAgICAgMAogICAgICAgICAwCiAgICAgICAg IDAKKyAgICAgICAgMAorICAgICAgICAwCisgICAgICAgIDAKKyAgICAgICAg MAorICAgICAgICAxCiBFUlJPUjogIGRpdmlzaW9uIGJ5IHplcm8KIFxlY2hv ICdlcnJvcjonIDpFUlJPUgogZXJyb3I6IHRydWUKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwKaW5kZXggMTI5Zjg1MzM1My4uMzMwNzZjYWQ3OSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKQEAgLTExNjEsMTQg KzExNjEsMTQgQEAgU0VMRUNUIDQgQVMgXGdkZXNjCiBcZWNobyAnbGFzdCBl cnJvciBtZXNzYWdlOicgOkxBU1RfRVJST1JfTUVTU0FHRQogXGVjaG8gJ2xh c3QgZXJyb3IgY29kZTonIDpMQVNUX0VSUk9SX1NRTFNUQVRFCiAKLS0tIGNo ZWNrIHJvdyBjb3VudCBmb3IgYSBjdXJzb3ItZmV0Y2hlZCBxdWVyeQorLS0g Y2hlY2sgcm93IGNvdW50IGZvciBhIHF1ZXJ5IHdpdGggY2h1bmtlZCByZXN1 bHRzCiBcc2V0IEZFVENIX0NPVU5UIDEwCiBzZWxlY3QgdW5pcXVlMiBmcm9t IHRlbmsxIG9yZGVyIGJ5IHVuaXF1ZTIgbGltaXQgMTk7CiBcZWNobyAnZXJy b3I6JyA6RVJST1IKIFxlY2hvICdlcnJvciBjb2RlOicgOlNRTFNUQVRFCiBc ZWNobyAnbnVtYmVyIG9mIHJvd3M6JyA6Uk9XX0NPVU5UCiAKLS0tIGN1cnNv ci1mZXRjaGVkIHF1ZXJ5IHdpdGggYW4gZXJyb3IgYWZ0ZXIgdGhlIGZpcnN0 IGdyb3VwCistLSBjaHVua2VkIHJlc3VsdHMgd2l0aCBhbiBlcnJvciBhZnRl ciB0aGUgZmlyc3QgY2h1bmsKIHNlbGVjdCAxLygxNS11bmlxdWUyKSBmcm9t IHRlbmsxIG9yZGVyIGJ5IHVuaXF1ZTIgbGltaXQgMTk7CiBcZWNobyAnZXJy b3I6JyA6RVJST1IKIFxlY2hvICdlcnJvciBjb2RlOicgOlNRTFNUQVRFCi0t IAoyLjM0LjEKCg== ------------=_1706624979-1514-1--