Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tD1iW-00FGqj-SY for pgsql-hackers@arkaria.postgresql.org; Mon, 18 Nov 2024 13:23:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tD1iS-0052Q4-Kc for pgsql-hackers@arkaria.postgresql.org; Mon, 18 Nov 2024 13:22:57 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tD1iR-0052Pw-Ra for pgsql-hackers@lists.postgresql.org; Mon, 18 Nov 2024 13:22:56 +0000 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tD1iO-002WPS-Qr for pgsql-hackers@lists.postgresql.org; Mon, 18 Nov 2024 13:22:54 +0000 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-5cfbae4e65dso167395a12.1 for ; Mon, 18 Nov 2024 05:22:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731936170; x=1732540970; 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=5RuzCJfJ6qcSvjzUMmBVKoa47Z6o0DyQwWQiFlh0g9E=; b=kdDN0EoupJEuFqrSL6QDeXc0EUkFODWX59QCrCDHJe3rqwYKCdG1/viGnYcay+UcYf 8pMKnyKnr8seb0fKmiponhxdBguYRbNI6PliHdj3VdjIUupKYfjwdhT//27HSgQ0VyRB /ncjaLEZTc+He+L6LsI9UyYxVoK1LUfZncGWudgY35XqjVG6oiFTvDQgWt0r/DuYzqoN 22ke7ysYQWiUVqNKc8XpN/JadEVodwcITMsr5J4TtzMcpS4+mnCC/a5AVNyi2xuNatX9 BbMOjN15fCmatWJ7ivBtyPKttjEq7fhJH47nryPllNGfppulaBA4WdmZ8UMRSNDuZsuz qn7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731936170; x=1732540970; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5RuzCJfJ6qcSvjzUMmBVKoa47Z6o0DyQwWQiFlh0g9E=; b=VSssVfpWlpWOHfNxIvYGTMNhnpPItCIkUBULr2tulkASQ0CPoP34kpQBu6wF1nKjhF HVuzZGrJhhY08gLPjTaRKep3usOBmaBuTNS1veRvVx0pliQDpRMJ+W4DoyjEiC2To4Gg mCaZG3It5z5qZdX478yYPwzuuJwcjCSHuAxx1rsW1MFN6+Pzd1J6ofne45k0t4lcOmeG 8WlGH91a7a+4cPeXmUG5x7Hs/q85cjCYb5mkD2PrXBl4n8aIwMWdyC0EANMkT5/XEqNk FPSmGLla/RxcwFFmu3aLqz+4HXuOOm5FCXrZhtdCHiyFFnAcwEnk7gMdj1ujgl8um0G4 hC1Q== X-Forwarded-Encrypted: i=1; AJvYcCVSC315SzJWPCld1+vfbRGkqNFtzQ3SPhzFJDIBGmyameb9NIwW0cMwEusnLRFFqU7VcsZJgS3pMOcckvYJ@lists.postgresql.org X-Gm-Message-State: AOJu0Yz8gvB9kQD4VrhfvEKM45DyoWA1cK7F0JWIsQyJ6LjvY4LXicRL imosXfUNwCThH3VY8mDMkA+yDQSPLGC2jcA4AMKF5+iFlNVR9tlJ6cHRxSuRHvYNFbKR2YFaKoC gkpBMDDkf+4p05qWF+0iyrXOzw3x9x/IY X-Google-Smtp-Source: AGHT+IGJ8lQDFZB5LpRmXKq1IGEtRkTRzLpE4DiMKvTl3CzBk72Hx1CLMpTMS4UcMENbYK8nNkx6XCXnK/4hKXz7aUc= X-Received: by 2002:a05:6402:5241:b0:5cf:cc32:82f2 with SMTP id 4fb4d7f45d1cf-5cfcc328b1dmr801912a12.5.1731936170084; Mon, 18 Nov 2024 05:22:50 -0800 (PST) MIME-Version: 1.0 References: <5ecc35f5-1111-47fc-8a02-36d89490a50d@iki.fi> <24b3deb6-a732-4256-847a-560f4bf39d59@iki.fi> In-Reply-To: From: Maxim Orlov Date: Mon, 18 Nov 2024 16:22:38 +0300 Message-ID: Subject: Re: POC: make mxidoff 64 bits To: Heikki Linnakangas Cc: wenhui qiu , Alexander Korotkov , Postgres hackers Content-Type: multipart/mixed; boundary="000000000000322ad806272fd08e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000322ad806272fd08e Content-Type: multipart/alternative; boundary="000000000000322ad606272fd08c" --000000000000322ad606272fd08c Content-Type: text/plain; charset="UTF-8" Shame on me! I've sent an erroneous patch set. Version 7 is defective. Here is the proper version v8 with minor refactoring in segresize.c. Also, I rename bump cat version patch into txt in order not to break cfbot. -- Best regards, Maxim Orlov. --000000000000322ad606272fd08c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Shame on me! I've sent an erroneous patch set. Ve= rsion 7 is=C2=A0defective. Here is the proper version v8 with minor refacto= ring in segresize.c.

Also, I rename bump cat versi= on patch into txt in order not to break cfbot.

