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 1wiFAW-0005f2-1r for pgsql-bugs@arkaria.postgresql.org; Fri, 10 Jul 2026 17:37:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wiFAU-001LsA-1c for pgsql-bugs@arkaria.postgresql.org; Fri, 10 Jul 2026 17:37:43 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wiFAU-001Ls0-01 for pgsql-bugs@lists.postgresql.org; Fri, 10 Jul 2026 17:37:42 +0000 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wiFAS-000000004Ba-3rLv for pgsql-bugs@lists.postgresql.org; Fri, 10 Jul 2026 17:37:41 +0000 Received: by mail-oi1-x233.google.com with SMTP id 5614622812f47-488b3fd8d0dso516227b6e.1 for ; Fri, 10 Jul 2026 10:37:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783705059; cv=none; d=google.com; s=arc-20260327; b=X9+rwEK+DAGXuTjUf7AlPuOa/yRi6/G02nKZemRPHQweMyiGYFAM3DMVS0OlcznUXy PpIVHxNEFij+2uxbLXe5L36oaLzDRdExMWcJ7UK4enw4XoID77YvmOLDZqG/FSdz6gJR PdDh14rw68VB5r2YNovwWwb4m2RRTg/svQqt2yt0tprBewQQxQ1jhatGOVmZXzWYTJ2f VvBkIFwnchZkiveCi/EMWCjyvB04bvQby7nwDfaftKO062RYoxoIkIYWlF8SvxYHnHlP r/OCaseaPB8KZXUcpSVyBgeViRpRquM01q0TxicWqAG1wG1+YOm45OtXCR+P/qrU0RTg SiWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=qGyKFd2jxpqW7cLOm4Y19v71lprrP9Z38G3S94GBejE=; fh=gc8c/KkKsbL+51lmhy9FBqKDBazn/4IfvoMzQXvG0sQ=; b=Xk5aPvwHfed083385bxjys5JgucFcHeLQzlgwMIlvsKtt1Yii8naRT6ZWhbfxRn/U7 9UUq1B1k2NHIPHVdPh6G+ERyplI5QrWBf+rboqhU/vMl4dPCOJFhFsv8fCI2XP39zmIj vpCysTRepLdeAac+ZibWydkIyeQ0NlvtPl9co0A1qBusdq66Kb6bc2Ci/s4QL72js8Kx AV+xyj6+hNDsaQja4IfPMyMlDG5P5EDFhUCBLp/xGifrmzIZDHV8/kI7Qd2x2eHq8/5d SjuCreQ6bv8o7rO9Zju3dErUsL8Bfv6NsYa/sdvptLWlNEFSI4FfGZqHlLsetFEubetY JIvw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783705059; x=1784309859; darn=lists.postgresql.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=qGyKFd2jxpqW7cLOm4Y19v71lprrP9Z38G3S94GBejE=; b=c5J9LeOBnIVRGaGJnHW/yrRDPOLoOGCVALgba8jmr/90mTy7hV9OzW0P89wKoVChhj t3vBxskmh+LSMae0g0fh93i5dpiqZCrvQhekhtHCXnyJA8Pp1Apc7iA2nkstBHUd3hkM aJ7NGoC3dC+t7mNTKPr3UVVvu+5g5vvoYD5saeJ+YSbvRtBP5OLHvERQ20QDMNO9AcMF YEqfC5zJwaJY3y6uk/hqpTDbDm3w7s4FbvbFUghylmRvMLy2sEYuJBiDm5jY5gu6nrBD WWGrSj8gtNoi3dDtmM7lEo/QLzkFbbFAjXO2sJpmdRnHGnota6J3bWaxPJ+B7HO9SVN5 Htrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783705059; x=1784309859; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=qGyKFd2jxpqW7cLOm4Y19v71lprrP9Z38G3S94GBejE=; b=EPhicxkneZVhVqnPwwSwzuvdycKRVWNWUtMish4fEnPaRW0/MhV4Y2UAPzeBAN5CTw hMeUrAQacb9ubhSks4fX8eW4TJ30JG5PWracpDtOSfdctTE8TnMfLe5J7fR1mOCNYWJ7 flaJKLnQlrip44IdtHoFM3LGXv67SZAU9jzKD9fHOJ+MCa1nSPYDmU/HUPLzBI4f51WE MSfck8kDUEB/jVxBhTkcuGl4xNzSdXmTUNg1B488buP9csg3s7Cq6QjgINpYNdTdbrJ3 roWxYY5LlfDKJFInKlH5lrIeRDBq+d2B82VKH940xCLwzBYmxIk8Y5Q6eF9ShDYgYjDb qURw== X-Forwarded-Encrypted: i=1; AFNElJ8l+wLansl8IoOBKziiUySt/gME+URie2tCdDqhHBG8Mbod+yNkrHNodckUP/OWTnf9GNRYgoet6wB2@lists.postgresql.org X-Gm-Message-State: AOJu0Yz6G1y04BR3a4yFsaEmD0fY6+B7WU5Wvu+1V7ij2Nnv5iFgAvBw CZuPBjNPi3EA9jRAcvETt+Rvd2HtyKEFJTgJjGxXv30dj9oD/ndR79Ka+81L72oS3jtGYyNzxMw AsN1sSWwN91rD+z4dMRLfiyzQx3rvmL4KjzKs47Y= X-Gm-Gg: AfdE7cnQ8tUmIu2FdSDXe5NeBQmnzaRAzQD7ne2mmTobAAsybUuaSm3hUOYYa3jIPfl ocavwGinlMe6IAA+t6eXd3HgNLqG6w3TLEPw+rp+/1PDAmF+Fw4q5whHDP95i1Jq+BuAOThE74W jhz0jmyJzaPvXG4UYwVx8L2CfgIkxq8U6JguKzcwPlPRowFJQ+aUU/wxFkETfslkjzEjz2O3Liq J5/JsRWJ/XnGMu13Y3lgPjjj/3TDnxVNTNlb2a/9tqZUpy2pXoDOPcIG2RdORiHRR9I4EoCCQyc S/fZjOMOdkb3lqIjVuxpIe2i339LHiySCFpQ+fzgpMjR09h/XXsJLg+lCCnbvc3j7lBgYLFYGU7 fIzCteWXthWi5dAR0 X-Received: by 2002:a05:6808:19a0:b0:497:d371:21c8 with SMTP id 5614622812f47-4a42ad2f5f3mr141468b6e.19.1783705059432; Fri, 10 Jul 2026 10:37:39 -0700 (PDT) MIME-Version: 1.0 References: <19483-80de42dc4e62cfd6@postgresql.org> <104812.1780847519@sss.pgh.pa.us> <5184088806e70ed5db7e83bd6540a016b3802c1d.camel@cybertec.at> <0d7531c192859057c6aad54c89a8d453376bd00c.camel@cybertec.at> <592839.1782153054@sss.pgh.pa.us> In-Reply-To: From: =?UTF-8?Q?H=C3=BCseyin_Demir?= Date: Fri, 10 Jul 2026 19:37:26 +0200 X-Gm-Features: AVVi8Cd-VWmWdRq3nHV1BlYpqGUOBZWGxmgF_cVwx_Hx_OZ9gL99oJn7GAsaags Message-ID: Subject: Re: BUG #19483: pg_upgrade fails with orphan records in pg_init_priv catalog table To: Laurenz Albe Cc: Tom Lane , Greg Sabino Mullane , pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000007466050656453227" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007466050656453227 Content-Type: text/plain; charset="UTF-8" > > > I'd say that your v6 patch is fine if the performance impact can be > > > shown to be small. > > > > To keep the ball rolling, I ran a pg_upgrade --link from a debug-enabled > > build on a database with 20000 empty tables. > > > > pg_upgrade took between 19 and 25 minutes, and I saw no noticeable effect > > of the patch. So I guess this is good to go. > > > > Yours, > > Laurenz Albe > > Thanks for the pg_upgrade test. > > Appreciated. Rebased v6 on current master. --0000000000007466050656453227 Content-Type: application/octet-stream; name="v7-0001-pg_dump-skip-dangling-initprivs.patch" Content-Disposition: attachment; filename="v7-0001-pg_dump-skip-dangling-initprivs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrf7xbjf0 RnJvbSAzYzc2YjFhZjljNjQ5MzQ3OTc2NDFmNTk1ZDJjMDNiODA5YzMwODhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBodXNleWluIDxodXNleWluLmRlbWlyQGFkeWVuLmNvbT4KRGF0 ZTogV2VkLCAyNCBKdW4gMjAyNiAxMzoyNToyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIHBnX2R1 bXA6IHNraXAgcGdfaW5pdF9wcml2cyBlbnRyaWVzIGZvciBub24tZXhpc3RlbnQgcm9sZXMKTUlN RS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkJlZm9yZSBjb21taXQgNTM0Mjg3NDAzOTEs IFBvc3RncmVTUUwgZGlkIG5vdCByZWNvcmQgcm9sZSBkZXBlbmRlbmNpZXMKZm9yIHBnX2luaXRf cHJpdnMgZW50cmllcyBpbiBwZ19zaGRlcGVuZCwgbWVhbmluZyBEUk9QIFJPTEUgY291bGQgbGVh dmUKYmVoaW5kIEFDTCBlbnRyaWVzIHdob3NlIGdyYW50ZWUgb3IgZ3JhbnRvciBPSUQgbm8gbG9u Z2VyIGV4aXN0cyBpbgpwZ19hdXRoaWQuICBDcm9zcy1jbHVzdGVyIHJlc3RvcmVzIGNhbiBwcm9k dWNlIHRoZSBzYW1lIHNpdHVhdGlvbiBvbgptb2Rlcm4gcmVsZWFzZXMuCgpEYW5nbGluZyBlbnRy aWVzIGNhdXNlZCBwZ19kdW1wIHRvIGVtaXQgaW52YWxpZCBTUUwgc3VjaCBhcwoiR1JBTlQgLi4u IFRPICI4Nzg2OCIiIHdpdGggYSBudW1lcmljIE9JRCBhcyByb2xlIG5hbWUsIHdoaWNoIGZhaWxz Cm9uIHJlc3RvcmUgb3IgcGdfdXBncmFkZS4gIEFkZGl0aW9uYWxseSwgd2hlbiBhbGwgaW5pdHBy aXZzIGVudHJpZXMgZm9yCmFuIG9iamVjdCBhcmUgZGFuZ2xpbmcgYW5kIHByb2FjbCBpcyBOVUxM LCBhIHNwdXJpb3VzIFJFVk9LRSB3YXMgZW1pdHRlZC4KCkZpeCBieSBmaWx0ZXJpbmcgZWFjaCBh Y2xpdGVtIHdob3NlIGdyYW50b3Igb3Igbm9uLVBVQkxJQyBncmFudGVlIE9JRApkb2VzIG5vdCBh cHBlYXIgaW4gcGdfcm9sZXMgKHVzZWQgaW5zdGVhZCBvZiBwZ19hdXRoaWQgdG8gc3VwcG9ydApu b24tc3VwZXJ1c2VyIHBnX2R1bXApLiAgVGhlIGZpbHRlcmluZyBpcyBhcHBsaWVkIHNlcnZlci1z aWRlIGluIHRoZQpxdWVyaWVzIHRoYXQgZmV0Y2ggcGdfaW5pdF9wcml2cyBkYXRhIChnZXRBZGRp dGlvbmFsQUNMcyBhbmQgdGhlCmNvbHVtbi1sZXZlbCBBQ0wgcHJlcGFyZWQgc3RhdGVtZW50KSwg d2hlcmUgdGhlIE9JRCBjaGVjayBpcwphdXRob3JpdGF0aXZlLiAgVGhpcyBhdm9pZHMgbW9kaWZ5 aW5nIHRoZSBXSEVSRSBjbGF1c2VzIGluCmdldEFnZ3JlZ2F0ZXMvZ2V0RnVuY3MsIHByZXNlcnZp bmcgcGdfZHVtcCBwZXJmb3JtYW5jZSBvbiBsYXJnZSBzY2hlbWFzLgoKSWYgYWxsIGVudHJpZXMg Zm9yIGFuIG9iamVjdCBhcmUgZGFuZ2xpbmcgdGhlIHJlc3VsdCBpcyBOVUxMIGFuZCBubyBBQ0wK aXMgZW1pdHRlZCwgd2hpY2ggaXMgY29ycmVjdCAtLSB3ZSBjYW5ub3QgcmVzdG9yZSBncmFudHMg aW52b2x2aW5nIHJvbGVzCnRoYXQgZG8gbm90IGV4aXN0LgoKQXV0aG9yOiBIw7xzZXlpbiBEZW1p ciA8aHVzZXlpbi5kM3JAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t LzE5NDgzLTgwZGU0MmRjNGU2MmNmZDYlNDBwb3N0Z3Jlc3FsLm9yZwpCYWNrcGF0Y2gtdGhyb3Vn aDogMTQKLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAg fCAgMzcgKysrKy0KIC4uLi90LzAwOF9wZ19kdW1wX2RhbmdsaW5nX2luaXRwcml2cy5wbCAgICAg ICB8IDE0MCArKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTc0IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2Jpbi9wZ19kdW1w L3QvMDA4X3BnX2R1bXBfZGFuZ2xpbmdfaW5pdHByaXZzLnBsCgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNGQ2 NjBkMTRiNGMuLjlhNzIwZjZmYTRjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTIzNyw2ICsyMzcsMzUgQEAg c3RhdGljIGludAluc2VxdWVuY2VzID0gMDsKIAlmbXRRdWFsaWZpZWRJZCgob2JqKS0+ZG9iai5u YW1lc3BhY2UtPmRvYmoubmFtZSwgXAogCQkJCSAgIChvYmopLT5kb2JqLm5hbWUpCiAKKy8qCisg KiBTUUwgZXhwcmVzc2lvbiB0aGF0IGZpbHRlcnMgZGFuZ2xpbmcgcm9sZSBPSURzIGZyb20gYSBw Z19pbml0X3ByaXZzCisgKiBhY2xpdGVtW10gY29sdW1uLiAgQW4gYWNsaXRlbSBpcyBkYW5nbGlu ZyB3aGVuIGl0cyBncmFudG9yIG9yIG5vbi1QVUJMSUMKKyAqIGdyYW50ZWUgT0lEIG5vIGxvbmdl ciBleGlzdHMgaW4gcGdfcm9sZXMuICBXZSB1c2UgcGdfcm9sZXMgcmF0aGVyIHRoYW4KKyAqIHBn X2F1dGhpZCBzbyB0aGF0IG5vbi1zdXBlcnVzZXIgcGdfZHVtcCB3b3Jrcy4KKyAqCisgKiBBcHBs aWVkIG9ubHkgaW4gcXVlcmllcyB0aGF0IGZldGNoIHBnX2luaXRfcHJpdnMgZGF0YSAobm90IGlu IFdIRVJFIGNsYXVzZXMKKyAqIG9mIHBlci1vYmplY3QgcXVlcmllcykgdG8gYXZvaWQgcnVubmlu ZyB0aGlzIHN1YnF1ZXJ5IHBlciBmdW5jdGlvbi9hZ2dyZWdhdGUuCisgKi8KKyNkZWZpbmUgU0FG RV9JTklUUFJJVlMoY29sKSBcCisJIk5VTExJRihcbiIgXAorCSIgIEFSUkFZKFxuIiBcCisJIiAg ICBTRUxFQ1QgZWx0IEZST00gcGdfY2F0YWxvZy51bm5lc3QoIiBjb2wgIikgQVMgZWx0XG4iIFwK KwkiICAgIFdIRVJFIE5PVCBFWElTVFMgKFxuIiBcCisJIiAgICAgIFNFTEVDVCAxIEZST00gcGdf Y2F0YWxvZy5hY2xleHBsb2RlKEFSUkFZW2VsdF0pIGFjZVxuIiBcCisJIiAgICAgIFdIRVJFIE5P VCBFWElTVFMgKFxuIiBcCisJIiAgICAgICAgU0VMRUNUIDEgRlJPTSBwZ19jYXRhbG9nLnBnX3Jv bGVzXG4iIFwKKwkiICAgICAgICBXSEVSRSBvaWQgPSBhY2UuZ3JhbnRvclxuIiBcCisJIiAgICAg IClcbiIgXAorCSIgICAgICBPUiAoYWNlLmdyYW50ZWUgPD4gMFxuIiBcCisJIiAgICAgICAgICBB TkQgTk9UIEVYSVNUUyAoXG4iIFwKKwkiICAgICAgICAgICAgU0VMRUNUIDEgRlJPTSBwZ19jYXRh bG9nLnBnX3JvbGVzXG4iIFwKKwkiICAgICAgICAgICAgV0hFUkUgb2lkID0gYWNlLmdyYW50ZWVc biIgXAorCSIgICAgICAgICAgKSlcbiIgXAorCSIgICAgKVxuIiBcCisJIiAgKSxcbiIgXAorCSIg IEFSUkFZW106OnBnX2NhdGFsb2cuYWNsaXRlbVtdXG4iIFwKKwkiKSIKKwogc3RhdGljIHZvaWQg aGVscChjb25zdCBjaGFyICpwcm9nbmFtZSk7CiBzdGF0aWMgdm9pZCBzZXR1cF9jb25uZWN0aW9u KEFyY2hpdmUgKkFILAogCQkJCQkJCSBjb25zdCBjaGFyICpkdW1wZW5jb2RpbmcsIGNvbnN0IGNo YXIgKmR1bXBzbmFwc2hvdCwKQEAgLTEwNzQ4LDggKzEwNzc3LDkgQEAgZ2V0QWRkaXRpb25hbEFD THMoQXJjaGl2ZSAqZm91dCkKIAogCS8qIEZldGNoIGluaXRpYWwtcHJpdmlsZWdlcyBkYXRhICov CiAJcHJpbnRmUFFFeHBCdWZmZXIocXVlcnksCi0JCQkJCSAgIlNFTEVDVCBvYmpvaWQsIGNsYXNz b2lkLCBvYmpzdWJpZCwgcHJpdnR5cGUsIGluaXRwcml2cyAiCi0JCQkJCSAgIkZST00gcGdfaW5p dF9wcml2cyIpOworCQkJCQkgICJTRUxFQ1QgcGlwLm9iam9pZCwgcGlwLmNsYXNzb2lkLCBwaXAu b2Jqc3ViaWQsIHBpcC5wcml2dHlwZSxcbiIKKwkJCQkJICAiICAiIFNBRkVfSU5JVFBSSVZTKCJw aXAuaW5pdHByaXZzIikgIiBBUyBpbml0cHJpdnNcbiIKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9n LnBnX2luaXRfcHJpdnMgcGlwIik7CiAKIAlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVl cnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CiAKQEAgLTE2ODkyLDcgKzE2OTIyLDggQEAgZHVt cFRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJCQkJCQkg IlNFTEVDVCBhdC5hdHRuYW1lLCAiCiAJCQkJCQkJCSAiYXQuYXR0YWNsLCAiCiAJCQkJCQkJCSAi J3t9JyBBUyBhY2xkZWZhdWx0LCAiCi0JCQkJCQkJCSAicGlwLnByaXZ0eXBlLCBwaXAuaW5pdHBy aXZzICIKKwkJCQkJCQkJICJwaXAucHJpdnR5cGUsXG4iCisJCQkJCQkJCSAiICAiIFNBRkVfSU5J VFBSSVZTKCJwaXAuaW5pdHByaXZzIikgIiBBUyBpbml0cHJpdnNcbiIKIAkJCQkJCQkJICJGUk9N IHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIGF0ICIKIAkJCQkJCQkJICJMRUZUIEpPSU4gcGdfY2F0 YWxvZy5wZ19pbml0X3ByaXZzIHBpcCBPTiAiCiAJCQkJCQkJCSAiKGF0LmF0dHJlbGlkID0gcGlw Lm9iam9pZCAiCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDhfcGdfZHVtcF9kYW5n bGluZ19pbml0cHJpdnMucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDhfcGdfZHVtcF9kYW5nbGlu Z19pbml0cHJpdnMucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE1 ODBhMjU2MzhjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDA4X3BnX2R1 bXBfZGFuZ2xpbmdfaW5pdHByaXZzLnBsCkBAIC0wLDAgKzEsMTQwIEBACisjIENvcHlyaWdodCAo YykgMjAyNC0yMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorIworIyBU ZXN0cyB0aGF0IHBnX2R1bXAgc2lsZW50bHkgc2tpcHMgcGdfaW5pdF9wcml2cyBlbnRyaWVzIHRo YXQgcmVmZXJlbmNlCisjIHJvbGVzIG5vIGxvbmdlciBwcmVzZW50IGluIHBnX2F1dGhpZCwgcmF0 aGVyIHRoYW4gZW1pdHRpbmcgaW52YWxpZCBHUkFOVAorIyBzdGF0ZW1lbnRzIHdpdGggbnVtZXJp YyBPSURzIGFzIHJvbGUgbmFtZXMuCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3MgRkFUQUwg PT4gJ2FsbCc7CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRub2RlID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdtYWluJyk7Ciskbm9kZS0+aW5pdDsKKyRub2RlLT5zdGFy dDsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRFIERBVEFCQVNFIHJlZ3Jl c3NfZGFuZ2xpbmcnKTsKKworIyAtLS0gU2V0dXAgLS0tCisjIFNpbXVsYXRlIGRhbmdsaW5nIHBn X2luaXRfcHJpdnMgZW50cmllcyBieSBpbnNlcnRpbmcgZ3JhbnRzIGZvciBhIHJvbGUKKyMgYW5k IHRoZW4gZGVsZXRpbmcgdGhlIHJvbGUgZGlyZWN0bHkgZnJvbSBwZ19hdXRoaWQgKGJ5cGFzc2lu ZyBwZ19zaGRlcGVuZCkuCiskbm9kZS0+c2FmZV9wc3FsKAorCSdyZWdyZXNzX2RhbmdsaW5nJywK KwlxeworU0VUIGFsbG93X3N5c3RlbV90YWJsZV9tb2RzID0gdHJ1ZTsKKworLS0gUm9sZXMgZm9y IHRlc3RpbmcKK0NSRUFURSBST0xFIGdob3N0X2dyYW50ZWU7CitDUkVBVEUgUk9MRSBnaG9zdF9n cmFudG9yOworQ1JFQVRFIFJPTEUgIjAwNyI7CisKKy0tIENhc2UgMTogZGFuZ2xpbmcgZ3JhbnRl ZSAoZnVuY3Rpb24pCitDUkVBVEUgRlVOQ1RJT04gcHVibGljLnRlc3RfZnVuY19ncmFudGVlKCkg UkVUVVJOUyBpbnQgTEFOR1VBR0Ugc3FsIEFTICdTRUxFQ1QgMSc7CitJTlNFUlQgSU5UTyBwZ19p bml0X3ByaXZzIChvYmpvaWQsIGNsYXNzb2lkLCBvYmpzdWJpZCwgcHJpdnR5cGUsIGluaXRwcml2 cykKK1NFTEVDVCBwLm9pZCwKKyAgICAgICAoU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJF IHJlbG5hbWUgPSAncGdfcHJvYycpLAorICAgICAgIDAsICdlJywKKyAgICAgICBBUlJBWVsoJ2do b3N0X2dyYW50ZWU9WC8nIHx8IGN1cnJlbnRfdXNlcik6OmFjbGl0ZW1dCitGUk9NIHBnX3Byb2Mg cAorV0hFUkUgcC5wcm9uYW1lID0gJ3Rlc3RfZnVuY19ncmFudGVlJworICBBTkQgcC5wcm9uYW1l c3BhY2UgPSAncHVibGljJzo6cmVnbmFtZXNwYWNlOworCistLSBDYXNlIDI6IGRhbmdsaW5nIGdy YW50b3IgKGZ1bmN0aW9uKQorQ1JFQVRFIEZVTkNUSU9OIHB1YmxpYy50ZXN0X2Z1bmNfZ3JhbnRv cigpIFJFVFVSTlMgaW50IExBTkdVQUdFIHNxbCBBUyAnU0VMRUNUIDInOworSU5TRVJUIElOVE8g cGdfaW5pdF9wcml2cyAob2Jqb2lkLCBjbGFzc29pZCwgb2Jqc3ViaWQsIHByaXZ0eXBlLCBpbml0 cHJpdnMpCitTRUxFQ1QgcC5vaWQsCisgICAgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBX SEVSRSByZWxuYW1lID0gJ3BnX3Byb2MnKSwKKyAgICAgICAwLCAnZScsCisgICAgICAgQVJSQVlb KGN1cnJlbnRfdXNlciB8fCAnPVgvZ2hvc3RfZ3JhbnRvcicpOjphY2xpdGVtXQorRlJPTSBwZ19w cm9jIHAKK1dIRVJFIHAucHJvbmFtZSA9ICd0ZXN0X2Z1bmNfZ3JhbnRvcicKKyAgQU5EIHAucHJv bmFtZXNwYWNlID0gJ3B1YmxpYyc6OnJlZ25hbWVzcGFjZTsKKworLS0gQ2FzZSAzOiBkYW5nbGlu ZyBjb2x1bW4tbGV2ZWwgZ3JhbnRlZSAodGFibGUpCitDUkVBVEUgVEFCTEUgcHVibGljLnRlc3Rf dGJsIChpZCBpbnQsIHNlY3JldCB0ZXh0KTsKK0lOU0VSVCBJTlRPIHBnX2luaXRfcHJpdnMgKG9i am9pZCwgY2xhc3NvaWQsIG9ianN1YmlkLCBwcml2dHlwZSwgaW5pdHByaXZzKQorU0VMRUNUIGMu b2lkLAorICAgICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdw Z19jbGFzcycpLAorICAgICAgIDIsICdlJywKKyAgICAgICBBUlJBWVsoJ2dob3N0X2dyYW50ZWU9 ci8nIHx8IGN1cnJlbnRfdXNlcik6OmFjbGl0ZW1dCitGUk9NIHBnX2NsYXNzIGMKK1dIRVJFIGMu cmVsbmFtZSA9ICd0ZXN0X3RibCcKKyAgQU5EIGMucmVsbmFtZXNwYWNlID0gJ3B1YmxpYyc6OnJl Z25hbWVzcGFjZTsKKworLS0gQ2FzZSA0OiBzcHVyaW91cyBSRVZPS0UgLS0gYWxsLWRhbmdsaW5n IGluaXRwcml2cyBvbiBhIGNhdGFsb2cgZnVuY3Rpb24KKy0tIHdpdGggTlVMTCBwcm9hY2wgKHNp bXVsYXRlcyB0aGUgc3B1cmlvdXMtc2VsZWN0aW9uIHNjZW5hcmlvKQorQ1JFQVRFIEZVTkNUSU9O IHB1YmxpYy50ZXN0X2Z1bmNfcmV2b2tlKCkgUkVUVVJOUyBpbnQgTEFOR1VBR0Ugc3FsIEFTICdT RUxFQ1QgMyc7CitJTlNFUlQgSU5UTyBwZ19pbml0X3ByaXZzIChvYmpvaWQsIGNsYXNzb2lkLCBv YmpzdWJpZCwgcHJpdnR5cGUsIGluaXRwcml2cykKK1NFTEVDVCBwLm9pZCwKKyAgICAgICAoU0VM RUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdfcHJvYycpLAorICAgICAg IDAsICdlJywKKyAgICAgICBBUlJBWVsoJ2dob3N0X2dyYW50ZWU9WC8nIHx8IGN1cnJlbnRfdXNl cik6OmFjbGl0ZW1dCitGUk9NIHBnX3Byb2MgcAorV0hFUkUgcC5wcm9uYW1lID0gJ3Rlc3RfZnVu Y19yZXZva2UnCisgIEFORCBwLnByb25hbWVzcGFjZSA9ICdwdWJsaWMnOjpyZWduYW1lc3BhY2U7 CisKKy0tIENhc2UgNTogdmFsaWQgYWxsLWRpZ2l0IHJvbGUgIjAwNyIgd2l0aCBhIGdyYW50ICht dXN0IE5PVCBiZSBmaWx0ZXJlZCkKK0NSRUFURSBGVU5DVElPTiBwdWJsaWMudGVzdF9mdW5jXzAw NygpIFJFVFVSTlMgaW50IExBTkdVQUdFIHNxbCBBUyAnU0VMRUNUIDcnOworR1JBTlQgRVhFQ1VU RSBPTiBGVU5DVElPTiBwdWJsaWMudGVzdF9mdW5jXzAwNygpIFRPICIwMDciOworCistLSBOb3cg ZGVsZXRlIHRoZSBnaG9zdCByb2xlcyB0byBjcmVhdGUgZGFuZ2xpbmcgT0lEcworREVMRVRFIEZS T00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAnZ2hvc3RfZ3JhbnRlZSc7CitERUxFVEUgRlJP TSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdnaG9zdF9ncmFudG9yJzsKKworCit9KTsKKwor bXkgJHRlbXBkaXIgICA9IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0ZW1wZGlyOworbXkgJGR1 bXBfZmlsZSA9ICIkdGVtcGRpci9kYW5nbGluZy5zcWwiOworCisjIHBnX2R1bXAgbXVzdCBzdWNj ZWVkIGV2ZW4gd2l0aCBkYW5nbGluZyBwZ19pbml0X3ByaXZzIGVudHJpZXMuCitjb21tYW5kX29r KAorCVsKKwkJJ3BnX2R1bXAnLAorCQknLS1wb3J0JyAgICAgICAgPT4gJG5vZGUtPnBvcnQsCisJ CSctLXNjaGVtYS1vbmx5JywKKwkJJy1mJyAgICAgICAgICAgID0+ICRkdW1wX2ZpbGUsCisJCSdy ZWdyZXNzX2RhbmdsaW5nJywKKwldLAorCSdwZ19kdW1wIHN1Y2NlZWRzIHdpdGggZGFuZ2xpbmcg cGdfaW5pdF9wcml2cyBlbnRyaWVzJyk7CisKK215ICRkdW1wID0gc2x1cnBfZmlsZSgkZHVtcF9m aWxlKTsKKworIyAtLS0gQ2FzZSAxOiBkYW5nbGluZyBncmFudGVlIC0tLQorbGlrZSgkZHVtcCwg cXIvQ1JFQVRFIEZVTkNUSU9OIHB1YmxpY1wudGVzdF9mdW5jX2dyYW50ZWUvLAorCSdjYXNlIDE6 IGZ1bmN0aW9uIGlzIHByZXNlbnQgaW4gZHVtcCcpOwordW5saWtlKCRkdW1wLCBxci9HUkFOVFxi LipcYnRlc3RfZnVuY19ncmFudGVlLywKKwknY2FzZSAxOiBubyBHUkFOVCBmb3IgZnVuY3Rpb24g d2l0aCBkYW5nbGluZyBncmFudGVlJyk7CisKKyMgLS0tIENhc2UgMjogZGFuZ2xpbmcgZ3JhbnRv ciAtLS0KK2xpa2UoJGR1bXAsIHFyL0NSRUFURSBGVU5DVElPTiBwdWJsaWNcLnRlc3RfZnVuY19n cmFudG9yLywKKwknY2FzZSAyOiBmdW5jdGlvbiBpcyBwcmVzZW50IGluIGR1bXAnKTsKK3VubGlr ZSgkZHVtcCwgcXIvR1JBTlRcYi4qXGJ0ZXN0X2Z1bmNfZ3JhbnRvci8sCisJJ2Nhc2UgMjogbm8g R1JBTlQgZm9yIGZ1bmN0aW9uIHdpdGggZGFuZ2xpbmcgZ3JhbnRvcicpOworCisjIC0tLSBDYXNl IDM6IGNvbHVtbi1sZXZlbCBkYW5nbGluZyAtLS0KK2xpa2UoJGR1bXAsIHFyL0NSRUFURSBUQUJM RSBwdWJsaWNcLnRlc3RfdGJsLywKKwknY2FzZSAzOiB0YWJsZSBpcyBwcmVzZW50IGluIGR1bXAn KTsKK3VubGlrZSgkZHVtcCwgcXIvR1JBTlRcYi4qXGJ0ZXN0X3RibFxiLipzZWNyZXQvaSwKKwkn Y2FzZSAzOiBubyBjb2x1bW4gR1JBTlQgZm9yIGRhbmdsaW5nIGNvbHVtbi1sZXZlbCBlbnRyeScp OworCisjIC0tLSBDYXNlIDQ6IHNwdXJpb3VzIFJFVk9LRSAtLS0KK2xpa2UoJGR1bXAsIHFyL0NS RUFURSBGVU5DVElPTiBwdWJsaWNcLnRlc3RfZnVuY19yZXZva2UvLAorCSdjYXNlIDQ6IGZ1bmN0 aW9uIGlzIHByZXNlbnQgaW4gZHVtcCcpOwordW5saWtlKCRkdW1wLCBxci9SRVZPS0VcYi4qXGJ0 ZXN0X2Z1bmNfcmV2b2tlLywKKwknY2FzZSA0OiBubyBzcHVyaW91cyBSRVZPS0UgZm9yIGZ1bmN0 aW9uIHdpdGggYWxsLWRhbmdsaW5nIGluaXRwcml2cycpOworCisjIC0tLSBDYXNlIDU6IHZhbGlk IGFsbC1kaWdpdCByb2xlICIwMDciIC0tLQorbGlrZSgkZHVtcCwgcXIvQ1JFQVRFIEZVTkNUSU9O IHB1YmxpY1wudGVzdF9mdW5jXzAwNy8sCisJJ2Nhc2UgNTogZnVuY3Rpb24gaXMgcHJlc2VudCBp biBkdW1wJyk7CitsaWtlKCRkdW1wLCBxci9HUkFOVFxiLipcYnRlc3RfZnVuY18wMDdcYi4qVE9c cysiMDA3Ii8sCisJJ2Nhc2UgNTogR1JBTlQgdG8gdmFsaWQgYWxsLWRpZ2l0IHJvbGUgIjAwNyIg aXMgcHJlc2VydmVkJyk7CisKKyMgLS0tIEdlbmVyYWw6IG5vIG51bWVyaWMgT0lEIGFzIHJvbGUg bmFtZSAob3RoZXIgdGhhbiB0aGUgdmFsaWQgIjAwNyIpIC0tLQorIyBNYXRjaCBhbnkgR1JBTlQg Li4uIFRPICJkaWdpdHMiIHdoZXJlIHRoZSBkaWdpdHMgYXJlIE5PVCAiMDA3Ii4KK3VubGlrZSgk ZHVtcCwgcXIvR1JBTlRcYi4qXGJUT1xzKyIoPyEwMDciKVswLTldKyIvLAorCSdubyBHUkFOVCB3 aXRoIGJhcmUgbnVtZXJpYyBPSUQgYXMgcm9sZSBuYW1lIChvdGhlciB0aGFuIHZhbGlkICIwMDci KScpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000007466050656453227--