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.94.2) (envelope-from ) id 1tpewl-009oXq-OW for pgsql-hackers@arkaria.postgresql.org; Wed, 05 Mar 2025 02:57:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tpewk-00G9b2-Az for pgsql-hackers@arkaria.postgresql.org; Wed, 05 Mar 2025 02:57:22 +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.94.2) (envelope-from ) id 1tpewj-00G9at-PC for pgsql-hackers@lists.postgresql.org; Wed, 05 Mar 2025 02:57:22 +0000 Received: from mail-vk1-xa2f.google.com ([2607:f8b0:4864:20::a2f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tpewh-0011Xc-0o for pgsql-hackers@postgresql.org; Wed, 05 Mar 2025 02:57:20 +0000 Received: by mail-vk1-xa2f.google.com with SMTP id 71dfb90a1353d-523cbce3fecso6393e0c.0 for ; Tue, 04 Mar 2025 18:57:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741143438; x=1741748238; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Ct60F/GUsQv2pb+w5aKqxPOae6nfxpvEvDKCCG9tcRA=; b=eqf1xZkbXBmvzT+wEkTCrBa4URs482q3ofRxhGuWf2z36WOnqwYqbtiM75bVu2roz5 9VJp/ptY7sbrnFHBqtTU01B78HYNFRVRuNFW4tE8ki4paoFjThTpu46kJzCBT5CsXdyi pHEnAzf3FE6kvUA3qEUhwy7yr1d+C4hoSUCRXN5rdlwXlCh3uXizvvoU94zJjVvB+nxy CIa2EWAsB2Fk7RPACxG7xusLGK3oFNvW9sd0uNBRoWCYo/TohNJLhr/n0m/CKjZDlaw2 yxy6dPXzzJvJKCf9SHnmDgV9i83oalkepNVn7rDCT3MNvJvZENRThmWWb0OLxBOuDpfL YHoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741143438; x=1741748238; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Ct60F/GUsQv2pb+w5aKqxPOae6nfxpvEvDKCCG9tcRA=; b=q9pp7VuhkRovy62QkvzXNHTK1oD+9j09RF6T1F/nLVGEJpusYtCf1SZADRk7baBDVr mW4qSfGdbTWi4RxdAQ3U1LcDP3fCawfZaABCJhpUcQrJjLMDqls313lzUq7J9B3kZj5V mq9CNIgFoT3KKrmNvvmZ0o0/U/tAEOIfKzpi0ipkzNrF/nC/78es3w1NhJxKlTY67UK4 vRUOw58fALkoCKp7reHxl2P0UeWoJCwDJP83y9iWne/DaKELRx+bQswpUIEvsdTm9eLj 1p9jXXOHjoS4pHxa34M9hKeJ15tfMpxuatlYsyUG7IdBVPFJ2aZQVrFGVCA4US0i/nM/ 2Bkw== X-Gm-Message-State: AOJu0YzSmlKx0owtt+WjCd2KQJ0TzdUnO1Ar0Wo+8i92iGXOAmfPrnTO glig5348500bUQXGX67/RC/Dmxq1OK56FGGolenJCJXcvFQuT/1mgrnkmg6Kz4Nl5YIdpbSQObv l+CvANoCu9KXsfdssF3Z3559sR5ynJ9KTNie9dQ== X-Gm-Gg: ASbGncsizW/Tjo2mm8i5Af/mbd7z3lE/vKMSMBA/XXjVU4JDyEANiXjRpV3Wy6CT2Ah Som3pX5sEw2qoe6lkpjPne/iA7C+zmfQ5szxUcNknnNe4G+r3P/K3qH0fJZnNz/1Hlw5N7Me2dP fufKx2k9L82BuOYSN7gJVCFBGOHIEmLYMLKBb4uiC8G7voLi/fQn5/dKbhZQ== X-Google-Smtp-Source: AGHT+IFQSB6cw9OW0KmiKq7FRLG55acxKHd0AJi0hAila7jQp/BGJo7sGptwrAgWwg/iyS8qwjGKRXWb1lHzzUhWWU4= X-Received: by 2002:a05:6102:3a0f:b0:4bb:e80b:473d with SMTP id ada2fe7eead31-4c2e27af87cmr777012137.6.1741143438373; Tue, 04 Mar 2025 18:57:18 -0800 (PST) MIME-Version: 1.0 From: jian he Date: Wed, 5 Mar 2025 10:56:42 +0800 X-Gm-Features: AQ5f1JqKhM4vpfW0IKqy0XwEvTwmFQCikC-kidBQfw08weZZsm_cUudMkHFcWAE Message-ID: Subject: support fast default for domain with constraints To: PostgreSQL-development Content-Type: multipart/mixed; boundary="00000000000025fd54062f8f8c72" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000025fd54062f8f8c72 Content-Type: text/plain; charset="UTF-8" hi. Thanks to commit aaaf9449ec6be62cb0d30ed3588dc384f56274bf[1], ExprState.escontext (ErrorSaveContext) was added, and ExecEvalConstraintNotNull, ExecEvalConstraintCheck were changed to use errsave instead of hard error. Now we can use it to evaluate CoerceToDomain in a soft error way, that is what this patch intended to do. previously ExprState.escontext was mainly used in SQL/JSON related patches. To achieve that, we have to populate ExprState.escontext before passing it to ExecInitExprRec. So I created two functions: ExecInitExprSafe, ExecPrepareExprSafe. ExecPrepareExprSafe is an error safe variant of ExecPrepareExpr. within ExecPrepareExprSafe, we use ExecInitExprSafe. ExecInitExprSafe differs from ExecInitExpr is that the output ExprState has its escontext set to a valid ErrorSaveContext. demo: CREATE DOMAIN domain5 AS int check(value > 10); -- stable create domain domain6 as int not null; CREATE TABLE t3(a int); ALTER TABLE t3 ADD COLUMN b domain5 default 1; --should not fail. INSERT INTO t3 DEFAULT VALUES; --should fail. ALTER TABLE t3 DROP COLUMN b; --need drop it for the following tests INSERT INTO t3 VALUES(1),(2); ALTER TABLE t3 ADD COLUMN b domain6; --table rewrite. then fail. ALTER TABLE t3 ADD COLUMN c domain6 default 13; --no table rewrite. fast default applied. attmissingval is stored. [1] https://git.postgresql.org/cgit/postgresql.git/commit/?id=aaaf9449ec6be62cb0d30ed3588dc384f56274bf --00000000000025fd54062f8f8c72 Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0002-support-fast-default-for-domain-with-constraints.patch" Content-Disposition: attachment; filename="v1-0002-support-fast-default-for-domain-with-constraints.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7vbtjc90 RnJvbSAzN2M3ODhkZDUzOTlmZmRiOTAzNzNhNzlmNzg3ZTA2MmVlZGE1ZDgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgNSBNYXIgMjAyNSAxMDozMzo1MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEg Mi8yXSBzdXBwb3J0IGZhc3QgZGVmYXVsdCBmb3IgZG9tYWluIHdpdGggY29uc3RyYWludHMKClRo aXMgaXMgcHJpbWFyaWx5IGRvbmUgYnkgZXZhbHVhdGluZyBDb2VyY2VUb0RvbWFpbiB3aXRoIHNv ZnQgZXJyb3Igc3VwcG9ydC4KCklmIHdlIGV2YXVsdGUgQ29lcmNlVG9Eb21haW4gdG8gZmFsc2Us IGl0IG1lYW5zIGluIEFURXhlY0FkZENvbHVtbiwKdGhlIGRlZnZhbCBub2RlIGV2YXVsdGlvbiB2 YWx1ZSBjYW5ub3QgYmUgY2FzdCB0byB0aGUgZG9tYWluLgpIb3dldmVyLCB3ZSBjYW5ub3QgZmFp bCBhdCB0aGUgUGhhc2UgMiBzdGFnZSBpbiBjYXNlcyB3aGVyZSB0aGUgdGFibGUgaXMgZW1wdHku CgpUaGVyZWZvcmUsIGlmIGFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGV2YXVsdGlvbiwgZG8gbm90 IHJhaXNlIHRoZSBlcnJvciwKd2Ugc2lnbmFsIFBoYXNlIDMgdG8gZG8gdGFibGUgcmV3cml0ZSwg ZXJyb3Igd2lsbCBiZSByYWlzZSBvbiBQaGFzZSAzLgoKVGhhbmtzIHRvIGNvbW1pdCBhYWFmOTQ0 OWVjNmJlNjJjYjBkMzBlZDM1ODhkYzM4NGY1NjI3NGJmWzFdLApFeHByU3RhdGUuZXNjb250ZXh0 IChFcnJvclNhdmVDb250ZXh0KSB3YXMgYWRkZWQsIGFuZCBFeGVjRXZhbENvbnN0cmFpbnROb3RO dWxsLApFeGVjRXZhbENvbnN0cmFpbnRDaGVjayB3ZXJlIGNoYW5nZWQgdG8gdXNlIGVycnNhdmUg aW5zdGVhZCBvZiBoYXJkIGVycm9yLgpub3cgd2UgY2FuIGV2YXVsYXRlIENvZXJjZVRvRG9tYWlu IGluIGEgc29mdCBlcnJvciB3YXkuCgpbMV06IGh0dHBzOi8vZ2l0LnBvc3RncmVzcWwub3JnL2Nn aXQvcG9zdGdyZXNxbC5naXQvY29tbWl0Lz9pZD1hYWFmOTQ0OWVjNmJlNjJjYjBkMzBlZDM1ODhk YzM4NGY1NjI3NGJmCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAg ICAgIHwgNDAgKysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVm YXVsdC5vdXQgfCA3NCArKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9mYXN0X2RlZmF1bHQuc3FsICAgICAgfCA0NSArKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDE0NSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCmluZGV4IDEzMTU2MzkxMjQxLi44ZjdiODMyMjQ5YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTczMzEsMTUgKzczMzEsNiBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndx dWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJICogTlVMTCBpZiBz bywgc28gd2l0aG91dCBhbnkgbW9kaWZpY2F0aW9uIG9mIHRoZSB0dXBsZSBkYXRhIHdlIHdpbGwg Z2V0CiAJICogdGhlIGVmZmVjdCBvZiBOVUxMIHZhbHVlcyBpbiB0aGUgbmV3IGNvbHVtbi4KIAkg KgotCSAqIEFuIGV4Y2VwdGlvbiBvY2N1cnMgd2hlbiB0aGUgbmV3IGNvbHVtbiBpcyBvZiBhIGRv bWFpbiB0eXBlOiB0aGUgZG9tYWluCi0JICogbWlnaHQgaGF2ZSBhIG5vdC1udWxsIGNvbnN0cmFp bnQsIG9yIGEgY2hlY2sgY29uc3RyYWludCB0aGF0IGluZGlyZWN0bHkKLQkgKiByZWplY3RzIG51 bGxzLiAgSWYgdGhlcmUgYXJlIGFueSBkb21haW4gY29uc3RyYWludHMgdGhlbiB3ZSBjb25zdHJ1 Y3QKLQkgKiBhbiBleHBsaWNpdCBOVUxMIGRlZmF1bHQgdmFsdWUgdGhhdCB3aWxsIGJlIHBhc3Nl ZCB0aHJvdWdoCi0JICogQ29lcmNlVG9Eb21haW4gcHJvY2Vzc2luZy4gIChUaGlzIGlzIGEgdGFk IGluZWZmaWNpZW50LCBzaW5jZSBpdCBjYXVzZXMKLQkgKiByZXdyaXRpbmcgdGhlIHRhYmxlIHdo aWNoIHdlIHJlYWxseSB3b3VsZG4ndCBoYXZlIHRvIGRvOyBidXQgd2UgZG8gaXQKLQkgKiB0byBw cmVzZXJ2ZSB0aGUgaGlzdG9yaWNhbCBiZWhhdmlvciB0aGF0IHN1Y2ggYSBmYWlsdXJlIHdpbGwg YmUgcmFpc2VkCi0JICogb25seSBpZiB0aGUgdGFibGUgY3VycmVudGx5IGNvbnRhaW5zIHNvbWUg cm93cy4pCi0JICoKIAkgKiBOb3RlOiB3ZSB1c2UgYnVpbGRfY29sdW1uX2RlZmF1bHQsIGFuZCBu b3QganVzdCB0aGUgY29va2VkIGRlZmF1bHQKIAkgKiByZXR1cm5lZCBieSBBZGRSZWxhdGlvbk5l d0NvbnN0cmFpbnRzLCBzbyB0aGF0IHRoZSByaWdodCB0aGluZyBoYXBwZW5zCiAJICogd2hlbiBh IGRhdGF0eXBlJ3MgZGVmYXVsdCBhcHBsaWVzLgpAQCAtNzQxOSwxMyArNzQxMCwxNiBAQCBBVEV4 ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlv biByZWwsCiAJCQkgKiBzcGVjaWZpZWQgREVGQVVMVCB2YWx1ZSBvdXRzaWRlIG9mIHRoZSBoZWFw LiAgVGhpcyBpcyBvbmx5CiAJCQkgKiBhbGxvd2VkIGZvciBwbGFpbiByZWxhdGlvbnMgYW5kIG5v bi1nZW5lcmF0ZWQgY29sdW1ucywgYW5kIHRoZQogCQkJICogZGVmYXVsdCBleHByZXNzaW9uIGNh bid0IGJlIHZvbGF0aWxlIChzdGFibGUgaXMgT0spLiAgTm90ZSB0aGF0Ci0JCQkgKiBjb250YWlu X3ZvbGF0aWxlX2Z1bmN0aW9ucyBkZWVtcyBDb2VyY2VUb0RvbWFpbiBpbW11dGFibGUsIGJ1dAot CQkJICogaGVyZSB3ZSBjb25zaWRlciB0aGF0IGNvZXJjaW9uIHRvIGEgZG9tYWluIHdpdGggY29u c3RyYWludHMgaXMKLQkJCSAqIHZvbGF0aWxlOyBlbHNlIGl0IG1pZ2h0IGZhaWwgZXZlbiB3aGVu IHRoZSB0YWJsZSBpcyBlbXB0eS4KKwkJCSAqIGNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rpb25zIGRl ZW1zIENvZXJjZVRvRG9tYWluIGltbXV0YWJsZS4KKwkJCSAqIFdlICpkbyogc3VwcG9ydCBzb2Z0 IGVycm9yIG9mIENvZXJjZVRvRG9tYWluIGlmCisJCQkgKiBFeHByU3RhdGUtPmVzY29udGV4dCBp cyBub3QgTlVMTC4gIHdlIGV2YXVsYXRlIENvZXJjZVRvRG9tYWluCisJCQkgKiAoY29lcmNpb24g dG8gYSBkb21haW4gd2l0aCBvcHRpb25hbGx5IGNvbnN0cmFpbnRzKSwgaWYgdGhlIGVycm9yCisJ CQkgKiBoYXBwZW5lZCBkdXJpbmcgZXZhdWxhdGlvbiB0aGVuIHdlIG5lZWQgdGFibGUgcmV3cml0 ZS4gd2UgbmVlZAorCQkJICogdGFibGUgcmV3cml0ZSBub3QgaGFyZCBlcnJyb3IgYmVjYXVzZSBv ZiBjYXNlcyB3aGVuIHRoZSB0YWJsZSBpcworCQkJICogZW1wdHkuCiAJCQkgKi8KIAkJCWlmIChy ZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OICYmCiAJCQkJIWNvbERlZi0+ Z2VuZXJhdGVkICYmCi0JCQkJIWhhc19kb21haW5fY29uc3RyYWludHMgJiYKIAkJCQkhY29udGFp bl92b2xhdGlsZV9mdW5jdGlvbnMoKE5vZGUgKikgZGVmdmFsKSkKIAkJCXsKIAkJCQlFU3RhdGUJ ICAgKmVzdGF0ZTsKQEAgLTc0MzUsMTAgKzc0MjksMjggQEAgQVRFeGVjQWRkQ29sdW1uKExpc3Qg Kip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCiAJCQkJLyog RXZhbHVhdGUgdGhlIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCQkJCWVzdGF0ZSA9IENyZWF0ZUV4 ZWN1dG9yU3RhdGUoKTsKLQkJCQlleHByU3RhdGUgPSBFeGVjUHJlcGFyZUV4cHIoZGVmdmFsLCBl c3RhdGUpOworCQkJCWlmICghaGFzX2RvbWFpbl9jb25zdHJhaW50cykKKwkJCQkJZXhwclN0YXRl ID0gRXhlY1ByZXBhcmVFeHByKGRlZnZhbCwgZXN0YXRlKTsKKwkJCQllbHNlCisJCQkJCWV4cHJT dGF0ZSA9IEV4ZWNQcmVwYXJlRXhwclNhZmUoZGVmdmFsLCBlc3RhdGUpOworCiAJCQkJbWlzc2lu Z3ZhbCA9IEV4ZWNFdmFsRXhwcihleHByU3RhdGUsCiAJCQkJCQkJCQkJICBHZXRQZXJUdXBsZUV4 cHJDb250ZXh0KGVzdGF0ZSksCiAJCQkJCQkJCQkJICAmbWlzc2luZ0lzTnVsbCk7CisKKwkJCQkv KgorCQkJCSAqIFdoZW4gaGFzX2RvbWFpbl9jb25zdHJhaW50cyBpcyB0cnVlLCBleHByU3RhdGUt PmVzY29udGV4dAorCQkJCSAqIHNob3VsdCBub3QgTlVMTC4gIElmIGV2YWx1YXRpbmcgZGVmdmFs IChDb2VyY2VUb0RvbWFpbiBOb2RlCisJCQkJICogd2hlbiBhdHRyaWJ1dGUtPmF0dHR5cGlkIGlz IGRvbWFpbiApIGZhaWxzLCBpdCBtZWFucyB0aGF0IHRoZQorCQkJCSAqIGRlZmF1bHQgZXhwcmVz c2lvbiBjYW5ub3QgYmUgY29lcmNlZCB0byB0aGF0IGRvbWFpbi4gVGhpcyBpcworCQkJCSAqIGFj Y2VwdGFibGUgaWYgdGhlIHRhYmxlIGlzIGVtcHR5LiAgT3RoZXJ3aXNlLCBzZXQgdGFibGUKKwkJ CQkgKiByZXdyaXRlIGFuZCBsZXQncyBlcnJvciBvdXQgaW4gUGhhc2UgMy4KKwkJCQkqLworCQkJ CWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4cHJTdGF0ZS0+ZXNjb250ZXh0KSkKKwkJCQl7CisJ CQkJCW1pc3NpbmdJc051bGwgPSB0cnVlOworCQkJCQl0YWItPnJld3JpdGUgfD0gQVRfUkVXUklU RV9ERUZBVUxUX1ZBTDsKKwkJCQl9CiAJCQkJLyogSWYgaXQgdHVybnMgb3V0IE5VTEwsIG5vdGhp bmcgdG8gZG87IGVsc2Ugc3RvcmUgaXQgKi8KIAkJCQlpZiAoIW1pc3NpbmdJc051bGwpCiAJCQkJ ewpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CmluZGV4IGNjYmNk Zjg0MDNmLi4zMDgyOWE5MTIwMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9mYXN0X2RlZmF1bHQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZmFzdF9k ZWZhdWx0Lm91dApAQCAtMzE3LDExICszMTcsODUgQEAgU0VMRUNUIGEsIGIsIGxlbmd0aChjKSA9 IDMgYXMgY19vaywgZCwgZSA+PSAxMCBhcyBlX29rIEZST00gdDI7CiAgMiB8IDMgfCB0ICAgIHwg e1RoaXMsaXMsYWJjZCx0aGUscmVhbCx3b3JsZH0gfCB0CiAoMiByb3dzKQogCistLS10ZXN0IGZh c3QgZGVmYXVsdCBvdmVyIGRvbWFpbnMgd2l0aCBjaGVjayBjb25zdHJhaW50CitDUkVBVEUgRE9N QUlOIGRvbWFpbjUgQVMgaW50IGNoZWNrKHZhbHVlID4gMTApOyAgLS0gc3RhYmxlCitjcmVhdGUg ZG9tYWluIGRvbWFpbjYgYXMgaW50IG5vdCBudWxsOworY3JlYXRlIGRvbWFpbiBkb21haW43IGFz IGludCBjaGVjayh2YWx1ZSBpcyBub3QgbnVsbCk7CitjcmVhdGUgZG9tYWluIGRvbWFpbjggYXMg aW50IGNoZWNrKHZhbHVlID4gMTApIERFRkFVTFQgcmFuZG9tKG1pbj0+MTAsIG1heD0+MTAwKTsK K0NSRUFURSBUQUJMRSB0MyhhIGludCk7CitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGIgZG9t YWluNSBkZWZhdWx0IDE7IC0tc2hvdWxkIG5vdCBmYWlsLgorTk9USUNFOiAgcmV3cml0aW5nIHRh YmxlIHQzIGZvciByZWFzb24gMgorSU5TRVJUIElOVE8gdDMgREVGQVVMVCBWQUxVRVM7IC0tc2hv dWxkIGZhaWwuCitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZG9tYWluNSB2aW9sYXRlcyBjaGVj ayBjb25zdHJhaW50ICJkb21haW41X2NoZWNrIgorQUxURVIgVEFCTEUgdDMgRFJPUCBDT0xVTU4g YjsgLS1uZWVkIGRyb3AgaXQgZm9yIHRoZSBmb2xsb3dpbmcgdGVzdHMKK0lOU0VSVCBJTlRPIHQz IFZBTFVFUygxKSwoMik7CitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGIgZG9tYWluNSBkZWZh dWx0IDI7IC0tdGFibGUgcmV3cml0ZS4gdGhlbiBmYWlsLgorTk9USUNFOiAgcmV3cml0aW5nIHRh YmxlIHQzIGZvciByZWFzb24gMgorRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGRvbWFpbjUgdmlv bGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZG9tYWluNV9jaGVjayIKK0FMVEVSIFRBQkxFIHQzIEFE RCBDT0xVTU4gYiBkb21haW42OyAtLXRhYmxlIHJld3JpdGUuIHRoZW4gZmFpbC4KK05PVElDRTog IHJld3JpdGluZyB0YWJsZSB0MyBmb3IgcmVhc29uIDIKK0VSUk9SOiAgZG9tYWluIGRvbWFpbjYg ZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYiBk b21haW42IGRlZmF1bHQgMTEgKyBOVUxMOyAtLXRhYmxlIHJld3JpdGUuIHRoZW4gZmFpbC4KK05P VElDRTogIHJld3JpdGluZyB0YWJsZSB0MyBmb3IgcmVhc29uIDIKK0VSUk9SOiAgZG9tYWluIGRv bWFpbjYgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xV TU4gYiBkb21haW43OyAtLXRhYmxlIHJld3JpdGUuIHRoZW4gZmFpbC4KK05PVElDRTogIHJld3Jp dGluZyB0YWJsZSB0MyBmb3IgcmVhc29uIDIKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBkb21h aW43IHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImRvbWFpbjdfY2hlY2siCitBTFRFUiBUQUJM RSB0MyBBREQgQ09MVU1OIGIgZG9tYWluNyBkZWZhdWx0IDExICsgTlVMTDsgLS10YWJsZSByZXdy aXRlLiB0aGVuIGZhaWwuCitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUgdDMgZm9yIHJlYXNvbiAy CitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZG9tYWluNyB2aW9sYXRlcyBjaGVjayBjb25zdHJh aW50ICJkb21haW43X2NoZWNrIgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjUg ZGVmYXVsdCAxMjsgLS1ubyB0YWJsZSByZXdyaXRlLgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVN TiBjIGRvbWFpbjYgZGVmYXVsdCAxMzsgLS1ubyB0YWJsZSByZXdyaXRlLgorQUxURVIgVEFCTEUg dDMgQUREIENPTFVNTiBkIGRvbWFpbjcgZGVmYXVsdCAxNDsgLS1ubyB0YWJsZSByZXdyaXRlLgor LS1ubyB0YWJsZSByZXdyaXRlLiB3ZSBjb25zaWRlciBleHBsaWNpdCBjb2x1bW4gZGVmYXVsdCBl eHByZXNzaW9uLCBub3QgZG9tYWluIGRlZmF1bHQKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4g ZSBkb21haW44IGRlZmF1bHQgMTU7CitTRUxFQ1QgYXR0bnVtLCBhdHRuYW1lLCBhdHRoYXNtaXNz aW5nLCBhdHRoYXNkZWYsIGF0dG1pc3Npbmd2YWwKK0ZST00gcGdfYXR0cmlidXRlCitXSEVSRSBh dHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICd0Myc6OnJlZ2NsYXNzIEFORCBhdHRpc2Ryb3BwZWQg aXMgZmFsc2UKK09SREVSIEJZIGF0dG51bTsKKyBhdHRudW0gfCBhdHRuYW1lIHwgYXR0aGFzbWlz c2luZyB8IGF0dGhhc2RlZiB8IGF0dG1pc3Npbmd2YWwgCistLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgMSB8IGEgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgIHwgCisgICAgICAzIHwgYiAgICAgICB8IHQg ICAgICAgICAgICAgfCB0ICAgICAgICAgfCB7MTJ9CisgICAgICA0IHwgYyAgICAgICB8IHQgICAg ICAgICAgICAgfCB0ICAgICAgICAgfCB7MTN9CisgICAgICA1IHwgZCAgICAgICB8IHQgICAgICAg ICAgICAgfCB0ICAgICAgICAgfCB7MTR9CisgICAgICA2IHwgZSAgICAgICB8IHQgICAgICAgICAg ICAgfCB0ICAgICAgICAgfCB7MTV9CisoNSByb3dzKQorCistLXRhYmxlIHJld3JpdGUuIHdlIGFy ZSBhcHBseWluZyBkb21haW4gdm9sYXRpbGUgZGVmYXVsdCBleHByZXNpb24KK0FMVEVSIFRBQkxF IHQzIEFERCBDT0xVTU4gZiBkb21haW44OworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHQzIGZv ciByZWFzb24gMgorU0VMRUNUIGF0dG51bSwgYXR0bmFtZSwgYXR0aGFzbWlzc2luZywgYXR0aGFz ZGVmLCBhdHRtaXNzaW5ndmFsCitGUk9NIHBnX2F0dHJpYnV0ZQorV0hFUkUgYXR0bnVtID4gMCBB TkQgYXR0cmVsaWQgPSAndDMnOjpyZWdjbGFzcyBBTkQgYXR0aXNkcm9wcGVkIGlzIGZhbHNlCitP UkRFUiBCWSBhdHRudW07CisgYXR0bnVtIHwgYXR0bmFtZSB8IGF0dGhhc21pc3NpbmcgfCBhdHRo YXNkZWYgfCBhdHRtaXNzaW5ndmFsIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgIDEgfCBhICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgICB8IAorICAgICAgMyB8IGIgICAgICAgfCBmICAgICAgICAgICAg IHwgdCAgICAgICAgIHwgCisgICAgICA0IHwgYyAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAg ICAgICAgfCAKKyAgICAgIDUgfCBkICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgICB8 IAorICAgICAgNiB8IGUgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICAgIHwgCisgICAg ICA3IHwgZiAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgfCAKKyg2IHJvd3MpCisK K1NFTEVDVCBhLGIsYyxkLGUsIGYgPiAxMCBhcyBmX29rIEZST00gdDMgT1JERVIgQlkgYTsKKyBh IHwgYiAgfCBjICB8IGQgIHwgZSAgfCBmX29rIAorLS0tKy0tLS0rLS0tLSstLS0tKy0tLS0rLS0t LS0tCisgMSB8IDEyIHwgMTMgfCAxNCB8IDE1IHwgdAorIDIgfCAxMiB8IDEzIHwgMTQgfCAxNSB8 IHQKKygyIHJvd3MpCisKIERST1AgVEFCTEUgdDI7CitEUk9QIFRBQkxFIHQzOwogRFJPUCBET01B SU4gZG9tYWluMTsKIERST1AgRE9NQUlOIGRvbWFpbjI7CiBEUk9QIERPTUFJTiBkb21haW4zOwog RFJPUCBET01BSU4gZG9tYWluNDsKK0RST1AgRE9NQUlOIGRvbWFpbjU7CitEUk9QIERPTUFJTiBk b21haW42OworRFJPUCBET01BSU4gZG9tYWluNzsKK0RST1AgRE9NQUlOIGRvbWFpbjg7CiBEUk9Q IEZVTkNUSU9OIGZvbyhJTlQpOwogLS0gRmFsbCBiYWNrIHRvIGZ1bGwgcmV3cml0ZSBmb3Igdm9s YXRpbGUgZXhwcmVzc2lvbnMKIENSRUFURSBUQUJMRSBUKHBrIElOVCBOT1QgTlVMTCBQUklNQVJZ IEtFWSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbAppbmRleCAwNjhkZDBiYzhh YS4uNWFhYTdlNzgxOGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVm YXVsdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbApAQCAt Mjg3LDExICsyODcsNTYgQEAgT1JERVIgQlkgYXR0bnVtOwogCiBTRUxFQ1QgYSwgYiwgbGVuZ3Ro KGMpID0gMyBhcyBjX29rLCBkLCBlID49IDEwIGFzIGVfb2sgRlJPTSB0MjsKIAorLS0tdGVzdCBm YXN0IGRlZmF1bHQgb3ZlciBkb21haW5zIHdpdGggY2hlY2sgY29uc3RyYWludAorQ1JFQVRFIERP TUFJTiBkb21haW41IEFTIGludCBjaGVjayh2YWx1ZSA+IDEwKTsgIC0tIHN0YWJsZQorY3JlYXRl IGRvbWFpbiBkb21haW42IGFzIGludCBub3QgbnVsbDsKK2NyZWF0ZSBkb21haW4gZG9tYWluNyBh cyBpbnQgY2hlY2sodmFsdWUgaXMgbm90IG51bGwpOworY3JlYXRlIGRvbWFpbiBkb21haW44IGFz IGludCBjaGVjayh2YWx1ZSA+IDEwKSBERUZBVUxUIHJhbmRvbShtaW49PjEwLCBtYXg9PjEwMCk7 CisKK0NSRUFURSBUQUJMRSB0MyhhIGludCk7CitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGIg ZG9tYWluNSBkZWZhdWx0IDE7IC0tc2hvdWxkIG5vdCBmYWlsLgorSU5TRVJUIElOVE8gdDMgREVG QVVMVCBWQUxVRVM7IC0tc2hvdWxkIGZhaWwuCisKK0FMVEVSIFRBQkxFIHQzIERST1AgQ09MVU1O IGI7IC0tbmVlZCBkcm9wIGl0IGZvciB0aGUgZm9sbG93aW5nIHRlc3RzCitJTlNFUlQgSU5UTyB0 MyBWQUxVRVMoMSksKDIpOworCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGIgZG9tYWluNSBk ZWZhdWx0IDI7IC0tdGFibGUgcmV3cml0ZS4gdGhlbiBmYWlsLgorQUxURVIgVEFCTEUgdDMgQURE IENPTFVNTiBiIGRvbWFpbjY7IC0tdGFibGUgcmV3cml0ZS4gdGhlbiBmYWlsLgorQUxURVIgVEFC TEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjYgZGVmYXVsdCAxMSArIE5VTEw7IC0tdGFibGUgcmV3 cml0ZS4gdGhlbiBmYWlsLgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjc7IC0t dGFibGUgcmV3cml0ZS4gdGhlbiBmYWlsLgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRv bWFpbjcgZGVmYXVsdCAxMSArIE5VTEw7IC0tdGFibGUgcmV3cml0ZS4gdGhlbiBmYWlsLgorCitB TFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGIgZG9tYWluNSBkZWZhdWx0IDEyOyAtLW5vIHRhYmxl IHJld3JpdGUuCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGMgZG9tYWluNiBkZWZhdWx0IDEz OyAtLW5vIHRhYmxlIHJld3JpdGUuCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGQgZG9tYWlu NyBkZWZhdWx0IDE0OyAtLW5vIHRhYmxlIHJld3JpdGUuCistLW5vIHRhYmxlIHJld3JpdGUuIHdl IGNvbnNpZGVyIGV4cGxpY2l0IGNvbHVtbiBkZWZhdWx0IGV4cHJlc3Npb24sIG5vdCBkb21haW4g ZGVmYXVsdAorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBlIGRvbWFpbjggZGVmYXVsdCAxNTsK KworU0VMRUNUIGF0dG51bSwgYXR0bmFtZSwgYXR0aGFzbWlzc2luZywgYXR0aGFzZGVmLCBhdHRt aXNzaW5ndmFsCitGUk9NIHBnX2F0dHJpYnV0ZQorV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVs aWQgPSAndDMnOjpyZWdjbGFzcyBBTkQgYXR0aXNkcm9wcGVkIGlzIGZhbHNlCitPUkRFUiBCWSBh dHRudW07CisKKy0tdGFibGUgcmV3cml0ZS4gd2UgYXJlIGFwcGx5aW5nIGRvbWFpbiB2b2xhdGls ZSBkZWZhdWx0IGV4cHJlc2lvbgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBmIGRvbWFpbjg7 CisKK1NFTEVDVCBhdHRudW0sIGF0dG5hbWUsIGF0dGhhc21pc3NpbmcsIGF0dGhhc2RlZiwgYXR0 bWlzc2luZ3ZhbAorRlJPTSBwZ19hdHRyaWJ1dGUKK1dIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJl bGlkID0gJ3QzJzo6cmVnY2xhc3MgQU5EIGF0dGlzZHJvcHBlZCBpcyBmYWxzZQorT1JERVIgQlkg YXR0bnVtOworCitTRUxFQ1QgYSxiLGMsZCxlLCBmID4gMTAgYXMgZl9vayBGUk9NIHQzIE9SREVS IEJZIGE7CisKIERST1AgVEFCTEUgdDI7CitEUk9QIFRBQkxFIHQzOwogRFJPUCBET01BSU4gZG9t YWluMTsKIERST1AgRE9NQUlOIGRvbWFpbjI7CiBEUk9QIERPTUFJTiBkb21haW4zOwogRFJPUCBE T01BSU4gZG9tYWluNDsKK0RST1AgRE9NQUlOIGRvbWFpbjU7CitEUk9QIERPTUFJTiBkb21haW42 OworRFJPUCBET01BSU4gZG9tYWluNzsKK0RST1AgRE9NQUlOIGRvbWFpbjg7CiBEUk9QIEZVTkNU SU9OIGZvbyhJTlQpOwogCiAtLSBGYWxsIGJhY2sgdG8gZnVsbCByZXdyaXRlIGZvciB2b2xhdGls ZSBleHByZXNzaW9ucwotLSAKMi4zNC4xCgo= --00000000000025fd54062f8f8c72 Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0001-add-soft-error-variant-of-ExecPrepareExpr-ExecIni.patch" Content-Disposition: attachment; filename="v1-0001-add-soft-error-variant-of-ExecPrepareExpr-ExecIni.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7vbtjcc1 RnJvbSA0NGU0OWQzYzA3MGMzNzQ0Zjc1NTQwYTdkNDhhZjcyM2E0OTkyNmYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgNSBNYXIgMjAyNSAxMDoyNjoxMCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEg MS8yXSBhZGQgc29mdCBlcnJvciB2YXJpYW50IG9mIEV4ZWNQcmVwYXJlRXhwciwKIEV4ZWNJbml0 RXhwcgoKRXhlY1ByZXBhcmVFeHByU2FmZSBhbmQgRXhlY0luaXRFeHByU2FmZS4KRXhlY1ByZXBh cmVFeHByU2FmZSBpbml0aWFsaXplIGZvciBleHByZXNzaW9uIGV4ZWN1dGlvbiB3aXRoIHNvZnQg ZXJyb3Igc3VwcG9ydC4Kbm90IGFsbCBleHByZXNzaW9uIG5vZGUgc3VwcG9ydCBpdC4gc29tZSBs aWtlIENvZXJjZVRvRG9tYWluIGRvIHN1cHBvcnQgaXQuCgpYWFggbW9yZSBjb21tZW50cy4KLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIHwgNjMgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oIHwgIDIgKysK IDIgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CmluZGV4IDAzNTY2YzRkMTgxLi4wNGY4YjgzOWQzMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CkBAIC0xNzAsNiArMTcwLDQ2IEBAIEV4ZWNJbml0RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUg KnBhcmVudCkKIAlyZXR1cm4gc3RhdGU7CiB9CiAKKy8qCisgKiBFeGVjSW5pdEV4cHI6IHNvZnQg ZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIuCisgKiB1c2UgaXQgb25seSBmb3IgZXhwcmVz c2lvbiBub2RlcyBzdXBwb3J0IHNvZnQgZXJyb3JzLCBub3QgYWxsIGV4cHJlc3Npb24KKyAqIG5v ZGVzIHN1cHBvcnQgaXQuCisqLworRXhwclN0YXRlICoKK0V4ZWNJbml0RXhwclNhZmUoRXhwciAq bm9kZSwgUGxhblN0YXRlICpwYXJlbnQpCit7CisJRXhwclN0YXRlICAqc3RhdGU7CisJRXhwckV2 YWxTdGVwIHNjcmF0Y2ggPSB7MH07CisKKwkvKiBTcGVjaWFsIGNhc2U6IE5VTEwgZXhwcmVzc2lv biBwcm9kdWNlcyBhIE5VTEwgRXhwclN0YXRlIHBvaW50ZXIgKi8KKwlpZiAobm9kZSA9PSBOVUxM KQorCQlyZXR1cm4gTlVMTDsKKworCS8qIEluaXRpYWxpemUgRXhwclN0YXRlIHdpdGggZW1wdHkg c3RlcCBsaXN0ICovCisJc3RhdGUgPSBtYWtlTm9kZShFeHByU3RhdGUpOworCXN0YXRlLT5leHBy ID0gbm9kZTsKKwlzdGF0ZS0+cGFyZW50ID0gcGFyZW50OworCXN0YXRlLT5leHRfcGFyYW1zID0g TlVMTDsKKwlzdGF0ZS0+ZXNjb250ZXh0ID0gbWFrZU5vZGUoRXJyb3JTYXZlQ29udGV4dCk7CisJ c3RhdGUtPmVzY29udGV4dC0+dHlwZSA9IFRfRXJyb3JTYXZlQ29udGV4dDsKKwlzdGF0ZS0+ZXNj b250ZXh0LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOworCXN0YXRlLT5lc2NvbnRleHQtPmRldGFp bHNfd2FudGVkID0gdHJ1ZTsKKworCS8qIEluc2VydCBzZXR1cCBzdGVwcyBhcyBuZWVkZWQgKi8K KwlFeGVjQ3JlYXRlRXhwclNldHVwU3RlcHMoc3RhdGUsIChOb2RlICopIG5vZGUpOworCisJLyog Q29tcGlsZSB0aGUgZXhwcmVzc2lvbiBwcm9wZXIgKi8KKwlFeGVjSW5pdEV4cHJSZWMobm9kZSwg c3RhdGUsICZzdGF0ZS0+cmVzdmFsdWUsICZzdGF0ZS0+cmVzbnVsbCk7CisKKwkvKiBGaW5hbGx5 LCBhcHBlbmQgYSBET05FIHN0ZXAgKi8KKwlzY3JhdGNoLm9wY29kZSA9IEVFT1BfRE9ORTsKKwlF eHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisKKwlFeGVjUmVhZHlFeHByKHN0YXRl KTsKKworCXJldHVybiBzdGF0ZTsKK30KKwogLyoKICAqIEV4ZWNJbml0RXhwcldpdGhQYXJhbXM6 IHByZXBhcmUgYSBzdGFuZGFsb25lIGV4cHJlc3Npb24gdHJlZSBmb3IgZXhlY3V0aW9uCiAgKgpA QCAtNzc4LDYgKzgxOCwyOSBAQCBFeGVjUHJlcGFyZUV4cHIoRXhwciAqbm9kZSwgRVN0YXRlICpl c3RhdGUpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIEV4ZWNQcmVwYXJlRXhwclNhZmU6 IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjUHJlcGFyZUV4cHIuCisgKgorICogdXNlIGl0IHdo ZW4gZXhwcmVzc2lvbiBub2RlICpzdXBwb3J0KiBzb2Z0IGVycm9yIGV4cHJlc3Npb24gZXhlY3V0 aW9uLgorICogRXhlY1ByZXBhcmVFeHByIGNvbW1lbnRzIGFwcGx5IHRvIGhlcmUgdG9vLgorICov CitFeHByU3RhdGUgKgorRXhlY1ByZXBhcmVFeHByU2FmZShFeHByICpub2RlLCBFU3RhdGUgKmVz dGF0ZSkKK3sKKwlFeHByU3RhdGUgICpyZXN1bHQ7CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0 OworCisJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlc3RhdGUtPmVzX3F1ZXJ5 X2N4dCk7CisKKwlub2RlID0gZXhwcmVzc2lvbl9wbGFubmVyKG5vZGUpOworCisJcmVzdWx0ID0g RXhlY0luaXRFeHByU2FmZShub2RlLCBOVUxMKTsKKworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhv bGRjb250ZXh0KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBFeGVjUHJlcGFyZVF1 YWwgLS0tIGluaXRpYWxpemUgZm9yIHF1YWwgZXhlY3V0aW9uIG91dHNpZGUgYSBub3JtYWwKICAq IFBsYW4gdHJlZSBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggZDEyZTNmNDUx ZDIuLmI3YWI5NTQzN2ZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRv ci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKQEAgLTMwNSw2ICszMDUs NyBAQCBFeGVjUHJvY05vZGUoUGxhblN0YXRlICpub2RlKQogICogcHJvdG90eXBlcyBmcm9tIGZ1 bmN0aW9ucyBpbiBleGVjRXhwci5jCiAgKi8KIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhw cihFeHByICpub2RlLCBQbGFuU3RhdGUgKnBhcmVudCk7CitleHRlcm4gRXhwclN0YXRlICpFeGVj SW5pdEV4cHJTYWZlKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KTsKIGV4dGVybiBFeHBy U3RhdGUgKkV4ZWNJbml0RXhwcldpdGhQYXJhbXMoRXhwciAqbm9kZSwgUGFyYW1MaXN0SW5mbyBl eHRfcGFyYW1zKTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0UXVhbChMaXN0ICpxdWFsLCBQ bGFuU3RhdGUgKnBhcmVudCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdENoZWNrKExpc3Qg KnF1YWwsIFBsYW5TdGF0ZSAqcGFyZW50KTsKQEAgLTM1Myw2ICszNTQsNyBAQCBleHRlcm4gUHJv amVjdGlvbkluZm8gKkV4ZWNCdWlsZFVwZGF0ZVByb2plY3Rpb24oTGlzdCAqdGFyZ2V0TGlzdCwK IAkJCQkJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAkJCQkJCQkJCQkJCSBQbGFuU3Rh dGUgKnBhcmVudCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjUHJlcGFyZUV4cHIoRXhwciAqbm9k ZSwgRVN0YXRlICplc3RhdGUpOworZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY1ByZXBhcmVFeHByU2Fm ZShFeHByICpub2RlLCBFU3RhdGUgKmVzdGF0ZSk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjUHJl cGFyZVF1YWwoTGlzdCAqcXVhbCwgRVN0YXRlICplc3RhdGUpOwogZXh0ZXJuIEV4cHJTdGF0ZSAq RXhlY1ByZXBhcmVDaGVjayhMaXN0ICpxdWFsLCBFU3RhdGUgKmVzdGF0ZSk7CiBleHRlcm4gTGlz dCAqRXhlY1ByZXBhcmVFeHByTGlzdChMaXN0ICpub2RlcywgRVN0YXRlICplc3RhdGUpOwotLSAK Mi4zNC4xCgo= --00000000000025fd54062f8f8c72--