From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 5/7] x86/alt: Support for automatic padding calculations Date: Mon, 12 Feb 2018 11:23:05 +0000 Message-ID: <1518434587-22827-6-git-send-email-andrew.cooper3@citrix.com> References: <1518434587-22827-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: <1518434587-22827-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGNvcnJlY3QgYW1vdW50IG9mIHBhZGRpbmcgaW4gYW4gb3JpZ2luIHBhdGNoIHNpdGUgY2Fu IGJlIGNhbGN1bGF0ZWQKYXV0b21hdGljYWxseSwgYmFzZWQgb24gdGhlIHJlbGF0aXZlIGxlbmd0 aHMgb2YgdGhlIHJlcGxhY2VtZW50cy4KClRoaXMgcmVxdWlyZXMgYSBiaXQgb2YgdHJpY2tlcnkg dG8gY2FsY3VsYXRlIGNvcnJlY3RseSwgZXNwZWNpYWxseSBpbiB0aGUKQUxURU5SQVRJVkVfMiBj YXNlIHdoZXJlIGEgYnJhbmNobGVzcyBtYXgoKSBjYWxjdWxhdGlvbiBpbiBuZWVkZWQuICBUaGUK Y2FsY3VsYXRpb24gaXMgZnVydGhlciBjb21wbGljYXRlZCBiZWNhdXNlIEdBUydzIGlkZWEgb2Yg dHJ1ZSBpcyAtMSByYXRoZXIKdGhhbiAxLCB3aGljaCBpcyB3aHkgdGhlIGV4dHJhIG5lZ2F0aW9u cyBhcmUgcmVxdWlyZWQuCgpBZGRpdGlvbmFsbHksIGhhdmUgYXBwbHlfYWx0ZXJuYXRpdmVzKCkg YXR0ZW1wdCB0byBvcHRpbWlzZSB0aGUgcGFkZGluZyBub3BzLgoKU2lnbmVkLW9mZi1ieTogQW5k cmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGlj aCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53 aWxrQG9yYWNsZS5jb20+CkNDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNv bT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2Fs dGVybmF0aXZlLmMgICAgICAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0K IHhlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUtYXNtLmggfCA0MCArKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5o ICAgICB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIDMgZmlsZXMgY2hh bmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2FsdGVybmF0aXZlLmMgYi94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYwppbmRl eCBmOGRkYWI1Li5lYzg3ZmY0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUu YworKysgYi94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYwpAQCAtMTgwLDEzICsxODAsMzcgQEAg dm9pZCBpbml0X29yX2xpdmVwYXRjaCBhcHBseV9hbHRlcm5hdGl2ZXMoY29uc3Qgc3RydWN0IGFs dF9pbnN0ciAqc3RhcnQsCiAgICAgICAgIHVpbnQ4X3QgKm9yaWcgPSBBTFRfT1JJR19QVFIoYSk7 CiAgICAgICAgIHVpbnQ4X3QgKnJlcGwgPSBBTFRfUkVQTF9QVFIoYSk7CiAgICAgICAgIHVpbnQ4 X3QgYnVmW01BWF9QQVRDSF9MRU5dOworICAgICAgICB1bnNpZ25lZCBpbnQgdG90YWxfbGVuID0g YS0+b3JpZ19sZW4gKyBhLT5wYWRfbGVuOwogCi0gICAgICAgIEJVR19PTihhLT5yZXBsX2xlbiA+ IGEtPm9yaWdfbGVuKTsKLSAgICAgICAgQlVHX09OKGEtPm9yaWdfbGVuID4gc2l6ZW9mKGJ1Zikp OworICAgICAgICBCVUdfT04oYS0+cmVwbF9sZW4gPiB0b3RhbF9sZW4pOworICAgICAgICBCVUdf T04odG90YWxfbGVuID4gc2l6ZW9mKGJ1ZikpOwogICAgICAgICBCVUdfT04oYS0+Y3B1aWQgPj0g TkNBUElOVFMgKiAzMik7CiAKICAgICAgICAgaWYgKCAhYm9vdF9jcHVfaGFzKGEtPmNwdWlkKSAp CisgICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGludCBpOworCisgICAgICAgICAgICAv KiBObyByZXBsYWNlbWVudCB0byBtYWtlLCBidXQgdHJ5IHRvIG9wdGltaXNlIGFueSBwYWRkaW5n LiAqLworICAgICAgICAgICAgaWYgKCBhLT5wYWRfbGVuIDw9IDEgKQorICAgICAgICAgICAgICAg IGNvbnRpbnVlOworCisgICAgICAgICAgICAvKiBTZWFyY2ggdGhlIHBhZGRpbmcgYXJlYSBmb3Ig YW55IGJ5dGUgd2hpY2ggaXNuJ3QgYSBub3AuICovCisgICAgICAgICAgICBmb3IgKCBpID0gYS0+ b3JpZ19sZW47IGkgPCB0b3RhbF9sZW47ICsraSApCisgICAgICAgICAgICAgICAgaWYgKCBvcmln W2ldICE9IDB4OTAgKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAg LyoKKyAgICAgICAgICAgICAqIE9ubHkgbWFrZSBhbnkgY2hhbmdlcyBpZiBhbGwgcGFkZGluZyBi eXRlcyBhcmUgdW5vcHRpbWlzZWQKKyAgICAgICAgICAgICAqIG5vcHMuICBXaXRoIG11bHRpcGxl IGFsdGVybmF0aXZlcyBvdmVyIHRoZSBzYW1lIG9yaWdpbiBzaXRlLCB3ZQorICAgICAgICAgICAg ICogbWF5IGhhdmUgYWxyZWFkeSBtYWRlIGEgcmVwbGFjZW1lbnQsIG9yIG9wdGltaXNlZCB0aGUg bm9wcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKCBpICE9IHRvdGFsX2xlbiAp CisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGFkZF9ub3BzKGJ1Ziwg YS0+cGFkX2xlbik7CisgICAgICAgICAgICB0ZXh0X3Bva2Uob3JpZyArIGEtPm9yaWdfbGVuLCBi dWYsIGEtPnBhZF9sZW4pOwogICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAogICAg ICAgICBtZW1jcHkoYnVmLCByZXBsLCBhLT5yZXBsX2xlbik7CiAKQEAgLTE5NCw4ICsyMTgsOCBA QCB2b2lkIGluaXRfb3JfbGl2ZXBhdGNoIGFwcGx5X2FsdGVybmF0aXZlcyhjb25zdCBzdHJ1Y3Qg YWx0X2luc3RyICpzdGFydCwKICAgICAgICAgaWYgKCBhLT5yZXBsX2xlbiA+PSA1ICYmICgqYnVm ICYgMHhmZSkgPT0gMHhlOCApCiAgICAgICAgICAgICAqKHMzMiAqKShidWYgKyAxKSArPSByZXBs IC0gb3JpZzsKIAotICAgICAgICBhZGRfbm9wcyhidWYgKyBhLT5yZXBsX2xlbiwgYS0+b3JpZ19s ZW4gLSBhLT5yZXBsX2xlbik7Ci0gICAgICAgIHRleHRfcG9rZShvcmlnLCBidWYsIGEtPm9yaWdf bGVuKTsKKyAgICAgICAgYWRkX25vcHMoYnVmICsgYS0+cmVwbF9sZW4sIHRvdGFsX2xlbiAtIGEt PnJlcGxfbGVuKTsKKyAgICAgICAgdGV4dF9wb2tlKG9yaWcsIGJ1ZiwgdG90YWxfbGVuKTsKICAg ICB9CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUtYXNt LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLWFzbS5oCmluZGV4IDE1MGJkMWEu LmY3ZTM3Y2IgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUtYXNt LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS1hc20uaApAQCAtOSwzMCAr OSw0MSBAQAogICogZW5vdWdoIGluZm9ybWF0aW9uIGZvciB0aGUgYWx0ZXJuYXRpdmVzIHBhdGNo aW5nIGNvZGUgdG8gcGF0Y2ggYW4KICAqIGluc3RydWN0aW9uLiBTZWUgYXBwbHlfYWx0ZXJuYXRp dmVzKCkuCiAgKi8KLS5tYWNybyBhbHRpbnN0cnVjdGlvbl9lbnRyeSBvcmlnIHJlcGwgZmVhdHVy ZSBvcmlnX2xlbiByZXBsX2xlbgorLm1hY3JvIGFsdGluc3RydWN0aW9uX2VudHJ5IG9yaWcgcmVw bCBmZWF0dXJlIG9yaWdfbGVuIHJlcGxfbGVuIHBhZF9sZW4KICAgICAubG9uZyBcb3JpZyAtIC4K ICAgICAubG9uZyBccmVwbCAtIC4KICAgICAud29yZCBcZmVhdHVyZQogICAgIC5ieXRlIFxvcmln X2xlbgogICAgIC5ieXRlIFxyZXBsX2xlbgorICAgIC5ieXRlIFxwYWRfbGVuCiAuZW5kbQogCiAj ZGVmaW5lIG9yaWdfbGVuICAgICAgICAgICAgICAgKC5MXEBfb3JpZ19lICAgICAgIC0gICAgIC5M XEBfb3JpZ19zKQorI2RlZmluZSBwYWRfbGVuICAgICAgICAgICAgICAgICguTFxAX29yaWdfcCAg ICAgICAtICAgICAuTFxAX29yaWdfZSkKKyNkZWZpbmUgdG90YWxfbGVuICAgICAgICAgICAgICAo LkxcQF9vcmlnX3AgICAgICAgLSAgICAgLkxcQF9vcmlnX3MpCiAjZGVmaW5lIHJlcGxfbGVuKG5y KSAgICAgICAgICAgKC5MXEBfcmVwbF9lXCgpbnIgIC0gICAgIC5MXEBfcmVwbF9zXCgpbnIpCiAj ZGVmaW5lIGRlY2xfcmVwbChpbnNuLCBucikgICAgIC5MXEBfcmVwbF9zXCgpbnI6IGluc247IC5M XEBfcmVwbF9lXCgpbnI6CisjZGVmaW5lIGdhc19tYXgoYSwgYikgICAgICAgICAgKChhKSBeICgo KGEpIF4gKGIpKSAmIC0oLSgoYSkgPCAoYikpKSkpCiAKIC5tYWNybyBBTFRFUk5BVElWRSBvbGRp bnN0ciwgbmV3aW5zdHIsIGZlYXR1cmUKIC5MXEBfb3JpZ19zOgogICAgIFxvbGRpbnN0cgogLkxc QF9vcmlnX2U6CisgICAgIC5za2lwICgtKChyZXBsX2xlbigxKSAtIG9yaWdfbGVuKSA+IDApICog KHJlcGxfbGVuKDEpIC0gb3JpZ19sZW4pKSwgMHg5MAorLkxcQF9vcmlnX3A6CiAKICAgICAucHVz aHNlY3Rpb24gLmFsdGluc3RydWN0aW9ucywgImEiLCBAcHJvZ2JpdHMKICAgICBhbHRpbnN0cnVj dGlvbl9lbnRyeSAuTFxAX29yaWdfcywgLkxcQF9yZXBsX3MxLCBcZmVhdHVyZSwgXAotICAgICAg ICBvcmlnX2xlbiwgcmVwbF9sZW4oMSkKKyAgICAgICAgb3JpZ19sZW4sIHJlcGxfbGVuKDEpLCBw YWRfbGVuCiAKICAgICAuc2VjdGlvbiAuZGlzY2FyZCwgImEiLCBAcHJvZ2JpdHMKLSAgICAvKiBB c3NlbWJsZXItdGltZSBjaGVjayB0aGF0IFxuZXdpbnN0ciBpc24ndCBsb25nZXIgdGhhbiBcb2xk aW5zdHIuICovCi0gICAgLmJ5dGUgMHhmZiArIHJlcGxfbGVuKDEpIC0gb3JpZ19sZW4KKyAgICAv KgorICAgICAqIEFzc2VtYmxlci10aW1lIGNoZWNrczoKKyAgICAgKiAgIC0gdG90YWxfbGVuIDw9 IDI1NQorICAgICAqICAgLSBcbmV3aW5zdHIgPD0gdG90YWxfbGVuCisgICAgICovCisgICAgLmJ5 dGUgdG90YWxfbGVuCisgICAgLmJ5dGUgMHhmZiArIHJlcGxfbGVuKDEpIC0gdG90YWxfbGVuCiAK ICAgICAuc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQsICJheCIsIEBwcm9nYml0cwogCkBA IC00NSwxOCArNTYsMjYgQEAKIC5MXEBfb3JpZ19zOgogICAgIFxvbGRpbnN0cgogLkxcQF9vcmln X2U6CisgICAgLnNraXAgKC0oKGdhc19tYXgocmVwbF9sZW4oMSksIHJlcGxfbGVuKDIpKSAtIG9y aWdfbGVuKSA+IDApICogXAorICAgICAgICAgICAgIChnYXNfbWF4KHJlcGxfbGVuKDEpLCByZXBs X2xlbigyKSkgLSBvcmlnX2xlbikpLCAweDkwCisuTFxAX29yaWdfcDoKIAogICAgIC5wdXNoc2Vj dGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLCAiYSIsIEBwcm9nYml0cwogCiAgICAgYWx0aW5zdHJ1Y3Rp b25fZW50cnkgLkxcQF9vcmlnX3MsIC5MXEBfcmVwbF9zMSwgXGZlYXR1cmUxLCBcCi0gICAgICAg IG9yaWdfbGVuLCByZXBsX2xlbigxKQorICAgICAgICBvcmlnX2xlbiwgcmVwbF9sZW4oMSksIHBh ZF9sZW4KICAgICBhbHRpbnN0cnVjdGlvbl9lbnRyeSAuTFxAX29yaWdfcywgLkxcQF9yZXBsX3My LCBcZmVhdHVyZTIsIFwKLSAgICAgICAgb3JpZ19sZW4sIHJlcGxfbGVuKDIpCisgICAgICAgIG9y aWdfbGVuLCByZXBsX2xlbigyKSwgcGFkX2xlbgogCiAgICAgLnNlY3Rpb24gLmRpc2NhcmQsICJh IiwgQHByb2diaXRzCi0gICAgLyogQXNzZW1ibGVyLXRpbWUgY2hlY2sgdGhhdCBcbmV3aW5zdHJ7 MSwyfSBhcmVuJ3QgbG9uZ2VyIHRoYW4gXG9sZGluc3RyLiAqLwotICAgIC5ieXRlIDB4ZmYgKyBy ZXBsX2xlbigxKSAtIG9yaWdfbGVuCi0gICAgLmJ5dGUgMHhmZiArIHJlcGxfbGVuKDIpIC0gb3Jp Z19sZW4KKyAgICAvKgorICAgICAqIEFzc2VtYmxlci10aW1lIGNoZWNrczoKKyAgICAgKiAgIC0g dG90YWxfbGVuIDw9IDI1NQorICAgICAqICAgLSBcbmV3aW5zdHIqIDw9IHRvdGFsX2xlbgorICAg ICAqLworICAgIC5ieXRlIHRvdGFsX2xlbgorICAgIC5ieXRlIDB4ZmYgKyByZXBsX2xlbigxKSAt IHRvdGFsX2xlbgorICAgIC5ieXRlIDB4ZmYgKyByZXBsX2xlbigyKSAtIHRvdGFsX2xlbgogCiAg ICAgLnNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCAiYXgiLCBAcHJvZ2JpdHMKIApAQCAt NjYsOCArODUsMTEgQEAKICAgICAucG9wc2VjdGlvbgogLmVuZG0KIAorI3VuZGVmIGdhc19tYXgK ICN1bmRlZiBkZWNsX3JlcGwKICN1bmRlZiByZXBsX2xlbgorI3VuZGVmIHRvdGFsX2xlbgorI3Vu ZGVmIHBhZF9sZW4KICN1bmRlZiBvcmlnX2xlbgogCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICov CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmgKaW5kZXggMWU1Y2ZiZC4uMjBkZWEyMiAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oCisrKyBiL3hlbi9pbmNsdWRl L2FzbS14ODYvYWx0ZXJuYXRpdmUuaApAQCAtOCwxMiArOCwxMyBAQAogI2luY2x1ZGUgPHhlbi9z dHJpbmdpZnkuaD4KICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KIAotc3RydWN0IGFsdF9pbnN0ciB7 CitzdHJ1Y3QgX19wYWNrZWQgYWx0X2luc3RyIHsKICAgICBpbnQzMl90ICBvcmlnX29mZnNldDsg ICAvKiBvcmlnaW5hbCBpbnN0cnVjdGlvbiAqLwogICAgIGludDMyX3QgIHJlcGxfb2Zmc2V0OyAg IC8qIG9mZnNldCB0byByZXBsYWNlbWVudCBpbnN0cnVjdGlvbiAqLwogICAgIHVpbnQxNl90IGNw dWlkOyAgICAgICAgIC8qIGNwdWlkIGJpdCBzZXQgZm9yIHJlcGxhY2VtZW50ICovCiAgICAgdWlu dDhfdCAgb3JpZ19sZW47ICAgICAgLyogbGVuZ3RoIG9mIG9yaWdpbmFsIGluc3RydWN0aW9uICov Ci0gICAgdWludDhfdCAgcmVwbF9sZW47ICAgICAgLyogbGVuZ3RoIG9mIG5ldyBpbnN0cnVjdGlv biwgPD0gaW5zdHJsZW4gKi8KKyAgICB1aW50OF90ICByZXBsX2xlbjsgICAgICAvKiBsZW5ndGgg b2YgbmV3IGluc3RydWN0aW9uICovCisgICAgdWludDhfdCAgcGFkX2xlbjsgICAgICAgLyogbGVu Z3RoIG9mIGJ1aWxkLXRpbWUgcGFkZGluZyAqLwogfTsKIAogI2RlZmluZSBfX0FMVF9QVFIoYSxm KSAgICAgICgodTggKikoKHZvaWQgKikmKGEpLT5mICsgKGEpLT5mKSkKQEAgLTI2LDQ0ICsyNyw2 NCBAQCBleHRlcm4gdm9pZCBhcHBseV9hbHRlcm5hdGl2ZXMoY29uc3Qgc3RydWN0IGFsdF9pbnN0 ciAqc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGFs dF9pbnN0ciAqZW5kKTsKIGV4dGVybiB2b2lkIGFsdGVybmF0aXZlX2luc3RydWN0aW9ucyh2b2lk KTsKIAotI2RlZmluZSBPTERJTlNUUihvbGRpbnN0cikgICAgICAiLkwlPV9vcmlnX3M6XG5cdCIg b2xkaW5zdHIgIlxuLkwlPV9vcmlnX2U6XG4iCi0KICNkZWZpbmUgcmVwbF9zKG51bSkgICAgICAg ICAgICAgIi5MJT1fcmVwbF9zIiNudW0KICNkZWZpbmUgcmVwbF9lKG51bSkgICAgICAgICAgICAg Ii5MJT1fcmVwbF9lIiNudW0KIAogI2RlZmluZSBhbHRfb3JpZ19sZW4gICAgICAgICAgICAiKC5M JT1fb3JpZ19lIC0gLkwlPV9vcmlnX3MpIgorI2RlZmluZSBhbHRfcGFkX2xlbiAgICAgICAgICAg ICAiKC5MJT1fb3JpZ19wIC0gLkwlPV9vcmlnX2UpIgorI2RlZmluZSBhbHRfdG90YWxfbGVuICAg ICAgICAgICAiKC5MJT1fb3JpZ19wIC0gLkwlPV9vcmlnX3MpIgogI2RlZmluZSBhbHRfcmVwbF9s ZW4obnVtKSAgICAgICAiKCIgcmVwbF9lKG51bSkgIiAtICIgcmVwbF9zKG51bSkgIikiCisjZGVm aW5lIGdhc19tYXgoYSwgYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAiKCgiIGEgIikgXiAoKCgiIGEgIikgXiAoIiBiICIpKSAmIC0oLSgoIiBhICIpIDwg KCIgYiAiKSkpKSkiCisKKyNkZWZpbmUgT0xESU5TVFJfMShvbGRpbnN0ciwgbjEpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICIuTCU9X29yaWdfczpcblx0IiBvbGRpbnN0ciAi XG4gLkwlPV9vcmlnX2U6XG5cdCIgICAgICAgICBcCisgICAgIi5za2lwICgtKCgiYWx0X3JlcGxf bGVuKG4xKSItImFsdF9vcmlnX2xlbiIpID4gMCkgKiAiICAgIFwKKyAgICAgICAgICAgICAiKCJh bHRfcmVwbF9sZW4objEpIi0iYWx0X29yaWdfbGVuIikpLCAweDkwXG5cdCIgXAorICAgICIuTCU9 X29yaWdfcDpcblx0IgorCisjZGVmaW5lIEFMVF9QQURESU5HX0xFTihuMSwgbjIpIFwKKyAgICBn YXNfbWF4KChhbHRfcmVwbF9sZW4objEpLCBhbHRfcmVwbF9sZW4objIpKSItImFsdF9vcmlnX2xl bgorCisjZGVmaW5lIE9MRElOU1RSXzIob2xkaW5zdHIsIG4xLCBuMikgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAiLkwlPV9vcmlnX3M6XG5cdCIgb2xkaW5zdHIgIlxuIC5MJT1fb3Jp Z19lOlxuXHQiICAgICAgICAgXAorICAgICIuc2tpcCAoLSgoIkFMVF9QQURESU5HX0xFTihuMSwg bjIpIikgPiAwKSAqICIgICAgICAgICAgICBcCisgICAgICAgICAgICAgIigiQUxUX1BBRERJTkdf TEVOKG4xLCBuMikiKSksIDB4OTBcblx0IiAgICAgICAgIFwKKyAgICAiLkwlPV9vcmlnX3A6XG5c dCIKIAogI2RlZmluZSBBTFRJTlNUUl9FTlRSWShmZWF0dXJlLCBudW0pICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAiIC5sb25nIC5MJT1fb3JpZ19zIC0gLlxu IiAgICAgICAgICAgICAgICAvKiBsYWJlbCAgICAgICAgICAgKi8gXAogICAgICAgICAiIC5sb25n ICIgcmVwbF9zKG51bSkiIC0gLlxuIiAgICAgICAgICAgICAvKiBuZXcgaW5zdHJ1Y3Rpb24gKi8g XAogICAgICAgICAiIC53b3JkICIgX19zdHJpbmdpZnkoZmVhdHVyZSkgIlxuIiAgICAgICAvKiBm ZWF0dXJlIGJpdCAgICAgKi8gXAogICAgICAgICAiIC5ieXRlICIgYWx0X29yaWdfbGVuICJcbiIg ICAgICAgICAgICAgICAvKiBzb3VyY2UgbGVuICAgICAgKi8gXAotICAgICAgICAiIC5ieXRlICIg YWx0X3JlcGxfbGVuKG51bSkgIlxuIiAgICAgICAgICAvKiByZXBsYWNlbWVudCBsZW4gKi8KKyAg ICAgICAgIiAuYnl0ZSAiIGFsdF9yZXBsX2xlbihudW0pICJcbiIgICAgICAgICAgLyogcmVwbGFj ZW1lbnQgbGVuICovIFwKKyAgICAgICAgIiAuYnl0ZSAiIGFsdF9wYWRfbGVuICJcbiIgICAgICAg ICAgICAgICAgLyogcGFkZGluZyBsZW4gICAgICovCiAKLSNkZWZpbmUgRElTQ0FSRF9FTlRSWShu dW0pICAgICAgICAgICAgICAgICAgICAgICAgLyogcmVwbCA8PSBvcmlnICovICAgIFwKLSAgICAg ICAgIiAuYnl0ZSAweGZmICsgKCIgYWx0X3JlcGxfbGVuKG51bSkgIikgLSAoIiBhbHRfb3JpZ19s ZW4gIilcbiIKKyNkZWZpbmUgRElTQ0FSRF9FTlRSWShudW0pICAgICAgICAgICAgICAgICAgICAg ICAgLyogcmVwbCA8PSB0b3RhbCAqLyAgIFwKKyAgICAgICAgIiAuYnl0ZSAweGZmICsgKCIgYWx0 X3JlcGxfbGVuKG51bSkgIikgLSAoIiBhbHRfdG90YWxfbGVuICIpXG4iCiAKICNkZWZpbmUgQUxU SU5TVFJfUkVQTEFDRU1FTlQobmV3aW5zdHIsIG51bSkgICAgICAgLyogcmVwbGFjZW1lbnQgKi8g ICAgIFwKICAgICAgICAgcmVwbF9zKG51bSkiOlxuXHQiIG5ld2luc3RyICJcbiIgcmVwbF9lKG51 bSkgIjpcblx0IgogCiAvKiBhbHRlcm5hdGl2ZSBhc3NlbWJseSBwcmltaXRpdmU6ICovCiAjZGVm aW5lIEFMVEVSTkFUSVZFKG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSkgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgICAgIE9MRElOU1RSKG9sZGluc3RyKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIE9MRElOU1RSXzEob2xkaW5z dHIsIDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg ICIucHVzaHNlY3Rpb24gLmFsdGluc3RydWN0aW9ucywgXCJhXCIsIEBwcm9nYml0c1xuIiAgICAg ICAgICAgICBcCiAgICAgICAgIEFMVElOU1RSX0VOVFJZKGZlYXR1cmUsIDEpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICIuc2VjdGlvbiAuZGlzY2FyZCwg XCJhXCIsIEBwcm9nYml0c1xuIiAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICIu Ynl0ZSAiIGFsdF90b3RhbF9sZW4gIlxuIiAvKiB0b3RhbF9sZW4gPD0gMjU1ICovICAgICAgICAg ICAgICBcCiAgICAgICAgIERJU0NBUkRfRU5UUlkoMSkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICIuc2VjdGlvbiAuYWx0aW5zdHJfcmVw bGFjZW1lbnQsIFwiYXhcIiwgQHByb2diaXRzXG4iICAgICAgICAgICBcCiAgICAgICAgIEFMVElO U1RSX1JFUExBQ0VNRU5UKG5ld2luc3RyLCAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgICAgICIucG9wc2VjdGlvblxuIgogCiAjZGVmaW5lIEFMVEVSTkFUSVZFXzIob2xk aW5zdHIsIG5ld2luc3RyMSwgZmVhdHVyZTEsIG5ld2luc3RyMiwgZmVhdHVyZTIpIFwKLSAgICAg ICAgT0xESU5TVFIob2xkaW5zdHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgT0xESU5TVFJfMihvbGRpbnN0ciwgMSwgMikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIi5wdXNoc2VjdGlvbiAuYWx0 aW5zdHJ1Y3Rpb25zLCBcImFcIiwgQHByb2diaXRzXG4iICAgICAgICAgICAgIFwKICAgICAgICAg QUxUSU5TVFJfRU5UUlkoZmVhdHVyZTEsIDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgICAgQUxUSU5TVFJfRU5UUlkoZmVhdHVyZTIsIDIpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIi5zZWN0aW9uIC5kaXNjYXJkLCBc ImFcIiwgQHByb2diaXRzXG4iICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIi5i eXRlICIgYWx0X3RvdGFsX2xlbiAiXG4iIC8qIHRvdGFsX2xlbiA8PSAyNTUgKi8gICAgICAgICAg ICAgIFwKICAgICAgICAgRElTQ0FSRF9FTlRSWSgxKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRElTQ0FSRF9FTlRSWSgyKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIi5zZWN0 aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiLCBAcHJvZ2JpdHNcbiIgICAgICAgICAg IFwKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZl bA==