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 1tXfbs-00CI9m-3Y for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Jan 2025 12:01:28 +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 1tXfbq-0001xR-PD for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Jan 2025 12:01:27 +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 1tXfbq-0001wn-6M for pgsql-hackers@lists.postgresql.org; Tue, 14 Jan 2025 12:01:26 +0000 Received: from forward100a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d100]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tXfbn-000Lm0-35 for pgsql-hackers@postgresql.org; Tue, 14 Jan 2025 12:01:25 +0000 Received: from mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:4394:0:640:104f:0]) by forward100a.mail.yandex.net (Yandex) with ESMTPS id BC18947425; Tue, 14 Jan 2025 15:01:18 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id k0OtU40OnKo0-se12y1Xl; Tue, 14 Jan 2025 15:01:17 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tantorlabs.com; s=mail; t=1736856078; bh=NUxChw+ej0Zeu6K6PP6pk4vAgleufNehfCLXi2Y1iao=; h=In-Reply-To:Cc:Date:References:To:Subject:Message-ID:From; b=F9HTW0t8YdZyUuNNCgnraEsTeTr2u78uf4etuUq+7OgWbcwH1iEQnpiSGgmlQpZUo IUODL/lBcSyTTKXbWVgfWoNKSbJAc27N45+s1Wlk0dSuKY52aCG5YuyOSjJ5/CY8vS p5QmKook5s3r/x2lgZgGTTy/WmFPSeTL9U9Grduw= Authentication-Results: mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net; dkim=pass header.i=@tantorlabs.com Content-Type: multipart/mixed; boundary="------------0tp327Cexxl0Romf2kJ9kgck" Message-ID: <3a27c830-b81f-4560-9774-a87d9b922fbd@tantorlabs.com> Date: Tue, 14 Jan 2025 15:00:46 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Sample rate added to pg_stat_statements To: Alena Rybakina , Sami Imseih Cc: Alexander Korotkov , Michael Paquier , Greg Sabino Mullane , "Andrey M. Borodin" , pgsql-hackers References: <6707FCA9-FD1A-4609-A1A6-142456C14E0C@yandex-team.ru> <320a31e6-4c91-438b-ab17-8a1d72384727@tantorlabs.com> <52e5e3aa-066a-4daf-8d65-77c34a2f0d98@tantorlabs.com> <6482A576-4465-4E46-A42C-F1767E8DDE30@yandex-team.ru> <20994d10-ab44-4c6b-91bc-c4675cd2e58e@tantorlabs.com> <9D8A5BC8-A3A5-4DA9-9382-F30D343247D1@yandex-team.ru> <6cf6270b-e8fa-4d99-b74a-17e781cdf309@tantorlabs.com> Content-Language: en-US From: Ilia Evdokimov In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------0tp327Cexxl0Romf2kJ9kgck Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 09.01.2025 22:13, Alena Rybakina wrote: > Hi! Thank you for the work with this subject. > > I looked at your patch and noticed that this part of the code is > repeated several times: > > if (nesting_level == 0) >     { >         if (!IsParallelWorker()) >             current_query_sampled = > pg_prng_double(&pg_global_prng_state) < pgss_sample_rate; >         else >             current_query_sampled = false; > >     } > > I think you should put this in a function like > update_current_query_sampled. I've attached a diff file with the changes. There was redundant checking of nesting_level, so I removed one of them. The fixed version is included in patch v10. Alena, Sami – I apologize for not including you in the previous email. If you're interested in this approach, I'm open to any suggestions. [0]: https://www.postgresql.org/message-id/1b13d748-5e98-479c-9222-3253a734a038%40tantorlabs.com -- Best regards, Ilia Evdokimov, Tantor Labs LLC. --------------0tp327Cexxl0Romf2kJ9kgck Content-Type: text/x-patch; charset=UTF-8; name="v10-0001-Allow-setting-sample-ratio-for-pg_stat_statements.patch" Content-Disposition: attachment; filename*0="v10-0001-Allow-setting-sample-ratio-for-pg_stat_statements.p"; filename*1="atch" Content-Transfer-Encoding: base64 RnJvbSBlOGQ5OTExYmQ3YjEzODQxMTI3NzM5NzdjMWEzMGE0NzZmYzc3NDcxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJbGlhIEV2ZG9raW1vdiA8aWx5YS5ldmRva2ltb3ZA dGFudG9ybGFicy5ydT4KRGF0ZTogVHVlLCAxNCBKYW4gMjAyNSAxMjoxODo1MiArMDMwMApT dWJqZWN0OiBbUEFUQ0ggdjFdIEFsbG93IHNldHRpbmcgc2FtcGxlIHJhdGlvIGZvciBwZ19z dGF0X3N0YXRlbWVudHMKCk5ldyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBwZ19zdGF0X3N0 YXRlbWVudHMuc2FtcGxlX3JhdGlvIG1ha2VzIGl0CnBvc3NpYmxlIHRvIHRyYWNrIGp1c3Qg YSBmcmFjdGlvbiBvZiB0aGUgcXVlcmllcyBtZWV0aW5nIHRoZSBjb25maWd1cmVkCnRocmVz aG9sZCwgdG8gcmVkdWNlIHRoZSBhbW91bnQgb2YgdHJhY2tpbmcuCi0tLQogLi4uL3BnX3N0 YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0ICAgIHwgNzYgKysrKysrKysrKysr KysrKysrKwogLi4uL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyAg IHwgNDYgKysrKysrKysrKy0KIGNvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxl Y3Quc3FsICAgICB8IDIxICsrKysrCiBkb2Mvc3JjL3NnbWwvcGdzdGF0c3RhdGVtZW50cy5z Z21sICAgICAgICAgICAgfCAxOCArKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRf c3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0IGIvY29udHJpYi9wZ19zdGF0X3N0YXRl bWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dAppbmRleCAzN2EzMGFmMDM0Li41NThkOTNmYjQ2 IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxl Y3Qub3V0CisrKyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVj dC5vdXQKQEAgLTE1Myw2ICsxNTMsODIgQEAgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19y ZXNldCgpIElTIE5PVCBOVUxMIEFTIHQ7CiAgdAogKDEgcm93KQogCistLQorLS0gc2FtcGxl IHN0YXRlbWVudHMKKy0tCitTRVQgcGdfc3RhdF9zdGF0ZW1lbnRzLnNhbXBsZV9yYXRlID0g MC4wOworU0VMRUNUIDEgQVMgImludCI7CisgaW50IAorLS0tLS0KKyAgIDEKKygxIHJvdykK KworU0VMRUNUIHF1ZXJ5LCBjYWxscyBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBC WSBxdWVyeSBDT0xMQVRFICJDIjsKKyAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkgICAg ICAgICAgICAgICAgICAgICAgICB8IGNhbGxzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgU0VMRUNUIHBnX3N0YXRf c3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQgfCAgICAgMQorKDEgcm93KQor CitTRVQgcGdfc3RhdF9zdGF0ZW1lbnRzLnNhbXBsZV9yYXRlID0gMS4wOworU0VMRUNUIDEg QVMgImludCI7CisgaW50IAorLS0tLS0KKyAgIDEKKygxIHJvdykKKworU0VMRUNUIHF1ZXJ5 LCBjYWxscyBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRF ICJDIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2FsbHMgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLQorIFNFTEVDVCAkMSBBUyAiaW50IiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMQorIFNFTEVDVCBwZ19zdGF0X3N0 YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0ICAgICAgICAgICAgICAgICAgICAg fCAgICAgMQorIFNFTEVDVCBxdWVyeSwgY2FsbHMgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMg T1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyIgfCAgICAgMAorKDMgcm93cykKKworU0VMRUNU IHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQ7CisgdCAKKy0t LQorIHQKKygxIHJvdykKKworc2V0IHBnX3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0ZSA9 IDAuMDsKK3NlbGVjdCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBB UyB0OworIHQgCistLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCAxIFxwYXJzZSBzdG10Citc YmluZF9uYW1lZCBzdG10IFxnCisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgICAgIDEK KygxIHJvdykKKworU0VMRUNUIHF1ZXJ5LCBjYWxscyBGUk9NIHBnX3N0YXRfc3RhdGVtZW50 cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKKyBxdWVyeSB8IGNhbGxzIAorLS0tLS0t LSstLS0tLS0tCisoMCByb3dzKQorCitzZXQgcGdfc3RhdF9zdGF0ZW1lbnRzLnNhbXBsZV9y YXRlID0gMS4wOworXGJpbmRfbmFtZWQgc3RtdCBcZworID9jb2x1bW4/IAorLS0tLS0tLS0t LQorICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBxdWVyeSwgY2FsbHMgRlJPTSBwZ19z dGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IGNhbGxzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBTRUxFQ1Qg JDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgIDEKKyBTRUxFQ1QgcXVlcnksIGNhbGxzIEZST00gcGdfc3RhdF9z dGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiIHwgICAgIDAKKygyIHJvd3Mp CisKK3NlbGVjdCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0 OworIHQgCistLS0KKyB0CisoMSByb3cpCisKIC0tCiAtLSBxdWVyaWVzIHdpdGggbG9ja2lu ZyBjbGF1c2VzCiAtLQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMv cGdfc3RhdF9zdGF0ZW1lbnRzLmMgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19z dGF0X3N0YXRlbWVudHMuYwppbmRleCBiZWJmODEzNGViLi5kNzk0MDJiYWM0IDEwMDY0NAot LS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwor KysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwpA QCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9wYXJhbGxlbC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY29tbW9uL2ludC5oIgorI2lu Y2x1ZGUgImNvbW1vbi9wZ19wcm5nLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvaW5zdHJ1bWVu dC5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJqaXQvaml0LmgiCkBAIC0y OTQsNiArMjk1LDEwIEBAIHN0YXRpYyBib29sIHBnc3NfdHJhY2tfdXRpbGl0eSA9IHRydWU7 CS8qIHdoZXRoZXIgdG8gdHJhY2sgdXRpbGl0eSBjb21tYW5kcyAqLwogc3RhdGljIGJvb2wg cGdzc190cmFja19wbGFubmluZyA9IGZhbHNlOwkvKiB3aGV0aGVyIHRvIHRyYWNrIHBsYW5u aW5nCiAJCQkJCQkJCQkJCSAqIGR1cmF0aW9uICovCiBzdGF0aWMgYm9vbCBwZ3NzX3NhdmUg PSB0cnVlOwkvKiB3aGV0aGVyIHRvIHNhdmUgc3RhdHMgYWNyb3NzIHNodXRkb3duICovCitz dGF0aWMgZG91YmxlIHBnc3Nfc2FtcGxlX3JhdGUgPSAxOworCisvKiBJcyB0aGUgY3VycmVu dCB0b3AtbGV2ZWwgcXVlcnkgdG8gYmUgc2FtcGxlZD8gKi8KK3N0YXRpYyBib29sIGN1cnJl bnRfcXVlcnlfc2FtcGxlZCA9IGZhbHNlOwogCiAKICNkZWZpbmUgcGdzc19lbmFibGVkKGxl dmVsKSBcCkBAIC00MTQsNiArNDE5LDE5IEBAIF9QR19pbml0KHZvaWQpCiAJCQkJCQkJTlVM TCwKIAkJCQkJCQlOVUxMKTsKIAorCURlZmluZUN1c3RvbVJlYWxWYXJpYWJsZSgicGdfc3Rh dF9zdGF0ZW1lbnRzLnNhbXBsZV9yYXRlIiwKKwkJCQkJCQkgIkZyYWN0aW9uIG9mIHF1ZXJp ZXMgdG8gdHJhY2suIiwKKwkJCQkJCQkgTlVMTCwKKwkJCQkJCQkgJnBnc3Nfc2FtcGxlX3Jh dGUsCisJCQkJCQkJIDEuMCwKKwkJCQkJCQkgMC4wLAorCQkJCQkJCSAxLjAsCisJCQkJCQkJ IFBHQ19TVVNFVCwKKwkJCQkJCQkgMCwKKwkJCQkJCQkgTlVMTCwKKwkJCQkJCQkgTlVMTCwK KwkJCQkJCQkgTlVMTCk7CisKIAlEZWZpbmVDdXN0b21FbnVtVmFyaWFibGUoInBnX3N0YXRf c3RhdGVtZW50cy50cmFjayIsCiAJCQkJCQkJICJTZWxlY3RzIHdoaWNoIHN0YXRlbWVudHMg YXJlIHRyYWNrZWQgYnkgcGdfc3RhdF9zdGF0ZW1lbnRzLiIsCiAJCQkJCQkJIE5VTEwsCkBA IC04NzcsNiArODk1LDE5IEBAIHBnc3NfcG9zdF9wYXJzZV9hbmFseXplKFBhcnNlU3RhdGUg KnBzdGF0ZSwgUXVlcnkgKnF1ZXJ5LCBKdW1ibGVTdGF0ZSAqanN0YXRlKQogCQkJCSAgIDAp OwogfQogCitzdGF0aWMgdm9pZAordXBkYXRlX2N1cnJlbnRfcXVlcnlfc2FtcGxlZCgpCit7 CisJaWYgKG5lc3RpbmdfbGV2ZWwgPT0gMCkKKwl7CisJCWlmICghSXNQYXJhbGxlbFdvcmtl cigpKQorCQkJY3VycmVudF9xdWVyeV9zYW1wbGVkID0gcGdfcHJuZ19kb3VibGUoJnBnX2ds b2JhbF9wcm5nX3N0YXRlKSA8IHBnc3Nfc2FtcGxlX3JhdGU7CisJCWVsc2UKKwkJCWN1cnJl bnRfcXVlcnlfc2FtcGxlZCA9IGZhbHNlOworCisJfQorfQorCiAvKgogICogUGxhbm5lciBo b29rOiBmb3J3YXJkIHRvIHJlZ3VsYXIgcGxhbm5lciwgYnV0IG1lYXN1cmUgcGxhbm5pbmcg dGltZQogICogaWYgbmVlZGVkLgpAQCAtODg5LDEyICs5MjAsMTQgQEAgcGdzc19wbGFubmVy KFF1ZXJ5ICpwYXJzZSwKIHsKIAlQbGFubmVkU3RtdCAqcmVzdWx0OwogCisJdXBkYXRlX2N1 cnJlbnRfcXVlcnlfc2FtcGxlZCgpOworCiAJLyoKIAkgKiBXZSBjYW4ndCBwcm9jZXNzIHRo ZSBxdWVyeSBpZiBubyBxdWVyeV9zdHJpbmcgaXMgcHJvdmlkZWQsIGFzCiAJICogcGdzc19z dG9yZSBuZWVkcyBpdC4gIFdlIGFsc28gaWdub3JlIHF1ZXJ5IHdpdGhvdXQgcXVlcnlpZCwg YXMgaXQgd291bGQKIAkgKiBiZSB0cmVhdGVkIGFzIGEgdXRpbGl0eSBzdGF0ZW1lbnQsIHdo aWNoIG1heSBub3QgYmUgdGhlIGNhc2UuCiAJICovCi0JaWYgKHBnc3NfZW5hYmxlZChuZXN0 aW5nX2xldmVsKQorCWlmIChwZ3NzX2VuYWJsZWQobmVzdGluZ19sZXZlbCkgJiYgY3VycmVu dF9xdWVyeV9zYW1wbGVkCiAJCSYmIHBnc3NfdHJhY2tfcGxhbm5pbmcgJiYgcXVlcnlfc3Ry aW5nCiAJCSYmIHBhcnNlLT5xdWVyeUlkICE9IFVJTlQ2NENPTlNUKDApKQogCXsKQEAgLTk5 NCwxMiArMTAyNywxNSBAQCBwZ3NzX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURl c2MsIGludCBlZmxhZ3MpCiAJZWxzZQogCQlzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KHF1ZXJ5 RGVzYywgZWZsYWdzKTsKIAorCXVwZGF0ZV9jdXJyZW50X3F1ZXJ5X3NhbXBsZWQoKTsKKwog CS8qCiAJICogSWYgcXVlcnkgaGFzIHF1ZXJ5SWQgemVybywgZG9uJ3QgdHJhY2sgaXQuICBU aGlzIHByZXZlbnRzIGRvdWJsZQogCSAqIGNvdW50aW5nIG9mIG9wdGltaXphYmxlIHN0YXRl bWVudHMgdGhhdCBhcmUgZGlyZWN0bHkgY29udGFpbmVkIGluCiAJICogdXRpbGl0eSBzdGF0 ZW1lbnRzLgogCSAqLwotCWlmIChwZ3NzX2VuYWJsZWQobmVzdGluZ19sZXZlbCkgJiYgcXVl cnlEZXNjLT5wbGFubmVkc3RtdC0+cXVlcnlJZCAhPSBVSU5UNjRDT05TVCgwKSkKKwlpZiAo cGdzc19lbmFibGVkKG5lc3RpbmdfbGV2ZWwpICYmIGN1cnJlbnRfcXVlcnlfc2FtcGxlZCAm JgorCQlxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5xdWVyeUlkICE9IFVJTlQ2NENPTlNUKDAp KQogCXsKIAkJLyoKIAkJICogU2V0IHVwIHRvIHRyYWNrIHRvdGFsIGVsYXBzZWQgdGltZSBp biBFeGVjdXRvclJ1bi4gIE1ha2Ugc3VyZSB0aGUKQEAgLTExMTEsNyArMTE0NywxMSBAQCBw Z3NzX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwgY29uc3QgY2hhciAqcXVl cnlTdHJpbmcsCiAJdWludDY0CQlzYXZlZF9xdWVyeUlkID0gcHN0bXQtPnF1ZXJ5SWQ7CiAJ aW50CQkJc2F2ZWRfc3RtdF9sb2NhdGlvbiA9IHBzdG10LT5zdG10X2xvY2F0aW9uOwogCWlu dAkJCXNhdmVkX3N0bXRfbGVuID0gcHN0bXQtPnN0bXRfbGVuOwotCWJvb2wJCWVuYWJsZWQg PSBwZ3NzX3RyYWNrX3V0aWxpdHkgJiYgcGdzc19lbmFibGVkKG5lc3RpbmdfbGV2ZWwpOwor CWJvb2wJCWVuYWJsZWQ7CisKKwl1cGRhdGVfY3VycmVudF9xdWVyeV9zYW1wbGVkKCk7CisK KwllbmFibGVkID0gcGdzc190cmFja191dGlsaXR5ICYmIHBnc3NfZW5hYmxlZChuZXN0aW5n X2xldmVsKSAmJiBjdXJyZW50X3F1ZXJ5X3NhbXBsZWQ7CiAKIAkvKgogCSAqIEZvcmNlIHV0 aWxpdHkgc3RhdGVtZW50cyB0byBnZXQgcXVlcnlJZCB6ZXJvLiAgV2UgZG8gdGhpcyBldmVu IGluIGNhc2VzCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwv c2VsZWN0LnNxbCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3Fs CmluZGV4IGUwYmU1OGQ1ZTIuLjIxZjA5ZWY5NGEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdf c3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9z dGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsCkBAIC01OSw2ICs1OSwyNyBAQCBERUFMTE9DQVRF IHBnc3NfdGVzdDsKIFNFTEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBwZ19zdGF0X3N0 YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CiBTRUxFQ1QgcGdfc3RhdF9z dGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdDsKIAorLS0KKy0tIHNhbXBsZSBz dGF0ZW1lbnRzCistLQorU0VUIHBnX3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0ZSA9IDAu MDsKK1NFTEVDVCAxIEFTICJpbnQiOworU0VMRUNUIHF1ZXJ5LCBjYWxscyBGUk9NIHBnX3N0 YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKK1NFVCBwZ19zdGF0 X3N0YXRlbWVudHMuc2FtcGxlX3JhdGUgPSAxLjA7CitTRUxFQ1QgMSBBUyAiaW50IjsKK1NF TEVDVCBxdWVyeSwgY2FsbHMgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVl cnkgQ09MTEFURSAiQyI7CitTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMg Tk9UIE5VTEwgQVMgdDsKKworc2V0IHBnX3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0ZSA9 IDAuMDsKK3NlbGVjdCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBB UyB0OworU0VMRUNUIDEgXHBhcnNlIHN0bXQKK1xiaW5kX25hbWVkIHN0bXQgXGcKK1NFTEVD VCBxdWVyeSwgY2FsbHMgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkg Q09MTEFURSAiQyI7CitzZXQgcGdfc3RhdF9zdGF0ZW1lbnRzLnNhbXBsZV9yYXRlID0gMS4w OworXGJpbmRfbmFtZWQgc3RtdCBcZworU0VMRUNUIHF1ZXJ5LCBjYWxscyBGUk9NIHBnX3N0 YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKK3NlbGVjdCBwZ19z dGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0OworCiAtLQogLS0gcXVl cmllcyB3aXRoIGxvY2tpbmcgY2xhdXNlcwogLS0KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9wZ3N0YXRzdGF0ZW1lbnRzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGdzdGF0c3RhdGVtZW50 cy5zZ21sCmluZGV4IDUwMWI0NjhlOWEuLjhhZGU0ZTNjZWQgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9wZ3N0YXRzdGF0ZW1lbnRzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Bnc3Rh dHN0YXRlbWVudHMuc2dtbApAQCAtOTM2LDYgKzkzNiwyNCBAQAogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT4K KyAgICAgPHZhcm5hbWU+cGdfc3RhdF9zdGF0ZW1lbnRzLnNhbXBsZV9yYXRlPC92YXJuYW1l PiAoPHR5cGU+cmVhbDwvdHlwZT4pCisgICAgIDxpbmRleHRlcm0+CisgICAgICA8cHJpbWFy eT48dmFybmFtZT5wZ19zdGF0X3N0YXRlbWVudHMuc2FtcGxlX3JhdGU8L3Zhcm5hbWU+IGNv bmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICA8L2luZGV4dGVybT4KKyAg ICA8L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPHZhcm5h bWU+cGdfc3RhdF9zdGF0ZW1lbnRzLnNhbXBsZV9yYXRlPC92YXJuYW1lPiBjYXVzZXMgcGdf c3RhdF9zdGF0ZW1lbnRzIHRvIG9ubHkKKyAgICAgIHRyYWNrIGEgZnJhY3Rpb24gb2YgdGhl IHN0YXRlbWVudHMgaW4gZWFjaCBzZXNzaW9uLiBUaGUgZGVmYXVsdCBpcyAxLAorICAgICAg bWVhbmluZyB0cmFjayBhbGwgdGhlIHF1ZXJpZXMuIEluIGNhc2Ugb2YgbmVzdGVkIHN0YXRl bWVudHMsCisgICAgICBlaXRoZXIgYWxsIHdpbGwgYmUgdHJhY2tlZCBvciBub25lLiBPbmx5 IHN1cGVydXNlcnMgY2FuIGNoYW5nZSB0aGlzIHNldHRpbmcuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgPHRlcm0+CiAgICAgIDx2YXJuYW1lPnBnX3N0YXRfc3RhdGVtZW50cy5zYXZlPC92 YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCi0tIAoyLjM0LjEKCg== --------------0tp327Cexxl0Romf2kJ9kgck--