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.96) (envelope-from ) id 1vo2bD-00Ew79-1s for pgsql-bugs@arkaria.postgresql.org; Thu, 05 Feb 2026 16:52:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vo2bB-0009L1-2P for pgsql-bugs@arkaria.postgresql.org; Thu, 05 Feb 2026 16:52:57 +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.96) (envelope-from ) id 1vo2bB-0009Kt-1L for pgsql-bugs@lists.postgresql.org; Thu, 05 Feb 2026 16:52:57 +0000 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vo2b8-00000001De4-37Z7 for pgsql-bugs@lists.postgresql.org; Thu, 05 Feb 2026 16:52:56 +0000 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-432d28870ddso851328f8f.3 for ; Thu, 05 Feb 2026 08:52:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec.at; s=google; t=1770310372; x=1770915172; darn=lists.postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:from:to:cc:subject:date:message-id:reply-to; bh=rSGSdyZ5bfjc74+SY7ynZgXCq6avrwLIfc4mCgP+p40=; b=K17KZTyg6uwP4NQiW49o2/qSJvDLvOdNnpxZk/kUcy63R2h8QacTjFAcMbZDsf92GG GavL2V7XbRyZxgw10KamLMNBNTa4jmMjEwp3m0W6aGNdEsBcdBGV728T19Wud/F7HBn/ OrqIbKYAtPBjF5xxCKob1FimqeToRzQZbLc9uLgIsoydvehR2NakH8KSwSyB+Mow7XhM XVAsLvqvw0H4a8HFV5Cr8oiNKBtaCXmqkvfwInt/M/Nkqd3OD8xc678swz2kfKch0Tpv UPJ6GdYk8Z+XJ86Aj7gnyD9sawd2VAMK0C6BNYPo/fYcz3yOQ5OvfPK2Bg9FYVSVI256 pN6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770310372; x=1770915172; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=rSGSdyZ5bfjc74+SY7ynZgXCq6avrwLIfc4mCgP+p40=; b=sPtxps9b/MwCEcvZIdI0DVrQtFXqZsFqm7wFHEj5vt0HfNghKMoJ4PktM7O/wDk6th C2aEjBI5KwEf6eByjuxCoQlMTy8hvFdVOAJTzHQReQkp5wDYr7oSiV4/2NMSkAN4sGr1 UA1puAuoyNtT2BvcwqkPJ8z6GJ47YwgMoru7fymO3/XvYKBVL3seT06YsKkbn6C8Dwz5 aKqfdlgbIJ4GpZgI0hIBNEQMytm/sM4KTW/uGv8Gwk3cWM2QJglxKFvbQuxOZyN/eDJM y0+HjFcSTOWTIM5lIWRBvCOWEcK0EIOpTIaFpu72BLYYALycqGWCmi0sYmumyWXabHTC SjWg== X-Forwarded-Encrypted: i=1; AJvYcCWaxZEvs25fYwCmTUDYtdOHTgD3FLYA+bOi0Qqt4yx3CTuF6Th1gGjLvsJZ16TSXPasgigcawOdaIdy@lists.postgresql.org X-Gm-Message-State: AOJu0Yx2h+LLFVi7doNWLHIm9QK/lWv5DvSvld59naAWn/1x5JF6SXoi qsKZKp+MPzVjndksdv4kPe9IxgTAp9gCG5R+gfQq8YwH/Y1MIRvlyux/o2JpdKq+L/M= X-Gm-Gg: AZuq6aIbAPn0vk2tzEbH1Oo6x+N7QpX1VSHPJC3CFRXHj4okGTnqM5fuwLfV9KRHjw7 uKvW0VUkdTOnrhB06IzbaWH2obnIOgmJksIRRoIn+MoZDy9gz3Oc/GDmpVr5Z3E2Wdv6WaJ+wTz bfxA3ugLHpBp6LQ7x8KDKvoGzVV9YuWrpJtLTOaAxuIkEzoQHwgnOyKH5g0ewG6Ld4UjBpwnHnY FiGJ/94ka3ab+ZdN7mLUopW3ZOMqNmxfHse0LTEOqRVPUabDTrvTRqhR3Nh1T3XqS+SSgsy1Wgy uEWfFbVEZFFXnJnphCjCqn092t2x8QBKuMX4q5P9uCz54W0xYXwb2WcTZ2EOqZ3P7rNnL3lGOWS +Wwt32PdHSE0Pgq/ZdzlipPgFAj39zMkjogZasF3BM+s3qdA5J2l7wwM9YYzOgtdflXJ7O5usZM ZJ4rP4mXWwMrN1OvEloR0sWjqTvFXCYUZD55sG49xHPw== X-Received: by 2002:a05:6000:2905:b0:430:fdc8:8be3 with SMTP id ffacd0b85a97d-436180533f3mr11659637f8f.29.1770310371544; Thu, 05 Feb 2026 08:52:51 -0800 (PST) Received: from laurenz.albe-K4N0CV00F97414D ([2001:871:260:5269:e994:478a:1aaa:cd34]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4361805ebc4sm15320326f8f.31.2026.02.05.08.52.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Feb 2026 08:52:51 -0800 (PST) Message-ID: <61c535617992fff830961ecc09a9c20096bc1f36.camel@cybertec.at> Subject: Re: BUG #19393: pg_upgrade fails with duplicate key violation when CHECK constraint named *_not_null exists From: Laurenz Albe To: huseyin.d3r@gmail.com, pgsql-bugs@lists.postgresql.org Date: Thu, 05 Feb 2026 17:52:50 +0100 In-Reply-To: <2b3a2cd5f9b6e82fba6ac45b413291b01dd252ea.camel@cybertec.at> References: <19393-6a82427485a744cf@postgresql.org> <2b3a2cd5f9b6e82fba6ac45b413291b01dd252ea.camel@cybertec.at> Content-Type: multipart/mixed; boundary="=-2vX45rWWnhXRa0/g7KVW" User-Agent: Evolution 3.58.2 (3.58.2-1.fc43) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-2vX45rWWnhXRa0/g7KVW Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 2026-02-05 at 15:58 +0100, I wrote: > The bug is actually not in pg_upgrade, but in CREATE TABLE. The attached= patch > fixes the problem for me by avoiding given constraint names when generati= ng > the names for NOT NULL constraints. ... and here is v2, including a regression test. Yours, Laurenz Albe --=-2vX45rWWnhXRa0/g7KVW Content-Disposition: attachment; filename="v2-0001-Avoid-name-collision-with-NOT-NULL-constraints.patch" Content-Type: text/x-patch; name="v2-0001-Avoid-name-collision-with-NOT-NULL-constraints.patch"; charset="ISO-8859-1" Content-Transfer-Encoding: base64 RnJvbSA3YjdiMTY1YTU3NGYxMmViZTc3MDA1ZGVmOWFmM2NmMjc4MjIwOWEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogVGh1LCA1IEZlYiAyMDI2IDE3OjQ3OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 Ml0gQXZvaWQgbmFtZSBjb2xsaXNpb24gd2l0aCBOT1QgTlVMTCBjb25zdHJhaW50cwpNSU1FLVZl cnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKSWYgYSBDUkVBVEUgVEFCTEUgc3RhdGVtZW50IGRl ZmluZWQgYSBjb25zdHJhaW50IHdob3NlIG5hbWUKaXMgaWRlbnRpY2FsIHRvIHRoZSBuYW1lIGdl bmVyYXRlZCBmb3IgYSBOT1QgTlVMTCBjb25zdHJhaW50LApQb3N0Z3JlU1FMIHdvdWxkIHRocm93 IGEgdW5pcXVlIGtleSB2aW9sYXRpb24gZXJyb3Igb24KInBnX2NvbnN0cmFpbnRfY29ucmVsaWRf Y29udHlwaWRfY29ubmFtZV9pbmRleCIuCgpUbyBmaXgsIHBhc3MgdGhlIGNvbnN0cmFpbnRzIGNy ZWF0ZWQgYnkgQWRkUmVsYXRpb25OZXdDb25zdHJhaW50cygpCnRvIEFkZFJlbGF0aW9uTm90TnVs bENvbnN0cmFpbnRzKCksIHNvIHRoYXQgdGhlIGxhdHRlciBjYW4gYXZvaWQKbmFtZSBjb2xsaXNp b25zIHdpdGggdGhlIGNvbnN0cmFpbnQgbmFtZXMgaXQgZ2VuZXJhdGVzLgoKQnVnOiAjMTkzOTMK UmVwb3J0ZWQtYnk6IEjDvHNleWluIERlbWlyIDxodXNleWluLmQzckBnbWFpbC5jb20+CkF1dGhv cjogTGF1cmVueiBBbGJlIDxsYXVyZW56LmFsYmVAY3liZXJ0ZWMuYXQ+Ci0tLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrKysrKy0tCiBzcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgfCAgNyArKysrLS0tCiBzcmMv aW5jbHVkZS9jYXRhbG9nL2hlYXAuaCAgICAgICAgICAgICAgICAgfCAgMyArKy0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlLm91dCB8ICA2ICsrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlLnNxbCAgICAgIHwgIDcgKysrKysrKwogNSBmaWxlcyBj aGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5k ZXggNjA2NDM0ODIzY2YuLjM1Y2M2YjUwNmUwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRh bG9nL2hlYXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtMjg4NSwxNCAr Mjg4NSwxNiBAQCBNZXJnZVdpdGhFeGlzdGluZ0NvbnN0cmFpbnQoUmVsYXRpb24gcmVsLCBjb25z dCBjaGFyICpjY25hbWUsIE5vZGUgKmV4cHIsCiAgKiBmb3IgZWFjaCBjb2x1bW4sIGdpdmluZyBw cmlvcml0eSB0byB1c2VyLXNwZWNpZmllZCBvbmVzLCBhbmQgc2V0dGluZwogICogaW5oY291bnQg YWNjb3JkaW5nIHRvIGhvdyBtYW55IHBhcmVudHMgY2F1c2UgZWFjaCBjb2x1bW4gdG8gZ2V0IGEK ICAqIG5vdC1udWxsIGNvbnN0cmFpbnQuICBJZiBhIHVzZXItc3BlY2lmaWVkIG5hbWUgY2xhc2hl cyB3aXRoIGFub3RoZXIKLSAqIHVzZXItc3BlY2lmaWVkIG5hbWUsIGFuIGVycm9yIGlzIHJhaXNl ZC4KKyAqIHVzZXItc3BlY2lmaWVkIG5hbWUsIGFuIGVycm9yIGlzIHJhaXNlZC4gICdleGlzdGlu Z19jb25zdHJhaW50cycKKyAqIGlzIGEgbGlzdCBvZiBhbHJlYWR5IGRlZmluZWQgY29uc3RyYWlu dHMsIHdob3NlIG5hbWVzIHNob3VsZCBiZSBhdm9pZGVkCisgKiB3aGVuIGdlbmVyYXRpbmcgY29u c3RyYWludCBuYW1lcy4KICAqCiAgKiBSZXR1cm5zIGEgbGlzdCBvZiBBdHRyTnVtYmVyIGZvciBj b2x1bW5zIHRoYXQgbmVlZCB0byBoYXZlIHRoZSBhdHRub3RudWxsCiAgKiBmbGFnIHNldC4KICAq LwogTGlzdCAqCiBBZGRSZWxhdGlvbk5vdE51bGxDb25zdHJhaW50cyhSZWxhdGlvbiByZWwsIExp c3QgKmNvbnN0cmFpbnRzLAotCQkJCQkJCSAgTGlzdCAqb2xkX25vdG51bGxzKQorCQkJCQkJCSAg TGlzdCAqb2xkX25vdG51bGxzLCBMaXN0ICpleGlzdGluZ19jb25zdHJhaW50cykKIHsKIAlMaXN0 CSAgICpnaXZlbm5hbWVzOwogCUxpc3QJICAgKm5ubmFtZXM7CkBAIC0yOTA1LDYgKzI5MDcsMTIg QEAgQWRkUmVsYXRpb25Ob3ROdWxsQ29uc3RyYWludHMoUmVsYXRpb24gcmVsLCBMaXN0ICpjb25z dHJhaW50cywKIAkgKiBzeXN0ZW0tZ2VuZXJhdGVkIG5hbWUgY29uZmxpY3RzIHdlIGp1c3QgZ2Vu ZXJhdGUgYW5vdGhlci4KIAkgKi8KIAlubm5hbWVzID0gTklMOworCWZvcmVhY2hfcHRyKENvb2tl ZENvbnN0cmFpbnQsIGNvbnMsIGV4aXN0aW5nX2NvbnN0cmFpbnRzKQorCXsKKwkJaWYgKGNvbnMt Pm5hbWUgIT0gTlVMTCkKKwkJCW5ubmFtZXMgPSBsYXBwZW5kKG5ubmFtZXMsIGNvbnMtPm5hbWUp OworCX0KKwogCWdpdmVubmFtZXMgPSBOSUw7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YwppbmRleCBmOTc2YzBlNWM3ZS4uY2E2OGVlOGM5OTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCkBAIC03ODEsNiArNzgxLDcgQEAgRGVmaW5lUmVsYXRpb24oQ3JlYXRlU3RtdCAqc3RtdCwg Y2hhciByZWxraW5kLCBPaWQgb3duZXJJZCwKIAlMaXN0CSAgICpyYXdEZWZhdWx0czsKIAlMaXN0 CSAgICpjb29rZWREZWZhdWx0czsKIAlMaXN0CSAgICpubmNvbHM7CisJTGlzdAkgICAqY29ubGlz dCA9IE5JTDsKIAlEYXR1bQkJcmVsb3B0aW9uczsKIAlMaXN0Q2VsbCAgICpsaXN0cHRyOwogCUF0 dHJOdW1iZXIJYXR0bnVtOwpAQCAtMTMzOCw4ICsxMzM5LDggQEAgRGVmaW5lUmVsYXRpb24oQ3Jl YXRlU3RtdCAqc3RtdCwgY2hhciByZWxraW5kLCBPaWQgb3duZXJJZCwKIAkgKiB1cC4KIAkgKi8K IAlpZiAoc3RtdC0+Y29uc3RyYWludHMpCi0JCUFkZFJlbGF0aW9uTmV3Q29uc3RyYWludHMocmVs LCBOSUwsIHN0bXQtPmNvbnN0cmFpbnRzLAotCQkJCQkJCQkgIHRydWUsIHRydWUsIGZhbHNlLCBx dWVyeVN0cmluZyk7CisJCWNvbmxpc3QgPSBBZGRSZWxhdGlvbk5ld0NvbnN0cmFpbnRzKHJlbCwg TklMLCBzdG10LT5jb25zdHJhaW50cywKKwkJCQkJCQkJCQkJdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHF1 ZXJ5U3RyaW5nKTsKIAogCS8qCiAJICogRmluYWxseSwgbWVyZ2UgdGhlIG5vdC1udWxsIGNvbnN0 cmFpbnRzIHRoYXQgYXJlIGRlY2xhcmVkIGRpcmVjdGx5IHdpdGgKQEAgLTEzNDgsNyArMTM0OSw3 IEBAIERlZmluZVJlbGF0aW9uKENyZWF0ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93 bmVySWQsCiAJICogY29sdW1ucyB0aGF0IGRvbid0IHlldCBoYXZlIGl0LgogCSAqLwogCW5uY29s cyA9IEFkZFJlbGF0aW9uTm90TnVsbENvbnN0cmFpbnRzKHJlbCwgc3RtdC0+bm5jb25zdHJhaW50 cywKLQkJCQkJCQkJCQkgICBvbGRfbm90bnVsbHMpOworCQkJCQkJCQkJCSAgIG9sZF9ub3RudWxs cywgY29ubGlzdCk7CiAJZm9yZWFjaF9pbnQoYXR0cm51bSwgbm5jb2xzKQogCQlzZXRfYXR0bm90 bnVsbChOVUxMLCByZWwsIGF0dHJudW0sIHRydWUsIGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaAppbmRl eCA2MjRjNDE1ZGFkYi4uNmM5YWM4MTJhYTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvaGVhcC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oCkBAIC0xMTcsNyArMTE3 LDggQEAgZXh0ZXJuIExpc3QgKkFkZFJlbGF0aW9uTmV3Q29uc3RyYWludHMoUmVsYXRpb24gcmVs LAogCQkJCQkJCQkJICAgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcpOwogZXh0ZXJuIExpc3QgKkFk ZFJlbGF0aW9uTm90TnVsbENvbnN0cmFpbnRzKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCQkgICBM aXN0ICpjb25zdHJhaW50cywKLQkJCQkJCQkJCQkgICBMaXN0ICpvbGRfbm90bnVsbHMpOworCQkJ CQkJCQkJCSAgIExpc3QgKm9sZF9ub3RudWxscywKKwkJCQkJCQkJCQkgICBMaXN0ICpleGlzdGlu Z19jb25zdHJhaW50cyk7CiAKIGV4dGVybiB2b2lkIFJlbGF0aW9uQ2xlYXJNaXNzaW5nKFJlbGF0 aW9uIHJlbCk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRl X3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlLm91dApp bmRleCAwMjliZWIyMGFhZS4uOTA2MzllYTBkODkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NyZWF0ZV90YWJsZS5vdXQKQEAgLTE2MSw2ICsxNjEsMTIgQEAgQUxURVIgVEFCTEUgcmVt ZW1iZXJfbm9kZV9zdWJpZCBBTFRFUiBjIFRZUEUgYmlnaW50OwogU0FWRVBPSU5UIHE7IERST1Ag VEFCTEUgcmVtZW1iZXJfbm9kZV9zdWJpZDsgUk9MTEJBQ0sgVE8gcTsKIENPTU1JVDsKIERST1Ag VEFCTEUgcmVtZW1iZXJfbm9kZV9zdWJpZDsKKy0tIGdlbmVyYXRlZCBOT1QgTlVMTCBjb25zdHJh aW50IG5hbWVzIG11c3Qgbm90IGNvbGxpZGUgd2l0aCBleHBsaWNpdGx5IG5hbWVkIGNvbnN0cmFp bnRzCitDUkVBVEUgVEFCTEUgdHdvX25vdF9udWxsX2NvbnN0cmFpbnRzICgKKyAgIGNvbCBpbnRl Z2VyIE5PVCBOVUxMLAorICAgQ09OU1RSQUlOVCB0d29fbm90X251bGxfY29uc3RyYWludHNfY29s X25vdF9udWxsIENIRUNLIChjb2wgSVMgTk9UIE5VTEwpCispOworRFJPUCBUQUJMRSB0d29fbm90 X251bGxfY29uc3RyYWludHM7CiAtLQogLS0gUGFydGl0aW9uZWQgdGFibGVzCiAtLQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZS5zcWwKaW5kZXggOWIzZTkzYjQxNjQuLjgwZTQyNGU2YmRh IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGUuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZS5zcWwKQEAgLTEwNSw2ICsxMDUsMTMg QEAgU0FWRVBPSU5UIHE7IERST1AgVEFCTEUgcmVtZW1iZXJfbm9kZV9zdWJpZDsgUk9MTEJBQ0sg VE8gcTsKIENPTU1JVDsKIERST1AgVEFCTEUgcmVtZW1iZXJfbm9kZV9zdWJpZDsKIAorLS0gZ2Vu ZXJhdGVkIE5PVCBOVUxMIGNvbnN0cmFpbnQgbmFtZXMgbXVzdCBub3QgY29sbGlkZSB3aXRoIGV4 cGxpY2l0bHkgbmFtZWQgY29uc3RyYWludHMKK0NSRUFURSBUQUJMRSB0d29fbm90X251bGxfY29u c3RyYWludHMgKAorICAgY29sIGludGVnZXIgTk9UIE5VTEwsCisgICBDT05TVFJBSU5UIHR3b19u b3RfbnVsbF9jb25zdHJhaW50c19jb2xfbm90X251bGwgQ0hFQ0sgKGNvbCBJUyBOT1QgTlVMTCkK Kyk7CitEUk9QIFRBQkxFIHR3b19ub3RfbnVsbF9jb25zdHJhaW50czsKKwogLS0KIC0tIFBhcnRp dGlvbmVkIHRhYmxlcwogLS0KLS0gCjIuNTMuMAoK --=-2vX45rWWnhXRa0/g7KVW--