From: Thomas Garnier Subject: [RFC 22/22] x86/kaslr: Add option to extend KASLR range from 1GB to 3GB Date: Tue, 18 Jul 2017 15:33:33 -0700 Message-ID: <20170718223333.110371-23-thgarnie@google.com> References: <20170718223333.110371-1-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-arch@vger.kernel.org, kvm@vger.kernel.org, linux-pm@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, linux-sparse@vger.kernel.org, linux-crypto@vger.kernel.org, kernel-hardening@lists.openwall.com, xen-devel@lists.xenproject.org To: Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Peter Zijlstra , Josh Poimboeuf , Thomas Garnier , Arnd Bergmann , Matthias Kaehlcke , Boris Ostrovsky , Juergen Gross , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Joerg Roedel , Andy Lutomirski , Borislav Petkov , "Kirill A . Shutemov" , Brian Gerst , Borislav Petkov , Christian Borntraeger , "Rafael J . Wysocki" , Len Brown In-Reply-To: <20170718223333.110371-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" List-Id: linux-crypto.vger.kernel.org QWRkIGEgbmV3IENPTkZJR19SQU5ET01JWkVfQkFTRV9MQVJHRSBvcHRpb24gdG8gYmVuZWZpdCBm cm9tIFBJRQpzdXBwb3J0LiBJdCBpbmNyZWFzZXMgdGhlIEtBU0xSIHJhbmdlIGZyb20gMUdCIHRv IDNHQi4gVGhlIG5ldyByYW5nZQpzdGFycyBhdCAweGZmZmZmZmZmMDAwMDAwMDAganVzdCBhYm92 ZSB0aGUgRUZJIG1lbW9yeSByZWdpb24uIFRoaXMKb3B0aW9uIGlzIG9mZiBieSBkZWZhdWx0LgoK VGhlIGJvb3QgY29kZSBpcyBhZGFwdGVkIHRvIGNyZWF0ZSB0aGUgYXBwcm9wcmlhdGUgcGFnZSB0 YWJsZSBzcGFubmluZwp0aHJlZSBQVUQgcGFnZXMuCgpUaGUgcmVsb2NhdGlvbiB0YWJsZSB1c2Vz IDY0LWJpdCBpbnRlZ2VycyBnZW5lcmF0ZWQgd2l0aCB0aGUgdXBkYXRlZApyZWxvY2F0aW9uIHRv b2wgd2l0aCB0aGUgbGFyZ2UtcmVsb2Mgb3B0aW9uLgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEdh cm5pZXIgPHRoZ2FybmllQGdvb2dsZS5jb20+Ci0tLQogYXJjaC94ODYvS2NvbmZpZyAgICAgICAg ICAgICAgICAgICAgIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCiBhcmNoL3g4Ni9ib290L2Nv bXByZXNzZWQvTWFrZWZpbGUgICAgfCAgNSArKysrKwogYXJjaC94ODYvYm9vdC9jb21wcmVzc2Vk L21pc2MuYyAgICAgIHwgMTAgKysrKysrKysrLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZV82 NF90eXBlcy5oIHwgIDkgKysrKysrKysrCiBhcmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMgICAgICAg ICAgICAgfCAxOCArKysrKysrKysrKysrKy0tLS0KIGFyY2gveDg2L2tlcm5lbC9oZWFkXzY0LlMg ICAgICAgICAgICB8IDExICsrKysrKysrKystCiA2IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlv bnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZyBiL2Fy Y2gveDg2L0tjb25maWcKaW5kZXggNjBkMTYxMzkxZDVhLi44MDU0ZWVmNzZkZmMgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L0tjb25maWcKKysrIGIvYXJjaC94ODYvS2NvbmZpZwpAQCAtMjA5Niw2ICsy MDk2LDI3IEBAIGNvbmZpZyBYODZfTU9EVUxFX1BMVFMKIAlzZWxlY3QgWDg2X01PRFVMRV9NT0RF TF9MQVJHRQogCXNlbGVjdCBIQVZFX01PRF9BUkNIX1NQRUNJRklDCiAKK2NvbmZpZyBSQU5ET01J WkVfQkFTRV9MQVJHRQorCWJvb2wgIkluY3JlYXNlIHRoZSByYW5kb21pemF0aW9uIHJhbmdlIG9m IHRoZSBrZXJuZWwgaW1hZ2UiCisJZGVwZW5kcyBvbiBYODZfNjQgJiYgUkFORE9NSVpFX0JBU0UK KwlzZWxlY3QgWDg2X1BJRQorCXNlbGVjdCBYODZfTU9EVUxFX1BMVFMgaWYgTU9EVUxFUworCWRl ZmF1bHQgbgorCS0tLWhlbHAtLS0KKwkgIEJ1aWxkIHRoZSBrZXJuZWwgYXMgYSBQb3NpdGlvbiBJ bmRlcGVuZGVudCBFeGVjdXRhYmxlIChQSUUpIGFuZAorCSAgaW5jcmVhc2UgdGhlIGF2YWlsYWJs ZSByYW5kb21pemF0aW9uIHJhbmdlIGZyb20gMUdCIHRvIDNHQi4KKworCSAgVGhpcyBvcHRpb24g aW1wYWN0cyBwZXJmb3JtYW5jZSBvbiBrZXJuZWwgQ1BVIGludGVuc2l2ZSB3b3JrbG9hZHMgdXAK KwkgIHRvIDEwJSBkdWUgdG8gUElFIGdlbmVyYXRlZCBjb2RlLiBJbXBhY3Qgb24gdXNlci1tb2Rl IHByb2Nlc3NlcyBhbmQKKwkgIHR5cGljYWwgdXNhZ2Ugd291bGQgYmUgc2lnbmlmaWNhbnRseSBs ZXNzICgwLjUwJSB3aGVuIHlvdSBidWlsZCB0aGUKKwkgIGtlcm5lbCkuCisKKwkgIFRoZSBrZXJu ZWwgYW5kIG1vZHVsZXMgd2lsbCBnZW5lcmF0ZSBzbGlnaHRseSBtb3JlIGFzc2VtYmx5ICgxIHRv IDIlCisJICBpbmNyZWFzZSBvbiB0aGUgLnRleHQgc2VjdGlvbnMpLiBUaGUgdm1saW51eCBiaW5h cnkgd2lsbCBiZQorCSAgc2lnbmlmaWNhbnRseSBzbWFsbGVyIGR1ZSB0byBsZXNzIHJlbG9jYXRp b25zLgorCisJICBJZiB1bnN1cmUgc2F5IE4KKwogY29uZmlnIEhPVFBMVUdfQ1BVCiAJYm9vbCAi U3VwcG9ydCBmb3IgaG90LXBsdWdnYWJsZSBDUFVzIgogCWRlcGVuZHMgb24gU01QCmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvTWFrZWZpbGUgYi9hcmNoL3g4Ni9ib290L2Nv bXByZXNzZWQvTWFrZWZpbGUKaW5kZXggMmM4NjBhZDRmZTA2Li44ZjQzMTc4NjRlOTggMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9i b290L2NvbXByZXNzZWQvTWFrZWZpbGUKQEAgLTExMSw3ICsxMTEsMTIgQEAgJChvYmopL3ZtbGlu dXguYmluOiB2bWxpbnV4IEZPUkNFCiAKIHRhcmdldHMgKz0gJChwYXRzdWJzdCAkKG9iaikvJSwl LCQodm1saW51eC1vYmpzLXkpKSB2bWxpbnV4LmJpbi5hbGwgdm1saW51eC5yZWxvY3MKIAorIyBM YXJnZSByYW5kb21pemF0aW9uIHJlcXVpcmUgYmlnZ2VyIHJlbG9jYXRpb24gdGFibGUKK2lmZXEg KCQoQ09ORklHX1JBTkRPTUlaRV9CQVNFX0xBUkdFKSx5KQorQ01EX1JFTE9DUyA9IGFyY2gveDg2 L3Rvb2xzL3JlbG9jcyAtLWxhcmdlLXJlbG9jCitlbHNlCiBDTURfUkVMT0NTID0gYXJjaC94ODYv dG9vbHMvcmVsb2NzCitlbmRpZgogcXVpZXRfY21kX3JlbG9jcyA9IFJFTE9DUyAgJEAKICAgICAg IGNtZF9yZWxvY3MgPSAkKENNRF9SRUxPQ1MpICQ8ID4gJEA7JChDTURfUkVMT0NTKSAtLWFicy1y ZWxvY3MgJDwKICQob2JqKS92bWxpbnV4LnJlbG9jczogdm1saW51eCBGT1JDRQpkaWZmIC0tZ2l0 IGEvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL21pc2MuYyBiL2FyY2gveDg2L2Jvb3QvY29tcHJl c3NlZC9taXNjLmMKaW5kZXggYTA4MzhhYjkyOWYyLi4wYTBjODBhYjE4NDIgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9taXNjLmMKKysrIGIvYXJjaC94ODYvYm9vdC9jb21w cmVzc2VkL21pc2MuYwpAQCAtMTcwLDEwICsxNzAsMTggQEAgdm9pZCBfX3B1dGhleCh1bnNpZ25l ZCBsb25nIHZhbHVlKQogfQogCiAjaWYgQ09ORklHX1g4Nl9ORUVEX1JFTE9DUworCisvKiBMYXJn ZSByYW5kb21pemF0aW9uIGdvIGxvd2VyIHRoYW4gLTJHIGFuZCB1c2UgbGFyZ2UgcmVsb2NhdGlv biB0YWJsZSAqLworI2lmZGVmIENPTkZJR19SQU5ET01JWkVfQkFTRV9MQVJHRQordHlwZWRlZiBs b25nIHJlbF90OworI2Vsc2UKK3R5cGVkZWYgaW50IHJlbF90OworI2VuZGlmCisKIHN0YXRpYyB2 b2lkIGhhbmRsZV9yZWxvY2F0aW9ucyh2b2lkICpvdXRwdXQsIHVuc2lnbmVkIGxvbmcgb3V0cHV0 X2xlbiwKIAkJCSAgICAgICB1bnNpZ25lZCBsb25nIHZpcnRfYWRkcikKIHsKLQlpbnQgKnJlbG9j OworCXJlbF90ICpyZWxvYzsKIAl1bnNpZ25lZCBsb25nIGRlbHRhLCBtYXAsIHB0cjsKIAl1bnNp Z25lZCBsb25nIG1pbl9hZGRyID0gKHVuc2lnbmVkIGxvbmcpb3V0cHV0OwogCXVuc2lnbmVkIGxv bmcgbWF4X2FkZHIgPSBtaW5fYWRkciArIChWT19fX2Jzc19zdGFydCAtIFZPX190ZXh0KTsKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjRfdHlwZXMuaCBiL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3BhZ2VfNjRfdHlwZXMuaAppbmRleCAzZjVmMDhiMDEwZDAuLjZiNjVmODQ2 ZGQ2NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZV82NF90eXBlcy5oCisr KyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjRfdHlwZXMuaApAQCAtNDgsNyArNDgsMTEg QEAKICNkZWZpbmUgX19QQUdFX09GRlNFVCAgICAgICAgICAgX19QQUdFX09GRlNFVF9CQVNFCiAj ZW5kaWYgLyogQ09ORklHX1JBTkRPTUlaRV9NRU1PUlkgKi8KIAorI2lmZGVmIENPTkZJR19SQU5E T01JWkVfQkFTRV9MQVJHRQorI2RlZmluZSBfX1NUQVJUX0tFUk5FTF9tYXAJX0FDKDB4ZmZmZmZm ZmYwMDAwMDAwMCwgVUwpCisjZWxzZQogI2RlZmluZSBfX1NUQVJUX0tFUk5FTF9tYXAJX0FDKDB4 ZmZmZmZmZmY4MDAwMDAwMCwgVUwpCisjZW5kaWYgLyogQ09ORklHX1JBTkRPTUlaRV9CQVNFX0xB UkdFICovCiAKIC8qIFNlZSBEb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbW0udHh0IGZvciBhIGRl c2NyaXB0aW9uIG9mIHRoZSBtZW1vcnkgbWFwLiAqLwogI2lmZGVmIENPTkZJR19YODZfNUxFVkVM CkBAIC02NSw5ICs2OSwxNCBAQAogICogNTEyTWlCIGJ5IGRlZmF1bHQsIGxlYXZpbmcgMS41R2lC IGZvciBtb2R1bGVzIG9uY2UgdGhlIHBhZ2UgdGFibGVzCiAgKiBhcmUgZnVsbHkgc2V0IHVwLiBJ ZiBrZXJuZWwgQVNMUiBpcyBjb25maWd1cmVkLCBpdCBjYW4gZXh0ZW5kIHRoZQogICoga2VybmVs IHBhZ2UgdGFibGUgbWFwcGluZywgcmVkdWNpbmcgdGhlIHNpemUgb2YgdGhlIG1vZHVsZXMgYXJl YS4KKyAqIE9uIFBJRSwgd2UgcmVsb2NhdGUgdGhlIGJpbmFyeSAyRyBsb3dlciBzbyBhZGQgdGhp cyBleHRyYSBzcGFjZS4KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1JBTkRPTUlaRV9CQVNFKQor I2lmZGVmIENPTkZJR19SQU5ET01JWkVfQkFTRV9MQVJHRQorI2RlZmluZSBLRVJORUxfSU1BR0Vf U0laRQkoX0FDKDMsIFVMKSAqIDEwMjQgKiAxMDI0ICogMTAyNCkKKyNlbHNlCiAjZGVmaW5lIEtF Uk5FTF9JTUFHRV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCisjZW5kaWYKICNlbHNlCiAjZGVm aW5lIEtFUk5FTF9JTUFHRV9TSVpFCSg1MTIgKiAxMDI0ICogMTAyNCkKICNlbmRpZgpkaWZmIC0t Z2l0IGEvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jIGIvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5j CmluZGV4IDQxMDNlOTBmZjEyOC4uMjM1YzNmN2I0NmM3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9r ZXJuZWwvaGVhZDY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jCkBAIC0zOSw2ICsz OSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgX19pbml0ZGF0YSBuZXh0X2Vhcmx5X3BndDsKIHBt ZHZhbF90IGVhcmx5X3BtZF9mbGFncyA9IF9fUEFHRV9LRVJORUxfTEFSR0UgJiB+KF9QQUdFX0dM T0JBTCB8IF9QQUdFX05YKTsKIAogI2RlZmluZSBfX2hlYWQJX19zZWN0aW9uKC5oZWFkLnRleHQp CisjZGVmaW5lIHB1ZF9jb3VudCh4KSAgICgoKHggKyAoUFVEX1NJWkUgLSAxKSkgJiB+KFBVRF9T SVpFIC0gMSkpID4+IFBVRF9TSElGVCkKIAogc3RhdGljIHZvaWQgX19oZWFkICpmaXh1cF9wb2lu dGVyKHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyBwaHlzYWRkcikKIHsKQEAgLTU0LDYgKzU1LDgg QEAgdW5zaWduZWQgbG9uZyBfdGV4dF9vZmZzZXQgPSAodW5zaWduZWQgbG9uZykoX3RleHQgLSBf X1NUQVJUX0tFUk5FTF9tYXApOwogdm9pZCBfX2hlYWQgbm90cmFjZSBfX3N0YXJ0dXBfNjQodW5z aWduZWQgbG9uZyBwaHlzYWRkcikKIHsKIAl1bnNpZ25lZCBsb25nIGxvYWRfZGVsdGEsICpwOwor CXVuc2lnbmVkIGxvbmcgbGV2ZWwzX2tlcm5lbF9zdGFydCwgbGV2ZWwzX2tlcm5lbF9jb3VudDsK Kwl1bnNpZ25lZCBsb25nIGxldmVsM19maXhtYXBfc3RhcnQ7CiAJcGdkdmFsX3QgKnBnZDsKIAlw NGR2YWxfdCAqcDRkOwogCXB1ZHZhbF90ICpwdWQ7CkBAIC03NCw2ICs3NywxMSBAQCB2b2lkIF9f aGVhZCBub3RyYWNlIF9fc3RhcnR1cF82NCh1bnNpZ25lZCBsb25nIHBoeXNhZGRyKQogCWlmIChs b2FkX2RlbHRhICYgflBNRF9QQUdFX01BU0spCiAJCWZvciAoOzspOwogCisJLyogTG9vayBhdCB0 aGUgcmFuZG9taXphdGlvbiBzcHJlYWQgdG8gYWRhcHQgcGFnZSB0YWJsZSB1c2VkICovCisJbGV2 ZWwzX2tlcm5lbF9zdGFydCA9IHB1ZF9pbmRleChfX1NUQVJUX0tFUk5FTF9tYXApOworCWxldmVs M19rZXJuZWxfY291bnQgPSBwdWRfY291bnQoS0VSTkVMX0lNQUdFX1NJWkUpOworCWxldmVsM19m aXhtYXBfc3RhcnQgPSBsZXZlbDNfa2VybmVsX3N0YXJ0ICsgbGV2ZWwzX2tlcm5lbF9jb3VudDsK KwogCS8qIEZpeHVwIHRoZSBwaHlzaWNhbCBhZGRyZXNzZXMgaW4gdGhlIHBhZ2UgdGFibGUgKi8K IAogCXBnZCA9IGZpeHVwX3BvaW50ZXIoJmVhcmx5X3RvcF9wZ3QsIHBoeXNhZGRyKTsKQEAgLTg1 LDggKzkzLDkgQEAgdm9pZCBfX2hlYWQgbm90cmFjZSBfX3N0YXJ0dXBfNjQodW5zaWduZWQgbG9u ZyBwaHlzYWRkcikKIAl9CiAKIAlwdWQgPSBmaXh1cF9wb2ludGVyKCZsZXZlbDNfa2VybmVsX3Bn dCwgcGh5c2FkZHIpOwotCXB1ZFs1MTBdICs9IGxvYWRfZGVsdGE7Ci0JcHVkWzUxMV0gKz0gbG9h ZF9kZWx0YTsKKwlmb3IgKGkgPSAwOyBpIDwgbGV2ZWwzX2tlcm5lbF9jb3VudDsgaSsrKQorCQlw dWRbbGV2ZWwzX2tlcm5lbF9zdGFydCArIGldICs9IGxvYWRfZGVsdGE7CisJcHVkW2xldmVsM19m aXhtYXBfc3RhcnRdICs9IGxvYWRfZGVsdGE7CiAKIAlwbWQgPSBmaXh1cF9wb2ludGVyKGxldmVs Ml9maXhtYXBfcGd0LCBwaHlzYWRkcik7CiAJcG1kWzUwNl0gKz0gbG9hZF9kZWx0YTsKQEAgLTEz Nyw3ICsxNDYsNyBAQCB2b2lkIF9faGVhZCBub3RyYWNlIF9fc3RhcnR1cF82NCh1bnNpZ25lZCBs b25nIHBoeXNhZGRyKQogCSAqLwogCiAJcG1kID0gZml4dXBfcG9pbnRlcihsZXZlbDJfa2VybmVs X3BndCwgcGh5c2FkZHIpOwotCWZvciAoaSA9IDA7IGkgPCBQVFJTX1BFUl9QTUQ7IGkrKykgewor CWZvciAoaSA9IDA7IGkgPCBQVFJTX1BFUl9QTUQgKiBsZXZlbDNfa2VybmVsX2NvdW50OyBpKysp IHsKIAkJaWYgKHBtZFtpXSAmIF9QQUdFX1BSRVNFTlQpCiAJCQlwbWRbaV0gKz0gbG9hZF9kZWx0 YTsKIAl9CkBAIC0yNjgsNyArMjc3LDggQEAgYXNtbGlua2FnZSBfX3Zpc2libGUgdm9pZCBfX2lu aXQgeDg2XzY0X3N0YXJ0X2tlcm5lbChjaGFyICogcmVhbF9tb2RlX2RhdGEpCiAJICovCiAJQlVJ TERfQlVHX09OKE1PRFVMRVNfVkFERFIgPCBfX1NUQVJUX0tFUk5FTF9tYXApOwogCUJVSUxEX0JV R19PTihNT0RVTEVTX1ZBRERSIC0gX19TVEFSVF9LRVJORUxfbWFwIDwgS0VSTkVMX0lNQUdFX1NJ WkUpOwotCUJVSUxEX0JVR19PTihNT0RVTEVTX0xFTiArIEtFUk5FTF9JTUFHRV9TSVpFID4gMipQ VURfU0laRSk7CisJQlVJTERfQlVHX09OKCFJU19FTkFCTEVEKENPTkZJR19SQU5ET01JWkVfQkFT RV9MQVJHRSkgJiYKKwkJICAgICBNT0RVTEVTX0xFTiArIEtFUk5FTF9JTUFHRV9TSVpFID4gMipQ VURfU0laRSk7CiAJQlVJTERfQlVHX09OKChfX1NUQVJUX0tFUk5FTF9tYXAgJiB+UE1EX01BU0sp ICE9IDApOwogCUJVSUxEX0JVR19PTigoTU9EVUxFU19WQUREUiAmIH5QTURfTUFTSykgIT0gMCk7 CiAJQlVJTERfQlVHX09OKCEoTU9EVUxFU19WQUREUiA+IF9fU1RBUlRfS0VSTkVMKSk7CmRpZmYg LS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TIGIvYXJjaC94ODYva2VybmVsL2hlYWRf NjQuUwppbmRleCA0ZDBhN2U2OGJmZTguLmU4YjJkNjcwNmVjYSAxMDA2NDQKLS0tIGEvYXJjaC94 ODYva2VybmVsL2hlYWRfNjQuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TCkBAIC0z OSwxMSArMzksMTUgQEAKIAogI2RlZmluZSBwNGRfaW5kZXgoeCkJKCgoeCkgPj4gUDREX1NISUZU KSAmIChQVFJTX1BFUl9QNEQtMSkpCiAjZGVmaW5lIHB1ZF9pbmRleCh4KQkoKCh4KSA+PiBQVURf U0hJRlQpICYgKFBUUlNfUEVSX1BVRC0xKSkKKyNkZWZpbmUgcHVkX2NvdW50KHgpICAgKCgoeCAr IChQVURfU0laRSAtIDEpKSAmIH4oUFVEX1NJWkUgLSAxKSkgPj4gUFVEX1NISUZUKQogCiBQR0Rf UEFHRV9PRkZTRVQgPSBwZ2RfaW5kZXgoX19QQUdFX09GRlNFVF9CQVNFKQogUEdEX1NUQVJUX0tF Uk5FTCA9IHBnZF9pbmRleChfX1NUQVJUX0tFUk5FTF9tYXApCiBMM19TVEFSVF9LRVJORUwgPSBw dWRfaW5kZXgoX19TVEFSVF9LRVJORUxfbWFwKQogCisvKiBBZGFwdCBwYWdlIHRhYmxlIEwzIHNw YWNlIGJhc2VkIG9uIHJhbmdlIG9mIHJhbmRvbWl6YXRpb24gKi8KK0wzX0tFUk5FTF9FTlRSWV9D T1VOVCA9IHB1ZF9jb3VudChLRVJORUxfSU1BR0VfU0laRSkKKwogCS50ZXh0CiAJX19IRUFECiAJ LmNvZGU2NApAQCAtMzk2LDcgKzQwMCwxMiBAQCBORVhUX1BBR0UobGV2ZWw0X2tlcm5lbF9wZ3Qp CiBORVhUX1BBR0UobGV2ZWwzX2tlcm5lbF9wZ3QpCiAJLmZpbGwJTDNfU1RBUlRfS0VSTkVMLDgs MAogCS8qICgyXjQ4LSgyKjEwMjQqMTAyNCoxMDI0KS0oKDJeMzkpKjUxMSkpLygyXjMwKSA9IDUx MCAqLwotCS5xdWFkCWxldmVsMl9rZXJuZWxfcGd0IC0gX19TVEFSVF9LRVJORUxfbWFwICsgX0tF Uk5QR19UQUJMRQorCWkgPSAwCisJLnJlcHQJTDNfS0VSTkVMX0VOVFJZX0NPVU5UCisJLnF1YWQJ bGV2ZWwyX2tlcm5lbF9wZ3QgLSBfX1NUQVJUX0tFUk5FTF9tYXAgKyBfS0VSTlBHX1RBQkxFIFwK KwkJKyBQQUdFX1NJWkUqaQorCWkgPSBpICsgMQorCS5lbmRyCiAJLnF1YWQJbGV2ZWwyX2ZpeG1h cF9wZ3QgLSBfX1NUQVJUX0tFUk5FTF9tYXAgKyBfUEFHRV9UQUJMRQogCiBORVhUX1BBR0UobGV2 ZWwyX2tlcm5lbF9wZ3QpCi0tIAoyLjEzLjIuOTMyLmc3NDQ5ZTk2NGMtZ29vZwoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=