--
Best regards,
Maxim Orlov.
<= /div>
--000000000000322ad606272fd08c-- --000000000000322ad806272fd08e Content-Type: text/plain; charset="US-ASCII"; name="v8-0005-TEST-bump-catver.patch.txt" Content-Disposition: attachment; filename="v8-0005-TEST-bump-catver.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3n20vpt7 RnJvbSA3M2I4NjYzMDkzZmYxYzU4ZGVmOWE4MGFiYWIxNDJhMTJjOTkzYmY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMTMgTm92IDIwMjQgMTY6MzQ6MzQgKzAzMDAKU3ViamVjdDogW1BBVENIIHY4IDUvNV0g VEVTVDogYnVtcCBjYXR2ZXIKCi0tLQogc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCAg fCAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaCB8IDIgKy0KIDIgZmlsZXMg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBn cmFkZS5oCmluZGV4IDJjODVlYzFlOTQuLjE4ZmFlZGM5NjMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfdXBncmFkZS9wZ191cGdyYWRlLmgKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3Jh ZGUuaApAQCAtMTE5LDcgKzExOSw3IEBAIGV4dGVybiBjaGFyICpvdXRwdXRfZmlsZXNbXTsKICAq CiAgKiBYWFg6IHNob3VsZCBiZSBjaGFuZ2VkIHRvIHRoZSBhY3R1YWwgQ0FUQUxPR19WRVJTSU9O X05PIG9uIGNvbW1pdC4KICAqLwotI2RlZmluZSBNVUxUSVhBQ1RPRkZTRVRfRk9STUFUQ0hBTkdF X0NBVF9WRVIgMjAyNDA5MDQxCisjZGVmaW5lIE1VTFRJWEFDVE9GRlNFVF9GT1JNQVRDSEFOR0Vf Q0FUX1ZFUiAyMDI0MTExMTIKIAogLyoKICAqIGxhcmdlIG9iamVjdCBjaHVuayBzaXplIGFkZGVk IHRvIHBnX2NvbnRyb2xkYXRhLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2 ZXJzaW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaAppbmRleCA1ZGQ5MWUx OTBhLi4zZDA5Y2FmNWFlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNp b24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaApAQCAtNTcsNiArNTcs NiBAQAogICovCiAKIC8qCQkJCQkJCXl5eXltbWRkTiAqLwotI2RlZmluZSBDQVRBTE9HX1ZFUlNJ T05fTk8JMjAyNDExMTExCisjZGVmaW5lIENBVEFMT0dfVkVSU0lPTl9OTwkyMDI0MTExMTIKIAog I2VuZGlmCi0tIAoyLjQzLjAKCg== --000000000000322ad806272fd08e Content-Type: application/octet-stream; name="v8-0002-Use-64-bit-multixact-offsets.patch" Content-Disposition: attachment; filename="v8-0002-Use-64-bit-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3n20vpk4 RnJvbSBhZDlhMTUwOWZkNWNkNjg4MzgxNjliMzQ2NWFiNGM1Zjk4MjdhNGUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogV2VkLCA2IE1hciAyMDI0IDExOjExOjMzICswMzAwClN1YmplY3Q6IFtQQVRDSCB2OCAy LzVdIFVzZSA2NC1iaXQgbXVsdGl4YWN0IG9mZnNldHMuCgpBdXRob3I6IE1heGltIE9ybG92IDxv cmxvdm1nQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhh Y3QuYyB8IDE3MiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmluL3BnX3Jlc2V0d2Fs L3BnX3Jlc2V0d2FsLmMgICAgICB8ICAgMiArLQogc3JjL2Jpbi9wZ19yZXNldHdhbC90LzAwMV9i YXNpYy5wbCAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaCAgICAg ICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9jLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogNSBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxNjkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwppbmRleCBhYjkwOTEyZWQzLi5j NTFlMDNlODMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhh Y3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwpAQCAtOTYs MTQgKzk2LDYgQEAKIC8qCiAgKiBEZWZpbmVzIGZvciBNdWx0aVhhY3RPZmZzZXQgcGFnZSBzaXpl cy4gIEEgcGFnZSBpcyB0aGUgc2FtZSBCTENLU1ogYXMgaXMKICAqIHVzZWQgZXZlcnl3aGVyZSBl bHNlIGluIFBvc3RncmVzLgotICoKLSAqIE5vdGU6IGJlY2F1c2UgTXVsdGlYYWN0T2Zmc2V0cyBh cmUgMzIgYml0cyBhbmQgd3JhcCBhcm91bmQgYXQgMHhGRkZGRkZGRiwKLSAqIE11bHRpWGFjdCBw YWdlIG51bWJlcmluZyBhbHNvIHdyYXBzIGFyb3VuZCBhdAotICogMHhGRkZGRkZGRi9NVUxUSVhB Q1RfT0ZGU0VUU19QRVJfUEFHRSwgYW5kIHNlZ21lbnQgbnVtYmVyaW5nIGF0Ci0gKiAweEZGRkZG RkZGL01VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFL1NMUlVfUEFHRVNfUEVSX1NFR01FTlQuICBX ZSBuZWVkCi0gKiB0YWtlIG5vIGV4cGxpY2l0IG5vdGljZSBvZiB0aGF0IGZhY3QgaW4gdGhpcyBt b2R1bGUsIGV4Y2VwdCB3aGVuIGNvbXBhcmluZwotICogc2VnbWVudCBhbmQgcGFnZSBudW1iZXJz IGluIFRydW5jYXRlTXVsdGlYYWN0IChzZWUKLSAqIE11bHRpWGFjdE9mZnNldFBhZ2VQcmVjZWRl cykuCiAgKi8KIAogLyogV2UgbmVlZCBmb3VyIGJ5dGVzIHBlciBvZmZzZXQgKi8KQEAgLTI3Miw5 ICsyNjQsNiBAQCB0eXBlZGVmIHN0cnVjdCBNdWx0aVhhY3RTdGF0ZURhdGEKIAlNdWx0aVhhY3RJ ZCBtdWx0aVN0b3BMaW1pdDsKIAlNdWx0aVhhY3RJZCBtdWx0aVdyYXBMaW1pdDsKIAotCS8qIHN1 cHBvcnQgZm9yIG1lbWJlcnMgYW50aS13cmFwYXJvdW5kIG1lYXN1cmVzICovCi0JTXVsdGlYYWN0 T2Zmc2V0IG9mZnNldFN0b3BMaW1pdDsJLyoga25vd24gaWYgb2xkZXN0T2Zmc2V0S25vd24gKi8K LQogCS8qCiAJICogVGhpcyBpcyB1c2VkIHRvIHNsZWVwIHVudGlsIGEgbXVsdGl4YWN0IG9mZnNl dCBpcyB3cml0dGVuIHdoZW4gd2Ugd2FudAogCSAqIHRvIGNyZWF0ZSB0aGUgbmV4dCBvbmUuCkBA IC00MDksOCArMzk4LDYgQEAgc3RhdGljIGJvb2wgTXVsdGlYYWN0T2Zmc2V0UHJlY2VkZXMoTXVs dGlYYWN0T2Zmc2V0IG9mZnNldDEsCiAJCQkJCQkJCQlNdWx0aVhhY3RPZmZzZXQgb2Zmc2V0Mik7 CiBzdGF0aWMgdm9pZCBFeHRlbmRNdWx0aVhhY3RPZmZzZXQoTXVsdGlYYWN0SWQgbXVsdGkpOwog c3RhdGljIHZvaWQgRXh0ZW5kTXVsdGlYYWN0TWVtYmVyKE11bHRpWGFjdE9mZnNldCBvZmZzZXQs IGludCBubWVtYmVycyk7Ci1zdGF0aWMgYm9vbCBNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVs dGlYYWN0T2Zmc2V0IGJvdW5kYXJ5LAotCQkJCQkJCQkJIE11bHRpWGFjdE9mZnNldCBzdGFydCwg dWludDMyIGRpc3RhbmNlKTsKIHN0YXRpYyBib29sIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wg aXNfc3RhcnR1cCk7CiBzdGF0aWMgYm9vbCBmaW5kX211bHRpeGFjdF9zdGFydChNdWx0aVhhY3RJ ZCBtdWx0aSwgTXVsdGlYYWN0T2Zmc2V0ICpyZXN1bHQpOwogc3RhdGljIHZvaWQgV3JpdGVNWmVy b1BhZ2VYbG9nUmVjKGludDY0IHBhZ2VubywgdWludDggaW5mbyk7CkBAIC0xMTY0LDc4ICsxMTUx LDYgQEAgR2V0TmV3TXVsdGlYYWN0SWQoaW50IG5tZW1iZXJzLCBNdWx0aVhhY3RPZmZzZXQgKm9m ZnNldCkKIAllbHNlCiAJCSpvZmZzZXQgPSBuZXh0T2Zmc2V0OwogCi0JLyotLS0tLS0tLS0tCi0J ICogUHJvdGVjdCBhZ2FpbnN0IG92ZXJydW4gb2YgdGhlIG1lbWJlcnMgc3BhY2UgYXMgd2VsbCwg d2l0aCB0aGUKLQkgKiBmb2xsb3dpbmcgcnVsZXM6Ci0JICoKLQkgKiBJZiB3ZSdyZSBwYXN0IG9m ZnNldFN0b3BMaW1pdCwgcmVmdXNlIHRvIGdlbmVyYXRlIG1vcmUgbXVsdGlzLgotCSAqIElmIHdl J3JlIGNsb3NlIHRvIG9mZnNldFN0b3BMaW1pdCwgZW1pdCBhIHdhcm5pbmcuCi0JICoKLQkgKiBB cmJpdHJhcmlseSwgd2Ugc3RhcnQgZW1pdHRpbmcgd2FybmluZ3Mgd2hlbiB3ZSdyZSAyMCBzZWdt ZW50cyBvciBsZXNzCi0JICogZnJvbSBvZmZzZXRTdG9wTGltaXQuCi0JICoKLQkgKiBOb3RlIHdl IGhhdmVuJ3QgdXBkYXRlZCB0aGUgc2hhcmVkIHN0YXRlIHlldCwgc28gaWYgd2UgZmFpbCBhdCB0 aGlzCi0JICogcG9pbnQsIHRoZSBtdWx0aXhhY3QgSUQgd2UgZ3JhYmJlZCBjYW4gc3RpbGwgYmUg dXNlZCBieSB0aGUgbmV4dCBndXkuCi0JICoKLQkgKiBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gcG9p bnQgaW4gZm9yY2luZyBhdXRvdmFjdXVtIHJ1bnMgaGVyZTogdGhlCi0JICogbXVsdGl4YWN0IGZy ZWV6ZSBzZXR0aW5ncyB3b3VsZCBoYXZlIHRvIGJlIHJlZHVjZWQgZm9yIHRoYXQgdG8gaGF2ZSBh bnkKLQkgKiBlZmZlY3QuCi0JICotLS0tLS0tLS0tCi0JICovCi0jZGVmaW5lIE9GRlNFVF9XQVJO X1NFR01FTlRTCTIwCi0JaWYgKE11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXRLbm93biAmJgot CQlNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1p dCwgbmV4dE9mZnNldCwKLQkJCQkJCQkJIG5tZW1iZXJzKSkKLQl7Ci0JCS8qIHNlZSBjb21tZW50 IGluIHRoZSBjb3JyZXNwb25kaW5nIG9mZnNldHMgd3JhcGFyb3VuZCBjYXNlICovCi0JCVNlbmRQ b3N0bWFzdGVyU2lnbmFsKFBNU0lHTkFMX1NUQVJUX0FVVE9WQUNfTEFVTkNIRVIpOwotCi0JCWVy ZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVE KSwKLQkJCQkgZXJybXNnKCJtdWx0aXhhY3QgXCJtZW1iZXJzXCIgbGltaXQgZXhjZWVkZWQiKSwK LQkJCQkgZXJyZGV0YWlsX3BsdXJhbCgiVGhpcyBjb21tYW5kIHdvdWxkIGNyZWF0ZSBhIG11bHRp eGFjdCB3aXRoICV1IG1lbWJlcnMsIGJ1dCB0aGUgcmVtYWluaW5nIHNwYWNlIGlzIG9ubHkgZW5v dWdoIGZvciAldSBtZW1iZXIuIiwKLQkJCQkJCQkJICAiVGhpcyBjb21tYW5kIHdvdWxkIGNyZWF0 ZSBhIG11bHRpeGFjdCB3aXRoICV1IG1lbWJlcnMsIGJ1dCB0aGUgcmVtYWluaW5nIHNwYWNlIGlz IG9ubHkgZW5vdWdoIGZvciAldSBtZW1iZXJzLiIsCi0JCQkJCQkJCSAgTXVsdGlYYWN0U3RhdGUt Pm9mZnNldFN0b3BMaW1pdCAtIG5leHRPZmZzZXQgLSAxLAotCQkJCQkJCQkgIG5tZW1iZXJzLAot CQkJCQkJCQkgIE11bHRpWGFjdFN0YXRlLT5vZmZzZXRTdG9wTGltaXQgLSBuZXh0T2Zmc2V0IC0g MSksCi0JCQkJIGVycmhpbnQoIkV4ZWN1dGUgYSBkYXRhYmFzZS13aWRlIFZBQ1VVTSBpbiBkYXRh YmFzZSB3aXRoIE9JRCAldSB3aXRoIHJlZHVjZWQgXCJ2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9t aW5fYWdlXCIgYW5kIFwidmFjdXVtX211bHRpeGFjdF9mcmVlemVfdGFibGVfYWdlXCIgc2V0dGlu Z3MuIiwKLQkJCQkJCSBNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0TXVsdGlYYWN0REIpKSk7Ci0JfQot Ci0JLyoKLQkgKiBDaGVjayB3aGV0aGVyIHdlIHNob3VsZCBraWNrIGF1dG92YWN1dW0gaW50byBh Y3Rpb24sIHRvIHByZXZlbnQgbWVtYmVycwotCSAqIHdyYXBhcm91bmQuIE5CIHdlIHVzZSBhIG11 Y2ggbGFyZ2VyIHdpbmRvdyB0byB0cmlnZ2VyIGF1dG92YWN1dW0gdGhhbgotCSAqIGp1c3QgdGhl IHdhcm5pbmcgbGltaXQuIFRoZSB3YXJuaW5nIGlzIGp1c3QgYSBtZWFzdXJlIG9mIGxhc3QgcmVz b3J0IC0KLQkgKiB0aGlzIGlzIGluIGxpbmUgd2l0aCBHZXROZXdUcmFuc2FjdGlvbklkJ3MgYmVo YXZpb3VyLgotCSAqLwotCWlmICghTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldEtub3duIHx8 Ci0JCShNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldCAtIE11bHRpWGFjdFN0YXRlLT5vbGRlc3RP ZmZzZXQKLQkJID4gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCkpCi0JewotCQkvKgot CQkgKiBUbyBhdm9pZCBzd2FtcGluZyB0aGUgcG9zdG1hc3RlciB3aXRoIHNpZ25hbHMsIHdlIGlz c3VlIHRoZSBhdXRvdmFjCi0JCSAqIHJlcXVlc3Qgb25seSB3aGVuIGNyb3NzaW5nIGEgc2VnbWVu dCBib3VuZGFyeS4gV2l0aCBkZWZhdWx0Ci0JCSAqIGNvbXBpbGF0aW9uIHNldHRpbmdzIHRoYXQn cyByb3VnaGx5IGFmdGVyIDUwayBtZW1iZXJzLiAgVGhpcyBzdGlsbAotCQkgKiBnaXZlcyBwbGVu dHkgb2YgY2hhbmNlcyBiZWZvcmUgd2UgZ2V0IGludG8gcmVhbCB0cm91YmxlLgotCQkgKi8KLQkJ aWYgKChNWE9mZnNldFRvTWVtYmVyUGFnZShuZXh0T2Zmc2V0KSAvIFNMUlVfUEFHRVNfUEVSX1NF R01FTlQpICE9Ci0JCQkoTVhPZmZzZXRUb01lbWJlclBhZ2UobmV4dE9mZnNldCArIG5tZW1iZXJz KSAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpKQotCQkJU2VuZFBvc3RtYXN0ZXJTaWduYWwoUE1T SUdOQUxfU1RBUlRfQVVUT1ZBQ19MQVVOQ0hFUik7Ci0JfQotCi0JaWYgKE11bHRpWGFjdFN0YXRl LT5vbGRlc3RPZmZzZXRLbm93biAmJgotCQlNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVsdGlY YWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCwKLQkJCQkJCQkJIG5leHRPZmZzZXQsCi0JCQkJCQkJ CSBubWVtYmVycyArIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdFICogU0xSVV9QQUdFU19QRVJf U0VHTUVOVCAqIE9GRlNFVF9XQVJOX1NFR01FTlRTKSkKLQkJZXJlcG9ydChXQVJOSU5HLAotCQkJ CShlcnJjb2RlKEVSUkNPREVfUFJPR1JBTV9MSU1JVF9FWENFRURFRCksCi0JCQkJIGVycm1zZ19w bHVyYWwoImRhdGFiYXNlIHdpdGggT0lEICV1IG11c3QgYmUgdmFjdXVtZWQgYmVmb3JlICVkIG1v cmUgbXVsdGl4YWN0IG1lbWJlciBpcyB1c2VkIiwKLQkJCQkJCQkgICAiZGF0YWJhc2Ugd2l0aCBP SUQgJXUgbXVzdCBiZSB2YWN1dW1lZCBiZWZvcmUgJWQgbW9yZSBtdWx0aXhhY3QgbWVtYmVycyBh cmUgdXNlZCIsCi0JCQkJCQkJICAgTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCAtIG5l eHRPZmZzZXQgKyBubWVtYmVycywKLQkJCQkJCQkgICBNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0TXVs dGlYYWN0REIsCi0JCQkJCQkJICAgTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCAtIG5l eHRPZmZzZXQgKyBubWVtYmVycyksCi0JCQkJIGVycmhpbnQoIkV4ZWN1dGUgYSBkYXRhYmFzZS13 aWRlIFZBQ1VVTSBpbiB0aGF0IGRhdGFiYXNlIHdpdGggcmVkdWNlZCBcInZhY3V1bV9tdWx0aXhh Y3RfZnJlZXplX21pbl9hZ2VcIiBhbmQgXCJ2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9h Z2VcIiBzZXR0aW5ncy4iKSkpOwotCiAJRXh0ZW5kTXVsdGlYYWN0TWVtYmVyKG5leHRPZmZzZXQs IG5tZW1iZXJzKTsKIAogCS8qCkBAIC0xOTc2LDcgKzE4OTEsNyBAQCBNdWx0aVhhY3RTaG1lbUlu aXQodm9pZCkKIAkJCQkgICJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsIExXVFJBTkNIRV9NVUxUSVhB Q1RPRkZTRVRfQlVGRkVSLAogCQkJCSAgTFdUUkFOQ0hFX01VTFRJWEFDVE9GRlNFVF9TTFJVLAog CQkJCSAgU1lOQ19IQU5ETEVSX01VTFRJWEFDVF9PRkZTRVQsCi0JCQkJICBmYWxzZSk7CisJCQkJ ICB0cnVlKTsKIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3RzKE11bHRpWGFjdE9mZnNldEN0bCwg TVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0UpOwogCVNpbXBsZUxydUluaXQoTXVsdGlYYWN0TWVt YmVyQ3RsLAogCQkJCSAgIm11bHRpeGFjdF9tZW1iZXIiLCBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZl cnMsIDAsCkBAIC0yNzIxLDggKzI2MzYsNiBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlz X3N0YXJ0dXApCiAJTXVsdGlYYWN0T2Zmc2V0IG5leHRPZmZzZXQ7CiAJYm9vbAkJb2xkZXN0T2Zm c2V0S25vd24gPSBmYWxzZTsKIAlib29sCQlwcmV2T2xkZXN0T2Zmc2V0S25vd247Ci0JTXVsdGlY YWN0T2Zmc2V0IG9mZnNldFN0b3BMaW1pdCA9IDA7Ci0JTXVsdGlYYWN0T2Zmc2V0IHByZXZPZmZz ZXRTdG9wTGltaXQ7CiAKIAkvKgogCSAqIE5COiBIYXZlIHRvIHByZXZlbnQgY29uY3VycmVudCB0 cnVuY2F0aW9uLCB3ZSBtaWdodCBvdGhlcndpc2UgdHJ5IHRvCkBAIC0yNzM3LDcgKzI2NTAsNiBA QCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJbmV4dE9mZnNldCA9IE11 bHRpWGFjdFN0YXRlLT5uZXh0T2Zmc2V0OwogCXByZXZPbGRlc3RPZmZzZXRLbm93biA9IE11bHRp WGFjdFN0YXRlLT5vbGRlc3RPZmZzZXRLbm93bjsKIAlwcmV2T2xkZXN0T2Zmc2V0ID0gTXVsdGlY YWN0U3RhdGUtPm9sZGVzdE9mZnNldDsKLQlwcmV2T2Zmc2V0U3RvcExpbWl0ID0gTXVsdGlYYWN0 U3RhdGUtPm9mZnNldFN0b3BMaW1pdDsKIAlBc3NlcnQoTXVsdGlYYWN0U3RhdGUtPmZpbmlzaGVk U3RhcnR1cCk7CiAJTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5Mb2NrKTsKIApAQCAtMjc2OCwx MSArMjY4MCw3IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKIAkJb2xk ZXN0T2Zmc2V0S25vd24gPQogCQkJZmluZF9tdWx0aXhhY3Rfc3RhcnQob2xkZXN0TXVsdGlYYWN0 SWQsICZvbGRlc3RPZmZzZXQpOwogCi0JCWlmIChvbGRlc3RPZmZzZXRLbm93bikKLQkJCWVyZXBv cnQoREVCVUcxLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJvbGRlc3QgTXVsdGlYYWN0SWQgbWVt YmVyIGlzIGF0IG9mZnNldCAldSIsCi0JCQkJCQkJCQkgb2xkZXN0T2Zmc2V0KSkpOwotCQllbHNl CisJCWlmICghb2xkZXN0T2Zmc2V0S25vd24pCiAJCQllcmVwb3J0KExPRywKIAkJCQkJKGVycm1z ZygiTXVsdGlYYWN0IG1lbWJlciB3cmFwYXJvdW5kIHByb3RlY3Rpb25zIGFyZSBkaXNhYmxlZCBi ZWNhdXNlIG9sZGVzdCBjaGVja3BvaW50ZWQgTXVsdGlYYWN0ICV1IGRvZXMgbm90IGV4aXN0IG9u IGRpc2siLAogCQkJCQkJCW9sZGVzdE11bHRpWGFjdElkKSkpOwpAQCAtMjc4NSwyNCArMjY5Myw3 IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKIAkgKiBvdmVycnVuIG9m IG9sZCBkYXRhIGluIHRoZSBtZW1iZXJzIFNMUlUgYXJlYS4gV2UgY2FuIG9ubHkgZG8gc28gaWYg dGhlCiAJICogb2xkZXN0IG9mZnNldCBpcyBrbm93biB0aG91Z2guCiAJICovCi0JaWYgKG9sZGVz dE9mZnNldEtub3duKQotCXsKLQkJLyogbW92ZSBiYWNrIHRvIHN0YXJ0IG9mIHRoZSBjb3JyZXNw b25kaW5nIHNlZ21lbnQgKi8KLQkJb2Zmc2V0U3RvcExpbWl0ID0gb2xkZXN0T2Zmc2V0IC0gKG9s ZGVzdE9mZnNldCAlCi0JCQkJCQkJCQkJICAoTVVMVElYQUNUX01FTUJFUlNfUEVSX1BBR0UgKiBT TFJVX1BBR0VTX1BFUl9TRUdNRU5UKSk7Ci0KLQkJLyogYWx3YXlzIGxlYXZlIG9uZSBzZWdtZW50 IGJlZm9yZSB0aGUgd3JhcGFyb3VuZCBwb2ludCAqLwotCQlvZmZzZXRTdG9wTGltaXQgLT0gKE1V TFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdFICogU0xSVV9QQUdFU19QRVJfU0VHTUVOVCk7Ci0KLQkJ aWYgKCFwcmV2T2xkZXN0T2Zmc2V0S25vd24gJiYgIWlzX3N0YXJ0dXApCi0JCQllcmVwb3J0KExP RywKLQkJCQkJKGVycm1zZygiTXVsdGlYYWN0IG1lbWJlciB3cmFwYXJvdW5kIHByb3RlY3Rpb25z IGFyZSBub3cgZW5hYmxlZCIpKSk7Ci0KLQkJZXJlcG9ydChERUJVRzEsCi0JCQkJKGVycm1zZ19p bnRlcm5hbCgiTXVsdGlYYWN0IG1lbWJlciBzdG9wIGxpbWl0IGlzIG5vdyAldSBiYXNlZCBvbiBN dWx0aVhhY3QgJXUiLAotCQkJCQkJCQkgb2Zmc2V0U3RvcExpbWl0LCBvbGRlc3RNdWx0aVhhY3RJ ZCkpKTsKLQl9Ci0JZWxzZSBpZiAocHJldk9sZGVzdE9mZnNldEtub3duKQorCWlmIChwcmV2T2xk ZXN0T2Zmc2V0S25vd24pCiAJewogCQkvKgogCQkgKiBJZiB3ZSBmYWlsZWQgdG8gZ2V0IHRoZSBv bGRlc3Qgb2Zmc2V0IHRoaXMgdGltZSwgYnV0IHdlIGhhdmUgYQpAQCAtMjgxMiwxNCArMjcwMywx MiBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJCSAqLwogCQlvbGRl c3RPZmZzZXQgPSBwcmV2T2xkZXN0T2Zmc2V0OwogCQlvbGRlc3RPZmZzZXRLbm93biA9IHRydWU7 Ci0JCW9mZnNldFN0b3BMaW1pdCA9IHByZXZPZmZzZXRTdG9wTGltaXQ7CiAJfQogCiAJLyogSW5z dGFsbCB0aGUgY29tcHV0ZWQgdmFsdWVzICovCiAJTFdMb2NrQWNxdWlyZShNdWx0aVhhY3RHZW5M b2NrLCBMV19FWENMVVNJVkUpOwogCU11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXQgPSBvbGRl c3RPZmZzZXQ7CiAJTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldEtub3duID0gb2xkZXN0T2Zm c2V0S25vd247Ci0JTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCA9IG9mZnNldFN0b3BM aW1pdDsKIAlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCiAJLyoKQEAgLTI4Mjks NTQgKzI3MTgsNiBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJCShu ZXh0T2Zmc2V0IC0gb2xkZXN0T2Zmc2V0ID4gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9M RCk7CiB9CiAKLS8qCi0gKiBSZXR1cm4gd2hldGhlciBhZGRpbmcgImRpc3RhbmNlIiB0byAic3Rh cnQiIHdvdWxkIG1vdmUgcGFzdCAiYm91bmRhcnkiLgotICoKLSAqIFdlIHVzZSB0aGlzIHRvIGRl dGVybWluZSB3aGV0aGVyIHRoZSBhZGRpdGlvbiBpcyAid3JhcHBpbmcgYXJvdW5kIiB0aGUKLSAq IGJvdW5kYXJ5IHBvaW50LCBoZW5jZSB0aGUgbmFtZS4gIFRoZSByZWFzb24gd2UgZG9uJ3Qgd2Fu dCB0byB1c2UgdGhlIHJlZ3VsYXIKLSAqIDJeMzEtbW9kdWxvIGFyaXRobWV0aWMgaGVyZSBpcyB0 aGF0IHdlIHdhbnQgdG8gYmUgYWJsZSB0byB1c2UgdGhlIHdob2xlIG9mCi0gKiB0aGUgMl4zMi0x IHNwYWNlIGhlcmUsIGFsbG93aW5nIGZvciBtb3JlIG11bHRpeGFjdHMgdGhhbiB3b3VsZCBmaXQK LSAqIG90aGVyd2lzZS4KLSAqLwotc3RhdGljIGJvb2wKLU11bHRpWGFjdE9mZnNldFdvdWxkV3Jh cChNdWx0aVhhY3RPZmZzZXQgYm91bmRhcnksIE11bHRpWGFjdE9mZnNldCBzdGFydCwKLQkJCQkJ CSB1aW50MzIgZGlzdGFuY2UpCi17Ci0JTXVsdGlYYWN0T2Zmc2V0IGZpbmlzaDsKLQotCS8qCi0J ICogTm90ZSB0aGF0IG9mZnNldCBudW1iZXIgMCBpcyBub3QgdXNlZCAoc2VlIEdldE11bHRpWGFj dElkTWVtYmVycyksIHNvCi0JICogaWYgdGhlIGFkZGl0aW9uIHdyYXBzIGFyb3VuZCB0aGUgVUlO VF9NQVggYm91bmRhcnksIHNraXAgdGhhdCB2YWx1ZS4KLQkgKi8KLQlmaW5pc2ggPSBzdGFydCAr IGRpc3RhbmNlOwotCWlmIChmaW5pc2ggPCBzdGFydCkKLQkJZmluaXNoKys7Ci0KLQkvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0JICogV2hlbiB0aGUgYm91bmRhcnkgaXMgbnVtZXJpY2FsbHkgZ3JlYXRlciB0 aGFuIHRoZSBzdGFydGluZyBwb2ludCwgYW55Ci0JICogdmFsdWUgbnVtZXJpY2FsbHkgYmV0d2Vl biB0aGUgdHdvIGlzIG5vdCB3cmFwcGVkOgotCSAqCi0JICoJPC0tLS1TLS0tLUItLS0tPgotCSAq CVstLS0pCQkJID0gRiB3cmFwcGVkIHBhc3QgQiAoYW5kIFVJTlRfTUFYKQotCSAqCQkgWy0tLSkJ CSA9IEYgbm90IHdyYXBwZWQKLQkgKgkJCSAgWy0tLS1dID0gRiB3cmFwcGVkIHBhc3QgQgotCSAq Ci0JICogV2hlbiB0aGUgYm91bmRhcnkgaXMgbnVtZXJpY2FsbHkgbGVzcyB0aGFuIHRoZSBzdGFy dGluZyBwb2ludCAoaS5lLiB0aGUKLQkgKiBVSU5UX01BWCB3cmFwYXJvdW5kIG9jY3VycyBzb21l d2hlcmUgaW4gYmV0d2VlbikgdGhlbiBhbGwgdmFsdWVzIGluCi0JICogYmV0d2VlbiBhcmUgd3Jh cHBlZDoKLQkgKgotCSAqCTwtLS0tQi0tLS1TLS0tLT4KLQkgKglbLS0tKQkJCSA9IEYgbm90IHdy YXBwZWQgcGFzdCBCIChidXQgd3JhcHBlZCBwYXN0IFVJTlRfTUFYKQotCSAqCQkgWy0tLSkJCSA9 IEYgd3JhcHBlZCBwYXN0IEIgKGFuZCBVSU5UX01BWCkKLQkgKgkJCSAgWy0tLS1dID0gRiBub3Qg d3JhcHBlZAotCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkgKi8KLQlpZiAoc3RhcnQgPCBib3VuZGFyeSkK LQkJcmV0dXJuIGZpbmlzaCA+PSBib3VuZGFyeSB8fCBmaW5pc2ggPCBzdGFydDsKLQllbHNlCi0J CXJldHVybiBmaW5pc2ggPj0gYm91bmRhcnkgJiYgZmluaXNoIDwgc3RhcnQ7Ci19Ci0KIC8qCiAg KiBGaW5kIHRoZSBzdGFydGluZyBvZmZzZXQgb2YgdGhlIGdpdmVuIE11bHRpWGFjdElkLgogICoK QEAgLTI5OTgsOCArMjgzOSw5IEBAIE11bHRpWGFjdE1lbWJlckZyZWV6ZVRocmVzaG9sZCh2b2lk KQogCSAqIHdlIHRyeSB0byBlbGltaW5hdGUgZnJvbSB0aGUgc3lzdGVtIGlzIGJhc2VkIG9uIGhv dyBmYXIgd2UgYXJlIHBhc3QKIAkgKiBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xELgog CSAqLwotCWZyYWN0aW9uID0gKGRvdWJsZSkgKG1lbWJlcnMgLSBNVUxUSVhBQ1RfTUVNQkVSX1NB RkVfVEhSRVNIT0xEKSAvCi0JCShNVUxUSVhBQ1RfTUVNQkVSX0RBTkdFUl9USFJFU0hPTEQgLSBN VUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xEKTsKKwlmcmFjdGlvbiA9IChkb3VibGUpICht ZW1iZXJzIC0gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCk7CisJZnJhY3Rpb24gLz0g KGRvdWJsZSkgKE1VTFRJWEFDVF9NRU1CRVJfREFOR0VSX1RIUkVTSE9MRCAtIE1VTFRJWEFDVF9N RU1CRVJfU0FGRV9USFJFU0hPTEQpOworCiAJdmljdGltX211bHRpeGFjdHMgPSBtdWx0aXhhY3Rz ICogZnJhY3Rpb247CiAKIAkvKiBmcmFjdGlvbiBjb3VsZCBiZSA+IDEuMCwgYnV0IGxvd2VzdCBw b3NzaWJsZSBmcmVlemUgYWdlIGlzIHplcm8gKi8KQEAgLTMzNDUsNyArMzE4Nyw3IEBAIE11bHRp WGFjdElkUHJlY2VkZXNPckVxdWFscyhNdWx0aVhhY3RJZCBtdWx0aTEsIE11bHRpWGFjdElkIG11 bHRpMikKIHN0YXRpYyBib29sCiBNdWx0aVhhY3RPZmZzZXRQcmVjZWRlcyhNdWx0aVhhY3RPZmZz ZXQgb2Zmc2V0MSwgTXVsdGlYYWN0T2Zmc2V0IG9mZnNldDIpCiB7Ci0JaW50MzIJCWRpZmYgPSAo aW50MzIpIChvZmZzZXQxIC0gb2Zmc2V0Mik7CisJaW50NjQJCWRpZmYgPSAoaW50NjQpIChvZmZz ZXQxIC0gb2Zmc2V0Mik7CiAKIAlyZXR1cm4gKGRpZmYgPCAwKTsKIH0KZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdf cmVzZXR3YWwuYwppbmRleCA5ODVjZDA2ODAyLi4xYWYyY2U0YjkzIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKKysrIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC9w Z19yZXNldHdhbC5jCkBAIC0yNjQsNyArMjY0LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCiAJCQljYXNlICdPJzoKIAkJCQllcnJubyA9IDA7Ci0JCQkJc2V0X214b2ZmID0gc3Ry dG91bChvcHRhcmcsICZlbmRwdHIsIDApOworCQkJCXNldF9teG9mZiA9IHN0cnRvdTY0KG9wdGFy ZywgJmVuZHB0ciwgMCk7CiAJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAn XDAnIHx8IGVycm5vICE9IDApCiAJCQkJewogCQkJCQlwZ19sb2dfZXJyb3IoImludmFsaWQgYXJn dW1lbnQgZm9yIG9wdGlvbiAlcyIsICItTyIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXNl dHdhbC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvdC8wMDFfYmFzaWMucGwK aW5kZXggOTgyOWU0ODEwNi4uZjhhOGVlZjQ0ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXNl dHdhbC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMvYmluL3BnX3Jlc2V0d2FsL3QvMDAxX2Jhc2lj LnBsCkBAIC0yMDYsNyArMjA2LDcgQEAgcHVzaCBAY21kLAogICBzcHJpbnRmKCIlZCwlZCIsIGhl eCgkZmlsZXNbMF0pID09IDAgPyAzIDogaGV4KCRmaWxlc1swXSksIGhleCgkZmlsZXNbLTFdKSk7 CiAKIEBmaWxlcyA9IGdldF9zbHJ1X2ZpbGVzKCdwZ19tdWx0aXhhY3Qvb2Zmc2V0cycpOwotJG11 bHQgPSAzMiAqICRibGNrc3ogLyA0OworJG11bHQgPSAzMiAqICRibGNrc3ogLyA4OwogIyAtbSBh cmd1bWVudCBpcyAibmV3LG9sZCIKIHB1c2ggQGNtZCwgJy1tJywKICAgc3ByaW50ZigiJWQsJWQi LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL211bHRpeGFjdC5oCmluZGV4IDdmZmQyNTZjNzQuLjkwNTgzNjM0ZWMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvbXVsdGl4YWN0LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2RlZmluZSBNdWx0aVhhY3RJ ZElzVmFsaWQobXVsdGkpICgobXVsdGkpICE9IEludmFsaWRNdWx0aVhhY3RJZCkKIAotI2RlZmlu ZSBNYXhNdWx0aVhhY3RPZmZzZXQJKChNdWx0aVhhY3RPZmZzZXQpIDB4RkZGRkZGRkYpCisjZGVm aW5lIE1heE11bHRpWGFjdE9mZnNldAlVSU5UNjRDT05TVCgweEZGRkZGRkZGRkZGRkZGRkYpCiAK IC8qCiAgKiBQb3NzaWJsZSBtdWx0aXhhY3QgbG9jayBtb2RlcyAoInN0YXR1cyIpLiAgVGhlIGZp cnN0IGZvdXIgbW9kZXMgYXJlIGZvcgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3Jj L2luY2x1ZGUvYy5oCmluZGV4IDBhNTQ4ZDY5ZDcuLmUxYjMxODdkMGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTY2NCw3ICs2NjQsNyBAQCB0 eXBlZGVmIHVpbnQzMiBTdWJUcmFuc2FjdGlvbklkOwogLyogTXVsdGlYYWN0SWQgbXVzdCBiZSBl cXVpdmFsZW50IHRvIFRyYW5zYWN0aW9uSWQsIHRvIGZpdCBpbiB0X3htYXggKi8KIHR5cGVkZWYg VHJhbnNhY3Rpb25JZCBNdWx0aVhhY3RJZDsKIAotdHlwZWRlZiB1aW50MzIgTXVsdGlYYWN0T2Zm c2V0OwordHlwZWRlZiB1aW50NjQgTXVsdGlYYWN0T2Zmc2V0OwogCiB0eXBlZGVmIHVpbnQzMiBD b21tYW5kSWQ7CiAKLS0gCjIuNDMuMAoK --000000000000322ad806272fd08e Content-Type: application/x-sh; name="generate.sh" Content-Disposition: attachment; filename="generate.sh" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3n20vp00 IyEvYmluL3NoCiMKIyBHZW5lcmF0ZSB2YXJpdW9zIGNvbWJpbmF0aW9ucyBvZiBtZW1iZXJzL29m ZnNldHMgc2VnbWVudHMuCiMKCmlmIFsgLXogIiRPTERCSU4iIF0KdGhlbgoJZWNobyAiU2V0IGVu diBPTERCSU4gdG8gZ2VuZXJhdGUgY2x1c3RlcnMgZGF0YS4iCmZpCgpUUkc9YHB3ZGAvZGF0YQpl Y2hvICJVc2Ugb3V0cHV0IGRpcjogJFRSRyIKCnJtIC1yZiAkVFJHCgojIHNpbXBsZSwgZGVmYXVs dCB2YWx1ZXMKREFUQT0kVFJHL3NpbXBsZQokT0xEQklOL2Jpbi9pbml0ZGIgLS1uby1pbnN0cnVj dGlvbnMgLUQgJERBVEEKJE9MREJJTi9iaW4vcGdfY3RsIC1EICREQVRBIC1sICREQVRBL2xvZ2Zp bGUgc3RhcnQKCnB5dGhvbjMgbXVsdGl4aWRzLnB5IEZPTwpweXRob24zIG11bHRpeGlkcy5weSBC QVIKcHl0aG9uMyBtdWx0aXhpZHMucHkgQkFaCnB5dGhvbjMgbXVsdGl4aWRzLnB5IFFVWAoKJE9M REJJTi9iaW4vcGdfY3RsIC1EICREQVRBIHN0b3AKJE9MREJJTi9iaW4vcGdfY29udHJvbGRhdGEg LUQgJERBVEEKCiMgb2Zmc2V0IHdyYXAKREFUQT0kVFJHL29mZnNldC13cmFwCiRPTERCSU4vYmlu L2luaXRkYiAtLW5vLWluc3RydWN0aW9ucyAtRCAkREFUQQokT0xEQklOL2Jpbi9wZ19yZXNldHdh bCAtTyAweEZGRkFFMDA3IC1EICREQVRBCmRkIGlmPS9kZXYvemVybyBvZj0kREFUQS9wZ19tdWx0 aXhhY3QvbWVtYmVycy8xNDA3MSBicz04MTkyIGNvdW50PTMyCiRPTERCSU4vYmluL3BnX2N0bCAt RCAkREFUQSAtbCAkREFUQS9sb2dmaWxlIHN0YXJ0IHx8IGV4aXQgMQoKcHl0aG9uMyBtdWx0aXhp ZHMucHkgRk9PCnB5dGhvbjMgbXVsdGl4aWRzLnB5IEJBUgpweXRob24zIG11bHRpeGlkcy5weSBC QVoKcHl0aG9uMyBtdWx0aXhpZHMucHkgUVVYCgokT0xEQklOL2Jpbi9wZ19jdGwgLUQgJERBVEEg c3RvcAokT0xEQklOL2Jpbi9wZ19jb250cm9sZGF0YSAtRCAkREFUQQoKIyBtdWx0aSB3cmFwCkRB VEE9JFRSRy9tdWx0aS13cmFwCiRPTERCSU4vYmluL2luaXRkYiAtLW5vLWluc3RydWN0aW9ucyAt RCAkREFUQQokT0xEQklOL2Jpbi9wZ19yZXNldHdhbCAtbSAweEZGRkVGOTIxLDB4RkZGRUY5MjAg LUQgJERBVEEKZGQgaWY9L2Rldi96ZXJvIG9mPSREQVRBL3BnX211bHRpeGFjdC9vZmZzZXRzL0ZG RkUgYnM9ODE5MiBjb3VudD0zMgokT0xEQklOL2Jpbi9wZ19jdGwgLUQgJERBVEEgLWwgJERBVEEv bG9nZmlsZSBzdGFydCB8fCBleGl0IDEKCnB5dGhvbjMgbXVsdGl4aWRzLnB5IEZPTwpweXRob24z IG11bHRpeGlkcy5weSBCQVIKcHl0aG9uMyBtdWx0aXhpZHMucHkgQkFaCnB5dGhvbjMgbXVsdGl4 aWRzLnB5IFFVWApweXRob24zIG11bHRpeGlkcy5weSBYVVEKCiRPTERCSU4vYmluL3BnX2N0bCAt RCAkREFUQSBzdG9wCiRPTERCSU4vYmluL3BnX2NvbnRyb2xkYXRhIC1EICREQVRBCgojIG9mZnNl dCBhbmQgbXVsdGkgd3JhcApEQVRBPSRUUkcvb2Zmc2V0LW11bHRpLXdyYXAKJE9MREJJTi9iaW4v aW5pdGRiIC0tbm8taW5zdHJ1Y3Rpb25zIC1EICREQVRBCiRPTERCSU4vYmluL3BnX3Jlc2V0d2Fs IC1tIDB4RkZGRUY5MjEsMHhGRkZFRjkyMCAtTyAweEZGRkFFMDA3IC1EICREQVRBCmRkIGlmPS9k ZXYvemVybyBvZj0kREFUQS9wZ19tdWx0aXhhY3QvbWVtYmVycy8xNDA3MSBicz04MTkyIGNvdW50 PTMyCmRkIGlmPS9kZXYvemVybyBvZj0kREFUQS9wZ19tdWx0aXhhY3Qvb2Zmc2V0cy9GRkZFIGJz PTgxOTIgY291bnQ9MzIKJE9MREJJTi9iaW4vcGdfY3RsIC1EICREQVRBIC1sICREQVRBL2xvZ2Zp bGUgc3RhcnQgfHwgZXhpdCAxCgojIGZpeHVwIGRiClNRTD0idXBkYXRlIHBnX2RhdGFiYXNlIHNl dApkYXRtaW5teGlkPSc0Mjk0OTAwMDAxJwp3aGVyZSBkYXRuYW1lPSd0ZW1wbGF0ZTAnIgokT0xE QklOL2Jpbi9wc3FsIC1jIiRTUUwiIHBvc3RncmVzCiRPTERCSU4vYmluL3ZhY3V1bWRiIC1hIC1G IC0tZGlzYWJsZS1wYWdlLXNraXBwaW5nIAoKcHl0aG9uMyBtdWx0aXhpZHMucHkgRk9PCnB5dGhv bjMgbXVsdGl4aWRzLnB5IEJBUgpweXRob24zIG11bHRpeGlkcy5weSBCQVoKcHl0aG9uMyBtdWx0 aXhpZHMucHkgUVVYCgokT0xEQklOL2Jpbi9wZ19jdGwgLUQgJERBVEEgc3RvcAokT0xEQklOL2Jp bi9wZ19jb250cm9sZGF0YSAtRCAkREFUQQo= --000000000000322ad806272fd08e Content-Type: application/x-sh; name="test.sh" Content-Disposition: attachment; filename="test.sh" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3n20vpe2 IyEvYmluL3NoCgppZiBbIC16ICIkT0xEQklOIiBdCnRoZW4KCWVjaG8gIlNldCBlbnYgT0xEQklO LiIKZmkKCmlmIFsgLXogIiRORVdCSU4iIF0KdGhlbgoJZWNobyAiU2V0IGVudiBORVdCSU4uIgpm aQoKVFJHPWBwd2RgL2RhdGEKZWNobyAiVXNlIG91dHB1dCBkaXI6ICRUUkciCgpkb191cGdyYWRl KCkKewoJT0xEX0ZPTz0ib2xkLWZvby50bXAiCglPTERfQkFSPSJvbGQtYmFyLnRtcCIKCU9MRF9C QVo9Im9sZC1iYXoudG1wIgoJTkVXX0ZPTz0ibmV3LWZvby50bXAiCglORVdfQkFSPSJuZXctYmFy LnRtcCIKCU5FV19CQVo9Im5ldy1iYXoudG1wIgoJJE9MREJJTi9iaW4vcGdfY3RsIC1EICREQVRB IC1sICREQVRBL2xvZ2ZpbGUgc3RhcnQKCSRPTERCSU4vYmluL3BzcWwgLWMgIlNFTEVDVCAqIEZS T00gRk9PIiBwb3N0Z3JlcyA+ICRPTERfRk9PCgkkT0xEQklOL2Jpbi9wc3FsIC1jICJTRUxFQ1Qg KiBGUk9NIEJBUiIgcG9zdGdyZXMgPiAkT0xEX0JBUgoJJE9MREJJTi9iaW4vcHNxbCAtYyAiU0VM RUNUICogRlJPTSBCQVoiIHBvc3RncmVzID4gJE9MRF9CQVoKCSRPTERCSU4vYmluL3BzcWwgLWMg IkNIRUNLUE9JTlQiIHBvc3RncmVzCgkkT0xEQklOL2Jpbi9wZ19jdGwgLUQgJERBVEEgc3RvcAoJ ZWNobyAiPT09IC0tLSA+Pj4+Pj4+Pj4+ICREQVRBIGNvbnRyb2xkYXRhIgoJJE9MREJJTi9iaW4v cGdfY29udHJvbGRhdGEgLUQgJERBVEEgfCBncmVwICJMYXRlc3QgY2hlY2twb2ludCIKCgkkTkVX QklOL2Jpbi9pbml0ZGIgLS1uby1pbnN0cnVjdGlvbnMgLUQgJE5FV0RBVEEKCSRORVdCSU4vYmlu L3BnX3VwZ3JhZGUJCQkJXAoJCS1kICREQVRBIC1EICRORVdEQVRBCQkJXAoJCS1iICRPTERCSU4v YmluIC1CICRORVdCSU4vYmluCVwKCQktLWNvcHkKCSRORVdCSU4vYmluL3BnX2N0bCAtRCAkTkVX REFUQSAtbCAkTkVXREFUQS9sb2dmaWxlIHN0YXJ0IHx8IGV4aXQgMQoJJE5FV0JJTi9iaW4vcHNx bCAtYyAiU0VMRUNUICogRlJPTSBGT08iIHBvc3RncmVzID4gJE5FV19GT08gfHwgZXhpdCAxCgkk TkVXQklOL2Jpbi9wc3FsIC1jICJTRUxFQ1QgKiBGUk9NIEJBUiIgcG9zdGdyZXMgPiAkTkVXX0JB UiB8fCBleGl0IDEKCSRORVdCSU4vYmluL3BzcWwgLWMgIlNFTEVDVCAqIEZST00gQkFaIiBwb3N0 Z3JlcyA+ICRORVdfQkFaIHx8IGV4aXQgMQoJJE5FV0JJTi9iaW4vcHNxbCAtYyAiQ0hFQ0tQT0lO VCIgcG9zdGdyZXMKCSRORVdCSU4vYmluL3BnX2N0bCAtRCAkTkVXREFUQSBzdG9wCgllY2hvICI9 PT0gKysrID4+Pj4+Pj4+Pj4gJE5FV0RBVEEgY29udHJvbGRhdGEiCgkkTkVXQklOL2Jpbi9wZ19j b250cm9sZGF0YSAtRCAkTkVXREFUQSB8IGdyZXAgIkxhdGVzdCBjaGVja3BvaW50IgoKCWlmICEg ZGlmZiAtLXN1cHByZXNzLWNvbW1vbi1saW5lcyAkT0xEX0ZPTyAkTkVXX0ZPTwoJdGhlbgoJCWVj aG8gIj4+PiBGQUlMIC0gRk9PIDw8PCIKCQlleGl0IDEKCWZpCgoJaWYgISBkaWZmIC0tc3VwcHJl c3MtY29tbW9uLWxpbmVzICRPTERfQkFSICRORVdfQkFSCgl0aGVuCgkJZWNobyAiPj4+IEZBSUwg LSBCQVIgPDw8IgoJCWV4aXQgMQoJZmkKCglpZiAhIGRpZmYgLS1zdXBwcmVzcy1jb21tb24tbGlu ZXMgJE9MRF9CQVogJE5FV19CQVoKCXRoZW4KCQllY2hvICI+Pj4gRkFJTCAtIEJBWiA8PDwiCgkJ ZXhpdCAxCglmaQoJcm0gJE9MRF9GT08gJE9MRF9CQVIgJE9MRF9CQVogJE5FV19GT08gJE5FV19C QVIgJE5FV19CQVoKfQoKIyBzaW1wbGUKREFUQT0kVFJHL3NpbXBsZQpORVdEQVRBPSRUUkcvc2lt cGxlLW5ldwpybSAtZiAtUiAkTkVXREFUQQpkb191cGdyYWRlCgojIG9mZnNldCB3cmFwCkRBVEE9 JFRSRy9vZmZzZXQtd3JhcApORVdEQVRBPSRUUkcvb2Zmc2V0LXdyYXAtbmV3CnJtIC1mIC1SICRO RVdEQVRBCmRvX3VwZ3JhZGUKCiMgbXVsdGkgd3JhcApEQVRBPSRUUkcvbXVsdGktd3JhcApORVdE QVRBPSRUUkcvbXVsdGktd3JhcC1uZXcKcm0gLWYgLVIgJE5FV0RBVEEKZG9fdXBncmFkZQoKIyBv ZmZzZXQgYW5kIG11bHRpIHdyYXAKREFUQT0kVFJHL29mZnNldC1tdWx0aS13cmFwCk5FV0RBVEE9 JFRSRy9vZmZzZXQtbXVsdGktd3JhcC1uZXcKcm0gLWYgLVIgJE5FV0RBVEEKZG9fdXBncmFkZQoK ZWNobyAiPj4+IFNVQ0NFU1MgPDw8Igo= --000000000000322ad806272fd08e Content-Type: text/x-python-script; charset="US-ASCII"; name="multixids.py" Content-Disposition: attachment; filename="multixids.py" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3n20vp91 IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoKaW1wb3J0IHN5czsKaW1wb3J0IHRocmVhZGluZzsKaW1w b3J0IHBzeWNvcGcyOwoKZGVmIHRlc3RfbXVsdGl4YWN0KHRibG5hbWU6IHN0cik6CiAgICB3aXRo IHBzeWNvcGcyLmNvbm5lY3QoZGJuYW1lPSJwb3N0Z3JlcyIpIGFzIGNvbm46CiAgICAgICAgY3Vy ID0gY29ubi5jdXJzb3IoKQogICAgICAgIGN1ci5leGVjdXRlKAogICAgICAgICAgICBmIiIiCiAg ICAgICAgICAgIERST1AgVEFCTEUgSUYgRVhJU1RTIHt0YmxuYW1lfTsKICAgICAgICAgICAgQ1JF QVRFIFRBQkxFIHt0YmxuYW1lfShpIGludCBwcmltYXJ5IGtleSwgbl91cGRhdGVkIGludCkgV0lU SCAoYXV0b3ZhY3V1bV9lbmFibGVkPWZhbHNlKTsKICAgICAgICAgICAgSU5TRVJUIElOVE8ge3Ri bG5hbWV9IHNlbGVjdCBnLCAwIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBnOwogICAgICAg ICAgICAiIiIKICAgICAgICApCgogICAgIyBMb2NrIGVudHJpZXMgdXNpbmcgcGFyYWxsZWwgY29u bmVjdGlvbnMgaW4gYSByb3VuZC1yb2JpbiBmYXNoaW9uLgogICAgbmNsaWVudHMgPSA1MAogICAg dXBkYXRlX2V2ZXJ5ID0gOTcKICAgIGNvbm5lY3Rpb25zID0gW10KICAgIGZvciBfIGluIHJhbmdl KG5jbGllbnRzKToKICAgICAgICAjIERvIG5vdCB0dXJuIG9uIGF1dG9jb21taXQuIFdlIHdhbnQg dG8gaG9sZCB0aGUga2V5LXNoYXJlIGxvY2tzLgogICAgICAgIGNvbm4gPSBwc3ljb3BnMi5jb25u ZWN0KGRibmFtZT0icG9zdGdyZXMiKQogICAgICAgIGNvbm5lY3Rpb25zLmFwcGVuZChjb25uKQoK ICAgICMgT24gZWFjaCBpdGVyYXRpb24sIHdlIGNvbW1pdCB0aGUgcHJldmlvdXMgdHJhbnNhY3Rp b24gb24gYSBjb25uZWN0aW9uLAogICAgIyBhbmQgaXNzdWUgYW5vdGhlciBzZWxlY3QuIEVhY2gg U0VMRUNUIGdlbmVyYXRlcyBhIG5ldyBtdWx0aXhhY3QgdGhhdAogICAgIyBpbmNsdWRlcyB0aGUg bmV3IFhJRCwgYW5kIHRoZSBYSURzIG9mIGFsbCB0aGUgb3RoZXIgcGFyYWxsZWwgdHJhbnNhY3Rp b25zLgogICAgIyBUaGlzIGdlbmVyYXRlcyBlbm91Z2ggdHJhZmZpYyBvbiBib3RoIG11bHRpeGFj dCBvZmZzZXRzIGFuZCBtZW1iZXJzIFNMUlVzCiAgICAjIHRvIGNyb3NzIHBhZ2UgYm91bmRhcmll cy4KICAgIGZvciBpIGluIHJhbmdlKDIwMDAwKToKICAgICAgICBjb25uID0gY29ubmVjdGlvbnNb aSAlIG5jbGllbnRzXQogICAgICAgIGNvbm4uY29tbWl0KCkKCiAgICAgICAgIyBQZXJmb3JtIHNv bWUgbm9uLWtleSBVUERBVEVzIHRvbywgdG8gZXhlcmNpc2UgZGlmZmVyZW50IG11bHRpeGFjdAog ICAgICAgICMgbWVtYmVyIHN0YXR1c2VzLgogICAgICAgIGlmIGkgJSB1cGRhdGVfZXZlcnkgPT0g MDoKICAgICAgICAgICAgY29ubi5jdXJzb3IoKS5leGVjdXRlKGYidXBkYXRlIHt0YmxuYW1lfSBz ZXQgbl91cGRhdGVkID0gbl91cGRhdGVkICsgMSB3aGVyZSBpID0ge2kgJSA1MH0iKQogICAgICAg IGVsc2U6CiAgICAgICAgICAgIGNvbm4uY3Vyc29yKCkuZXhlY3V0ZShmInNlbGVjdCAqIGZyb20g e3RibG5hbWV9IGZvciBrZXkgc2hhcmUiKQoKdGVzdF9tdWx0aXhhY3Qoc3lzLmFyZ3ZbMV0pCg== --000000000000322ad806272fd08e Content-Type: application/octet-stream; name="v8-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Disposition: attachment; filename="v8-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3n20vph3 RnJvbSBmZGI3ZTJlZWUzM2RmYjVkZjcxNGQ4ZDE2MTEyZDRjOTA3NDc1ZDc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgNyBBdWcgMjAyNCAxNjozNToyMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjggMS81XSBV c2UgNjQtYml0IGZvcm1hdCBvdXRwdXQgZm9yIG11bHRpeGFjdCBvZmZzZXRzCgpBdXRob3I6IE1h eGltIE9ybG92IDxvcmxvdm1nQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MvbXhhY3RkZXNjLmMgICB8ICA5ICsrKystLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MveGxvZ2Rlc2MuYyAgICB8ICA0ICsrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L211bHRpeGFjdC5jICAgIHwgMjYgKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIHwgIDUgKysrLS0KIHNyYy9iaW4vcGdfY29u dHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYyAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ19yZXNldHdh bC9wZ19yZXNldHdhbC5jICAgICAgICAgfCAgOCArKystLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDMx IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9ybWdyZGVzYy9teGFjdGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVz Yy9teGFjdGRlc2MuYwppbmRleCAzZThhZDRkNWVmLi4xYjQ4NmRlMzhjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvbXhhY3RkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL214YWN0ZGVzYy5jCkBAIC02NSw4ICs2NSw4IEBAIG11bHRpeGFjdF9k ZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJeGxfbXVsdGl4 YWN0X2NyZWF0ZSAqeGxyZWMgPSAoeGxfbXVsdGl4YWN0X2NyZWF0ZSAqKSByZWM7CiAJCWludAkJ CWk7CiAKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIldSBvZmZzZXQgJXUgbm1lbWJlcnMgJWQ6 ICIsIHhscmVjLT5taWQsCi0JCQkJCQkgeGxyZWMtPm1vZmYsIHhscmVjLT5ubWVtYmVycyk7CisJ CWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJXUgb2Zmc2V0ICVsbHUgbm1lbWJlcnMgJWQ6ICIsIHhs cmVjLT5taWQsCisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMtPm1vZmYsIHhscmVj LT5ubWVtYmVycyk7CiAJCWZvciAoaSA9IDA7IGkgPCB4bHJlYy0+bm1lbWJlcnM7IGkrKykKIAkJ CW91dF9tZW1iZXIoYnVmLCAmeGxyZWMtPm1lbWJlcnNbaV0pOwogCX0KQEAgLTc0LDkgKzc0LDEw IEBAIG11bHRpeGFjdF9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIAl7CiAJCXhsX211bHRpeGFjdF90cnVuY2F0ZSAqeGxyZWMgPSAoeGxfbXVsdGl4YWN0X3Ry dW5jYXRlICopIHJlYzsKIAotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm9mZnNldHMgWyV1LCAl dSksIG1lbWJlcnMgWyV1LCAldSkiLAorCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm9mZnNldHMg WyV1LCAldSksIG1lbWJlcnMgWyVsbHUsICVsbHUpIiwKIAkJCQkJCSB4bHJlYy0+c3RhcnRUcnVu Y09mZiwgeGxyZWMtPmVuZFRydW5jT2ZmLAotCQkJCQkJIHhscmVjLT5zdGFydFRydW5jTWVtYiwg eGxyZWMtPmVuZFRydW5jTWVtYik7CisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMt PnN0YXJ0VHJ1bmNNZW1iLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhscmVjLT5lbmRU cnVuY01lbWIpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3Jk ZXNjL3hsb2dkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYwpp bmRleCAzNjMyOTRkNjIzLi5hYWExOWM4MWM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv eGxvZ2Rlc2MuYwpAQCAtNjYsNyArNjYsNyBAQCB4bG9nX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhM b2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlDaGVja1BvaW50ICpjaGVja3BvaW50ID0gKENoZWNr UG9pbnQgKikgcmVjOwogCiAJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAicmVkbyAlWC8lWDsgIgot CQkJCQkJICJ0bGkgJXU7IHByZXYgdGxpICV1OyBmcHcgJXM7IHdhbF9sZXZlbCAlczsgeGlkICV1 OiV1OyBvaWQgJXU7IG11bHRpICV1OyBvZmZzZXQgJXU7ICIKKwkJCQkJCSAidGxpICV1OyBwcmV2 IHRsaSAldTsgZnB3ICVzOyB3YWxfbGV2ZWwgJXM7IHhpZCAldToldTsgb2lkICV1OyBtdWx0aSAl dTsgb2Zmc2V0ICVsbHU7ICIKIAkJCQkJCSAib2xkZXN0IHhpZCAldSBpbiBEQiAldTsgb2xkZXN0 IG11bHRpICV1IGluIERCICV1OyAiCiAJCQkJCQkgIm9sZGVzdC9uZXdlc3QgY29tbWl0IHRpbWVz dGFtcCB4aWQ6ICV1LyV1OyAiCiAJCQkJCQkgIm9sZGVzdCBydW5uaW5nIHhpZCAldTsgJXMiLApA QCAtNzksNyArNzksNyBAQCB4bG9nX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCQkJCQkJIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjaGVja3BvaW50LT5u ZXh0WGlkKSwKIAkJCQkJCSBjaGVja3BvaW50LT5uZXh0T2lkLAogCQkJCQkJIGNoZWNrcG9pbnQt Pm5leHRNdWx0aSwKLQkJCQkJCSBjaGVja3BvaW50LT5uZXh0TXVsdGlPZmZzZXQsCisJCQkJCQkg KHVuc2lnbmVkIGxvbmcgbG9uZykgY2hlY2twb2ludC0+bmV4dE11bHRpT2Zmc2V0LAogCQkJCQkJ IGNoZWNrcG9pbnQtPm9sZGVzdFhpZCwKIAkJCQkJCSBjaGVja3BvaW50LT5vbGRlc3RYaWREQiwK IAkJCQkJCSBjaGVja3BvaW50LT5vbGRlc3RNdWx0aSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v bXVsdGl4YWN0LmMKaW5kZXggOGMzN2Q3ZWJhNy4uYWI5MDkxMmVkMyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTEyNjQsNyArMTI2NCw4IEBAIEdldE5ld011bHRp WGFjdElkKGludCBubWVtYmVycywgTXVsdGlYYWN0T2Zmc2V0ICpvZmZzZXQpCiAKIAlMV0xvY2tS ZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCi0JZGVidWdfZWxvZzQoREVCVUcyLCAiR2V0TmV3 OiByZXR1cm5pbmcgJXUgb2Zmc2V0ICV1IiwgcmVzdWx0LCAqb2Zmc2V0KTsKKwlkZWJ1Z19lbG9n NChERUJVRzIsICJHZXROZXc6IHJldHVybmluZyAldSBvZmZzZXQgJWxsdSIsIHJlc3VsdCwKKwkJ CQkodW5zaWduZWQgbG9uZyBsb25nKSAqb2Zmc2V0KTsKIAlyZXR1cm4gcmVzdWx0OwogfQogCkBA IC0yMjkzLDggKzIyOTQsOSBAQCBNdWx0aVhhY3RHZXRDaGVja3B0TXVsdGkoYm9vbCBpc19zaHV0 ZG93biwKIAlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCiAJZGVidWdfZWxvZzYo REVCVUcyLAotCQkJCSJNdWx0aVhhY3Q6IGNoZWNrcG9pbnQgaXMgbmV4dE11bHRpICV1LCBuZXh0 T2Zmc2V0ICV1LCBvbGRlc3RNdWx0aSAldSBpbiBEQiAldSIsCi0JCQkJKm5leHRNdWx0aSwgKm5l eHRNdWx0aU9mZnNldCwgKm9sZGVzdE11bHRpLCAqb2xkZXN0TXVsdGlEQik7CisJCQkJIk11bHRp WGFjdDogY2hlY2twb2ludCBpcyBuZXh0TXVsdGkgJXUsIG5leHRPZmZzZXQgJWxsdSwgb2xkZXN0 TXVsdGkgJXUgaW4gREIgJXUiLAorCQkJCSpuZXh0TXVsdGksICh1bnNpZ25lZCBsb25nIGxvbmcp ICpuZXh0TXVsdGlPZmZzZXQsICpvbGRlc3RNdWx0aSwKKwkJCQkqb2xkZXN0TXVsdGlEQik7CiB9 CiAKIC8qCkBAIC0yMzI4LDggKzIzMzAsOCBAQCB2b2lkCiBNdWx0aVhhY3RTZXROZXh0TVhhY3Qo TXVsdGlYYWN0SWQgbmV4dE11bHRpLAogCQkJCQkgIE11bHRpWGFjdE9mZnNldCBuZXh0TXVsdGlP ZmZzZXQpCiB7Ci0JZGVidWdfZWxvZzQoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIG5leHQg bXVsdGkgdG8gJXUgb2Zmc2V0ICV1IiwKLQkJCQluZXh0TXVsdGksIG5leHRNdWx0aU9mZnNldCk7 CisJZGVidWdfZWxvZzQoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIG5leHQgbXVsdGkgdG8g JXUgb2Zmc2V0ICVsbHUiLAorCQkJCW5leHRNdWx0aSwgKHVuc2lnbmVkIGxvbmcgbG9uZykgbmV4 dE11bHRpT2Zmc2V0KTsKIAlMV0xvY2tBY3F1aXJlKE11bHRpWGFjdEdlbkxvY2ssIExXX0VYQ0xV U0lWRSk7CiAJTXVsdGlYYWN0U3RhdGUtPm5leHRNWGFjdCA9IG5leHRNdWx0aTsKIAlNdWx0aVhh Y3RTdGF0ZS0+bmV4dE9mZnNldCA9IG5leHRNdWx0aU9mZnNldDsKQEAgLTI1MTksOCArMjUyMSw4 IEBAIE11bHRpWGFjdEFkdmFuY2VOZXh0TVhhY3QoTXVsdGlYYWN0SWQgbWluTXVsdGksCiAJfQog CWlmIChNdWx0aVhhY3RPZmZzZXRQcmVjZWRlcyhNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldCwg bWluTXVsdGlPZmZzZXQpKQogCXsKLQkJZGVidWdfZWxvZzMoREVCVUcyLCAiTXVsdGlYYWN0OiBz ZXR0aW5nIG5leHQgb2Zmc2V0IHRvICV1IiwKLQkJCQkJbWluTXVsdGlPZmZzZXQpOworCQlkZWJ1 Z19lbG9nMyhERUJVRzIsICJNdWx0aVhhY3Q6IHNldHRpbmcgbmV4dCBvZmZzZXQgdG8gJWxsdSIs CisJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIG1pbk11bHRpT2Zmc2V0KTsKIAkJTXVsdGlYYWN0 U3RhdGUtPm5leHRPZmZzZXQgPSBtaW5NdWx0aU9mZnNldDsKIAl9CiAJTFdMb2NrUmVsZWFzZShN dWx0aVhhY3RHZW5Mb2NrKTsKQEAgLTMyMTEsMTEgKzMyMTMsMTIgQEAgVHJ1bmNhdGVNdWx0aVhh Y3QoTXVsdGlYYWN0SWQgbmV3T2xkZXN0TXVsdGksIE9pZCBuZXdPbGRlc3RNdWx0aURCKQogCiAJ ZWxvZyhERUJVRzEsICJwZXJmb3JtaW5nIG11bHRpeGFjdCB0cnVuY2F0aW9uOiAiCiAJCSAib2Zm c2V0cyBbJXUsICV1KSwgb2Zmc2V0cyBzZWdtZW50cyBbJWxseCwgJWxseCksICIKLQkJICJtZW1i ZXJzIFsldSwgJXUpLCBtZW1iZXJzIHNlZ21lbnRzIFslbGx4LCAlbGx4KSIsCisJCSAibWVtYmVy cyBbJWxsdSwgJWxsdSksIG1lbWJlcnMgc2VnbWVudHMgWyVsbHgsICVsbHgpIiwKIAkJIG9sZGVz dE11bHRpLCBuZXdPbGRlc3RNdWx0aSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcpIE11bHRpWGFj dElkVG9PZmZzZXRTZWdtZW50KG9sZGVzdE11bHRpKSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcp IE11bHRpWGFjdElkVG9PZmZzZXRTZWdtZW50KG5ld09sZGVzdE11bHRpKSwKLQkJIG9sZGVzdE9m ZnNldCwgbmV3T2xkZXN0T2Zmc2V0LAorCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgb2xkZXN0T2Zm c2V0LAorCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgbmV3T2xkZXN0T2Zmc2V0LAogCQkgKHVuc2ln bmVkIGxvbmcgbG9uZykgTVhPZmZzZXRUb01lbWJlclNlZ21lbnQob2xkZXN0T2Zmc2V0KSwKIAkJ ICh1bnNpZ25lZCBsb25nIGxvbmcpIE1YT2Zmc2V0VG9NZW1iZXJTZWdtZW50KG5ld09sZGVzdE9m ZnNldCkpOwogCkBAIC0zNDcxLDExICszNDc0LDEyIEBAIG11bHRpeGFjdF9yZWRvKFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWVsb2coREVCVUcxLCAicmVwbGF5aW5nIG11bHRpeGFjdCB0 cnVuY2F0aW9uOiAiCiAJCQkgIm9mZnNldHMgWyV1LCAldSksIG9mZnNldHMgc2VnbWVudHMgWyVs bHgsICVsbHgpLCAiCi0JCQkgIm1lbWJlcnMgWyV1LCAldSksIG1lbWJlcnMgc2VnbWVudHMgWyVs bHgsICVsbHgpIiwKKwkJCSAibWVtYmVycyBbJWxsdSwgJWxsdSksIG1lbWJlcnMgc2VnbWVudHMg WyVsbHgsICVsbHgpIiwKIAkJCSB4bHJlYy5zdGFydFRydW5jT2ZmLCB4bHJlYy5lbmRUcnVuY09m ZiwKIAkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBNdWx0aVhhY3RJZFRvT2Zmc2V0U2VnbWVudCh4 bHJlYy5zdGFydFRydW5jT2ZmKSwKIAkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBNdWx0aVhhY3RJ ZFRvT2Zmc2V0U2VnbWVudCh4bHJlYy5lbmRUcnVuY09mZiksCi0JCQkgeGxyZWMuc3RhcnRUcnVu Y01lbWIsIHhscmVjLmVuZFRydW5jTWVtYiwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJl Yy5zdGFydFRydW5jTWVtYiwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJlYy5lbmRUcnVu Y01lbWIsCiAJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgTVhPZmZzZXRUb01lbWJlclNlZ21lbnQo eGxyZWMuc3RhcnRUcnVuY01lbWIpLAogCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIE1YT2Zmc2V0 VG9NZW1iZXJTZWdtZW50KHhscmVjLmVuZFRydW5jTWVtYikpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCmluZGV4IDA1YzczOGQ2NjEuLjcyN2I2ZTc0NGYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCkBAIC04NzYsOCArODc2 LDkgQEAgSW5pdFdhbFJlY292ZXJ5KENvbnRyb2xGaWxlRGF0YSAqQ29udHJvbEZpbGUsIGJvb2wg Kndhc1NodXRkb3duX3B0ciwKIAkJCQkJCQkgVTY0RnJvbUZ1bGxUcmFuc2FjdGlvbklkKGNoZWNr UG9pbnQubmV4dFhpZCksCiAJCQkJCQkJIGNoZWNrUG9pbnQubmV4dE9pZCkpKTsKIAllcmVwb3J0 KERFQlVHMSwKLQkJCShlcnJtc2dfaW50ZXJuYWwoIm5leHQgTXVsdGlYYWN0SWQ6ICV1OyBuZXh0 IE11bHRpWGFjdE9mZnNldDogJXUiLAotCQkJCQkJCSBjaGVja1BvaW50Lm5leHRNdWx0aSwgY2hl Y2tQb2ludC5uZXh0TXVsdGlPZmZzZXQpKSk7CisJCQkoZXJybXNnX2ludGVybmFsKCJuZXh0IE11 bHRpWGFjdElkOiAldTsgbmV4dCBNdWx0aVhhY3RPZmZzZXQ6ICVsbHUiLAorCQkJCQkJCSBjaGVj a1BvaW50Lm5leHRNdWx0aSwKKwkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgY2hlY2tQb2lu dC5uZXh0TXVsdGlPZmZzZXQpKSk7CiAJZXJlcG9ydChERUJVRzEsCiAJCQkoZXJybXNnX2ludGVy bmFsKCJvbGRlc3QgdW5mcm96ZW4gdHJhbnNhY3Rpb24gSUQ6ICV1LCBpbiBkYXRhYmFzZSAldSIs CiAJCQkJCQkJIGNoZWNrUG9pbnQub2xkZXN0WGlkLCBjaGVja1BvaW50Lm9sZGVzdFhpZERCKSkp OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jIGIv c3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jCmluZGV4IDkzYTA1ZDgwY2Eu LjQzYjY3Mjc1NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJv bGRhdGEuYworKysgYi9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKQEAg LTI1Myw4ICsyNTMsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCSAgIENvbnRy b2xGaWxlLT5jaGVja1BvaW50Q29weS5uZXh0T2lkKTsKIAlwcmludGYoXygiTGF0ZXN0IGNoZWNr cG9pbnQncyBOZXh0TXVsdGlYYWN0SWQ6ICAldVxuIiksCiAJCSAgIENvbnRyb2xGaWxlLT5jaGVj a1BvaW50Q29weS5uZXh0TXVsdGkpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5l eHRNdWx0aU9mZnNldDogICV1XG4iKSwKLQkJICAgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5 Lm5leHRNdWx0aU9mZnNldCk7CisJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dE11 bHRpT2Zmc2V0OiAgJWxsdVxuIiksCisJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIENvbnRyb2xG aWxlLT5jaGVja1BvaW50Q29weS5uZXh0TXVsdGlPZmZzZXQpOwogCXByaW50ZihfKCJMYXRlc3Qg Y2hlY2twb2ludCdzIG9sZGVzdFhJRDogICAgICAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUt PmNoZWNrUG9pbnRDb3B5Lm9sZGVzdFhpZCk7CiAJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50 J3Mgb2xkZXN0WElEJ3MgREI6ICAgJXVcbiIpLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXNl dHdhbC9wZ19yZXNldHdhbC5jIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5jCmlu ZGV4IGU5ZGNiNWE2ZDguLjk4NWNkMDY4MDIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmVzZXR3 YWwvcGdfcmVzZXR3YWwuYworKysgYi9zcmMvYmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMK QEAgLTczNyw4ICs3MzcsOCBAQCBQcmludENvbnRyb2xWYWx1ZXMoYm9vbCBndWVzc2VkKQogCQkg ICBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0T2lkKTsKIAlwcmludGYoXygiTGF0ZXN0 IGNoZWNrcG9pbnQncyBOZXh0TXVsdGlYYWN0SWQ6ICAldVxuIiksCiAJCSAgIENvbnRyb2xGaWxl LmNoZWNrUG9pbnRDb3B5Lm5leHRNdWx0aSk7Ci0JcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50 J3MgTmV4dE11bHRpT2Zmc2V0OiAgJXVcbiIpLAotCQkgICBDb250cm9sRmlsZS5jaGVja1BvaW50 Q29weS5uZXh0TXVsdGlPZmZzZXQpOworCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5l eHRNdWx0aU9mZnNldDogICVsbHVcbiIpLAorCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250 cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0TXVsdGlPZmZzZXQpOwogCXByaW50ZihfKCJMYXRl c3QgY2hlY2twb2ludCdzIG9sZGVzdFhJRDogICAgICAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZp bGUuY2hlY2tQb2ludENvcHkub2xkZXN0WGlkKTsKIAlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9p bnQncyBvbGRlc3RYSUQncyBEQjogICAldVxuIiksCkBAIC04MDksOCArODA5LDggQEAgUHJpbnRO ZXdDb250cm9sVmFsdWVzKHZvaWQpCiAKIAlpZiAoc2V0X214b2ZmICE9IC0xKQogCXsKLQkJcHJp bnRmKF8oIk5leHRNdWx0aU9mZnNldDogICAgICAgICAgICAgICAgICAgICAgJXVcbiIpLAotCQkJ ICAgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHkubmV4dE11bHRpT2Zmc2V0KTsKKwkJcHJpbnRm KF8oIk5leHRNdWx0aU9mZnNldDogICAgICAgICAgICAgICAgICAgICAgJWxsdVxuIiksCisJCQkg ICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0TXVs dGlPZmZzZXQpOwogCX0KIAogCWlmIChzZXRfb2lkICE9IDApCi0tIAoyLjQzLjAKCg== --000000000000322ad806272fd08e Content-Type: application/octet-stream; name="v8-0004-Get-rid-of-MultiXactMemberFreezeThreshold-call.patch" Content-Disposition: attachment; filename="v8-0004-Get-rid-of-MultiXactMemberFreezeThreshold-call.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3n20vpp6 RnJvbSBlZGZmMzg1N2UxY2I2YzY3ZTc1YmUxYjAwZmQ1ZGExY2Q0YmRlMzQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjMgT2N0IDIwMjQgMTg6MjM6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIHY4IDQvNV0g R2V0IHJpZCBvZiBNdWx0aVhhY3RNZW1iZXJGcmVlemVUaHJlc2hvbGQgY2FsbC4KClNpbmNlIE1h eE11bHRpWGFjdE9mZnNldCBhcmUgVUlOVDY0X01BWCBub3csIE1VTFRJWEFDVF9NRU1CRVJfU0FG RV9USFJFU0hPTEQgYW5kCk1VTFRJWEFDVF9NRU1CRVJfREFOR0VSX1RIUkVTSE9MRCB2YWx1ZXMg YXJlIG5vdCBtZWFuaW5nZnVsIGFueSBtb3JlLiBUaHVzLApNdWx0aVhhY3RNZW1iZXJGcmVlemVU aHJlc2hvbGQgaXMgbm90IG5lZWRlZCB0b28uCgpJbnN0ZWFkLCBzd2l0Y2ggdG8gTVVMVElYQUNU X01FTUJFUl9BVVRPVkFDX1RIUkVTSE9MRCAoZXEgMl4zMikgbWVtYmVycwp0aHJlc2hvbGQuIEl0 IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gZm9yY2UgYXV0b3ZhY3V1bSBvciBu b3QuCgpBdXRob3I6IE1heGltIE9ybG92IDxvcmxvdm1nQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyB8IDExNyArKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyAgICAgICAgICB8ICAgMiArLQog c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgICAgfCAgIDQgKy0KIHNyYy9pbmNs dWRlL2FjY2Vzcy9tdWx0aXhhY3QuaCAgICAgICAgIHwgICAxIC0KIDQgZmlsZXMgY2hhbmdlZCwg MTUgaW5zZXJ0aW9ucygrKSwgMTA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0vbXVsdGl4YWN0LmMKaW5kZXggYzUxZTAzZTgzMi4uYzFmMjI4YzVmYiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTIwNCwxMCArMjA0LDE0IEBAIE1YT2Zmc2V0 VG9NZW1iZXJPZmZzZXQoTXVsdGlYYWN0T2Zmc2V0IG9mZnNldCkKIAkJbWVtYmVyX2luX2dyb3Vw ICogc2l6ZW9mKFRyYW5zYWN0aW9uSWQpOwogfQogCi0vKiBNdWx0aXhhY3QgbWVtYmVycyB3cmFw YXJvdW5kIHRocmVzaG9sZHMuICovCi0jZGVmaW5lIE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJF U0hPTEQJCShNYXhNdWx0aVhhY3RPZmZzZXQgLyAyKQotI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVS X0RBTkdFUl9USFJFU0hPTEQJXAotCShNYXhNdWx0aVhhY3RPZmZzZXQgLSBNYXhNdWx0aVhhY3RP ZmZzZXQgLyA0KQorLyoKKyAqIE11bHRpeGFjdCBtZW1iZXJzIHdhcm5pbmcgdGhyZXNob2xkLgor ICoKKyAqIElmIGRpZmZlcmVuY2UgYmV0dHdlZW4gbmV4dE9mZnNldCBhbmQgb2xkZXN0T2Zmc2V0 IGV4Y2VlZCB0aGlzIHZhbHVlLCB3ZQorICogdHJpZ2dlciBhdXRvdmFjdXVtaW4gb3JkZXIgdG8g cmVsZWFzZSB0aGUgZGlzayBzcGFjZSwgcmVkdWNlIHRhYmxlIGJsb2F0IGlmCisgKiBwb3NzaWJs ZS4KKyAqLworI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVSX0FVVE9WQUNfVEhSRVNIT0xECQlVSU5U NjRDT05TVCgweEZGRkZGRkZGKQogCiBzdGF0aWMgaW5saW5lIE11bHRpWGFjdElkCiBQcmV2aW91 c011bHRpWGFjdElkKE11bHRpWGFjdElkIG11bHRpKQpAQCAtMjYxNiwxNSArMjYyMCwxMyBAQCBH ZXRPbGRlc3RNdWx0aVhhY3RJZCh2b2lkKQogfQogCiAvKgotICogRGV0ZXJtaW5lIGhvdyBhZ2dy ZXNzaXZlbHkgd2UgbmVlZCB0byB2YWN1dW0gaW4gb3JkZXIgdG8gcHJldmVudCBtZW1iZXIKLSAq IHdyYXBhcm91bmQuCisgKiBEZXRlcm1pbmUgaWYgd2UgbmVlZCB0byB2YWN1dW0gZm9yIG1lbWJl ciBvciBub3QuCiAgKgogICogVG8gZG8gc28gZGV0ZXJtaW5lIHdoYXQncyB0aGUgb2xkZXN0IG1l bWJlciBvZmZzZXQgYW5kIGluc3RhbGwgdGhlIGxpbWl0CiAgKiBpbmZvIGluIE11bHRpWGFjdFN0 YXRlLCB3aGVyZSBpdCBjYW4gYmUgdXNlZCB0byBwcmV2ZW50IG92ZXJydW4gb2Ygb2xkIGRhdGEK ICAqIGluIHRoZSBtZW1iZXJzIFNMUlUgYXJlYS4KICAqCi0gKiBUaGUgcmV0dXJuIHZhbHVlIGlz IHRydWUgaWYgZW1lcmdlbmN5IGF1dG92YWN1dW0gaXMgcmVxdWlyZWQgYW5kIGZhbHNlCi0gKiBv dGhlcndpc2UuCisgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHRydWUgaWYgYXV0b3ZhY3V1bSBpcyBy ZXF1aXJlZCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgogICovCiBzdGF0aWMgYm9vbAogU2V0T2Zmc2V0 VmFjdXVtTGltaXQoYm9vbCBpc19zdGFydHVwKQpAQCAtMjcxMiwxMCArMjcxNCwxMCBAQCBTZXRP ZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJTFdMb2NrUmVsZWFzZShNdWx0aVhh Y3RHZW5Mb2NrKTsKIAogCS8qCi0JICogRG8gd2UgbmVlZCBhbiBlbWVyZ2VuY3kgYXV0b3ZhY3V1 bT8JSWYgd2UncmUgbm90IHN1cmUsIGFzc3VtZSB5ZXMuCisJICogRG8gd2UgbmVlZCBhdXRvdmFj dXVtPwlJZiB3ZSdyZSBub3Qgc3VyZSwgYXNzdW1lIHllcy4KIAkgKi8KIAlyZXR1cm4gIW9sZGVz dE9mZnNldEtub3duIHx8Ci0JCShuZXh0T2Zmc2V0IC0gb2xkZXN0T2Zmc2V0ID4gTVVMVElYQUNU X01FTUJFUl9TQUZFX1RIUkVTSE9MRCk7CisJCShuZXh0T2Zmc2V0IC0gb2xkZXN0T2Zmc2V0ID4g TVVMVElYQUNUX01FTUJFUl9BVVRPVkFDX1RIUkVTSE9MRCk7CiB9CiAKIC8qCkBAIC0yNzYxLDEw MSArMjc2Myw2IEBAIGZpbmRfbXVsdGl4YWN0X3N0YXJ0KE11bHRpWGFjdElkIG11bHRpLCBNdWx0 aVhhY3RPZmZzZXQgKnJlc3VsdCkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotLyoKLSAqIERldGVybWlu ZSBob3cgbWFueSBtdWx0aXhhY3RzLCBhbmQgaG93IG1hbnkgbXVsdGl4YWN0IG1lbWJlcnMsIGN1 cnJlbnRseQotICogZXhpc3QuICBSZXR1cm4gZmFsc2UgaWYgdW5hYmxlIHRvIGRldGVybWluZS4K LSAqLwotc3RhdGljIGJvb2wKLVJlYWRNdWx0aVhhY3RDb3VudHModWludDMyICptdWx0aXhhY3Rz LCBNdWx0aVhhY3RPZmZzZXQgKm1lbWJlcnMpCi17Ci0JTXVsdGlYYWN0T2Zmc2V0IG5leHRPZmZz ZXQ7Ci0JTXVsdGlYYWN0T2Zmc2V0IG9sZGVzdE9mZnNldDsKLQlNdWx0aVhhY3RJZCBvbGRlc3RN dWx0aVhhY3RJZDsKLQlNdWx0aVhhY3RJZCBuZXh0TXVsdGlYYWN0SWQ7Ci0JYm9vbAkJb2xkZXN0 T2Zmc2V0S25vd247Ci0KLQlMV0xvY2tBY3F1aXJlKE11bHRpWGFjdEdlbkxvY2ssIExXX1NIQVJF RCk7Ci0JbmV4dE9mZnNldCA9IE11bHRpWGFjdFN0YXRlLT5uZXh0T2Zmc2V0OwotCW9sZGVzdE11 bHRpWGFjdElkID0gTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE11bHRpWGFjdElkOwotCW5leHRNdWx0 aVhhY3RJZCA9IE11bHRpWGFjdFN0YXRlLT5uZXh0TVhhY3Q7Ci0Jb2xkZXN0T2Zmc2V0ID0gTXVs dGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldDsKLQlvbGRlc3RPZmZzZXRLbm93biA9IE11bHRpWGFj dFN0YXRlLT5vbGRlc3RPZmZzZXRLbm93bjsKLQlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdEdlbkxv Y2spOwotCi0JaWYgKCFvbGRlc3RPZmZzZXRLbm93bikKLQkJcmV0dXJuIGZhbHNlOwotCi0JKm1l bWJlcnMgPSBuZXh0T2Zmc2V0IC0gb2xkZXN0T2Zmc2V0OwotCSptdWx0aXhhY3RzID0gbmV4dE11 bHRpWGFjdElkIC0gb2xkZXN0TXVsdGlYYWN0SWQ7Ci0JcmV0dXJuIHRydWU7Ci19Ci0KLS8qCi0g KiBNdWx0aXhhY3QgbWVtYmVycyBjYW4gYmUgcmVtb3ZlZCBvbmNlIHRoZSBtdWx0aXhhY3RzIHRo YXQgcmVmZXIgdG8gdGhlbQotICogYXJlIG9sZGVyIHRoYW4gZXZlcnkgZGF0bWlubXhpZC4gIGF1 dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIGFuZAotICogdmFjdXVtX211bHRpeGFj dF9mcmVlemVfdGFibGVfYWdlIHdvcmsgdG9nZXRoZXIgdG8gbWFrZSBzdXJlIHdlIG5ldmVyIGhh dmUKLSAqIHRvbyBtYW55IG11bHRpeGFjdHM7IHdlIGhvcGUgdGhhdCwgYXQgbGVhc3QgdW5kZXIg bm9ybWFsIGNpcmN1bXN0YW5jZXMsCi0gKiB0aGlzIHdpbGwgYWxzbyBiZSBzdWZmaWNpZW50IHRv IGtlZXAgdXMgZnJvbSB1c2luZyB0b28gbWFueSBvZmZzZXRzLgotICogSG93ZXZlciwgaWYgdGhl IGF2ZXJhZ2UgbXVsdGl4YWN0IGhhcyBtYW55IG1lbWJlcnMsIHdlIG1pZ2h0IGV4aGF1c3QgdGhl Ci0gKiBtZW1iZXJzIHNwYWNlIHdoaWxlIHN0aWxsIHVzaW5nIGZldyBlbm91Z2ggbWVtYmVycyB0 aGF0IHRoZXNlIGxpbWl0cyBmYWlsCi0gKiB0byB0cmlnZ2VyIHJlbG1pbm14aWQgYWR2YW5jZW1l bnQgYnkgVkFDVVVNLiAgQXQgdGhhdCBwb2ludCwgd2UnZCBoYXZlIG5vCi0gKiBjaG9pY2UgYnV0 IHRvIHN0YXJ0IGZhaWxpbmcgbXVsdGl4YWN0LWNyZWF0aW5nIG9wZXJhdGlvbnMgd2l0aCBhbiBl cnJvci4KLSAqCi0gKiBUbyBwcmV2ZW50IHRoYXQsIGlmIG1vcmUgdGhhbiBhIHRocmVzaG9sZCBw b3J0aW9uIG9mIHRoZSBtZW1iZXJzIHNwYWNlIGlzCi0gKiB1c2VkLCB3ZSBlZmZlY3RpdmVseSBy ZWR1Y2UgYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UgYW5kCi0gKiB0byBhIHZh bHVlIGp1c3QgbGVzcyB0aGFuIHRoZSBudW1iZXIgb2YgbXVsdGl4YWN0cyBpbiB1c2UuICBXZSBo b3BlIHRoYXQKLSAqIHRoaXMgd2lsbCBxdWlja2x5IHRyaWdnZXIgYXV0b3ZhY3V1bWluZyBvbiB0 aGUgdGFibGUgb3IgdGFibGVzIHdpdGggdGhlCi0gKiBvbGRlc3QgcmVsbWlubXhpZCwgdGh1cyBh bGxvd2luZyBkYXRtaW5teGlkIHZhbHVlcyB0byBhZHZhbmNlIGFuZCByZW1vdmluZwotICogc29t ZSBtZW1iZXJzLgotICoKLSAqIEFzIHRoZSBmcmFjdGlvbiBvZiB0aGUgbWVtYmVyIHNwYWNlIGN1 cnJlbnRseSBpbiB1c2UgZ3Jvd3MsIHdlIGJlY29tZQotICogbW9yZSBhZ2dyZXNzaXZlIGluIGNs YW1waW5nIHRoaXMgdmFsdWUuICBUaGF0IG5vdCBvbmx5IGNhdXNlcyBhdXRvdmFjdXVtCi0gKiB0 byByYW1wIHVwLCBidXQgYWxzbyBtYWtlcyBhbnkgbWFudWFsIHZhY3V1bXMgdGhlIHVzZXIgaXNz dWVzIG1vcmUKLSAqIGFnZ3Jlc3NpdmUuICBUaGlzIGhhcHBlbnMgYmVjYXVzZSB2YWN1dW1fZ2V0 X2N1dG9mZnMoKSB3aWxsIGNsYW1wIHRoZQotICogZnJlZXplIHRhYmxlIGFuZCB0aGUgbWluaW11 bSBmcmVlemUgYWdlIGN1dG9mZnMgYmFzZWQgb24gdGhlIGVmZmVjdGl2ZQotICogYXV0b3ZhY3V1 bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UgdGhpcyBmdW5jdGlvbiByZXR1cm5zLiAgSW4gdGhl IHdvcnN0Ci0gKiBjYXNlLCB3ZSdsbCBjbGFpbSB0aGUgZnJlZXplX21heF9hZ2UgdG8gemVybywg YW5kIGV2ZXJ5IHZhY3V1bSBvZiBhbnkKLSAqIHRhYmxlIHdpbGwgZnJlZXplIGV2ZXJ5IG11bHRp eGFjdC4KLSAqLwotaW50Ci1NdWx0aVhhY3RNZW1iZXJGcmVlemVUaHJlc2hvbGQodm9pZCkKLXsK LQlNdWx0aVhhY3RPZmZzZXQgbWVtYmVyczsKLQl1aW50MzIJCW11bHRpeGFjdHM7Ci0JdWludDMy CQl2aWN0aW1fbXVsdGl4YWN0czsKLQlkb3VibGUJCWZyYWN0aW9uOwotCWludAkJCXJlc3VsdDsK LQotCS8qIElmIHdlIGNhbid0IGRldGVybWluZSBtZW1iZXIgc3BhY2UgdXRpbGl6YXRpb24sIGFz c3VtZSB0aGUgd29yc3QuICovCi0JaWYgKCFSZWFkTXVsdGlYYWN0Q291bnRzKCZtdWx0aXhhY3Rz LCAmbWVtYmVycykpCi0JCXJldHVybiAwOwotCi0JLyogSWYgbWVtYmVyIHNwYWNlIHV0aWxpemF0 aW9uIGlzIGxvdywgbm8gc3BlY2lhbCBhY3Rpb24gaXMgcmVxdWlyZWQuICovCi0JaWYgKG1lbWJl cnMgPD0gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCkKLQkJcmV0dXJuIGF1dG92YWN1 dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlOwotCi0JLyoKLQkgKiBDb21wdXRlIGEgdGFyZ2V0 IGZvciByZWxtaW5teGlkIGFkdmFuY2VtZW50LiAgVGhlIG51bWJlciBvZiBtdWx0aXhhY3RzCi0J ICogd2UgdHJ5IHRvIGVsaW1pbmF0ZSBmcm9tIHRoZSBzeXN0ZW0gaXMgYmFzZWQgb24gaG93IGZh ciB3ZSBhcmUgcGFzdAotCSAqIE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJFU0hPTEQuCi0JICov Ci0JZnJhY3Rpb24gPSAoZG91YmxlKSAobWVtYmVycyAtIE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9U SFJFU0hPTEQpOwotCWZyYWN0aW9uIC89IChkb3VibGUpIChNVUxUSVhBQ1RfTUVNQkVSX0RBTkdF Ul9USFJFU0hPTEQgLSBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xEKTsKLQotCXZpY3Rp bV9tdWx0aXhhY3RzID0gbXVsdGl4YWN0cyAqIGZyYWN0aW9uOwotCi0JLyogZnJhY3Rpb24gY291 bGQgYmUgPiAxLjAsIGJ1dCBsb3dlc3QgcG9zc2libGUgZnJlZXplIGFnZSBpcyB6ZXJvICovCi0J aWYgKHZpY3RpbV9tdWx0aXhhY3RzID4gbXVsdGl4YWN0cykKLQkJcmV0dXJuIDA7Ci0JcmVzdWx0 ID0gbXVsdGl4YWN0cyAtIHZpY3RpbV9tdWx0aXhhY3RzOwotCi0JLyoKLQkgKiBDbGFtcCB0byBh dXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSwgc28gdGhhdCB3ZSBuZXZlciBtYWtl Ci0JICogYXV0b3ZhY3V1bSBsZXNzIGFnZ3Jlc3NpdmUgdGhhbiBpdCB3b3VsZCBvdGhlcndpc2Ug YmUuCi0JICovCi0JcmV0dXJuIE1pbihyZXN1bHQsIGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6 ZV9tYXhfYWdlKTsKLX0KLQogdHlwZWRlZiBzdHJ1Y3QgbXh0cnVuY2luZm8KIHsKIAlpbnQ2NAkJ ZWFybGllc3RFeGlzdGluZ1BhZ2U7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCmluZGV4IDg2ZjM2YjM2OTUu LmU3NTA2ZTI2OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCkBAIC0xMTMzLDcgKzExMzMsNyBAQCB2 YWN1dW1fZ2V0X2N1dG9mZnMoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgKnBhcmFt cywKIAkgKiBub3JtYWxseSBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSwgYnV0 IG1heSBiZSBsZXNzIGlmIHdlIGFyZQogCSAqIHNob3J0IG9mIG11bHRpeGFjdCBtZW1iZXIgc3Bh Y2UuCiAJICovCi0JZWZmZWN0aXZlX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSA9IE11bHRpWGFj dE1lbWJlckZyZWV6ZVRocmVzaG9sZCgpOworCWVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXplX21h eF9hZ2UgPSBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZTsKIAogCS8qCiAJICog QWxtb3N0IHJlYWR5IHRvIHNldCBmcmVlemUgb3V0cHV0IHBhcmFtZXRlcnM7IGNoZWNrIGlmIE9s ZGVzdFhtaW4gb3IKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1 bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggZGMzY2Y4N2Fi YS4uMTgwYmI3ZTk2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFj dXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTExMjIs NyArMTEyMiw3IEBAIGRvX3N0YXJ0X3dvcmtlcih2b2lkKQogCiAJLyogQWxzbyBkZXRlcm1pbmUg dGhlIG9sZGVzdCBkYXRtaW5teGlkIHdlIHdpbGwgY29uc2lkZXIuICovCiAJcmVjZW50TXVsdGkg PSBSZWFkTmV4dE11bHRpWGFjdElkKCk7Ci0JbXVsdGlGb3JjZUxpbWl0ID0gcmVjZW50TXVsdGkg LSBNdWx0aVhhY3RNZW1iZXJGcmVlemVUaHJlc2hvbGQoKTsKKwltdWx0aUZvcmNlTGltaXQgPSBy ZWNlbnRNdWx0aSAtIGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlOwogCWlmICht dWx0aUZvcmNlTGltaXQgPCBGaXJzdE11bHRpWGFjdElkKQogCQltdWx0aUZvcmNlTGltaXQgLT0g Rmlyc3RNdWx0aVhhY3RJZDsKIApAQCAtMTkxNSw3ICsxOTE1LDcgQEAgZG9fYXV0b3ZhY3V1bSh2 b2lkKQogCSAqIG5vcm1hbGx5IGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlLCBi dXQgbWF5IGJlIGxlc3MgaWYgd2UgYXJlCiAJICogc2hvcnQgb2YgbXVsdGl4YWN0IG1lbWJlciBz cGFjZS4KIAkgKi8KLQllZmZlY3RpdmVfbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlID0gTXVsdGlY YWN0TWVtYmVyRnJlZXplVGhyZXNob2xkKCk7CisJZWZmZWN0aXZlX211bHRpeGFjdF9mcmVlemVf bWF4X2FnZSA9IGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlOwogCiAJLyoKIAkg KiBGaW5kIHRoZSBwZ19kYXRhYmFzZSBlbnRyeSBhbmQgc2VsZWN0IHRoZSBkZWZhdWx0IGZyZWV6 ZSBhZ2VzLiBXZSB1c2UKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3Qu aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaAppbmRleCA5MDU4MzYzNGVjLi41YWVm YmRkY2UzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgKKysrIGIv c3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oCkBAIC0xNDMsNyArMTQzLDYgQEAgZXh0ZXJu IHZvaWQgTXVsdGlYYWN0U2V0TmV4dE1YYWN0KE11bHRpWGFjdElkIG5leHRNdWx0aSwKIGV4dGVy biB2b2lkIE11bHRpWGFjdEFkdmFuY2VOZXh0TVhhY3QoTXVsdGlYYWN0SWQgbWluTXVsdGksCiAJ CQkJCQkJCQkgIE11bHRpWGFjdE9mZnNldCBtaW5NdWx0aU9mZnNldCk7CiBleHRlcm4gdm9pZCBN dWx0aVhhY3RBZHZhbmNlT2xkZXN0KE11bHRpWGFjdElkIG9sZGVzdE11bHRpLCBPaWQgb2xkZXN0 TXVsdGlEQik7Ci1leHRlcm4gaW50CU11bHRpWGFjdE1lbWJlckZyZWV6ZVRocmVzaG9sZCh2b2lk KTsKIAogZXh0ZXJuIHZvaWQgbXVsdGl4YWN0X3R3b3BoYXNlX3JlY292ZXIoVHJhbnNhY3Rpb25J ZCB4aWQsIHVpbnQxNiBpbmZvLAogCQkJCQkJCQkJICAgdm9pZCAqcmVjZGF0YSwgdWludDMyIGxl bik7Ci0tIAoyLjQzLjAKCg== --000000000000322ad806272fd08e Content-Type: application/octet-stream; name="v8-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Disposition: attachment; filename="v8-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3n20vpm5 RnJvbSBjMzI0MzE1MTUyMzQ2ZDdmMjA5MGFhZjc5YjE0MjcyNmFhMjQ4NmFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogVHVlLCAxMyBBdWcgMjAyNCAxNDo0NDo1MCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjgg My81XSBNYWtlIHBnX3VwZ3JhZGUgY29udmVydCBtdWx0aXhhY3Qgb2Zmc2V0cy4KCkF1dGhvcjog TWF4aW0gT3Jsb3YgPG9ybG92bWdAZ21haWwuY29tPgpBdXRob3I6IFl1cmEgU29rb2xvdiA8eS5z b2tvbG92QHBvc3RncmVzcHJvLnJ1PgotLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9NYWtlZmlsZSAg ICAgfCAgIDEgKwogc3JjL2Jpbi9wZ191cGdyYWRlL21lc29uLmJ1aWxkICB8ICAgMSArCiBzcmMv YmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIHwgIDQyICsrLQogc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuaCB8ICAxNCArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jlc2l6ZS5jICB8 IDU0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA1 OTQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv YmluL3BnX3VwZ3JhZGUvc2VncmVzaXplLmMKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3Jh ZGUvTWFrZWZpbGUgYi9zcmMvYmluL3BnX3VwZ3JhZGUvTWFrZWZpbGUKaW5kZXggZjgzZDJiNWQz MC4uNzA5MDhkNjNhMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL01ha2VmaWxlCisr KyBiL3NyYy9iaW4vcGdfdXBncmFkZS9NYWtlZmlsZQpAQCAtMjEsNiArMjEsNyBAQCBPQkpTID0g XAogCWluZm8ubyBcCiAJb3B0aW9uLm8gXAogCXBhcmFsbGVsLm8gXAorCXNlZ3Jlc2l6ZS5vIFwK IAlwZ191cGdyYWRlLm8gXAogCXJlbGZpbGVudW1iZXIubyBcCiAJc2VydmVyLm8gXApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL21lc29uLmJ1aWxkIGIvc3JjL2Jpbi9wZ191cGdyYWRl L21lc29uLmJ1aWxkCmluZGV4IDNkODg0MTk2NzQuLjE2Zjg5OGJhMTQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfdXBncmFkZS9tZXNvbi5idWlsZAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvbWVz b24uYnVpbGQKQEAgLTEwLDYgKzEwLDcgQEAgcGdfdXBncmFkZV9zb3VyY2VzID0gZmlsZXMoCiAg ICdpbmZvLmMnLAogICAnb3B0aW9uLmMnLAogICAncGFyYWxsZWwuYycsCisgICdzZWdyZXNpemUu YycsCiAgICdwZ191cGdyYWRlLmMnLAogICAncmVsZmlsZW51bWJlci5jJywKICAgJ3NlcnZlci5j JywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgYi9zcmMvYmlu L3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCmluZGV4IDY2MzIzNTgxNmYuLjE2NTRlODc3YzAgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKKysrIGIvc3JjL2Jpbi9w Z191cGdyYWRlL3BnX3VwZ3JhZGUuYwpAQCAtNzUwLDggKzc1MCw0MiBAQCBjb3B5X3hhY3RfeGxv Z194aWQodm9pZCkKIAlpZiAob2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0X3ZlciA+PSBNVUxU SVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIgJiYKIAkJbmV3X2NsdXN0ZXIuY29udHJvbGRhdGEu Y2F0X3ZlciA+PSBNVUxUSVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIpCiAJewotCQljb3B5X3N1 YmRpcl9maWxlcygicGdfbXVsdGl4YWN0L29mZnNldHMiLCAicGdfbXVsdGl4YWN0L29mZnNldHMi KTsKLQkJY29weV9zdWJkaXJfZmlsZXMoInBnX211bHRpeGFjdC9tZW1iZXJzIiwgInBnX211bHRp eGFjdC9tZW1iZXJzIik7CisJCS8qCisJCSAqIElmIHRoZSBvbGQgc2VydmVyIGlzIGJlZm9yZSB0 aGUgTVVMVElYQUNUT0ZGU0VUX0ZPUk1BVENIQU5HRV9DQVRfVkVSCisJCSAqIGl0IG11c3QgaGF2 ZSAzMi1iaXQgbXVsdGl4aWQgb2Zmc2V0cywgdGh1cyBpdCBzaG91bGQgYmUgY29udmVydGVkLgor CQkgKi8KKwkJaWYgKG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNhdF92ZXIgPCBNVUxUSVhBQ1RP RkZTRVRfRk9STUFUQ0hBTkdFX0NBVF9WRVIgJiYKKwkJCW5ld19jbHVzdGVyLmNvbnRyb2xkYXRh LmNhdF92ZXIgPj0gTVVMVElYQUNUT0ZGU0VUX0ZPUk1BVENIQU5HRV9DQVRfVkVSKQorCQl7CisJ CQlNdWx0aVhhY3RPZmZzZXQJCW9sZGVzdF9vZmZzZXQsCisJCQkJCQkJCW5leHRfb2Zmc2V0Owor CisJCQlyZW1vdmVfbmV3X3N1YmRpcigicGdfbXVsdGl4YWN0L29mZnNldHMiLCBmYWxzZSk7CisJ CQlwcmVwX3N0YXR1cygiQ29udmVydGluZyBwZ19tdWx0aXhhY3Qvb2Zmc2V0cyB0byA2NC1iaXQi KTsKKwkJCW9sZGVzdF9vZmZzZXQgPSBjb252ZXJ0X211bHRpeGFjdF9vZmZzZXRzKCk7CisJCQlj aGVja19vaygpOworCisJCQlyZW1vdmVfbmV3X3N1YmRpcigicGdfbXVsdGl4YWN0L21lbWJlcnMi LCBmYWxzZSk7CisJCQlwcmVwX3N0YXR1cygiQ29udmVydGluZyBwZ19tdWx0aXhhY3QvbWVtYmVy cyIpOworCQkJY29udmVydF9tdWx0aXhhY3RfbWVtYmVycyhvbGRlc3Rfb2Zmc2V0KTsKKwkJCWNo ZWNrX29rKCk7CisKKwkJCW5leHRfb2Zmc2V0ID0gb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hr cG50X254dG14b2ZmOworCQkJaWYgKG9sZGVzdF9vZmZzZXQpCisJCQl7CisJCQkJaWYgKG5leHRf b2Zmc2V0IDwgb2xkZXN0X29mZnNldCkKKwkJCQkJbmV4dF9vZmZzZXQgKz0gKChNdWx0aVhhY3RP ZmZzZXQpIDEgPDwgMzIpIC0gMTsKKworCQkJCW5leHRfb2Zmc2V0IC09IG9sZGVzdF9vZmZzZXQg LSAxOworCisJCQkJb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2hrcG50X254dG14b2ZmID0gbmV4 dF9vZmZzZXQ7CisJCQl9CisJCX0KKwkJZWxzZQorCQl7CisJCQljb3B5X3N1YmRpcl9maWxlcygi cGdfbXVsdGl4YWN0L29mZnNldHMiLCAicGdfbXVsdGl4YWN0L29mZnNldHMiKTsKKwkJCWNvcHlf c3ViZGlyX2ZpbGVzKCJwZ19tdWx0aXhhY3QvbWVtYmVycyIsICJwZ19tdWx0aXhhY3QvbWVtYmVy cyIpOworCQl9CiAKIAkJcHJlcF9zdGF0dXMoIlNldHRpbmcgbmV4dCBtdWx0aXhhY3QgSUQgYW5k IG9mZnNldCBmb3IgbmV3IGNsdXN0ZXIiKTsKIApAQCAtNzYwLDkgKzc5NCw5IEBAIGNvcHlfeGFj dF94bG9nX3hpZCh2b2lkKQogCQkgKiBjb3VudGVycyBoZXJlIGFuZCB0aGUgb2xkZXN0IG11bHRp IHByZXNlbnQgb24gc3lzdGVtLgogCQkgKi8KIAkJZXhlY19wcm9nKFVUSUxJVFlfTE9HX0ZJTEUs IE5VTEwsIHRydWUsIHRydWUsCi0JCQkJICAiXCIlcy9wZ19yZXNldHdhbFwiIC1PICV1IC1tICV1 LCV1IFwiJXNcIiIsCisJCQkJICAiXCIlcy9wZ19yZXNldHdhbFwiIC1PICVsbHUgLW0gJXUsJXUg XCIlc1wiIiwKIAkJCQkgIG5ld19jbHVzdGVyLmJpbmRpciwKLQkJCQkgIG9sZF9jbHVzdGVyLmNv bnRyb2xkYXRhLmNoa3BudF9ueHRteG9mZiwKKwkJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIG9s ZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRteG9mZiwKIAkJCQkgIG9sZF9jbHVzdGVy LmNvbnRyb2xkYXRhLmNoa3BudF9ueHRtdWx0aSwKIAkJCQkgIG9sZF9jbHVzdGVyLmNvbnRyb2xk YXRhLmNoa3BudF9vbGRzdE11bHRpLAogCQkJCSAgbmV3X2NsdXN0ZXIucGdkYXRhKTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5oCmluZGV4IDUzZjY5M2MyZDQuLjJjODVlYzFlOTQgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuaApAQCAtMTE0LDYgKzExNCwxMyBAQCBleHRlcm4gY2hhciAqb3V0cHV0X2Zp bGVzW107CiAgKi8KICNkZWZpbmUgTVVMVElYQUNUX0ZPUk1BVENIQU5HRV9DQVRfVkVSIDIwMTMw MTIzMQogCisvKgorICogU3dpY3RoIGZyb20gMzItYml0IHRvIDY0LWJpdCBmb3IgbXVsdGl4aWQg b2Zmc2V0cy4KKyAqCisgKiBYWFg6IHNob3VsZCBiZSBjaGFuZ2VkIHRvIHRoZSBhY3R1YWwgQ0FU QUxPR19WRVJTSU9OX05PIG9uIGNvbW1pdC4KKyAqLworI2RlZmluZSBNVUxUSVhBQ1RPRkZTRVRf Rk9STUFUQ0hBTkdFX0NBVF9WRVIgMjAyNDA5MDQxCisKIC8qCiAgKiBsYXJnZSBvYmplY3QgY2h1 bmsgc2l6ZSBhZGRlZCB0byBwZ19jb250cm9sZGF0YSwKICAqIGNvbW1pdCA1ZjkzYzM3ODA1ZTc0 ODU0ODg0ODA5MTZiNDU4NWUwOThkM2NjODgzCkBAIC0yMzAsNyArMjM3LDcgQEAgdHlwZWRlZiBz dHJ1Y3QKIAl1aW50MzIJCWNoa3BudF9ueHRlcG9jaDsKIAl1aW50MzIJCWNoa3BudF9ueHRvaWQ7 CiAJdWludDMyCQljaGtwbnRfbnh0bXVsdGk7Ci0JdWludDMyCQljaGtwbnRfbnh0bXhvZmY7CisJ dWludDY0CQljaGtwbnRfbnh0bXhvZmY7CiAJdWludDMyCQljaGtwbnRfb2xkc3RNdWx0aTsKIAl1 aW50MzIJCWNoa3BudF9vbGRzdHhpZDsKIAl1aW50MzIJCWFsaWduOwpAQCAtNTE1LDMgKzUyMiw4 IEBAIHR5cGVkZWYgc3RydWN0CiAJRklMRQkgICAqZmlsZTsKIAljaGFyCQlwYXRoW01BWFBHUEFU SF07CiB9IFVwZ3JhZGVUYXNrUmVwb3J0OworCisvKiBzZWdyZXNpemUuYyAqLworCitNdWx0aVhh Y3RPZmZzZXQJCWNvbnZlcnRfbXVsdGl4YWN0X29mZnNldHModm9pZCk7Cit2b2lkCQkJCWNvbnZl cnRfbXVsdGl4YWN0X21lbWJlcnMoTXVsdGlYYWN0T2Zmc2V0IG9sZGVzdF9vZmZzZXQpOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jlc2l6ZS5jIGIvc3JjL2Jpbi9wZ191cGdy YWRlL3NlZ3Jlc2l6ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjJm NmYzYjMyODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvc2VncmVzaXpl LmMKQEAgLTAsMCArMSw1NDEgQEAKKy8qCisgKglzZWdyZXNpemUuYworICoKKyAqCVNMUlUgc2Vn bWVudCByZXNpemUgdXRpbGl0eQorICoKKyAqCUNvcHlyaWdodCAoYykgMjAyNCwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCXNyYy9iaW4vcGdfdXBncmFkZS9zZWdyZXNp emUuYworICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5jbHVkZSAicGdfdXBn cmFkZS5oIgorI2luY2x1ZGUgImFjY2Vzcy9tdWx0aXhhY3QuaCIKKworLyogU2VlIHNscnUuaCAq LworI2RlZmluZSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UCQkzMgorCisvKgorICogU29tZSBraW5k IG9mIGl0ZXJhdG9yIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgU0xSVSBzZWdtZW50LiAg VGhlIGlkZWEgaXMKKyAqIHRvIHNwZWNpZnkgdGhlIHNlZ21lbnQgYW5kIHBhZ2UgbnVtYmVyIGFu ZCB0aGVuIG1vdmUgdGhyb3VnaCB0aGUgcGFnZXMuCisgKi8KK3R5cGVkZWYgc3RydWN0IFNscnVT ZWdTdGF0ZQoreworCWNoYXIJICAgKmRpcjsKKwljaGFyCSAgICpmbjsKKwlGSUxFCSAgICpmaWxl OworCWludDY0CQlzZWdubzsKKwl1aW50NjQJCXBhZ2VubzsKKwlib29sCQlsZWFkaW5nX2dhcDsK Kwlib29sCQlsb25nX3NlZ21lbnRfbmFtZXM7Cit9IFNscnVTZWdTdGF0ZTsKKworLyoKKyAqIE1p cnJvcnMgdGhlIFNscnVGaWxlTmFtZSBmcm9tIHNscnUuYworICovCitzdGF0aWMgaW5saW5lIGNo YXIgKgorU2xydUZpbGVOYW1lKFNscnVTZWdTdGF0ZSAqc3RhdGUpCit7CisJaWYgKHN0YXRlLT5s b25nX3NlZ21lbnRfbmFtZXMpCisJeworCQlBc3NlcnQoc3RhdGUtPnNlZ25vID49IDAgJiYKKwkJ CSAgIHN0YXRlLT5zZWdubyA8PSBJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGRkZGKSk7CisJCXJl dHVybiBwc3ByaW50ZigiJXMvJTAxNWxsWCIsIHN0YXRlLT5kaXIsIChsb25nIGxvbmcpIHN0YXRl LT5zZWdubyk7CisJfQorCWVsc2UKKwl7CisJCUFzc2VydChzdGF0ZS0+c2Vnbm8gPj0gMCAmJiBz dGF0ZS0+c2Vnbm8gPD0gSU5UNjRDT05TVCgweEZGRkZGRikpOworCQlyZXR1cm4gcHNwcmludGYo IiVzLyUwNFgiLCBzdGF0ZS0+ZGlyLCAodW5zaWduZWQgaW50KSBzdGF0ZS0+c2Vnbm8pOworCX0K K30KKworLyoKKyAqIENyZWF0ZSBuZXcgU0xSVSBzZWdtZW50IGZpbGUuCisgKi8KK3N0YXRpYyB2 b2lkCitjcmVhdGVfc2VnbWVudChTbHJ1U2VnU3RhdGUgKnN0YXRlKQoreworCUFzc2VydChzdGF0 ZS0+Zm4gPT0gTlVMTCk7CisJQXNzZXJ0KHN0YXRlLT5maWxlID09IE5VTEwpOworCisJc3RhdGUt PmZuID0gU2xydUZpbGVOYW1lKHN0YXRlKTsKKwlzdGF0ZS0+ZmlsZSA9IGZvcGVuKHN0YXRlLT5m biwgIndiIik7CisJaWYgKCFzdGF0ZS0+ZmlsZSkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBjcmVh dGUgZmlsZSBcIiVzXCI6ICVtIiwgc3RhdGUtPmZuKTsKK30KKworLyoKKyAqIE9wZW4gZXhpc3Rp bmcgU0xSVSBzZWdtZW50IGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCitvcGVuX3NlZ21lbnQoU2xy dVNlZ1N0YXRlICpzdGF0ZSkKK3sKKwlBc3NlcnQoc3RhdGUtPmZuID09IE5VTEwpOworCUFzc2Vy dChzdGF0ZS0+ZmlsZSA9PSBOVUxMKTsKKworCXN0YXRlLT5mbiA9IFNscnVGaWxlTmFtZShzdGF0 ZSk7CisJc3RhdGUtPmZpbGUgPSBmb3BlbihzdGF0ZS0+Zm4sICJyYiIpOworCWlmICghc3RhdGUt PmZpbGUpCisJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJW0iLCBzdGF0 ZS0+Zm4pOworfQorCisvKgorICogQ2xvc2UgU0xSVSBzZWdtZW50IGZpbGUuCisgKi8KK3N0YXRp YyB2b2lkCitjbG9zZV9zZWdtZW50KFNscnVTZWdTdGF0ZSAqc3RhdGUpCit7CisJaWYgKHN0YXRl LT5maWxlKQorCXsKKwkJZmNsb3NlKHN0YXRlLT5maWxlKTsKKwkJc3RhdGUtPmZpbGUgPSBOVUxM OworCX0KKworCWlmIChzdGF0ZS0+Zm4pCisJeworCQlwZnJlZShzdGF0ZS0+Zm4pOworCQlzdGF0 ZS0+Zm4gPSBOVUxMOworCX0KK30KKworLyoKKyAqIFJlYWQgbmV4dCBwYWdlIGZyb20gdGhlIG9s ZCAzMi1iaXQgb2Zmc2V0IHNlZ21lbnQgZmlsZS4KKyAqLworc3RhdGljIGludAorcmVhZF9vbGRf c2VnbWVudF9wYWdlKFNscnVTZWdTdGF0ZSAqc3RhdGUsIHZvaWQgKmJ1ZiwgYm9vbCAqZW1wdHkp Cit7CisJaW50CQlsZW47CisKKwkvKiBPcGVuIG5leHQgc2VnbWVudCBmaWxlLCBpZiBuZWVkZWQu ICovCisJaWYgKCFzdGF0ZS0+Zm4pCisJeworCQlpZiAoIXN0YXRlLT5zZWdubykKKwkJCXN0YXRl LT5sZWFkaW5nX2dhcCA9IHRydWU7CisKKwkJb3Blbl9zZWdtZW50KHN0YXRlKTsKKworCQkvKiBT ZXQgcG9zaXRpb24gdG8gdGhlIG5lZWRlZCBwYWdlLiAqLworCQlpZiAoc3RhdGUtPnBhZ2VubyA+ IDAgJiYKKwkJCWZzZWVrKHN0YXRlLT5maWxlLCBzdGF0ZS0+cGFnZW5vICogQkxDS1NaLCBTRUVL X1NFVCkpCisJCXsKKwkJCWNsb3NlX3NlZ21lbnQoc3RhdGUpOworCQl9CisJfQorCisJaWYgKHN0 YXRlLT5maWxlKQorCXsKKwkJLyogU2VnbWVudCBmaWxlIGRvIGV4aXN0cywgcmVhZCBwYWdlIGZy b20gaXQuICovCisJCXN0YXRlLT5sZWFkaW5nX2dhcCA9IGZhbHNlOworCisJCWxlbiA9IGZyZWFk KGJ1Ziwgc2l6ZW9mKGNoYXIpLCBCTENLU1osIHN0YXRlLT5maWxlKTsKKworCQkvKiBBcmUgd2Ug ZG9uZSBvciB3YXMgdGhlcmUgYW4gZXJyb3I/ICovCisJCWlmIChsZW4gPD0gMCkKKwkJeworCQkJ aWYgKGZlcnJvcihzdGF0ZS0+ZmlsZSkpCisJCQkJcGdfZmF0YWwoImVycm9yIHJlYWRpbmcgZmls ZSBcIiVzXCI6ICVtIiwgc3RhdGUtPmZuKTsKKworCQkJaWYgKGZlb2Yoc3RhdGUtPmZpbGUpKQor CQkJeworCQkJCSplbXB0eSA9IHRydWU7CisJCQkJbGVuID0gLTE7CisKKwkJCQljbG9zZV9zZWdt ZW50KHN0YXRlKTsKKwkJCX0KKwkJfQorCQllbHNlCisJCQkqZW1wdHkgPSBmYWxzZTsKKwl9CisJ ZWxzZSBpZiAoIXN0YXRlLT5sZWFkaW5nX2dhcCkKKwl7CisJCS8qIFdlIHJlYWNoZWQgdGhlIGxh c3Qgc2VnbWVudC4gKi8KKwkJbGVuID0gLTE7CisJCSplbXB0eSA9IHRydWU7CisJfQorCWVsc2UK Kwl7CisJCS8qIFNraXAgZmV3IGZpcnN0IHNlZ21lbnRzIGlmIHRoZXkgd2VyZSBmcm96ZW4gYW5k IHJlbW92ZWQuICovCisJCWxlbiA9IEJMQ0tTWjsKKwkJKmVtcHR5ID0gdHJ1ZTsKKwl9CisKKwlp ZiAoKytzdGF0ZS0+cGFnZW5vID49IFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpCisJeworCQkvKiBT dGFydCBhIG5ldyBzZWdtZW50LiAqLworCQlzdGF0ZS0+c2Vnbm8rKzsKKwkJc3RhdGUtPnBhZ2Vu byA9IDA7CisKKwkJY2xvc2Vfc2VnbWVudChzdGF0ZSk7CisJfQorCisJcmV0dXJuIGxlbjsKK30K KworLyoKKyAqIFdyaXRlIG5leHQgcGFnZSB0byB0aGUgbmV3IDY0LWJpdCBvZmZzZXQgc2VnbWVu dCBmaWxlLgorICovCitzdGF0aWMgdm9pZAord3JpdGVfbmV3X3NlZ21lbnRfcGFnZShTbHJ1U2Vn U3RhdGUgKnN0YXRlLCB2b2lkICpidWYpCit7CisJLyoKKwkgKiBDcmVhdGUgYSBuZXcgc2VnbWVu dCBmaWxlIGlmIHdlIHN0aWxsIGRpZG4ndC4gIENyZWF0aW9uIGlzCisJICogcG9zdHBvbmVkIHVu dGlsIHRoZSBmaXJzdCBub24tZW1wdHkgcGFnZSBpcyBmb3VuZC4gIFRoaXMgaGVscHMKKwkgKiBu b3QgdG8gY3JlYXRlIGNvbXBsZXRlbHkgZW1wdHkgc2VnbWVudHMuCisJICovCisJaWYgKCFzdGF0 ZS0+ZmlsZSkKKwl7CisJCWNyZWF0ZV9zZWdtZW50KHN0YXRlKTsKKworCQkvKiBXcml0ZSB6ZXJv ZXMgdG8gdGhlIHByZXZpb3VzbHkgc2tpcHBlZCBwcmVmaXguICovCisJCWlmIChzdGF0ZS0+cGFn ZW5vID4gMCkKKwkJeworCQkJY2hhcgkJemVyb2J1ZltCTENLU1pdID0gezB9OworCisJCQlmb3Ig KGludDY0IGkgPSAwOyBpIDwgc3RhdGUtPnBhZ2VubzsgaSsrKQorCQkJeworCQkJCWlmIChmd3Jp dGUoemVyb2J1Ziwgc2l6ZW9mKGNoYXIpLCBCTENLU1osIHN0YXRlLT5maWxlKSAhPSBCTENLU1op CisJCQkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgd3JpdGUgZmlsZSBcIiVzXCI6ICVtIiwgc3RhdGUt PmZuKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIFdyaXRlIHBhZ2UgdG8gdGhlIG5ldyBzZWdtZW50 IChpZiBpdCB3YXMgY3JlYXRlZCkuICovCisJaWYgKHN0YXRlLT5maWxlKQorCXsKKwkJaWYgKGZ3 cml0ZShidWYsIHNpemVvZihjaGFyKSwgQkxDS1NaLCBzdGF0ZS0+ZmlsZSkgIT0gQkxDS1NaKQor CQkJcGdfZmF0YWwoImNvdWxkIG5vdCB3cml0ZSBmaWxlIFwiJXNcIjogJW0iLCBzdGF0ZS0+Zm4p OworCX0KKworCS8qCisJICogRGlkIHdlIHJlYWNoIHRoZSBtYXhpbXVtIHBhZ2UgbnVtYmVyPyAg VGhlbiBjbG9zZSBzZWdtZW50IGZpbGUKKwkgKiBhbmQgY3JlYXRlIGEgbmV3IG9uZSBvbiB0aGUg bmV4dCBpdGVyYXRpb24uCisJICovCisJaWYgKCsrc3RhdGUtPnBhZ2VubyA+PSBTTFJVX1BBR0VT X1BFUl9TRUdNRU5UKQorCXsKKwkJLyogU3RhcnQgYSBuZXcgc2VnbWVudC4gKi8KKwkJc3RhdGUt PnNlZ25vKys7CisJCXN0YXRlLT5wYWdlbm8gPSAwOworCisJCWNsb3NlX3NlZ21lbnQoc3RhdGUp OworCX0KK30KKwordHlwZWRlZiB1aW50MzIgTXVsdGlYYWN0T2Zmc2V0T2xkOworCisjZGVmaW5l IE1heE11bHRpWGFjdE9mZnNldE9sZAkoKE11bHRpWGFjdE9mZnNldE9sZCkgMHhGRkZGRkZGRikK KworI2RlZmluZSBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9PTEQgKEJMQ0tTWiAvIHNpemVv ZihNdWx0aVhhY3RPZmZzZXRPbGQpKQorI2RlZmluZSBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFH RV9ORVcgKEJMQ0tTWiAvIHNpemVvZihNdWx0aVhhY3RPZmZzZXQpKQorCisvKgorICogQ29udmVy dCBwZ19tdWx0aXhhY3Qvb2Zmc2V0cyBzZWdtZW50cyBhbmQgcmV0dXJuIG9sZGVzdCBtdWx0aSBv ZmZzZXQuCisgKi8KK011bHRpWGFjdE9mZnNldAorY29udmVydF9tdWx0aXhhY3Rfb2Zmc2V0cyh2 b2lkKQoreworCVNscnVTZWdTdGF0ZQkJb2xkc2VnID0gezB9LAorCQkJCQkJbmV3c2VnID0gezB9 OworCU11bHRpWGFjdE9mZnNldE9sZAlvbGRidWZbTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0Vf T0xEXSA9IHswfTsKKwlNdWx0aVhhY3RPZmZzZXQJCW5ld2J1ZltNVUxUSVhBQ1RfT0ZGU0VUU19Q RVJfUEFHRV9ORVddID0gezB9LAorCQkJCQkJb2xkZXN0X29mZnNldCA9IDA7CisJdWludDY0CQkJ CW9sZGVzdF9tdWx0aSA9IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9vbGRzdE11bHRp LAorCQkJCQkJbmV4dF9tdWx0aSA9IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRt dWx0aSwKKwkJCQkJCW11bHRpLAorCQkJCQkJb2xkX2VudHJ5LAorCQkJCQkJbmV3X2VudHJ5Owor CWJvb2wJCQkJb2xkZXN0X29mZnNldF9rbm93biA9IGZhbHNlOworCisJb2xkc2VnLmRpciA9IHBz cHJpbnRmKCIlcy9wZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsIG9sZF9jbHVzdGVyLnBnZGF0YSk7CisJ bmV3c2VnLmRpciA9IHBzcHJpbnRmKCIlcy9wZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsIG5ld19jbHVz dGVyLnBnZGF0YSk7CisKKwlvbGRfZW50cnkgPSBvbGRlc3RfbXVsdGkgJSBNVUxUSVhBQ1RfT0ZG U0VUU19QRVJfUEFHRV9PTEQ7CisJb2xkc2VnLnBhZ2VubyA9IG9sZGVzdF9tdWx0aSAvIE1VTFRJ WEFDVF9PRkZTRVRTX1BFUl9QQUdFX09MRDsKKwlvbGRzZWcuc2Vnbm8gPSBvbGRzZWcucGFnZW5v IC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKKwlvbGRzZWcucGFnZW5vICU9IFNMUlVfUEFHRVNf UEVSX1NFR01FTlQ7CisJb2xkc2VnLmxvbmdfc2VnbWVudF9uYW1lcyA9IGZhbHNlOworCisJbmV3 X2VudHJ5ID0gb2xkZXN0X211bHRpICUgTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0VfTkVXOwor CW5ld3NlZy5wYWdlbm8gPSBvbGRlc3RfbXVsdGkgLyBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFH RV9ORVc7CisJbmV3c2VnLnNlZ25vID0gbmV3c2VnLnBhZ2VubyAvIFNMUlVfUEFHRVNfUEVSX1NF R01FTlQ7CisJbmV3c2VnLnBhZ2VubyAlPSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UOworCW5ld3Nl Zy5sb25nX3NlZ21lbnRfbmFtZXMgPSB0cnVlOworCisJaWYgKG5leHRfbXVsdGkgPCBvbGRlc3Rf bXVsdGkpCisJCW5leHRfbXVsdGkgKz0gKHVpbnQ2NCkgMSA8PCAzMjsJLyogd3JhcGFyb3VuZCAq LworCisJLyogQ29weSBtdWx0aSBvZmZzZXRzIHJlYWRpbmcgb25seSBuZWVkZWQgc2VnbWVudCBw YWdlcyAqLworCWZvciAobXVsdGkgPSBvbGRlc3RfbXVsdGk7IG11bHRpIDwgbmV4dF9tdWx0aTsg b2xkX2VudHJ5ID0gMCkKKwl7CisJCWludAkJb2xkbGVuOworCQlib29sCWVtcHR5OworCisJCS8q IEhhbmRsZSBwb3NzaWJsZSBzZWdtZW50IHdyYXBhcm91bmQgKi8KKyNkZWZpbmUgT0xEX09GRlNF VF9TRUdOT19NQVgJXAorCShNYXhNdWx0aVhhY3RJZCAvIE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9Q QUdFX09MRCAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpCisJCWlmIChvbGRzZWcuc2Vnbm8gPiBP TERfT0ZGU0VUX1NFR05PX01BWCkKKwkJeworCQkJb2xkc2VnLnNlZ25vID0gMDsKKwkJCW9sZHNl Zy5wYWdlbm8gPSAwOworCQl9CisKKwkJb2xkbGVuID0gcmVhZF9vbGRfc2VnbWVudF9wYWdlKCZv bGRzZWcsIG9sZGJ1ZiwgJmVtcHR5KTsKKwkJaWYgKGVtcHR5IHx8IG9sZGxlbiAhPSBCTENLU1op CisJCQlwZ19mYXRhbCgiY2Fubm90IHJlYWQgcGFnZSAlbGx1IGZyb20gZmlsZSBcIiVzXCI6ICVt IiwKKwkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIG9sZHNlZy5wYWdlbm8sIG9sZHNlZy5mbik7 CisKKwkJLyogU2F2ZSBvbGRlc3QgbXVsdGkgb2Zmc2V0ICovCisJCWlmICghb2xkZXN0X29mZnNl dF9rbm93bikKKwkJeworCQkJb2xkZXN0X29mZnNldCA9IG9sZGJ1ZltvbGRfZW50cnldOworCQkJ b2xkZXN0X29mZnNldF9rbm93biA9IHRydWU7CisJCX0KKworCQkvKiBTa2lwIHdyYXBwZWQtYXJv dW5kIGludmFsaWQgTXVsdGlYYWN0SWRzICovCisJCWlmIChtdWx0aSA9PSAodWludDY0KSAxIDw8 IDMyKQorCQl7CisJCQlBc3NlcnQob2xkc2VnLnNlZ25vID09IDApOworCQkJQXNzZXJ0KG9sZHNl Zy5wYWdlbm8gPT0gMSk7CisJCQlBc3NlcnQob2xkX2VudHJ5ID09IDApOworCQkJQXNzZXJ0KG5l d19lbnRyeSA9PSAwKTsKKworCQkJbXVsdGkgKz0gRmlyc3RNdWx0aVhhY3RJZDsKKwkJCW9sZF9l bnRyeSA9IEZpcnN0TXVsdGlYYWN0SWQ7CisJCQluZXdfZW50cnkgPSBGaXJzdE11bHRpWGFjdElk OworCQl9CisKKwkJLyogQ29weSBlbnRyaWVzIHRvIHRoZSBuZXcgcGFnZSAqLworCQlmb3IgKDsg bXVsdGkgPCBuZXh0X211bHRpICYmIG9sZF9lbnRyeSA8IE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9Q QUdFX09MRDsKKwkJCSBtdWx0aSsrLCBvbGRfZW50cnkrKykKKwkJeworCQkJTXVsdGlYYWN0T2Zm c2V0IG9mZnNldCA9IG9sZGJ1ZltvbGRfZW50cnldOworCisJCQkvKiBIYW5kbGUgcG9zc2libGUg b2Zmc2V0IHdyYXBhcm91bmQgKDEgYmVjb21lcyAyXjMyKSAqLworCQkJaWYgKG9mZnNldCA8IG9s ZGVzdF9vZmZzZXQpCisJCQkJb2Zmc2V0ICs9ICgodWludDY0KSAxIDw8IDMyKSAtIDE7CisKKwkJ CS8qIFN1YnRyYWN0IG9sZGVzdF9vZmZzZXQsIHNvIG5ldyBvZmZzZXRzIHdpbGwgc3RhcnQgZnJv bSAxICovCisJCQluZXdidWZbbmV3X2VudHJ5KytdID0gb2Zmc2V0IC0gb2xkZXN0X29mZnNldCAr IDE7CisKKwkJCWlmIChuZXdfZW50cnkgPj0gTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0VfTkVX KQorCQkJeworCQkJCS8qIEhhbmRsZSBwb3NzaWJsZSBzZWdtZW50IHdyYXBhcm91bmQgKi8KKyNk ZWZpbmUgTkVXX09GRlNFVF9TRUdOT19NQVgJXAorCShNYXhNdWx0aVhhY3RJZCAvIE1VTFRJWEFD VF9PRkZTRVRTX1BFUl9QQUdFX05FVyAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpCisJCQkJaWYg KG5ld3NlZy5zZWdubyA+IE5FV19PRkZTRVRfU0VHTk9fTUFYKQorCQkJCXsKKwkJCQkJbmV3c2Vn LnNlZ25vID0gMDsKKwkJCQkJbmV3c2VnLnBhZ2VubyA9IDA7CisJCQkJfQorCisJCQkJLyogV3Jp dGUgbmV3IHBhZ2UgKi8KKwkJCQl3cml0ZV9uZXdfc2VnbWVudF9wYWdlKCZuZXdzZWcsIG5ld2J1 Zik7CisJCQkJbmV3X2VudHJ5ID0gMDsKKwkJCX0KKwkJfQorCX0KKworCS8qIFdyaXRlIHRoZSBs YXN0IGluY29tcGxldGUgcGFnZSAqLworCWlmIChuZXdfZW50cnkgPiAwIHx8IG9sZGVzdF9tdWx0 aSA9PSBuZXh0X211bHRpKQorCXsKKwkJbWVtc2V0KCZuZXdidWZbbmV3X2VudHJ5XSwgMCwKKwkJ CSAgIHNpemVvZihuZXdidWZbMF0pICogKE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFX05FVyAt IG5ld19lbnRyeSkpOworCQl3cml0ZV9uZXdfc2VnbWVudF9wYWdlKCZuZXdzZWcsIG5ld2J1Zik7 CisJfQorCisJLyogVXNlIG5leHRfb2Zmc2V0IGFzIG9sZGVzdF9vZmZzZXQsIGlmIG9sZGVzdF9t dWx0aSA9PSBuZXh0X211bHRpICovCisJaWYgKCFvbGRlc3Rfb2Zmc2V0X2tub3duKQorCXsKKwkJ QXNzZXJ0KG9sZGVzdF9tdWx0aSA9PSBuZXh0X211bHRpKTsKKwkJb2xkZXN0X29mZnNldCA9IChN dWx0aVhhY3RPZmZzZXQpIG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRteG9mZjsK Kwl9CisKKwkvKiBSZWxlYXNlIHJlc291cmNlcyAqLworCWNsb3NlX3NlZ21lbnQoJm9sZHNlZyk7 CisJY2xvc2Vfc2VnbWVudCgmbmV3c2VnKTsKKworCXBmcmVlKG9sZHNlZy5kaXIpOworCXBmcmVl KG5ld3NlZy5kaXIpOworCisJcmV0dXJuIG9sZGVzdF9vZmZzZXQ7Cit9CisKKyNkZWZpbmUgTVhB Q1RfTUVNQkVSU19GTEFHX0JZVEVTCQkJMQorCisjZGVmaW5lIE1VTFRJWEFDVF9NRU1CRVJTX1BF Ul9HUk9VUAkJCTQKKyNkZWZpbmUgTVVMVElYQUNUX01FTUJFUkdST1VQX1NJWkUJCQlcCisJKE1V TFRJWEFDVF9NRU1CRVJTX1BFUl9HUk9VUCAqIChzaXplb2YoVHJhbnNhY3Rpb25JZCkgKyBNWEFD VF9NRU1CRVJTX0ZMQUdfQllURVMpKQorI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVSR1JPVVBTX1BF Ul9QQUdFCQlcCisJKEJMQ0tTWiAvIE1VTFRJWEFDVF9NRU1CRVJHUk9VUF9TSVpFKQorCisjZGVm aW5lIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdFCQkJCVwKKwkoTVVMVElYQUNUX01FTUJFUlNf UEVSX0dST1VQICogTVVMVElYQUNUX01FTUJFUkdST1VQU19QRVJfUEFHRSkKKyNkZWZpbmUgTVVM VElYQUNUX01FTUJFUl9GTEFHX0JZVEVTX1BFUl9HUk9VUAlcCisJKE1YQUNUX01FTUJFUlNfRkxB R19CWVRFUyAqIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9HUk9VUCkKKwordHlwZWRlZiBzdHJ1Y3Qg TXVsdGlYYWN0TWVtYmVyc0N0eAoreworCVNscnVTZWdTdGF0ZQlzZWc7CisJY2hhcgkJCWJ1ZltC TENLU1pdOworCWludAkJCQlncm91cDsKKwlpbnQJCQkJbWVtYmVyOworCWNoYXIJCSAgICpmbGFn OworCVRyYW5zYWN0aW9uSWQgICp4aWQ7Cit9IE11bHRpWGFjdE1lbWJlcnNDdHg7CisKK3N0YXRp YyB2b2lkCitNdWx0aVhhY3RNZW1iZXJzQ3R4SW5pdChNdWx0aVhhY3RNZW1iZXJzQ3R4ICpjdHgp Cit7CisJY3R4LT5zZWcuZGlyID0gcHNwcmludGYoIiVzL3BnX211bHRpeGFjdC9tZW1iZXJzIiwg bmV3X2NsdXN0ZXIucGdkYXRhKTsKKwljdHgtPnNlZy5sb25nX3NlZ21lbnRfbmFtZXMgPSBmYWxz ZTsKKworCWN0eC0+Z3JvdXAgPSAwOworCWN0eC0+bWVtYmVyID0gMTsJCS8qIHNraXAgaW52YWxp ZCB6ZXJvIG9mZnNldCAqLworCisJY3R4LT5mbGFnID0gKGNoYXIgKikgY3R4LT5idWYgKyBjdHgt Pmdyb3VwICogTVVMVElYQUNUX01FTUJFUkdST1VQX1NJWkU7CisJY3R4LT54aWQgPSAoVHJhbnNh Y3Rpb25JZCAqKShjdHgtPmZsYWcgKyBNWEFDVF9NRU1CRVJTX0ZMQUdfQllURVMgKiBNVUxUSVhB Q1RfTUVNQkVSU19QRVJfR1JPVVApOworCisJY3R4LT5mbGFnICs9IGN0eC0+bWVtYmVyOworCWN0 eC0+eGlkICs9IGN0eC0+bWVtYmVyOworfQorCitzdGF0aWMgdm9pZAorTXVsdGlYYWN0TWVtYmVy c0N0eEFkZChNdWx0aVhhY3RNZW1iZXJzQ3R4ICpjdHgsIGNoYXIgZmxhZywgVHJhbnNhY3Rpb25J ZCB4aWQpCit7CisJLyogQ29weSBtZW1iZXIncyB4aWQgYW5kIGZsYWdzIHRvIHRoZSBuZXcgcGFn ZSAqLworCSpjdHgtPmZsYWcrKyA9IGZsYWc7CisJKmN0eC0+eGlkKysgPSB4aWQ7CisKKwlpZiAo KytjdHgtPm1lbWJlciA8IE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9HUk9VUCkKKwkJcmV0dXJuOwor CisJLyogU3RhcnQgbmV4dCBtZW1iZXIgZ3JvdXAgKi8KKwljdHgtPm1lbWJlciA9IDA7CisKKwlp ZiAoKytjdHgtPmdyb3VwID49IE1VTFRJWEFDVF9NRU1CRVJHUk9VUFNfUEVSX1BBR0UpCisJewor CQkvKiBXcml0ZSBjdXJyZW50IHBhZ2UgYW5kIHN0YXJ0IG5ldyAqLworCQl3cml0ZV9uZXdfc2Vn bWVudF9wYWdlKCZjdHgtPnNlZywgY3R4LT5idWYpOworCisJCWN0eC0+Z3JvdXAgPSAwOworCQlt ZW1zZXQoY3R4LT5idWYsIDAsIEJMQ0tTWik7CisJfQorCisJY3R4LT5mbGFnID0gKGNoYXIgKikg Y3R4LT5idWYgKyBjdHgtPmdyb3VwICogTVVMVElYQUNUX01FTUJFUkdST1VQX1NJWkU7CisJY3R4 LT54aWQgPSAoVHJhbnNhY3Rpb25JZCAqKShjdHgtPmZsYWcgKyBNWEFDVF9NRU1CRVJTX0ZMQUdf QllURVMgKiBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfR1JPVVApOworfQorCitzdGF0aWMgdm9pZAor TXVsdGlYYWN0TWVtYmVyc0N0eEZpbml0KE11bHRpWGFjdE1lbWJlcnNDdHggKmN0eCkKK3sKKwlp ZiAoY3R4LT5mbGFnID4gKGNoYXIgKikgY3R4LT5idWYpCisJCXdyaXRlX25ld19zZWdtZW50X3Bh Z2UoJmN0eC0+c2VnLCBjdHgtPmJ1Zik7CisKKwljbG9zZV9zZWdtZW50KCZjdHgtPnNlZyk7CisK KwlwZnJlZShjdHgtPnNlZy5kaXIpOworfQorCisvKgorICogQ29udmVydCBwZ19tdWx0aXhhY3Qv bWVtYmVycyBzZWdtZW50cywgb2Zmc2V0cyB3aWxsIHN0YXJ0IGZyb20gMS4KKyAqCisgKi8KK3Zv aWQKK2NvbnZlcnRfbXVsdGl4YWN0X21lbWJlcnMoTXVsdGlYYWN0T2Zmc2V0IG9sZGVzdF9vZmZz ZXQpCit7CisJTXVsdGlYYWN0T2Zmc2V0CQkJbmV4dF9vZmZzZXQsCisJCQkJCQkJb2Zmc2V0Owor CVNscnVTZWdTdGF0ZQkJCW9sZHNlZyA9IHswfTsKKwljaGFyCQkJCQlvbGRidWZbQkxDS1NaXSA9 IHswfTsKKwlpbnQJCQkJCQlvbGRpZHg7CisJTXVsdGlYYWN0TWVtYmVyc0N0eAkJbmV3Y3R4ID0g ezB9OworCisJb2xkc2VnLmRpciA9IHBzcHJpbnRmKCIlcy9wZ19tdWx0aXhhY3QvbWVtYmVycyIs IG9sZF9jbHVzdGVyLnBnZGF0YSk7CisKKwluZXh0X29mZnNldCA9IChNdWx0aVhhY3RPZmZzZXQp IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRteG9mZjsKKwlpZiAobmV4dF9vZmZz ZXQgPCBvbGRlc3Rfb2Zmc2V0KQorCQluZXh0X29mZnNldCArPSAoKHVpbnQ2NCkgMSA8PCAzMikg LSAxOworCisJLyogSW5pdGlhbGl6ZSB0aGUgb2xkIHN0YXJ0aW5nIHBvc2l0aW9uICovCisJb2xk c2VnLnBhZ2VubyA9IG9sZGVzdF9vZmZzZXQgLyBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfUEFHRTsK KwlvbGRzZWcuc2Vnbm8gPSBvbGRzZWcucGFnZW5vIC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsK KwlvbGRzZWcucGFnZW5vICU9IFNMUlVfUEFHRVNfUEVSX1NFR01FTlQ7CisJb2xkc2VnLmxvbmdf c2VnbWVudF9uYW1lcyA9IGZhbHNlOworCisJLyogSW5pdGlhbGl6ZSBuZXcgc3RhcnRpbmcgcG9z aXRpb24gKi8KKwlNdWx0aVhhY3RNZW1iZXJzQ3R4SW5pdCgmbmV3Y3R4KTsKKworCS8qIEl0ZXJh dGUgdGhyb3VnaCB0aGUgb3JpZ2luYWwgZGlyZWN0b3J5ICovCisJb2xkaWR4ID0gb2xkZXN0X29m ZnNldCAlIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdFOworCWZvciAob2Zmc2V0ID0gb2xkZXN0 X29mZnNldDsgb2Zmc2V0IDwgbmV4dF9vZmZzZXQ7KQorCXsKKwkJYm9vbAllbXB0eTsKKwkJaW50 CQlvbGRsZW47CisJCWludAkJbmdyb3VwczsKKwkJaW50CQlvbGRncm91cDsKKwkJaW50CQlvbGRt ZW1iZXI7CisKKwkJb2xkbGVuID0gcmVhZF9vbGRfc2VnbWVudF9wYWdlKCZvbGRzZWcsIG9sZGJ1 ZiwgJmVtcHR5KTsKKwkJaWYgKGVtcHR5IHx8IG9sZGxlbiAhPSBCTENLU1opCisJCQlwZ19mYXRh bCgiY2Fubm90IHJlYWQgcGFnZSAlbGx1IGZyb20gZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJICh1 bnNpZ25lZCBsb25nIGxvbmcpIG9sZHNlZy5wYWdlbm8sIG9sZHNlZy5mbik7CisKKwkJLyogSXRl cmF0ZSB0aHJvdWdoIHRoZSBvbGQgbWVtYmVyIGdyb3VwcyAqLworCQluZ3JvdXBzID0gb2xkbGVu IC8gTVVMVElYQUNUX01FTUJFUkdST1VQX1NJWkU7CisJCW9sZG1lbWJlciA9IG9sZGlkeCAlIE1V TFRJWEFDVF9NRU1CRVJTX1BFUl9HUk9VUDsKKwkJb2xkZ3JvdXAgPSBvbGRpZHggLyBNVUxUSVhB Q1RfTUVNQkVSU19QRVJfR1JPVVA7CisJCXdoaWxlIChvbGRncm91cCA8IG5ncm91cHMgJiYgb2Zm c2V0IDwgbmV4dF9vZmZzZXQpCisJCXsKKwkJCWNoYXIJCSAgICpvbGRmbGFnOworCQkJVHJhbnNh Y3Rpb25JZCAgKm9sZHhpZDsKKwkJCWludAkJCQlpOworCisJCQlvbGRmbGFnID0gKGNoYXIgKikg b2xkYnVmICsgb2xkZ3JvdXAgKiBNVUxUSVhBQ1RfTUVNQkVSR1JPVVBfU0laRTsKKwkJCW9sZHhp ZCA9IChUcmFuc2FjdGlvbklkICopKG9sZGZsYWcgKyBNVUxUSVhBQ1RfTUVNQkVSX0ZMQUdfQllU RVNfUEVSX0dST1VQKTsKKworCQkJb2xkeGlkICs9IG9sZG1lbWJlcjsKKwkJCW9sZGZsYWcgKz0g b2xkbWVtYmVyOworCisJCQkvKiBJdGVyYXRlIHRocm91Z2ggdGhlIG9sZCBtZW1iZXJzICovCisJ CQlmb3IgKGkgPSBvbGRtZW1iZXI7CisJCQkJIGkgPCBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfR1JP VVAgJiYgb2Zmc2V0IDwgbmV4dF9vZmZzZXQ7CisJCQkJIGkrKykKKwkJCXsKKwkJCQlNdWx0aVhh Y3RNZW1iZXJzQ3R4QWRkKCZuZXdjdHgsICpvbGRmbGFnKyssICpvbGR4aWQrKyk7CisKKwkJCQlp ZiAoKytvZmZzZXQgPT0gKHVpbnQ2NCkgMSA8PCAzMikKKwkJCQl7CisJCQkJCUFzc2VydChpID09 IE1heE11bHRpWGFjdE9mZnNldE9sZCAlIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9HUk9VUCk7CisJ CQkJCWdvdG8gd3JhcGFyb3VuZDsKKwkJCQl9CisJCQl9CisKKwkJCW9sZGdyb3VwKys7CisJCQlv bGRtZW1iZXIgPSAwOworCQl9CisKKwkJb2xkaWR4ID0gMDsKKworCQljb250aW51ZTsKKword3Jh cGFyb3VuZDoKKyNkZWZpbmUgU0VHTk9fTUFYCU1heE11bHRpWGFjdE9mZnNldE9sZCAvIE1VTFRJ WEFDVF9NRU1CRVJTX1BFUl9QQUdFIC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVAorI2RlZmluZSBQ QUdFTk9fTUFYCU1heE11bHRpWGFjdE9mZnNldE9sZCAvIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9Q QUdFICUgU0xSVV9QQUdFU19QRVJfU0VHTUVOVAorCQlBc3NlcnQoKG9sZHNlZy5zZWdubyA9PSBT RUdOT19NQVggJiYgb2xkc2VnLnBhZ2VubyA9PSBQQUdFTk9fTUFYICsgMSkgfHwKKwkJCSAgIChv bGRzZWcuc2Vnbm8gPT0gU0VHTk9fTUFYICsgMSAmJiBvbGRzZWcucGFnZW5vID09IDApKTsKKwor CQkvKiBTd2l0Y2ggdG8gc2VnbWVudCAwMDAwICovCisJCWNsb3NlX3NlZ21lbnQoJm9sZHNlZyk7 CisJCW9sZHNlZy5zZWdubyA9IDA7CisJCW9sZHNlZy5wYWdlbm8gPSAwOworCisJCS8qIHNraXAg aW52YWxpZCB6ZXJvIG11bHRpIG9mZnNldCAqLworCQlvbGRpZHggPSAxOworCX0KKworCU11bHRp WGFjdE1lbWJlcnNDdHhGaW5pdCgmbmV3Y3R4KTsKKworCS8qIFJlbGVhc2UgcmVzb3VyY2VzICov CisJY2xvc2Vfc2VnbWVudCgmb2xkc2VnKTsKKworCXBmcmVlKG9sZHNlZy5kaXIpOworfQotLSAK Mi40My4wCgo= --000000000000322ad806272fd08e--