From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/3] x86/mm: Introduce and use l?e_{get, from}_mfn() Date: Thu, 24 Aug 2017 14:14:57 +0100 Message-ID: <1503580497-22936-4-git-send-email-andrew.cooper3@citrix.com> References: <1503580497-22936-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1503580497-22936-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu , Jan Beulich , Tim Deegan List-Id: xen-devel@lists.xenproject.org VGhpcyBhdm9pZHMgdGhlIGV4cGxpY2l0IGJveGluZy91bmJveGluZyBvZiBtZm5fdCBpbiByZWxl dmFudCBjb2RlcGF0aHMuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v cGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4K Q0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBUaW0gRGVlZ2FuIDx0aW1AeGVu Lm9yZz4KQ0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KLS0t CiB4ZW4vYXJjaC94ODYvZGVidWcuYyAgICAgICAgICAgIHwgIDggKysrKy0tLS0KIHhlbi9hcmNo L3g4Ni9kb21haW5fcGFnZS5jICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAg ICAgICAgICB8ICA4ICsrKystLS0tCiB4ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jICAgICAgIHwg IDYgKysrLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgICAgICAgIHwgMTIgKysrKysrLS0t LS0tCiB4ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIHwgIDYgKysrLS0tCiB4ZW4vYXJj aC94ODYvbW0vc2hhZG93L211bHRpLmMgIHwgMjIgKysrKysrKysrKystLS0tLS0tLS0tLQogeGVu L2FyY2gveDg2L21tL3NoYWRvdy90eXBlcy5oICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIHhlbi9p bmNsdWRlL2FzbS14ODYvcGFnZS5oICAgICAgfCAxOCArKysrKysrKysrKysrKystLS0KIDkgZmls ZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2RlYnVnLmMgYi94ZW4vYXJjaC94ODYvZGVidWcuYwppbmRleCA1MzAz NTMyLi4xYzEwYjg0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZGVidWcuYworKysgYi94ZW4v YXJjaC94ODYvZGVidWcuYwpAQCAtMTA4LDcgKzEwOCw3IEBAIGRiZ19wdl92YTJtZm4oZGJndmFf dCB2YWRkciwgc3RydWN0IGRvbWFpbiAqZHAsIHVpbnQ2NF90IHBnZDN2YWwpCiAgICAgICAgIGw0 dCA9IG1hcF9kb21haW5fcGFnZShtZm4pOwogICAgICAgICBsNGUgPSBsNHRbbDRfdGFibGVfb2Zm c2V0KHZhZGRyKV07CiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGw0dCk7Ci0gICAgICAgIG1m biA9IF9tZm4obDRlX2dldF9wZm4obDRlKSk7CisgICAgICAgIG1mbiA9IGw0ZV9nZXRfbWZuKGw0 ZSk7CiAgICAgICAgIERCR1AyKCJsNHQ6JXAgbDR0bzolbHggbDRlOiVseCBtZm46JSMiUFJJX21m biJcbiIsIGw0dCwKICAgICAgICAgICAgICAgbDRfdGFibGVfb2Zmc2V0KHZhZGRyKSwgbDRlLCBt Zm5feChtZm4pKTsKICAgICAgICAgaWYgKCAhKGw0ZV9nZXRfZmxhZ3MobDRlKSAmIF9QQUdFX1BS RVNFTlQpICkKQEAgLTEyMCw3ICsxMjAsNyBAQCBkYmdfcHZfdmEybWZuKGRiZ3ZhX3QgdmFkZHIs IHN0cnVjdCBkb21haW4gKmRwLCB1aW50NjRfdCBwZ2QzdmFsKQogICAgICAgICBsM3QgPSBtYXBf ZG9tYWluX3BhZ2UobWZuKTsKICAgICAgICAgbDNlID0gbDN0W2wzX3RhYmxlX29mZnNldCh2YWRk cildOwogICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsM3QpOwotICAgICAgICBtZm4gPSBfbWZu KGwzZV9nZXRfcGZuKGwzZSkpOworICAgICAgICBtZm4gPSBsM2VfZ2V0X21mbihsM2UpOwogICAg ICAgICBEQkdQMigibDN0OiVwIGwzdG86JWx4IGwzZTolbHggbWZuOiUjIlBSSV9tZm4iXG4iLCBs M3QsCiAgICAgICAgICAgICAgIGwzX3RhYmxlX29mZnNldCh2YWRkciksIGwzZSwgbWZuX3gobWZu KSk7CiAgICAgICAgIGlmICggIShsM2VfZ2V0X2ZsYWdzKGwzZSkgJiBfUEFHRV9QUkVTRU5UKSB8 fApAQCAtMTM0LDcgKzEzNCw3IEBAIGRiZ19wdl92YTJtZm4oZGJndmFfdCB2YWRkciwgc3RydWN0 IGRvbWFpbiAqZHAsIHVpbnQ2NF90IHBnZDN2YWwpCiAgICAgbDJ0ID0gbWFwX2RvbWFpbl9wYWdl KG1mbik7CiAgICAgbDJlID0gbDJ0W2wyX3RhYmxlX29mZnNldCh2YWRkcildOwogICAgIHVubWFw X2RvbWFpbl9wYWdlKGwydCk7Ci0gICAgbWZuID0gX21mbihsMmVfZ2V0X3BmbihsMmUpKTsKKyAg ICBtZm4gPSBsMmVfZ2V0X21mbihsMmUpOwogICAgIERCR1AyKCJsMnQ6JXAgbDJ0bzolbHggbDJl OiVseCBtZm46JSMiUFJJX21mbiJcbiIsCiAgICAgICAgICAgbDJ0LCBsMl90YWJsZV9vZmZzZXQo dmFkZHIpLCBsMmUsIG1mbl94KG1mbikpOwogICAgIGlmICggIShsMmVfZ2V0X2ZsYWdzKGwyZSkg JiBfUEFHRV9QUkVTRU5UKSB8fApAQCAtMTQ2LDcgKzE0Niw3IEBAIGRiZ19wdl92YTJtZm4oZGJn dmFfdCB2YWRkciwgc3RydWN0IGRvbWFpbiAqZHAsIHVpbnQ2NF90IHBnZDN2YWwpCiAgICAgbDF0 ID0gbWFwX2RvbWFpbl9wYWdlKG1mbik7CiAgICAgbDFlID0gbDF0W2wxX3RhYmxlX29mZnNldCh2 YWRkcildOwogICAgIHVubWFwX2RvbWFpbl9wYWdlKGwxdCk7Ci0gICAgbWZuID0gX21mbihsMWVf Z2V0X3BmbihsMWUpKTsKKyAgICBtZm4gPSBsMWVfZ2V0X21mbihsMWUpOwogICAgIERCR1AyKCJs MXQ6JXAgbDF0bzolbHggbDFlOiVseCBtZm46JSMiUFJJX21mbiJcbiIsIGwxdCwgbDFfdGFibGVf b2Zmc2V0KHZhZGRyKSwKICAgICAgICAgICBsMWUsIG1mbl94KG1mbikpOwogCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5j CmluZGV4IDA3ODNjMWUuLjA0NjNlOWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5f cGFnZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCkBAIC0xNjYsNyArMTY2LDcg QEAgdm9pZCAqbWFwX2RvbWFpbl9wYWdlKG1mbl90IG1mbikKIAogICAgIHNwaW5fdW5sb2NrKCZk Y2FjaGUtPmxvY2spOwogCi0gICAgbDFlX3dyaXRlKCZNQVBDQUNIRV9MMUVOVChpZHgpLCBsMWVf ZnJvbV9wZm4obWZuX3gobWZuKSwgX19QQUdFX0hZUEVSVklTT1JfUlcpKTsKKyAgICBsMWVfd3Jp dGUoJk1BUENBQ0hFX0wxRU5UKGlkeCksIGwxZV9mcm9tX21mbihtZm4sIF9fUEFHRV9IWVBFUlZJ U09SX1JXKSk7CiAKICBvdXQ6CiAgICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCAxZTBhZTJm Li44NzgwYTYwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94 ODYvbW0uYwpAQCAtMTE1Niw3ICsxMTU2LDcgQEAgZ2V0X3BhZ2VfZnJvbV9sM2UoCiAgICAgfQog CiAgICAgcmMgPSBnZXRfcGFnZV9hbmRfdHlwZV9mcm9tX21mbigKLSAgICAgICAgX21mbihsM2Vf Z2V0X3BmbihsM2UpKSwgUEdUX2wyX3BhZ2VfdGFibGUsIGQsIHBhcnRpYWwsIDEpOworICAgICAg ICBsM2VfZ2V0X21mbihsM2UpLCBQR1RfbDJfcGFnZV90YWJsZSwgZCwgcGFydGlhbCwgMSk7CiAg ICAgaWYgKCB1bmxpa2VseShyYyA9PSAtRUlOVkFMKSAmJgogICAgICAgICAgIWlzX3B2XzMyYml0 X2RvbWFpbihkKSAmJgogICAgICAgICAgZ2V0X2wzX2xpbmVhcl9wYWdldGFibGUobDNlLCBwZm4s IGQpICkKQEAgLTExODksNyArMTE4OSw3IEBAIGdldF9wYWdlX2Zyb21fbDRlKAogICAgIH0KIAog ICAgIHJjID0gZ2V0X3BhZ2VfYW5kX3R5cGVfZnJvbV9tZm4oCi0gICAgICAgIF9tZm4obDRlX2dl dF9wZm4obDRlKSksIFBHVF9sM19wYWdlX3RhYmxlLCBkLCBwYXJ0aWFsLCAxKTsKKyAgICAgICAg bDRlX2dldF9tZm4obDRlKSwgUEdUX2wzX3BhZ2VfdGFibGUsIGQsIHBhcnRpYWwsIDEpOwogICAg IGlmICggdW5saWtlbHkocmMgPT0gLUVJTlZBTCkgJiYgZ2V0X2w0X2xpbmVhcl9wYWdldGFibGUo bDRlLCBwZm4sIGQpICkKICAgICAgICAgcmMgPSAwOwogCkBAIC0xNTQ4LDcgKzE1NDgsNyBAQCBz dGF0aWMgaW50IGFsbG9jX2wzX3RhYmxlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCiAgICAgICAg ICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg IHJjID0gZ2V0X3BhZ2VfYW5kX3R5cGVfZnJvbV9tZm4oCi0gICAgICAgICAgICAgICAgICAgIF9t Zm4obDNlX2dldF9wZm4ocGwzZVtpXSkpLAorICAgICAgICAgICAgICAgICAgICBsM2VfZ2V0X21m bihwbDNlW2ldKSwKICAgICAgICAgICAgICAgICAgICAgUEdUX2wyX3BhZ2VfdGFibGUgfCBQR1Rf cGFlX3hlbl9sMiwgZCwgcGFydGlhbCwgMSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAo ICFpc19ndWVzdF9sM19zbG90KGkpIHx8CkBAIC01MTgxLDcgKzUxODEsNyBAQCBpbnQgcHR3cl9k b19wYWdlX2ZhdWx0KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIsCiAgICAgLyog V2UgYXJlIGxvb2tpbmcgb25seSBmb3IgcmVhZC1vbmx5IG1hcHBpbmdzIG9mIHAudC4gcGFnZXMu ICovCiAgICAgaWYgKCAoKGwxZV9nZXRfZmxhZ3MocHRlKSAmIChfUEFHRV9QUkVTRU5UfF9QQUdF X1JXKSkgIT0gX1BBR0VfUFJFU0VOVCkgfHwKICAgICAgICAgIHJhbmdlc2V0X2NvbnRhaW5zX3Np bmdsZXRvbihtbWlvX3JvX3JhbmdlcywgbDFlX2dldF9wZm4ocHRlKSkgfHwKLSAgICAgICAgICFn ZXRfcGFnZV9mcm9tX21mbihfbWZuKGwxZV9nZXRfcGZuKHB0ZSkpLCBkKSApCisgICAgICAgICAh Z2V0X3BhZ2VfZnJvbV9tZm4obDFlX2dldF9tZm4ocHRlKSwgZCkgKQogICAgICAgICBnb3RvIGJh aWw7CiAKICAgICBwYWdlID0gbDFlX2dldF9wYWdlKHB0ZSk7CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvbW0vaGFwL2hhcC5jIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwppbmRleCAwMjdh YjhmLi4xNWU0ODc3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCisrKyBi L3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKQEAgLTQwOSw3ICs0MDksNyBAQCBzdGF0aWMgdm9p ZCBoYXBfaW5zdGFsbF94ZW5fZW50cmllc19pbl9sNChzdHJ1Y3QgdmNwdSAqdiwgbWZuX3QgbDRt Zm4pCiAKICAgICAvKiBJbnN0YWxsIGEgbGluZWFyIG1hcHBpbmcgKi8KICAgICBsNGVbbDRfdGFi bGVfb2Zmc2V0KExJTkVBUl9QVF9WSVJUX1NUQVJUKV0gPQotICAgICAgICBsNGVfZnJvbV9wZm4o bWZuX3gobDRtZm4pLCBfX1BBR0VfSFlQRVJWSVNPUl9SVyk7CisgICAgICAgIGw0ZV9mcm9tX21m bihsNG1mbiwgX19QQUdFX0hZUEVSVklTT1JfUlcpOwogCiAgICAgdW5tYXBfZG9tYWluX3BhZ2Uo bDRlKTsKIH0KQEAgLTc0OSw4ICs3NDksOCBAQCBoYXBfd3JpdGVfcDJtX2VudHJ5KHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCBsMV9wZ2VudHJ5X3QgKnAsCiAgICAgICAgICAm JiAhcDJtX2dldF9ob3N0cDJtKGQpLT5kZWZlcl9uZXN0ZWRfZmx1c2ggKSB7CiAgICAgICAgIC8q IFdlIGFyZSByZXBsYWNpbmcgYSB2YWxpZCBlbnRyeSBzbyB3ZSBuZWVkIHRvIGZsdXNoIG5lc3Rl ZCBwMm1zLAogICAgICAgICAgKiB1bmxlc3MgdGhlIG9ubHkgY2hhbmdlIGlzIGFuIGluY3JlYXNl IGluIGFjY2VzcyByaWdodHMuICovCi0gICAgICAgIG1mbl90IG9tZm4gPSBfbWZuKGwxZV9nZXRf cGZuKCpwKSk7Ci0gICAgICAgIG1mbl90IG5tZm4gPSBfbWZuKGwxZV9nZXRfcGZuKG5ldykpOwor ICAgICAgICBtZm5fdCBvbWZuID0gbDFlX2dldF9tZm4oKnApOworICAgICAgICBtZm5fdCBubWZu ID0gbDFlX2dldF9tZm4obmV3KTsKICAgICAgICAgZmx1c2hfbmVzdGVkcDJtID0gISggbWZuX3go b21mbikgPT0gbWZuX3gobm1mbikKICAgICAgICAgICAgICYmIHBlcm1zX3N0cmljdGx5X2luY3Jl YXNlZChvbGRfZmxhZ3MsIGwxZV9nZXRfZmxhZ3MobmV3KSkgKTsKICAgICB9CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKaW5k ZXggZjBkODA3Ni4uYmEzMmQ0MyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5j CisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwpAQCAtMTYyLDcgKzE2Miw3IEBAIHAybV9m cmVlX2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGwxX3BnZW50cnlfdCAqcDJtX2VudHJ5 LCBpbnQgcGFnZV9vcmRlcikKIAogICAgIGlmICggcGFnZV9vcmRlciA+IFBBR0VfT1JERVJfMk0g KQogICAgIHsKLSAgICAgICAgbDFfcGdlbnRyeV90ICpsM190YWJsZSA9IG1hcF9kb21haW5fcGFn ZShfbWZuKGwxZV9nZXRfcGZuKCpwMm1fZW50cnkpKSk7CisgICAgICAgIGwxX3BnZW50cnlfdCAq bDNfdGFibGUgPSBtYXBfZG9tYWluX3BhZ2UobDFlX2dldF9tZm4oKnAybV9lbnRyeSkpOwogICAg ICAgICBmb3IgKCBpbnQgaSA9IDA7IGkgPCBMM19QQUdFVEFCTEVfRU5UUklFUzsgaSsrICkKICAg ICAgICAgICAgIHAybV9mcmVlX2VudHJ5KHAybSwgbDNfdGFibGUgKyBpLCBwYWdlX29yZGVyIC0g OSk7CiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGwzX3RhYmxlKTsKQEAgLTI5Myw3ICsyOTMs NyBAQCBwMm1fbmV4dF9sZXZlbChzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB2b2lkICoqdGFibGUs CiAgICAgICAgIHAybS0+d3JpdGVfcDJtX2VudHJ5KHAybSwgZ2ZuLCBwMm1fZW50cnksIG5ld19l bnRyeSwgMik7CiAgICAgfQogCi0gICAgbmV4dCA9IG1hcF9kb21haW5fcGFnZShfbWZuKGwxZV9n ZXRfcGZuKCpwMm1fZW50cnkpKSk7CisgICAgbmV4dCA9IG1hcF9kb21haW5fcGFnZShsMWVfZ2V0 X21mbigqcDJtX2VudHJ5KSk7CiAgICAgaWYgKCB1bm1hcCApCiAgICAgICAgIHVubWFwX2RvbWFp bl9wYWdlKCp0YWJsZSk7CiAgICAgKnRhYmxlID0gbmV4dDsKQEAgLTgwOCw3ICs4MDgsNyBAQCBw Mm1fcHRfZ2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2Zu LAogICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDRlKTsKICAgICAgICAgICAgIHJldHVy biBJTlZBTElEX01GTjsKICAgICAgICAgfQotICAgICAgICBtZm4gPSBfbWZuKGw0ZV9nZXRfcGZu KCpsNGUpKTsKKyAgICAgICAgbWZuID0gbDRlX2dldF9tZm4oKmw0ZSk7CiAgICAgICAgIHJlY2Fs YyA9IG5lZWRzX3JlY2FsYyhsNCwgKmw0ZSk7CiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGw0 ZSk7CiAgICAgfQpAQCAtODQ5LDcgKzg0OSw3IEBAIHAybV9wdF9nZXRfZW50cnkoc3RydWN0IHAy bV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4sCiAgICAgICAgICAgICByZXR1cm4gKHAy bV9pc192YWxpZCgqdCkpID8gbWZuIDogSU5WQUxJRF9NRk47CiAgICAgICAgIH0KIAotICAgICAg ICBtZm4gPSBfbWZuKGwzZV9nZXRfcGZuKCpsM2UpKTsKKyAgICAgICAgbWZuID0gbDNlX2dldF9t Zm4oKmwzZSk7CiAgICAgICAgIGlmICggX25lZWRzX3JlY2FsYyhmbGFncykgKQogICAgICAgICAg ICAgcmVjYWxjID0gMTsKICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDNlKTsKQEAgLTg4OCw3 ICs4ODgsNyBAQCBwMm1fcHRfZ2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2ln bmVkIGxvbmcgZ2ZuLAogICAgICAgICByZXR1cm4gKHAybV9pc192YWxpZCgqdCkpID8gbWZuIDog SU5WQUxJRF9NRk47CiAgICAgfQogCi0gICAgbWZuID0gX21mbihsMmVfZ2V0X3BmbigqbDJlKSk7 CisgICAgbWZuID0gbDJlX2dldF9tZm4oKmwyZSk7CiAgICAgaWYgKCBuZWVkc19yZWNhbGMobDIs ICpsMmUpICkKICAgICAgICAgcmVjYWxjID0gMTsKICAgICB1bm1hcF9kb21haW5fcGFnZShsMmUp OwpAQCAtOTE2LDcgKzkxNiw3IEBAIHAybV9wdF9nZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4g KnAybSwgdW5zaWduZWQgbG9uZyBnZm4sCiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGwxZSk7 CiAgICAgICAgIHJldHVybiBJTlZBTElEX01GTjsKICAgICB9Ci0gICAgbWZuID0gX21mbihsMWVf Z2V0X3BmbigqbDFlKSk7CisgICAgbWZuID0gbDFlX2dldF9tZm4oKmwxZSk7CiAgICAgKnQgPSBw Mm1fcmVjYWxjX3R5cGUocmVjYWxjIHx8IF9uZWVkc19yZWNhbGMoZmxhZ3MpLCBsMXQsIHAybSwg Z2ZuKTsKICAgICB1bm1hcF9kb21haW5fcGFnZShsMWUpOwogCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24u YwppbmRleCAyNjhiYWU0Li5lOGVlNmRiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hh ZG93L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKQEAgLTM0 NjAsNyArMzQ2MCw3IEBAIHN0YXRpYyB2b2lkIHNoX3Vuc2hhZG93X2Zvcl9wMm1fY2hhbmdlKHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAogICAgIC8qIElmIHdlJ3JlIHJlbW92 aW5nIGFuIE1GTiBmcm9tIHRoZSBwMm0sIHJlbW92ZSBpdCBmcm9tIHRoZSBzaGFkb3dzIHRvbyAq LwogICAgIGlmICggbGV2ZWwgPT0gMSApCiAgICAgewotICAgICAgICBtZm5fdCBtZm4gPSBfbWZu KGwxZV9nZXRfcGZuKCpwKSk7CisgICAgICAgIG1mbl90IG1mbiA9IGwxZV9nZXRfbWZuKCpwKTsK ICAgICAgICAgcDJtX3R5cGVfdCBwMm10ID0gcDJtX2ZsYWdzX3RvX3R5cGUobDFlX2dldF9mbGFn cygqcCkpOwogICAgICAgICBpZiAoIChwMm1faXNfdmFsaWQocDJtdCkgfHwgcDJtX2lzX2dyYW50 KHAybXQpKSAmJiBtZm5fdmFsaWQobWZuKSApCiAgICAgICAgIHsKQEAgLTM0NzgsOCArMzQ3OCw4 IEBAIHN0YXRpYyB2b2lkIHNoX3Vuc2hhZG93X2Zvcl9wMm1fY2hhbmdlKHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAogICAgIHsKICAgICAgICAgdW5zaWduZWQgaW50IGk7CiAg ICAgICAgIGNwdW1hc2tfdCBmbHVzaG1hc2s7Ci0gICAgICAgIG1mbl90IG9tZm4gPSBfbWZuKGwx ZV9nZXRfcGZuKCpwKSk7Ci0gICAgICAgIG1mbl90IG5tZm4gPSBfbWZuKGwxZV9nZXRfcGZuKG5l dykpOworICAgICAgICBtZm5fdCBvbWZuID0gbDFlX2dldF9tZm4oKnApOworICAgICAgICBtZm5f dCBubWZuID0gbDFlX2dldF9tZm4obmV3KTsKICAgICAgICAgbDFfcGdlbnRyeV90ICpucHRlID0g TlVMTDsKICAgICAgICAgcDJtX3R5cGVfdCBwMm10ID0gcDJtX2ZsYWdzX3RvX3R5cGUobDFlX2dl dF9mbGFncygqcCkpOwogICAgICAgICBpZiAoIHAybV9pc192YWxpZChwMm10KSAmJiBtZm5fdmFs aWQob21mbikgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIGIv eGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCmluZGV4IGY4YTg5MjguLmYwZWFiYjYgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYworKysgYi94ZW4vYXJjaC94 ODYvbW0vc2hhZG93L211bHRpLmMKQEAgLTE2NTUsMTIgKzE2NTUsMTIgQEAgc2hfbWFrZV9tb25p dG9yX3RhYmxlKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAgICAgbTNtZm4gPSBzaGFkb3dfYWxs b2MoZCwgU0hfdHlwZV9tb25pdG9yX3RhYmxlLCAwKTsKICAgICAgICAgICAgIG1mbl90b19wYWdl KG0zbWZuKS0+c2hhZG93X2ZsYWdzID0gMzsKICAgICAgICAgICAgIGw0ZVtzaGFkb3dfbDRfdGFi bGVfb2Zmc2V0KFNIX0xJTkVBUl9QVF9WSVJUX1NUQVJUKV0KLSAgICAgICAgICAgICAgICA9IGw0 ZV9mcm9tX3BmbihtZm5feChtM21mbiksIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKKyAgICAgICAg ICAgICAgICA9IGw0ZV9mcm9tX21mbihtM21mbiwgX19QQUdFX0hZUEVSVklTT1JfUlcpOwogCiAg ICAgICAgICAgICBtMm1mbiA9IHNoYWRvd19hbGxvYyhkLCBTSF90eXBlX21vbml0b3JfdGFibGUs IDApOwogICAgICAgICAgICAgbWZuX3RvX3BhZ2UobTJtZm4pLT5zaGFkb3dfZmxhZ3MgPSAyOwog ICAgICAgICAgICAgbDNlID0gbWFwX2RvbWFpbl9wYWdlKG0zbWZuKTsKLSAgICAgICAgICAgIGwz ZVswXSA9IGwzZV9mcm9tX3BmbihtZm5feChtMm1mbiksIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsK KyAgICAgICAgICAgIGwzZVswXSA9IGwzZV9mcm9tX21mbihtMm1mbiwgX19QQUdFX0hZUEVSVklT T1JfUlcpOwogICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDNlKTsKIAogICAgICAgICAg ICAgaWYgKCBpc19wdl8zMmJpdF9kb21haW4oZCkgKQpAQCAtMTY2OSwxMiArMTY2OSwxMiBAQCBz aF9tYWtlX21vbml0b3JfdGFibGUoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgICAgICAgICAgICog YXJlYSBpbnRvIGl0cyB1c3VhbCBWQXMgaW4gdGhlIG1vbml0b3IgdGFibGVzICovCiAgICAgICAg ICAgICAgICAgbTNtZm4gPSBzaGFkb3dfYWxsb2MoZCwgU0hfdHlwZV9tb25pdG9yX3RhYmxlLCAw KTsKICAgICAgICAgICAgICAgICBtZm5fdG9fcGFnZShtM21mbiktPnNoYWRvd19mbGFncyA9IDM7 Ci0gICAgICAgICAgICAgICAgbDRlWzBdID0gbDRlX2Zyb21fcGZuKG1mbl94KG0zbWZuKSwgX19Q QUdFX0hZUEVSVklTT1JfUlcpOworICAgICAgICAgICAgICAgIGw0ZVswXSA9IGw0ZV9mcm9tX21m bihtM21mbiwgX19QQUdFX0hZUEVSVklTT1JfUlcpOwogCiAgICAgICAgICAgICAgICAgbTJtZm4g PSBzaGFkb3dfYWxsb2MoZCwgU0hfdHlwZV9tb25pdG9yX3RhYmxlLCAwKTsKICAgICAgICAgICAg ICAgICBtZm5fdG9fcGFnZShtMm1mbiktPnNoYWRvd19mbGFncyA9IDI7CiAgICAgICAgICAgICAg ICAgbDNlID0gbWFwX2RvbWFpbl9wYWdlKG0zbWZuKTsKLSAgICAgICAgICAgICAgICBsM2VbM10g PSBsM2VfZnJvbV9wZm4obWZuX3gobTJtZm4pLCBfUEFHRV9QUkVTRU5UKTsKKyAgICAgICAgICAg ICAgICBsM2VbM10gPSBsM2VfZnJvbV9tZm4obTJtZm4sIF9QQUdFX1BSRVNFTlQpOwogICAgICAg ICAgICAgICAgIHNoX2luc3RhbGxfeGVuX2VudHJpZXNfaW5fbDJoKGQsIG0ybWZuKTsKICAgICAg ICAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsM2UpOwogICAgICAgICAgICAgfQpAQCAtMjA3 NSwxMCArMjA3NSwxMCBAQCB2b2lkIHNoX2Rlc3Ryb3lfbW9uaXRvcl90YWJsZShzdHJ1Y3QgdmNw dSAqdiwgbWZuX3QgbW1mbikKICAgICAgICAgLyogTmVlZCB0byBkZXN0cm95IHRoZSBsMyBhbmQg bDIgbW9uaXRvciBwYWdlcyB1c2VkCiAgICAgICAgICAqIGZvciB0aGUgbGluZWFyIG1hcCAqLwog ICAgICAgICBBU1NFUlQobDRlX2dldF9mbGFncyhsNGVbbGluZWFyX3Nsb3RdKSAmIF9QQUdFX1BS RVNFTlQpOwotICAgICAgICBtM21mbiA9IF9tZm4obDRlX2dldF9wZm4obDRlW2xpbmVhcl9zbG90 XSkpOworICAgICAgICBtM21mbiA9IGw0ZV9nZXRfbWZuKGw0ZVtsaW5lYXJfc2xvdF0pOwogICAg ICAgICBsM2UgPSBtYXBfZG9tYWluX3BhZ2UobTNtZm4pOwogICAgICAgICBBU1NFUlQobDNlX2dl dF9mbGFncyhsM2VbMF0pICYgX1BBR0VfUFJFU0VOVCk7Ci0gICAgICAgIHNoYWRvd19mcmVlKGQs IF9tZm4obDNlX2dldF9wZm4obDNlWzBdKSkpOworICAgICAgICBzaGFkb3dfZnJlZShkLCBsM2Vf Z2V0X21mbihsM2VbMF0pKTsKICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDNlKTsKICAgICAg ICAgc2hhZG93X2ZyZWUoZCwgbTNtZm4pOwogCkBAIC0yMDg3LDEwICsyMDg3LDEwIEBAIHZvaWQg c2hfZGVzdHJveV9tb25pdG9yX3RhYmxlKHN0cnVjdCB2Y3B1ICp2LCBtZm5fdCBtbWZuKQogICAg ICAgICAgICAgLyogTmVlZCB0byBkZXN0cm95IHRoZSBsMyBhbmQgbDIgbW9uaXRvciBwYWdlcyB0 aGF0IG1hcCB0aGUKICAgICAgICAgICAgICAqIFhlbiBWQXMgYXQgM0dCLTRHQiAqLwogICAgICAg ICAgICAgQVNTRVJUKGw0ZV9nZXRfZmxhZ3MobDRlWzBdKSAmIF9QQUdFX1BSRVNFTlQpOwotICAg ICAgICAgICAgbTNtZm4gPSBfbWZuKGw0ZV9nZXRfcGZuKGw0ZVswXSkpOworICAgICAgICAgICAg bTNtZm4gPSBsNGVfZ2V0X21mbihsNGVbMF0pOwogICAgICAgICAgICAgbDNlID0gbWFwX2RvbWFp bl9wYWdlKG0zbWZuKTsKICAgICAgICAgICAgIEFTU0VSVChsM2VfZ2V0X2ZsYWdzKGwzZVszXSkg JiBfUEFHRV9QUkVTRU5UKTsKLSAgICAgICAgICAgIHNoYWRvd19mcmVlKGQsIF9tZm4obDNlX2dl dF9wZm4obDNlWzNdKSkpOworICAgICAgICAgICAgc2hhZG93X2ZyZWUoZCwgbDNlX2dldF9tZm4o bDNlWzNdKSk7CiAgICAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsM2UpOwogICAgICAgICAg ICAgc2hhZG93X2ZyZWUoZCwgbTNtZm4pOwogICAgICAgICB9CkBAIC0zODg2LDEyICszODg2LDEy IEBAIHNoX3VwZGF0ZV9saW5lYXJfZW50cmllcyhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgICAg IG1sNGUgPSBtYXBfZG9tYWluX3BhZ2UocGFnZXRhYmxlX2dldF9tZm4odi0+YXJjaC5tb25pdG9y X3RhYmxlKSk7CiAKICAgICAgICAgICAgIEFTU0VSVChsNGVfZ2V0X2ZsYWdzKG1sNGVbbGluZWFy X3Nsb3RdKSAmIF9QQUdFX1BSRVNFTlQpOwotICAgICAgICAgICAgbDNtZm4gPSBfbWZuKGw0ZV9n ZXRfcGZuKG1sNGVbbGluZWFyX3Nsb3RdKSk7CisgICAgICAgICAgICBsM21mbiA9IGw0ZV9nZXRf bWZuKG1sNGVbbGluZWFyX3Nsb3RdKTsKICAgICAgICAgICAgIG1sM2UgPSBtYXBfZG9tYWluX3Bh Z2UobDNtZm4pOwogICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobWw0ZSk7CiAKICAgICAg ICAgICAgIEFTU0VSVChsM2VfZ2V0X2ZsYWdzKG1sM2VbMF0pICYgX1BBR0VfUFJFU0VOVCk7Ci0g ICAgICAgICAgICBsMm1mbiA9IF9tZm4obDNlX2dldF9wZm4obWwzZVswXSkpOworICAgICAgICAg ICAgbDJtZm4gPSBsM2VfZ2V0X21mbihtbDNlWzBdKTsKICAgICAgICAgICAgIG1sMmUgPSBtYXBf ZG9tYWluX3BhZ2UobDJtZm4pOwogICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobWwzZSk7 CiAgICAgICAgIH0KQEAgLTM5MDMsNyArMzkwMyw3IEBAIHNoX3VwZGF0ZV9saW5lYXJfZW50cmll cyhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgewogICAgICAgICAgICAgbWwyZVtpXSA9CiAgICAg ICAgICAgICAgICAgKHNoYWRvd19sM2VfZ2V0X2ZsYWdzKHNsM2VbaV0pICYgX1BBR0VfUFJFU0VO VCkKLSAgICAgICAgICAgICAgICA/IGwyZV9mcm9tX3BmbihtZm5feChzaGFkb3dfbDNlX2dldF9t Zm4oc2wzZVtpXSkpLAorICAgICAgICAgICAgICAgID8gbDJlX2Zyb21fbWZuKHNoYWRvd19sM2Vf Z2V0X21mbihzbDNlW2ldKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1BBR0Vf SFlQRVJWSVNPUl9SVykKICAgICAgICAgICAgICAgICA6IGwyZV9lbXB0eSgpOwogICAgICAgICB9 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L3R5cGVzLmggYi94ZW4vYXJjaC94 ODYvbW0vc2hhZG93L3R5cGVzLmgKaW5kZXggYTcxN2Q3NC4uNzNmMzhmMCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L21tL3NoYWRvdy90eXBlcy5oCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFk b3cvdHlwZXMuaApAQCAtNzUsMTQgKzc1LDE0IEBAIHN0YXRpYyBpbmxpbmUgcGFkZHJfdCBzaGFk b3dfbDRlX2dldF9wYWRkcihzaGFkb3dfbDRlX3Qgc2w0ZSkKICNlbmRpZgogCiBzdGF0aWMgaW5s aW5lIG1mbl90IHNoYWRvd19sMWVfZ2V0X21mbihzaGFkb3dfbDFlX3Qgc2wxZSkKLXsgcmV0dXJu IF9tZm4obDFlX2dldF9wZm4oc2wxZSkpOyB9Cit7IHJldHVybiBsMWVfZ2V0X21mbihzbDFlKTsg fQogc3RhdGljIGlubGluZSBtZm5fdCBzaGFkb3dfbDJlX2dldF9tZm4oc2hhZG93X2wyZV90IHNs MmUpCi17IHJldHVybiBfbWZuKGwyZV9nZXRfcGZuKHNsMmUpKTsgfQoreyByZXR1cm4gbDJlX2dl dF9tZm4oc2wyZSk7IH0KIHN0YXRpYyBpbmxpbmUgbWZuX3Qgc2hhZG93X2wzZV9nZXRfbWZuKHNo YWRvd19sM2VfdCBzbDNlKQoteyByZXR1cm4gX21mbihsM2VfZ2V0X3BmbihzbDNlKSk7IH0KK3sg cmV0dXJuIGwzZV9nZXRfbWZuKHNsM2UpOyB9CiAjaWYgU0hBRE9XX1BBR0lOR19MRVZFTFMgPj0g NAogc3RhdGljIGlubGluZSBtZm5fdCBzaGFkb3dfbDRlX2dldF9tZm4oc2hhZG93X2w0ZV90IHNs NGUpCi17IHJldHVybiBfbWZuKGw0ZV9nZXRfcGZuKHNsNGUpKTsgfQoreyByZXR1cm4gbDRlX2dl dF9tZm4oc2w0ZSk7IH0KICNlbmRpZgogCiBzdGF0aWMgaW5saW5lIHUzMiBzaGFkb3dfbDFlX2dl dF9mbGFncyhzaGFkb3dfbDFlX3Qgc2wxZSkKQEAgLTExNSwxNCArMTE1LDE0IEBAIHN0YXRpYyBp bmxpbmUgc2hhZG93X2w0ZV90IHNoYWRvd19sNGVfZW1wdHkodm9pZCkKICNlbmRpZgogCiBzdGF0 aWMgaW5saW5lIHNoYWRvd19sMWVfdCBzaGFkb3dfbDFlX2Zyb21fbWZuKG1mbl90IG1mbiwgdTMy IGZsYWdzKQoteyByZXR1cm4gbDFlX2Zyb21fcGZuKG1mbl94KG1mbiksIGZsYWdzKTsgfQoreyBy ZXR1cm4gbDFlX2Zyb21fbWZuKG1mbiwgZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIHNoYWRvd19s MmVfdCBzaGFkb3dfbDJlX2Zyb21fbWZuKG1mbl90IG1mbiwgdTMyIGZsYWdzKQoteyByZXR1cm4g bDJlX2Zyb21fcGZuKG1mbl94KG1mbiksIGZsYWdzKTsgfQoreyByZXR1cm4gbDJlX2Zyb21fbWZu KG1mbiwgZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIHNoYWRvd19sM2VfdCBzaGFkb3dfbDNlX2Zy b21fbWZuKG1mbl90IG1mbiwgdTMyIGZsYWdzKQoteyByZXR1cm4gbDNlX2Zyb21fcGZuKG1mbl94 KG1mbiksIGZsYWdzKTsgfQoreyByZXR1cm4gbDNlX2Zyb21fbWZuKG1mbiwgZmxhZ3MpOyB9CiAj aWYgU0hBRE9XX1BBR0lOR19MRVZFTFMgPj0gNAogc3RhdGljIGlubGluZSBzaGFkb3dfbDRlX3Qg c2hhZG93X2w0ZV9mcm9tX21mbihtZm5fdCBtZm4sIHUzMiBmbGFncykKLXsgcmV0dXJuIGw0ZV9m cm9tX3BmbihtZm5feChtZm4pLCBmbGFncyk7IH0KK3sgcmV0dXJuIGw0ZV9mcm9tX21mbihtZm4s IGZsYWdzKTsgfQogI2VuZGlmCiAKICNkZWZpbmUgc2hhZG93X2wxX3RhYmxlX29mZnNldChhKSBs MV90YWJsZV9vZmZzZXQoYSkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKaW5kZXggMjQyOTAzZi4uODQ2M2Q3MSAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9wYWdlLmgKQEAgLTcxLDYgKzcxLDEyIEBACiAjZGVmaW5lIGw0ZV9nZXRfcGZuKHgpICAg ICAgICAgICAgIFwKICAgICAoKHVuc2lnbmVkIGxvbmcpKCgoeCkubDQgJiAoUEFERFJfTUFTSyZQ QUdFX01BU0spKSA+PiBQQUdFX1NISUZUKSkKIAorLyogR2V0IG1mbiBtYXBwZWQgYnkgcHRlICht Zm5fdCkuICovCisjZGVmaW5lIGwxZV9nZXRfbWZuKHgpIF9tZm4obDFlX2dldF9wZm4oeCkpCisj ZGVmaW5lIGwyZV9nZXRfbWZuKHgpIF9tZm4obDJlX2dldF9wZm4oeCkpCisjZGVmaW5lIGwzZV9n ZXRfbWZuKHgpIF9tZm4obDNlX2dldF9wZm4oeCkpCisjZGVmaW5lIGw0ZV9nZXRfbWZuKHgpIF9t Zm4obDRlX2dldF9wZm4oeCkpCisKIC8qIEdldCBwaHlzaWNhbCBhZGRyZXNzIG9mIHBhZ2UgbWFw cGVkIGJ5IHB0ZSAocGFkZHJfdCkuICovCiAjZGVmaW5lIGwxZV9nZXRfcGFkZHIoeCkgICAgICAg ICAgIFwKICAgICAoKHBhZGRyX3QpKCgoeCkubDEgJiAoUEFERFJfTUFTSyZQQUdFX01BU0spKSkp CkBAIC0xMTQsNiArMTIwLDEyIEBACiAjZGVmaW5lIGw0ZV9mcm9tX3BmbihwZm4sIGZsYWdzKSAg IFwKICAgICAoKGw0X3BnZW50cnlfdCkgeyAoKGludHB0ZV90KShwZm4pIDw8IFBBR0VfU0hJRlQp IHwgcHV0X3B0ZV9mbGFncyhmbGFncykgfSkKIAorLyogQ29uc3RydWN0IGEgcHRlIGZyb20gYW4g bWZuIGFuZCBhY2Nlc3MgZmxhZ3MuICovCisjZGVmaW5lIGwxZV9mcm9tX21mbihtLCBmKSBsMWVf ZnJvbV9wZm4obWZuX3gobSksIGYpCisjZGVmaW5lIGwyZV9mcm9tX21mbihtLCBmKSBsMmVfZnJv bV9wZm4obWZuX3gobSksIGYpCisjZGVmaW5lIGwzZV9mcm9tX21mbihtLCBmKSBsM2VfZnJvbV9w Zm4obWZuX3gobSksIGYpCisjZGVmaW5lIGw0ZV9mcm9tX21mbihtLCBmKSBsNGVfZnJvbV9wZm4o bWZuX3gobSksIGYpCisKIC8qIENvbnN0cnVjdCBhIHB0ZSBmcm9tIGEgcGh5c2ljYWwgYWRkcmVz cyBhbmQgYWNjZXNzIGZsYWdzLiAqLwogI2lmbmRlZiBfX0FTU0VNQkxZX18KIHN0YXRpYyBpbmxp bmUgbDFfcGdlbnRyeV90IGwxZV9mcm9tX3BhZGRyKHBhZGRyX3QgcGEsIHVuc2lnbmVkIGludCBm bGFncykKQEAgLTE4MCw5ICsxOTIsOSBAQCBzdGF0aWMgaW5saW5lIGw0X3BnZW50cnlfdCBsNGVf ZnJvbV9wYWRkcihwYWRkcl90IHBhLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAjZGVmaW5lIGwzZV90 b19sMmUoeCkgICAgICAgICAgICAgICgobDJfcGdlbnRyeV90ICopX192YShsM2VfZ2V0X3BhZGRy KHgpKSkKICNkZWZpbmUgbDRlX3RvX2wzZSh4KSAgICAgICAgICAgICAgKChsM19wZ2VudHJ5X3Qg KilfX3ZhKGw0ZV9nZXRfcGFkZHIoeCkpKQogCi0jZGVmaW5lIG1hcF9sMXRfZnJvbV9sMmUoeCkg ICAgICAgICgobDFfcGdlbnRyeV90ICopbWFwX2RvbWFpbl9wYWdlKF9tZm4obDJlX2dldF9wZm4o eCkpKSkKLSNkZWZpbmUgbWFwX2wydF9mcm9tX2wzZSh4KSAgICAgICAgKChsMl9wZ2VudHJ5X3Qg KiltYXBfZG9tYWluX3BhZ2UoX21mbihsM2VfZ2V0X3Bmbih4KSkpKQotI2RlZmluZSBtYXBfbDN0 X2Zyb21fbDRlKHgpICAgICAgICAoKGwzX3BnZW50cnlfdCAqKW1hcF9kb21haW5fcGFnZShfbWZu KGw0ZV9nZXRfcGZuKHgpKSkpCisjZGVmaW5lIG1hcF9sMXRfZnJvbV9sMmUoeCkgICAgICAgICgo bDFfcGdlbnRyeV90ICopbWFwX2RvbWFpbl9wYWdlKGwyZV9nZXRfbWZuKHgpKSkKKyNkZWZpbmUg bWFwX2wydF9mcm9tX2wzZSh4KSAgICAgICAgKChsMl9wZ2VudHJ5X3QgKiltYXBfZG9tYWluX3Bh Z2UobDNlX2dldF9tZm4oeCkpKQorI2RlZmluZSBtYXBfbDN0X2Zyb21fbDRlKHgpICAgICAgICAo KGwzX3BnZW50cnlfdCAqKW1hcF9kb21haW5fcGFnZShsNGVfZ2V0X21mbih4KSkpCiAKIC8qIEdp dmVuIGEgdmlydHVhbCBhZGRyZXNzLCBnZXQgYW4gZW50cnkgb2Zmc2V0IGludG8gYSBwYWdlIHRh YmxlLiAqLwogI2RlZmluZSBsMV90YWJsZV9vZmZzZXQoYSkgICAgICAgICBcCi0tIAoyLjEuNAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=