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 1tpoFt-00CU1z-UV for pgsql-hackers@arkaria.postgresql.org; Wed, 05 Mar 2025 12:53:46 +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 1tpoFs-00AJ9v-Lz for pgsql-hackers@arkaria.postgresql.org; Wed, 05 Mar 2025 12:53:44 +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 1tpoFs-00AJ98-2P for pgsql-hackers@lists.postgresql.org; Wed, 05 Mar 2025 12:53:44 +0000 Received: from mail-ua1-x92b.google.com ([2607:f8b0:4864:20::92b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tpoFp-0016bX-0B for pgsql-hackers@postgresql.org; Wed, 05 Mar 2025 12:53:43 +0000 Received: by mail-ua1-x92b.google.com with SMTP id a1e0cc1a2514c-86b2cc5b3c4so2630307241.3 for ; Wed, 05 Mar 2025 04:53:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741179220; x=1741784020; 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=JaBNK63nkUUZf8dbyICXlKdpol7Y5m0kyU184eWbqr4=; b=NOsXjj4dPpn1jXIWNVN5dp2lKZV5zbu5sbWzGGqcF97tqdXRGzCS0oz4ufJjZmv3yg 83YCiGpxBC7K9f155dIpVMmDHJR4PiN+3tPf5805CW+HLAIugP3rOp6ecJaWRBo+2+uH SyHd03sZLtnA+Foyas74IKp6ATBRR3+bYxPhNKCkr2avTt9YhlSI1LBEA9rBmtKhUujX hfC7EflRAe/Hftu5w7E7A6OcyFw+RjJRKORyj+EoE9sm8IwdJZ02vVbMxCfv4QWF1LxQ tPH+p4Wp0Br9SEyfmtJuSCuZ7STw/xoUsWPg6nRp6mZrgWY/ezrvloCg+Tl5/2pCkuZm Le4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741179220; x=1741784020; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=JaBNK63nkUUZf8dbyICXlKdpol7Y5m0kyU184eWbqr4=; b=gkZJiGaCVpKoXr1vljNaLqEnZ4k4SV+8xI1gDz/V1+kI7NkezivpkdVNKWQbBPl/A+ bEFxiV11QmT0Hcx3uAynFGvcveotzL3l2HFZI5+fT0BonLQJuyM3SHnDWDKVTzeCRiai n1LADSPWX6lQMKlANtoBScVGZhQGRbXZmkcKwmfhyNPNbN3FrOYDc0SX2hAnEyymzaqe wCVnrvpmR4HcDZBC9xpAuwvhKFrvSNe9lEp8yRUIy2uksqyGLKu9WKZ7LTDLtGQBiYIi RQ8oSkCju84iV24zLAM9nhy0GVNVzIkmiCgfg2tbzAvtJARK7L8YnKQlZp+af485a5of AX4A== X-Gm-Message-State: AOJu0Yxou3SLlmuj8ar4HEXnppFK9kLvX76ftlwWmEqp6iTNSgMWGUcg I+19qysaWJrg0DZVLjznf/DRA0tkHiI+38JSqZblNUE6lyA+/QL5ZZ6hlgVsOlEAJFvcBJlj7Vj zUXUnWMYz+Wr13pmNtdb0dyJX1M0= X-Gm-Gg: ASbGncs+baf6C0w4BuViUR5kMWHmBgOvuwOnfcagOtipBS5JEGTmUn1w9sFmsmx5sPM 0P6d+WQFHxRxCuXveKtd6yNIXCkaVwFB5FJC+Svf2PB3Xc1OLITbupln5pyfNLJSZW1gQ9B4gl/ Dn1I03LxUg08VftYpYrpnHwrk5lbBup5jwgmCli6Nca4thLppy8e32MiKQzQ== X-Google-Smtp-Source: AGHT+IEzdU1YOMvdISHc8UlstjsUE8kDrRTWCRmrC/cVg2b784YxE8jECPbtLfGZLBTyykFWm4wzXIRn4Wgn1vsbudY= X-Received: by 2002:a05:6102:c13:b0:4bb:ce42:40e3 with SMTP id ada2fe7eead31-4c2e291a70cmr1378404137.17.1741179220210; Wed, 05 Mar 2025 04:53:40 -0800 (PST) MIME-Version: 1.0 References: <229413.1741144420@sss.pgh.pa.us> In-Reply-To: <229413.1741144420@sss.pgh.pa.us> From: jian he Date: Wed, 5 Mar 2025 20:53:04 +0800 X-Gm-Features: AQ5f1JrBJjP-LdH4ipgn9_PazJLDA120HWkn4DnHFuBAjpqQJnMOMP6i1V853RQ Message-ID: Subject: Re: support fast default for domain with constraints To: Tom Lane Cc: PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000e9971d062f97e036" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e9971d062f97e036 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 5, 2025 at 11:13=E2=80=AFAM Tom Lane wrote: > > This patch appears to summarily throw away a couple of > backwards-compatibility concerns that the previous round > took care to preserve: > > * not throwing an error if the default would fail the domain > constraints, but the table is empty so there is no need to > instantiate the default. > hi. Thanks for pointing this out. I noticed an empty table scarenio, but didn't check it thoroughly. The attached patch preserves this backwards-compatibility. now it's aligned with master behavior, i think. main gotcha is: ALTER TABLE ADD COLUMN... If no explicitly DEFAULT, the defval either comes from pg_type.typdefaultbi= n, or constructed via makeNullConst branch. In that case, we need to use soft error evaluation, because we allow these cases for an empty table; In other cases, we can directly evaluate explicitly the DEFAULT clause. > * not assuming that the domain constraints are immutable. > > Now it's fair to question how important the second point is > considering that we mostly treat domain constraints as immutable > elsewhere. But I think the first point has actual practical uses > --- for example, if you want to set things up so that inserts must > specify that column explicitly. So I don't think it's okay to > discard that behavior. > in v2-0003. I created a new function: bool DomainHaveVolatileConstraints(Oid type_id, bool *have_volatile) within DomainHaveVolatileConstraints i use contain_volatile_functions to test whether check_expr is volatile or = not. contain_volatile_functions won't be expensive, i think. if true then have_volatile is set to true. if have_volatile is true then we need table rewrite. --000000000000e9971d062f97e036 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0002-fast-default-for-domain-with-constraints.patch" Content-Disposition: attachment; filename="v2-0002-fast-default-for-domain-with-constraints.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7vx2vb12 RnJvbSA0MDM2NGE5ZjM5MjZhOWViYzhjYWQ0NTM0YWIyMjIxZTJhMWQyNTc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgNSBNYXIgMjAyNSAyMDozODoyNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIg Mi8zXSBmYXN0IGRlZmF1bHQgZm9yIGRvbWFpbiB3aXRoIGNvbnN0cmFpbnRzCgpUaGlzIGlzIHBy aW1hcmlseSBkb25lIGJ5IGV2YWx1YXRpbmcgQ29lcmNlVG9Eb21haW4gd2l0aCBzb2Z0IGVycm9y IHN1cHBvcnQuCgpJZiB3ZSBldmFsdWF0ZSBDb2VyY2VUb0RvbWFpbiB0byBmYWxzZSwgaXQgbWVh bnMgaW4gQVRFeGVjQWRkQ29sdW1uLAp0aGUgZGVmdmFsIG5vZGUgZXZhbHVhdGlvbiB2YWx1ZSBj YW5ub3QgYmUgY2FzdCB0byB0aGUgZG9tYWluLgpIb3dldmVyLCB3ZSBjYW5ub3QgZmFpbCBhdCB0 aGUgUGhhc2UgMiBzdGFnZSBpbiBjYXNlcyB3aGVyZSB0aGUgdGFibGUgaXMgZW1wdHkuCgpUaGVy ZWZvcmUsIGlmIGFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGV2YWx1YXRpb24sIGRvIG5vdCByYWlz ZSB0aGUgZXJyb3IsCndlIHNpZ25hbCBQaGFzZSAzIHRvIGRvIHRhYmxlIHJld3JpdGUsIGVycm9y IHdpbGwgYmUgcmFpc2VkIG9uIFBoYXNlIDMuCgpUaGFua3MgdG8gY29tbWl0IGFhYWY5NDQ5ZWM2 YmU2MmNiMGQzMGVkMzU4OGRjMzg0ZjU2Mjc0YmZbMV0sCkV4cHJTdGF0ZS5lc2NvbnRleHQgKEVy cm9yU2F2ZUNvbnRleHQpIHdhcyBhZGRlZCwgYW5kIEV4ZWNFdmFsQ29uc3RyYWludE5vdE51bGws CkV4ZWNFdmFsQ29uc3RyYWludENoZWNrIHdlcmUgY2hhbmdlZCB0byB1c2UgZXJyc2F2ZSBpbnN0 ZWFkIG9mIGhhcmQgZXJyb3IuCk5vdyB3ZSBjYW4gZXZhbHVhdGUgQ29lcmNlVG9Eb21haW4gaW4g YSBzb2Z0IGVycm9yIHdheS4KCk5PVEU6IHRoaXMgcGF0Y2ggZG9lcyBub3QgY29uc2lkZXIgZG9t YWluIHdpdGggdm9sYXRpbGUgY2hlY2sgY29uc3RyYWludHMuCgpkaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBQ0p1ZnhFXytpWkJSMWk0OWtfQUhpZ3BwUHdMVEppNmttOE5Pc0M3Rld2 S2RFbW1YZ0BtYWlsLmdtYWlsLmNvbQoKWzFdOiBodHRwczovL2dpdC5wb3N0Z3Jlc3FsLm9yZy9j Z2l0L3Bvc3RncmVzcWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDllYzZiZTYyY2IwZDMwZWQzNTg4 ZGMzODRmNTYyNzRiZgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAg ICAgICB8IDQzICsrKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZmFzdF9kZWZh dWx0Lm91dCB8IDkxICsrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2Zhc3RfZGVmYXVsdC5zcWwgICAgICB8IDU3ICsrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDE4NiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKaW5kZXggODgyNmNhNWMzMmMuLmY3YzgzNDhjN2ZmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwpAQCAtNzMzMSw2ICs3MzMxLDcgQEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVl dWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCSAqIE5VTEwgaWYgc28s IHNvIHdpdGhvdXQgYW55IG1vZGlmaWNhdGlvbiBvZiB0aGUgdHVwbGUgZGF0YSB3ZSB3aWxsIGdl dAogCSAqIHRoZSBlZmZlY3Qgb2YgTlVMTCB2YWx1ZXMgaW4gdGhlIG5ldyBjb2x1bW4uCiAJICoK KwkgKiBYWFhYIHRoaXMgcGFyYSBzaG91bGQgYmUgcmVtb3ZlZD8KIAkgKiBBbiBleGNlcHRpb24g b2NjdXJzIHdoZW4gdGhlIG5ldyBjb2x1bW4gaXMgb2YgYSBkb21haW4gdHlwZTogdGhlIGRvbWFp bgogCSAqIG1pZ2h0IGhhdmUgYSBub3QtbnVsbCBjb25zdHJhaW50LCBvciBhIGNoZWNrIGNvbnN0 cmFpbnQgdGhhdCBpbmRpcmVjdGx5CiAJICogcmVqZWN0cyBudWxscy4gIElmIHRoZXJlIGFyZSBh bnkgZG9tYWluIGNvbnN0cmFpbnRzIHRoZW4gd2UgY29uc3RydWN0CkBAIC03MzU4LDYgKzczNTks NyBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFi LCBSZWxhdGlvbiByZWwsCiAJewogCQlib29sCQloYXNfZG9tYWluX2NvbnN0cmFpbnRzOwogCQli b29sCQloYXNfbWlzc2luZyA9IGZhbHNlOworCQlib29sCQlub19leHBsaWNpdF9kZWZ2YWwgPSBm YWxzZTsKIAogCQkvKgogCQkgKiBGb3IgYW4gaWRlbnRpdHkgY29sdW1uLCB3ZSBjYW4ndCB1c2Ug YnVpbGRfY29sdW1uX2RlZmF1bHQoKSwKQEAgLTczNzUsNiArNzM3NywyMSBAQCBBVEV4ZWNBZGRD b2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWws CiAJCWVsc2UKIAkJCWRlZnZhbCA9IChFeHByICopIGJ1aWxkX2NvbHVtbl9kZWZhdWx0KHJlbCwg YXR0cmlidXRlLT5hdHRudW0pOwogCisJCS8qCisJCSAqIGlmIGRlZnZhbCBpcyB0aGVyZSwgYXR0 aGFzZGVmIGlzIGZhbHNlLCB0aGF0IG1lYW5zIHRoZSBkZWZ2YWwgY29tZXMKKwkJICogZnJvbSBk b21haW4gZGVmYXVsdCB2YWx1ZSwgbm8gZXhwbGljaXQgREVGQVVMVCBleHByZXNzaW9uIHNwZWNp ZmllZC4KKwkJICogSW4gdGhhdCBjYXNlIHdlIG5lZWQgZXZhbHVhdGUgZGVmdmFsIGVycm9yIHNh ZmUgd2F5LCBzbworCQkgKiBkb21haW4gc3BlY2lmaWNhdGlvbiBzdWNoIGFzIGBgY2hlY2sodmFs dWUgPiAxMCkgZGVmYXVsdCA4IGBgCisJCSAqIGNhbiBiZSBhZGRlZCB0byBlbXB0eSB0YWJsZS4K KwkJKi8KKwkJaWYgKGRlZnZhbCkKKwkJeworCQkJVHVwbGVEZXNjCXJkX2F0dCA9IHJlbC0+cmRf YXR0OworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0X3R1cCA9IFR1cGxlRGVzY0F0dHIocmRfYXR0 LCBhdHRyaWJ1dGUtPmF0dG51bSAtIDEpOworCQkJaWYgKCFhdHRfdHVwLT5hdHRoYXNkZWYpCisJ CQkJbm9fZXhwbGljaXRfZGVmdmFsID0gdHJ1ZTsKKwkJfQorCiAJCS8qIEJ1aWxkIENvZXJjZVRv RG9tYWluKE5VTEwpIGV4cHJlc3Npb24gaWYgbmVlZGVkICovCiAJCWhhc19kb21haW5fY29uc3Ry YWludHMgPSBEb21haW5IYXNDb25zdHJhaW50cyhhdHRyaWJ1dGUtPmF0dHR5cGlkKTsKIAkJaWYg KCFkZWZ2YWwgJiYgaGFzX2RvbWFpbl9jb25zdHJhaW50cykKQEAgLTczOTcsNiArNzQxNCwxMiBA QCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBS ZWxhdGlvbiByZWwsCiAJCQkJCQkJCQkJCQkJLTEpOwogCQkJaWYgKGRlZnZhbCA9PSBOVUxMKSAv KiBzaG91bGQgbm90IGhhcHBlbiAqLwogCQkJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gY29lcmNl IGJhc2UgdHlwZSB0byBkb21haW4iKTsKKwkJCS8qCisJCQkgKiBpZiBkb21haW4gaGF2ZSBub3Qt bnVsbCBjb25zdHJhaW50IG9yIGNoZWNrIGNvbnN0cmFpbnQKKwkJCSAqIGVxdWl2YWxlbnQgdG8g bm90LW51bGwsIHdlIG9ubHkgd2FudCBpdCBmYWlsdXJlIHdoZW4gdGFibGUgaGF2ZQorCQkJICog c29tZSByb3dzLiBzbyBkbyBpdCBpbiBzb2Z0IGVycm9yIHdheS4KKwkJCSovCisJCQlub19leHBs aWNpdF9kZWZ2YWwgPSB0cnVlOwogCQl9CiAKIAkJaWYgKGRlZnZhbCkKQEAgLTc0MTksMTMgKzc0 NDIsMTMgQEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8g KnRhYiwgUmVsYXRpb24gcmVsLAogCQkJICogc3BlY2lmaWVkIERFRkFVTFQgdmFsdWUgb3V0c2lk ZSBvZiB0aGUgaGVhcC4gIFRoaXMgaXMgb25seQogCQkJICogYWxsb3dlZCBmb3IgcGxhaW4gcmVs YXRpb25zIGFuZCBub24tZ2VuZXJhdGVkIGNvbHVtbnMsIGFuZCB0aGUKIAkJCSAqIGRlZmF1bHQg ZXhwcmVzc2lvbiBjYW4ndCBiZSB2b2xhdGlsZSAoc3RhYmxlIGlzIE9LKS4gIE5vdGUgdGhhdAot CQkJICogY29udGFpbl92b2xhdGlsZV9mdW5jdGlvbnMgZGVlbXMgQ29lcmNlVG9Eb21haW4gaW1t dXRhYmxlLCBidXQKLQkJCSAqIGhlcmUgd2UgY29uc2lkZXIgdGhhdCBjb2VyY2lvbiB0byBhIGRv bWFpbiB3aXRoIGNvbnN0cmFpbnRzIGlzCi0JCQkgKiB2b2xhdGlsZTsgZWxzZSBpdCBtaWdodCBm YWlsIGV2ZW4gd2hlbiB0aGUgdGFibGUgaXMgZW1wdHkuCisJCQkgKiBjb250YWluX3ZvbGF0aWxl X2Z1bmN0aW9ucyBkZWVtcyBDb2VyY2VUb0RvbWFpbiBpbW11dGFibGUuCisJCQkgKiBXZSBkbyBz dXBwb3J0IHNvZnQgZXJyb3IgZXZhbHVhdGlvbiBvZiBDb2VyY2VUb0RvbWFpbiBpZgorCQkJICog RXhwclN0YXRlLT5lc2NvbnRleHQgaXMgbm90IE5VTEwuIEluIHRoYXQgY2FzZSBpZiBldmFsdWF0 aW9uIGZhaWxlZCwKKwkJCSAqIHNldCB0YWJsZSByZXdyaXRlIHRvIHRydWUsIGxldCdzIGZhaWwg b24gUGhhc2UgMy4KIAkJCSAqLwogCQkJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJ TkRfUkVMQVRJT04gJiYKIAkJCQkhY29sRGVmLT5nZW5lcmF0ZWQgJiYKLQkJCQkhaGFzX2RvbWFp bl9jb25zdHJhaW50cyAmJgogCQkJCSFjb250YWluX3ZvbGF0aWxlX2Z1bmN0aW9ucygoTm9kZSAq KSBkZWZ2YWwpKQogCQkJewogCQkJCUVTdGF0ZQkgICAqZXN0YXRlOwpAQCAtNzQzNSwxMCArNzQ1 OCwyMCBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsCiAKIAkJCQkvKiBFdmFsdWF0ZSB0aGUgZGVmYXVsdCBleHByZXNz aW9uICovCiAJCQkJZXN0YXRlID0gQ3JlYXRlRXhlY3V0b3JTdGF0ZSgpOwotCQkJCWV4cHJTdGF0 ZSA9IEV4ZWNQcmVwYXJlRXhwcihkZWZ2YWwsIGVzdGF0ZSk7CisJCQkJaWYgKCFub19leHBsaWNp dF9kZWZ2YWwpCisJCQkJCWV4cHJTdGF0ZSA9IEV4ZWNQcmVwYXJlRXhwcihkZWZ2YWwsIGVzdGF0 ZSk7CisJCQkJZWxzZQorCQkJCQlleHByU3RhdGUgPSBFeGVjUHJlcGFyZUV4cHJTYWZlKGRlZnZh bCwgZXN0YXRlKTsKKwogCQkJCW1pc3Npbmd2YWwgPSBFeGVjRXZhbEV4cHIoZXhwclN0YXRlLAog CQkJCQkJCQkJCSAgR2V0UGVyVHVwbGVFeHByQ29udGV4dChlc3RhdGUpLAogCQkJCQkJCQkJCSAg Jm1pc3NpbmdJc051bGwpOworCisJCQkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXhwclN0YXRl LT5lc2NvbnRleHQpKQorCQkJCXsKKwkJCQkJbWlzc2luZ0lzTnVsbCA9IHRydWU7CisJCQkJCXRh Yi0+cmV3cml0ZSB8PSBBVF9SRVdSSVRFX0RFRkFVTFRfVkFMOworCQkJCX0KIAkJCQkvKiBJZiBp dCB0dXJucyBvdXQgTlVMTCwgbm90aGluZyB0byBkbzsgZWxzZSBzdG9yZSBpdCAqLwogCQkJCWlm ICghbWlzc2luZ0lzTnVsbCkKIAkJCQl7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3Rf ZGVmYXVsdC5vdXQKaW5kZXggY2NiY2RmODQwM2YuLjFhYjYxMGExNDEwIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CkBAIC0zMTcsMTEgKzMxNywxMDIgQEAg U0VMRUNUIGEsIGIsIGxlbmd0aChjKSA9IDMgYXMgY19vaywgZCwgZSA+PSAxMCBhcyBlX29rIEZS T00gdDI7CiAgMiB8IDMgfCB0ICAgIHwge1RoaXMsaXMsYWJjZCx0aGUscmVhbCx3b3JsZH0gfCB0 CiAoMiByb3dzKQogCistLS10ZXN0IGZhc3QgZGVmYXVsdCBvdmVyIGRvbWFpbnMgd2l0aCBjaGVj ayBjb25zdHJhaW50CitDUkVBVEUgRE9NQUlOIGRvbWFpbjUgQVMgaW50IGNoZWNrKHZhbHVlID4g MTApIGRlZmF1bHQgODsKK2NyZWF0ZSBkb21haW4gZG9tYWluNiBhcyBpbnQgbm90IG51bGw7Citj cmVhdGUgZG9tYWluIGRvbWFpbjcgYXMgaW50IGNoZWNrKHZhbHVlIGlzIG5vdCBudWxsKTsKK2Ny ZWF0ZSBkb21haW4gZG9tYWluOCBhcyBpbnQgY2hlY2sodmFsdWUgPiAxMCkgREVGQVVMVCByYW5k b20obWluPT4xMCwgbWF4PT4xMDApOworY3JlYXRlIGRvbWFpbiBkb21haW45IGFzIGludCBjaGVj ayh2YWx1ZSBpcyBub3QgbnVsbCkgZGVmYXVsdCA5OworQ1JFQVRFIFRBQkxFIHQzKGEgaW50KTsK K0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYiBkb21haW41IGRlZmF1bHQgMTsgLS1lcnJvcgor RVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGRvbWFpbjUgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWlu dCAiZG9tYWluNV9jaGVjayIKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYiBkb21haW42IGRl ZmF1bHQgTlVMTDsgLS1lcnJvcgorRVJST1I6ICBkb21haW4gZG9tYWluNiBkb2VzIG5vdCBhbGxv dyBudWxsIHZhbHVlcworQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjYgZGVmYXVs dCAxMSArIE5VTEw7IC0tZXJyb3IKK0VSUk9SOiAgZG9tYWluIGRvbWFpbjYgZG9lcyBub3QgYWxs b3cgbnVsbCB2YWx1ZXMKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYiBkb21haW43IGRlZmF1 bHQgMTEgKyBOVUxMOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZG9tYWluNyB2 aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJkb21haW43X2NoZWNrIgorQUxURVIgVEFCTEUgdDMg QUREIENPTFVNTiBiIGRvbWFpbjY7IC0tb2suIGJlY2F1c2UgdDMgaXMgZW1wdHkKK05PVElDRTog IHJld3JpdGluZyB0YWJsZSB0MyBmb3IgcmVhc29uIDIKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xV TU4gYyBkb21haW43OyAtLW9rLiBiZWNhdXNlIHQzIGlzIGVtcHR5CitOT1RJQ0U6ICByZXdyaXRp bmcgdGFibGUgdDMgZm9yIHJlYXNvbiAyCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGQgZG9t YWluNTsgLS1vay4gYmVjYXVzZSB0MyBpcyBlbXB0eQorTk9USUNFOiAgcmV3cml0aW5nIHRhYmxl IHQzIGZvciByZWFzb24gMgorSU5TRVJUIElOVE8gdDMoYSxiLGMsZCkgdmFsdWVzKDEsMiwgMywg ZGVmYXVsdCk7IC0tc2hvdWxkIGZhaWwKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBkb21haW41 IHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImRvbWFpbjVfY2hlY2siCitJTlNFUlQgSU5UTyB0 MyhhLGIsYyxkKSB2YWx1ZXMoMSxkZWZhdWx0LCAzLCAxMik7IC0tc2hvdWxkIGZhaWwKK0VSUk9S OiAgZG9tYWluIGRvbWFpbjYgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK0lOU0VSVCBJTlRP IHQzKGEsYixjLGQpIHZhbHVlcygxLDIsIGRlZmF1bHQsIDEyKTsgLS1zaG91bGQgZmFpbAorRVJS T1I6ICB2YWx1ZSBmb3IgZG9tYWluIGRvbWFpbjcgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAi ZG9tYWluN19jaGVjayIKK0lOU0VSVCBJTlRPIHQzKGEsYixjLGQpIHZhbHVlcygxLDIsIDMsIDEy KTsgLS1vaworRFJPUCBUQUJMRSB0MzsKK0NSRUFURSBUQUJMRSB0MyhhIGludCk7CitJTlNFUlQg SU5UTyB0MyBWQUxVRVMoMSksKDIpOworQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFp bjU7IC0tdGFibGUgcmV3cml0ZSwgdGhlbiBmYWlsCitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUg dDMgZm9yIHJlYXNvbiAyCitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZG9tYWluNSB2aW9sYXRl cyBjaGVjayBjb25zdHJhaW50ICJkb21haW41X2NoZWNrIgorQUxURVIgVEFCTEUgdDMgQUREIENP TFVNTiBiIGRvbWFpbjY7IC0tdGFibGUgcmV3cml0ZSwgdGhlbiBmYWlsCitOT1RJQ0U6ICByZXdy aXRpbmcgdGFibGUgdDMgZm9yIHJlYXNvbiAyCitFUlJPUjogIGRvbWFpbiBkb21haW42IGRvZXMg bm90IGFsbG93IG51bGwgdmFsdWVzCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGIgZG9tYWlu NzsgLS10YWJsZSByZXdyaXRlLCB0aGVuIGZhaWwKK05PVElDRTogIHJld3JpdGluZyB0YWJsZSB0 MyBmb3IgcmVhc29uIDIKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBkb21haW43IHZpb2xhdGVz IGNoZWNrIGNvbnN0cmFpbnQgImRvbWFpbjdfY2hlY2siCitBTFRFUiBUQUJMRSB0MyBBREQgQ09M VU1OIGIgZG9tYWluNSBkZWZhdWx0IDEyOyAtLW5vIHRhYmxlIHJld3JpdGUKK0FMVEVSIFRBQkxF IHQzIEFERCBDT0xVTU4gYyBkb21haW42IGRlZmF1bHQgMTM7IC0tbm8gdGFibGUgcmV3cml0ZQor QUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBkIGRvbWFpbjcgZGVmYXVsdCAxNDsgLS1ubyB0YWJs ZSByZXdyaXRlCistLW5vIHRhYmxlIHJld3JpdGUgd2UgY29uc2lkZXIgZXhwbGljaXQgY29sdW1u IGRlZmF1bHQgZXhwcmVzc2lvbiwgbm90IGRvbWFpbiBkZWZhdWx0CitBTFRFUiBUQUJMRSB0MyBB REQgQ09MVU1OIGUgZG9tYWluOCBkZWZhdWx0IDE1OworQUxURVIgVEFCTEUgdDMgQUREIENPTFVN TiBmIGRvbWFpbjk7IC0tbm8gdGFibGUgcmV3cml0ZQorU0VMRUNUIGF0dG51bSwgYXR0bmFtZSwg YXR0aGFzbWlzc2luZywgYXR0aGFzZGVmLCBhdHRtaXNzaW5ndmFsCitGUk9NIHBnX2F0dHJpYnV0 ZQorV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAndDMnOjpyZWdjbGFzcyBBTkQgYXR0 aXNkcm9wcGVkIGlzIGZhbHNlCitPUkRFUiBCWSBhdHRudW07CisgYXR0bnVtIHwgYXR0bmFtZSB8 IGF0dGhhc21pc3NpbmcgfCBhdHRoYXNkZWYgfCBhdHRtaXNzaW5ndmFsIAorLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAg IDEgfCBhICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICB8IAorICAgICAgMiB8IGIg ICAgICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAgICAgIHwgezEyfQorICAgICAgMyB8IGMgICAg ICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAgICAgIHwgezEzfQorICAgICAgNCB8IGQgICAgICAg fCB0ICAgICAgICAgICAgIHwgdCAgICAgICAgIHwgezE0fQorICAgICAgNSB8IGUgICAgICAgfCB0 ICAgICAgICAgICAgIHwgdCAgICAgICAgIHwgezE1fQorICAgICAgNiB8IGYgICAgICAgfCB0ICAg ICAgICAgICAgIHwgZiAgICAgICAgIHwgezl9CisoNiByb3dzKQorCistLXRhYmxlIHJld3JpdGUu IHdlIGFyZSBhcHBseWluZyBkb21haW4gdm9sYXRpbGUgZGVmYXVsdCBleHByZXNpb24KK0FMVEVS IFRBQkxFIHQzIEFERCBDT0xVTU4gZyBkb21haW44OworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxl IHQzIGZvciByZWFzb24gMgorU0VMRUNUIGF0dG51bSwgYXR0bmFtZSwgYXR0aGFzbWlzc2luZywg YXR0aGFzZGVmLCBhdHRtaXNzaW5ndmFsCitGUk9NIHBnX2F0dHJpYnV0ZQorV0hFUkUgYXR0bnVt ID4gMCBBTkQgYXR0cmVsaWQgPSAndDMnOjpyZWdjbGFzcyBBTkQgYXR0aXNkcm9wcGVkIGlzIGZh bHNlCitPUkRFUiBCWSBhdHRudW07CisgYXR0bnVtIHwgYXR0bmFtZSB8IGF0dGhhc21pc3Npbmcg fCBhdHRoYXNkZWYgfCBhdHRtaXNzaW5ndmFsIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgIDEgfCBhICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgICB8IAorICAgICAgMiB8IGIgICAgICAgfCBmICAgICAg ICAgICAgIHwgdCAgICAgICAgIHwgCisgICAgICAzIHwgYyAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgICAgfCAKKyAgICAgIDQgfCBkICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAg ICAgICB8IAorICAgICAgNSB8IGUgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICAgIHwg CisgICAgICA2IHwgZiAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgfCAKKyAgICAg IDcgfCBnICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICB8IAorKDcgcm93cykKKwor U0VMRUNUIGEsYixjLGQsZSxmLCBnID4gMTAgYXMgZl9vayBGUk9NIHQzIE9SREVSIEJZIGE7Cisg YSB8IGIgIHwgYyAgfCBkICB8IGUgIHwgZiB8IGZfb2sgCistLS0rLS0tLSstLS0tKy0tLS0rLS0t LSstLS0rLS0tLS0tCisgMSB8IDEyIHwgMTMgfCAxNCB8IDE1IHwgOSB8IHQKKyAyIHwgMTIgfCAx MyB8IDE0IHwgMTUgfCA5IHwgdAorKDIgcm93cykKKwogRFJPUCBUQUJMRSB0MjsKK0RST1AgVEFC TEUgdDM7CiBEUk9QIERPTUFJTiBkb21haW4xOwogRFJPUCBET01BSU4gZG9tYWluMjsKIERST1Ag RE9NQUlOIGRvbWFpbjM7CiBEUk9QIERPTUFJTiBkb21haW40OworRFJPUCBET01BSU4gZG9tYWlu NTsKK0RST1AgRE9NQUlOIGRvbWFpbjY7CitEUk9QIERPTUFJTiBkb21haW43OworRFJPUCBET01B SU4gZG9tYWluODsKK0RST1AgRE9NQUlOIGRvbWFpbjk7CiBEUk9QIEZVTkNUSU9OIGZvbyhJTlQp OwogLS0gRmFsbCBiYWNrIHRvIGZ1bGwgcmV3cml0ZSBmb3Igdm9sYXRpbGUgZXhwcmVzc2lvbnMK IENSRUFURSBUQUJMRSBUKHBrIElOVCBOT1QgTlVMTCBQUklNQVJZIEtFWSk7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvZmFzdF9kZWZhdWx0LnNxbAppbmRleCAwNjhkZDBiYzhhYS4uZTMxMzljZThiMTUgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbApAQCAtMjg3LDExICsyODcsNjggQEAg T1JERVIgQlkgYXR0bnVtOwogCiBTRUxFQ1QgYSwgYiwgbGVuZ3RoKGMpID0gMyBhcyBjX29rLCBk LCBlID49IDEwIGFzIGVfb2sgRlJPTSB0MjsKIAorLS0tdGVzdCBmYXN0IGRlZmF1bHQgb3ZlciBk b21haW5zIHdpdGggY2hlY2sgY29uc3RyYWludAorQ1JFQVRFIERPTUFJTiBkb21haW41IEFTIGlu dCBjaGVjayh2YWx1ZSA+IDEwKSBkZWZhdWx0IDg7CitjcmVhdGUgZG9tYWluIGRvbWFpbjYgYXMg aW50IG5vdCBudWxsOworY3JlYXRlIGRvbWFpbiBkb21haW43IGFzIGludCBjaGVjayh2YWx1ZSBp cyBub3QgbnVsbCk7CitjcmVhdGUgZG9tYWluIGRvbWFpbjggYXMgaW50IGNoZWNrKHZhbHVlID4g MTApIERFRkFVTFQgcmFuZG9tKG1pbj0+MTAsIG1heD0+MTAwKTsKK2NyZWF0ZSBkb21haW4gZG9t YWluOSBhcyBpbnQgY2hlY2sodmFsdWUgaXMgbm90IG51bGwpIGRlZmF1bHQgOTsKKworQ1JFQVRF IFRBQkxFIHQzKGEgaW50KTsKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYiBkb21haW41IGRl ZmF1bHQgMTsgLS1lcnJvcgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjYgZGVm YXVsdCBOVUxMOyAtLWVycm9yCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGIgZG9tYWluNiBk ZWZhdWx0IDExICsgTlVMTDsgLS1lcnJvcgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRv bWFpbjcgZGVmYXVsdCAxMSArIE5VTEw7IC0tZXJyb3IKKworQUxURVIgVEFCTEUgdDMgQUREIENP TFVNTiBiIGRvbWFpbjY7IC0tb2suIGJlY2F1c2UgdDMgaXMgZW1wdHkKK0FMVEVSIFRBQkxFIHQz IEFERCBDT0xVTU4gYyBkb21haW43OyAtLW9rLiBiZWNhdXNlIHQzIGlzIGVtcHR5CitBTFRFUiBU QUJMRSB0MyBBREQgQ09MVU1OIGQgZG9tYWluNTsgLS1vay4gYmVjYXVzZSB0MyBpcyBlbXB0eQor SU5TRVJUIElOVE8gdDMoYSxiLGMsZCkgdmFsdWVzKDEsMiwgMywgZGVmYXVsdCk7IC0tc2hvdWxk IGZhaWwKK0lOU0VSVCBJTlRPIHQzKGEsYixjLGQpIHZhbHVlcygxLGRlZmF1bHQsIDMsIDEyKTsg LS1zaG91bGQgZmFpbAorSU5TRVJUIElOVE8gdDMoYSxiLGMsZCkgdmFsdWVzKDEsMiwgZGVmYXVs dCwgMTIpOyAtLXNob3VsZCBmYWlsCitJTlNFUlQgSU5UTyB0MyhhLGIsYyxkKSB2YWx1ZXMoMSwy LCAzLCAxMik7IC0tb2sKKworRFJPUCBUQUJMRSB0MzsKK0NSRUFURSBUQUJMRSB0MyhhIGludCk7 CitJTlNFUlQgSU5UTyB0MyBWQUxVRVMoMSksKDIpOworCitBTFRFUiBUQUJMRSB0MyBBREQgQ09M VU1OIGIgZG9tYWluNTsgLS10YWJsZSByZXdyaXRlLCB0aGVuIGZhaWwKK0FMVEVSIFRBQkxFIHQz IEFERCBDT0xVTU4gYiBkb21haW42OyAtLXRhYmxlIHJld3JpdGUsIHRoZW4gZmFpbAorQUxURVIg VEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjc7IC0tdGFibGUgcmV3cml0ZSwgdGhlbiBmYWls CisKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYiBkb21haW41IGRlZmF1bHQgMTI7IC0tbm8g dGFibGUgcmV3cml0ZQorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBjIGRvbWFpbjYgZGVmYXVs dCAxMzsgLS1ubyB0YWJsZSByZXdyaXRlCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGQgZG9t YWluNyBkZWZhdWx0IDE0OyAtLW5vIHRhYmxlIHJld3JpdGUKKy0tbm8gdGFibGUgcmV3cml0ZSB3 ZSBjb25zaWRlciBleHBsaWNpdCBjb2x1bW4gZGVmYXVsdCBleHByZXNzaW9uLCBub3QgZG9tYWlu IGRlZmF1bHQKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZSBkb21haW44IGRlZmF1bHQgMTU7 CitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGYgZG9tYWluOTsgLS1ubyB0YWJsZSByZXdyaXRl CisKK1NFTEVDVCBhdHRudW0sIGF0dG5hbWUsIGF0dGhhc21pc3NpbmcsIGF0dGhhc2RlZiwgYXR0 bWlzc2luZ3ZhbAorRlJPTSBwZ19hdHRyaWJ1dGUKK1dIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJl bGlkID0gJ3QzJzo6cmVnY2xhc3MgQU5EIGF0dGlzZHJvcHBlZCBpcyBmYWxzZQorT1JERVIgQlkg YXR0bnVtOworCistLXRhYmxlIHJld3JpdGUuIHdlIGFyZSBhcHBseWluZyBkb21haW4gdm9sYXRp bGUgZGVmYXVsdCBleHByZXNpb24KK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZyBkb21haW44 OworCitTRUxFQ1QgYXR0bnVtLCBhdHRuYW1lLCBhdHRoYXNtaXNzaW5nLCBhdHRoYXNkZWYsIGF0 dG1pc3Npbmd2YWwKK0ZST00gcGdfYXR0cmlidXRlCitXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRy ZWxpZCA9ICd0Myc6OnJlZ2NsYXNzIEFORCBhdHRpc2Ryb3BwZWQgaXMgZmFsc2UKK09SREVSIEJZ IGF0dG51bTsKKworU0VMRUNUIGEsYixjLGQsZSxmLCBnID4gMTAgYXMgZl9vayBGUk9NIHQzIE9S REVSIEJZIGE7CisKIERST1AgVEFCTEUgdDI7CitEUk9QIFRBQkxFIHQzOwogRFJPUCBET01BSU4g ZG9tYWluMTsKIERST1AgRE9NQUlOIGRvbWFpbjI7CiBEUk9QIERPTUFJTiBkb21haW4zOwogRFJP UCBET01BSU4gZG9tYWluNDsKK0RST1AgRE9NQUlOIGRvbWFpbjU7CitEUk9QIERPTUFJTiBkb21h aW42OworRFJPUCBET01BSU4gZG9tYWluNzsKK0RST1AgRE9NQUlOIGRvbWFpbjg7CitEUk9QIERP TUFJTiBkb21haW45OwogRFJPUCBGVU5DVElPTiBmb28oSU5UKTsKIAogLS0gRmFsbCBiYWNrIHRv IGZ1bGwgcmV3cml0ZSBmb3Igdm9sYXRpbGUgZXhwcmVzc2lvbnMKLS0gCjIuMzQuMQoK --000000000000e9971d062f97e036 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-soft-error-variant-of-ExecPrepareExpr-ExecInitExp.patch" Content-Disposition: attachment; filename="v2-0001-soft-error-variant-of-ExecPrepareExpr-ExecInitExp.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7vx2vao0 RnJvbSBhZTU3ZjEwZTM0ODYyMjk1YjAwZmRkMWEwNTYwOTk1YTE1OTdjNjkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgNSBNYXIgMjAyNSAyMDozNzozMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIg MS8zXSBzb2Z0IGVycm9yIHZhcmlhbnQgb2YgRXhlY1ByZXBhcmVFeHByLCBFeGVjSW5pdEV4cHIK CkV4ZWNQcmVwYXJlRXhwclNhZmUgYW5kIEV4ZWNJbml0RXhwclNhZmUuCkV4ZWNQcmVwYXJlRXhw clNhZmUgaW5pdGlhbGl6ZSBmb3IgZXhwcmVzc2lvbiBleGVjdXRpb24gd2l0aCBzb2Z0IGVycm9y IHN1cHBvcnQuCm5vdCBhbGwgZXhwcmVzc2lvbiBub2RlIHN1cHBvcnQgaXQuIHNvbWUgbGlrZSBD b2VyY2VUb0RvbWFpbiBkbyBzdXBwb3J0IGl0LgoKWFhYIG1vcmUgY29tbWVudHMuCgpkaXNjdXNz aW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhFXytpWkJSMWk0OWtfQUhpZ3BwUHdMVEpp NmttOE5Pc0M3Rld2S2RFbW1YZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHByLmMgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNy Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggfCAgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCA2 NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggMDM1NjZjNGQxODEu LjA0ZjhiODM5ZDMwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTE3MCw2ICsxNzAsNDYg QEAgRXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQogCXJldHVybiBz dGF0ZTsKIH0KIAorLyoKKyAqIEV4ZWNJbml0RXhwcjogc29mdCBlcnJvciB2YXJpYW50IG9mIEV4 ZWNJbml0RXhwci4KKyAqIHVzZSBpdCBvbmx5IGZvciBleHByZXNzaW9uIG5vZGVzIHN1cHBvcnQg c29mdCBlcnJvcnMsIG5vdCBhbGwgZXhwcmVzc2lvbgorICogbm9kZXMgc3VwcG9ydCBpdC4KKyov CitFeHByU3RhdGUgKgorRXhlY0luaXRFeHByU2FmZShFeHByICpub2RlLCBQbGFuU3RhdGUgKnBh cmVudCkKK3sKKwlFeHByU3RhdGUgICpzdGF0ZTsKKwlFeHByRXZhbFN0ZXAgc2NyYXRjaCA9IHsw fTsKKworCS8qIFNwZWNpYWwgY2FzZTogTlVMTCBleHByZXNzaW9uIHByb2R1Y2VzIGEgTlVMTCBF eHByU3RhdGUgcG9pbnRlciAqLworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBOVUxMOwor CisJLyogSW5pdGlhbGl6ZSBFeHByU3RhdGUgd2l0aCBlbXB0eSBzdGVwIGxpc3QgKi8KKwlzdGF0 ZSA9IG1ha2VOb2RlKEV4cHJTdGF0ZSk7CisJc3RhdGUtPmV4cHIgPSBub2RlOworCXN0YXRlLT5w YXJlbnQgPSBwYXJlbnQ7CisJc3RhdGUtPmV4dF9wYXJhbXMgPSBOVUxMOworCXN0YXRlLT5lc2Nv bnRleHQgPSBtYWtlTm9kZShFcnJvclNhdmVDb250ZXh0KTsKKwlzdGF0ZS0+ZXNjb250ZXh0LT50 eXBlID0gVF9FcnJvclNhdmVDb250ZXh0OworCXN0YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3Vy cmVkID0gZmFsc2U7CisJc3RhdGUtPmVzY29udGV4dC0+ZGV0YWlsc193YW50ZWQgPSB0cnVlOwor CisJLyogSW5zZXJ0IHNldHVwIHN0ZXBzIGFzIG5lZWRlZCAqLworCUV4ZWNDcmVhdGVFeHByU2V0 dXBTdGVwcyhzdGF0ZSwgKE5vZGUgKikgbm9kZSk7CisKKwkvKiBDb21waWxlIHRoZSBleHByZXNz aW9uIHByb3BlciAqLworCUV4ZWNJbml0RXhwclJlYyhub2RlLCBzdGF0ZSwgJnN0YXRlLT5yZXN2 YWx1ZSwgJnN0YXRlLT5yZXNudWxsKTsKKworCS8qIEZpbmFsbHksIGFwcGVuZCBhIERPTkUgc3Rl cCAqLworCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9ET05FOworCUV4cHJFdmFsUHVzaFN0ZXAoc3Rh dGUsICZzY3JhdGNoKTsKKworCUV4ZWNSZWFkeUV4cHIoc3RhdGUpOworCisJcmV0dXJuIHN0YXRl OworfQorCiAvKgogICogRXhlY0luaXRFeHByV2l0aFBhcmFtczogcHJlcGFyZSBhIHN0YW5kYWxv bmUgZXhwcmVzc2lvbiB0cmVlIGZvciBleGVjdXRpb24KICAqCkBAIC03NzgsNiArODE4LDI5IEBA IEV4ZWNQcmVwYXJlRXhwcihFeHByICpub2RlLCBFU3RhdGUgKmVzdGF0ZSkKIAlyZXR1cm4gcmVz dWx0OwogfQogCisvKgorICogRXhlY1ByZXBhcmVFeHByU2FmZTogc29mdCBlcnJvciB2YXJpYW50 IG9mIEV4ZWNQcmVwYXJlRXhwci4KKyAqCisgKiB1c2UgaXQgd2hlbiBleHByZXNzaW9uIG5vZGUg KnN1cHBvcnQqIHNvZnQgZXJyb3IgZXhwcmVzc2lvbiBleGVjdXRpb24uCisgKiBFeGVjUHJlcGFy ZUV4cHIgY29tbWVudHMgYXBwbHkgdG8gaGVyZSB0b28uCisgKi8KK0V4cHJTdGF0ZSAqCitFeGVj UHJlcGFyZUV4cHJTYWZlKEV4cHIgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlKQoreworCUV4cHJTdGF0 ZSAgKnJlc3VsdDsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlvbGRjb250ZXh0ID0g TWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKKworCW5vZGUgPSBl eHByZXNzaW9uX3BsYW5uZXIobm9kZSk7CisKKwlyZXN1bHQgPSBFeGVjSW5pdEV4cHJTYWZlKG5v ZGUsIE5VTEwpOworCisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCisJcmV0 dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEV4ZWNQcmVwYXJlUXVhbCAtLS0gaW5pdGlhbGl6ZSBm b3IgcXVhbCBleGVjdXRpb24gb3V0c2lkZSBhIG5vcm1hbAogICogUGxhbiB0cmVlIGNvbnRleHQu CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oIGIvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAppbmRleCBkMTJlM2Y0NTFkMi4uYjdhYjk1NDM3ZmUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKKysrIGIvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaApAQCAtMzA1LDYgKzMwNSw3IEBAIEV4ZWNQcm9jTm9kZShQ bGFuU3RhdGUgKm5vZGUpCiAgKiBwcm90b3R5cGVzIGZyb20gZnVuY3Rpb25zIGluIGV4ZWNFeHBy LmMKICAqLwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBsYW5T dGF0ZSAqcGFyZW50KTsKK2V4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwclNhZmUoRXhwciAq bm9kZSwgUGxhblN0YXRlICpwYXJlbnQpOwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRFeHBy V2l0aFBhcmFtcyhFeHByICpub2RlLCBQYXJhbUxpc3RJbmZvIGV4dF9wYXJhbXMpOwogZXh0ZXJu IEV4cHJTdGF0ZSAqRXhlY0luaXRRdWFsKExpc3QgKnF1YWwsIFBsYW5TdGF0ZSAqcGFyZW50KTsK IGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0Q2hlY2soTGlzdCAqcXVhbCwgUGxhblN0YXRlICpw YXJlbnQpOwpAQCAtMzUzLDYgKzM1NCw3IEBAIGV4dGVybiBQcm9qZWN0aW9uSW5mbyAqRXhlY0J1 aWxkVXBkYXRlUHJvamVjdGlvbihMaXN0ICp0YXJnZXRMaXN0LAogCQkJCQkJCQkJCQkJIFR1cGxl VGFibGVTbG90ICpzbG90LAogCQkJCQkJCQkJCQkJIFBsYW5TdGF0ZSAqcGFyZW50KTsKIGV4dGVy biBFeHByU3RhdGUgKkV4ZWNQcmVwYXJlRXhwcihFeHByICpub2RlLCBFU3RhdGUgKmVzdGF0ZSk7 CitleHRlcm4gRXhwclN0YXRlICpFeGVjUHJlcGFyZUV4cHJTYWZlKEV4cHIgKm5vZGUsIEVTdGF0 ZSAqZXN0YXRlKTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNQcmVwYXJlUXVhbChMaXN0ICpxdWFs LCBFU3RhdGUgKmVzdGF0ZSk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjUHJlcGFyZUNoZWNrKExp c3QgKnF1YWwsIEVTdGF0ZSAqZXN0YXRlKTsKIGV4dGVybiBMaXN0ICpFeGVjUHJlcGFyZUV4cHJM aXN0KExpc3QgKm5vZGVzLCBFU3RhdGUgKmVzdGF0ZSk7Ci0tIAoyLjM0LjEKCg== --000000000000e9971d062f97e036 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0003-no-fast-default-for-domain-with-voltile-constrain.patch" Content-Disposition: attachment; filename="v2-0003-no-fast-default-for-domain-with-voltile-constrain.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7vx2vay1 RnJvbSBmMTc5MWE0MmFlYmRmZDViZTc2NjgyYzIwMGU3MWFlYWZlNzVlN2MwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgNSBNYXIgMjAyNSAyMDozOTo0MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIg My8zXSBubyBmYXN0IGRlZmF1bHQgZm9yIGRvbWFpbiB3aXRoIHZvbHRpbGUgY29uc3RyYWludHMK CnRoaXMgcGF0Y2ggZm9yY2UgdGFibGUgcmV3cml0ZSB3aGVuIEFMVEVSIFRBQkxFIEFERCBDT0xV TU4sCnRoZSB0byBiZSBhZGRlZCBjb2x1bW4gaXMgYSBkb21haW4gd2l0aCB2b2xhdGlsZSBjaGVj ayBjb25zdHJhaW50cy4KCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FDSnVmeEVf K2laQlIxaTQ5a19BSGlncHBQd0xUSmk2a204Tk9zQzdGV3ZLZEVtbVhnQG1haWwuZ21haWwuY29t Ci0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgIHwgMTEgKysr KystCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS90eXBjYWNoZS5jICAgICAgICAgfCAzNyArKysr KysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS91dGlscy90eXBjYWNoZS5oICAgICAgICAgICAg ICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQgfCA0 MiArKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mYXN0X2RlZmF1 bHQuc3FsICAgICAgfCAzMSArKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDEyMSBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRl eCBmN2M4MzQ4YzdmZi4uOGVkZDdkYTVkNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBA IC03MzYwLDYgKzczNjAsNyBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJl ZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCWJvb2wJCWhhc19kb21haW5fY29uc3Ry YWludHM7CiAJCWJvb2wJCWhhc19taXNzaW5nID0gZmFsc2U7CiAJCWJvb2wJCW5vX2V4cGxpY2l0 X2RlZnZhbCA9IGZhbHNlOworCQlib29sCQloYXNfdm9sYXRpbGUgPSBmYWxzZTsKIAogCQkvKgog CQkgKiBGb3IgYW4gaWRlbnRpdHkgY29sdW1uLCB3ZSBjYW4ndCB1c2UgYnVpbGRfY29sdW1uX2Rl ZmF1bHQoKSwKQEAgLTczOTMsNyArNzM5NCwxNCBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndx dWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCX0KIAogCQkvKiBC dWlsZCBDb2VyY2VUb0RvbWFpbihOVUxMKSBleHByZXNzaW9uIGlmIG5lZWRlZCAqLwotCQloYXNf ZG9tYWluX2NvbnN0cmFpbnRzID0gRG9tYWluSGFzQ29uc3RyYWludHMoYXR0cmlidXRlLT5hdHR0 eXBpZCk7CisJCWhhc19kb21haW5fY29uc3RyYWludHMgPSBEb21haW5IYXZlVm9sYXRpbGVDb25z dHJhaW50cyhhdHRyaWJ1dGUtPmF0dHR5cGlkLCAmaGFzX3ZvbGF0aWxlKTsKKworCQlpZiAoaGFz X3ZvbGF0aWxlKQorCQl7CisJCQlBc3NlcnQoaGFzX2RvbWFpbl9jb25zdHJhaW50cyk7CisJCQl0 YWItPnJld3JpdGUgfD0gQVRfUkVXUklURV9ERUZBVUxUX1ZBTDsKKwkJfQorCiAJCWlmICghZGVm dmFsICYmIGhhc19kb21haW5fY29uc3RyYWludHMpCiAJCXsKIAkJCU9pZAkJCWJhc2VUeXBlSWQ7 CkBAIC03NDQ5LDYgKzc0NTcsNyBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0 ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQkgKi8KIAkJCWlmIChyZWwtPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OICYmCiAJCQkJIWNvbERlZi0+Z2VuZXJh dGVkICYmCisJCQkJIWhhc192b2xhdGlsZSAmJgogCQkJCSFjb250YWluX3ZvbGF0aWxlX2Z1bmN0 aW9ucygoTm9kZSAqKSBkZWZ2YWwpKQogCQkJewogCQkJCUVTdGF0ZQkgICAqZXN0YXRlOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvdHlwY2FjaGUuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3R5cGNhY2hlLmMKaW5kZXggNWEzYjM3ODhkMDIuLjYxN2QwZWMyN2NmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS90eXBjYWNoZS5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL3R5cGNhY2hlLmMKQEAgLTE0OTgsNiArMTQ5OCw0MyBAQCBEb21h aW5IYXNDb25zdHJhaW50cyhPaWQgdHlwZV9pZCkKIH0KIAogCisvKgorICogUmV0dXJucyB0cnVl IGlmIHRoZSBEb21haW4gaGFzIGFueSBjb25zdHJhaW50cy4KKyAqIFRvIGNoZWNrIGZvciB0aGUg cHJlc2VuY2Ugb2Ygdm9sYXRpbGUgY29uc3RyYWludHMsIGVuc3VyZQorICogaGF2ZV92b2xhdGls ZSBpcyBub3QgTlVMTC4gSWYgYSB2b2xhdGlsZSBjb25zdHJhaW50IGV4aXN0cywKKyAqIGhhdmVf dm9sYXRpbGUgd2lsbCBiZSB0cnVlLgorICovCitib29sCitEb21haW5IYXZlVm9sYXRpbGVDb25z dHJhaW50cyhPaWQgdHlwZV9pZCwgYm9vbCAqaGF2ZV92b2xhdGlsZSkKK3sKKwlUeXBlQ2FjaGVF bnRyeSAqdHlwZW50cnk7CisKKwkvKgorCSAqIE5vdGU6IGEgc2lkZSBlZmZlY3QgaXMgdG8gY2F1 c2UgdGhlIHR5cGNhY2hlJ3MgZG9tYWluIGRhdGEgdG8gYmVjb21lCisJICogdmFsaWQuICBUaGlz IGlzIGZpbmUgc2luY2Ugd2UnbGwgbGlrZWx5IG5lZWQgaXQgc29vbiBpZiB0aGVyZSBpcyBhbnku CisJICovCisJdHlwZW50cnkgPSBsb29rdXBfdHlwZV9jYWNoZSh0eXBlX2lkLCBUWVBFQ0FDSEVf RE9NQUlOX0NPTlNUUl9JTkZPKTsKKworCWlmICh0eXBlbnRyeS0+ZG9tYWluRGF0YSAhPSBOVUxM KQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisKKwkJZm9yZWFjaChsYywgdHlwZW50cnktPmRvbWFp bkRhdGEtPmNvbnN0cmFpbnRzKQorCQl7CisJCQlEb21haW5Db25zdHJhaW50U3RhdGUgKnIgPSAo RG9tYWluQ29uc3RyYWludFN0YXRlICopIGxmaXJzdChsYyk7CisKKwkJCWlmIChyLT5jb25zdHJh aW50dHlwZSA9PSBET01fQ09OU1RSQUlOVF9DSEVDSyAmJgorCQkJCWNvbnRhaW5fdm9sYXRpbGVf ZnVuY3Rpb25zKChOb2RlICopIHItPmNoZWNrX2V4cHIpKQorCQkJeworCQkJCSpoYXZlX3ZvbGF0 aWxlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCQlyZXR1cm4gdHJ1ZTsKKwl9CisJ cmV0dXJuIGZhbHNlOworfQorCiAvKgogICogYXJyYXlfZWxlbWVudF9oYXNfZXF1YWxpdHkgYW5k IGZyaWVuZHMgYXJlIGhlbHBlciByb3V0aW5lcyB0byBjaGVjawogICogd2hldGhlciB3ZSBzaG91 bGQgYmVsaWV2ZSB0aGF0IGFycmF5X2VxIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyB3aWxsIHdvcmsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3R5cGNhY2hlLmggYi9zcmMvaW5jbHVkZS91 dGlscy90eXBjYWNoZS5oCmluZGV4IDU2MmE1ODEzMzNhLi4zNjI1N2M0MjQwYyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdXRpbHMvdHlwY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy90 eXBjYWNoZS5oCkBAIC0xODMsNiArMTgzLDcgQEAgZXh0ZXJuIHZvaWQgSW5pdERvbWFpbkNvbnN0 cmFpbnRSZWYoT2lkIHR5cGVfaWQsIERvbWFpbkNvbnN0cmFpbnRSZWYgKnJlZiwKIGV4dGVybiB2 b2lkIFVwZGF0ZURvbWFpbkNvbnN0cmFpbnRSZWYoRG9tYWluQ29uc3RyYWludFJlZiAqcmVmKTsK IAogZXh0ZXJuIGJvb2wgRG9tYWluSGFzQ29uc3RyYWludHMoT2lkIHR5cGVfaWQpOworZXh0ZXJu IGJvb2wgRG9tYWluSGF2ZVZvbGF0aWxlQ29uc3RyYWludHMoT2lkIHR5cGVfaWQsIGJvb2wgKmhh dmVfdm9sYXRpbGUpOwogCiBleHRlcm4gVHVwbGVEZXNjIGxvb2t1cF9yb3d0eXBlX3R1cGRlc2Mo T2lkIHR5cGVfaWQsIGludDMyIHR5cG1vZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv ZmFzdF9kZWZhdWx0Lm91dAppbmRleCAxYWI2MTBhMTQxMC4uOGQxNmJlYWI3NGMgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQKQEAgLTQwMiw4ICs0MDIsNDgg QEAgU0VMRUNUIGEsYixjLGQsZSxmLCBnID4gMTAgYXMgZl9vayBGUk9NIHQzIE9SREVSIEJZIGE7 CiAgMiB8IDEyIHwgMTMgfCAxNCB8IDE1IHwgOSB8IHQKICgyIHJvd3MpCiAKKy0tLS0tLXRlc3Qg dGFibGUgcmV3cml0ZSBmb3Igdm9sYXRpbGUgZG9tYWluIGNvbnN0cmFpbnRzLgorY3JlYXRlIGRv bWFpbiBkb21haW4xMCBhcyBpbnQgY2hlY2soKHZhbHVlICsgcmFuZG9tKG1pbj0+MTE6OmludCwg bWF4PT4xMSkpID4gMTIpOyAtLXZvbGF0aWxlCitjcmVhdGUgZG9tYWluIGRvbWFpbjExIGFzIGlu dCBjaGVjaygodmFsdWUgKyByYW5kb20obWluPT4xMTo6aW50LCBtYXg9PjExKSkgPiAxMikgZGVm YXVsdCAxOyAtLXZvbGF0aWxlCistLXRlc3Qgd2l0aCBlbXB0eSB0YWJsZQorQ1JFQVRFIFRBQkxF IHQ0KGEgaW50KTsKK0FMVEVSIFRBQkxFIHQ0IEFERCBDT0xVTU4gYiBkb21haW4xMCBkZWZhdWx0 IC0xOworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHQ0IGZvciByZWFzb24gMgorQUxURVIgVEFC TEUgdDQgQUREIENPTFVNTiBjIGRvbWFpbjExIGRlZmF1bHQgLTE7CitOT1RJQ0U6ICByZXdyaXRp bmcgdGFibGUgdDQgZm9yIHJlYXNvbiAyCitBTFRFUiBUQUJMRSB0NCBBREQgQ09MVU1OIGQgZG9t YWluMTE7CitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUgdDQgZm9yIHJlYXNvbiAyCitJTlNFUlQg SU5UTyB0NCBkZWZhdWx0IHZhbHVlczsKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBkb21haW4x MCB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJkb21haW4xMF9jaGVjayIKK0RST1AgVEFCTEUg VDQ7CitDUkVBVEUgVEFCTEUgdDQoYSBpbnQpOworSU5TRVJUIElOVE8gdDQgVkFMVUVTKDEpLCgy KTsKKy0tYWxsIHRoZXNlIHdpbGwgdGFibGUgcmV3cml0ZSB0aGVuIGVycm9yIG91dC4KK0FMVEVS IFRBQkxFIHQ0IEFERCBDT0xVTU4gYiBkb21haW4xMCBkZWZhdWx0IC0xOworTk9USUNFOiAgcmV3 cml0aW5nIHRhYmxlIHQ0IGZvciByZWFzb24gMgorRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGRv bWFpbjEwIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImRvbWFpbjEwX2NoZWNrIgorQUxURVIg VEFCTEUgdDQgQUREIENPTFVNTiBiIGRvbWFpbjExIGRlZmF1bHQgLTE7CitOT1RJQ0U6ICByZXdy aXRpbmcgdGFibGUgdDQgZm9yIHJlYXNvbiAyCitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZG9t YWluMTEgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZG9tYWluMTFfY2hlY2siCitBTFRFUiBU QUJMRSB0NCBBREQgQ09MVU1OIGIgZG9tYWluMTE7CitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUg dDQgZm9yIHJlYXNvbiAyCitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZG9tYWluMTEgdmlvbGF0 ZXMgY2hlY2sgY29uc3RyYWludCAiZG9tYWluMTFfY2hlY2siCistLWFsbCB0aGVzZSB3aWxsIHRh YmxlIHJld3JpdGUgYW5kIGJlIG9rLgorQUxURVIgVEFCTEUgdDQgQUREIENPTFVNTiBiIGRvbWFp bjEwOyAtLWRlZmF1bHQgdG8gTlVMTAorTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHQ0IGZvciBy ZWFzb24gMgorQUxURVIgVEFCTEUgdDQgQUREIENPTFVNTiBjIGRvbWFpbjEwIGRlZmF1bHQgMTQ7 CitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUgdDQgZm9yIHJlYXNvbiAyCitTRUxFQ1QgQ09VTlQo KikgQVMgZXhwZWN0X3plcm8KK0ZST00gcGdfYXR0cmlidXRlCitXSEVSRSBhdHRudW0gPiAwIEFO RCBhdHRyZWxpZCA9ICd0NCc6OnJlZ2NsYXNzIEFORCBhdHRtaXNzaW5ndmFsIElTIE5PVCBOVUxM OworIGV4cGVjdF96ZXJvIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAwCisoMSByb3cpCisK IERST1AgVEFCTEUgdDI7CiBEUk9QIFRBQkxFIHQzOworRFJPUCBUQUJMRSB0NDsKIERST1AgRE9N QUlOIGRvbWFpbjE7CiBEUk9QIERPTUFJTiBkb21haW4yOwogRFJPUCBET01BSU4gZG9tYWluMzsK QEAgLTQxMyw2ICs0NTMsOCBAQCBEUk9QIERPTUFJTiBkb21haW42OwogRFJPUCBET01BSU4gZG9t YWluNzsKIERST1AgRE9NQUlOIGRvbWFpbjg7CiBEUk9QIERPTUFJTiBkb21haW45OworRFJPUCBE T01BSU4gZG9tYWluMTA7CitEUk9QIERPTUFJTiBkb21haW4xMTsKIERST1AgRlVOQ1RJT04gZm9v KElOVCk7CiAtLSBGYWxsIGJhY2sgdG8gZnVsbCByZXdyaXRlIGZvciB2b2xhdGlsZSBleHByZXNz aW9ucwogQ1JFQVRFIFRBQkxFIFQocGsgSU5UIE5PVCBOVUxMIFBSSU1BUlkgS0VZKTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3FsCmluZGV4IGUzMTM5Y2U4YjE1Li5lMDgwYTM4ZGFh OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3FsCkBAIC0zMzgsOCArMzM4LDM3 IEBAIE9SREVSIEJZIGF0dG51bTsKIAogU0VMRUNUIGEsYixjLGQsZSxmLCBnID4gMTAgYXMgZl9v ayBGUk9NIHQzIE9SREVSIEJZIGE7CiAKKy0tLS0tLXRlc3QgdGFibGUgcmV3cml0ZSBmb3Igdm9s YXRpbGUgZG9tYWluIGNvbnN0cmFpbnRzLgorY3JlYXRlIGRvbWFpbiBkb21haW4xMCBhcyBpbnQg Y2hlY2soKHZhbHVlICsgcmFuZG9tKG1pbj0+MTE6OmludCwgbWF4PT4xMSkpID4gMTIpOyAtLXZv bGF0aWxlCitjcmVhdGUgZG9tYWluIGRvbWFpbjExIGFzIGludCBjaGVjaygodmFsdWUgKyByYW5k b20obWluPT4xMTo6aW50LCBtYXg9PjExKSkgPiAxMikgZGVmYXVsdCAxOyAtLXZvbGF0aWxlCisK Ky0tdGVzdCB3aXRoIGVtcHR5IHRhYmxlCitDUkVBVEUgVEFCTEUgdDQoYSBpbnQpOworQUxURVIg VEFCTEUgdDQgQUREIENPTFVNTiBiIGRvbWFpbjEwIGRlZmF1bHQgLTE7CitBTFRFUiBUQUJMRSB0 NCBBREQgQ09MVU1OIGMgZG9tYWluMTEgZGVmYXVsdCAtMTsKK0FMVEVSIFRBQkxFIHQ0IEFERCBD T0xVTU4gZCBkb21haW4xMTsKK0lOU0VSVCBJTlRPIHQ0IGRlZmF1bHQgdmFsdWVzOworRFJPUCBU QUJMRSBUNDsKKworCitDUkVBVEUgVEFCTEUgdDQoYSBpbnQpOworSU5TRVJUIElOVE8gdDQgVkFM VUVTKDEpLCgyKTsKKy0tYWxsIHRoZXNlIHdpbGwgdGFibGUgcmV3cml0ZSB0aGVuIGVycm9yIG91 dC4KK0FMVEVSIFRBQkxFIHQ0IEFERCBDT0xVTU4gYiBkb21haW4xMCBkZWZhdWx0IC0xOworQUxU RVIgVEFCTEUgdDQgQUREIENPTFVNTiBiIGRvbWFpbjExIGRlZmF1bHQgLTE7CitBTFRFUiBUQUJM RSB0NCBBREQgQ09MVU1OIGIgZG9tYWluMTE7CisKKy0tYWxsIHRoZXNlIHdpbGwgdGFibGUgcmV3 cml0ZSBhbmQgYmUgb2suCitBTFRFUiBUQUJMRSB0NCBBREQgQ09MVU1OIGIgZG9tYWluMTA7IC0t ZGVmYXVsdCB0byBOVUxMCitBTFRFUiBUQUJMRSB0NCBBREQgQ09MVU1OIGMgZG9tYWluMTAgZGVm YXVsdCAxNDsKKworU0VMRUNUIENPVU5UKCopIEFTIGV4cGVjdF96ZXJvCitGUk9NIHBnX2F0dHJp YnV0ZQorV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAndDQnOjpyZWdjbGFzcyBBTkQg YXR0bWlzc2luZ3ZhbCBJUyBOT1QgTlVMTDsKKwogRFJPUCBUQUJMRSB0MjsKIERST1AgVEFCTEUg dDM7CitEUk9QIFRBQkxFIHQ0OwogRFJPUCBET01BSU4gZG9tYWluMTsKIERST1AgRE9NQUlOIGRv bWFpbjI7CiBEUk9QIERPTUFJTiBkb21haW4zOwpAQCAtMzQ5LDYgKzM3OCw4IEBAIERST1AgRE9N QUlOIGRvbWFpbjY7CiBEUk9QIERPTUFJTiBkb21haW43OwogRFJPUCBET01BSU4gZG9tYWluODsK IERST1AgRE9NQUlOIGRvbWFpbjk7CitEUk9QIERPTUFJTiBkb21haW4xMDsKK0RST1AgRE9NQUlO IGRvbWFpbjExOwogRFJPUCBGVU5DVElPTiBmb28oSU5UKTsKIAogLS0gRmFsbCBiYWNrIHRvIGZ1 bGwgcmV3cml0ZSBmb3Igdm9sYXRpbGUgZXhwcmVzc2lvbnMKLS0gCjIuMzQuMQoK --000000000000e9971d062f97e036--