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 1w0AV0-001fxq-1R for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Mar 2026 03:44:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0AUx-007Mjn-1B for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Mar 2026 03:44:39 +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 1w0AUw-007Mje-32 for pgsql-hackers@lists.postgresql.org; Wed, 11 Mar 2026 03:44:39 +0000 Received: from mail-ua1-x931.google.com ([2607:f8b0:4864:20::931]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w0AUu-000000024av-1Jsv for pgsql-hackers@postgresql.org; Wed, 11 Mar 2026 03:44:38 +0000 Received: by mail-ua1-x931.google.com with SMTP id a1e0cc1a2514c-94de88e52e5so8262654241.0 for ; Tue, 10 Mar 2026 20:44:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773200675; cv=none; d=google.com; s=arc-20240605; b=GT+lZfDhB/5Bk/2pdX6cdE6qPbZ4+v2wYkApcpA7O59BAt3cQPJHdEj/SYaz432zyF BZneuZi/nI7W6xD7tcV7gtLt9sTq74B6aq3f8XtEZSVJ51Wz9zK+BCzp60EMXlMLy/fp 4aS2+AMghZR+4woCmzc8dxS1Sh9deLdyiT+0L/aaHEmo7w47vrbEPfOE28r3OYg9pUjW OH7MRoXnp1+Q//uj7hNHM2HWHtcerT9NJkQduMVxowhKHoBx1Ss9/J7gXigj7QJM6M/3 wpDPaFMViaFyTPmL96oZYKiw/9r3x0hYTL/UGWfPcuWxn8wL9yj7lwuU8CUviz2PlzOu TSZA== 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=2XR6gZVpbGpXkDnohpY2lr/vF8gP38izUpgkrVeYRDk=; fh=MbtE6UpCj2vausx7fUGwp04eAyd5cnrF9UVvW8jmwuE=; b=fi656iLpSBKxgs1AG6PGSf7Ru5dyc1ksKT02dMyv6woapYhkFLBK84Kn19B9bD04Eh vb+D8RmWLBA2osHJjW7UFr0iXlKtz5ClV25ChhgQdvnOEvXlWghJWWG+ohHNvnmPZOvT p33nCp6Vf9YoP6wpu8p8a2Y9VHxmCR81djBceuzU87kDWaZ0fvGRXqWRVKi11+YnHA1r EOstOTGWqQE9HACBkvcoCelqWntxKlTUDDOy7LHSO56Q8HFd9GKQloAJsv8SH9EHAuyk ZFWx618NhJ697KYYxcIDhHxmlzFlmpWpYkXEYIB79fPymeLOX5p1ifReZwM3ir8lVxMz QAGg==; darn=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=1773200675; x=1773805475; darn=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=2XR6gZVpbGpXkDnohpY2lr/vF8gP38izUpgkrVeYRDk=; b=ke9x96D2rfX776S6LTnYn5P29RvgIolxLh07JMMJc1JPEk6E/NJ5y+H3HG9QBznt2N CBf4IF8OZK8zSSSmEvHekIEjPjgiK7CXQoM1wdr7iQ+Cgza4YJQB5Jx1ra49Dx4CQxd8 XYxvYg2Jmocez+Y1hqqv/n5apjIkToO80gLr54If6jH3mpcWD8tseHCfTsUkRTsDEVE6 KKVLSZ8L6ggH2HCIwvsUdtJKZSNa3mALhZlgtDJVoN7DK1KcBd4sdZyvMUO8WmW2ekgw SYljv8Un89X125z9iZBjUQs6i3Af5CBNU9tykwpKVFEhPMG8vA77SA15+vgY6KYxlzQe RJEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773200675; x=1773805475; 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=2XR6gZVpbGpXkDnohpY2lr/vF8gP38izUpgkrVeYRDk=; b=xI4LG97ZtXUKj63HIqXy9uxqCFrc6Oc9AwdrCAMA8/d1m+Um5CPzofNX0KzzHfUxvg Wmew0F3413hNQA38Hcti1WQGISTEQjAQgwtBMbtF+H2wJ8wK+i5MOyNi00p/qzIxf4fF XoKiTMToY9Mn3Jim1uYLVGNdMuzkczV1Bd4E8NjldUEW4kXj1vDbfLFW6vHYI3D9Czwy C+M07pmuh/AIlHri30MgfURaSd5OTi8UWIFJesqgA5/vKPH3s3SK2Q2jxYMZLLMOBsXN 8hdgHh2aMulW0ewGRBLn4O6aAjzjV/vVC6CabpK8DeCbi4/PIEPBOnNV1SYY2uqLvD9J cDNQ== X-Gm-Message-State: AOJu0Yz21blmK7J1/1PAnDKB/3gXobMPviKKuN9Jme94rlLeZ8uxk9qs ciXDQ2lzUkSua/UsHtnTDxK9q5naz0dK4IXMUNm75/UmvNYgXL2R9qwe7YO6hwEK+tos4xl3tpA 0uMF1iyFfJ/9U6u5sxm0GqeP7GPV0bCs= X-Gm-Gg: ATEYQzxvRacyipv4pFf0t/Z5hZKiNpusTumjvBwicgHO8gjZ3eKoCi170mhe6irgNRO w/0SfjMcUqwSKIKFsJzSHgomdzSSYL8KEOcyGxYkynCLCEHZ0RQojHGRDgTaLqA7hJWcdjQapfr uA7LwXpNAarrkrtcg0MN+bMnchCIhLT3dOddVei3FF6BfXXTKc1iO99EyS79zjMhIsAo7gEO0aq dSo/I65/2KXsmqXt+IXFh9xto1quBjB9Nk2TZEh93zo9DuRNzMozvGIIa37duuCcN1zI7G0+xoq 9i9ne7lzw7uDGPSUVN4o0yoWGO88GkZCtjp7f/IRya4a57B0HitIzQzowPM8/gWPZbz9VOjMcf4 2VlfS+BCkSUczeBi1bT/HfDqOBVyz3TYoRdqaBs0dIvunb4j6CRgLwG7W/EV5aqau4r0C2zed+1 JOu/x8DTg/HphK6owhQpfz X-Received: by 2002:a05:6102:2ad5:b0:600:a2:1397 with SMTP id ada2fe7eead31-601def4d58bmr458805137.25.1773200674664; Tue, 10 Mar 2026 20:44:34 -0700 (PDT) MIME-Version: 1.0 References: <229413.1741144420@sss.pgh.pa.us> In-Reply-To: From: jian he Date: Wed, 11 Mar 2026 11:43:58 +0800 X-Gm-Features: AaiRm52qWnzV_-zEUdOH070O9yBmsHRlW1-qanKumUHESkEbTK7spYuhTP3fPZE Message-ID: Subject: Re: support fast default for domain with constraints To: Andrew Dunstan Cc: PostgreSQL-development Content-Type: multipart/mixed; boundary="00000000000054557a064cb7743b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000054557a064cb7743b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 11, 2026 at 1:18=E2=80=AFAM Andrew Dunstan wrote: > > here's an updated patch set. > +/* + * ExecPrepareExprWithContext: same as ExecPrepareExpr, but with an option= al + * ErrorSaveContext for soft error handling during domain constraint evaluation. + * + * See ExecInitExprWithContext for details on the escontext parameter. + */ +ExprState * +ExecPrepareExprWithContext(Expr *node, EState *estate, Node *escontext) Since ExecPrepareExprWithContext can be used more broadly, we should delete= the mention of domain constraint from the above comments. I checked alter_table.sgml again, no need to change it, I think. Slightly changed the regression test comments. -- jian https://www.enterprisedb.com/ --00000000000054557a064cb7743b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0002-Enable-fast-default-for-domains-with-non-volatile-constraints.patch" Content-Disposition: attachment; filename="v10-0002-Enable-fast-default-for-domains-with-non-volatile-constraints.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmlht6190 RnJvbSA0NmI5MTFkNjQ3ZGNiNDFmNjAyMDU2YmVmOWIxNzhkMGQ0ZjNmNmY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgTWFyIDIwMjYgMTE6Mzc6MzIgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MCAyLzJdIEVuYWJsZSBmYXN0IGRlZmF1bHQgZm9yIGRvbWFpbnMgd2l0aCBub24tdm9sYXRpbGUK IGNvbnN0cmFpbnRzCgpQcmV2aW91c2x5LCBBTFRFUiBUQUJMRSBBREQgQ09MVU1OIGFsd2F5cyBm b3JjZWQgYSB0YWJsZSByZXdyaXRlIHdoZW4KdGhlIGNvbHVtbiB0eXBlIHdhcyBhIGRvbWFpbiB3 aXRoIGNvbnN0cmFpbnRzIChDSEVDSyBvciBOT1QgTlVMTCksIGV2ZW4KaWYgdGhlIGRlZmF1bHQg dmFsdWUgc2F0aXNmaWVkIHRob3NlIGNvbnN0cmFpbnRzLiAgVGhpcyB3YXMgYmVjYXVzZQpjb250 YWluX3ZvbGF0aWxlX2Z1bmN0aW9ucygpIGNvbnNpZGVycyBDb2VyY2VUb0RvbWFpbiBpbW11dGFi bGUsIHNvCnRoZSBjb2RlIGNvbnNlcnZhdGl2ZWx5IGFzc3VtZWQgYW55IGNvbnN0cmFpbmVkIGRv bWFpbiBtaWdodCBmYWlsLgoKSW1wcm92ZSB0aGlzIGJ5IHVzaW5nIHNvZnQgZXJyb3IgaGFuZGxp bmcgKEVycm9yU2F2ZUNvbnRleHQpIHRvIGV2YWx1YXRlCnRoZSBDb2VyY2VUb0RvbWFpbiBleHBy ZXNzaW9uIGF0IEFMVEVSIFRBQkxFIHRpbWUuICBJZiB0aGUgZGVmYXVsdCB2YWx1ZQpwYXNzZXMg dGhlIGRvbWFpbidzIGNvbnN0cmFpbnRzLCB0aGUgdmFsdWUgaXMgc3RvcmVkIGFzIGEgIm1pc3Np bmciCmF0dHJpYnV0ZSBkZWZhdWx0IGFuZCBubyB0YWJsZSByZXdyaXRlIGlzIG5lZWRlZC4gIElm IHRoZSBjb25zdHJhaW50CmNoZWNrIGZhaWxzLCB3ZSBmYWxsIGJhY2sgdG8gYSB0YWJsZSByZXdy aXRlLCBwcmVzZXJ2aW5nIHRoZSBoaXN0b3JpY2FsCmJlaGF2aW9yIHRoYXQgY29uc3RyYWludCB2 aW9sYXRpb25zIGFyZSBvbmx5IHJhaXNlZCB3aGVuIHRoZSB0YWJsZQphY3R1YWxseSBjb250YWlu cyByb3dzLgoKRG9tYWlucyB3aXRoIHZvbGF0aWxlIGNvbnN0cmFpbnQgZXhwcmVzc2lvbnMgYWx3 YXlzIHJlcXVpcmUgYSB0YWJsZQpyZXdyaXRlIHNpbmNlIHRoZSBjb25zdHJhaW50IHJlc3VsdCBj b3VsZCBkaWZmZXIgcGVyIGV2YWx1YXRpb24gYW5kCmNhbm5vdCBiZSBjYWNoZWQuCgpEaXNjdXNz aW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhFXytpWkJSMWk0OWtfQUhpZ3BwUHdMVEpp NmttOE5Pc0M3Rld2S2RFbW1YZ0BtYWlsLmdtYWlsLmNvbQpDb21taXRmZXN0OiBodHRwczovL2Nv bW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTY0MQotLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jICAgICAgICAgICB8IDYxICsrKysrKysrKysrKysrKystLS0tLS0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICB8IDM1ICsrKysrKysrKysr Ky0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggICAgICAgICAgICB8ICAyICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dCB8IDUxICsrKysrKysrKysr KysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbCAgICAgIHwgNDEg KysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE3MiBpbnNlcnRpb25zKCspLCAxOCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDg1MjQyZGNjMjQ1Li4y ZWRiMDM2NDQ5YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTc0NzgsMTUgKzc0Nzgs NiBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFi LCBSZWxhdGlvbiByZWwsCiAJICogTlVMTCBpZiBzbywgc28gd2l0aG91dCBhbnkgbW9kaWZpY2F0 aW9uIG9mIHRoZSB0dXBsZSBkYXRhIHdlIHdpbGwgZ2V0CiAJICogdGhlIGVmZmVjdCBvZiBOVUxM IHZhbHVlcyBpbiB0aGUgbmV3IGNvbHVtbi4KIAkgKgotCSAqIEFuIGV4Y2VwdGlvbiBvY2N1cnMg d2hlbiB0aGUgbmV3IGNvbHVtbiBpcyBvZiBhIGRvbWFpbiB0eXBlOiB0aGUgZG9tYWluCi0JICog bWlnaHQgaGF2ZSBhIG5vdC1udWxsIGNvbnN0cmFpbnQsIG9yIGEgY2hlY2sgY29uc3RyYWludCB0 aGF0IGluZGlyZWN0bHkKLQkgKiByZWplY3RzIG51bGxzLiAgSWYgdGhlcmUgYXJlIGFueSBkb21h aW4gY29uc3RyYWludHMgdGhlbiB3ZSBjb25zdHJ1Y3QKLQkgKiBhbiBleHBsaWNpdCBOVUxMIGRl ZmF1bHQgdmFsdWUgdGhhdCB3aWxsIGJlIHBhc3NlZCB0aHJvdWdoCi0JICogQ29lcmNlVG9Eb21h aW4gcHJvY2Vzc2luZy4gIChUaGlzIGlzIGEgdGFkIGluZWZmaWNpZW50LCBzaW5jZSBpdCBjYXVz ZXMKLQkgKiByZXdyaXRpbmcgdGhlIHRhYmxlIHdoaWNoIHdlIHJlYWxseSB3b3VsZG4ndCBoYXZl IHRvIGRvOyBidXQgd2UgZG8gaXQKLQkgKiB0byBwcmVzZXJ2ZSB0aGUgaGlzdG9yaWNhbCBiZWhh dmlvciB0aGF0IHN1Y2ggYSBmYWlsdXJlIHdpbGwgYmUgcmFpc2VkCi0JICogb25seSBpZiB0aGUg dGFibGUgY3VycmVudGx5IGNvbnRhaW5zIHNvbWUgcm93cy4pCi0JICoKIAkgKiBOb3RlOiB3ZSB1 c2UgYnVpbGRfY29sdW1uX2RlZmF1bHQsIGFuZCBub3QganVzdCB0aGUgY29va2VkIGRlZmF1bHQK IAkgKiByZXR1cm5lZCBieSBBZGRSZWxhdGlvbk5ld0NvbnN0cmFpbnRzLCBzbyB0aGF0IHRoZSBy aWdodCB0aGluZyBoYXBwZW5zCiAJICogd2hlbiBhIGRhdGF0eXBlJ3MgZGVmYXVsdCBhcHBsaWVz LgpAQCAtNzUwNSw2ICs3NDk2LDcgQEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFs dGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCXsKIAkJYm9vbAkJaGFzX2RvbWFp bl9jb25zdHJhaW50czsKIAkJYm9vbAkJaGFzX21pc3NpbmcgPSBmYWxzZTsKKwkJYm9vbAkJaGFz X3ZvbGF0aWxlID0gZmFsc2U7CiAKIAkJLyoKIAkJICogRm9yIGFuIGlkZW50aXR5IGNvbHVtbiwg d2UgY2FuJ3QgdXNlIGJ1aWxkX2NvbHVtbl9kZWZhdWx0KCksCkBAIC03NTIyLDggKzc1MTQsMjEg QEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwg UmVsYXRpb24gcmVsLAogCQllbHNlCiAJCQlkZWZ2YWwgPSAoRXhwciAqKSBidWlsZF9jb2x1bW5f ZGVmYXVsdChyZWwsIGF0dHJpYnV0ZS0+YXR0bnVtKTsKIAorCQloYXNfZG9tYWluX2NvbnN0cmFp bnRzID0KKwkJCURvbWFpbkhhc1ZvbGF0aWxlQ29uc3RyYWludHMoYXR0cmlidXRlLT5hdHR0eXBp ZCwgJmhhc192b2xhdGlsZSk7CisKKwkJLyoKKwkJICogSWYgdGhlIGRvbWFpbiBoYXMgdm9sYXRp bGUgY29uc3RyYWludHMsIHdlIG11c3QgZG8gYSB0YWJsZSByZXdyaXRlCisJCSAqIHNpbmNlIHRo ZSBjb25zdHJhaW50IHJlc3VsdCBjb3VsZCBkaWZmZXIgcGVyIHJvdyBhbmQgY2Fubm90IGJlCisJ CSAqIGV2YWx1YXRlZCBvbmNlIGFuZCBjYWNoZWQgYXMgYSBtaXNzaW5nIHZhbHVlLgorCQkgKi8K KwkJaWYgKGhhc192b2xhdGlsZSkKKwkJeworCQkJQXNzZXJ0KGhhc19kb21haW5fY29uc3RyYWlu dHMpOworCQkJdGFiLT5yZXdyaXRlIHw9IEFUX1JFV1JJVEVfREVGQVVMVF9WQUw7CisJCX0KKwog CQkvKiBCdWlsZCBDb2VyY2VUb0RvbWFpbihOVUxMKSBleHByZXNzaW9uIGlmIG5lZWRlZCAqLwot CQloYXNfZG9tYWluX2NvbnN0cmFpbnRzID0gRG9tYWluSGFzQ29uc3RyYWludHMoYXR0cmlidXRl LT5hdHR0eXBpZCk7CiAJCWlmICghZGVmdmFsICYmIGhhc19kb21haW5fY29uc3RyYWludHMpCiAJ CXsKIAkJCU9pZAkJCWJhc2VUeXBlSWQ7CkBAIC03NTY1LDI3ICs3NTcwLDQ5IEBAIEFURXhlY0Fk ZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJl bCwKIAkJCSAqIEF0dGVtcHQgdG8gc2tpcCBhIGNvbXBsZXRlIHRhYmxlIHJld3JpdGUgYnkgc3Rv cmluZyB0aGUKIAkJCSAqIHNwZWNpZmllZCBERUZBVUxUIHZhbHVlIG91dHNpZGUgb2YgdGhlIGhl YXAuICBUaGlzIGlzIG9ubHkKIAkJCSAqIGFsbG93ZWQgZm9yIHBsYWluIHJlbGF0aW9ucyBhbmQg bm9uLWdlbmVyYXRlZCBjb2x1bW5zLCBhbmQgdGhlCi0JCQkgKiBkZWZhdWx0IGV4cHJlc3Npb24g Y2FuJ3QgYmUgdm9sYXRpbGUgKHN0YWJsZSBpcyBPSykuICBOb3RlIHRoYXQKLQkJCSAqIGNvbnRh aW5fdm9sYXRpbGVfZnVuY3Rpb25zIGRlZW1zIENvZXJjZVRvRG9tYWluIGltbXV0YWJsZSwgYnV0 Ci0JCQkgKiBoZXJlIHdlIGNvbnNpZGVyIHRoYXQgY29lcmNpb24gdG8gYSBkb21haW4gd2l0aCBj b25zdHJhaW50cyBpcwotCQkJICogdm9sYXRpbGU7IGVsc2UgaXQgbWlnaHQgZmFpbCBldmVuIHdo ZW4gdGhlIHRhYmxlIGlzIGVtcHR5LgorCQkJICogZGVmYXVsdCBleHByZXNzaW9uIGNhbid0IGJl IHZvbGF0aWxlIChzdGFibGUgaXMgT0spLCBhbmQgdGhlCisJCQkgKiBkb21haW4gY29uc3RyYWlu dCBleHByZXNzaW9ucyBjYW4ndCBiZSB2b2xhdGlsZSAoc3RhYmxlIGlzIE9LKS4KKwkJCSAqCisJ CQkgKiBOb3RlIHRoYXQgY29udGFpbl92b2xhdGlsZV9mdW5jdGlvbnMgY29uc2lkZXJzIENvZXJj ZVRvRG9tYWluCisJCQkgKiBpbW11dGFibGUsIHNvIHdlIHJlbHkgb24gRG9tYWluSGFzVm9sYXRp bGVDb25zdHJhaW50cyAoY2FsbGVkCisJCQkgKiBhYm92ZSkgcmF0aGVyIHRoYW4gY2hlY2tpbmcg ZGVmdmFsIGFsb25lLgorCQkJICoKKwkJCSAqIEZvciBkb21haW5zIHdpdGggbm9uLXZvbGF0aWxl IGNvbnN0cmFpbnRzLCB3ZSBldmFsdWF0ZSB0aGUKKwkJCSAqIGRlZmF1bHQgdXNpbmcgc29mdCBl cnJvciBoYW5kbGluZzogaWYgdGhlIGNvbnN0cmFpbnQgY2hlY2sKKwkJCSAqIGZhaWxzIChlLmcu LCBDSEVDSyh2YWx1ZSA+IDEwKSB3aXRoIERFRkFVTFQgOCksIHdlIGZhbGwgYmFjayB0bworCQkJ ICogYSB0YWJsZSByZXdyaXRlLiAgVGhpcyBwcmVzZXJ2ZXMgdGhlIGhpc3RvcmljYWwgYmVoYXZp b3IgdGhhdAorCQkJICogc3VjaCBhIGZhaWx1cmUgaXMgb25seSByYWlzZWQgd2hlbiB0aGUgdGFi bGUgaGFzIHJvd3MuCiAJCQkgKi8KIAkJCWlmIChyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxL SU5EX1JFTEFUSU9OICYmCiAJCQkJIWNvbERlZi0+Z2VuZXJhdGVkICYmCi0JCQkJIWhhc19kb21h aW5fY29uc3RyYWludHMgJiYKKwkJCQkhaGFzX3ZvbGF0aWxlICYmCiAJCQkJIWNvbnRhaW5fdm9s YXRpbGVfZnVuY3Rpb25zKChOb2RlICopIGRlZnZhbCkpCiAJCQl7CiAJCQkJRVN0YXRlCSAgICpl c3RhdGU7CiAJCQkJRXhwclN0YXRlICAqZXhwclN0YXRlOwogCQkJCURhdHVtCQltaXNzaW5ndmFs OwogCQkJCWJvb2wJCW1pc3NpbmdJc051bGw7CisJCQkJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRl eHQgPSB7VF9FcnJvclNhdmVDb250ZXh0fTsKIAotCQkJCS8qIEV2YWx1YXRlIHRoZSBkZWZhdWx0 IGV4cHJlc3Npb24gKi8KKwkJCQkvKiBFdmFsdWF0ZSB0aGUgZGVmYXVsdCBleHByZXNzaW9uIHdp dGggc29mdCBlcnJvcnMgKi8KIAkJCQllc3RhdGUgPSBDcmVhdGVFeGVjdXRvclN0YXRlKCk7Ci0J CQkJZXhwclN0YXRlID0gRXhlY1ByZXBhcmVFeHByKGRlZnZhbCwgZXN0YXRlKTsKKwkJCQlleHBy U3RhdGUgPSBFeGVjUHJlcGFyZUV4cHJXaXRoQ29udGV4dChkZWZ2YWwsIGVzdGF0ZSwKKwkJCQkJ CQkJCQkJCQkgICAoTm9kZSAqKSAmZXNjb250ZXh0KTsKIAkJCQltaXNzaW5ndmFsID0gRXhlY0V2 YWxFeHByKGV4cHJTdGF0ZSwKIAkJCQkJCQkJCQkgIEdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0 YXRlKSwKIAkJCQkJCQkJCQkgICZtaXNzaW5nSXNOdWxsKTsKKworCQkJCS8qCisJCQkJICogSWYg dGhlIGRvbWFpbiBjb25zdHJhaW50IGNoZWNrIGZhaWxlZCwgZmFsbCBiYWNrIHRvIGEgdGFibGUK KwkJCQkgKiByZXdyaXRlLiAgUGhhc2UgMyB3aWxsIHJlLWV2YWx1YXRlIHdpdGggaGFyZCBlcnJv cnMsIHNvIHRoZQorCQkJCSAqIHVzZXIgZ2V0cyBhbiBlcnJvciBvbmx5IGlmIHRoZSB0YWJsZSBo YXMgcm93cy4KKwkJCQkgKi8KKwkJCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRCgmZXNjb250ZXh0 KSkKKwkJCQl7CisJCQkJCW1pc3NpbmdJc051bGwgPSB0cnVlOworCQkJCQl0YWItPnJld3JpdGUg fD0gQVRfUkVXUklURV9ERUZBVUxUX1ZBTDsKKwkJCQl9CisKIAkJCQkvKiBJZiBpdCB0dXJucyBv dXQgTlVMTCwgbm90aGluZyB0byBkbzsgZWxzZSBzdG9yZSBpdCAqLwogCQkJCWlmICghbWlzc2lu Z0lzTnVsbCkKIAkJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhw ci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCAwODhlY2EyNDAyMS4u NGM2NGQwZWZiMmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMTQxLDYgKzE0MSwyNiBA QCBzdGF0aWMgdm9pZCBFeGVjSW5pdEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRlLCBKc29u UmV0dXJuaW5nICpyZXR1cm5pbmcsCiAgKi8KIEV4cHJTdGF0ZSAqCiBFeGVjSW5pdEV4cHIoRXhw ciAqbm9kZSwgUGxhblN0YXRlICpwYXJlbnQpCit7CisJcmV0dXJuIEV4ZWNJbml0RXhwcldpdGhD b250ZXh0KG5vZGUsIHBhcmVudCwgTlVMTCk7Cit9CisKKy8qCisgKiBFeGVjSW5pdEV4cHJXaXRo Q29udGV4dDogc2FtZSBhcyBFeGVjSW5pdEV4cHIsIGJ1dCB3aXRoIGFuIG9wdGlvbmFsCisgKiBF cnJvclNhdmVDb250ZXh0IGZvciBzb2Z0IGVycm9yIGhhbmRsaW5nLgorICoKKyAqIFdoZW4gJ2Vz Y29udGV4dCcgaXMgbm9uLU5VTEwsIGV4cHJlc3Npb24gbm9kZXMgdGhhdCBzdXBwb3J0IHNvZnQg ZXJyb3JzCisgKiAoY3VycmVudGx5IENvZXJjZVRvRG9tYWluJ3MgTk9UIE5VTEwgYW5kIENIRUNL IGNvbnN0cmFpbnQgc3RlcHMpIHdpbGwgdXNlCisgKiBlcnJzYXZlKCkgaW5zdGVhZCBvZiBlcmVw b3J0KCksIGFsbG93aW5nIHRoZSBjYWxsZXIgdG8gZGV0ZWN0IGFuZCBoYW5kbGUKKyAqIGZhaWx1 cmVzIHdpdGhvdXQgYSB0cmFuc2FjdGlvbiBhYm9ydC4KKyAqCisgKiBUaGUgZXNjb250ZXh0IG11 c3QgYmUgcHJvdmlkZWQgYXQgaW5pdGlhbGl6YXRpb24gdGltZSAobm90IGFmdGVyKSwgYmVjYXVz ZQorICogaXQgaXMgY29waWVkIGludG8gcGVyLXN0ZXAgZGF0YSBkdXJpbmcgZXhwcmVzc2lvbiBj b21waWxhdGlvbi4KKyAqCisgKiBOb3QgYWxsIGV4cHJlc3Npb24gbm9kZSB0eXBlcyBzdXBwb3J0 IHNvZnQgZXJyb3JzLiAgSWYgaW4gZG91YnQsIHBhc3MgTlVMTC4KKyAqLworRXhwclN0YXRlICoK K0V4ZWNJbml0RXhwcldpdGhDb250ZXh0KEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50LCBO b2RlICplc2NvbnRleHQpCiB7CiAJRXhwclN0YXRlICAqc3RhdGU7CiAJRXhwckV2YWxTdGVwIHNj cmF0Y2ggPSB7MH07CkBAIC0xNTQsNiArMTc0LDcgQEAgRXhlY0luaXRFeHByKEV4cHIgKm5vZGUs IFBsYW5TdGF0ZSAqcGFyZW50KQogCXN0YXRlLT5leHByID0gbm9kZTsKIAlzdGF0ZS0+cGFyZW50 ID0gcGFyZW50OwogCXN0YXRlLT5leHRfcGFyYW1zID0gTlVMTDsKKwlzdGF0ZS0+ZXNjb250ZXh0 ID0gKEVycm9yU2F2ZUNvbnRleHQgKikgZXNjb250ZXh0OwogCiAJLyogSW5zZXJ0IHNldHVwIHN0 ZXBzIGFzIG5lZWRlZCAqLwogCUV4ZWNDcmVhdGVFeHByU2V0dXBTdGVwcyhzdGF0ZSwgKE5vZGUg Kikgbm9kZSk7CkBAIC03NjMsNiArNzg0LDE4IEBAIEV4ZWNCdWlsZFVwZGF0ZVByb2plY3Rpb24o TGlzdCAqdGFyZ2V0TGlzdCwKICAqLwogRXhwclN0YXRlICoKIEV4ZWNQcmVwYXJlRXhwcihFeHBy ICpub2RlLCBFU3RhdGUgKmVzdGF0ZSkKK3sKKwlyZXR1cm4gRXhlY1ByZXBhcmVFeHByV2l0aENv bnRleHQobm9kZSwgZXN0YXRlLCBOVUxMKTsKK30KKworLyoKKyAqIEV4ZWNQcmVwYXJlRXhwcldp dGhDb250ZXh0OiBzYW1lIGFzIEV4ZWNQcmVwYXJlRXhwciwgYnV0IHdpdGggYW4gb3B0aW9uYWwK KyAqIEVycm9yU2F2ZUNvbnRleHQgZm9yIHNvZnQgZXJyb3IgaGFuZGxpbmcuCisgKgorICogU2Vl IEV4ZWNJbml0RXhwcldpdGhDb250ZXh0IGZvciBkZXRhaWxzIG9uIHRoZSBlc2NvbnRleHQgcGFy YW1ldGVyLgorICovCitFeHByU3RhdGUgKgorRXhlY1ByZXBhcmVFeHByV2l0aENvbnRleHQoRXhw ciAqbm9kZSwgRVN0YXRlICplc3RhdGUsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlFeHByU3RhdGUg ICpyZXN1bHQ7CiAJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwpAQCAtNzcxLDcgKzgwNCw3IEBA IEV4ZWNQcmVwYXJlRXhwcihFeHByICpub2RlLCBFU3RhdGUgKmVzdGF0ZSkKIAogCW5vZGUgPSBl eHByZXNzaW9uX3BsYW5uZXIobm9kZSk7CiAKLQlyZXN1bHQgPSBFeGVjSW5pdEV4cHIobm9kZSwg TlVMTCk7CisJcmVzdWx0ID0gRXhlY0luaXRFeHByV2l0aENvbnRleHQobm9kZSwgTlVMTCwgZXNj b250ZXh0KTsKIAogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL2V4ZWN1dG9yLmgKaW5kZXggZDQ2YmE1OTg5NWQuLjgyYzQ0MmQyM2Y4IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL2V4ZWN1dG9yLmgKQEAgLTMyNCw2ICszMjQsNyBAQCBFeGVjUHJvY05vZGUoUGxhblN0YXRl ICpub2RlKQogICogcHJvdG90eXBlcyBmcm9tIGZ1bmN0aW9ucyBpbiBleGVjRXhwci5jCiAgKi8K IGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUgKnBh cmVudCk7CitleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdEV4cHJXaXRoQ29udGV4dChFeHByICpu b2RlLCBQbGFuU3RhdGUgKnBhcmVudCwgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBFeHByU3Rh dGUgKkV4ZWNJbml0RXhwcldpdGhQYXJhbXMoRXhwciAqbm9kZSwgUGFyYW1MaXN0SW5mbyBleHRf cGFyYW1zKTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0UXVhbChMaXN0ICpxdWFsLCBQbGFu U3RhdGUgKnBhcmVudCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdENoZWNrKExpc3QgKnF1 YWwsIFBsYW5TdGF0ZSAqcGFyZW50KTsKQEAgLTM3Miw2ICszNzMsNyBAQCBleHRlcm4gUHJvamVj dGlvbkluZm8gKkV4ZWNCdWlsZFVwZGF0ZVByb2plY3Rpb24oTGlzdCAqdGFyZ2V0TGlzdCwKIAkJ CQkJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAkJCQkJCQkJCQkJCSBQbGFuU3RhdGUg KnBhcmVudCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjUHJlcGFyZUV4cHIoRXhwciAqbm9kZSwg RVN0YXRlICplc3RhdGUpOworZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY1ByZXBhcmVFeHByV2l0aENv bnRleHQoRXhwciAqbm9kZSwgRVN0YXRlICplc3RhdGUsIE5vZGUgKmVzY29udGV4dCk7CiBleHRl cm4gRXhwclN0YXRlICpFeGVjUHJlcGFyZVF1YWwoTGlzdCAqcXVhbCwgRVN0YXRlICplc3RhdGUp OwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY1ByZXBhcmVDaGVjayhMaXN0ICpxdWFsLCBFU3RhdGUg KmVzdGF0ZSk7CiBleHRlcm4gTGlzdCAqRXhlY1ByZXBhcmVFeHByTGlzdChMaXN0ICpub2Rlcywg RVN0YXRlICplc3RhdGUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9m YXN0X2RlZmF1bHQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQu b3V0CmluZGV4IGNjYmNkZjg0MDNmLi5jOGVhZGI2Y2MxNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dApAQCAtMzE3LDExICszMTcsNjIgQEAgU0VMRUNUIGEs IGIsIGxlbmd0aChjKSA9IDMgYXMgY19vaywgZCwgZSA+PSAxMCBhcyBlX29rIEZST00gdDI7CiAg MiB8IDMgfCB0ICAgIHwge1RoaXMsaXMsYWJjZCx0aGUscmVhbCx3b3JsZH0gfCB0CiAoMiByb3dz KQogCistLSB0ZXN0IGZhc3QgZGVmYXVsdCBvdmVyIGRvbWFpbnMgd2l0aCBjb25zdHJhaW50cwor Q1JFQVRFIERPTUFJTiBkb21haW41IEFTIGludCBDSEVDSyh2YWx1ZSA+IDEwKSBERUZBVUxUIDg7 CitDUkVBVEUgRE9NQUlOIGRvbWFpbjYgYXMgaW50IENIRUNLKHZhbHVlID4gMTApIERFRkFVTFQg cmFuZG9tKG1pbj0+MTEsIG1heD0+MTAwKTsKK0NSRUFURSBET01BSU4gZG9tYWluNyBhcyBpbnQg Q0hFQ0soKHZhbHVlICsgcmFuZG9tKG1pbj0+MTE6OmludCwgbWF4PT4xMSkpID4gMTIpOworQ1JF QVRFIERPTUFJTiBkb21haW44IGFzIGludCBOT1QgTlVMTDsKK0NSRUFURSBUQUJMRSB0ZXN0X2Fk ZF9kb21haW5fY29sKGEgaW50KTsKKy0tIHRhYmxlIHJld3JpdGUsIG5vdCBmYWlsIGJlY2F1c2Ug dGVzdF9hZGRfZG9tYWluX2NvbCBpcyBlbXB0eSB0YWJsZQorQUxURVIgVEFCTEUgdGVzdF9hZGRf ZG9tYWluX2NvbCBBREQgQ09MVU1OIGExIGRvbWFpbjU7CitOT1RJQ0U6ICByZXdyaXRpbmcgdGFi bGUgdGVzdF9hZGRfZG9tYWluX2NvbCBmb3IgcmVhc29uIDIKK0FMVEVSIFRBQkxFIHRlc3RfYWRk X2RvbWFpbl9jb2wgRFJPUCBDT0xVTU4gYTE7CitJTlNFUlQgSU5UTyB0ZXN0X2FkZF9kb21haW5f Y29sIFZBTFVFUygxKSwoMik7CistLSB0ZXN0cyB3aXRoIG5vbi1lbXB0eSB0YWJsZQorQUxURVIg VEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIGIgZG9tYWluNTsgLS0gdGFibGUg cmV3cml0ZSwgdGhlbiBmYWlsCitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUgdGVzdF9hZGRfZG9t YWluX2NvbCBmb3IgcmVhc29uIDIKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBkb21haW41IHZp b2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImRvbWFpbjVfY2hlY2siCitBTFRFUiBUQUJMRSB0ZXN0 X2FkZF9kb21haW5fY29sIEFERCBDT0xVTU4gYiBkb21haW44OyAtLSB0YWJsZSByZXdyaXRlLCB0 aGVuIGZhaWwKK05PVElDRTogIHJld3JpdGluZyB0YWJsZSB0ZXN0X2FkZF9kb21haW5fY29sIGZv ciByZWFzb24gMgorRVJST1I6ICBkb21haW4gZG9tYWluOCBkb2VzIG5vdCBhbGxvdyBudWxsIHZh bHVlcworQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIGIgZG9tYWlu NSBERUZBVUxUIDE7IC0tIHRhYmxlIHJld3JpdGUsIHRoZW4gZmFpbAorTk9USUNFOiAgcmV3cml0 aW5nIHRhYmxlIHRlc3RfYWRkX2RvbWFpbl9jb2wgZm9yIHJlYXNvbiAyCitFUlJPUjogIHZhbHVl IGZvciBkb21haW4gZG9tYWluNSB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJkb21haW41X2No ZWNrIgorQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIGIgZG9tYWlu NSBERUZBVUxUIDEyOyAtLSBvaywgbm8gdGFibGUgcmV3cml0ZQorLS0gZXhwbGljaXQgY29sdW1u IGRlZmF1bHQgZXhwcmVzc2lvbiBvdmVycmlkZXMgZG9tYWluJ3MgZGVmYXVsdAorLS0gZXhwcmVz c2lvbiwgc28gbm8gdGFibGUgcmV3cml0ZQorQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2Nv bCBBREQgQ09MVU1OIGMgZG9tYWluNiBERUZBVUxUIDE0OworQUxURVIgVEFCTEUgdGVzdF9hZGRf ZG9tYWluX2NvbCBBREQgQ09MVU1OIGMxIGRvbWFpbjggREVGQVVMVCAxMzsgLS0gbm8gdGFibGUg cmV3cml0ZQorU0VMRUNUIGF0dG51bSwgYXR0bmFtZSwgYXR0aGFzbWlzc2luZywgYXR0aGFzZGVm LCBhdHRtaXNzaW5ndmFsCitGUk9NICBwZ19hdHRyaWJ1dGUKK1dIRVJFIGF0dG51bSA+IDAgQU5E IGF0dHJlbGlkID0gJ3Rlc3RfYWRkX2RvbWFpbl9jb2wnOjpyZWdjbGFzcyBBTkQgYXR0aXNkcm9w cGVkIGlzIGZhbHNlCitBTkQgICBhdHRoYXNtaXNzaW5nCitPUkRFUiBCWSBhdHRudW07CisgYXR0 bnVtIHwgYXR0bmFtZSB8IGF0dGhhc21pc3NpbmcgfCBhdHRoYXNkZWYgfCBhdHRtaXNzaW5ndmFs IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0KKyAgICAgIDMgfCBiICAgICAgIHwgdCAgICAgICAgICAgICB8IHQgICAgICAgICB8 IHsxMn0KKyAgICAgIDQgfCBjICAgICAgIHwgdCAgICAgICAgICAgICB8IHQgICAgICAgICB8IHsx NH0KKyAgICAgIDUgfCBjMSAgICAgIHwgdCAgICAgICAgICAgICB8IHQgICAgICAgICB8IHsxM30K KygzIHJvd3MpCisKKy0tIFdlIG5lZWQgdG8gcmV3cml0ZSB0aGUgdGFibGUgd2hlbmV2ZXIgZG9t YWluIGRlZmF1bHQgY29udGFpbnMgdm9sYXRpbGUgZXhwcmVzc2lvbgorQUxURVIgVEFCTEUgdGVz dF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIGQgZG9tYWluNjsKK05PVElDRTogIHJld3JpdGlu ZyB0YWJsZSB0ZXN0X2FkZF9kb21haW5fY29sIGZvciByZWFzb24gMgorLS0gV2UgbmVlZCB0byBy ZXdyaXRlIHRoZSB0YWJsZSB3aGVuZXZlciBkb21haW4gY29uc3RyYWludCBleHByZXNzaW9uIGNv bnRhaW5zIHZvbGF0aWxlIGV4cHJlc3Npb24KK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9j b2wgQUREIENPTFVNTiBlIGRvbWFpbjcgZGVmYXVsdCAxNDsKK05PVElDRTogIHJld3JpdGluZyB0 YWJsZSB0ZXN0X2FkZF9kb21haW5fY29sIGZvciByZWFzb24gMgorQUxURVIgVEFCTEUgdGVzdF9h ZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIGYgZG9tYWluNzsKK05PVElDRTogIHJld3JpdGluZyB0 YWJsZSB0ZXN0X2FkZF9kb21haW5fY29sIGZvciByZWFzb24gMgogRFJPUCBUQUJMRSB0MjsKK0RS T1AgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbDsKIERST1AgRE9NQUlOIGRvbWFpbjE7CiBEUk9Q IERPTUFJTiBkb21haW4yOwogRFJPUCBET01BSU4gZG9tYWluMzsKIERST1AgRE9NQUlOIGRvbWFp bjQ7CitEUk9QIERPTUFJTiBkb21haW41OworRFJPUCBET01BSU4gZG9tYWluNjsKK0RST1AgRE9N QUlOIGRvbWFpbjc7CitEUk9QIERPTUFJTiBkb21haW44OwogRFJPUCBGVU5DVElPTiBmb28oSU5U KTsKIC0tIEZhbGwgYmFjayB0byBmdWxsIHJld3JpdGUgZm9yIHZvbGF0aWxlIGV4cHJlc3Npb25z CiBDUkVBVEUgVEFCTEUgVChwayBJTlQgTk9UIE5VTEwgUFJJTUFSWSBLRVkpOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwKaW5kZXggMDY4ZGQwYmM4YWEuLjNhMGMwYTRjN2UxIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwKQEAgLTI4NywxMSArMjg3LDUyIEBA IE9SREVSIEJZIGF0dG51bTsKIAogU0VMRUNUIGEsIGIsIGxlbmd0aChjKSA9IDMgYXMgY19vaywg ZCwgZSA+PSAxMCBhcyBlX29rIEZST00gdDI7CiAKKy0tIHRlc3QgZmFzdCBkZWZhdWx0IG92ZXIg ZG9tYWlucyB3aXRoIGNvbnN0cmFpbnRzCitDUkVBVEUgRE9NQUlOIGRvbWFpbjUgQVMgaW50IENI RUNLKHZhbHVlID4gMTApIERFRkFVTFQgODsKK0NSRUFURSBET01BSU4gZG9tYWluNiBhcyBpbnQg Q0hFQ0sodmFsdWUgPiAxMCkgREVGQVVMVCByYW5kb20obWluPT4xMSwgbWF4PT4xMDApOworQ1JF QVRFIERPTUFJTiBkb21haW43IGFzIGludCBDSEVDSygodmFsdWUgKyByYW5kb20obWluPT4xMTo6 aW50LCBtYXg9PjExKSkgPiAxMik7CitDUkVBVEUgRE9NQUlOIGRvbWFpbjggYXMgaW50IE5PVCBO VUxMOworCitDUkVBVEUgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbChhIGludCk7CistLSB0YWJs ZSByZXdyaXRlLCBub3QgZmFpbCBiZWNhdXNlIHRlc3RfYWRkX2RvbWFpbl9jb2wgaXMgZW1wdHkg dGFibGUKK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9jb2wgQUREIENPTFVNTiBhMSBkb21h aW41OworQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBEUk9QIENPTFVNTiBhMTsKK0lO U0VSVCBJTlRPIHRlc3RfYWRkX2RvbWFpbl9jb2wgVkFMVUVTKDEpLCgyKTsKKworLS0gdGVzdHMg d2l0aCBub24tZW1wdHkgdGFibGUKK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9jb2wgQURE IENPTFVNTiBiIGRvbWFpbjU7IC0tIHRhYmxlIHJld3JpdGUsIHRoZW4gZmFpbAorQUxURVIgVEFC TEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIGIgZG9tYWluODsgLS0gdGFibGUgcmV3 cml0ZSwgdGhlbiBmYWlsCitBTFRFUiBUQUJMRSB0ZXN0X2FkZF9kb21haW5fY29sIEFERCBDT0xV TU4gYiBkb21haW41IERFRkFVTFQgMTsgLS0gdGFibGUgcmV3cml0ZSwgdGhlbiBmYWlsCitBTFRF UiBUQUJMRSB0ZXN0X2FkZF9kb21haW5fY29sIEFERCBDT0xVTU4gYiBkb21haW41IERFRkFVTFQg MTI7IC0tIG9rLCBubyB0YWJsZSByZXdyaXRlCisKKy0tIGV4cGxpY2l0IGNvbHVtbiBkZWZhdWx0 IGV4cHJlc3Npb24gb3ZlcnJpZGVzIGRvbWFpbidzIGRlZmF1bHQKKy0tIGV4cHJlc3Npb24sIHNv IG5vIHRhYmxlIHJld3JpdGUKK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9jb2wgQUREIENP TFVNTiBjIGRvbWFpbjYgREVGQVVMVCAxNDsKKworQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWlu X2NvbCBBREQgQ09MVU1OIGMxIGRvbWFpbjggREVGQVVMVCAxMzsgLS0gbm8gdGFibGUgcmV3cml0 ZQorU0VMRUNUIGF0dG51bSwgYXR0bmFtZSwgYXR0aGFzbWlzc2luZywgYXR0aGFzZGVmLCBhdHRt aXNzaW5ndmFsCitGUk9NICBwZ19hdHRyaWJ1dGUKK1dIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJl bGlkID0gJ3Rlc3RfYWRkX2RvbWFpbl9jb2wnOjpyZWdjbGFzcyBBTkQgYXR0aXNkcm9wcGVkIGlz IGZhbHNlCitBTkQgICBhdHRoYXNtaXNzaW5nCitPUkRFUiBCWSBhdHRudW07CisKKy0tIFdlIG5l ZWQgdG8gcmV3cml0ZSB0aGUgdGFibGUgd2hlbmV2ZXIgZG9tYWluIGRlZmF1bHQgY29udGFpbnMg dm9sYXRpbGUgZXhwcmVzc2lvbgorQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQg Q09MVU1OIGQgZG9tYWluNjsKKworLS0gV2UgbmVlZCB0byByZXdyaXRlIHRoZSB0YWJsZSB3aGVu ZXZlciBkb21haW4gY29uc3RyYWludCBleHByZXNzaW9uIGNvbnRhaW5zIHZvbGF0aWxlIGV4cHJl c3Npb24KK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9jb2wgQUREIENPTFVNTiBlIGRvbWFp bjcgZGVmYXVsdCAxNDsKK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9jb2wgQUREIENPTFVN TiBmIGRvbWFpbjc7CisKIERST1AgVEFCTEUgdDI7CitEUk9QIFRBQkxFIHRlc3RfYWRkX2RvbWFp bl9jb2w7CiBEUk9QIERPTUFJTiBkb21haW4xOwogRFJPUCBET01BSU4gZG9tYWluMjsKIERST1Ag RE9NQUlOIGRvbWFpbjM7CiBEUk9QIERPTUFJTiBkb21haW40OworRFJPUCBET01BSU4gZG9tYWlu NTsKK0RST1AgRE9NQUlOIGRvbWFpbjY7CitEUk9QIERPTUFJTiBkb21haW43OworRFJPUCBET01B SU4gZG9tYWluODsKIERST1AgRlVOQ1RJT04gZm9vKElOVCk7CiAKIC0tIEZhbGwgYmFjayB0byBm dWxsIHJld3JpdGUgZm9yIHZvbGF0aWxlIGV4cHJlc3Npb25zCi0tIAoyLjM0LjEKCg== --00000000000054557a064cb7743b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0001-Add-DomainHasVolatileConstraints-to-check-constraint-volatility.patch" Content-Disposition: attachment; filename="v10-0001-Add-DomainHasVolatileConstraints-to-check-constraint-volatility.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmlht61e1 RnJvbSAwNzBkYTY5M2QwYWFiYTcwYjQ1MmI0MDc3NjIwMGI3YjA2OThkZjg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgTWFyIDIwMjYgMTA6MDQ6MTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MCAxLzJdIEFkZCBEb21haW5IYXNWb2xhdGlsZUNvbnN0cmFpbnRzKCkgdG8gY2hlY2sKIGNvbnN0 cmFpbnQgdm9sYXRpbGl0eQoKQWRkIGEgdXRpbGl0eSBmdW5jdGlvbiB0aGF0IGNoZWNrcyB3aGV0 aGVyIGEgZG9tYWluIHR5cGUgaGFzIGFueQpjb25zdHJhaW50cywgYW5kIG9wdGlvbmFsbHkgd2hl dGhlciBhbnkgQ0hFQ0sgY29uc3RyYWludCBjb250YWlucwp2b2xhdGlsZSBleHByZXNzaW9ucy4g IFRoaXMgaXMgbmVlZGVkIGJ5IGEgc3Vic2VxdWVudCBjb21taXQgdGhhdAplbmFibGVzIHRoZSBm YXN0IGRlZmF1bHQgb3B0aW1pemF0aW9uIGZvciBkb21haW5zIHdpdGggbm9uLXZvbGF0aWxlCmNv bnN0cmFpbnRzOiB3ZSBjYW4gc2FmZWx5IGV2YWx1YXRlIHN1Y2ggY29uc3RyYWludHMgb25jZSBh dCBBTFRFUiBUQUJMRQp0aW1lLCBidXQgdm9sYXRpbGUgY29uc3RyYWludHMgcmVxdWlyZSBhIGZ1 bGwgdGFibGUgcmV3cml0ZS4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FDSnVm eEVfK2laQlIxaTQ5a19BSGlncHBQd0xUSmk2a204Tk9zQzdGV3ZLZEVtbVhnQG1haWwuZ21haWwu Y29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81 NjQxCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvdHlwY2FjaGUuYyB8IDQ1ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvdXRpbHMvdHlwY2FjaGUuaCAgICAg ICB8ICAxICsKIDIgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3R5cGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS90eXBjYWNoZS5jCmluZGV4IDYyN2U1MzQ2MDlhLi5lMzNkNGI4MDdiZCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvdHlwY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS90eXBjYWNoZS5jCkBAIC0xNTAyLDYgKzE1MDIsNTEgQEAgRG9tYWluSGFzQ29u c3RyYWludHMoT2lkIHR5cGVfaWQpCiB9CiAKIAorLyoKKyAqIERvbWFpbkhhc1ZvbGF0aWxlQ29u c3RyYWludHMgLS0tIGNoZWNrIGlmIGEgZG9tYWluIGhhcyBjb25zdHJhaW50cyB3aXRoCisgKiB2 b2xhdGlsZSBleHByZXNzaW9ucworICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZG9tYWluIGhh cyBhbnkgY29uc3RyYWludHMgYXQgYWxsLiAgSWYgaGF2ZV92b2xhdGlsZQorICogaXMgbm90IE5V TEwsIGFsc28gY2hlY2tzIHdoZXRoZXIgYW55IENIRUNLIGNvbnN0cmFpbnQgY29udGFpbnMgYSB2 b2xhdGlsZQorICogZXhwcmVzc2lvbiBhbmQgc2V0cyAqaGF2ZV92b2xhdGlsZSBhY2NvcmRpbmds eS4KKyAqCisgKiBUaGUgY2FsbGVyIG11c3QgaW5pdGlhbGl6ZSAqaGF2ZV92b2xhdGlsZSBiZWZv cmUgY2FsbGluZyAodHlwaWNhbGx5IHRvCisgKiBmYWxzZSkuICBUaGlzIGZ1bmN0aW9uIG9ubHkg ZXZlciBzZXRzIGl0IHRvIHRydWUsIG5ldmVyIHRvIGZhbHNlLgorICoKKyAqIFRoaXMgaXMgZGVm aW5lZCB0byByZXR1cm4gZmFsc2UsIG5vdCBmYWlsLCBpZiB0eXBlIGlzIG5vdCBhIGRvbWFpbi4K KyAqLworYm9vbAorRG9tYWluSGFzVm9sYXRpbGVDb25zdHJhaW50cyhPaWQgdHlwZV9pZCwgYm9v bCAqaGF2ZV92b2xhdGlsZSkKK3sKKwkvKgorCSAqIE5vdGU6IGEgc2lkZSBlZmZlY3QgaXMgdG8g Y2F1c2UgdGhlIHR5cGNhY2hlJ3MgZG9tYWluIGRhdGEgdG8gYmVjb21lCisJICogdmFsaWQuICBU aGlzIGlzIGZpbmUgc2luY2Ugd2UnbGwgbGlrZWx5IG5lZWQgaXQgc29vbiBpZiB0aGVyZSBpcyBh bnkuCisJICovCisJVHlwZUNhY2hlRW50cnkgKnR5cGVudHJ5ID0gbG9va3VwX3R5cGVfY2FjaGUo dHlwZV9pZCwgVFlQRUNBQ0hFX0RPTUFJTl9DT05TVFJfSU5GTyk7CisKKwlpZiAodHlwZW50cnkt PmRvbWFpbkRhdGEgIT0gTlVMTCkKKwl7CisJCWlmIChoYXZlX3ZvbGF0aWxlKQorCQl7CisJCQlm b3JlYWNoX25vZGUoRG9tYWluQ29uc3RyYWludFN0YXRlLCBjb25zdHJzdGF0ZSwKKwkJCQkJCSB0 eXBlbnRyeS0+ZG9tYWluRGF0YS0+Y29uc3RyYWludHMpCisJCQl7CisJCQkJaWYgKGNvbnN0cnN0 YXRlLT5jb25zdHJhaW50dHlwZSA9PSBET01fQ09OU1RSQUlOVF9DSEVDSyAmJgorCQkJCQljb250 YWluX3ZvbGF0aWxlX2Z1bmN0aW9ucygoTm9kZSAqKSBjb25zdHJzdGF0ZS0+Y2hlY2tfZXhwcikp CisJCQkJeworCQkJCQkqaGF2ZV92b2xhdGlsZSA9IHRydWU7CisJCQkJCWJyZWFrOworCQkJCX0K KwkJCX0KKwkJfQorCisJCXJldHVybiB0cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKwor CiAvKgogICogYXJyYXlfZWxlbWVudF9oYXNfZXF1YWxpdHkgYW5kIGZyaWVuZHMgYXJlIGhlbHBl ciByb3V0aW5lcyB0byBjaGVjawogICogd2hldGhlciB3ZSBzaG91bGQgYmVsaWV2ZSB0aGF0IGFy cmF5X2VxIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyB3aWxsIHdvcmsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL3R5cGNhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy90eXBjYWNoZS5oCmlu ZGV4IDBlMzk0NWFhMjQ0Li4zODM2NmZmMTU5ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvdHlwY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy90eXBjYWNoZS5oCkBAIC0xODQs NiArMTg0LDcgQEAgZXh0ZXJuIHZvaWQgSW5pdERvbWFpbkNvbnN0cmFpbnRSZWYoT2lkIHR5cGVf aWQsIERvbWFpbkNvbnN0cmFpbnRSZWYgKnJlZiwKIGV4dGVybiB2b2lkIFVwZGF0ZURvbWFpbkNv bnN0cmFpbnRSZWYoRG9tYWluQ29uc3RyYWludFJlZiAqcmVmKTsKIAogZXh0ZXJuIGJvb2wgRG9t YWluSGFzQ29uc3RyYWludHMoT2lkIHR5cGVfaWQpOworZXh0ZXJuIGJvb2wgRG9tYWluSGFzVm9s YXRpbGVDb25zdHJhaW50cyhPaWQgdHlwZV9pZCwgYm9vbCAqaGF2ZV92b2xhdGlsZSk7CiAKIGV4 dGVybiBUdXBsZURlc2MgbG9va3VwX3Jvd3R5cGVfdHVwZGVzYyhPaWQgdHlwZV9pZCwgaW50MzIg dHlwbW9kKTsKIAotLSAKMi4zNC4xCgo= --00000000000054557a064cb7743b--