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 1vwvXg-004YaO-2Z for pgsql-bugs@arkaria.postgresql.org; Mon, 02 Mar 2026 05:10:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vwvXe-00FSJS-1g for pgsql-bugs@arkaria.postgresql.org; Mon, 02 Mar 2026 05:10:02 +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 1vwvXe-00FSJJ-0k for pgsql-bugs@lists.postgresql.org; Mon, 02 Mar 2026 05:10:02 +0000 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vwvXa-00000001yQf-3C4A for pgsql-bugs@lists.postgresql.org; Mon, 02 Mar 2026 05:10:01 +0000 Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-46413b2c3d8so1567256b6e.2 for ; Sun, 01 Mar 2026 21:09:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772428197; cv=none; d=google.com; s=arc-20240605; b=QftXQPzPlg9lFYxrz3UJa6hcXz5GBBjBqvgqUJLAh3rPMNFB21VX1DiK0SsihYBVo7 wjjL2jnR0YB8paZHZVbsFC4vgZ09+jt1TOoNbtMSfWt0/VkBKjC0R8MiIcLHimnBecd5 R0AjCebmuuGKoNP7Z0KbN/0fCQaaZ7fggQntvboefBWyDOcUr/hWKk9eLvBPOLyIOETU CYPepSIrZq0AD7rNSmxwKAwo0QC9XteL5qIxAbSk5zJdnSVKumFuUHhsF/L+h25mrn1d y61Yz/7Nh6BIlECVunfJbZO95duq8KqRi1OVVL30CIc7eqswpF7OGihxVxpNjlPfcDaI DR2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=x7H7KS5ef/lmb23qUvnW3DtM+c16z1bYXR9JpkfdvGo=; fh=RiK4isSaBmoK54fWHVerOVYihsgnImQmkJXjuSgGBfg=; b=BFRUt5+sxgXMixepiWTGWGY5zRFAAB9Z0AAo+vp+o9MRVhHLMmtJXdpDvynnXiEsFN UwFKRBfHNJnZYRB+IhmYIBfdumHEZ7NYSTylPtPBpikITJbqYoYTWZV0euiVhlLG+0DU DVLQtsH482MnxbsMf/FPhnSsrgh5v8KDejeb9aZgz+HNAOj8YV/BvURO/NaI3v1Pdjpf hiMhjXTBhmThDBL4M8goTNzqweamf8Nj+FxnGKt8MCgCNfPyaW0jp73TSk52Gx+2h769 5gGpe4d/KwNcfHNIEPLZufC9IQY80puT1Z08CEetQjvWY2nC5o+lY+/5M/mQzlLry/RB yAzA==; 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=20230601; t=1772428197; x=1773032997; 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=x7H7KS5ef/lmb23qUvnW3DtM+c16z1bYXR9JpkfdvGo=; b=HVNzSDkvu6+QtV1VD7J/rNsHdwwcV+5qaHbLxTa9J6HF6fnwOm0toY15Ch8pN/fLNr FbzNljakOQOC7SJAvuigUxMMsT+nwlMJRNC4738YrhmKVI3nUjXv4kPiGmyJqx6rDf2H avkKr0Fz1Fdy9WO6ORlbmZ1HRBwv7fERPX0pmRK14/03R2njctD4h4h4t81Kvsbc7L7B KAgKOVtPgiZjRBcSde1SnpLSNQhtugrj+p2tVi2jqn+48p6DctNcq0c6K6aODZD5/0hO BwEAbfZIj50mzSehhQOuoQrneMsIKrZEzXfnsyqpKKzszipbrezlCXcL1x0AjMA2RS++ UA9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772428197; x=1773032997; 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=x7H7KS5ef/lmb23qUvnW3DtM+c16z1bYXR9JpkfdvGo=; b=Zuo6hBxUaRQ0SYqr/z74SvLpDUjPq4438r1FX/us/FGqLSYwcr41aGehlqtNE6J3h8 8VdGT8Cjgf7r6a9BVpE3fO7a7SmWCtFPtyI/V5vcVJ6tr8O3u50NUndSbQCtNySX79Ll ChkuFMGC1FRnlfCnEi7LBjOmOv4qdmw5ehmQqdVNDy+MeC6+K5wl7F8/ghM/WuDdmAYU e/ApVfL1zWhV178AnC2bb2Jq8VskW0+Lnf7FUamUhJfH4WIb6lB1XL3G7Lf9Lr3ERiEW JH7zPDtw36YqbL1nlSMrqGs3qYOGq91W5B9dEjjVrvQkT/GshMfFeqg9AsX0Yqiu6PE+ YMig== X-Forwarded-Encrypted: i=1; AJvYcCXmUJTz3ePb0tY3AeWA6YxpcEqZEOUwLZ0JxPckqZp42VkrAlCNKZ/hjRtAjDmRH6wOTrdRB55J9uxB@lists.postgresql.org X-Gm-Message-State: AOJu0YyR0SyQg2bcXooQruDs08f5yvi86o5JYQER+uc3z3zyaksRgOt8 OCZ0NJgYHjwoZgBl4jNm4uNUjHn2gm4HwOi8c+hnurbaTI3rFoMIpHqA+yRXK8Aro/t/PcXSXMO WT7hPxrC9b+xqATMqGGKaPhl/KaQhctY= X-Gm-Gg: ATEYQzwhHav2ivjtXwFztS3eUancUS4YfUbOhtz7rwGETKuaWIb79FvT5Aucd5uRRKB qC4Z+YihlxLreQgs9YJFV69vSYi/mJ3ZmnmXDU+iAfv6Ccy9jxD+ebCrT0vjV5bLkLRbS+Bf18B T6kIMDTqjm8OTyZ3ysQ8/0eVDWAveWbORiITo5n1NV4vAvxDGVM7XPPQapt+mELtJ8KV1MQOhRG CbfeqFfQa7x4r8OH9juJ5zszrZIwiX9L4PwWMBcgXDL3Zro5SJKBx1h2M1D5w+2YKpq8qDZ8+/d XVSzV7mRNoXmnJ7r4uiD X-Received: by 2002:a05:6808:d54:b0:44f:78fb:7b11 with SMTP id 5614622812f47-464beca9f61mr5865668b6e.39.1772428197576; Sun, 01 Mar 2026 21:09:57 -0800 (PST) MIME-Version: 1.0 References: <19418-591ba1f29862ef5b@postgresql.org> <2abdb464-27f5-4759-bb0b-f09ab5b5ceab@postgresfriends.org> In-Reply-To: From: Richard Guo Date: Mon, 2 Mar 2026 14:09:46 +0900 X-Gm-Features: AaiRm50bBoNoeb9y0FmKQHn7PXx1ug0PpCBhKUz3J9EHDcEmkQ7cAl6keohpdSw Message-ID: Subject: Re: BUG #19418: SQL/JSON JSON_VALUE() does not conform to ISO/IEC 9075-2:2023(E) 6.34 To: Vik Fearing Cc: lukas.eder@gmail.com, pgsql-bugs@lists.postgresql.org, PG Bug reporting form Content-Type: multipart/mixed; boundary="0000000000001b69e3064c039913" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001b69e3064c039913 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Feb 27, 2026 at 11:44=E2=80=AFPM Richard Guo wrote: > I wonder if we can fix it by wrapping the JSON_ARRAYAGG in a COALESCE > to catch the NULL and convert it to an empty array; ie: > > SELECT COALESCE( > JSON_ARRAYAGG(a [FORMAT] [RETURNING] [ON NULL]), > '[]'::[RETURNING_TYPE] > ) FROM (query) q(a) The attached patch seems to fix it. - Richard --0000000000001b69e3064c039913 Content-Type: application/octet-stream; name="v1-0001-Fix-JSON_ARRAY-query-to-return-on-empty-sets.patch" Content-Disposition: attachment; filename="v1-0001-Fix-JSON_ARRAY-query-to-return-on-empty-sets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm8pz4ab0 RnJvbSAyM2NkMDRjM2NmMzE2ZTBlZTBlNjk3N2RjMmVmNDk5NGQ0MDRlNzMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEd1byA8Z3VvZmVuZ2xpbnV4QGdtYWlsLmNvbT4K RGF0ZTogTW9uLCAyIE1hciAyMDI2IDEyOjExOjAwICswOTAwClN1YmplY3Q6IFtQQVRDSCB2MV0g Rml4IEpTT05fQVJSQVkocXVlcnkpIHRvIHJldHVybiBbXSBvbiBlbXB0eSBzZXRzCgpBY2NvcmRp bmcgdG8gdGhlIFNRTC9KU09OIHN0YW5kYXJkLCBKU09OX0FSUkFZKHF1ZXJ5KSBtdXN0IHJldHVy biBhbgplbXB0eSBKU09OIGFycmF5ICgnW10nKSB3aGVuIHRoZSBzdWJxdWVyeSByZXR1cm5zIHpl cm8gcm93cy4KClByZXZpb3VzbHksIHRoZSBwYXJzZXIgcmV3cm90ZSBKU09OX0FSUkFZKHF1ZXJ5 KSBpbnRvIGEgSlNPTl9BUlJBWUFHRwphZ2dyZWdhdGUgZnVuY3Rpb24uICBCZWNhdXNlIHRoaXMg YWdncmVnYXRlIGV2YWx1YXRlcyB0byBOVUxMIG92ZXIgYW4KZW1wdHkgc2V0IHdpdGhvdXQgYSBH Uk9VUCBCWSBjbGF1c2UsIHRoZSBjb25zdHJ1Y3RvciBlcnJvbmVvdXNseQpyZXR1cm5lZCBOVUxM LgoKVGhpcyBwYXRjaCBmaXhlcyB0aGUgaXNzdWUgYnkgd3JhcHBpbmcgdGhlIGludGVybmFsbHkg Z2VuZXJhdGVkCkpTT05fQVJSQVlBR0cgbm9kZSBpbiBhIENPQUxFU0NFIGV4cHJlc3Npb24gZHVy aW5nIHBhcnNlIGFuYWx5c2lzLApjYXRjaGluZyB0aGUgTlVMTCBmcm9tIGVtcHR5IHNldHMgYW5k IHJlcGxhY2luZyBpdCB3aXRoIGFuIGVtcHR5IGFycmF5CmNhc3QgdG8gdGhlIGNvcnJlY3QgUkVU VVJOSU5HIHR5cGUuCi0tLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1qc29uLnNnbWwgICAgICB8 ICAzICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICB8IDE1ICsrKysr KysrKysrKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zcWxqc29uLm91dCB8IDIyICsr KysrKysrKysrKysrKysrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3NxbGpzb24uc3FsICAg ICAgfCAgNSArKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtanNvbi5zZ21sIGIv ZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1qc29uLnNnbWwKaW5kZXggMWVjNzNjZmY0NjQuLmQ1MTBi YTgzNzViIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWpzb24uc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWpzb24uc2dtbApAQCAtNjIwLDcgKzYyMCw4IEBACiAg ICAgICAgICB3aGljaCBtdXN0IGJlIGEgU0VMRUNUIHF1ZXJ5IHJldHVybmluZyBhIHNpbmdsZSBj b2x1bW4uIElmCiAgICAgICAgICA8bGl0ZXJhbD5BQlNFTlQgT04gTlVMTDwvbGl0ZXJhbD4gaXMg c3BlY2lmaWVkLCBOVUxMIHZhbHVlcyBhcmUgaWdub3JlZC4KICAgICAgICAgIFRoaXMgaXMgYWx3 YXlzIHRoZSBjYXNlIGlmIGEKLSAgICAgICAgIDxyZXBsYWNlYWJsZT5xdWVyeV9leHByZXNzaW9u PC9yZXBsYWNlYWJsZT4gaXMgdXNlZC4KKyAgICAgICAgIDxyZXBsYWNlYWJsZT5xdWVyeV9leHBy ZXNzaW9uPC9yZXBsYWNlYWJsZT4gaXMgdXNlZC4gSWYgdGhlIHF1ZXJ5IHJldHVybnMKKyAgICAg ICAgIG5vIHJvd3MsIGFuIGVtcHR5IEpTT04gYXJyYXkgaXMgcmV0dXJuZWQuCiAgICAgICAgIDwv cGFyYT4KICAgICAgICAgPHBhcmE+CiAgICAgICAgICA8bGl0ZXJhbD5qc29uX2FycmF5KDEsdHJ1 ZSxqc29uICd7ImEiOm51bGx9Jyk8L2xpdGVyYWw+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRl eCBkY2ZlMWFjYzRjMy4uZjk3MTlhODU5OGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAt Mzc2OCw3ICszNzY4LDggQEAgdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9yKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgSnNvbk9iamVjdENvbnN0cnVjdG9yICpjdG9yKQogCiAvKgogICogVHJhbnNm b3JtIEpTT05fQVJSQVkocXVlcnkgW0ZPUk1BVF0gW1JFVFVSTklOR10gW09OIE5VTExdKSBpbnRv Ci0gKiAgKFNFTEVDVCAgSlNPTl9BUlJBWUFHRyhhICBbRk9STUFUXSBbUkVUVVJOSU5HXSBbT04g TlVMTF0pIEZST00gKHF1ZXJ5KSBxKGEpKQorICogIChTRUxFQ1QgQ09BTEVTQ0UoSlNPTl9BUlJB WUFHRyhhIFtGT1JNQVRdIFtSRVRVUk5JTkddIFtPTiBOVUxMXSksICdbXScpCisgKiAgIEZST00g KHF1ZXJ5KSBxKGEpKQogICovCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zvcm1Kc29uQXJyYXlRdWVy eUNvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTM3ODAsNiArMzc4MSw3IEBAIHRy YW5zZm9ybUpzb25BcnJheVF1ZXJ5Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCUFs aWFzCSAgICphbGlhcyA9IG1ha2VOb2RlKEFsaWFzKTsKIAlSZXNUYXJnZXQgICp0YXJnZXQgPSBt YWtlTm9kZShSZXNUYXJnZXQpOwogCUpzb25BcnJheUFnZyAqYWdnID0gbWFrZU5vZGUoSnNvbkFy cmF5QWdnKTsKKwlDb2FsZXNjZUV4cHIgKmNvYWxlc2NlID0gbWFrZU5vZGUoQ29hbGVzY2VFeHBy KTsKIAlDb2x1bW5SZWYgICpjb2xyZWYgPSBtYWtlTm9kZShDb2x1bW5SZWYpOwogCVF1ZXJ5CSAg ICpxdWVyeTsKIAlQYXJzZVN0YXRlICpxcHN0YXRlOwpAQCAtMzgxMyw5ICszODE1LDE4IEBAIHRy YW5zZm9ybUpzb25BcnJheVF1ZXJ5Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCWFn Zy0+Y29uc3RydWN0b3ItPm91dHB1dCA9IGN0b3ItPm91dHB1dDsKIAlhZ2ctPmNvbnN0cnVjdG9y LT5sb2NhdGlvbiA9IGN0b3ItPmxvY2F0aW9uOwogCisJLyoKKwkgKiBKU09OX0FSUkFZKHF1ZXJ5 KSByZXF1aXJlcyByZXR1cm5pbmcgYW4gZW1wdHkgYXJyYXkgaWYgdGhlIHN1YnF1ZXJ5CisJICog cmV0dXJucyB6ZXJvIHJvd3MuICBIb3dldmVyLCB0aGUgaW50ZXJuYWwgSlNPTl9BUlJBWUFHRyBl dmFsdWF0ZXMgdG8KKwkgKiBOVUxMIG9uIGFuIGVtcHR5IHNldC4gIFdlIHdyYXAgdGhlIGFnZ3Jl Z2F0ZSBpbiBhIENPQUxFU0NFIHRvIGNhdGNoCisJICogdGhpcyBOVUxMIGFuZCByZXBsYWNlIGl0 IHdpdGggYW4gZW1wdHkgSlNPTiBhcnJheS4KKwkgKi8KKwljb2FsZXNjZS0+YXJncyA9IGxpc3Rf bWFrZTIoYWdnLCBtYWtlU3RyaW5nQ29uc3QoIltdIiwgY3Rvci0+bG9jYXRpb24pKTsKKwljb2Fs ZXNjZS0+bG9jYXRpb24gPSBjdG9yLT5sb2NhdGlvbjsKKwogCXRhcmdldC0+bmFtZSA9IE5VTEw7 CiAJdGFyZ2V0LT5pbmRpcmVjdGlvbiA9IE5JTDsKLQl0YXJnZXQtPnZhbCA9IChOb2RlICopIGFn ZzsKKwl0YXJnZXQtPnZhbCA9IChOb2RlICopIGNvYWxlc2NlOwogCXRhcmdldC0+bG9jYXRpb24g PSBjdG9yLT5sb2NhdGlvbjsKIAogCWFsaWFzLT5hbGlhc25hbWUgPSBwc3RyZHVwKCJxIik7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NxbGpzb24ub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zcWxqc29uLm91dAppbmRleCBjN2I5ZTU3NTQ0NS4uMWFmN2Zl NzgxMDcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3FsanNvbi5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zcWxqc29uLm91dApAQCAtNzI0LDYgKzcy NCw3IEBAIFNFTEVDVCBKU09OX0FSUkFZKEpTT05fQVJSQVkoJ3sgImEiIDogMTIzIH0nIEZPUk1B VCBKU09OIFJFVFVSTklORyB0ZXh0KSBGT1JNQVQKICBbW3sgImEiIDogMTIzIH1dXQogKDEgcm93 KQogCistLSBKU09OX0FSUkFZKHN1YnF1ZXJ5KQogU0VMRUNUIEpTT05fQVJSQVkoU0VMRUNUIGkg RlJPTSAoVkFMVUVTICgxKSwgKDIpLCAoTlVMTCksICg0KSkgZm9vKGkpKTsKICBqc29uX2FycmF5 IAogLS0tLS0tLS0tLS0tCkBAIC03NTcsNiArNzU4LDE5IEBAIFNFTEVDVCBKU09OX0FSUkFZKFdJ VEggeCBBUyAoU0VMRUNUIDEpIFZBTFVFUyAoVFJVRSkpOwogIFt0cnVlXQogKDEgcm93KQogCist LSBKU09OX0FSUkFZKHN1YnF1ZXJ5KSB3aXRoIGVtcHR5IHJlc3VsdCBzZXQKK1NFTEVDVCBKU09O X0FSUkFZKFNFTEVDVCAxIFdIRVJFIEZBTFNFKTsKKyBqc29uX2FycmF5IAorLS0tLS0tLS0tLS0t CisgW10KKygxIHJvdykKKworU0VMRUNUIEpTT05fQVJSQVkoU0VMRUNUIGkgRlJPTSAoVkFMVUVT ICgxKSwgKDIpLCAoTlVMTCksICg0KSkgZm9vKGkpIFdIRVJFIGkgPiA0KTsKKyBqc29uX2FycmF5 IAorLS0tLS0tLS0tLS0tCisgW10KKygxIHJvdykKKwogLS0gU2hvdWxkIGZhaWwKIFNFTEVDVCBK U09OX0FSUkFZKFNFTEVDVCBGUk9NIChWQUxVRVMgKDEpKSBmb28oaSkpOwogRVJST1I6ICBzdWJx dWVyeSBtdXN0IHJldHVybiBvbmx5IG9uZSBjb2x1bW4KQEAgLTEwOTAsMTMgKzExMDQsMTMgQEAg RFJPUCBWSUVXIGpzb25fYXJyYXlhZ2dfdmlldzsKIC0tIFRlc3QgSlNPTl9BUlJBWShzdWJxdWVy eSkgZGVwYXJzaW5nCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiBTRUxFQ1QgSlNPTl9B UlJBWShTRUxFQ1QgaSBGUk9NIChWQUxVRVMgKDEpLCAoMiksIChOVUxMKSwgKDQpKSBmb28oaSkg UkVUVVJOSU5HIGpzb25iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBSZXN1bHQKICAgIE91dHB1dDogKEluaXRQbGFuIGV4cHJfMSkuY29sMQogICAgSW5p dFBsYW4gZXhwcl8xCiAgICAgIC0+ICBBZ2dyZWdhdGUKLSAgICAgICAgICAgT3V0cHV0OiBKU09O X0FSUkFZQUdHKCIqVkFMVUVTKiIuY29sdW1uMSBSRVRVUk5JTkcganNvbmIpCisgICAgICAgICAg IE91dHB1dDogQ09BTEVTQ0UoSlNPTl9BUlJBWUFHRygiKlZBTFVFUyoiLmNvbHVtbjEgUkVUVVJO SU5HIGpzb25iKSwgJ1tdJzo6anNvbmIpCiAgICAgICAgICAgIC0+ICBWYWx1ZXMgU2NhbiBvbiAi KlZBTFVFUyoiCiAgICAgICAgICAgICAgICAgIE91dHB1dDogIipWQUxVRVMqIi5jb2x1bW4xCiAo NyByb3dzKQpAQCAtMTEwNSw3ICsxMTE5LDcgQEAgQ1JFQVRFIFZJRVcganNvbl9hcnJheV9zdWJx dWVyeV92aWV3IEFTCiBTRUxFQ1QgSlNPTl9BUlJBWShTRUxFQ1QgaSBGUk9NIChWQUxVRVMgKDEp LCAoMiksIChOVUxMKSwgKDQpKSBmb28oaSkgUkVUVVJOSU5HIGpzb25iKTsKIFxzdiBqc29uX2Fy cmF5X3N1YnF1ZXJ5X3ZpZXcKIENSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLmpzb25fYXJy YXlfc3VicXVlcnlfdmlldyBBUwotIFNFTEVDVCAoIFNFTEVDVCBKU09OX0FSUkFZQUdHKHEuYSBS RVRVUk5JTkcganNvbmIpIEFTICJqc29uX2FycmF5YWdnIgorIFNFTEVDVCAoIFNFTEVDVCBDT0FM RVNDRShKU09OX0FSUkFZQUdHKHEuYSBSRVRVUk5JTkcganNvbmIpLCAnW10nOjpqc29uYikgQVMg ImNvYWxlc2NlIgogICAgICAgICAgICBGUk9NICggU0VMRUNUIGZvby5pCiAgICAgICAgICAgICAg ICAgICAgRlJPTSAoIFZBTFVFUyAoMSksICgyKSwgKE5VTEw6OmludGVnZXIpLCAoNCkpIGZvbyhp KSkgcShhKSkgQVMgImpzb25fYXJyYXkiCiBEUk9QIFZJRVcganNvbl9hcnJheV9zdWJxdWVyeV92 aWV3OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3FsanNvbi5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zcWxqc29uLnNxbAppbmRleCAzNDNkMzQ0ZDI3MC4uODgxZGExMjJh NzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3NxbGpzb24uc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3NxbGpzb24uc3FsCkBAIC0xOTMsNiArMTkzLDcgQEAgU0VMRUNU IEpTT05fQVJSQVkoSlNPTl9BUlJBWSgneyAiYSIgOiAxMjMgfScgUkVUVVJOSU5HIHRleHQpKTsK IFNFTEVDVCBKU09OX0FSUkFZKEpTT05fQVJSQVkoJ3sgImEiIDogMTIzIH0nIEZPUk1BVCBKU09O IFJFVFVSTklORyB0ZXh0KSk7CiBTRUxFQ1QgSlNPTl9BUlJBWShKU09OX0FSUkFZKCd7ICJhIiA6 IDEyMyB9JyBGT1JNQVQgSlNPTiBSRVRVUk5JTkcgdGV4dCkgRk9STUFUIEpTT04pOwogCistLSBK U09OX0FSUkFZKHN1YnF1ZXJ5KQogU0VMRUNUIEpTT05fQVJSQVkoU0VMRUNUIGkgRlJPTSAoVkFM VUVTICgxKSwgKDIpLCAoTlVMTCksICg0KSkgZm9vKGkpKTsKIFNFTEVDVCBKU09OX0FSUkFZKFNF TEVDVCBpIEZST00gKFZBTFVFUyAoTlVMTDo6aW50W10pLCAoJ3sxLDJ9JyksIChOVUxMKSwgKE5V TEwpLCAoJ3szLDR9JyksIChOVUxMKSkgZm9vKGkpKTsKIFNFTEVDVCBKU09OX0FSUkFZKFNFTEVD VCBpIEZST00gKFZBTFVFUyAoTlVMTDo6aW50W10pLCAoJ3sxLDJ9JyksIChOVUxMKSwgKE5VTEwp LCAoJ3szLDR9JyksIChOVUxMKSkgZm9vKGkpIFJFVFVSTklORyBqc29uYik7CkBAIC0yMDEsNiAr MjAyLDEwIEBAIFNFTEVDVCBKU09OX0FSUkFZKFNFTEVDVCBpIEZST00gKFZBTFVFUyAoTlVMTDo6 aW50W10pLCAoJ3sxLDJ9JyksIChOVUxMKSwgKE5VTEwpCiBTRUxFQ1QgSlNPTl9BUlJBWShTRUxF Q1QgaSBGUk9NIChWQUxVRVMgKDMpLCAoMSksIChOVUxMKSwgKDIpKSBmb28oaSkgT1JERVIgQlkg aSk7CiBTRUxFQ1QgSlNPTl9BUlJBWShXSVRIIHggQVMgKFNFTEVDVCAxKSBWQUxVRVMgKFRSVUUp KTsKIAorLS0gSlNPTl9BUlJBWShzdWJxdWVyeSkgd2l0aCBlbXB0eSByZXN1bHQgc2V0CitTRUxF Q1QgSlNPTl9BUlJBWShTRUxFQ1QgMSBXSEVSRSBGQUxTRSk7CitTRUxFQ1QgSlNPTl9BUlJBWShT RUxFQ1QgaSBGUk9NIChWQUxVRVMgKDEpLCAoMiksIChOVUxMKSwgKDQpKSBmb28oaSkgV0hFUkUg aSA+IDQpOworCiAtLSBTaG91bGQgZmFpbAogU0VMRUNUIEpTT05fQVJSQVkoU0VMRUNUIEZST00g KFZBTFVFUyAoMSkpIGZvbyhpKSk7CiBTRUxFQ1QgSlNPTl9BUlJBWShTRUxFQ1QgaSwgaSBGUk9N IChWQUxVRVMgKDEpKSBmb28oaSkpOwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --0000000000001b69e3064c039913--