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 1vt30W-00HFGI-0u for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Feb 2026 12:19:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vt30U-003X7t-2f for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Feb 2026 12:19:46 +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 1vt30U-003X7j-1N for pgsql-hackers@lists.postgresql.org; Thu, 19 Feb 2026 12:19:46 +0000 Received: from mail-qt1-x841.google.com ([2607:f8b0:4864:20::841]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vt30Q-000000008Wg-2WKk for pgsql-hackers@lists.postgresql.org; Thu, 19 Feb 2026 12:19:45 +0000 Received: by mail-qt1-x841.google.com with SMTP id d75a77b69052e-506a67282a0so7685961cf.0 for ; Thu, 19 Feb 2026 04:19:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771503581; cv=none; d=google.com; s=arc-20240605; b=BEAj0zWNxqdttg5cc7L+hdOx1tZBrqOh8xzE0GKMqChsfnMb2TA4Wk7DEmEMPBefJn jtaP3CYFXZBpEsLjcgFuBK63FNWohK3ENs4RZMQHEe85gtVhbmfXrqAbbcycnirgs5j9 DWTXj+pPPNt30HcCy99NZFrQtxzPZy+QQ6W9KvQwD/Do24A2bY68bid3VQcRhZT0bGRo 9upD2D+J9ayHR/zX9LMNoezGVobDbH1nsOXZndwscWJSlqi1zJdZWsuz0peyEs+do7vG 3fe1WQPUWeIVuoNKJ8bHCA6yZgGBahMOxMiZYMbbhLzFu0he/SwtZYGOKx1JXyGEW1SQ n10w== 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=X6n5yHUF8NciH2uGFFrmqP8G2AwKCFq2n5HO9BZhteg=; fh=QkA/aEdX91S/8F/qJ99Id6ajqeoUK7xG9EWRL8z3yR4=; b=KFU/3DrYG9WgLMFeJw4KL3hrVgO7DVHqOlGkohYybeOkwDM7lSgvRh+pDwQYcNVrAS w49Tgm9kzOU7a2Pof7wAnls3RLjzBpX/IA2ysbxcdwwDgoILI3OXiCo+AVRfqbYtf+UN h20RtcYD3ojsCIAI5BqRCABiYJUoq5MKBJZY3mpEDigLnPh+cJglCp0HRNqWUdpukmxQ ySJ2lmqQJS4ox/cqu+ZzDxw1PWy7TRTQ66wRLM317zQHIrtMxrabOPOsDeJwakW7Y8Qy P0IDXWvqt7BLG+q4F2y2ASkgHQyM2cPe3TzJrVh1a/8hG8WkIh9flsIsNin0pVyZWlnB 2lbg==; 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=1771503581; x=1772108381; 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=X6n5yHUF8NciH2uGFFrmqP8G2AwKCFq2n5HO9BZhteg=; b=g6r4mWCYaNire3FfbXZhEa73eR7lCmBBWgNlW38vlkY0FExInWg/d30NdsRDXTv8SO 52m6lNw54YgnQ3IQUWJMsMZwtMAwR0ZHpQq6GPEFmTjzeU6e7spjC6+HBBpzz++cCkfJ Hha2oYCXk/xADniqaFuSTeh62yCURZVmeyzR1n3n5BOyhkAY4GMF5/GTahiGQv2oEMg/ 2xikh/lJRDp7f3juNaEefnWG5bB5leh4/kJCrPo3dG3KRAAjFLp7cHz83H+4QFehT7WS rlTDTHUX4TA4MppDaog/42z2yzO9HSRNXy/HgYkKu6SbtiotDzdR3F+CT2A5xD+9ID5H EaoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771503581; x=1772108381; 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=X6n5yHUF8NciH2uGFFrmqP8G2AwKCFq2n5HO9BZhteg=; b=G3rIacPGjif8bx4CQBfd9F5C0udiIX//+n+JolN7/GpU72ZXDPrq7Z5bWoAFIOJCqr LFS8WyvMbaiva61UUXQWufE7c5kUSOxzp+mStB19aP4Ie71ahuw22FqnOAQKNAl5rdLl h73pNb+0xMZokpt0D8L7nrFfIJ0+LMNyj7sy5XkI/YrUwEJv4jl90nBbXJ2F4yFahi2q LeRdsJZ7RETf8A1PjyvaxfuRS/e1QAYs55Dvn0U78OQYhkGukogwc0JvvJGC7vuqB5x2 esFymtX2ZiRsqqN8yOZC/y8qF2X7Vo9Jh1cQkb7SJNWlA4uyOWKFzxnq/Su3Bo3BbFBk XOqg== X-Gm-Message-State: AOJu0YzdnTFOwQuDblm+sIG8oyAmTg2PEKhj55bi6u+GTsBQvFLwi/Kd FULDQUG0EHvsBXRiIUiCKpVWQPhtsR6XiJW6mlyICDaoOIOQKvp1ojGpq4NI8IC/FQ98XmkD193 /seqAIZeUZcE4ThshTr8EdLnwjs9WftI= X-Gm-Gg: AZuq6aJnZmVwmZtrlppMwWHhRxGWP75zNEE8egOJesL7KFrBIPrSjkp69Qoy/7N+bP+ bzbjzFjQcuZEH+H7yI0x0difwzGLSbqs1W5h2Ip1MMdznWDFFpYc4Klta/4/5Ak4wv97ovW1c7U bABMTi3xnsfh1m3GQw/T+7cirktiU8dVTBjAzuIKwYTzPpwnTLclsaPpYqCn+Zql5EQWHi10DQF RFTIAC/v6B6zrLHPAiXoOkBAbPbSs7a7AyZBW8CGL9uUCagQoGnfRUTeFK6kS9GLsAHpnK3ibAr QccNUHe/y8O0XFOUqmhuEFa4tC+Y0pb5Wz2kTwmtP+OJM1NQeFreQKrTC4+MMwwacCICFW3bN34 GMW//ij1uP0uWUz76pavGZqSTQF8= X-Received: by 2002:a05:622a:143:b0:501:44a7:ad50 with SMTP id d75a77b69052e-506e918fc96mr62649461cf.26.1771503581161; Thu, 19 Feb 2026 04:19:41 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: John Naylor Date: Thu, 19 Feb 2026 19:19:30 +0700 X-Gm-Features: AaiRm51VYjtudY7WJ0P7t0Mbn_hqmOUP2jwNEZUaRbIiEWK39MdMuLADuhOgZbk Message-ID: Subject: Re: centralize CPU feature detection To: Zsolt Parragi Cc: PostgreSQL Hackers , root , Nathan Bossart Content-Type: multipart/mixed; boundary="000000000000ad5efd064b2c5127" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ad5efd064b2c5127 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Feb 19, 2026 at 1:47=E2=80=AFAM Zsolt Parragi wrote: > > > 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. > > That makes sense, and simplifies the usage of the header. (However, > the include guard still refers to the old name) Oops, fixed. > > 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. > > Yes, that could work too. But reserving the lowercase "init" symbol in > a very generic header seems like a bad idea (especially for a use case > that isn't used globally), even if Postgres itself doesn't use the > symbol for anything else. "INIT" at least would be unlikely to > conflict with something else. Still seems pretty generic, so I went with INIT_PG_X86. I've also made a quick attempt at Arm support just to make sure I didn't paint myself into a corner (v4-0005-6), and it compiles and passes tests on a Debian aarch64 system with gcc 8.3. I'll put that aside for later. v4-0001-3 are still the main focus now, and seem in decent shape, maybe needs a bit more polish. (not to mention formal commit messages) -- John Naylor Amazon Web Services --000000000000ad5efd064b2c5127 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0002-Centralize-detection-of-CPU-features.patch" Content-Disposition: attachment; filename="v4-0002-Centralize-detection-of-CPU-features.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mltf768u1 RnJvbSA0ODBmYzFhZDhlZThlMGM1Y2VjZmQwZWE3MzQ4Yjg3N2ZlYjc3OTQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFRodSwgMTIgRmViIDIwMjYgMTI6NDU6MjMgKzA3MDAKU3ViamVjdDogW1BBVENI IHY0IDIvNl0gQ2VudHJhbGl6ZSBkZXRlY3Rpb24gb2YgQ1BVIGZlYXR1cmVzCgpXSVA6IHg4NiBv bmx5Ci0tLQogc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaCAgfCA1MCArKysrKysrKysrKysrKysr KysrKysKIHNyYy9wb3J0L3BnX2NwdV94ODYuYyAgICAgIHwgNjIgKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0KIHNyYy9wb3J0L3BnX2NyYzMyY19zc2U0Mi5jIHwgMjggKysrKysrKysrKysrCiBz cmMvcG9ydC9wZ19wb3Bjb3VudF94ODYuYyB8IDkxICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCAxMjQgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaAoK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BvcnQvcGdfY3B1LmggYi9zcmMvaW5jbHVkZS9wb3J0 L3BnX2NwdS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jOWUwM2Qw MTZlOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL3BvcnQvcGdfY3B1LmgKQEAgLTAs MCArMSw1MCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY3B1LmgKKyAqCSAgUnVu dGltZSBDUFUgZmVhdHVyZSBkZXRlY3Rpb24KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaAorICoKKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICovCisjaWZuZGVmIFBHX0NQVV9ICisjZGVmaW5lIFBHX0NQVV9ICisKKyNpZiBk ZWZpbmVkKFVTRV9TU0UyKSB8fCBkZWZpbmVkKF9faTM4Nl9fKQorCit0eXBlZGVmIGVudW0gWDg2 RmVhdHVyZUlkCit7CisJLyogSGF2ZSB3ZSBydW4gZmVhdHVyZSBkZXRlY3Rpb24/ICovCisJSU5J VF9QR19YODYsCisKKwkvKiBzY2FsYXIgYW5kIDEyOC1iaXQgcmVnaXN0ZXJzICovCisJUEdfU1NF NF8yLAorCVBHX1BPUENOVCwKKworCS8qIDUxMi1iaXQgcmVnaXN0ZXJzICovCisJUEdfQVZYNTEy X0JXLAorCVBHX0FWWDUxMl9WTCwKKwlQR19BVlg1MTJfVlBDTE1VTFFEUSwKKwlQR19BVlg1MTJf VlBPUENOVERRLAorfQkJCVg4NkZlYXR1cmVJZDsKKyNkZWZpbmUgWDg2RmVhdHVyZXNTaXplIChQ R19BVlg1MTJfVlBPUENOVERRICsgMSkKKworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgWDg2RmVh dHVyZXNbXTsKKworZXh0ZXJuIHZvaWQgc2V0X3g4Nl9mZWF0dXJlcyh2b2lkKTsKKworc3RhdGlj IGlubGluZSBib29sCit4ODZfZmVhdHVyZV9hdmFpbGFibGUoWDg2RmVhdHVyZUlkIGZlYXR1cmUp Cit7CisJaWYgKFg4NkZlYXR1cmVzW0lOSVRfUEdfWDg2XSA9PSBmYWxzZSkKKwkJc2V0X3g4Nl9m ZWF0dXJlcygpOworCisJcmV0dXJuIFg4NkZlYXR1cmVzW2ZlYXR1cmVdOworfQorCisjZW5kaWYJ CQkJCQkJLyogZGVmaW5lZChVU0VfU1NFMikgfHwgZGVmaW5lZChfX2kzODZfXykgKi8KKworI2Vu ZGlmCQkJCQkJCS8qIFBHX0NQVV9IICovCmRpZmYgLS1naXQgYS9zcmMvcG9ydC9wZ19jcHVfeDg2 LmMgYi9zcmMvcG9ydC9wZ19jcHVfeDg2LmMKaW5kZXggOTk4YTcwZmZhNDEuLjcyNWJkMWY2OGM4 IDEwMDY0NAotLS0gYS9zcmMvcG9ydC9wZ19jcHVfeDg2LmMKKysrIGIvc3JjL3BvcnQvcGdfY3B1 X3g4Ni5jCkBAIC0xLDEyICsxLDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqIHBnX2Nw dV94ODYuYwotICoJICBDaG9vc2UgYmV0d2VlbiBJbnRlbCBTU0UgNC4yIGFuZCBzb2Z0d2FyZSBD UkMtMzJDIGltcGxlbWVudGF0aW9uLgotICoKLSAqIE9uIGZpcnN0IGNhbGwsIGNoZWNrcyBpZiB0 aGUgQ1BVIHdlJ3JlIHJ1bm5pbmcgb24gc3VwcG9ydHMgSW50ZWwgU1NFCi0gKiA0LjIuIElmIGl0 IGRvZXMsIHVzZSB0aGUgc3BlY2lhbCBTU0UgaW5zdHJ1Y3Rpb25zIGZvciBDUkMtMzJDCi0gKiBj b21wdXRhdGlvbi4gT3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gdGhlIHB1cmUgc29mdHdhcmUgaW1w bGVtZW50YXRpb24KLSAqIChzbGljaW5nLWJ5LTgpLgorICoJICBSdW50aW1lIENQVSBmZWF0dXJl IGRldGVjdGlvbiBmb3IgeDg2CiAgKgogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIw MjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQpA QCAtMzQsNyArMjksMTAgQEAKICNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KICNlbmRpZgogCi0jaW5j bHVkZSAicG9ydC9wZ19jcmMzMmMuaCIKKyNpbmNsdWRlICJwb3J0L3BnX2NwdS5oIgorCisKK2Jv b2wJCVg4NkZlYXR1cmVzW1g4NkZlYXR1cmVzU2l6ZV0gPSB7MH07CiAKIC8qCiAgKiBEb2VzIFhH RVRCViBzYXkgdGhlIFpNTSByZWdpc3RlcnMgYXJlIGVuYWJsZWQ/CkBAIC01NiwyMiArNTQsMTMg QEAgem1tX3JlZ3NfYXZhaWxhYmxlKHZvaWQpCiB9CiAKIC8qCi0gKiBUaGlzIGdldHMgY2FsbGVk IG9uIHRoZSBmaXJzdCBjYWxsLiBJdCByZXBsYWNlcyB0aGUgZnVuY3Rpb24gcG9pbnRlcgotICog c28gdGhhdCBzdWJzZXF1ZW50IGNhbGxzIGFyZSByb3V0ZWQgZGlyZWN0bHkgdG8gdGhlIGNob3Nl biBpbXBsZW1lbnRhdGlvbi4KKyAqIFBhcnNlIHRoZSBDUFUgSUQgaW5mbyBmb3IgcnVudGltZSBj aGVja3MuCiAgKi8KLXN0YXRpYyBwZ19jcmMzMmMKLXBnX2NvbXBfY3JjMzJjX2Nob29zZShwZ19j cmMzMmMgY3JjLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQordm9pZAorc2V0X3g4Nl9m ZWF0dXJlcyh2b2lkKQogewogCXVuc2lnbmVkIGludCBleHhbNF0gPSB7MCwgMCwgMCwgMH07CiAK LQkvKgotCSAqIFNldCBmYWxsYmFjay4gV2UgbXVzdCBndWFyZCBzaW5jZSBzbGljaW5nLWJ5LTgg aXMgbm90IHZpc2libGUKLQkgKiBldmVyeXdoZXJlLgotCSAqLwotI2lmZGVmIFVTRV9TU0U0Ml9D UkMzMkNfV0lUSF9SVU5USU1FX0NIRUNLCi0JcGdfY29tcF9jcmMzMmMgPSBwZ19jb21wX2NyYzMy Y19zYjg7Ci0jZW5kaWYKLQogI2lmIGRlZmluZWQoSEFWRV9fR0VUX0NQVUlEKQogCV9fZ2V0X2Nw dWlkKDEsICZleHhbMF0sICZleHhbMV0sICZleHhbMl0sICZleHhbM10pOwogI2VsaWYgZGVmaW5l ZChIQVZFX19DUFVJRCkKQEAgLTgwLDM0ICs2OSwzMyBAQCBwZ19jb21wX2NyYzMyY19jaG9vc2Uo cGdfY3JjMzJjIGNyYywgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKICNlcnJvciBjcHVp ZCBpbnN0cnVjdGlvbiBub3QgYXZhaWxhYmxlCiAjZW5kaWYKIAotCWlmICgoZXh4WzJdICYgKDEg PDwgMjApKSAhPSAwKQkvKiBTU0UgNC4yICovCi0JewotCQlwZ19jb21wX2NyYzMyYyA9IHBnX2Nv bXBfY3JjMzJjX3NzZTQyOworCVg4NkZlYXR1cmVzW1BHX1NTRTRfMl0gPSBleHhbMl0gPj4gMjAg JiAxOworCVg4NkZlYXR1cmVzW1BHX1BPUENOVF0gPSBleHhbMl0gPj4gMjMgJiAxOwogCi0JCWlm IChleHhbMl0gJiAoMSA8PCAyNykgJiYJLyogT1NYU0FWRSAqLwotCQkJem1tX3JlZ3NfYXZhaWxh YmxlKCkpCi0JCXsKLQkJCS8qIHNlY29uZCBjcHVpZCBjYWxsIG9uIGxlYWYgNyB0byBjaGVjayBl eHRlbmRlZCBBVlgtNTEyIHN1cHBvcnQgKi8KKwkvKiBBbGwgdGhlc2UgZmVhdHVyZXMgZGVwZW5k IG9uIE9TWFNBVkUgKi8KKwlpZiAoZXh4WzJdICYgKDEgPDwgMjcpKQorCXsKKwkJLyogc2Vjb25k IGNwdWlkIGNhbGwgb24gbGVhZiA3IHRvIGNoZWNrIGV4dGVuZGVkIEFWWC01MTIgc3VwcG9ydCAq LwogCi0JCQltZW1zZXQoZXh4LCAwLCA0ICogc2l6ZW9mKGV4eFswXSkpOworCQltZW1zZXQoZXh4 LCAwLCA0ICogc2l6ZW9mKGV4eFswXSkpOwogCiAjaWYgZGVmaW5lZChIQVZFX19HRVRfQ1BVSURf Q09VTlQpCi0JCQlfX2dldF9jcHVpZF9jb3VudCg3LCAwLCAmZXh4WzBdLCAmZXh4WzFdLCAmZXh4 WzJdLCAmZXh4WzNdKTsKKwkJX19nZXRfY3B1aWRfY291bnQoNywgMCwgJmV4eFswXSwgJmV4eFsx XSwgJmV4eFsyXSwgJmV4eFszXSk7CiAjZWxpZiBkZWZpbmVkKEhBVkVfX0NQVUlERVgpCi0JCQlf X2NwdWlkZXgoZXh4LCA3LCAwKTsKKwkJX19jcHVpZGV4KGV4eCwgNywgMCk7CiAjZW5kaWYKIAot I2lmZGVmIFVTRV9BVlg1MTJfQ1JDMzJDX1dJVEhfUlVOVElNRV9DSEVDSwotCQkJaWYgKGV4eFsy XSAmICgxIDw8IDEwKSAmJgkvKiBWUENMTVVMUURRICovCi0JCQkJZXh4WzFdICYgKDEgPDwgMzEp KSAvKiBBVlg1MTItVkwgKi8KLQkJCQlwZ19jb21wX2NyYzMyYyA9IHBnX2NvbXBfY3JjMzJjX2F2 eDUxMjsKLSNlbmRpZgorCQlpZiAoem1tX3JlZ3NfYXZhaWxhYmxlKCkpCisJCXsKKwkJCVg4NkZl YXR1cmVzW1BHX0FWWDUxMl9CV10gPSBleHhbMV0gPj4gMzAgJiAxOworCQkJWDg2RmVhdHVyZXNb UEdfQVZYNTEyX1ZMXSA9IGV4eFsxXSA+PiAzMSAmIDE7CisKKwkJCVg4NkZlYXR1cmVzW1BHX1ZQ Q0xNVUxRRFFdID0gZXh4WzJdID4+IDEwICYgMTsKKwkJCVg4NkZlYXR1cmVzW1BHX0FWWDUxMl9W UE9QQ05URFFdID0gZXh4WzJdID4+IDE0ICYgMTsKIAkJfQogCX0KIAotCXJldHVybiBwZ19jb21w X2NyYzMyYyhjcmMsIGRhdGEsIGxlbik7CisJWDg2RmVhdHVyZXNbSU5JVF9QR19YODZdID0gdHJ1 ZTsKIH0KIAotcGdfY3JjMzJjCSgqcGdfY29tcF9jcmMzMmMpIChwZ19jcmMzMmMgY3JjLCBjb25z dCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKSA9IHBnX2NvbXBfY3JjMzJjX2Nob29zZTsKLQogI2Vu ZGlmCQkJCQkJCS8qIGRlZmluZWQoVVNFX1NTRTIpIHx8IGRlZmluZWQoX19pMzg2X18pICovCmRp ZmYgLS1naXQgYS9zcmMvcG9ydC9wZ19jcmMzMmNfc3NlNDIuYyBiL3NyYy9wb3J0L3BnX2NyYzMy Y19zc2U0Mi5jCmluZGV4IGMxMjc5ZDMxZmJkLi4yZTc0MGUxMmE3YSAxMDA2NDQKLS0tIGEvc3Jj L3BvcnQvcGdfY3JjMzJjX3NzZTQyLmMKKysrIGIvc3JjL3BvcnQvcGdfY3JjMzJjX3NzZTQyLmMK QEAgLTIwLDYgKzIwLDkgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAicG9ydC9wZ19jcmMzMmMuaCIK KyNpbmNsdWRlICJwb3J0L3BnX2NwdS5oIgorCitzdGF0aWMgcGdfY3JjMzJjIHBnX2NvbXBfY3Jj MzJjX2Nob29zZShwZ19jcmMzMmMgY3JjLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKTsK IAogcGdfYXR0cmlidXRlX25vX3Nhbml0aXplX2FsaWdubWVudCgpCiBwZ19hdHRyaWJ1dGVfdGFy Z2V0KCJzc2U0LjIiKQpAQCAtMTU5LDMgKzE2MiwyOCBAQCBwZ19jb21wX2NyYzMyY19hdng1MTIo cGdfY3JjMzJjIGNyYywgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKIH0KIAogI2VuZGlm CisKK3N0YXRpYyBwZ19jcmMzMmMKK3BnX2NvbXBfY3JjMzJjX2Nob29zZShwZ19jcmMzMmMgY3Jj LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQoreworCS8qCisJICogU2V0IGZhbGxiYWNr LiBXZSBtdXN0IGd1YXJkIHNpbmNlIHNsaWNpbmctYnktOCBpcyBub3QgdmlzaWJsZQorCSAqIGV2 ZXJ5d2hlcmUuCisJICovCisjaWZkZWYgVVNFX1NTRTQyX0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hF Q0sKKwlwZ19jb21wX2NyYzMyYyA9IHBnX2NvbXBfY3JjMzJjX3NiODsKKyNlbmRpZgorCisJaWYg KHg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19TU0U0XzIpKQorCQlwZ19jb21wX2NyYzMyYyA9IHBn X2NvbXBfY3JjMzJjX3NzZTQyOworCisjaWZkZWYgVVNFX0FWWDUxMl9DUkMzMkNfV0lUSF9SVU5U SU1FX0NIRUNLCisJaWYgKHg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19BVlg1MTJfVkwpICYmCisJ CXg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19WUENMTVVMUURRKSkKKwkJcGdfY29tcF9jcmMzMmMg PSBwZ19jb21wX2NyYzMyY19hdng1MTI7CisjZW5kaWYKKworCXJldHVybiBwZ19jb21wX2NyYzMy YyhjcmMsIGRhdGEsIGxlbik7Cit9OworCitwZ19jcmMzMmMJKCpwZ19jb21wX2NyYzMyYykgKHBn X2NyYzMyYyBjcmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pID0gcGdfY29tcF9jcmMz MmNfY2hvb3NlOwpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcGdfcG9wY291bnRfeDg2LmMgYi9zcmMv cG9ydC9wZ19wb3Bjb3VudF94ODYuYwppbmRleCA2YmNlMDg5NDMyZi4uYTk5NjEzZjE4MTggMTAw NjQ0Ci0tLSBhL3NyYy9wb3J0L3BnX3BvcGNvdW50X3g4Ni5jCisrKyBiL3NyYy9wb3J0L3BnX3Bv cGNvdW50X3g4Ni5jCkBAIC0xNCwxOSArMTQsMTIgQEAKIAogI2lmZGVmIEhBVkVfWDg2XzY0X1BP UENOVFEKIAotI2lmIGRlZmluZWQoSEFWRV9fR0VUX0NQVUlEKSB8fCBkZWZpbmVkKEhBVkVfX0dF VF9DUFVJRF9DT1VOVCkKLSNpbmNsdWRlIDxjcHVpZC5oPgotI2VuZGlmCi0KICNpZmRlZiBVU0Vf QVZYNTEyX1BPUENOVF9XSVRIX1JVTlRJTUVfQ0hFQ0sKICNpbmNsdWRlIDxpbW1pbnRyaW4uaD4K ICNlbmRpZgogCi0jaWYgZGVmaW5lZChIQVZFX19DUFVJRCkgfHwgZGVmaW5lZChIQVZFX19DUFVJ REVYKQotI2luY2x1ZGUgPGludHJpbi5oPgotI2VuZGlmCi0KICNpbmNsdWRlICJwb3J0L3BnX2Jp dHV0aWxzLmgiCisjaW5jbHVkZSAicG9ydC9wZ19jcHUuaCIKIAogLyoKICAqIFRoZSBTU0U0LjIg dmVyc2lvbnMgYXJlIGJ1aWx0IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB3ZSBhcmUgYnVpbGRpbmcg dGhlCkBAIC01OCw4NCArNTEsOSBAQCBzdGF0aWMgdWludDY0IHBnX3BvcGNvdW50X21hc2tlZF9j aG9vc2UoY29uc3QgY2hhciAqYnVmLCBpbnQgYnl0ZXMsIGJpdHM4IG1hc2spOwogdWludDY0CQko KnBnX3BvcGNvdW50X29wdGltaXplZCkgKGNvbnN0IGNoYXIgKmJ1ZiwgaW50IGJ5dGVzKSA9IHBn X3BvcGNvdW50X2Nob29zZTsKIHVpbnQ2NAkJKCpwZ19wb3Bjb3VudF9tYXNrZWRfb3B0aW1pemVk KSAoY29uc3QgY2hhciAqYnVmLCBpbnQgYnl0ZXMsIGJpdHM4IG1hc2spID0gcGdfcG9wY291bnRf bWFza2VkX2Nob29zZTsKIAotLyoKLSAqIFJldHVybiB0cnVlIGlmIENQVUlEIGluZGljYXRlcyB0 aGF0IHRoZSBQT1BDTlQgaW5zdHJ1Y3Rpb24gaXMgYXZhaWxhYmxlLgotICovCi1zdGF0aWMgYm9v bAotcGdfcG9wY291bnRfc3NlNDJfYXZhaWxhYmxlKHZvaWQpCi17Ci0JdW5zaWduZWQgaW50IGV4 eFs0XSA9IHswLCAwLCAwLCAwfTsKLQotI2lmIGRlZmluZWQoSEFWRV9fR0VUX0NQVUlEKQotCV9f Z2V0X2NwdWlkKDEsICZleHhbMF0sICZleHhbMV0sICZleHhbMl0sICZleHhbM10pOwotI2VsaWYg ZGVmaW5lZChIQVZFX19DUFVJRCkKLQlfX2NwdWlkKGV4eCwgMSk7Ci0jZWxzZQotI2Vycm9yIGNw dWlkIGluc3RydWN0aW9uIG5vdCBhdmFpbGFibGUKLSNlbmRpZgotCi0JcmV0dXJuIChleHhbMl0g JiAoMSA8PCAyMykpICE9IDA7CS8qIFBPUENOVCAqLwotfQogCiAjaWZkZWYgVVNFX0FWWDUxMl9Q T1BDTlRfV0lUSF9SVU5USU1FX0NIRUNLCiAKLS8qCi0gKiBEb2VzIENQVUlEIHNheSB0aGVyZSdz IHN1cHBvcnQgZm9yIFhTQVZFIGluc3RydWN0aW9ucz8KLSAqLwotc3RhdGljIGlubGluZSBib29s Ci14c2F2ZV9hdmFpbGFibGUodm9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgZXh4WzRdID0gezAsIDAs IDAsIDB9OwotCi0jaWYgZGVmaW5lZChIQVZFX19HRVRfQ1BVSUQpCi0JX19nZXRfY3B1aWQoMSwg JmV4eFswXSwgJmV4eFsxXSwgJmV4eFsyXSwgJmV4eFszXSk7Ci0jZWxpZiBkZWZpbmVkKEhBVkVf X0NQVUlEKQotCV9fY3B1aWQoZXh4LCAxKTsKLSNlbHNlCi0jZXJyb3IgY3B1aWQgaW5zdHJ1Y3Rp b24gbm90IGF2YWlsYWJsZQotI2VuZGlmCi0JcmV0dXJuIChleHhbMl0gJiAoMSA8PCAyNykpICE9 IDA7CS8qIG9zeHNhdmUgKi8KLX0KLQotLyoKLSAqIERvZXMgWEdFVEJWIHNheSB0aGUgWk1NIHJl Z2lzdGVycyBhcmUgZW5hYmxlZD8KLSAqCi0gKiBOQjogQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZv ciB2ZXJpZnlpbmcgdGhhdCB4c2F2ZV9hdmFpbGFibGUoKSByZXR1cm5zIHRydWUKLSAqIGJlZm9y ZSBjYWxsaW5nIHRoaXMuCi0gKi8KLSNpZmRlZiBIQVZFX1hTQVZFX0lOVFJJTlNJQ1MKLXBnX2F0 dHJpYnV0ZV90YXJnZXQoInhzYXZlIikKLSNlbmRpZgotc3RhdGljIGlubGluZSBib29sCi16bW1f cmVnc19hdmFpbGFibGUodm9pZCkKLXsKLSNpZmRlZiBIQVZFX1hTQVZFX0lOVFJJTlNJQ1MKLQly ZXR1cm4gKF94Z2V0YnYoMCkgJiAweGU2KSA9PSAweGU2OwotI2Vsc2UKLQlyZXR1cm4gZmFsc2U7 Ci0jZW5kaWYKLX0KLQotLyoKLSAqIERvZXMgQ1BVSUQgc2F5IHRoZXJlJ3Mgc3VwcG9ydCBmb3Ig QVZYLTUxMiBwb3Bjb3VudCBhbmQgYnl0ZS1hbmQtd29yZAotICogaW5zdHJ1Y3Rpb25zPwotICov Ci1zdGF0aWMgaW5saW5lIGJvb2wKLWF2eDUxMl9wb3BjbnRfYXZhaWxhYmxlKHZvaWQpCi17Ci0J dW5zaWduZWQgaW50IGV4eFs0XSA9IHswLCAwLCAwLCAwfTsKLQotI2lmIGRlZmluZWQoSEFWRV9f R0VUX0NQVUlEX0NPVU5UKQotCV9fZ2V0X2NwdWlkX2NvdW50KDcsIDAsICZleHhbMF0sICZleHhb MV0sICZleHhbMl0sICZleHhbM10pOwotI2VsaWYgZGVmaW5lZChIQVZFX19DUFVJREVYKQotCV9f Y3B1aWRleChleHgsIDcsIDApOwotI2Vsc2UKLSNlcnJvciBjcHVpZCBpbnN0cnVjdGlvbiBub3Qg YXZhaWxhYmxlCi0jZW5kaWYKLQlyZXR1cm4gKGV4eFsyXSAmICgxIDw8IDE0KSkgIT0gMCAmJiAv KiBhdng1MTItdnBvcGNudGRxICovCi0JCShleHhbMV0gJiAoMSA8PCAzMCkpICE9IDA7CS8qIGF2 eDUxMi1idyAqLwotfQotCiAvKgogICogUmV0dXJucyB0cnVlIGlmIHRoZSBDUFUgc3VwcG9ydHMg dGhlIGluc3RydWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFWWC01MTIKICAqIHBnX3BvcGNvdW50 KCkgaW1wbGVtZW50YXRpb24uCkBAIC0xNDMsOSArNjEsOCBAQCBhdng1MTJfcG9wY250X2F2YWls YWJsZSh2b2lkKQogc3RhdGljIGJvb2wKIHBnX3BvcGNvdW50X2F2eDUxMl9hdmFpbGFibGUodm9p ZCkKIHsKLQlyZXR1cm4geHNhdmVfYXZhaWxhYmxlKCkgJiYKLQkJem1tX3JlZ3NfYXZhaWxhYmxl KCkgJiYKLQkJYXZ4NTEyX3BvcGNudF9hdmFpbGFibGUoKTsKKwlyZXR1cm4geDg2X2ZlYXR1cmVf YXZhaWxhYmxlKFBHX0FWWDUxMl9CVykgJiYKKwkJeDg2X2ZlYXR1cmVfYXZhaWxhYmxlKFBHX0FW WDUxMl9WUE9QQ05URFEpOwogfQogCiAjZW5kaWYJCQkJCQkJLyogVVNFX0FWWDUxMl9QT1BDTlRf V0lUSF9SVU5USU1FX0NIRUNLICovCkBAIC0xNTksNyArNzYsNyBAQCBwZ19wb3Bjb3VudF9hdng1 MTJfYXZhaWxhYmxlKHZvaWQpCiBzdGF0aWMgaW5saW5lIHZvaWQKIGNob29zZV9wb3Bjb3VudF9m dW5jdGlvbnModm9pZCkKIHsKLQlpZiAocGdfcG9wY291bnRfc3NlNDJfYXZhaWxhYmxlKCkpCisJ aWYgKHg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19QT1BDTlQpKQogCXsKIAkJcGdfcG9wY291bnRf b3B0aW1pemVkID0gcGdfcG9wY291bnRfc3NlNDI7CiAJCXBnX3BvcGNvdW50X21hc2tlZF9vcHRp bWl6ZWQgPSBwZ19wb3Bjb3VudF9tYXNrZWRfc3NlNDI7Ci0tIAoyLjUzLjAKCg== --000000000000ad5efd064b2c5127 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0001-Rename-CRC-choose-files-for-future-general-purpos.patch" Content-Disposition: attachment; filename="v4-0001-Rename-CRC-choose-files-for-future-general-purpos.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mltf768g0 RnJvbSA3ZWE0NDZjNmNmNzljN2Y1OTI0YjYwMWI5ZTEwZDBkZTJjMDY5YzE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFdlZCwgMTEgRmViIDIwMjYgMTQ6MzQ6MTggKzA3MDAKU3ViamVjdDogW1BBVENI IHY0IDEvNl0gUmVuYW1lIENSQyAiY2hvb3NlIiBmaWxlcyBmb3IgZnV0dXJlIGdlbmVyYWwgcHVy 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 --000000000000ad5efd064b2c5127 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0003-Refactor-the-detection-of-ZMM-registers.patch" Content-Disposition: attachment; filename="v4-0003-Refactor-the-detection-of-ZMM-registers.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mltf76932 RnJvbSAwM2U2ZmRkNDVmNGE5YmMxYmQwNDVmZWZmMmVlMzk1YzQ1Y2M5YTg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IEZyaSwgMTMgRmViIDIwMjYgMTg6MTE6MzkgKzA3MDAKU3ViamVjdDogW1BBVENI IHY0IDMvNl0gUmVmYWN0b3IgdGhlIGRldGVjdGlvbiBvZiBaTU0gcmVnaXN0ZXJzCgotIENhbGwg X3hnZXRidiB3aXRoaW4geDg2X3NldF9ydW50aW1lX2ZlYXR1cmVzIHJhdGhlciB0aGFuIGluIGEK ICBzZXBhcmF0ZSBmdW5jdGlvbgotIFVzZSBzeW1ib2xzIGZvciBYQ1IgbWFzayBiaXRzIHJhdGhl ciB0aGFuIGEgbWFnaWMgY29uc3RhbnQKCkEgZnV0dXJlIGNvbW1pdCB3aWxsIGJ1aWxkIG9uIHRo aXMgdG8gZGV0ZWN0IFlNTSByZWdpc3RlcnMgd2l0aG91dApjb2RlIGR1cGxpY2F0aW9uLgotLS0K IHNyYy9wb3J0L3BnX2NwdV94ODYuYyAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0KIHNyYy9wb3J0L3BnX2NyYzMyY19zc2U0Mi5jIHwgIDIgKy0KIDIgZmls ZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jIGIvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCmluZGV4IDcy NWJkMWY2OGM4Li45YjQ2MmIxODZiOCAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5j 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= --000000000000ad5efd064b2c5127 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0004-Enable-autovectorizing-page-checksums-with-AVX2-w.patch" Content-Disposition: attachment; filename="v4-0004-Enable-autovectorizing-page-checksums-with-AVX2-w.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mltf769b3 RnJvbSAzZDE4NmJjOGJlMjE4YzYwOWZmOTAwNWQ4OGVhNjIyMmIzYWY0NDQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFNhdCwgMTQgRmViIDIwMjYgMTk6MDE6MzQgKzA3MDAKU3ViamVjdDogW1BBVENI IHY0IDQvNl0gRW5hYmxlIGF1dG92ZWN0b3JpemluZyBwYWdlIGNoZWNrc3VtcyB3aXRoIEFWWDIg 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 Y2x1ZGUvcG9ydC9wZ19jcHUuaAppbmRleCBjOWUwM2QwMTZlOS4uM2M3MGZkNDNhMjMgMTAwNjQ0 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 L3BvcnQvcGdfY3B1X3g4Ni5jCmluZGV4IDliNDYyYjE4NmI4Li5hNDhjMzlhZGU5OCAxMDA2NDQK 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 --000000000000ad5efd064b2c5127 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0005-Rename-CRC-Arm-v8-choose-file-for-future-general-.patch" Content-Disposition: attachment; filename="v4-0005-Rename-CRC-Arm-v8-choose-file-for-future-general-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mltf769j4 RnJvbSA1OGQxYjQ5NWFmYzA3OTFiNmFiNGRmYWE0MjFjZWUyYmMwOWQ1MzU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFRodSwgMTkgRmViIDIwMjYgMTU6MDQ6MzUgKzA3MDAKU3ViamVjdDogW1BBVENI IHY0IDUvNl0gUmVuYW1lIENSQyBBcm0tdjggImNob29zZSIgZmlsZSBmb3IgZnV0dXJlIGdlbmVy YWwKIHB1cnBvc2UKCi0tLQogY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAyICstCiBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIHNyYy9wb3J0L01ha2VmaWxlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMSArCiBzcmMvcG9ydC9tZXNvbi5idWlsZCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgKwogc3JjL3BvcnQve3BnX2NyYzMyY19h cm12OF9jaG9vc2UuYyA9PiBwZ19jcHVfYXJtdjguY30gfCA4ICsrKysrKy0tCiA1IGZpbGVzIGNo YW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiByZW5hbWUgc3JjL3BvcnQv e3BnX2NyYzMyY19hcm12OF9jaG9vc2UuYyA9PiBwZ19jcHVfYXJtdjguY30gKDk1JSkKCmRpZmYg LS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggMmQyYzYzMDgwMDUuLmVjNzYyNzhm OWMxIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xODI2Niw3ICsx ODI2Niw3IEBAICRhc19lY2hvICJBUk12OCBDUkMgaW5zdHJ1Y3Rpb25zIiA+JjY7IH0KIAogJGFz X2VjaG8gIiNkZWZpbmUgVVNFX0FSTVY4X0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hFQ0sgMSIgPj5j b25mZGVmcy5oCiAKLSAgICAgICAgUEdfQ1JDMzJDX09CSlM9InBnX2NyYzMyY19hcm12OC5vIHBn X2NyYzMyY19zYjgubyBwZ19jcmMzMmNfYXJtdjhfY2hvb3NlLm8iCisgICAgICAgIFBHX0NSQzMy Q19PQkpTPSJwZ19jcmMzMmNfYXJtdjgubyBwZ19jcmMzMmNfc2I4Lm8iCiAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBBUk12OCBDUkMgaW5z dHJ1Y3Rpb25zIHdpdGggcnVudGltZSBjaGVjayIgPiY1CiAkYXNfZWNobyAiQVJNdjggQ1JDIGlu c3RydWN0aW9ucyB3aXRoIHJ1bnRpbWUgY2hlY2siID4mNjsgfQogICAgICAgZWxzZQpkaWZmIC0t Z2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDBiNGMzOTcwYjY4Li41YTM5 NzFiYWQ2MyAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAt MjI2OSw3ICsyMjY5LDcgQEAgZWxzZQogICAgIGVsc2UKICAgICAgIGlmIHRlc3QgeCIkVVNFX0FS TVY4X0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hFQ0siID0geCIxIjsgdGhlbgogICAgICAgICBBQ19E RUZJTkUoVVNFX0FSTVY4X0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hFQ0ssIDEsIFtEZWZpbmUgdG8g MSB0byB1c2UgQVJNdjggQ1JDIEV4dGVuc2lvbiB3aXRoIGEgcnVudGltZSBjaGVjay5dKQotICAg ICAgICBQR19DUkMzMkNfT0JKUz0icGdfY3JjMzJjX2FybXY4Lm8gcGdfY3JjMzJjX3NiOC5vIHBn X2NyYzMyY19hcm12OF9jaG9vc2UubyIKKyAgICAgICAgUEdfQ1JDMzJDX09CSlM9InBnX2NyYzMy Y19hcm12OC5vIHBnX2NyYzMyY19zYjgubyIKICAgICAgICAgQUNfTVNHX1JFU1VMVChBUk12OCBD UkMgaW5zdHJ1Y3Rpb25zIHdpdGggcnVudGltZSBjaGVjaykKICAgICAgIGVsc2UKICAgICAgICAg aWYgdGVzdCB4IiRVU0VfTE9PTkdBUkNIX0NSQzMyQyIgPSB4IjEiOyB0aGVuCmRpZmYgLS1naXQg YS9zcmMvcG9ydC9NYWtlZmlsZSBiL3NyYy9wb3J0L01ha2VmaWxlCmluZGV4IDQ3Y2ZlYTE1MDdk Li40ZWQ3ZTE5MDJmYiAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvTWFrZWZpbGUKKysrIGIvc3JjL3Bv cnQvTWFrZWZpbGUKQEAgLTQ0LDYgKzQ0LDcgQEAgT0JKUyA9IFwKIAlub2Jsb2NrLm8gXAogCXBh dGgubyBcCiAJcGdfYml0dXRpbHMubyBcCisJcGdfY3B1X2FybXY4Lm8gXAogCXBnX2NwdV94ODYu byBcCiAJcGdfbG9jYWxlY29udl9yLm8gXAogCXBnX251bWEubyBcCmRpZmYgLS1naXQgYS9zcmMv cG9ydC9tZXNvbi5idWlsZCBiL3NyYy9wb3J0L21lc29uLmJ1aWxkCmluZGV4IGVkYjJlNTYzMmJk Li4wYjI2MjE4YmU3YSAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvbWVzb24uYnVpbGQKKysrIGIvc3Jj L3BvcnQvbWVzb24uYnVpbGQKQEAgLTcsNiArNyw3IEBAIHBncG9ydF9zb3VyY2VzID0gWwogICAn bm9ibG9jay5jJywKICAgJ3BhdGguYycsCiAgICdwZ19iaXR1dGlscy5jJywKKyAgJ3BnX2NwdV9h cm12OC5jJywKICAgJ3BnX2NwdV94ODYuYycsCiAgICdwZ19sb2NhbGVjb252X3IuYycsCiAgICdw Z19udW1hLmMnLApkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcGdfY3JjMzJjX2FybXY4X2Nob29zZS5j IGIvc3JjL3BvcnQvcGdfY3B1X2FybXY4LmMKc2ltaWxhcml0eSBpbmRleCA5NSUKcmVuYW1lIGZy b20gc3JjL3BvcnQvcGdfY3JjMzJjX2FybXY4X2Nob29zZS5jCnJlbmFtZSB0byBzcmMvcG9ydC9w Z19jcHVfYXJtdjguYwppbmRleCBhMWYwZTU0MGM2Yi4uNmMyMjcwNGI1ZmEgMTAwNjQ0Ci0tLSBh L3NyYy9wb3J0L3BnX2NyYzMyY19hcm12OF9jaG9vc2UuYworKysgYi9zcmMvcG9ydC9wZ19jcHVf YXJtdjguYwpAQCAtMSw2ICsxLDYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIHBnX2Ny YzMyY19hcm12OF9jaG9vc2UuYworICogcGdfY3B1X2FybXY4LmMKICAqCSAgQ2hvb3NlIGJldHdl ZW4gQVJNdjggYW5kIHNvZnR3YXJlIENSQy0zMkMgaW1wbGVtZW50YXRpb24uCiAgKgogICogT24g Zmlyc3QgY2FsbCwgY2hlY2tzIGlmIHRoZSBDUFUgd2UncmUgcnVubmluZyBvbiBzdXBwb3J0cyB0 aGUgQVJNdjgKQEAgLTEzLDcgKzEzLDcgQEAKICAqCiAgKgogICogSURFTlRJRklDQVRJT04KLSAq CSAgc3JjL3BvcnQvcGdfY3JjMzJjX2FybXY4X2Nob29zZS5jCisgKgkgIHNyYy9wb3J0L3BnX2Nw dV9hcm12OC5jCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KQEAgLTI0LDYgKzI0LDggQEAK ICNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKF9fYXJtX18p IHx8IGRlZmluZWQoX19hcm0pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCisKICNpZiBkZWZpbmVk KEhBVkVfRUxGX0FVWF9JTkZPKSB8fCBkZWZpbmVkKEhBVkVfR0VUQVVYVkFMKQogI2luY2x1ZGUg PHN5cy9hdXh2Lmg+CiAvKiBBbmNpZW50IGdsaWJjIHJlbGVhc2VzIGRvbid0IGluY2x1ZGUgdGhl IEhXQ0FQeHh4IG1hY3JvcyBpbiBzeXMvYXV4di5oICovCkBAIC0xMjQsMyArMTI2LDUgQEAgcGdf Y29tcF9jcmMzMmNfY2hvb3NlKHBnX2NyYzMyYyBjcmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVf dCBsZW4pCiB9CiAKIHBnX2NyYzMyYwkoKnBnX2NvbXBfY3JjMzJjKSAocGdfY3JjMzJjIGNyYywg Y29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikgPSBwZ19jb21wX2NyYzMyY19jaG9vc2U7CisK KyNlbmRpZiAgICAgIC8qIF9fYXJtX18gfHwgX19hcm0gfHwgX19hYXJjaDY0X18gKi8KLS0gCjIu NTMuMAoK --000000000000ad5efd064b2c5127 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0006-Centralize-detection-of-CPU-features-Arm-take-1.patch" Content-Disposition: attachment; filename="v4-0006-Centralize-detection-of-CPU-features-Arm-take-1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mltf769q5 RnJvbSBhM2U5YTEzMDJkNzEwZjlmYTZjNDg1OTQxNDRhODJmZTBjMzk4OGQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFRodSwgMTkgRmViIDIwMjYgMTg6Mjc6MDIgKzA3MDAKU3ViamVjdDogW1BBVENI IHY0IDYvNl0gQ2VudHJhbGl6ZSBkZXRlY3Rpb24gb2YgQ1BVIGZlYXR1cmVzIEFybSwgdGFrZSAx CgotLS0KIHNyYy9pbmNsdWRlL3BvcnQvcGdfY3B1LmggICAgICB8IDI1ICsrKysrKysrKysrKwog c3JjL3BvcnQvcGdfY3B1X2FybXY4LmMgICAgICAgIHwgNzQgKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLQogc3JjL3BvcnQvcGdfY3JjMzJjX2FybXY4LmMgICAgIHwgMjAgKysrKysr KysrCiBzcmMvcG9ydC9wZ19wb3Bjb3VudF9hYXJjaDY0LmMgfCAyNiArLS0tLS0tLS0tLS0KIDQg ZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaCBiL3NyYy9pbmNsdWRlL3BvcnQvcGdfY3B1 LmgKaW5kZXggM2M3MGZkNDNhMjMuLjM2ODdlMDI1MDgzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wb3J0L3BnX2NwdS5oCisrKyBiL3NyYy9pbmNsdWRlL3BvcnQvcGdfY3B1LmgKQEAgLTQ4LDYg KzQ4LDMxIEBAIHg4Nl9mZWF0dXJlX2F2YWlsYWJsZShYODZGZWF0dXJlSWQgZmVhdHVyZSkKIAly ZXR1cm4gWDg2RmVhdHVyZXNbZmVhdHVyZV07CiB9CiAKKyNlbGlmIGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX2FybSkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKwordHlwZWRlZiBlbnVt IEFybUZlYXR1cmVJZAoreworCS8qIEhhdmUgd2UgcnVuIGZlYXR1cmUgZGV0ZWN0aW9uPyAqLwor CUlOSVRfUEdfQVJNLAorCisJUEdfQVJNX0NSQzMyLAorCVBHX0FSTV9TVkUsCit9CQkJQXJtRmVh dHVyZUlkOworI2RlZmluZSBBcm1GZWF0dXJlc1NpemUgKFBHX0FSTV9TVkUgKyAxKQorCitleHRl cm4gUEdETExJTVBPUlQgYm9vbCBBcm1GZWF0dXJlc1tdOworCitleHRlcm4gdm9pZCBzZXRfYXJt X2ZlYXR1cmVzKHZvaWQpOworCitzdGF0aWMgaW5saW5lIGJvb2wKK2FybV9mZWF0dXJlX2F2YWls YWJsZShBcm1GZWF0dXJlSWQgZmVhdHVyZSkKK3sKKwlpZiAoQXJtRmVhdHVyZXNbSU5JVF9QR19B Uk1dID09IGZhbHNlKQorCQlzZXRfYXJtX2ZlYXR1cmVzKCk7CisKKwlyZXR1cm4gQXJtRmVhdHVy ZXNbZmVhdHVyZV07Cit9CisKICNlbmRpZgkJCQkJCQkvKiBkZWZpbmVkKFVTRV9TU0UyKSB8fCBk ZWZpbmVkKF9faTM4Nl9fKSAqLwogCiAjZW5kaWYJCQkJCQkJLyogUEdfQ1BVX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9wb3J0L3BnX2NwdV9hcm12OC5jIGIvc3JjL3BvcnQvcGdfY3B1X2FybXY4LmMK aW5kZXggNmMyMjcwNGI1ZmEuLjU5YTkyMjliNzFkIDEwMDY0NAotLS0gYS9zcmMvcG9ydC9wZ19j cHVfYXJtdjguYworKysgYi9zcmMvcG9ydC9wZ19jcHVfYXJtdjguYwpAQCAtMSwxMiArMSw3IEBA CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBwZ19jcHVfYXJtdjguYwotICoJICBDaG9vc2Ug YmV0d2VlbiBBUk12OCBhbmQgc29mdHdhcmUgQ1JDLTMyQyBpbXBsZW1lbnRhdGlvbi4KLSAqCi0g KiBPbiBmaXJzdCBjYWxsLCBjaGVja3MgaWYgdGhlIENQVSB3ZSdyZSBydW5uaW5nIG9uIHN1cHBv cnRzIHRoZSBBUk12OAotICogQ1JDIEV4dGVuc2lvbi4gSWYgaXQgZG9lcywgdXNlIHRoZSBzcGVj aWFsIGluc3RydWN0aW9ucyBmb3IgQ1JDLTMyQwotICogY29tcHV0YXRpb24uIE90aGVyd2lzZSwg ZmFsbCBiYWNrIHRvIHRoZSBwdXJlIHNvZnR3YXJlIGltcGxlbWVudGF0aW9uCi0gKiAoc2xpY2lu Zy1ieS04KS4KKyAqCSAgUnVudGltZSBDUFUgZmVhdHVyZSBkZXRlY3Rpb24gZm9yIEFybS12OAog ICoKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKQEAgLTQxLDI3ICszNiw0MSBAQAog I2VuZGlmCiAjZW5kaWYKIAotI2luY2x1ZGUgInBvcnQvcGdfY3JjMzJjLmgiCisjaW5jbHVkZSAi cG9ydC9wZ19jcHUuaCIKKworCitib29sCQlBcm1GZWF0dXJlc1tBcm1GZWF0dXJlc1NpemVdID0g ezB9OwogCi1zdGF0aWMgYm9vbAotcGdfY3JjMzJjX2FybXY4X2F2YWlsYWJsZSh2b2lkKQorc3Rh dGljIGlubGluZSB1bnNpZ25lZCBsb25nCitwZ19nZXRhdXh2YWwodW5zaWduZWQgbG9uZyBhdF9o d2NhcCkKIHsKICNpZiBkZWZpbmVkKEhBVkVfRUxGX0FVWF9JTkZPKQogCXVuc2lnbmVkIGxvbmcg dmFsdWU7CiAKLSNpZmRlZiBfX2FhcmNoNjRfXwotCXJldHVybiBlbGZfYXV4X2luZm8oQVRfSFdD QVAsICZ2YWx1ZSwgc2l6ZW9mKHZhbHVlKSkgPT0gMCAmJgotCQkodmFsdWUgJiBIV0NBUF9DUkMz MikgIT0gMDsKLSNlbHNlCi0JcmV0dXJuIGVsZl9hdXhfaW5mbyhBVF9IV0NBUDIsICZ2YWx1ZSwg c2l6ZW9mKHZhbHVlKSkgPT0gMCAmJgotCQkodmFsdWUgJiBIV0NBUDJfQ1JDMzIpICE9IDA7Ci0j ZW5kaWYKKwlpZiAoZWxmX2F1eF9pbmZvKGF0X2h3Y2FwLCAmdmFsdWUsIHNpemVvZih2YWx1ZSkp ID09IDApCisJCXJldHVybiB2YWx1ZTsKKwllbHNlCisJCXJldHVybiAwOwogI2VsaWYgZGVmaW5l ZChIQVZFX0dFVEFVWFZBTCkKKwlyZXR1cm4gZ2V0YXV4dmFsKGF0X2h3Y2FwKTsKKyNlbmRpZgor fQorCit2b2lkCitzZXRfYXJtX2ZlYXR1cmVzKHZvaWQpCit7CisjaWYgSEFWRV9HRVRBVVhWQUwg fHwgSEFWRV9FTEZfQVVYX0lORk8KICNpZmRlZiBfX2FhcmNoNjRfXwotCXJldHVybiAoZ2V0YXV4 dmFsKEFUX0hXQ0FQKSAmIEhXQ0FQX0NSQzMyKSAhPSAwOworCXVuc2lnbmVkIGxvbmcgaHdjYXAg PSBwZ19nZXRhdXh2YWwoQVRfSFdDQVApOworCisJQXJtRmVhdHVyZXNbUEdfQVJNX0NSQzMyXSA9 IChod2NhcCAmIEhXQ0FQX0NSQzMyKSAhPSAwOworCUFybUZlYXR1cmVzW1BHX0FSTV9TVkVdID0g KGh3Y2FwICYgSFdDQVBfU1ZFKSAhPSAwOwogI2Vsc2UKLQlyZXR1cm4gKGdldGF1eHZhbChBVF9I V0NBUDIpICYgSFdDQVAyX0NSQzMyKSAhPSAwOworCXVuc2lnbmVkIGxvbmcgaHdjYXAyID0gcGdf Z2V0YXV4dmFsKEFUX0hXQ0FQMik7CisKKwlBcm1GZWF0dXJlc1tQR19BUk1fQ1JDMzJdID0gKGh3 Y2FwMiAmIEhXQ0FQMl9DUkMzMikgIT0gMDsKICNlbmRpZgorCiAjZWxpZiBkZWZpbmVkKF9fTmV0 QlNEX18pCiAJLyoKIAkgKiBPbiBOZXRCU0Qgd2UgY2FuIHJlYWQgdGhlIEluc3RydWN0aW9uIFNl dCBBdHRyaWJ1dGUgUmVnaXN0ZXJzIHZpYQpAQCAtOTIsOSArMTAxLDkgQEAgcGdfY3JjMzJjX2Fy bXY4X2F2YWlsYWJsZSh2b2lkKQogCWxlbiA9IHNpemVvZihzeXNjdGxidWYpOwogCW1lbXNldChz eXNjdGxidWYsIDAsIGxlbik7CiAJaWYgKHN5c2N0bGJ5bmFtZShwYXRoLCBzeXNjdGxidWYsICZs ZW4sIE5VTEwsIDApICE9IDApCi0JCXJldHVybiBmYWxzZTsJCQkvKiBwZXJoYXBzIGtlcm5lbCBp cyA2NC1iaXQgYW5kIHdlIGFyZW4ndD8gKi8KKwkJcmV0dXJuOwkJCQkJLyogcGVyaGFwcyBrZXJu ZWwgaXMgNjQtYml0IGFuZCB3ZSBhcmVuJ3Q/ICovCiAJaWYgKGxlbiAhPSBleHBlY3RlZF9sZW4p Ci0JCXJldHVybiBmYWxzZTsJCQkvKiBrZXJuZWwgQVBJIGNoYW5nZT8gKi8KKwkJcmV0dXJuOwkJ CQkJLyoga2VybmVsIEFQSSBjaGFuZ2U/ICovCiAKIAkvKiBGZXRjaCB0aGUgQ1JDMzIgZmllbGQg ZnJvbSBJU0FSMC4gKi8KIAlmbGQgPSAoSVNBUjAgPj4gSVNBUjBfQ1JDMzJfQklUUE9TKSAmIFdJ RFRITUFTSyhJU0FSMF9DUkMzMl9CSVRXSURUSCk7CkBAIC0xMDQsMjcgKzExMywxMCBAQCBwZ19j cmMzMmNfYXJtdjhfYXZhaWxhYmxlKHZvaWQpCiAJICogKENSQzMyQi9DUkMzMkgvQ1JDMzJXL0NS QzMyWC9DUkMzMkNCL0NSQzMyQ0gvQ1JDMzJDVy9DUkMzMkNYKS4gIEFzc3VtZQogCSAqIHRoYXQg YW55IGZ1dHVyZSBub256ZXJvIHZhbHVlIHdpbGwgYmUgYSBzdXBlcnNldCBvZiAxLgogCSAqLwot CXJldHVybiAoZmxkICE9IDApOwotI2Vsc2UKLQlyZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KKwlB cm1GZWF0dXJlc1tQR19BUk1fQ1JDMzJdID0gKGZsZCAhPSAwKTsKKyNlbmRpZgkJCQkJCQkvKiBf X05ldEJTRF9fICovCiAKLS8qCi0gKiBUaGlzIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBjYWxs LiBJdCByZXBsYWNlcyB0aGUgZnVuY3Rpb24gcG9pbnRlcgotICogc28gdGhhdCBzdWJzZXF1ZW50 IGNhbGxzIGFyZSByb3V0ZWQgZGlyZWN0bHkgdG8gdGhlIGNob3NlbiBpbXBsZW1lbnRhdGlvbi4K LSAqLwotc3RhdGljIHBnX2NyYzMyYwotcGdfY29tcF9jcmMzMmNfY2hvb3NlKHBnX2NyYzMyYyBj cmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pCi17Ci0JaWYgKHBnX2NyYzMyY19hcm12 OF9hdmFpbGFibGUoKSkKLQkJcGdfY29tcF9jcmMzMmMgPSBwZ19jb21wX2NyYzMyY19hcm12ODsK LQllbHNlCi0JCXBnX2NvbXBfY3JjMzJjID0gcGdfY29tcF9jcmMzMmNfc2I4OwotCi0JcmV0dXJu IHBnX2NvbXBfY3JjMzJjKGNyYywgZGF0YSwgbGVuKTsKKwlBcm1GZWF0dXJlc1tJTklUX1BHX0FS TV0gPSB0cnVlOwogfQogCi1wZ19jcmMzMmMJKCpwZ19jb21wX2NyYzMyYykgKHBnX2NyYzMyYyBj cmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pID0gcGdfY29tcF9jcmMzMmNfY2hvb3Nl OwotCi0jZW5kaWYgICAgICAvKiBfX2FybV9fIHx8IF9fYXJtIHx8IF9fYWFyY2g2NF9fICovCisj ZW5kaWYJCQkJCQkJLyogX19hcm1fXyB8fCBfX2FybSB8fCBfX2FhcmNoNjRfXyAqLwpkaWZmIC0t Z2l0IGEvc3JjL3BvcnQvcGdfY3JjMzJjX2FybXY4LmMgYi9zcmMvcG9ydC9wZ19jcmMzMmNfYXJt djguYwppbmRleCA5Y2EwZjcyOGQzOS4uYTAyMjY0YTAwZGMgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0 L3BnX2NyYzMyY19hcm12OC5jCisrKyBiL3NyYy9wb3J0L3BnX2NyYzMyY19hcm12OC5jCkBAIC0y MCw4ICsyMCwxMSBAQAogI2luY2x1ZGUgPGFybV9hY2xlLmg+CiAjZW5kaWYKIAorI2luY2x1ZGUg InBvcnQvcGdfY3B1LmgiCiAjaW5jbHVkZSAicG9ydC9wZ19jcmMzMmMuaCIKIAorc3RhdGljIHBn X2NyYzMyYyBwZ19jb21wX2NyYzMyY19jaG9vc2UocGdfY3JjMzJjIGNyYywgY29uc3Qgdm9pZCAq ZGF0YSwgc2l6ZV90IGxlbik7CisKIHBnX2NyYzMyYwogcGdfY29tcF9jcmMzMmNfYXJtdjgocGdf Y3JjMzJjIGNyYywgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKIHsKQEAgLTc3LDMgKzgw LDIwIEBAIHBnX2NvbXBfY3JjMzJjX2FybXY4KHBnX2NyYzMyYyBjcmMsIGNvbnN0IHZvaWQgKmRh dGEsIHNpemVfdCBsZW4pCiAKIAlyZXR1cm4gY3JjOwogfQorCisvKgorICogVGhpcyBnZXRzIGNh bGxlZCBvbiB0aGUgZmlyc3QgY2FsbC4gSXQgcmVwbGFjZXMgdGhlIGZ1bmN0aW9uIHBvaW50ZXIK KyAqIHNvIHRoYXQgc3Vic2VxdWVudCBjYWxscyBhcmUgcm91dGVkIGRpcmVjdGx5IHRvIHRoZSBj aG9zZW4gaW1wbGVtZW50YXRpb24uCisgKi8KK3N0YXRpYyBwZ19jcmMzMmMKK3BnX2NvbXBfY3Jj MzJjX2Nob29zZShwZ19jcmMzMmMgY3JjLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQor eworCWlmIChhcm1fZmVhdHVyZV9hdmFpbGFibGUoUEdfQVJNX0NSQzMyKSkKKwkJcGdfY29tcF9j cmMzMmMgPSBwZ19jb21wX2NyYzMyY19hcm12ODsKKwllbHNlCisJCXBnX2NvbXBfY3JjMzJjID0g cGdfY29tcF9jcmMzMmNfc2I4OworCisJcmV0dXJuIHBnX2NvbXBfY3JjMzJjKGNyYywgZGF0YSwg bGVuKTsKK30KKworcGdfY3JjMzJjCSgqcGdfY29tcF9jcmMzMmMpIChwZ19jcmMzMmMgY3JjLCBj b25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKSA9IHBnX2NvbXBfY3JjMzJjX2Nob29zZTsKZGlm ZiAtLWdpdCBhL3NyYy9wb3J0L3BnX3BvcGNvdW50X2FhcmNoNjQuYyBiL3NyYy9wb3J0L3BnX3Bv cGNvdW50X2FhcmNoNjQuYwppbmRleCBmNDc0ZWY0NTUxMC4uMzdhZGZmNjdjZTggMTAwNjQ0Ci0t LSBhL3NyYy9wb3J0L3BnX3BvcGNvdW50X2FhcmNoNjQuYworKysgYi9zcmMvcG9ydC9wZ19wb3Bj b3VudF9hYXJjaDY0LmMKQEAgLTE4LDE3ICsxOCwxMCBAQAogCiAjaWZkZWYgVVNFX1NWRV9QT1BD TlRfV0lUSF9SVU5USU1FX0NIRUNLCiAjaW5jbHVkZSA8YXJtX3N2ZS5oPgotCi0jaWYgZGVmaW5l ZChIQVZFX0VMRl9BVVhfSU5GTykgfHwgZGVmaW5lZChIQVZFX0dFVEFVWFZBTCkKLSNpbmNsdWRl IDxzeXMvYXV4di5oPgotLyogQW5jaWVudCBnbGliYyByZWxlYXNlcyBkb24ndCBpbmNsdWRlIHRo ZSBIV0NBUHh4eCBtYWNyb3MgaW4gc3lzL2F1eHYuaCAqLwotI2lmIGRlZmluZWQoX19saW51eF9f KSAmJiAhZGVmaW5lZChIV0NBUF9TVkUpCi0jaW5jbHVkZSA8YXNtL2h3Y2FwLmg+Ci0jZW5kaWYK LSNlbmRpZgogI2VuZGlmCiAKICNpbmNsdWRlICJwb3J0L3BnX2JpdHV0aWxzLmgiCisjaW5jbHVk ZSAicG9ydC9wZ19jcHUuaCIKIAogLyoKICAqIFRoZSBOZW9uIHZlcnNpb25zIGFyZSBidWlsdCBy ZWdhcmRsZXNzIG9mIHdoZXRoZXIgd2UgYXJlIGJ1aWxkaW5nIHRoZSBTVkUKQEAgLTU2LDI1ICs0 OSwxMCBAQCBzdGF0aWMgdWludDY0IHBnX3BvcGNvdW50X21hc2tlZF9jaG9vc2UoY29uc3QgY2hh ciAqYnVmLCBpbnQgYnl0ZXMsIGJpdHM4IG1hc2spOwogdWludDY0CQkoKnBnX3BvcGNvdW50X29w dGltaXplZCkgKGNvbnN0IGNoYXIgKmJ1ZiwgaW50IGJ5dGVzKSA9IHBnX3BvcGNvdW50X2Nob29z ZTsKIHVpbnQ2NAkJKCpwZ19wb3Bjb3VudF9tYXNrZWRfb3B0aW1pemVkKSAoY29uc3QgY2hhciAq YnVmLCBpbnQgYnl0ZXMsIGJpdHM4IG1hc2spID0gcGdfcG9wY291bnRfbWFza2VkX2Nob29zZTsK IAotc3RhdGljIGlubGluZSBib29sCi1wZ19wb3Bjb3VudF9zdmVfYXZhaWxhYmxlKHZvaWQpCi17 Ci0jaWZkZWYgSEFWRV9FTEZfQVVYX0lORk8KLQl1bnNpZ25lZCBsb25nIHZhbHVlOwotCi0JcmV0 dXJuIGVsZl9hdXhfaW5mbyhBVF9IV0NBUCwgJnZhbHVlLCBzaXplb2YodmFsdWUpKSA9PSAwICYm Ci0JCSh2YWx1ZSAmIEhXQ0FQX1NWRSkgIT0gMDsKLSNlbGlmIGRlZmluZWQoSEFWRV9HRVRBVVhW QUwpCi0JcmV0dXJuIChnZXRhdXh2YWwoQVRfSFdDQVApICYgSFdDQVBfU1ZFKSAhPSAwOwotI2Vs c2UKLQlyZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogc3RhdGljIGlubGluZSB2b2lkCiBjaG9v c2VfcG9wY291bnRfZnVuY3Rpb25zKHZvaWQpCiB7Ci0JaWYgKHBnX3BvcGNvdW50X3N2ZV9hdmFp bGFibGUoKSkKKwlpZiAoYXJtX2ZlYXR1cmVfYXZhaWxhYmxlKFBHX0FSTV9TVkUpKQogCXsKIAkJ cGdfcG9wY291bnRfb3B0aW1pemVkID0gcGdfcG9wY291bnRfc3ZlOwogCQlwZ19wb3Bjb3VudF9t YXNrZWRfb3B0aW1pemVkID0gcGdfcG9wY291bnRfbWFza2VkX3N2ZTsKLS0gCjIuNTMuMAoK --000000000000ad5efd064b2c5127--