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 1peybo-0000ca-Bt for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Mar 2023 13:34:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1peybn-0007yM-6K for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Mar 2023 13:34:31 +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 1peybm-0007xl-Qf for pgsql-hackers@lists.postgresql.org; Wed, 22 Mar 2023 13:34:30 +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 1peybi-0004iL-2s for pgsql-hackers@postgresql.org; Wed, 22 Mar 2023 13:34:30 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id 26EB960287; Wed, 22 Mar 2023 22:34:20 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.8 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_7036ceff2ce4df74ebd59a6071913350" Content-Transfer-Encoding: 7bit Date: Wed, 22 Mar 2023 22:34:20 +0900 From: torikoshia To: Daniel Gustafsson , Damir Belyalov Cc: PostgreSQL Hackers , Andres Freund , Danil Anisimow , Nikita Malakhov , a.lepikhov@postgrespro.ru, tgl@sss.pgh.pa.us Subject: Re: POC PATCH: copy from ... exceptions to: (was Re: VLDB Features) In-Reply-To: <9a94e684d6528dff74de5959e97032f3@oss.nttdata.com> References: <686e46d6718f9535bc39fac7cad7408b@oss.nttdata.com> <769423519e16d18a1e7611c6931da58b@oss.nttdata.com> <20230205233723.xw5z5zmeyc57ezq3@alap3.anarazel.de> <2587470.1675660337@sss.pgh.pa.us> <483E1B59-4A80-450B-8685-7CC12762FD5A@anarazel.de> <2592557.1675663234@sss.pgh.pa.us> <39143e83571d59dfc04c75707fa0ea5a@oss.nttdata.com> <0DE0602F-CC12-40ED-B259-3AB91FB02C3B@yesql.se> <8ad8492ff9fae3481d87c7aab4e0aed0@oss.nttdata.com> <9a94e684d6528dff74de5959e97032f3@oss.nttdata.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <8e5c596e47435e3b37b7a751ebcd9569@oss.nttdata.com> X-Sender: torikoshia@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_7036ceff2ce4df74ebd59a6071913350 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2023-03-17 21:23, torikoshia wrote: > On 2023-03-07 18:09, Daniel Gustafsson wrote: >>> On 7 Mar 2023, at 09:35, Damir Belyalov wrote: >> >>> I felt just logging "Error: %ld" would make people wonder the meaning >>> of >>> the %ld. Logging something like ""Error: %ld data type errors were >>> found" might be clearer. >>> >>> Thanks. For more clearance change the message to: "Errors were found: >>> %". >> >> I'm not convinced that this adds enough clarity to assist the user. >> We also >> shouldn't use "error" in a WARNING log since the user has explicitly >> asked to >> skip rows on error, so it's not an error per se. > +1 > >> How about something like: >> >> ereport(WARNING, >> (errmsg("%ld rows were skipped due to data type >> incompatibility", cstate->ignored_errors), >> errhint("Skipped rows can be inspected in the database log >> for reprocessing."))); > Since skipped rows cannot be inspected in the log when > log_error_verbosity is set to terse, > it might be better without this errhint. Removed errhint. Modified some codes since v3 couldn't be applied HEAD anymore. Also modified v3 patch as below: > 65 + if (cstate->opts.ignore_datatype_errors) > 66 + cstate->ignored_errors = 0; > 67 + It seems not necessary since cstate is initialized by palloc0() in BeginCopyFrom(). > 134 + ereport(LOG, > 135 + errmsg("%s", > cstate->escontext.error_data->message)); > 136 + > 137 + return true; Since LOG means 'Reports information of interest to administrators' according to the manual[1], datatype error should not be logged as LOG. I put it back in WARNING. [1] https://www.postgresql.org/docs/current/runtime-config-logging.html#RUNTIME-CONFIG-SEVERITY-LEVELS -- Regards, -- Atsushi Torikoshi NTT DATA CORPORATION --=_7036ceff2ce4df74ebd59a6071913350 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v4-0001-Add-COPY-option-IGNORE_DATATYPE_ERRORS.patch Content-Disposition: attachment; filename=v4-0001-Add-COPY-option-IGNORE_DATATYPE_ERRORS.patch; size=11012 RnJvbSA2NzY0ZDdlMGYyMWNhMjY2ZDc0MjZjYjkyMmZkMDBlNTEzOGVjODU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFdlZCwgMjIgTWFyIDIwMjMgMjI6MDA6MTUgKzA5MDAKU3ViamVjdDog W1BBVENIIHY0XSBBZGQgbmV3IENPUFkgb3B0aW9uIElHTk9SRV9EQVRBVFlQRV9FUlJPUlMKCkFk ZCBuZXcgQ09QWSBvcHRpb24gSUdOT1JFX0RBVEFUWVBFX0VSUk9SUy4KCkN1cnJlbnRseSBlbnRp cmUgQ09QWSBmYWlscyBldmVuIHdoZW4gdGhlcmUgaXMgb25lIHVuZXhwZWN0ZWQKZGF0YSByZWdh cmRpbmcgZGF0YSB0eXBlIG9yIHJhbmdlLgpJR05PUkVfREFUQVRZUEVfRVJST1JTIGlnbm9yZXMg dGhlc2UgZXJyb3JzIGFuZCBza2lwcyB0aGVtIGFuZApDT1BZIGRhdGEgd2hpY2ggZG9uJ3QgY29u dGFpbiBwcm9ibGVtLgoKVGhpcyBwYXRjaCB1c2VzIHRoZSBzb2Z0IGVycm9yIGhhbmRsaW5nIGlu ZnJhc3RydWN0dXJlLCB3aGljaAppcyBpbnRyb2R1Y2VkIGJ5IGQ5ZjdmNWQzMmYyMC4KCkF1dGhv cjogRGFtaXIgQmVseWFsb3YsIEF0c3VzaGkgVG9yaWtvc2hpCgotLS0KIGRvYy9zcmMvc2dtbC9y ZWYvY29weS5zZ21sICAgICAgICAgICAgICAgfCAxMiArKysrKysrKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2NvcHkuYyAgICAgICAgICAgICAgfCAgOCArKysrKysrKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29weWZyb20uYyAgICAgICAgICB8IDIwICsrKysrKysrKysrKysrKysrKysrCiBz cmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMgICAgIHwgMTkgKysrKysrKysrKysr KysrLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICB8ICA4ICsr KysrKystCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmggICAgICAgICAgICAgIHwgIDEgKwog c3JjL2luY2x1ZGUvY29tbWFuZHMvY29weWZyb21faW50ZXJuYWwuaCB8ICAzICsrKwogc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICB8ICAxICsKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29weTIub3V0ICAgICAgfCAxNSArKysrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbCAgICAgICAgICAgfCAxMiArKysrKysrKysrKysKIDEwIGZp bGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dt bAppbmRleCA1ZTU5MWVkMmU2Li4xNjhiMWMwNWQ5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmL2NvcHkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbApAQCAtMzQsNiAr MzQsNyBAQCBDT1BZIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8 L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlCiAKICAgICBGT1JNQVQgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmZvcm1hdF9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBGUkVFWkUg WyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF0K KyAgICBJR05PUkVfREFUQVRZUEVfRVJST1JTIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdCiAgICAgREVMSU1JVEVSICc8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZGVsaW1pdGVyX2NoYXJhY3RlcjwvcmVwbGFjZWFibGU+JwogICAg IE5VTEwgJzxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udWxsX3N0cmluZzwvcmVwbGFj ZWFibGU+JwogICAgIEhFQURFUiBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5ib29s ZWFuPC9yZXBsYWNlYWJsZT4gfCBNQVRDSCBdCkBAIC0yMzQsNiArMjM1LDE3IEBAIENPUFkgeyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsg KCA8cmVwbGFjZWFibGUKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SUdOT1JFX0RBVEFUWVBFX0VSUk9S UzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERy b3BzIHJvd3MgdGhhdCBjb250YWluIG1hbGZvcm1lZCBkYXRhIHdoaWxlIGNvcHlpbmcuIFRoZXNl IGFyZSByb3dzCisgICAgICB3aXRoIGNvbHVtbnMgd2hlcmUgdGhlIGRhdGEgdHlwZSdzIGlucHV0 LWZ1bmN0aW9uIHJhaXNlcyBhbiBlcnJvci4KKyAgICAgIE91dHB1dHMgd2FybmluZ3MgYWJvdXQg cm93cyB3aXRoIGluY29ycmVjdCBkYXRhIHRvIHN5c3RlbSBsb2dmaWxlLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5 PgogICAgIDx0ZXJtPjxsaXRlcmFsPkRFTElNSVRFUjwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxp c3RpdGVtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY29weS5jCmluZGV4IGYxNGZhZTMzMDguLjAyZDkxMWFiYmUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9jb3B5LmMKQEAgLTQxOSw2ICs0MTksNyBAQCBQcm9jZXNzQ29weU9wdGlvbnMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCWJvb2wJCWZvcm1hdF9zcGVjaWZpZWQgPSBmYWxzZTsKIAlib29sCQlm cmVlemVfc3BlY2lmaWVkID0gZmFsc2U7CiAJYm9vbAkJaGVhZGVyX3NwZWNpZmllZCA9IGZhbHNl OworCWJvb2wJCWlnbm9yZV9kYXRhdHlwZV9lcnJvcnNfc3BlY2lmaWVkID0gZmFsc2U7CiAJTGlz dENlbGwgICAqb3B0aW9uOwogCiAJLyogU3VwcG9ydCBleHRlcm5hbCB1c2UgZm9yIG9wdGlvbiBz YW5pdHkgY2hlY2tpbmcgKi8KQEAgLTQ1OCw2ICs0NTksMTMgQEAgUHJvY2Vzc0NvcHlPcHRpb25z KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWZyZWV6ZV9zcGVjaWZpZWQgPSB0cnVlOwogCQkJb3B0 c19vdXQtPmZyZWV6ZSA9IGRlZkdldEJvb2xlYW4oZGVmZWwpOwogCQl9CisJCWVsc2UgaWYgKHN0 cmNtcChkZWZlbC0+ZGVmbmFtZSwgImlnbm9yZV9kYXRhdHlwZV9lcnJvcnMiKSA9PSAwKQorCQl7 CisJCQlpZiAoaWdub3JlX2RhdGF0eXBlX2Vycm9yc19zcGVjaWZpZWQpCisJCQkJZXJyb3JDb25m bGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisJCQlpZ25vcmVfZGF0YXR5cGVfZXJyb3Jz X3NwZWNpZmllZCA9IHRydWU7CisJCQlvcHRzX291dC0+aWdub3JlX2RhdGF0eXBlX2Vycm9ycyA9 IGRlZkdldEJvb2xlYW4oZGVmZWwpOworCQl9CiAJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVm bmFtZSwgImRlbGltaXRlciIpID09IDApCiAJCXsKIAkJCWlmIChvcHRzX291dC0+ZGVsaW0pCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29weWZyb20uYwppbmRleCA4MGJjYTc5Y2QwLi44NWM0N2Y1NGIyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvcHlmcm9tLmMKQEAgLTk1Myw2ICs5NTMsNyBAQCBDb3B5RnJvbShDb3B5RnJvbVN0 YXRlIGNzdGF0ZSkKIAl7CiAJCVR1cGxlVGFibGVTbG90ICpteXNsb3Q7CiAJCWJvb2wJCXNraXBf dHVwbGU7CisJCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JTYXZlQ29udGV4 dH07CiAKIAkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKIApAQCAtOTg1LDkgKzk4NiwyOCBAQCBD b3B5RnJvbShDb3B5RnJvbVN0YXRlIGNzdGF0ZSkKIAogCQlFeGVjQ2xlYXJUdXBsZShteXNsb3Qp OwogCisJCWlmIChjc3RhdGUtPm9wdHMuaWdub3JlX2RhdGF0eXBlX2Vycm9ycykKKwkJeworCQkJ ZXNjb250ZXh0LmRldGFpbHNfd2FudGVkID0gdHJ1ZTsKKwkJCWNzdGF0ZS0+ZXNjb250ZXh0ID0g ZXNjb250ZXh0OworCQl9CisKIAkJLyogRGlyZWN0bHkgc3RvcmUgdGhlIHZhbHVlcy9udWxscyBh cnJheSBpbiB0aGUgc2xvdCAqLwogCQlpZiAoIU5leHRDb3B5RnJvbShjc3RhdGUsIGVjb250ZXh0 LCBteXNsb3QtPnR0c192YWx1ZXMsIG15c2xvdC0+dHRzX2lzbnVsbCkpCisJCXsKKwkJCWlmIChj c3RhdGUtPm9wdHMuaWdub3JlX2RhdGF0eXBlX2Vycm9ycyAmJiBjc3RhdGUtPmlnbm9yZWRfZXJy b3JzID4gMCkKKwkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQllcnJtc2coIiV6ZCByb3dzIHdl cmUgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJY3N0 YXRlLT5pZ25vcmVkX2Vycm9ycykpOwogCQkJYnJlYWs7CisJCX0KKworCQkvKiBTb2Z0IGVycm9y IG9jY3VyZWQsIHNraXAgdGhpcyB0dXBsZSAqLworCQlpZiAoY3N0YXRlLT5lc2NvbnRleHQuZXJy b3Jfb2NjdXJyZWQpCisJCXsKKwkJCUV4ZWNDbGVhclR1cGxlKG15c2xvdCk7CisJCQljb250aW51 ZTsKKwkJfQogCiAJCUV4ZWNTdG9yZVZpcnR1YWxUdXBsZShteXNsb3QpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9jb3B5ZnJvbXBhcnNlLmMKaW5kZXggMzg1MzkwMmExNi4uYjA2YzQ0ZTI5OCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYwpAQCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUg ImxpYnBxL3BxZm9ybWF0LmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRlICJt aXNjYWRtaW4uaCIKKyNpbmNsdWRlICJub2Rlcy9taXNjbm9kZXMuaCIKICNpbmNsdWRlICJwZ3N0 YXQuaCIKICNpbmNsdWRlICJwb3J0L3BnX2Jzd2FwLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKQEAgLTk1NiwxMCArOTU3LDIwIEBAIE5leHRDb3B5RnJvbShDb3B5RnJvbVN0YXRlIGNz dGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCQkJCXZhbHVlc1ttXSA9IEV4ZWNFdmFsRXhw cihkZWZleHByc1ttXSwgZWNvbnRleHQsICZudWxsc1ttXSk7CiAJCQl9CiAJCQllbHNlCi0JCQkJ dmFsdWVzW21dID0gSW5wdXRGdW5jdGlvbkNhbGwoJmluX2Z1bmN0aW9uc1ttXSwKLQkJCQkJCQkJ CQkJICBzdHJpbmcsCi0JCQkJCQkJCQkJCSAgdHlwaW9wYXJhbXNbbV0sCi0JCQkJCQkJCQkJCSAg YXR0LT5hdHR0eXBtb2QpOworCQkJCS8qIElmIElHTk9SRV9EQVRBVFlQRV9FUlJPUlMgaXMgZW5h YmxlZCBza2lwIHJvd3Mgd2l0aCBkYXRhdHlwZSBlcnJvcnMgKi8KKwkJCQlpZiAoIUlucHV0RnVu Y3Rpb25DYWxsU2FmZSgmaW5fZnVuY3Rpb25zW21dLAorCQkJCQkJCQkJCSAgIHN0cmluZywKKwkJ CQkJCQkJCQkgICB0eXBpb3BhcmFtc1ttXSwKKwkJCQkJCQkJCQkgICBhdHQtPmF0dHR5cG1vZCwK KwkJCQkJCQkJCQkgICAoTm9kZSAqKSAmY3N0YXRlLT5lc2NvbnRleHQsCisJCQkJCQkJCQkJICAg JnZhbHVlc1ttXSkpCisJCQkJeworCQkJCQljc3RhdGUtPmlnbm9yZWRfZXJyb3JzKys7CisKKwkJ CQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkJCWVycm1zZygiJXMiLCBjc3RhdGUtPmVzY29udGV4 dC5lcnJvcl9kYXRhLT5tZXNzYWdlKSk7CisJCQkJCXJldHVybiB0cnVlOworCQkJCX0KIAogCQkJ Y3N0YXRlLT5jdXJfYXR0bmFtZSA9IE5VTEw7CiAJCQljc3RhdGUtPmN1cl9hdHR2YWwgPSBOVUxM OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggZWZlODhjY2Y5ZC4uMjJiZjYzYjQyYiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC03MDEsNyArNzAxLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAogCUhBTkRMRVIgSEFW SU5HIEhFQURFUl9QIEhPTEQgSE9VUl9QCiAKLQlJREVOVElUWV9QIElGX1AgSUxJS0UgSU1NRURJ QVRFIElNTVVUQUJMRSBJTVBMSUNJVF9QIElNUE9SVF9QIElOX1AgSU5DTFVERQorCUlERU5USVRZ X1AgSUZfUCBJR05PUkVfREFUQVRZUEVfRVJST1JTIElMSUtFIElNTUVESUFURSBJTU1VVEFCTEUg SU1QTElDSVRfUCBJTVBPUlRfUCBJTl9QIElOQ0xVREUKIAlJTkNMVURJTkcgSU5DUkVNRU5UIElO REVOVCBJTkRFWCBJTkRFWEVTIElOSEVSSVQgSU5IRVJJVFMgSU5JVElBTExZIElOTElORV9QCiAJ SU5ORVJfUCBJTk9VVCBJTlBVVF9QIElOU0VOU0lUSVZFIElOU0VSVCBJTlNURUFEIElOVF9QIElO VEVHRVIKIAlJTlRFUlNFQ1QgSU5URVJWQUwgSU5UTyBJTlZPS0VSIElTIElTTlVMTCBJU09MQVRJ T04KQEAgLTMzNzgsNiArMzM3OCwxMCBAQCBjb3B5X29wdF9pdGVtOgogCQkJCXsKIAkJCQkJJCQg PSBtYWtlRGVmRWxlbSgiZnJlZXplIiwgKE5vZGUgKikgbWFrZUJvb2xlYW4odHJ1ZSksIEAxKTsK IAkJCQl9CisJCQl8IElHTk9SRV9EQVRBVFlQRV9FUlJPUlMKKwkJCQl7CisJCQkJCSQkID0gbWFr ZURlZkVsZW0oImlnbm9yZV9kYXRhdHlwZV9lcnJvcnMiLCAoTm9kZSAqKW1ha2VCb29sZWFuKHRy dWUpLCBAMSk7CisJCQkJfQogCQkJfCBERUxJTUlURVIgb3B0X2FzIFNjb25zdAogCQkJCXsKIAkJ CQkJJCQgPSBtYWtlRGVmRWxlbSgiZGVsaW1pdGVyIiwgKE5vZGUgKikgbWFrZVN0cmluZygkMyks IEAxKTsKQEAgLTE2ODI3LDYgKzE2ODMxLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBI T1VSX1AKIAkJCXwgSURFTlRJVFlfUAogCQkJfCBJRl9QCisJCQl8IElHTk9SRV9EQVRBVFlQRV9F UlJPUlMKIAkJCXwgSU1NRURJQVRFCiAJCQl8IElNTVVUQUJMRQogCQkJfCBJTVBMSUNJVF9QCkBA IC0xNzM4Miw2ICsxNzM4Nyw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgSE9MRAogCQkJ fCBJREVOVElUWV9QCiAJCQl8IElGX1AKKwkJCXwgSUdOT1JFX0RBVEFUWVBFX0VSUk9SUwogCQkJ fCBJTElLRQogCQkJfCBJTU1FRElBVEUKIAkJCXwgSU1NVVRBQkxFCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9jb3B5LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKaW5k ZXggMzMxNzU4NjhmNi4uYzJlNTVhYzIxZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvY29weS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaApAQCAtNDIsNiArNDIs NyBAQCB0eXBlZGVmIHN0cnVjdCBDb3B5Rm9ybWF0T3B0aW9ucwogCQkJCQkJCQkgKiAtMSBpZiBu b3Qgc3BlY2lmaWVkICovCiAJYm9vbAkJYmluYXJ5OwkJCS8qIGJpbmFyeSBmb3JtYXQ/ICovCiAJ Ym9vbAkJZnJlZXplOwkJCS8qIGZyZWV6ZSByb3dzIG9uIGxvYWRpbmc/ICovCisJYm9vbAkJaWdu b3JlX2RhdGF0eXBlX2Vycm9yczsgIC8qIGlnbm9yZSByb3dzIHdpdGggZGF0YXR5cGUgZXJyb3Jz ICovCiAJYm9vbAkJY3N2X21vZGU7CQkvKiBDb21tYSBTZXBhcmF0ZWQgVmFsdWUgZm9ybWF0PyAq LwogCUNvcHlIZWFkZXJDaG9pY2UgaGVhZGVyX2xpbmU7CS8qIGhlYWRlciBsaW5lPyAqLwogCWNo YXIJICAgKm51bGxfcHJpbnQ7CQkvKiBOVUxMIG1hcmtlciBzdHJpbmcgKHNlcnZlciBlbmNvZGlu ZyEpICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5h bC5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weWZyb21faW50ZXJuYWwuaAppbmRleCBhYzJj MTZmOGI4Li4xMTY0YzcxNjMxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5 ZnJvbV9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9tX2ludGVy bmFsLmgKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2luY2x1ZGUgImNvbW1hbmRzL2NvcHkuaCIKICNp bmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCisjaW5jbHVkZSAibm9kZXMvbWlzY25vZGVzLmgi CiAKIC8qCiAgKiBSZXByZXNlbnRzIHRoZSBkaWZmZXJlbnQgc291cmNlIGNhc2VzIHdlIG5lZWQg dG8gd29ycnkgYWJvdXQgYXQKQEAgLTk0LDYgKzk1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ29weUZy b21TdGF0ZURhdGEKIAkJCQkJCQkJICogZGVmYXVsdCB2YWx1ZSAqLwogCUZtZ3JJbmZvICAgKmlu X2Z1bmN0aW9uczsJLyogYXJyYXkgb2YgaW5wdXQgZnVuY3Rpb25zIGZvciBlYWNoIGF0dHJzICov CiAJT2lkCQkgICAqdHlwaW9wYXJhbXM7CS8qIGFycmF5IG9mIGVsZW1lbnQgdHlwZXMgZm9yIGlu X2Z1bmN0aW9ucyAqLworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0OyAvKiBzb2Z0IGVycm9y IHRyYXBwZXIgZHVyaW5nIGluX2Z1bmN0aW9ucyBleGVjdXRpb24gKi8KKwlpbnQ2NAkJaWdub3Jl ZF9lcnJvcnM7CS8qIHRvdGFsIG51bWJlciBvZiBpZ25vcmVkIGVycm9ycyAqLwogCWludAkJICAg KmRlZm1hcDsJCQkvKiBhcnJheSBvZiBkZWZhdWx0IGF0dCBudW1iZXJzIHJlbGF0ZWQgdG8KIAkJ CQkJCQkJICogbWlzc2luZyBhdHQgKi8KIAlFeHByU3RhdGUgKipkZWZleHByczsJCS8qIGFycmF5 IG9mIGRlZmF1bHQgYXR0IGV4cHJlc3Npb25zIGZvciBhbGwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA3 NTNlOWVlMTc0Li41ZWExNTllODc5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0xOTYsNiArMTk2LDcg QEAgUEdfS0VZV09SRCgiaG9sZCIsIEhPTEQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoImhvdXIiLCBIT1VSX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQVNfTEFC RUwpCiBQR19LRVlXT1JEKCJpZGVudGl0eSIsIElERU5USVRZX1AsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImlmIiwgSUZfUCwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgiaWdub3JlX2RhdGF0eXBlX2Vycm9ycyIsIElHTk9S RV9EQVRBVFlQRV9FUlJPUlMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoImlsaWtlIiwgSUxJS0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJpbW1lZGlhdGUiLCBJTU1FRElBVEUsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImltbXV0YWJsZSIsIElNTVVUQUJMRSwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jb3B5Mi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAppbmRl eCA4ZTMzZWVlNzE5Li5hNmJmM2Q2NmE0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NvcHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91 dApAQCAtNjY2LDYgKzY2NiwyMSBAQCBTRUxFQ1QgKiBGUk9NIGluc3RlYWRfb2ZfaW5zZXJ0X3Ri bDsKICgyIHJvd3MpCiAKIENPTU1JVDsKKy0tIHRlc3RzIGZvciBJR05PUkVfREFUQVRZUEVfRVJS T1JTIG9wdGlvbgorQ1JFQVRFIFRBQkxFIGNoZWNrX2lnbl9lcnIgKG4gaW50LCBtIGludFtdLCBr IGludCk7CitDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRIIElHTk9SRV9EQVRBVFlQ RV9FUlJPUlM7CitXQVJOSU5HOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdl cjogImEiCitXQVJOSU5HOiAgdmFsdWUgIjMzMzMzMzMzMzMiIGlzIG91dCBvZiByYW5nZSBmb3Ig dHlwZSBpbnRlZ2VyCitXQVJOSU5HOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50 ZWdlcjogImEiCitXQVJOSU5HOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdl cjogIiIKK1dBUk5JTkc6ICA0IHJvd3Mgd2VyZSBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5j b21wYXRpYmlsaXR5CitTRUxFQ1QgKiBGUk9NIGNoZWNrX2lnbl9lcnI7CisgbiB8ICBtICB8IGsg CistLS0rLS0tLS0rLS0tCisgMSB8IHsxfSB8IDEKKyA1IHwgezV9IHwgNQorKDIgcm93cykKKwog LS0gY2xlYW4gdXAKIERST1AgVEFCTEUgZm9yY2V0ZXN0OwogRFJPUCBUQUJMRSB2aXN0ZXN0Owpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29weTIuc3FsCmluZGV4IGQ3NTk2MzUwNjguLmM5MzQwMjkzMTQgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9jb3B5Mi5zcWwKQEAgLTQ2NCw2ICs0NjQsMTggQEAgdGVzdDEKIFNFTEVDVCAqIEZST00g aW5zdGVhZF9vZl9pbnNlcnRfdGJsOwogQ09NTUlUOwogCistLSB0ZXN0cyBmb3IgSUdOT1JFX0RB VEFUWVBFX0VSUk9SUyBvcHRpb24KK0NSRUFURSBUQUJMRSBjaGVja19pZ25fZXJyIChuIGludCwg bSBpbnRbXSwgayBpbnQpOworQ09QWSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lUSCBJR05P UkVfREFUQVRZUEVfRVJST1JTOworMQl7MX0JMQorYQl7Mn0JMgorMwl7M30JMzMzMzMzMzMzMwor NAl7YSwgNH0JNAorCis1CXs1fQk1CitcLgorU0VMRUNUICogRlJPTSBjaGVja19pZ25fZXJyOwor CiAtLSBjbGVhbiB1cAogRFJPUCBUQUJMRSBmb3JjZXRlc3Q7CiBEUk9QIFRBQkxFIHZpc3Rlc3Q7 CgpiYXNlLWNvbW1pdDogZDY5YzQwNGM0Y2M1OTg1ZDhhZTViNWVkMzhiZWQzNDAwYjMxN2Y4Mgot LSAKMi4yNS4xCgo= --=_7036ceff2ce4df74ebd59a6071913350--