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 1qo3Bd-00CvNk-KB for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Oct 2023 14:49:17 +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 1qo3Ba-00GVvX-UF for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Oct 2023 14:49:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qo3Ba-00GVvP-Ho for pgsql-hackers@lists.postgresql.org; Wed, 04 Oct 2023 14:49:14 +0000 Received: from relay6-d.mail.gandi.net ([2001:4b98:dc4:8::226]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qo3BT-0000nA-Ou for pgsql-hackers@lists.postgresql.org; Wed, 04 Oct 2023 14:49:14 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 681CBC0008; Wed, 4 Oct 2023 14:49:04 +0000 (UTC) Content-Type: multipart/mixed; boundary="------------6hPar6FVAb9SuYAExsCkrb7i" Message-ID: Date: Wed, 4 Oct 2023 15:49:03 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: Add support for AT LOCAL Content-Language: en-US To: Michael Paquier Cc: cary huang , pgsql-hackers@lists.postgresql.org References: <8e25dec4-5667-c1a5-6581-167d710c2182@postgresfriends.org> <169541920143.2315938.17412414971559687288.pgcf@coridan.postgresql.org> From: Vik Fearing In-Reply-To: X-GND-Sasl: vik@postgresfriends.org 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. --------------6hPar6FVAb9SuYAExsCkrb7i Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 9/29/23 09:27, Michael Paquier wrote: > On Sat, Sep 23, 2023 at 12:54:01AM +0200, Vik Fearing wrote: >> On 9/22/23 23:46, cary huang wrote: >>> I think this feature can be a useful addition in dealing with time >>> zones. I have applied and tried out the patch, The feature works as >>> described and seems promising. The problem with compilation failure >>> was probably reported on CirrusCI when compiled on different >>> platforms. I have run the latest patch on my own Cirrus CI environment >>> and everything checked out fine. >> >> Thank you for reviewing! > > + | a_expr AT LOCAL %prec AT > + { > + /* Use the value of the session's time zone */ > + FuncCall *tz = makeFuncCall(SystemFuncName("current_setting"), > + list_make1(makeStringConst("TimeZone", -1)), > + COERCE_SQL_SYNTAX, > + -1); > + $$ = (Node *) makeFuncCall(SystemFuncName("timezone"), > + list_make2(tz, $1), > + COERCE_SQL_SYNTAX, > + @2); > > As the deparsing code introduced by this patch is showing, this leads > to a lot of extra complexity. And, actually, this can be quite > expensive as well with these two layers of functions. Note also that > in comparison to SQLValueFunctions, COERCE_SQL_SYNTAX does less > inlining. So here comes my question: why doesn't this stuff just use > one underlying function to do this job? Okay. Here is a v3 using that approach. -- Vik Fearing --------------6hPar6FVAb9SuYAExsCkrb7i Content-Type: text/x-patch; charset=UTF-8; name="v3-0001-Add-support-for-AT-LOCAL.patch" Content-Disposition: attachment; filename="v3-0001-Add-support-for-AT-LOCAL.patch" Content-Transfer-Encoding: base64 RnJvbSBlNjgzMDVkYWZkMmQ0Zjk0MzljYmQzNDFlOGYwNDc0NWQ4YTk0NWVkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5k cy5vcmc+CkRhdGU6IFdlZCwgNCBPY3QgMjAyMyAxNTo0NjozOCArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjNdIEFkZCBzdXBwb3J0IGZvciBBVCBMT0NBTAoKV2hlbiBjb252ZXJ0aW5nIGEg dGltZXN0YW1wIHRvL2Zyb20gd2l0aC93aXRob3V0IHRpbWUgem9uZSwgdGhlIFNRTApTdGFu ZGFyZCBzcGVjaWZpZXMgYW4gQVQgTE9DQUwgdmFyaWFudCBvZiBBVCBUSU1FIFpPTkUgd2hp Y2ggdXNlcyB0aGUKc2Vzc2lvbidzIHRpbWUgem9uZS4KLS0tCiBkb2Mvc3JjL3NnbWwvZnVu Yy5zZ21sICAgICAgICAgICAgICAgICAgICB8IDEzICsrKysrKysKIHNyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgICAgICAgICAgICAgICAgIHwgIDcgKysrKwogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgfCAgOSArKysrKwogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3RpbWVzdGFtcC5jICAgICAgICAgfCAyMCArKysrKysrKysrCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICB8ICA2ICsrKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC90aW1lc3RhbXB0ei5vdXQgfCA0NyArKysrKysrKysrKysrKysrKysr KysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGltZXN0YW1wdHouc3FsICAgICAgfCAyMSAr KysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwK aW5kZXggZjFhZDY0YzNkNi4uNmJjNjE3MDVhOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2Z1bmMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0xMDYxOSwxMiAr MTA2MTksMTYgQEAgU0VMRUNUIGRhdGVfYmluKCcxNSBtaW51dGVzJywgVElNRVNUQU1QICcy MDIwLTAyLTExIDE1OjQ0OjE3JywgVElNRVNUQU1QICcyMDAxLTAKICAgIDwvaW5kZXh0ZXJt PgogCiAgICA8aW5kZXh0ZXJtPgogICAgIDxwcmltYXJ5PkFUIFRJTUUgWk9ORTwvcHJpbWFy eT4KICAgIDwvaW5kZXh0ZXJtPgogCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PkFU IExPQ0FMPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKICAgIDxwYXJhPgogICAgIFRo ZSA8bGl0ZXJhbD5BVCBUSU1FIFpPTkU8L2xpdGVyYWw+IG9wZXJhdG9yIGNvbnZlcnRzIHRp bWUKICAgICBzdGFtcCA8ZW1waGFzaXM+d2l0aG91dDwvZW1waGFzaXM+IHRpbWUgem9uZSB0 by9mcm9tCiAgICAgdGltZSBzdGFtcCA8ZW1waGFzaXM+d2l0aDwvZW1waGFzaXM+IHRpbWUg em9uZSwgYW5kCiAgICAgPHR5cGU+dGltZSB3aXRoIHRpbWUgem9uZTwvdHlwZT4gdmFsdWVz IHRvIGRpZmZlcmVudCB0aW1lCiAgICAgem9uZXMuIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9u cy1kYXRldGltZS16b25lY29udmVydC10YWJsZSIvPiBzaG93cyBpdHMKQEAgLTEwNzA3LDI0 ICsxMDcxMSwzMyBAQCBTRUxFQ1QgZGF0ZV9iaW4oJzE1IG1pbnV0ZXMnLCBUSU1FU1RBTVAg JzIwMjAtMDItMTEgMTU6NDQ6MTcnLCBUSU1FU1RBTVAgJzIwMDEtMAogICAgIEluIHRoZSB0 ZXh0IGNhc2UsIGEgdGltZSB6b25lIG5hbWUgY2FuIGJlIHNwZWNpZmllZCBpbiBhbnkgb2Yg dGhlIHdheXMKICAgICBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0iZGF0YXR5cGUtdGlt ZXpvbmVzIi8+LgogICAgIFRoZSBpbnRlcnZhbCBjYXNlIGlzIG9ubHkgdXNlZnVsIGZvciB6 b25lcyB0aGF0IGhhdmUgZml4ZWQgb2Zmc2V0cyBmcm9tCiAgICAgVVRDLCBzbyBpdCBpcyBu b3QgdmVyeSBjb21tb24gaW4gcHJhY3RpY2UuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgor ICAgIFRoZSBzeW50YXggPGxpdGVyYWw+QVQgTE9DQUw8L2xpdGVyYWw+IG1heSBiZSB1c2Vk IGFzIHNob3J0aGFuZCBmb3IgPGxpdGVyYWw+QVQgVElNRSBaT05FCisgICAgPHJlcGxhY2Vh YmxlPmxvY2FsPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+LCB3aGVyZSA8cmVwbGFjZWFibGU+ bG9jYWw8L3JlcGxhY2VhYmxlPiBpcyB0aGUKKyAgICBzZXNzaW9uJ3MgPHZhcm5hbWU+VGlt ZVpvbmU8L3Zhcm5hbWU+IHZhbHVlLgorICAgPC9wYXJhPgorCiAgICA8cGFyYT4KICAgICBF eGFtcGxlcyAoYXNzdW1pbmcgdGhlIGN1cnJlbnQgPHhyZWYgbGlua2VuZD0iZ3VjLXRpbWV6 b25lIi8+IHNldHRpbmcKICAgICBpcyA8bGl0ZXJhbD5BbWVyaWNhL0xvc19BbmdlbGVzPC9s aXRlcmFsPik6CiA8c2NyZWVuPgogU0VMRUNUIFRJTUVTVEFNUCAnMjAwMS0wMi0xNiAyMDoz ODo0MCcgQVQgVElNRSBaT05FICdBbWVyaWNhL0RlbnZlcic7CiA8bGluZWFubm90YXRpb24+ UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1dD4yMDAxLTAyLTE2IDE5 OjM4OjQwLTA4PC9jb21wdXRlcm91dHB1dD4KIAogU0VMRUNUIFRJTUVTVEFNUCBXSVRIIFRJ TUUgWk9ORSAnMjAwMS0wMi0xNiAyMDozODo0MC0wNScgQVQgVElNRSBaT05FICdBbWVyaWNh L0RlbnZlcic7CiA8bGluZWFubm90YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxj b21wdXRlcm91dHB1dD4yMDAxLTAyLTE2IDE4OjM4OjQwPC9jb21wdXRlcm91dHB1dD4KIAog U0VMRUNUIFRJTUVTVEFNUCAnMjAwMS0wMi0xNiAyMDozODo0MCcgQVQgVElNRSBaT05FICdB c2lhL1Rva3lvJyBBVCBUSU1FIFpPTkUgJ0FtZXJpY2EvQ2hpY2Fnbyc7CiA8bGluZWFubm90 YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1dD4yMDAxLTAy LTE2IDA1OjM4OjQwPC9jb21wdXRlcm91dHB1dD4KKworU0VMRUNUIFRJTUVTVEFNUCBXSVRI IFRJTUUgWk9ORSAnMjAwMS0wMi0xNiAyMDozODo0MC0wNScgQVQgTE9DQUw7Cis8bGluZWFu bm90YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1dD4yMDAx LTAyLTE2IDE3OjM4OjQwPC9jb21wdXRlcm91dHB1dD4KIDwvc2NyZWVuPgogICAgIFRoZSBm aXJzdCBleGFtcGxlIGFkZHMgYSB0aW1lIHpvbmUgdG8gYSB2YWx1ZSB0aGF0IGxhY2tzIGl0 LCBhbmQKICAgICBkaXNwbGF5cyB0aGUgdmFsdWUgdXNpbmcgdGhlIGN1cnJlbnQgPHZhcm5h bWU+VGltZVpvbmU8L3Zhcm5hbWU+CiAgICAgc2V0dGluZy4gIFRoZSBzZWNvbmQgZXhhbXBs ZSBzaGlmdHMgdGhlIHRpbWUgc3RhbXAgd2l0aCB0aW1lIHpvbmUgdmFsdWUKICAgICB0byB0 aGUgc3BlY2lmaWVkIHRpbWUgem9uZSwgYW5kIHJldHVybnMgdGhlIHZhbHVlIHdpdGhvdXQg YSB0aW1lIHpvbmUuCiAgICAgVGhpcyBhbGxvd3Mgc3RvcmFnZSBhbmQgZGlzcGxheSBvZiB2 YWx1ZXMgZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGU1 NmNiZTc3Y2IuLjUwZWQ1MDRlNWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTQ1MDUsMTIgKzE0 NTA1LDE5IEBAIGFfZXhwcjoJCWNfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCXsK IAkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlRnVuY0NhbGwoU3lzdGVtRnVuY05hbWUoInRpbWV6 b25lIiksCiAJCQkJCQkJCQkJCSAgIGxpc3RfbWFrZTIoJDUsICQxKSwKIAkJCQkJCQkJCQkJ ICAgQ09FUkNFX1NRTF9TWU5UQVgsCiAJCQkJCQkJCQkJCSAgIEAyKTsKIAkJCQl9CisJCQl8 IGFfZXhwciBBVCBMT0NBTAkJCQkJCSVwcmVjIEFUCisJCQkJeworCQkJCQkkJCA9IChOb2Rl ICopIG1ha2VGdW5jQ2FsbChTeXN0ZW1GdW5jTmFtZSgidGltZXpvbmUiKSwKKwkJCQkJCQkJ CQkJICAgbGlzdF9tYWtlMSgkMSksCisJCQkJCQkJCQkJCSAgIENPRVJDRV9TUUxfU1lOVEFY LAorCQkJCQkJCQkJCQkgICAtMSk7CisJCQkJfQogCQkvKgogCQkgKiBUaGVzZSBvcGVyYXRv cnMgbXVzdCBiZSBjYWxsZWQgb3V0IGV4cGxpY2l0bHkgaW4gb3JkZXIgdG8gbWFrZSB1c2UK IAkJICogb2YgYmlzb24ncyBhdXRvbWF0aWMgb3BlcmF0b3ItcHJlY2VkZW5jZSBoYW5kbGlu Zy4gIEFsbCBvdGhlcgogCQkgKiBvcGVyYXRvciBuYW1lcyBhcmUgaGFuZGxlZCBieSB0aGUg Z2VuZXJpYyBwcm9kdWN0aW9ucyB1c2luZyAiT3AiLAogCQkgKiBiZWxvdzsgYW5kIGFsbCB0 aG9zZSBvcGVyYXRvcnMgd2lsbCBoYXZlIHRoZSBzYW1lIHByZWNlZGVuY2UuCiAJCSAqCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggNDQyMjA1MzgyZS4uOWQxYjBiMTNi MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTAzNDQsMTIgKzEwMzQ0 LDIxIEBAIGdldF9mdW5jX3NxbF9zeW50YXgoRnVuY0V4cHIgKmV4cHIsIGRlcGFyc2VfY29u dGV4dCAqY29udGV4dCkKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIEFUIFRJ TUUgWk9ORSAiKTsKIAkJCWdldF9ydWxlX2V4cHJfcGFyZW4oKE5vZGUgKikgbGluaXRpYWwo ZXhwci0+YXJncyksIGNvbnRleHQsIGZhbHNlLAogCQkJCQkJCQkoTm9kZSAqKSBleHByKTsK IAkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKIAkJCXJldHVybiB0cnVlOwog CisJCWNhc2UgRl9USU1FWk9ORV9USU1FU1RBTVA6CisJCWNhc2UgRl9USU1FWk9ORV9USU1F U1RBTVBUWjoKKwkJCS8qIEFUIExPQ0FMICovCisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihi dWYsICcoJyk7CisJCQlnZXRfcnVsZV9leHByX3BhcmVuKChOb2RlICopIGxpbml0aWFsKGV4 cHItPmFyZ3MpLCBjb250ZXh0LCBmYWxzZSwKKwkJCQkJCQkJKE5vZGUgKikgZXhwcik7CisJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBBVCBMT0NBTCkiKTsKKwkJCXJldHVy biB0cnVlOworCiAJCWNhc2UgRl9PVkVSTEFQU19USU1FU1RBTVBUWl9JTlRFUlZBTF9USU1F U1RBTVBUWl9JTlRFUlZBTDoKIAkJY2FzZSBGX09WRVJMQVBTX1RJTUVTVEFNUFRaX0lOVEVS VkFMX1RJTUVTVEFNUFRaX1RJTUVTVEFNUFRaOgogCQljYXNlIEZfT1ZFUkxBUFNfVElNRVNU QU1QVFpfVElNRVNUQU1QVFpfVElNRVNUQU1QVFpfSU5URVJWQUw6CiAJCWNhc2UgRl9PVkVS TEFQU19USU1FU1RBTVBUWl9USU1FU1RBTVBUWl9USU1FU1RBTVBUWl9USU1FU1RBTVBUWjoK IAkJY2FzZSBGX09WRVJMQVBTX1RJTUVTVEFNUF9JTlRFUlZBTF9USU1FU1RBTVBfSU5URVJW QUw6CiAJCWNhc2UgRl9PVkVSTEFQU19USU1FU1RBTVBfSU5URVJWQUxfVElNRVNUQU1QX1RJ TUVTVEFNUDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwppbmRleCAwZTUwYWFlYzVh Li5lMTcyZTkwNjE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0 YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC01OTE4 LDYgKzU5MTgsMjYgQEAgZ2VuZXJhdGVfc2VyaWVzX3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9O X0FSR1MpCiAKIERhdHVtCiBnZW5lcmF0ZV9zZXJpZXNfdGltZXN0YW1wdHpfYXRfem9uZShQ R19GVU5DVElPTl9BUkdTKQogewogCXJldHVybiBnZW5lcmF0ZV9zZXJpZXNfdGltZXN0YW1w dHpfaW50ZXJuYWwoZmNpbmZvKTsKIH0KKworLyogdGltZXN0YW1wX2F0X2xvY2FsKCkKKyAq IHRpbWVzdGFtcHR6X2F0X2xvY2FsKCkKKyAqCisgKiBUaGUgcmVncmVzc2lvbiB0ZXN0cyBk byBub3QgbGlrZSB0d28gZnVuY3Rpb25zIHdpdGggdGhlIHNhbWUgcHJvYXJncyBhbmQKKyAq IHByb3NyYyBidXQgZGlmZmVyZW50IHByb25hbWUsIGJ1dCB0aGUgZ3JhbW1hciBmb3IgQVQg TE9DQUwgbmVlZHMgYW4KKyAqIG92ZXJsb2FkZWQgbmFtZSB0byBoYW5kbGUgYm90aCB0eXBl cyBvZiB0aW1lc3RhbXAsIHNvIHdlIG1ha2Ugc2ltcGxlCisgKiB3cmFwcGVycyBmb3IgaXQu CisgKi8KK0RhdHVtCit0aW1lc3RhbXBfYXRfbG9jYWwoUEdfRlVOQ1RJT05fQVJHUykKK3sK KwlyZXR1cm4gdGltZXN0YW1wX3RpbWVzdGFtcHR6KGZjaW5mbyk7Cit9CisKK0RhdHVtCit0 aW1lc3RhbXB0el9hdF9sb2NhbChQR19GVU5DVElPTl9BUkdTKQoreworCXJldHVybiB0aW1l c3RhbXB0el90aW1lc3RhbXAoZmNpbmZvKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CmluZGV4IGYwYjdiOWNiZDguLjIxNjQ1YjYzYTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdApAQCAtMjMxNiwxMiArMjMxNiwxOCBAQAogeyBvaWQgPT4gJzExNTgnLCBkZXNjciA9 PiAnY29udmVydCBVTklYIGVwb2NoIHRvIHRpbWVzdGFtcHR6JywKICAgcHJvbmFtZSA9PiAn dG9fdGltZXN0YW1wJywgcHJvcmV0dHlwZSA9PiAndGltZXN0YW1wdHonLAogICBwcm9hcmd0 eXBlcyA9PiAnZmxvYXQ4JywgcHJvc3JjID0+ICdmbG9hdDhfdGltZXN0YW1wdHonIH0sCiB7 IG9pZCA9PiAnMTE1OScsIGRlc2NyID0+ICdhZGp1c3QgdGltZXN0YW1wIHRvIG5ldyB0aW1l IHpvbmUnLAogICBwcm9uYW1lID0+ICd0aW1lem9uZScsIHByb3JldHR5cGUgPT4gJ3RpbWVz dGFtcCcsCiAgIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRpbWVzdGFtcHR6JywgcHJvc3JjID0+ ICd0aW1lc3RhbXB0el96b25lJyB9LAoreyBvaWQgPT4gJzkxNTknLCBkZXNjciA9PiAnYWRq dXN0IHRpbWVzdGFtcCB0byBsb2NhbCB0aW1lIHpvbmUnLAorICBwcm9uYW1lID0+ICd0aW1l em9uZScsIHByb3JldHR5cGUgPT4gJ3RpbWVzdGFtcCcsCisgIHByb2FyZ3R5cGVzID0+ICd0 aW1lc3RhbXB0eicsIHByb3NyYyA9PiAndGltZXN0YW1wdHpfYXRfbG9jYWwnIH0sCit7IG9p ZCA9PiAnOTE2MCcsIGRlc2NyID0+ICdhZGp1c3QgdGltZXN0YW1wIHRvIGxvY2FsIHRpbWUg em9uZScsCisgIHByb25hbWUgPT4gJ3RpbWV6b25lJywgcHJvcmV0dHlwZSA9PiAndGltZXN0 YW1wdHonLAorICBwcm9hcmd0eXBlcyA9PiAndGltZXN0YW1wJywgcHJvc3JjID0+ICd0aW1l c3RhbXBfYXRfbG9jYWwnIH0sCiAKIHsgb2lkID0+ICcxMTYwJywgZGVzY3IgPT4gJ0kvTycs CiAgIHByb25hbWUgPT4gJ2ludGVydmFsX2luJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9y ZXR0eXBlID0+ICdpbnRlcnZhbCcsCiAgIHByb2FyZ3R5cGVzID0+ICdjc3RyaW5nIG9pZCBp bnQ0JywgcHJvc3JjID0+ICdpbnRlcnZhbF9pbicgfSwKIHsgb2lkID0+ICcxMTYxJywgZGVz Y3IgPT4gJ0kvTycsCiAgIHByb25hbWUgPT4gJ2ludGVydmFsX291dCcsIHByb3ZvbGF0aWxl ID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnY3N0cmluZycsCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3RpbWVzdGFtcHR6Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdGltZXN0YW1wdHoub3V0CmluZGV4IDBkZDJmZTJjODIuLmFlNTVlNjMwNzcg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGltZXN0YW1wdHoub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGltZXN0YW1wdHoub3V0CkBAIC0z MTMyLDEyICszMTMyLDU5IEBAIFNFTEVDVCAnMjAxNC0xMC0yNSAyMjowMDowMSBVVEMnOjp0 aW1lc3RhbXB0eiBBVCBUSU1FIFpPTkUgJ01TSyc7CiBTRUxFQ1QgJzIwMTQtMTAtMjUgMjM6 MDA6MDAgVVRDJzo6dGltZXN0YW1wdHogQVQgVElNRSBaT05FICdNU0snOwogICAgICAgICAg dGltZXpvbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU3VuIE9j dCAyNiAwMjowMDowMCAyMDE0CiAoMSByb3cpCiAKKy0tCistLSBUZXN0IExPQ0FMIHRpbWUg em9uZQorLS0KK0JFR0lOOworU0VUIExPQ0FMIFRJTUUgWk9ORSAnRXVyb3BlL1BhcmlzJzsK K1ZBTFVFUyAoQ0FTVCgnMTk3OC0wNy0wNyAxOTozOCBBbWVyaWNhL05ld19Zb3JrJyBBUyBU SU1FU1RBTVAgV0lUSCBUSU1FIFpPTkUpIEFUIExPQ0FMKTsKKyAgICAgICAgIGNvbHVtbjEg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNhdCBKdWwgMDggMDE6 Mzg6MDAgMTk3OAorKDEgcm93KQorCitWQUxVRVMgKFRJTUVTVEFNUCAnMTk3OC0wNy0wNyAx OTozOCcgQVQgTE9DQUwpOworICAgICAgICAgICAgY29sdW1uMSAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZyaSBKdWwgMDcgMTk6Mzg6MDAgMTk3 OCBDRVNUCisoMSByb3cpCisKK1NFVCBMT0NBTCBUSU1FIFpPTkUgJ0F1c3RyYWxpYS9TeWRu ZXknOworVkFMVUVTIChDQVNUKCcxOTc4LTA3LTA3IDE5OjM4IEFtZXJpY2EvTmV3X1lvcmsn IEFTIFRJTUVTVEFNUCBXSVRIIFRJTUUgWk9ORSkgQVQgTE9DQUwpOworICAgICAgICAgY29s dW1uMSAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2F0IEp1bCAw OCAwOTozODowMCAxOTc4CisoMSByb3cpCisKK1ZBTFVFUyAoVElNRVNUQU1QICcxOTc4LTA3 LTA3IDE5OjM4JyBBVCBMT0NBTCk7CisgICAgICAgICAgICBjb2x1bW4xICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRnJpIEp1bCAwNyAxOTozODow MCAxOTc4IEFFU1QKKygxIHJvdykKKworUkVTRVQgVElNRSBaT05FOworQ1JFQVRFIFZJRVcg bG9jYWxfdGltZV96b25lIEFTCisgICAgVkFMVUVTIChDQVNUKCcxOTc4LTA3LTA3IDE5OjM4 IEFtZXJpY2EvTmV3X1lvcmsnIEFTIFRJTUVTVEFNUCBXSVRIIFRJTUUgWk9ORSkgQVQgTE9D QUwsCisgICAgICAgICAgICBDQVNUKCcxOTc4LTA3LTA3IDE5OjM4IEFtZXJpY2EvTmV3X1lv cmsnIEFTIFRJTUVTVEFNUCBXSVRIIFRJTUUgWk9ORSkgQVQgVElNRSBaT05FIGN1cnJlbnRf c2V0dGluZygnVGltZVpvbmUnKSwKKyAgICAgICAgICAgIFRJTUVTVEFNUCAnMTk3OC0wNy0w NyAxOTozOCcgQVQgTE9DQUwsCisgICAgICAgICAgICBUSU1FU1RBTVAgJzE5NzgtMDctMDcg MTk6MzgnIEFUIFRJTUUgWk9ORSBjdXJyZW50X3NldHRpbmcoJ1RpbWVab25lJykpOworXHN2 IGxvY2FsX3RpbWVfem9uZQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMubG9jYWxf dGltZV96b25lIEFTCisgVkFMVUVTICgoJ0ZyaSBKdWwgMDcgMTY6Mzg6MDAgMTk3OCBQRFQn Ojp0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgQVQgTE9DQUwpLCgnRnJpIEp1bCAwNyAxNjoz ODowMCAxOTc4IFBEVCc6OnRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSBBVCBUSU1FIFpPTkUg Y3VycmVudF9zZXR0aW5nKCdUaW1lWm9uZSc6OnRleHQpKSwoJ0ZyaSBKdWwgMDcgMTk6Mzg6 MDAgMTk3OCc6OnRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSBBVCBMT0NBTCksKCdGcmkg SnVsIDA3IDE5OjM4OjAwIDE5NzgnOjp0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgQVQg VElNRSBaT05FIGN1cnJlbnRfc2V0dGluZygnVGltZVpvbmUnOjp0ZXh0KSkpCitUQUJMRSBs b2NhbF90aW1lX3pvbmU7CisgICAgICAgICBjb2x1bW4xICAgICAgICAgIHwgICAgICAgICBj b2x1bW4yICAgICAgICAgIHwgICAgICAgICAgIGNvbHVtbjMgICAgICAgICAgICB8ICAgICAg ICAgICBjb2x1bW40ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRnJpIEp1bCAwNyAxNjozODow MCAxOTc4IHwgRnJpIEp1bCAwNyAxNjozODowMCAxOTc4IHwgRnJpIEp1bCAwNyAxOTozODow MCAxOTc4IFBEVCB8IEZyaSBKdWwgMDcgMTk6Mzg6MDAgMTk3OCBQRFQKKygxIHJvdykKKwor RFJPUCBWSUVXIGxvY2FsX3RpbWVfem9uZTsKK0NPTU1JVDsKIC0tCiAtLSBUZXN0IHRoYXQg QVQgVElNRSBaT05FIGlzbid0IG1pc29wdGltaXplZCB3aGVuIHVzaW5nIGFuIGluZGV4IChi dWcgIzE0NTA0KQogLS0KIGNyZWF0ZSB0ZW1wIHRhYmxlIHRtcHR6IChmMSB0aW1lc3RhbXB0 eiBwcmltYXJ5IGtleSk7CiBpbnNlcnQgaW50byB0bXB0eiB2YWx1ZXMgKCcyMDE3LTAxLTE4 IDAwOjAwKzAwJyk7CiBleHBsYWluIChjb3N0cyBvZmYpCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC90aW1lc3RhbXB0ei5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90 aW1lc3RhbXB0ei5zcWwKaW5kZXggNjliMzZkMDQyMC4uMTFkOWYwNWI2NCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGltZXN0YW1wdHouc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3RpbWVzdGFtcHR6LnNxbApAQCAtNjA4LDEyICs2MDgsMzMgQEAgU0VM RUNUICcyMDExLTAzLTI3IDAwOjAwOjAwIFVUQyc6OnRpbWVzdGFtcHR6IEFUIFRJTUUgWk9O RSAnTVNLJzsKIFNFTEVDVCAnMjAxNC0xMC0yNSAyMTowMDowMCBVVEMnOjp0aW1lc3RhbXB0 eiBBVCBUSU1FIFpPTkUgJ01TSyc7CiBTRUxFQ1QgJzIwMTQtMTAtMjUgMjE6NTk6NTkgVVRD Jzo6dGltZXN0YW1wdHogQVQgVElNRSBaT05FICdNU0snOwogU0VMRUNUICcyMDE0LTEwLTI1 IDIyOjAwOjAwIFVUQyc6OnRpbWVzdGFtcHR6IEFUIFRJTUUgWk9ORSAnTVNLJzsKIFNFTEVD VCAnMjAxNC0xMC0yNSAyMjowMDowMSBVVEMnOjp0aW1lc3RhbXB0eiBBVCBUSU1FIFpPTkUg J01TSyc7CiBTRUxFQ1QgJzIwMTQtMTAtMjUgMjM6MDA6MDAgVVRDJzo6dGltZXN0YW1wdHog QVQgVElNRSBaT05FICdNU0snOwogCistLQorLS0gVGVzdCBMT0NBTCB0aW1lIHpvbmUKKy0t CitCRUdJTjsKK1NFVCBMT0NBTCBUSU1FIFpPTkUgJ0V1cm9wZS9QYXJpcyc7CitWQUxVRVMg KENBU1QoJzE5NzgtMDctMDcgMTk6MzggQW1lcmljYS9OZXdfWW9yaycgQVMgVElNRVNUQU1Q IFdJVEggVElNRSBaT05FKSBBVCBMT0NBTCk7CitWQUxVRVMgKFRJTUVTVEFNUCAnMTk3OC0w Ny0wNyAxOTozOCcgQVQgTE9DQUwpOworU0VUIExPQ0FMIFRJTUUgWk9ORSAnQXVzdHJhbGlh L1N5ZG5leSc7CitWQUxVRVMgKENBU1QoJzE5NzgtMDctMDcgMTk6MzggQW1lcmljYS9OZXdf WW9yaycgQVMgVElNRVNUQU1QIFdJVEggVElNRSBaT05FKSBBVCBMT0NBTCk7CitWQUxVRVMg KFRJTUVTVEFNUCAnMTk3OC0wNy0wNyAxOTozOCcgQVQgTE9DQUwpOworUkVTRVQgVElNRSBa T05FOworQ1JFQVRFIFZJRVcgbG9jYWxfdGltZV96b25lIEFTCisgICAgVkFMVUVTIChDQVNU KCcxOTc4LTA3LTA3IDE5OjM4IEFtZXJpY2EvTmV3X1lvcmsnIEFTIFRJTUVTVEFNUCBXSVRI IFRJTUUgWk9ORSkgQVQgTE9DQUwsCisgICAgICAgICAgICBDQVNUKCcxOTc4LTA3LTA3IDE5 OjM4IEFtZXJpY2EvTmV3X1lvcmsnIEFTIFRJTUVTVEFNUCBXSVRIIFRJTUUgWk9ORSkgQVQg VElNRSBaT05FIGN1cnJlbnRfc2V0dGluZygnVGltZVpvbmUnKSwKKyAgICAgICAgICAgIFRJ TUVTVEFNUCAnMTk3OC0wNy0wNyAxOTozOCcgQVQgTE9DQUwsCisgICAgICAgICAgICBUSU1F U1RBTVAgJzE5NzgtMDctMDcgMTk6MzgnIEFUIFRJTUUgWk9ORSBjdXJyZW50X3NldHRpbmco J1RpbWVab25lJykpOworXHN2IGxvY2FsX3RpbWVfem9uZQorVEFCTEUgbG9jYWxfdGltZV96 b25lOworRFJPUCBWSUVXIGxvY2FsX3RpbWVfem9uZTsKK0NPTU1JVDsKKwogLS0KIC0tIFRl c3QgdGhhdCBBVCBUSU1FIFpPTkUgaXNuJ3QgbWlzb3B0aW1pemVkIHdoZW4gdXNpbmcgYW4g aW5kZXggKGJ1ZyAjMTQ1MDQpCiAtLQogY3JlYXRlIHRlbXAgdGFibGUgdG1wdHogKGYxIHRp bWVzdGFtcHR6IHByaW1hcnkga2V5KTsKIGluc2VydCBpbnRvIHRtcHR6IHZhbHVlcyAoJzIw MTctMDEtMTggMDA6MDArMDAnKTsKIGV4cGxhaW4gKGNvc3RzIG9mZikKCmJhc2UtY29tbWl0 OiBhZjIzMjRmYWJmMDAyMGU0NjRiMDI2OGJlOWVmMDNlOGY0NmVkODRiCi0tIAoyLjM0LjEK Cg== --------------6hPar6FVAb9SuYAExsCkrb7i--