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 1rZJkU-003Vzx-8k for pgsql-hackers@arkaria.postgresql.org; Mon, 12 Feb 2024 00:00:38 +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 1rZJkR-0060Gg-Tu for pgsql-hackers@arkaria.postgresql.org; Mon, 12 Feb 2024 00:00:35 +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 1rZJkR-0060GY-In for pgsql-hackers@lists.postgresql.org; Mon, 12 Feb 2024 00:00:35 +0000 Received: from mail-yb1-xb35.google.com ([2607:f8b0:4864:20::b35]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rZJkN-006iiv-TW for pgsql-hackers@lists.postgresql.org; Mon, 12 Feb 2024 00:00:34 +0000 Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-db3a09e96daso2270844276.3 for ; Sun, 11 Feb 2024 16:00:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707696030; x=1708300830; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Fhou9gbwzvi29M3uN4hVigiVKF0dFZE/lgaQ5nxCobg=; b=d8rU4Lt6o+ZixJvkS8RU9UJZi7OSzaP+VEp4ekVlpbUaC3mz0O5w9zZqClt1CIo5hq kz+vp2epwMiAQR6WW/Vd1akPJIRa8q+X6I8XwztseNzySIzYIQwdmrd+EB5hvL9bLtYr djObe2cehiT4zmfDrEbCy2CBwaumeoajPPupf5zVxsn8XL9qdvcPgkYT7p4j/BFyDAn3 V1V17f7gUH7wtU7lM+s3pvQXXtEplD+dNhbhnV0Gx+iHtsWxdlXauX9g4y6+r7LNkO2u TD0TPA9NxrB1w1Aj7x+GcbDPZ2QFKNWg8c02GNtqzUyfNv3Bb1Bs/ZER3u/i7NvZNjmh Yirg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707696030; x=1708300830; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Fhou9gbwzvi29M3uN4hVigiVKF0dFZE/lgaQ5nxCobg=; b=HaHI4E2rrRNDWO6ytzOGx59b3gsUul+1z1tedp6WbAlQI5y/l9Eo+9L/RqZfaxPUXB AHLwHib7ov2PioWsrXb2agkP2rL71tCJMEDPU9YBk+ydyX2puolYuS/JCZg4uehChrWl mQuqQi6wm/CoJ+h+Q/fLQa84qlCG40rPj2nzKe7zmvOiKLxNtQhASYupkgfylNF5znBP 9U8LV1Law9m2z1+UgZlwOaxnNKtC1YTJu8ufp0Oq28Zck2xHtsHJgJsba8TR7HGS0U1d llupxo9DG8JwJ44sIfDH7v1Oi4FQvnELqwSZ0LCwxn0u3g0Ph011Omg/RnmVjC7Zr887 lncg== X-Gm-Message-State: AOJu0Yw39rYvfgSlZvcXaIhsDvA7TsM1UsDrx2q+oo/FIQkv/GYM2CtE Oap1+FRdAeusxq2kMGvTnoDVXhnaR0pAfbQZAGzb6fo60MlXoTFHLd5I+2PGDcvKHGFH41UBJVe zLRqNCWjO8U/b0TWEyADbdV9sHiA= X-Google-Smtp-Source: AGHT+IGm/2iZuflykPjGWKDahDy3GYp7ZPTigzFlmSQ5kruMud3tBDbO3zdAJiUmp4AIXHfoSPR4Wv6mbfkJJ1AkXgw= X-Received: by 2002:a25:86c4:0:b0:dc7:461f:6920 with SMTP id y4-20020a2586c4000000b00dc7461f6920mr3585743ybm.48.1707696028563; Sun, 11 Feb 2024 16:00:28 -0800 (PST) MIME-Version: 1.0 References: <20240129172858.ccb6c77c3be95a295e2b2b44@sraoss.co.jp> <04bf425ad1b15a4daefe96c478a5253b@oss.nttdata.com> <20240206191937.72eaf0ccc20cfea37944b422@sraoss.co.jp> In-Reply-To: <20240206191937.72eaf0ccc20cfea37944b422@sraoss.co.jp> From: jian he Date: Mon, 12 Feb 2024 08:00:00 +0800 Message-ID: Subject: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row To: Yugo NAGATA Cc: torikoshia , "David G. Johnston" , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000002b06ad061123f7a6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002b06ad061123f7a6 Content-Type: text/plain; charset="UTF-8" attached v2. syntax: `on_error set_to_null` based on upthread discussion, now if you specified `on_error set_to_null` and your column has `not null` constraint, we convert the error field to null, so it may error while bulk inserting for violating NOT NULL constraint. --0000000000002b06ad061123f7a6 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-on_error-set_to_null.patch" Content-Disposition: attachment; filename="v2-0001-on_error-set_to_null.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lshbbxoh0 RnJvbSBjOTViYjdiN2MwNzJmNTEwYjlhNjA2OTU3MTRiZTIxMzQ1ZjIxNTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMTAgRmViIDIwMjQgMTU6MDg6NDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy IDEvMV0gb25fZXJyb3Igc2V0X3RvX251bGwKCmFueSBkYXRhIHR5cGUgY29udmVyc2lvbiBlcnJv cnMgd2hpbGUgQ09QWSBGUk9NIHdpbGwgc2V0IHRoYXQgY29sdW1uIHZhbHVlIHRvIGJlIE5VTEwu CmRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvQ0FLRlF1 d2F3eTFlNllSNFM9ait5N3BYcWdfRHcxV0JWcmd2Zj1CUDNkMV9hU2ZlXytRQG1haWwuZ21haWwu Y29tCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgICAgICAgICAgIHwgIDEgKwogc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29weS5jICAgICAgICAgIHwgIDIgKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvcHlmcm9tLmMgICAgICB8IDMwICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYyB8IDI4ICsrKysrKysrKysrKysr KysrKysrKysrKy0tCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmggICAgICAgICAgfCAgMSAr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAgfCAyMiArKysrKysrKysrKysr KysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsICAgICAgIHwgMjMgKysrKysr KysrKysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NvcHkuc2dtbAppbmRleCA1NTc2NGZjMS4uZDhiNjA5YjYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29w eS5zZ21sCkBAIC0zOTAsNiArMzkwLDcgQEAgQ09QWSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZQogICAgICAg QW4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVycm9yX2FjdGlvbjwvcmVwbGFjZWFi bGU+IHZhbHVlIG9mCiAgICAgICA8bGl0ZXJhbD5zdG9wPC9saXRlcmFsPiBtZWFucyBmYWlsIHRo ZSBjb21tYW5kLCB3aGlsZQogICAgICAgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBtZWFucyBk aXNjYXJkIHRoZSBpbnB1dCByb3cgYW5kIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgb25lLgorICAg ICAgPGxpdGVyYWw+c2V0X3RvX251bGw8L2xpdGVyYWw+IG1lYW5zIHRoZSBpbnB1dCB2YWx1ZSB3 aWxsIHNldCB0byA8bGl0ZXJhbD5udWxsPC9saXRlcmFsPiBhbmQgY29udGludWUgd2l0aCB0aGUg bmV4dCBmaWVsZC4KICAgICAgIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPnN0b3A8L2xpdGVyYWw+ LgogICAgICA8L3BhcmE+CiAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvY29weS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCmluZGV4IGNjMDc4NmM2 Li45YzdkNmViZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwpAQCAtNDIyLDYgKzQyMiw4IEBAIGRlZkdldENv cHlPbkVycm9yQ2hvaWNlKERlZkVsZW0gKmRlZiwgUGFyc2VTdGF0ZSAqcHN0YXRlLCBib29sIGlz X2Zyb20pCiAJCXJldHVybiBDT1BZX09OX0VSUk9SX1NUT1A7CiAJaWYgKHBnX3N0cmNhc2VjbXAo c3ZhbCwgImlnbm9yZSIpID09IDApCiAJCXJldHVybiBDT1BZX09OX0VSUk9SX0lHTk9SRTsKKwlp ZiAocGdfc3RyY2FzZWNtcChzdmFsLCAic2V0X3RvX251bGwiKSA9PSAwKQorCQlyZXR1cm4gQ09Q WV9PTl9FUlJPUl9OVUxMOwogCiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvY29weWZyb20uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKaW5kZXggNDFm NmJjNDMuLjJhODdiY2YzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJv bS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKQEAgLTEwMDUsNiArMTAw NSw3IEBAIENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlKQogCQkJICogaW5mb3JtYXRpb24g YWNjb3JkaW5nIHRvIE9OX0VSUk9SLgogCQkJICovCiAJCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vy cm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFKQorCQkJewogCiAJCQkJLyoKIAkJCQkgKiBKdXN0 IG1ha2UgRXJyb3JTYXZlQ29udGV4dCByZWFkeSBmb3IgdGhlIG5leHQgTmV4dENvcHlGcm9tLgpA QCAtMTAxMywxMSArMTAxNCwxOCBAQCBDb3B5RnJvbShDb3B5RnJvbVN0YXRlIGNzdGF0ZSkKIAkJ CQkgKi8KIAkJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKIAot CQkJLyogUmVwb3J0IHRoYXQgdGhpcyB0dXBsZSB3YXMgc2tpcHBlZCBieSB0aGUgT05fRVJST1Ig Y2xhdXNlICovCi0JCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NPUFlf VFVQTEVTX1NLSVBQRUQsCi0JCQkJCQkJCQkJICsrc2tpcHBlZCk7CisJCQkJLyogUmVwb3J0IHRo YXQgdGhpcyB0dXBsZSB3YXMgc2tpcHBlZCBieSB0aGUgT05fRVJST1IgY2xhdXNlICovCisJCQkJ cGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19DT1BZX1RVUExFU19TS0lQUEVE LAorCQkJCQkJCQkJCQkrK3NraXBwZWQpOwogCi0JCQljb250aW51ZTsKKwkJCQljb250aW51ZTsK KwkJCX0KKwkJCS8qCisJCQkgKiBKdXN0IG1ha2UgRXJyb3JTYXZlQ29udGV4dCByZWFkeSBmb3Ig dGhlIG5leHQgTmV4dENvcHlGcm9tLgorCQkJICoKKwkJCSovCisJCQlpZiAoY3N0YXRlLT5vcHRz Lm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfTlVMTCkKKwkJCQljc3RhdGUtPmVzY29udGV4dC0+ ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKIAkJfQogCiAJCUV4ZWNTdG9yZVZpcnR1YWxUdXBsZSht eXNsb3QpOwpAQCAtMTMxMiw3ICsxMzIwLDcgQEAgQ29weUZyb20oQ29weUZyb21TdGF0ZSBjc3Rh dGUpCiAJLyogRG9uZSwgY2xlYW4gdXAgKi8KIAllcnJvcl9jb250ZXh0X3N0YWNrID0gZXJyY2Fs bGJhY2sucHJldmlvdXM7CiAKLQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yICE9IENPUFlfT05f RVJST1JfU1RPUCAmJgorCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJP Ul9JR05PUkUgJiYKIAkJY3N0YXRlLT5udW1fZXJyb3JzID4gMCkKIAkJZXJlcG9ydChOT1RJQ0Us CiAJCQkJZXJybXNnX3BsdXJhbCgiJWxsdSByb3cgd2FzIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlw ZSBpbmNvbXBhdGliaWxpdHkiLApAQCAtMTMyMCw2ICsxMzI4LDE0IEBAIENvcHlGcm9tKENvcHlG cm9tU3RhdGUgY3N0YXRlKQogCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgY3N0YXRlLT5u dW1fZXJyb3JzLAogCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgY3N0YXRlLT5udW1fZXJy b3JzKSk7CiAKKwlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfTlVM TCAmJgorCQljc3RhdGUtPm51bV9lcnJvcnMgPiAwKQorCQllcmVwb3J0KE5PVElDRSwKKwkJCQll cnJtc2dfcGx1cmFsKCJzb21lIGNvbHVtbnMgb2YgJWxsdSByb3dzLCB2YWx1ZSB3YXMgY29udmVy dGVkIHRvIE5VTEwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkiLAorCQkJCQkJCSAg InNvbWUgY29sdW1ucyBvZiAlbGx1IHJvd3MsIHZhbHVlIHdlcmUgY29udmVydGVkIHRvIE5VTEwg ZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkiLAorCQkJCQkJCSAgKHVuc2lnbmVkIGxv bmcgbG9uZykgY3N0YXRlLT5udW1fZXJyb3JzLAorCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9u ZykgY3N0YXRlLT5udW1fZXJyb3JzKSk7CisKIAlpZiAoYmlzdGF0ZSAhPSBOVUxMKQogCQlGcmVl QnVsa0luc2VydFN0YXRlKGJpc3RhdGUpOwogCkBAIC0xNDYzLDExICsxNDc5LDEzIEBAIEJlZ2lu Q29weUZyb20oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jf b2NjdXJyZWQgPSBmYWxzZTsKIAogCQkvKgotCQkgKiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0 IENPUFlfT05fRVJST1JfSUdOT1JFLiBXZSdsbCBhZGQgb3RoZXIKKwkJICogQ3VycmVudGx5IHdl IG9ubHkgc3VwcG9ydCBDT1BZX09OX0VSUk9SX0lHTk9SRSwgQ09QWV9PTl9FUlJPUl9OVUxMLiBX ZSdsbCBhZGQgb3RoZXIKIAkJICogb3B0aW9ucyBsYXRlcgogCQkgKi8KIAkJaWYgKGNzdGF0ZS0+ b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSkKIAkJCWNzdGF0ZS0+ZXNjb250 ZXh0LT5kZXRhaWxzX3dhbnRlZCA9IGZhbHNlOworCQllbHNlIGlmIChjc3RhdGUtPm9wdHMub25f ZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9OVUxMKQorCQkJY3N0YXRlLT5lc2NvbnRleHQtPmRldGFp bHNfd2FudGVkID0gZmFsc2U7CiAJfQogCWVsc2UKIAkJY3N0YXRlLT5lc2NvbnRleHQgPSBOVUxM OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jCmluZGV4IDkwNjc1NjM2Li45ZDc3YzNk MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYwpAQCAtODczLDYgKzg3Myw3IEBA IE5leHRDb3B5RnJvbShDb3B5RnJvbVN0YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0 LAogCQlpbnQJCQlmbGRjdDsKIAkJaW50CQkJZmllbGRubzsKIAkJY2hhcgkgICAqc3RyaW5nOwor CQlib29sCQllcnJvcl9oYXBwZW5lZCA9IGZhbHNlOwogCiAJCS8qIHJlYWQgcmF3IGZpZWxkcyBp biB0aGUgbmV4dCBsaW5lICovCiAJCWlmICghTmV4dENvcHlGcm9tUmF3RmllbGRzKGNzdGF0ZSwg JmZpZWxkX3N0cmluZ3MsICZmbGRjdCkpCkBAIC05NjAsMTQgKzk2MSwzNyBAQCBOZXh0Q29weUZy b20oQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwKIAkJCQkJCQkJ CQkJKE5vZGUgKikgY3N0YXRlLT5lc2NvbnRleHQsCiAJCQkJCQkJCQkJCSZ2YWx1ZXNbbV0pKQog CQkJewotCQkJCWNzdGF0ZS0+bnVtX2Vycm9ycysrOwotCQkJCXJldHVybiB0cnVlOworCQkJCWlm IChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9OVUxMKQorCQkJCXsKKwor CQkJCQl2YWx1ZXNbbV0gPSAoRGF0dW0pIDA7CisJCQkJCW51bGxzW21dID0gdHJ1ZTsKKwkJCQkJ LyogaGVyZSwgd2UgbmVlZCBzZXQgZXJyb3Jfb2NjdXJyZWQgdG8gZmFsc2UsIHNvIENPUFkgd2ls bCBiZSBjb250aW51ZSAqLworCQkJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQg PSBmYWxzZTsKKworCQkJCQkvKiBkb2VzIGFueSBjb252ZXJzaW9uIGVycm9yIGV2ZXIgaGFwcGVu ZWQgaW4gYWxsIHRoZSBmaWVsZHMgKi8KKwkJCQkJaWYgKCFlcnJvcl9oYXBwZW5lZCkKKwkJCQkJ CWVycm9yX2hhcHBlbmVkID0gdHJ1ZTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJY3N0 YXRlLT5udW1fZXJyb3JzKys7CisJCQkJCXJldHVybiB0cnVlOworCQkJCX0KKwogCQkJfQogCiAJ CQljc3RhdGUtPmN1cl9hdHRuYW1lID0gTlVMTDsKIAkJCWNzdGF0ZS0+Y3VyX2F0dHZhbCA9IE5V TEw7CiAJCX0KIAorCQkvKiB1cGRhdGUgbnVtX2Vycm9ycy4gb25lIHJvdyB3aXRoIG11bHRpcGxl IGVycm9ycyBmaWVsZCBvbmx5IGNvdW50IDEqLworCQlpZiAoZXJyb3JfaGFwcGVuZWQpCisJCXsK KwkJCWNzdGF0ZS0+bnVtX2Vycm9ycysrOworCQkJY3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX29j Y3VycmVkID0gdHJ1ZTsKKwkJfQorCiAJCUFzc2VydChmaWVsZG5vID09IGF0dHJfY291bnQpOwog CX0KIAllbHNlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmggYi9zcmMv aW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKaW5kZXggYjNkYTNjYjAuLjkzMWZlMDliIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvY29weS5oCkBAIC0zOCw2ICszOCw3IEBAIHR5cGVkZWYgZW51bSBDb3B5T25FcnJvckNob2lj ZQogewogCUNPUFlfT05fRVJST1JfU1RPUCA9IDAsCQkvKiBpbW1lZGlhdGVseSB0aHJvdyBlcnJv cnMsIGRlZmF1bHQgKi8KIAlDT1BZX09OX0VSUk9SX0lHTk9SRSwJCS8qIGlnbm9yZSBlcnJvcnMg Ki8KKwlDT1BZX09OX0VSUk9SX05VTEwsCQkJLyogc2V0IGVycm9yIGZpZWxkIHRvIG51bGwgKi8K IH0gQ29weU9uRXJyb3JDaG9pY2U7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NvcHkyLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0 CmluZGV4IDI1YzQwMWNlLi44NzlkYTI4MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jb3B5Mi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5v dXQKQEAgLTc1MSw2ICs3NTEsMjggQEAgQ09OVEVYVDogIENPUFkgY2hlY2tfaWduX2VyciwgbGlu ZSAxOiAiMQl7MX0iCiBDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJv ciBpZ25vcmUpOwogRVJST1I6ICBleHRyYSBkYXRhIGFmdGVyIGxhc3QgZXhwZWN0ZWQgY29sdW1u CiBDT05URVhUOiAgQ09QWSBjaGVja19pZ25fZXJyLCBsaW5lIDE6ICIxCXsxfQkzCWFiYyIKK3Ry dW5jYXRlIGNoZWNrX2lnbl9lcnI7CitDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRI IChvbl9lcnJvciBzZXRfdG9fbnVsbCk7CitOT1RJQ0U6ICBzb21lIGNvbHVtbnMgb2YgMyByb3dz LCB2YWx1ZSB3ZXJlIGNvbnZlcnRlZCB0byBOVUxMIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRp YmlsaXR5CitccHNldCBudWxsIE5VTEwKK1NFTEVDVCAqIEZST00gY2hlY2tfaWduX2VycjsKKyAg biAgIHwgIG0gIHwgIGsgICAKKy0tLS0tLSstLS0tLSstLS0tLS0KKyAgICAxIHwgezF9IHwgTlVM TAorICAgIDIgfCB7Mn0gfCAgICAxCisgICAgMyB8IHszfSB8ICAgIDIKKyAgICA0IHwgezR9IHwg TlVMTAorIE5VTEwgfCB7NX0gfCBOVUxMCisoNSByb3dzKQorCistLXNob3VsZCBmYWlsLgorQ09Q WSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcsJywgb25fZXJyb3Ig c2V0X3RvX251bGwpOworRVJST1I6ICBtaXNzaW5nIGRhdGEgZm9yIGNvbHVtbiAiayIKK0NPTlRF WFQ6ICBDT1BZIGNoZWNrX2lnbl9lcnIsIGxpbmUgMTogIjEsIgorLS1zaG91bGQgZmFpbC4KK0NP UFkgY2hlY2tfaWduX2VyciBGUk9NIFNURElOIFdJVEggKGRlbGltaXRlciAnLCcsIG9uX2Vycm9y IHNldF90b19udWxsKTsKK0VSUk9SOiAgZXh0cmEgZGF0YSBhZnRlciBsYXN0IGV4cGVjdGVkIGNv bHVtbgorQ09OVEVYVDogIENPUFkgY2hlY2tfaWduX2VyciwgbGluZSAxOiAiMSx7MX0sMSwxIgog LS0gY2xlYW4gdXAKIERST1AgVEFCTEUgZm9yY2V0ZXN0OwogRFJPUCBUQUJMRSB2aXN0ZXN0Owpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29weTIuc3FsCmluZGV4IGI1ZTU0OWU4Li42N2JmNDVhNyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2NvcHkyLnNxbApAQCAtNTM0LDYgKzUzNCwyOSBAQCBDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBT VERJTiBXSVRIIChvbl9lcnJvciBpZ25vcmUpOwogMQl7MX0JMwlhYmMKIFwuCiAKKwordHJ1bmNh dGUgY2hlY2tfaWduX2VycjsKK0NPUFkgY2hlY2tfaWduX2VyciBGUk9NIFNURElOIFdJVEggKG9u X2Vycm9yIHNldF90b19udWxsKTsKKzEJezF9CWEKKzIJezJ9CTEKKzMJezN9CTIKKzQJezR9CWIK K2EJezV9CWMKK1wuCisKK1xwc2V0IG51bGwgTlVMTAorU0VMRUNUICogRlJPTSBjaGVja19pZ25f ZXJyOworCistLXNob3VsZCBmYWlsLgorQ09QWSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lU SCAoZGVsaW1pdGVyICcsJywgb25fZXJyb3Igc2V0X3RvX251bGwpOworMSwKK1wuCisKKy0tc2hv dWxkIGZhaWwuCitDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRIIChkZWxpbWl0ZXIg JywnLCBvbl9lcnJvciBzZXRfdG9fbnVsbCk7CisxLHsxfSwxLDEKK1wuCisKIC0tIGNsZWFuIHVw CiBEUk9QIFRBQkxFIGZvcmNldGVzdDsKIERST1AgVEFCTEUgdmlzdGVzdDsKLS0gCjIuMzQuMQoK --0000000000002b06ad061123f7a6--