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 1siYJg-0067GV-7y for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Aug 2024 11:55:25 +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 1siYJe-009Eok-6E for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Aug 2024 11:55: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 1siYJd-009Eoc-Ex for pgsql-hackers@lists.postgresql.org; Mon, 26 Aug 2024 11:55:22 +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.94.2) (envelope-from ) id 1siYJZ-001VsF-1l for pgsql-hackers@postgresql.org; Mon, 26 Aug 2024 11:55:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1724673313; bh=dDG9jfHtv68KhusvoZKMhkJtpSDbZV/7XeWCbclDIDw=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=QbFX4XFEVO+EArj5aceBziIWUiFxwSbFL6nZ+dncSytYd27OXKRV9IftmyxY3du/Q ZKnmI2z/HdkVtya62+t4nOlNo8Bw7Mg9akyAv+9vfv1gxPu7VeU8WWQ2zoaMfN1fNh drosX8v33wc97cwaZO1Xc3SI2FhbAZmZe498VJpQi4VbsbFOw93cBSkCyVieHs6U1C Fb5S0gAcBrcJ12EFuVOgmNvFJia3aFiRzrDC/d777RP4jLyYwMcFacyb5aDTTOkr7f Y3h3uAjSiY095HlPLdTlAz/sXg6HRZeDBuCiXT07jJSQIwhDiGvGskzK0rtgNt3R3t A0Uutl6Grmd/g== Received: from [172.30.33.154] (unknown [172.30.33.154]) (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 6212360445; Mon, 26 Aug 2024 14:55:13 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------1wDbp5xZGRmHSi1nJwiZPNri" Message-ID: <60688b7a-76ee-4160-b6b6-d43b9ca4398f@postgrespro.ru> Date: Mon, 26 Aug 2024 14:55:13 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics To: Alexander Korotkov , jian he , Kirill Reshke Cc: Ilia Evdokimov , Andrei Zubkov , Alena Rybakina , pgsql-hackers , a.lepikhov@postgrespro.ru References: <53c47c2d-72a5-44f2-900c-9973b2af1808@tantorlabs.com> <4a902cea-54fb-41b5-b208-b84731a5f577@postgrespro.ru> <092adec6-4eae-4bd4-bd0d-473a9df1282b@tantorlabs.com> <3deae1bd-ad84-4459-a26e-04c9136b84e9@postgrespro.ru> Content-Language: en-US From: Alena Rybakina In-Reply-To: X-KSMG-AntiPhishing: NotDetected, bases: 2024/08/26 10:26:00 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: 2024/08/26 08:14:00 #26435425 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. --------------1wDbp5xZGRmHSi1nJwiZPNri Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Just in case, I have attached a diff file to show the changes for the latest version attached here [0] to make the review process easier. [0] https://www.postgresql.org/message-id/c4e4e305-7119-4183-b49a-d7092f4efba3%40postgrespro.ru -- Regards, Alena Rybakina Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --------------1wDbp5xZGRmHSi1nJwiZPNri Content-Type: text/plain; charset=UTF-8; name="diff_vacuum.diff.no-cfbot" Content-Disposition: attachment; filename="diff_vacuum.diff.no-cfbot" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBiL2RvYy9zcmMv c2dtbC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCA0MmQzYWQyMTQ4Ni4uOGNiY2NkYzRhNGQg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTUzNjAsNyArNTM2MCw3IEBAIFNFTEVD VCAqIEZST00gcGdfbG9ja3MgcGwgTEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAog ICAgICAgICBOdW1iZXIgb2YgdGltZXMgYmxvY2tzIG9mIHRoaXMgaW5kZXggd2VyZSBhbHJl YWR5IGZvdW5kCiAgICAgICAgIGluIHRoZSBidWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9wZXJh dGlvbnMsIHNvIHRoYXQgYSByZWFkIHdhcyBub3QgbmVjZXNzYXJ5CiAgICAgICAgICh0aGlz IG9ubHkgaW5jbHVkZXMgaGl0cyBpbiB0aGUKLSAgICAgICAgJnByb2plY3Q7IGJ1ZmZlciBj YWNoZSwgbm90IHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgZmlsZSBzeXN0ZW0gY2FjaGUpCisg ICAgICAgIHByb2plY3Q7IGJ1ZmZlciBjYWNoZSwgbm90IHRoZSBvcGVyYXRpbmcgc3lzdGVt J3MgZmlsZSBzeXN0ZW0gY2FjaGUpCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9y b3c+CiAKQEAgLTU2MDEsNyArNTYwMSw3IEBAIFNFTEVDVCAqIEZST00gcGdfbG9ja3MgcGwg TEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICAgICAgICBOdW1iZXIgb2YgdGlt ZXMgYmxvY2tzIG9mIHRoaXMgdGFibGUgd2VyZSBhbHJlYWR5IGZvdW5kCiAgICAgICAgIGlu IHRoZSBidWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMsIHNvIHRoYXQgYSByZWFk IHdhcyBub3QgbmVjZXNzYXJ5CiAgICAgICAgICh0aGlzIG9ubHkgaW5jbHVkZXMgaGl0cyBp biB0aGUKLSAgICAgICAgJnByb2plY3Q7IGJ1ZmZlciBjYWNoZSwgbm90IHRoZSBvcGVyYXRp bmcgc3lzdGVtJ3MgZmlsZSBzeXN0ZW0gY2FjaGUpCisgICAgICAgIHByb2plY3Q7IGJ1ZmZl ciBjYWNoZSwgbm90IHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgZmlsZSBzeXN0ZW0gY2FjaGUp CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCBjYTNhZDA5NzI3ZS4uNzZhMmZmZmYyYmIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTE0MjAsNyArMTQyMCw3 IEBAIEZST00KICAgcGdfZGF0YWJhc2UgZGIsCiAgIHBnX2NsYXNzIHJlbCwKICAgcGdfbmFt ZXNwYWNlIG5zLAotICBwZ19zdGF0X3ZhY3V1bV90YWJsZXMoZGIub2lkLCByZWwub2lkKSBz dGF0cworICBwZ19zdGF0X3ZhY3V1bV90YWJsZXMocmVsLm9pZCkgc3RhdHMKIFdIRVJFCiAg IGRiLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkgQU5ECiAgIHJlbC5vaWQgPSBzdGF0 cy5yZWxpZCBBTkQKQEAgLTE0NjAsNyArMTQ2MCw3IEBAIEZST00KICAgcGdfZGF0YWJhc2Ug ZGIsCiAgIHBnX2NsYXNzIHJlbCwKICAgcGdfbmFtZXNwYWNlIG5zLAotICBwZ19zdGF0X3Zh Y3V1bV9pbmRleGVzKGRiLm9pZCwgcmVsLm9pZCkgc3RhdHMKKyAgcGdfc3RhdF92YWN1dW1f aW5kZXhlcyhyZWwub2lkKSBzdGF0cwogV0hFUkUKICAgZGIuZGF0bmFtZSA9IGN1cnJlbnRf ZGF0YWJhc2UoKSBBTkQKICAgcmVsLm9pZCA9IHN0YXRzLnJlbGlkIEFORApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMgYi9zcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS9wZ3N0YXQuYwppbmRleCAzYzUwYmVhMzc5Yy4uYjYzMzQwODc3N2Ug MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCkBAIC0xNDYsNiArMTQ2LDM0 IEBACiAjZGVmaW5lIFBHU1RBVF9GSUxFX0VOVFJZX0hBU0gJJ1MnIC8qIHN0YXRzIGVudHJ5 IGlkZW50aWZpZWQgYnkKIAkJCQkJCQkJCSAqIFBnU3RhdF9IYXNoS2V5ICovCiAKKy8qIGhh c2ggdGFibGUgZm9yIHN0YXRpc3RpY3Mgc25hcHNob3RzIGVudHJ5ICovCit0eXBlZGVmIHN0 cnVjdCBQZ1N0YXRfU25hcHNob3RFbnRyeQoreworCVBnU3RhdF9IYXNoS2V5IGtleTsKKwlj aGFyCQlzdGF0dXM7CQkJLyogZm9yIHNpbXBsZWhhc2ggdXNlICovCisJdm9pZAkgICAqZGF0 YTsJCQkvKiB0aGUgc3RhdHMgZGF0YSBpdHNlbGYgKi8KK30gUGdTdGF0X1NuYXBzaG90RW50 cnk7CisKKworLyogLS0tLS0tLS0tLQorICogQmFja2VuZC1sb2NhbCBIYXNoIFRhYmxlIERl ZmluaXRpb25zCisgKiAtLS0tLS0tLS0tCisgKi8KKworLyogZm9yIHN0YXRzIHNuYXBzaG90 IGVudHJpZXMgKi8KKyNkZWZpbmUgU0hfUFJFRklYIHBnc3RhdF9zbmFwc2hvdAorI2RlZmlu ZSBTSF9FTEVNRU5UX1RZUEUgUGdTdGF0X1NuYXBzaG90RW50cnkKKyNkZWZpbmUgU0hfS0VZ X1RZUEUgUGdTdGF0X0hhc2hLZXkKKyNkZWZpbmUgU0hfS0VZIGtleQorI2RlZmluZSBTSF9I QVNIX0tFWSh0Yiwga2V5KSBcCisJcGdzdGF0X2hhc2hfaGFzaF9rZXkoJmtleSwgc2l6ZW9m KFBnU3RhdF9IYXNoS2V5KSwgTlVMTCkKKyNkZWZpbmUgU0hfRVFVQUwodGIsIGEsIGIpIFwK KwlwZ3N0YXRfY21wX2hhc2hfa2V5KCZhLCAmYiwgc2l6ZW9mKFBnU3RhdF9IYXNoS2V5KSwg TlVMTCkgPT0gMAorI2RlZmluZSBTSF9TQ09QRSBzdGF0aWMgaW5saW5lCisjZGVmaW5lIFNI X0RFRklORQorI2RlZmluZSBTSF9ERUNMQVJFCisjaW5jbHVkZSAibGliL3NpbXBsZWhhc2gu aCIKKwogCiAvKiAtLS0tLS0tLS0tCiAgKiBMb2NhbCBmdW5jdGlvbiBmb3J3YXJkIGRlY2xh cmF0aW9ucwpAQCAtMjMyLDcgKzI2MCw2IEBAIHN0YXRpYyBib29sIHBnc3RhdF9pc19pbml0 aWFsaXplZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgcGdzdGF0X2lzX3NodXRkb3duID0gZmFs c2U7CiAjZW5kaWYKIAotCiAvKgogICogVGhlIGRpZmZlcmVudCBraW5kcyBvZiBidWlsdC1p biBzdGF0aXN0aWNzLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5k ZXggMGM0OTBiYTVmMWEuLjlhOWI2ZjgwN2JmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdz dGF0ZnVuY3MuYwpAQCAtMzMsNiArMzMsNDEgQEAKICNpbmNsdWRlICJ1dGlscy90aW1lc3Rh bXAuaCIKICNpbmNsdWRlICJ1dGlscy9wZ3N0YXRfaW50ZXJuYWwuaCIKIAorLyogaGFzaCB0 YWJsZSBmb3Igc3RhdGlzdGljcyBzbmFwc2hvdHMgZW50cnkgKi8KK3R5cGVkZWYgc3RydWN0 IFBnU3RhdF9TbmFwc2hvdEVudHJ5Cit7CisJUGdTdGF0X0hhc2hLZXkga2V5OworCWNoYXIJ CXN0YXR1czsJCQkvKiBmb3Igc2ltcGxlaGFzaCB1c2UgKi8KKwl2b2lkCSAgICpkYXRhOwkJ CS8qIHRoZSBzdGF0cyBkYXRhIGl0c2VsZiAqLworfSBQZ1N0YXRfU25hcHNob3RFbnRyeTsK KworLyogLS0tLS0tLS0tLQorICogQmFja2VuZC1sb2NhbCBIYXNoIFRhYmxlIERlZmluaXRp b25zCisgKiAtLS0tLS0tLS0tCisgKi8KKworLyogZm9yIHN0YXRzIHNuYXBzaG90IGVudHJp ZXMgKi8KKyNkZWZpbmUgU0hfUFJFRklYIHBnc3RhdF9zbmFwc2hvdAorI2RlZmluZSBTSF9F TEVNRU5UX1RZUEUgUGdTdGF0X1NuYXBzaG90RW50cnkKKyNkZWZpbmUgU0hfS0VZX1RZUEUg UGdTdGF0X0hhc2hLZXkKKyNkZWZpbmUgU0hfS0VZIGtleQorI2RlZmluZSBTSF9IQVNIX0tF WSh0Yiwga2V5KSBcCisJcGdzdGF0X2hhc2hfaGFzaF9rZXkoJmtleSwgc2l6ZW9mKFBnU3Rh dF9IYXNoS2V5KSwgTlVMTCkKKyNkZWZpbmUgU0hfRVFVQUwodGIsIGEsIGIpIFwKKwlwZ3N0 YXRfY21wX2hhc2hfa2V5KCZhLCAmYiwgc2l6ZW9mKFBnU3RhdF9IYXNoS2V5KSwgTlVMTCkg PT0gMAorI2RlZmluZSBTSF9TQ09QRSBzdGF0aWMgaW5saW5lCisjZGVmaW5lIFNIX0RFRklO RQorI2RlZmluZSBTSF9ERUNMQVJFCisjaW5jbHVkZSAibGliL3NpbXBsZWhhc2guaCIKKwor dHlwZWRlZiBwZ3N0YXRfc25hcHNob3RfaXRlcmF0b3IgU25hcHNob3RJdGVyYXRvcjsKKwor I2RlZmluZSBJbml0U25hcHNob3RJdGVyYXRvcihodGFibGUsIGl0ZXIpIFwKKwlwZ3N0YXRf c25hcHNob3Rfc3RhcnRfaXRlcmF0ZShodGFibGUsIGl0ZXIpOworI2RlZmluZSBTY2FuU3Rh dFNuYXBzaG90KGh0YWJsZSwgaXRlcikgXAorCXBnc3RhdF9zbmFwc2hvdF9pdGVyYXRlKGh0 YWJsZSwgaXRlcikKKworCiAjZGVmaW5lIFVJTlQzMl9BQ0NFU1NfT05DRSh2YXIpCQkgKCh1 aW50MzIpKCooKHZvbGF0aWxlIHVpbnQzMiAqKSYodmFyKSkpKQogCiAjZGVmaW5lIEhBU19Q R1NUQVRfUEVSTUlTU0lPTlMocm9sZSkJIChoYXNfcHJpdnNfb2Zfcm9sZShHZXRVc2VySWQo KSwgUk9MRV9QR19SRUFEX0FMTF9TVEFUUykgfHwgaGFzX3ByaXZzX29mX3JvbGUoR2V0VXNl cklkKCksIHJvbGUpKQpAQCAtMjAzOSw0NyArMjA3NCw5IEBAIHBnX3N0YXRfaGF2ZV9zdGF0 cyhQR19GVU5DVElPTl9BUkdTKQogI2RlZmluZSBFWFRWQUNEQlNUQVRfQ09MVU1OUwkxNQog I2RlZmluZSBFWFRWQUNTVEFUX0NPTFVNTlMgTWF4KEVYVFZBQ0hFQVBTVEFUX0NPTFVNTlMs IEVYVFZBQ0lEWFNUQVRfQ09MVU1OUykKIAotc3RhdGljIE9pZCBDdXJyZW50RGF0YWJhc2VJ ZCA9IEludmFsaWRPaWQ7Ci0KLQotLyoKLSAqIEZldGNoIHN0YXQgY29sbGVjdG9yIGRhdGEg Zm9yIHNwZWNpZmljIGRhdGFiYXNlIGFuZCB0YWJsZSwgd2hpY2ggbG9hZGluZyBmcm9tIGRp c2MuCi0gKiBJdCBpcyBtYXliZSBleHBlbnNpdmUsIGJ1dCBpIGd1ZXNzIHdlIHdvbid0IHVz ZSB0aGF0IG1hY2hpbmVyeSBvZnRlbi4KLSAqIFRoZSBraW5kIG9mIGJ1ZmZlcml6YXRpb24g aXMgYmFzZWQgb24gQ3VycmVudERhdGFiYXNlSWQgdmFsdWUuCi0gKi8KLXN0YXRpYyBQZ1N0 YXRfU3RhdFRhYkVudHJ5ICoKLWZldGNoX2Ric3RhdF90YWJlbnRyeShPaWQgZGJpZCwgT2lk IHJlbGlkKQotewotCU9pZAkJCQkJCXN0b3JlZE15RGF0YWJhc2VJZCA9IE15RGF0YWJhc2VJ ZDsKLQlQZ1N0YXRfU3RhdFRhYkVudHJ5IAkqdGFiZW50cnkgPSBOVUxMOwotCi0JaWYgKE9p ZElzVmFsaWQoQ3VycmVudERhdGFiYXNlSWQpICYmIEN1cnJlbnREYXRhYmFzZUlkID09IGRi aWQpCi0JCS8qIFF1aWNrIHBhdGggd2hlbiB3ZSByZWFkIGRhdGEgZnJvbSB0aGUgc2FtZSBk YXRhYmFzZSAqLwotCQlyZXR1cm4gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQp OwotCi0JcGdzdGF0X2NsZWFyX3NuYXBzaG90KCk7Ci0KLQkvKiBUcmlja3kgdHVybiBoZXJl OiBlbmZvcmNlIHBnc3RhdCB0byB0aGluayB0aGF0IG91ciBkYXRhYmFzZSBoYXMgZGJpZCAq LwotCi0JTXlEYXRhYmFzZUlkID0gZGJpZDsKLQotCVBHX1RSWSgpOwotCXsKLQkJdGFiZW50 cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShyZWxpZCk7Ci0JCU15RGF0YWJhc2VJ ZCA9IHN0b3JlZE15RGF0YWJhc2VJZDsKLQl9Ci0JUEdfQ0FUQ0goKTsKLQl7Ci0JCU15RGF0 YWJhc2VJZCA9IHN0b3JlZE15RGF0YWJhc2VJZDsKLQl9Ci0JUEdfRU5EX1RSWSgpOwotCi0J cmV0dXJuIHRhYmVudHJ5OwotfQotCiBzdGF0aWMgdm9pZAotdHVwbGVzdG9yZV9wdXRfZm9y X2RhdGFiYXNlKE9pZCBkYmlkLCBUdXBsZXN0b3Jlc3RhdGUgKnR1cHN0b3JlLAotCQkJICAg VHVwbGVEZXNjIHR1cGRlc2MsIFBnU3RhdFNoYXJlZF9EYXRhYmFzZSAqZGJlbnRyeSwgaW50 IG5jb2x1bW5zKQordHVwbGVzdG9yZV9wdXRfZm9yX2RhdGFiYXNlKE9pZCBkYmlkLCBSZXR1 cm5TZXRJbmZvICpyc2luZm8sCisJCQkJCQkJUGdTdGF0U2hhcmVkX0RhdGFiYXNlICpkYmVu dHJ5KQogewogCURhdHVtCQl2YWx1ZXNbRVhUVkFDREJTVEFUX0NPTFVNTlNdOwogCWJvb2wJ CW51bGxzW0VYVFZBQ0RCU1RBVF9DT0xVTU5TXTsKQEAgLTIxMTMsMTUgKzIxMTAsMTMgQEAg dHVwbGVzdG9yZV9wdXRfZm9yX2RhdGFiYXNlKE9pZCBkYmlkLCBUdXBsZXN0b3Jlc3RhdGUg KnR1cHN0b3JlLAogCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZGJlbnRyeS0+c3Rh dHMudmFjdXVtX2V4dC50b3RhbF90aW1lKTsKIAl2YWx1ZXNbaSsrXSA9IEludDMyR2V0RGF0 dW0oZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dC5pbnRlcnJ1cHRzKTsKIAotCi0JQXNzZXJ0 KGkgPT0gbmNvbHVtbnMpOwotCi0JdHVwbGVzdG9yZV9wdXR2YWx1ZXModHVwc3RvcmUsIHR1 cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCUFzc2VydChpID09IHJzaW5mby0+c2V0RGVzYy0+ bmF0dHMpOworCXR1cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5mby0+c2V0UmVzdWx0LCByc2lu Zm8tPnNldERlc2MsIHZhbHVlcywgbnVsbHMpOwogfQogCiBzdGF0aWMgdm9pZAotdHVwbGVz dG9yZV9wdXRfZm9yX3JlbGF0aW9uKE9pZCByZWxpZCwgVHVwbGVzdG9yZXN0YXRlICp0dXBz dG9yZSwKLQkJCSAgIFR1cGxlRGVzYyB0dXBkZXNjLCBQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0 YWJlbnRyeSwgaW50IG5jb2x1bW5zKQordHVwbGVzdG9yZV9wdXRfZm9yX3JlbGF0aW9uKE9p ZCByZWxpZCwgUmV0dXJuU2V0SW5mbyAqcnNpbmZvLAorCQkJCQkJCVBnU3RhdF9TdGF0VGFi RW50cnkgKnRhYmVudHJ5KQogewogCURhdHVtCQl2YWx1ZXNbRVhUVkFDU1RBVF9DT0xVTU5T XTsKIAlib29sCQludWxsc1tFWFRWQUNTVEFUX0NPTFVNTlNdOwpAQCAtMjE3OSwyMyArMjE3 NCwxNyBAQCB0dXBsZXN0b3JlX3B1dF9mb3JfcmVsYXRpb24oT2lkIHJlbGlkLCBUdXBsZXN0 b3Jlc3RhdGUgKnR1cHN0b3JlLAogCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0odGFi ZW50cnktPnZhY3V1bV9leHQudG90YWxfdGltZSk7CiAJdmFsdWVzW2krK10gPSBJbnQzMkdl dERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LmludGVycnVwdHMpOwogCi0JQXNzZXJ0KGkg PT0gbmNvbHVtbnMpOwotCi0JdHVwbGVzdG9yZV9wdXR2YWx1ZXModHVwc3RvcmUsIHR1cGRl c2MsIHZhbHVlcywgbnVsbHMpOworCUFzc2VydChpID09IHJzaW5mby0+c2V0RGVzYy0+bmF0 dHMpOworCXR1cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5mby0+c2V0UmVzdWx0LCByc2luZm8t PnNldERlc2MsIHZhbHVlcywgbnVsbHMpOwogfQogCiAvKgogICogR2V0IHRoZSB2YWN1dW0g c3RhdGlzdGljcyBmb3IgdGhlIGhlYXAgdGFibGVzIG9yIGluZGV4ZXMuCiAgKi8KLXN0YXRp YyBEYXR1bQorc3RhdGljIHZvaWQKIHBnX3N0YXRzX3ZhY3V1bShGdW5jdGlvbkNhbGxJbmZv IGZjaW5mbywgRXh0VmFjUmVwb3J0VHlwZSB0eXBlLCBpbnQgbmNvbHVtbnMpCiB7CiAJUmV0 dXJuU2V0SW5mbwkJICAgKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVz dWx0aW5mbzsKLQlNZW1vcnlDb250ZXh0CQkJcGVyX3F1ZXJ5X2N0eDsKLQlNZW1vcnlDb250 ZXh0CQkJb2xkY29udGV4dDsKLQlUdXBsZXN0b3Jlc3RhdGUJCSAgICp0dXBzdG9yZTsKLQlU dXBsZURlc2MJCQkJdHVwZGVzYzsKLQlPaWQJCQkJCQlkYmlkID0gUEdfR0VUQVJHX09JRCgw KTsKIAlQZ1N0YXRfU3RhdFRhYkVudHJ5ICAgICp0YWJlbnRyeTsKIAogCUluaXRNYXRlcmlh bGl6ZWRTUkYoZmNpbmZvLCAwKTsKQEAgLTIyMDUsNjEgKzIxOTQsMzkgQEAgcGdfc3RhdHNf dmFjdXVtKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBFeHRWYWNSZXBvcnRUeXBlIHR5cGUs IGludCBuY29sdW1ucykKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygic2V0LXZhbHVlZCBmdW5j dGlvbiBjYWxsZWQgaW4gY29udGV4dCB0aGF0IGNhbm5vdCBhY2NlcHQgYSBzZXQiKSkpOwot CS8qIFN3aXRjaCB0byBsb25nLWxpdmVkIGNvbnRleHQgdG8gY3JlYXRlIHRoZSByZXR1cm5l ZCBkYXRhIHN0cnVjdHVyZXMgKi8KLQlwZXJfcXVlcnlfY3R4ID0gcnNpbmZvLT5lY29udGV4 dC0+ZWN4dF9wZXJfcXVlcnlfbWVtb3J5OwotCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0 U3dpdGNoVG8ocGVyX3F1ZXJ5X2N0eCk7Ci0KLQkvKiBCdWlsZCBhIHR1cGxlIGRlc2NyaXB0 b3IgZm9yIG91ciByZXN1bHQgdHlwZSAqLwotCWlmIChnZXRfY2FsbF9yZXN1bHRfdHlwZShm Y2luZm8sIE5VTEwsICZ0dXBkZXNjKSAhPSBUWVBFRlVOQ19DT01QT1NJVEUpCi0JCWVsb2co RVJST1IsICJyZXR1cm4gdHlwZSBtdXN0IGJlIGEgcm93IHR5cGUiKTsKLQotCUFzc2VydCh0 dXBkZXNjLT5uYXR0cyA9PSBuY29sdW1ucyk7Ci0KLQl0dXBzdG9yZSA9IHR1cGxlc3RvcmVf YmVnaW5faGVhcCh0cnVlLCBmYWxzZSwgd29ya19tZW0pOwotCUFzc2VydCAodHVwc3RvcmUg IT0gTlVMTCk7Ci0JcnNpbmZvLT5zZXRSZXN1bHQgPSB0dXBzdG9yZTsKLQlyc2luZm8tPnNl dERlc2MgPSB0dXBkZXNjOwotCi0JTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQp OworCUFzc2VydChyc2luZm8tPnNldERlc2MtPm5hdHRzID09IG5jb2x1bW5zKTsKKwlBc3Nl cnQocnNpbmZvLT5zZXRSZXN1bHQgIT0gTlVMTCk7CiAKIAlpZiAodHlwZSA9PSBQR1NUQVRf RVhUVkFDX0lOREVYIHx8IHR5cGUgPT0gUEdTVEFUX0VYVFZBQ19IRUFQKQogCXsKLQkJT2lk CQkJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJCU9pZAkJCQkJcmVsaWQgPSBQR19H RVRBUkdfT0lEKDApOwogCi0JCS8qIExvYWQgdGFibGUgc3RhdGlzdGljcyBmb3Igc3BlY2lm aWVkIGRhdGFiYXNlLiAqLworCQkvKiBMb2FkIHRhYmxlIHN0YXRpc3RpY3MgZm9yIHNwZWNp ZmllZCByZWxhdGlvbi4gKi8KIAkJaWYgKE9pZElzVmFsaWQocmVsaWQpKQogCQl7Ci0JCQl0 YWJlbnRyeSA9IGZldGNoX2Ric3RhdF90YWJlbnRyeShkYmlkLCByZWxpZCk7CisJCQl0YWJl bnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKIAkJCWlmICh0YWJl bnRyeSA9PSBOVUxMIHx8IHRhYmVudHJ5LT52YWN1dW1fZXh0LnR5cGUgIT0gdHlwZSkKIAkJ CQkvKiBUYWJsZSBkb24ndCBleGlzdHMgb3IgaXNuJ3QgYW4gaGVhcCByZWxhdGlvbi4gKi8K LQkJCQlQR19SRVRVUk5fTlVMTCgpOworCQkJCXJldHVybjsKIAotCQkJdHVwbGVzdG9yZV9w dXRfZm9yX3JlbGF0aW9uKHJlbGlkLCB0dXBzdG9yZSwgdHVwZGVzYywgdGFiZW50cnksIG5j b2x1bW5zKTsKKwkJCXR1cGxlc3RvcmVfcHV0X2Zvcl9yZWxhdGlvbihyZWxpZCwgcnNpbmZv LCB0YWJlbnRyeSk7CiAJCX0KIAkJZWxzZQogCQl7CiAJCQlTbmFwc2hvdEl0ZXJhdG9yCQlo YXNoaXRlcjsKIAkJCVBnU3RhdF9TbmFwc2hvdEVudHJ5ICAgKmVudHJ5OwotCQkJT2lkCQkJ CQkJc3RvcmVkTXlEYXRhYmFzZUlkID0gTXlEYXRhYmFzZUlkOwotCi0JCQlwZ3N0YXRfdXBk YXRlX3NuYXBzaG90KFBHU1RBVF9LSU5EX1JFTEFUSU9OKTsKLQkJCU15RGF0YWJhc2VJZCA9 IHN0b3JlZE15RGF0YWJhc2VJZDsKLQogCiAJCQkvKiBJdGVyYXRlIHRoZSBzbmFwc2hvdCAq LwogCQkJSW5pdFNuYXBzaG90SXRlcmF0b3IocGdTdGF0TG9jYWwuc25hcHNob3Quc3RhdHMs ICZoYXNoaXRlcik7CiAKIAkJCXdoaWxlICgoZW50cnkgPSBTY2FuU3RhdFNuYXBzaG90KHBn U3RhdExvY2FsLnNuYXBzaG90LnN0YXRzLCAmaGFzaGl0ZXIpKSAhPSBOVUxMKQogCQkJewot CQkJCU9pZAlyZWxvaWQ7Ci0KIAkJCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOwogCiAJCQkJ dGFiZW50cnkgPSAoUGdTdGF0X1N0YXRUYWJFbnRyeSAqKSBlbnRyeS0+ZGF0YTsKLQkJCQly ZWxvaWQgPSBlbnRyeS0+a2V5Lm9iam9pZDsKIAogCQkJCWlmICh0YWJlbnRyeSAhPSBOVUxM ICYmIHRhYmVudHJ5LT52YWN1dW1fZXh0LnR5cGUgPT0gdHlwZSkKLQkJCQkJdHVwbGVzdG9y ZV9wdXRfZm9yX3JlbGF0aW9uKHJlbG9pZCwgdHVwc3RvcmUsIHR1cGRlc2MsIHRhYmVudHJ5 LCBuY29sdW1ucyk7CisJCQkJCXR1cGxlc3RvcmVfcHV0X2Zvcl9yZWxhdGlvbihyZWxpZCwg cnNpbmZvLCB0YWJlbnRyeSk7CiAJCQl9CiAJCX0KIAl9CkBAIC0yMjY3LDEwICsyMjM0LDcg QEAgcGdfc3RhdHNfdmFjdXVtKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBFeHRWYWNSZXBv cnRUeXBlIHR5cGUsIGludCBuY29sdW1ucykKIAl7CiAJCVBnU3RhdFNoYXJlZF9EYXRhYmFz ZQkgICAqZGJlbnRyeTsKIAkJUGdTdGF0X0VudHJ5UmVmIAkJICAgKmVudHJ5X3JlZjsKLQkJ T2lkCQkJCQkJc3RvcmVkTXlEYXRhYmFzZUlkID0gTXlEYXRhYmFzZUlkOwotCi0JCXBnc3Rh dF91cGRhdGVfc25hcHNob3QoUEdTVEFUX0tJTkRfREFUQUJBU0UpOwotCQlNeURhdGFiYXNl SWQgPSBzdG9yZWRNeURhdGFiYXNlSWQ7CisJCU9pZAkJCQkJCQlkYmlkID0gUEdfR0VUQVJH X09JRCgwKTsKIAogCQlpZiAoT2lkSXNWYWxpZChkYmlkKSkKIAkJewpAQCAtMjI4MCwxNSAr MjI0NCwxMiBAQCBwZ19zdGF0c192YWN1dW0oRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIEV4 dFZhY1JlcG9ydFR5cGUgdHlwZSwgaW50IG5jb2x1bW5zKQogCiAJCQlpZiAoZGJlbnRyeSA9 PSBOVUxMKQogCQkJCS8qIFRhYmxlIGRvZXNuJ3QgZXhpc3Qgb3IgaXNuJ3QgYSBoZWFwIHJl bGF0aW9uICovCi0JCQkJUEdfUkVUVVJOX05VTEwoKTsKKwkJCQlyZXR1cm47CiAKLQkJCXR1 cGxlc3RvcmVfcHV0X2Zvcl9kYXRhYmFzZShkYmlkLCB0dXBzdG9yZSwgdHVwZGVzYywgZGJl bnRyeSwgbmNvbHVtbnMpOworCQkJdHVwbGVzdG9yZV9wdXRfZm9yX2RhdGFiYXNlKGRiaWQs IHJzaW5mbywgZGJlbnRyeSk7CiAJCQlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7 CiAJCX0KLQkJZWxzZQotCQkJUEdfUkVUVVJOX05VTEwoKTsKIAl9Ci0JUEdfUkVUVVJOX05V TEwoKTsKIH0KIAogLyoKQEAgLTIyOTcsOSArMjI1OCw5IEBAIHBnX3N0YXRzX3ZhY3V1bShG dW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgRXh0VmFjUmVwb3J0VHlwZSB0eXBlLCBpbnQgbmNv bHVtbnMpCiBEYXR1bQogcGdfc3RhdF92YWN1dW1fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1Mp CiB7Ci0JcmV0dXJuIHBnX3N0YXRzX3ZhY3V1bShmY2luZm8sIFBHU1RBVF9FWFRWQUNfSEVB UCwgRVhUVkFDSEVBUFNUQVRfQ09MVU1OUyk7CisJcGdfc3RhdHNfdmFjdXVtKGZjaW5mbywg UEdTVEFUX0VYVFZBQ19IRUFQLCBFWFRWQUNIRUFQU1RBVF9DT0xVTU5TKTsKIAotCVBHX1JF VFVSTl9OVUxMKCk7CisJUEdfUkVUVVJOX1ZPSUQoKTsKIH0KIAogLyoKQEAgLTIzMDgsMTAg KzIyNjksMTEgQEAgcGdfc3RhdF92YWN1dW1fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiBE YXR1bQogcGdfc3RhdF92YWN1dW1faW5kZXhlcyhQR19GVU5DVElPTl9BUkdTKQogewotCXJl dHVybiBwZ19zdGF0c192YWN1dW0oZmNpbmZvLCBQR1NUQVRfRVhUVkFDX0lOREVYLCBFWFRW QUNJRFhTVEFUX0NPTFVNTlMpOworCXBnX3N0YXRzX3ZhY3V1bShmY2luZm8sIFBHU1RBVF9F WFRWQUNfSU5ERVgsIEVYVFZBQ0lEWFNUQVRfQ09MVU1OUyk7CisKKyAJUEdfUkVUVVJOX1ZP SUQoKTsKKyB9CiAKLQlQR19SRVRVUk5fTlVMTCgpOwotfQogCiAvKgogICogR2V0IHRoZSB2 YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGRhdGFiYXNlLgpAQCAtMjMxOSw3ICsyMjgxLDcg QEAgcGdfc3RhdF92YWN1dW1faW5kZXhlcyhQR19GVU5DVElPTl9BUkdTKQogRGF0dW0KIHBn X3N0YXRfdmFjdXVtX2RhdGFiYXNlKFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0JCXJldHVybiBw Z19zdGF0c192YWN1dW0oZmNpbmZvLCBQR1NUQVRfRVhUVkFDX0RCLCBFWFRWQUNEQlNUQVRf Q09MVU1OUyk7CisJcGdfc3RhdHNfdmFjdXVtKGZjaW5mbywgUEdTVEFUX0VYVFZBQ19EQiwg RVhUVkFDREJTVEFUX0NPTFVNTlMpOwogCi0JUEdfUkVUVVJOX05VTEwoKTsKLX0KKwlQR19S RVRVUk5fVk9JRCgpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CmluZGV4IGIyZTg4MWFhODlkLi5kNDY5NmQwYzA1NSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMjI1OCwyMCArMTIyNTgsMjAgQEAKICAgZGVz Y3IgPT4gJ3BnX3N0YXRfdmFjdXVtX3RhYmxlcyByZXR1cm4gc3RhdHMgdmFsdWVzJywKICAg cHJvbmFtZSA9PiAncGdfc3RhdF92YWN1dW1fdGFibGVzJywgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLHByb2lzc3RyaWN0ID0+ICdmJywKICAgcHJvcmV0 c2V0ID0+ICd0JywKLSAgcHJvYXJndHlwZXMgPT4gJ29pZCBvaWQnLAotICBwcm9hbGxhcmd0 eXBlcyA9PiAne29pZCxvaWQsb2lkLGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGlu dDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxp bnQ4LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDgs aW50NH0nLAotICBwcm9hcmdtb2RlcyA9PiAne2ksaSxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAotICBwcm9hcmduYW1lcyA9PiAn e2Rib2lkLHJlbG9pZCxyZWxpZCx0b3RhbF9ibGtzX3JlYWQsdG90YWxfYmxrc19oaXQsdG90 YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbixyZWxfYmxrc19yZWFkLHJlbF9i bGtzX2hpdCxwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQscGFnZXNfZnJvemVuLHBhZ2Vz X2FsbF92aXNpYmxlLHR1cGxlc19kZWxldGVkLHR1cGxlc19mcm96ZW4sZGVhZF90dXBsZXMs aW5kZXhfdmFjdXVtX2NvdW50LHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJs ZV9wYWdlcyx3YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJs a193cml0ZV90aW1lLGRlbGF5X3RpbWUsc3lzdGVtX3RpbWUsdXNlcl90aW1lLHRvdGFsX3Rp bWUsaW50ZXJydXB0c30nLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvYWxsYXJn dHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgs aW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4 LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsaW50 NH0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tyZWxv aWQscmVsaWQsdG90YWxfYmxrc19yZWFkLHRvdGFsX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGly dGllZCx0b3RhbF9ibGtzX3dyaXR0ZW4scmVsX2Jsa3NfcmVhZCxyZWxfYmxrc19oaXQscGFn ZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLHBhZ2VzX2Zyb3plbixwYWdlc19hbGxfdmlzaWJs ZSx0dXBsZXNfZGVsZXRlZCx0dXBsZXNfZnJvemVuLGRlYWRfdHVwbGVzLGluZGV4X3ZhY3V1 bV9jb3VudCxyZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMsd2Fs X3JlY29yZHMsd2FsX2ZwaSx3YWxfYnl0ZXMsYmxrX3JlYWRfdGltZSxibGtfd3JpdGVfdGlt ZSxkZWxheV90aW1lLHN5c3RlbV90aW1lLHVzZXJfdGltZSx0b3RhbF90aW1lLGludGVycnVw dHN9JywKICAgcHJvc3JjID0+ICdwZ19zdGF0X3ZhY3V1bV90YWJsZXMnIH0sCiB7IG9pZCA9 PiAnODAwMicsCiAgIGRlc2NyID0+ICdwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHJldHVybiBz dGF0cyB2YWx1ZXMnLAogICBwcm9uYW1lID0+ICdwZ19zdGF0X3ZhY3V1bV9pbmRleGVzJywg cHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLHByb2lzc3RyaWN0 ID0+ICdmJywKICAgcHJvcmV0c2V0ID0+ICd0JywKLSAgcHJvYXJndHlwZXMgPT4gJ29pZCBv aWQnLAotICBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCxvaWQsb2lkLGludDgsaW50OCxpbnQ4 LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsbnVtZXJpYyxmbG9hdDgsZmxv YXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxpbnQ0fScsCi0gIHByb2FyZ21vZGVz ID0+ICd7aSxpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKLSAg cHJvYXJnbmFtZXMgPT4gJ3tkYm9pZCxyZWxvaWQscmVsaWQsdG90YWxfYmxrc19yZWFkLHRv dGFsX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9ibGtzX3dyaXR0ZW4scmVs X2Jsa3NfcmVhZCxyZWxfYmxrc19oaXQscGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZCx3 YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJsa193cml0ZV90 aW1lLGRlbGF5X3RpbWUsc3lzdGVtX3RpbWUsdXNlcl90aW1lLHRvdGFsX3RpbWUsaW50ZXJy dXB0c30nLAotICBwcm9zcmMgPT4gJ3BnX3N0YXRfdmFjdXVtX2luZGV4ZXMnIH0KKyAgcHJv YXJndHlwZXMgPT4gJ29pZCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9pZCxpbnQ4 LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LG51bWVyaWMs ZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsaW50NH0nLAorICBw cm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s b30nLAorICBwcm9hcmduYW1lcyA9PiAne3JlbG9pZCxyZWxpZCx0b3RhbF9ibGtzX3JlYWQs dG90YWxfYmxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbixy ZWxfYmxrc19yZWFkLHJlbF9ibGtzX2hpdCxwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVk LHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJsa19yZWFkX3RpbWUsYmxrX3dyaXRl X3RpbWUsZGVsYXlfdGltZSxzeXN0ZW1fdGltZSx1c2VyX3RpbWUsdG90YWxfdGltZSxpbnRl cnJ1cHRzfScsCisgIHByb3NyYyA9PiAncGdfc3RhdF92YWN1dW1faW5kZXhlcycgfSwKIHsg b2lkID0+ICc4MDAzJywKICAgZGVzY3IgPT4gJ3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlIHJl dHVybiBzdGF0cyB2YWx1ZXMnLAogICBwcm9uYW1lID0+ICdwZ19zdGF0X3ZhY3V1bV9kYXRh YmFzZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJyxwcm9p c3N0cmljdCA9PiAnZicsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRf aW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCmluZGV4 IDcxNWFlMWI2ZmQ0Li4yNGFiM2NlYjcxNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvcGdzdGF0X2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2lu dGVybmFsLmgKQEAgLTg3NCwzOCArODc0LDQgQEAgcGdzdGF0X2dldF9jdXN0b21fc25hcHNo b3RfZGF0YShQZ1N0YXRfS2luZCBraW5kKQogCXJldHVybiBwZ1N0YXRMb2NhbC5zbmFwc2hv dC5jdXN0b21fZGF0YVtpZHhdOwogfQogCi0vKiBoYXNoIHRhYmxlIGZvciBzdGF0aXN0aWNz IHNuYXBzaG90cyBlbnRyeSAqLwotdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1NuYXBzaG90RW50 cnkKLXsKLQlQZ1N0YXRfSGFzaEtleSBrZXk7Ci0JY2hhcgkJc3RhdHVzOwkJCS8qIGZvciBz aW1wbGVoYXNoIHVzZSAqLwotCXZvaWQJICAgKmRhdGE7CQkJLyogdGhlIHN0YXRzIGRhdGEg aXRzZWxmICovCi19IFBnU3RhdF9TbmFwc2hvdEVudHJ5OwotCi0vKiAtLS0tLS0tLS0tCi0g KiBCYWNrZW5kLWxvY2FsIEhhc2ggVGFibGUgRGVmaW5pdGlvbnMKLSAqIC0tLS0tLS0tLS0K LSAqLwotCi0vKiBmb3Igc3RhdHMgc25hcHNob3QgZW50cmllcyAqLwotI2RlZmluZSBTSF9Q UkVGSVggcGdzdGF0X3NuYXBzaG90Ci0jZGVmaW5lIFNIX0VMRU1FTlRfVFlQRSBQZ1N0YXRf U25hcHNob3RFbnRyeQotI2RlZmluZSBTSF9LRVlfVFlQRSBQZ1N0YXRfSGFzaEtleQotI2Rl ZmluZSBTSF9LRVkga2V5Ci0jZGVmaW5lIFNIX0hBU0hfS0VZKHRiLCBrZXkpIFwKLQlwZ3N0 YXRfaGFzaF9oYXNoX2tleSgma2V5LCBzaXplb2YoUGdTdGF0X0hhc2hLZXkpLCBOVUxMKQot I2RlZmluZSBTSF9FUVVBTCh0YiwgYSwgYikgXAotCXBnc3RhdF9jbXBfaGFzaF9rZXkoJmEs ICZiLCBzaXplb2YoUGdTdGF0X0hhc2hLZXkpLCBOVUxMKSA9PSAwCi0jZGVmaW5lIFNIX1ND T1BFIHN0YXRpYyBpbmxpbmUKLSNkZWZpbmUgU0hfREVGSU5FCi0jZGVmaW5lIFNIX0RFQ0xB UkUKLSNpbmNsdWRlICJsaWIvc2ltcGxlaGFzaC5oIgotCi10eXBlZGVmIHBnc3RhdF9zbmFw c2hvdF9pdGVyYXRvciBTbmFwc2hvdEl0ZXJhdG9yOwotCi0jZGVmaW5lIEluaXRTbmFwc2hv dEl0ZXJhdG9yKGh0YWJsZSwgaXRlcikgXAotCXBnc3RhdF9zbmFwc2hvdF9zdGFydF9pdGVy YXRlKGh0YWJsZSwgaXRlcik7Ci0jZGVmaW5lIFNjYW5TdGF0U25hcHNob3QoaHRhYmxlLCBp dGVyKSBcCi0JcGdzdGF0X3NuYXBzaG90X2l0ZXJhdGUoaHRhYmxlLCBpdGVyKQotCiAjZW5k aWYJCQkJCQkJLyogUEdTVEFUX0lOVEVSTkFMX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQKaW5kZXggYzQzODhkZDBkYTEuLjVkN2Y3M2MyNWZkIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMjI3MSw3ICsyMjcxLDcgQEAgcGdfc3Rh dF92YWN1dW1faW5kZXhlc3wgU0VMRUNUIHJlbC5vaWQgQVMgcmVsaWQsCiAgICBGUk9NIHBn X2RhdGFiYXNlIGRiLAogICAgIHBnX2NsYXNzIHJlbCwKICAgICBwZ19uYW1lc3BhY2UgbnMs Ci0gICAgTEFURVJBTCBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzKGRiLm9pZCwgcmVsLm9pZCkg c3RhdHMocmVsaWQsIHRvdGFsX2Jsa3NfcmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Js a3NfZGlydGllZCwgdG90YWxfYmxrc193cml0dGVuLCByZWxfYmxrc19yZWFkLCByZWxfYmxr c19oaXQsIHBhZ2VzX2RlbGV0ZWQsIHR1cGxlc19kZWxldGVkLCB3YWxfcmVjb3Jkcywgd2Fs X2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGltZSwgZGVsYXlf dGltZSwgc3lzdGVtX3RpbWUsIHVzZXJfdGltZSwgdG90YWxfdGltZSwgaW50ZXJydXB0cykK KyAgICBMQVRFUkFMIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMocmVsLm9pZCkgc3RhdHMocmVs aWQsIHRvdGFsX2Jsa3NfcmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGll ZCwgdG90YWxfYmxrc193cml0dGVuLCByZWxfYmxrc19yZWFkLCByZWxfYmxrc19oaXQsIHBh Z2VzX2RlbGV0ZWQsIHR1cGxlc19kZWxldGVkLCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2Fs X2J5dGVzLCBibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGltZSwgZGVsYXlfdGltZSwgc3lz dGVtX3RpbWUsIHVzZXJfdGltZSwgdG90YWxfdGltZSwgaW50ZXJydXB0cykKICAgV0hFUkUg KChkYi5kYXRuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpKSBBTkQgKHJlbC5vaWQgPSBzdGF0 cy5yZWxpZCkgQU5EIChucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlKSk7CiBwZ19zdGF0X3Zh Y3V1bV90YWJsZXN8IFNFTEVDVCByZWwub2lkIEFTIHJlbGlkLAogICAgIG5zLm5zcG5hbWUg QVMgc2NoZW1hLApAQCAtMjMwNSw3ICsyMzA1LDcgQEAgcGdfc3RhdF92YWN1dW1fdGFibGVz fCBTRUxFQ1QgcmVsLm9pZCBBUyByZWxpZCwKICAgIEZST00gcGdfZGF0YWJhc2UgZGIsCiAg ICAgcGdfY2xhc3MgcmVsLAogICAgIHBnX25hbWVzcGFjZSBucywKLSAgICBMQVRFUkFMIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyhkYi5vaWQsIHJlbC5vaWQpIHN0YXRzKHJlbGlkLCB0b3Rh bF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFs X2Jsa3Nfd3JpdHRlbiwgcmVsX2Jsa3NfcmVhZCwgcmVsX2Jsa3NfaGl0LCBwYWdlc19zY2Fu bmVkLCBwYWdlc19yZW1vdmVkLCBwYWdlc19mcm96ZW4sIHBhZ2VzX2FsbF92aXNpYmxlLCB0 dXBsZXNfZGVsZXRlZCwgdHVwbGVzX2Zyb3plbiwgZGVhZF90dXBsZXMsIGluZGV4X3ZhY3V1 bV9jb3VudCwgcmV2X2FsbF9mcm96ZW5fcGFnZXMsIHJldl9hbGxfdmlzaWJsZV9wYWdlcywg d2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRlcywgYmxrX3JlYWRfdGltZSwgYmxrX3dy aXRlX3RpbWUsIGRlbGF5X3RpbWUsIHN5c3RlbV90aW1lLCB1c2VyX3RpbWUsIHRvdGFsX3Rp bWUsIGludGVycnVwdHMpCisgICAgTEFURVJBTCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMocmVs Lm9pZCkgc3RhdHMocmVsaWQsIHRvdGFsX2Jsa3NfcmVhZCwgdG90YWxfYmxrc19oaXQsIHRv dGFsX2Jsa3NfZGlydGllZCwgdG90YWxfYmxrc193cml0dGVuLCByZWxfYmxrc19yZWFkLCBy ZWxfYmxrc19oaXQsIHBhZ2VzX3NjYW5uZWQsIHBhZ2VzX3JlbW92ZWQsIHBhZ2VzX2Zyb3pl biwgcGFnZXNfYWxsX3Zpc2libGUsIHR1cGxlc19kZWxldGVkLCB0dXBsZXNfZnJvemVuLCBk ZWFkX3R1cGxlcywgaW5kZXhfdmFjdXVtX2NvdW50LCByZXZfYWxsX2Zyb3plbl9wYWdlcywg cmV2X2FsbF92aXNpYmxlX3BhZ2VzLCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVz LCBibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGltZSwgZGVsYXlfdGltZSwgc3lzdGVtX3Rp bWUsIHVzZXJfdGltZSwgdG90YWxfdGltZSwgaW50ZXJydXB0cykKICAgV0hFUkUgKChkYi5k YXRuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpKSBBTkQgKHJlbC5vaWQgPSBzdGF0cy5yZWxp ZCkgQU5EIChucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlKSk7CiBwZ19zdGF0X3dhbHwgU0VM RUNUIHdhbF9yZWNvcmRzLAogICAgIHdhbF9mcGksCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0 aWNzLm91dAppbmRleCBmMDUzN2FhYzQzMC4uZWMwY2Y5N2UyZGEgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGlj cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX2Fu ZF9kYl9zdGF0aXN0aWNzLm91dApAQCAtNiw5ICs2LDkgQEAKIC0tIG51bWJlciBvZiBmcm96 ZW4gYW5kIHZpc2libGUgcGFnZXMgcmVtb3ZlZCBieSBiYWNrZW5kLgogLS0gU3RhdGlzdGlj IHdhbF9mcGkgaXMgbm90IGRpc3BsYXllZCBpbiB0aGlzIHRlc3QgYmVjYXVzZSBpdHMgYmVo YXZpb3IgaXMgdW5zdGFibGUuCiAtLQotQ1JFQVRFIERBVEFCQVNFIHN0YXRpc3RpY192YWN1 dW1fZGF0YWJhc2U7Ci1DUkVBVEUgREFUQUJBU0Ugc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFz ZTE7Ci1cYyBzdGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNlOworQ1JFQVRFIERBVEFCQVNFIHJl Z3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjsKK0NSRUFURSBEQVRBQkFTRSByZWdyZXNz aW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFj dXVtX2RiOwogLS0gY29uZGl0aW8gc2luZSBxdWEgbm9uCiBTSE9XIHRyYWNrX2NvdW50czsg IC0tIG11c3QgYmUgb24KICB0cmFja19jb3VudHMgCkBAIC0yMTIsOSArMjEyLDkgQEAgU0VM RUNUIGRibmFtZSwKIEZST00KIHBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCiBXSEVSRSBkYm5h bWUgPSBjdXJyZW50X2RhdGFiYXNlKCk7Ci0gICAgICAgICAgZGJuYW1lICAgICAgICAgICB8 IGRiX2Jsa3NfaGl0IHwgdG90YWxfYmxrc19kaXJ0aWVkIHwgdG90YWxfYmxrc193cml0dGVu IHwgd2FsX3JlY29yZHMgfCB3YWxfZnBpIHwgd2FsX2J5dGVzIHwgdXNlcl90aW1lIHwgdG90 YWxfdGltZSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHN0YXRp c3RpY192YWN1dW1fZGF0YWJhc2UgfCB0ICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAg ICB8IHQgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IHQgICAgICAgICB8IHQKKyAgICAgICAgICAgICBkYm5hbWUgICAgICAgICAgICAg fCBkYl9ibGtzX2hpdCB8IHRvdGFsX2Jsa3NfZGlydGllZCB8IHRvdGFsX2Jsa3Nfd3JpdHRl biB8IHdhbF9yZWNvcmRzIHwgd2FsX2ZwaSB8IHdhbF9ieXRlcyB8IHVzZXJfdGltZSB8IHRv dGFsX3RpbWUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYiB8IHQgICAgICAgICAgIHwgdCAgICAg ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgdAogKDEgcm93KQogCiBEUk9QIFRBQkxF IHZlc3RhdCBDQVNDQURFOwpAQCAtMjMwLDcgKzIzMCw3IEBAIElOU0VSVCBJTlRPIHZlc3Rh dCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsK IEFOQUxZWkUgdmVzdGF0OwogVVBEQVRFIHZlc3RhdCBTRVQgeCA9IDEwMDAxOwogVkFDVVVN IChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7Ci1cYyBzdGF0 aXN0aWNfdmFjdXVtX2RhdGFiYXNlMTsKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1 bV9kYjE7CiAtLSBOb3cgY2hlY2sgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHBvc3RncmVzIGRh dGFiYXNlIGZyb20gYW5vdGhlciBkYXRhYmFzZQogU0VMRUNUIGRibmFtZSwKICAgICAgICBk Yl9ibGtzX2hpdCA+IDAgQVMgZGJfYmxrc19oaXQsCkBAIC0yNDMsMjAgKzI0MywyMCBAQCBT RUxFQ1QgZGJuYW1lLAogICAgICAgIHRvdGFsX3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUKIEZS T00KIHBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCi1XSEVSRSBkYm5hbWUgPSAnc3RhdGlzdGlj X3ZhY3V1bV9kYXRhYmFzZSc7Ci0gICAgICAgICAgZGJuYW1lICAgICAgICAgICB8IGRiX2Js a3NfaGl0IHwgdG90YWxfYmxrc19kaXJ0aWVkIHwgdG90YWxfYmxrc193cml0dGVuIHwgd2Fs X3JlY29yZHMgfCB3YWxfZnBpIHwgd2FsX2J5dGVzIHwgdXNlcl90aW1lIHwgdG90YWxfdGlt ZSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHN0YXRpc3RpY192 YWN1dW1fZGF0YWJhc2UgfCB0ICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICB8IHQg ICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IHQgICAgICAgICB8IHQKK1dIRVJFIGRibmFtZSA9ICdyZWdyZXNzaW9uX3N0YXRpc3RpY192 YWN1dW1fZGInOworICAgICAgICAgICAgIGRibmFtZSAgICAgICAgICAgICB8IGRiX2Jsa3Nf aGl0IHwgdG90YWxfYmxrc19kaXJ0aWVkIHwgdG90YWxfYmxrc193cml0dGVuIHwgd2FsX3Jl Y29yZHMgfCB3YWxfZnBpIHwgd2FsX2J5dGVzIHwgdXNlcl90aW1lIHwgdG90YWxfdGltZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVncmVzc2lv bl9zdGF0aXN0aWNfdmFjdXVtX2RiIHwgdCAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAg ICAgfCB0ICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCB0ICAgICAgICAgfCB0CiAoMSByb3cpCiAKLVxjIHN0YXRpc3RpY192YWN1dW1f ZGF0YWJhc2UKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYgogUkVTRVQgdmFj dXVtX2ZyZWV6ZV9taW5fYWdlOwogUkVTRVQgdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2U7CiBE Uk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOwotXGMgc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFz ZTE7CitcYyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOwogU0VMRUNUIGNvdW50 KCopCiBGUk9NIHBnX2RhdGFiYXNlIGQKLUNST1NTIEpPSU4gcGdfc3RhdF92YWN1dW1fdGFi bGVzKGQub2lkLCAwKQorQ1JPU1MgSk9JTiBwZ19zdGF0X3ZhY3V1bV90YWJsZXMoMCkKIFdI RVJFIG9pZCA9IDA7IC0tIG11c3QgYmUgMAogIGNvdW50IAogLS0tLS0tLQpAQCAtMjczLDUg KzI3Myw1IEBAIFdIRVJFIG9pZCA9IDA7IC0tIG11c3QgYmUgMAogKDEgcm93KQogCiBcYyBw b3N0Z3JlcwotRFJPUCBEQVRBQkFTRSBzdGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNlMTsKLURS T1AgREFUQUJBU0Ugc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZTsKK0RST1AgREFUQUJBU0Ug cmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK0RST1AgREFUQUJBU0UgcmVncmVz c2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLnNxbAppbmRleCA0 M2NjODA2OGIwZi4uZWQ5YmI4NTI2MjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsCkBAIC03 LDkgKzcsOSBAQAogLS0gU3RhdGlzdGljIHdhbF9mcGkgaXMgbm90IGRpc3BsYXllZCBpbiB0 aGlzIHRlc3QgYmVjYXVzZSBpdHMgYmVoYXZpb3IgaXMgdW5zdGFibGUuCiAtLQogCi1DUkVB VEUgREFUQUJBU0Ugc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZTsKLUNSRUFURSBEQVRBQkFT RSBzdGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNlMTsKLVxjIHN0YXRpc3RpY192YWN1dW1fZGF0 YWJhc2U7CitDUkVBVEUgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2Ri OworQ1JFQVRFIERBVEFCQVNFIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7Citc YyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGI7CiAKIC0tIGNvbmRpdGlvIHNpbmUg cXVhIG5vbgogU0hPVyB0cmFja19jb3VudHM7ICAtLSBtdXN0IGJlIG9uCkBAIC0xODQsNyAr MTg0LDcgQEAgQU5BTFlaRSB2ZXN0YXQ7CiBVUERBVEUgdmVzdGF0IFNFVCB4ID0gMTAwMDE7 CiBWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsK IAotXGMgc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZTE7CitcYyByZWdyZXNzaW9uX3N0YXRp c3RpY192YWN1dW1fZGIxOwogCiAtLSBOb3cgY2hlY2sgdmFjdXVtIHN0YXRpc3RpY3MgZm9y IHBvc3RncmVzIGRhdGFiYXNlIGZyb20gYW5vdGhlciBkYXRhYmFzZQogU0VMRUNUIGRibmFt ZSwKQEAgLTE5OCwxOCArMTk4LDE4IEBAIFNFTEVDVCBkYm5hbWUsCiAgICAgICAgdG90YWxf dGltZSA+IDAgQVMgdG90YWxfdGltZQogRlJPTQogcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UK LVdIRVJFIGRibmFtZSA9ICdzdGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNlJzsKK1dIRVJFIGRi bmFtZSA9ICdyZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGInOwogCi1cYyBzdGF0aXN0 aWNfdmFjdXVtX2RhdGFiYXNlCitcYyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIK IAogUkVTRVQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlOwogUkVTRVQgdmFjdXVtX2ZyZWV6ZV90 YWJsZV9hZ2U7CiBEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOwogCi1cYyBzdGF0aXN0aWNf dmFjdXVtX2RhdGFiYXNlMTsKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7 CiBTRUxFQ1QgY291bnQoKikKIEZST00gcGdfZGF0YWJhc2UgZAotQ1JPU1MgSk9JTiBwZ19z dGF0X3ZhY3V1bV90YWJsZXMoZC5vaWQsIDApCitDUk9TUyBKT0lOIHBnX3N0YXRfdmFjdXVt X3RhYmxlcygwKQogV0hFUkUgb2lkID0gMDsgLS0gbXVzdCBiZSAwCiAKIFNFTEVDVCBjb3Vu dCgqKQpAQCAtMjE4LDUgKzIxOCw1IEBAIENST1NTIEpPSU4gcGdfc3RhdF92YWN1dW1fZGF0 YWJhc2UoMCkKIFdIRVJFIG9pZCA9IDA7IC0tIG11c3QgYmUgMAogCiBcYyBwb3N0Z3Jlcwot RFJPUCBEQVRBQkFTRSBzdGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNlMTsKLURST1AgREFUQUJB U0Ugc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZTsKK0RST1AgREFUQUJBU0UgcmVncmVzc2lv bl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK0RST1AgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0 aXN0aWNfdmFjdXVtX2RiOwo= --------------1wDbp5xZGRmHSi1nJwiZPNri--