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 1ve9AG-009Q2h-1g for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Jan 2026 09:52:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1ve9AF-006cIp-1X for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Jan 2026 09:52:16 +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 1ve9AF-006cIh-0J for pgsql-hackers@lists.postgresql.org; Fri, 09 Jan 2026 09:52:15 +0000 Received: from mail-oa1-x2e.google.com ([2001:4860:4864:20::2e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ve9AD-005Rlj-2L for pgsql-hackers@lists.postgresql.org; Fri, 09 Jan 2026 09:52:15 +0000 Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-3f0c93ecf42so1866842fac.0 for ; Fri, 09 Jan 2026 01:52:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767952331; x=1768557131; 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=UhZLGozKcAszTa1BSHSjudyvI+O5x5fHxbghbyjv5+E=; b=EKNBm6xaxB57ot/cyQz2CrH0UWARiwvH+oT0h9mKkLx9pAb6Rq4Y6InuDMFyyOPY3r OKdfGYeOsojJ8doGCgMaBD7QRvBxugQHRgmH1UVdjsW7HBKDxMBHNfunP75WrqNa2XU3 EQvQhDJQyVzEawyMI8Lz2Zyj36stlCvEQJzNIYrpGGPjWUDltYQ/+xl3aoqQgHxoWzJr 5uH14p5IYhTZtJAjR6cLHOhPdm8sbTKF9CkDQ6XZ6dCH7GtyBGrKOOf7Z41n/VCnoxPf dN7AYW7QS2mG7a65pN6bt8rN6OVVKmuUo0NnVfFwhgZ9TOWB5VvAAQ2Wuzg3vt+ydZg6 q9Pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767952331; x=1768557131; h=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; bh=UhZLGozKcAszTa1BSHSjudyvI+O5x5fHxbghbyjv5+E=; b=Oh9KHmG5hcLan79pNmWsVxoHWy2JuQ/0+nR8wk94pVDgOsi5s+QijkgtToXmeRnjYC Q/Hh/voMFxdEZR0JhDPnvbw+xec6GnPDG44YzCTmGgLP/FWQQYtvlG+b1y1KrLBNbTrd SDIzhQFrOc5sEW5ZTgjLybA54k4/OLFS0igCYm0tc6hVFH0yGSMNaVJBpZmdKBgsqBdK 9L8w1WugTRhOgS0KJZFV6lKCz0IrBarEt4OE5qZwm/vjgvu/5xSvY/9Hew2rLzqbY2VE lsxz/cn9ZhvK8IlcqcPdNnt8tFsjbn+7irQ26RfZxukAsuaT/L33bhjOk7QoNz8C8AlD CsZg== X-Forwarded-Encrypted: i=1; AJvYcCWLfXfKPJMZPCp1HX8tAtT+UQTpcGS9FYiTA2JkgXIQ09c8fLcZqJ2CaxPYJX8fbzH+8OKiqA/sONZCoZ2I@lists.postgresql.org X-Gm-Message-State: AOJu0YzGtoYhafy4lCph3M4eDxCKdCXC0hh5EOSkYfnZ3fiaZYFHgoWu uchLCucTFw/Ux9PYPQIwHoIrT81yMUzqvHnDvcc0QzODX7YTBlDBMblHmNFoJddJHPHXSQkm9PH LQ5a4ODsEViL8ZRi5NwaiYjwcwBwnaB8= X-Gm-Gg: AY/fxX4ljVxJ1eVLWMbSV7r0s1D3vj4PJWhrydYn4N2XqmmYGO4J+T3+S5rhXhiKMru rzIJjg+H4MzK6spALkei1SWWaNX/38vjkPUNZgjNelaitV+gw+J5RGQhTVeFRu5duCgdE3PJi9t DkiZF7/k8uCqVM0eoV6c9y5spiaaKVdW/y3HByaRkDvTJjKXqHX/ZpzyV1vYcyOQ1OUXemTUUaj SvUTYaQvf0CuSnDzvDF/i2uN+EPCKl8//PoYVc5esrxoqASsGGTQ/i8ksg9tHyZJhY/lSbfYxQm EZjsAtNZ X-Google-Smtp-Source: AGHT+IEzauy6AMmKDzKcSNNIyPmYrVq4WjAdCm91YQ0sdjChq4mzl+W1XFGK8JJnWqLGsaGU91uSOWkKF1LfSidu/NU= X-Received: by 2002:a05:6871:7410:b0:3e8:8e57:a40b with SMTP id 586e51a60fabf-3ffa258da9bmr7091382fac.27.1767952331456; Fri, 09 Jan 2026 01:52:11 -0800 (PST) MIME-Version: 1.0 References: <7900964C-F99E-481E-BEE5-4338774CEB9F@gmail.com> <1607957.1767725532@sss.pgh.pa.us> <1654153.1767753474@sss.pgh.pa.us> <1752324.1767805242@sss.pgh.pa.us> <1892152.1767844982@sss.pgh.pa.us> In-Reply-To: From: Richard Guo Date: Fri, 9 Jan 2026 18:52:00 +0900 X-Gm-Features: AQt7F2rDHjUf3yH_9mKEAbbM3L7PzwKzEEbt0hyF3RJfPzhUeFrYLCYC8k5O-oo Message-ID: Subject: Re: Fwd: pg18 bug? SELECT query doesn't work To: Tom Lane Cc: Eric Ridge , Pg Hackers Content-Type: multipart/mixed; boundary="000000000000b25a600647f17a1c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b25a600647f17a1c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jan 8, 2026 at 10:30=E2=80=AFPM Richard Guo wrote: > How about we add a comment to check_output_expressions() along the > below lines? I've worked on the comment a bit more in the attached patch, which also includes my previously proposed code changes and some test cases. I think this patch is suitable for fixing the current bug in the back branches. We can use a separate patch for the more ambitious goal of moving the push-down of subquery's restriction clauses into subquery_planner(). Any thoughts? - Richard --000000000000b25a600647f17a1c Content-Type: application/octet-stream; name="v1-0001-Fix-unsafe-pushdown-of-quals-referencing-grouping.patch" Content-Disposition: attachment; filename="v1-0001-Fix-unsafe-pushdown-of-quals-referencing-grouping.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk6p5s2w0 RnJvbSBhNDhiOTRiYjdjOGU2MGUxNTIzOGJmMjkxNzY2YjMyMmQxNjAxZDAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEd1byA8Z3VvZmVuZ2xpbnV4QGdtYWlsLmNvbT4K RGF0ZTogRnJpLCA5IEphbiAyMDI2IDEzOjAwOjExICswOTAwClN1YmplY3Q6IFtQQVRDSCB2MV0g Rml4IHVuc2FmZSBwdXNoZG93biBvZiBxdWFscyByZWZlcmVuY2luZyBncm91cGluZyBWYXJzCgpX aGVuIGNoZWNraW5nIGEgc3VicXVlcnkncyBvdXRwdXQgZXhwcmVzc2lvbnMgdG8gc2VlIGlmIGl0 J3Mgc2FmZSB0bwpwdXNoIGRvd24gYW4gdXBwZXItbGV2ZWwgcXVhbCwgY2hlY2tfb3V0cHV0X2V4 cHJlc3Npb25zKCkgcHJldmlvdXNseQp0cmVhdGVkIGdyb3VwaW5nIFZhcnMgYXMgb3BhcXVlIFZh cnMuICBUaGlzIGltcGxpY2l0bHkgYXNzdW1lZCB0aGV5CndlcmUgc3RhYmxlIGFuZCBzY2FsYXIu CgpIb3dldmVyLCBhIGdyb3VwaW5nIFZhcidzIHVuZGVybHlpbmcgZXhwcmVzc2lvbiBjb3JyZXNw b25kcyB0byB0aGUKZ3JvdXBpbmcgY2xhdXNlLCB3aGljaCBtYXkgYmUgdm9sYXRpbGUgb3Igc2V0 LXJldHVybmluZy4gIElmIGFuCnVwcGVyLWxldmVsIHF1YWwgcmVmZXJlbmNlcyBzdWNoIGFuIG91 dHB1dCBjb2x1bW4sIHB1c2hpbmcgaXQgZG93bgppbnRvIHRoZSBzdWJxdWVyeSBpcyB1bnNhZmUu ICBUaGlzIGNhbiBjYXVzZSBzdHJhbmdlIHJlc3VsdHMgZHVlIHRvCm11bHRpcGxlIGV2YWx1YXRp b24gb2YgYSB2b2xhdGlsZSBmdW5jdGlvbiwgb3IgaW50cm9kdWNlIFNSRnMgaW50bwp0aGUgc3Vi cXVlcnkncyBXSEVSRS9IQVZJTkcgcXVhbHMuCgpUaGlzIHBhdGNoIHRlYWNoZXMgY2hlY2tfb3V0 cHV0X2V4cHJlc3Npb25zKCkgdG8gbG9vayB0aHJvdWdoIGdyb3VwaW5nClZhcnMgdG8gdGhlaXIg dW5kZXJseWluZyBleHByZXNzaW9ucy4gIFRoaXMgZW5zdXJlcyB0aGF0IGFueQp2b2xhdGlsaXR5 IG9yIHNldC1yZXR1cm5pbmcgcHJvcGVydGllcyBpbiB0aGUgZ3JvdXBpbmcgY2xhdXNlIGFyZQpk ZXRlY3RlZCwgcHJldmVudGluZyB0aGUgdW5zYWZlIHB1c2hkb3duLgoKV2UgZG8gbm90IG5lZWQg dG8gcmVjdXJzaXZlbHkgZXhhbWluZSB0aGUgVmFycyBjb250YWluZWQgaW4gdGhlc2UKdW5kZXJs eWluZyBleHByZXNzaW9ucy4gIEV2ZW4gaWYgdGhleSByZWZlcmVuY2Ugb3V0cHV0cyBmcm9tCmxv d2VyLWxldmVsIHN1YnF1ZXJpZXMgKGF0IGFueSBkZXB0aCksIHRob3NlIHJlZmVyZW5jZXMgYXJl IGd1YXJhbnRlZWQKbm90IHRvIGV4cGFuZCB0byB2b2xhdGlsZSBvciBzZXQtcmV0dXJuaW5nIGZ1 bmN0aW9ucywgYmVjYXVzZQpzdWJxdWVyaWVzIGNvbnRhaW5pbmcgc3VjaCBmdW5jdGlvbnMgaW4g dGhlaXIgdGFyZ2V0bGlzdHMgYXJlIG5ldmVyCnB1bGxlZCB1cC4KLS0tCiBzcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jICAgfCAgMjYgKysrKystCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvdXRpbC92YXIuYyAgICAgICAgfCAgIDggKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3Vic2VsZWN0Lm91dCB8IDEwNCArKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3N1YnNlbGVjdC5zcWwgICAgICB8ICA0MCArKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wYXRoL2FsbHBhdGhzLmMKaW5kZXggNmU2NDFjMTQ2YTMuLmUwMGQxNzAwODE3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMKQEAgLTQyMDQsOSArNDIwNCwzMyBAQCBy ZWN1cnNlX3B1c2hkb3duX3NhZmUoTm9kZSAqc2V0T3AsIFF1ZXJ5ICp0b3BxdWVyeSwKIHN0YXRp YyB2b2lkCiBjaGVja19vdXRwdXRfZXhwcmVzc2lvbnMoUXVlcnkgKnN1YnF1ZXJ5LCBwdXNoZG93 bl9zYWZldHlfaW5mbyAqc2FmZXR5SW5mbykKIHsKKwlMaXN0CSAgICpmbGF0dGVuZWRfdGFyZ2V0 TGlzdCA9IHN1YnF1ZXJ5LT50YXJnZXRMaXN0OwogCUxpc3RDZWxsICAgKmxjOwogCi0JZm9yZWFj aChsYywgc3VicXVlcnktPnRhcmdldExpc3QpCisJLyoKKwkgKiBXZSBtdXN0IGJlIGNhcmVmdWwg d2l0aCBncm91cGluZyBWYXJzIGFuZCBqb2luIGFsaWFzIFZhcnMgaW4gdGhlCisJICogc3VicXVl cnkncyBvdXRwdXRzLCBhcyB0aGV5IGhpZGUgdGhlIHVuZGVybHlpbmcgZXhwcmVzc2lvbnMuCisJ ICoKKwkgKiBXZSBuZWVkIHRvIGV4cGFuZCBncm91cGluZyBWYXJzIHRvIHRoZWlyIHVuZGVybHlp bmcgZXhwcmVzc2lvbnMgKHRoZQorCSAqIGdyb3VwaW5nIGNsYXVzZXMpIGJlY2F1c2UgdGhlIGdy b3VwaW5nIGV4cHJlc3Npb25zIHRoZW1zZWx2ZXMgbWlnaHQgYmUKKwkgKiB2b2xhdGlsZSBvciBz ZXQtcmV0dXJuaW5nLiAgSG93ZXZlciwgd2UgZG8gbm90IG5lZWQgdG8gZXhwYW5kIGpvaW4KKwkg KiBhbGlhcyBWYXJzLCBhcyB0aGVpciB1bmRlcmx5aW5nIHN0cnVjdHVyZSBkb2VzIG5vdCBpbnRy b2R1Y2Ugdm9sYXRpbGUKKwkgKiBvciBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhdCB0aGUgY3Vy cmVudCBsZXZlbC4KKwkgKgorCSAqIEluIG5laXRoZXIgY2FzZSBkbyB3ZSBuZWVkIHRvIHJlY3Vy c2l2ZWx5IGV4YW1pbmUgdGhlIFZhcnMgY29udGFpbmVkIGluCisJICogdGhlc2UgdW5kZXJseWlu ZyBleHByZXNzaW9ucy4gIEV2ZW4gaWYgdGhleSByZWZlcmVuY2Ugb3V0cHV0cyBmcm9tCisJICog bG93ZXItbGV2ZWwgc3VicXVlcmllcyAoYXQgYW55IGRlcHRoKSwgdGhvc2UgcmVmZXJlbmNlcyBh cmUgZ3VhcmFudGVlZAorCSAqIG5vdCB0byBleHBhbmQgdG8gdm9sYXRpbGUgb3Igc2V0LXJldHVy bmluZyBmdW5jdGlvbnMsIGJlY2F1c2UKKwkgKiBzdWJxdWVyaWVzIGNvbnRhaW5pbmcgc3VjaCBm dW5jdGlvbnMgaW4gdGhlaXIgdGFyZ2V0bGlzdHMgYXJlIG5ldmVyCisJICogcHVsbGVkIHVwLgor CSAqLworCWlmIChzdWJxdWVyeS0+aGFzR3JvdXBSVEUpCisJeworCQlmbGF0dGVuZWRfdGFyZ2V0 TGlzdCA9IChMaXN0ICopCisJCQlmbGF0dGVuX2dyb3VwX2V4cHJzKE5VTEwsIHN1YnF1ZXJ5LCAo Tm9kZSAqKSBzdWJxdWVyeS0+dGFyZ2V0TGlzdCk7CisJfQorCisJZm9yZWFjaChsYywgZmxhdHRl bmVkX3RhcmdldExpc3QpCiAJewogCQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdldEVudHJ5ICop IGxmaXJzdChsYyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3Zh ci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvdmFyLmMKaW5kZXggOTlkYTYyMjUwN2Iu LjVmMjIwMjFlY2NhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC92YXIu YworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC92YXIuYwpAQCAtOTU5LDEwICs5NTks MTQgQEAgZmxhdHRlbl9qb2luX2FsaWFzX3ZhcnNfbXV0YXRvcihOb2RlICpub2RlLAogICogd3Jh cHBlci4KICAqCiAgKiBOT1RFOiB0aGlzIGlzIGFsc28gdXNlZCBieSBydWxldXRpbHMuYywgdG8g ZGVwYXJzZSBvbmUgcXVlcnkgcGFyc2V0cmVlIGJhY2sKLSAqIHRvIHNvdXJjZSB0ZXh0LiAgRm9y IHRoYXQgdXNlLWNhc2UsIHJvb3Qgd2lsbCBiZSBOVUxMLCB3aGljaCBpcyB3aHkgd2UgaGF2ZQot ICogdG8gcGFzcyB0aGUgUXVlcnkgc2VwYXJhdGVseS4gIFdlIG5lZWQgdGhlIHJvb3QgaXRzZWxm IG9ubHkgZm9yIHByZXNlcnZpbmcKKyAqIHRvIHNvdXJjZSB0ZXh0LCBhbmQgYnkgY2hlY2tfb3V0 cHV0X2V4cHJlc3Npb25zKCkgdG8gY2hlY2sgZm9yIHVuc2FmZQorICogcHVzaGRvd25zLiAgRm9y IHRoZXNlIHVzZS1jYXNlcywgcm9vdCB3aWxsIGJlIE5VTEwsIHdoaWNoIGlzIHdoeSB3ZSBoYXZl IHRvCisgKiBwYXNzIHRoZSBRdWVyeSBzZXBhcmF0ZWx5LiAgV2UgbmVlZCB0aGUgcm9vdCBpdHNl bGYgb25seSBmb3IgcHJlc2VydmluZwogICogdmFybnVsbGluZ3JlbHMuICBXZSBjYW4gYXZvaWQg cHJlc2VydmluZyB2YXJudWxsaW5ncmVscyBpbiB0aGUgcnVsZXV0aWxzLmMncwogICogdXNhZ2Ug YmVjYXVzZSBpdCBkb2VzIG5vdCBtYWtlIGFueSBkaWZmZXJlbmNlIHRvIHRoZSBkZXBhcnNlZCBz b3VyY2UgdGV4dC4KKyAqIFdlIGNhbiBhbHNvIGF2b2lkIGl0IGluIGNoZWNrX291dHB1dF9leHBy ZXNzaW9ucygpIGJlY2F1c2UgdGhhdCBmdW5jdGlvbgorICogb25seSBjYXJlcyBhYm91dCB0aGUg cHJlc2VuY2Ugb2Ygdm9sYXRpbGUgb3Igc2V0LXJldHVybmluZyBmdW5jdGlvbnMsIHdoaWNoCisg KiBpcyBpbmRlcGVuZGVudCBvZiB0aGUgVmFycycgbnVsbGluZ3JlbHMuCiAgKi8KIE5vZGUgKgog ZmxhdHRlbl9ncm91cF9leHBycyhQbGFubmVySW5mbyAqcm9vdCwgUXVlcnkgKnF1ZXJ5LCBOb2Rl ICpub2RlKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzZWxlY3Qu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzZWxlY3Qub3V0CmluZGV4IDM3ZWQ1 OWU3M2JmLi4yMTM1ZDgyODg0ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zdWJzZWxlY3Qub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2VsZWN0 Lm91dApAQCAtMTkyNSw2ICsxOTI1LDExMCBAQCBOT1RJQ0U6ICB4ID0gOSwgeSA9IDEzCiAgOSB8 IDMKICgzIHJvd3MpCiAKKy0tCistLSBjaGVjayB0aGF0IGFuIHVwcGVyLWxldmVsIHF1YWwgaXMg bm90IHB1c2hlZCBkb3duIGlmIGl0IHJlZmVyZW5jZXMgYSBncm91cGVkCistLSBWYXIgd2hvc2Ug dW5kZXJseWluZyBleHByZXNzaW9uIGNvbnRhaW5zIFNSRnMKKy0tCitleHBsYWluICh2ZXJib3Nl LCBjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tCisgIChzZWxlY3QgZ2VuZXJhdGVfc2VyaWVzKDEs IHRlbikgYXMgZywgY291bnQoKikgZnJvbSB0ZW5rMSBncm91cCBieSAxKSBzcworICB3aGVyZSBz cy5nID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIHNzCisgICBPdXRwdXQ6IHNzLmcs IHNzLmNvdW50CisgICBGaWx0ZXI6IChzcy5nID0gMSkKKyAgIC0+ICBIYXNoQWdncmVnYXRlCisg ICAgICAgICBPdXRwdXQ6IChnZW5lcmF0ZV9zZXJpZXMoMSwgdGVuazEudGVuKSksIGNvdW50KCop CisgICAgICAgICBHcm91cCBLZXk6IGdlbmVyYXRlX3NlcmllcygxLCB0ZW5rMS50ZW4pCisgICAg ICAgICAtPiAgUHJvamVjdFNldAorICAgICAgICAgICAgICAgT3V0cHV0OiBnZW5lcmF0ZV9zZXJp ZXMoMSwgdGVuazEudGVuKQorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy50 ZW5rMQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0ZW5rMS51bmlxdWUxLCB0ZW5rMS51 bmlxdWUyLCB0ZW5rMS50d28sIHRlbmsxLmZvdXIsIHRlbmsxLnRlbiwgdGVuazEudHdlbnR5LCB0 ZW5rMS5odW5kcmVkLCB0ZW5rMS50aG91c2FuZCwgdGVuazEudHdvdGhvdXNhbmQsIHRlbmsxLmZp dmV0aG91cywgdGVuazEudGVudGhvdXMsIHRlbmsxLm9kZCwgdGVuazEuZXZlbiwgdGVuazEuc3Ry aW5ndTEsIHRlbmsxLnN0cmluZ3UyLCB0ZW5rMS5zdHJpbmc0CisoMTAgcm93cykKKworc2VsZWN0 ICogZnJvbQorICAoc2VsZWN0IGdlbmVyYXRlX3NlcmllcygxLCB0ZW4pIGFzIGcsIGNvdW50KCop IGZyb20gdGVuazEgZ3JvdXAgYnkgMSkgc3MKKyAgd2hlcmUgc3MuZyA9IDE7CisgZyB8IGNvdW50 IAorLS0tKy0tLS0tLS0KKyAxIHwgIDkwMDAKKygxIHJvdykKKworLS0KKy0tIGNoZWNrIHRoYXQg YW4gdXBwZXItbGV2ZWwgcXVhbCBpcyBub3QgcHVzaGVkIGRvd24gaWYgaXQgcmVmZXJlbmNlcyBh IGdyb3VwZWQKKy0tIFZhciB3aG9zZSB1bmRlcmx5aW5nIGV4cHJlc3Npb24gY29udGFpbnMgdm9s YXRpbGUgZnVuY3Rpb25zCistLQorYWx0ZXIgZnVuY3Rpb24gdGF0dGxlKHggaW50LCB5IGludCkg dm9sYXRpbGU7CitleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tCisg IChzZWxlY3QgdGF0dGxlKDMsIHRlbikgYXMgdiwgY291bnQoKikgZnJvbSB0ZW5rMSB3aGVyZSB1 bmlxdWUxIDwgMyBncm91cCBieSAxKSBzcworICB3aGVyZSBzcy52OworICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJx dWVyeSBTY2FuIG9uIHNzCisgICBPdXRwdXQ6IHNzLnYsIHNzLmNvdW50CisgICBGaWx0ZXI6IHNz LnYKKyAgIC0+ICBHcm91cEFnZ3JlZ2F0ZQorICAgICAgICAgT3V0cHV0OiAodGF0dGxlKDMsIHRl bmsxLnRlbikpLCBjb3VudCgqKQorICAgICAgICAgR3JvdXAgS2V5OiAodGF0dGxlKDMsIHRlbmsx LnRlbikpCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgT3V0cHV0OiAodGF0dGxl KDMsIHRlbmsxLnRlbikpCisgICAgICAgICAgICAgICBTb3J0IEtleTogKHRhdHRsZSgzLCB0ZW5r MS50ZW4pKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gcHVibGljLnRl bmsxCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHRhdHRsZSgzLCB0ZW5rMS50ZW4pCisg ICAgICAgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICh0ZW5rMS51bmlxdWUxIDwgMykKKyAg ICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUx CisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGVuazEudW5pcXVlMSA8 IDMpCisoMTQgcm93cykKKworc2VsZWN0ICogZnJvbQorICAoc2VsZWN0IHRhdHRsZSgzLCB0ZW4p IGFzIHYsIGNvdW50KCopIGZyb20gdGVuazEgd2hlcmUgdW5pcXVlMSA8IDMgZ3JvdXAgYnkgMSkg c3MKKyAgd2hlcmUgc3MudjsKK05PVElDRTogIHggPSAzLCB5ID0gMgorTk9USUNFOiAgeCA9IDMs IHkgPSAxCitOT1RJQ0U6ICB4ID0gMywgeSA9IDAKKyB2IHwgY291bnQgCistLS0rLS0tLS0tLQor IHQgfCAgICAgMworKDEgcm93KQorCistLSBpZiB3ZSBwcmV0ZW5kIGl0J3Mgc3RhYmxlLCB3ZSBn ZXQgZGlmZmVyZW50IHJlc3VsdHM6CithbHRlciBmdW5jdGlvbiB0YXR0bGUoeCBpbnQsIHkgaW50 KSBzdGFibGU7CitleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tCisg IChzZWxlY3QgdGF0dGxlKDMsIHRlbikgYXMgdiwgY291bnQoKikgZnJvbSB0ZW5rMSB3aGVyZSB1 bmlxdWUxIDwgMyBncm91cCBieSAxKSBzcworICB3aGVyZSBzcy52OworICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBHcm91cEFnZ3JlZ2F0ZQor ICAgT3V0cHV0OiAodGF0dGxlKDMsIHRlbmsxLnRlbikpLCBjb3VudCgqKQorICAgR3JvdXAgS2V5 OiAodGF0dGxlKDMsIHRlbmsxLnRlbikpCisgICAtPiAgU29ydAorICAgICAgICAgT3V0cHV0OiAo dGF0dGxlKDMsIHRlbmsxLnRlbikpCisgICAgICAgICBTb3J0IEtleTogKHRhdHRsZSgzLCB0ZW5r MS50ZW4pKQorICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gcHVibGljLnRlbmsxCisg ICAgICAgICAgICAgICBPdXRwdXQ6IHRhdHRsZSgzLCB0ZW5rMS50ZW4pCisgICAgICAgICAgICAg ICBSZWNoZWNrIENvbmQ6ICh0ZW5rMS51bmlxdWUxIDwgMykKKyAgICAgICAgICAgICAgIEZpbHRl cjogdGF0dGxlKDMsIHRlbmsxLnRlbikKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiB0ZW5rMV91bmlxdWUxCisgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo dGVuazEudW5pcXVlMSA8IDMpCisoMTIgcm93cykKKworc2VsZWN0ICogZnJvbQorICAoc2VsZWN0 IHRhdHRsZSgzLCB0ZW4pIGFzIHYsIGNvdW50KCopIGZyb20gdGVuazEgd2hlcmUgdW5pcXVlMSA8 IDMgZ3JvdXAgYnkgMSkgc3MKKyAgd2hlcmUgc3MudjsKK05PVElDRTogIHggPSAzLCB5ID0gMgor Tk9USUNFOiAgeCA9IDMsIHkgPSAyCitOT1RJQ0U6ICB4ID0gMywgeSA9IDEKK05PVElDRTogIHgg PSAzLCB5ID0gMQorTk9USUNFOiAgeCA9IDMsIHkgPSAwCitOT1RJQ0U6ICB4ID0gMywgeSA9IDAK KyB2IHwgY291bnQgCistLS0rLS0tLS0tLQorIHQgfCAgICAgMworKDEgcm93KQorCiBkcm9wIGZ1 bmN0aW9uIHRhdHRsZSh4IGludCwgeSBpbnQpOwogLS0KIC0tIFRlc3QgdGhhdCBMSU1JVCBjYW4g YmUgcHVzaGVkIHRvIFNPUlQgdGhyb3VnaCBhIHN1YnF1ZXJ5IHRoYXQganVzdCBwcm9qZWN0cwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2VsZWN0LnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3N1YnNlbGVjdC5zcWwKaW5kZXggMTkyYTZmOTZiOTMuLmNhZGMzMjkzNjg3 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzZWxlY3Quc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNlbGVjdC5zcWwKQEAgLTk1Miw2ICs5NTIsNDYgQEAgc2Vs ZWN0ICogZnJvbQogICAoc2VsZWN0IDkgYXMgeCwgdW5uZXN0KGFycmF5WzEsMiwzLDExLDEyLDEz XSkgYXMgdSkgc3MKICAgd2hlcmUgdGF0dGxlKHgsIHUpOwogCistLQorLS0gY2hlY2sgdGhhdCBh biB1cHBlci1sZXZlbCBxdWFsIGlzIG5vdCBwdXNoZWQgZG93biBpZiBpdCByZWZlcmVuY2VzIGEg Z3JvdXBlZAorLS0gVmFyIHdob3NlIHVuZGVybHlpbmcgZXhwcmVzc2lvbiBjb250YWlucyBTUkZz CistLQorZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQorc2VsZWN0ICogZnJvbQorICAoc2Vs ZWN0IGdlbmVyYXRlX3NlcmllcygxLCB0ZW4pIGFzIGcsIGNvdW50KCopIGZyb20gdGVuazEgZ3Jv dXAgYnkgMSkgc3MKKyAgd2hlcmUgc3MuZyA9IDE7CisKK3NlbGVjdCAqIGZyb20KKyAgKHNlbGVj dCBnZW5lcmF0ZV9zZXJpZXMoMSwgdGVuKSBhcyBnLCBjb3VudCgqKSBmcm9tIHRlbmsxIGdyb3Vw IGJ5IDEpIHNzCisgIHdoZXJlIHNzLmcgPSAxOworCistLQorLS0gY2hlY2sgdGhhdCBhbiB1cHBl ci1sZXZlbCBxdWFsIGlzIG5vdCBwdXNoZWQgZG93biBpZiBpdCByZWZlcmVuY2VzIGEgZ3JvdXBl ZAorLS0gVmFyIHdob3NlIHVuZGVybHlpbmcgZXhwcmVzc2lvbiBjb250YWlucyB2b2xhdGlsZSBm dW5jdGlvbnMKKy0tCithbHRlciBmdW5jdGlvbiB0YXR0bGUoeCBpbnQsIHkgaW50KSB2b2xhdGls ZTsKKworZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQorc2VsZWN0ICogZnJvbQorICAoc2Vs ZWN0IHRhdHRsZSgzLCB0ZW4pIGFzIHYsIGNvdW50KCopIGZyb20gdGVuazEgd2hlcmUgdW5pcXVl MSA8IDMgZ3JvdXAgYnkgMSkgc3MKKyAgd2hlcmUgc3MudjsKKworc2VsZWN0ICogZnJvbQorICAo c2VsZWN0IHRhdHRsZSgzLCB0ZW4pIGFzIHYsIGNvdW50KCopIGZyb20gdGVuazEgd2hlcmUgdW5p cXVlMSA8IDMgZ3JvdXAgYnkgMSkgc3MKKyAgd2hlcmUgc3MudjsKKworLS0gaWYgd2UgcHJldGVu ZCBpdCdzIHN0YWJsZSwgd2UgZ2V0IGRpZmZlcmVudCByZXN1bHRzOgorYWx0ZXIgZnVuY3Rpb24g dGF0dGxlKHggaW50LCB5IGludCkgc3RhYmxlOworCitleHBsYWluICh2ZXJib3NlLCBjb3N0cyBv ZmYpCitzZWxlY3QgKiBmcm9tCisgIChzZWxlY3QgdGF0dGxlKDMsIHRlbikgYXMgdiwgY291bnQo KikgZnJvbSB0ZW5rMSB3aGVyZSB1bmlxdWUxIDwgMyBncm91cCBieSAxKSBzcworICB3aGVyZSBz cy52OworCitzZWxlY3QgKiBmcm9tCisgIChzZWxlY3QgdGF0dGxlKDMsIHRlbikgYXMgdiwgY291 bnQoKikgZnJvbSB0ZW5rMSB3aGVyZSB1bmlxdWUxIDwgMyBncm91cCBieSAxKSBzcworICB3aGVy ZSBzcy52OworCiBkcm9wIGZ1bmN0aW9uIHRhdHRsZSh4IGludCwgeSBpbnQpOwogCiAtLQotLSAK Mi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000b25a600647f17a1c--