Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kc34r-0004nk-Si for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Nov 2020 09:03:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kc34p-0004Px-Mx for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Nov 2020 09:03:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kc34p-0004Pp-DB for pgsql-hackers@lists.postgresql.org; Mon, 09 Nov 2020 09:03:03 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kc34l-0007zg-Oz for pgsql-hackers@lists.postgresql.org; Mon, 09 Nov 2020 09:03:02 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTP id E98516233D; Mon, 9 Nov 2020 18:02:53 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.3 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_4c57f76234bb5d73a1749173cf220f5c" Date: Mon, 09 Nov 2020 18:02:53 +0900 From: Seino Yuki To: Fujii Masao Cc: pgsql-hackers@lists.postgresql.org Subject: Re: [PATCH] Add features to pg_stat_statements In-Reply-To: <2f749a3bd1b49f1d282abf59619fe1f5@oss.nttdata.com> References: <0d9f1107772cf5c3f954e985464c7298@oss.nttdata.com> <160250511275.1171.7692218521107860164.pgcf@coridan.postgresql.org> <369018a4-746c-6914-4983-1b79aa9fdd37@oss.nttdata.com> <4ab1bf5ab895d44ff0a3b3d06d1f85b2@oss.nttdata.com> <5d13be75-ed32-c500-f029-5838ba77d6c9@oss.nttdata.com> <2f749a3bd1b49f1d282abf59619fe1f5@oss.nttdata.com> Message-ID: <050fd52dcddac965ad24a636c25a5611@oss.nttdata.com> X-Sender: seinoyu@oss.nttdata.com User-Agent: Roundcube Webmail/1.1.9 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_4c57f76234bb5d73a1749173cf220f5c Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed 2020-11-09 15:39 に Seino Yuki さんは書きました: >>> >>> However, let me confirm the following. >>>> Is this information really useful? >>>> If there is no valid use case for this, I'd like to drop it. >>>> Thought? >>> >>> I thought it would be easy for users to see at a glance that if there >>> is a case I assumed, >>> if the last modified date and time is old, there is no need to adjust >>> at all, and if the >>> last modified date and time is recent, it would be easy for users to >>> understand that the >>> parameters need to be adjusted. >>> What do you think? >> >> Even without the last deallocation timestamp, you can presume >> when the deallocation of entries happened by periodically monitoring >> the total number of deallocations and seeing those history. Or IMO >> it's better to log whenever the deallocation happens as proposed >> upthread. >> Then you can easily check the history of occurrences of deallocations >> from the log file. >> >> Regards, > > +1.I think you should output the deallocation history to the log as > well. > > In light of the above, I've posted a patch that reflects the points > made. > > Regards, Sorry. There was a typo in the documentation correction. I'll post a patch to fix it. Regards, --=_4c57f76234bb5d73a1749173cf220f5c Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=pg_stat_statements_info.patch Content-Disposition: attachment; filename=pg_stat_statements_info.patch; size=12352 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL01ha2VmaWxlIGIvY29udHJp Yi9wZ19zdGF0X3N0YXRlbWVudHMvTWFrZWZpbGUKaW5kZXggMDgxZjk5N2Q3MC4uM2VjNjI3Yjk1 NiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvTWFrZWZpbGUKKysrIGIv Y29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvTWFrZWZpbGUKQEAgLTYsNyArNiw3IEBAIE9CSlMg PSBcCiAJcGdfc3RhdF9zdGF0ZW1lbnRzLm8KIAogRVhURU5TSU9OID0gcGdfc3RhdF9zdGF0ZW1l bnRzCi1EQVRBID0gcGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjQuc3FsIFwKK0RBVEEgPSBwZ19zdGF0 X3N0YXRlbWVudHMtLTEuNC5zcWwgcGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjgtLTEuOS5zcWwgXAog CXBnX3N0YXRfc3RhdGVtZW50cy0tMS43LS0xLjguc3FsIHBnX3N0YXRfc3RhdGVtZW50cy0tMS42 LS0xLjcuc3FsIFwKIAlwZ19zdGF0X3N0YXRlbWVudHMtLTEuNS0tMS42LnNxbCBwZ19zdGF0X3N0 YXRlbWVudHMtLTEuNC0tMS41LnNxbCBcCiAJcGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjMtLTEuNC5z cWwgcGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjItLTEuMy5zcWwgXApkaWZmIC0tZ2l0IGEvY29udHJp Yi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvcGdfc3RhdF9zdGF0ZW1lbnRzLm91dCBiL2Nv bnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3BnX3N0YXRfc3RhdGVtZW50cy5vdXQK aW5kZXggZTBlZGIxMzRmMy4uODVlNzhjN2Y0NiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0 X3N0YXRlbWVudHMvZXhwZWN0ZWQvcGdfc3RhdF9zdGF0ZW1lbnRzLm91dAorKysgYi9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9wZ19zdGF0X3N0YXRlbWVudHMub3V0CkBAIC04 NTksNCArODU5LDE5IEBAIFNFTEVDVCBxdWVyeSwgcGxhbnMsIGNhbGxzLCByb3dzIEZST00gcGdf c3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUKICBTRUxFQ1QgcXVlcnksIHBs YW5zLCBjYWxscywgcm93cyBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBD T0xMQVRFICJDIiB8ICAgICAxIHwgICAgIDAgfCAgICAwCiAoNiByb3dzKQogCistLQorLS0gQ2hl Y2tpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgcGdfc3RhdF9zdGF0ZW1lbnRzX2luZm8gdmlldwor LS0KK1NFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoMCwwLDApOworIHBnX3N0YXRfc3Rh dGVtZW50c19yZXNldCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K1NFTEVDVCAqIEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzX2luZm87CisgZGVhbGxvYyAKKy0tLS0t LS0tLQorICAgICAgIDAKKygxIHJvdykKKwogRFJPUCBFWFRFTlNJT04gcGdfc3RhdF9zdGF0ZW1l bnRzOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0 ZW1lbnRzLS0xLjgtLTEuOS5zcWwgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0 X3N0YXRlbWVudHMtLTEuOC0tMS45LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi41YzQ5MWYyNDJhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0 YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjgtLTEuOS5zcWwKQEAgLTAsMCArMSwxNyBA QAorLyogY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjgt LTEuOS5zcWwgKi8KKworLS0gY29tcGxhaW4gaWYgc2NyaXB0IGlzIHNvdXJjZWQgaW4gcHNxbCwg cmF0aGVyIHRoYW4gdmlhIEFMVEVSIEVYVEVOU0lPTgorXGVjaG8gVXNlICJBTFRFUiBFWFRFTlNJ T04gcGdfc3RhdF9zdGF0ZW1lbnRzIFVQREFURSBUTyAnMS45JyIgdG8gbG9hZCB0aGlzIGZpbGUu IFxxdWl0CisKKy0tLSBEZWZpbmUgcGdfc3RhdF9zdGF0ZW1lbnRzX2luZm8KK0NSRUFURSBGVU5D VElPTiBwZ19zdGF0X3N0YXRlbWVudHNfaW5mbyAoCisJT1VUIGRlYWxsb2MgYmlnaW50CispCitS RVRVUk5TIGJpZ2ludAorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RSSUNUIFZP TEFUSUxFIFBBUkFMTEVMIFNBRkU7CisKK0NSRUFURSBWSUVXIHBnX3N0YXRfc3RhdGVtZW50c19p bmZvIEFTCisJU0VMRUNUICogRlJPTSBwZ19zdGF0X3N0YXRlbWVudHNfaW5mbygpOworCitHUkFO VCBTRUxFQ1QgT04gcGdfc3RhdF9zdGF0ZW1lbnRzX2luZm8gVE8gUFVCTElDOwpkaWZmIC0tZ2l0 IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMgYi9jb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwppbmRleCAxZWFjOWVk YWVlLi42NWNmNGZiMGE3IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9w Z19zdGF0X3N0YXRlbWVudHMuYworKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19z dGF0X3N0YXRlbWVudHMuYwpAQCAtMTkzLDYgKzE5MywxNSBAQCB0eXBlZGVmIHN0cnVjdCBDb3Vu dGVycwogCXVpbnQ2NAkJd2FsX2J5dGVzOwkJLyogdG90YWwgYW1vdW50IG9mIFdBTCBieXRlcyBn ZW5lcmF0ZWQgKi8KIH0gQ291bnRlcnM7CiAKKy8qCisgKiBDb3VudGVyIGZvciBwZ19zdGF0X3N0 YXRlbWVudHNfaW5mbworICovCit0eXBlZGVmIHN0cnVjdCBwZ3NzSW5mb0NvdW50ZXJzCit7CisJ aW50NjQJCWRlYWxsb2M7CQkvKiAjIG9mIGRlYWxsb2NhdGlvbiAqLworCXNsb2NrX3QJCW11dGV4 OwkJCS8qIHByb3RlY3RzIHRoZSBjb3VudGVycyBvbmx5ICovCit9IHBnc3NJbmZvQ291bnRlcnM7 CisKIC8qCiAgKiBTdGF0aXN0aWNzIHBlciBzdGF0ZW1lbnQKICAqCkBAIC0yNzksNiArMjg4LDcg QEAgc3RhdGljIFByb2Nlc3NVdGlsaXR5X2hvb2tfdHlwZSBwcmV2X1Byb2Nlc3NVdGlsaXR5ID0g TlVMTDsKIC8qIExpbmtzIHRvIHNoYXJlZCBtZW1vcnkgc3RhdGUgKi8KIHN0YXRpYyBwZ3NzU2hh cmVkU3RhdGUgKnBnc3MgPSBOVUxMOwogc3RhdGljIEhUQUIgKnBnc3NfaGFzaCA9IE5VTEw7Citz dGF0aWMgcGdzc0luZm9Db3VudGVycyAqcGdzc19pbmZvID0gTlVMTDsKIAogLyotLS0tIEdVQyB2 YXJpYWJsZXMgLS0tLSovCiAKQEAgLTMyNyw2ICszMzcsNyBAQCBQR19GVU5DVElPTl9JTkZPX1Yx KHBnX3N0YXRfc3RhdGVtZW50c18xXzIpOwogUEdfRlVOQ1RJT05fSU5GT19WMShwZ19zdGF0X3N0 YXRlbWVudHNfMV8zKTsKIFBHX0ZVTkNUSU9OX0lORk9fVjEocGdfc3RhdF9zdGF0ZW1lbnRzXzFf OCk7CiBQR19GVU5DVElPTl9JTkZPX1YxKHBnX3N0YXRfc3RhdGVtZW50cyk7CitQR19GVU5DVElP Tl9JTkZPX1YxKHBnX3N0YXRfc3RhdGVtZW50c19pbmZvKTsKIAogc3RhdGljIHZvaWQgcGdzc19z aG1lbV9zdGFydHVwKHZvaWQpOwogc3RhdGljIHZvaWQgcGdzc19zaG1lbV9zaHV0ZG93bihpbnQg Y29kZSwgRGF0dW0gYXJnKTsKQEAgLTM4MCw2ICszOTEsOCBAQCBzdGF0aWMgY2hhciAqZ2VuZXJh dGVfbm9ybWFsaXplZF9xdWVyeShwZ3NzSnVtYmxlU3RhdGUgKmpzdGF0ZSwgY29uc3QgY2hhciAq cXVlcgogc3RhdGljIHZvaWQgZmlsbF9pbl9jb25zdGFudF9sZW5ndGhzKHBnc3NKdW1ibGVTdGF0 ZSAqanN0YXRlLCBjb25zdCBjaGFyICpxdWVyeSwKIAkJCQkJCQkJCSBpbnQgcXVlcnlfbG9jKTsK IHN0YXRpYyBpbnQJY29tcF9sb2NhdGlvbihjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKTsK K3N0YXRpYyB2b2lkIHBnc3NfaW5mb191cGRhdGUodm9pZCk7CitzdGF0aWMgdm9pZCBwZ3NzX2lu Zm9fcmVzZXQodm9pZCk7CiAKIAogLyoKQEAgLTUxOCw2ICs1MzEsNyBAQCBzdGF0aWMgdm9pZAog cGdzc19zaG1lbV9zdGFydHVwKHZvaWQpCiB7CiAJYm9vbAkJZm91bmQ7CisJYm9vbAkJZm91bmRf aW5mbzsKIAlIQVNIQ1RMCQlpbmZvOwogCUZJTEUJICAgKmZpbGUgPSBOVUxMOwogCUZJTEUJICAg KnFmaWxlID0gTlVMTDsKQEAgLTUzNCw2ICs1NDgsNyBAQCBwZ3NzX3NobWVtX3N0YXJ0dXAodm9p ZCkKIAkvKiByZXNldCBpbiBjYXNlIHRoaXMgaXMgYSByZXN0YXJ0IHdpdGhpbiB0aGUgcG9zdG1h c3RlciAqLwogCXBnc3MgPSBOVUxMOwogCXBnc3NfaGFzaCA9IE5VTEw7CisJcGdzc19pbmZvID0g TlVMTDsKIAogCS8qCiAJICogQ3JlYXRlIG9yIGF0dGFjaCB0byB0aGUgc2hhcmVkIG1lbW9yeSBz dGF0ZSwgaW5jbHVkaW5nIGhhc2ggdGFibGUKQEAgLTU1Niw2ICs1NzEsMTYgQEAgcGdzc19zaG1l bV9zdGFydHVwKHZvaWQpCiAJCXBnc3MtPmdjX2NvdW50ID0gMDsKIAl9CiAKKwlwZ3NzX2luZm8g PSBTaG1lbUluaXRTdHJ1Y3QoInBnX3N0YXRfc3RhdGVtZW50c19pbmZvIiwKKwkJCQkJCQkJc2l6 ZW9mKHBnc3NJbmZvQ291bnRlcnMpLAorCQkJCQkJCQkmZm91bmRfaW5mbyk7CisJaWYgKCFmb3Vu ZF9pbmZvKQorCXsKKwkJcGdzc19pbmZvLT5kZWFsbG9jID0gMDsKKwkJU3BpbkxvY2tJbml0KCZw Z3NzX2luZm8tPm11dGV4KTsKKwkJQXNzZXJ0KHBnc3NfaW5mby0+ZGVhbGxvYyA9PSAwKTsKKwl9 CisKIAltZW1zZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7CiAJaW5mby5rZXlzaXplID0gc2l6 ZW9mKHBnc3NIYXNoS2V5KTsKIAlpbmZvLmVudHJ5c2l6ZSA9IHNpemVvZihwZ3NzRW50cnkpOwpA QCAtNTc3LDcgKzYwMiwxMCBAQCBwZ3NzX3NobWVtX3N0YXJ0dXAodm9pZCkKIAkgKiBEb25lIGlm IHNvbWUgb3RoZXIgcHJvY2VzcyBhbHJlYWR5IGNvbXBsZXRlZCBvdXIgaW5pdGlhbGl6YXRpb24u CiAJICovCiAJaWYgKGZvdW5kKQorCXsKKwkJQXNzZXJ0KGZvdW5kID09IGZvdW5kX2luZm8pOwog CQlyZXR1cm47CisJfQogCiAJLyoKIAkgKiBOb3RlOiB3ZSBkb24ndCBib3RoZXIgd2l0aCBsb2Nr cyBoZXJlLCBiZWNhdXNlIHRoZXJlIHNob3VsZCBiZSBubyBvdGhlcgpAQCAtNjczLDYgKzcwMSwx MSBAQCBwZ3NzX3NobWVtX3N0YXJ0dXAodm9pZCkKIAkJZW50cnktPmNvdW50ZXJzID0gdGVtcC5j b3VudGVyczsKIAl9CiAKKwkvKiBSZWFkIHBnc3NfaW5mbyAqLworCWlmIChmZW9mKGZpbGUpID09 IDApCisJCWlmIChmcmVhZChwZ3NzX2luZm8sIHNpemVvZihwZ3NzSW5mb0NvdW50ZXJzKSwgMSwg ZmlsZSkgIT0gMSkKKwkJCWdvdG8gcmVhZF9lcnJvcjsKKwogCXBmcmVlKGJ1ZmZlcik7CiAJRnJl ZUZpbGUoZmlsZSk7CiAJRnJlZUZpbGUocWZpbGUpOwpAQCAtNzQ4LDcgKzc4MSw3IEBAIHBnc3Nf c2htZW1fc2h1dGRvd24oaW50IGNvZGUsIERhdHVtIGFyZykKIAkJcmV0dXJuOwogCiAJLyogU2Fm ZXR5IGNoZWNrIC4uLiBzaG91bGRuJ3QgZ2V0IGhlcmUgdW5sZXNzIHNobWVtIGlzIHNldCB1cC4g Ki8KLQlpZiAoIXBnc3MgfHwgIXBnc3NfaGFzaCkKKwlpZiAoIXBnc3MgfHwgIXBnc3NfaGFzaCB8 fCAhcGdzc19pbmZvKQogCQlyZXR1cm47CiAKIAkvKiBEb24ndCBkdW1wIGlmIHRvbGQgbm90IHRv LiAqLwpAQCAtNzk0LDYgKzgyNywxMCBAQCBwZ3NzX3NobWVtX3NodXRkb3duKGludCBjb2RlLCBE YXR1bSBhcmcpCiAJCX0KIAl9CiAKKwkvKiBEdW1wIHBnc3NfaW5mbyAqLworCWlmIChmd3JpdGUo cGdzc19pbmZvLCBzaXplb2YocGdzc0luZm9Db3VudGVycyksIDEsIGZpbGUpICE9IDEpCisJCWdv dG8gZXJyb3I7CisKIAlmcmVlKHFidWZmZXIpOwogCXFidWZmZXIgPSBOVUxMOwogCkBAIC0xNDUz LDYgKzE0OTAsMjggQEAgZG9uZToKIAkJcGZyZWUobm9ybV9xdWVyeSk7CiB9CiAKK3N0YXRpYyB2 b2lkCitwZ3NzX2luZm9fdXBkYXRlKHZvaWQpCit7CisJeworCQl2b2xhdGlsZSBwZ3NzSW5mb0Nv dW50ZXJzICpjID0gKHZvbGF0aWxlIHBnc3NJbmZvQ291bnRlcnMgKikgcGdzc19pbmZvOworCQlT cGluTG9ja0FjcXVpcmUoJmMtPm11dGV4KTsKKwkJYy0+ZGVhbGxvYyArPSAxOwkvKiBpbmNyZW1l bnQgZGVhbGxvYyBjb3VudCAqLworCQlTcGluTG9ja1JlbGVhc2UoJmMtPm11dGV4KTsKKwl9Cit9 CisKK3N0YXRpYyB2b2lkCitwZ3NzX2luZm9fcmVzZXQodm9pZCkKK3sKKwl7CisJCXZvbGF0aWxl IHBnc3NJbmZvQ291bnRlcnMgKmMgPSAodm9sYXRpbGUgcGdzc0luZm9Db3VudGVycyAqKSBwZ3Nz X2luZm87CisJCVNwaW5Mb2NrQWNxdWlyZSgmYy0+bXV0ZXgpOworCQljLT5kZWFsbG9jID0gMDsJ LyogcmVzZXQgZGVhbGxvYyBjb3VudCAqLworCQlTcGluTG9ja1JlbGVhc2UoJmMtPm11dGV4KTsK Kwl9Cit9CisKIC8qCiAgKiBSZXNldCBzdGF0ZW1lbnQgc3RhdGlzdGljcyBjb3JyZXNwb25kaW5n IHRvIHVzZXJpZCwgZGJpZCwgYW5kIHF1ZXJ5aWQuCiAgKi8KQEAgLTE0OTAsNiArMTU0OSw3IEBA IHBnX3N0YXRfc3RhdGVtZW50c19yZXNldChQR19GVU5DVElPTl9BUkdTKQogI2RlZmluZSBQR19T VEFUX1NUQVRFTUVOVFNfQ09MU19WMV8zCTIzCiAjZGVmaW5lIFBHX1NUQVRfU1RBVEVNRU5UU19D T0xTX1YxXzgJMzIKICNkZWZpbmUgUEdfU1RBVF9TVEFURU1FTlRTX0NPTFMJCQkzMgkvKiBtYXhp bXVtIG9mIGFib3ZlICovCisjZGVmaW5lIFBHX1NUQVRfU1RBVEVNRU5UU19JTkZPX0NPTFMJMQog CiAvKgogICogUmV0cmlldmUgc3RhdGVtZW50IHN0YXRpc3RpY3MuCkBAIC0xODYyLDYgKzE5MjIs MTkgQEAgcGdfc3RhdF9zdGF0ZW1lbnRzX2ludGVybmFsKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZv LAogCXR1cGxlc3RvcmVfZG9uZXN0b3JpbmcodHVwc3RvcmUpOwogfQogCitEYXR1bQorcGdfc3Rh dF9zdGF0ZW1lbnRzX2luZm8oUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlpbnQ2NAkJZF9jb3VudCA9 IDA7CisJeworCQl2b2xhdGlsZSBwZ3NzSW5mb0NvdW50ZXJzICpjID0gKHZvbGF0aWxlIHBnc3NJ bmZvQ291bnRlcnMgKikgcGdzc19pbmZvOworCQlTcGluTG9ja0FjcXVpcmUoJmMtPm11dGV4KTsK KwkJZF9jb3VudCA9IEludDY0R2V0RGF0dW0oYy0+ZGVhbGxvYyk7CisJCVNwaW5Mb2NrUmVsZWFz ZSgmYy0+bXV0ZXgpOworCX0KKwlQR19SRVRVUk5fSU5UNjQoZF9jb3VudCk7Cit9CisKIC8qCiAg KiBFc3RpbWF0ZSBzaGFyZWQgbWVtb3J5IHNwYWNlIG5lZWRlZC4KICAqLwpAQCAtMTg3Miw2ICsx OTQ1LDcgQEAgcGdzc19tZW1zaXplKHZvaWQpCiAKIAlzaXplID0gTUFYQUxJR04oc2l6ZW9mKHBn c3NTaGFyZWRTdGF0ZSkpOwogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBoYXNoX2VzdGltYXRlX3Np emUocGdzc19tYXgsIHNpemVvZihwZ3NzRW50cnkpKSk7CisJc2l6ZSA9IGFkZF9zaXplKHNpemUs IE1BWEFMSUdOKHNpemVvZihwZ3NzSW5mb0NvdW50ZXJzKSkpOwogCiAJcmV0dXJuIHNpemU7CiB9 CkBAIC0xOTAyLDcgKzE5NzYsMTIgQEAgZW50cnlfYWxsb2MocGdzc0hhc2hLZXkgKmtleSwgU2l6 ZSBxdWVyeV9vZmZzZXQsIGludCBxdWVyeV9sZW4sIGludCBlbmNvZGluZywKIAogCS8qIE1ha2Ug c3BhY2UgaWYgbmVlZGVkICovCiAJd2hpbGUgKGhhc2hfZ2V0X251bV9lbnRyaWVzKHBnc3NfaGFz aCkgPj0gcGdzc19tYXgpCisJewogCQllbnRyeV9kZWFsbG9jKCk7CisJCXBnc3NfaW5mb191cGRh dGUoKTsKKwkJZXJlcG9ydChMT0csCisJCQkoZXJybXNnKCJUaGUgaW5mb3JtYXRpb24gaW4gcGdf c3RhdF9zdGF0ZW1lbnRzIGhhcyBiZWVuIGRlYWxsb2NhdGVkLiIpKSk7CisJfQogCiAJLyogRmlu ZCBvciBjcmVhdGUgYW4gZW50cnkgd2l0aCBkZXNpcmVkIGhhc2ggY29kZSAqLwogCWVudHJ5ID0g KHBnc3NFbnRyeSAqKSBoYXNoX3NlYXJjaChwZ3NzX2hhc2gsIGtleSwgSEFTSF9FTlRFUiwgJmZv dW5kKTsKQEAgLTI1MDMsNiArMjU4Miw5IEBAIGVudHJ5X3Jlc2V0KE9pZCB1c2VyaWQsIE9pZCBk YmlkLCB1aW50NjQgcXVlcnlpZCkKIAkJCWhhc2hfc2VhcmNoKHBnc3NfaGFzaCwgJmVudHJ5LT5r ZXksIEhBU0hfUkVNT1ZFLCBOVUxMKTsKIAkJCW51bV9yZW1vdmUrKzsKIAkJfQorCisJCS8qIFJl c2V0IHBnc3NfaW5mbyAqLworCQlwZ3NzX2luZm9fcmVzZXQoKTsKIAl9CiAKIAkvKiBBbGwgZW50 cmllcyBhcmUgcmVtb3ZlZD8gKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1l bnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jb250cm9sIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmNvbnRyb2wKaW5kZXggNjViMThiMTFkMi4uMmYxY2U2ZWQ1 MCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1l bnRzLmNvbnRyb2wKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0 ZW1lbnRzLmNvbnRyb2wKQEAgLTEsNSArMSw1IEBACiAjIHBnX3N0YXRfc3RhdGVtZW50cyBleHRl bnNpb24KIGNvbW1lbnQgPSAndHJhY2sgcGxhbm5pbmcgYW5kIGV4ZWN1dGlvbiBzdGF0aXN0aWNz IG9mIGFsbCBTUUwgc3RhdGVtZW50cyBleGVjdXRlZCcKLWRlZmF1bHRfdmVyc2lvbiA9ICcxLjgn CitkZWZhdWx0X3ZlcnNpb24gPSAnMS45JwogbW9kdWxlX3BhdGhuYW1lID0gJyRsaWJkaXIvcGdf c3RhdF9zdGF0ZW1lbnRzJwogcmVsb2NhdGFibGUgPSB0cnVlCmRpZmYgLS1naXQgYS9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvcGdfc3RhdF9zdGF0ZW1lbnRzLnNxbCBiL2NvbnRyaWIv cGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9wZ19zdGF0X3N0YXRlbWVudHMuc3FsCmluZGV4IDk5NmEy NGEyOTMuLmUzY2IwOTMwZDkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRz L3NxbC9wZ19zdGF0X3N0YXRlbWVudHMuc3FsCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1l bnRzL3NxbC9wZ19zdGF0X3N0YXRlbWVudHMuc3FsCkBAIC0zNTcsNCArMzU3LDEwIEBAIFNFTEVD VCA0MjsKIFNFTEVDVCA0MjsKIFNFTEVDVCBxdWVyeSwgcGxhbnMsIGNhbGxzLCByb3dzIEZST00g cGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOwogCistLQorLS0g Q2hlY2tpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgcGdfc3RhdF9zdGF0ZW1lbnRzX2luZm8gdmll dworLS0KK1NFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoMCwwLDApOworU0VMRUNUICog RlJPTSBwZ19zdGF0X3N0YXRlbWVudHNfaW5mbzsKKwogRFJPUCBFWFRFTlNJT04gcGdfc3RhdF9z dGF0ZW1lbnRzOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Bnc3RhdHN0YXRlbWVudHMuc2dt bCBiL2RvYy9zcmMvc2dtbC9wZ3N0YXRzdGF0ZW1lbnRzLnNnbWwKaW5kZXggY2YyZDI1YjdiMi4u YjNjNTNkZDM5ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Bnc3RhdHN0YXRlbWVudHMuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcGdzdGF0c3RhdGVtZW50cy5zZ21sCkBAIC0yMywxMCArMjMs MTEgQEAKICA8cGFyYT4KICAgIFdoZW4gPGZpbGVuYW1lPnBnX3N0YXRfc3RhdGVtZW50czwvZmls ZW5hbWU+IGlzIGxvYWRlZCwgaXQgdHJhY2tzCiAgICBzdGF0aXN0aWNzIGFjcm9zcyBhbGwgZGF0 YWJhc2VzIG9mIHRoZSBzZXJ2ZXIuICBUbyBhY2Nlc3MgYW5kIG1hbmlwdWxhdGUKLSAgIHRoZXNl IHN0YXRpc3RpY3MsIHRoZSBtb2R1bGUgcHJvdmlkZXMgYSB2aWV3LCA8c3RydWN0bmFtZT5wZ19z dGF0X3N0YXRlbWVudHM8L3N0cnVjdG5hbWU+LAotICAgYW5kIHRoZSB1dGlsaXR5IGZ1bmN0aW9u cyA8ZnVuY3Rpb24+cGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0PC9mdW5jdGlvbj4gYW5kCi0gICA8 ZnVuY3Rpb24+cGdfc3RhdF9zdGF0ZW1lbnRzPC9mdW5jdGlvbj4uICBUaGVzZSBhcmUgbm90IGF2 YWlsYWJsZSBnbG9iYWxseSBidXQKLSAgIGNhbiBiZSBlbmFibGVkIGZvciBhIHNwZWNpZmljIGRh dGFiYXNlIHdpdGgKKyAgIHRoZXNlIHN0YXRpc3RpY3MsIHRoZSBtb2R1bGUgcHJvdmlkZXMgdmll d3MsIDxzdHJ1Y3RuYW1lPnBnX3N0YXRfc3RhdGVtZW50czwvc3RydWN0bmFtZT4KKyAgIGFuZCA8 c3RydWN0bmFtZT5wZ19zdGF0X3N0YXRlbWVudHNfaW5mbzwvc3RydWN0bmFtZT4sCisgICBhbmQg dGhlIHV0aWxpdHkgZnVuY3Rpb25zIDxmdW5jdGlvbj5wZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQ8 L2Z1bmN0aW9uPiwKKyAgIDxmdW5jdGlvbj5wZ19zdGF0X3N0YXRlbWVudHM8L2Z1bmN0aW9uPiwg YW5kIDxmdW5jdGlvbj5wZ19zdGF0X3N0YXRlbWVudHNfaW5mbzwvZnVuY3Rpb24+LgorICAgVGhl c2UgYXJlIG5vdCBhdmFpbGFibGUgZ2xvYmFsbHkgYnV0IGNhbiBiZSBlbmFibGVkIGZvciBhIHNw ZWNpZmljIGRhdGFiYXNlIHdpdGgKICAgIDxjb21tYW5kPkNSRUFURSBFWFRFTlNJT04gcGdfc3Rh dF9zdGF0ZW1lbnRzPC9jb21tYW5kPi4KICA8L3BhcmE+CiAKQEAgLTQ4MCw2ICs0ODEsNDggQEAK ICAgPC9wYXJhPgogIDwvc2VjdDI+CiAKKyA8c2VjdDI+CisgIDx0aXRsZT5UaGUgPHN0cnVjdG5h bWU+cGdfc3RhdF9zdGF0ZW1lbnRzX2luZm88L3N0cnVjdG5hbWU+IFZpZXc8L3RpdGxlPgorCisg IDxwYXJhPgorICAgVGhpcyBtb2R1bGUgdHJhY2tzIHN0YXRpc3RpY3Mgb2YgPGZpbGVuYW1lPnBn X3N0YXRfc3RhdGVtZW50czwvZmlsZW5hbWU+CisgICBpdHNlbGYgZm9yIGRldGFpbGVkIHBlcmZv cm1hbmNlIGFuYWx5c2lzLgorICAgVGhlIHN0YXRpc3RpY3Mgb2YgcGdfc3RhdF9zdGF0ZW1lbnRz IGl0c2VsZiBhcmUgbWFkZSBhdmFpbGFibGUgdmlhIGEKKyAgIHZpZXcgbmFtZWQgPHN0cnVjdG5h bWU+cGdfc3RhdF9zdGF0ZW1lbnRzX2luZm88L3N0cnVjdG5hbWU+LgorICAgVGhpcyB2aWV3IGNv bnRhaW5zIG9ubHkgYSBzaW5nbGUgcm93LgorICAgVGhlIHJvdyBpcyByZXNldCBvbmx5IHdoZW4g PGZ1bmN0aW9uPnBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgwLDAsMCk8L2Z1bmN0aW9uPgorICAg aXMgY2FsbGVkLiBUaGUgY29sdW1ucyBvZiB0aGUgdmlldyBhcmUKKyAgIHNob3duIGluIDx4cmVm IGxpbmtlbmQ9InBnc3RhdHN0YXRlbWVudHNjdGwtY29sdW1ucyIvPi4KKyAgPC9wYXJhPgorCisg IDx0YWJsZSBpZD0icGdzdGF0c3RhdGVtZW50c2N0bC1jb2x1bW5zIj4KKyAgIDx0aXRsZT48c3Ry dWN0bmFtZT5wZ19zdGF0X3N0YXRlbWVudHNfaW5mbzwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0 bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmRlYWxsb2M8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUb3RhbCBudW1iZXIg b2YgZGVhbGxvY2F0aW9ucyBvZiBwZ19zdGF0X3N0YXRlbWVudHMgdmlldyBlbnRyeQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4K KyAgPC90YWJsZT4KKyA8L3NlY3QyPgorCiAgPHNlY3QyPgogICA8dGl0bGU+RnVuY3Rpb25zPC90 aXRsZT4KIApAQCAtNTM3LDYgKzU4MCwyNCBAQAogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPgor ICAgICA8ZnVuY3Rpb24+cGdfc3RhdF9zdGF0ZW1lbnRzX2luZm8oKSByZXR1cm5zIGJpZ2ludDwv ZnVuY3Rpb24+CisgICAgIDxpbmRleHRlcm0+CisgICAgICA8cHJpbWFyeT5wZ19zdGF0X3N0YXRl bWVudHNfaW5mbzwvcHJpbWFyeT4KKyAgICAgPC9pbmRleHRlcm0+CisgICAgPC90ZXJtPgorCisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8c3RydWN0bmFtZT5wZ19zdGF0 X3N0YXRlbWVudHNfaW5mbzwvc3RydWN0bmFtZT4gdmlldyBpcyBkZWZpbmVkCisgICAgICBpbiB0 ZXJtcyBvZiBhIGZ1bmN0aW9uIGFsc28gbmFtZWQgPGZ1bmN0aW9uPnBnX3N0YXRfc3RhdGVtZW50 c19pbmZvPC9mdW5jdGlvbj4uCisgICAgICBJdCBpcyBwb3NzaWJsZSBmb3IgY2xpZW50cyB0byBj YWxsIHRoZSAKKyAgICAgIDxmdW5jdGlvbj5wZ19zdGF0X3N0YXRlbWVudHNfaW5mbzwvZnVuY3Rp b24+IGRpcmVjdGx5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3NlY3QyPgogCg== --=_4c57f76234bb5d73a1749173cf220f5c--