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 1kY2uk-0000xc-R7 for pgsql-hackers@arkaria.postgresql.org; Thu, 29 Oct 2020 08:04:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kY2uh-0001Un-MM for pgsql-hackers@arkaria.postgresql.org; Thu, 29 Oct 2020 08:04:03 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kY2uh-0001Ug-5O for pgsql-hackers@lists.postgresql.org; Thu, 29 Oct 2020 08:04:03 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kY2ue-0004ci-2x for pgsql-hackers@postgresql.org; Thu, 29 Oct 2020 08:04:02 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTP id 8E445623A8; Thu, 29 Oct 2020 17:03:56 +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="=_36c4dd48826f1d2805405ea16e86f208" Date: Thu, 29 Oct 2020 17:03:56 +0900 From: Masahiro Ikeda To: pgsql-hackers@postgresql.org Cc: amit.kapila16@gmail.com, lchch1990@sina.cn, Kyotaro Horiguchi Subject: Re: Add statistics to pg_stat_wal view for wal related parameter tuning In-Reply-To: <20201022.135416.794530032338899030.horikyota.ntt@gmail.com> References: <06bc2d405b086a72fb14657de9befae8@oss.nttdata.com> <20201021.180323.1892401452849353942.horikyota.ntt@gmail.com> <729d83f87da2cfbca4343e577f2e20a1@oss.nttdata.com> <20201022.135416.794530032338899030.horikyota.ntt@gmail.com> Message-ID: <1ddd39a1c6501239220ff55e12551586@oss.nttdata.com> X-Sender: ikedamsh@oss.nttdata.com User-Agent: Roundcube Webmail/1.1.9 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_36c4dd48826f1d2805405ea16e86f208 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi, Thanks for your comments and advice. I updated the patch. On 2020-10-21 18:03, Kyotaro Horiguchi wrote: > At Tue, 20 Oct 2020 16:11:29 +0900, Masahiro Ikeda > wrote in >> On 2020-10-20 12:46, Amit Kapila wrote: >> > I see that we also need to add extra code to capture these stats (some >> > of which is in performance-critical path especially in >> > XLogInsertRecord) which again makes me a bit uncomfortable. It might >> > be that it is all fine as it is very important to collect these stats >> > at cluster-level in spite that the same information can be gathered at >> > statement-level to help customers but I don't see a very strong case >> > for that in your proposal. > > We should avoid that duplication as possible even if the both number > are important. > >> Also about performance, I thought there are few impacts because it >> increments stats in memory. If I can implement to reuse pgWalUsage's >> value which already collects these stats, there is no impact in >> XLogInsertRecord. >> For example, how about pg_stat_wal() calculates the accumulated >> value of wal_records, wal_fpi, and wal_bytes to use pgWalUsage's >> value? > > I don't think that works, but it would work that pgstat_send_wal() > takes the difference of that values between two successive calls. > > WalUsage prevWalUsage; > ... > pgstat_send_wal() > { > .. > /* fill in some values using pgWalUsage */ > WalStats.m_wal_bytes = pgWalUsage.wal_bytes - > prevWalUsage.wal_bytes; > WalStats.m_wal_records = pgWalUsage.wal_records - > prevWalUsage.wal_records; > WalStats.m_wal_wal_fpi = pgWalUsage.wal_fpi - > prevWalUsage.wal_fpi; > ... > pgstat_send(&WalStats, sizeof(WalStats)); > > /* remember the current numbers */ > prevWalUsage = pgWalUsage; Thanks for Horiguchi-san's advice, I changed to reuse pgWalUsage which is already defined and eliminates the extra overhead. > 5. I notice some code in issue_xlog_fsync() function to collect sync > info, > a standby may call the issue_xlog_fsync() too, which do not want to > to collect this info. I think this need some change avoid run by > standby side. IIUC, issue_xlog_fsync is called by wal receiver on standby side. But it doesn't send collected statistics to the stats collecter. So, I think it's not necessary to change the code to avoid collecting the stats on the standby side. Regards, -- Masahiro Ikeda NTT DATA CORPORATION --=_36c4dd48826f1d2805405ea16e86f208 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0002_add_statistics_to_pg_stat_wal_view.patch Content-Disposition: attachment; filename=0002_add_statistics_to_pg_stat_wal_view.patch; size=15677 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwv bW9uaXRvcmluZy5zZ21sCmluZGV4IDk4ZTE5OTU0Li41ODdhY2QxMCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5z Z21sCkBAIC0zNDQ3LDEyICszNDQ3LDEwNiBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2ZW50X3R5cGUs IHdhaXRfZXZlbnQgRlJPTSBwZ19zdGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRfZXZlbnQgaQogICAg IDwvdGhlYWQ+CiAKICAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD53YWxfcmVjb3Jkczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRvdGFsIG51bWJlciBv ZiBXQUwgcmVjb3JkcyBnZW5lcmF0ZWQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2Fs X2ZwaTwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGltYWdlcyBn ZW5lcmF0ZWQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2J5dGVzPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgVG90YWwgYW1vdW50IG9mIFdBTCBieXRlcyBnZW5lcmF0ZWQKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAg ICA8c3RydWN0ZmllbGQ+d2FsX2J1ZmZlcnNfZnVsbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2lu dDwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIE51bWJlciBvZiB0 aW1lcyBXQUwgZGF0YSB3YXMgd3JpdHRlbiB0byB0aGUgZGlzayBiZWNhdXNlIFdBTCBidWZmZXJz IGdvdCBmdWxsCisgICAgICAgVG90YWwgbnVtYmVyIG9mIHRpbWVzIFdBTCBkYXRhIHdyaXR0ZW4g dG8gdGhlIGRpc2sgYmVjYXVzZSBXQUwgYnVmZmVycyBnb3QgZnVsbAorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD53YWxfaW5pdF9maWxlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgbnVtYmVyIG9m IFdBTCBmaWxlIHNlZ21lbnQgY3JlYXRlZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53 YWxfd3JpdGVfYmFja2VuZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRvdGFsIG51bWJlciBvZiB0aW1lcyBiYWNr ZW5kcyB3cml0ZSBXQUwgZGF0YSB0byB0aGUgZGlzaworICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD53YWxfd3JpdGVfd2Fsd3JpdGVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgbnVtYmVyIG9mIHRp bWVzIHdhbHdyaXRlciB3cml0ZXMgV0FMIGRhdGEgdG8gdGhlIGRpc2sKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+d2FsX3dyaXRlX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUb3RhbCBhbW91bnQg b2YgdGltZSB0aGF0IGhhcyBiZWVuIHNwZW50IGluIHRoZSBwb3J0aW9uIG9mCisgICAgICAgV0FM IGRhdGEgd2FzIHdyaXR0ZW4gdG8gZGlzayBieSBiYWNrZW5kIGFuZCB3YWx3cml0ZXIsIGluIG1p bGxpc2Vjb25kcworICAgICAgIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5n Ii8+IGlzIGVuYWJsZWQsIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD53YWxfc3luY19iYWNrZW5kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgbnVtYmVyIG9mIHRpbWVz IGJhY2tlbmRzIHN5bmMgV0FMIGRhdGEgdG8gdGhlIGRpc2sKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+d2FsX3N5bmNfd2Fsd3JpdGVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgbnVtYmVyIG9m IHRpbWVzIHdhbHdyaXRlciBzeW5jcyBXQUwgZGF0YSBzeW5jZWQgdG8gdGhlIGRpc2sKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3N5bmNfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBl PmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRvdGFs IGFtb3VudCBvZiB0aW1lIHRoYXQgaGFzIGJlZW4gc3BlbnQgaW4gdGhlIHBvcnRpb24gb2YKKyAg ICAgICBXQUwgZGF0YSB3YXMgc3luY2VkIHRvIGRpc2sgYnkgYmFja2VuZCBhbmQgd2Fsd3JpdGVy LCBpbiBtaWxsaXNlY29uZHMKKyAgICAgICAoaWYgPHhyZWYgbGlua2VuZD0iZ3VjLXRyYWNrLWlv LXRpbWluZyIvPiBpcyBlbmFibGVkLCBvdGhlcndpc2UgemVybykKICAgICAgIDwvcGFyYT48L2Vu dHJ5PgogICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IDUyYTY3 YjExLi43N2ZlOTc3YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtMjUyNyw2ICsy NTI3LDggQEAgWExvZ1dyaXRlKFhMb2d3cnRScXN0IFdyaXRlUnFzdCwgYm9vbCBmbGV4aWJsZSkK IAkJCVNpemUJCW5ieXRlczsKIAkJCVNpemUJCW5sZWZ0OwogCQkJaW50CQkJd3JpdHRlbjsKKwkJ CWluc3RyX3RpbWUJc3RhcnQ7CisJCQlpbnN0cl90aW1lCWR1cmF0aW9uOwogCiAJCQkvKiBPSyB0 byB3cml0ZSB0aGUgcGFnZShzKSAqLwogCQkJZnJvbSA9IFhMb2dDdGwtPnBhZ2VzICsgc3RhcnRp ZHggKiAoU2l6ZSkgWExPR19CTENLU1o7CkBAIC0yNTM1LDkgKzI1MzcsMjggQEAgWExvZ1dyaXRl KFhMb2d3cnRScXN0IFdyaXRlUnFzdCwgYm9vbCBmbGV4aWJsZSkKIAkJCWRvCiAJCQl7CiAJCQkJ ZXJybm8gPSAwOworCQkJCWlmICh0cmFja19pb190aW1pbmcpCisJCQkJCUlOU1RSX1RJTUVfU0VU X0NVUlJFTlQoc3RhcnQpOworCiAJCQkJcGdzdGF0X3JlcG9ydF93YWl0X3N0YXJ0KFdBSVRfRVZF TlRfV0FMX1dSSVRFKTsKIAkJCQl3cml0dGVuID0gcGdfcHdyaXRlKG9wZW5Mb2dGaWxlLCBmcm9t LCBubGVmdCwgc3RhcnRvZmZzZXQpOwogCQkJCXBnc3RhdF9yZXBvcnRfd2FpdF9lbmQoKTsKKwor CQkJCWlmICh0cmFja19pb190aW1pbmcpCisJCQkJeworCQkJCQlJTlNUUl9USU1FX1NFVF9DVVJS RU5UKGR1cmF0aW9uKTsKKwkJCQkJSU5TVFJfVElNRV9TVUJUUkFDVChkdXJhdGlvbiwgc3RhcnQp OworCQkJCQlXYWxTdGF0cy5tX3dhbF93cml0ZV90aW1lICs9IElOU1RSX1RJTUVfR0VUX01JTExJ U0VDKGR1cmF0aW9uKTsKKwkJCQl9CisKKwkJCQlpZiAoQW1XYWxXcml0ZXJQcm9jZXNzKCkpewor CQkJCQlXYWxTdGF0cy5tX3dhbF93cml0ZV93YWx3cml0ZXIrKzsKKwkJCQl9CisJCQkJZWxzZQor CQkJCXsKKwkJCQkJV2FsU3RhdHMubV93YWxfd3JpdGVfYmFja2VuZCsrOworCQkJCX0KKwogCQkJ CWlmICh3cml0dGVuIDw9IDApCiAJCQkJewogCQkJCQljaGFyCQl4bG9nZm5hbWVbTUFYRk5BTUVM RU5dOwpAQCAtMzQxOCw2ICszNDM5LDcgQEAgWExvZ0ZpbGVJbml0KFhMb2dTZWdObyBsb2dzZWdu bywgYm9vbCAqdXNlX2V4aXN0ZW50LCBib29sIHVzZV9sb2NrKQogCQkJCSBlcnJtc2coImNvdWxk IG5vdCBvcGVuIGZpbGUgXCIlc1wiOiAlbSIsIHBhdGgpKSk7CiAKIAllbG9nKERFQlVHMiwgImRv bmUgY3JlYXRpbmcgYW5kIGZpbGxpbmcgbmV3IFdBTCBmaWxlIik7CisJV2FsU3RhdHMubV93YWxf aW5pdF9maWxlKys7CiAKIAlyZXR1cm4gZmQ7CiB9CkBAIC0xMDQyNyw4ICsxMDQ0OSwxMyBAQCBh c3NpZ25feGxvZ19zeW5jX21ldGhvZChpbnQgbmV3X3N5bmNfbWV0aG9kLCB2b2lkICpleHRyYSkK IHZvaWQKIGlzc3VlX3hsb2dfZnN5bmMoaW50IGZkLCBYTG9nU2VnTm8gc2Vnbm8pCiB7CisJaW5z dHJfdGltZQlzdGFydDsKKwlpbnN0cl90aW1lCWR1cmF0aW9uOwogCWNoYXIJICAgKm1zZyA9IE5V TEw7CiAKKwlpZiAodHJhY2tfaW9fdGltaW5nKQorCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKHN0 YXJ0KTsKKwogCXBnc3RhdF9yZXBvcnRfd2FpdF9zdGFydChXQUlUX0VWRU5UX1dBTF9TWU5DKTsK IAlzd2l0Y2ggKHN5bmNfbWV0aG9kKQogCXsKQEAgLTEwNDcyLDYgKzEwNDk5LDIxIEBAIGlzc3Vl X3hsb2dfZnN5bmMoaW50IGZkLCBYTG9nU2VnTm8gc2Vnbm8pCiAJfQogCiAJcGdzdGF0X3JlcG9y dF93YWl0X2VuZCgpOworCisJaWYgKHRyYWNrX2lvX3RpbWluZykKKwl7CisJCUlOU1RSX1RJTUVf U0VUX0NVUlJFTlQoZHVyYXRpb24pOworCQlJTlNUUl9USU1FX1NVQlRSQUNUKGR1cmF0aW9uLCBz dGFydCk7CisJCVdhbFN0YXRzLm1fd2FsX3N5bmNfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxM SVNFQyhkdXJhdGlvbik7CisJfQorCisJaWYgKEFtV2FsV3JpdGVyUHJvY2VzcygpKXsKKwkJV2Fs U3RhdHMubV93YWxfc3luY193YWx3cml0ZXIrKzsKKwl9CisJZWxzZQorCXsKKwkJV2FsU3RhdHMu bV93YWxfc3luY19iYWNrZW5kKys7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsCmluZGV4IDUxNzFlYTA1Li42NDYxOGU0MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbApAQCAtOTkzLDcgKzk5MywxNyBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X2Jn d3JpdGVyIEFTCiAKIENSRUFURSBWSUVXIHBnX3N0YXRfd2FsIEFTCiAgICAgU0VMRUNUCisgICAg ICAgIHcud2FsX3JlY29yZHMsCisgICAgICAgIHcud2FsX2ZwaSwKKyAgICAgICAgdy53YWxfYnl0 ZXMsCiAgICAgICAgIHcud2FsX2J1ZmZlcnNfZnVsbCwKKyAgICAgICAgdy53YWxfaW5pdF9maWxl LAorICAgICAgICB3LndhbF93cml0ZV9iYWNrZW5kLAorICAgICAgICB3LndhbF93cml0ZV93YWx3 cml0ZXIsCisgICAgICAgIHcud2FsX3dyaXRlX3RpbWUsCisgICAgICAgIHcud2FsX3N5bmNfYmFj a2VuZCwKKyAgICAgICAgdy53YWxfc3luY193YWx3cml0ZXIsCisgICAgICAgIHcud2FsX3N5bmNf dGltZSwKICAgICAgICAgdy5zdGF0c19yZXNldAogICAgIEZST00gcGdfc3RhdF9nZXRfd2FsKCkg dzsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYyBiL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMKaW5kZXggZjFkY2EyZjIuLjEzNjllYTU0IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcGdzdGF0LmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAi Y29tbW9uL2lwLmgiCisjaW5jbHVkZSAiZXhlY3V0b3IvaW5zdHJ1bWVudC5oIgogI2luY2x1ZGUg ImxpYnBxL2xpYnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFzaWduYWwuaCIKICNpbmNsdWRlICJt Yi9wZ193Y2hhci5oIgpAQCAtMTQyLDYgKzE0Myw3IEBAIGNoYXIJICAgKnBnc3RhdF9zdGF0X3Rt cG5hbWUgPSBOVUxMOwogICovCiBQZ1N0YXRfTXNnQmdXcml0ZXIgQmdXcml0ZXJTdGF0czsKIFBn U3RhdF9Nc2dXYWwgV2FsU3RhdHM7CitXYWxVc2FnZSBwcmV2V2FsVXNhZ2U7CiAKIC8qCiAgKiBM aXN0IG9mIFNMUlUgbmFtZXMgdGhhdCB3ZSBrZWVwIHN0YXRzIGZvci4gIFRoZXJlIGlzIG5vIGNl bnRyYWwgcmVnaXN0cnkgb2YKQEAgLTQ1NzQsNiArNDU3NiwxMSBAQCBwZ3N0YXRfc2VuZF9iZ3dy aXRlcih2b2lkKQogdm9pZAogcGdzdGF0X3NlbmRfd2FsKHZvaWQpCiB7CisJLyogZmlsbCBpbiBz b21lIHZhbHVlcyB1c2luZyBwZ1dhbFVzYWdlICovCisJV2FsU3RhdHMubV93YWxfYnl0ZXMgPSBw Z1dhbFVzYWdlLndhbF9ieXRlcyAtIHByZXZXYWxVc2FnZS53YWxfYnl0ZXM7CisJV2FsU3RhdHMu bV93YWxfcmVjb3JkcyA9IHBnV2FsVXNhZ2Uud2FsX3JlY29yZHMgLSBwcmV2V2FsVXNhZ2Uud2Fs X3JlY29yZHM7CisJV2FsU3RhdHMubV93YWxfZnBpID0gcGdXYWxVc2FnZS53YWxfZnBpIC0gcHJl dldhbFVzYWdlLndhbF9mcGk7CisKIAkvKiBXZSBhc3N1bWUgdGhpcyBpbml0aWFsaXplcyB0byB6 ZXJvZXMgKi8KIAlzdGF0aWMgY29uc3QgUGdTdGF0X01zZ1dhbCBhbGxfemVyb2VzOwogCkBAIC00 NTkxLDYgKzQ1OTgsOSBAQCBwZ3N0YXRfc2VuZF93YWwodm9pZCkKIAlwZ3N0YXRfc2V0aGVhZGVy KCZXYWxTdGF0cy5tX2hkciwgUEdTVEFUX01UWVBFX1dBTCk7CiAJcGdzdGF0X3NlbmQoJldhbFN0 YXRzLCBzaXplb2YoV2FsU3RhdHMpKTsKIAorCS8qIHJlbWVtYmVyIHRoZSBjdXJyZW50IG51bWJl cnMgKi8KKwlwcmV2V2FsVXNhZ2UgPSBwZ1dhbFVzYWdlOworCiAJLyoKIAkgKiBDbGVhciBvdXQg dGhlIHN0YXRpc3RpY3MgYnVmZmVyLCBzbyBpdCBjYW4gYmUgcmUtdXNlZC4KIAkgKi8KQEAgLTY3 NTksNyArNjc2OSwxNyBAQCBwZ3N0YXRfcmVjdl9iZ3dyaXRlcihQZ1N0YXRfTXNnQmdXcml0ZXIg Km1zZywgaW50IGxlbikKIHN0YXRpYyB2b2lkCiBwZ3N0YXRfcmVjdl93YWwoUGdTdGF0X01zZ1dh bCAqbXNnLCBpbnQgbGVuKQogeworCXdhbFN0YXRzLndhbF9yZWNvcmRzICs9IG1zZy0+bV93YWxf cmVjb3JkczsKKwl3YWxTdGF0cy53YWxfZnBpICs9IG1zZy0+bV93YWxfZnBpOworCXdhbFN0YXRz LndhbF9ieXRlcyArPSBtc2ctPm1fd2FsX2J5dGVzOwogCXdhbFN0YXRzLndhbF9idWZmZXJzX2Z1 bGwgKz0gbXNnLT5tX3dhbF9idWZmZXJzX2Z1bGw7CisJd2FsU3RhdHMud2FsX2luaXRfZmlsZSAr PSBtc2ctPm1fd2FsX2luaXRfZmlsZTsKKwl3YWxTdGF0cy53YWxfd3JpdGVfYmFja2VuZCArPSBt c2ctPm1fd2FsX3dyaXRlX2JhY2tlbmQ7CisJd2FsU3RhdHMud2FsX3dyaXRlX3dhbHdyaXRlciAr PSBtc2ctPm1fd2FsX3dyaXRlX3dhbHdyaXRlcjsKKwl3YWxTdGF0cy53YWxfd3JpdGVfdGltZSAr PSBtc2ctPm1fd2FsX3dyaXRlX3RpbWU7CisJd2FsU3RhdHMud2FsX3N5bmNfYmFja2VuZCArPSBt c2ctPm1fd2FsX3N5bmNfYmFja2VuZDsKKwl3YWxTdGF0cy53YWxfc3luY193YWx3cml0ZXIgKz0g bXNnLT5tX3dhbF9zeW5jX3dhbHdyaXRlcjsKKwl3YWxTdGF0cy53YWxfc3luY190aW1lICs9IG1z Zy0+bV93YWxfc3luY190aW1lOwogfQogCiAvKiAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wb3N0bWFzdGVyL3dhbHdyaXRlci5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci93 YWx3cml0ZXIuYwppbmRleCBhNTI4MzJmZS4uY2U5ZjRiN2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvd2Fsd3JpdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci93 YWx3cml0ZXIuYwpAQCAtMjUzLDYgKzI1Myw5IEBAIFdhbFdyaXRlck1haW4odm9pZCkKIAkJZWxz ZSBpZiAobGVmdF90aWxsX2hpYmVybmF0ZSA+IDApCiAJCQlsZWZ0X3RpbGxfaGliZXJuYXRlLS07 CiAKKwkJLyogU2VuZCBXQUwgc3RhdGlzdGljcyAqLworCQlwZ3N0YXRfc2VuZF93YWwoKTsKKwog CQkvKgogCQkgKiBTbGVlcCB1bnRpbCB3ZSBhcmUgc2lnbmFsZWQgb3IgV2FsV3JpdGVyRGVsYXkg aGFzIGVsYXBzZWQuICBJZiB3ZQogCQkgKiBoYXZlbid0IGRvbmUgYW55dGhpbmcgdXNlZnVsIGZv ciBxdWl0ZSBzb21lIHRpbWUsIGxlbmd0aGVuIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVu Y3MuYwppbmRleCBhMjEwZmM5My4uN2U4MDBlZGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRm dW5jcy5jCkBAIC0xNzAzLDcgKzE3MDMsNyBAQCBwZ19zdGF0X2dldF9idWZfYWxsb2MoUEdfRlVO Q1RJT05fQVJHUykKIERhdHVtCiBwZ19zdGF0X2dldF93YWwoUEdfRlVOQ1RJT05fQVJHUykKIHsK LSNkZWZpbmUgUEdfU1RBVF9HRVRfV0FMX0NPTFMJMgorI2RlZmluZSBQR19TVEFUX0dFVF9XQUxf Q09MUwkxMgogCVR1cGxlRGVzYwl0dXBkZXNjOwogCURhdHVtCQl2YWx1ZXNbUEdfU1RBVF9HRVRf V0FMX0NPTFNdOwogCWJvb2wJCW51bGxzW1BHX1NUQVRfR0VUX1dBTF9DT0xTXTsKQEAgLTE3MTUs OSArMTcxNSwyOSBAQCBwZ19zdGF0X2dldF93YWwoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIElu aXRpYWxpc2UgYXR0cmlidXRlcyBpbmZvcm1hdGlvbiBpbiB0aGUgdHVwbGUgZGVzY3JpcHRvciAq LwogCXR1cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhQR19TVEFUX0dFVF9XQUxfQ09M Uyk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxLCAid2FsX2J1 ZmZlcnNfZnVsbCIsCisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAx LCAid2FsX3JlY29yZHMiLAogCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAyLCAic3RhdHNfcmVzZXQiLAorCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMiwgIndhbF9mcGkiLAorCQkJCQkgICBJ TlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSAzLCAid2FsX2J5dGVzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0lu aXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNCwgIndhbF9idWZmZXJzX2Z1bGwiLAorCQkJ CQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRy TnVtYmVyKSA1LCAid2FsX2luaXRfZmlsZSIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlU dXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDYsICJ3YWxfd3JpdGVfYmFj a2VuZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpIDcsICJ3YWxfd3JpdGVfd2Fsd3JpdGVyIiwKKwkJCQkJICAgSU5U OE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg OCwgIndhbF93cml0ZV90aW1lIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgOSwgIndhbF9zeW5jX2JhY2tlbmQiLAor CQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSAxMCwgIndhbF9zeW5jX3dhbHdyaXRlciIsCisJCQkJCSAgIElOVDhPSUQsIC0x LCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDExLCAid2Fs X3N5bmNfdGltZSIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50 cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDEyLCAic3RhdHNfcmVzZXQiLAogCQkJCQkgICBUSU1F U1RBTVBUWk9JRCwgLTEsIDApOwogCiAJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CkBAIC0xNzI2 LDggKzE3NDYsMTggQEAgcGdfc3RhdF9nZXRfd2FsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJd2FsX3N0 YXRzID0gcGdzdGF0X2ZldGNoX3N0YXRfd2FsKCk7CiAKIAkvKiBGaWxsIHZhbHVlcyBhbmQgTlVM THMgKi8KLQl2YWx1ZXNbMF0gPSBJbnQ2NEdldERhdHVtKHdhbF9zdGF0cy0+d2FsX2J1ZmZlcnNf ZnVsbCk7Ci0JdmFsdWVzWzFdID0gVGltZXN0YW1wVHpHZXREYXR1bSh3YWxfc3RhdHMtPnN0YXRf cmVzZXRfdGltZXN0YW1wKTsKKwl2YWx1ZXNbMF0gPSBJbnQ2NEdldERhdHVtKHdhbF9zdGF0cy0+ d2FsX3JlY29yZHMpOworCXZhbHVlc1sxXSA9IEludDY0R2V0RGF0dW0od2FsX3N0YXRzLT53YWxf ZnBpKTsKKwl2YWx1ZXNbMl0gPSBJbnQ2NEdldERhdHVtKHdhbF9zdGF0cy0+d2FsX2J5dGVzKTsK Kwl2YWx1ZXNbM10gPSBJbnQ2NEdldERhdHVtKHdhbF9zdGF0cy0+d2FsX2J1ZmZlcnNfZnVsbCk7 CisJdmFsdWVzWzRdID0gSW50NjRHZXREYXR1bSh3YWxfc3RhdHMtPndhbF9pbml0X2ZpbGUpOwor CXZhbHVlc1s1XSA9IEludDY0R2V0RGF0dW0od2FsX3N0YXRzLT53YWxfd3JpdGVfYmFja2VuZCk7 CisJdmFsdWVzWzZdID0gSW50NjRHZXREYXR1bSh3YWxfc3RhdHMtPndhbF93cml0ZV93YWx3cml0 ZXIpOworCXZhbHVlc1s3XSA9IEludDY0R2V0RGF0dW0od2FsX3N0YXRzLT53YWxfd3JpdGVfdGlt ZSk7CisJdmFsdWVzWzhdID0gSW50NjRHZXREYXR1bSh3YWxfc3RhdHMtPndhbF9zeW5jX2JhY2tl bmQpOworCXZhbHVlc1s5XSA9IEludDY0R2V0RGF0dW0od2FsX3N0YXRzLT53YWxfc3luY193YWx3 cml0ZXIpOworCXZhbHVlc1sxMF0gPSBJbnQ2NEdldERhdHVtKHdhbF9zdGF0cy0+d2FsX3N5bmNf dGltZSk7CisJdmFsdWVzWzExXSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0od2FsX3N0YXRzLT5zdGF0 X3Jlc2V0X3RpbWVzdGFtcCk7CiAKIAkvKiBSZXR1cm5zIHRoZSByZWNvcmQgYXMgRGF0dW0gKi8K IAlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRl c2MsIHZhbHVlcywgbnVsbHMpKSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBkOTc3MGJi YS4uZTY1YzVhOGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNTQ5MSw5ICs1NDkxLDkg QEAKIHsgb2lkID0+ICcxMTM2JywgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IGluZm9ybWF0aW9uIGFi b3V0IFdBTCBhY3Rpdml0eScsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3dhbCcsIHByb2lz c3RyaWN0ID0+ICdmJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9wYXJhbGxlbCA9PiAncics IHByb3JldHR5cGUgPT4gJ3JlY29yZCcsIHByb2FyZ3R5cGVzID0+ICcnLAotICBwcm9hbGxhcmd0 eXBlcyA9PiAne2ludDgsdGltZXN0YW1wdHp9JywKLSAgcHJvYXJnbW9kZXMgPT4gJ3tvLG99JywK LSAgcHJvYXJnbmFtZXMgPT4gJ3t3YWxfYnVmZmVyc19mdWxsLHN0YXRzX3Jlc2V0fScsCisgIHBy b2FsbGFyZ3R5cGVzID0+ICd7aW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4 LGludDgsaW50OCxpbnQ4LHRpbWVzdGFtcHR6fScsCisgIHByb2FyZ21vZGVzID0+ICd7byxvLG8s byxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3t3YWxfcmVjb3Jkcyx3YWxf ZnBpLHdhbF9ieXRlcyx3YWxfYnVmZmVyc19mdWxsLHdhbF9pbml0X2ZpbGUsd2FsX3dyaXRlX2Jh Y2tlbmQsd2FsX3dyaXRlX3dhbHdyaXRlcix3YWxfd3JpdGVfdGltZSx3YWxfc3luY19iYWNrZW5k LHdhbF9zeW5jX3dhbHdyaXRlcix3YWxfc3luY190aW1lLHN0YXRzX3Jlc2V0fScsCiAgIHByb3Ny YyA9PiAncGdfc3RhdF9nZXRfd2FsJyB9LAogCiB7IG9pZCA9PiAnMjMwNicsIGRlc2NyID0+ICdz dGF0aXN0aWNzOiBpbmZvcm1hdGlvbiBhYm91dCBTTFJVIGNhY2hlcycsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IDI1N2U1MTVi Li5jMzJmM2EyNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGdzdGF0LmgKQEAgLTQ1OSw3ICs0NTksMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0 X01zZ0JnV3JpdGVyCiB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfTXNnV2FsCiB7CiAJUGdTdGF0X01z Z0hkciBtX2hkcjsKKwlQZ1N0YXRfQ291bnRlciBtX3dhbF9yZWNvcmRzOworCVBnU3RhdF9Db3Vu dGVyIG1fd2FsX2ZwaTsKKwlQZ1N0YXRfQ291bnRlciBtX3dhbF9ieXRlczsKIAlQZ1N0YXRfQ291 bnRlciBtX3dhbF9idWZmZXJzX2Z1bGw7CisJUGdTdGF0X0NvdW50ZXIgbV93YWxfaW5pdF9maWxl OworCVBnU3RhdF9Db3VudGVyIG1fd2FsX3dyaXRlX2JhY2tlbmQ7CisJUGdTdGF0X0NvdW50ZXIg bV93YWxfd3JpdGVfd2Fsd3JpdGVyOworCVBnU3RhdF9Db3VudGVyIG1fd2FsX3dyaXRlX3RpbWU7 CS8qIGFjY3VtdWxhdGUgdGltZXMgaW4gbWlsbGlzZWNvbmRzICovCisJUGdTdGF0X0NvdW50ZXIg bV93YWxfc3luY19iYWNrZW5kOworCVBnU3RhdF9Db3VudGVyIG1fd2FsX3N5bmNfd2Fsd3JpdGVy OworCVBnU3RhdF9Db3VudGVyIG1fd2FsX3N5bmNfdGltZTsgLyogYWNjdW11bGF0ZSB0aW1lcyBp biBtaWxsaXNlY29uZHMgKi8KIH0gUGdTdGF0X01zZ1dhbDsKIAogLyogLS0tLS0tLS0tLQpAQCAt Nzk4LDcgKzgwOCwxOCBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfR2xvYmFsU3RhdHMKICAqLwog dHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1dhbFN0YXRzCiB7CisJUGdTdGF0X0NvdW50ZXIgd2FsX3Jl Y29yZHM7CisJUGdTdGF0X0NvdW50ZXIgd2FsX2ZwaTsKKwlQZ1N0YXRfQ291bnRlciB3YWxfYnl0 ZXM7CiAJUGdTdGF0X0NvdW50ZXIgd2FsX2J1ZmZlcnNfZnVsbDsKKwlQZ1N0YXRfQ291bnRlciB3 YWxfaW5pdF9maWxlOworCVBnU3RhdF9Db3VudGVyIHdhbF93cml0ZV9iYWNrZW5kOworCVBnU3Rh dF9Db3VudGVyIHdhbF93cml0ZV93YWx3cml0ZXI7CisJUGdTdGF0X0NvdW50ZXIgd2FsX3dyaXRl X3RpbWU7CisJUGdTdGF0X0NvdW50ZXIgd2FsX3N5bmNfYmFja2VuZDsKKwlQZ1N0YXRfQ291bnRl ciB3YWxfc3luY193YWx3cml0ZXI7CisJUGdTdGF0X0NvdW50ZXIgd2FsX3N5bmNfdGltZTsKKwog CVRpbWVzdGFtcFR6IHN0YXRfcmVzZXRfdGltZXN0YW1wOwogfSBQZ1N0YXRfV2FsU3RhdHM7CiAK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMDk3ZmY1ZDEuLjZlY2MzNjAxIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMjEzOCw5ICsyMTM4LDE5IEBAIHBn X3N0YXRfdXNlcl90YWJsZXN8IFNFTEVDVCBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQsCiAgICAg cGdfc3RhdF9hbGxfdGFibGVzLmF1dG9hbmFseXplX2NvdW50CiAgICBGUk9NIHBnX3N0YXRfYWxs X3RhYmxlcwogICBXSEVSRSAoKHBnX3N0YXRfYWxsX3RhYmxlcy5zY2hlbWFuYW1lIDw+IEFMTCAo QVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2NoZW1hJzo6bmFtZV0pKSBB TkQgKHBnX3N0YXRfYWxsX3RhYmxlcy5zY2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7 Ci1wZ19zdGF0X3dhbHwgU0VMRUNUIHcud2FsX2J1ZmZlcnNfZnVsbCwKK3BnX3N0YXRfd2FsfCBT RUxFQ1Qgdy53YWxfcmVjb3JkcywKKyAgICB3LndhbF9mcGksCisgICAgdy53YWxfYnl0ZXMsCisg ICAgdy53YWxfYnVmZmVyc19mdWxsLAorICAgIHcud2FsX2luaXRfZmlsZSwKKyAgICB3LndhbF93 cml0ZV9iYWNrZW5kLAorICAgIHcud2FsX3dyaXRlX3dhbHdyaXRlciwKKyAgICB3LndhbF93cml0 ZV90aW1lLAorICAgIHcud2FsX3N5bmNfYmFja2VuZCwKKyAgICB3LndhbF9zeW5jX3dhbHdyaXRl ciwKKyAgICB3LndhbF9zeW5jX3RpbWUsCiAgICAgdy5zdGF0c19yZXNldAotICAgRlJPTSBwZ19z dGF0X2dldF93YWwoKSB3KHdhbF9idWZmZXJzX2Z1bGwsIHN0YXRzX3Jlc2V0KTsKKyAgIEZST00g cGdfc3RhdF9nZXRfd2FsKCkgdyh3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVzLCB3YWxf YnVmZmVyc19mdWxsLCB3YWxfaW5pdF9maWxlLCB3YWxfd3JpdGVfYmFja2VuZCwgd2FsX3dyaXRl X3dhbHdyaXRlciwgd2FsX3dyaXRlX3RpbWUsIHdhbF9zeW5jX2JhY2tlbmQsIHdhbF9zeW5jX3dh bHdyaXRlciwgd2FsX3N5bmNfdGltZSwgc3RhdHNfcmVzZXQpOwogcGdfc3RhdF93YWxfcmVjZWl2 ZXJ8IFNFTEVDVCBzLnBpZCwKICAgICBzLnN0YXR1cywKICAgICBzLnJlY2VpdmVfc3RhcnRfbHNu LAo= --=_36c4dd48826f1d2805405ea16e86f208--