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 1tKkku-00AZRU-2H for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Dec 2024 20:53:24 +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 1tKkkr-00BLI7-Hk for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Dec 2024 20:53:22 +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 1tKkkq-00BLHx-F7 for pgsql-hackers@lists.postgresql.org; Mon, 09 Dec 2024 20:53:22 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tKkko-001xfU-2C for pgsql-hackers@postgresql.org; Mon, 09 Dec 2024 20:53:20 +0000 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-5d3f28881d6so2287985a12.1 for ; Mon, 09 Dec 2024 12:53:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733777596; x=1734382396; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=zIZdEjw7YrFn6KMVTIYyau9E2VbWY5H5bu1eQa6f2Ew=; b=BzRjWrohf840xDlitzrjmrkj1zZp5zfavUp/CZcSe8IqHwCcqZiFJ0s1qInaaw0PCG JAIadVAJJJAvsYifHIEvA+30iPcvPJFStIp13yuMSwfFYMh49P1K4YjKmrSJv5A63/33 XrfE66IyVTl5ayfZaHSmluLZwqpp8hAaCsBisc0gnBKbRHTlHZvTPJguq0jCUFGY+kzU sc2A9rhHxSZaKCdgGpvjb8tzPGnMm90nZbWFBcUxK2v1gDfb2QfehHrpxBwN2YgAWTWn e9wYnsy7F9037hWz/Ty3xBgnxa6cN43R1zXb9Ek7F9Mw3ZraOOgJxLmXwMsIACPKmvxH nYOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733777596; x=1734382396; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zIZdEjw7YrFn6KMVTIYyau9E2VbWY5H5bu1eQa6f2Ew=; b=O5A+DU5XrVZ5GqfuAeRYxUxoWPi3mAfYqeLDbic8Vm8U8gPrZ1ank4y7DgulezWoB3 NcWhH/aE92xA2SMsjIkGCC7FFvWgPYQ5/SyRPTclhZaC/L2WP92InnBaTwg7FkxQYJ7h gRUmGfSlp11JcoHQkQu4fnwA4L0eWGPqO2uitQTf394xS3CVW/pSscu4Dmmop627QgUh ruSHqDbuKoyxFZSbsGR6NxuuEbnEQSvq+GqQHT8xXioDJD47NnlKJFrTFQeyRZ7KS7UQ 82pxBJmz2KbHB4mU+bWP35NDTPgyokVr5vCLILt9ZYj2XskwQXK/7EKruf8DkN8SJrQu TQww== X-Gm-Message-State: AOJu0YyFkSysS6j5eUYMQJqMLrOifOx8CganrRB0qblXZ23TL1sV0+ix XlWkrY0uAjOBIcFsROT89YcU/0Cc+ZxVR6e8p3G0D6bff1PqO7OiFJxGHAZLDRsBrrgbOqdO+/+ r5H83MgrowDz4DCML6C/1w8T9VSs= X-Gm-Gg: ASbGncvDYlxtXgce1bjWU92NXPQyW0oQCdiSGmKvNxnmKibyMfhb/coIsi5+M4efj4b zN1deQtBTnEvD0ml38SOhO5TXKZfxTNQK1DNa+KYMjQsXtANdugV98r9D4Ak0LWfdA/nDgA== X-Google-Smtp-Source: AGHT+IF1p8rt3ZnyG0l40yLBjH9kFKOqLqyBaO7QplUNVephwvOon9RJEw9uUjYbKOh4dwRVTUb08nFh7sLOVoW4mh4= X-Received: by 2002:a05:6402:274d:b0:5d0:9054:b119 with SMTP id 4fb4d7f45d1cf-5d4185d5fb5mr4682098a12.21.1733777596098; Mon, 09 Dec 2024 12:53:16 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Michail Nikolaev Date: Mon, 9 Dec 2024 21:53:00 +0100 Message-ID: Subject: Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements To: Matthias van de Meent Cc: PostgreSQL Hackers , Andrey Borodin , Melanie Plageman Content-Type: multipart/mixed; boundary="000000000000bd14f60628dc8da8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bd14f60628dc8da8 Content-Type: multipart/alternative; boundary="000000000000bd14f50628dc8da6" --000000000000bd14f50628dc8da6 Content-Type: text/plain; charset="UTF-8" Hello, Matthias! Added support for unique indexes. So, now your initial idea about resetting during the first phase appears to be ready. Next step - use single-scan and auxiliary index for concurrent index build. Also, I have updated the stress tests accordingly to [0]. [0]: https://www.postgresql.org/message-id/flat/CANtu0ojmVd27fEhfpST7RG2KZvwkX%3DdMyKUqg0KM87FkOSdz8Q%40mail.gmail.com Best regards, Mikhail. --000000000000bd14f50628dc8da6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello, = Matthias!

Added support=C2=A0for unique indexes.

So, now your initial idea about resetting during the firs= t phase appears to be ready.

Next step - use singl= e-scan and auxiliary=C2=A0index for concurrent=C2=A0index build.
=
Also, I have updated the stress tests accordingly to [0].


Best regards,
Mikhail.
--000000000000bd14f50628dc8da6-- --000000000000bd14f60628dc8da8 Content-Type: application/x-patch; name="v5-0005-Allow-snapshot-resets-in-concurrent-unique-index-.patch" Content-Disposition: attachment; filename="v5-0005-Allow-snapshot-resets-in-concurrent-unique-index-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hhs3784 RnJvbSBlN2QzMTgwMWFhYzU3ZjJlMGJmYzZiZmMyMDliZTg5ZWI5MGM3NWU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCA3IERlYyAyMDI0IDIzOjI3OjM0ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2NSA1LzVd IEFsbG93IHNuYXBzaG90IHJlc2V0cyBpbiBjb25jdXJyZW50IHVuaXF1ZSBpbmRleAogYnVpbGRz CgpQcmV2aW91c2x5LCBjb25jdXJyZW50IHVuaXF1ZSBpbmRleCBidWlsZHMgdXNlZCBhIGZpeGVk IHNuYXBzaG90IGZvciB0aGUgZW50aXJlCnNjYW4gdG8gZW5zdXJlIHByb3BlciB1bmlxdWVuZXNz IGNoZWNrcy4gVGhpcyBjb3VsZCBkZWxheSB2YWN1dW0ncyBhYmlsaXR5IHRvCmNsZWFuIHVwIGRl YWQgdHVwbGVzLgoKTm93IHJlc2V0IHNuYXBzaG90cyBwZXJpb2RpY2FsbHkgZHVyaW5nIGNvbmN1 cnJlbnQgdW5pcXVlIGluZGV4IGJ1aWxkcywgd2hpbGUKc3RpbGwgbWFpbnRhaW5pbmcgdW5pcXVl bmVzcyBieToKCjEuIElnbm9yaW5nIGRlYWQgdHVwbGVzIGR1cmluZyB1bmlxdWVuZXNzIGNoZWNr cyBpbiB0dXBsZXNvcnQKMi4gQWRkaW5nIGEgdW5pcXVlbmVzcyBjaGVjayBpbiBfYnRfbG9hZCB0 aGF0IGRldGVjdHMgbXVsdGlwbGUgYWxpdmUgdHVwbGVzIHdpdGggdGhlIHNhbWUga2V5IHZhbHVl cwoKVGhpcyBpbXByb3ZlcyB2YWN1dW0gZWZmZWN0aXZlbmVzcyBkdXJpbmcgbG9uZy1ydW5uaW5n IGluZGV4IGJ1aWxkcyB3aXRob3V0CmNvbXByb21pc2luZyBpbmRleCB1bmlxdWVuZXNzIGVuZm9y Y2VtZW50LgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgICAg ICB8ICAgNiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRkZWR1cC5jICAgICAgICAg IHwgICA4ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyAgICAgICAgICAg fCAxNzMgKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNw bGl0bG9jLmMgICAgICAgfCAgMTIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dXRp bHMuYyAgICAgICAgICB8ICAyOSArKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyAgICAg ICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnR2 YXJpYW50cy5jICAgIHwgIDY3ICsrKysrLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9uYnRyZWUuaCAg ICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCAg ICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvaW5jbHVkZS91dGlscy90dXBsZXNvcnQuaCAg ICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMu b3V0ICAgICAgICAgIHwgICA2ICsKIDExIGZpbGVzIGNoYW5nZWQsIDI0MiBpbnNlcnRpb25zKCsp LCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIu YwppbmRleCAyZTUxNjM2MDljMS4uOTIxYjgwNjY0MmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtMTIzMiwxNSArMTIzMiwxNSBAQCBoZWFwYW1faW5kZXhf YnVpbGRfcmFuZ2Vfc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJICogcXVhbCBjaGVja3Mg KGJlY2F1c2Ugd2UgaGF2ZSB0byBpbmRleCBSRUNFTlRMWV9ERUFEIHR1cGxlcykuIEluIGEKIAkg KiBjb25jdXJyZW50IGJ1aWxkLCBvciBkdXJpbmcgYm9vdHN0cmFwLCB3ZSB0YWtlIGEgcmVndWxh ciBNVkNDIHNuYXBzaG90CiAJICogYW5kIGluZGV4IHdoYXRldmVyJ3MgbGl2ZSBhY2NvcmRpbmcg dG8gdGhhdCB3aGlsZSB0aGF0IHNuYXBzaG90IGlzIHJlc2V0Ci0JICogZXZlcnkgc28gb2Z0ZW4g KGluIGNhc2Ugb2Ygbm9uLXVuaXF1ZSBpbmRleCkuCisJICogZXZlcnkgc28gb2Z0ZW4uCiAJICov CiAJT2xkZXN0WG1pbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCiAJLyoKLQkgKiBGb3IgdW5p cXVlIGluZGV4IHdlIG5lZWQgY29uc2lzdGVudCBzbmFwc2hvdCBmb3IgdGhlIHdob2xlIHNjYW4u CisJICogRm9yIGNvbmN1cnJlbnQgYnVpbGRzIG9mIG5vbi1zeXN0ZW0gaW5kZXhlcywgd2UgbWF5 IHdhbnQgdG8gcGVyaW9kaWNhbGx5CisJICogcmVzZXQgc25hcHNob3RzIHRvIGFsbG93IHZhY3V1 bSB0byBjbGVhbiB1cCB0dXBsZXMuCiAJICovCiAJcmVzZXRfc25hcHNob3RzID0gaW5kZXhJbmZv LT5paV9Db25jdXJyZW50ICYmCi0JCQkJCSAgIWluZGV4SW5mby0+aWlfVW5pcXVlICYmCiAJCQkJ CSAgIWlzX3N5c3RlbV9jYXRhbG9nOyAvKiBqdXN0IGZvciB0aGUgY2FzZSAqLwogCiAJLyogb2th eSB0byBpZ25vcmUgbGF6eSBWQUNVVU1zIGhlcmUgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0ZGVkdXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 ZGVkdXAuYwppbmRleCA0NTZkODZiNTFjOS4uMzFiNTkyNjVhMjkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0ZGVkdXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idGRlZHVwLmMKQEAgLTE0OCw3ICsxNDgsNyBAQCBfYnRfZGVkdXBfcGFzcyhSZWxh dGlvbiByZWwsIEJ1ZmZlciBidWYsIEluZGV4VHVwbGUgbmV3aXRlbSwgU2l6ZSBuZXdpdGVtc3os CiAJCQlfYnRfZGVkdXBfc3RhcnRfcGVuZGluZyhzdGF0ZSwgaXR1cCwgb2ZmbnVtKTsKIAkJfQog CQllbHNlIGlmIChzdGF0ZS0+ZGVkdXBsaWNhdGUgJiYKLQkJCQkgX2J0X2tlZXBfbmF0dHNfZmFz dChyZWwsIHN0YXRlLT5iYXNlLCBpdHVwKSA+IG5rZXlhdHRzICYmCisJCQkJIF9idF9rZWVwX25h dHRzX2Zhc3QocmVsLCBzdGF0ZS0+YmFzZSwgaXR1cCwgTlVMTCkgPiBua2V5YXR0cyAmJgogCQkJ CSBfYnRfZGVkdXBfc2F2ZV9odGlkKHN0YXRlLCBpdHVwKSkKIAkJewogCQkJLyoKQEAgLTM3NCw3 ICszNzQsNyBAQCBfYnRfYm90dG9tdXBkZWxfcGFzcyhSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYs IFJlbGF0aW9uIGhlYXBSZWwsCiAJCQkvKiBpdHVwIHN0YXJ0cyBmaXJzdCBwZW5kaW5nIGludGVy dmFsICovCiAJCQlfYnRfZGVkdXBfc3RhcnRfcGVuZGluZyhzdGF0ZSwgaXR1cCwgb2ZmbnVtKTsK IAkJfQotCQllbHNlIGlmIChfYnRfa2VlcF9uYXR0c19mYXN0KHJlbCwgc3RhdGUtPmJhc2UsIGl0 dXApID4gbmtleWF0dHMgJiYKKwkJZWxzZSBpZiAoX2J0X2tlZXBfbmF0dHNfZmFzdChyZWwsIHN0 YXRlLT5iYXNlLCBpdHVwLCBOVUxMKSA+IG5rZXlhdHRzICYmCiAJCQkJIF9idF9kZWR1cF9zYXZl X2h0aWQoc3RhdGUsIGl0dXApKQogCQl7CiAJCQkvKiBUdXBsZSBpcyBlcXVhbDsganVzdCBhZGRl ZCBpdHMgVElEcyB0byBwZW5kaW5nIGludGVydmFsICovCkBAIC03ODksMTIgKzc4OSwxMiBAQCBf YnRfZG9fc2luZ2xldmFsKFJlbGF0aW9uIHJlbCwgUGFnZSBwYWdlLCBCVERlZHVwU3RhdGUgc3Rh dGUsCiAJaXRlbWlkID0gUGFnZUdldEl0ZW1JZChwYWdlLCBtaW5vZmYpOwogCWl0dXAgPSAoSW5k ZXhUdXBsZSkgUGFnZUdldEl0ZW0ocGFnZSwgaXRlbWlkKTsKIAotCWlmIChfYnRfa2VlcF9uYXR0 c19mYXN0KHJlbCwgbmV3aXRlbSwgaXR1cCkgPiBua2V5YXR0cykKKwlpZiAoX2J0X2tlZXBfbmF0 dHNfZmFzdChyZWwsIG5ld2l0ZW0sIGl0dXAsIE5VTEwpID4gbmtleWF0dHMpCiAJewogCQlpdGVt aWQgPSBQYWdlR2V0SXRlbUlkKHBhZ2UsIFBhZ2VHZXRNYXhPZmZzZXROdW1iZXIocGFnZSkpOwog CQlpdHVwID0gKEluZGV4VHVwbGUpIFBhZ2VHZXRJdGVtKHBhZ2UsIGl0ZW1pZCk7CiAKLQkJaWYg KF9idF9rZWVwX25hdHRzX2Zhc3QocmVsLCBuZXdpdGVtLCBpdHVwKSA+IG5rZXlhdHRzKQorCQlp ZiAoX2J0X2tlZXBfbmF0dHNfZmFzdChyZWwsIG5ld2l0ZW0sIGl0dXAsIE5VTEwpID4gbmtleWF0 dHMpCiAJCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9uYnRyZWUvbmJ0c29ydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMK aW5kZXggMmFjYmYxMjE3NDUuLmFjOWU1YWNmYzUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHNvcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25i dHNvcnQuYwpAQCAtODMsNiArODMsNyBAQCB0eXBlZGVmIHN0cnVjdCBCVFNwb29sCiAJUmVsYXRp b24JaW5kZXg7CiAJYm9vbAkJaXN1bmlxdWU7CiAJYm9vbAkJbnVsbHNfbm90X2Rpc3RpbmN0Owor CWJvb2wJCXVuaXF1ZV9kZWFkX2lnbm9yZWQ7CiB9IEJUU3Bvb2w7CiAKIC8qCkBAIC0xMDEsNiAr MTAyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQlRTaGFyZWQKIAlPaWQJCQlpbmRleHJlbGlkOwogCWJv b2wJCWlzdW5pcXVlOwogCWJvb2wJCW51bGxzX25vdF9kaXN0aW5jdDsKKwlib29sCQl1bmlxdWVf ZGVhZF9pZ25vcmVkOwogCWJvb2wJCWlzY29uY3VycmVudDsKIAlpbnQJCQlzY2FudHVwbGVzb3J0 c3RhdGVzOwogCkBAIC0yMDMsMTUgKzIwNSwxMyBAQCB0eXBlZGVmIHN0cnVjdCBCVExlYWRlcgog ICovCiB0eXBlZGVmIHN0cnVjdCBCVEJ1aWxkU3RhdGUKIHsKLQlib29sCQlpc3VuaXF1ZTsKLQli b29sCQludWxsc19ub3RfZGlzdGluY3Q7CiAJYm9vbAkJaGF2ZWRlYWQ7CiAJUmVsYXRpb24JaGVh cDsKIAlCVFNwb29sICAgICpzcG9vbDsKIAogCS8qCi0JICogc3Bvb2wyIGlzIG5lZWRlZCBvbmx5 IHdoZW4gdGhlIGluZGV4IGlzIGEgdW5pcXVlIGluZGV4LiBEZWFkIHR1cGxlcyBhcmUKLQkgKiBw dXQgaW50byBzcG9vbDIgaW5zdGVhZCBvZiBzcG9vbCBpbiBvcmRlciB0byBhdm9pZCB1bmlxdWVu ZXNzIGNoZWNrLgorCSAqIHNwb29sMiBpcyBuZWVkZWQgb25seSB3aGVuIHRoZSBpbmRleCBpcyBh IHVuaXF1ZSBpbmRleCBhbmQgYnVpbGQgbm9uLWNvbmN1cnJlbnRseS4KKwkgKiBEZWFkIHR1cGxl cyBhcmUgcHV0IGludG8gc3Bvb2wyIGluc3RlYWQgb2Ygc3Bvb2wgaW4gb3JkZXIgdG8gYXZvaWQg dW5pcXVlbmVzcyBjaGVjay4KIAkgKi8KIAlCVFNwb29sICAgICpzcG9vbDI7CiAJZG91YmxlCQlp bmR0dXBsZXM7CkBAIC0zMDMsOCArMzAzLDYgQEAgYnRidWlsZChSZWxhdGlvbiBoZWFwLCBSZWxh dGlvbiBpbmRleCwgSW5kZXhJbmZvICppbmRleEluZm8pCiAJCVJlc2V0VXNhZ2UoKTsKICNlbmRp ZgkJCQkJCQkvKiBCVFJFRV9CVUlMRF9TVEFUUyAqLwogCi0JYnVpbGRzdGF0ZS5pc3VuaXF1ZSA9 IGluZGV4SW5mby0+aWlfVW5pcXVlOwotCWJ1aWxkc3RhdGUubnVsbHNfbm90X2Rpc3RpbmN0ID0g aW5kZXhJbmZvLT5paV9OdWxsc05vdERpc3RpbmN0OwogCWJ1aWxkc3RhdGUuaGF2ZWRlYWQgPSBm YWxzZTsKIAlidWlsZHN0YXRlLmhlYXAgPSBoZWFwOwogCWJ1aWxkc3RhdGUuc3Bvb2wgPSBOVUxM OwpAQCAtMzc5LDYgKzM3NywxMSBAQCBfYnRfc3Bvb2xzX2hlYXBzY2FuKFJlbGF0aW9uIGhlYXAs IFJlbGF0aW9uIGluZGV4LCBCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsCiAJYnRzcG9vbC0+aW5k ZXggPSBpbmRleDsKIAlidHNwb29sLT5pc3VuaXF1ZSA9IGluZGV4SW5mby0+aWlfVW5pcXVlOwog CWJ0c3Bvb2wtPm51bGxzX25vdF9kaXN0aW5jdCA9IGluZGV4SW5mby0+aWlfTnVsbHNOb3REaXN0 aW5jdDsKKyAgICAvKgorICAgICAqIFdlIG5lZWQgdG8gaWdub3JlIGRlYWQgdHVwbGVzIGZvciB1 bmlxdWUgY2hlY2tzIGluIGNhc2Ugb2YgY29uY3VycmVudCBidWlsZC4KKyAgICAgKiBJdCBpcyBy ZXF1aXJlZCBiZWNhdXNlIG9yIHBlcmlvZGljIHJlc2V0IG9mIHNuYXBzaG90LgorICAgICAqLwor CWJ0c3Bvb2wtPnVuaXF1ZV9kZWFkX2lnbm9yZWQgPSBpbmRleEluZm8tPmlpX0NvbmN1cnJlbnQg JiYgaW5kZXhJbmZvLT5paV9VbmlxdWU7CiAKIAkvKiBTYXZlIGFzIHByaW1hcnkgc3Bvb2wgKi8K IAlidWlsZHN0YXRlLT5zcG9vbCA9IGJ0c3Bvb2w7CkBAIC00MjcsOCArNDMwLDkgQEAgX2J0X3Nw b29sc19oZWFwc2NhbihSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwgQlRCdWlsZFN0YXRl ICpidWlsZHN0YXRlLAogCSAqIHRoZSB1c2Ugb2YgcGFyYWxsZWxpc20gb3IgYW55IG90aGVyIGZh Y3Rvci4KIAkgKi8KIAlidWlsZHN0YXRlLT5zcG9vbC0+c29ydHN0YXRlID0KLQkJdHVwbGVzb3J0 X2JlZ2luX2luZGV4X2J0cmVlKGhlYXAsIGluZGV4LCBidWlsZHN0YXRlLT5pc3VuaXF1ZSwKLQkJ CQkJCQkJCWJ1aWxkc3RhdGUtPm51bGxzX25vdF9kaXN0aW5jdCwKKwkJdHVwbGVzb3J0X2JlZ2lu X2luZGV4X2J0cmVlKGhlYXAsIGluZGV4LCBidHNwb29sLT5pc3VuaXF1ZSwKKwkJCQkJCQkJCWJ0 c3Bvb2wtPm51bGxzX25vdF9kaXN0aW5jdCwKKwkJCQkJCQkJCWJ0c3Bvb2wtPnVuaXF1ZV9kZWFk X2lnbm9yZWQsCiAJCQkJCQkJCQltYWludGVuYW5jZV93b3JrX21lbSwgY29vcmRpbmF0ZSwKIAkJ CQkJCQkJCVRVUExFU09SVF9OT05FKTsKIApAQCAtNDM2LDggKzQ0MCwxMiBAQCBfYnRfc3Bvb2xz X2hlYXBzY2FuKFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LCBCVEJ1aWxkU3RhdGUgKmJ1 aWxkc3RhdGUsCiAJICogSWYgYnVpbGRpbmcgYSB1bmlxdWUgaW5kZXgsIHB1dCBkZWFkIHR1cGxl cyBpbiBhIHNlY29uZCBzcG9vbCB0byBrZWVwCiAJICogdGhlbSBvdXQgb2YgdGhlIHVuaXF1ZW5l c3MgY2hlY2suICBXZSBleHBlY3QgdGhhdCB0aGUgc2Vjb25kIHNwb29sIChmb3IKIAkgKiBkZWFk IHR1cGxlcykgd29uJ3QgZ2V0IHZlcnkgZnVsbCwgc28gd2UgZ2l2ZSBpdCBvbmx5IHdvcmtfbWVt LgorCSAqCisJICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGJ1aWxkIGRlYWQgdHVwbGVzIGFyZSBu b3QgbmVlZCB0byBiZSBwdXQgaW50byBpbmRleAorCSAqIHNpbmNlIHdlIHdhaXQgZm9yIGFsbCBz bmFwc2hvdHMgb2xkZXIgdGhhbiByZWZlcmVuY2Ugc25hcHNob3QgZHVyaW5nIHRoZQorCSAqIHZh bGlkYXRpb24gcGhhc2UuCiAJICovCi0JaWYgKGluZGV4SW5mby0+aWlfVW5pcXVlKQorCWlmIChp bmRleEluZm8tPmlpX1VuaXF1ZSAmJiAhaW5kZXhJbmZvLT5paV9Db25jdXJyZW50KQogCXsKIAkJ QlRTcG9vbCAgICAqYnRzcG9vbDIgPSAoQlRTcG9vbCAqKSBwYWxsb2MwKHNpemVvZihCVFNwb29s KSk7CiAJCVNvcnRDb29yZGluYXRlIGNvb3JkaW5hdGUyID0gTlVMTDsKQEAgLTQ2OCw3ICs0NzYs NyBAQCBfYnRfc3Bvb2xzX2hlYXBzY2FuKFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LCBC VEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsCiAJCSAqIGZ1bGwsIHNvIHdlIGdpdmUgaXQgb25seSB3 b3JrX21lbQogCQkgKi8KIAkJYnVpbGRzdGF0ZS0+c3Bvb2wyLT5zb3J0c3RhdGUgPQotCQkJdHVw bGVzb3J0X2JlZ2luX2luZGV4X2J0cmVlKGhlYXAsIGluZGV4LCBmYWxzZSwgZmFsc2UsIHdvcmtf bWVtLAorCQkJdHVwbGVzb3J0X2JlZ2luX2luZGV4X2J0cmVlKGhlYXAsIGluZGV4LCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCB3b3JrX21lbSwKIAkJCQkJCQkJCQljb29yZGluYXRlMiwgVFVQTEVTT1JU X05PTkUpOwogCX0KIApAQCAtMTE0NywxMyArMTE1NSwxMTYgQEAgX2J0X2xvYWQoQlRXcml0ZVN0 YXRlICp3c3RhdGUsIEJUU3Bvb2wgKmJ0c3Bvb2wsIEJUU3Bvb2wgKmJ0c3Bvb2wyKQogCVNvcnRT dXBwb3J0IHNvcnRLZXlzOwogCWludDY0CQl0dXBsZXNfZG9uZSA9IDA7CiAJYm9vbAkJZGVkdXBs aWNhdGU7CisJYm9vbAkJZmFpbF9vbl9hbGl2ZV9kdXBsaWNhdGU7CiAKIAl3c3RhdGUtPmJ1bGtz dGF0ZSA9IHNtZ3JfYnVsa19zdGFydF9yZWwod3N0YXRlLT5pbmRleCwgTUFJTl9GT1JLTlVNKTsK IAogCWRlZHVwbGljYXRlID0gd3N0YXRlLT5pbnNrZXktPmFsbGVxdWFsaW1hZ2UgJiYgIWJ0c3Bv b2wtPmlzdW5pcXVlICYmCiAJCUJUR2V0RGVkdXBsaWNhdGVJdGVtcyh3c3RhdGUtPmluZGV4KTsK KwkvKgorCSAqIFRoZSB1bmlxdWVfZGVhZF9pZ25vcmVkIGRvZXMgbm90IGd1YXJhbnRlZSBhYnNl bmNlIG9mIG11bHRpcGxlIGFsaXZlCisJICogdHVwbGVzIHdpdGggc2FtZSB2YWx1ZXMgZXhpc3Rz IGluIHRoZSBzcG9vbC4gU3VjaCB0aGluZyBtYXkgaGFwcGVuIGlmCisJICogYWxpdmUgdHVwbGVz IGFyZSBsb2NhdGVkIGJldHdlZW4gYSBmZXcgZGVhZCB0dXBsZXMsIGxpa2UgdGhpczogYWRkZGEu CisJICovCisJZmFpbF9vbl9hbGl2ZV9kdXBsaWNhdGUgPSBidHNwb29sLT51bmlxdWVfZGVhZF9p Z25vcmVkOwogCi0JaWYgKG1lcmdlKQorCWlmIChmYWlsX29uX2FsaXZlX2R1cGxpY2F0ZSkKKwl7 CisJCWJvb2wJc2Vlbl9hbGl2ZSA9IGZhbHNlLAorCQkJCXByZXZfdGVzdGVkID0gZmFsc2U7CisJ CUluZGV4VHVwbGUgcHJldiA9IE5VTEw7CisJCVR1cGxlVGFibGVTbG90IAkJKnNsb3QgPSBNYWtl U2luZ2xlVHVwbGVUYWJsZVNsb3QoUmVsYXRpb25HZXREZXNjcih3c3RhdGUtPmhlYXApLAorCQkJ CQkJCQkJCQkJCQkJICAgJlRUU09wc0J1ZmZlckhlYXBUdXBsZSk7CisJCUluZGV4RmV0Y2hUYWJs ZURhdGEgKmZldGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4od3N0YXRlLT5oZWFwKTsKKwor CQlBc3NlcnQoYnRzcG9vbC0+aXN1bmlxdWUpOworCQlBc3NlcnQoIWJ0c3Bvb2wyKTsKKworCQl3 aGlsZSAoKGl0dXAgPSB0dXBsZXNvcnRfZ2V0aW5kZXh0dXBsZShidHNwb29sLT5zb3J0c3RhdGUs IHRydWUpKSAhPSBOVUxMKQorCQl7CisJCQlib29sCXR1cGxlc19lcXVhbCA9IGZhbHNlOworCisJ CQkvKiBXaGVuIHdlIHNlZSBmaXJzdCB0dXBsZSwgY3JlYXRlIGZpcnN0IGluZGV4IHBhZ2UgKi8K KwkJCWlmIChzdGF0ZSA9PSBOVUxMKQorCQkJCXN0YXRlID0gX2J0X3BhZ2VzdGF0ZSh3c3RhdGUs IDApOworCisJCQlpZiAocHJldiAhPSBOVUxMKSAvKiBpZiBpcyBub3QgdGhlIGZpcnN0IHR1cGxl ICovCisJCQl7CisJCQkJYm9vbAloYXNfbnVsbHMgPSBmYWxzZSwKKwkJCQkJCWNhbGxfYWdhaW4s IC8qIGp1c3QgdG8gcGFzcyBzb21ldGhpbmcgKi8KKwkJCQkJCWlnbm9yZWQsICAvKiBqdXN0IHRv IHBhc3Mgc29tZXRoaW5nICovCisJCQkJCQlub3dfYWxpdmU7CisJCQkJSXRlbVBvaW50ZXJEYXRh IHRpZDsKKworCQkJCS8qIGlmIHRoaXMgdHVwbGVzIGVxdWFsIHRvIHByZXZpb3VzZSBvbmU/ICov CisJCQkJaWYgKHdzdGF0ZS0+aW5za2V5LT5hbGxlcXVhbGltYWdlKQorCQkJCQl0dXBsZXNfZXF1 YWwgPSBfYnRfa2VlcF9uYXR0c19mYXN0KHdzdGF0ZS0+aW5kZXgsIHByZXYsIGl0dXAsICZoYXNf bnVsbHMpID4ga2V5c3o7CisJCQkJZWxzZQorCQkJCQl0dXBsZXNfZXF1YWwgPSBfYnRfa2VlcF9u YXR0cyh3c3RhdGUtPmluZGV4LCBwcmV2LCBpdHVwLHdzdGF0ZS0+aW5za2V5LCAmaGFzX251bGxz KSA+IGtleXN6OworCisJCQkJLyogaGFuZGxlIG51bGwgdmFsdWVzIGNvcnJlY3RseSAqLworCQkJ CWlmIChoYXNfbnVsbHMgJiYgIWJ0c3Bvb2wtPm51bGxzX25vdF9kaXN0aW5jdCkKKwkJCQkJdHVw bGVzX2VxdWFsID0gZmFsc2U7CisKKwkJCQlpZiAodHVwbGVzX2VxdWFsKQorCQkJCXsKKwkJCQkJ LyogY2hlY2sgcHJldmlvdXMgdHVwbGUgaWYgbm90IHlldCAqLworCQkJCQlpZiAoIXByZXZfdGVz dGVkKQorCQkJCQl7CisJCQkJCQljYWxsX2FnYWluID0gZmFsc2U7CisJCQkJCQl0aWQgPSBwcmV2 LT50X3RpZDsKKwkJCQkJCXNlZW5fYWxpdmUgPSB0YWJsZV9pbmRleF9mZXRjaF90dXBsZShmZXRj aCwgJnRpZCwgU25hcHNob3RTZWxmLCBzbG90LCAmY2FsbF9hZ2FpbiwgJmlnbm9yZWQpOworCQkJ CQkJcHJldl90ZXN0ZWQgPSB0cnVlOworCQkJCQl9CisKKwkJCQkJY2FsbF9hZ2FpbiA9IGZhbHNl OworCQkJCQl0aWQgPSBpdHVwLT50X3RpZDsKKwkJCQkJbm93X2FsaXZlID0gdGFibGVfaW5kZXhf ZmV0Y2hfdHVwbGUoZmV0Y2gsICZ0aWQsIFNuYXBzaG90U2VsZiwgc2xvdCwgJmNhbGxfYWdhaW4s ICZpZ25vcmVkKTsKKworCQkJCQkvKiBhcmUgbXVsdGlwbGUgYWxpdmUgdHVwbGVzIGRldGVjdGVk IGluIGVxdWFsIGdyb3VwPyAqLworCQkJCQlpZiAoc2Vlbl9hbGl2ZSAmJiBub3dfYWxpdmUpCisJ CQkJCXsKKwkJCQkJCWNoYXIgKmtleV9kZXNjOworCQkJCQkJVHVwbGVEZXNjIHR1cERlcyA9IFJl bGF0aW9uR2V0RGVzY3Iod3N0YXRlLT5pbmRleCk7CisJCQkJCQlib29sIGlzbnVsbFtJTkRFWF9N QVhfS0VZU107CisJCQkJCQlEYXR1bSB2YWx1ZXNbSU5ERVhfTUFYX0tFWVNdOworCisJCQkJCQlp bmRleF9kZWZvcm1fdHVwbGUoaXR1cCwgdHVwRGVzLCB2YWx1ZXMsIGlzbnVsbCk7CisKKwkJCQkJ CWtleV9kZXNjID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24od3N0YXRlLT5pbmRleCwgdmFs dWVzLCBpc251bGwpOworCisJCQkJCQkvKiBrZWVwIHRoaXMgbWVzc2FnZSBpbiBzeW5jIHdpdGgg dGhlIHNhbWUgaW4gY29tcGFyZXR1cF9pbmRleF9idHJlZV90aWVicmVhayAqLworCQkJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTklRVUVfVklPTEFUSU9OKSwK KwkJCQkJCQkJCQllcnJtc2coImNvdWxkIG5vdCBjcmVhdGUgdW5pcXVlIGluZGV4IFwiJXNcIiIs CisJCQkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHdzdGF0ZS0+aW5kZXgpKSwK KwkJCQkJCQkJCQlrZXlfZGVzYyA/IGVycmRldGFpbCgiS2V5ICVzIGlzIGR1cGxpY2F0ZWQuIiwg a2V5X2Rlc2MpIDoKKwkJCQkJCQkJCQllcnJkZXRhaWwoIkR1cGxpY2F0ZSBrZXlzIGV4aXN0LiIp LAorCQkJCQkJCQkJCWVycnRhYmxlY29uc3RyYWludCh3c3RhdGUtPmhlYXAsCisJCQkJCQkJCQkJ CQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHdzdGF0ZS0+aW5kZXgpKSkpOworCQkJCQl9 CisJCQkJCXNlZW5fYWxpdmUgfD0gbm93X2FsaXZlOworCQkJCX0KKwkJCX0KKworCQkJaWYgKCF0 dXBsZXNfZXF1YWwpCisJCQl7CisJCQkJc2Vlbl9hbGl2ZSA9IGZhbHNlOworCQkJCXByZXZfdGVz dGVkID0gZmFsc2U7CisJCQl9CisKKwkJCV9idF9idWlsZGFkZCh3c3RhdGUsIHN0YXRlLCBpdHVw LCAwKTsKKwkJCWlmIChwcmV2KSBwZnJlZShwcmV2KTsKKwkJCXByZXYgPSBDb3B5SW5kZXhUdXBs ZShpdHVwKTsKKworCQkJLyogUmVwb3J0IHByb2dyZXNzICovCisJCQlwZ3N0YXRfcHJvZ3Jlc3Nf dXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9UVVBMRVNfRE9ORSwKKwkJCQkJCQkJCQkg Kyt0dXBsZXNfZG9uZSk7CisJCX0KKwkJRXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxlU2xvdChzbG90 KTsKKwkJdGFibGVfaW5kZXhfZmV0Y2hfZW5kKGZldGNoKTsKKwl9CisJZWxzZSBpZiAobWVyZ2Up CiAJewogCQkvKgogCQkgKiBBbm90aGVyIEJUU3Bvb2wgZm9yIGRlYWQgdHVwbGVzIGV4aXN0cy4g Tm93IHdlIGhhdmUgdG8gbWVyZ2UKQEAgLTEzMTQsNyArMTQyNSw3IEBAIF9idF9sb2FkKEJUV3Jp dGVTdGF0ZSAqd3N0YXRlLCBCVFNwb29sICpidHNwb29sLCBCVFNwb29sICpidHNwb29sMikKIAkJ CQkJCQkJCQlJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIAkJCX0KIAkJCWVsc2UgaWYgKF9idF9rZWVw X25hdHRzX2Zhc3Qod3N0YXRlLT5pbmRleCwgZHN0YXRlLT5iYXNlLAotCQkJCQkJCQkJCSBpdHVw KSA+IGtleXN6ICYmCisJCQkJCQkJCQkJIGl0dXAsIE5VTEwpID4ga2V5c3ogJiYKIAkJCQkJIF9i dF9kZWR1cF9zYXZlX2h0aWQoZHN0YXRlLCBpdHVwKSkKIAkJCXsKIAkJCQkvKgpAQCAtMTQxMSw3 ICsxNTIyLDYgQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwg Ym9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2Fn ZTsKIAlib29sCQlsZWFkZXJwYXJ0aWNpcGF0ZXMgPSB0cnVlOwogCWJvb2wJCW5lZWRfcG9wX2Fj dGl2ZV9zbmFwc2hvdCA9IHRydWU7Ci0JYm9vbAkJcmVzZXRfc25hcHNob3Q7CiAJYm9vbAkJd2Fp dF9mb3Jfc25hcHNob3RfYXR0YWNoOwogCWludAkJCXF1ZXJ5bGVuOwogCkBAIC0xNDMwLDIxICsx NTQwLDEyIEBAIF9idF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJv b2wgaXNjb25jdXJyZW50LCBpbnQgcmVxdWVzdCkKIAogCXNjYW50dXBsZXNvcnRzdGF0ZXMgPSBs ZWFkZXJwYXJ0aWNpcGF0ZXMgPyByZXF1ZXN0ICsgMSA6IHJlcXVlc3Q7CiAKLSAgICAvKgotCSAq IEZvciBjb25jdXJyZW50IG5vbi11bmlxdWUgaW5kZXggYnVpbGRzLCB3ZSBjYW4gcGVyaW9kaWNh bGx5IHJlc2V0IHNuYXBzaG90cwotCSAqIHRvIGFsbG93IHRoZSB4bWluIGhvcml6b24gdG8gYWR2 YW5jZS4gVGhpcyBpcyBzYWZlIHNpbmNlIHRoZXNlIGJ1aWxkcyBkb24ndAotCSAqIHJlcXVpcmUg YSBjb25zaXN0ZW50IHZpZXcgYWNyb3NzIHRoZSBlbnRpcmUgc2Nhbi4gVW5pcXVlIGluZGV4ZXMg c3RpbGwgbmVlZAotCSAqIGEgc3RhYmxlIHNuYXBzaG90IHRvIHByb3Blcmx5IGVuZm9yY2UgdW5p cXVlbmVzcyBjb25zdHJhaW50cy4KLSAgICAgKi8KLQlyZXNldF9zbmFwc2hvdCA9IGlzY29uY3Vy cmVudCAmJiAhYnRzcG9vbC0+aXN1bmlxdWU7Ci0KIAkvKgogCSAqIFByZXBhcmUgZm9yIHNjYW4g b2YgdGhlIGJhc2UgcmVsYXRpb24uICBJbiBhIG5vcm1hbCBpbmRleCBidWlsZCwgd2UgdXNlCiAJ ICogU25hcHNob3RBbnkgYmVjYXVzZSB3ZSBtdXN0IHJldHJpZXZlIGFsbCB0dXBsZXMgYW5kIGRv IG91ciBvd24gdGltZQogCSAqIHF1YWwgY2hlY2tzIChiZWNhdXNlIHdlIGhhdmUgdG8gaW5kZXgg UkVDRU5UTFlfREVBRCB0dXBsZXMpLiAgSW4gYQogCSAqIGNvbmN1cnJlbnQgYnVpbGQsIHdlIHRh a2UgYSByZWd1bGFyIE1WQ0Mgc25hcHNob3QgYW5kIGluZGV4IHdoYXRldmVyJ3MKLQkgKiBsaXZl IGFjY29yZGluZyB0byB0aGF0LCB3aGlsZSB0aGF0IHNuYXBzaG90IG1heSBiZSByZXNldCBwZXJp b2RpY2FsbHkgaW4KLQkgKiBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXguCisJICogbGl2ZSBhY2Nv cmRpbmcgdG8gdGhhdCwgd2hpbGUgdGhhdCBzbmFwc2hvdCBtYXkgYmUgcmVzZXQgcGVyaW9kaWNh bGx5LgogCSAqLwogCWlmICghaXNjb25jdXJyZW50KQogCXsKQEAgLTE0NTIsMTYgKzE1NTMsMTYg QEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2Nv bmN1cnJlbnQsIGludCByZXF1ZXN0KQogCQlzbmFwc2hvdCA9IFNuYXBzaG90QW55OwogCQluZWVk X3BvcF9hY3RpdmVfc25hcHNob3QgPSBmYWxzZTsKIAl9Ci0JZWxzZSBpZiAocmVzZXRfc25hcHNo b3QpCisJZWxzZQogCXsKKwkJLyoKKwkJICogRm9yIGNvbmN1cnJlbnQgaW5kZXggYnVpbGRzLCB3 ZSBjYW4gcGVyaW9kaWNhbGx5IHJlc2V0IHNuYXBzaG90cyB0byBhbGxvdworCQkgKiB0aGUgeG1p biBob3Jpem9uIHRvIGFkdmFuY2UuIFRoaXMgaXMgc2FmZSBzaW5jZSB0aGVzZSBidWlsZHMgZG9u J3QKKwkJICogcmVxdWlyZSBhIGNvbnNpc3RlbnQgdmlldyBhY3Jvc3MgdGhlIGVudGlyZSBzY2Fu LgorCQkgKi8KIAkJc25hcHNob3QgPSBJbnZhbGlkU25hcHNob3Q7CiAJCVB1c2hBY3RpdmVTbmFw c2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwogCX0KLQllbHNlCi0JewotCQlzbmFwc2hv dCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKLQkJUHVzaEFj dGl2ZVNuYXBzaG90KHNuYXBzaG90KTsKLQl9CiAKIAkvKgogCSAqIEVzdGltYXRlIHNpemUgZm9y IG91ciBvd24gUEFSQUxMRUxfS0VZX0JUUkVFX1NIQVJFRCB3b3Jrc3BhY2UsIGFuZApAQCAtMTUz MSw2ICsxNjMyLDcgQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0 ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCWJ0c2hhcmVkLT5pbmRleHJlbGlk ID0gUmVsYXRpb25HZXRSZWxpZChidHNwb29sLT5pbmRleCk7CiAJYnRzaGFyZWQtPmlzdW5pcXVl ID0gYnRzcG9vbC0+aXN1bmlxdWU7CiAJYnRzaGFyZWQtPm51bGxzX25vdF9kaXN0aW5jdCA9IGJ0 c3Bvb2wtPm51bGxzX25vdF9kaXN0aW5jdDsKKwlidHNoYXJlZC0+dW5pcXVlX2RlYWRfaWdub3Jl ZCA9IGJ0c3Bvb2wtPnVuaXF1ZV9kZWFkX2lnbm9yZWQ7CiAJYnRzaGFyZWQtPmlzY29uY3VycmVu dCA9IGlzY29uY3VycmVudDsKIAlidHNoYXJlZC0+c2NhbnR1cGxlc29ydHN0YXRlcyA9IHNjYW50 dXBsZXNvcnRzdGF0ZXM7CiAJYnRzaGFyZWQtPnF1ZXJ5aWQgPSBwZ3N0YXRfZ2V0X215X3F1ZXJ5 X2lkKCk7CkBAIC0xNTQ1LDcgKzE2NDcsNyBAQCBfYnRfYmVnaW5fcGFyYWxsZWwoQlRCdWlsZFN0 YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwgaW50IHJlcXVlc3QpCiAJdGFibGVf cGFyYWxsZWxzY2FuX2luaXRpYWxpemUoYnRzcG9vbC0+aGVhcCwKIAkJCQkJCQkJICBQYXJhbGxl bFRhYmxlU2NhbkZyb21CVFNoYXJlZChidHNoYXJlZCksCiAJCQkJCQkJCSAgc25hcHNob3QsCi0J CQkJCQkJCSAgcmVzZXRfc25hcHNob3QpOworCQkJCQkJCQkgIGlzY29uY3VycmVudCk7CiAKIAkv KgogCSAqIFN0b3JlIHNoYXJlZCB0dXBsZXNvcnQtcHJpdmF0ZSBzdGF0ZSwgZm9yIHdoaWNoIHdl IHJlc2VydmVkIHNwYWNlLgpAQCAtMTYyNiw3ICsxNzI4LDcgQEAgX2J0X2JlZ2luX3BhcmFsbGVs KEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0 KQogCSAqIEluIGNhc2Ugd2hlbiBsZWFkZXIgZ29pbmcgdG8gcmVzZXQgb3duIGFjdGl2ZSBzbmFw c2hvdCBhcyB3ZWxsIC0gd2UgbmVlZCB0bwogCSAqIHdhaXQgdW50aWwgYWxsIHdvcmtlcnMgaW1w b3J0ZWQgaW5pdGlhbCBzbmFwc2hvdC4KIAkgKi8KLQl3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2gg PSByZXNldF9zbmFwc2hvdCAmJiBsZWFkZXJwYXJ0aWNpcGF0ZXM7CisJd2FpdF9mb3Jfc25hcHNo b3RfYXR0YWNoID0gaXNjb25jdXJyZW50ICYmIGxlYWRlcnBhcnRpY2lwYXRlczsKIAogCWlmICh3 YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2gpCiAJCVdhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0dGFj aChwY3h0LCB0cnVlKTsKQEAgLTE3NDIsNiArMTg0NCw3IEBAIF9idF9sZWFkZXJfcGFydGljaXBh dGVfYXNfd29ya2VyKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSkKIAlsZWFkZXJ3b3JrZXItPmlu ZGV4ID0gYnVpbGRzdGF0ZS0+c3Bvb2wtPmluZGV4OwogCWxlYWRlcndvcmtlci0+aXN1bmlxdWUg PSBidWlsZHN0YXRlLT5zcG9vbC0+aXN1bmlxdWU7CiAJbGVhZGVyd29ya2VyLT5udWxsc19ub3Rf ZGlzdGluY3QgPSBidWlsZHN0YXRlLT5zcG9vbC0+bnVsbHNfbm90X2Rpc3RpbmN0OworCWxlYWRl cndvcmtlci0+dW5pcXVlX2RlYWRfaWdub3JlZCA9IGJ1aWxkc3RhdGUtPnNwb29sLT51bmlxdWVf ZGVhZF9pZ25vcmVkOwogCiAJLyogSW5pdGlhbGl6ZSBzZWNvbmQgc3Bvb2wsIGlmIHJlcXVpcmVk ICovCiAJaWYgKCFidGxlYWRlci0+YnRzaGFyZWQtPmlzdW5pcXVlKQpAQCAtMTg0NSwxMSArMTk0 OCwxMiBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiAJYnRzcG9vbC0+aW5kZXggPSBpbmRleFJlbDsKIAlidHNwb29sLT5pc3VuaXF1ZSA9 IGJ0c2hhcmVkLT5pc3VuaXF1ZTsKIAlidHNwb29sLT5udWxsc19ub3RfZGlzdGluY3QgPSBidHNo YXJlZC0+bnVsbHNfbm90X2Rpc3RpbmN0OworCWJ0c3Bvb2wtPnVuaXF1ZV9kZWFkX2lnbm9yZWQg PSBidHNoYXJlZC0+dW5pcXVlX2RlYWRfaWdub3JlZDsKIAogCS8qIExvb2sgdXAgc2hhcmVkIHN0 YXRlIHByaXZhdGUgdG8gdHVwbGVzb3J0LmMgKi8KIAlzaGFyZWRzb3J0ID0gc2htX3RvY19sb29r dXAodG9jLCBQQVJBTExFTF9LRVlfVFVQTEVTT1JULCBmYWxzZSk7CiAJdHVwbGVzb3J0X2F0dGFj aF9zaGFyZWQoc2hhcmVkc29ydCwgc2VnKTsKLQlpZiAoIWJ0c2hhcmVkLT5pc3VuaXF1ZSkKKwlp ZiAoIWJ0c2hhcmVkLT5pc3VuaXF1ZSB8fCBidHNoYXJlZC0+aXNjb25jdXJyZW50KQogCXsKIAkJ YnRzcG9vbDIgPSBOVUxMOwogCQlzaGFyZWRzb3J0MiA9IE5VTEw7CkBAIC0xOTI4LDYgKzIwMzIs NyBAQCBfYnRfcGFyYWxsZWxfc2Nhbl9hbmRfc29ydChCVFNwb29sICpidHNwb29sLCBCVFNwb29s ICpidHNwb29sMiwKIAkJCQkJCQkJCQkJCQkgYnRzcG9vbC0+aW5kZXgsCiAJCQkJCQkJCQkJCQkJ IGJ0c3Bvb2wtPmlzdW5pcXVlLAogCQkJCQkJCQkJCQkJCSBidHNwb29sLT5udWxsc19ub3RfZGlz dGluY3QsCisJCQkJCQkJCQkJCQkJIGJ0c3Bvb2wtPnVuaXF1ZV9kZWFkX2lnbm9yZWQsCiAJCQkJ CQkJCQkJCQkJIHNvcnRtZW0sIGNvb3JkaW5hdGUsCiAJCQkJCQkJCQkJCQkJIFRVUExFU09SVF9O T05FKTsKIApAQCAtMTk1MCwxNCArMjA1NSwxMiBAQCBfYnRfcGFyYWxsZWxfc2Nhbl9hbmRfc29y dChCVFNwb29sICpidHNwb29sLCBCVFNwb29sICpidHNwb29sMiwKIAkJY29vcmRpbmF0ZTItPm5Q YXJ0aWNpcGFudHMgPSAtMTsKIAkJY29vcmRpbmF0ZTItPnNoYXJlZHNvcnQgPSBzaGFyZWRzb3J0 MjsKIAkJYnRzcG9vbDItPnNvcnRzdGF0ZSA9Ci0JCQl0dXBsZXNvcnRfYmVnaW5faW5kZXhfYnRy ZWUoYnRzcG9vbC0+aGVhcCwgYnRzcG9vbC0+aW5kZXgsIGZhbHNlLCBmYWxzZSwKKwkJCXR1cGxl c29ydF9iZWdpbl9pbmRleF9idHJlZShidHNwb29sLT5oZWFwLCBidHNwb29sLT5pbmRleCwgZmFs c2UsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQlNaW4oc29ydG1lbSwgd29ya19tZW0pLCBjb29y ZGluYXRlMiwKIAkJCQkJCQkJCQlmYWxzZSk7CiAJfQogCiAJLyogRmlsbCBpbiBidWlsZHN0YXRl IGZvciBfYnRfYnVpbGRfY2FsbGJhY2soKSAqLwotCWJ1aWxkc3RhdGUuaXN1bmlxdWUgPSBidHNo YXJlZC0+aXN1bmlxdWU7Ci0JYnVpbGRzdGF0ZS5udWxsc19ub3RfZGlzdGluY3QgPSBidHNoYXJl ZC0+bnVsbHNfbm90X2Rpc3RpbmN0OwogCWJ1aWxkc3RhdGUuaGF2ZWRlYWQgPSBmYWxzZTsKIAli dWlsZHN0YXRlLmhlYXAgPSBidHNwb29sLT5oZWFwOwogCWJ1aWxkc3RhdGUuc3Bvb2wgPSBidHNw b29sOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzcGxpdGxvYy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzcGxpdGxvYy5jCmluZGV4IDFmNDBkNDAy NjNlLi5lMmVkNDUzNzAyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9u YnRzcGxpdGxvYy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c3BsaXRsb2Mu YwpAQCAtNjg3LDcgKzY4Nyw3IEBAIF9idF9hZnRlcm5ld2l0ZW1vZmYoRmluZFNwbGl0RGF0YSAq c3RhdGUsIE9mZnNldE51bWJlciBtYXhvZmYsCiAJewogCQlpdGVtaWQgPSBQYWdlR2V0SXRlbUlk KHN0YXRlLT5vcmlncGFnZSwgbWF4b2ZmKTsKIAkJdHVwID0gKEluZGV4VHVwbGUpIFBhZ2VHZXRJ dGVtKHN0YXRlLT5vcmlncGFnZSwgaXRlbWlkKTsKLQkJa2VlcG5hdHRzID0gX2J0X2tlZXBfbmF0 dHNfZmFzdChzdGF0ZS0+cmVsLCB0dXAsIHN0YXRlLT5uZXdpdGVtKTsKKwkJa2VlcG5hdHRzID0g X2J0X2tlZXBfbmF0dHNfZmFzdChzdGF0ZS0+cmVsLCB0dXAsIHN0YXRlLT5uZXdpdGVtLCBOVUxM KTsKIAogCQlpZiAoa2VlcG5hdHRzID4gMSAmJiBrZWVwbmF0dHMgPD0gbmtleWF0dHMpCiAJCXsK QEAgLTcxOCw3ICs3MTgsNyBAQCBfYnRfYWZ0ZXJuZXdpdGVtb2ZmKEZpbmRTcGxpdERhdGEgKnN0 YXRlLCBPZmZzZXROdW1iZXIgbWF4b2ZmLAogCQkhX2J0X2FkamFjZW50aHRpZCgmdHVwLT50X3Rp ZCwgJnN0YXRlLT5uZXdpdGVtLT50X3RpZCkpCiAJCXJldHVybiBmYWxzZTsKIAkvKiBDaGVjayBz YW1lIGNvbmRpdGlvbnMgYXMgcmlnaHRtb3N0IGl0ZW0gY2FzZSwgdG9vICovCi0Ja2VlcG5hdHRz ID0gX2J0X2tlZXBfbmF0dHNfZmFzdChzdGF0ZS0+cmVsLCB0dXAsIHN0YXRlLT5uZXdpdGVtKTsK KwlrZWVwbmF0dHMgPSBfYnRfa2VlcF9uYXR0c19mYXN0KHN0YXRlLT5yZWwsIHR1cCwgc3RhdGUt Pm5ld2l0ZW0sIE5VTEwpOwogCiAJaWYgKGtlZXBuYXR0cyA+IDEgJiYga2VlcG5hdHRzIDw9IG5r ZXlhdHRzKQogCXsKQEAgLTk2Nyw3ICs5NjcsNyBAQCBfYnRfc3RyYXRlZ3koRmluZFNwbGl0RGF0 YSAqc3RhdGUsIFNwbGl0UG9pbnQgKmxlZnRwYWdlLAogCSAqIGF2b2lkIGFwcGVuZGluZyBhIGhl YXAgVElEIGluIG5ldyBoaWdoIGtleSwgd2UncmUgZG9uZS4gIEZpbmlzaCBzcGxpdAogCSAqIHdp dGggZGVmYXVsdCBzdHJhdGVneSBhbmQgaW5pdGlhbCBzcGxpdCBpbnRlcnZhbC4KIAkgKi8KLQlw ZXJmZWN0cGVuYWx0eSA9IF9idF9rZWVwX25hdHRzX2Zhc3Qoc3RhdGUtPnJlbCwgbGVmdG1vc3Qs IHJpZ2h0bW9zdCk7CisJcGVyZmVjdHBlbmFsdHkgPSBfYnRfa2VlcF9uYXR0c19mYXN0KHN0YXRl LT5yZWwsIGxlZnRtb3N0LCByaWdodG1vc3QsIE5VTEwpOwogCWlmIChwZXJmZWN0cGVuYWx0eSA8 PSBpbmRua2V5YXR0cykKIAkJcmV0dXJuIHBlcmZlY3RwZW5hbHR5OwogCkBAIC05ODgsNyArOTg4 LDcgQEAgX2J0X3N0cmF0ZWd5KEZpbmRTcGxpdERhdGEgKnN0YXRlLCBTcGxpdFBvaW50ICpsZWZ0 cGFnZSwKIAkgKiBJZiBwYWdlIGlzIGVudGlyZWx5IGZ1bGwgb2YgZHVwbGljYXRlcywgYSBzaW5n bGUgdmFsdWUgc3RyYXRlZ3kgc3BsaXQKIAkgKiB3aWxsIGJlIHBlcmZvcm1lZC4KIAkgKi8KLQlw ZXJmZWN0cGVuYWx0eSA9IF9idF9rZWVwX25hdHRzX2Zhc3Qoc3RhdGUtPnJlbCwgbGVmdG1vc3Qs IHJpZ2h0bW9zdCk7CisJcGVyZmVjdHBlbmFsdHkgPSBfYnRfa2VlcF9uYXR0c19mYXN0KHN0YXRl LT5yZWwsIGxlZnRtb3N0LCByaWdodG1vc3QsIE5VTEwpOwogCWlmIChwZXJmZWN0cGVuYWx0eSA8 PSBpbmRua2V5YXR0cykKIAl7CiAJCSpzdHJhdGVneSA9IFNQTElUX01BTllfRFVQTElDQVRFUzsK QEAgLTEwMjcsNyArMTAyNyw3IEBAIF9idF9zdHJhdGVneShGaW5kU3BsaXREYXRhICpzdGF0ZSwg U3BsaXRQb2ludCAqbGVmdHBhZ2UsCiAJCWl0ZW1pZCA9IFBhZ2VHZXRJdGVtSWQoc3RhdGUtPm9y aWdwYWdlLCBQX0hJS0VZKTsKIAkJaGlrZXkgPSAoSW5kZXhUdXBsZSkgUGFnZUdldEl0ZW0oc3Rh dGUtPm9yaWdwYWdlLCBpdGVtaWQpOwogCQlwZXJmZWN0cGVuYWx0eSA9IF9idF9rZWVwX25hdHRz X2Zhc3Qoc3RhdGUtPnJlbCwgaGlrZXksCi0JCQkJCQkJCQkJCSBzdGF0ZS0+bmV3aXRlbSk7CisJ CQkJCQkJCQkJCSBzdGF0ZS0+bmV3aXRlbSwgTlVMTCk7CiAJCWlmIChwZXJmZWN0cGVuYWx0eSA8 PSBpbmRua2V5YXR0cykKIAkJCSpzdHJhdGVneSA9IFNQTElUX1NJTkdMRV9WQUxVRTsKIAkJZWxz ZQpAQCAtMTE0OSw3ICsxMTQ5LDcgQEAgX2J0X3NwbGl0X3BlbmFsdHkoRmluZFNwbGl0RGF0YSAq c3RhdGUsIFNwbGl0UG9pbnQgKnNwbGl0KQogCWxhc3RsZWZ0ID0gX2J0X3NwbGl0X2xhc3RsZWZ0 KHN0YXRlLCBzcGxpdCk7CiAJZmlyc3RyaWdodCA9IF9idF9zcGxpdF9maXJzdHJpZ2h0KHN0YXRl LCBzcGxpdCk7CiAKLQlyZXR1cm4gX2J0X2tlZXBfbmF0dHNfZmFzdChzdGF0ZS0+cmVsLCBsYXN0 bGVmdCwgZmlyc3RyaWdodCk7CisJcmV0dXJuIF9idF9rZWVwX25hdHRzX2Zhc3Qoc3RhdGUtPnJl bCwgbGFzdGxlZnQsIGZpcnN0cmlnaHQsIE5VTEwpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnR1dGlscy5jCmluZGV4IDUwY2JmMDZjYjQ1Li4zZDZkZGE0YWNlOCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0dXRpbHMuYwpAQCAtMTAwLDggKzEwMCw2IEBAIHN0YXRpYyBib29s IF9idF9jaGVja19yb3djb21wYXJlKFNjYW5LZXkgc2tleSwKIAkJCQkJCQkJIFNjYW5EaXJlY3Rp b24gZGlyLCBib29sICpjb250aW51ZXNjYW4pOwogc3RhdGljIHZvaWQgX2J0X2NoZWNra2V5c19s b29rX2FoZWFkKEluZGV4U2NhbkRlc2Mgc2NhbiwgQlRSZWFkUGFnZVN0YXRlICpwc3RhdGUsCiAJ CQkJCQkJCQkgaW50IHR1cG5hdHRzLCBUdXBsZURlc2MgdHVwZGVzYyk7Ci1zdGF0aWMgaW50CV9i dF9rZWVwX25hdHRzKFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwKLQkJCQkJCSAg IEluZGV4VHVwbGUgZmlyc3RyaWdodCwgQlRTY2FuSW5zZXJ0IGl0dXBfa2V5KTsKIAogCiAvKgpA QCAtNDY3Miw3ICs0NjcwLDcgQEAgX2J0X3RydW5jYXRlKFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBs ZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0LAogCUFzc2VydCghQlRyZWVUdXBsZUlz UGl2b3QobGFzdGxlZnQpICYmICFCVHJlZVR1cGxlSXNQaXZvdChmaXJzdHJpZ2h0KSk7CiAKIAkv KiBEZXRlcm1pbmUgaG93IG1hbnkgYXR0cmlidXRlcyBtdXN0IGJlIGtlcHQgaW4gdHJ1bmNhdGVk IHR1cGxlICovCi0Ja2VlcG5hdHRzID0gX2J0X2tlZXBfbmF0dHMocmVsLCBsYXN0bGVmdCwgZmly c3RyaWdodCwgaXR1cF9rZXkpOworCWtlZXBuYXR0cyA9IF9idF9rZWVwX25hdHRzKHJlbCwgbGFz dGxlZnQsIGZpcnN0cmlnaHQsIGl0dXBfa2V5LCBOVUxMKTsKIAogI2lmZGVmIERFQlVHX05PX1RS VU5DQVRFCiAJLyogRm9yY2UgdHJ1bmNhdGlvbiB0byBiZSBpbmVmZmVjdGl2ZSBmb3IgdGVzdGlu ZyBwdXJwb3NlcyAqLwpAQCAtNDc5MCwxNyArNDc4OCwyNCBAQCBfYnRfdHJ1bmNhdGUoUmVsYXRp b24gcmVsLCBJbmRleFR1cGxlIGxhc3RsZWZ0LCBJbmRleFR1cGxlIGZpcnN0cmlnaHQsCiAvKgog ICogX2J0X2tlZXBfbmF0dHMgLSBob3cgbWFueSBrZXkgYXR0cmlidXRlcyB0byBrZWVwIHdoZW4g dHJ1bmNhdGluZy4KICAqCisgKiBUaGlzIGlzIGV4cG9ydGVkIHRvIGJlIHVzZWQgYXMgY29tcGFy aXNvbiBmdW5jdGlvbiBkdXJpbmcgY29uY3VycmVudAorICogdW5pcXVlIGluZGV4IGJ1aWxkIGlu IGNhc2UgX2J0X2tlZXBfbmF0dHNfZmFzdCBpcyBub3Qgc3VpdGFibGUgYmVjYXVzZQorICogY29s bGF0aW9uIGlzIG5vdCAiYWxsZXF1YWxpbWFnZSIvZGVkdXBsaWNhdGlvbi1zYWZlLgorICoKICAq IENhbGxlciBwcm92aWRlcyB0d28gdHVwbGVzIHRoYXQgZW5jbG9zZSBhIHNwbGl0IHBvaW50LiAg Q2FsbGVyJ3MgaW5zZXJ0aW9uCiAgKiBzY2Fua2V5IGlzIHVzZWQgdG8gY29tcGFyZSB0aGUgdHVw bGVzOyB0aGUgc2NhbmtleSdzIGFyZ3VtZW50IHZhbHVlcyBhcmUKICAqIG5vdCBjb25zaWRlcmVk IGhlcmUuCiAgKgorICogaGFzbnVsbHMgdmFsdWUgc2V0IHRvIHRydWUgaW4gY2FzZSBvZiBhbnkg bnVsbCBjb2x1bW4gaW4gYW55IHR1cGxlLgorICoKICAqIFRoaXMgY2FuIHJldHVybiBhIG51bWJl ciBvZiBhdHRyaWJ1dGVzIHRoYXQgaXMgb25lIGdyZWF0ZXIgdGhhbiB0aGUKICAqIG51bWJlciBv ZiBrZXkgYXR0cmlidXRlcyBmb3IgdGhlIGluZGV4IHJlbGF0aW9uLiAgVGhpcyBpbmRpY2F0ZXMg dGhhdCB0aGUKICAqIGNhbGxlciBtdXN0IHVzZSBhIGhlYXAgVElEIGFzIGEgdW5pcXVlLWlmaWVy IGluIG5ldyBwaXZvdCB0dXBsZS4KICAqLwotc3RhdGljIGludAoraW50CiBfYnRfa2VlcF9uYXR0 cyhSZWxhdGlvbiByZWwsIEluZGV4VHVwbGUgbGFzdGxlZnQsIEluZGV4VHVwbGUgZmlyc3RyaWdo dCwKLQkJCSAgIEJUU2Nhbkluc2VydCBpdHVwX2tleSkKKwkJCSAgIEJUU2Nhbkluc2VydCBpdHVw X2tleSwKKwkJCSAgIGJvb2wgKmhhc251bGxzKQogewogCWludAkJCW5rZXlhdHRzID0gSW5kZXhS ZWxhdGlvbkdldE51bWJlck9mS2V5QXR0cmlidXRlcyhyZWwpOwogCVR1cGxlRGVzYwlpdHVwZGVz YyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKQEAgLTQ4MjYsNiArNDgzMSw4IEBAIF9idF9rZWVw X25hdHRzKFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJz dHJpZ2h0LAogCiAJCWRhdHVtMSA9IGluZGV4X2dldGF0dHIobGFzdGxlZnQsIGF0dG51bSwgaXR1 cGRlc2MsICZpc051bGwxKTsKIAkJZGF0dW0yID0gaW5kZXhfZ2V0YXR0cihmaXJzdHJpZ2h0LCBh dHRudW0sIGl0dXBkZXNjLCAmaXNOdWxsMik7CisJCWlmIChoYXNudWxscykKKwkJCSgqaGFzbnVs bHMpIHw9IChpc051bGwxIHx8IGlzTnVsbDIpOwogCiAJCWlmIChpc051bGwxICE9IGlzTnVsbDIp CiAJCQlicmVhazsKQEAgLTQ4NDUsNyArNDg1Miw3IEBAIF9idF9rZWVwX25hdHRzKFJlbGF0aW9u IHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0LAogCSAqIGV4 cGVjdGVkIGluIGFuIGFsbGVxdWFsaW1hZ2UgaW5kZXguCiAJICovCiAJQXNzZXJ0KCFpdHVwX2tl eS0+YWxsZXF1YWxpbWFnZSB8fAotCQkgICBrZWVwbmF0dHMgPT0gX2J0X2tlZXBfbmF0dHNfZmFz dChyZWwsIGxhc3RsZWZ0LCBmaXJzdHJpZ2h0KSk7CisJCSAgIGtlZXBuYXR0cyA9PSBfYnRfa2Vl cF9uYXR0c19mYXN0KHJlbCwgbGFzdGxlZnQsIGZpcnN0cmlnaHQsIE5VTEwpKTsKIAogCXJldHVy biBrZWVwbmF0dHM7CiB9CkBAIC00ODU2LDcgKzQ4NjMsOCBAQCBfYnRfa2VlcF9uYXR0cyhSZWxh dGlvbiByZWwsIEluZGV4VHVwbGUgbGFzdGxlZnQsIEluZGV4VHVwbGUgZmlyc3RyaWdodCwKICAq IFRoaXMgaXMgZXhwb3J0ZWQgc28gdGhhdCBhIGNhbmRpZGF0ZSBzcGxpdCBwb2ludCBjYW4gaGF2 ZSBpdHMgZWZmZWN0IG9uCiAgKiBzdWZmaXggdHJ1bmNhdGlvbiBpbmV4cGVuc2l2ZWx5IGV2YWx1 YXRlZCBhaGVhZCBvZiB0aW1lIHdoZW4gZmluZGluZyBhCiAgKiBzcGxpdCBsb2NhdGlvbi4gIEEg bmFpdmUgYml0d2lzZSBhcHByb2FjaCB0byBkYXR1bSBjb21wYXJpc29ucyBpcyB1c2VkIHRvCi0g KiBzYXZlIGN5Y2xlcy4KKyAqIHNhdmUgY3ljbGVzLiBBbHNvLCBpdCBtYXkgYmUgdXNlZCBhcyBj b21wYXJpc29uIGZ1bmN0aW9uIGR1cmluZyBjb25jdXJyZW50CisgKiBidWlsZCBvZiB1bmlxdWUg aW5kZXguCiAgKgogICogVGhlIGFwcHJvYWNoIHRha2VuIGhlcmUgdXN1YWxseSBwcm92aWRlcyB0 aGUgc2FtZSBhbnN3ZXIgYXMgX2J0X2tlZXBfbmF0dHMKICAqIHdpbGwgKGZvciB0aGUgc2FtZSBw YWlyIG9mIHR1cGxlcyBmcm9tIGEgaGVhcGtleXNwYWNlIGluZGV4KSwgc2luY2UgdGhlCkBAIC00 ODY1LDYgKzQ4NzMsOCBAQCBfYnRfa2VlcF9uYXR0cyhSZWxhdGlvbiByZWwsIEluZGV4VHVwbGUg bGFzdGxlZnQsIEluZGV4VHVwbGUgZmlyc3RyaWdodCwKICAqICJlcXVhbCBpbWFnZSIgY29sdW1u cywgcm91dGluZSBpcyBndWFyYW50ZWVkIHRvIGdpdmUgdGhlIHNhbWUgcmVzdWx0IGFzCiAgKiBf YnRfa2VlcF9uYXR0cyB3b3VsZC4KICAqCisgKiBoYXNudWxscyB2YWx1ZSBzZXQgdG8gdHJ1ZSBp biBjYXNlIG9mIGFueSBudWxsIGNvbHVtbiBpbiBhbnkgdHVwbGUuCisgKgogICogQ2FsbGVycyBj YW4gcmVseSBvbiB0aGUgZmFjdCB0aGF0IGF0dHJpYnV0ZXMgY29uc2lkZXJlZCBlcXVhbCBoZXJl IGFyZQogICogZGVmaW5pdGVseSBhbHNvIGVxdWFsIGFjY29yZGluZyB0byBfYnRfa2VlcF9uYXR0 cywgZXZlbiB3aGVuIHRoZSBpbmRleCB1c2VzCiAgKiBhbiBvcGNsYXNzIG9yIGNvbGxhdGlvbiB0 aGF0IGlzIG5vdCAiYWxsZXF1YWxpbWFnZSIvZGVkdXBsaWNhdGlvbi1zYWZlLgpAQCAtNDg3Myw3 ICs0ODgzLDggQEAgX2J0X2tlZXBfbmF0dHMoUmVsYXRpb24gcmVsLCBJbmRleFR1cGxlIGxhc3Rs ZWZ0LCBJbmRleFR1cGxlIGZpcnN0cmlnaHQsCiAgKiBtb3JlIGJhbGFuY2VkIHNwbGl0IHBvaW50 LgogICovCiBpbnQKLV9idF9rZWVwX25hdHRzX2Zhc3QoUmVsYXRpb24gcmVsLCBJbmRleFR1cGxl IGxhc3RsZWZ0LCBJbmRleFR1cGxlIGZpcnN0cmlnaHQpCitfYnRfa2VlcF9uYXR0c19mYXN0KFJl bGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0LAor CQkJCQlib29sICpoYXNudWxscykKIHsKIAlUdXBsZURlc2MJaXR1cGRlc2MgPSBSZWxhdGlvbkdl dERlc2NyKHJlbCk7CiAJaW50CQkJa2V5c3ogPSBJbmRleFJlbGF0aW9uR2V0TnVtYmVyT2ZLZXlB dHRyaWJ1dGVzKHJlbCk7CkBAIC00ODkwLDYgKzQ5MDEsOCBAQCBfYnRfa2VlcF9uYXR0c19mYXN0 KFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0 KQogCiAJCWRhdHVtMSA9IGluZGV4X2dldGF0dHIobGFzdGxlZnQsIGF0dG51bSwgaXR1cGRlc2Ms ICZpc051bGwxKTsKIAkJZGF0dW0yID0gaW5kZXhfZ2V0YXR0cihmaXJzdHJpZ2h0LCBhdHRudW0s IGl0dXBkZXNjLCAmaXNOdWxsMik7CisJCWlmIChoYXNudWxscykKKwkJCSpoYXNudWxscyB8PSAo aXNOdWxsMSB8IGlzTnVsbDIpOwogCQlhdHQgPSBUdXBsZURlc2NBdHRyKGl0dXBkZXNjLCBhdHRu dW0gLSAxKTsKIAogCQlpZiAoaXNOdWxsMSAhPSBpc051bGwyKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9pbmRleC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCmluZGV4 IGY1ODFhNzQzYWFlLi42MjQyYjI0Mjk0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9pbmRleC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtMzI5Miw5ICsz MjkyLDkgQEAgSW5kZXhDaGVja0V4Y2x1c2lvbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAgKiBp ZiB3ZSB1c2VkIEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSkuICBUaGlzIGxlYXZlcyB1cyB3aXRo IGFuIGluZGV4IHRoYXQKICAqIGRvZXMgbm90IGNvbnRhaW4gYW55IHR1cGxlcyBhZGRlZCB0byB0 aGUgdGFibGUgd2hpbGUgd2UgYnVpbHQgdGhlIGluZGV4LgogICoKLSAqIEZ1cnRoZXJtb3JlLCBp biBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXggd2Ugc2V0IFNPX1JFU0VUX1NOQVBTSE9UIGZvciB0 aGUKLSAqIHNjYW4sIHdoaWNoIGNhdXNlcyBuZXcgc25hcHNob3QgdG8gYmUgc2V0IGFzIGFjdGl2 ZSBldmVyeSBzbyBvZnRlbi4gVGhlIHJlYXNvbgotICogZm9yIHRoYXQgaXMgdG8gcHJvcGFnYXRl IHRoZSB4bWluIGhvcml6b24gZm9yd2FyZC4KKyAqIEZ1cnRoZXJtb3JlLCB3ZSBzZXQgU09fUkVT RVRfU05BUFNIT1QgZm9yIHRoZSBzY2FuLCB3aGljaCBjYXVzZXMgbmV3CisgKiBzbmFwc2hvdCB0 byBiZSBzZXQgYXMgYWN0aXZlIGV2ZXJ5IHNvIG9mdGVuLiBUaGUgcmVhc29uICBmb3IgdGhhdCBp cyB0bworICogcHJvcGFnYXRlIHRoZSB4bWluIGhvcml6b24gZm9yd2FyZC4KICAqCiAgKiBOZXh0 LCB3ZSBtYXJrIHRoZSBpbmRleCAiaW5kaXNyZWFkeSIgKGJ1dCBzdGlsbCBub3QgImluZGlzdmFs aWQiKSBhbmQKICAqIGNvbW1pdCB0aGUgc2Vjb25kIHRyYW5zYWN0aW9uIGFuZCBzdGFydCBhIHRo aXJkLiAgQWdhaW4gd2Ugd2FpdCBmb3IgYWxsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9zb3J0L3R1cGxlc29ydHZhcmlhbnRzLmMgYi9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxl c29ydHZhcmlhbnRzLmMKaW5kZXggZTA3YmE0ZWE0YjEuLmFhNGZjYWFjOWEwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc29ydHZhcmlhbnRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnR2YXJpYW50cy5jCkBAIC0xMjMsNiArMTIzLDcgQEAg dHlwZWRlZiBzdHJ1Y3QKIAogCWJvb2wJCWVuZm9yY2VVbmlxdWU7CS8qIGNvbXBsYWluIGlmIHdl IGZpbmQgZHVwbGljYXRlIHR1cGxlcyAqLwogCWJvb2wJCXVuaXF1ZU51bGxzTm90RGlzdGluY3Q7 IC8qIHVuaXF1ZSBjb25zdHJhaW50IG51bGwgdHJlYXRtZW50ICovCisJYm9vbAkJdW5pcXVlRGVh ZElnbm9yZWQ7IC8qIGlnbm9yZSBkZWFkIHR1cGxlcyBpbiB1bmlxdWUgY2hlY2sgKi8KIH0gVHVw bGVzb3J0SW5kZXhCVHJlZUFyZzsKIAogLyoKQEAgLTM0OSw2ICszNTAsNyBAQCB0dXBsZXNvcnRf YmVnaW5faW5kZXhfYnRyZWUoUmVsYXRpb24gaGVhcFJlbCwKIAkJCQkJCQlSZWxhdGlvbiBpbmRl eFJlbCwKIAkJCQkJCQlib29sIGVuZm9yY2VVbmlxdWUsCiAJCQkJCQkJYm9vbCB1bmlxdWVOdWxs c05vdERpc3RpbmN0LAorCQkJCQkJCWJvb2wgdW5pcXVlRGVhZElnbm9yZWQsCiAJCQkJCQkJaW50 IHdvcmtNZW0sCiAJCQkJCQkJU29ydENvb3JkaW5hdGUgY29vcmRpbmF0ZSwKIAkJCQkJCQlpbnQg c29ydG9wdCkKQEAgLTM5MSw2ICszOTMsNyBAQCB0dXBsZXNvcnRfYmVnaW5faW5kZXhfYnRyZWUo UmVsYXRpb24gaGVhcFJlbCwKIAlhcmctPmluZGV4LmluZGV4UmVsID0gaW5kZXhSZWw7CiAJYXJn LT5lbmZvcmNlVW5pcXVlID0gZW5mb3JjZVVuaXF1ZTsKIAlhcmctPnVuaXF1ZU51bGxzTm90RGlz dGluY3QgPSB1bmlxdWVOdWxsc05vdERpc3RpbmN0OworCWFyZy0+dW5pcXVlRGVhZElnbm9yZWQg PSB1bmlxdWVEZWFkSWdub3JlZDsKIAogCWluZGV4U2NhbktleSA9IF9idF9ta3NjYW5rZXkoaW5k ZXhSZWwsIE5VTEwpOwogCkBAIC0xNTIwLDYgKzE1MjMsNyBAQCBjb21wYXJldHVwX2luZGV4X2J0 cmVlX3RpZWJyZWFrKGNvbnN0IFNvcnRUdXBsZSAqYSwgY29uc3QgU29ydFR1cGxlICpiLAogCQlE YXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKIAkJYm9vbAkJaXNudWxsW0lOREVYX01BWF9L RVlTXTsKIAkJY2hhcgkgICAqa2V5X2Rlc2M7CisJCWJvb2wJCXVuaXF1ZUNoZWNrRmFpbCA9IHRy dWU7CiAKIAkJLyoKIAkJICogU29tZSByYXRoZXIgYnJhaW4tZGVhZCBpbXBsZW1lbnRhdGlvbnMg b2YgcXNvcnQgKHN1Y2ggYXMgdGhlIG9uZSBpbgpAQCAtMTUyOSwxOCArMTUzMyw1NyBAQCBjb21w YXJldHVwX2luZGV4X2J0cmVlX3RpZWJyZWFrKGNvbnN0IFNvcnRUdXBsZSAqYSwgY29uc3QgU29y dFR1cGxlICpiLAogCQkgKi8KIAkJQXNzZXJ0KHR1cGxlMSAhPSB0dXBsZTIpOwogCi0JCWluZGV4 X2RlZm9ybV90dXBsZSh0dXBsZTEsIHR1cERlcywgdmFsdWVzLCBpc251bGwpOwotCi0JCWtleV9k ZXNjID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24oYXJnLT5pbmRleC5pbmRleFJlbCwgdmFs dWVzLCBpc251bGwpOwotCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9V TklRVUVfVklPTEFUSU9OKSwKLQkJCQkgZXJybXNnKCJjb3VsZCBub3QgY3JlYXRlIHVuaXF1ZSBp bmRleCBcIiVzXCIiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoYXJnLT5pbmRleC5p bmRleFJlbCkpLAotCQkJCSBrZXlfZGVzYyA/IGVycmRldGFpbCgiS2V5ICVzIGlzIGR1cGxpY2F0 ZWQuIiwga2V5X2Rlc2MpIDoKLQkJCQkgZXJyZGV0YWlsKCJEdXBsaWNhdGUga2V5cyBleGlzdC4i KSwKLQkJCQkgZXJydGFibGVjb25zdHJhaW50KGFyZy0+aW5kZXguaGVhcFJlbCwKLQkJCQkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGFyZy0+aW5kZXguaW5kZXhSZWwpKSkpOworCQkvKiBU aGlzIGlzIGZhaWwtZmFzdCBjaGVjaywgc2VlIF9idF9sb2FkIGZvciBkZXRhaWxzLiAqLworCQlp ZiAoYXJnLT51bmlxdWVEZWFkSWdub3JlZCkKKwkJeworCQkJYm9vbAlhbnlfdHVwbGVfZGVhZCwK KwkJCQkJY2FsbF9hZ2FpbiA9IGZhbHNlLAorCQkJCQlpZ25vcmVkOworCisJCQlUdXBsZVRhYmxl U2xvdAkqc2xvdCA9IE1ha2VTaW5nbGVUdXBsZVRhYmxlU2xvdChSZWxhdGlvbkdldERlc2NyKGFy Zy0+aW5kZXguaGVhcFJlbCksCisJCQkJCQkJCQkJCQkJCQkgJlRUU09wc0J1ZmZlckhlYXBUdXBs ZSk7CisJCQlJdGVtUG9pbnRlckRhdGEgdGlkID0gdHVwbGUxLT50X3RpZDsKKworCQkJSW5kZXhG ZXRjaFRhYmxlRGF0YSAqZmV0Y2ggPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihhcmctPmluZGV4 LmhlYXBSZWwpOworCQkJYW55X3R1cGxlX2RlYWQgPSAhdGFibGVfaW5kZXhfZmV0Y2hfdHVwbGUo ZmV0Y2gsICZ0aWQsIFNuYXBzaG90U2VsZiwgc2xvdCwgJmNhbGxfYWdhaW4sICZpZ25vcmVkKTsK KworCQkJaWYgKCFhbnlfdHVwbGVfZGVhZCkKKwkJCXsKKwkJCQljYWxsX2FnYWluID0gZmFsc2U7 CisJCQkJdGlkID0gdHVwbGUyLT50X3RpZDsKKwkJCQlhbnlfdHVwbGVfZGVhZCA9ICF0YWJsZV9p bmRleF9mZXRjaF90dXBsZShmZXRjaCwgJnR1cGxlMi0+dF90aWQsIFNuYXBzaG90U2VsZiwgc2xv dCwgJmNhbGxfYWdhaW4sCisJCQkJCQkJCQkJCQkJCSAgJmlnbm9yZWQpOworCQkJfQorCisJCQlp ZiAoYW55X3R1cGxlX2RlYWQpCisJCQl7CisJCQkJZWxvZyhERUJVRzUsICJza2lwcGluZyBkdXBs aWNhdGUgdmFsdWVzIGJlY2F1c2Ugc29tZSBvZiB0aGVtIGFyZSBkZWFkOiAoJXUsJXUpIHZzICgl dSwldSkiLAorCQkJCQkgSXRlbVBvaW50ZXJHZXRCbG9ja051bWJlcigmdHVwbGUxLT50X3RpZCks CisJCQkJCSBJdGVtUG9pbnRlckdldE9mZnNldE51bWJlcigmdHVwbGUxLT50X3RpZCksCisJCQkJ CSBJdGVtUG9pbnRlckdldEJsb2NrTnVtYmVyKCZ0dXBsZTItPnRfdGlkKSwKKwkJCQkJIEl0ZW1Q b2ludGVyR2V0T2Zmc2V0TnVtYmVyKCZ0dXBsZTItPnRfdGlkKSk7CisKKwkJCQl1bmlxdWVDaGVj a0ZhaWwgPSBmYWxzZTsKKwkJCX0KKwkJCUV4ZWNEcm9wU2luZ2xlVHVwbGVUYWJsZVNsb3Qoc2xv dCk7CisJCQl0YWJsZV9pbmRleF9mZXRjaF9lbmQoZmV0Y2gpOworCQl9CisJCWlmICh1bmlxdWVD aGVja0ZhaWwpCisJCXsKKwkJCWluZGV4X2RlZm9ybV90dXBsZSh0dXBsZTEsIHR1cERlcywgdmFs dWVzLCBpc251bGwpOworCisJCQlrZXlfZGVzYyA9IEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9u KGFyZy0+aW5kZXguaW5kZXhSZWwsIHZhbHVlcywgaXNudWxsKTsKKworCQkJLyoga2VlcCB0aGlz IGVycm9yIG1lc3NhZ2UgaW4gc3luYyB3aXRoIHRoZSBzYW1lIGluIF9idF9sb2FkICovCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOSVFVRV9WSU9MQVRJT04pLAor CQkJCQkJCWVycm1zZygiY291bGQgbm90IGNyZWF0ZSB1bmlxdWUgaW5kZXggXCIlc1wiIiwKKwkJ CQkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoYXJnLT5pbmRleC5pbmRleFJlbCkpLAor CQkJCQkJCWtleV9kZXNjID8gZXJyZGV0YWlsKCJLZXkgJXMgaXMgZHVwbGljYXRlZC4iLCBrZXlf ZGVzYykgOgorCQkJCQkJCWVycmRldGFpbCgiRHVwbGljYXRlIGtleXMgZXhpc3QuIiksCisJCQkJ CQkJZXJydGFibGVjb25zdHJhaW50KGFyZy0+aW5kZXguaGVhcFJlbCwKKwkJCQkJCQkJCQkJICAg UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoYXJnLT5pbmRleC5pbmRleFJlbCkpKSk7CisJCX0KIAl9 CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL25idHJlZS5oCmluZGV4IDEyM2ZiYTYyNGRiLi40MjAwZDJiZDIwZSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oCisrKyBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9uYnRyZWUuaApAQCAtMTI5Nyw4ICsxMjk3LDEwIEBAIGV4dGVybiBib29sIGJ0cHJvcGVy dHkoT2lkIGluZGV4X29pZCwgaW50IGF0dG5vLAogZXh0ZXJuIGNoYXIgKmJ0YnVpbGRwaGFzZW5h bWUoaW50NjQgcGhhc2VudW0pOwogZXh0ZXJuIEluZGV4VHVwbGUgX2J0X3RydW5jYXRlKFJlbGF0 aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwKIAkJCQkJCQkgICBJbmRleFR1cGxlIGZpcnN0 cmlnaHQsIEJUU2Nhbkluc2VydCBpdHVwX2tleSk7CitleHRlcm4gaW50CV9idF9rZWVwX25hdHRz KFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0 LAorCQkJCQkJICAgQlRTY2FuSW5zZXJ0IGl0dXBfa2V5LCBib29sICpoYXNudWxscyk7CiBleHRl cm4gaW50CV9idF9rZWVwX25hdHRzX2Zhc3QoUmVsYXRpb24gcmVsLCBJbmRleFR1cGxlIGxhc3Rs ZWZ0LAotCQkJCQkJCQlJbmRleFR1cGxlIGZpcnN0cmlnaHQpOworCQkJCQkJCQlJbmRleFR1cGxl IGZpcnN0cmlnaHQsIGJvb2wgKmhhc251bGxzKTsKIGV4dGVybiBib29sIF9idF9jaGVja19uYXR0 cyhSZWxhdGlvbiByZWwsIGJvb2wgaGVhcGtleXNwYWNlLCBQYWdlIHBhZ2UsCiAJCQkJCQkJT2Zm c2V0TnVtYmVyIG9mZm51bSk7CiBleHRlcm4gdm9pZCBfYnRfY2hlY2tfdGhpcmRfcGFnZShSZWxh dGlvbiByZWwsIFJlbGF0aW9uIGhlYXAsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv dGFibGVhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCA5ZWU1ZWExNWZk NC4uZWMzNzY5NTg1YzMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaApAQCAtMTgwMyw5ICsxODAzLDggQEAg dGFibGVfc2Nhbl9hbmFseXplX25leHRfdHVwbGUoVGFibGVTY2FuRGVzYyBzY2FuLCBUcmFuc2Fj dGlvbklkIE9sZGVzdFhtaW4sCiAgKiBUaGlzIG9ubHkgcmVhbGx5IG1ha2VzIHNlbnNlIGZvciBo ZWFwIEFNLCBpdCBtaWdodCBuZWVkIHRvIGJlIGdlbmVyYWxpemVkCiAgKiBmb3Igb3RoZXIgQU1z IGxhdGVyLgogICoKLSAqIEluIGNhc2Ugb2Ygbm9uLXVuaXF1ZSBjb25jdXJyZW50ICBpbmRleCBi dWlsZCBTT19SRVNFVF9TTkFQU0hPVCBpcyBhcHBsaWVkCi0gKiBmb3IgdGhlIHNjYW4uIFRoYXQg bGVhZHMgZm9yIGNoYW5naW5nIHNuYXBzaG90cyBvbiB0aGUgZmx5IHRvIGFsbG93IHhtaW4KLSAq IGhvcml6b24gcHJvcGFnYXRlLgorICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGluZGV4IGJ1aWxk IFNPX1JFU0VUX1NOQVBTSE9UIGlzIGFwcGxpZWQgZm9yIHRoZSBzY2FuLgorICogVGhhdCBsZWFk cyBmb3IgY2hhbmdpbmcgc25hcHNob3RzIG9uIHRoZSBmbHkgdG8gYWxsb3cgeG1pbiBob3Jpem9u IHByb3BhZ2F0ZS4KICAqLwogc3RhdGljIGlubGluZSBkb3VibGUKIHRhYmxlX2luZGV4X2J1aWxk X3NjYW4oUmVsYXRpb24gdGFibGVfcmVsLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMv dHVwbGVzb3J0LmggYi9zcmMvaW5jbHVkZS91dGlscy90dXBsZXNvcnQuaAppbmRleCBjZGU4M2Y2 MjAxNS4uYWU1ZjRkMjhmZGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3R1cGxlc29y dC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3R1cGxlc29ydC5oCkBAIC00MjgsNiArNDI4LDcg QEAgZXh0ZXJuIFR1cGxlc29ydHN0YXRlICp0dXBsZXNvcnRfYmVnaW5faW5kZXhfYnRyZWUoUmVs YXRpb24gaGVhcFJlbCwKIAkJCQkJCQkJCQkJCSAgIFJlbGF0aW9uIGluZGV4UmVsLAogCQkJCQkJ CQkJCQkJICAgYm9vbCBlbmZvcmNlVW5pcXVlLAogCQkJCQkJCQkJCQkJICAgYm9vbCB1bmlxdWVO dWxsc05vdERpc3RpbmN0LAorCQkJCQkJCQkJCQkJICAgYm9vbAl1bmlxdWVEZWFkSWdub3JlZCwK IAkJCQkJCQkJCQkJCSAgIGludCB3b3JrTWVtLCBTb3J0Q29vcmRpbmF0ZSBjb29yZGluYXRlLAog CQkJCQkJCQkJCQkJICAgaW50IHNvcnRvcHQpOwogZXh0ZXJuIFR1cGxlc29ydHN0YXRlICp0dXBs ZXNvcnRfYmVnaW5faW5kZXhfaGFzaChSZWxhdGlvbiBoZWFwUmVsLApkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hv dHMub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19y ZXNldF9zbmFwc2hvdHMub3V0CmluZGV4IDQ5ZWY2OGQ5MDcxLi5jOGU0NjgzYWQ2ZCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNl dF9zbmFwc2hvdHMub3V0CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9l eHBlY3RlZC9jaWNfcmVzZXRfc25hcHNob3RzLm91dApAQCAtNDEsNyArNDEsMTEgQEAgRU5EOyAk JDsKIC0tLS0tLS0tLS0tLS0tLS0KIEFMVEVSIFRBQkxFIGNpY19yZXNldF9zbmFwLnRibCBTRVQg KHBhcmFsbGVsX3dvcmtlcnM9MCk7CiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSBp ZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGkpOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBm b3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMK K05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0 X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCiBSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNf cmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24g cG9pbnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cworTk9USUNFOiAgbm90 aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IGhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hv dF9lZmZlY3RpdmUKIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsK IENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsK IE5PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdp bnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzCkBAIC04Niw3ICs5MCw5IEBAIFNFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX2RldGFjaCgnaGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZScp OwogKDEgcm93KQogCiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2lj X3Jlc2V0X3NuYXAudGJsKGkpOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0 aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplCiBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVk IGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUKIERST1Ag SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENSRUFURSBJTkRFWCBDT05D VVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKIE5PVElDRTogIG5vdGljZSB0 cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6 ZQotLSAKMi40My4wCgo= --000000000000bd14f60628dc8da8 Content-Type: application/x-patch; name="v5-0003-Allow-advancing-xmin-during-non-unique-non-parall.patch" Content-Disposition: attachment; filename="v5-0003-Allow-advancing-xmin-during-non-unique-non-parall.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hhs3762 RnJvbSA1NGU3NTViMmQwOTc3NTNmNjVlMTRjNGFhZmQ1NzE4ZTBjYjQ1N2Y4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAzMCBOb3YgMjAyNCAxNzo0MToyOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjUgMy81 XSBBbGxvdyBhZHZhbmNpbmcgeG1pbiBkdXJpbmcgbm9uLXVuaXF1ZSwgbm9uLXBhcmFsbGVsIAog Y29uY3VycmVudCBpbmRleCBidWlsZHMgYnkgcGVyaW9kaWNhbGx5IHJlc2V0dGluZyBzbmFwc2hv dHMKCkxvbmctcnVubmluZyB0cmFuc2FjdGlvbnMgbGlrZSB0aG9zZSB1c2VkIGJ5IENSRUFURSBJ TkRFWCBDT05DVVJSRU5UTFkgYW5kIFJFSU5ERVggQ09OQ1VSUkVOVExZIGNhbiBob2xkIGJhY2sg dGhlIGdsb2JhbCB4bWluIGhvcml6b24sIHByZXZlbnRpbmcgVkFDVVVNIGZyb20gY2xlYW5pbmcg dXAgZGVhZCB0dXBsZXMgYW5kIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gdHJhbnNhY3Rpb24gSUQg d3JhcGFyb3VuZCBpc3N1ZXMuIEluIFBvc3RncmVTUUwgMTQsIGNvbW1pdCBkOWQwNzYyMjJmNWIg YXR0ZW1wdGVkIHRvIGFsbG93IFZBQ1VVTSB0byBpZ25vcmUgaW5kZXhpbmcgdHJhbnNhY3Rpb25z IHdpdGggQ09OQ1VSUkVOVExZIHRvIG1pdGlnYXRlIHRoaXMgcHJvYmxlbS4gSG93ZXZlciwgdGhp cyB3YXMgcmV2ZXJ0ZWQgaW4gY29tbWl0IGUyOGJiODg1MTk2OSBiZWNhdXNlIGl0IGNvdWxkIGNh dXNlIGluZGV4ZXMgdG8gbWlzcyBoZWFwIHR1cGxlcyB0aGF0IHdlcmUgSE9ULXVwZGF0ZWQgYW5k IEhPVC1wcnVuZWQgZHVyaW5nIHRoZSBpbmRleCBjcmVhdGlvbiwgbGVhZGluZyB0byBpbmRleCBj b3JydXB0aW9uLgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2FmZSBhbHRlcm5hdGl2ZSBieSBw ZXJpb2RpY2FsbHkgcmVzZXR0aW5nIHRoZSBzbmFwc2hvdCB1c2VkIGR1cmluZyBub24tdW5pcXVl LCBub24tcGFyYWxsZWwgY29uY3VycmVudCBpbmRleCBidWlsZHMuIEJ5IHJlc2V0dGluZyB0aGUg c25hcHNob3QgZXZlcnkgTiBwYWdlcyBkdXJpbmcgdGhlIGhlYXAgc2Nhbiwgd2UgYWxsb3cgdGhl IHhtaW4gaG9yaXpvbiB0byBhZHZhbmNlIHdpdGhvdXQgcmlza2luZyBpbmRleCBjb3JydXB0aW9u LiBUaGlzIGFwcHJvYWNoIGlzIHNhZmUgZm9yIG5vbi11bmlxdWUgaW5kZXggYnVpbGRzIGJlY2F1 c2UgdGhleSBkbyBub3QgZW5mb3JjZSB1bmlxdWVuZXNzIGNvbnN0cmFpbnRzIHRoYXQgcmVxdWly ZSBhIGNvbnNpc3RlbnQgc25hcHNob3QgYWNyb3NzIHRoZSBlbnRpcmUgc2Nhbi4KCkN1cnJlbnRs eSwgdGhpcyB0ZWNobmlxdWUgaXMgYXBwbGllZCB0bzoKCk5vbi1wYXJhbGxlbCBpbmRleCBidWls ZHM6IFBhcmFsbGVsIGluZGV4IGJ1aWxkcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgYW5kIHdpbGwg YmUgYWRkcmVzc2VkIGluIGEgZnV0dXJlIGNvbW1pdC4KTm9uLXVuaXF1ZSBpbmRleGVzOiBVbmlx dWUgaW5kZXggYnVpbGRzIHN0aWxsIHJlcXVpcmUgYSBjb25zaXN0ZW50IHNuYXBzaG90IHRvIGVu Zm9yY2UgdW5pcXVlbmVzcyBjb25zdHJhaW50cywgYW5kIHN1cHBvcnQgZm9yIHRoZW0gbWF5IGJl IGFkZGVkIGluIHRoZSBmdXR1cmUuCk9ubHkgZHVyaW5nIHRoZSBmaXJzdCBzY2FuIG9mIHRoZSBo ZWFwOiBUaGUgc2Vjb25kIHNjYW4gZHVyaW5nIGluZGV4IHZhbGlkYXRpb24gc3RpbGwgdXNlcyBh IHNpbmdsZSBzbmFwc2hvdCB0byBlbnN1cmUgaW5kZXggY29ycmVjdG5lc3MuCgpUbyBpbXBsZW1l bnQgdGhpcywgYSBuZXcgc2NhbiBvcHRpb24gU09fUkVTRVRfU05BUFNIT1QgaXMgaW50cm9kdWNl ZC4gV2hlbiBzZXQsIGl0IGNhdXNlcyB0aGUgc25hcHNob3QgdG8gYmUgcmVzZXQgZXZlcnkgU09f UkVTRVRfU05BUFNIT1RfRUFDSF9OX1BBR0UgcGFnZXMgZHVyaW5nIHRoZSBzY2FuLiBUaGUgaGVh cCBzY2FuIGNvZGUgaXMgYWRqdXN0ZWQgdG8gc3VwcG9ydCB0aGlzIG9wdGlvbiwgYW5kIHRoZSBp bmRleCBidWlsZCBjb2RlIGlzIG1vZGlmaWVkIHRvIHVzZSBpdCBmb3IgYXBwbGljYWJsZSBjb25j dXJyZW50IGluZGV4IGJ1aWxkcyB0aGF0IGFyZSBub3Qgb24gc3lzdGVtIGNhdGFsb2dzIGFuZCBu b3QgdXNpbmcgcGFyYWxsZWwgd29ya2Vycy4KClRoaXMgYWRkcmVzc2VzIHRoZSBpc3N1ZXMgdGhh dCBsZWQgdG8gdGhlIHJldmVyc2lvbiBvZiBjb21taXQgZDlkMDc2MjIyZjViLCBwcm92aWRpbmcg YSBzYWZlIHdheSB0byBhbGxvdyB4bWluIGFkdmFuY2VtZW50IGR1cmluZyBsb25nLXJ1bm5pbmcg bm9uLXVuaXF1ZSwgbm9uLXBhcmFsbGVsIGNvbmN1cnJlbnQgaW5kZXggYnVpbGRzIHdoaWxlIGVu c3VyaW5nIGluZGV4IGNvcnJlY3RuZXNzLgoKUmVncmVzc2lvbiB0ZXN0cyBhcmUgYWRkZWQgdG8g dmVyaWZ5IHRoZSBiZWhhdmlvci4KLS0tCiBjb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5j ICAgICAgICAgICAgICAgfCAgIDMgKy0KIGNvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUu YyAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAg ICAgICAgICAgICAgIHwgIDE0ICsrKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMg ICAgICAgICAgICAgIHwgIDQ2ICsrKysrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jICAgICAgfCAgNTcgKysrKysrKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2dlbmFtLmMgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHNvcnQuYyAgICAgICAgICAgfCAgMTQgKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2lu ZGV4LmMgICAgICAgICAgICAgICAgICAgfCAgMzAgKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5k cy9pbmRleGNtZHMuYyAgICAgICAgICAgICAgfCAgMTQgKy0tCiBzcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgIDkgKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy90 YWJsZWFtLmggICAgICAgICAgICAgICAgICB8ICAyOCArKysrLQogc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL01ha2VmaWxlICAgIHwgICAyICstCiAuLi4vZXhwZWN0ZWQvY2ljX3Jl c2V0X3NuYXBzaG90cy5vdXQgICAgICAgICAgfCAxMDIgKysrKysrKysrKysrKysrKysrCiBzcmMv dGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQgfCAgIDEgKwogLi4uL3Nx bC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbCAgICAgICAgICAgICAgIHwgIDgyICsrKysrKysrKysr KysrCiAxNSBmaWxlcyBjaGFuZ2VkLCAzNzUgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4 cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbAoK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfbmJ0cmVlLmMgYi9jb250cmliL2Ft Y2hlY2svdmVyaWZ5X25idHJlZS5jCmluZGV4IGZmZTRmNzIxNjcyLi43ZmIwNTJjZTNkZSAxMDA2 NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYworKysgYi9jb250cmliL2Ft Y2hlY2svdmVyaWZ5X25idHJlZS5jCkBAIC02ODksNyArNjg5LDggQEAgYnRfY2hlY2tfZXZlcnlf bGV2ZWwoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBoZWFwcmVsLCBib29sIGhlYXBrZXlzcGFjZSwK IAkJCQkJCQkJCSAwLCAvKiBudW1iZXIgb2Yga2V5cyAqLwogCQkJCQkJCQkJIE5VTEwsCS8qIHNj YW4ga2V5ICovCiAJCQkJCQkJCQkgdHJ1ZSwJLyogYnVmZmVyIGFjY2VzcyBzdHJhdGVneSBPSyAq LwotCQkJCQkJCQkJIHRydWUpOyAvKiBzeW5jc2NhbiBPSz8gKi8KKwkJCQkJCQkJCSB0cnVlLCAv KiBzeW5jc2NhbiBPSz8gKi8KKwkJCQkJCQkJCSBmYWxzZSk7CiAKIAkJLyoKIAkJICogU2NhbiB3 aWxsIGJlaGF2ZSBhcyB0aGUgZmlyc3Qgc2NhbiBvZiBhIENSRUFURSBJTkRFWCBDT05DVVJSRU5U TFkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUuYyBiL2NvbnRy aWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUuYwppbmRleCA0OGNiOGY1OWM0Zi4uZmY3Y2MwN2Rm OTkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUuYworKysgYi9j b250cmliL3Bnc3RhdHR1cGxlL3Bnc3RhdHR1cGxlLmMKQEAgLTMzMiw3ICszMzIsNyBAQCBwZ3N0 YXRfaGVhcChSZWxhdGlvbiByZWwsIEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvKQogCQkJCSBlcnJt c2coIm9ubHkgaGVhcCBBTSBpcyBzdXBwb3J0ZWQiKSkpOwogCiAJLyogRGlzYWJsZSBzeW5jc2Nh biBiZWNhdXNlIHdlIGFzc3VtZSB3ZSBzY2FuIGZyb20gYmxvY2sgemVybyB1cHdhcmRzICovCi0J c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChyZWwsIFNuYXBzaG90QW55LCAwLCBOVUxMLCB0 cnVlLCBmYWxzZSk7CisJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChyZWwsIFNuYXBzaG90 QW55LCAwLCBOVUxMLCB0cnVlLCBmYWxzZSwgZmFsc2UpOwogCWhzY2FuID0gKEhlYXBTY2FuRGVz Yykgc2NhbjsKIAogCUluaXREaXJ0eVNuYXBzaG90KFNuYXBzaG90RGlydHkpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2Jy aW4vYnJpbi5jCmluZGV4IDNhZWRlYzg4MmNkLi5kNjk4NTlhYzRkZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW4uYwpAQCAtMjM2Niw2ICsyMzY2LDcgQEAgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJpbkJ1 aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogCVdh bFVzYWdlICAgKndhbHVzYWdlOwogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2FnZTsKIAlib29sCQls ZWFkZXJwYXJ0aWNpcGF0ZXMgPSB0cnVlOworCWJvb2wJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hv dCA9IHRydWU7CiAJaW50CQkJcXVlcnlsZW47CiAKICNpZmRlZiBESVNBQkxFX0xFQURFUl9QQVJU SUNJUEFUSU9OCkBAIC0yMzkxLDkgKzIzOTIsMTYgQEAgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJp bkJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAog CSAqIGxpdmUgYWNjb3JkaW5nIHRvIHRoYXQuCiAJICovCiAJaWYgKCFpc2NvbmN1cnJlbnQpCisJ eworCQlBc3NlcnQoQWN0aXZlU25hcHNob3RTZXQoKSk7CiAJCXNuYXBzaG90ID0gU25hcHNob3RB bnk7CisJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IGZhbHNlOworCX0KIAllbHNlCisJewog CQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsK KwkJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNob3QoKSk7CisJfQogCiAJ LyoKIAkgKiBFc3RpbWF0ZSBzaXplIGZvciBvdXIgb3duIFBBUkFMTEVMX0tFWV9CUklOX1NIQVJF RCB3b3Jrc3BhY2UuCkBAIC0yNDM2LDYgKzI0NDQsOCBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChC cmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgs CiAJLyogSWYgbm8gRFNNIHNlZ21lbnQgd2FzIGF2YWlsYWJsZSwgYmFjayBvdXQgKGRvIHNlcmlh bCBidWlsZCkgKi8KIAlpZiAocGN4dC0+c2VnID09IE5VTEwpCiAJeworCQlpZiAobmVlZF9wb3Bf YWN0aXZlX3NuYXBzaG90KQorCQkJUG9wQWN0aXZlU25hcHNob3QoKTsKIAkJaWYgKElzTVZDQ1Nu YXBzaG90KHNuYXBzaG90KSkKIAkJCVVucmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7CiAJCURl c3Ryb3lQYXJhbGxlbENvbnRleHQocGN4dCk7CkBAIC0yNTE1LDYgKzI1MjUsOCBAQCBfYnJpbl9i ZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwg UmVsYXRpb24gaW5kZXgsCiAJLyogSWYgbm8gd29ya2VycyB3ZXJlIHN1Y2Nlc3NmdWxseSBsYXVu Y2hlZCwgYmFjayBvdXQgKGRvIHNlcmlhbCBidWlsZCkgKi8KIAlpZiAocGN4dC0+bndvcmtlcnNf bGF1bmNoZWQgPT0gMCkKIAl7CisJCWlmIChuZWVkX3BvcF9hY3RpdmVfc25hcHNob3QpCisJCQlQ b3BBY3RpdmVTbmFwc2hvdCgpOwogCQlfYnJpbl9lbmRfcGFyYWxsZWwoYnJpbmxlYWRlciwgTlVM TCk7CiAJCXJldHVybjsKIAl9CkBAIC0yNTMxLDYgKzI1NDMsOCBAQCBfYnJpbl9iZWdpbl9wYXJh bGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24g aW5kZXgsCiAJICogc3VyZSB0aGF0IHRoZSBmYWlsdXJlLXRvLXN0YXJ0IGNhc2Ugd2lsbCBub3Qg aGFuZyBmb3JldmVyLgogCSAqLwogCVdhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0dGFjaChwY3h0 KTsKKwlpZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90KQorCQlQb3BBY3RpdmVTbmFwc2hvdCgp OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBkMDAzMDBjNWRjYi4uMWZk ZmRmOTY0ODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC01MSw2ICs1MSw3IEBACiAj aW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1 ZGUgInV0aWxzL3NwY2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvaW5qZWN0aW9uX3BvaW50Lmgi CiAKIAogc3RhdGljIEhlYXBUdXBsZSBoZWFwX3ByZXBhcmVfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0 aW9uLCBIZWFwVHVwbGUgdHVwLApAQCAtNTY2LDYgKzU2NywzNiBAQCBoZWFwX3ByZXBhcmVfcGFn ZXNjYW4oVGFibGVTY2FuRGVzYyBzc2NhbikKIAlMb2NrQnVmZmVyKGJ1ZmZlciwgQlVGRkVSX0xP Q0tfVU5MT0NLKTsKIH0KIAorLyoKKyAqIFJlc2V0IHRoZSBhY3RpdmUgc25hcHNob3QgZHVyaW5n IGEgc2Nhbi4KKyAqIFRoaXMgZW5zdXJlcyB0aGUgeG1pbiBob3Jpem9uIGNhbiBhZHZhbmNlIHdo aWxlIG1haW50YWluaW5nIHNhZmUgdHVwbGUgdmlzaWJpbGl0eS4KKyAqIE5vdGU6IE5vIG90aGVy IHNuYXBzaG90IHNob3VsZCBiZSBhY3RpdmUgZHVyaW5nIHRoaXMgb3BlcmF0aW9uLgorICovCitz dGF0aWMgaW5saW5lIHZvaWQKK2hlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdChUYWJsZVNjYW5EZXNj IHNzY2FuKQoreworCS8qIE1ha2Ugc3VyZSBubyBvdGhlciBzbmFwc2hvdCB3YXMgc2V0IGFzIGFj dGl2ZS4gKi8KKwlBc3NlcnQoR2V0QWN0aXZlU25hcHNob3QoKSA9PSBzc2Nhbi0+cnNfc25hcHNo b3QpOworCS8qIEFuZCBtYWtlIHN1cmUgYWN0aXZlIHNuYXBzaG90IGlzIG5vdCByZWdpc3RlcmVk LiAqLworCUFzc2VydChHZXRBY3RpdmVTbmFwc2hvdCgpLT5yZWdkX2NvdW50ID09IDApOworCVBv cEFjdGl2ZVNuYXBzaG90KCk7CisKKwlzc2Nhbi0+cnNfc25hcHNob3QgPSBJbnZhbGlkU25hcHNo b3Q7IC8qIGp1c3Qgb3QgYmUgdGlkeSAqLworCUFzc2VydCghSGF2ZVJlZ2lzdGVyZWRPckFjdGl2 ZVNuYXBzaG90KCkpOworCUludmFsaWRhdGVDYXRhbG9nU25hcHNob3QoKTsKKworCS8qIEdvYWwg b2Ygc25hcHNob3QgcmVzZXQgaXMgdG8gYWxsb3cgaG9yaXpvbiB0byBhZHZhbmNlLiAqLworCUFz c2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT54bWluKSk7CisjaWYgVVNFX0lOSkVD VElPTl9QT0lOVFMKKwkvKiBJbiBzb21lIGNhc2VzIGl0IGlzIHN0aWxsIG5vdCBwb3NzaWJsZSBk dWUgeGlkIGFzc2lnbi4gKi8KKwlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UHJvYy0+eGlk KSkKKwkJSU5KRUNUSU9OX1BPSU5UKCJoZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZl Iik7CisjZW5kaWYKKworCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsK Kwlzc2Nhbi0+cnNfc25hcHNob3QgPSBHZXRBY3RpdmVTbmFwc2hvdCgpOworfQorCiAvKgogICog aGVhcF9mZXRjaF9uZXh0X2J1ZmZlciAtIHJlYWQgYW5kIHBpbiB0aGUgbmV4dCBibG9jayBmcm9t IE1BSU5fRk9SS05VTS4KICAqCkBAIC02MDcsNyArNjM4LDEzIEBAIGhlYXBfZmV0Y2hfbmV4dF9i dWZmZXIoSGVhcFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyKQogCiAJc2Nhbi0+cnNf Y2J1ZiA9IHJlYWRfc3RyZWFtX25leHRfYnVmZmVyKHNjYW4tPnJzX3JlYWRfc3RyZWFtLCBOVUxM KTsKIAlpZiAoQnVmZmVySXNWYWxpZChzY2FuLT5yc19jYnVmKSkKKwl7CiAJCXNjYW4tPnJzX2Ni bG9jayA9IEJ1ZmZlckdldEJsb2NrTnVtYmVyKHNjYW4tPnJzX2NidWYpOworI2RlZmluZSBTT19S RVNFVF9TTkFQU0hPVF9FQUNIX05fUEFHRSA2NAorCQlpZiAoKHNjYW4tPnJzX2Jhc2UucnNfZmxh Z3MgJiBTT19SRVNFVF9TTkFQU0hPVCkgJiYKKwkJCShzY2FuLT5yc19jYmxvY2sgJSBTT19SRVNF VF9TTkFQU0hPVF9FQUNIX05fUEFHRSA9PSAwKSkKKwkJCWhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hv dCgoVGFibGVTY2FuRGVzYykgc2Nhbik7CisJfQogfQogCiAvKgpAQCAtMTIzMyw2ICsxMjcwLDE1 IEBAIGhlYXBfZW5kc2NhbihUYWJsZVNjYW5EZXNjIHNzY2FuKQogCWlmIChzY2FuLT5yc19wYXJh bGxlbHdvcmtlcmRhdGEgIT0gTlVMTCkKIAkJcGZyZWUoc2Nhbi0+cnNfcGFyYWxsZWx3b3JrZXJk YXRhKTsKIAorCWlmIChzY2FuLT5yc19iYXNlLnJzX2ZsYWdzICYgU09fUkVTRVRfU05BUFNIT1Qp CisJeworCQlBc3NlcnQoIShzY2FuLT5yc19iYXNlLnJzX2ZsYWdzICYgU09fVEVNUF9TTkFQU0hP VCkpOworCQkvKiBNYWtlIHN1cmUgbm8gb3RoZXIgc25hcHNob3Qgd2FzIHNldCBhcyBhY3RpdmUu ICovCisJCUFzc2VydChHZXRBY3RpdmVTbmFwc2hvdCgpID09IHNzY2FuLT5yc19zbmFwc2hvdCk7 CisJCS8qIEFuZCBtYWtlIHN1cmUgc25hcHNob3QgaXMgbm90IHJlZ2lzdGVyZWQuICovCisJCUFz c2VydChHZXRBY3RpdmVTbmFwc2hvdCgpLT5yZWdkX2NvdW50ID09IDApOworCX0KKwogCWlmIChz Y2FuLT5yc19iYXNlLnJzX2ZsYWdzICYgU09fVEVNUF9TTkFQU0hPVCkKIAkJVW5yZWdpc3RlclNu YXBzaG90KHNjYW4tPnJzX2Jhc2UucnNfc25hcHNob3QpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCBhOGQ5NWUwZjFjMS4uOTgwYzUxZTMyYjkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtMTE5MCw2ICsxMTkwLDgg QEAgaGVhcGFtX2luZGV4X2J1aWxkX3JhbmdlX3NjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAog CUV4cHJDb250ZXh0ICplY29udGV4dDsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKIAlib29sCQluZWVk X3VucmVnaXN0ZXJfc25hcHNob3QgPSBmYWxzZTsKKwlib29sCQluZWVkX3BvcF9hY3RpdmVfc25h cHNob3QgPSBmYWxzZTsKKwlib29sCQlyZXNldF9zbmFwc2hvdHMgPSBmYWxzZTsKIAlUcmFuc2Fj dGlvbklkIE9sZGVzdFhtaW47CiAJQmxvY2tOdW1iZXIgcHJldmlvdXNfYmxrbm8gPSBJbnZhbGlk QmxvY2tOdW1iZXI7CiAJQmxvY2tOdW1iZXIgcm9vdF9ibGtubyA9IEludmFsaWRCbG9ja051bWJl cjsKQEAgLTEyMjQsOSArMTIyNiw2IEBAIGhlYXBhbV9pbmRleF9idWlsZF9yYW5nZV9zY2FuKFJl bGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkvKiBBcnJhbmdlIGZvciBlY29udGV4dCdzIHNjYW4gdHVw bGUgdG8gYmUgdGhlIHR1cGxlIHVuZGVyIHRlc3QgKi8KIAllY29udGV4dC0+ZWN4dF9zY2FudHVw bGUgPSBzbG90OwogCi0JLyogU2V0IHVwIGV4ZWN1dGlvbiBzdGF0ZSBmb3IgcHJlZGljYXRlLCBp ZiBhbnkuICovCi0JcHJlZGljYXRlID0gRXhlY1ByZXBhcmVRdWFsKGluZGV4SW5mby0+aWlfUHJl ZGljYXRlLCBlc3RhdGUpOwotCiAJLyoKIAkgKiBQcmVwYXJlIGZvciBzY2FuIG9mIHRoZSBiYXNl IHJlbGF0aW9uLiAgSW4gYSBub3JtYWwgaW5kZXggYnVpbGQsIHdlIHVzZQogCSAqIFNuYXBzaG90 QW55IGJlY2F1c2Ugd2UgbXVzdCByZXRyaWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRp bWUKQEAgLTEyMzYsNiArMTIzNSwxNSBAQCBoZWFwYW1faW5kZXhfYnVpbGRfcmFuZ2Vfc2NhbihS ZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJICovCiAJT2xkZXN0WG1pbiA9IEludmFsaWRUcmFuc2Fj dGlvbklkOwogCisJLyoKKwkgKiBGb3IgdW5pcXVlIGluZGV4IHdlIG5lZWQgY29uc2lzdGVudCBz bmFwc2hvdCBmb3IgdGhlIHdob2xlIHNjYW4uCisJICogSW4gY2FzZSBvZiBwYXJhbGxlbCBzY2Fu IHNvbWUgYWRkaXRpb25hbCBpbmZyYXN0cnVjdHVyZSByZXF1aXJlZAorCSAqIHRvIHBlcmZvcm0g c2NhbiB3aXRoIFNPX1JFU0VUX1NOQVBTSE9UIHdoaWNoIGlzIG5vdCB5ZXQgcmVhZHkuCisJICov CisJcmVzZXRfc25hcHNob3RzID0gaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ICYmCisJCQkJCSAg IWluZGV4SW5mby0+aWlfVW5pcXVlICYmCisJCQkJCSAgIWlzX3N5c3RlbV9jYXRhbG9nOyAvKiBq dXN0IGZvciB0aGUgY2FzZSAqLworCiAJLyogb2theSB0byBpZ25vcmUgbGF6eSBWQUNVVU1zIGhl cmUgKi8KIAlpZiAoIUlzQm9vdHN0cmFwUHJvY2Vzc2luZ01vZGUoKSAmJiAhaW5kZXhJbmZvLT5p aV9Db25jdXJyZW50KQogCQlPbGRlc3RYbWluID0gR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNh Y3Rpb25JZChoZWFwUmVsYXRpb24pOwpAQCAtMTI0NCwyNCArMTI1Miw0MSBAQCBoZWFwYW1faW5k ZXhfYnVpbGRfcmFuZ2Vfc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJewogCQkvKgogCQkg KiBTZXJpYWwgaW5kZXggYnVpbGQuCi0JCSAqCi0JCSAqIE11c3QgYmVnaW4gb3VyIG93biBoZWFw IHNjYW4gaW4gdGhpcyBjYXNlLiAgV2UgbWF5IGFsc28gbmVlZCB0bwotCQkgKiByZWdpc3RlciBh IHNuYXBzaG90IHdob3NlIGxpZmV0aW1lIGlzIHVuZGVyIG91ciBkaXJlY3QgY29udHJvbC4KIAkJ ICovCiAJCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoT2xkZXN0WG1pbikpCiAJCXsKLQkJCXNu YXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwotCQkJ bmVlZF91bnJlZ2lzdGVyX3NuYXBzaG90ID0gdHJ1ZTsKKwkJCXNuYXBzaG90ID0gR2V0VHJhbnNh Y3Rpb25TbmFwc2hvdCgpOworCQkJLyoKKwkJCSAqIE11c3QgYmVnaW4gb3VyIG93biBoZWFwIHNj YW4gaW4gdGhpcyBjYXNlLiAgV2UgbWF5IGFsc28gbmVlZCB0bworCQkJICogcmVnaXN0ZXIgYSBz bmFwc2hvdCB3aG9zZSBsaWZldGltZSBpcyB1bmRlciBvdXIgZGlyZWN0IGNvbnRyb2wuCisJCQkg KiBJbiBjYXNlIG9mIHJlc2V0dGluZyBvZiBzbmFwc2hvdCBkdXJpbmcgdGhlIHNjYW4gcmVnaXN0 cmF0aW9uIGlzCisJCQkgKiBub3QgYWxsb3dlZCBiZWNhdXNlIHNuYXBzaG90IGlzIGdvaW5nIHRv IGJlIGNoYW5nZWQgZXZlcnkgc28KKwkJCSAqIG9mdGVuLgorCQkJICovCisJCQlpZiAoIXJlc2V0 X3NuYXBzaG90cykKKwkJCXsKKwkJCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3Qoc25hcHNo b3QpOworCQkJCW5lZWRfdW5yZWdpc3Rlcl9zbmFwc2hvdCA9IHRydWU7CisJCQl9CisJCQlBc3Nl cnQoIUFjdGl2ZVNuYXBzaG90U2V0KCkpOworCQkJUHVzaEFjdGl2ZVNuYXBzaG90KHNuYXBzaG90 KTsKKwkJCS8qIHN0b3JlIGxpbmsgdG8gc25hcHNob3QgYmVjYXVzZSBpdCBtYXkgYmUgY29waWVk ICovCisJCQlzbmFwc2hvdCA9IEdldEFjdGl2ZVNuYXBzaG90KCk7CisJCQluZWVkX3BvcF9hY3Rp dmVfc25hcHNob3QgPSB0cnVlOwogCQl9CiAJCWVsc2UKKwkJeworCQkJQXNzZXJ0KCFpbmRleElu Zm8tPmlpX0NvbmN1cnJlbnQpOwogCQkJc25hcHNob3QgPSBTbmFwc2hvdEFueTsKKwkJfQogCiAJ CXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fc3RyYXQoaGVhcFJlbGF0aW9uLAkvKiByZWxhdGlvbiAq LwogCQkJCQkJCQkJIHNuYXBzaG90LAkvKiBzbmFwc2hvdCAqLwogCQkJCQkJCQkJIDAsIC8qIG51 bWJlciBvZiBrZXlzICovCiAJCQkJCQkJCQkgTlVMTCwJLyogc2NhbiBrZXkgKi8KIAkJCQkJCQkJ CSB0cnVlLAkvKiBidWZmZXIgYWNjZXNzIHN0cmF0ZWd5IE9LICovCi0JCQkJCQkJCQkgYWxsb3df c3luYyk7CS8qIHN5bmNzY2FuIE9LPyAqLworCQkJCQkJCQkJIGFsbG93X3N5bmMsCS8qIHN5bmNz Y2FuIE9LPyAqLworCQkJCQkJCQkJIHJlc2V0X3NuYXBzaG90cyAvKiByZXNldCBzbmFwc2hvdHM/ ICovKTsKIAl9CiAJZWxzZQogCXsKQEAgLTEyNzUsNiArMTMwMCw4IEBAIGhlYXBhbV9pbmRleF9i dWlsZF9yYW5nZV9zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJQXNzZXJ0KCFJc0Jvb3Rz dHJhcFByb2Nlc3NpbmdNb2RlKCkpOwogCQlBc3NlcnQoYWxsb3dfc3luYyk7CiAJCXNuYXBzaG90 ID0gc2Nhbi0+cnNfc25hcHNob3Q7CisJCVB1c2hBY3RpdmVTbmFwc2hvdChzbmFwc2hvdCk7CisJ CW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IHRydWU7CiAJfQogCiAJaHNjYW4gPSAoSGVhcFNj YW5EZXNjKSBzY2FuOwpAQCAtMTI4OSw2ICsxMzE2LDEzIEBAIGhlYXBhbV9pbmRleF9idWlsZF9y YW5nZV9zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAlBc3NlcnQoc25hcHNob3QgPT0gU25h cHNob3RBbnkgPyBUcmFuc2FjdGlvbklkSXNWYWxpZChPbGRlc3RYbWluKSA6CiAJCSAgICFUcmFu c2FjdGlvbklkSXNWYWxpZChPbGRlc3RYbWluKSk7CiAJQXNzZXJ0KHNuYXBzaG90ID09IFNuYXBz aG90QW55IHx8ICFhbnl2aXNpYmxlKTsKKwlBc3NlcnQoc25hcHNob3QgPT0gU25hcHNob3RBbnkg fHwgQWN0aXZlU25hcHNob3RTZXQoKSk7CisKKwkvKiBTZXQgdXAgZXhlY3V0aW9uIHN0YXRlIGZv ciBwcmVkaWNhdGUsIGlmIGFueS4gKi8KKwlwcmVkaWNhdGUgPSBFeGVjUHJlcGFyZVF1YWwoaW5k ZXhJbmZvLT5paV9QcmVkaWNhdGUsIGVzdGF0ZSk7CisJLyogQ2xlYXIgcmVmZXJlbmNlIHRvIHNu YXBzaG90IHNpbmNlIGl0IG1heSBiZSBjaGFuZ2VkIGJ5IHRoZSBzY2FuIGl0c2VsZi4gKi8KKwlp ZiAocmVzZXRfc25hcHNob3RzKQorCQlzbmFwc2hvdCA9IEludmFsaWRTbmFwc2hvdDsKIAogCS8q IFB1Ymxpc2ggbnVtYmVyIG9mIGJsb2NrcyB0byBzY2FuICovCiAJaWYgKHByb2dyZXNzKQpAQCAt MTcyNCw2ICsxNzU4LDggQEAgaGVhcGFtX2luZGV4X2J1aWxkX3JhbmdlX3NjYW4oUmVsYXRpb24g aGVhcFJlbGF0aW9uLAogCiAJdGFibGVfZW5kc2NhbihzY2FuKTsKIAorCWlmIChuZWVkX3BvcF9h Y3RpdmVfc25hcHNob3QpCisJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiAJLyogd2UgY2FuIG5vdyBm b3JnZXQgb3VyIHNuYXBzaG90LCBpZiBzZXQgYW5kIHJlZ2lzdGVyZWQgYnkgdXMgKi8KIAlpZiAo bmVlZF91bnJlZ2lzdGVyX3NuYXBzaG90KQogCQlVbnJlZ2lzdGVyU25hcHNob3Qoc25hcHNob3Qp OwpAQCAtMTc5Niw3ICsxODMyLDggQEAgaGVhcGFtX2luZGV4X3ZhbGlkYXRlX3NjYW4oUmVsYXRp b24gaGVhcFJlbGF0aW9uLAogCQkJCQkJCQkgMCwgLyogbnVtYmVyIG9mIGtleXMgKi8KIAkJCQkJ CQkJIE5VTEwsCS8qIHNjYW4ga2V5ICovCiAJCQkJCQkJCSB0cnVlLAkvKiBidWZmZXIgYWNjZXNz IHN0cmF0ZWd5IE9LICovCi0JCQkJCQkJCSBmYWxzZSk7CS8qIHN5bmNzY2FuIG5vdCBPSyAqLwor CQkJCQkJCQkgZmFsc2UsCS8qIHN5bmNzY2FuIG5vdCBPSyAqLworCQkJCQkJCQkgZmFsc2UpOwog CWhzY2FuID0gKEhlYXBTY2FuRGVzYykgc2NhbjsKIAogCXBnc3RhdF9wcm9ncmVzc191cGRhdGVf cGFyYW0oUFJPR1JFU1NfU0NBTl9CTE9DS1NfVE9UQUwsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5j CmluZGV4IDYwYzYxMDM5ZDY2Li43NzdkZjkxOTcyZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2luZGV4L2dlbmFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFt LmMKQEAgLTQ2MSw3ICs0NjEsNyBAQCBzeXN0YWJsZV9iZWdpbnNjYW4oUmVsYXRpb24gaGVhcFJl bGF0aW9uLAogCQkgKi8KIAkJc3lzc2Nhbi0+c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdCho ZWFwUmVsYXRpb24sIHNuYXBzaG90LAogCQkJCQkJCQkJCQkgIG5rZXlzLCBrZXksCi0JCQkJCQkJ CQkJCSAgdHJ1ZSwgZmFsc2UpOworCQkJCQkJCQkJCQkgIHRydWUsIGZhbHNlLCBmYWxzZSk7CiAJ CXN5c3NjYW4tPmlzY2FuID0gTlVMTDsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0c29ydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0 LmMKaW5kZXggMTdhMzUyZDA0MGMuLjVjNDU4MWFmYjFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHNvcnQuYwpAQCAtMTQxMCw2ICsxNDEwLDcgQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVp bGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCVdh bFVzYWdlICAgKndhbHVzYWdlOwogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2FnZTsKIAlib29sCQls ZWFkZXJwYXJ0aWNpcGF0ZXMgPSB0cnVlOworCWJvb2wJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hv dCA9IHRydWU7CiAJaW50CQkJcXVlcnlsZW47CiAKICNpZmRlZiBESVNBQkxFX0xFQURFUl9QQVJU SUNJUEFUSU9OCkBAIC0xNDM1LDkgKzE0MzYsMTYgQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVp bGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCSAq IGxpdmUgYWNjb3JkaW5nIHRvIHRoYXQuCiAJICovCiAJaWYgKCFpc2NvbmN1cnJlbnQpCisJewor CQlBc3NlcnQoQWN0aXZlU25hcHNob3RTZXQoKSk7CiAJCXNuYXBzaG90ID0gU25hcHNob3RBbnk7 CisJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IGZhbHNlOworCX0KIAllbHNlCisJewogCQlz bmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKKwkJ UHVzaEFjdGl2ZVNuYXBzaG90KHNuYXBzaG90KTsKKwl9CiAKIAkvKgogCSAqIEVzdGltYXRlIHNp emUgZm9yIG91ciBvd24gUEFSQUxMRUxfS0VZX0JUUkVFX1NIQVJFRCB3b3Jrc3BhY2UsIGFuZApA QCAtMTQ5MSw2ICsxNDk5LDggQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVp bGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCS8qIElmIG5vIERTTSBz ZWdtZW50IHdhcyBhdmFpbGFibGUsIGJhY2sgb3V0IChkbyBzZXJpYWwgYnVpbGQpICovCiAJaWYg KHBjeHQtPnNlZyA9PSBOVUxMKQogCXsKKwkJaWYgKG5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCkK KwkJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiAJCWlmIChJc01WQ0NTbmFwc2hvdChzbmFwc2hvdCkp CiAJCQlVbnJlZ2lzdGVyU25hcHNob3Qoc25hcHNob3QpOwogCQlEZXN0cm95UGFyYWxsZWxDb250 ZXh0KHBjeHQpOwpAQCAtMTU4NSw2ICsxNTk1LDggQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVp bGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCS8q IElmIG5vIHdvcmtlcnMgd2VyZSBzdWNjZXNzZnVsbHkgbGF1bmNoZWQsIGJhY2sgb3V0IChkbyBz ZXJpYWwgYnVpbGQpICovCiAJaWYgKHBjeHQtPm53b3JrZXJzX2xhdW5jaGVkID09IDApCiAJewor CQlpZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90KQorCQkJUG9wQWN0aXZlU25hcHNob3QoKTsK IAkJX2J0X2VuZF9wYXJhbGxlbChidGxlYWRlcik7CiAJCXJldHVybjsKIAl9CkBAIC0xNjAxLDYg KzE2MTMsOCBAQCBfYnRfYmVnaW5fcGFyYWxsZWwoQlRCdWlsZFN0YXRlICpidWlsZHN0YXRlLCBi b29sIGlzY29uY3VycmVudCwgaW50IHJlcXVlc3QpCiAJICogc3VyZSB0aGF0IHRoZSBmYWlsdXJl LXRvLXN0YXJ0IGNhc2Ugd2lsbCBub3QgaGFuZyBmb3JldmVyLgogCSAqLwogCVdhaXRGb3JQYXJh bGxlbFdvcmtlcnNUb0F0dGFjaChwY3h0KTsKKwlpZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90 KQorCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9pbmRleC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCmluZGV4IDFj M2E5ZTA2ZDM3Li5mNTgxYTc0M2FhZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9p bmRleC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtNzksNiArNzksNyBA QAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5o IgogI2luY2x1ZGUgInV0aWxzL3R1cGxlc29ydC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5o IgogCiAvKiBQb3RlbnRpYWxseSBzZXQgYnkgcGdfdXBncmFkZV9zdXBwb3J0IGZ1bmN0aW9ucyAq LwogT2lkCQkJYmluYXJ5X3VwZ3JhZGVfbmV4dF9pbmRleF9wZ19jbGFzc19vaWQgPSBJbnZhbGlk T2lkOwpAQCAtMTQ5MCw4ICsxNDkxLDggQEAgaW5kZXhfY29uY3VycmVudGx5X2J1aWxkKE9pZCBo ZWFwUmVsYXRpb25JZCwKIAlSZWxhdGlvbglpbmRleFJlbGF0aW9uOwogCUluZGV4SW5mbyAgKmlu ZGV4SW5mbzsKIAotCS8qIFRoaXMgaGFkIGJldHRlciBtYWtlIHN1cmUgdGhhdCBhIHNuYXBzaG90 IGlzIGFjdGl2ZSAqLwotCUFzc2VydChBY3RpdmVTbmFwc2hvdFNldCgpKTsKKwlBc3NlcnQoIVRy YW5zYWN0aW9uSWRJc1ZhbGlkKE15UHJvYy0+eG1pbikpOworCUFzc2VydCghVHJhbnNhY3Rpb25J ZElzVmFsaWQoTXlQcm9jLT54aWQpKTsKIAogCS8qIE9wZW4gYW5kIGxvY2sgdGhlIHBhcmVudCBo ZWFwIHJlbGF0aW9uICovCiAJaGVhcFJlbCA9IHRhYmxlX29wZW4oaGVhcFJlbGF0aW9uSWQsIFNo YXJlVXBkYXRlRXhjbHVzaXZlTG9jayk7CkBAIC0xNTA5LDE5ICsxNTEwLDI4IEBAIGluZGV4X2Nv bmN1cnJlbnRseV9idWlsZChPaWQgaGVhcFJlbGF0aW9uSWQsCiAKIAlpbmRleFJlbGF0aW9uID0g aW5kZXhfb3BlbihpbmRleFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCisJLyogQnVp bGRJbmRleEluZm8gbWF5IHJlcXVpcmUgYXMgc25hcHNob3QgZm9yIGV4cHJlc3Npb25zIGFuZCBw cmVkaWNhdGVzICovCisJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNob3Qo KSk7CiAJLyoKIAkgKiBXZSBoYXZlIHRvIHJlLWJ1aWxkIHRoZSBJbmRleEluZm8gc3RydWN0LCBz aW5jZSBpdCB3YXMgbG9zdCBpbiB0aGUKIAkgKiBjb21taXQgb2YgdGhlIHRyYW5zYWN0aW9uIHdo ZXJlIHRoaXMgY29uY3VycmVudCBpbmRleCB3YXMgY3JlYXRlZCBhdAogCSAqIHRoZSBjYXRhbG9n IGxldmVsLgogCSAqLwogCWluZGV4SW5mbyA9IEJ1aWxkSW5kZXhJbmZvKGluZGV4UmVsYXRpb24p OworCS8qIERvbmUgd2l0aCBzbmFwc2hvdCAqLworCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiAJQXNz ZXJ0KCFpbmRleEluZm8tPmlpX1JlYWR5Rm9ySW5zZXJ0cyk7CiAJaW5kZXhJbmZvLT5paV9Db25j dXJyZW50ID0gdHJ1ZTsKIAlpbmRleEluZm8tPmlpX0Jyb2tlbkhvdENoYWluID0gZmFsc2U7CisJ QXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnhtaW4pKTsKIAogCS8qIE5vdyBi dWlsZCB0aGUgaW5kZXggKi8KIAlpbmRleF9idWlsZChoZWFwUmVsLCBpbmRleFJlbGF0aW9uLCBp bmRleEluZm8sIGZhbHNlLCB0cnVlKTsKIAorCS8qIEludmFsaWRhdGUgY2F0YWxvZyBzbmFwc2hv dCBqdXN0IGZvciBhc3NlcnQgKi8KKwlJbnZhbGlkYXRlQ2F0YWxvZ1NuYXBzaG90KCk7CisJQXNz ZXJ0KChpbmRleEluZm8tPmlpX1BhcmFsbGVsV29ya2VycyB8fCBpbmRleEluZm8tPmlpX1VuaXF1 ZSkgfHwgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UHJvYy0+eG1pbikpOworCiAJLyogUm9sbCBi YWNrIGFueSBHVUMgY2hhbmdlcyBleGVjdXRlZCBieSBpbmRleCBmdW5jdGlvbnMgKi8KIAlBdEVP WGFjdF9HVUMoZmFsc2UsIHNhdmVfbmVzdGxldmVsKTsKIApAQCAtMTUzMiwxMiArMTU0MiwxOSBA QCBpbmRleF9jb25jdXJyZW50bHlfYnVpbGQoT2lkIGhlYXBSZWxhdGlvbklkLAogCXRhYmxlX2Ns b3NlKGhlYXBSZWwsIE5vTG9jayk7CiAJaW5kZXhfY2xvc2UoaW5kZXhSZWxhdGlvbiwgTm9Mb2Nr KTsKIAorCS8qCisJICogVXBkYXRpbmcgcGdfaW5kZXggbWlnaHQgaW52b2x2ZSBUT0FTVCB0YWJs ZSBhY2Nlc3MsIHNvIGVuc3VyZSB3ZQorCSAqIGhhdmUgYSB2YWxpZCBzbmFwc2hvdC4KKwkgKi8K KwlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKIAkvKgogCSAq IFVwZGF0ZSB0aGUgcGdfaW5kZXggcm93IHRvIG1hcmsgdGhlIGluZGV4IGFzIHJlYWR5IGZvciBp bnNlcnRzLiBPbmNlIHdlCiAJICogY29tbWl0IHRoaXMgdHJhbnNhY3Rpb24sIGFueSBuZXcgdHJh bnNhY3Rpb25zIHRoYXQgb3BlbiB0aGUgdGFibGUgbXVzdAogCSAqIGluc2VydCBuZXcgZW50cmll cyBpbnRvIHRoZSBpbmRleCBmb3IgaW5zZXJ0aW9ucyBhbmQgbm9uLUhPVCB1cGRhdGVzLgogCSAq LwogCWluZGV4X3NldF9zdGF0ZV9mbGFncyhpbmRleFJlbGF0aW9uSWQsIElOREVYX0NSRUFURV9T RVRfUkVBRFkpOworCS8qIHdlIGNhbiBkbyBhd2F5IHdpdGggb3VyIHNuYXBzaG90ICovCisJUG9w QWN0aXZlU25hcHNob3QoKTsKIH0KIAogLyoKQEAgLTMyMDUsNyArMzIyMiw4IEBAIEluZGV4Q2hl Y2tFeGNsdXNpb24oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJCQkgMCwgLyogbnVtYmVy IG9mIGtleXMgKi8KIAkJCQkJCQkJIE5VTEwsCS8qIHNjYW4ga2V5ICovCiAJCQkJCQkJCSB0cnVl LAkvKiBidWZmZXIgYWNjZXNzIHN0cmF0ZWd5IE9LICovCi0JCQkJCQkJCSB0cnVlKTsgLyogc3lu Y3NjYW4gT0sgKi8KKwkJCQkJCQkJIHRydWUsIC8qIHN5bmNzY2FuIE9LICovCisJCQkJCQkJCSBm YWxzZSk7CiAKIAl3aGlsZSAodGFibGVfc2Nhbl9nZXRuZXh0c2xvdChzY2FuLCBGb3J3YXJkU2Nh bkRpcmVjdGlvbiwgc2xvdCkpCiAJewpAQCAtMzI2OCwxMiArMzI4NiwxNiBAQCBJbmRleENoZWNr RXhjbHVzaW9uKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKICAqIGFzIG9mIHRoZSBzdGFydCBvZiB0 aGUgc2NhbiAoc2VlIHRhYmxlX2luZGV4X2J1aWxkX3NjYW4pLCB3aGVyZWFzIGEgbm9ybWFsCiAg KiBidWlsZCB0YWtlcyBjYXJlIHRvIGluY2x1ZGUgcmVjZW50bHktZGVhZCB0dXBsZXMuICBUaGlz IGlzIE9LIGJlY2F1c2UKICAqIHdlIHdvbid0IG1hcmsgdGhlIGluZGV4IHZhbGlkIHVudGlsIGFs bCB0cmFuc2FjdGlvbnMgdGhhdCBtaWdodCBiZSBhYmxlCi0gKiB0byBzZWUgdGhvc2UgdHVwbGVz IGFyZSBnb25lLiAgVGhlIHJlYXNvbiBmb3IgZG9pbmcgdGhhdCBpcyB0byBhdm9pZAorICogdG8g c2VlIHRob3NlIHR1cGxlcyBhcmUgZ29uZS4gIE9uZSBvZiByZWFzb25zIGZvciBkb2luZyB0aGF0 IGlzIHRvIGF2b2lkCiAgKiBib2d1cyB1bmlxdWUtaW5kZXggZmFpbHVyZXMgZHVlIHRvIGNvbmN1 cnJlbnQgVVBEQVRFcyAod2UgbWlnaHQgc2VlCiAgKiBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhl IHNhbWUgcm93IGFzIGJlaW5nIHZhbGlkIHdoZW4gd2UgcGFzcyBvdmVyIHRoZW0sCiAgKiBpZiB3 ZSB1c2VkIEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSkuICBUaGlzIGxlYXZlcyB1cyB3aXRoIGFu IGluZGV4IHRoYXQKICAqIGRvZXMgbm90IGNvbnRhaW4gYW55IHR1cGxlcyBhZGRlZCB0byB0aGUg dGFibGUgd2hpbGUgd2UgYnVpbHQgdGhlIGluZGV4LgogICoKKyAqIEZ1cnRoZXJtb3JlLCBpbiBj YXNlIG9mIG5vbi11bmlxdWUgaW5kZXggd2Ugc2V0IFNPX1JFU0VUX1NOQVBTSE9UIGZvciB0aGUK KyAqIHNjYW4sIHdoaWNoIGNhdXNlcyBuZXcgc25hcHNob3QgdG8gYmUgc2V0IGFzIGFjdGl2ZSBl dmVyeSBzbyBvZnRlbi4gVGhlIHJlYXNvbgorICogZm9yIHRoYXQgaXMgdG8gcHJvcGFnYXRlIHRo ZSB4bWluIGhvcml6b24gZm9yd2FyZC4KKyAqCiAgKiBOZXh0LCB3ZSBtYXJrIHRoZSBpbmRleCAi aW5kaXNyZWFkeSIgKGJ1dCBzdGlsbCBub3QgImluZGlzdmFsaWQiKSBhbmQKICAqIGNvbW1pdCB0 aGUgc2Vjb25kIHRyYW5zYWN0aW9uIGFuZCBzdGFydCBhIHRoaXJkLiAgQWdhaW4gd2Ugd2FpdCBm b3IgYWxsCiAgKiB0cmFuc2FjdGlvbnMgdGhhdCBjb3VsZCBoYXZlIGJlZW4gbW9kaWZ5aW5nIHRo ZSB0YWJsZSB0byB0ZXJtaW5hdGUuICBOb3cKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXgg OTMyODU0ZDZjNjAuLjZjMWZjZThlZDI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAt MTY3MCwyMyArMTY3MCwxNyBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkgKiBjaGFpbnMg Y2FuIGJlIGNyZWF0ZWQgd2hlcmUgdGhlIG5ldyB0dXBsZSBhbmQgdGhlIG9sZCB0dXBsZSBpbiB0 aGUKIAkgKiBjaGFpbiBoYXZlIGRpZmZlcmVudCBpbmRleCBrZXlzLgogCSAqCi0JICogV2Ugbm93 IHRha2UgYSBuZXcgc25hcHNob3QsIGFuZCBidWlsZCB0aGUgaW5kZXggdXNpbmcgYWxsIHR1cGxl cyB0aGF0Ci0JICogYXJlIHZpc2libGUgaW4gdGhpcyBzbmFwc2hvdC4gIFdlIGNhbiBiZSBzdXJl IHRoYXQgYW55IEhPVCB1cGRhdGVzIHRvCisJICogV2UgYnVpbGQgdGhlIGluZGV4IHVzaW5nIGFs bCB0dXBsZXMgdGhhdCBhcmUgdmlzaWJsZSB1c2luZyBzaW5nbGUgb3IKKwkgKiBtdWx0aXBsZSBy ZWZyZXNoaW5nIHNuYXBzaG90cy4gV2UgY2FuIGJlIHN1cmUgdGhhdCBhbnkgSE9UIHVwZGF0ZXMg dG8KIAkgKiB0aGVzZSB0dXBsZXMgd2lsbCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIGluZGV4LCBz aW5jZSBhbnkgdXBkYXRlcyBtYWRlCiAJICogYnkgdHJhbnNhY3Rpb25zIHRoYXQgZGlkbid0IGtu b3cgYWJvdXQgdGhlIGluZGV4IGFyZSBub3cgY29tbWl0dGVkIG9yCiAJICogcm9sbGVkIGJhY2su ICBUaHVzLCBlYWNoIHZpc2libGUgdHVwbGUgaXMgZWl0aGVyIHRoZSBlbmQgb2YgaXRzCiAJICog SE9ULWNoYWluIG9yIHRoZSBleHRlbnNpb24gb2YgdGhlIGNoYWluIGlzIEhPVC1zYWZlIGZvciB0 aGlzIGluZGV4LgogCSAqLwogCi0JLyogU2V0IEFjdGl2ZVNuYXBzaG90IHNpbmNlIGZ1bmN0aW9u cyBpbiB0aGUgaW5kZXhlcyBtYXkgbmVlZCBpdCAqLwotCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRU cmFuc2FjdGlvblNuYXBzaG90KCkpOwotCiAJLyogUGVyZm9ybSBjb25jdXJyZW50IGJ1aWxkIG9m IGluZGV4ICovCiAJaW5kZXhfY29uY3VycmVudGx5X2J1aWxkKHRhYmxlSWQsIGluZGV4UmVsYXRp b25JZCk7CiAKLQkvKiB3ZSBjYW4gZG8gYXdheSB3aXRoIG91ciBzbmFwc2hvdCAqLwotCVBvcEFj dGl2ZVNuYXBzaG90KCk7Ci0KIAkvKgogCSAqIENvbW1pdCB0aGlzIHRyYW5zYWN0aW9uIHRvIG1h a2UgdGhlIGluZGlzcmVhZHkgdXBkYXRlIHZpc2libGUuCiAJICovCkBAIC00MDg0LDkgKzQwNzgs NiBAQCBSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoY29uc3QgUmVpbmRleFN0bXQgKnN0bXQs IE9pZCByZWxhdGlvbk9pZCwgY29uc3QgUmVpbgogCQlpZiAobmV3aWR4LT5zYWZlKQogCQkJc2V0 X2luZGV4c2FmZV9wcm9jZmxhZ3MoKTsKIAotCQkvKiBTZXQgQWN0aXZlU25hcHNob3Qgc2luY2Ug ZnVuY3Rpb25zIGluIHRoZSBpbmRleGVzIG1heSBuZWVkIGl0ICovCi0JCVB1c2hBY3RpdmVTbmFw c2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwotCiAJCS8qCiAJCSAqIFVwZGF0ZSBwcm9n cmVzcyBmb3IgdGhlIGluZGV4IHRvIGJ1aWxkLCB3aXRoIHRoZSBjb3JyZWN0IHBhcmVudAogCQkg KiB0YWJsZSBpbnZvbHZlZC4KQEAgLTQxMDEsNyArNDA5Miw2IEBAIFJlaW5kZXhSZWxhdGlvbkNv bmN1cnJlbnRseShjb25zdCBSZWluZGV4U3RtdCAqc3RtdCwgT2lkIHJlbGF0aW9uT2lkLCBjb25z dCBSZWluCiAJCS8qIFBlcmZvcm0gY29uY3VycmVudCBidWlsZCBvZiBuZXcgaW5kZXggKi8KIAkJ aW5kZXhfY29uY3VycmVudGx5X2J1aWxkKG5ld2lkeC0+dGFibGVJZCwgbmV3aWR4LT5pbmRleElk KTsKIAotCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwogCQlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQo KTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIu YyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCBiNjY1YTc3NjJl Yy4uZDlkZTE2YWY4MWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTYy LDYgKzYyLDcgQEAKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGls cy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zZWxmdW5jcy5oIgorI2luY2x1ZGUgInV0aWxzL3Nu YXBtZ3IuaCIKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGRvdWJsZQkJY3Vyc29yX3R1cGxlX2Zy YWN0aW9uID0gREVGQVVMVF9DVVJTT1JfVFVQTEVfRlJBQ1RJT047CkBAIC02OTQyLDYgKzY5NDMs NyBAQCBwbGFuX2NyZWF0ZV9pbmRleF93b3JrZXJzKE9pZCB0YWJsZU9pZCwgT2lkIGluZGV4T2lk KQogCVJlbGF0aW9uCWhlYXA7CiAJUmVsYXRpb24JaW5kZXg7CiAJUmVsT3B0SW5mbyAqcmVsOwor CWJvb2wJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IGZhbHNlOwogCWludAkJCXBhcmFsbGVs X3dvcmtlcnM7CiAJQmxvY2tOdW1iZXIgaGVhcF9ibG9ja3M7CiAJZG91YmxlCQlyZWx0dXBsZXM7 CkBAIC02OTk3LDYgKzY5OTksMTEgQEAgcGxhbl9jcmVhdGVfaW5kZXhfd29ya2VycyhPaWQgdGFi bGVPaWQsIE9pZCBpbmRleE9pZCkKIAloZWFwID0gdGFibGVfb3Blbih0YWJsZU9pZCwgTm9Mb2Nr KTsKIAlpbmRleCA9IGluZGV4X29wZW4oaW5kZXhPaWQsIE5vTG9jayk7CiAKKwkvKiBTZXQgQWN0 aXZlU25hcHNob3Qgc2luY2UgZnVuY3Rpb25zIGluIHRoZSBpbmRleGVzIG1heSBuZWVkIGl0ICov CisJaWYgKCFBY3RpdmVTbmFwc2hvdFNldCgpKSB7CisJCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRU cmFuc2FjdGlvblNuYXBzaG90KCkpOworCQluZWVkX3BvcF9hY3RpdmVfc25hcHNob3QgPSB0cnVl OworCX0KIAkvKgogCSAqIERldGVybWluZSBpZiBpdCdzIHNhZmUgdG8gcHJvY2VlZC4KIAkgKgpA QCAtNzA1NCw2ICs3MDYxLDggQEAgcGxhbl9jcmVhdGVfaW5kZXhfd29ya2VycyhPaWQgdGFibGVP aWQsIE9pZCBpbmRleE9pZCkKIAkJcGFyYWxsZWxfd29ya2Vycy0tOwogCiBkb25lOgorCWlmIChu ZWVkX3BvcF9hY3RpdmVfc25hcHNob3QpCisJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiAJaW5kZXhf Y2xvc2UoaW5kZXgsIE5vTG9jayk7CiAJdGFibGVfY2xvc2UoaGVhcCwgTm9Mb2NrKTsKIApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy90YWJsZWFtLmgKaW5kZXggYWRiNDc4YTkzY2EuLmY0YzdkMmE5MmJmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJs ZWFtLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL3JlYWRfc3RyZWFtLmgi CiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcHNob3QuaCIKKyNp bmNsdWRlICJ1dGlscy9pbmplY3Rpb25fcG9pbnQuaCIKIAogCiAjZGVmaW5lIERFRkFVTFRfVEFC TEVfQUNDRVNTX01FVEhPRAkiaGVhcCIKQEAgLTY5LDYgKzcwLDE3IEBAIHR5cGVkZWYgZW51bSBT Y2FuT3B0aW9ucwogCSAqIG5lZWRlZC4gSWYgdGFibGUgZGF0YSBtYXkgYmUgbmVlZGVkLCBzZXQg U09fTkVFRF9UVVBMRVMuCiAJICovCiAJU09fTkVFRF9UVVBMRVMgPSAxIDw8IDEwLAorCS8qCisJ ICogUmVzZXQgc2NhbiBhbmQgY2F0YWxvZyBzbmFwc2hvdCBldmVyeSBzbyBvZnRlbj8gSWYgc28s IGVhY2gKKwkgKiBTT19SRVNFVF9TTkFQU0hPVF9FQUNIX05fUEFHRSBwYWdlcyBhY3RpdmUgc25h cHNob3QgaXMgcG9wcGVkLAorCSAqIGNhdGFsb2cgc25hcHNob3QgaW52YWxpZGF0ZWQsIGxhdGVz dCBzbmFwc2hvdCBwdXNoZWQgYXMgYWN0aXZlLgorCSAqCisJICogQXQgdGhlIGVuZCBvZiB0aGUg c2NhbiBzbmFwc2hvdCBpcyBub3QgcG9wcGVkLgorCSAqIEdvYWwgb2Ygc3VjaCBtb2RlIGlzIGtl ZXAgeG1pbiBwcm9wYWdhdGluZyBob3Jpem9uIGZvcndhcmQuCisJICoKKwkgKiBzZWUgaGVhcF9y ZXNldF9zY2FuX3NuYXBzaG90IGZvciBkZXRhaWxzLgorCSAqLworCVNPX1JFU0VUX1NOQVBTSE9U ID0gMSA8PCAxMSwKIH0JCQlTY2FuT3B0aW9uczsKIAogLyoKQEAgLTkzNSw3ICs5NDcsOCBAQCBl eHRlcm4gVGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fY2F0YWxvZyhSZWxhdGlvbiByZWxh dGlvbiwgaW50IG5rZXlzLAogc3RhdGljIGlubGluZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdp bnNjYW5fc3RyYXQoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJICBpbnQg bmtleXMsIHN0cnVjdCBTY2FuS2V5RGF0YSAqa2V5LAotCQkJCQkgIGJvb2wgYWxsb3dfc3RyYXQs IGJvb2wgYWxsb3dfc3luYykKKwkJCQkJICBib29sIGFsbG93X3N0cmF0LCBib29sIGFsbG93X3N5 bmMsCisJCQkJCSAgYm9vbCByZXNldF9zbmFwc2hvdCkKIHsKIAl1aW50MzIJCWZsYWdzID0gU09f VFlQRV9TRVFTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CiAKQEAgLTk0Myw2ICs5NTYsMTUgQEAg dGFibGVfYmVnaW5zY2FuX3N0cmF0KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsCiAJ CWZsYWdzIHw9IFNPX0FMTE9XX1NUUkFUOwogCWlmIChhbGxvd19zeW5jKQogCQlmbGFncyB8PSBT T19BTExPV19TWU5DOworCWlmIChyZXNldF9zbmFwc2hvdCkKKwl7CisJCUlOSkVDVElPTl9QT0lO VCgidGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cyIpOworCQkvKiBBY3RpdmUg c25hcHNob3QgaXMgcmVxdWlyZWQgb24gc3RhcnQuICovCisJCUFzc2VydChHZXRBY3RpdmVTbmFw c2hvdCgpID09IHNuYXBzaG90KTsKKwkJLyogQWN0aXZlIHNuYXBzaG90IHNob3VsZCBub3QgYmUg cmVnaXN0ZXJlZCB0byBrZWVwIHhtaW4gcHJvcGFnYXRpbmcuICovCisJCUFzc2VydChHZXRBY3Rp dmVTbmFwc2hvdCgpLT5yZWdkX2NvdW50ID09IDApOworCQlmbGFncyB8PSAoU09fUkVTRVRfU05B UFNIT1QpOworCX0KIAogCXJldHVybiByZWwtPnJkX3RhYmxlYW0tPnNjYW5fYmVnaW4ocmVsLCBz bmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwgZmxhZ3MpOwogfQpAQCAtMTc3OSw2ICsxODAxLDEw IEBAIHRhYmxlX3NjYW5fYW5hbHl6ZV9uZXh0X3R1cGxlKFRhYmxlU2NhbkRlc2Mgc2NhbiwgVHJh bnNhY3Rpb25JZCBPbGRlc3RYbWluLAogICogdmVyeSBoYXJkIHRvIGRldGVjdCB3aGV0aGVyIHRo ZXkncmUgcmVhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBjaGFpbiB0aXAuCiAgKiBUaGlzIG9u bHkgcmVhbGx5IG1ha2VzIHNlbnNlIGZvciBoZWFwIEFNLCBpdCBtaWdodCBuZWVkIHRvIGJlIGdl bmVyYWxpemVkCiAgKiBmb3Igb3RoZXIgQU1zIGxhdGVyLgorICoKKyAqIEluIGNhc2Ugb2Ygbm9u LXVuaXF1ZSBpbmRleCBhbmQgbm9uLXBhcmFsbGVsIGNvbmN1cnJlbnQgYnVpbGQKKyAqIFNPX1JF U0VUX1NOQVBTSE9UIGlzIGFwcGxpZWQgZm9yIHRoZSBzY2FuLiBUaGF0IGxlYWRzIGZvciBjaGFu Z2luZyBzbmFwc2hvdHMKKyAqIG9uIHRoZSBmbHkgdG8gYWxsb3cgeG1pbiBob3Jpem9uIHByb3Bh Z2F0ZS4KICAqLwogc3RhdGljIGlubGluZSBkb3VibGUKIHRhYmxlX2luZGV4X2J1aWxkX3NjYW4o UmVsYXRpb24gdGFibGVfcmVsLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rp b25fcG9pbnRzL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL01h a2VmaWxlCmluZGV4IGY4Zjg2ZThmM2I2Li43Mzg5M2QzNTFiYiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL01ha2VmaWxlCisrKyBiL3NyYy90ZXN0L21vZHVs ZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZQpAQCAtMTAsNyArMTAsNyBAQCBFWFRFTlNJT04g PSBpbmplY3Rpb25fcG9pbnRzCiBEQVRBID0gaW5qZWN0aW9uX3BvaW50cy0tMS4wLnNxbAogUEdG SUxFREVTQyA9ICJpbmplY3Rpb25fcG9pbnRzIC0gZmFjaWxpdHkgZm9yIGluamVjdGlvbiBwb2lu dHMiCiAKLVJFR1JFU1MgPSBpbmplY3Rpb25fcG9pbnRzIHJlaW5kZXhfY29uYworUkVHUkVTUyA9 IGluamVjdGlvbl9wb2ludHMgcmVpbmRleF9jb25jIGNpY19yZXNldF9zbmFwc2hvdHMKIFJFR1JF U1NfT1BUUyA9IC0tZGxwYXRoPSQodG9wX2J1aWxkZGlyKS9zcmMvdGVzdC9yZWdyZXNzCiAKIElT T0xBVElPTiA9IGJhc2ljIGlucGxhY2UgXApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0IGIvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMu b3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40Y2ZiYmIwNTkyMwot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBl Y3RlZC9jaWNfcmVzZXRfc25hcHNob3RzLm91dApAQCAtMCwwICsxLDEwMiBAQAorQ1JFQVRFIEVY VEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xv Y2FsKCk7CisgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgn aGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZScsICdub3RpY2UnKTsKKyBpbmplY3Rp b25fcG9pbnRzX2F0dGFjaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCd0YWJsZV9iZWdpbnNjYW5fc3RyYXRf cmVzZXRfc25hcHNob3RzJywgJ25vdGljZScpOworIGluamVjdGlvbl9wb2ludHNfYXR0YWNoIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitDUkVBVEUgU0NIRU1BIGNp Y19yZXNldF9zbmFwOworQ1JFQVRFIFRBQkxFIGNpY19yZXNldF9zbmFwLnRibChpIGludCBwcmlt YXJ5IGtleSwgaiBpbnQpOworSU5TRVJUIElOVE8gY2ljX3Jlc2V0X3NuYXAudGJsIFNFTEVDVCBp LCBpICogSSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMDApIHMoaSk7CitDUkVBVEUgRlVOQ1RJ T04gY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZShpbnRlZ2VyKSBSRVRVUk5TIGJvb2wg SU1NVVRBQkxFCisJCQkJCQkJCQkgIExBTkdVQUdFIHBscGdzcWwgQVMgJCQKK0JFR0lOCisgICAg RVhFQ1VURSAnU0VMRUNUIHR4aWRfY3VycmVudCgpJzsKKyAgICBSRVRVUk4gTU9EKCQxLCAyKSA9 IDA7CitFTkQ7ICQkOworQ1JFQVRFIEZVTkNUSU9OIGNpY19yZXNldF9zbmFwLnByZWRpY2F0ZV9z dGFibGVfbm9fcGFyYW0oKSBSRVRVUk5TIGJvb2wgSU1NVVRBQkxFCisJCQkJCQkJCQkgIExBTkdV QUdFIHBscGdzcWwgQVMgJCQKK0JFR0lOCisgICAgRVhFQ1VURSAnU0VMRUNUIHR4aWRfY3VycmVu dCgpJzsKKyAgICBSRVRVUk4gZmFsc2U7CitFTkQ7ICQkOworLS0tLS0tLS0tLS0tLS0tLQorQUxU RVIgVEFCTEUgY2ljX3Jlc2V0X3NuYXAudGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz0wKTsKK0NS RUFURSBVTklRVUUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50Ymwo aSk7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9Q IElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitDUkVBVEUgSU5ERVggQ09O Q1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSk7CitOT1RJQ0U6ICBub3RpY2Ug dHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0 X3NuYXBzaG90cworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50 IGhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdF9lZmZlY3RpdmUKK1JFSU5ERVggSU5ERVggQ09OQ1VS UkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzCitO T1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGVhcF9yZXNldF9z Y2FuX3NuYXBzaG90X2VmZmVjdGl2ZQorRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0 X3NuYXAuaWR4OworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3Nu YXAudGJsKE1PRChpLCAyKSwgaikgV0hFUkUgTU9EKGksIDIpID0gMDsKK05PVElDRTogIG5vdGlj ZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVz ZXRfc25hcHNob3RzCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9p bnQgaGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZQorUkVJTkRFWCBJTkRFWCBDT05D VVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBm b3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMK K05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0 X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVz ZXRfc25hcC5pZHg7CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRf c25hcC50YmwoaSwgaikgV0hFUkUgY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZShpKTsK K05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdp bnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZv ciBpbmplY3Rpb24gcG9pbnQgaGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZQorUkVJ TkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90 aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9y ZXNldF9zbmFwc2hvdHMKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBw b2ludCBoZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCitEUk9QIElOREVYIENPTkNV UlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlk eCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSwgaikgV0hFUkUgY2ljX3Jlc2V0X3NuYXAucHJlZGlj YXRlX3N0YWJsZV9ub19wYXJhbSgpOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5q ZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKK1JFSU5E RVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK05PVElDRTogIG5vdGlj ZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVz ZXRfc25hcHNob3RzCitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7 CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwgVVNJ TkcgQlJJTihpKTsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2lu dCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzCitOT1RJQ0U6ICBub3RpY2Ug dHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2Vm ZmVjdGl2ZQorUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4Owor Tk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2lu c2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCitEUk9Q IElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CistLSBUaGUgc2FtZSBpbiBw YXJhbGxlbCBtb2RlCitBTFRFUiBUQUJMRSBjaWNfcmVzZXRfc25hcC50YmwgU0VUIChwYXJhbGxl bF93b3JrZXJzPTIpOworQ1JFQVRFIFVOSVFVRSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNp Y19yZXNldF9zbmFwLnRibChpKTsKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNl dF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsK K0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsK K1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5E RVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0NSRUFURSBJTkRFWCBDT05DVVJS RU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChNT0QoaSwgMiksIGopIFdIRVJFIE1PRChp LCAyKSA9IDA7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7 CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitDUkVBVEUgSU5E RVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSwgaikgV0hFUkUgY2lj X3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZShpKTsKK05PVElDRTogIG5vdGljZSB0cmlnZ2Vy ZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNo b3RzCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGVhcF9y ZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZQorUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkg Y2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0 aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKK05PVElDRTog IG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3NjYW5fc25h cHNob3RfZWZmZWN0aXZlCitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5p ZHg7CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50Ymwo aSwgaikgV0hFUkUgY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZV9ub19wYXJhbSgpOwor UkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRF WCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworQ1JFQVRFIElOREVYIENPTkNVUlJF TlRMWSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsIFVTSU5HIEJSSU4oaSk7CitSRUlOREVYIElO REVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJF TlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIFNDSEVNQSBjaWNfcmVzZXRfc25hcCBDQVND QURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAzIG90aGVyIG9iamVjdHMKK0RFVEFJTDog IGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgY2ljX3Jlc2V0X3NuYXAudGJsCitkcm9wIGNhc2NhZGVz IHRvIGZ1bmN0aW9uIGNpY19yZXNldF9zbmFwLnByZWRpY2F0ZV9zdGFibGUoaW50ZWdlcikKK2Ry b3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZV9u b19wYXJhbSgpCitEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qv bW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxkCmluZGV4IDkxZmM4Y2U2ODdmLi5m Mjg4NjMzZGE0ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRz L21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNv bi5idWlsZApAQCAtMzUsNiArMzUsNyBAQCB0ZXN0cyArPSB7CiAgICAgJ3NxbCc6IFsKICAgICAg ICdpbmplY3Rpb25fcG9pbnRzJywKICAgICAgICdyZWluZGV4X2NvbmMnLAorICAgICAgJ2NpY19y ZXNldF9zbmFwc2hvdHMnLAogICAgIF0sCiAgICAgJ3JlZ3Jlc3NfYXJncyc6IFsnLS1kbHBhdGgn LCBtZXNvbi5idWlsZF9yb290KCkgLyAnc3JjL3Rlc3QvcmVncmVzcyddLAogICAgICMgVGhlIGlu amVjdGlvbiBwb2ludHMgYXJlIGNsdXN0ZXItd2lkZSwgc28gZGlzYWJsZSBpbnN0YWxsY2hlY2sK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwvY2ljX3Jl c2V0X3NuYXBzaG90cy5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3Fs L2NpY19yZXNldF9zbmFwc2hvdHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi40ZmVmNWE0NzQzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv aW5qZWN0aW9uX3BvaW50cy9zcWwvY2ljX3Jlc2V0X3NuYXBzaG90cy5zcWwKQEAgLTAsMCArMSw4 MiBAQAorQ1JFQVRFIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworCitTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgn aGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZScsICdub3RpY2UnKTsKK1NFTEVDVCBp bmplY3Rpb25fcG9pbnRzX2F0dGFjaCgndGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBz aG90cycsICdub3RpY2UnKTsKKworCitDUkVBVEUgU0NIRU1BIGNpY19yZXNldF9zbmFwOworQ1JF QVRFIFRBQkxFIGNpY19yZXNldF9zbmFwLnRibChpIGludCBwcmltYXJ5IGtleSwgaiBpbnQpOwor SU5TRVJUIElOVE8gY2ljX3Jlc2V0X3NuYXAudGJsIFNFTEVDVCBpLCBpICogSSBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAyMDApIHMoaSk7CisKK0NSRUFURSBGVU5DVElPTiBjaWNfcmVzZXRfc25h cC5wcmVkaWNhdGVfc3RhYmxlKGludGVnZXIpIFJFVFVSTlMgYm9vbCBJTU1VVEFCTEUKKwkJCQkJ CQkJCSAgTEFOR1VBR0UgcGxwZ3NxbCBBUyAkJAorQkVHSU4KKyAgICBFWEVDVVRFICdTRUxFQ1Qg dHhpZF9jdXJyZW50KCknOworICAgIFJFVFVSTiBNT0QoJDEsIDIpID0gMDsKK0VORDsgJCQ7CisK K0NSRUFURSBGVU5DVElPTiBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlX25vX3BhcmFt KCkgUkVUVVJOUyBib29sIElNTVVUQUJMRQorCQkJCQkJCQkJICBMQU5HVUFHRSBwbHBnc3FsIEFT ICQkCitCRUdJTgorICAgIEVYRUNVVEUgJ1NFTEVDVCB0eGlkX2N1cnJlbnQoKSc7CisgICAgUkVU VVJOIGZhbHNlOworRU5EOyAkJDsKKworLS0tLS0tLS0tLS0tLS0tLQorQUxURVIgVEFCTEUgY2lj X3Jlc2V0X3NuYXAudGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz0wKTsKKworQ1JFQVRFIFVOSVFV RSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKK1JFSU5E RVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09O Q1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRM WSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGkpOworUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5U TFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0 X3NuYXAuaWR4OworCitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRf c25hcC50YmwoTU9EKGksIDIpLCBqKSBXSEVSRSBNT0QoaSwgMikgPSAwOworUkVJTkRFWCBJTkRF WCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5U TFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworCitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBP TiBjaWNfcmVzZXRfc25hcC50YmwoaSwgaikgV0hFUkUgY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRl X3N0YWJsZShpKTsKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlk eDsKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRF IElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGksIGopIFdIRVJF IGNpY19yZXNldF9zbmFwLnByZWRpY2F0ZV9zdGFibGVfbm9fcGFyYW0oKTsKK1JFSU5ERVggSU5E RVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09OQ1VSUkVO VExZIGNpY19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHgg T04gY2ljX3Jlc2V0X3NuYXAudGJsIFVTSU5HIEJSSU4oaSk7CitSRUlOREVYIElOREVYIENPTkNV UlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNf cmVzZXRfc25hcC5pZHg7CisKKy0tIFRoZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUKK0FMVEVSIFRB QkxFIGNpY19yZXNldF9zbmFwLnRibCBTRVQgKHBhcmFsbGVsX3dvcmtlcnM9Mik7CisKK0NSRUFU RSBVTklRVUUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSk7 CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElO REVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CisKK0NSRUFURSBJTkRFWCBDT05D VVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKK1JFSU5ERVggSU5ERVggQ09O Q1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNp Y19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2lj X3Jlc2V0X3NuYXAudGJsKE1PRChpLCAyKSwgaikgV0hFUkUgTU9EKGksIDIpID0gMDsKK1JFSU5E RVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09O Q1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRM WSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGksIGopIFdIRVJFIGNpY19yZXNldF9zbmFwLnBy ZWRpY2F0ZV9zdGFibGUoaSk7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRf c25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CisK K0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBq KSBXSEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlX25vX3BhcmFtKCk7CitSRUlO REVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENP TkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CisKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5U TFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibCBVU0lORyBCUklOKGkpOworUkVJTkRFWCBJTkRF WCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5U TFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworCitEUk9QIFNDSEVNQSBjaWNfcmVzZXRfc25hcCBDQVND QURFOworCitEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOwotLSAKMi40My4wCgo= --000000000000bd14f60628dc8da8 Content-Type: application/x-patch; name="v5-0001-this-is-https-commitfest.postgresql.org-50-5160-m.patch" Content-Disposition: attachment; filename="v5-0001-this-is-https-commitfest.postgresql.org-50-5160-m.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hhs36x0 RnJvbSA5NDMyZGE2MWQ3NjQwNDU3YTY3Y2M1YWM4ZWNkMGIxYzZiZTEzMmUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAzMCBOb3YgMjAyNCAxMTozNjoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjUgMS81 XSB0aGlzIGlzIGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy81MC81MTYwLwogbWVy Z2VkIGluIHNpbmdsZSBjb21taXQuIGl0IGlzIHJlcXVpcmVkIGZvciBzdGFiaWxpdHkgb2Ygc3Ry ZXNzIHRlc3RzLgoKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jICAgICAg ICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFydGl0aW9uLmMgICAgICAg ICAgfCAxMTkgKysrKysrKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUu YyAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jICAg ICAgICAgIHwgMTM1ICsrKysrKystLS0KIHNyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5j ICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv TWFrZWZpbGUgICAgfCAgIDcgKy0KIC4uLi9leHBlY3RlZC9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0Lm91dCAgICB8ICA4MCArKysrKysKIC4uLi9pbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3By ZWRpY2F0ZS5vdXQgICB8ICA4MCArKysrKysKIC4uLi9leHBlY3RlZC9yZWluZGV4X2NvbmN1cnJl bnRseV91cHNlcnQub3V0ICB8IDIzOCArKysrKysrKysrKysrKysrKysKIC4uLm5kZXhfY29uY3Vy cmVudGx5X3Vwc2VydF9vbl9jb25zdHJhaW50Lm91dCB8IDIzOCArKysrKysrKysrKysrKysrKysK IC4uLmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3BhcnRpdGlvbmVkLm91dCB8IDIzOCArKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5i dWlsZCB8ICAxMSArCiAuLi4vc3BlY3MvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5zcGVjICAg ICAgfCAgNjggKysrKysKIC4uLi9pbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3ByZWRpY2F0ZS5z cGVjICB8ICA3MCArKysrKysKIC4uLi9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQu c3BlYyAgICB8ICA4NiArKysrKysrCiAuLi5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9jb25z dHJhaW50LnNwZWMgfCAgODYgKysrKysrKwogLi4uaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9w YXJ0aXRpb25lZC5zcGVjIHwgIDg4ICsrKysrKysKIDE4IGZpbGVzIGNoYW5nZWQsIDE1MDUgaW5z ZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv bW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2luZGV4X2NvbmN1cnJlbnRseV91cHNl cnQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL2V4cGVjdGVkL2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfcHJlZGljYXRlLm91dAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3Rl ZC9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVu dGx5X3Vwc2VydF9vbl9jb25zdHJhaW50Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9yZWluZGV4X2NvbmN1cnJlbnRseV91 cHNlcnRfcGFydGl0aW9uZWQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnQuc3BlYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVj cy9pbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3ByZWRpY2F0ZS5zcGVjCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29u Y3VycmVudGx5X3Vwc2VydC5zcGVjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9j b25zdHJhaW50LnNwZWMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvc3BlY3MvcmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3BhcnRpdGlvbmVk LnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCmluZGV4IDQwNDljZTFhMTBmLi45MzI4NTRk NmM2MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKQEAgLTE3NjYsNiArMTc2Niw3IEBAIERl ZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCSAqIGJlZm9yZSB0aGUgcmVmZXJlbmNlIHNuYXAgd2Fz IHRha2VuLCB3ZSBoYXZlIHRvIHdhaXQgb3V0IGFueQogCSAqIHRyYW5zYWN0aW9ucyB0aGF0IG1p Z2h0IGhhdmUgb2xkZXIgc25hcHNob3RzLgogCSAqLworCUlOSkVDVElPTl9QT0lOVCgiZGVmaW5l X2luZGV4X2JlZm9yZV9zZXRfdmFsaWQiKTsKIAlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFt KFBST0dSRVNTX0NSRUFURUlEWF9QSEFTRSwKIAkJCQkJCQkJIFBST0dSRVNTX0NSRUFURUlEWF9Q SEFTRV9XQUlUXzMpOwogCVdhaXRGb3JPbGRlclNuYXBzaG90cyhsaW1pdFhtaW4sIHRydWUpOwpA QCAtNDIwNiw3ICs0MjA3LDcgQEAgUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KGNvbnN0IFJl aW5kZXhTdG10ICpzdG10LCBPaWQgcmVsYXRpb25PaWQsIGNvbnN0IFJlaW4KIAkgKiB0aGUgc2Ft ZSB0aW1lIHRvIG1ha2Ugc3VyZSB3ZSBvbmx5IGdldCBjb25zdHJhaW50IHZpb2xhdGlvbnMgZnJv bSB0aGUKIAkgKiBpbmRleGVzIHdpdGggdGhlIGNvcnJlY3QgbmFtZXMuCiAJICovCi0KKwlJTkpF Q1RJT05fUE9JTlQoInJlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwIik7 CiAJU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKIAogCS8qCkBAIC00Mjg1LDYgKzQyODYsNyBA QCBSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoY29uc3QgUmVpbmRleFN0bXQgKnN0bXQsIE9p ZCByZWxhdGlvbk9pZCwgY29uc3QgUmVpbgogCSAqIGluZGV4X2Ryb3AoKSBmb3IgbW9yZSBkZXRh aWxzLgogCSAqLwogCisJSU5KRUNUSU9OX1BPSU5UKCJyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJl bnRseV9iZWZvcmVfc2V0X2RlYWQiKTsKIAlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBS T0dSRVNTX0NSRUFURUlEWF9QSEFTRSwKIAkJCQkJCQkJIFBST0dSRVNTX0NSRUFURUlEWF9QSEFT RV9XQUlUXzQpOwogCVdhaXRGb3JMb2NrZXJzTXVsdGlwbGUobG9ja1RhZ3MsIEFjY2Vzc0V4Y2x1 c2l2ZUxvY2ssIHRydWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0lu ZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwppbmRleCBmMGE1 Zjg4NzlhOS4uODIwNzQ5MjM5Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBA IC0xMTcsNiArMTE3LDcgQEAKICNpbmNsdWRlICJ1dGlscy9tdWx0aXJhbmdldHlwZXMuaCIKICNp bmNsdWRlICJ1dGlscy9yYW5nZXR5cGVzLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgor I2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogCiAvKiB3YWl0TW9kZSBhcmd1bWVu dCB0byBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnQoKSAqLwogdHlwZWRlZiBl bnVtCkBAIC05MzYsNiArOTM3LDggQEAgcmV0cnk6CiAJZWNvbnRleHQtPmVjeHRfc2NhbnR1cGxl ID0gc2F2ZV9zY2FudHVwbGU7CiAKIAlFeGVjRHJvcFNpbmdsZVR1cGxlVGFibGVTbG90KGV4aXN0 aW5nX3Nsb3QpOworCWlmICghY29uZmxpY3QpCisJCUlOSkVDVElPTl9QT0lOVCgiY2hlY2tfZXhj bHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Iik7CiAKIAlyZXR1cm4gIWNv bmZsaWN0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcnRpdGlv bi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5jCmluZGV4IDc2NTE4ODYy MjkxLi5hZWVlZTQxZDVmMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Bh cnRpdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYwpAQCAt NDgzLDYgKzQ4Myw0OCBAQCBFeGVjRmluZFBhcnRpdGlvbihNb2RpZnlUYWJsZVN0YXRlICptdHN0 YXRlLAogCXJldHVybiBycmk7CiB9CiAKKy8qCisgKiBJc0luZGV4Q29tcGF0aWJsZUFzQXJiaXRl cgorICogCQlDaGVja3MgaWYgdGhlIGluZGV4ZXMgYXJlIGlkZW50aWNhbCBpbiB0ZXJtcyBvZiBi ZWluZyB1c2VkCisgKiAJCWFzIGFyYml0ZXJzIGZvciB0aGUgSU5TRVJUIE9OIENPTkZMSUNUIG9w ZXJhdGlvbiBieSBjb21wYXJpbmcKKyAqIAkJdGhlbSB0byB0aGUgcHJvdmlkZWQgYXJiaXRlciBp bmRleC4KKyAqCisgKiBSZXR1cm5zIHRoZSB0cnVlIGlmIGluZGV4ZXMgYXJlIGNvbXBhdGlibGUu CisgKi8KK3N0YXRpYyBib29sCitJc0luZGV4Q29tcGF0aWJsZUFzQXJiaXRlcihSZWxhdGlvbglh cmJpdGVySW5kZXhSZWxhdGlvbiwKKwkJCQkJCSAgIEluZGV4SW5mbyAgKmFyYml0ZXJJbmRleElu Zm8sCisJCQkJCQkgICBSZWxhdGlvbglpbmRleFJlbGF0aW9uLAorCQkJCQkJICAgSW5kZXhJbmZv ICAqaW5kZXhJbmZvKQoreworCWludCBpOworCisJaWYgKGFyYml0ZXJJbmRleEluZm8tPmlpX1Vu aXF1ZSAhPSBpbmRleEluZm8tPmlpX1VuaXF1ZSkKKwkJcmV0dXJuIGZhbHNlOworCS8qIGl0IGlz IG5vdCBzdXBwb3J0ZWQgZm9yIGNhc2VzIG9mIGV4Y2x1c2lvbiBjb25zdHJhaW50cy4gKi8KKwlp ZiAoYXJiaXRlckluZGV4SW5mby0+aWlfRXhjbHVzaW9uT3BzICE9IE5VTEwgfHwgaW5kZXhJbmZv LT5paV9FeGNsdXNpb25PcHMgIT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChhcmJpdGVy SW5kZXhSZWxhdGlvbi0+cmRfaW5kZXgtPmluZG5rZXlhdHRzICE9IGluZGV4UmVsYXRpb24tPnJk X2luZGV4LT5pbmRua2V5YXR0cykKKwkJcmV0dXJuIGZhbHNlOworCisJZm9yIChpID0gMDsgaSA8 IGluZGV4UmVsYXRpb24tPnJkX2luZGV4LT5pbmRua2V5YXR0czsgaSsrKQorCXsKKwkJaW50CQkJ YXJiaXRlckF0dG9ObyA9IGFyYml0ZXJJbmRleFJlbGF0aW9uLT5yZF9pbmRleC0+aW5ka2V5LnZh bHVlc1tpXTsKKwkJaW50CQkJYXR0b05vID0gaW5kZXhSZWxhdGlvbi0+cmRfaW5kZXgtPmluZGtl eS52YWx1ZXNbaV07CisJCWlmIChhcmJpdGVyQXR0b05vICE9IGF0dG9ObykKKwkJCXJldHVybiBm YWxzZTsKKwl9CisKKwlpZiAobGlzdF9kaWZmZXJlbmNlKFJlbGF0aW9uR2V0SW5kZXhFeHByZXNz aW9ucyhhcmJpdGVySW5kZXhSZWxhdGlvbiksCisJCQkJCQlSZWxhdGlvbkdldEluZGV4RXhwcmVz c2lvbnMoaW5kZXhSZWxhdGlvbikpICE9IE5JTCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGxp c3RfZGlmZmVyZW5jZShSZWxhdGlvbkdldEluZGV4UHJlZGljYXRlKGFyYml0ZXJJbmRleFJlbGF0 aW9uKSwKKwkJCQkJCVJlbGF0aW9uR2V0SW5kZXhQcmVkaWNhdGUoaW5kZXhSZWxhdGlvbikpICE9 IE5JTCkKKwkJcmV0dXJuIGZhbHNlOworCXJldHVybiB0cnVlOworfQorCiAvKgogICogRXhlY0lu aXRQYXJ0aXRpb25JbmZvCiAgKgkJTG9jayB0aGUgcGFydGl0aW9uIGFuZCBpbml0aWFsaXplIFJl c3VsdFJlbEluZm8uICBBbHNvIHNldHVwIG90aGVyCkBAIC02OTMsNiArNzM1LDggQEAgRXhlY0lu aXRQYXJ0aXRpb25JbmZvKE1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUsIEVTdGF0ZSAqZXN0YXRl LAogCQlpZiAocm9vdFJlc3VsdFJlbEluZm8tPnJpX29uQ29uZmxpY3RBcmJpdGVySW5kZXhlcyAh PSBOSUwpCiAJCXsKIAkJCUxpc3QJICAgKmNoaWxkSWR4czsKKwkJCUxpc3QgCSAgICpub25BbmNl c3RvcklkeHMgPSBOSUw7CisJCQlpbnQJCSAgIGksIGosIGFkZGl0aW9uYWxfYXJiaXRlcnMgPSAw OwogCiAJCQljaGlsZElkeHMgPSBSZWxhdGlvbkdldEluZGV4TGlzdChsZWFmX3BhcnRfcnJpLT5y aV9SZWxhdGlvbkRlc2MpOwogCkBAIC03MDMsMjMgKzc0Nyw3NCBAQCBFeGVjSW5pdFBhcnRpdGlv bkluZm8oTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJCQkJTGlz dENlbGwgICAqbGMyOwogCiAJCQkJYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNlc3RvcnMo Y2hpbGRJZHgpOwotCQkJCWZvcmVhY2gobGMyLCByb290UmVzdWx0UmVsSW5mby0+cmlfb25Db25m bGljdEFyYml0ZXJJbmRleGVzKQorCQkJCWlmIChhbmNlc3RvcnMpCiAJCQkJewotCQkJCQlpZiAo bGlzdF9tZW1iZXJfb2lkKGFuY2VzdG9ycywgbGZpcnN0X29pZChsYzIpKSkKLQkJCQkJCWFyYml0 ZXJJbmRleGVzID0gbGFwcGVuZF9vaWQoYXJiaXRlckluZGV4ZXMsIGNoaWxkSWR4KTsKKwkJCQkJ Zm9yZWFjaChsYzIsIHJvb3RSZXN1bHRSZWxJbmZvLT5yaV9vbkNvbmZsaWN0QXJiaXRlckluZGV4 ZXMpCisJCQkJCXsKKwkJCQkJCWlmIChsaXN0X21lbWJlcl9vaWQoYW5jZXN0b3JzLCBsZmlyc3Rf b2lkKGxjMikpKQorCQkJCQkJCWFyYml0ZXJJbmRleGVzID0gbGFwcGVuZF9vaWQoYXJiaXRlcklu ZGV4ZXMsIGNoaWxkSWR4KTsKKwkJCQkJfQogCQkJCX0KKwkJCQllbHNlIC8qIE5vIGFuY2VzdG9y IHdhcyBmb3VuZCBmb3IgdGhhdCBpbmRleC4gU2F2ZSBpdCBmb3IgcmVjaGVja2luZyBsYXRlci4g Ki8KKwkJCQkJbm9uQW5jZXN0b3JJZHhzID0gbGFwcGVuZF9vaWQobm9uQW5jZXN0b3JJZHhzLCBj aGlsZElkeCk7CiAJCQkJbGlzdF9mcmVlKGFuY2VzdG9ycyk7CiAJCQl9CisKKwkJCS8qCisJCQkg KiBJZiBhbnkgbm9uLWFuY2VzdG9yIGluZGV4ZXMgYXJlIGZvdW5kLCB3ZSBuZWVkIHRvIGNvbXBh cmUgdGhlbSB3aXRoIG90aGVyCisJCQkgKiBpbmRleGVzIG9mIHRoZSByZWxhdGlvbiB0aGF0IHdp bGwgYmUgdXNlZCBhcyBhcmJpdGVycy4gVGhpcyBpcyBuZWNlc3NhcnkKKwkJCSAqIHdoZW4gYSBw YXJ0aXRpb25lZCBpbmRleCBpcyBwcm9jZXNzZWQgYnkgUkVJTkRFWCBDT05DVVJSRU5UTFkuIEJv dGggaW5kZXhlcworCQkJICogbXVzdCBiZSBjb25zaWRlcmVkIGFzIGFyYml0ZXJzIHRvIGVuc3Vy ZSB0aGF0IGFsbCBjb25jdXJyZW50IHRyYW5zYWN0aW9ucworCQkJICogdXNlIHRoZSBzYW1lIHNl dCBvZiBhcmJpdGVycy4KKwkJCSAqLworCQkJaWYgKG5vbkFuY2VzdG9ySWR4cykKKwkJCXsKKwkJ CQlmb3IgKGkgPSAwOyBpIDwgbGVhZl9wYXJ0X3JyaS0+cmlfTnVtSW5kaWNlczsgaSsrKQorCQkJ CXsKKwkJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChub25BbmNlc3RvcklkeHMsIGxlYWZfcGFydF9y cmktPnJpX0luZGV4UmVsYXRpb25EZXNjc1tpXS0+cmRfaW5kZXgtPmluZGV4cmVsaWQpKQorCQkJ CQl7CisJCQkJCQlSZWxhdGlvbiBub25BbmNlc3RvckluZGV4UmVsYXRpb24gPSBsZWFmX3BhcnRf cnJpLT5yaV9JbmRleFJlbGF0aW9uRGVzY3NbaV07CisJCQkJCQlJbmRleEluZm8gKm5vbkFuY2Vz dG9ySW5kZXhJbmZvID0gbGVhZl9wYXJ0X3JyaS0+cmlfSW5kZXhSZWxhdGlvbkluZm9baV07CisJ CQkJCQlBc3NlcnQoIWxpc3RfbWVtYmVyX29pZChhcmJpdGVySW5kZXhlcywgbm9uQW5jZXN0b3JJ bmRleFJlbGF0aW9uLT5yZF9pbmRleC0+aW5kZXhyZWxpZCkpOworCisJCQkJCQkvKiBJdCBpcyB0 b28gZWFybHkgdG8gdXMgbm9uLXJlYWR5IGluZGV4ZXMgYXMgYXJiaXRlcnMgKi8KKwkJCQkJCWlm ICghbm9uQW5jZXN0b3JJbmRleEluZm8tPmlpX1JlYWR5Rm9ySW5zZXJ0cykKKwkJCQkJCQljb250 aW51ZTsKKworCQkJCQkJZm9yIChqID0gMDsgaiA8IGxlYWZfcGFydF9ycmktPnJpX051bUluZGlj ZXM7IGorKykKKwkJCQkJCXsKKwkJCQkJCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFyYml0ZXJJbmRl eGVzLAorCQkJCQkJCQkJCQkJbGVhZl9wYXJ0X3JyaS0+cmlfSW5kZXhSZWxhdGlvbkRlc2NzW2pd LT5yZF9pbmRleC0+aW5kZXhyZWxpZCkpCisJCQkJCQkJeworCQkJCQkJCQlSZWxhdGlvbiBhcmJp dGVySW5kZXhSZWxhdGlvbiA9IGxlYWZfcGFydF9ycmktPnJpX0luZGV4UmVsYXRpb25EZXNjc1tq XTsKKwkJCQkJCQkJSW5kZXhJbmZvICphcmJpdGVySW5kZXhJbmZvID0gbGVhZl9wYXJ0X3JyaS0+ cmlfSW5kZXhSZWxhdGlvbkluZm9bal07CisKKwkJCQkJCQkJLyogSWYgbm9uLWFuY2VzdG9yIGlu ZGV4IGFyZSBjb21wYXRpYmxlIHRvIGFyYml0ZXIgLSB1c2UgaXQgYXMgYXJiaXRlciB0b28uICov CisJCQkJCQkJCWlmIChJc0luZGV4Q29tcGF0aWJsZUFzQXJiaXRlcihhcmJpdGVySW5kZXhSZWxh dGlvbiwgYXJiaXRlckluZGV4SW5mbywKKwkJCQkJCQkJCQkJCQkJCSAgIG5vbkFuY2VzdG9ySW5k ZXhSZWxhdGlvbiwgbm9uQW5jZXN0b3JJbmRleEluZm8pKQorCQkJCQkJCQl7CisJCQkJCQkJCQlh cmJpdGVySW5kZXhlcyA9IGxhcHBlbmRfb2lkKGFyYml0ZXJJbmRleGVzLAorCQkJCQkJCQkJCQkJ CQkJCSBub25BbmNlc3RvckluZGV4UmVsYXRpb24tPnJkX2luZGV4LT5pbmRleHJlbGlkKTsKKwkJ CQkJCQkJCWFkZGl0aW9uYWxfYXJiaXRlcnMrKzsKKwkJCQkJCQkJfQorCQkJCQkJCX0KKwkJCQkJ CX0KKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWxpc3RfZnJlZShub25BbmNlc3RvcklkeHMpOwor CisJCQkvKgorCQkJICogSWYgdGhlIHJlc3VsdGluZyBsaXN0cyBhcmUgb2YgaW5lcXVhbCBsZW5n dGgsIHNvbWV0aGluZyBpcyB3cm9uZy4KKwkJCSAqIChUaGlzIHNob3VsZG4ndCBoYXBwZW4sIHNp bmNlIGFyYml0ZXIgaW5kZXggc2VsZWN0aW9uIHNob3VsZCBub3QKKwkJCSAqIHBpY2sgdXAgYSBu b24tcmVhZHkgaW5kZXguKQorCQkJICoKKwkJCSAqIEJ1dCB3ZSBuZWVkIHRvIGNvbnNpZGVyIGFu IGFkZGl0aW9uYWwgYXJiaXRlciBpbmRleGVzIGFsc28uCisJCQkgKi8KKwkJCWlmIChsaXN0X2xl bmd0aChyb290UmVzdWx0UmVsSW5mby0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzKSAhPQor CQkJCWxpc3RfbGVuZ3RoKGFyYml0ZXJJbmRleGVzKSAtIGFkZGl0aW9uYWxfYXJiaXRlcnMpCisJ CQkJZWxvZyhFUlJPUiwgImludmFsaWQgYXJiaXRlciBpbmRleCBsaXN0Iik7CiAJCX0KLQotCQkv KgotCQkgKiBJZiB0aGUgcmVzdWx0aW5nIGxpc3RzIGFyZSBvZiBpbmVxdWFsIGxlbmd0aCwgc29t ZXRoaW5nIGlzIHdyb25nLgotCQkgKiAoVGhpcyBzaG91bGRuJ3QgaGFwcGVuLCBzaW5jZSBhcmJp dGVyIGluZGV4IHNlbGVjdGlvbiBzaG91bGQgbm90Ci0JCSAqIHBpY2sgdXAgYW4gaW52YWxpZCBp bmRleC4pCi0JCSAqLwotCQlpZiAobGlzdF9sZW5ndGgocm9vdFJlc3VsdFJlbEluZm8tPnJpX29u Q29uZmxpY3RBcmJpdGVySW5kZXhlcykgIT0KLQkJCWxpc3RfbGVuZ3RoKGFyYml0ZXJJbmRleGVz KSkKLQkJCWVsb2coRVJST1IsICJpbnZhbGlkIGFyYml0ZXIgaW5kZXggbGlzdCIpOwogCQlsZWFm X3BhcnRfcnJpLT5yaV9vbkNvbmZsaWN0QXJiaXRlckluZGV4ZXMgPSBhcmJpdGVySW5kZXhlczsK IAogCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxl LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCAxMTYxNTIw Zjc2Yi4uMjNjZjRjNmI1NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVN b2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5j CkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKICNpbmNsdWRlICJ1 dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMv aW5qZWN0aW9uX3BvaW50LmgiCiAKIAogdHlwZWRlZiBzdHJ1Y3QgTVRUYXJnZXRSZWxMb29rdXAK QEAgLTEwODcsNiArMTA4OCw3IEBAIEV4ZWNJbnNlcnQoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250 ZXh0LAogCQkJCQlyZXR1cm4gTlVMTDsKIAkJCQl9CiAJCQl9CisJCQlJTkpFQ1RJT05fUE9JTlQo ImV4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUiKTsKIAogCQkJLyoKIAkJCSAq IEJlZm9yZSB3ZSBzdGFydCBpbnNlcnRpb24gcHJvcGVyLCBhY3F1aXJlIG91ciAic3BlY3VsYXRp dmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYwppbmRleCAzN2IwY2EyZTQzOS4uNWZm ZWY0NTk1ZTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQu YworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMKQEAgLTcxMywxMiAr NzEzLDE0IEBAIGluZmVyX2FyYml0ZXJfaW5kZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAlMaXN0 CSAgICppbmRleExpc3Q7CiAJTGlzdENlbGwgICAqbDsKIAotCS8qIE5vcm1hbGl6ZWQgaW5mZXJl bmNlIGF0dHJpYnV0ZXMgYW5kIGluZmVyZW5jZSBleHByZXNzaW9uczogKi8KLQlCaXRtYXBzZXQg ICppbmZlckF0dHJzID0gTlVMTDsKLQlMaXN0CSAgICppbmZlckVsZW1zID0gTklMOworCS8qIE5v cm1hbGl6ZWQgcmVxdWlyZWQgYXR0cmlidXRlcyBhbmQgZXhwcmVzc2lvbnM6ICovCisJQml0bWFw c2V0ICAqcmVxdWlyZWRBcmJpdGVyQXR0cnMgPSBOVUxMOworCUxpc3QJICAgKnJlcXVpcmVkQXJi aXRlckVsZW1zID0gTklMOworCUxpc3QJICAgKnJlcXVpcmVkSW5kZXhQcmVkRXhwcnMgPSAoTGlz dCAqKSBvbmNvbmZsaWN0LT5hcmJpdGVyV2hlcmU7CiAKIAkvKiBSZXN1bHRzICovCiAJTGlzdAkg ICAqcmVzdWx0cyA9IE5JTDsKKwlib29sCSAgIGZvdW5kVmFsaWQgPSBmYWxzZTsKIAogCS8qCiAJ ICogUXVpY2tseSByZXR1cm4gTklMIGZvciBPTiBDT05GTElDVCBETyBOT1RISU5HIHdpdGhvdXQg YW4gaW5mZXJlbmNlCkBAIC03NTMsOCArNzU1LDggQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBs YW5uZXJJbmZvICpyb290KQogCiAJCWlmICghSXNBKGVsZW0tPmV4cHIsIFZhcikpCiAJCXsKLQkJ CS8qIElmIG5vdCBhIHBsYWluIFZhciwganVzdCBzaG92ZSBpdCBpbiBpbmZlckVsZW1zIGZvciBu b3cgKi8KLQkJCWluZmVyRWxlbXMgPSBsYXBwZW5kKGluZmVyRWxlbXMsIGVsZW0tPmV4cHIpOwor CQkJLyogSWYgbm90IGEgcGxhaW4gVmFyLCBqdXN0IHNob3ZlIGl0IGluIHJlcXVpcmVkQXJiaXRl ckVsZW1zIGZvciBub3cgKi8KKwkJCXJlcXVpcmVkQXJiaXRlckVsZW1zID0gbGFwcGVuZChyZXF1 aXJlZEFyYml0ZXJFbGVtcywgZWxlbS0+ZXhwcik7CiAJCQljb250aW51ZTsKIAkJfQogCkBAIC03 NjYsMzAgKzc2OCw3NiBAQCBpbmZlcl9hcmJpdGVyX2luZGV4ZXMoUGxhbm5lckluZm8gKnJvb3Qp CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJIGVy cm1zZygid2hvbGUgcm93IHVuaXF1ZSBpbmRleCBpbmZlcmVuY2Ugc3BlY2lmaWNhdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQiKSkpOwogCi0JCWluZmVyQXR0cnMgPSBibXNfYWRkX21lbWJlcihpbmZl ckF0dHJzLAorCQlyZXF1aXJlZEFyYml0ZXJBdHRycyA9IGJtc19hZGRfbWVtYmVyKHJlcXVpcmVk QXJiaXRlckF0dHJzLAogCQkJCQkJCQkJYXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmli dXRlTnVtYmVyKTsKIAl9CiAKKwlpbmRleExpc3QgPSBSZWxhdGlvbkdldEluZGV4TGlzdChyZWxh dGlvbik7CisKIAkvKgogCSAqIExvb2t1cCBuYW1lZCBjb25zdHJhaW50J3MgaW5kZXguICBUaGlz IGlzIG5vdCBpbW1lZGlhdGVseSByZXR1cm5lZAotCSAqIGJlY2F1c2Ugc29tZSBhZGRpdGlvbmFs IHNhbml0eSBjaGVja3MgYXJlIHJlcXVpcmVkLgorCSAqIGJlY2F1c2Ugc29tZSBhZGRpdGlvbmFs IHNhbml0eSBjaGVja3MgYXJlIHJlcXVpcmVkLiBBZGRpdGlvbmFsbHksIHdlCisJICogbmVlZCB0 byBwcm9jZXNzIG90aGVyIGluZGV4ZXMgYXMgcG90ZW50aWFsIGFyYml0ZXJzIHRvIGFjY291bnQg Zm9yCisJICogY2FzZXMgd2hlcmUgUkVJTkRFWCBDT05DVVJSRU5UTFkgaXMgcHJvY2Vzc2luZyBh biBpbmRleCB1c2VkIGFzIGEKKwkgKiBuYW1lZCBjb25zdHJhaW50LgogCSAqLwogCWlmIChvbmNv bmZsaWN0LT5jb25zdHJhaW50ICE9IEludmFsaWRPaWQpCiAJewogCQlpbmRleE9pZEZyb21Db25z dHJhaW50ID0gZ2V0X2NvbnN0cmFpbnRfaW5kZXgob25jb25mbGljdC0+Y29uc3RyYWludCk7CiAK IAkJaWYgKGluZGV4T2lkRnJvbUNvbnN0cmFpbnQgPT0gSW52YWxpZE9pZCkKKwkJewogCQkJZXJl cG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0J CQkJCSBlcnJtc2coImNvbnN0cmFpbnQgaW4gT04gQ09ORkxJQ1QgY2xhdXNlIGhhcyBubyBhc3Nv Y2lhdGVkIGluZGV4IikpKTsKKwkJCQkJZXJybXNnKCJjb25zdHJhaW50IGluIE9OIENPTkZMSUNU IGNsYXVzZSBoYXMgbm8gYXNzb2NpYXRlZCBpbmRleCIpKSk7CisJCX0KKworCQkvKgorCQkgKiBG aW5kIHRoZSBuYW1lZCBjb25zdHJhaW50IGluZGV4IHRvIGV4dHJhY3QgaXRzIGF0dHJpYnV0ZXMg YW5kIHByZWRpY2F0ZXMuCisJCSAqIFdlIG9wZW4gYWxsIGluZGV4ZXMgaW4gdGhlIGxvb3AgdG8g YXZvaWQgZGVhZGxvY2sgb2YgY2hhbmdlZCBvcmRlciBvZiBsb2Nrcy4KKwkJICogKi8KKwkJZm9y ZWFjaChsLCBpbmRleExpc3QpCisJCXsKKwkJCU9pZAkJCWluZGV4b2lkID0gbGZpcnN0X29pZChs KTsKKwkJCVJlbGF0aW9uCWlkeFJlbDsKKwkJCUZvcm1fcGdfaW5kZXggaWR4Rm9ybTsKKwkJCUF0 dHJOdW1iZXIJbmF0dDsKKworCQkJaWR4UmVsID0gaW5kZXhfb3BlbihpbmRleG9pZCwgcnRlLT5y ZWxsb2NrbW9kZSk7CisJCQlpZHhGb3JtID0gaWR4UmVsLT5yZF9pbmRleDsKKworCQkJaWYgKGlk eEZvcm0tPmluZGlzcmVhZHkpCisJCQl7CisJCQkJaWYgKGluZGV4T2lkRnJvbUNvbnN0cmFpbnQg PT0gaWR4Rm9ybS0+aW5kZXhyZWxpZCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIFByZXBhcmUg cmVxdWlyZW1lbnRzIGZvciBvdGhlciBpbmRleGVzIHRvIGJlIHVzZWQgYXMgYXJiaXRlciB0b2dl dGhlcgorCQkJCQkgKiB3aXRoIGluZGV4T2lkRnJvbUNvbnN0cmFpbnQuIEl0IGlzIHJlcXVpcmVk IHRvIGludm9sdmUgYm90aCBlcXVhbHMgaW5kZXhlcworCQkJCQkgKiBpbiBjYXNlIG9mIFJFSU5E RVggQ09OQ1VSUkVOVExZLgorCQkJCQkgKi8KKwkJCQkJZm9yIChuYXR0ID0gMDsgbmF0dCA8IGlk eEZvcm0tPmluZG5rZXlhdHRzOyBuYXR0KyspCisJCQkJCXsKKwkJCQkJCWludAkJCWF0dG5vID0g aWR4UmVsLT5yZF9pbmRleC0+aW5ka2V5LnZhbHVlc1tuYXR0XTsKKworCQkJCQkJaWYgKGF0dG5v ICE9IDApCisJCQkJCQkJcmVxdWlyZWRBcmJpdGVyQXR0cnMgPSBibXNfYWRkX21lbWJlcihyZXF1 aXJlZEFyYml0ZXJBdHRycywKKwkJCQkJCQkJCQkJCQkJICBhdHRubyAtIEZpcnN0TG93SW52YWxp ZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCQkJCQl9CisJCQkJCXJlcXVpcmVkQXJiaXRlckVsZW1z ID0gUmVsYXRpb25HZXRJbmRleEV4cHJlc3Npb25zKGlkeFJlbCk7CisJCQkJCXJlcXVpcmVkSW5k ZXhQcmVkRXhwcnMgPSBSZWxhdGlvbkdldEluZGV4UHJlZGljYXRlKGlkeFJlbCk7CisJCQkJCS8q IFdlIGFyZSBkb25lLCBzbywgcXVpdGUgdGhlIGxvb3AuICovCisJCQkJCWluZGV4X2Nsb3NlKGlk eFJlbCwgTm9Mb2NrKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJaW5kZXhfY2xvc2Uo aWR4UmVsLCBOb0xvY2spOworCQl9CiAJfQogCiAJLyoKIAkgKiBVc2luZyB0aGF0IHJlcHJlc2Vu dGF0aW9uLCBpdGVyYXRlIHRocm91Z2ggdGhlIGxpc3Qgb2YgaW5kZXhlcyBvbiB0aGUKIAkgKiB0 YXJnZXQgcmVsYXRpb24gdG8gdHJ5IGFuZCBmaW5kIGEgbWF0Y2gKIAkgKi8KLQlpbmRleExpc3Qg PSBSZWxhdGlvbkdldEluZGV4TGlzdChyZWxhdGlvbik7Ci0KIAlmb3JlYWNoKGwsIGluZGV4TGlz dCkKIAl7CiAJCU9pZAkJCWluZGV4b2lkID0gbGZpcnN0X29pZChsKTsKQEAgLTgxMiw3ICs4NjAs MTMgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBsYW5uZXJJbmZvICpyb290KQogCQlpZHhSZWwg PSBpbmRleF9vcGVuKGluZGV4b2lkLCBydGUtPnJlbGxvY2ttb2RlKTsKIAkJaWR4Rm9ybSA9IGlk eFJlbC0+cmRfaW5kZXg7CiAKLQkJaWYgKCFpZHhGb3JtLT5pbmRpc3ZhbGlkKQorCQkvKgorCQkg KiBXZSBuZWVkIHRvIGNvbnNpZGVyIGJvdGggaW5kaXN2YWxpZCBhbmQgaW5kaXNyZWFkeSBpbmRl eGVzIGJlY2F1c2UKKwkJICogdGhlbSBtYXkgYmVjb21lIGluZGlzdmFsaWQgYmVmb3JlIGV4ZWN1 dGlvbiBwaGFzZS4gSXQgaXMgcmVxdWlyZWQKKwkJICogdG8ga2VlcCBzZXQgb2YgaW5kZXhlcyB1 c2VkIGFzIGFyYml0ZXIgdG8gYmUgdGhlIHNhbWUgZm9yIGFsbAorCQkgKiBjb25jdXJyZW50IHRy YW5zYWN0aW9ucy4KKwkJICovCisJCWlmICghaWR4Rm9ybS0+aW5kaXNyZWFkeSkKIAkJCWdvdG8g bmV4dDsKIAogCQkvKgpAQCAtODMyLDI3ICs4ODYsMjMgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVz KFBsYW5uZXJJbmZvICpyb290KQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKIAkJCQkJCSBlcnJtc2coIk9OIENPTkZMSUNUIERP IFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzIikpKTsKLQot CQkJcmVzdWx0cyA9IGxhcHBlbmRfb2lkKHJlc3VsdHMsIGlkeEZvcm0tPmluZGV4cmVsaWQpOwot CQkJbGlzdF9mcmVlKGluZGV4TGlzdCk7Ci0JCQlpbmRleF9jbG9zZShpZHhSZWwsIE5vTG9jayk7 Ci0JCQl0YWJsZV9jbG9zZShyZWxhdGlvbiwgTm9Mb2NrKTsKLQkJCXJldHVybiByZXN1bHRzOwor CQkJZ290byBmb3VuZDsKIAkJfQogCQllbHNlIGlmIChpbmRleE9pZEZyb21Db25zdHJhaW50ICE9 IEludmFsaWRPaWQpCiAJCXsKLQkJCS8qIE5vIHBvaW50IGluIGZ1cnRoZXIgd29yayBmb3IgaW5k ZXggaW4gbmFtZWQgY29uc3RyYWludCBjYXNlICovCi0JCQlnb3RvIG5leHQ7CisJCQkvKiBJbiB0 aGUgY2FzZSBvZiAiT04gY29uc3RyYWludF9uYW1lIERPIFVQREFURSIgd2UgbmVlZCB0byBza2lw IG5vbi11bmlxdWUgY2FuZGlkYXRlcy4gKi8KKwkJCWlmICghaWR4Rm9ybS0+aW5kaXN1bmlxdWUg JiYgb25jb25mbGljdC0+YWN0aW9uID09IE9OQ09ORkxJQ1RfVVBEQVRFKQorCQkJCWdvdG8gbmV4 dDsKKwkJfSAgZWxzZSB7CisJCQkvKgorCQkJICogT25seSBjb25zaWRlcmluZyBjb252ZW50aW9u YWwgaW5mZXJlbmNlIGF0IHRoaXMgcG9pbnQgKG5vdCBuYW1lZAorCQkJICogY29uc3RyYWludHMp LCBzbyBpbmRleCB1bmRlciBjb25zaWRlcmF0aW9uIGNhbiBiZSBpbW1lZGlhdGVseQorCQkJICog c2tpcHBlZCBpZiBpdCdzIG5vdCB1bmlxdWUKKwkJCSAqLworCQkJaWYgKCFpZHhGb3JtLT5pbmRp c3VuaXF1ZSkKKwkJCQlnb3RvIG5leHQ7CiAJCX0KIAotCQkvKgotCQkgKiBPbmx5IGNvbnNpZGVy aW5nIGNvbnZlbnRpb25hbCBpbmZlcmVuY2UgYXQgdGhpcyBwb2ludCAobm90IG5hbWVkCi0JCSAq IGNvbnN0cmFpbnRzKSwgc28gaW5kZXggdW5kZXIgY29uc2lkZXJhdGlvbiBjYW4gYmUgaW1tZWRp YXRlbHkKLQkJICogc2tpcHBlZCBpZiBpdCdzIG5vdCB1bmlxdWUKLQkJICovCi0JCWlmICghaWR4 Rm9ybS0+aW5kaXN1bmlxdWUpCi0JCQlnb3RvIG5leHQ7Ci0KIAkJLyoKIAkJICogU28tY2FsbGVk IHVuaXF1ZSBjb25zdHJhaW50cyB3aXRoIFdJVEhPVVQgT1ZFUkxBUFMgYXJlIHJlYWxseQogCQkg KiBleGNsdXNpb24gY29uc3RyYWludHMsIHNvIHNraXAgdGhvc2UgdG9vLgpAQCAtODcyLDcgKzky Miw3IEBAIGluZmVyX2FyYml0ZXJfaW5kZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAkJfQogCiAJ CS8qIE5vbi1leHByZXNzaW9uIGF0dHJpYnV0ZXMgKGlmIGFueSkgbXVzdCBtYXRjaCAqLwotCQlp ZiAoIWJtc19lcXVhbChpbmRleGVkQXR0cnMsIGluZmVyQXR0cnMpKQorCQlpZiAoIWJtc19lcXVh bChpbmRleGVkQXR0cnMsIHJlcXVpcmVkQXJiaXRlckF0dHJzKSkKIAkJCWdvdG8gbmV4dDsKIAog CQkvKiBFeHByZXNzaW9uIGF0dHJpYnV0ZXMgKGlmIGFueSkgbXVzdCBtYXRjaCAqLwpAQCAtODgw LDYgKzkzMCwxMCBAQCBpbmZlcl9hcmJpdGVyX2luZGV4ZXMoUGxhbm5lckluZm8gKnJvb3QpCiAJ CWlmIChpZHhFeHBycyAmJiB2YXJubyAhPSAxKQogCQkJQ2hhbmdlVmFyTm9kZXMoKE5vZGUgKikg aWR4RXhwcnMsIDEsIHZhcm5vLCAwKTsKIAorCQkvKgorCQkgKiBJZiBhcmJpdGVyRWxlbXMgYXJl IHByZXNlbnQsIGNoZWNrIHRoZW0uIElmIG5hbWUgPmNvbnN0cmFpbnQgaXMKKwkJICogcHJlc2Vu dCBhcmJpdGVyRWxlbXMgPT0gTklMLgorCQkgKi8KIAkJZm9yZWFjaChlbCwgb25jb25mbGljdC0+ YXJiaXRlckVsZW1zKQogCQl7CiAJCQlJbmZlcmVuY2VFbGVtICplbGVtID0gKEluZmVyZW5jZUVs ZW0gKikgbGZpcnN0KGVsKTsKQEAgLTkxNywyNyArOTcxLDM1IEBAIGluZmVyX2FyYml0ZXJfaW5k ZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAkJfQogCiAJCS8qCi0JCSAqIE5vdyB0aGF0IGFsbCBp bmZlcmVuY2UgZWxlbWVudHMgd2VyZSBtYXRjaGVkLCBlbnN1cmUgdGhhdCB0aGUKKwkJICogSW4g Y2FzZSBvZiB0aGUgY29udmVudGlvbmFsIGluZmVyZW5jZSBpbnZvbHZlZCBlbnN1cmUgdGhhdCB0 aGUKIAkJICogZXhwcmVzc2lvbiBlbGVtZW50cyBmcm9tIGluZmVyZW5jZSBjbGF1c2UgYXJlIG5v dCBtaXNzaW5nIGFueQogCQkgKiBjYXRhbG9nZWQgZXhwcmVzc2lvbnMuICBUaGlzIGRvZXMgdGhl IHJpZ2h0IHRoaW5nIHdoZW4gdW5pcXVlCiAJCSAqIGluZGV4ZXMgcmVkdW5kYW50bHkgcmVwZWF0 IHRoZSBzYW1lIGF0dHJpYnV0ZSwgb3IgaWYgYXR0cmlidXRlcwogCQkgKiByZWR1bmRhbnRseSBh cHBlYXIgbXVsdGlwbGUgdGltZXMgd2l0aGluIGFuIGluZmVyZW5jZSBjbGF1c2UuCisJCSAqCisJ CSAqIEluIHRoZSBjYXNlIG9mIG5hbWVkIGNvbnN0cmFpbnQgZW5zdXJlIGNhbmRpZGF0ZSBoYXMg ZXF1YWwgc2V0CisJCSAqIG9mIGV4cHJlc3Npb25zIGFzIHRoZSBuYW1lZCBjb25zdHJhaW50IGlu ZGV4LgogCQkgKi8KLQkJaWYgKGxpc3RfZGlmZmVyZW5jZShpZHhFeHBycywgaW5mZXJFbGVtcykg IT0gTklMKQorCQlpZiAobGlzdF9kaWZmZXJlbmNlKGlkeEV4cHJzLCByZXF1aXJlZEFyYml0ZXJF bGVtcykgIT0gTklMKQogCQkJZ290byBuZXh0OwogCi0JCS8qCi0JCSAqIElmIGl0J3MgYSBwYXJ0 aWFsIGluZGV4LCBpdHMgcHJlZGljYXRlIG11c3QgYmUgaW1wbGllZCBieSB0aGUgT04KLQkJICog Q09ORkxJQ1QncyBXSEVSRSBjbGF1c2UuCi0JCSAqLwogCQlwcmVkRXhwcnMgPSBSZWxhdGlvbkdl dEluZGV4UHJlZGljYXRlKGlkeFJlbCk7CiAJCWlmIChwcmVkRXhwcnMgJiYgdmFybm8gIT0gMSkK IAkJCUNoYW5nZVZhck5vZGVzKChOb2RlICopIHByZWRFeHBycywgMSwgdmFybm8sIDApOwogCi0J CWlmICghcHJlZGljYXRlX2ltcGxpZWRfYnkocHJlZEV4cHJzLCAoTGlzdCAqKSBvbmNvbmZsaWN0 LT5hcmJpdGVyV2hlcmUsIGZhbHNlKSkKKwkJLyoKKwkJICogSWYgaXQncyBhIHBhcnRpYWwgaW5k ZXggYW5kIGNvbnZlbnRpb25hbCBpbmZlcmVuY2UsIGl0cyBwcmVkaWNhdGUgbXVzdCBiZSBpbXBs aWVkCisJCSAqIGJ5IHRoZSBPTiBDT05GTElDVCdzIFdIRVJFIGNsYXVzZS4KKwkJICovCisJCWlm IChpbmRleE9pZEZyb21Db25zdHJhaW50ID09IEludmFsaWRPaWQgJiYgIXByZWRpY2F0ZV9pbXBs aWVkX2J5KHByZWRFeHBycywgcmVxdWlyZWRJbmRleFByZWRFeHBycywgZmFsc2UpKQorCQkJZ290 byBuZXh0OworCQkvKiBJZiBpdCdzIGEgcGFydGlhbCBpbmRleCBhbmQgbmFtZWQgY29uc3RyYWlu dCBwcmVkaWNhdGVzIG11c3QgYmUgZXF1YWwuICovCisJCWlmIChpbmRleE9pZEZyb21Db25zdHJh aW50ICE9IEludmFsaWRPaWQgJiYgbGlzdF9kaWZmZXJlbmNlKHByZWRFeHBycywgcmVxdWlyZWRJ bmRleFByZWRFeHBycykgIT0gTklMKQogCQkJZ290byBuZXh0OwogCitmb3VuZDoKIAkJcmVzdWx0 cyA9IGxhcHBlbmRfb2lkKHJlc3VsdHMsIGlkeEZvcm0tPmluZGV4cmVsaWQpOworCQlmb3VuZFZh bGlkIHw9IGlkeEZvcm0tPmluZGlzdmFsaWQ7CiBuZXh0OgogCQlpbmRleF9jbG9zZShpZHhSZWws IE5vTG9jayk7CiAJfQpAQCAtOTQ1LDcgKzEwMDcsOCBAQCBuZXh0OgogCWxpc3RfZnJlZShpbmRl eExpc3QpOwogCXRhYmxlX2Nsb3NlKHJlbGF0aW9uLCBOb0xvY2spOwogCi0JaWYgKHJlc3VsdHMg PT0gTklMKQorCS8qIEl0IGlzIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGluZGlzdmFs aWQgaW5kZXggZHVyaW5nIHRoZSBwbGFubmluZy4gKi8KKwlpZiAocmVzdWx0cyA9PSBOSUwgfHwg IWZvdW5kVmFsaWQpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX0NPTFVNTl9SRUZFUkVOQ0UpLAogCQkJCSBlcnJtc2coInRoZXJlIGlzIG5vIHVuaXF1ZSBv ciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNh dGlvbiIpKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy90aW1lL3NuYXBtZ3IuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jCmluZGV4IDdkMmIzNGQ0ZjIwLi4zYTcz NTdhMDUwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9zbmFwbWdyLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9zbmFwbWdyLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNp bmNsdWRlICJ1dGlscy9yZXNvd25lci5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNp bmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2lu dC5oIgogCiAKIC8qCkBAIC00MjYsNiArNDI3LDcgQEAgSW52YWxpZGF0ZUNhdGFsb2dTbmFwc2hv dCh2b2lkKQogCQlwYWlyaW5naGVhcF9yZW1vdmUoJlJlZ2lzdGVyZWRTbmFwc2hvdHMsICZDYXRh bG9nU25hcHNob3QtPnBoX25vZGUpOwogCQlDYXRhbG9nU25hcHNob3QgPSBOVUxMOwogCQlTbmFw c2hvdFJlc2V0WG1pbigpOworCQlJTkpFQ1RJT05fUE9JTlQoImludmFsaWRhdGVfY2F0YWxvZ19z bmFwc2hvdF9lbmQiKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5q ZWN0aW9uX3BvaW50cy9NYWtlZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9NYWtlZmlsZQppbmRleCAwNzUzYTlkZjU4Yy4uZjhmODZlOGYzYjYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9t b2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZpbGUKQEAgLTEzLDcgKzEzLDEyIEBAIFBHRklM RURFU0MgPSAiaW5qZWN0aW9uX3BvaW50cyAtIGZhY2lsaXR5IGZvciBpbmplY3Rpb24gcG9pbnRz IgogUkVHUkVTUyA9IGluamVjdGlvbl9wb2ludHMgcmVpbmRleF9jb25jCiBSRUdSRVNTX09QVFMg PSAtLWRscGF0aD0kKHRvcF9idWlsZGRpcikvc3JjL3Rlc3QvcmVncmVzcwogCi1JU09MQVRJT04g PSBiYXNpYyBpbnBsYWNlCitJU09MQVRJT04gPSBiYXNpYyBpbnBsYWNlIFwKKwkJCXJlaW5kZXhf Y29uY3VycmVudGx5X3Vwc2VydCBcCisJCQlpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0IFwKKwkJ CXJlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZCBcCisJCQlyZWluZGV4X2Nv bmN1cnJlbnRseV91cHNlcnRfb25fY29uc3RyYWludCBcCisJCQlpbmRleF9jb25jdXJyZW50bHlf dXBzZXJ0X3ByZWRpY2F0ZQogCiBUQVBfVEVTVFMgPSAxCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9pbmRl eF9jb25jdXJyZW50bHlfdXBzZXJ0Lm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uN2YwNjU5ZTgzNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVz L2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5vdXQK QEAgLTAsMCArMSw4MCBAQAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3Rh cnRpbmcgcGVybXV0YXRpb246IHMzX3N0YXJ0X2NyZWF0ZV9pbmRleCBzMV9zdGFydF91cHNlcnQg czRfd2FrZXVwX2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkIHMyX3N0YXJ0X3Vwc2VydCBz NF93YWtldXBfczFfZnJvbV9pbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3QgczRfd2FrZXVwX3My IHM0X3dha2V1cF9zMQoraW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9p bnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFy dF9jcmVhdGVfaW5kZXg6IENSRUFURSBVTklRVUUgSU5ERVggQ09OQ1VSUkVOVExZIHRibF9wa2V5 X2R1cGxpY2F0ZSBPTiB0ZXN0LnRibChpKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMV9zdGFydF91 cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3Qo aSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAg czRfd2FrZXVwX2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkOiAKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkJyk7CisJU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdkZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxp ZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2Fr ZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygx IHJvdykKKworc3RlcCBzM19zdGFydF9jcmVhdGVfaW5kZXg6IDwuLi4gY29tcGxldGVkPgorc3Rl cCBzMl9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkg b24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5n IC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxX2Zyb21faW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90 OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2ludmFsaWRhdGVfY2F0YWxvZ19z bmFwc2hvdF9lbmQnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2ludmFsaWRh dGVfY2F0YWxvZ19zbmFwc2hvdF9lbmQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQor CitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxF Q1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3Bl Y3VsYXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0 X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93 KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8 Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25m bGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9u X29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNf ZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vw c2VydDogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wcmVkaWNhdGUu b3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2luZGV4X2Nv bmN1cnJlbnRseV91cHNlcnRfcHJlZGljYXRlLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMjMwMGQ1MTY1ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9t b2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5kZXhfY29uY3VycmVudGx5X3Vwc2Vy dF9wcmVkaWNhdGUub3V0CkBAIC0wLDAgKzEsODAgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0 IHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9jcmVhdGVfaW5kZXgg czFfc3RhcnRfdXBzZXJ0IHM0X3dha2V1cF9kZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCBz Ml9zdGFydF91cHNlcnQgczRfd2FrZXVwX3MxX2Zyb21faW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBz aG90IHM0X3dha2V1cF9zMiBzNF93YWtldXBfczEKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK KworaW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK3N0ZXAgczNfc3RhcnRfY3JlYXRlX2luZGV4OiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNV UlJFTlRMWSB0YmxfcGtleV9zcGVjaWFsX2R1cGxpY2F0ZSBPTiB0ZXN0LnRibChhYnMoaSkpIFdI RVJFIGkgPCAxMDAwMDsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMV9zdGFydF91cHNlcnQ6IElOU0VS VCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3QoYWJzKGkpKSB3aGVy ZSBpIDwgMTAwIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+ CitzdGVwIHM0X3dha2V1cF9kZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZDogCisJU0VMRUNU IGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdkZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCcp OworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZGVmaW5lX2luZGV4X2JlZm9yZV9z ZXRfdmFsaWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9p bnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfY3JlYXRlX2luZGV4OiA8Li4uIGNvbXBsZXRl ZD4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMs bm93KCkpICBvbiBjb25mbGljdChhYnMoaSkpIHdoZXJlIGkgPCAxMDAgZG8gdXBkYXRlIHNldCB1 cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxX2Zyb21f aW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19k ZXRhY2goJ2ludmFsaWRhdGVfY2F0YWxvZ19zbmFwc2hvdF9lbmQnKTsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c193YWtldXAoJ2ludmFsaWRhdGVfY2F0YWxvZ19zbmFwc2hvdF9lbmQnKTsKKwor aW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg ICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4 ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9u X3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsK KworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVw X3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9v cl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZs aWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193 YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAor KDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvcmVpbmRleF9j b25jdXJyZW50bHlfdXBzZXJ0Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9leHBlY3RlZC9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQub3V0Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNGJiYmNiZGQ4OAotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9yZWluZGV4X2NvbmN1 cnJlbnRseV91cHNlcnQub3V0CkBAIC0wLDAgKzEsMjM4IEBACitQYXJzZWQgdGVzdCBzcGVjIHdp dGggNCBzZXNzaW9ucworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczNfc3RhcnRfcmVpbmRleCBz MV9zdGFydF91cHNlcnQgczRfd2FrZXVwX3RvX3N3YXAgczJfc3RhcnRfdXBzZXJ0IHM0X3dha2V1 cF9zMSBzNF93YWtldXBfczIgczRfd2FrZXVwX3RvX3NldF9kZWFkCitpbmplY3Rpb25fcG9pbnRz X2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAg CisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50 c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAg IAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IFJFSU5ERVggSU5ERVggQ09OQ1VS UkVOVExZIHRlc3QudGJsX3BrZXk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFfc3RhcnRfdXBzZXJ0 OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRv IHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dh a2V1cF90b19zd2FwOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhf cmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcp OworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVw CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJv dykKKworc3RlcCBzMl9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygx Myxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7 IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25m bGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9u X29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNf ZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vw c2VydDogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHM0X3dha2V1cF9zMjogCisJU0VMRUNUIGluamVj dGlvbl9wb2ludHNfZGV0YWNoKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZl Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdleGVjX2luc2VydF9iZWZvcmVf aW5zZXJ0X3NwZWN1bGF0aXZlJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5q ZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMyX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21w bGV0ZWQ+CitzdGVwIHM0X3dha2V1cF90b19zZXRfZGVhZDogCisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfZGV0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2Rl YWQnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFj aAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSBy b3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4 OiA8Li4uIGNvbXBsZXRlZD4KKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMzX3N0YXJ0X3JlaW5k ZXggczJfc3RhcnRfdXBzZXJ0IHM0X3dha2V1cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzNF93 YWtldXBfczEgczRfd2FrZXVwX3MyIHM0X3dha2V1cF90b19zZXRfZGVhZAoraW5qZWN0aW9uX3Bv aW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9w b2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyA8d2FpdGluZyAuLi4+CitzdGVwIHMyX3N0YXJ0X3Vw c2VydDogSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChp KSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBz NF93YWtldXBfdG9fc3dhcDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdyZWlu ZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3 YXAnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dh a2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCiso MSByb3cpCisKK3N0ZXAgczFfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxV RVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5v dygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF9zMTogCisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9f Y29uZmxpY3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NoZWNrX2V4Y2x1 c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCitpbmplY3Rpb25fcG9p bnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMV9zdGFy dF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzNF93YWtldXBfczI6IAorCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxh dGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVm b3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMl9zdGFydF91cHNlcnQ6IDwuLi4g Y29tcGxldGVkPgorc3RlcCBzNF93YWtldXBfdG9fc2V0X2RlYWQ6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3Nl dF9kZWFkJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0 aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19k ZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAor KDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVp bmRleDogPC4uLiBjb21wbGV0ZWQ+CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9y ZWluZGV4IHM0X3dha2V1cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzMl9zdGFydF91cHNlcnQg czRfd2FrZXVwX3MxIHM0X3dha2V1cF90b19zZXRfZGVhZCBzNF93YWtldXBfczIKK2luamVjdGlv bl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rp b25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogUkVJTkRFWCBJTkRF WCBDT05DVVJSRU5UTFkgdGVzdC50YmxfcGtleTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtl dXBfdG9fc3dhcDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdyZWluZGV4X3Jl bGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAnKTsK KworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK3N0ZXAgczFfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMs bm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8 d2FpdGluZyAuLi4+CitzdGVwIHMyX3N0YXJ0X3Vwc2VydDogSU5TRVJUIElOVE8gdGVzdC50Ymwg VkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQg PSBub3coKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfczE6IAorCVNFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50 X25vX2NvbmZsaWN0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19l eGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKworaW5qZWN0aW9u X3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFf c3RhcnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3RvX3NldF9kZWFk OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29u Y3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dh a2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisK K2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQor CitzdGVwIHM0X3dha2V1cF9zMjogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdl eGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZlJyk7CisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfd2FrZXVwKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZlJyk7 CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93 KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMl9zdGFy dF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9j b25zdHJhaW50Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3Rl ZC9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfb25fY29uc3RyYWludC5vdXQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQxY2ZkMTczMWM4Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhf Y29uY3VycmVudGx5X3Vwc2VydF9vbl9jb25zdHJhaW50Lm91dApAQCAtMCwwICsxLDIzOCBAQAor UGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246 IHMzX3N0YXJ0X3JlaW5kZXggczFfc3RhcnRfdXBzZXJ0IHM0X3dha2V1cF90b19zd2FwIHMyX3N0 YXJ0X3Vwc2VydCBzNF93YWtldXBfczEgczRfd2FrZXVwX3MyIHM0X3dha2V1cF90b19zZXRfZGVh ZAoraW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiBS RUlOREVYIElOREVYIENPTkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyA8d2FpdGluZyAuLi4+Citz dGVwIHMxX3N0YXJ0X3Vwc2VydDogSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygp KSBvbiBjb25mbGljdCBvbiBjb25zdHJhaW50IHRibF9wa2V5IGRvIHVwZGF0ZSBzZXQgdXBkYXRl ZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF90b19zd2FwOiAKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVu dGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWlu ZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCitpbmplY3Rpb25fcG9p bnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMl9zdGFy dF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxp Y3Qgb24gY29uc3RyYWludCB0YmxfcGtleSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3co KTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfczE6IAorCVNFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2Nv bmZsaWN0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19leGNsdXNp b25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKworaW5qZWN0aW9uX3BvaW50 c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAg IAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFfc3RhcnRf dXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRp dmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9y ZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitp bmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4uIGNv bXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3RvX3NldF9kZWFkOiAKKwlTRUxFQ1QgaW5qZWN0aW9u X3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRf ZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlv bl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0 YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygx IHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5k ZXg6IDwuLi4gY29tcGxldGVkPgorCitzdGFydGluZyBwZXJtdXRhdGlvbjogczNfc3RhcnRfcmVp bmRleCBzMl9zdGFydF91cHNlcnQgczRfd2FrZXVwX3RvX3N3YXAgczFfc3RhcnRfdXBzZXJ0IHM0 X3dha2V1cF9zMSBzNF93YWtldXBfczIgczRfd2FrZXVwX3RvX3NldF9kZWFkCitpbmplY3Rpb25f cG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg ICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9u X3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IFJFSU5ERVggSU5ERVgg Q09OQ1VSUkVOVExZIHRlc3QudGJsX3BrZXk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJfc3RhcnRf dXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0 IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7 IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRfd2FrZXVwX3RvX3N3YXA6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3 YXAnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK KworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogSU5T RVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdCBvbiBjb25zdHJh aW50IHRibF9wa2V5IGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAu Li4+CitzdGVwIHM0X3dha2V1cF9zMTogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNo KCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVf Y29uc3RyYWludF9ub19jb25mbGljdCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMV9zdGFydF91cHNlcnQ6IDwuLi4g Y29tcGxldGVkPgorc3RlcCBzNF93YWtldXBfczI6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCVNFTEVD VCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVj dWxhdGl2ZScpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2lu dHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAKKygxIHJvdykKKworc3RlcCBzMl9zdGFydF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgorc3Rl cCBzNF93YWtldXBfdG9fc2V0X2RlYWQ6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFj aCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisJU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRs eV9iZWZvcmVfc2V0X2RlYWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmpl Y3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogPC4uLiBjb21w bGV0ZWQ+CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9yZWluZGV4IHM0X3dha2V1 cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzMl9zdGFydF91cHNlcnQgczRfd2FrZXVwX3MxIHM0 X3dha2V1cF90b19zZXRfZGVhZCBzNF93YWtldXBfczIKK2luamVjdGlvbl9wb2ludHNfYXR0YWNo CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJv dykKKworaW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFj aAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSBy b3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkg dGVzdC50YmxfcGtleTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfdG9fc3dhcDogCisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJl bnRseV9iZWZvcmVfc3dhcCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVp bmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAnKTsKKworaW5qZWN0aW9uX3Bv aW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFfc3Rh cnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZs aWN0IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93 KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0 LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkg ZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRf d2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1 c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25v X2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3Bv aW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+Citz dGVwIHM0X3dha2V1cF90b19zZXRfZGVhZDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0 YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVu dGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2lu amVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzNF93YWtldXBfczI6IAorCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxh dGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVm b3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiA8Li4u IGNvbXBsZXRlZD4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9yZWluZGV4 X2NvbmN1cnJlbnRseV91cHNlcnRfcGFydGl0aW9uZWQub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0 aXRpb25lZC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM5NWZm MjY0ZjEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZC5vdXQK QEAgLTAsMCArMSwyMzggQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9yZWluZGV4IHMxX3N0YXJ0X3Vwc2VydCBzNF93 YWtldXBfdG9fc3dhcCBzMl9zdGFydF91cHNlcnQgczRfd2FrZXVwX3MxIHM0X3dha2V1cF9zMiBz NF93YWtldXBfdG9fc2V0X2RlYWQKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0 aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAg czNfc3RhcnRfcmVpbmRleDogUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgdGVzdC50YmxfcGFy dGl0aW9uX3BrZXk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFfc3RhcnRfdXBzZXJ0OiBJTlNFUlQg SU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBz ZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF90b19z d2FwOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2Fr ZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCitpbmpl Y3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3Rl cCBzMl9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkg b24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5n IC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRh Y2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOwor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1 ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK KworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogPC4u LiBjb21wbGV0ZWQ+CitzdGVwIHM0X3dha2V1cF9zMjogCisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfZGV0YWNoKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZlJyk7CisJU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3Nw ZWN1bGF0aXZlJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3Bv aW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitzdGVwIHMyX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+Citz dGVwIHM0X3dha2V1cF90b19zZXRfZGVhZDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0 YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVu dGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2lu amVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiA8Li4uIGNv bXBsZXRlZD4KKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMzX3N0YXJ0X3JlaW5kZXggczJfc3Rh cnRfdXBzZXJ0IHM0X3dha2V1cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzNF93YWtldXBfczEg czRfd2FrZXVwX3MyIHM0X3dha2V1cF90b19zZXRfZGVhZAoraW5qZWN0aW9uX3BvaW50c19hdHRh Y2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEg cm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0 YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygx IHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiBSRUlOREVYIElOREVYIENPTkNVUlJFTlRM WSB0ZXN0LnRibF9wYXJ0aXRpb25fcGtleTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMl9zdGFydF91 cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3Qo aSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAg czRfd2FrZXVwX3RvX3N3YXA6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgncmVp bmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAnKTsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9z d2FwJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193 YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAor KDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogSU5TRVJUIElOVE8gdGVzdC50YmwgVkFM VUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBu b3coKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfczE6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25v X2NvbmZsaWN0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19leGNs dXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKworaW5qZWN0aW9uX3Bv aW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFfc3Rh cnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3Vs YXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2Jl Zm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQor CitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4u IGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3RvX3NldF9kZWFkOiAKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9z ZXRfZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxh dGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisKK2luamVjdGlvbl9wb2ludHNf ZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3Jl aW5kZXg6IDwuLi4gY29tcGxldGVkPgorCitzdGFydGluZyBwZXJtdXRhdGlvbjogczNfc3RhcnRf cmVpbmRleCBzNF93YWtldXBfdG9fc3dhcCBzMV9zdGFydF91cHNlcnQgczJfc3RhcnRfdXBzZXJ0 IHM0X3dha2V1cF9zMSBzNF93YWtldXBfdG9fc2V0X2RlYWQgczRfd2FrZXVwX3MyCitpbmplY3Rp b25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0 aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IFJFSU5ERVggSU5E RVggQ09OQ1VSUkVOVExZIHRlc3QudGJsX3BhcnRpdGlvbl9wa2V5OyA8d2FpdGluZyAuLi4+Citz dGVwIHM0X3dha2V1cF90b19zd2FwOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2go J3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZv cmVfc3dhcCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2lu dHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAKKygxIHJvdykKKworc3RlcCBzMV9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJs IFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0 ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5U TyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQg dXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF9zMTogCisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVl X2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtl dXAoJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOwor CitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK Kworc3RlcCBzMV9zdGFydF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzNF93YWtldXBf dG9fc2V0X2RlYWQ6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgncmVpbmRleF9y ZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0 X2RlYWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRz X3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAg CisoMSByb3cpCisKK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKwlTRUxF Q1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3Bl Y3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9p bnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogPC4uLiBjb21wbGV0ZWQ+Citz dGVwIHMyX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVz L2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQKaW5kZXggNThmMTkwMDExNTcuLjkxZmM4Y2U2 ODdmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24u YnVpbGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxk CkBAIC00NCw3ICs0NCwxNiBAQCB0ZXN0cyArPSB7CiAgICAgJ3NwZWNzJzogWwogICAgICAgJ2Jh c2ljJywKICAgICAgICdpbnBsYWNlJywKKyAgICAgICdyZWluZGV4X2NvbmN1cnJlbnRseV91cHNl cnQnLAorICAgICAgJ2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnQnLAorICAgICAgJ3JlaW5kZXhf Y29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZCcsCisgICAgICAncmVpbmRleF9jb25jdXJy ZW50bHlfdXBzZXJ0X29uX2NvbnN0cmFpbnQnLAorICAgICAgJ2luZGV4X2NvbmN1cnJlbnRseV91 cHNlcnRfcHJlZGljYXRlJywKICAgICBdLAorICAgICMgVGhlIGluamVjdGlvbiBwb2ludHMgYXJl IGNsdXN0ZXItd2lkZSwgc28gZGlzYWJsZSBpbnN0YWxsY2hlY2sKKyAgICAncnVubmluZ2NoZWNr JzogZmFsc2UsCisgICAgIyBXZSB3YWl0aW5nIGZvciBhbGwgc25hcHNob3RzLCBzbywgYXZvaWQg cGFyYWxsZWwgdGVzdCBleGVjdXRpb25zCisgICAgJ3J1bm5pbmdjaGVjay1wYXJhbGxlbCc6IGZh bHNlLAogICB9LAogICAndGFwJzogewogICAgICdlbnYnOiB7CkBAIC01Myw1ICs2Miw3IEBAIHRl c3RzICs9IHsKICAgICAndGVzdHMnOiBbCiAgICAgICAndC8wMDFfc3RhdHMucGwnLAogICAgIF0s CisgICAgIyBUaGUgaW5qZWN0aW9uIHBvaW50cyBhcmUgY2x1c3Rlci13aWRlLCBzbyBkaXNhYmxl IGluc3RhbGxjaGVjaworICAgICdydW5uaW5nY2hlY2snOiBmYWxzZSwKICAgfSwKIH0KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9pbmRleF9jb25j dXJyZW50bHlfdXBzZXJ0LnNwZWMgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv c3BlY3MvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4wNzU0NTA5MzViNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0LnNwZWMKQEAgLTAsMCArMSw2OCBAQAorIyBUZXN0IHJhY2UgY29uZGl0aW9ucyBpbnZvbHZp bmc6CisjIC0gczE6IFVQU0VSVCBhIHR1cGxlCisjIC0gczI6IFVQU0VSVCB0aGUgc2FtZSB0dXBs ZQorIyAtIHMzOiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWQorIyAtIHM0OiBvcGVy YXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50cworCitzZXR1cAoreworCUNSRUFURSBFWFRFTlNJ T04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFVOTE9H R0VEIFRBQkxFIHRlc3QudGJsKGkgaW50IHByaW1hcnkga2V5LCB1cGRhdGVkX2F0IHRpbWVzdGFt cCk7CisJQUxURVIgVEFCTEUgdGVzdC50YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTApOworfQor Cit0ZWFyZG93bgoreworCURST1AgU0NIRU1BIHRlc3QgQ0FTQ0FERTsKKwlEUk9QIEVYVEVOU0lP TiBpbmplY3Rpb25fcG9pbnRzOworfQorCitzZXNzaW9uIHMxCitzZXR1cAl7CisJU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0 YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnLCAn d2FpdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnaW52YWxpZGF0ZV9jYXRh bG9nX3NuYXBzaG90X2VuZCcsICd3YWl0Jyk7Cit9CitzdGVwIHMxX3N0YXJ0X3Vwc2VydAl7IElO U0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBk YXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IH0KKworc2Vzc2lvbiBzMgorc2V0dXAJeworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX2F0dGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScsICd3YWl0 Jyk7Cit9CitzdGVwIHMyX3N0YXJ0X3Vwc2VydAl7IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVF UygxMyxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93 KCk7IH0KKworc2Vzc2lvbiBzMworc2V0dXAJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3Nl dF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnZGVmaW5lX2luZGV4 X2JlZm9yZV9zZXRfdmFsaWQnLCAnd2FpdCcpOworfQorc3RlcCBzM19zdGFydF9jcmVhdGVfaW5k ZXgJCXsgQ1JFQVRFIFVOSVFVRSBJTkRFWCBDT05DVVJSRU5UTFkgdGJsX3BrZXlfZHVwbGljYXRl IE9OIHRlc3QudGJsKGkpOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVwX3MxCQl7CisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVl X2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtl dXAoJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOwor fQorc3RlcCBzNF93YWtldXBfczFfZnJvbV9pbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3QJewor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnaW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBz aG90X2VuZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnaW52YWxpZGF0ZV9j YXRhbG9nX3NuYXBzaG90X2VuZCcpOworfQorc3RlcCBzNF93YWtldXBfczIJCXsKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3Vs YXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2Jl Zm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKK30KK3N0ZXAgczRfd2FrZXVwX2RlZmluZV9pbmRl eF9iZWZvcmVfc2V0X3ZhbGlkCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2Rl ZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNf d2FrZXVwKCdkZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCcpOworfQorCitwZXJtdXRhdGlv bgorCXMzX3N0YXJ0X2NyZWF0ZV9pbmRleAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF9k ZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1 cF9zMV9mcm9tX2ludmFsaWRhdGVfY2F0YWxvZ19zbmFwc2hvdAorCXM0X3dha2V1cF9zMgorCXM0 X3dha2V1cF9zMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0X3ByZWRpY2F0ZS5zcGVjIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3Nw ZWNzL2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfcHJlZGljYXRlLnNwZWMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcwYTI3NDc1ZTEwCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2luZGV4X2NvbmN1cnJl bnRseV91cHNlcnRfcHJlZGljYXRlLnNwZWMKQEAgLTAsMCArMSw3MCBAQAorIyBUZXN0IHJhY2Ug Y29uZGl0aW9ucyBpbnZvbHZpbmc6CisjIC0gczE6IFVQU0VSVCBhIHR1cGxlCisjIC0gczI6IFVQ U0VSVCB0aGUgc2FtZSB0dXBsZQorIyAtIHMzOiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJF TlRMWQorIyAtIHM0OiBvcGVyYXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50cworCitzZXR1cAor eworCUNSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRl c3Q7CisJQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIHRlc3QudGJsKGkgaW50LCB1cGRhdGVkX2F0IHRp bWVzdGFtcCk7CisKKwlDUkVBVEUgVU5JUVVFIElOREVYIHRibF9wa2V5X3NwZWNpYWwgT04gdGVz dC50YmwoYWJzKGkpKSBXSEVSRSBpIDwgMTAwMDsKKwlBTFRFUiBUQUJMRSB0ZXN0LnRibCBTRVQg KHBhcmFsbGVsX3dvcmtlcnM9MCk7Cit9CisKK3RlYXJkb3duCit7CisJRFJPUCBTQ0hFTUEgdGVz dCBDQVNDQURFOworCURST1AgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7Cit9CisKK3Nlc3Np b24gczEKK3NldHVwCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVf Y29uc3RyYWludF9ub19jb25mbGljdCcsICd3YWl0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfYXR0YWNoKCdpbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3RfZW5kJywgJ3dhaXQnKTsKK30K K3N0ZXAgczFfc3RhcnRfdXBzZXJ0CXsgSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5v dygpKSBvbiBjb25mbGljdChhYnMoaSkpIHdoZXJlIGkgPCAxMDAgZG8gdXBkYXRlIHNldCB1cGRh dGVkX2F0ID0gbm93KCk7IH0KKworc2Vzc2lvbiBzMgorc2V0dXAJeworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3NldF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgn ZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScsICd3YWl0Jyk7Cit9CitzdGVw IHMyX3N0YXJ0X3Vwc2VydAl7IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkg IG9uIGNvbmZsaWN0KGFicyhpKSkgd2hlcmUgaSA8IDEwMCBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRf YXQgPSBub3coKTsgfQorCitzZXNzaW9uIHMzCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdkZWZp bmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCcsICd3YWl0Jyk7Cit9CitzdGVwIHMzX3N0YXJ0X2Ny ZWF0ZV9pbmRleAkJeyBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSB0YmxfcGtleV9z cGVjaWFsX2R1cGxpY2F0ZSBPTiB0ZXN0LnRibChhYnMoaSkpIFdIRVJFIGkgPCAxMDAwMDt9CisK K3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVwX3MxCQl7CisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxp Y3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NoZWNrX2V4Y2x1c2lvbl9v cl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworfQorc3RlcCBzNF93YWtldXBfczFf ZnJvbV9pbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3QJeworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX2RldGFjaCgnaW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90X2VuZCcpOworCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX3dha2V1cCgnaW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90X2VuZCcp OworfQorc3RlcCBzNF93YWtldXBfczIJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRh Y2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKwlTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRp dmUnKTsKK30KK3N0ZXAgczRfd2FrZXVwX2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkCXsK KwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2RlZmluZV9pbmRleF9iZWZvcmVfc2V0 X3ZhbGlkJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdkZWZpbmVfaW5kZXhf YmVmb3JlX3NldF92YWxpZCcpOworfQorCitwZXJtdXRhdGlvbgorCXMzX3N0YXJ0X2NyZWF0ZV9p bmRleAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF9kZWZpbmVfaW5kZXhfYmVmb3JlX3Nl dF92YWxpZAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF9zMV9mcm9tX2ludmFsaWRhdGVf Y2F0YWxvZ19zbmFwc2hvdAorCXM0X3dha2V1cF9zMgorCXM0X3dha2V1cF9zMQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9u X3BvaW50cy9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQuc3BlYyBiL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNl cnQuc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzhiODZkODQz NDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv c3BlY3MvcmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0LnNwZWMKQEAgLTAsMCArMSw4NiBAQAor IyBUZXN0IHJhY2UgY29uZGl0aW9ucyBpbnZvbHZpbmc6CisjIC0gczE6IFVQU0VSVCBhIHR1cGxl CisjIC0gczI6IFVQU0VSVCB0aGUgc2FtZSB0dXBsZQorIyAtIHMzOiBSRUlOREVYIGNvbmN1cnJl bnQgcHJpbWFyeSBrZXkgaW5kZXgKKyMgLSBzNDogb3BlcmF0aW9ucyB3aXRoIGluamVjdGlvbiBw b2ludHMKKworc2V0dXAKK3sKKwlDUkVBVEUgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7CisJ Q1JFQVRFIFNDSEVNQSB0ZXN0OworCUNSRUFURSBVTkxPR0dFRCBUQUJMRSB0ZXN0LnRibChpIGlu dCBwcmltYXJ5IGtleSwgdXBkYXRlZF9hdCB0aW1lc3RhbXApOworCUFMVEVSIFRBQkxFIHRlc3Qu dGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz0wKTsKK30KKwordGVhcmRvd24KK3sKKwlEUk9QIFND SEVNQSB0ZXN0IENBU0NBREU7CisJRFJPUCBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKK30K Kworc2Vzc2lvbiBzMQorc2V0dXAJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9sb2Nh bCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnY2hlY2tfZXhjbHVzaW9uX29y X3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0JywgJ3dhaXQnKTsKK30KK3N0ZXAgczFfc3Rh cnRfdXBzZXJ0CXsgSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25m bGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsgfQorCitzZXNzaW9uIHMy CitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNU IGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1 bGF0aXZlJywgJ3dhaXQnKTsKK30KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0CXsgSU5TRVJUIElOVE8g dGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVw ZGF0ZWRfYXQgPSBub3coKTsgfQorCitzZXNzaW9uIHMzCitzZXR1cAl7CisJU0VMRUNUIGluamVj dGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNo KCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnLCAnd2FpdCcp OworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25j dXJyZW50bHlfYmVmb3JlX3N3YXAnLCAnd2FpdCcpOworfQorc3RlcCBzM19zdGFydF9yZWluZGV4 CQkJeyBSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyB9CisKK3Nlc3Np b24gczQKK3N0ZXAgczRfd2FrZXVwX3RvX3N3YXAJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJl bnRseV9iZWZvcmVfc3dhcCcpOworfQorc3RlcCBzNF93YWtldXBfczEJCXsKKwlTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWlu dF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tf ZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7Cit9CitzdGVwIHM0 X3dha2V1cF9zMgkJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNl cnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X3dha2V1cCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworfQorc3Rl cCBzNF93YWtldXBfdG9fc2V0X2RlYWQJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRh Y2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50 bHlfYmVmb3JlX3NldF9kZWFkJyk7Cit9CisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRl eAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF90b19zd2FwCisJczJfc3RhcnRfdXBzZXJ0 CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisK K3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dh a2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVw X3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVp bmRleAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczJfc3RhcnRfdXBz ZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisJczRfd2FrZXVwX3My ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9j b25zdHJhaW50LnNwZWMgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3BlY3Mv cmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X29uX2NvbnN0cmFpbnQuc3BlYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2Q4ZTM3MWJiMGEKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3BlY3MvcmVpbmRleF9jb25j dXJyZW50bHlfdXBzZXJ0X29uX2NvbnN0cmFpbnQuc3BlYwpAQCAtMCwwICsxLDg2IEBACisjIFRl c3QgcmFjZSBjb25kaXRpb25zIGludm9sdmluZzoKKyMgLSBzMTogVVBTRVJUIGEgdHVwbGUKKyMg LSBzMjogVVBTRVJUIHRoZSBzYW1lIHR1cGxlCisjIC0gczM6IFJFSU5ERVggY29uY3VycmVudCBw cmltYXJ5IGtleSBpbmRleAorIyAtIHM0OiBvcGVyYXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50 cworCitzZXR1cAoreworCUNSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVB VEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIHRlc3QudGJsKGkgaW50IHBy aW1hcnkga2V5LCB1cGRhdGVkX2F0IHRpbWVzdGFtcCk7CisJQUxURVIgVEFCTEUgdGVzdC50Ymwg U0VUIChwYXJhbGxlbF93b3JrZXJzPTApOworfQorCit0ZWFyZG93bgoreworCURST1AgU0NIRU1B IHRlc3QgQ0FTQ0FERTsKKwlEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworfQorCitz ZXNzaW9uIHMxCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7 CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5p cXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnLCAnd2FpdCcpOworfQorc3RlcCBzMV9zdGFydF91 cHNlcnQJeyBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0 IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7 IH0KKworc2Vzc2lvbiBzMgorc2V0dXAJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9s b2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnZXhlY19pbnNlcnRfYmVm b3JlX2luc2VydF9zcGVjdWxhdGl2ZScsICd3YWl0Jyk7Cit9CitzdGVwIHMyX3N0YXJ0X3Vwc2Vy dAl7IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3Qgb24g Y29uc3RyYWludCB0YmxfcGtleSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsgfQor CitzZXNzaW9uIHMzCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2Fs KCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2Nv bmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnLCAnd2FpdCcpOworCVNFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2F0dGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAn LCAnd2FpdCcpOworfQorc3RlcCBzM19zdGFydF9yZWluZGV4CQkJeyBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVw X3RvX3N3YXAJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVs YXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOwor fQorc3RlcCBzNF93YWtldXBfczEJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2go J2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9j b25zdHJhaW50X25vX2NvbmZsaWN0Jyk7Cit9CitzdGVwIHM0X3dha2V1cF9zMgkJeworCVNFTEVD VCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVj dWxhdGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRf YmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworfQorc3RlcCBzNF93YWtldXBfdG9fc2V0X2Rl YWQJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7 Cit9CisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXMxX3N0YXJ0X3Vwc2VydAor CXM0X3dha2V1cF90b19zd2FwCisJczJfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRf d2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3Rh cnRfcmVpbmRleAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3Rh cnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3Nl dF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXM0X3dha2V1cF90b19z d2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczJfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJ czRfd2FrZXVwX3RvX3NldF9kZWFkCisJczRfd2FrZXVwX3MyClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3Nw ZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZC5zcGVjIGIvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vw c2VydF9wYXJ0aXRpb25lZC5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5iOTI1MzQ2MzAzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5q ZWN0aW9uX3BvaW50cy9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfcGFydGl0aW9u ZWQuc3BlYwpAQCAtMCwwICsxLDg4IEBACisjIFRlc3QgcmFjZSBjb25kaXRpb25zIGludm9sdmlu ZzoKKyMgLSBzMTogVVBTRVJUIGEgdHVwbGUKKyMgLSBzMjogVVBTRVJUIHRoZSBzYW1lIHR1cGxl CisjIC0gczM6IFJFSU5ERVggY29uY3VycmVudCBwcmltYXJ5IGtleSBpbmRleAorIyAtIHM0OiBv cGVyYXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50cworCitzZXR1cAoreworCUNSRUFURSBFWFRF TlNJT04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFRB QkxFIHRlc3QudGJsKGkgaW50IHByaW1hcnkga2V5LCB1cGRhdGVkX2F0IHRpbWVzdGFtcCkgUEFS VElUSU9OIEJZIFJBTkdFIChpKTsKKwlDUkVBVEUgVEFCTEUgdGVzdC50YmxfcGFydGl0aW9uIFBB UlRJVElPTiBPRiB0ZXN0LnRibAorCQlGT1IgVkFMVUVTIEZST00gKDApIFRPICgxMDAwMCkKKwkJ V0lUSCAocGFyYWxsZWxfd29ya2VycyA9IDApOworfQorCit0ZWFyZG93bgoreworCURST1AgU0NI RU1BIHRlc3QgQ0FTQ0FERTsKKwlEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworfQor CitzZXNzaW9uIHMxCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2Fs KCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdjaGVja19leGNsdXNpb25fb3Jf dW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnLCAnd2FpdCcpOworfQorc3RlcCBzMV9zdGFy dF91cHNlcnQJeyBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZs aWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyB9CisKK3Nlc3Npb24gczIK K3NldHVwCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3Vs YXRpdmUnLCAnd2FpdCcpOworfQorc3RlcCBzMl9zdGFydF91cHNlcnQJeyBJTlNFUlQgSU5UTyB0 ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBk YXRlZF9hdCA9IG5vdygpOyB9CisKK3Nlc3Npb24gczMKK3NldHVwCXsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2go J3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcsICd3YWl0Jyk7 CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1 cnJlbnRseV9iZWZvcmVfc3dhcCcsICd3YWl0Jyk7Cit9CitzdGVwIHMzX3N0YXJ0X3JlaW5kZXgJ CQl7IFJFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIHRlc3QudGJsX3BhcnRpdGlvbl9wa2V5OyB9 CisKK3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVwX3RvX3N3YXAJCXsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9z d2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9u X2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworfQorc3RlcCBzNF93YWtldXBfczEJCXsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVf Y29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1 cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7Cit9 CitzdGVwIHM0X3dha2V1cF9zMgkJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgn ZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScp OworfQorc3RlcCBzNF93YWtldXBfdG9fc2V0X2RlYWQJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVh ZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9j b25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7Cit9CisKK3Blcm11dGF0aW9uCisJczNfc3Rh cnRfcmVpbmRleAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF90b19zd2FwCisJczJfc3Rh cnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3Nl dF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXMyX3N0YXJ0X3Vwc2Vy dAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJ czRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNf c3RhcnRfcmVpbmRleAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczJf c3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisJczRf d2FrZXVwX3MyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi40My4wCgo= --000000000000bd14f60628dc8da8 Content-Type: application/x-patch; name="v5-0002-Add-stress-tests-for-concurrent-index-operations.patch" Content-Disposition: attachment; filename="v5-0002-Add-stress-tests-for-concurrent-index-operations.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hhs3741 RnJvbSA4MzZjYjg0NTY4MjQ2MGQ4OTY3ZGZiZjI4MjZmNGMyMzdkNmJlNGUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAzMCBOb3YgMjAyNCAxNjoyNDoyMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjUgMi81 XSBBZGQgc3RyZXNzIHRlc3RzIGZvciBjb25jdXJyZW50IGluZGV4IG9wZXJhdGlvbnMKCkFkZCBj b21wcmVoZW5zaXZlIHN0cmVzcyB0ZXN0cyBmb3IgY29uY3VycmVudCBpbmRleCBvcGVyYXRpb25z LCBmb2N1c2luZyBvbjoKKiBUZXN0aW5nIENSRUFURS9SRUlOREVYL0RST1AgSU5ERVggQ09OQ1VS UkVOVExZIHVuZGVyIGhlYXZ5IHdyaXRlIGxvYWQKKiBWZXJpZnlpbmcgaW5kZXggaW50ZWdyaXR5 IGR1cmluZyBjb25jdXJyZW50IEhPVCB1cGRhdGVzCiogVGVzdGluZyB2YXJpb3VzIGluZGV4IHR5 cGVzIGluY2x1ZGluZyB1bmlxdWUgYW5kIHBhcnRpYWwgaW5kZXhlcwoqIFZhbGlkYXRpbmcgaW5k ZXggY29ycmVjdG5lc3MgdXNpbmcgYW1jaGVjayBidF9pbmRleF9wYXJlbnRfY2hlY2sKKiBFeGVy Y2lzaW5nIHBhcmFsbGVsIHdvcmtlciBjb25maWd1cmF0aW9ucwoKVGhlIHRlc3RzIHBlcmZvcm0g aW50ZW5zaXZlIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9ucyB2aWEgcGdiZW5jaCB3aGlsZQpleGVj dXRpbmcgaW5kZXggb3BlcmF0aW9ucyB0byBzdHJlc3MgdGVzdCBpbmRleCBidWlsZCBpbmZyYXN0 cnVjdHVyZS4KVGVzdCBjYXNlcyBjb3ZlcjoKLSBSZWd1bGFyIGFuZCB1bmlxdWUgaW5kZXhlcwot IEluZGV4ZXMgd2l0aCBzdGFibGUgYW5kIGltbXV0YWJsZSBwcmVkaWNhdGVzCi0gTXVsdGktY29s dW1uIGluZGV4ZXMgd2l0aCB2YXJpb3VzIGNvbWJpbmF0aW9ucwotIERpZmZlcmVudCBwYXJhbGxl bCB3b3JrZXIgY29uZmlndXJhdGlvbnMKClR3byBuZXcgdGVzdCBmaWxlcyBhZGRlZDoKLSB0LzAw Nl9jb25jdXJyZW50bHkucGw6IEdlbmVyYWwgY29uY3VycmVudCBpbmRleCBvcGVyYXRpb24gdGVz dHMKLSB0LzAwN19jb25jdXJyZW50bHlfdW5pcXVlLnBsOiBGb2N1c2VkIHRlc3Rpbmcgb2YgdW5p cXVlIGluZGV4ZXMKClRoZXNlIHN0cmVzcyB0ZXN0cyBoZWxwIGVuc3VyZSByZWxpYWJpbGl0eSBv ZiBjb25jdXJyZW50IGluZGV4IG9wZXJhdGlvbnMKdW5kZXIgaGVhdnkgbG9hZCBjb25kaXRpb25z LgotLS0KIHNyYy9iaW4vcGdfYW1jaGVjay9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAg MiArCiBzcmMvYmluL3BnX2FtY2hlY2svdC8wMDZfY29uY3VycmVudGx5LnBsICAgICAgfCAzMTUg KysrKysrKysrKysrKysrKysrCiAuLi4vcGdfYW1jaGVjay90LzAwN19jb25jdXJyZW50bHlfdW5p cXVlLnBsICAgfCAyMzkgKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1NTYgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4vcGdfYW1jaGVjay90LzAwNl9jb25j dXJyZW50bHkucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX2FtY2hlY2svdC8wMDdf Y29uY3VycmVudGx5X3VuaXF1ZS5wbAoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYW1jaGVjay9t ZXNvbi5idWlsZCBiL3NyYy9iaW4vcGdfYW1jaGVjay9tZXNvbi5idWlsZAppbmRleCAyOTJiMzNl YjA5NC4uYjRlMTRhMTVlZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYW1jaGVjay9tZXNvbi5i dWlsZAorKysgYi9zcmMvYmluL3BnX2FtY2hlY2svbWVzb24uYnVpbGQKQEAgLTI4LDYgKzI4LDgg QEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDAzX2NoZWNrLnBsJywKICAgICAgICd0LzAwNF92ZXJp ZnlfaGVhcGFtLnBsJywKICAgICAgICd0LzAwNV9vcGNsYXNzX2RhbWFnZS5wbCcsCisgICAgICAn dC8wMDZfY29uY3VycmVudGx5LnBsJywKKyAgICAgICd0LzAwN19jb25jdXJyZW50bHlfdW5pcXVl LnBsJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19hbWNoZWNrL3Qv MDA2X2NvbmN1cnJlbnRseS5wbCBiL3NyYy9iaW4vcGdfYW1jaGVjay90LzAwNl9jb25jdXJyZW50 bHkucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUxM2EzNDBlNzc3 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ19hbWNoZWNrL3QvMDA2X2NvbmN1cnJlbnRs eS5wbApAQCAtMCwwICsxLDMxNSBAQAorDQorIyBDb3B5cmlnaHQgKGMpIDIwMjQsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwDQorDQorIyBUZXN0IFJFSU5ERVggQ09OQ1VSUkVO VExZIHdpdGggY29uY3VycmVudCBtb2RpZmljYXRpb25zIGFuZCBIT1QgdXBkYXRlcw0KK3VzZSBz dHJpY3Q7DQordXNlIHdhcm5pbmdzOw0KKw0KK3VzZSBDb25maWc7DQordXNlIEVycm5vOw0KKw0K Kw0KKw0KK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOw0KK3VzZSBQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczsNCit1c2UgVGltZTo6SGlSZXMgcXcodXNsZWVwKTsNCisNCit1c2UgdGhyZWFk czsNCit1c2UgVGVzdDo6TW9yZTsNCit1c2UgVGVzdDo6QnVpbGRlcjsNCisNCisNCitldmFsIHsN CisJcmVxdWlyZSBJUEM6OlN5c1Y7DQorCUlQQzo6U3lzVi0+aW1wb3J0KHF3KElQQ19DUkVBVCBJ UENfRVhDTCBTX0lSVVNSIFNfSVdVU1IpKTsNCit9Ow0KKw0KK2lmICgkQCB8fCAkd2luZG93c19v cykNCit7DQorCXBsYW4gc2tpcF9hbGwgPT4gJ0ZvcmsgYW5kIHNoYXJlZCBtZW1vcnkgYXJlIG5v dCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9ybSc7DQorfQ0KKw0KKyMgVE9ETzogcmVmYWN0b3Ig dG8gaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL0lQQyUzQSUzQVNoYXJlYWJsZQ0KK215ICgkcGlk LCAkc2htZW1faWQsICRzaG1lbV9rZXksICAkc2htZW1fc2l6ZSk7DQorZXZhbCAnc3ViIElQQ19D UkVBVCB7MDAwMTAwMH0nIHVubGVzcyBkZWZpbmVkICZJUENfQ1JFQVQ7DQorJHNobWVtX3NpemUg PSA0Ow0KKyRzaG1lbV9rZXkgPSByYW5kKDEwMDAwMDApOw0KKyRzaG1lbV9pZCA9IHNobWdldCgk c2htZW1fa2V5LCAkc2htZW1fc2l6ZSwgJklQQ19DUkVBVCB8IDA3NzcpIG9yIGRpZSAiQ2FuJ3Qg c2htZ2V0OiAkISI7DQorc2htd3JpdGUoJHNobWVtX2lkLCAid2FpdCIsIDAsICRzaG1lbV9zaXpl KSBvciBkaWUgIkNhbid0IHNobXdyaXRlOiAkISI7DQorDQorbXkgJHBzcWxfdGltZW91dCA9IElQ Qzo6UnVuOjp0aW1lcigkUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRpbWVvdXRfZGVmYXVsdCk7 DQorIw0KKyMgVGVzdCBzZXQtdXANCisjDQorbXkgKCRub2RlLCAkcmVzdWx0KTsNCiskbm9kZSA9 IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnUkNfdGVzdCcpOw0KKyRub2RlLT5pbml0 Ow0KKyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywNCisJJ2xvY2tfdGltZW91 dCA9ICcgLiAoMTAwMCAqICRQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGltZW91dF9kZWZhdWx0 KSk7DQorJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnZnN5bmMgPSBvZmYn KTsNCiskbm9kZS0+c3RhcnQ7DQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKENSRUFU RSBFWFRFTlNJT04gYW1jaGVjaykpOw0KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShD UkVBVEUgVEFCTEUgdGJsKGkgaW50IHByaW1hcnkga2V5LA0KKwkJCQkJCQkJYzEgbW9uZXkgZGVm YXVsdCAwLCBjMiBtb25leSBkZWZhdWx0IDAsDQorCQkJCQkJCQljMyBtb25leSBkZWZhdWx0IDAs IHVwZGF0ZWRfYXQgdGltZXN0YW1wKSkpOw0KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cShDUkVBVEUgSU5ERVggaWR4IE9OIHRibChpKSkpOw0KKw0KK215ICRidWlsZGVyID0gVGVzdDo6 TW9yZS0+YnVpbGRlcjsNCiskYnVpbGRlci0+dXNlX251bWJlcnMoMCk7DQorJGJ1aWxkZXItPm5v X3BsYW4oKTsNCisNCitteSAkY2hpbGQgID0gJGJ1aWxkZXItPmNoaWxkKCJwZ19iZW5jaCIpOw0K Kw0KK2lmKCFkZWZpbmVkKCRwaWQgPSBmb3JrKCkpKSB7DQorCSMgZm9yayByZXR1cm5lZCB1bmRl Ziwgc28gdW5zdWNjZXNzZnVsDQorCWRpZSAiQ2Fubm90IGZvcmsgYSBjaGlsZDogJCEiOw0KK30g ZWxzaWYgKCRwaWQgPT0gMCkgew0KKw0KKwkkbm9kZS0+cGdiZW5jaCgNCisJCSctLW5vLXZhY3V1 bSAtLWNsaWVudD0xMCAtLXRyYW5zYWN0aW9ucz0xMDAwJywNCisJCTAsDQorCQlbcXJ7YWN0dWFs bHkgcHJvY2Vzc2VkfV0sDQorCQlbcXJ7XiR9XSwNCisJCSdjb25jdXJyZW50IElOU0VSVHMsIFVQ REFURVMgYW5kIFJDJywNCisJCXsNCisJCQknMDAxX3BnYmVuY2hfY29uY3VycmVudF90cmFuc2Fj dGlvbl9pbnNlcnRzJyA9PiBxKA0KKwkJCQlCRUdJTjsNCisJCQkJSU5TRVJUIElOVE8gdGJsIFZB TFVFUyhyYW5kb20oKSoxMDAwMCwwLDAsMCxub3coKSkNCisJCQkJCW9uIGNvbmZsaWN0KGkpIGRv IHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOw0KKwkJCQlJTlNFUlQgSU5UTyB0YmwgVkFM VUVTKHJhbmRvbSgpKjEwMDAwLDAsMCwwLG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8g dXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxV RVMocmFuZG9tKCkqMTAwMDAsMCwwLDAsbm93KCkpDQorCQkJCQlvbiBjb25mbGljdChpKSBkbyB1 cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsNCisJCQkJSU5TRVJUIElOVE8gdGJsIFZBTFVF UyhyYW5kb20oKSoxMDAwMCwwLDAsMCxub3coKSkNCisJCQkJCW9uIGNvbmZsaWN0KGkpIGRvIHVw ZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOw0KKwkJCQlJTlNFUlQgSU5UTyB0YmwgVkFMVUVT KHJhbmRvbSgpKjEwMDAwLDAsMCwwLG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBk YXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7DQorCQkJCUNPTU1JVDsNCisJCQkgICksDQorCQkJ JzAwMl9wZ2JlbmNoX2NvbmN1cnJlbnRfdHJhbnNhY3Rpb25faW5zZXJ0cycgPT4gcSgNCisJCQkJ QkVHSU47DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUNPTU1JVDsNCisJCQkgICksDQorCQkJIyBFbnN1cmUgc29tZSBIT1QgdXBk YXRlcyBoYXBwZW4NCisJCQknMDAzX3BnYmVuY2hfY29uY3VycmVudF90cmFuc2FjdGlvbl91cGRh dGVzJyA9PiBxKA0KKwkJCQlCRUdJTjsNCisJCQkJSU5TRVJUIElOVE8gdGJsIFZBTFVFUyhyYW5k b20oKSoxMDAwLDAsMCwwLG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNl dCB1cGRhdGVkX2F0ID0gbm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9t KCkqMTAwMCwwLDAsMCxub3coKSkNCisJCQkJCW9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQg dXBkYXRlZF9hdCA9IG5vdygpOw0KKwkJCQlJTlNFUlQgSU5UTyB0YmwgVkFMVUVTKHJhbmRvbSgp KjEwMDAsMCwwLDAsbm93KCkpDQorCQkJCQlvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVw ZGF0ZWRfYXQgPSBub3coKTsNCisJCQkJSU5TRVJUIElOVE8gdGJsIFZBTFVFUyhyYW5kb20oKSox MDAwLDAsMCwwLG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRh dGVkX2F0ID0gbm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAw MCwwLDAsMCxub3coKSkNCisJCQkJCW9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRl ZF9hdCA9IG5vdygpOw0KKwkJCQlDT01NSVQ7DQorCQkJICApDQorCQl9KTsNCisNCisJaWYgKCRj aGlsZC0+aXNfcGFzc2luZygpKSB7DQorCQlzaG13cml0ZSgkc2htZW1faWQsICJkb25lIiwgMCwg JHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qgc2htd3JpdGU6ICQhIjsNCisJfSBlbHNlIHsNCisJ CXNobXdyaXRlKCRzaG1lbV9pZCwgImZhaWwiLCAwLCAkc2htZW1fc2l6ZSkgb3IgZGllICJDYW4n dCBzaG13cml0ZTogJCEiOw0KKwl9DQorDQorCW15ICRwZ19iZW5jaF9mb3JrX2ZsYWc7DQorCXdo aWxlICgxKSB7DQorCQlzaG1yZWFkKCRzaG1lbV9pZCwgJHBnX2JlbmNoX2ZvcmtfZmxhZywgMCwg JHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qgc2htcmVhZDogJCEiOw0KKwkJc2xlZXAoMC4xKTsN CisJCWxhc3QgaWYgJHBnX2JlbmNoX2ZvcmtfZmxhZyBlcSAic3RvcCI7DQorCX0NCit9IGVsc2Ug ew0KKwlteSAkcGdfYmVuY2hfZm9ya19mbGFnOw0KKwlzaG1yZWFkKCRzaG1lbV9pZCwgJHBnX2Jl bmNoX2ZvcmtfZmxhZywgMCwgJHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qgc2htcmVhZDogJCEi Ow0KKw0KKwlzdWJ0ZXN0ICdyZWluZGV4IHJ1biBzdWJ0ZXN0JyA9PiBzdWIgew0KKwkJaXMoJHBn X2JlbmNoX2ZvcmtfZmxhZywgIndhaXQiLCAicGdfYmVuY2hfZm9ya19mbGFnIGlzIGNvcnJlY3Qi KTsNCisNCisJCW15ICVwc3FsID0gKHN0ZGluID0+ICcnLCBzdGRvdXQgPT4gJycsIHN0ZGVyciA9 PiAnJyk7DQorCQkkcHNxbHtydW59ID0gSVBDOjpSdW46OnN0YXJ0KA0KKwkJCVsgJ3BzcWwnLCAn LVhBJywgJy1mJywgJy0nLCAnLWQnLCAkbm9kZS0+Y29ubnN0cigncG9zdGdyZXMnKSBdLA0KKwkJ CSc8JywNCisJCQlcJHBzcWx7c3RkaW59LA0KKwkJCSc+JywNCisJCQlcJHBzcWx7c3Rkb3V0fSwN CisJCQknMj4nLA0KKwkJCVwkcHNxbHtzdGRlcnJ9LA0KKwkJCSRwc3FsX3RpbWVvdXQpOw0KKw0K KwkJbXkgKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIsICRuLCAkc3RkZXJyX3NhdmVkKTsNCisJ CSRuID0gMDsNCisNCisJCSRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHEoQ1JFQVRFIEZVTkNUSU9O IHByZWRpY2F0ZV9zdGFibGUoKSBSRVRVUk5TIGJvb2wgSU1NVVRBQkxFDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExBTkdVQUdFIHBscGdzcWwgQVMgJCQNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQkVHSU4NCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFWEVDVVRFICdTRUxFQ1QgdHhpZF9jdXJyZW50KCknOw0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTiB0cnVlOw0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFTkQ7ICQkOykpOw0KKw0KKwkJJG5vZGUtPnBzcWwoJ3Bvc3RncmVz JywgcShDUkVBVEUgRlVOQ1RJT04gcHJlZGljYXRlX2NvbnN0KGludGVnZXIpIFJFVFVSTlMgYm9v bCBJTU1VVEFCTEUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEFOR1VBR0Ug cGxwZ3NxbCBBUyAkJA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCRUdJTg0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTiBNT0QoJDEsIDIpID0g MDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5EOyAkJDspKTsNCisJCXdo aWxlICgxKQ0KKwkJew0KKw0KKwkJCWlmIChpbnQocmFuZCgyKSkgPT0gMCkgew0KKwkJCQkoJHJl c3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxKEFMVEVS IFRBQkxFIHRibCBTRVQgKHBhcmFsbGVsX3dvcmtlcnM9MCk7KSk7DQorCQkJfSBlbHNlIHsNCisJ CQkJKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywg cShBTFRFUiBUQUJMRSB0YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTQpOykpOw0KKwkJCX0NCisJ CQlpcygkcmVzdWx0LCAnMCcsICdBTFRFUiBUQUJMRSBpcyBjb3JyZWN0Jyk7DQorDQorCQkJaWYg KDEpDQorCQkJew0KKwkJCQkoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNx bCgncG9zdGdyZXMnLCBxKFJFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGlkeDspKTsNCisJCQkJ aXMoJHJlc3VsdCwgJzAnLCAnUkVJTkRFWCBpcyBjb3JyZWN0Jyk7DQorDQorCQkJCWlmICgkcmVz dWx0KSB7DQorCQkJCQlkaWFnKCRzdGRlcnIpOw0KKwkJCQkJQkFJTF9PVVQoJHN0ZGVycik7DQor CQkJCX0NCisNCisJCQkJKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwo J3Bvc3RncmVzJywgcShTRUxFQ1QgYnRfaW5kZXhfY2hlY2soJ2lkeCcsIGhlYXBhbGxpbmRleGVk ID0+IHRydWUsIGNoZWNrdW5pcXVlID0+IHRydWUpOykpOw0KKwkJCQlpcygkcmVzdWx0LCAnMCcs ICdidF9pbmRleF9jaGVjayBpcyBjb3JyZWN0Jyk7DQorCQkJCWlmICgkcmVzdWx0KQ0KKwkJCQl7 DQorCQkJCQlkaWFnKCRzdGRlcnIpOw0KKwkJCQkJQkFJTF9PVVQoJHN0ZGVycik7DQorCQkJCX0g ZWxzZSB7DQorCQkJCQlkaWFnKCcjcmVpbmRleDopJyAuICRuKyspOw0KKwkJCQl9DQorCQkJfQ0K Kw0KKwkJCWlmICgxKQ0KKwkJCXsNCisJCQkJbXkgJHZhcmlhbnQgPSBpbnQocmFuZCg3KSk7DQor CQkJCW15ICRzcWw7DQorCQkJCWlmICgkdmFyaWFudCA9PSAwKSB7DQorCQkJCQkkc3FsID0gcShD UkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeF8yIE9OIHRibChpLCB1cGRhdGVkX2F0KTspOw0K KwkJCQl9IGVsc2lmICgkdmFyaWFudCA9PSAxKSB7DQorCQkJCQkkc3FsID0gcShDUkVBVEUgSU5E RVggQ09OQ1VSUkVOVExZIGlkeF8yIE9OIHRibChpLCB1cGRhdGVkX2F0KSBXSEVSRSBwcmVkaWNh dGVfc3RhYmxlKCk7KTsNCisJCQkJfSBlbHNpZiAoJHZhcmlhbnQgPT0gMikgew0KKwkJCQkJJHNx bCA9IHEoQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHhfMiBPTiB0YmwoaSwgdXBkYXRlZF9h dCkgV0hFUkUgTU9EKGksIDIpID0gMDspOw0KKwkJCQl9IGVsc2lmICgkdmFyaWFudCA9PSAzKSB7 DQorCQkJCQkkc3FsID0gcShDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeF8yIE9OIHRibChp LCB1cGRhdGVkX2F0KSBXSEVSRSBwcmVkaWNhdGVfY29uc3QoaSk7KTsNCisJCQkJfSBlbHNpZiAo JHZhcmlhbnQgPT0gNCkgew0KKwkJCQkJJHNxbCA9IHEoQ1JFQVRFIElOREVYIENPTkNVUlJFTlRM WSBpZHhfMiBPTiB0YmwocHJlZGljYXRlX2NvbnN0KGkpKTspOw0KKwkJCQl9IGVsc2lmICgkdmFy aWFudCA9PSA1KSB7DQorCQkJCQkkc3FsID0gcShDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlk eF8yIE9OIHRibChpLCBwcmVkaWNhdGVfY29uc3QoaSksIHVwZGF0ZWRfYXQpIFdIRVJFIHByZWRp Y2F0ZV9jb25zdChpKTspOw0KKwkJCQl9IGVsc2lmICgkdmFyaWFudCA9PSA2KSB7DQorCQkJCQkk c3FsID0gcShDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSBpZHhfMiBPTiB0YmwoaSk7 KTsNCisJCQkJfSBlbHNlIHsgZGlhZygiI3dyb25nIHZhcmlhbnQiKTsgfQ0KKw0KKwkJCQlkaWFn KCcjJyAuICRzcWwpOw0KKwkJCQkoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+ cHNxbCgncG9zdGdyZXMnLCAkc3FsKTsNCisJCQkJaXMoJHJlc3VsdCwgJzAnLCAnQ1JFQVRFIElO REVYIGlzIGNvcnJlY3QnKTsNCisJCQkJJHN0ZGVycl9zYXZlZCA9ICRzdGRlcnI7DQorDQorCQkJ CSgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHEo U0VMRUNUIGJ0X2luZGV4X2NoZWNrKCdpZHhfMicsIGhlYXBhbGxpbmRleGVkID0+IHRydWUsIGNo ZWNrdW5pcXVlID0+IHRydWUpOykpOw0KKwkJCQlpcygkcmVzdWx0LCAnMCcsICdidF9pbmRleF9j aGVjayBmb3IgbmV3IGluZGV4IGlzIGNvcnJlY3QnKTsNCisJCQkJaWYgKCRyZXN1bHQpDQorCQkJ CXsNCisJCQkJCWRpYWcoJHN0ZGVycik7DQorCQkJCQlkaWFnKCRzdGRlcnJfc2F2ZWQpOw0KKwkJ CQkJQkFJTF9PVVQoJHN0ZGVycik7DQorCQkJCX0gZWxzZSB7DQorCQkJCQlkaWFnKCcjY3JlYXRl OiknIC4gJG4rKyk7DQorCQkJCX0NCisNCisJCQkJaWYgKDEpDQorCQkJCXsNCisJCQkJCSgkcmVz dWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHEoUkVJTkRF WCBJTkRFWCBDT05DVVJSRU5UTFkgaWR4XzI7KSk7DQorCQkJCQlpcygkcmVzdWx0LCAnMCcsICdS RUlOREVYIDIgaXMgY29ycmVjdCcpOw0KKwkJCQkJaWYgKCRyZXN1bHQpIHsNCisJCQkJCQlkaWFn KCRzdGRlcnIpOw0KKwkJCQkJCUJBSUxfT1VUKCRzdGRlcnIpOw0KKwkJCQkJfQ0KKw0KKwkJCQkJ KCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgcShT RUxFQ1QgYnRfaW5kZXhfY2hlY2soJ2lkeF8yJywgaGVhcGFsbGluZGV4ZWQgPT4gdHJ1ZSwgY2hl Y2t1bmlxdWUgPT4gdHJ1ZSk7KSk7DQorCQkJCQlpcygkcmVzdWx0LCAnMCcsICdidF9pbmRleF9j aGVjayAyIGlzIGNvcnJlY3QnKTsNCisJCQkJCWlmICgkcmVzdWx0KQ0KKwkJCQkJew0KKwkJCQkJ CWRpYWcoJHN0ZGVycik7DQorCQkJCQkJQkFJTF9PVVQoJHN0ZGVycik7DQorCQkJCQl9IGVsc2Ug ew0KKwkJCQkJCWRpYWcoJyNyZWluZGV4MjopJyAuICRuKyspOw0KKwkJCQkJfQ0KKwkJCQl9DQor DQorCQkJCSgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlLT5wc3FsKCdwb3N0Z3Jl cycsIHEoRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgaWR4XzI7KSk7DQorCQkJCWlzKCRyZXN1bHQs ICcwJywgJ0RST1AgSU5ERVggaXMgY29ycmVjdCcpOw0KKwkJCX0NCisJCQlzaG1yZWFkKCRzaG1l bV9pZCwgJHBnX2JlbmNoX2ZvcmtfZmxhZywgMCwgJHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qg c2htcmVhZDogJCEiOw0KKwkJCWxhc3QgaWYgJHBnX2JlbmNoX2ZvcmtfZmxhZyBuZSAid2FpdCI7 DQorCQl9DQorDQorCQkjIGV4cGxpY2l0bHkgc2h1dCBkb3duIHBzcWwgaW5zdGFuY2VzIGdyYWNl ZnVsbHkNCisgICAgICAgICRwc3Fse3N0ZGlufSAuPSAiXFxxXG4iOw0KKyAgICAgICAgJHBzcWx7 cnVufS0+ZmluaXNoOw0KKw0KKwkJaXMoJHBnX2JlbmNoX2ZvcmtfZmxhZywgImRvbmUiLCAicGdf YmVuY2hfZm9ya19mbGFnIGlzIGNvcnJlY3QiKTsNCisJfTsNCisNCisJJGNoaWxkLT5maW5hbGl6 ZSgpOw0KKwkkY2hpbGQtPnN1bW1hcnkoKTsNCisNCisJc2htd3JpdGUoJHNobWVtX2lkLCAic3Rv cCIsIDAsICRzaG1lbV9zaXplKSBvciBkaWUgIkNhbid0IHNobXdyaXRlOiAkISI7DQorCXdhaXRw aWQoJHBpZCwwKTsNCisJZG9uZV90ZXN0aW5nKCk7DQorfQ0KKw0KKyMgU2VuZCBxdWVyeSwgd2Fp dCB1bnRpbCBzdHJpbmcgbWF0Y2hlcw0KK3N1YiBzZW5kX3F1ZXJ5X2FuZF93YWl0DQorew0KKwlt eSAoJHBzcWwsICRxdWVyeSwgJHVudGwpID0gQF87DQorCW15ICRyZXQ7DQorDQorCSMgRm9yIGVh Y2ggcXVlcnkgd2UgcnVuLCB3ZSdsbCByZXN0YXJ0IHRoZSB0aW1lb3V0LiAgT3RoZXJ3aXNlIHRo ZSB0aW1lb3V0DQorCSMgd291bGQgYXBwbHkgdG8gdGhlIHdob2xlIHRlc3Qgc2NyaXB0LCBhbmQg d291bGQgbmVlZCB0byBiZSBzZXQgdmVyeSBoaWdoDQorCSMgdG8gc3Vydml2ZSB3aGVuIHJ1bm5p bmcgdW5kZXIgVmFsZ3JpbmQuDQorCSRwc3FsX3RpbWVvdXQtPnJlc2V0KCk7DQorCSRwc3FsX3Rp bWVvdXQtPnN0YXJ0KCk7DQorDQorCSMgc2VuZCBxdWVyeQ0KKwkkJHBzcWx7c3RkaW59IC49ICRx dWVyeTsNCisJJCRwc3Fse3N0ZGlufSAuPSAiXG4iOw0KKw0KKwkjIHdhaXQgZm9yIHF1ZXJ5IHJl c3VsdHMNCisJJCRwc3Fse3J1bn0tPnB1bXBfbmIoKTsNCisJd2hpbGUgKDEpDQorCXsNCisJCWxh c3QgaWYgJCRwc3Fse3N0ZG91dH0gPX4gLyR1bnRsLzsNCisJCWlmICgkcHNxbF90aW1lb3V0LT5p c19leHBpcmVkKQ0KKwkJew0KKwkJCWRpYWcoImFib3J0aW5nIHdhaXQ6IHByb2dyYW0gdGltZWQg b3V0XG4iDQorCQkJCSAgLiAic3RyZWFtIGNvbnRlbnRzOiA+PiQkcHNxbHtzdGRvdXR9PDxcbiIN CisJCQkJICAuICJwYXR0ZXJuIHNlYXJjaGVkIGZvcjogJHVudGxcbiIpOw0KKwkJCXJldHVybiAw Ow0KKwkJfQ0KKwkJaWYgKG5vdCAkJHBzcWx7cnVufS0+cHVtcGFibGUoKSkNCisJCXsNCisJCQlk aWFnKCJhYm9ydGluZyB3YWl0OiBwcm9ncmFtIGRpZWRcbiINCisJCQkJICAuICJzdHJlYW0gY29u dGVudHM6ID4+JCRwc3Fse3N0ZG91dH08PFxuIg0KKwkJCQkgIC4gInBhdHRlcm4gc2VhcmNoZWQg Zm9yOiAkdW50bFxuIik7DQorCQkJcmV0dXJuIDA7DQorCQl9DQorCQkkJHBzcWx7cnVufS0+cHVt cCgpOw0KKwl9DQorDQorCSQkcHNxbHtzdGRvdXR9ID0gJyc7DQorDQorCXJldHVybiAxOw0KK30N CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2FtY2hlY2svdC8wMDdfY29uY3VycmVudGx5X3VuaXF1 ZS5wbCBiL3NyYy9iaW4vcGdfYW1jaGVjay90LzAwN19jb25jdXJyZW50bHlfdW5pcXVlLnBsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42N2UyYmUzZTMzZgotLS0gL2Rl di9udWxsCisrKyBiL3NyYy9iaW4vcGdfYW1jaGVjay90LzAwN19jb25jdXJyZW50bHlfdW5pcXVl LnBsCkBAIC0wLDAgKzEsMjM5IEBACisNCisjIENvcHlyaWdodCAoYykgMjAyNCwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXANCisNCisjIFRlc3QgUkVJTkRFWCBDT05DVVJSRU5U TFkgd2l0aCBjb25jdXJyZW50IG1vZGlmaWNhdGlvbnMgYW5kIEhPVCB1cGRhdGVzDQordXNlIHN0 cmljdDsNCit1c2Ugd2FybmluZ3M7DQorDQordXNlIENvbmZpZzsNCit1c2UgRXJybm87DQorDQor dXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7DQordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0 aWxzOw0KK3VzZSBUaW1lOjpIaVJlcyBxdyh1c2xlZXApOw0KK3VzZSB0aHJlYWRzOw0KK3VzZSBU ZXN0OjpNb3JlOw0KK3VzZSBUZXN0OjpCdWlsZGVyOw0KKw0KK2V2YWwgew0KKwlyZXF1aXJlIElQ Qzo6U3lzVjsNCisJSVBDOjpTeXNWLT5pbXBvcnQocXcoSVBDX0NSRUFUIElQQ19FWENMIFNfSVJV U1IgU19JV1VTUikpOw0KK307DQorDQoraWYgKCRAIHx8ICR3aW5kb3dzX29zKQ0KK3sNCisJcGxh biBza2lwX2FsbCA9PiAnRm9yayBhbmQgc2hhcmVkIG1lbW9yeSBhcmUgbm90IHN1cHBvcnRlZCBi eSB0aGlzIHBsYXRmb3JtJzsNCit9DQorDQorIyBUT0RPOiByZWZhY3RvciB0byBodHRwczovL21l dGFjcGFuLm9yZy9wb2QvSVBDJTNBJTNBU2hhcmVhYmxlDQorbXkgKCRwaWQsICRzaG1lbV9pZCwg JHNobWVtX2tleSwgICRzaG1lbV9zaXplKTsNCitldmFsICdzdWIgSVBDX0NSRUFUIHswMDAxMDAw fScgdW5sZXNzIGRlZmluZWQgJklQQ19DUkVBVDsNCiskc2htZW1fc2l6ZSA9IDQ7DQorJHNobWVt X2tleSA9IHJhbmQoMTAwMDAwMCk7DQorJHNobWVtX2lkID0gc2htZ2V0KCRzaG1lbV9rZXksICRz aG1lbV9zaXplLCAmSVBDX0NSRUFUIHwgMDc3Nykgb3IgZGllICJDYW4ndCBzaG1nZXQ6ICQhIjsN CitzaG13cml0ZSgkc2htZW1faWQsICJ3YWl0IiwgMCwgJHNobWVtX3NpemUpIG9yIGRpZSAiQ2Fu J3Qgc2htd3JpdGU6ICQhIjsNCisNCitteSAkcHNxbF90aW1lb3V0ID0gSVBDOjpSdW46OnRpbWVy KCRQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGltZW91dF9kZWZhdWx0KTsNCisjDQorIyBUZXN0 IHNldC11cA0KKyMNCitteSAoJG5vZGUsICRyZXN1bHQpOw0KKyRub2RlID0gUG9zdGdyZVNRTDo6 VGVzdDo6Q2x1c3Rlci0+bmV3KCdSQ190ZXN0X3VuaXF1ZScpOw0KKyRub2RlLT5pbml0Ow0KKyRu b2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywNCisJJ2xvY2tfdGltZW91dCA9ICcg LiAoMTAwMCAqICRQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGltZW91dF9kZWZhdWx0KSk7DQor JG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnZnN5bmMgPSBvZmYnKTsNCisk bm9kZS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsICdhdXRvdmFjdXVtID0gb2ZmJyk7 DQorJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnbWFpbnRlbmFuY2Vfd29y a19tZW0gPSAxMjhNQicpOw0KKyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywg J3NoYXJlZF9idWZmZXJzID0gMjU2TUInKTsNCiskbm9kZS0+c3RhcnQ7DQorJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxKENSRUFURSBFWFRFTlNJT04gYW1jaGVjaykpOw0KKyRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgVU5MT0dHRUQgVEFCTEUgdGJsKGkgaW50IHBy aW1hcnkga2V5LA0KKwkJCQkJCQkJYzEgbW9uZXkgZGVmYXVsdCAwLCBjMiBtb25leSBkZWZhdWx0 IDAsDQorCQkJCQkJCQljMyBtb25leSBkZWZhdWx0IDAsIHVwZGF0ZWRfYXQgdGltZXN0YW1wKSkp Ow0KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgSU5ERVggaWR4IE9OIHRi bChpLCB1cGRhdGVkX2F0KSkpOw0KKw0KK215ICRidWlsZGVyID0gVGVzdDo6TW9yZS0+YnVpbGRl cjsNCiskYnVpbGRlci0+dXNlX251bWJlcnMoMCk7DQorJGJ1aWxkZXItPm5vX3BsYW4oKTsNCisN CitteSAkY2hpbGQgID0gJGJ1aWxkZXItPmNoaWxkKCJwZ19iZW5jaCIpOw0KKw0KK2lmKCFkZWZp bmVkKCRwaWQgPSBmb3JrKCkpKSB7DQorCSMgZm9yayByZXR1cm5lZCB1bmRlZiwgc28gdW5zdWNj ZXNzZnVsDQorCWRpZSAiQ2Fubm90IGZvcmsgYSBjaGlsZDogJCEiOw0KK30gZWxzaWYgKCRwaWQg PT0gMCkgew0KKw0KKwkjICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHEoSU5TRVJUIElOVE8gdGJs IFNFTEVDVCBpLDAsMCwwLG5vdygpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIHMoaSk7 KSk7DQorCSMgd2hpbGUgWyAkPyAtZXEgMCBdOyBkbyBtYWtlIC1DIHNyYy9iaW4vcGdfYW1jaGVj ay8gY2hlY2sgUFJPVkVfVEVTVFM9J3QvMDA3XyonIDsgZG9uZQ0KKw0KKwkkbm9kZS0+cGdiZW5j aCgNCisJCSctLW5vLXZhY3V1bSAtLWNsaWVudD00MCAtLWV4aXQtb24tYWJvcnQgLS10cmFuc2Fj dGlvbnM9MTAwMCcsDQorCQkwLA0KKwkJW3Fye2FjdHVhbGx5IHByb2Nlc3NlZH1dLA0KKwkJW3Fy e14kfV0sDQorCQknY29uY3VycmVudCBJTlNFUlRzLCBVUERBVEVTIGFuZCBSQycsDQorCQl7DQor CQkJIyBFbnN1cmUgc29tZSBIT1QgdXBkYXRlcyBoYXBwZW4NCisJCQknMDAxX3BnYmVuY2hfY29u Y3VycmVudF90cmFuc2FjdGlvbl91cGRhdGVzJyA9PiBxKA0KKwkJCQlJTlNFUlQgSU5UTyB0Ymwg VkFMVUVTKHJhbmRvbSgpKjEwMDAsMCwwLDAsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0 ZSBzZXQgdXBkYXRlZF9hdCA9IGRhdGVfdHJ1bmMoJ3NlY29uZHMnLCBub3coKSk7DQorCQkJKSwN CisJCQknMDAyX3BnYmVuY2hfY29uY3VycmVudF90cmFuc2FjdGlvbl91cGRhdGVzJyA9PiBxKA0K KwkJCQlJTlNFUlQgSU5UTyB0YmwgVkFMVUVTKHJhbmRvbSgpKjEwMCwwLDAsMCxub3coKSkgb24g Y29uZmxpY3QoaSkgIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IGRhdGVfdHJ1bmMoJ3NlY29u ZHMnLCBub3coKSk7DQorCQkJKSwNCisJCQknMDAzX3BnYmVuY2hfY29uY3VycmVudF90cmFuc2Fj dGlvbl91cGRhdGVzJyA9PiBxKA0KKwkJCQlJTlNFUlQgSU5UTyB0YmwgVkFMVUVTKHJhbmRvbSgp KjEwMDAwLDAsMCwwLG5vdygpKSBvbiBjb25mbGljdChpKSAgZG8gdXBkYXRlIHNldCB1cGRhdGVk X2F0ID0gZGF0ZV90cnVuYygnc2Vjb25kcycsIG5vdygpKTsNCisJCQkpLA0KKwkJCScwMDRfcGdi ZW5jaF9jb25jdXJyZW50X3RyYW5zYWN0aW9uX3VwZGF0ZXMnID0+IHEoDQorCQkJCUlOU0VSVCBJ TlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCwwLG5vdygpKSBvbiBjb25mbGljdChp KSAgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gZGF0ZV90cnVuYygnc2Vjb25kcycsIG5vdygp KTsNCisJCQkpLA0KKwkJfSk7DQorDQorCWlmICgkY2hpbGQtPmlzX3Bhc3NpbmcoKSkgew0KKwkJ c2htd3JpdGUoJHNobWVtX2lkLCAiZG9uZSIsIDAsICRzaG1lbV9zaXplKSBvciBkaWUgIkNhbid0 IHNobXdyaXRlOiAkISI7DQorCX0gZWxzZSB7DQorCQlzaG13cml0ZSgkc2htZW1faWQsICJmYWls IiwgMCwgJHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qgc2htd3JpdGU6ICQhIjsNCisJfQ0KKw0K KwlteSAkcGdfYmVuY2hfZm9ya19mbGFnOw0KKwl3aGlsZSAoMSkgew0KKwkJc2htcmVhZCgkc2ht ZW1faWQsICRwZ19iZW5jaF9mb3JrX2ZsYWcsIDAsICRzaG1lbV9zaXplKSBvciBkaWUgIkNhbid0 IHNobXJlYWQ6ICQhIjsNCisJCXNsZWVwKDAuMSk7DQorCQlsYXN0IGlmICRwZ19iZW5jaF9mb3Jr X2ZsYWcgZXEgInN0b3AiOw0KKwl9DQorfSBlbHNlIHsNCisJbXkgJHBnX2JlbmNoX2ZvcmtfZmxh ZzsNCisJc2htcmVhZCgkc2htZW1faWQsICRwZ19iZW5jaF9mb3JrX2ZsYWcsIDAsICRzaG1lbV9z aXplKSBvciBkaWUgIkNhbid0IHNobXJlYWQ6ICQhIjsNCisNCisJc3VidGVzdCAncmVpbmRleCBy dW4gc3VidGVzdCcgPT4gc3ViIHsNCisJCWlzKCRwZ19iZW5jaF9mb3JrX2ZsYWcsICJ3YWl0Iiwg InBnX2JlbmNoX2ZvcmtfZmxhZyBpcyBjb3JyZWN0Iik7DQorDQorCQlteSAlcHNxbCA9IChzdGRp biA9PiAnJywgc3Rkb3V0ID0+ICcnLCBzdGRlcnIgPT4gJycpOw0KKwkJJHBzcWx7cnVufSA9IElQ Qzo6UnVuOjpzdGFydCgNCisJCQlbICdwc3FsJywgJy1YQScsICctZicsICctJywgJy1kJywgJG5v ZGUtPmNvbm5zdHIoJ3Bvc3RncmVzJykgXSwNCisJCQknPCcsDQorCQkJXCRwc3Fse3N0ZGlufSwN CisJCQknPicsDQorCQkJXCRwc3Fse3N0ZG91dH0sDQorCQkJJzI+JywNCisJCQlcJHBzcWx7c3Rk ZXJyfSwNCisJCQkkcHNxbF90aW1lb3V0KTsNCisNCisJCW15ICgkcmVzdWx0LCAkc3Rkb3V0LCAk c3RkZXJyLCAkbiwgJHN0ZGVycl9zYXZlZCk7DQorDQorIwkJb2soc2VuZF9xdWVyeV9hbmRfd2Fp dChcJXBzcWwsIHFbU0VMRUNUIHBnX3NsZWVwKDEwKTtdLCBxci9eLiokL20pLCAnU0VMRUNUJyk7 DQorDQorCQl3aGlsZSAoMSkNCisJCXsNCisNCisJCQlpZiAoaW50KHJhbmQoMikpID09IDApIHsN CisJCQkJKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVz JywgcShBTFRFUiBUQUJMRSB0YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTQpOykpOw0KKwkJCX0g ZWxzZSB7DQorCQkJCSgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlLT5wc3FsKCdw b3N0Z3JlcycsIHEoQUxURVIgVEFCTEUgdGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz0wKTspKTsN CisJCQl9DQorCQkJaXMoJHJlc3VsdCwgJzAnLCAnQUxURVIgVEFCTEUgaXMgY29ycmVjdCcpOw0K Kw0KKw0KKwkJCWlmICgxKQ0KKwkJCXsNCisJCQkJbXkgJHNxbCA9IHEoc2VsZWN0IHBnX3NsZWVw KDApOyBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSBpZHhfMiBPTiB0YmwoaSk7KTsN CisNCisJCQkJKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3Rn cmVzJywgJHNxbCk7DQorCQkJCWlzKCRyZXN1bHQsICcwJywgJ0NSRUFURSBJTkRFWCBpcyBjb3Jy ZWN0Jyk7DQorCQkJCSRzdGRlcnJfc2F2ZWQgPSAkc3RkZXJyOw0KKw0KKwkJCQkoJHJlc3VsdCwg JHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxKFNFTEVDVCBidF9p bmRleF9jaGVjaygnaWR4XzInLCBoZWFwYWxsaW5kZXhlZCA9PiB0cnVlLCBjaGVja3VuaXF1ZSA9 PiB0cnVlKTspKTsNCisJCQkJaXMoJHJlc3VsdCwgJzAnLCAnYnRfaW5kZXhfY2hlY2sgZm9yIG5l dyBpbmRleCBpcyBjb3JyZWN0Jyk7DQorCQkJCWlmICgkcmVzdWx0KQ0KKwkJCQl7DQorCQkJCQlk aWFnKCRzdGRlcnIpOw0KKwkJCQkJZGlhZygkc3RkZXJyX3NhdmVkKTsNCisJCQkJCUJBSUxfT1VU KCRzdGRlcnIpOw0KKwkJCQl9IGVsc2Ugew0KKwkJCQkJZGlhZygnI2NyZWF0ZTopJyAuICRuKysp Ow0KKwkJCQl9DQorDQorCQkJCWlmICgxKQ0KKwkJCQl7DQorCQkJCQkoJHJlc3VsdCwgJHN0ZG91 dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxKFJFSU5ERVggSU5ERVggQ09O Q1VSUkVOVExZIGlkeF8yOykpOw0KKwkJCQkJaXMoJHJlc3VsdCwgJzAnLCAnUkVJTkRFWCAyIGlz IGNvcnJlY3QnKTsNCisJCQkJCWlmICgkcmVzdWx0KSB7DQorCQkJCQkJZGlhZygkc3RkZXJyKTsN CisJCQkJCQlCQUlMX09VVCgkc3RkZXJyKTsNCisJCQkJCX0NCisNCisJCQkJCSgkcmVzdWx0LCAk c3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHEoU0VMRUNUIGJ0X2lu ZGV4X2NoZWNrKCdpZHhfMicsIGhlYXBhbGxpbmRleGVkID0+IHRydWUsIGNoZWNrdW5pcXVlID0+ IHRydWUpOykpOw0KKwkJCQkJaXMoJHJlc3VsdCwgJzAnLCAnYnRfaW5kZXhfY2hlY2sgMiBpcyBj b3JyZWN0Jyk7DQorCQkJCQlpZiAoJHJlc3VsdCkNCisJCQkJCXsNCisJCQkJCQlkaWFnKCRzdGRl cnIpOw0KKwkJCQkJCUJBSUxfT1VUKCRzdGRlcnIpOw0KKwkJCQkJfSBlbHNlIHsNCisJCQkJCQlk aWFnKCcjcmVpbmRleDI6KScgLiAkbisrKTsNCisJCQkJCX0NCisJCQkJfQ0KKw0KKwkJCQkoJHJl c3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxKERST1Ag SU5ERVggQ09OQ1VSUkVOVExZIGlkeF8yOykpOw0KKwkJCQlpcygkcmVzdWx0LCAnMCcsICdEUk9Q IElOREVYIGlzIGNvcnJlY3QnKTsNCisJCQl9DQorCQkJc2htcmVhZCgkc2htZW1faWQsICRwZ19i ZW5jaF9mb3JrX2ZsYWcsIDAsICRzaG1lbV9zaXplKSBvciBkaWUgIkNhbid0IHNobXJlYWQ6ICQh IjsNCisJCQlsYXN0IGlmICRwZ19iZW5jaF9mb3JrX2ZsYWcgbmUgIndhaXQiOw0KKwkJfQ0KKw0K KwkJIyBleHBsaWNpdGx5IHNodXQgZG93biBwc3FsIGluc3RhbmNlcyBncmFjZWZ1bGx5DQorICAg ICAgICAkcHNxbHtzdGRpbn0gLj0gIlxccVxuIjsNCisgICAgICAgICRwc3Fse3J1bn0tPmZpbmlz aDsNCisNCisJCWlzKCRwZ19iZW5jaF9mb3JrX2ZsYWcsICJkb25lIiwgInBnX2JlbmNoX2Zvcmtf ZmxhZyBpcyBjb3JyZWN0Iik7DQorCX07DQorDQorCSRjaGlsZC0+ZmluYWxpemUoKTsNCisJJGNo aWxkLT5zdW1tYXJ5KCk7DQorDQorCXNobXdyaXRlKCRzaG1lbV9pZCwgInN0b3AiLCAwLCAkc2ht ZW1fc2l6ZSkgb3IgZGllICJDYW4ndCBzaG13cml0ZTogJCEiOw0KKyAgICB3YWl0cGlkKCRwaWQs MCk7DQorICAgIGRvbmVfdGVzdGluZygpOw0KK30NCisNCisjIFNlbmQgcXVlcnksIHdhaXQgdW50 aWwgc3RyaW5nIG1hdGNoZXMNCitzdWIgc2VuZF9xdWVyeV9hbmRfd2FpdA0KK3sNCisJbXkgKCRw c3FsLCAkcXVlcnksICR1bnRsKSA9IEBfOw0KKwlteSAkcmV0Ow0KKw0KKwkjIEZvciBlYWNoIHF1 ZXJ5IHdlIHJ1biwgd2UnbGwgcmVzdGFydCB0aGUgdGltZW91dC4gIE90aGVyd2lzZSB0aGUgdGlt ZW91dA0KKwkjIHdvdWxkIGFwcGx5IHRvIHRoZSB3aG9sZSB0ZXN0IHNjcmlwdCwgYW5kIHdvdWxk IG5lZWQgdG8gYmUgc2V0IHZlcnkgaGlnaA0KKwkjIHRvIHN1cnZpdmUgd2hlbiBydW5uaW5nIHVu ZGVyIFZhbGdyaW5kLg0KKwkkcHNxbF90aW1lb3V0LT5yZXNldCgpOw0KKwkkcHNxbF90aW1lb3V0 LT5zdGFydCgpOw0KKw0KKwkjIHNlbmQgcXVlcnkNCisJJCRwc3Fse3N0ZGlufSAuPSAkcXVlcnk7 DQorCSQkcHNxbHtzdGRpbn0gLj0gIlxuIjsNCisNCisJIyB3YWl0IGZvciBxdWVyeSByZXN1bHRz DQorCSQkcHNxbHtydW59LT5wdW1wX25iKCk7DQorCXdoaWxlICgxKQ0KKwl7DQorCQlsYXN0IGlm ICQkcHNxbHtzdGRvdXR9ID1+IC8kdW50bC87DQorCQlpZiAoJHBzcWxfdGltZW91dC0+aXNfZXhw aXJlZCkNCisJCXsNCisJCQlkaWFnKCJhYm9ydGluZyB3YWl0OiBwcm9ncmFtIHRpbWVkIG91dFxu Ig0KKwkJCQkgIC4gInN0cmVhbSBjb250ZW50czogPj4kJHBzcWx7c3Rkb3V0fTw8XG4iDQorCQkJ CSAgLiAicGF0dGVybiBzZWFyY2hlZCBmb3I6ICR1bnRsXG4iKTsNCisJCQlyZXR1cm4gMDsNCisJ CX0NCisJCWlmIChub3QgJCRwc3Fse3J1bn0tPnB1bXBhYmxlKCkpDQorCQl7DQorCQkJZGlhZygi YWJvcnRpbmcgd2FpdDogcHJvZ3JhbSBkaWVkXG4iDQorCQkJCSAgLiAic3RyZWFtIGNvbnRlbnRz OiA+PiQkcHNxbHtzdGRvdXR9PDxcbiINCisJCQkJICAuICJwYXR0ZXJuIHNlYXJjaGVkIGZvcjog JHVudGxcbiIpOw0KKwkJCXJldHVybiAwOw0KKwkJfQ0KKwkJJCRwc3Fse3J1bn0tPnB1bXAoKTsN CisJfQ0KKw0KKwkkJHBzcWx7c3Rkb3V0fSA9ICcnOw0KKw0KKwlyZXR1cm4gMTsNCit9DQotLSAK Mi40My4wCgo= --000000000000bd14f60628dc8da8 Content-Type: application/x-patch; name="v5-0004-Allow-snapshot-resets-during-parallel-concurrent-.patch" Content-Disposition: attachment; filename="v5-0004-Allow-snapshot-resets-during-parallel-concurrent-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hhs3773 RnJvbSBkNDM1ZmU2MzMwMzQ4NWU2OGUxOTdiM2RjNmU1NzEwNjVlYjY4NjNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCAyIERlYyAyMDI0IDAxOjMzOjIxICswMTAwClN1YmplY3Q6IFtQQVRDSCB2NSA0LzVd IEFsbG93IHNuYXBzaG90IHJlc2V0cyBkdXJpbmcgcGFyYWxsZWwgY29uY3VycmVudCBpbmRleAog YnVpbGRzCgpQcmV2aW91c2x5LCBub24tdW5pcXVlIGNvbmN1cnJlbnQgaW5kZXggYnVpbGRzIGlu IHBhcmFsbGVsIG1vZGUgcmVxdWlyZWQgYQpjb25zaXN0ZW50IE1WQ0Mgc25hcHNob3QgdGhyb3Vn aG91dCB0aGUgYnVpbGQsIHdoaWNoIGNvdWxkIGhvbGQgYmFjayB0aGUgeG1pbgpob3Jpem9uIGFu ZCBwcmV2ZW50IGRlYWQgdHVwbGUgY2xlYW51cC4gVGhpcyBwYXRjaCBleHRlbmRzIHRoZSBwcmV2 aW91cyB3b3JrCm9uIHNuYXBzaG90IHJlc2V0cyAoaW50cm9kdWNlZCBmb3Igbm9uLXBhcmFsbGVs IGJ1aWxkcykgdG8gYWxzbyBzdXBwb3J0CnBhcmFsbGVsIGJ1aWxkcy4KCktleSBjaGFuZ2VzOgot IEFkZCBpbmZyYXN0cnVjdHVyZSB0byB0cmFjayBzbmFwc2hvdCByZXN0b3JhdGlvbiBpbiBwYXJh bGxlbCB3b3JrZXJzCi0gRXh0ZW5kIHBhcmFsbGVsIHNjYW4gaW5pdGlhbGl6YXRpb24gdG8gc3Vw cG9ydCBwZXJpb2RpYyBzbmFwc2hvdCByZXNldHMKLSBXYWl0IGZvciBwYXJhbGxlbCB3b3JrZXJz IHRvIHJlc3RvcmUgdGhlaXIgaW5pdGlhbCBzbmFwc2hvdHMgYmVmb3JlCiAgcHJvY2VlZGluZyB3 aXRoIHNjYW4KLSBBZGQgcmVncmVzc2lvbiB0ZXN0cyB0byB2ZXJpZnkgYmVoYXZpb3Igd2l0aCB2 YXJpb3VzIGluZGV4IHR5cGVzCgpUaGUgc25hcHNob3QgcmVzZXQgYXBwcm9hY2ggaXMgc2FmZSBm b3Igbm9uLXVuaXF1ZSBpbmRleGVzIHNpbmNlIHRoZXkgZG9uJ3QKbmVlZCBzbmFwc2hvdCBjb25z aXN0ZW5jeSBhY3Jvc3MgdGhlIGVudGlyZSBzY2FuLiBGb3IgdW5pcXVlIGluZGV4ZXMsIHdlCmNv bnRpbnVlIHRvIG1haW50YWluIGEgY29uc2lzdGVudCBzbmFwc2hvdCB0byBwcm9wZXJseSBlbmZv cmNlIHVuaXF1ZW5lc3MKY29uc3RyYWludHMuCgpUaGlzIGhlbHBzIHJlZHVjZSB0aGUgeG1pbiBo b3Jpem9uIGltcGFjdCBvZiBsb25nLXJ1bm5pbmcgY29uY3VycmVudCBpbmRleApidWlsZHMgaW4g cGFyYWxsZWwgbW9kZSwgaW1wcm92aW5nIFZBQ1VVTSdzIGFiaWxpdHkgdG8gY2xlYW4gdXAgZGVh ZCB0dXBsZXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICAgICAg ICAgIHwgNDMgKysrKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X2hhbmRsZXIuYyAgICAgIHwgMTIgKysrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 c29ydC5jICAgICAgICAgICB8IDM4ICsrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dGFibGUvdGFibGVhbS5jICAgICAgICAgICAgfCAzNyArKysrKysrKysrKystLQogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vcGFyYWxsZWwuYyAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysr KystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgICAgIHwgIDMg Ky0KIHNyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jICAgICAgICAgICAgICB8ICA4IC0t LQogc3JjL2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmggICAgICAgICAgICAgICAgIHwgIDMgKy0K IHNyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggICAgICAgICAgICAgICAgICB8ICAxICsKIHNy Yy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgICAgICB8ICA5ICsrLS0KIC4u Li9leHBlY3RlZC9jaWNfcmVzZXRfc25hcHNob3RzLm91dCAgICAgICAgICB8IDIzICsrKysrKysr LQogLi4uL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbCAgICAgICAgICAgICAgIHwgIDcgKyst CiAxMiBmaWxlcyBjaGFuZ2VkLCAxNzggaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4IGQ2OTg1OWFjNGRmLi4wNzgyYmQ2NGE2YSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW4uYwpAQCAtMTQzLDcgKzE0Myw2IEBAIHR5cGVkZWYgc3RydWN0IEJyaW5M ZWFkZXIKIAkgKi8KIAlCcmluU2hhcmVkICpicmluc2hhcmVkOwogCVNoYXJlZHNvcnQgKnNoYXJl ZHNvcnQ7Ci0JU25hcHNob3QJc25hcHNob3Q7CiAJV2FsVXNhZ2UgICAqd2FsdXNhZ2U7CiAJQnVm ZmVyVXNhZ2UgKmJ1ZmZlcnVzYWdlOwogfSBCcmluTGVhZGVyOwpAQCAtMjMxLDcgKzIzMCw3IEBA IHN0YXRpYyB2b2lkIGJyaW5fZmlsbF9lbXB0eV9yYW5nZXMoQnJpbkJ1aWxkU3RhdGUgKnN0YXRl LAogc3RhdGljIHZvaWQgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJpbkJ1aWxkU3RhdGUgKmJ1aWxk c3RhdGUsIFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogCQkJCQkJCQkgYm9vbCBpc2Nv bmN1cnJlbnQsIGludCByZXF1ZXN0KTsKIHN0YXRpYyB2b2lkIF9icmluX2VuZF9wYXJhbGxlbChC cmluTGVhZGVyICpicmlubGVhZGVyLCBCcmluQnVpbGRTdGF0ZSAqc3RhdGUpOwotc3RhdGljIFNp emUgX2JyaW5fcGFyYWxsZWxfZXN0aW1hdGVfc2hhcmVkKFJlbGF0aW9uIGhlYXAsIFNuYXBzaG90 IHNuYXBzaG90KTsKK3N0YXRpYyBTaXplIF9icmluX3BhcmFsbGVsX2VzdGltYXRlX3NoYXJlZChS ZWxhdGlvbiBoZWFwKTsKIHN0YXRpYyBkb3VibGUgX2JyaW5fcGFyYWxsZWxfaGVhcHNjYW4oQnJp bkJ1aWxkU3RhdGUgKnN0YXRlKTsKIHN0YXRpYyBkb3VibGUgX2JyaW5fcGFyYWxsZWxfbWVyZ2Uo QnJpbkJ1aWxkU3RhdGUgKnN0YXRlKTsKIHN0YXRpYyB2b2lkIF9icmluX2xlYWRlcl9wYXJ0aWNp cGF0ZV9hc193b3JrZXIoQnJpbkJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsCkBAIC0yMzU3LDcgKzIz NTYsNiBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwg UmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiB7CiAJUGFyYWxsZWxDb250ZXh0ICpwY3h0 OwogCWludAkJCXNjYW50dXBsZXNvcnRzdGF0ZXM7Ci0JU25hcHNob3QJc25hcHNob3Q7CiAJU2l6 ZQkJZXN0YnJpbnNoYXJlZDsKIAlTaXplCQllc3Rzb3J0OwogCUJyaW5TaGFyZWQgKmJyaW5zaGFy ZWQ7CkBAIC0yMzY3LDYgKzIzNjUsNyBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRT dGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJQnVmZmVy VXNhZ2UgKmJ1ZmZlcnVzYWdlOwogCWJvb2wJCWxlYWRlcnBhcnRpY2lwYXRlcyA9IHRydWU7CiAJ Ym9vbAkJbmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90ID0gdHJ1ZTsKKwlib29sCQl3YWl0X2Zvcl9z bmFwc2hvdF9hdHRhY2g7CiAJaW50CQkJcXVlcnlsZW47CiAKICNpZmRlZiBESVNBQkxFX0xFQURF Ul9QQVJUSUNJUEFUSU9OCkBAIC0yMzg4LDI1ICsyMzg3LDI1IEBAIF9icmluX2JlZ2luX3BhcmFs bGVsKEJyaW5CdWlsZFN0YXRlICpidWlsZHN0YXRlLCBSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBp bmRleCwKIAkgKiBQcmVwYXJlIGZvciBzY2FuIG9mIHRoZSBiYXNlIHJlbGF0aW9uLiAgSW4gYSBu b3JtYWwgaW5kZXggYnVpbGQsIHdlIHVzZQogCSAqIFNuYXBzaG90QW55IGJlY2F1c2Ugd2UgbXVz dCByZXRyaWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRpbWUKIAkgKiBxdWFsIGNoZWNr cyAoYmVjYXVzZSB3ZSBoYXZlIHRvIGluZGV4IFJFQ0VOVExZX0RFQUQgdHVwbGVzKS4gIEluIGEK LQkgKiBjb25jdXJyZW50IGJ1aWxkLCB3ZSB0YWtlIGEgcmVndWxhciBNVkNDIHNuYXBzaG90IGFu ZCBpbmRleCB3aGF0ZXZlcidzCi0JICogbGl2ZSBhY2NvcmRpbmcgdG8gdGhhdC4KKwkgKiBjb25j dXJyZW50IGJ1aWxkLCB3ZSB0YWtlIGEgcmVndWxhciBNVkNDIHNuYXBzaG90IGFuZCBwdXNoIGl0 IGFzIGFjdGl2ZS4KKwkgKiBMYXRlciB3ZSBpbmRleCB3aGF0ZXZlcidzIGxpdmUgYWNjb3JkaW5n IHRvIHRoYXQgc25hcHNob3Qgd2hpbGUgdGhhdAorCSAqIHNuYXBzaG90IGlzIHJlc2V0IHBlcmlv ZGljYWxseS4KIAkgKi8KIAlpZiAoIWlzY29uY3VycmVudCkKIAl7CiAJCUFzc2VydChBY3RpdmVT bmFwc2hvdFNldCgpKTsKLQkJc25hcHNob3QgPSBTbmFwc2hvdEFueTsKIAkJbmVlZF9wb3BfYWN0 aXZlX3NuYXBzaG90ID0gZmFsc2U7CiAJfQogCWVsc2UKIAl7Ci0JCXNuYXBzaG90ID0gUmVnaXN0 ZXJTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCQlBc3NlcnQoIUFjdGl2ZVNu YXBzaG90U2V0KCkpOwogCQlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hv dCgpKTsKIAl9CiAKIAkvKgogCSAqIEVzdGltYXRlIHNpemUgZm9yIG91ciBvd24gUEFSQUxMRUxf S0VZX0JSSU5fU0hBUkVEIHdvcmtzcGFjZS4KIAkgKi8KLQllc3Ricmluc2hhcmVkID0gX2JyaW5f cGFyYWxsZWxfZXN0aW1hdGVfc2hhcmVkKGhlYXAsIHNuYXBzaG90KTsKKwllc3Ricmluc2hhcmVk ID0gX2JyaW5fcGFyYWxsZWxfZXN0aW1hdGVfc2hhcmVkKGhlYXApOwogCXNobV90b2NfZXN0aW1h dGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwgZXN0YnJpbnNoYXJlZCk7CiAJZXN0c29ydCA9IHR1 cGxlc29ydF9lc3RpbWF0ZV9zaGFyZWQoc2NhbnR1cGxlc29ydHN0YXRlcyk7CiAJc2htX3RvY19l c3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBlc3Rzb3J0KTsKQEAgLTI0NDYsOCArMjQ0 NSw2IEBAIF9icmluX2JlZ2luX3BhcmFsbGVsKEJyaW5CdWlsZFN0YXRlICpidWlsZHN0YXRlLCBS ZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwKIAl7CiAJCWlmIChuZWVkX3BvcF9hY3RpdmVf c25hcHNob3QpCiAJCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwotCQlpZiAoSXNNVkNDU25hcHNob3Qo c25hcHNob3QpKQotCQkJVW5yZWdpc3RlclNuYXBzaG90KHNuYXBzaG90KTsKIAkJRGVzdHJveVBh cmFsbGVsQ29udGV4dChwY3h0KTsKIAkJRXhpdFBhcmFsbGVsTW9kZSgpOwogCQlyZXR1cm47CkBA IC0yNDcyLDcgKzI0NjksOCBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAq YnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAKIAl0YWJsZV9wYXJh bGxlbHNjYW5faW5pdGlhbGl6ZShoZWFwLAogCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRnJv bUJyaW5TaGFyZWQoYnJpbnNoYXJlZCksCi0JCQkJCQkJCSAgc25hcHNob3QpOworCQkJCQkJCQkg IGlzY29uY3VycmVudCA/IEludmFsaWRTbmFwc2hvdCA6IFNuYXBzaG90QW55LAorCQkJCQkJCQkg IGlzY29uY3VycmVudCk7CiAKIAkvKgogCSAqIFN0b3JlIHNoYXJlZCB0dXBsZXNvcnQtcHJpdmF0 ZSBzdGF0ZSwgZm9yIHdoaWNoIHdlIHJlc2VydmVkIHNwYWNlLgpAQCAtMjUxOCw3ICsyNTE2LDYg QEAgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJpbkJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIFJlbGF0 aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogCQlicmlubGVhZGVyLT5ucGFydGljaXBhbnR0dXBs ZXNvcnRzKys7CiAJYnJpbmxlYWRlci0+YnJpbnNoYXJlZCA9IGJyaW5zaGFyZWQ7CiAJYnJpbmxl YWRlci0+c2hhcmVkc29ydCA9IHNoYXJlZHNvcnQ7Ci0JYnJpbmxlYWRlci0+c25hcHNob3QgPSBz bmFwc2hvdDsKIAlicmlubGVhZGVyLT53YWx1c2FnZSA9IHdhbHVzYWdlOwogCWJyaW5sZWFkZXIt PmJ1ZmZlcnVzYWdlID0gYnVmZmVydXNhZ2U7CiAKQEAgLTI1MzQsNiArMjUzMSwxNiBAQCBfYnJp bl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVh cCwgUmVsYXRpb24gaW5kZXgsCiAJLyogU2F2ZSBsZWFkZXIgc3RhdGUgbm93IHRoYXQgaXQncyBj bGVhciBidWlsZCB3aWxsIGJlIHBhcmFsbGVsICovCiAJYnVpbGRzdGF0ZS0+YnNfbGVhZGVyID0g YnJpbmxlYWRlcjsKIAorCS8qCisJICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGJ1aWxkIHNuYXBz aG90cyBhcmUgZ29pbmcgdG8gYmUgcmVzZXQgcGVyaW9kaWNhbGx5LgorCSAqIEluIGNhc2Ugd2hl biBsZWFkZXIgZ29pbmcgdG8gcmVzZXQgb3duIGFjdGl2ZSBzbmFwc2hvdCBhcyB3ZWxsIC0gd2Ug bmVlZCB0bworCSAqIHdhaXQgdW50aWwgYWxsIHdvcmtlcnMgaW1wb3J0ZWQgaW5pdGlhbCBzbmFw c2hvdC4KKwkgKi8KKwl3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2ggPSBpc2NvbmN1cnJlbnQgJiYg bGVhZGVycGFydGljaXBhdGVzOworCisJaWYgKHdhaXRfZm9yX3NuYXBzaG90X2F0dGFjaCkKKwkJ V2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0YWNoKHBjeHQsIHRydWUpOworCiAJLyogSm9pbiBo ZWFwIHNjYW4gb3Vyc2VsdmVzICovCiAJaWYgKGxlYWRlcnBhcnRpY2lwYXRlcykKIAkJX2JyaW5f bGVhZGVyX3BhcnRpY2lwYXRlX2FzX3dvcmtlcihidWlsZHN0YXRlLCBoZWFwLCBpbmRleCk7CkBA IC0yNTQyLDcgKzI1NDksOCBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAq YnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJICogQ2FsbGVyIG5l ZWRzIHRvIHdhaXQgZm9yIGFsbCBsYXVuY2hlZCB3b3JrZXJzIHdoZW4gd2UgcmV0dXJuLiAgTWFr ZQogCSAqIHN1cmUgdGhhdCB0aGUgZmFpbHVyZS10by1zdGFydCBjYXNlIHdpbGwgbm90IGhhbmcg Zm9yZXZlci4KIAkgKi8KLQlXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9BdHRhY2gocGN4dCk7CisJ aWYgKCF3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2gpCisJCVdhaXRGb3JQYXJhbGxlbFdvcmtlcnNU b0F0dGFjaChwY3h0LCBmYWxzZSk7CiAJaWYgKG5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCkKIAkJ UG9wQWN0aXZlU25hcHNob3QoKTsKIH0KQEAgLTI1NjUsOSArMjU3Myw2IEBAIF9icmluX2VuZF9w YXJhbGxlbChCcmluTGVhZGVyICpicmlubGVhZGVyLCBCcmluQnVpbGRTdGF0ZSAqc3RhdGUpCiAJ Zm9yIChpID0gMDsgaSA8IGJyaW5sZWFkZXItPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBpKysp CiAJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZicmlubGVhZGVyLT5idWZmZXJ1c2FnZVtpXSwg JmJyaW5sZWFkZXItPndhbHVzYWdlW2ldKTsKIAotCS8qIEZyZWUgbGFzdCByZWZlcmVuY2UgdG8g TVZDQyBzbmFwc2hvdCwgaWYgb25lIHdhcyB1c2VkICovCi0JaWYgKElzTVZDQ1NuYXBzaG90KGJy aW5sZWFkZXItPnNuYXBzaG90KSkKLQkJVW5yZWdpc3RlclNuYXBzaG90KGJyaW5sZWFkZXItPnNu YXBzaG90KTsKIAlEZXN0cm95UGFyYWxsZWxDb250ZXh0KGJyaW5sZWFkZXItPnBjeHQpOwogCUV4 aXRQYXJhbGxlbE1vZGUoKTsKIH0KQEAgLTI3NjcsMTQgKzI3NzIsMTQgQEAgX2JyaW5fcGFyYWxs ZWxfbWVyZ2UoQnJpbkJ1aWxkU3RhdGUgKnN0YXRlKQogCiAvKgogICogUmV0dXJucyBzaXplIG9m IHNoYXJlZCBtZW1vcnkgcmVxdWlyZWQgdG8gc3RvcmUgc3RhdGUgZm9yIGEgcGFyYWxsZWwKLSAq IGJyaW4gaW5kZXggYnVpbGQgYmFzZWQgb24gdGhlIHNuYXBzaG90IGl0cyBwYXJhbGxlbCBzY2Fu IHdpbGwgdXNlLgorICogYnJpbiBpbmRleCBidWlsZC4KICAqLwogc3RhdGljIFNpemUKLV9icmlu X3BhcmFsbGVsX2VzdGltYXRlX3NoYXJlZChSZWxhdGlvbiBoZWFwLCBTbmFwc2hvdCBzbmFwc2hv dCkKK19icmluX3BhcmFsbGVsX2VzdGltYXRlX3NoYXJlZChSZWxhdGlvbiBoZWFwKQogewogCS8q IGMuZi4gc2htX3RvY19hbGxvY2F0ZSBhcyB0byB3aHkgQlVGRkVSQUxJR04gaXMgdXNlZCAqLwog CXJldHVybiBhZGRfc2l6ZShCVUZGRVJBTElHTihzaXplb2YoQnJpblNoYXJlZCkpLAotCQkJCQl0 YWJsZV9wYXJhbGxlbHNjYW5fZXN0aW1hdGUoaGVhcCwgc25hcHNob3QpKTsKKwkJCQkJdGFibGVf cGFyYWxsZWxzY2FuX2VzdGltYXRlKGhlYXAsIEludmFsaWRTbmFwc2hvdCkpOwogfQogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKaW5kZXggOTgwYzUxZTMyYjku LjJlNTE2MzYwOWMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f aGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK QEAgLTEyMzEsMTQgKzEyMzEsMTMgQEAgaGVhcGFtX2luZGV4X2J1aWxkX3JhbmdlX3NjYW4oUmVs YXRpb24gaGVhcFJlbGF0aW9uLAogCSAqIFNuYXBzaG90QW55IGJlY2F1c2Ugd2UgbXVzdCByZXRy aWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRpbWUKIAkgKiBxdWFsIGNoZWNrcyAoYmVj YXVzZSB3ZSBoYXZlIHRvIGluZGV4IFJFQ0VOVExZX0RFQUQgdHVwbGVzKS4gSW4gYQogCSAqIGNv bmN1cnJlbnQgYnVpbGQsIG9yIGR1cmluZyBib290c3RyYXAsIHdlIHRha2UgYSByZWd1bGFyIE1W Q0Mgc25hcHNob3QKLQkgKiBhbmQgaW5kZXggd2hhdGV2ZXIncyBsaXZlIGFjY29yZGluZyB0byB0 aGF0LgorCSAqIGFuZCBpbmRleCB3aGF0ZXZlcidzIGxpdmUgYWNjb3JkaW5nIHRvIHRoYXQgd2hp bGUgdGhhdCBzbmFwc2hvdCBpcyByZXNldAorCSAqIGV2ZXJ5IHNvIG9mdGVuIChpbiBjYXNlIG9m IG5vbi11bmlxdWUgaW5kZXgpLgogCSAqLwogCU9sZGVzdFhtaW4gPSBJbnZhbGlkVHJhbnNhY3Rp b25JZDsKIAogCS8qCiAJICogRm9yIHVuaXF1ZSBpbmRleCB3ZSBuZWVkIGNvbnNpc3RlbnQgc25h cHNob3QgZm9yIHRoZSB3aG9sZSBzY2FuLgotCSAqIEluIGNhc2Ugb2YgcGFyYWxsZWwgc2NhbiBz b21lIGFkZGl0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZWQKLQkgKiB0byBwZXJmb3JtIHNj YW4gd2l0aCBTT19SRVNFVF9TTkFQU0hPVCB3aGljaCBpcyBub3QgeWV0IHJlYWR5LgogCSAqLwog CXJlc2V0X3NuYXBzaG90cyA9IGluZGV4SW5mby0+aWlfQ29uY3VycmVudCAmJgogCQkJCQkgICFp bmRleEluZm8tPmlpX1VuaXF1ZSAmJgpAQCAtMTMwMCw4ICsxMjk5LDExIEBAIGhlYXBhbV9pbmRl eF9idWlsZF9yYW5nZV9zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJQXNzZXJ0KCFJc0Jv b3RzdHJhcFByb2Nlc3NpbmdNb2RlKCkpOwogCQlBc3NlcnQoYWxsb3dfc3luYyk7CiAJCXNuYXBz aG90ID0gc2Nhbi0+cnNfc25hcHNob3Q7Ci0JCVB1c2hBY3RpdmVTbmFwc2hvdChzbmFwc2hvdCk7 Ci0JCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IHRydWU7CisJCWlmICghcmVzZXRfc25hcHNo b3RzKQorCQl7CisJCQlQdXNoQWN0aXZlU25hcHNob3Qoc25hcHNob3QpOworCQkJbmVlZF9wb3Bf YWN0aXZlX3NuYXBzaG90ID0gdHJ1ZTsKKwkJfQogCX0KIAogCWhzY2FuID0gKEhlYXBTY2FuRGVz Yykgc2NhbjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKaW5kZXggNWM0NTgxYWZiMWEu LjJhY2JmMTIxNzQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNv cnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpAQCAtMTQxMSw2 ICsxNDExLDggQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwg Ym9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2Fn ZTsKIAlib29sCQlsZWFkZXJwYXJ0aWNpcGF0ZXMgPSB0cnVlOwogCWJvb2wJCW5lZWRfcG9wX2Fj dGl2ZV9zbmFwc2hvdCA9IHRydWU7CisJYm9vbAkJcmVzZXRfc25hcHNob3Q7CisJYm9vbAkJd2Fp dF9mb3Jfc25hcHNob3RfYXR0YWNoOwogCWludAkJCXF1ZXJ5bGVuOwogCiAjaWZkZWYgRElTQUJM RV9MRUFERVJfUEFSVElDSVBBVElPTgpAQCAtMTQyOCwxMiArMTQzMCwyMSBAQCBfYnRfYmVnaW5f cGFyYWxsZWwoQlRCdWlsZFN0YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwgaW50 IHJlcXVlc3QpCiAKIAlzY2FudHVwbGVzb3J0c3RhdGVzID0gbGVhZGVycGFydGljaXBhdGVzID8g cmVxdWVzdCArIDEgOiByZXF1ZXN0OwogCisgICAgLyoKKwkgKiBGb3IgY29uY3VycmVudCBub24t dW5pcXVlIGluZGV4IGJ1aWxkcywgd2UgY2FuIHBlcmlvZGljYWxseSByZXNldCBzbmFwc2hvdHMK KwkgKiB0byBhbGxvdyB0aGUgeG1pbiBob3Jpem9uIHRvIGFkdmFuY2UuIFRoaXMgaXMgc2FmZSBz aW5jZSB0aGVzZSBidWlsZHMgZG9uJ3QKKwkgKiByZXF1aXJlIGEgY29uc2lzdGVudCB2aWV3IGFj cm9zcyB0aGUgZW50aXJlIHNjYW4uIFVuaXF1ZSBpbmRleGVzIHN0aWxsIG5lZWQKKwkgKiBhIHN0 YWJsZSBzbmFwc2hvdCB0byBwcm9wZXJseSBlbmZvcmNlIHVuaXF1ZW5lc3MgY29uc3RyYWludHMu CisgICAgICovCisJcmVzZXRfc25hcHNob3QgPSBpc2NvbmN1cnJlbnQgJiYgIWJ0c3Bvb2wtPmlz dW5pcXVlOworCiAJLyoKIAkgKiBQcmVwYXJlIGZvciBzY2FuIG9mIHRoZSBiYXNlIHJlbGF0aW9u LiAgSW4gYSBub3JtYWwgaW5kZXggYnVpbGQsIHdlIHVzZQogCSAqIFNuYXBzaG90QW55IGJlY2F1 c2Ugd2UgbXVzdCByZXRyaWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRpbWUKIAkgKiBx dWFsIGNoZWNrcyAoYmVjYXVzZSB3ZSBoYXZlIHRvIGluZGV4IFJFQ0VOVExZX0RFQUQgdHVwbGVz KS4gIEluIGEKIAkgKiBjb25jdXJyZW50IGJ1aWxkLCB3ZSB0YWtlIGEgcmVndWxhciBNVkNDIHNu YXBzaG90IGFuZCBpbmRleCB3aGF0ZXZlcidzCi0JICogbGl2ZSBhY2NvcmRpbmcgdG8gdGhhdC4K KwkgKiBsaXZlIGFjY29yZGluZyB0byB0aGF0LCB3aGlsZSB0aGF0IHNuYXBzaG90IG1heSBiZSBy ZXNldCBwZXJpb2RpY2FsbHkgaW4KKwkgKiBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXguCiAJICov CiAJaWYgKCFpc2NvbmN1cnJlbnQpCiAJewpAQCAtMTQ0MSw2ICsxNDUyLDExIEBAIF9idF9iZWdp bl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25jdXJyZW50LCBp bnQgcmVxdWVzdCkKIAkJc25hcHNob3QgPSBTbmFwc2hvdEFueTsKIAkJbmVlZF9wb3BfYWN0aXZl X3NuYXBzaG90ID0gZmFsc2U7CiAJfQorCWVsc2UgaWYgKHJlc2V0X3NuYXBzaG90KQorCXsKKwkJ c25hcHNob3QgPSBJbnZhbGlkU25hcHNob3Q7CisJCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFu c2FjdGlvblNuYXBzaG90KCkpOworCX0KIAllbHNlCiAJewogCQlzbmFwc2hvdCA9IFJlZ2lzdGVy U25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKQEAgLTE1MDEsNyArMTUxNyw3IEBA IF9idF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25j dXJyZW50LCBpbnQgcmVxdWVzdCkKIAl7CiAJCWlmIChuZWVkX3BvcF9hY3RpdmVfc25hcHNob3Qp CiAJCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwotCQlpZiAoSXNNVkNDU25hcHNob3Qoc25hcHNob3Qp KQorCQlpZiAoc25hcHNob3QgIT0gSW52YWxpZFNuYXBzaG90ICYmIElzTVZDQ1NuYXBzaG90KHNu YXBzaG90KSkKIAkJCVVucmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7CiAJCURlc3Ryb3lQYXJh bGxlbENvbnRleHQocGN4dCk7CiAJCUV4aXRQYXJhbGxlbE1vZGUoKTsKQEAgLTE1MjgsNyArMTU0 NCw4IEBAIF9idF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wg aXNjb25jdXJyZW50LCBpbnQgcmVxdWVzdCkKIAlidHNoYXJlZC0+YnJva2VuaG90Y2hhaW4gPSBm YWxzZTsKIAl0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShidHNwb29sLT5oZWFwLAogCQkJ CQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRnJvbUJUU2hhcmVkKGJ0c2hhcmVkKSwKLQkJCQkJCQkJ ICBzbmFwc2hvdCk7CisJCQkJCQkJCSAgc25hcHNob3QsCisJCQkJCQkJCSAgcmVzZXRfc25hcHNo b3QpOwogCiAJLyoKIAkgKiBTdG9yZSBzaGFyZWQgdHVwbGVzb3J0LXByaXZhdGUgc3RhdGUsIGZv ciB3aGljaCB3ZSByZXNlcnZlZCBzcGFjZS4KQEAgLTE2MDQsNiArMTYyMSwxNiBAQCBfYnRfYmVn aW5fcGFyYWxsZWwoQlRCdWlsZFN0YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwg aW50IHJlcXVlc3QpCiAJLyogU2F2ZSBsZWFkZXIgc3RhdGUgbm93IHRoYXQgaXQncyBjbGVhciBi dWlsZCB3aWxsIGJlIHBhcmFsbGVsICovCiAJYnVpbGRzdGF0ZS0+YnRsZWFkZXIgPSBidGxlYWRl cjsKIAorCS8qCisJICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGJ1aWxkIHNuYXBzaG90cyBhcmUg Z29pbmcgdG8gYmUgcmVzZXQgcGVyaW9kaWNhbGx5LgorCSAqIEluIGNhc2Ugd2hlbiBsZWFkZXIg Z29pbmcgdG8gcmVzZXQgb3duIGFjdGl2ZSBzbmFwc2hvdCBhcyB3ZWxsIC0gd2UgbmVlZCB0bwor CSAqIHdhaXQgdW50aWwgYWxsIHdvcmtlcnMgaW1wb3J0ZWQgaW5pdGlhbCBzbmFwc2hvdC4KKwkg Ki8KKwl3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2ggPSByZXNldF9zbmFwc2hvdCAmJiBsZWFkZXJw YXJ0aWNpcGF0ZXM7CisKKwlpZiAod2FpdF9mb3Jfc25hcHNob3RfYXR0YWNoKQorCQlXYWl0Rm9y UGFyYWxsZWxXb3JrZXJzVG9BdHRhY2gocGN4dCwgdHJ1ZSk7CisKIAkvKiBKb2luIGhlYXAgc2Nh biBvdXJzZWx2ZXMgKi8KIAlpZiAobGVhZGVycGFydGljaXBhdGVzKQogCQlfYnRfbGVhZGVyX3Bh cnRpY2lwYXRlX2FzX3dvcmtlcihidWlsZHN0YXRlKTsKQEAgLTE2MTIsNyArMTYzOSw4IEBAIF9i dF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25jdXJy ZW50LCBpbnQgcmVxdWVzdCkKIAkgKiBDYWxsZXIgbmVlZHMgdG8gd2FpdCBmb3IgYWxsIGxhdW5j aGVkIHdvcmtlcnMgd2hlbiB3ZSByZXR1cm4uICBNYWtlCiAJICogc3VyZSB0aGF0IHRoZSBmYWls dXJlLXRvLXN0YXJ0IGNhc2Ugd2lsbCBub3QgaGFuZyBmb3JldmVyLgogCSAqLwotCVdhaXRGb3JQ YXJhbGxlbFdvcmtlcnNUb0F0dGFjaChwY3h0KTsKKwlpZiAoIXdhaXRfZm9yX3NuYXBzaG90X2F0 dGFjaCkKKwkJV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0YWNoKHBjeHQsIGZhbHNlKTsKIAlp ZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90KQogCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQpA QCAtMTYzNiw3ICsxNjY0LDcgQEAgX2J0X2VuZF9wYXJhbGxlbChCVExlYWRlciAqYnRsZWFkZXIp CiAJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZidGxlYWRlci0+YnVmZmVydXNhZ2VbaV0sICZi dGxlYWRlci0+d2FsdXNhZ2VbaV0pOwogCiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkND IHNuYXBzaG90LCBpZiBvbmUgd2FzIHVzZWQgKi8KLQlpZiAoSXNNVkNDU25hcHNob3QoYnRsZWFk ZXItPnNuYXBzaG90KSkKKwlpZiAoYnRsZWFkZXItPnNuYXBzaG90ICE9IEludmFsaWRTbmFwc2hv dCAmJiBJc01WQ0NTbmFwc2hvdChidGxlYWRlci0+c25hcHNob3QpKQogCQlVbnJlZ2lzdGVyU25h cHNob3QoYnRsZWFkZXItPnNuYXBzaG90KTsKIAlEZXN0cm95UGFyYWxsZWxDb250ZXh0KGJ0bGVh ZGVyLT5wY3h0KTsKIAlFeGl0UGFyYWxsZWxNb2RlKCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxl YW0uYwppbmRleCBiZDg3MTViNjc5Ny4uY2FjN2E5ZWE4OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxl L3RhYmxlYW0uYwpAQCAtMTMxLDEwICsxMzEsMTAgQEAgdGFibGVfcGFyYWxsZWxzY2FuX2VzdGlt YXRlKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QpCiB7CiAJU2l6ZQkJc3ogPSAwOwog Ci0JaWYgKElzTVZDQ1NuYXBzaG90KHNuYXBzaG90KSkKKwlpZiAoc25hcHNob3QgIT0gSW52YWxp ZFNuYXBzaG90ICYmIElzTVZDQ1NuYXBzaG90KHNuYXBzaG90KSkKIAkJc3ogPSBhZGRfc2l6ZShz eiwgRXN0aW1hdGVTbmFwc2hvdFNwYWNlKHNuYXBzaG90KSk7CiAJZWxzZQotCQlBc3NlcnQoc25h cHNob3QgPT0gU25hcHNob3RBbnkpOworCQlBc3NlcnQoc25hcHNob3QgPT0gU25hcHNob3RBbnkg fHwgc25hcHNob3QgPT0gSW52YWxpZFNuYXBzaG90KTsKIAogCXN6ID0gYWRkX3NpemUoc3osIHJl bC0+cmRfdGFibGVhbS0+cGFyYWxsZWxzY2FuX2VzdGltYXRlKHJlbCkpOwogCkBAIC0xNDMsMjEg KzE0MywzNiBAQCB0YWJsZV9wYXJhbGxlbHNjYW5fZXN0aW1hdGUoUmVsYXRpb24gcmVsLCBTbmFw c2hvdCBzbmFwc2hvdCkKIAogdm9pZAogdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUoUmVs YXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCi0JCQkJCQkJICBTbmFwc2hv dCBzbmFwc2hvdCkKKwkJCQkJCQkgIFNuYXBzaG90IHNuYXBzaG90LCBib29sIHJlc2V0X3NuYXBz aG90KQogewogCVNpemUJCXNuYXBzaG90X29mZiA9IHJlbC0+cmRfdGFibGVhbS0+cGFyYWxsZWxz Y2FuX2luaXRpYWxpemUocmVsLCBwc2Nhbik7CiAKIAlwc2Nhbi0+cGhzX3NuYXBzaG90X29mZiA9 IHNuYXBzaG90X29mZjsKIAotCWlmIChJc01WQ0NTbmFwc2hvdChzbmFwc2hvdCkpCisJLyoKKwkg KiBJbml0aWFsaXplIHBhcmFsbGVsIHNjYW4gZGVzY3JpcHRpb24uIEZvciBub3JtYWwgc2NhbnMg d2l0aCBhIHJlZ3VsYXIKKwkgKiBNVkNDIHNuYXBzaG90LCBzZXJpYWxpemUgdGhlIHNuYXBzaG90 IGluZm8uIEZvciBzY2FucyB0aGF0IHVzZSBwZXJpb2RpYworCSAqIHNuYXBzaG90IHJlc2V0cywg bWFyayB0aGUgc2NhbiBhY2NvcmRpbmdseS4KKwkgKi8KKwlpZiAocmVzZXRfc25hcHNob3QpCisJ eworCQlBc3NlcnQoc25hcHNob3QgPT0gSW52YWxpZFNuYXBzaG90KTsKKwkJcHNjYW4tPnBoc19z bmFwc2hvdF9hbnkgPSBmYWxzZTsKKwkJcHNjYW4tPnBoc19yZXNldF9zbmFwc2hvdCA9IHRydWU7 CisJCUlOSkVDVElPTl9QT0lOVCgidGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUiKTsKKwl9 CisJZWxzZSBpZiAoSXNNVkNDU25hcHNob3Qoc25hcHNob3QpKQogCXsKIAkJU2VyaWFsaXplU25h cHNob3Qoc25hcHNob3QsIChjaGFyICopIHBzY2FuICsgcHNjYW4tPnBoc19zbmFwc2hvdF9vZmYp OwogCQlwc2Nhbi0+cGhzX3NuYXBzaG90X2FueSA9IGZhbHNlOworCQlwc2Nhbi0+cGhzX3Jlc2V0 X3NuYXBzaG90ID0gZmFsc2U7CiAJfQogCWVsc2UKIAl7CiAJCUFzc2VydChzbmFwc2hvdCA9PSBT bmFwc2hvdEFueSk7CisJCUFzc2VydCghcmVzZXRfc25hcHNob3QpOwogCQlwc2Nhbi0+cGhzX3Nu YXBzaG90X2FueSA9IHRydWU7CisJCXBzY2FuLT5waHNfcmVzZXRfc25hcHNob3QgPSBmYWxzZTsK IAl9CiB9CiAKQEAgLTE3MCw3ICsxODUsMTkgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJl bGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAKIAlBc3NlcnQo UmVsRmlsZUxvY2F0b3JFcXVhbHMocmVsYXRpb24tPnJkX2xvY2F0b3IsIHBzY2FuLT5waHNfbG9j YXRvcikpOwogCi0JaWYgKCFwc2Nhbi0+cGhzX3NuYXBzaG90X2FueSkKKwkvKgorCSAqIEZvciBz Y2FucyB0aGF0CisJICogdXNlIHBlcmlvZGljIHNuYXBzaG90IHJlc2V0cywgbWFyayB0aGUgc2Nh biBhY2NvcmRpbmdseSBhbmQgdXNlIHRoZSBhY3RpdmUKKwkgKiBzbmFwc2hvdCBhcyB0aGUgaW5p dGlhbCBzdGF0ZS4KKwkgKi8KKwlpZiAocHNjYW4tPnBoc19yZXNldF9zbmFwc2hvdCkKKwl7CisJ CUFzc2VydChBY3RpdmVTbmFwc2hvdFNldCgpKTsKKwkJZmxhZ3MgfD0gU09fUkVTRVRfU05BUFNI T1Q7CisJCS8qIFN0YXJ0IHdpdGggY3VycmVudCBhY3RpdmUgc25hcHNob3QuICovCisJCXNuYXBz aG90ID0gR2V0QWN0aXZlU25hcHNob3QoKTsKKwl9CisJZWxzZSBpZiAoIXBzY2FuLT5waHNfc25h cHNob3RfYW55KQogCXsKIAkJLyogU25hcHNob3Qgd2FzIHNlcmlhbGl6ZWQgLS0gcmVzdG9yZSBp dCAqLwogCQlzbmFwc2hvdCA9IFJlc3RvcmVTbmFwc2hvdCgoY2hhciAqKSBwc2NhbiArIHBzY2Fu LT5waHNfc25hcHNob3Rfb2ZmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3BhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9wYXJhbGxlbC5jCmlu ZGV4IDBhMWUwODllYzFkLi5kNDljNmVlNDEwZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vcGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9w YXJhbGxlbC5jCkBAIC03Niw2ICs3Niw3IEBACiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9SRUxNQVBQ RVJfU1RBVEUJCVVJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGMDAwRCkKICNkZWZpbmUgUEFSQUxM RUxfS0VZX1VOQ09NTUlUVEVERU5VTVMJCVVJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGMDAwRSkK ICNkZWZpbmUgUEFSQUxMRUxfS0VZX0NMSUVOVENPTk5JTkZPCQkJVUlOVDY0Q09OU1QoMHhGRkZG RkZGRkZGRkYwMDBGKQorI2RlZmluZSBQQVJBTExFTF9LRVlfU05BUFNIT1RfUkVTVE9SRUQJCVVJ TlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGMDAxMCkKIAogLyogRml4ZWQtc2l6ZSBwYXJhbGxlbCBz dGF0ZS4gKi8KIHR5cGVkZWYgc3RydWN0IEZpeGVkUGFyYWxsZWxTdGF0ZQpAQCAtMzAxLDYgKzMw MiwxMCBAQCBJbml0aWFsaXplUGFyYWxsZWxEU00oUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogCQkJ CQkJCQkJCXBjeHQtPm53b3JrZXJzKSk7CiAJCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ ZXN0aW1hdG9yLCAxKTsKIAorCQlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0 b3IsIG11bF9zaXplKHNpemVvZihib29sKSwKKwkJCQkJCQkgICBwY3h0LT5ud29ya2VycykpOwor CQlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CisKIAkJLyogRXN0 aW1hdGUgaG93IG11Y2ggd2UnbGwgbmVlZCBmb3IgdGhlIGVudHJ5cG9pbnQgaW5mby4gKi8KIAkJ c2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBzdHJsZW4ocGN4dC0+bGli cmFyeV9uYW1lKSArCiAJCQkJCQkJICAgc3RybGVuKHBjeHQtPmZ1bmN0aW9uX25hbWUpICsgMik7 CkBAIC0zNzIsNiArMzc3LDcgQEAgSW5pdGlhbGl6ZVBhcmFsbGVsRFNNKFBhcmFsbGVsQ29udGV4 dCAqcGN4dCkKIAkJY2hhcgkgICAqZW50cnlwb2ludHN0YXRlOwogCQljaGFyCSAgICp1bmNvbW1p dHRlZGVudW1zc3BhY2U7CiAJCWNoYXIJICAgKmNsaWVudGNvbm5pbmZvc3BhY2U7CisJCWJvb2wJ ICAgKnNuYXBzaG90X3NldF9mbGFnX3NwYWNlOwogCQlTaXplCQlsbmFtZWxlbjsKIAogCQkvKiBT ZXJpYWxpemUgc2hhcmVkIGxpYnJhcmllcyB3ZSBoYXZlIGxvYWRlZC4gKi8KQEAgLTQ4Nyw2ICs0 OTMsMTkgQEAgSW5pdGlhbGl6ZVBhcmFsbGVsRFNNKFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKIAkJ c3RyY3B5KGVudHJ5cG9pbnRzdGF0ZSwgcGN4dC0+bGlicmFyeV9uYW1lKTsKIAkJc3RyY3B5KGVu dHJ5cG9pbnRzdGF0ZSArIGxuYW1lbGVuICsgMSwgcGN4dC0+ZnVuY3Rpb25fbmFtZSk7CiAJCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX0VOVFJZUE9JTlQsIGVudHJ5cG9p bnRzdGF0ZSk7CisKKwkJLyoKKwkJICogRXN0YWJsaXNoIGR5bmFtaWMgc2hhcmVkIG1lbW9yeSB0 byBwYXNzIGluZm9ybWF0aW9uIGFib3V0IGltcG9ydGluZworCQkgKiBvZiBzbmFwc2hvdC4KKwkJ ICovCisJCXNuYXBzaG90X3NldF9mbGFnX3NwYWNlID0KKwkJCQlzaG1fdG9jX2FsbG9jYXRlKHBj eHQtPnRvYywgbXVsX3NpemUoc2l6ZW9mKGJvb2wpLCBwY3h0LT5ud29ya2VycykpOworCQlmb3Ig KGkgPSAwOyBpIDwgcGN4dC0+bndvcmtlcnM7ICsraSkKKwkJeworCQkJcGN4dC0+d29ya2VyW2ld LnNuYXBzaG90X3Jlc3RvcmVkID0gc25hcHNob3Rfc2V0X2ZsYWdfc3BhY2UgKyBpICogc2l6ZW9m KGJvb2wpOworCQkJKnBjeHQtPndvcmtlcltpXS5zbmFwc2hvdF9yZXN0b3JlZCA9IGZhbHNlOwor CQl9CisJCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NOQVBTSE9UX1JF U1RPUkVELCBzbmFwc2hvdF9zZXRfZmxhZ19zcGFjZSk7CiAJfQogCiAJLyogVXBkYXRlIG53b3Jr ZXJzX3RvX2xhdW5jaCwgaW4gY2FzZSB3ZSBjaGFuZ2VkIG53b3JrZXJzIGFib3ZlLiAqLwpAQCAt NTQyLDYgKzU2MSwxNyBAQCBSZWluaXRpYWxpemVQYXJhbGxlbERTTShQYXJhbGxlbENvbnRleHQg KnBjeHQpCiAJCQlwY3h0LT53b3JrZXJbaV0uZXJyb3JfbXFoID0gc2htX21xX2F0dGFjaChtcSwg cGN4dC0+c2VnLCBOVUxMKTsKIAkJfQogCX0KKworCS8qIFNldCBzbmFwc2hvdCByZXN0b3JlZCBm bGFnIHRvIGZhbHNlLiAqLworCWlmIChwY3h0LT5ud29ya2VycyA+IDApCisJeworCQlib29sCSAg ICpzbmFwc2hvdF9yZXN0b3JlZF9zcGFjZTsKKwkJaW50CQkJaTsKKwkJc25hcHNob3RfcmVzdG9y ZWRfc3BhY2UgPQorCQkJCXNobV90b2NfbG9va3VwKHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NO QVBTSE9UX1JFU1RPUkVELCBmYWxzZSk7CisJCWZvciAoaSA9IDA7IGkgPCBwY3h0LT5ud29ya2Vy czsgKytpKQorCQkJc25hcHNob3RfcmVzdG9yZWRfc3BhY2VbaV0gPSBmYWxzZTsKKwl9CiB9CiAK IC8qCkBAIC02NTcsNiArNjg3LDEwIEBAIExhdW5jaFBhcmFsbGVsV29ya2VycyhQYXJhbGxlbENv bnRleHQgKnBjeHQpCiAgKiBXYWl0IGZvciBhbGwgd29ya2VycyB0byBhdHRhY2ggdG8gdGhlaXIg ZXJyb3IgcXVldWVzLCBhbmQgdGhyb3cgYW4gZXJyb3IgaWYKICAqIGFueSB3b3JrZXIgZmFpbHMg dG8gZG8gdGhpcy4KICAqCisgKiB3YWl0X2Zvcl9zbmFwc2hvdDogdHJhY2sgd2hldGhlciBlYWNo IHBhcmFsbGVsIHdvcmtlciBoYXMgc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkCisgKiBpdHMgc25hcHNo b3QuIFRoaXMgaXMgbmVlZGVkIHdoZW4gdXNpbmcgcGVyaW9kaWMgc25hcHNob3QgcmVzZXRzIHRv IGVuc3VyZSBhbGwKKyAqIHdvcmtlcnMgaGF2ZSBhIHZhbGlkIGluaXRpYWwgc25hcHNob3QgYmVm b3JlIHByb2NlZWRpbmcgd2l0aCB0aGUgc2Nhbi4KKyAqCiAgKiBDYWxsZXJzIGNhbiBhc3N1bWUg dGhhdCBpZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgc3VjY2Vzc2Z1bGx5LCB0aGVuIHRoZQogICog bnVtYmVyIG9mIHdvcmtlcnMgZ2l2ZW4gYnkgcGN4dC0+bndvcmtlcnNfbGF1bmNoZWQgaGF2ZSBp bml0aWFsaXplZCBhbmQKICAqIGF0dGFjaGVkIHRvIHRoZWlyIGVycm9yIHF1ZXVlcy4gIFdoZXRo ZXIgb3Igbm90IHRoZXNlIHdvcmtlcnMgYXJlIGd1YXJhbnRlZWQKQEAgLTY4Niw3ICs3MjAsNyBA QCBMYXVuY2hQYXJhbGxlbFdvcmtlcnMoUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogICogY2FsbCB0 aGlzIGZ1bmN0aW9uIGF0IGFsbC4KICAqLwogdm9pZAotV2FpdEZvclBhcmFsbGVsV29ya2Vyc1Rv QXR0YWNoKFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKK1dhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0 dGFjaChQYXJhbGxlbENvbnRleHQgKnBjeHQsIGJvb2wgd2FpdF9mb3Jfc25hcHNob3QpCiB7CiAJ aW50CQkJaTsKIApAQCAtNzMwLDkgKzc2NCwxMiBAQCBXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9B dHRhY2goUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogCQkJCW1xID0gc2htX21xX2dldF9xdWV1ZShw Y3h0LT53b3JrZXJbaV0uZXJyb3JfbXFoKTsKIAkJCQlpZiAoc2htX21xX2dldF9zZW5kZXIobXEp ICE9IE5VTEwpCiAJCQkJewotCQkJCQkvKiBZZXMsIHNvIGl0IGlzIGtub3duIHRvIGJlIGF0dGFj aGVkLiAqLwotCQkJCQlwY3h0LT5rbm93bl9hdHRhY2hlZF93b3JrZXJzW2ldID0gdHJ1ZTsKLQkJ CQkJKytwY3h0LT5ua25vd25fYXR0YWNoZWRfd29ya2VyczsKKwkJCQkJaWYgKCF3YWl0X2Zvcl9z bmFwc2hvdCB8fCAqKHBjeHQtPndvcmtlcltpXS5zbmFwc2hvdF9yZXN0b3JlZCkpCisJCQkJCXsK KwkJCQkJCS8qIFllcywgc28gaXQgaXMga25vd24gdG8gYmUgYXR0YWNoZWQuICovCisJCQkJCQlw Y3h0LT5rbm93bl9hdHRhY2hlZF93b3JrZXJzW2ldID0gdHJ1ZTsKKwkJCQkJCSsrcGN4dC0+bmtu b3duX2F0dGFjaGVkX3dvcmtlcnM7CisJCQkJCX0KIAkJCQl9CiAJCQl9CiAJCQllbHNlIGlmIChz dGF0dXMgPT0gQkdXSF9TVE9QUEVEKQpAQCAtMTI5MSw2ICsxMzI4LDcgQEAgUGFyYWxsZWxXb3Jr ZXJNYWluKERhdHVtIG1haW5fYXJnKQogCXNobV90b2MgICAgKnRvYzsKIAlGaXhlZFBhcmFsbGVs U3RhdGUgKmZwczsKIAljaGFyCSAgICplcnJvcl9xdWV1ZV9zcGFjZTsKKwlib29sCSAgICpzbmFw c2hvdF9yZXN0b3JlZF9zcGFjZTsKIAlzaG1fbXEJICAgKm1xOwogCXNobV9tcV9oYW5kbGUgKm1x aDsKIAljaGFyCSAgICpsaWJyYXJ5c3BhY2U7CkBAIC0xNDg5LDYgKzE1MjcsMTAgQEAgUGFyYWxs ZWxXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQogCQkJCQkJCSAgIGZwcy0+cGFyYWxsZWxfbGVh ZGVyX3BncHJvYyk7CiAJUHVzaEFjdGl2ZVNuYXBzaG90KGFzbmFwc2hvdCk7CiAKKwkvKiBTbmFw c2hvdCBpcyByZXN0b3JlZCwgc2V0IGZsYWcgdG8gbWFrZSBsZWFkZXIga25vdyBhYm91dCBpdC4g Ki8KKwlzbmFwc2hvdF9yZXN0b3JlZF9zcGFjZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxM RUxfS0VZX1NOQVBTSE9UX1JFU1RPUkVELCBmYWxzZSk7CisJc25hcHNob3RfcmVzdG9yZWRfc3Bh Y2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdID0gdHJ1ZTsKKwogCS8qCiAJICogV2UndmUgY2hhbmdl ZCB3aGljaCB0dXBsZXMgd2UgY2FuIHNlZSwgYW5kIG11c3QgdGhlcmVmb3JlIGludmFsaWRhdGUK IAkgKiBzeXN0ZW0gY2FjaGVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKaW5kZXggN2Ni MTJhMTFjMmQuLjI5MDdiMzY2NzkxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKQEAg LTI2Miw3ICsyNjIsOCBAQCBFeGVjU2VxU2NhbkluaXRpYWxpemVEU00oU2VxU2NhblN0YXRlICpu b2RlLAogCXBzY2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5vZGUtPnBzY2FuX2xl bik7CiAJdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUobm9kZS0+c3Muc3NfY3VycmVudFJl bGF0aW9uLAogCQkJCQkJCQkgIHBzY2FuLAotCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3Qp OworCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCSAgZmFsc2UpOwogCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBw c2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2Fu X3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9zbmFwbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy90 aW1lL3NuYXBtZ3IuYwppbmRleCAzYTczNTdhMDUwZC4uMTQ4ZTE5ODJjYWQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L3RpbWUvc25hcG1nci5jCkBAIC0yOTEsMTQgKzI5MSw2IEBAIEdldFRyYW5zYWN0aW9uU25hcHNo b3Qodm9pZCkKIFNuYXBzaG90CiBHZXRMYXRlc3RTbmFwc2hvdCh2b2lkKQogewotCS8qCi0JICog V2UgbWlnaHQgYmUgYWJsZSB0byByZWxheCB0aGlzLCBidXQgbm90aGluZyB0aGF0IGNvdWxkIG90 aGVyd2lzZSB3b3JrCi0JICogbmVlZHMgaXQuCi0JICovCi0JaWYgKElzSW5QYXJhbGxlbE1vZGUo KSkKLQkJZWxvZyhFUlJPUiwKLQkJCSAiY2Fubm90IHVwZGF0ZSBTZWNvbmRhcnlTbmFwc2hvdCBk dXJpbmcgYSBwYXJhbGxlbCBvcGVyYXRpb24iKTsKLQogCS8qCiAJICogU28gZmFyIHRoZXJlIGFy ZSBubyBjYXNlcyByZXF1aXJpbmcgc3VwcG9ydCBmb3IgR2V0TGF0ZXN0U25hcHNob3QoKQogCSAq IGR1cmluZyBsb2dpY2FsIGRlY29kaW5nLCBidXQgaXQgd291bGRuJ3QgYmUgaGFyZCB0byBhZGQg aWYgcmVxdWlyZWQuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcGFyYWxsZWwuaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9wYXJhbGxlbC5oCmluZGV4IDY5ZmZlNTQ5OGY5Li45NjRhN2U5 NDViZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmgKQEAgLTI2LDYgKzI2LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgUGFyYWxsZWxXb3JrZXJJbmZvCiB7CiAJQmFja2dyb3VuZFdvcmtlckhhbmRsZSAqYmd3aGFu ZGxlOwogCXNobV9tcV9oYW5kbGUgKmVycm9yX21xaDsKKwlib29sCQkgICpzbmFwc2hvdF9yZXN0 b3JlZDsKIH0gUGFyYWxsZWxXb3JrZXJJbmZvOwogCiB0eXBlZGVmIHN0cnVjdCBQYXJhbGxlbENv bnRleHQKQEAgLTY1LDcgKzY2LDcgQEAgZXh0ZXJuIHZvaWQgSW5pdGlhbGl6ZVBhcmFsbGVsRFNN KFBhcmFsbGVsQ29udGV4dCAqcGN4dCk7CiBleHRlcm4gdm9pZCBSZWluaXRpYWxpemVQYXJhbGxl bERTTShQYXJhbGxlbENvbnRleHQgKnBjeHQpOwogZXh0ZXJuIHZvaWQgUmVpbml0aWFsaXplUGFy YWxsZWxXb3JrZXJzKFBhcmFsbGVsQ29udGV4dCAqcGN4dCwgaW50IG53b3JrZXJzX3RvX2xhdW5j aCk7CiBleHRlcm4gdm9pZCBMYXVuY2hQYXJhbGxlbFdvcmtlcnMoUGFyYWxsZWxDb250ZXh0ICpw Y3h0KTsKLWV4dGVybiB2b2lkIFdhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0dGFjaChQYXJhbGxl bENvbnRleHQgKnBjeHQpOworZXh0ZXJuIHZvaWQgV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0 YWNoKFBhcmFsbGVsQ29udGV4dCAqcGN4dCwgYm9vbCB3YWl0X2Zvcl9zbmFwc2hvdCk7CiBleHRl cm4gdm9pZCBXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9GaW5pc2goUGFyYWxsZWxDb250ZXh0ICpw Y3h0KTsKIGV4dGVybiB2b2lkIERlc3Ryb3lQYXJhbGxlbENvbnRleHQoUGFyYWxsZWxDb250ZXh0 ICpwY3h0KTsKIGV4dGVybiBib29sIFBhcmFsbGVsQ29udGV4dEFjdGl2ZSh2b2lkKTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsc2Nhbi5oCmluZGV4IGUxODg0YWNmNDkzLi5hOTYwMzA4NGFlYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nh bi5oCkBAIC04OCw2ICs4OCw3IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFsbGVsVGFibGVTY2FuRGVz Y0RhdGEKIAlSZWxGaWxlTG9jYXRvciBwaHNfbG9jYXRvcjsgLyogcGh5c2ljYWwgcmVsYXRpb24g dG8gc2NhbiAqLwogCWJvb2wJCXBoc19zeW5jc2NhbjsJLyogcmVwb3J0IGxvY2F0aW9uIHRvIHN5 bmNzY2FuIGxvZ2ljPyAqLwogCWJvb2wJCXBoc19zbmFwc2hvdF9hbnk7CS8qIFNuYXBzaG90QW55 LCBub3QgcGhzX3NuYXBzaG90X2RhdGE/ICovCisJYm9vbAkJcGhzX3Jlc2V0X3NuYXBzaG90OyAv KiB1c2UgU09fUkVTRVRfU05BUFNIT1Q/ICovCiAJU2l6ZQkJcGhzX3NuYXBzaG90X29mZjsJLyog ZGF0YSBmb3Igc25hcHNob3QgKi8KIH0gUGFyYWxsZWxUYWJsZVNjYW5EZXNjRGF0YTsKIHR5cGVk ZWYgc3RydWN0IFBhcmFsbGVsVGFibGVTY2FuRGVzY0RhdGEgKlBhcmFsbGVsVGFibGVTY2FuRGVz YzsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvdGFibGVhbS5oCmluZGV4IGY0YzdkMmE5MmJmLi45ZWU1ZWExNWZkNCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvdGFibGVhbS5oCkBAIC0xMTg0LDcgKzExODQsOCBAQCBleHRlcm4gU2l6ZSB0YWJsZV9wYXJh bGxlbHNjYW5fZXN0aW1hdGUoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCk7CiAgKi8K IGV4dGVybiB2b2lkIHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJlbCwK IAkJCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKLQkJCQkJCQkJCQkgIFNu YXBzaG90IHNuYXBzaG90KTsKKwkJCQkJCQkJCQkgIFNuYXBzaG90IHNuYXBzaG90LAorCQkJCQkJ CQkJCSAgYm9vbCByZXNldF9zbmFwc2hvdCk7CiAKIC8qCiAgKiBCZWdpbiBhIHBhcmFsbGVsIHNj YW4uIGBwc2NhbmAgbmVlZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIHdpdGgKQEAgLTE4MDIs OSArMTgwMyw5IEBAIHRhYmxlX3NjYW5fYW5hbHl6ZV9uZXh0X3R1cGxlKFRhYmxlU2NhbkRlc2Mg c2NhbiwgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAogICogVGhpcyBvbmx5IHJlYWxseSBtYWtl cyBzZW5zZSBmb3IgaGVhcCBBTSwgaXQgbWlnaHQgbmVlZCB0byBiZSBnZW5lcmFsaXplZAogICog Zm9yIG90aGVyIEFNcyBsYXRlci4KICAqCi0gKiBJbiBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXgg YW5kIG5vbi1wYXJhbGxlbCBjb25jdXJyZW50IGJ1aWxkCi0gKiBTT19SRVNFVF9TTkFQU0hPVCBp cyBhcHBsaWVkIGZvciB0aGUgc2Nhbi4gVGhhdCBsZWFkcyBmb3IgY2hhbmdpbmcgc25hcHNob3Rz Ci0gKiBvbiB0aGUgZmx5IHRvIGFsbG93IHhtaW4gaG9yaXpvbiBwcm9wYWdhdGUuCisgKiBJbiBj YXNlIG9mIG5vbi11bmlxdWUgY29uY3VycmVudCAgaW5kZXggYnVpbGQgU09fUkVTRVRfU05BUFNI T1QgaXMgYXBwbGllZAorICogZm9yIHRoZSBzY2FuLiBUaGF0IGxlYWRzIGZvciBjaGFuZ2luZyBz bmFwc2hvdHMgb24gdGhlIGZseSB0byBhbGxvdyB4bWluCisgKiBob3Jpem9uIHByb3BhZ2F0ZS4K ICAqLwogc3RhdGljIGlubGluZSBkb3VibGUKIHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oUmVsYXRp b24gdGFibGVfcmVsLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0CmluZGV4IDRj ZmJiYjA1OTIzLi40OWVmNjhkOTA3MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmpl Y3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0CisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9jaWNfcmVzZXRfc25hcHNob3Rz Lm91dApAQCAtMTcsNiArMTcsMTIgQEAgU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCd0 YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzJywgJ25vdGljZScKICAKICgxIHJv dykKIAorU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCd0YWJsZV9wYXJhbGxlbHNjYW5f aW5pdGlhbGl6ZScsICdub3RpY2UnKTsKKyBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogQ1JFQVRFIFNDSEVNQSBjaWNfcmVz ZXRfc25hcDsKIENSRUFURSBUQUJMRSBjaWNfcmVzZXRfc25hcC50YmwoaSBpbnQgcHJpbWFyeSBr ZXksIGogaW50KTsKIElOU0VSVCBJTlRPIGNpY19yZXNldF9zbmFwLnRibCBTRUxFQ1QgaSwgaSAq IEkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBzKGkpOwpAQCAtNzIsMjcgKzc4LDQwIEBA IE5PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0 X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCiBEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVz ZXRfc25hcC5pZHg7CiAtLSBUaGUgc2FtZSBpbiBwYXJhbGxlbCBtb2RlCiBBTFRFUiBUQUJMRSBj aWNfcmVzZXRfc25hcC50YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTIpOworLS0gRGV0YWNoIHRv IGtlZXAgdGVzdCBzdGFibGUsIHNpbmNlIHBhcmFsbGVsIHdvcmtlciBtYXkgY29tcGxldGUgc2Nh biBiZWZvcmUgbGVhZGVyCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2hlYXBfcmVz ZXRfc2Nhbl9zbmFwc2hvdF9lZmZlY3RpdmUnKTsKKyBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogQ1JFQVRFIFVOSVFVRSBJ TkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKIFJFSU5ERVgg SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIERST1AgSU5ERVggQ09OQ1VS UkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4 IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZQogUkVJTkRFWCBJ TkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNlIHRy aWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXpl CiBEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CiBDUkVBVEUgSU5E RVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoTU9EKGksIDIpLCBqKSBX SEVSRSBNT0QoaSwgMikgPSAwOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0 aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplCiBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVk IGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUKIERST1Ag SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENSRUFURSBJTkRFWCBDT05D VVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBqKSBXSEVSRSBjaWNfcmVzZXRf c25hcC5wcmVkaWNhdGVfc3RhYmxlKGkpOwogTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3Ig aW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKLU5P VElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3Nj YW5fc25hcHNob3RfZWZmZWN0aXZlCiBSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVz ZXRfc25hcC5pZHg7CiBOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9p bnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cwotTk9USUNFOiAgbm90aWNl IHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IGhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdF9l ZmZlY3RpdmUKIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENS RUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBqKSBX SEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlX25vX3BhcmFtKCk7CitOT1RJQ0U6 ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2Fu X2luaXRpYWxpemUKIFJFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlk eDsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9w YXJhbGxlbHNjYW5faW5pdGlhbGl6ZQogRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0 X3NuYXAuaWR4OwogQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3Nu YXAudGJsIFVTSU5HIEJSSU4oaSk7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmpl Y3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUKIFJFSU5ERVggSU5ERVgg Q09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK05PVElDRTogIG5vdGljZSB0cmlnZ2Vy ZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZQogRFJP UCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OwogRFJPUCBTQ0hFTUEgY2lj X3Jlc2V0X3NuYXAgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMyBvdGhlciBv YmplY3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3Fs L2NpY19yZXNldF9zbmFwc2hvdHMuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbAppbmRleCA0ZmVmNWE0NzQzMS4uNWQxYzMx NDkzZjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwv Y2ljX3Jlc2V0X3NuYXBzaG90cy5zcWwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25f cG9pbnRzL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbApAQCAtMyw3ICszLDcgQEAgQ1JFQVRF IEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOwogU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0 X2xvY2FsKCk7CiBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2hlYXBfcmVzZXRfc2Nh bl9zbmFwc2hvdF9lZmZlY3RpdmUnLCAnbm90aWNlJyk7CiBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19hdHRhY2goJ3RhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMnLCAnbm90aWNl Jyk7Ci0KK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgndGFibGVfcGFyYWxsZWxzY2Fu X2luaXRpYWxpemUnLCAnbm90aWNlJyk7CiAKIENSRUFURSBTQ0hFTUEgY2ljX3Jlc2V0X3NuYXA7 CiBDUkVBVEUgVEFCTEUgY2ljX3Jlc2V0X3NuYXAudGJsKGkgaW50IHByaW1hcnkga2V5LCBqIGlu dCk7CkBAIC01Myw2ICs1Myw5IEBAIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9z bmFwLmlkeDsKIC0tIFRoZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUKIEFMVEVSIFRBQkxFIGNpY19y ZXNldF9zbmFwLnRibCBTRVQgKHBhcmFsbGVsX3dvcmtlcnM9Mik7CiAKKy0tIERldGFjaCB0byBr ZWVwIHRlc3Qgc3RhYmxlLCBzaW5jZSBwYXJhbGxlbCB3b3JrZXIgbWF5IGNvbXBsZXRlIHNjYW4g YmVmb3JlIGxlYWRlcgorU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdoZWFwX3Jlc2V0 X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlJyk7CisKIENSRUFURSBVTklRVUUgSU5ERVggQ09OQ1VS UkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSk7CiBSRUlOREVYIElOREVYIENPTkNV UlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CiBEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNf cmVzZXRfc25hcC5pZHg7CkBAIC03OSw0ICs4Miw0IEBAIERST1AgSU5ERVggQ09OQ1VSUkVOVExZ IGNpY19yZXNldF9zbmFwLmlkeDsKIAogRFJPUCBTQ0hFTUEgY2ljX3Jlc2V0X3NuYXAgQ0FTQ0FE RTsKIAotRFJPUCBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKK0RST1AgRVhURU5TSU9OIGlu amVjdGlvbl9wb2ludHM7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi40My4wCgo= --000000000000bd14f60628dc8da8--