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 1vsKuq-00HL5V-1g for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Feb 2026 13:15:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vsKun-00ACoj-0e for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Feb 2026 13:14:57 +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 1vsKum-00ACoY-2c for pgsql-hackers@lists.postgresql.org; Tue, 17 Feb 2026 13:14:57 +0000 Received: from mail-qt1-x842.google.com ([2607:f8b0:4864:20::842]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vsKui-00000001CLk-0dL5 for pgsql-hackers@lists.postgresql.org; Tue, 17 Feb 2026 13:14:56 +0000 Received: by mail-qt1-x842.google.com with SMTP id d75a77b69052e-5069df1d711so35973711cf.2 for ; Tue, 17 Feb 2026 05:14:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771334090; cv=none; d=google.com; s=arc-20240605; b=HF7uJqnfv7BduYi66ztdcSV5QsbEZ4zXJG5dbYGPGwx+7PKqPcOmReMxkCCZb9vflS PV3LIjfXy3HGS3FidnwFdrCw1qksHHDjvznWH8V0cPbZKuDxXeR1k+DaC4cvmjwk0rYk rl/ailAncmTqaYmUTUiQI22vdYh2s9nAD5c+F5NmJHkcK/GM3V8LHwphRjdhk78e1orX NDz81v1311nzG3Vd1Xe9x1zSxLI7jZMM8WkXcw6XxIJsUSYralAXWQyvWWg2z1vP+tSD e8XDoUN5Yb60gFzcWMX07OxhOQRIuQ6oA8w9JxWFUkjsUbpeDRmbRyrD3Yt5p268cUUt 3aHQ== 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=mj9ZC0bj1P9O99bTQ0eA/vWo2A39PRIBXGz5RqWp8Xc=; fh=QkA/aEdX91S/8F/qJ99Id6ajqeoUK7xG9EWRL8z3yR4=; b=d/35IsOBTYZk9V/zWPAFqZYSyEM4DcpNIa2cQTjp8VzOLS2meNpMKCUt0mCbD8xAUr hNfb/YpKQ7yfN38r6D59hx9XcB0kdVhA5Vo8c3PudWh4z+7J74oLmBXEgBYsYNy1YomB tlL113P9RrILjnCzJ4DrfFdvVAzWKG+c1IilYZY9h9aQ9nDFtzn5Xcu+YZ0s3tyCKwcG Jfbk2LQKQ8JVJOiYCfOhpH0IrAU2aUBq6FfeIcO5XTMylJW7X74P8hzwKMqNJbZQCMB9 g1/DyY/tXfnd/Q/qoZvrObkPqENL7P+YAsPFfYgRGvapH4Nk23U5V4N/bAxw/RUamLhn cpOw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771334090; x=1771938890; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=mj9ZC0bj1P9O99bTQ0eA/vWo2A39PRIBXGz5RqWp8Xc=; b=lP44M/bGa84fH18dxsuGRsbJLMiKW+t+jGO1O8n4UIuIYJZGDgRyxKgfK35+5Rtzvc lWaebxVBtDC1VoPqMvG+Gx3/Cfk2fh9kVsLilGECLTX5hmyLL3XvzPJ5O6Ta/QGHavWN hkX56CgilqwlYUZZD5m+4zb9lpJg9oJEXzgGvmI12A8dmuMtS2DcjFn42b+USxi6Oj2a JLPIlmw6wmi7xD2Wpb6ITRwkPKkZQ+n9fOky2sC3XhZcqCdKp9gh2eyt7uHjYblbzmaY Mo5t+YG+a+8QS6o4WobwsTf2PSI875E5r+9x32OvA86MFCjz+cZQyarGXPdC+SMsJJIE oInQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771334090; x=1771938890; 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=mj9ZC0bj1P9O99bTQ0eA/vWo2A39PRIBXGz5RqWp8Xc=; b=r5d/WjAqNkZoyktVEGJdmhpRu23wW2j73/BW5t9yvifaVzhw6oNbdsb5auP14eIPE+ G4D/SIy2u3YahoyIVSbLN4Jnfj54kQmlnq/RZPtUiifTQyNTlP/oG9awnORMfgRuiIA0 9+vCRt9nP1XYV9XTGSONdMvrN60tJERD4mSS1fsRKfViprVW8pUANFFyVOzlV/DpF3Mi lS/zqACWlofJO+BK7ghtcUGkzOKZXVMq1xLvrpd1oRndt+OOS09GhcqTMmkkDrSGtKg6 5QtRazadOMcFqstt4Gb5Bi8/Fn7SdnoaI7ae/c9wv1xCKm8RGGy5sVpS4Zc9yIi7Xzg+ odGg== X-Gm-Message-State: AOJu0YxUj7k3LxkaEyKymsQAfq3LsqgSonmf1r6btR6kl2eQfbqubnRV TgxhIEWmlEZhjkpCiCvnNxPm+sBZHtX/I/ld+eZsDxv1Q0agsryblHjvN3WRli3v5AWSlmG7B2A 9l/ptvCcF/GDNR8RTlBU1NncmiD+ErGg= X-Gm-Gg: AZuq6aLfSMbWrvknxBeFWUkwmNAn6k3XmoVK1V241boToahIcDfTl93V1yBduBTNiUS XhsPmtJb4QX49GP+XyaTR/djs1jqcB8oAKG1dKb7pN9T88ihNe/gxVsH/oeynzj6FgtR/fPohdR gFhLyhHWRvEy1NX4WRBr7mFf+rrDImXI21m5S0xJPh2TZFTwYdz1UFVQ7otJIR7a5RmXOuaeizu dWvXhC94mkIX+zWxS8ITJqavAsdwqeeW6wy3ITSUG8uP0fTkGepJ2ioBdo5jdVmCjgSAKStKUEM /itddo9OD0w+uw95hQuG6n3j0syYBPJiC/3QE5Qkjny7/Wik2pdjMZQ4PS/pRUvTJV2esb1b72c Su690cb2T/lSUeU5jBeF8u0nYSw09DZmZ5EacSg== X-Received: by 2002:ac8:5e09:0:b0:506:1f48:a009 with SMTP id d75a77b69052e-506a8370540mr172644981cf.74.1771334090046; Tue, 17 Feb 2026 05:14:50 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: John Naylor Date: Tue, 17 Feb 2026 20:14:38 +0700 X-Gm-Features: AaiRm53-JVoLEyDS45kWEc-h1xpVC87wY1bvsWnf46PtVD1y9TpfcuuFTSNysKA Message-ID: Subject: Re: centralize CPU feature detection To: Zsolt Parragi Cc: PostgreSQL Hackers , root , Nathan Bossart Content-Type: multipart/mixed; boundary="00000000000037d145064b04db1f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000037d145064b04db1f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Feb 17, 2026 at 3:15=E2=80=AFAM Zsolt Parragi wrote: > > Hello! > > Seems like a file (checksum_block_internal.h) is missing from the patch? Should work now, and thanks for looking. > For the entire src/include/port/pg_x86_feature.h: > > Shouldn't it have an > > +#if defined(USE_SSE2) || defined(__i386__) > ... > #endif > > block around the file, to skip everything on other platforms? Done. I haven't tried Arm support yet, but now I realize the header should be named generically, so it's now "pg_cpu.h". Then it can be included everywhere. I've also gone with "pg_cpu_x86.c" for better consistency within this directory, and used the plural for the array name. > In src/include/port/pg_x86_feature.h:33 > > + > +extern PGDLLEXPORT bool X86Feature[]; > + > > Shouldn't that be PGDLLIMPORT? Fixed. > +typedef enum X86FeatureId > +{ > + init, > + > + PG_SSE4_2, > + PG_POPCNT, > > > Shouldn't that be INIT? I don't know. The instruction family names are conventionally all in caps, but this is just our signal that we've populated the array. That said, a less generic name would better for grep-ability. I added some quick comments here where the instruction families are split apart. I'm not sure what info is relevent, but it seemed good to separate them. -- John Naylor Amazon Web Services --00000000000037d145064b04db1f Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0002-Centralize-detection-of-CPU-features.patch" Content-Disposition: attachment; filename="v2-0002-Centralize-detection-of-CPU-features.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlqme02k2 RnJvbSAzZGQwNGUxMTIwNmJjZWNlMDU1NDQ0ZjJhOTk2Nzc1YmU5NDcxOTU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFRodSwgMTIgRmViIDIwMjYgMTI6NDU6MjMgKzA3MDAKU3ViamVjdDogW1BBVENI IHYyIDIvNF0gQ2VudHJhbGl6ZSBkZXRlY3Rpb24gb2YgQ1BVIGZlYXR1cmVzCgpXSVA6IHg4NiBv bmx5Ci0tLQogc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaCAgfCA1MCArKysrKysrKysrKysrKysr KysrKysKIHNyYy9wb3J0L3BnX2NwdV94ODYuYyAgICAgIHwgNjcgKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLQogc3JjL3BvcnQvcGdfY3JjMzJjX3NzZTQyLmMgfCAyOCArKysrKysrKysrKysK IHNyYy9wb3J0L3BnX3BvcGNvdW50X3g4Ni5jIHwgOTEgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDEyNCBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9wb3J0L3BnX2NwdS5o CgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaCBiL3NyYy9pbmNsdWRlL3Bv cnQvcGdfY3B1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmYTli ZmIzZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaApAQCAt MCwwICsxLDUwIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19jcHUuaAorICoJICBS dW50aW1lIENQVSBmZWF0dXJlIGRldGVjdGlvbgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9wb3J0L3BnX2NwdS5oCisgKgorICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfWDg2X0ZFQVRVUkVfSAorI2RlZmluZSBQR19YODZf RkVBVFVSRV9ICisKKyNpZiBkZWZpbmVkKFVTRV9TU0UyKSB8fCBkZWZpbmVkKF9faTM4Nl9fKQor Cit0eXBlZGVmIGVudW0gWDg2RmVhdHVyZUlkCit7CisJLyogSGF2ZSB3ZSBydW4gZmVhdHVyZSBk ZXRlY3Rpb24/ICovCisJaW5pdCwKKworCS8qIHNjYWxhciBhbmQgMTI4LWJpdCByZWdpc3RlcnMg Ki8KKwlQR19TU0U0XzIsCisJUEdfUE9QQ05ULAorCisJLyogNTEyLWJpdCByZWdpc3RlcnMgKi8K KwlQR19BVlg1MTJfQlcsCisJUEdfQVZYNTEyX1ZMLAorCVBHX0FWWDUxMl9WUENMTVVMUURRLAor CVBHX0FWWDUxMl9WUE9QQ05URFEsCit9CQkJWDg2RmVhdHVyZUlkOworI2RlZmluZSBYODZGZWF0 dXJlc1NpemUgKFBHX0FWWDUxMl9WUE9QQ05URFEgKyAxKQorCitleHRlcm4gUEdETExJTVBPUlQg Ym9vbCBYODZGZWF0dXJlc1tdOworCitleHRlcm4gdm9pZCBzZXRfeDg2X2ZlYXR1cmVzKHZvaWQp OworCitzdGF0aWMgaW5saW5lIGJvb2wKK3g4Nl9mZWF0dXJlX2F2YWlsYWJsZShYODZGZWF0dXJl SWQgZmVhdHVyZSkKK3sKKwlpZiAoWDg2RmVhdHVyZXNbaW5pdF0gPT0gZmFsc2UpCisJCXNldF94 ODZfZmVhdHVyZXMoKTsKKworCXJldHVybiBYODZGZWF0dXJlc1tmZWF0dXJlXTsKK30KKworI2Vu ZGlmCQkJCQkJCS8qIGRlZmluZWQoVVNFX1NTRTIpIHx8IGRlZmluZWQoX19pMzg2X18pICovCisK KyNlbmRpZgkJCQkJCQkvKiBQR19YODZfRkVBVFVSRV9IICovCmRpZmYgLS1naXQgYS9zcmMvcG9y dC9wZ19jcHVfeDg2LmMgYi9zcmMvcG9ydC9wZ19jcHVfeDg2LmMKaW5kZXggOTk4YTcwZmZhNDEu LjI0OTI4MzcyNWM4IDEwMDY0NAotLS0gYS9zcmMvcG9ydC9wZ19jcHVfeDg2LmMKKysrIGIvc3Jj L3BvcnQvcGdfY3B1X3g4Ni5jCkBAIC0xLDEyICsxLDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICoKICAqIHBnX2NwdV94ODYuYwotICoJICBDaG9vc2UgYmV0d2VlbiBJbnRlbCBTU0UgNC4yIGFu ZCBzb2Z0d2FyZSBDUkMtMzJDIGltcGxlbWVudGF0aW9uLgotICoKLSAqIE9uIGZpcnN0IGNhbGws IGNoZWNrcyBpZiB0aGUgQ1BVIHdlJ3JlIHJ1bm5pbmcgb24gc3VwcG9ydHMgSW50ZWwgU1NFCi0g KiA0LjIuIElmIGl0IGRvZXMsIHVzZSB0aGUgc3BlY2lhbCBTU0UgaW5zdHJ1Y3Rpb25zIGZvciBD UkMtMzJDCi0gKiBjb21wdXRhdGlvbi4gT3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gdGhlIHB1cmUg c29mdHdhcmUgaW1wbGVtZW50YXRpb24KLSAqIChzbGljaW5nLWJ5LTgpLgorICoJICBSdW50aW1l IENQVSBmZWF0dXJlIGRldGVjdGlvbiBmb3IgeDg2CiAgKgogICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQpAQCAtMzQsNyArMjksMTAgQEAKICNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KICNl bmRpZgogCi0jaW5jbHVkZSAicG9ydC9wZ19jcmMzMmMuaCIKKyNpbmNsdWRlICJwb3J0L3BnX2Nw dS5oIgorCisKK2Jvb2wJCVg4NkZlYXR1cmVzW1g4NkZlYXR1cmVzU2l6ZV0gPSB7MH07CiAKIC8q CiAgKiBEb2VzIFhHRVRCViBzYXkgdGhlIFpNTSByZWdpc3RlcnMgYXJlIGVuYWJsZWQ/CkBAIC01 NiwyMiArNTQsMTMgQEAgem1tX3JlZ3NfYXZhaWxhYmxlKHZvaWQpCiB9CiAKIC8qCi0gKiBUaGlz IGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBjYWxsLiBJdCByZXBsYWNlcyB0aGUgZnVuY3Rpb24g cG9pbnRlcgotICogc28gdGhhdCBzdWJzZXF1ZW50IGNhbGxzIGFyZSByb3V0ZWQgZGlyZWN0bHkg dG8gdGhlIGNob3NlbiBpbXBsZW1lbnRhdGlvbi4KKyAqIFBhcnNlIHRoZSBDUFUgSUQgaW5mbyBm b3IgcnVudGltZSBjaGVja3MuCiAgKi8KLXN0YXRpYyBwZ19jcmMzMmMKLXBnX2NvbXBfY3JjMzJj X2Nob29zZShwZ19jcmMzMmMgY3JjLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQordm9p ZAorc2V0X3g4Nl9mZWF0dXJlcyh2b2lkKQogewogCXVuc2lnbmVkIGludCBleHhbNF0gPSB7MCwg MCwgMCwgMH07CiAKLQkvKgotCSAqIFNldCBmYWxsYmFjay4gV2UgbXVzdCBndWFyZCBzaW5jZSBz bGljaW5nLWJ5LTggaXMgbm90IHZpc2libGUKLQkgKiBldmVyeXdoZXJlLgotCSAqLwotI2lmZGVm IFVTRV9TU0U0Ml9DUkMzMkNfV0lUSF9SVU5USU1FX0NIRUNLCi0JcGdfY29tcF9jcmMzMmMgPSBw Z19jb21wX2NyYzMyY19zYjg7Ci0jZW5kaWYKLQogI2lmIGRlZmluZWQoSEFWRV9fR0VUX0NQVUlE KQogCV9fZ2V0X2NwdWlkKDEsICZleHhbMF0sICZleHhbMV0sICZleHhbMl0sICZleHhbM10pOwog I2VsaWYgZGVmaW5lZChIQVZFX19DUFVJRCkKQEAgLTgwLDM0ICs2OSwzOCBAQCBwZ19jb21wX2Ny YzMyY19jaG9vc2UocGdfY3JjMzJjIGNyYywgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikK ICNlcnJvciBjcHVpZCBpbnN0cnVjdGlvbiBub3QgYXZhaWxhYmxlCiAjZW5kaWYKIAotCWlmICgo ZXh4WzJdICYgKDEgPDwgMjApKSAhPSAwKQkvKiBTU0UgNC4yICovCi0JewotCQlwZ19jb21wX2Ny YzMyYyA9IHBnX2NvbXBfY3JjMzJjX3NzZTQyOworCVg4NkZlYXR1cmVzW1BHX1NTRTRfMl0gPSBl eHhbMl0gPj4gMjAgJiAxOworCVg4NkZlYXR1cmVzW1BHX1BPUENOVF0gPSBleHhbMl0gPj4gMjMg JiAxOwogCi0JCWlmIChleHhbMl0gJiAoMSA8PCAyNykgJiYJLyogT1NYU0FWRSAqLwotCQkJem1t X3JlZ3NfYXZhaWxhYmxlKCkpCi0JCXsKLQkJCS8qIHNlY29uZCBjcHVpZCBjYWxsIG9uIGxlYWYg NyB0byBjaGVjayBleHRlbmRlZCBBVlgtNTEyIHN1cHBvcnQgKi8KKwkvKiBBbGwgdGhlc2UgZmVh dHVyZXMgZGVwZW5kIG9uIE9TWFNBVkUgKi8KKwlpZiAoZXh4WzJdICYgKDEgPDwgMjcpKQorCXsK KwkJLyogc2Vjb25kIGNwdWlkIGNhbGwgb24gbGVhZiA3IHRvIGNoZWNrIGV4dGVuZGVkIEFWWC01 MTIgc3VwcG9ydCAqLwogCi0JCQltZW1zZXQoZXh4LCAwLCA0ICogc2l6ZW9mKGV4eFswXSkpOwor CQltZW1zZXQoZXh4LCAwLCA0ICogc2l6ZW9mKGV4eFswXSkpOwogCiAjaWYgZGVmaW5lZChIQVZF X19HRVRfQ1BVSURfQ09VTlQpCi0JCQlfX2dldF9jcHVpZF9jb3VudCg3LCAwLCAmZXh4WzBdLCAm ZXh4WzFdLCAmZXh4WzJdLCAmZXh4WzNdKTsKKwkJX19nZXRfY3B1aWRfY291bnQoNywgMCwgJmV4 eFswXSwgJmV4eFsxXSwgJmV4eFsyXSwgJmV4eFszXSk7CiAjZWxpZiBkZWZpbmVkKEhBVkVfX0NQ VUlERVgpCi0JCQlfX2NwdWlkZXgoZXh4LCA3LCAwKTsKKwkJX19jcHVpZGV4KGV4eCwgNywgMCk7 CiAjZW5kaWYKIAotI2lmZGVmIFVTRV9BVlg1MTJfQ1JDMzJDX1dJVEhfUlVOVElNRV9DSEVDSwot CQkJaWYgKGV4eFsyXSAmICgxIDw8IDEwKSAmJgkvKiBWUENMTVVMUURRICovCi0JCQkJZXh4WzFd ICYgKDEgPDwgMzEpKSAvKiBBVlg1MTItVkwgKi8KLQkJCQlwZ19jb21wX2NyYzMyYyA9IHBnX2Nv bXBfY3JjMzJjX2F2eDUxMjsKLSNlbmRpZgorCQlpZiAoem1tX3JlZ3NfYXZhaWxhYmxlKCkpCisJ CXsKKwkJCVg4NkZlYXR1cmVzW1BHX0FWWDUxMl9CV10gPSBleHhbMV0gPj4gMzAgJiAxOworCQkJ WDg2RmVhdHVyZXNbUEdfQVZYNTEyX1ZMXSA9IGV4eFsxXSA+PiAzMSAmIDE7CisKKwkJCVg4NkZl YXR1cmVzW1BHX1ZQQ0xNVUxRRFFdID0gZXh4WzJdID4+IDEwICYgMTsKKwkJCVg4NkZlYXR1cmVz W1BHX0FWWDUxMl9WUE9QQ05URFFdID0gZXh4WzJdID4+IDE0ICYgMTsKIAkJfQogCX0KIAotCXJl dHVybiBwZ19jb21wX2NyYzMyYyhjcmMsIGRhdGEsIGxlbik7Ci19CisJWDg2RmVhdHVyZXNbaW5p dF0gPSB0cnVlOwogCi1wZ19jcmMzMmMJKCpwZ19jb21wX2NyYzMyYykgKHBnX2NyYzMyYyBjcmMs IGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pID0gcGdfY29tcF9jcmMzMmNfY2hvb3NlOwor I2lmIDEKKwkvKiBUT0RPOiBERUJVRyBsb2cgYWxsIHNldCBib29sZWFucyB3aXRoIGVudW0gc3Ry aW5nICovCisJZnByaW50ZihzdGRlcnIsICJTU0U0LjI6ICVzXG4iLCBYODZGZWF0dXJlc1tQR19T U0U0XzJdID8gInllcyIgOiAibm8iKTsKKyNlbmRpZgorfQogCiAjZW5kaWYJCQkJCQkJLyogZGVm aW5lZChVU0VfU1NFMikgfHwgZGVmaW5lZChfX2kzODZfXykgKi8KZGlmZiAtLWdpdCBhL3NyYy9w b3J0L3BnX2NyYzMyY19zc2U0Mi5jIGIvc3JjL3BvcnQvcGdfY3JjMzJjX3NzZTQyLmMKaW5kZXgg YzEyNzlkMzFmYmQuLjJlNzQwZTEyYTdhIDEwMDY0NAotLS0gYS9zcmMvcG9ydC9wZ19jcmMzMmNf c3NlNDIuYworKysgYi9zcmMvcG9ydC9wZ19jcmMzMmNfc3NlNDIuYwpAQCAtMjAsNiArMjAsOSBA QAogI2VuZGlmCiAKICNpbmNsdWRlICJwb3J0L3BnX2NyYzMyYy5oIgorI2luY2x1ZGUgInBvcnQv cGdfY3B1LmgiCisKK3N0YXRpYyBwZ19jcmMzMmMgcGdfY29tcF9jcmMzMmNfY2hvb3NlKHBnX2Ny YzMyYyBjcmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOwogCiBwZ19hdHRyaWJ1dGVf bm9fc2FuaXRpemVfYWxpZ25tZW50KCkKIHBnX2F0dHJpYnV0ZV90YXJnZXQoInNzZTQuMiIpCkBA IC0xNTksMyArMTYyLDI4IEBAIHBnX2NvbXBfY3JjMzJjX2F2eDUxMihwZ19jcmMzMmMgY3JjLCBj b25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQogfQogCiAjZW5kaWYKKworc3RhdGljIHBnX2Ny YzMyYworcGdfY29tcF9jcmMzMmNfY2hvb3NlKHBnX2NyYzMyYyBjcmMsIGNvbnN0IHZvaWQgKmRh dGEsIHNpemVfdCBsZW4pCit7CisJLyoKKwkgKiBTZXQgZmFsbGJhY2suIFdlIG11c3QgZ3VhcmQg c2luY2Ugc2xpY2luZy1ieS04IGlzIG5vdCB2aXNpYmxlCisJICogZXZlcnl3aGVyZS4KKwkgKi8K KyNpZmRlZiBVU0VfU1NFNDJfQ1JDMzJDX1dJVEhfUlVOVElNRV9DSEVDSworCXBnX2NvbXBfY3Jj MzJjID0gcGdfY29tcF9jcmMzMmNfc2I4OworI2VuZGlmCisKKwlpZiAoeDg2X2ZlYXR1cmVfYXZh aWxhYmxlKFBHX1NTRTRfMikpCisJCXBnX2NvbXBfY3JjMzJjID0gcGdfY29tcF9jcmMzMmNfc3Nl NDI7CisKKyNpZmRlZiBVU0VfQVZYNTEyX0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hFQ0sKKwlpZiAo eDg2X2ZlYXR1cmVfYXZhaWxhYmxlKFBHX0FWWDUxMl9WTCkgJiYKKwkJeDg2X2ZlYXR1cmVfYXZh aWxhYmxlKFBHX1ZQQ0xNVUxRRFEpKQorCQlwZ19jb21wX2NyYzMyYyA9IHBnX2NvbXBfY3JjMzJj X2F2eDUxMjsKKyNlbmRpZgorCisJcmV0dXJuIHBnX2NvbXBfY3JjMzJjKGNyYywgZGF0YSwgbGVu KTsKK307CisKK3BnX2NyYzMyYwkoKnBnX2NvbXBfY3JjMzJjKSAocGdfY3JjMzJjIGNyYywgY29u c3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikgPSBwZ19jb21wX2NyYzMyY19jaG9vc2U7CmRpZmYg LS1naXQgYS9zcmMvcG9ydC9wZ19wb3Bjb3VudF94ODYuYyBiL3NyYy9wb3J0L3BnX3BvcGNvdW50 X3g4Ni5jCmluZGV4IDZiY2UwODk0MzJmLi5hOTk2MTNmMTgxOCAxMDA2NDQKLS0tIGEvc3JjL3Bv cnQvcGdfcG9wY291bnRfeDg2LmMKKysrIGIvc3JjL3BvcnQvcGdfcG9wY291bnRfeDg2LmMKQEAg LTE0LDE5ICsxNCwxMiBAQAogCiAjaWZkZWYgSEFWRV9YODZfNjRfUE9QQ05UUQogCi0jaWYgZGVm aW5lZChIQVZFX19HRVRfQ1BVSUQpIHx8IGRlZmluZWQoSEFWRV9fR0VUX0NQVUlEX0NPVU5UKQot I2luY2x1ZGUgPGNwdWlkLmg+Ci0jZW5kaWYKLQogI2lmZGVmIFVTRV9BVlg1MTJfUE9QQ05UX1dJ VEhfUlVOVElNRV9DSEVDSwogI2luY2x1ZGUgPGltbWludHJpbi5oPgogI2VuZGlmCiAKLSNpZiBk ZWZpbmVkKEhBVkVfX0NQVUlEKSB8fCBkZWZpbmVkKEhBVkVfX0NQVUlERVgpCi0jaW5jbHVkZSA8 aW50cmluLmg+Ci0jZW5kaWYKLQogI2luY2x1ZGUgInBvcnQvcGdfYml0dXRpbHMuaCIKKyNpbmNs dWRlICJwb3J0L3BnX2NwdS5oIgogCiAvKgogICogVGhlIFNTRTQuMiB2ZXJzaW9ucyBhcmUgYnVp bHQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHdlIGFyZSBidWlsZGluZyB0aGUKQEAgLTU4LDg0ICs1 MSw5IEBAIHN0YXRpYyB1aW50NjQgcGdfcG9wY291bnRfbWFza2VkX2Nob29zZShjb25zdCBjaGFy ICpidWYsIGludCBieXRlcywgYml0czggbWFzayk7CiB1aW50NjQJCSgqcGdfcG9wY291bnRfb3B0 aW1pemVkKSAoY29uc3QgY2hhciAqYnVmLCBpbnQgYnl0ZXMpID0gcGdfcG9wY291bnRfY2hvb3Nl OwogdWludDY0CQkoKnBnX3BvcGNvdW50X21hc2tlZF9vcHRpbWl6ZWQpIChjb25zdCBjaGFyICpi dWYsIGludCBieXRlcywgYml0czggbWFzaykgPSBwZ19wb3Bjb3VudF9tYXNrZWRfY2hvb3NlOwog Ci0vKgotICogUmV0dXJuIHRydWUgaWYgQ1BVSUQgaW5kaWNhdGVzIHRoYXQgdGhlIFBPUENOVCBp bnN0cnVjdGlvbiBpcyBhdmFpbGFibGUuCi0gKi8KLXN0YXRpYyBib29sCi1wZ19wb3Bjb3VudF9z c2U0Ml9hdmFpbGFibGUodm9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgZXh4WzRdID0gezAsIDAsIDAs IDB9OwotCi0jaWYgZGVmaW5lZChIQVZFX19HRVRfQ1BVSUQpCi0JX19nZXRfY3B1aWQoMSwgJmV4 eFswXSwgJmV4eFsxXSwgJmV4eFsyXSwgJmV4eFszXSk7Ci0jZWxpZiBkZWZpbmVkKEhBVkVfX0NQ VUlEKQotCV9fY3B1aWQoZXh4LCAxKTsKLSNlbHNlCi0jZXJyb3IgY3B1aWQgaW5zdHJ1Y3Rpb24g bm90IGF2YWlsYWJsZQotI2VuZGlmCi0KLQlyZXR1cm4gKGV4eFsyXSAmICgxIDw8IDIzKSkgIT0g MDsJLyogUE9QQ05UICovCi19CiAKICNpZmRlZiBVU0VfQVZYNTEyX1BPUENOVF9XSVRIX1JVTlRJ TUVfQ0hFQ0sKIAotLyoKLSAqIERvZXMgQ1BVSUQgc2F5IHRoZXJlJ3Mgc3VwcG9ydCBmb3IgWFNB VkUgaW5zdHJ1Y3Rpb25zPwotICovCi1zdGF0aWMgaW5saW5lIGJvb2wKLXhzYXZlX2F2YWlsYWJs ZSh2b2lkKQotewotCXVuc2lnbmVkIGludCBleHhbNF0gPSB7MCwgMCwgMCwgMH07Ci0KLSNpZiBk ZWZpbmVkKEhBVkVfX0dFVF9DUFVJRCkKLQlfX2dldF9jcHVpZCgxLCAmZXh4WzBdLCAmZXh4WzFd LCAmZXh4WzJdLCAmZXh4WzNdKTsKLSNlbGlmIGRlZmluZWQoSEFWRV9fQ1BVSUQpCi0JX19jcHVp ZChleHgsIDEpOwotI2Vsc2UKLSNlcnJvciBjcHVpZCBpbnN0cnVjdGlvbiBub3QgYXZhaWxhYmxl Ci0jZW5kaWYKLQlyZXR1cm4gKGV4eFsyXSAmICgxIDw8IDI3KSkgIT0gMDsJLyogb3N4c2F2ZSAq LwotfQotCi0vKgotICogRG9lcyBYR0VUQlYgc2F5IHRoZSBaTU0gcmVnaXN0ZXJzIGFyZSBlbmFi bGVkPwotICoKLSAqIE5COiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHZlcmlmeWluZyB0aGF0 IHhzYXZlX2F2YWlsYWJsZSgpIHJldHVybnMgdHJ1ZQotICogYmVmb3JlIGNhbGxpbmcgdGhpcy4K LSAqLwotI2lmZGVmIEhBVkVfWFNBVkVfSU5UUklOU0lDUwotcGdfYXR0cmlidXRlX3RhcmdldCgi eHNhdmUiKQotI2VuZGlmCi1zdGF0aWMgaW5saW5lIGJvb2wKLXptbV9yZWdzX2F2YWlsYWJsZSh2 b2lkKQotewotI2lmZGVmIEhBVkVfWFNBVkVfSU5UUklOU0lDUwotCXJldHVybiAoX3hnZXRidigw KSAmIDB4ZTYpID09IDB4ZTY7Ci0jZWxzZQotCXJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCi0v KgotICogRG9lcyBDUFVJRCBzYXkgdGhlcmUncyBzdXBwb3J0IGZvciBBVlgtNTEyIHBvcGNvdW50 IGFuZCBieXRlLWFuZC13b3JkCi0gKiBpbnN0cnVjdGlvbnM/Ci0gKi8KLXN0YXRpYyBpbmxpbmUg Ym9vbAotYXZ4NTEyX3BvcGNudF9hdmFpbGFibGUodm9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgZXh4 WzRdID0gezAsIDAsIDAsIDB9OwotCi0jaWYgZGVmaW5lZChIQVZFX19HRVRfQ1BVSURfQ09VTlQp Ci0JX19nZXRfY3B1aWRfY291bnQoNywgMCwgJmV4eFswXSwgJmV4eFsxXSwgJmV4eFsyXSwgJmV4 eFszXSk7Ci0jZWxpZiBkZWZpbmVkKEhBVkVfX0NQVUlERVgpCi0JX19jcHVpZGV4KGV4eCwgNywg MCk7Ci0jZWxzZQotI2Vycm9yIGNwdWlkIGluc3RydWN0aW9uIG5vdCBhdmFpbGFibGUKLSNlbmRp ZgotCXJldHVybiAoZXh4WzJdICYgKDEgPDwgMTQpKSAhPSAwICYmIC8qIGF2eDUxMi12cG9wY250 ZHEgKi8KLQkJKGV4eFsxXSAmICgxIDw8IDMwKSkgIT0gMDsJLyogYXZ4NTEyLWJ3ICovCi19Ci0K IC8qCiAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIENQVSBzdXBwb3J0cyB0aGUgaW5zdHJ1Y3Rpb25z IHJlcXVpcmVkIGZvciB0aGUgQVZYLTUxMgogICogcGdfcG9wY291bnQoKSBpbXBsZW1lbnRhdGlv bi4KQEAgLTE0Myw5ICs2MSw4IEBAIGF2eDUxMl9wb3BjbnRfYXZhaWxhYmxlKHZvaWQpCiBzdGF0 aWMgYm9vbAogcGdfcG9wY291bnRfYXZ4NTEyX2F2YWlsYWJsZSh2b2lkKQogewotCXJldHVybiB4 c2F2ZV9hdmFpbGFibGUoKSAmJgotCQl6bW1fcmVnc19hdmFpbGFibGUoKSAmJgotCQlhdng1MTJf cG9wY250X2F2YWlsYWJsZSgpOworCXJldHVybiB4ODZfZmVhdHVyZV9hdmFpbGFibGUoUEdfQVZY NTEyX0JXKSAmJgorCQl4ODZfZmVhdHVyZV9hdmFpbGFibGUoUEdfQVZYNTEyX1ZQT1BDTlREUSk7 CiB9CiAKICNlbmRpZgkJCQkJCQkvKiBVU0VfQVZYNTEyX1BPUENOVF9XSVRIX1JVTlRJTUVfQ0hF Q0sgKi8KQEAgLTE1OSw3ICs3Niw3IEBAIHBnX3BvcGNvdW50X2F2eDUxMl9hdmFpbGFibGUodm9p ZCkKIHN0YXRpYyBpbmxpbmUgdm9pZAogY2hvb3NlX3BvcGNvdW50X2Z1bmN0aW9ucyh2b2lkKQog ewotCWlmIChwZ19wb3Bjb3VudF9zc2U0Ml9hdmFpbGFibGUoKSkKKwlpZiAoeDg2X2ZlYXR1cmVf YXZhaWxhYmxlKFBHX1BPUENOVCkpCiAJewogCQlwZ19wb3Bjb3VudF9vcHRpbWl6ZWQgPSBwZ19w b3Bjb3VudF9zc2U0MjsKIAkJcGdfcG9wY291bnRfbWFza2VkX29wdGltaXplZCA9IHBnX3BvcGNv dW50X21hc2tlZF9zc2U0MjsKLS0gCjIuNTMuMAoK --00000000000037d145064b04db1f Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-Rename-CRC-choose-files-for-future-general-purpos.patch" Content-Disposition: attachment; filename="v2-0001-Rename-CRC-choose-files-for-future-general-purpos.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlqme02r3 RnJvbSA2M2U1ZDE0YjhhODdjMmNkNjlkN2NmNzFiMzAwMWU3Y2YzYjA0YWUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFdlZCwgMTEgRmViIDIwMjYgMTQ6MzQ6MTggKzA3MDAKU3ViamVjdDogW1BBVENI IHYyIDEvNF0gUmVuYW1lIENSQyAiY2hvb3NlIiBmaWxlcyBmb3IgZnV0dXJlIGdlbmVyYWwgcHVy cG9zZQoKV0lQOiB4ODYgb25seQotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDQgKystLQogY29uZmlndXJlLmFjICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgNCArKy0tCiBzcmMvcG9ydC9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxICsKIHNyYy9wb3J0L21lc29uLmJ1aWxk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMgKy0tCiBzcmMvcG9ydC97cGdfY3Jj MzJjX3NzZTQyX2Nob29zZS5jID0+IHBnX2NwdV94ODYuY30gfCA4ICsrKysrKy0tCiA1IGZpbGVz IGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCiByZW5hbWUgc3JjL3Bv cnQve3BnX2NyYzMyY19zc2U0Ml9jaG9vc2UuYyA9PiBwZ19jcHVfeDg2LmN9ICg5NCUpCgpkaWZm IC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGExMGEyYzg1YzZhLi4xODU3MDMy ODliNCAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMTgxOTYsNyAr MTgxOTYsNyBAQCBpZiB0ZXN0IHgiJFVTRV9TU0U0Ml9DUkMzMkMiID0geCIxIjsgdGhlbgogCiAk YXNfZWNobyAiI2RlZmluZSBVU0VfU1NFNDJfQ1JDMzJDIDEiID4+Y29uZmRlZnMuaAogCi0gIFBH X0NSQzMyQ19PQkpTPSJwZ19jcmMzMmNfc3NlNDIubyBwZ19jcmMzMmNfc3NlNDJfY2hvb3NlLm8i CisgIFBHX0NSQzMyQ19PQkpTPSJwZ19jcmMzMmNfc3NlNDIubyIKICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IFNTRSA0LjIiID4mNQogJGFzX2VjaG8g IlNTRSA0LjIiID4mNjsgfQogZWxzZQpAQCAtMTgyMDQsNyArMTgyMDQsNyBAQCBlbHNlCiAKICRh c19lY2hvICIjZGVmaW5lIFVTRV9TU0U0Ml9DUkMzMkNfV0lUSF9SVU5USU1FX0NIRUNLIDEiID4+ Y29uZmRlZnMuaAogCi0gICAgUEdfQ1JDMzJDX09CSlM9InBnX2NyYzMyY19zc2U0Mi5vIHBnX2Ny YzMyY19zYjgubyBwZ19jcmMzMmNfc3NlNDJfY2hvb3NlLm8iCisgICAgUEdfQ1JDMzJDX09CSlM9 InBnX2NyYzMyY19zc2U0Mi5vIHBnX2NyYzMyY19zYjgubyIKICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogU1NFIDQuMiB3aXRoIHJ1bnRpbWUgY2hl Y2siID4mNQogJGFzX2VjaG8gIlNTRSA0LjIgd2l0aCBydW50aW1lIGNoZWNrIiA+JjY7IH0KICAg ZWxzZQpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDgxNGU2 NGE5NjdlLi4wOTU1YjdlNDM3MSAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZp Z3VyZS5hYwpAQCAtMjI0NSwxMiArMjI0NSwxMiBAQCBmaQogQUNfTVNHX0NIRUNLSU5HKFt3aGlj aCBDUkMtMzJDIGltcGxlbWVudGF0aW9uIHRvIHVzZV0pCiBpZiB0ZXN0IHgiJFVTRV9TU0U0Ml9D UkMzMkMiID0geCIxIjsgdGhlbgogICBBQ19ERUZJTkUoVVNFX1NTRTQyX0NSQzMyQywgMSwgW0Rl ZmluZSB0byAxIHVzZSBJbnRlbCBTU0UgNC4yIENSQyBpbnN0cnVjdGlvbnMuXSkKLSAgUEdfQ1JD MzJDX09CSlM9InBnX2NyYzMyY19zc2U0Mi5vIHBnX2NyYzMyY19zc2U0Ml9jaG9vc2UubyIKKyAg UEdfQ1JDMzJDX09CSlM9InBnX2NyYzMyY19zc2U0Mi5vIgogICBBQ19NU0dfUkVTVUxUKFNTRSA0 LjIpCiBlbHNlCiAgIGlmIHRlc3QgeCIkVVNFX1NTRTQyX0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hF Q0siID0geCIxIjsgdGhlbgogICAgIEFDX0RFRklORShVU0VfU1NFNDJfQ1JDMzJDX1dJVEhfUlVO VElNRV9DSEVDSywgMSwgW0RlZmluZSB0byAxIHRvIHVzZSBJbnRlbCBTU0UgNC4yIENSQyBpbnN0 cnVjdGlvbnMgd2l0aCBhIHJ1bnRpbWUgY2hlY2suXSkKLSAgICBQR19DUkMzMkNfT0JKUz0icGdf Y3JjMzJjX3NzZTQyLm8gcGdfY3JjMzJjX3NiOC5vIHBnX2NyYzMyY19zc2U0Ml9jaG9vc2UubyIK KyAgICBQR19DUkMzMkNfT0JKUz0icGdfY3JjMzJjX3NzZTQyLm8gcGdfY3JjMzJjX3NiOC5vIgog ICAgIEFDX01TR19SRVNVTFQoU1NFIDQuMiB3aXRoIHJ1bnRpbWUgY2hlY2spCiAgIGVsc2UKICAg ICBpZiB0ZXN0IHgiJFVTRV9BUk1WOF9DUkMzMkMiID0geCIxIjsgdGhlbgpkaWZmIC0tZ2l0IGEv c3JjL3BvcnQvTWFrZWZpbGUgYi9zcmMvcG9ydC9NYWtlZmlsZQppbmRleCA2ZTNiN2QxNTRlZC4u NDdjZmVhMTUwN2QgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L01ha2VmaWxlCisrKyBiL3NyYy9wb3J0 L01ha2VmaWxlCkBAIC00NCw2ICs0NCw3IEBAIE9CSlMgPSBcCiAJbm9ibG9jay5vIFwKIAlwYXRo Lm8gXAogCXBnX2JpdHV0aWxzLm8gXAorCXBnX2NwdV94ODYubyBcCiAJcGdfbG9jYWxlY29udl9y Lm8gXAogCXBnX251bWEubyBcCiAJcGdfcG9wY291bnRfYWFyY2g2NC5vIFwKZGlmZiAtLWdpdCBh L3NyYy9wb3J0L21lc29uLmJ1aWxkIGIvc3JjL3BvcnQvbWVzb24uYnVpbGQKaW5kZXggZDdkNGU3 MDViODkuLmVkYjJlNTYzMmJkIDEwMDY0NAotLS0gYS9zcmMvcG9ydC9tZXNvbi5idWlsZAorKysg Yi9zcmMvcG9ydC9tZXNvbi5idWlsZApAQCAtNyw2ICs3LDcgQEAgcGdwb3J0X3NvdXJjZXMgPSBb CiAgICdub2Jsb2NrLmMnLAogICAncGF0aC5jJywKICAgJ3BnX2JpdHV0aWxzLmMnLAorICAncGdf Y3B1X3g4Ni5jJywKICAgJ3BnX2xvY2FsZWNvbnZfci5jJywKICAgJ3BnX251bWEuYycsCiAgICdw Z19wb3Bjb3VudF9hYXJjaDY0LmMnLApAQCAtODYsOCArODcsNiBAQCByZXBsYWNlX2Z1bmNzX3Bv cyA9IFsKICAgIyB4ODYveDY0CiAgIFsncGdfY3JjMzJjX3NzZTQyJywgJ1VTRV9TU0U0Ml9DUkMz MkMnXSwKICAgWydwZ19jcmMzMmNfc3NlNDInLCAnVVNFX1NTRTQyX0NSQzMyQ19XSVRIX1JVTlRJ TUVfQ0hFQ0snXSwKLSAgWydwZ19jcmMzMmNfc3NlNDJfY2hvb3NlJywgJ1VTRV9TU0U0Ml9DUkMz MkMnXSwKLSAgWydwZ19jcmMzMmNfc3NlNDJfY2hvb3NlJywgJ1VTRV9TU0U0Ml9DUkMzMkNfV0lU SF9SVU5USU1FX0NIRUNLJ10sCiAgIFsncGdfY3JjMzJjX3NiOCcsICdVU0VfU1NFNDJfQ1JDMzJD X1dJVEhfUlVOVElNRV9DSEVDSyddLAogCiAgICMgYXJtIC8gYWFyY2g2NApkaWZmIC0tZ2l0IGEv c3JjL3BvcnQvcGdfY3JjMzJjX3NzZTQyX2Nob29zZS5jIGIvc3JjL3BvcnQvcGdfY3B1X3g4Ni5j CnNpbWlsYXJpdHkgaW5kZXggOTQlCnJlbmFtZSBmcm9tIHNyYy9wb3J0L3BnX2NyYzMyY19zc2U0 Ml9jaG9vc2UuYwpyZW5hbWUgdG8gc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCmluZGV4IGY1ODY0NzY5 NjRmLi45OThhNzBmZmE0MSAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvcGdfY3JjMzJjX3NzZTQyX2No b29zZS5jCisrKyBiL3NyYy9wb3J0L3BnX2NwdV94ODYuYwpAQCAtMSw2ICsxLDYgQEAKIC8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICoKLSAqIHBnX2NyYzMyY19zc2U0Ml9jaG9vc2UuYworICogcGdfY3B1 X3g4Ni5jCiAgKgkgIENob29zZSBiZXR3ZWVuIEludGVsIFNTRSA0LjIgYW5kIHNvZnR3YXJlIENS Qy0zMkMgaW1wbGVtZW50YXRpb24uCiAgKgogICogT24gZmlyc3QgY2FsbCwgY2hlY2tzIGlmIHRo ZSBDUFUgd2UncmUgcnVubmluZyBvbiBzdXBwb3J0cyBJbnRlbCBTU0UKQEAgLTEzLDEzICsxMywx NSBAQAogICoKICAqCiAgKiBJREVOVElGSUNBVElPTgotICoJICBzcmMvcG9ydC9wZ19jcmMzMmNf c3NlNDJfY2hvb3NlLmMKKyAqCSAgc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCiAgKgogICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgKi8KIAogI2luY2x1ZGUgImMuaCIKIAorI2lmIGRlZmluZWQoVVNFX1NTRTIp IHx8IGRlZmluZWQoX19pMzg2X18pCisKICNpZiBkZWZpbmVkKEhBVkVfX0dFVF9DUFVJRCkgfHwg ZGVmaW5lZChIQVZFX19HRVRfQ1BVSURfQ09VTlQpCiAjaW5jbHVkZSA8Y3B1aWQuaD4KICNlbmRp ZgpAQCAtMTA3LDMgKzEwOSw1IEBAIHBnX2NvbXBfY3JjMzJjX2Nob29zZShwZ19jcmMzMmMgY3Jj LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQogfQogCiBwZ19jcmMzMmMJKCpwZ19jb21w X2NyYzMyYykgKHBnX2NyYzMyYyBjcmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pID0g cGdfY29tcF9jcmMzMmNfY2hvb3NlOworCisjZW5kaWYJCQkJCQkJLyogZGVmaW5lZChVU0VfU1NF MikgfHwgZGVmaW5lZChfX2kzODZfXykgKi8KLS0gCjIuNTMuMAoK --00000000000037d145064b04db1f Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0004-Enable-autovectorizing-page-checksums-with-AVX2-w.patch" Content-Disposition: attachment; filename="v2-0004-Enable-autovectorizing-page-checksums-with-AVX2-w.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlqme01k0 RnJvbSBiY2JiNmFlMGExY2FiN2FiYzc5MTEzNDQwZTkxMjQ1ZDRiMzlkN2FjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFNhdCwgMTQgRmViIDIwMjYgMTk6MDE6MzQgKzA3MDAKU3ViamVjdDogW1BBVENI IHYyIDQvNF0gRW5hYmxlIGF1dG92ZWN0b3JpemluZyBwYWdlIGNoZWNrc3VtcyB3aXRoIEFWWDIg d2hlcmUKIGF2YWlsYWJsZQoKV2UgYWxyZWFkeSByZWx5IG9uIGF1dG92ZWN0b3JpemF0aW9uIGZv ciBjb21wdXRpbmcgcGFnZSBjaGVja3N1bXMsCmJ1dCBvbiB4ODYgd2UgY2FuIGdldCBhYm91dCB0 d2ljZSB0aGUgcGVyZm9ybWFuY2UgYnkgYW5ub3RhdGluZwpwZ19jaGVja3N1bV9ibG9jaygpIHdp dGggZnVuY3Rpb24gdGFyZ2V0IGF0dHJpYnV0ZXMgZm9yIEFWWDIsCndoaWNoIHVzZXMgMjU2LWJp dCByZWdpc3RlcnMuCgpDby1hdXRob3JlZC1ieTogTWF0dGhldyBTdGVycmV0dCA8bWF0dGhld3N0 ZXJyZXR0MkBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbmRyZXcgS2ltIDxhbmRyZXcua2lt QGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE9sZWcgVHNlbGVicm92c2tpeSA8by50c2VsZWJyb3Zz a2l5QHBvc3RncmVzcHJvLnJ1PgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBJTJC dkE4NV81R1R1JTJCSEhuaVNidnZQJTJCOGszJTNEeFpPJTNEV0U4NE5Qd2lLeXh6dHF2cGZaM1El NDBtYWlsLmdtYWlsLmNvbQpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzIwMjUwOTEx MDU0MjIwLjM3ODQtMS1yb290JTQwaXAtMTcyLTMxLTM2LTIyOC5lYzIuaW50ZXJuYWwKLS0tCiBj b25maWcvYy1jb21waWxlci5tNCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNiArKysrKysr KysrCiBjb25maWd1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NiAr KysrKysrKysrKysrKysrKysKIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA5ICsrKysKIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDMwICsrKysrKysrKysrKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2NoZWNr c3VtLmMgICAgICAgICAgIHwgNDQgKysrKysrKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL3BnX2Nv bmZpZy5oLmluICAgICAgICAgICAgICAgICAgICB8ICAzICsrCiBzcmMvaW5jbHVkZS9wb3J0L3Bn X2NwdS5oICAgICAgICAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9j aGVja3N1bV9ibG9ja19pbnRlcm5hbC5oIHwgNDIgKysrKysrKysrKysrKysrKwogc3JjL2luY2x1 ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBsLmggICAgICAgICAgIHwgNDggKysrKysrLS0tLS0tLS0t LS0tLQogc3JjL3BvcnQvcGdfY3B1X3g4Ni5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYg KystCiBzcmMvdG9vbHMvcGdpbmNsdWRlL2hlYWRlcnNjaGVjayAgICAgICAgICAgICAgfCAgMiAr CiAxMSBmaWxlcyBjaGFuZ2VkLCAyMjQgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9ibG9ja19pbnRl cm5hbC5oCgpkaWZmIC0tZ2l0IGEvY29uZmlnL2MtY29tcGlsZXIubTQgYi9jb25maWcvYy1jb21w aWxlci5tNAppbmRleCAxNTA5ZGJmYTJhYi4uMWYzZTMxZmMyZDMgMTAwNjQ0Ci0tLSBhL2NvbmZp Zy9jLWNvbXBpbGVyLm00CisrKyBiL2NvbmZpZy9jLWNvbXBpbGVyLm00CkBAIC02MTMsNiArNjEz LDMyIEBAIGZpCiB1bmRlZmluZShbQWNfY2FjaGV2YXJdKWRubAogXSkjIFBHQUNfU1NFNDJfQ1JD MzJfSU5UUklOU0lDUwogCisjIFBHQUNfQVZYMl9TVVBQT1JUCisjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIyBDaGVjayBpZiB0aGUgY29tcGlsZXIgc3VwcG9ydHMgQVZYMiB0YXJnZXQg YXR0cmlidXRlLgorIyBUaGlzIGlzIHVzZWQgZm9yIG9wdGltaXplZCBjaGVja3N1bSBjYWxjdWxh dGlvbnMgd2l0aCBydW50aW1lIGRldGVjdGlvbi4KKyMKKyMgSWYgQVZYMiB0YXJnZXQgYXR0cmli dXRlIGlzIHN1cHBvcnRlZCwgc2V0cyBwZ2FjX2F2eDJfc3VwcG9ydC4KK0FDX0RFRlVOKFtQR0FD X0FWWDJfU1VQUE9SVF0sCitbZGVmaW5lKFtBY19jYWNoZXZhcl0sIFtBU19UUl9TSChbcGdhY19j dl9hdngyX3N1cHBvcnRdKV0pZG5sCitBQ19DQUNIRV9DSEVDSyhbZm9yIEFWWDIgdGFyZ2V0IGF0 dHJpYnV0ZSBzdXBwb3J0XSwgW0FjX2NhY2hldmFyXSwKK1tBQ19DT01QSUxFX0lGRUxTRShbQUNf TEFOR19QUk9HUkFNKFsjaW5jbHVkZSA8c3RkaW50Lmg+CisgICAgI2lmIGRlZmluZWQoX19oYXNf YXR0cmlidXRlKSAmJiBfX2hhc19hdHRyaWJ1dGUgKHRhcmdldCkKKyAgICBfX2F0dHJpYnV0ZV9f KCh0YXJnZXQoImF2eDIiKSkpCisgICAgc3RhdGljIGludCBhdngyX3Rlc3Qodm9pZCkKKyAgICB7 CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgI2VuZGlmXSwKKyAgW3JldHVybiBhdngyX3Rl c3QoKTtdKV0sCisgIFtBY19jYWNoZXZhcj15ZXNdLAorICBbQWNfY2FjaGV2YXI9bm9dKV0pCitp ZiB0ZXN0IHgiJEFjX2NhY2hldmFyIiA9IHgieWVzIjsgdGhlbgorICBwZ2FjX2F2eDJfc3VwcG9y dD15ZXMKK2ZpCit1bmRlZmluZShbQWNfY2FjaGV2YXJdKWRubAorXSkjIFBHQUNfQVZYMl9TVVBQ T1JUCisKICMgUEdBQ19BVlg1MTJfUENMTVVMX0lOVFJJTlNJQ1MKICMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAjIENoZWNrIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyBBVlgtNTEyIGNh cnJ5bGVzcyBtdWx0aXBsaWNhdGlvbgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJl CmluZGV4IDE4NTcwMzI4OWI0Li4yZDJjNjMwODAwNSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisr KyBiL2NvbmZpZ3VyZQpAQCAtMTc3MTgsNiArMTc3MTgsNTIgQEAgJGFzX2VjaG8gIiNkZWZpbmUg SEFWRV9fQ1BVSURFWCAxIiA+PmNvbmZkZWZzLmgKICAgZmkKIGZpCiAKKyMgQ2hlY2sgZm9yIEFW WDIgdGFyZ2V0IGFuZCBpbnRyaW5zaWMgc3VwcG9ydAorIworaWYgdGVzdCB4IiRob3N0X2NwdSIg PSB4Ing4Nl82NCI7IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgQVZYMiB0YXJnZXQgYXR0cmlidXRlIHN1cHBvcnQiID4mNQorJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFWWDIgdGFyZ2V0IGF0dHJpYnV0ZSBzdXBwb3J0Li4uICIg PiY2OyB9CitpZiAke3BnYWNfY3ZfYXZ4Ml9zdXBwb3J0Kzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN0 ZGludC5oPgorICAgICNpZiBkZWZpbmVkKF9faGFzX2F0dHJpYnV0ZSkgJiYgX19oYXNfYXR0cmli dXRlICh0YXJnZXQpCisgICAgX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJhdngyIikpKQorICAgIHN0 YXRpYyBpbnQgYXZ4Ml90ZXN0KHZvaWQpCisgICAgeworICAgICAgcmV0dXJuIDA7CisgICAgfQor ICAgICNlbmRpZgoraW50CittYWluICgpCit7CityZXR1cm4gYXZ4Ml90ZXN0KCk7CisgIDsKKyAg cmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0 aGVuIDoKKyAgcGdhY19jdl9hdngyX3N1cHBvcnQ9eWVzCitlbHNlCisgIHBnYWNfY3ZfYXZ4Ml9z dXBwb3J0PW5vCitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0CitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRwZ2FjX2N2X2F2eDJfc3VwcG9ydCIgPiY1CiskYXNfZWNobyAiJHBn YWNfY3ZfYXZ4Ml9zdXBwb3J0IiA+JjY7IH0KK2lmIHRlc3QgeCIkcGdhY19jdl9hdngyX3N1cHBv cnQiID0geCJ5ZXMiOyB0aGVuCisgIHBnYWNfYXZ4Ml9zdXBwb3J0PXllcworZmkKKworICBpZiB0 ZXN0IHgiJHBnYWNfYXZ4Ml9zdXBwb3J0IiA9IHgieWVzIjsgdGhlbgorCiskYXNfZWNobyAiI2Rl ZmluZSBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sgMSIgPj5jb25mZGVmcy5oCisKKyAgZmkK K2ZpCisKICMgQ2hlY2sgZm9yIFhTQVZFIGludHJpbnNpY3MKICMKIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIF94Z2V0YnYiID4mNQpkaWZmIC0t Z2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDA5NTViN2U0MzcxLi4wYjRj Mzk3MGI2OCAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAt MjEyMiw2ICsyMTIyLDE1IEBAIGVsc2UKICAgZmkKIGZpCiAKKyMgQ2hlY2sgZm9yIEFWWDIgdGFy Z2V0IGFuZCBpbnRyaW5zaWMgc3VwcG9ydAorIworaWYgdGVzdCB4IiRob3N0X2NwdSIgPSB4Ing4 Nl82NCI7IHRoZW4KKyAgUEdBQ19BVlgyX1NVUFBPUlQoKQorICBpZiB0ZXN0IHgiJHBnYWNfYXZ4 Ml9zdXBwb3J0IiA9IHgieWVzIjsgdGhlbgorICAgIEFDX0RFRklORShVU0VfQVZYMl9XSVRIX1JV TlRJTUVfQ0hFQ0ssIDEsIFtEZWZpbmUgdG8gMSB0byB1c2UgQVZYMiBpbnN0cnVjdGlvbnMgd2l0 aCBhIHJ1bnRpbWUgY2hlY2suXSkKKyAgZmkKK2ZpCisKICMgQ2hlY2sgZm9yIFhTQVZFIGludHJp bnNpY3MKICMKIFBHQUNfWFNBVkVfSU5UUklOU0lDUygpCmRpZmYgLS1naXQgYS9tZXNvbi5idWls ZCBiL21lc29uLmJ1aWxkCmluZGV4IGY2ZDU4NDJkODUyLi5mZWVhMzY1OGZmMyAxMDA2NDQKLS0t IGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQKQEAgLTIzNzcsNiArMjM3NywzNiBAQCBp bnQgbWFpbih2b2lkKQogZW5kaWYKIAogCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ2hlY2sgZm9yIHRoZSBhdmFpbGFi aWxpdHkgb2YgQVZYMiBzdXBwb3J0CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaWYgaG9zdF9jcHUgPT0gJ3g4Nl82NCcK KworICBwcm9nID0gJycnCisjaW5jbHVkZSA8aW1taW50cmluLmg+CisjaW5jbHVkZSA8c3RkaW50 Lmg+CisjaWYgZGVmaW5lZChfX2hhc19hdHRyaWJ1dGUpICYmIF9faGFzX2F0dHJpYnV0ZSAodGFy Z2V0KQorX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJhdngyIikpKQorI2VuZGlmCitzdGF0aWMgaW50 IGF2eDJfdGVzdCh2b2lkKQoreworICAgIHJldHVybiAwOworfQorCitpbnQgbWFpbih2b2lkKQor eworICAgIHJldHVybiBhdngyX3Rlc3QoKTsKK30KKycnJworCisgIGlmIGNjLmxpbmtzKHByb2cs IG5hbWU6ICdBVlgyIHN1cHBvcnQnLCBhcmdzOiB0ZXN0X2NfYXJncykKKyAgICBjZGF0YS5zZXQo J1VTRV9BVlgyX1dJVEhfUlVOVElNRV9DSEVDSycsIDEpCisgIGVuZGlmCisKK2VuZGlmCisKKwog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiAjIENoZWNrIGZvciB0aGUgYXZhaWxhYmlsaXR5IG9mIEFWWC01MTIgcG9wY291bnQg aW50cmluc2ljcy4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdl L2NoZWNrc3VtLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvY2hlY2tzdW0uYwppbmRleCA4 NzE2NjUxYzhiNS4uMDMwYzQ0ZjczMDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv cGFnZS9jaGVja3N1bS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9jaGVja3N1bS5j CkBAIC0xMywxMCArMTMsNTIgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNs dWRlICJwb3J0L3BnX2NwdS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvY2hlY2tzdW0uaCIKIC8qCiAg KiBUaGUgYWN0dWFsIGNvZGUgaXMgaW4gc3RvcmFnZS9jaGVja3N1bV9pbXBsLmguICBUaGlzIGlz IGRvbmUgc28gdGhhdAogICogZXh0ZXJuYWwgcHJvZ3JhbXMgY2FuIGluY29ycG9yYXRlIHRoZSBj aGVja3N1bSBjb2RlIGJ5ICNpbmNsdWRlJ2luZwotICogdGhhdCBmaWxlIGZyb20gdGhlIGV4cG9y dGVkIFBvc3RncmVzIGhlYWRlcnMuICAoQ29tcGFyZSBvdXIgQ1JDIGNvZGUuKQorICogdGhhdCBm aWxlIGZyb20gdGhlIGV4cG9ydGVkIFBvc3RncmVzIGhlYWRlcnMuICAoQ29tcGFyZSBvdXIgbGVn YWN5CisgKiBDUkMgY29kZSBpbiBwZ19jcmMuaC4pCisgKiBUaGUgUEdfQ0hFQ0tTVU1fSU5URVJO QUwgc3ltYm9sIGFsbG93cyBjb3JlIHRvIHVzZSBoYXJkd2FyZS1zcGVjaWZpYworICogY29kaW5n IHdpdGhvdXQgYWZmZWN0aW5nIGV4dGVybmFsIHByb2dyYW1zLgogICovCisjZGVmaW5lIFBHX0NI RUNLU1VNX0lOVEVSTkFMCiAjaW5jbHVkZSAic3RvcmFnZS9jaGVja3N1bV9pbXBsLmgiCS8qIElX WVUgcHJhZ21hOiBrZWVwICovCisKKworc3RhdGljIHVpbnQzMgorcGdfY2hlY2tzdW1fYmxvY2tf ZmFsbGJhY2soY29uc3QgUEdDaGVja3N1bW1hYmxlUGFnZSAqcGFnZSkKK3sKKyNpbmNsdWRlICJz dG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFsLmgiCit9CisKKy8qCisgKiBBVlgyLW9wdGlt aXplZCBibG9jayBjaGVja3N1bSBhbGdvcml0aG0uCisgKi8KKyNpZmRlZiBVU0VfQVZYMl9XSVRI X1JVTlRJTUVfQ0hFQ0sKK3BnX2F0dHJpYnV0ZV90YXJnZXQoImF2eDIiKQorc3RhdGljIHVpbnQz MgorcGdfY2hlY2tzdW1fYmxvY2tfYXZ4Mihjb25zdCBQR0NoZWNrc3VtbWFibGVQYWdlICpwYWdl KQoreworI2luY2x1ZGUgInN0b3JhZ2UvY2hlY2tzdW1fYmxvY2tfaW50ZXJuYWwuaCIKK30KKyNl bmRpZgkJCQkJCQkvKiBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sgKi8KKworLyoKKyAqIENo b29zZSB0aGUgYmVzdCBhdmFpbGFibGUgY2hlY2tzdW0gaW1wbGVtZW50YXRpb24uCisgKi8KK3N0 YXRpYyB1aW50MzIKK3BnX2NoZWNrc3VtX2Nob29zZShjb25zdCBQR0NoZWNrc3VtbWFibGVQYWdl ICpwYWdlKQoreworCXBnX2NoZWNrc3VtX2Jsb2NrID0gcGdfY2hlY2tzdW1fYmxvY2tfZmFsbGJh Y2s7CisKKyNpZmRlZiBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sKKwlpZiAoeDg2X2ZlYXR1 cmVfYXZhaWxhYmxlKFBHX0FWWDIpKQorCQlwZ19jaGVja3N1bV9ibG9jayA9IHBnX2NoZWNrc3Vt X2Jsb2NrX2F2eDI7CisjZW5kaWYKKworCXJldHVybiBwZ19jaGVja3N1bV9ibG9jayhwYWdlKTsK K30KKworc3RhdGljIHVpbnQzMiAoKnBnX2NoZWNrc3VtX2Jsb2NrKSAoY29uc3QgUEdDaGVja3N1 bW1hYmxlUGFnZSAqcGFnZSkgPSBwZ19jaGVja3N1bV9jaG9vc2U7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wZ19jb25maWcuaC5pbiBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCmluZGV4 IDMzOTI2OGRjOGVmLi4xZTQzZTliMmJjNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdfY29u ZmlnLmguaW4KKysrIGIvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KQEAgLTY2NSw2ICs2NjUs OSBAQAogLyogRGVmaW5lIHRvIDEgdG8gdXNlIEFWWC01MTIgQ1JDIGFsZ29yaXRobXMgd2l0aCBh IHJ1bnRpbWUgY2hlY2suICovCiAjdW5kZWYgVVNFX0FWWDUxMl9DUkMzMkNfV0lUSF9SVU5USU1F X0NIRUNLCiAKKy8qIERlZmluZSB0byAxIHRvIHVzZSBBVlgyIGluc3RydWN0aW9ucyB3aXRoIGEg cnVudGltZSBjaGVjay4gKi8KKyN1bmRlZiBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sKKwog LyogRGVmaW5lIHRvIDEgdG8gdXNlIEFWWC01MTIgcG9wY291bnQgaW5zdHJ1Y3Rpb25zIHdpdGgg YSBydW50aW1lIGNoZWNrLiAqLwogI3VuZGVmIFVTRV9BVlg1MTJfUE9QQ05UX1dJVEhfUlVOVElN RV9DSEVDSwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0L3BnX2NwdS5oIGIvc3JjL2lu Y2x1ZGUvcG9ydC9wZ19jcHUuaAppbmRleCBmZmE5YmZiM2ZkNC4uMDBlZmE5YmI5NTkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3BvcnQvcGdfY3B1LmgKKysrIGIvc3JjL2luY2x1ZGUvcG9ydC9w Z19jcHUuaApAQCAtMjQsNiArMjQsOSBAQCB0eXBlZGVmIGVudW0gWDg2RmVhdHVyZUlkCiAJUEdf U1NFNF8yLAogCVBHX1BPUENOVCwKIAorCS8qIDI1Ni1iaXQgcmVnaXN0ZXJzICovCisJUEdfQVZY MiwKKwogCS8qIDUxMi1iaXQgcmVnaXN0ZXJzICovCiAJUEdfQVZYNTEyX0JXLAogCVBHX0FWWDUx Ml9WTCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1fYmxvY2tfaW50 ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1fYmxvY2tfaW50ZXJuYWwuaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjRlNjk4N2Q2YjUKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFs LmgKQEAgLTAsMCArMSw0MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogY2hlY2tzdW1f YmxvY2tfaW50ZXJuYWwuaAorICoJICBDb3JlIGFsZ29yaXRobSBmb3IgcGFnZSBjaGVja3N1bXMg LCBzZW1pIHByaXZhdGUgdG8gY2hlY2tzdW1faW1wbC5oCisgKgkgIGFuZCBjaGVja3N1bS5jLgor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9z dG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFsLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworCisvKiB0aGVyZSBpcyBkZWxpYmVyYXRlbHkgbm90IGFuICNpZm5kZWYgQ0hFQ0tTVU1f QkxPQ0tfSU5URVJOQUxfSCBoZXJlICovCisKK3VpbnQzMgkJc3Vtc1tOX1NVTVNdOwordWludDMy CQlyZXN1bHQgPSAwOwordWludDMyCQlpLAorCQkJajsKKworLyogZW5zdXJlIHRoYXQgdGhlIHNp emUgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBhbGdvcml0aG0gKi8KK0Fzc2VydChzaXplb2YoUEdD aGVja3N1bW1hYmxlUGFnZSkgPT0gQkxDS1NaKTsKKworLyogaW5pdGlhbGl6ZSBwYXJ0aWFsIGNo ZWNrc3VtcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIG9mZnNldHMgKi8KK21lbWNweShzdW1zLCBj aGVja3N1bUJhc2VPZmZzZXRzLCBzaXplb2YoY2hlY2tzdW1CYXNlT2Zmc2V0cykpOworCisvKiBt YWluIGNoZWNrc3VtIGNhbGN1bGF0aW9uICovCitmb3IgKGkgPSAwOyBpIDwgKHVpbnQzMikgKEJM Q0tTWiAvIChzaXplb2YodWludDMyKSAqIE5fU1VNUykpOyBpKyspCisJZm9yIChqID0gMDsgaiA8 IE5fU1VNUzsgaisrKQorCQlDSEVDS1NVTV9DT01QKHN1bXNbal0sIHBhZ2UtPmRhdGFbaV1bal0p OworCisvKiBmaW5hbGx5IGFkZCBpbiB0d28gcm91bmRzIG9mIHplcm9lcyBmb3IgYWRkaXRpb25h bCBtaXhpbmcgKi8KK2ZvciAoaSA9IDA7IGkgPCAyOyBpKyspCisJZm9yIChqID0gMDsgaiA8IE5f U1VNUzsgaisrKQorCQlDSEVDS1NVTV9DT01QKHN1bXNbal0sIDApOworCisvKiB4b3IgZm9sZCBw YXJ0aWFsIGNoZWNrc3VtcyB0b2dldGhlciAqLworZm9yIChpID0gMDsgaSA8IE5fU1VNUzsgaSsr KQorCXJlc3VsdCBePSBzdW1zW2ldOworCityZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBsLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2No ZWNrc3VtX2ltcGwuaAppbmRleCA1YzJkY2JjNjNlNy4uOGEzMDhlNDIzYzMgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1faW1wbC5oCisrKyBiL3NyYy9pbmNsdWRlL3N0 b3JhZ2UvY2hlY2tzdW1faW1wbC5oCkBAIC03MywxMSArNzMsMTAgQEAKICAqIDJlLTE2IGZhbHNl IHBvc2l0aXZlIHJhdGUgd2l0aGluIG1hcmdpbiBvZiBlcnJvci4KICAqCiAgKiBWZWN0b3JpemF0 aW9uIG9mIHRoZSBhbGdvcml0aG0gcmVxdWlyZXMgMzJiaXQgeCAzMmJpdCAtPiAzMmJpdCBpbnRl Z2VyCi0gKiBtdWx0aXBsaWNhdGlvbiBpbnN0cnVjdGlvbi4gQXMgb2YgMjAxMyB0aGUgY29ycmVz cG9uZGluZyBpbnN0cnVjdGlvbiBpcwotICogYXZhaWxhYmxlIG9uIHg4NiBTU0U0LjEgZXh0ZW5z aW9ucyAocG11bGxkKSBhbmQgQVJNIE5FT04gKHZtdWwuaTMyKS4KLSAqIFZlY3Rvcml6YXRpb24g cmVxdWlyZXMgYSBjb21waWxlciB0byBkbyB0aGUgdmVjdG9yaXphdGlvbiBmb3IgdXMuIEZvciBy ZWNlbnQKLSAqIEdDQyB2ZXJzaW9ucyB0aGUgZmxhZ3MgLW1zc2U0LjEgLWZ1bnJvbGwtbG9vcHMg LWZ0cmVlLXZlY3Rvcml6ZSBhcmUgZW5vdWdoCi0gKiB0byBhY2hpZXZlIHZlY3Rvcml6YXRpb24u CisgKiBtdWx0aXBsaWNhdGlvbiBpbnN0cnVjdGlvbi4gRXhhbXBsZXMgaW5jbHVkZSB4ODYgQVZY MiBleHRlbnNpb25zICh2cG11bGxkKQorICogYW5kIEFSTSBORU9OICh2bXVsLmkzMikuIEZvciBz aW1wbGljaXR5IHdlIHJlbHkgb24gdGhlIGNvbXBpbGVyIHRvIGRvIHRoZQorICogdmVjdG9yaXph dGlvbiBmb3IgdXMuIEZvciBHQ0MgYW5kIGNsYW5nIHRoZSBmbGFncyAtZnVucm9sbC1sb29wcwor ICogLWZ0cmVlLXZlY3Rvcml6ZSBhcmUgZW5vdWdoIHRvIGFjaGlldmUgdmVjdG9yaXphdGlvbi4K ICAqCiAgKiBUaGUgb3B0aW1hbCBhbW91bnQgb2YgcGFyYWxsZWxpc20gdG8gdXNlIGRlcGVuZHMg b24gQ1BVIHNwZWNpZmljIGluc3RydWN0aW9uCiAgKiBsYXRlbmN5LCBTSU1EIGluc3RydWN0aW9u IHdpZHRoLCB0aHJvdWdocHV0IGFuZCB0aGUgYW1vdW50IG9mIHJlZ2lzdGVycwpAQCAtODksOCAr ODgsOSBAQAogICoKICAqIFRoZSBwYXJhbGxlbGlzbSBudW1iZXIgMzIgd2FzIGNob3NlbiBiYXNl ZCBvbiB0aGUgZmFjdCB0aGF0IGl0IGlzIHRoZQogICogbGFyZ2VzdCBzdGF0ZSB0aGF0IGZpdHMg aW50byBhcmNoaXRlY3R1cmFsbHkgdmlzaWJsZSB4ODYgU1NFIHJlZ2lzdGVycyB3aGlsZQotICog bGVhdmluZyBzb21lIGZyZWUgcmVnaXN0ZXJzIGZvciBpbnRlcm1lZGlhdGUgdmFsdWVzLiBGb3Ig ZnV0dXJlIHByb2Nlc3NvcnMKLSAqIHdpdGggMjU2Yml0IHZlY3RvciByZWdpc3RlcnMgdGhpcyB3 aWxsIGxlYXZlIHNvbWUgcGVyZm9ybWFuY2Ugb24gdGhlIHRhYmxlLgorICogbGVhdmluZyBzb21l IGZyZWUgcmVnaXN0ZXJzIGZvciBpbnRlcm1lZGlhdGUgdmFsdWVzLiBGb3IgcHJvY2Vzc29ycwor ICogd2l0aCAyNTZiaXQgdmVjdG9yIHJlZ2lzdGVycyB0aGlzIGxlYXZlcyBzb21lIHBlcmZvcm1h bmNlIG9uIHRoZSB0YWJsZS4KKyAqCiAgKiBXaGVuIHZlY3Rvcml6YXRpb24gaXMgbm90IGF2YWls YWJsZSBpdCBtaWdodCBiZSBiZW5lZmljaWFsIHRvIHJlc3RydWN0dXJlCiAgKiB0aGUgY29tcHV0 YXRpb24gdG8gY2FsY3VsYXRlIGEgc3Vic2V0IG9mIHRoZSBjb2x1bW5zIGF0IGEgdGltZSBhbmQg cGVyZm9ybQogICogbXVsdGlwbGUgcGFzc2VzIHRvIGF2b2lkIHJlZ2lzdGVyIHNwaWxsaW5nLiBU aGlzIG9wdGltaXphdGlvbiBvcHBvcnR1bml0eQpAQCAtMTM4LDYgKzEzOCw5IEBAIGRvIHsgXAog CShjaGVja3N1bSkgPSBfX3RtcCAqIEZOVl9QUklNRSBeIChfX3RtcCA+PiAxNyk7IFwKIH0gd2hp bGUgKDApCiAKKy8qIFByb3ZpZGUgYSBzdGF0aWMgZGVmaW5pdGlvbiBmb3IgZXh0ZXJuYWwgcHJv Z3JhbXMgKi8KKyNpZm5kZWYgUEdfQ0hFQ0tTVU1fSU5URVJOQUwKKwogLyoKICAqIEJsb2NrIGNo ZWNrc3VtIGFsZ29yaXRobS4gIFRoZSBwYWdlIG11c3QgYmUgYWRlcXVhdGVseSBhbGlnbmVkCiAg KiAoYXQgbGVhc3Qgb24gNC1ieXRlIGJvdW5kYXJ5KS4KQEAgLTE0NSwzNCArMTQ4LDEzIEBAIGRv IHsgXAogc3RhdGljIHVpbnQzMgogcGdfY2hlY2tzdW1fYmxvY2soY29uc3QgUEdDaGVja3N1bW1h YmxlUGFnZSAqcGFnZSkKIHsKLQl1aW50MzIJCXN1bXNbTl9TVU1TXTsKLQl1aW50MzIJCXJlc3Vs dCA9IDA7Ci0JdWludDMyCQlpLAotCQkJCWo7Ci0KLQkvKiBlbnN1cmUgdGhhdCB0aGUgc2l6ZSBp cyBjb21wYXRpYmxlIHdpdGggdGhlIGFsZ29yaXRobSAqLwotCUFzc2VydChzaXplb2YoUEdDaGVj a3N1bW1hYmxlUGFnZSkgPT0gQkxDS1NaKTsKLQotCS8qIGluaXRpYWxpemUgcGFydGlhbCBjaGVj a3N1bXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBvZmZzZXRzICovCi0JbWVtY3B5KHN1bXMsIGNo ZWNrc3VtQmFzZU9mZnNldHMsIHNpemVvZihjaGVja3N1bUJhc2VPZmZzZXRzKSk7Ci0KLQkvKiBt YWluIGNoZWNrc3VtIGNhbGN1bGF0aW9uICovCi0JZm9yIChpID0gMDsgaSA8ICh1aW50MzIpIChC TENLU1ogLyAoc2l6ZW9mKHVpbnQzMikgKiBOX1NVTVMpKTsgaSsrKQotCQlmb3IgKGogPSAwOyBq IDwgTl9TVU1TOyBqKyspCi0JCQlDSEVDS1NVTV9DT01QKHN1bXNbal0sIHBhZ2UtPmRhdGFbaV1b al0pOwotCi0JLyogZmluYWxseSBhZGQgaW4gdHdvIHJvdW5kcyBvZiB6ZXJvZXMgZm9yIGFkZGl0 aW9uYWwgbWl4aW5nICovCi0JZm9yIChpID0gMDsgaSA8IDI7IGkrKykKLQkJZm9yIChqID0gMDsg aiA8IE5fU1VNUzsgaisrKQotCQkJQ0hFQ0tTVU1fQ09NUChzdW1zW2pdLCAwKTsKLQotCS8qIHhv ciBmb2xkIHBhcnRpYWwgY2hlY2tzdW1zIHRvZ2V0aGVyICovCi0JZm9yIChpID0gMDsgaSA8IE5f U1VNUzsgaSsrKQotCQlyZXN1bHQgXj0gc3Vtc1tpXTsKLQotCXJldHVybiByZXN1bHQ7CisjaW5j bHVkZSAic3RvcmFnZS9jaGVja3N1bV9ibG9ja19pbnRlcm5hbC5oIgogfQogCisjZWxzZQorc3Rh dGljIHVpbnQzMiAoKnBnX2NoZWNrc3VtX2Jsb2NrKSAoY29uc3QgUEdDaGVja3N1bW1hYmxlUGFn ZSAqcGFnZSk7CisjZW5kaWYKKwogLyoKICAqIENvbXB1dGUgdGhlIGNoZWNrc3VtIGZvciBhIFBv c3RncmVzIHBhZ2UuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jIGIvc3Jj L3BvcnQvcGdfY3B1X3g4Ni5jCmluZGV4IDQ2ODk3MmEzZDEyLi43ZTAxYTU4NTA4MiAxMDA2NDQK LS0tIGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCisrKyBiL3NyYy9wb3J0L3BnX2NwdV94ODYuYwpA QCAtNzQsNyArNzQsNyBAQCBzZXRfeDg2X2ZlYXR1cmVzKHZvaWQpCiAJewogCQl1aW50MzIJCXhj cjBfdmFsID0gMDsKIAotCQkvKiBzZWNvbmQgY3B1aWQgY2FsbCBvbiBsZWFmIDcgdG8gY2hlY2sg ZXh0ZW5kZWQgQVZYLTUxMiBzdXBwb3J0ICovCisJCS8qIHNlY29uZCBjcHVpZCBjYWxsIG9uIGxl YWYgNyB0byBjaGVjayBleHRlbmRlZCBzdXBwb3J0ICovCiAJCW1lbXNldChleHgsIDAsIDQgKiBz aXplb2YoZXh4WzBdKSk7CiAjaWYgZGVmaW5lZChIQVZFX19HRVRfQ1BVSURfQ09VTlQpCiAJCV9f Z2V0X2NwdWlkX2NvdW50KDcsIDAsICZleHhbMF0sICZleHhbMV0sICZleHhbMl0sICZleHhbM10p OwpAQCAtODcsNiArODcsMTAgQEAgc2V0X3g4Nl9mZWF0dXJlcyh2b2lkKQogCQl4Y3IwX3ZhbCA9 IF94Z2V0YnYoMCk7CiAjZW5kaWYKIAorCQkvKiBBcmUgWU1NIHJlZ2lzdGVycyBlbmFibGVkPyAq LworCQlpZiAobWFza19hdmFpbGFibGUoeGNyMF92YWwsIFhNTSB8IFlNTSkpCisJCQlYODZGZWF0 dXJlc1tQR19BVlgyXSA9IGV4eFsxXSA+PiA1ICYgMTsKKwogCQkvKiBBcmUgWk1NIHJlZ2lzdGVy ZXMgZW5hYmxlZD8gKi8KIAkJaWYgKG1hc2tfYXZhaWxhYmxlKHhjcjBfdmFsLCBYTU0gfCBZTU0g fAogCQkJCQkJICAgT1BNQVNLIHwgWk1NMF8xNSB8IFpNTTE2XzMxKSkKZGlmZiAtLWdpdCBhL3Ny Yy90b29scy9wZ2luY2x1ZGUvaGVhZGVyc2NoZWNrIGIvc3JjL3Rvb2xzL3BnaW5jbHVkZS9oZWFk ZXJzY2hlY2sKaW5kZXggN2E2NzU1OTkxYmIuLjU2OWU3NDliMjVhIDEwMDc1NQotLS0gYS9zcmMv dG9vbHMvcGdpbmNsdWRlL2hlYWRlcnNjaGVjaworKysgYi9zcmMvdG9vbHMvcGdpbmNsdWRlL2hl YWRlcnNjaGVjawpAQCAtMTU0LDYgKzE1NCw4IEBAIGRvCiAJdGVzdCAiJGYiID0gc3JjL2luY2x1 ZGUvY2F0YWxvZy9zeXNjYWNoZV9pZHMuaCAmJiBjb250aW51ZQogCXRlc3QgIiRmIiA9IHNyYy9p bmNsdWRlL2NhdGFsb2cvc3lzY2FjaGVfaW5mby5oICYmIGNvbnRpbnVlCiAKKwl0ZXN0ICIkZiIg PSBzcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFsLmggJiYgY29udGlu dWUKKwogCSMgV2UgY2FuJ3QgbWFrZSB0aGVzZSBCaXNvbiBvdXRwdXQgZmlsZXMgY29tcGlsYWJs ZSBzdGFuZGFsb25lCiAJIyB3aXRob3V0IHVzaW5nICIlY29kZSByZXF1aXJlIiwgd2hpY2ggb2xk IEJpc29uIHZlcnNpb25zIGxhY2suCiAJIyBwYXJzZXIvZ3JhbS5oIHdpbGwgYmUgaW5jbHVkZWQg YnkgcGFyc2VyL2dyYW1wYXJzZS5oIGFueXdheS4KLS0gCjIuNTMuMAoK --00000000000037d145064b04db1f Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0003-Refactor-the-detection-of-ZMM-registers.patch" Content-Disposition: attachment; filename="v2-0003-Refactor-the-detection-of-ZMM-registers.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlqme02b1 RnJvbSA4YTYxYzIxYWQ5NGJjNjI0MTk4OWI2Y2Q2MjM3ZTc1YjE2MTM3ZWExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IEZyaSwgMTMgRmViIDIwMjYgMTg6MTE6MzkgKzA3MDAKU3ViamVjdDogW1BBVENI IHYyIDMvNF0gUmVmYWN0b3IgdGhlIGRldGVjdGlvbiBvZiBaTU0gcmVnaXN0ZXJzCgotIENhbGwg X3hnZXRidiB3aXRoaW4geDg2X3NldF9ydW50aW1lX2ZlYXR1cmVzIHJhdGhlciB0aGFuIGluIGEK ICBzZXBhcmF0ZSBmdW5jdGlvbgotIFVzZSBzeW1ib2xzIGZvciBYQ1IgbWFzayBiaXRzIHJhdGhl ciB0aGFuIGEgbWFnaWMgY29uc3RhbnQKCkEgZnV0dXJlIGNvbW1pdCB3aWxsIGJ1aWxkIG9uIHRo aXMgdG8gZGV0ZWN0IFlNTSByZWdpc3RlcnMgd2l0aG91dApjb2RlIGR1cGxpY2F0aW9uLgotLS0K IHNyYy9wb3J0L3BnX2NwdV94ODYuYyAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0KIHNyYy9wb3J0L3BnX2NyYzMyY19zc2U0Mi5jIHwgIDIgKy0KIDIgZmls ZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jIGIvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCmluZGV4IDI0 OTI4MzcyNWM4Li40Njg5NzJhM2QxMiAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5j CisrKyBiL3NyYy9wb3J0L3BnX2NwdV94ODYuYwpAQCAtMzEsMzEgKzMxLDI4IEBACiAKICNpbmNs dWRlICJwb3J0L3BnX2NwdS5oIgogCisvKiBYU0FWRSBzdGF0ZSBjb21wb25lbnQgYml0cyB0aGF0 IHdlIG5lZWQgKi8KKyNkZWZpbmUgWE1NICgxPDwxKQorI2RlZmluZSBZTU0gICgxPDwyKQorI2Rl ZmluZSBPUE1BU0sgICgxPDw1KQorI2RlZmluZSBaTU0wXzE1ICAoMTw8NikKKyNkZWZpbmUgWk1N MTZfMzEgICgxPDw3KQorCiAKIGJvb2wJCVg4NkZlYXR1cmVzW1g4NkZlYXR1cmVzU2l6ZV0gPSB7 MH07CiAKLS8qCi0gKiBEb2VzIFhHRVRCViBzYXkgdGhlIFpNTSByZWdpc3RlcnMgYXJlIGVuYWJs ZWQ/Ci0gKgotICogTkI6IENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgdmVyaWZ5aW5nIHRoYXQg b3N4c2F2ZSBpcyBhdmFpbGFibGUKLSAqIGJlZm9yZSBjYWxsaW5nIHRoaXMuCi0gKi8KLSNpZmRl ZiBIQVZFX1hTQVZFX0lOVFJJTlNJQ1MKLXBnX2F0dHJpYnV0ZV90YXJnZXQoInhzYXZlIikKLSNl bmRpZgogc3RhdGljIGJvb2wKLXptbV9yZWdzX2F2YWlsYWJsZSh2b2lkKQorbWFza19hdmFpbGFi bGUodWludDMyIHZhbHVlLCB1aW50MzIgbWFzaykKIHsKLSNpZmRlZiBIQVZFX1hTQVZFX0lOVFJJ TlNJQ1MKLQlyZXR1cm4gKF94Z2V0YnYoMCkgJiAweGU2KSA9PSAweGU2OwotI2Vsc2UKLQlyZXR1 cm4gZmFsc2U7Ci0jZW5kaWYKKwlyZXR1cm4gKHZhbHVlICYgbWFzaykgPT0gbWFzazsKIH0KIAog LyoKICAqIFBhcnNlIHRoZSBDUFUgSUQgaW5mbyBmb3IgcnVudGltZSBjaGVja3MuCiAgKi8KKyNp ZmRlZiBIQVZFX1hTQVZFX0lOVFJJTlNJQ1MKK3BnX2F0dHJpYnV0ZV90YXJnZXQoInhzYXZlIikK KyNlbmRpZgogdm9pZAogc2V0X3g4Nl9mZWF0dXJlcyh2b2lkKQogewpAQCAtNzUsMjIgKzcyLDI5 IEBAIHNldF94ODZfZmVhdHVyZXModm9pZCkKIAkvKiBBbGwgdGhlc2UgZmVhdHVyZXMgZGVwZW5k IG9uIE9TWFNBVkUgKi8KIAlpZiAoZXh4WzJdICYgKDEgPDwgMjcpKQogCXsKLQkJLyogc2Vjb25k IGNwdWlkIGNhbGwgb24gbGVhZiA3IHRvIGNoZWNrIGV4dGVuZGVkIEFWWC01MTIgc3VwcG9ydCAq LworCQl1aW50MzIJCXhjcjBfdmFsID0gMDsKIAorCQkvKiBzZWNvbmQgY3B1aWQgY2FsbCBvbiBs ZWFmIDcgdG8gY2hlY2sgZXh0ZW5kZWQgQVZYLTUxMiBzdXBwb3J0ICovCiAJCW1lbXNldChleHgs IDAsIDQgKiBzaXplb2YoZXh4WzBdKSk7Ci0KICNpZiBkZWZpbmVkKEhBVkVfX0dFVF9DUFVJRF9D T1VOVCkKIAkJX19nZXRfY3B1aWRfY291bnQoNywgMCwgJmV4eFswXSwgJmV4eFsxXSwgJmV4eFsy XSwgJmV4eFszXSk7CiAjZWxpZiBkZWZpbmVkKEhBVkVfX0NQVUlERVgpCiAJCV9fY3B1aWRleChl eHgsIDcsIDApOwogI2VuZGlmCiAKLQkJaWYgKHptbV9yZWdzX2F2YWlsYWJsZSgpKQorI2lmZGVm IEhBVkVfWFNBVkVfSU5UUklOU0lDUworCQkvKiBnZXQgdmFsdWUgb2YgRXh0ZW5kZWQgQ29udHJv bCBSZWdpc3RlciAqLworCQl4Y3IwX3ZhbCA9IF94Z2V0YnYoMCk7CisjZW5kaWYKKworCQkvKiBB cmUgWk1NIHJlZ2lzdGVyZXMgZW5hYmxlZD8gKi8KKwkJaWYgKG1hc2tfYXZhaWxhYmxlKHhjcjBf dmFsLCBYTU0gfCBZTU0gfAorCQkJCQkJICAgT1BNQVNLIHwgWk1NMF8xNSB8IFpNTTE2XzMxKSkK IAkJewogCQkJWDg2RmVhdHVyZXNbUEdfQVZYNTEyX0JXXSA9IGV4eFsxXSA+PiAzMCAmIDE7CiAJ CQlYODZGZWF0dXJlc1tQR19BVlg1MTJfVkxdID0gZXh4WzFdID4+IDMxICYgMTsKIAotCQkJWDg2 RmVhdHVyZXNbUEdfVlBDTE1VTFFEUV0gPSBleHhbMl0gPj4gMTAgJiAxOworCQkJWDg2RmVhdHVy ZXNbUEdfQVZYNTEyX1ZQQ0xNVUxRRFFdID0gZXh4WzJdID4+IDEwICYgMTsKIAkJCVg4NkZlYXR1 cmVzW1BHX0FWWDUxMl9WUE9QQ05URFFdID0gZXh4WzJdID4+IDE0ICYgMTsKIAkJfQogCX0KZGlm ZiAtLWdpdCBhL3NyYy9wb3J0L3BnX2NyYzMyY19zc2U0Mi5jIGIvc3JjL3BvcnQvcGdfY3JjMzJj X3NzZTQyLmMKaW5kZXggMmU3NDBlMTJhN2EuLmQxZDlkNzRlNWFiIDEwMDY0NAotLS0gYS9zcmMv cG9ydC9wZ19jcmMzMmNfc3NlNDIuYworKysgYi9zcmMvcG9ydC9wZ19jcmMzMmNfc3NlNDIuYwpA QCAtMTc5LDcgKzE3OSw3IEBAIHBnX2NvbXBfY3JjMzJjX2Nob29zZShwZ19jcmMzMmMgY3JjLCBj b25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQogCiAjaWZkZWYgVVNFX0FWWDUxMl9DUkMzMkNf V0lUSF9SVU5USU1FX0NIRUNLCiAJaWYgKHg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19BVlg1MTJf VkwpICYmCi0JCXg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19WUENMTVVMUURRKSkKKwkJeDg2X2Zl YXR1cmVfYXZhaWxhYmxlKFBHX0FWWDUxMl9WUENMTVVMUURRKSkKIAkJcGdfY29tcF9jcmMzMmMg PSBwZ19jb21wX2NyYzMyY19hdng1MTI7CiAjZW5kaWYKIAotLSAKMi41My4wCgo= --00000000000037d145064b04db1f--