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 1tfLBW-001bEy-BZ for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Feb 2025 15:50:00 +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 1tfLBT-004t4W-PG for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Feb 2025 15:49:55 +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 1tfLBS-004t4O-QH for pgsql-hackers@lists.postgresql.org; Tue, 04 Feb 2025 15:49:55 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tfLBN-0039Ft-1q for pgsql-hackers@postgresql.org; Tue, 04 Feb 2025 15:49:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1738684184; bh=QpPqh/r8+a0ZrLpOOxcBEWuqW3plitwg9n3uq1x9Qg8=; h=Message-ID:Date:User-Agent:Subject:From:To:Cc:References: In-Reply-To:From; b=07HYEPAGXEKepsRKAGZufkjjZdVYxx+PK+cmrrdO+IBJnRfjwORZorr0cMLDaC8DY l3fGeEVfeC9kYpsNLHWSK88wTyHn8bWgI/LAz75hgPWczqhZReOYB+uf1mziA4UfeN qSf/zleZRGlQBTR6ExnXdbF8TmRAL6uQqmFODRh1SqJGe5yzBWDdY15EgFkQY63mFD JFB7WrZD+QhXvd59Z3MomxCss0jdpOq94IVdtTdd8mipRK7tRah7Ddkaf61Fptp0zq SE/Fl9s0zUCmFNckijbgCyjSzZUgjuV0qLtHUaYRUqmPU+OGSL4jIaElKAtILEvbui W2fcbnYNyzBEA== Received: from [172.30.49.94] (unknown [172.30.49.94]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.rybakina@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id E3D9160857; Tue, 4 Feb 2025 18:49:43 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------sXZDUBur3vlMyG0eYCJv70Le" Message-ID: <9f8f2625-7d3a-4eb9-9d91-ceced54ad39c@postgrespro.ru> Date: Tue, 4 Feb 2025 18:49:43 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics From: Alena Rybakina To: Alexander Korotkov Cc: pgsql-hackers , Jim Nasby , Ilia Evdokimov , Kirill Reshke , Andrei Zubkov , Masahiko Sawada , Melanie Plageman , jian he , a.lepikhov@postgrespro.ru, Sami Imseih References: <0B6CBF4C-CC2A-4200-9126-CE3A390D938B@upgrade.com> <6732acf8ce0f31025b535ae1a64568750924a887.camel@moonset.ru> <5AA8FFD5-6DE2-4A31-8E00-AE98F738F5D1@upgrade.com> <85b963fe-5977-43aa-9241-75b862abcc69@postgrespro.ru> <9C7A167C-DCDE-4A17-9ABE-6276723FEC50@upgrade.com> <2d493cf9-9ba7-4cc1-a3f2-67afd7c163ee@postgrespro.ru> <30d54302-9e9c-4e04-819e-a13b679cdcc8@postgrespro.ru> <86f76aa5-1ab5-4e2e-9b15-405051852a2a@postgrespro.ru> <1e81a0a1-a63b-48fb-905a-d6495f89ab73@postgrespro.ru> <0b4eefc7-4c38-4caa-b2ca-a4c75dd7dd12@postgrespro.ru> Content-Language: en-US In-Reply-To: X-KSMG-AntiPhishing: NotDetected X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/02/04 11:12:00 #27207681 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------sXZDUBur3vlMyG0eYCJv70Le Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 04.02.2025 18:22, Alena Rybakina wrote: > >>   Also, should pgstat_track_vacuum_statistics also affect >> per database statistics? > > According to my original idea, I thought that we could collect > extended statistics on relationships depending on whether the hook is > enabled, and always on databases. This will help us to constantly > collect statistics on the vacuum and notice when something is wrong > and at the same time not very expensive: there are much fewer > databases compared to the same relationships and there are much fewer > statistics there. You can introduce an additional hook that disables > all collection of vacuum statistics. This patch can be seen here for > the 17th version of the patch [0], I have not yet started adding it, > since we did not come to an agreement. I added this version as "v19-0003.2-extended-vacuum-statistics.patch.no-cbot" -- Regards, Alena Rybakina Postgres Professional --------------sXZDUBur3vlMyG0eYCJv70Le Content-Type: text/plain; charset=UTF-8; name="v19-0003.2-extended-vacuum-statistics.patch.no-cfbot" Content-Disposition: attachment; filename="v19-0003.2-extended-vacuum-statistics.patch.no-cfbot" Content-Transfer-Encoding: base64 RnJvbSBhZjQ3NDA5ODAzN2M4MjkyZDljODJjNzExYzBmZTc4YWExNTgwMzk1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVHVlLCA0IEZlYiAyMDI1IDE4OjM5OjM1ICswMzAwClN1Ympl Y3Q6IFtQQVRDSF0gTWFjaGluZXJ5IGZvciBncmFiYmluZyBhbiBleHRlbmRlZCB2YWN1dW0g c3RhdGlzdGljcyBvbiAKIGRhdGFiYXNlcy4KCkRhdGFiYXNlIHZhY3V1bSBzdGF0aXN0aWNz IGluZm9ybWF0aW9uIGlzIHRoZSBjb2xsZWN0ZWQgZ2VuZXJhbAp2YWN1dW0gc3RhdGlzdGlj cyBpbmRleGVzIGFuZCB0YWJsZXMgb3duZWQgYnkgdGhlIGRhdGFiYXNlcywgd2hpY2gKdGhl eSBiZWxvbmcgdG8uCgpCeSBkZWZhdWx0LCB2YWN1dW0gZGF0YWJhc2Ugc3RhdGlzdGljcyBh cmUgYWx3YXlzIGNvbGxlY3RlZCwgYW5kCnRoZSB0cmFja192YWN1dW1fc3RhdGlzdGljcyBn dWMgZW5hYmxlcyB0aGUgYWJpbGl0eSB0byBjb2xsZWN0CmV4dGVuZGVkIHN0YXRpc3RpY3Mg Zm9yIGEgZ2l2ZW4gZGF0YWJhc2UncyByZWxhdGlvbnMuIFRoaXMgaXMgZG9uZQp0byBhY2hp ZXZlIGEgYmFsYW5jZSBiZXR3ZWVuIHRoZSBhbGxvY2F0ZWQgbWVtb3J5IGZvciBzdG9yaW5n IHN0YXRpc3RpY3MKYW5kIGhhdmluZyB0aGUgbmVjZXNzYXJ5IG1vbml0b3JpbmcgYXQgaGFu ZCB0byB0cmFjayB0aGUgc3RhdGUgb2YKdmFjdXVtIG9wZXJhdGlvbi4KSW4gYWRkaXRpb24g dG8gdGhlIGZhY3QgdGhhdCB0aGVyZSBhcmUgZmFyIGZld2VyIGRhdGFiYXNlcyBpbiBhIHN5 c3RlbQp0aGFuIHJlbGF0aW9ucywgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIGEgZGF0YWJhc2Ug Y29udGFpbiBmZXdlciBzdGF0aXN0aWNzCnRoYW4gcmVsYXRpb25zLCBidXQgdGhleSBhcmUg ZW5vdWdoIHRvIGluZGljYXRlIHRoYXQgc29tZXRoaW5nIG1heSBiZQp3cm9uZyBpbiB0aGUg c3lzdGVtIGFuZCBwcm9tcHQgdGhlIGFkbWluaXN0cmF0b3IgdG8gZW5hYmxlIGV4dGVuZGVk Cm1vbml0b3JpbmcgZm9yIHJlbGF0aW9ucy4KClNvLCBidWZmZXIsIHdhbCwgc3RhdGlzdGlj cyBvZiBJL08gdGltZSBvZiByZWFkIGFuZCB3cml0ZW4gYmxvY2tzCnN0YXRpc3RpY3Mgd2ls bCBiZSBvYnNlcnZlZCBiZWNhdXNlIHRoZXkgYXJlIGNvbGxlY3RlZCBmb3IgYm90aAp0YWJs ZXMsIGluZGV4ZXMuIEluIGFkZGl0aW9uLCB3ZSBzaG93IHRoZSBudW1iZXIgb2YgZXJyb3Jz IGNhdWdodApkdXJpbmcgb3BlcmF0aW9uIG9mIHRoZSB2YWN1dW0gb25seSBmb3IgdGhlIGVy cm9yIGxldmVsLgoKd3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCBpcyBhIG51bWJlciBvZiB0 aW1lcyB3aGVuIHRoZSB2YWN1dW0gc3RhcnRzCnVyZ2VudCBjbGVhbnVwIHRvIHByZXZlbnQg d3JhcGFyb3VuZCBwcm9ibGVtIHdoaWNoIGlzIGNyaXRpY2FsIGZvcgp0aGUgZGF0YWJhc2Uu CgpBdXRob3JzOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJhY2tpbmFAeWFuZGV4LnJ1PiwK ICAgQW5kcmVpIExlcGlraG92IDxhLmxlcGlraG92QHBvc3RncmVzcHJvLnJ1PiwKICAgQW5k cmVpIFp1YmtvdiA8YS56dWJrb3ZAcG9zdGdyZXNwcm8ucnU+ClJldmlld2VkLWJ5OiBEaWxp cCBLdW1hciA8ZGlsaXBiYWxhdXRAZ21haWwuY29tPiwgTWFzYWhpa28gU2F3YWRhIDxzYXdh ZGEubXNoa0BnbWFpbC5jb20+LAogICAgICAgSWxpYSBFdmRva2ltb3YgPGlseWEuZXZkb2tp bW92QHRhbnRvcmxhYnMuY29tPiwgamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwu Y29tPiwKICAgICAgIEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+LCBB bGV4YW5kZXIgS29yb3Rrb3YgPGFla29yb3Rrb3ZAZ21haWwuY29tPiwKICAgICAgIEppbSBO YXNieSA8am5hc2J5QHVwZ3JhZGUuY29tPiwgU2FtaSBJbXNlaWggPHNhbWltc2VpaEBnbWFp bC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICAg ICAgIHwgIDc1ICsrKysrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3Zp ZXdzLnNxbCAgICAgICAgICB8ICAyNyArKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0LmMgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS9wZ3N0YXRfZGF0YWJhc2UuYyAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgIHwgIDUyICsrKysrKysrLQogc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgICAgICAgICAgIHwgMTAwICsrKysrKysrKysrKysr KysrLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwg ICAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAg fCAgMTMgKystCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDUgKy0KIC4uLi92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNw ZWMgICB8ICAgNiArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgICAg ICAgICAgIHwgIDE3ICsrKwogLi4uL2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNz Lm91dCAgICAgIHwgIDE2ICstLQogLi4udXQgPT4gdmFjdXVtX3RhYmxlc19hbmRfZGJfc3Rh dGlzdGljcy5vdXR9IHwgIDg5ICsrKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVz cy9yZWdyZXNzaW9uLmRpZmZzICAgICAgICAgICAgIHwgIDEyICsrKwogLi4uL3JlZ3Jlc3Mv c3FsL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbCAgIHwgICA2ICstCiAuLi5xbCA9PiB2 YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLnNxbH0gfCAgNjkgKysrKysrKysrKyst CiAxNyBmaWxlcyBjaGFuZ2VkLCA0MDggaW5zZXJ0aW9ucygrKSwgODYgZGVsZXRpb25zKC0p CiByZW5hbWUgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC97dmFjdXVtX3RhYmxlc19zdGF0 aXN0aWNzLm91dCA9PiB2YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLm91dH0gKDgy JSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3Npb24uZGlm ZnMKIHJlbmFtZSBzcmMvdGVzdC9yZWdyZXNzL3NxbC97dmFjdXVtX3RhYmxlc19zdGF0aXN0 aWNzLnNxbCA9PiB2YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLnNxbH0gKDgxJSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggOTkxZmI4MzE3MjYu LmYxYjNiZTcwNzg1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBA IC0zNjMsOSArMzYzLDYgQEAgZXh0dmFjX3N0YXRzX3N0YXJ0KFJlbGF0aW9uIHJlbCwgTFZF eHRTdGF0Q291bnRlcnMgKmNvdW50ZXJzKQogewogCVRpbWVzdGFtcFR6CXN0YXJ0dGltZTsK IAotCWlmKCFwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCi0JCXJldHVybjsKLQog CW1lbXNldChjb3VudGVycywgMCwgc2l6ZW9mKExWRXh0U3RhdENvdW50ZXJzKSk7CiAKIAlz dGFydHRpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CkBAIC00MDQsOSArNDAxLDYgQEAg ZXh0dmFjX3N0YXRzX2VuZChSZWxhdGlvbiByZWwsIExWRXh0U3RhdENvdW50ZXJzICpjb3Vu dGVycywKIAlsb25nCQlzZWNzOwogCWludAkJCXVzZWNzOwogCi0JaWYoIXBnc3RhdF90cmFj a192YWN1dW1fc3RhdGlzdGljcykKLQkJcmV0dXJuOwotCiAJLyogQ2FsY3VsYXRlIGRpZmZz IG9mIGdsb2JhbCBzdGF0IHBhcmFtZXRlcnMgb24gV0FMIGFuZCBidWZmZXIgdXNhZ2UuICov CiAJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7CiAJV2FsVXNhZ2VB Y2N1bURpZmYoJndhbHVzYWdlLCAmcGdXYWxVc2FnZSwgJmNvdW50ZXJzLT53YWx1c2FnZSk7 CkBAIC00NTQsOSArNDQ4LDYgQEAgdm9pZAogZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChSZWxh dGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCiAJCQkJCSAgIExWRXh0 U3RhdENvdW50ZXJzSWR4ICpjb3VudGVycykKIHsKLQlpZighcGdzdGF0X3RyYWNrX3ZhY3V1 bV9zdGF0aXN0aWNzKQotCQlyZXR1cm47Ci0KIAkvKiBTZXQgaW5pdGlhbCB2YWx1ZXMgZm9y IGNvbW1vbiBoZWFwIGFuZCBpbmRleCBzdGF0aXN0aWNzKi8KIAlleHR2YWNfc3RhdHNfc3Rh cnQocmVsLCAmY291bnRlcnMtPmNvbW1vbik7CiAJY291bnRlcnMtPnBhZ2VzX2RlbGV0ZWQg PSBjb3VudGVycy0+dHVwbGVzX3JlbW92ZWQgPSAwOwpAQCAtNTMxLDcgKzUyMiw3IEBAIGFj Y3VtdWxhdGVfaGVhcF92YWN1dW1fc3RhdGlzdGljcyhMVkV4dFN0YXRDb3VudGVycyAqZXh0 VmFjQ291bnRlcnMsIExWUmVsU3RhdGUKIAl2YWNyZWwtPmV4dFZhY1JlcG9ydC50YWJsZS5t aXNzZWRfZGVhZF90dXBsZXMgKz0gdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXM7CiAJdmFj cmVsLT5leHRWYWNSZXBvcnQudGFibGUubWlzc2VkX2RlYWRfcGFnZXMgKz0gdmFjcmVsLT5t aXNzZWRfZGVhZF9wYWdlczsKIAl2YWNyZWwtPmV4dFZhY1JlcG9ydC50YWJsZS5pbmRleF92 YWN1dW1fY291bnQgKz0gdmFjcmVsLT5udW1faW5kZXhfc2NhbnM7Ci0JdmFjcmVsLT5leHRW YWNSZXBvcnQudGFibGUud3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCArPSB2YWNyZWwtPndy YXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CisJdmFjcmVsLT5leHRWYWNSZXBvcnQud3JhcGFy b3VuZF9mYWlsc2FmZV9jb3VudCArPSB2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291 bnQ7CiB9CiAKIC8qCkBAIC04NTAsMTUgKzg0MSw4IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxh dGlvbiByZWwsIFZhY3V1bVBhcmFtcyAqcGFyYW1zLAogCSAqCiAJICogV2UgYXJlIHJlYWR5 IHRvIHNlbmQgdmFjdXVtIHN0YXRpc3RpY3MgaW5mb3JtYXRpb24gZm9yIGhlYXAgcmVsYXRp b25zLgogCSAqLwotCWlmKHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKLQl7Ci0J CS8qIE1ha2UgZ2VuZXJpYyBleHRlbmRlZCB2YWN1dW0gc3RhdHMgcmVwb3J0IGFuZAotCQkg KiBmaWxsIGhlYXAtc3BlY2lmaWMgZXh0ZW5kZWQgc3RhdHMgZmllbGRzLgotCQkgKi8KLQkJ ZXh0dmFjX3N0YXRzX2VuZCh2YWNyZWwtPnJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmKHZhY3Jl bC0+ZXh0VmFjUmVwb3J0KSk7Ci0JCWFjY3VtdWxhdGVfaGVhcF92YWN1dW1fc3RhdGlzdGlj cygmZXh0VmFjQ291bnRlcnMsIHZhY3JlbCk7Ci0KLQkJcGdzdGF0X3JlcG9ydF92YWN1dW0o UmVsYXRpb25HZXRSZWxpZChyZWwpLAorCWFjY3VtdWxhdGVfaGVhcF92YWN1dW1fc3RhdGlz dGljcygmZXh0VmFjQ291bnRlcnMsIHZhY3JlbCk7CisJcGdzdGF0X3JlcG9ydF92YWN1dW0o UmVsYXRpb25HZXRSZWxpZChyZWwpLAogCQkJCQkJIHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJl ZCwKIAkJCQkJCSBNYXgodmFjcmVsLT5uZXdfbGl2ZV90dXBsZXMsIDApLAogCQkJCQkJIHZh Y3JlbC0+cmVjZW50bHlfZGVhZF90dXBsZXMgKwpAQCAtODY2LDE4ICs4NTAsNiBAQCBoZWFw X3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAkJCQkJ CSBzdGFydHRpbWUsCiAJCQkJCQkgJih2YWNyZWwtPmV4dFZhY1JlcG9ydCkpOwogCi0JfQot CWVsc2UKLQl7Ci0JCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQocmVs KSwKLQkJCQkJCQkgcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAotCQkJCQkJCSBNYXgodmFj cmVsLT5uZXdfbGl2ZV90dXBsZXMsIDApLAotCQkJCQkJCSB2YWNyZWwtPnJlY2VudGx5X2Rl YWRfdHVwbGVzICsKLQkJCQkJCQkgdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXMsCi0JCQkJ CQkJIHN0YXJ0dGltZSwKLQkJCQkJCQkgTlVMTCk7Ci0JfQotCiAJcGdzdGF0X3Byb2dyZXNz X2VuZF9jb21tYW5kKCk7CiAKIAlpZiAoaW5zdHJ1bWVudCkKQEAgLTI4OTgsMTQgKzI4NzAs MTEgQEAgbGF6eV92YWN1dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxr RGVsZXRlUmVzdWx0ICppc3RhdCwKIAlpc3RhdCA9IHZhY19idWxrZGVsX29uZV9pbmRleCgm aXZpbmZvLCBpc3RhdCwgdmFjcmVsLT5kZWFkX2l0ZW1zLAogCQkJCQkJCQkgIHZhY3JlbC0+ ZGVhZF9pdGVtc19pbmZvKTsKIAotCWlmKHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGlj cykKLQl7Ci0JCS8qIE1ha2UgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBmb3IgaW5k ZXggKi8KLQkJZXh0dmFjX3N0YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZhY0Nv dW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKLQkJcGdzdGF0X3JlcG9ydF92YWN1dW0oUmVsYXRp b25HZXRSZWxpZChpbmRyZWwpLAotCQkJCQkJCQlpbmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFy ZWQsCi0JCQkJCQkJCTAsIDAsIDAsICZleHRWYWNSZXBvcnQpOwotCX0KKwkvKiBNYWtlIGV4 dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgZm9yIGluZGV4ICovCisJZXh0dmFjX3N0YXRz X2VuZF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0 KTsKKwlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlkKGluZHJlbCksCisJ CQkJCQkJaW5kcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAorCQkJCQkJCTAsIDAsIDAsICZl eHRWYWNSZXBvcnQpOwogCiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBwaGFzZSBpbmZv cm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJcmVzdG9yZV92YWN1dW1fZXJyb3Jf aW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CkBAIC0yOTYyLDE0ICsyOTMxLDExIEBA IGxhenlfY2xlYW51cF9vbmVfaW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxl dGVSZXN1bHQgKmlzdGF0LAogCiAJaXN0YXQgPSB2YWNfY2xlYW51cF9vbmVfaW5kZXgoJml2 aW5mbywgaXN0YXQpOwogCi0JaWYocGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQot CXsKLQkJLyogTWFrZSBleHRlbmRlZCB2YWN1dW0gc3RhdHMgcmVwb3J0IGZvciBpbmRleCAq LwotCQlleHR2YWNfc3RhdHNfZW5kX2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRl cnMsICZleHRWYWNSZXBvcnQpOwotCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdl dFJlbGlkKGluZHJlbCksCi0JCQkJCQkJCWluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwK LQkJCQkJCQkJMCwgMCwgMCwgJmV4dFZhY1JlcG9ydCk7Ci0JfQorCS8qIE1ha2UgZXh0ZW5k ZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBmb3IgaW5kZXggKi8KKwlleHR2YWNfc3RhdHNfZW5k X2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQpOwor CXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKSwKKwkJCQkJ CQlpbmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCisJCQkJCQkJMCwgMCwgMCwgJmV4dFZh Y1JlcG9ydCk7CiAKIAkvKiBSZXZlcnQgdG8gdGhlIHByZXZpb3VzIHBoYXNlIGluZm9ybWF0 aW9uIGZvciBlcnJvciB0cmFjZWJhY2sgKi8KIAlyZXN0b3JlX3ZhY3V1bV9lcnJvcl9pbmZv KHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZvKTsKQEAgLTM1ODMsNiArMzU0OSw5IEBAIHZhY3V1 bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAJc3dpdGNoIChlcnJpbmZvLT5waGFzZSkK IAl7CiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX1NDQU5fSEVBUDoKKwkJCWlmKGdldGVy cmVsZXZlbCgpID09IEVSUk9SKQorCQkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihl cnJpbmZvLT5yZWxvaWQsIFBHU1RBVF9FWFRWQUNfVEFCTEUpOworCiAJCQlpZiAoQmxvY2tO dW1iZXJJc1ZhbGlkKGVycmluZm8tPmJsa25vKSkKIAkJCXsKIAkJCQlpZiAoT2Zmc2V0TnVt YmVySXNWYWxpZChlcnJpbmZvLT5vZmZudW0pKQpAQCAtMzU5OCw2ICszNTY3LDkgQEAgdmFj dXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAkJCWJyZWFrOwogCiAJCWNhc2UgVkFD VVVNX0VSUkNCX1BIQVNFX1ZBQ1VVTV9IRUFQOgorCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPT0g RVJST1IpCisJCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoZXJyaW5mby0+cmVsb2lk LCBQR1NUQVRfRVhUVkFDX1RBQkxFKTsKKwogCQkJaWYgKEJsb2NrTnVtYmVySXNWYWxpZChl cnJpbmZvLT5ibGtubykpCiAJCQl7CiAJCQkJaWYgKE9mZnNldE51bWJlcklzVmFsaWQoZXJy aW5mby0+b2ZmbnVtKSkKQEAgLTM2MTMsMTYgKzM1ODUsMjUgQEAgdmFjdXVtX2Vycm9yX2Nh bGxiYWNrKHZvaWQgKmFyZykKIAkJCWJyZWFrOwogCiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BI QVNFX1ZBQ1VVTV9JTkRFWDoKKwkJCWlmKGdldGVycmVsZXZlbCgpID09IEVSUk9SKQorCQkJ CXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPmluZG9pZCwgUEdTVEFUX0VY VFZBQ19JTkRFWCk7CisKIAkJCWVycmNvbnRleHQoIndoaWxlIHZhY3V1bWluZyBpbmRleCBc IiVzXCIgb2YgcmVsYXRpb24gXCIlcy4lc1wiIiwKIAkJCQkJICAgZXJyaW5mby0+aW5kbmFt ZSwgZXJyaW5mby0+cmVsbmFtZXNwYWNlLCBlcnJpbmZvLT5yZWxuYW1lKTsKIAkJCWJyZWFr OwogCiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX0lOREVYX0NMRUFOVVA6CisJCQlpZihn ZXRlcnJlbGV2ZWwoKSA9PSBFUlJPUikKKwkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJv cihlcnJpbmZvLT5pbmRvaWQsIFBHU1RBVF9FWFRWQUNfSU5ERVgpOworCiAJCQllcnJjb250 ZXh0KCJ3aGlsZSBjbGVhbmluZyB1cCBpbmRleCBcIiVzXCIgb2YgcmVsYXRpb24gXCIlcy4l c1wiIiwKIAkJCQkJICAgZXJyaW5mby0+aW5kbmFtZSwgZXJyaW5mby0+cmVsbmFtZXNwYWNl LCBlcnJpbmZvLT5yZWxuYW1lKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVkFDVVVNX0VSUkNC X1BIQVNFX1RSVU5DQVRFOgorCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPT0gRVJST1IpCisJCQkJ cGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoZXJyaW5mby0+cmVsb2lkLCBQR1NUQVRfRVhU VkFDX1RBQkxFKTsKKwogCQkJaWYgKEJsb2NrTnVtYmVySXNWYWxpZChlcnJpbmZvLT5ibGtu bykpCiAJCQkJZXJyY29udGV4dCgid2hpbGUgdHJ1bmNhdGluZyByZWxhdGlvbiBcIiVzLiVz XCIgdG8gJXUgYmxvY2tzIiwKIAkJCQkJCSAgIGVycmluZm8tPnJlbG5hbWVzcGFjZSwgZXJy aW5mby0+cmVsbmFtZSwgZXJyaW5mby0+Ymxrbm8pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fdmlld3Muc3FsCmluZGV4IGRhOTA3OWFmYTIxLi5hNzJkMDExMDJiYiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTQ3Myw0ICsxNDczLDI5IEBAIEZS T00KICAgcGdfY2xhc3MgcmVsCiAgIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIG5zLm9pZCA9 IHJlbC5yZWxuYW1lc3BhY2UsCiAgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4 ZXMocmVsLm9pZCkgc3RhdHMKLVdIRVJFIHJlbC5yZWxraW5kID0gJ2knOwpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKK1dIRVJFIHJlbC5yZWxraW5kID0gJ2knOworCitDUkVBVEUg VklFVyBwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZSBBUworU0VMRUNUCisgIGRiLm9pZCBhcyBk Ym9pZCwKKyAgZGIuZGF0bmFtZSBBUyBkYm5hbWUsCisKKyAgc3RhdHMuZGJfYmxrc19yZWFk IEFTIGRiX2Jsa3NfcmVhZCwKKyAgc3RhdHMuZGJfYmxrc19oaXQgQVMgZGJfYmxrc19oaXQs CisgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCBBUyB0b3RhbF9ibGtzX2RpcnRpZWQsCisg IHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiBBUyB0b3RhbF9ibGtzX3dyaXR0ZW4sCisKKyAg c3RhdHMud2FsX3JlY29yZHMgQVMgd2FsX3JlY29yZHMsCisgIHN0YXRzLndhbF9mcGkgQVMg d2FsX2ZwaSwKKyAgc3RhdHMud2FsX2J5dGVzIEFTIHdhbF9ieXRlcywKKworICBzdGF0cy5i bGtfcmVhZF90aW1lIEFTIGJsa19yZWFkX3RpbWUsCisgIHN0YXRzLmJsa193cml0ZV90aW1l IEFTIGJsa193cml0ZV90aW1lLAorCisgIHN0YXRzLmRlbGF5X3RpbWUgQVMgZGVsYXlfdGlt ZSwKKyAgc3RhdHMudG90YWxfdGltZSBBUyB0b3RhbF90aW1lLAorICBzdGF0cy53cmFwYXJv dW5kX2ZhaWxzYWZlIEFTIHdyYXBhcm91bmRfZmFpbHNhZmUsCisgIHN0YXRzLmVycm9ycyBB UyBlcnJvcnMKK0ZST00KKyAgcGdfZGF0YWJhc2UgZGIsCisgIExBVEVSQUwgcGdfc3RhdF9n ZXRfdmFjdXVtX2RhdGFiYXNlKGRiLm9pZCkgc3RhdHM7ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYwppbmRleCAzNjNjYmYy YmIwNC4uNGNjMWQwOWQ5NmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5j CkBAIC0yMDQsNyArMjA0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHBnc3RhdF9pc19raW5k X3ZhbGlkKFBnU3RhdF9LaW5kIGtpbmQpOwogCiBib29sCQlwZ3N0YXRfdHJhY2tfY291bnRz ID0gZmFsc2U7CiBpbnQJCQlwZ3N0YXRfZmV0Y2hfY29uc2lzdGVuY3kgPSBQR1NUQVRfRkVU Q0hfQ09OU0lTVEVOQ1lfQ0FDSEU7Ci1ib29sCQlwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRp c3RpY3MgPSB0cnVlOworYm9vbAkJcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzID0g ZmFsc2U7CiAKIC8qIC0tLS0tLS0tLS0KICAqIHN0YXRlIHNoYXJlZCB3aXRoIHBnc3RhdF8q LmMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRh YmFzZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMK aW5kZXggMDVhOGNjZmRiNzUuLmQ1YzFlMmEyY2Y1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYwpAQCAtNDQ5LDYgKzQ0OSw3IEBAIHBn c3RhdF9kYXRhYmFzZV9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9v bCBub3dhaXQpCiAJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOwogCiAJbWVtc2V0 KHBlbmRpbmdlbnQsIDAsIHNpemVvZigqcGVuZGluZ2VudCkpOworCW1lbXNldCgmKHBlbmRp bmdlbnQpLT52YWN1dW1fZXh0LCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CiAKIAlyZXR1 cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3Jl bGF0aW9uLmMKaW5kZXggY2Q0ZmZiNTBiY2EuLjZkNDVkYjZkM2QyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwpAQCAtMjA1LDYgKzIw NSwzOCBAQCBwZ3N0YXRfZHJvcF9yZWxhdGlvbihSZWxhdGlvbiByZWwpCiAJfQogfQogCisv KiAtLS0tLS0tLS0KKyAqIHBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKCkgLQorICoKKyAq CVRlbGwgdGhlIGNvbGxlY3RvciBhYm91dCBhbiAoYXV0byl2YWN1dW0gaW50ZXJydXB0aW9u LgorICogLS0tLS0tLS0tCisgKi8KK3ZvaWQKK3Bnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9y KE9pZCB0YWJsZW9pZCwgRXh0VmFjUmVwb3J0VHlwZSBtX3R5cGUpCit7CisJUGdTdGF0X0Vu dHJ5UmVmICplbnRyeV9yZWY7CisJUGdTdGF0U2hhcmVkX1JlbGF0aW9uICpzaHRhYmVudHJ5 OworCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OworCU9pZAkJCWRib2lkID0gIE15 RGF0YWJhc2VJZDsKKwlQZ1N0YXRfU3RhdERCRW50cnkgKmRiZW50cnk7CS8qIHBlbmRpbmcg ZGF0YWJhc2UgZW50cnkgKi8KKworCWlmICghcGdzdGF0X3RyYWNrX2NvdW50cykKKwkJcmV0 dXJuOworCisJZW50cnlfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9yZWZfbG9ja2VkKFBHU1RB VF9LSU5EX1JFTEFUSU9OLAorCQkJCQkJCQkJCQlkYm9pZCwgdGFibGVvaWQsIGZhbHNlKTsK KworCXNodGFiZW50cnkgPSAoUGdTdGF0U2hhcmVkX1JlbGF0aW9uICopIGVudHJ5X3JlZi0+ c2hhcmVkX3N0YXRzOworCXRhYmVudHJ5ID0gJnNodGFiZW50cnktPnN0YXRzOworCisJdGFi ZW50cnktPnZhY3V1bV9leHQudHlwZSA9IG1fdHlwZTsKKwlwZ3N0YXRfdW5sb2NrX2VudHJ5 KGVudHJ5X3JlZik7CisKKwlkYmVudHJ5ID0gcGdzdGF0X3ByZXBfZGF0YWJhc2VfcGVuZGlu ZyhkYm9pZCk7CisJZGJlbnRyeS0+dmFjdXVtX2V4dC5lcnJvcnMrKzsKKwlkYmVudHJ5LT52 YWN1dW1fZXh0LnR5cGUgPSBtX3R5cGU7Cit9CisKIC8qCiAgKiBSZXBvcnQgdGhhdCB0aGUg dGFibGUgd2FzIGp1c3QgdmFjdXVtZWQgYW5kIGZsdXNoIElPIHN0YXRpc3RpY3MuCiAgKi8K QEAgLTIxNiw2ICsyNDgsNyBAQCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQs IGJvb2wgc2hhcmVkLAogCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOwogCVBnU3RhdFNo YXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKIAlQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJl bnRyeTsKKwlQZ1N0YXRTaGFyZWRfRGF0YWJhc2UgKmRiZW50cnk7CiAJT2lkCQkJZGJvaWQg PSAoc2hhcmVkID8gSW52YWxpZE9pZCA6IE15RGF0YWJhc2VJZCk7CiAJVGltZXN0YW1wVHog dHM7CiAJUGdTdGF0X0NvdW50ZXIgZWxhcHNlZHRpbWU7CkBAIC0yMzcsNyArMjcwLDggQEAg cGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwKIAl0YWJl bnRyeS0+bGl2ZV90dXBsZXMgPSBsaXZldHVwbGVzOwogCXRhYmVudHJ5LT5kZWFkX3R1cGxl cyA9IGRlYWR0dXBsZXM7CiAKLQlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoJnRh YmVudHJ5LT52YWN1dW1fZXh0LCBwYXJhbXMsIHRydWUpOworCWlmKHBnc3RhdF90cmFja192 YWN1dW1fc3RhdGlzdGljcykKKwkJcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzKCZ0 YWJlbnRyeS0+dmFjdXVtX2V4dCwgcGFyYW1zLCB0cnVlKTsKIAogCS8qCiAJICogSXQgaXMg cXVpdGUgcG9zc2libGUgdGhhdCBhIG5vbi1hZ2dyZXNzaXZlIFZBQ1VVTSBlbmRlZCB1cCBz a2lwcGluZwpAQCAtMjc0LDYgKzMwOCwxNiBAQCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQg dGFibGVvaWQsIGJvb2wgc2hhcmVkLAogCSAqLwogCXBnc3RhdF9mbHVzaF9pbyhmYWxzZSk7 CiAJKHZvaWQpIHBnc3RhdF9mbHVzaF9iYWNrZW5kKGZhbHNlLCBQR1NUQVRfQkFDS0VORF9G TFVTSF9JTyk7CisKKwlpZiAoZGJvaWQgIT0gSW52YWxpZE9pZCkKKwl7CisJCWVudHJ5X3Jl ZiA9IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tlZChQR1NUQVRfS0lORF9EQVRBQkFTRSwK KwkJCQkJCQkJCQkJZGJvaWQsIEludmFsaWRPaWQsIGZhbHNlKTsKKwkJZGJlbnRyeSA9IChQ Z1N0YXRTaGFyZWRfRGF0YWJhc2UgKikgZW50cnlfcmVmLT5zaGFyZWRfc3RhdHM7CisKKwkJ cGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzKCZkYmVudHJ5LT5zdGF0cy52YWN1dW1f ZXh0LCBwYXJhbXMsIGZhbHNlKTsKKwkJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYp OworCX0KIH0KIAogLyoKQEAgLTEwMDcsOSArMTA1MSw2IEBAIHN0YXRpYyB2b2lkCiBwZ3N0 YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1Jl cG9ydCAqc3JjLAogCQkJCQkJCSAgIGJvb2wgYWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmlj X2luZm8pCiB7Ci0JaWYoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKLQkJcmV0 dXJuOwotCiAJZHN0LT50b3RhbF9ibGtzX3JlYWQgKz0gc3JjLT50b3RhbF9ibGtzX3JlYWQ7 CiAJZHN0LT50b3RhbF9ibGtzX2hpdCArPSBzcmMtPnRvdGFsX2Jsa3NfaGl0OwogCWRzdC0+ dG90YWxfYmxrc19kaXJ0aWVkICs9IHNyYy0+dG90YWxfYmxrc19kaXJ0aWVkOwpAQCAtMTAy MSw2ICsxMDYyLDggQEAgcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzKEV4dFZhY1Jl cG9ydCAqZHN0LCBFeHRWYWNSZXBvcnQgKnNyYywKIAlkc3QtPmJsa193cml0ZV90aW1lICs9 IHNyYy0+YmxrX3dyaXRlX3RpbWU7CiAJZHN0LT5kZWxheV90aW1lICs9IHNyYy0+ZGVsYXlf dGltZTsKIAlkc3QtPnRvdGFsX3RpbWUgKz0gc3JjLT50b3RhbF90aW1lOworCWRzdC0+d3Jh cGFyb3VuZF9mYWlsc2FmZV9jb3VudCArPSBzcmMtPndyYXBhcm91bmRfZmFpbHNhZmVfY291 bnQ7CisJZHN0LT5lcnJvcnMgKz0gc3JjLT5lcnJvcnM7CiAKIAlpZiAoIWFjY3VtdWxhdGVf cmVsdHlwZV9zcGVjaWZpY19pbmZvKQogCQlyZXR1cm47CkBAIC0xMDQ4LDcgKzEwOTEsNiBA QCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVwb3J0ICpkc3QsIEV4 dFZhY1JlcG9ydCAqc3JjLAogCQkJZHN0LT50YWJsZS5pbmRleF92YWN1dW1fY291bnQgKz0g c3JjLT50YWJsZS5pbmRleF92YWN1dW1fY291bnQ7CiAJCQlkc3QtPnRhYmxlLm1pc3NlZF9k ZWFkX3BhZ2VzICs9IHNyYy0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXM7CiAJCQlkc3QtPnRh YmxlLm1pc3NlZF9kZWFkX3R1cGxlcyArPSBzcmMtPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxl czsKLQkJCWRzdC0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCArPSBzcmMtPnRh YmxlLndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CiAJCX0KIAkJZWxzZSBpZiAoZHN0LT50 eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVgpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMKaW5kZXggODBlODY3ZDc3M2YuLjU5ZWI1MjhiMjBjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjM2OSw3ICsyMzY5LDcgQEAgcGdfc3Rh dF9nZXRfdmFjdXVtX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnJlY2VudGx5X2RlYWRfdHVwbGVzKTsK IAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS5taXNzZWRf ZGVhZF90dXBsZXMpOwogCi0JdmFsdWVzW2krK10gPSBJbnQzMkdldERhdHVtKGV4dHZhY3V1 bS0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7CisJdmFsdWVzW2krK10gPSBJ bnQzMkdldERhdHVtKGV4dHZhY3V1bS0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7CiAJ dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUuaW5kZXhfdmFj dXVtX2NvdW50KTsKIAogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0t PndhbF9yZWNvcmRzKTsKQEAgLTI0OTksNiArMjQ5OSwxMDQgQEAgcGdfc3RhdF9nZXRfdmFj dXVtX2luZGV4ZXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCUFzc2VydChpID09IFBHX1NUQVRf R0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTKTsKIAorCS8qIFJldHVybnMgdGhlIHJlY29y ZCBhcyBEYXR1bSAqLworCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1bShoZWFw X2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKK30KKworRGF0dW0KK3Bn X3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZShQR19GVU5DVElPTl9BUkdTKQoreworCSNkZWZp bmUgUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFMJMTQKKworCU9pZAkJ CQkJCSBkYmlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlQZ1N0YXRfU3RhdERCRW50cnkgCQkq ZGJlbnRyeTsKKwlFeHRWYWNSZXBvcnQgCQkJKmV4dHZhY3V1bTsKKwlUdXBsZURlc2MJCQkJ IHR1cGRlc2M7CisJRGF0dW0JCQkJCSB2YWx1ZXNbUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFC QVNFX1NUQVRTX0NPTFNdID0gezB9OworCWJvb2wJCQkJCSBudWxsc1tQR19TVEFUX0dFVF9W QUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MU10gPSB7MH07CisJY2hhcgkJCQkJIGJ1ZlsyNTZd OworCWludAkJCQkJCSBpID0gMDsKKwlFeHRWYWNSZXBvcnQgYWxsemVybzsKKworCS8qIElu aXRpYWxpc2UgYXR0cmlidXRlcyBpbmZvcm1hdGlvbiBpbiB0aGUgdHVwbGUgZGVzY3JpcHRv ciAqLworCXR1cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhQR19TVEFUX0dFVF9W QUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MUyk7CisKKwlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImRiaWQiLAorCQkJCQkgICBJTlQ0T0lELCAtMSwg MCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0 b3RhbF8gYmxrc19yZWFkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc19oaXQi LAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2RpcnRpZWQiLAorCQkJCQkgICBJ TlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJ0b3RhbF9ibGtzX3dyaXR0ZW4iLAorCQkJCQkgICBJTlQ4T0lELCAtMSwg MCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3 YWxfcmVjb3JkcyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGkiLAorCQkJCQkgICBJ TlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJ3YWxfYnl0ZXMiLAorCQkJCQkgICBOVU1FUklDT0lELCAtMSwgMCk7CisK KwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa19y ZWFkX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa193cml0ZV90aW1lIiwKKwkJ CQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpICsraSwgImRlbGF5X3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQs IC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsr aSwgInRvdGFsX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURl c2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndyYXBhcm91bmRfZmFp bHNhZmVfY291bnQiLAorCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJlcnJvcnMiLAorCQkJCQkgICBJ TlQ0T0lELCAtMSwgMCk7CisKKwlBc3NlcnQoaSA9PSBQR19TVEFUX0dFVF9WQUNVVU1fREFU QUJBU0VfU1RBVFNfQ09MUyk7CisKKwlCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsKKworCWRi ZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9kYmVudHJ5KGRiaWQpOworCisJaWYgKGRiZW50 cnkgPT0gTlVMTCkKKwl7CisJCS8qIElmIHRoZSBzdWJzY3JpcHRpb24gaXMgbm90IGZvdW5k LCBpbml0aWFsaXNlIGl0cyBzdGF0cyAqLworCQltZW1zZXQoJmFsbHplcm8sIDAsIHNpemVv ZihFeHRWYWNSZXBvcnQpKTsKKwkJZXh0dmFjdXVtID0gJmFsbHplcm87CisJfQorCWVsc2UK Kwl7CisJCWV4dHZhY3V1bSA9ICYoZGJlbnRyeS0+dmFjdXVtX2V4dCk7CisJfQorCisJaSA9 IDA7CisKKwl2YWx1ZXNbaSsrXSA9IE9iamVjdElkR2V0RGF0dW0oZGJpZCk7CisKKwl2YWx1 ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX3JlYWQpOwor CXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3NfaGl0 KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtz X2RpcnRpZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRv dGFsX2Jsa3Nfd3JpdHRlbik7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0 dmFjdXVtLT53YWxfcmVjb3Jkcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+d2FsX2ZwaSk7CisKKwkvKiBDb252ZXJ0IHRvIG51bWVyaWMsIGxpa2UgcGdf c3RhdF9zdGF0ZW1lbnRzICovCisJc25wcmludGYoYnVmLCBzaXplb2YgYnVmLCBVSU5UNjRf Rk9STUFULCBleHR2YWN1dW0tPndhbF9ieXRlcyk7CisJdmFsdWVzW2krK10gPSBEaXJlY3RG dW5jdGlvbkNhbGwzKG51bWVyaWNfaW4sCisJCQkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShi dWYpLAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKDApLAorCQkJCQkJCQkJICBJbnQz MkdldERhdHVtKC0xKSk7CisKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZh Y3V1bS0+YmxrX3JlYWRfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShl eHR2YWN1dW0tPmJsa193cml0ZV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERh dHVtKGV4dHZhY3V1bS0+ZGVsYXlfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXRE YXR1bShleHR2YWN1dW0tPnRvdGFsX3RpbWUpOworCXZhbHVlc1tpKytdID0gSW50MzJHZXRE YXR1bShleHR2YWN1dW0tPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQpOworCXZhbHVlc1tp KytdID0gSW50MzJHZXREYXR1bShleHR2YWN1dW0tPmVycm9ycyk7CisKKwlBc3NlcnQoaSA9 PSBQR19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MUyk7CisKIAkvKiBSZXR1 cm5zIHRoZSByZWNvcmQgYXMgRGF0dW0gKi8KIAlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxl R2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpKSk7CiB9 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190 YWJsZXMuYwppbmRleCAzZjc3NTBhZDZhNC4uNzMxNWJlOWI3YmMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC0xNDg1LDcgKzE0ODUsNyBAQCBzdHJ1Y3QgY29u ZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQkJTlVMTAogCQl9LAogCQkmcGdz dGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzLAotCQl0cnVlLAorCQlmYWxzZSwKIAkJTlVM TCwgTlVMTCwgTlVMTAogCX0sCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXgg Yzk4M2UwNjllZWYuLmRmMjk4MWFiZDgyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK QEAgLTEyNDczLDEyICsxMjQ3MywyMSBAQAogICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3Jl dHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdw Z19zdGF0X2dldF9yZXZfYWxsX2Zyb3plbl9wYWdlcycgfSwKIHsgb2lkID0+ICc4MDA0JywK LSAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzIHJldHVybiBzdGF0cyB2 YWx1ZXMnLAorICBkZXNjciA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMgcmV0dXJu cyB2YWN1dW0gc3RhdHMgdmFsdWVzIGZvciBpbmRleCcsCiAgIHByb25hbWUgPT4gJ3BnX3N0 YXRfZ2V0X3ZhY3V1bV9pbmRleGVzJywgcHJvcm93cyA9PiAxMDAwLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJvaXNzdHJpY3QgPT4gJ2YnLAogICBw cm9yZXRzZXQgPT4gJ3QnLAogICBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAgcHJvYWxsYXJn dHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgs aW50OCxpbnQ4LGludDgsbnVtZXJpYyxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDh9JywK ICAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99 JywKICAgcHJvYXJnbmFtZXMgPT4gJ3tyZWxvaWQscmVsaWQsdG90YWxfYmxrc19yZWFkLHRv dGFsX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9ibGtzX3dyaXR0ZW4scmVs X2Jsa3NfcmVhZCxyZWxfYmxrc19oaXQscGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZCx3 YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJsa193cml0ZV90 aW1lLGRlbGF5X3RpbWUsdG90YWxfdGltZX0nLAotICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0 X3ZhY3V1bV9pbmRleGVzJyB9CisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2lu ZGV4ZXMnIH0sCit7IG9pZCA9PiAnODAwNScsCisgIGRlc2NyID0+ICdwZ19zdGF0X2dldF92 YWN1dW1fZGF0YWJhc2UgcmV0dXJucyB2YWN1dW0gc3RhdHMgdmFsdWVzIGZvciBkYXRhYmFz ZScsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZScsIHByb3Jv d3MgPT4gMTAwMCwgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQn LHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvYXJndHlw ZXMgPT4gJ29pZCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9pZCxpbnQ4LGludDgs aW50OCxpbnQ4LGludDgsaW50OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0 OCxpbnQ0LGludDR9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne2RiaWQsZGJvaWQsZGJfYmxrc19y ZWFkLGRiX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9ibGtzX3dyaXR0ZW4s d2FsX3JlY29yZHMsd2FsX2ZwaSx3YWxfYnl0ZXMsYmxrX3JlYWRfdGltZSxibGtfd3JpdGVf dGltZSxkZWxheV90aW1lLHRvdGFsX3RpbWUsd3JhcGFyb3VuZF9mYWlsc2FmZSxlcnJvcnN9 JywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF92YWN1dW1fZGF0YWJhc2UnIH0sCiBdCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5o CmluZGV4IGEzMDU4MzZmMjM3Li5kY2Y4Y2I3NjNhNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTE1NSw2ICsxNTUs OSBAQCB0eXBlZGVmIHN0cnVjdCBFeHRWYWNSZXBvcnQKIAogCWludDY0CQl0dXBsZXNfZGVs ZXRlZDsJCS8qIHR1cGxlcyBkZWxldGVkIGJ5IHZhY3V1bSAqLwogCisJaW50MzIJCWVycm9y czsKKwlpbnQzMgkJd3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsJLyogdGhlIG51bWJlciBv ZiB0aW1lcyB0byBwcmV2ZW50IHdyYXBhcm91bmQgcHJvYmxlbSAqLworCiAJRXh0VmFjUmVw b3J0VHlwZSB0eXBlOwkJLyogaGVhcCwgaW5kZXgsIGV0Yy4gKi8KIAogCS8qIC0tLS0tLS0t LS0KQEAgLTE4NCw3ICsxODcsNiBAQCB0eXBlZGVmIHN0cnVjdCBFeHRWYWNSZXBvcnQKIAkJ CWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7CQkvKiB0dXBsZXMgbm90IHBydW5lZCBieSB2 YWN1dW0gZHVlIHRvIGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cCBsb2NrICovCiAJCQlpbnQ2 NAkJbWlzc2VkX2RlYWRfcGFnZXM7CQkvKiBwYWdlcyB3aXRoIG1pc3NlZCBkZWFkIHR1cGxl cyAqLwogCQkJaW50NjQJCWluZGV4X3ZhY3V1bV9jb3VudDsJLyogbnVtYmVyIG9mIGluZGV4 IHZhY3V1bWluZ3MgKi8KLQkJCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50Owkv KiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRvIHByZXZlbnQgd29ya2Fyb3VuZCBwcm9ibGVtICov CiAJCX0JCQl0YWJsZTsKIAkJc3RydWN0CiAJCXsKQEAgLTc1OSw2ICs3NjEsNyBAQCBleHRl cm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVk LAogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9hbmFseXplKFJlbGF0aW9uIHJlbCwKIAkJ CQkJCQkJICBQZ1N0YXRfQ291bnRlciBsaXZldHVwbGVzLCBQZ1N0YXRfQ291bnRlciBkZWFk dHVwbGVzLAogCQkJCQkJCQkgIGJvb2wgcmVzZXRjb3VudGVyLCBUaW1lc3RhbXBUeiBzdGFy dHRpbWUpOworZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoT2lkIHRh Ymxlb2lkLCBFeHRWYWNSZXBvcnRUeXBlIG1fdHlwZSk7CiAKIC8qCiAgKiBJZiBzdGF0cyBh cmUgZW5hYmxlZCwgYnV0IHBlbmRpbmcgZGF0YSBoYXNuJ3QgYmVlbiBwcmVwYXJlZCB5ZXQs IGNhbGwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0 ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3Bl Y3MvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVjCmluZGV4IDU4OTNk ODk1NzNkLi5jZmVjMzE1OTU4MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3Nw ZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYworKysgYi9zcmMv dGVzdC9pc29sYXRpb24vc3BlY3MvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVh ZC5zcGVjCkBAIC0xOCw2ICsxOCw5IEBAIHRlYXJkb3duCiB9CiAKIHNlc3Npb24gczEKK3Nl dHVwCQl7CisgICAgU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvbic7CisgICAg fQogc3RlcCBzMV9iZWdpbl9yZXBlYXRhYmxlX3JlYWQgICB7CiAgIEJFR0lOIHRyYW5zYWN0 aW9uIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CiAgIHNlbGVjdCBjb3VudChp dmFsKSBmcm9tIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHdoZXJlIGlkPjkwMDsKQEAg LTI1LDYgKzI4LDkgQEAgc3RlcCBzMV9iZWdpbl9yZXBlYXRhYmxlX3JlYWQgICB7CiBzdGVw IHMxX2NvbW1pdCAgICAgICAgICAgICAgICAgIHsgQ09NTUlUOyB9CiAKIHNlc3Npb24gczIK K3NldHVwCQl7CisgICAgU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvbic7Cisg ICAgfQogc3RlcCBzMl9pbnNlcnQgICAgICAgICAgICAgICAgICB7IElOU0VSVCBJTlRPIHRl c3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uKGlkLCBpdmFsKSBTRUxFQ1QgaXZhbCwgaXZhbCUx MCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIEFzIGl2YWw7IH0KIHN0ZXAgczJfdXBk YXRlICAgICAgICAgICAgICAgICAgeyBVUERBVEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRp b24gU0VUIGl2YWwgPSBpdmFsICsgMiB3aGVyZSBpZCA+IDkwMDsgfQogc3RlcCBzMl9kZWxl dGUgICAgICAgICAgICAgICAgICB7IERFTEVURSBGUk9NIHRlc3RfdmFjdXVtX3N0YXRfaXNv bGF0aW9uIHdoZXJlIGlkID4gOTAwOyB9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMu b3V0CmluZGV4IDg4YjBlMTNlZDU4Li4xNzQxNzUzYjUyZCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQKQEAgLTIyNTksNiArMjI1OSwyMyBAQCBwZ19zdGF0X3VzZXJf dGFibGVzfCBTRUxFQ1QgcmVsaWQsCiAgICAgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCiAgICBG Uk9NIHBnX3N0YXRfYWxsX3RhYmxlcwogICBXSEVSRSAoKHNjaGVtYW5hbWUgPD4gQUxMIChB UlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkp IEFORCAoc2NoZW1hbmFtZSAhfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOworcGdfc3RhdF92YWN1 dW1fZGF0YWJhc2V8IFNFTEVDVCBkYi5vaWQgQVMgZGJvaWQsCisgICAgZGIuZGF0bmFtZSBB UyBkYm5hbWUsCisgICAgc3RhdHMuZGJfYmxrc19yZWFkLAorICAgIHN0YXRzLmRiX2Jsa3Nf aGl0LAorICAgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCwKKyAgICBzdGF0cy50b3RhbF9i bGtzX3dyaXR0ZW4sCisgICAgc3RhdHMud2FsX3JlY29yZHMsCisgICAgc3RhdHMud2FsX2Zw aSwKKyAgICBzdGF0cy53YWxfYnl0ZXMsCisgICAgc3RhdHMuYmxrX3JlYWRfdGltZSwKKyAg ICBzdGF0cy5ibGtfd3JpdGVfdGltZSwKKyAgICBzdGF0cy5kZWxheV90aW1lLAorICAgIHN0 YXRzLnRvdGFsX3RpbWUsCisgICAgc3RhdHMud3JhcGFyb3VuZF9mYWlsc2FmZSwKKyAgICBz dGF0cy5lcnJvcnMKKyAgIEZST00gcGdfZGF0YWJhc2UgZGIsCisgICAgTEFURVJBTCBwZ19z dGF0X2dldF92YWN1dW1fZGF0YWJhc2UoZGIub2lkKSBzdGF0cyhkYm9pZCwgZGJfYmxrc19y ZWFkLCBkYl9ibGtzX2hpdCwgdG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9ibGtzX3dyaXR0 ZW4sIHdhbF9yZWNvcmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJs a193cml0ZV90aW1lLCBkZWxheV90aW1lLCB0b3RhbF90aW1lLCB3cmFwYXJvdW5kX2ZhaWxz YWZlLCBlcnJvcnMpOwogcGdfc3RhdF92YWN1dW1faW5kZXhlc3wgU0VMRUNUIHJlbC5vaWQg QVMgcmVsaWQsCiAgICAgbnMubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIHJlbC5yZWxu YW1lLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1faW5k ZXhfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV9p bmRleF9zdGF0aXN0aWNzLm91dAppbmRleCBlMDBhMGZjNjgzYy4uOWU1ZDMzMzQyYzkgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX2luZGV4X3N0YXRp c3RpY3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX2luZGV4 X3N0YXRpc3RpY3Mub3V0CkBAIC0xNiw4ICsxNiwxMiBAQCBTSE9XIHRyYWNrX2NvdW50czsg IC0tIG11c3QgYmUgb24KIFxzZXQgc2FtcGxlX3NpemUgMTAwMDAKIC0tIG5vdCBlbmFibGVk IGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KIFNFVCB0cmFja19mdW5j dGlvbnMgVE8gJ2FsbCc7Ci0tLSBUZXN0IHRoYXQgdmFjdXVtIHN0YXRpc3RpY3Mgd2lsbCBi ZSBlbXB0eSB3aGVuIHBhcmFtZXRlciBpcyBvZmYuCi1TRVQgdHJhY2tfdmFjdXVtX3N0YXRp c3RpY3MgVE8gJ29mZic7CitTSE9XIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOyAgLS0gbXVz dCBiZSBvZmYKKyB0cmFja192YWN1dW1fc3RhdGlzdGljcyAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBvZmYKKygxIHJvdykKKwogQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQp IFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKIElO U0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1w bGVfc2l6ZSkgYXMgeDsKIEFOQUxZWkUgdmVzdGF0OwpAQCAtMzMsMTIgKzM3LDcgQEAgV0hF UkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnOwogCiBSRVNFVCB0cmFja192YWN1dW1fc3RhdGlz dGljczsKIERST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7Ci1TSE9XIHRyYWNrX3ZhY3V1bV9z dGF0aXN0aWNzOyAgLS0gbXVzdCBiZSBvbgotIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIG9uCi0oMSByb3cpCi0KK1NFVCB0cmFja192 YWN1dW1fc3RhdGlzdGljcyBUTyAnb24nOwogLS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMgYXJl IGZsdXNoZWQKIFNFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKICBwZ19zdGF0 X2ZvcmNlX25leHRfZmx1c2ggCkBAIC0xODEsMyArMTgwLDQgQEAgV0hFUkUgdnQucmVsbmFt ZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CiAoMSByb3cpCiAKIERS T1AgVEFCTEUgdmVzdGF0OworUkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlz dGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5k X2RiX3N0YXRpc3RpY3Mub3V0CnNpbWlsYXJpdHkgaW5kZXggODIlCnJlbmFtZSBmcm9tIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dApy ZW5hbWUgdG8gc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX2FuZF9k Yl9zdGF0aXN0aWNzLm91dAppbmRleCBiNWVhOWM5YWIxZS4uZjc5YWU1OGZiMzggMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0 aWNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNf YW5kX2RiX3N0YXRpc3RpY3Mub3V0CkBAIC02LDcgKzYsNiBAQAogLS0gbnVtYmVyIG9mIGZy b3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1vdmVkIGJ5IGJhY2tlbmQuCiAtLSBTdGF0aXN0 aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGluIHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBi ZWhhdmlvciBpcyB1bnN0YWJsZS4KIC0tCi0tLSBjb25kaXRpbyBzaW5lIHF1YSBub24KIFNI T1cgdHJhY2tfY291bnRzOyAgLS0gbXVzdCBiZSBvbgogIHRyYWNrX2NvdW50cyAKIC0tLS0t LS0tLS0tLS0tCkBAIC0xNiw4ICsxNSwxMiBAQCBTSE9XIHRyYWNrX2NvdW50czsgIC0tIG11 c3QgYmUgb24KIFxzZXQgc2FtcGxlX3NpemUgMTAwMDAKIC0tIG5vdCBlbmFibGVkIGJ5IGRl ZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KIFNFVCB0cmFja19mdW5jdGlvbnMg VE8gJ2FsbCc7Ci0tLSBUZXN0IHRoYXQgdmFjdXVtIHN0YXRpc3RpY3Mgd2lsbCBiZSBlbXB0 eSB3aGVuIHBhcmFtZXRlciBpcyBvZmYuCi1TRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3Mg VE8gJ29mZic7CitTSE9XIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOyAgLS0gbXVzdCBiZSBv ZmYKKyB0cmFja192YWN1dW1fc3RhdGlzdGljcyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBvZmYKKygxIHJvdykKKwogQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEgg KGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKIElOU0VSVCBJ TlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6 ZSkgYXMgeDsKIEFOQUxZWkUgdmVzdGF0OwpAQCAtMzcsMTIgKzQwLDEyIEBAIFdIRVJFIHZ0 LnJlbG5hbWUgPSAndmVzdGF0JzsKIAogUkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7 CiBEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOwotU0hPVyB0cmFja192YWN1dW1fc3RhdGlz dGljczsgIC0tIG11c3QgYmUgb24KLSB0cmFja192YWN1dW1fc3RhdGlzdGljcyAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBvbgotKDEgcm93KQotCitDUkVBVEUgREFUQUJBU0Ug cmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiOworQ1JFQVRFIERBVEFCQVNFIHJlZ3Jl c3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7CitcYyByZWdyZXNzaW9uX3N0YXRpc3RpY192 YWN1dW1fZGI7CitTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gb247CistLSBub3Qg ZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCitTRVQgdHJh Y2tfZnVuY3Rpb25zIFRPICdhbGwnOwogLS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMgYXJlIGZs dXNoZWQKIFNFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKICBwZ19zdGF0X2Zv cmNlX25leHRfZmx1c2ggCkBAIC0xNjUsNyArMTY4LDcgQEAgRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CiBTRUxFQ1QgOmR3cjM+ MCBBUyBkV1IsIDpkZnBpMz0wIEFTIGRGUEksIDpkd2IzPjAgQVMgZFdCOwogIGR3ciB8IGRm cGkgfCBkd2IgCiAtLS0tLSstLS0tLS0rLS0tLS0KLSB0ICAgfCB0ICAgIHwgdAorIGYgICB8 IHQgICAgfCBmCiAoMSByb3cpCiAKIC0tCkBAIC0yMjUsMyArMjI4LDY5IEBAIEZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92 YWN1dW1fdGFibGVzLnJlbG5hCiAoMSByb3cpCiAKIERST1AgVEFCTEUgdmVzdGF0IENBU0NB REU7CistLSBOb3cgY2hlY2sgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIGN1cnJlbnQgZGF0YWJh c2UKK1NFTEVDVCBkYm5hbWUsCisgICAgICAgZGJfYmxrc19oaXQgPiAwIEFTIGRiX2Jsa3Nf aGl0LAorICAgICAgIHRvdGFsX2Jsa3NfZGlydGllZCA+IDAgQVMgdG90YWxfYmxrc19kaXJ0 aWVkLAorICAgICAgIHRvdGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQVMgdG90YWxfYmxrc193cml0 dGVuLAorICAgICAgIHdhbF9yZWNvcmRzID4gMCBBUyB3YWxfcmVjb3JkcywKKyAgICAgICB3 YWxfZnBpID4gMCBBUyB3YWxfZnBpLAorICAgICAgIHdhbF9ieXRlcyA+IDAgQVMgd2FsX2J5 dGVzLAorICAgICAgIHRvdGFsX3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUKK0ZST00KK3BnX3N0 YXRfdmFjdXVtX2RhdGFiYXNlCitXSEVSRSBkYm5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCk7 CisgICAgICAgICAgICAgZGJuYW1lICAgICAgICAgICAgIHwgZGJfYmxrc19oaXQgfCB0b3Rh bF9ibGtzX2RpcnRpZWQgfCB0b3RhbF9ibGtzX3dyaXR0ZW4gfCB3YWxfcmVjb3JkcyB8IHdh bF9mcGkgfCB3YWxfYnl0ZXMgfCB0b3RhbF90aW1lIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIgfCB0ICAgICAgICAg ICB8IHQgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICB8IHQgICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQKKygxIHJvdykKKworLS0gZW5zdXJlIHBl bmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1 c2goKTsKKyBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIAorKDEgcm93KQorCitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lU SCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJU IElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9z aXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitVUERBVEUgdmVzdGF0IFNFVCB4ID0gMTAw MDE7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3Rh dDsKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7CitTRVQgdHJhY2tfdmFj dXVtX3N0YXRpc3RpY3MgVE8gb247CistLSBOb3cgY2hlY2sgdmFjdXVtIHN0YXRpc3RpY3Mg Zm9yIHBvc3RncmVzIGRhdGFiYXNlIGZyb20gYW5vdGhlciBkYXRhYmFzZQorU0VMRUNUIGRi bmFtZSwKKyAgICAgICBkYl9ibGtzX2hpdCA+IDAgQVMgZGJfYmxrc19oaXQsCisgICAgICAg dG90YWxfYmxrc19kaXJ0aWVkID4gMCBBUyB0b3RhbF9ibGtzX2RpcnRpZWQsCisgICAgICAg dG90YWxfYmxrc193cml0dGVuID4gMCBBUyB0b3RhbF9ibGtzX3dyaXR0ZW4sCisgICAgICAg d2FsX3JlY29yZHMgPiAwIEFTIHdhbF9yZWNvcmRzLAorICAgICAgIHdhbF9mcGkgPiAwIEFT IHdhbF9mcGksCisgICAgICAgd2FsX2J5dGVzID4gMCBBUyB3YWxfYnl0ZXMsCisgICAgICAg dG90YWxfdGltZSA+IDAgQVMgdG90YWxfdGltZQorRlJPTQorcGdfc3RhdF92YWN1dW1fZGF0 YWJhc2UKK1dIRVJFIGRibmFtZSA9ICdyZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIn OworICAgICAgICAgICAgIGRibmFtZSAgICAgICAgICAgICB8IGRiX2Jsa3NfaGl0IHwgdG90 YWxfYmxrc19kaXJ0aWVkIHwgdG90YWxfYmxrc193cml0dGVuIHwgd2FsX3JlY29yZHMgfCB3 YWxfZnBpIHwgd2FsX2J5dGVzIHwgdG90YWxfdGltZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiIHwgdCAgICAgICAg ICAgfCB0ICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgfCB0ICAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0CisoMSByb3cpCisKK1xjIHJlZ3Jlc3Np b25fc3RhdGlzdGljX3ZhY3V1bV9kYgorU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRP IG9uOworRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKK1xjIHJlZ3Jlc3Npb25fc3RhdGlz dGljX3ZhY3V1bV9kYjE7CitTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gb247CitT RUxFQ1QgY291bnQoKikKK0ZST00gcGdfZGF0YWJhc2UgZAorQ1JPU1MgSk9JTiBwZ19zdGF0 X2dldF92YWN1dW1fdGFibGVzKDApCitXSEVSRSBvaWQgPSAwOyAtLSBtdXN0IGJlIDAKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitcYyBwb3N0Z3JlcworRFJPUCBE QVRBQkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOworRFJPUCBEQVRBQkFT RSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGI7CitSRVNFVCB0cmFja192YWN1dW1f c3RhdGlzdGljczsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2No ZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDk3N2E4 N2E1YjFmLi4xOWM3NmI5NjgzMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl CkBAIC0xNDEsNCArMTQxLDQgQEAgdGVzdDogdGFibGVzcGFjZQogIyBDaGVjayB2YWN1dW0g c3RhdGlzdGljcwogIyAtLS0tLS0tLS0tCiB0ZXN0OiB2YWN1dW1faW5kZXhfc3RhdGlzdGlj cwotdGVzdDogdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQordGVzdDogdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcwpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcmVn cmVzc2lvbi5kaWZmcyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcmVncmVzc2lvbi5kaWZmcwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDRjMjRmNDFiNDAKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3Npb24uZGlmZnMKQEAgLTAs MCArMSwxMiBAQAorZGlmZiAtVTMgL2hvbWUvYWxlbmEvcG9zdGdyZXNwcm9fX2NvcHk2MS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3Rp Y3Mub3V0IC9ob21lL2FsZW5hL3Bvc3RncmVzcHJvX19jb3B5NjEvc3JjL3Rlc3QvcmVncmVz cy9yZXN1bHRzL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0CistLS0gL2hv bWUvYWxlbmEvcG9zdGdyZXNwcm9fX2NvcHk2MS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0CTIwMjUtMDItMDQgMTg6MDM6 MTIuNjQ1MTI3NTU5ICswMzAwCisrKysgL2hvbWUvYWxlbmEvcG9zdGdyZXNwcm9fX2NvcHk2 MS9zcmMvdGVzdC9yZWdyZXNzL3Jlc3VsdHMvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlz dGljcy5vdXQJMjAyNS0wMi0wNCAxODozNjoxMC4yMzgzNDk5OTEgKzAzMDAKK0BAIC0xNjgs NyArMTY4LDcgQEAKKyBTRUxFQ1QgOmR3cjM+MCBBUyBkV1IsIDpkZnBpMz0wIEFTIGRGUEks IDpkd2IzPjAgQVMgZFdCOworICBkd3IgfCBkZnBpIHwgZHdiIAorIC0tLS0tKy0tLS0tLSst LS0tLQorLSB0ICAgfCB0ICAgIHwgdAorKyBmICAgfCB0ICAgIHwgZgorICgxIHJvdykKKyAK KyAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0 YXRpc3RpY3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRp c3RpY3Muc3FsCmluZGV4IGFlMTQ2ZTFkMjNmLi45YjdlNjQ1MTg3ZCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbApAQCAt MTQsOCArMTQsNyBAQCBTSE9XIHRyYWNrX2NvdW50czsgIC0tIG11c3QgYmUgb24KIC0tIG5v dCBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KIFNFVCB0 cmFja19mdW5jdGlvbnMgVE8gJ2FsbCc7CiAKLS0tIFRlc3QgdGhhdCB2YWN1dW0gc3RhdGlz dGljcyB3aWxsIGJlIGVtcHR5IHdoZW4gcGFyYW1ldGVyIGlzIG9mZi4KLVNFVCB0cmFja192 YWN1dW1fc3RhdGlzdGljcyBUTyAnb2ZmJzsKK1NIT1cgdHJhY2tfdmFjdXVtX3N0YXRpc3Rp Y3M7ICAtLSBtdXN0IGJlIG9mZgogCiBDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lU SCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOwogSU5TRVJU IElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9z aXplKSBhcyB4OwpAQCAtMzMsNyArMzIsNyBAQCBXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3Rh dCc7CiBSRVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljczsKIERST1AgVEFCTEUgdmVzdGF0 IENBU0NBREU7CiAKLVNIT1cgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJl IG9uCitTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gJ29uJzsKIAogLS0gZW5zdXJl IHBlbmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKIFNFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRf Zmx1c2goKTsKQEAgLTE0OSwzICsxNDgsNCBAQCBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4 ZXMgdnQsIHBnX2NsYXNzIGMKIFdIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFO RCB2dC5yZWxpZCA9IGMub2lkOwogCiBEUk9QIFRBQkxFIHZlc3RhdDsKK1JFU0VUIHRyYWNr X3ZhY3V1bV9zdGF0aXN0aWNzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv dmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Zh Y3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsCnNpbWlsYXJpdHkgaW5kZXggODEl CnJlbmFtZSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlz dGljcy5zcWwKcmVuYW1lIHRvIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNf YW5kX2RiX3N0YXRpc3RpY3Muc3FsCmluZGV4IDViYzM0YmVjNjRiLi5jYTdkYmRlOTM4NyAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0 aWNzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX2FuZF9k Yl9zdGF0aXN0aWNzLnNxbApAQCAtNywxNSArNywxMyBAQAogLS0gU3RhdGlzdGljIHdhbF9m cGkgaXMgbm90IGRpc3BsYXllZCBpbiB0aGlzIHRlc3QgYmVjYXVzZSBpdHMgYmVoYXZpb3Ig aXMgdW5zdGFibGUuCiAtLQogCi0tLSBjb25kaXRpbyBzaW5lIHF1YSBub24KIFNIT1cgdHJh Y2tfY291bnRzOyAgLS0gbXVzdCBiZSBvbgogXHNldCBzYW1wbGVfc2l6ZSAxMDAwMAogCiAt LSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCiBT RVQgdHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOwogCi0tLSBUZXN0IHRoYXQgdmFjdXVtIHN0 YXRpc3RpY3Mgd2lsbCBiZSBlbXB0eSB3aGVuIHBhcmFtZXRlciBpcyBvZmYuCi1TRVQgdHJh Y2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gJ29mZic7CitTSE9XIHRyYWNrX3ZhY3V1bV9zdGF0 aXN0aWNzOyAgLS0gbXVzdCBiZSBvZmYKIAogQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQp IFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKIElO U0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1w bGVfc2l6ZSkgYXMgeDsKQEAgLTM2LDcgKzM0LDEzIEBAIFdIRVJFIHZ0LnJlbG5hbWUgPSAn dmVzdGF0JzsKIFJFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOwogRFJPUCBUQUJMRSB2 ZXN0YXQgQ0FTQ0FERTsKIAotU0hPVyB0cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11 c3QgYmUgb24KK0NSRUFURSBEQVRBQkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1f ZGI7CitDUkVBVEUgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsK K1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjsKK1NFVCB0cmFja192YWN1dW1f c3RhdGlzdGljcyBUTyBvbjsKKworLS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdl IHdhbnQgdG8gdGVzdCBpdC4uLgorU0VUIHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKIAog LS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKIFNFTEVDVCBwZ19zdGF0X2Zv cmNlX25leHRfZmx1c2goKTsKQEAgLTE4MCw0ICsxODQsNTkgQEAgVkFDVVVNIChQQVJBTExF TCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CiBTRUxFQ1Qgdm1fbmV3X2Zy b3plbl9wYWdlcyA9IDpwZiBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHZtX25ld192aXNpYmxl X3BhZ2VzID0gOnB2IEFTIHZtX25ld192aXNpYmxlX3BhZ2VzLHZtX25ld192aXNpYmxlX2Zy b3plbl9wYWdlcyA9IDpwdmYgQVMgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCByZXZf YWxsX2Zyb3plbl9wYWdlcyA9IDpoYWZwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9h bGxfdmlzaWJsZV9wYWdlcyA9IDpoYXZwIEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcwogRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19z dGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQ7CiAKLURST1AgVEFC TEUgdmVzdGF0IENBU0NBREU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorRFJPUCBU QUJMRSB2ZXN0YXQgQ0FTQ0FERTsKKworLS0gTm93IGNoZWNrIHZhY3V1bSBzdGF0aXN0aWNz IGZvciBjdXJyZW50IGRhdGFiYXNlCitTRUxFQ1QgZGJuYW1lLAorICAgICAgIGRiX2Jsa3Nf aGl0ID4gMCBBUyBkYl9ibGtzX2hpdCwKKyAgICAgICB0b3RhbF9ibGtzX2RpcnRpZWQgPiAw IEFTIHRvdGFsX2Jsa3NfZGlydGllZCwKKyAgICAgICB0b3RhbF9ibGtzX3dyaXR0ZW4gPiAw IEFTIHRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICAgICB3YWxfcmVjb3JkcyA+IDAgQVMgd2Fs X3JlY29yZHMsCisgICAgICAgd2FsX2ZwaSA+IDAgQVMgd2FsX2ZwaSwKKyAgICAgICB3YWxf Ynl0ZXMgPiAwIEFTIHdhbF9ieXRlcywKKyAgICAgICB0b3RhbF90aW1lID4gMCBBUyB0b3Rh bF90aW1lCitGUk9NCitwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZQorV0hFUkUgZGJuYW1lID0g Y3VycmVudF9kYXRhYmFzZSgpOworCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1 c2hlZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCitDUkVBVEUgVEFC TEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxs ZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitVUERB VEUgdmVzdGF0IFNFVCB4ID0gMTAwMDE7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9V U0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFj dXVtX2RiMTsKK1NFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyBvbjsKKworLS0gTm93 IGNoZWNrIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBwb3N0Z3JlcyBkYXRhYmFzZSBmcm9tIGFu b3RoZXIgZGF0YWJhc2UKK1NFTEVDVCBkYm5hbWUsCisgICAgICAgZGJfYmxrc19oaXQgPiAw IEFTIGRiX2Jsa3NfaGl0LAorICAgICAgIHRvdGFsX2Jsa3NfZGlydGllZCA+IDAgQVMgdG90 YWxfYmxrc19kaXJ0aWVkLAorICAgICAgIHRvdGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQVMgdG90 YWxfYmxrc193cml0dGVuLAorICAgICAgIHdhbF9yZWNvcmRzID4gMCBBUyB3YWxfcmVjb3Jk cywKKyAgICAgICB3YWxfZnBpID4gMCBBUyB3YWxfZnBpLAorICAgICAgIHdhbF9ieXRlcyA+ IDAgQVMgd2FsX2J5dGVzLAorICAgICAgIHRvdGFsX3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUK K0ZST00KK3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCitXSEVSRSBkYm5hbWUgPSAncmVncmVz c2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiJzsKKworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNf dmFjdXVtX2RiCitTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gb247CisKK0RST1Ag VEFCTEUgdmVzdGF0IENBU0NBREU7CisKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1 bV9kYjE7CitTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gb247CitTRUxFQ1QgY291 bnQoKikKK0ZST00gcGdfZGF0YWJhc2UgZAorQ1JPU1MgSk9JTiBwZ19zdGF0X2dldF92YWN1 dW1fdGFibGVzKDApCitXSEVSRSBvaWQgPSAwOyAtLSBtdXN0IGJlIDAKKworXGMgcG9zdGdy ZXMKK0RST1AgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK0RS T1AgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiOworUkVTRVQgdHJh Y2tfdmFjdXVtX3N0YXRpc3RpY3M7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAK Mi4zNC4xCgo= --------------sXZDUBur3vlMyG0eYCJv70Le--