From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v3 08/16] x86: add multiboot2 protocol support Date: Fri, 15 Apr 2016 14:33:08 +0200 Message-ID: <1460723596-13261-9-git-send-email-daniel.kiper@oracle.com> References: <1460723596-13261-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ar2x3-0005Mi-H1 for xen-devel@lists.xenproject.org; Fri, 15 Apr 2016 12:34:21 +0000 In-Reply-To: <1460723596-13261-1-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: jgross@suse.com, andrew.cooper3@citrix.com, stefano.stabellini@eu.citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org QWRkIG11bHRpYm9vdDIgcHJvdG9jb2wgc3VwcG9ydC4gQWx0ZXIgbWluIG1lbW9yeSBsaW1pdCBo YW5kbGluZyBhcyB3ZQpub3cgbWF5IG5vdCBmaW5kIGl0IGZyb20gZWl0aGVyIG11bHRpYm9vdCAo djEpIG9yIG11bHRpYm9vdDIuCgpUaGlzIHdheSB3ZSBhcmUgbGF5aW5nIHRoZSBmb3VuZGF0aW9u IGZvciBFRkkgKyBHUlVCMiArIFhlbiBkZXZlbG9wbWVudC4KClNpZ25lZC1vZmYtYnk6IERhbmll bCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0tLQp2MyAtIHN1Z2dlc3Rpb25zL2Zp eGVzOgogICAtIHJlb3JkZXIgcmVsb2MoKSBhcmd1bWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgLSByZW1vdmUgLkwgZnJvbSBtdWx0aWJvb3QyIGhlYWRlciBsYWJlbHMK ICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIsIEphbiBCZXVsaWNoIGFuZCBLb25yYWQg Unplc3p1dGVrIFdpbGspLAogICAtIHRha2UgaW50byBhY2NvdW50IGFsaWdubWVudCB3aGVuIHNr aXBwaW5nIG11bHRpYm9vdDIgZml4ZWQgcGFydAogICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6 ZXN6dXRlayBXaWxrKSwKICAgLSBjcmVhdGUgbW9kdWxlcyBkYXRhIGlmIG1vZHVsZXMgY291bnQg IT0gMAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgbWFjcm9z CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcmVkdWNlIG51bWJlciBvZiBj YXN0cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHVzZSBjb25zdCBpZiBw b3NzaWJsZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGRyb3Agc3RhdGlj IGFuZCBfX3VzZWRfXyBhdHRyaWJ1dGUgZnJvbSByZWxvYygpCiAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgIC0gcmVtb3ZlIGlzb2xhdGVkL3N0cmF5IF9fcGFja2VkIGF0dHJpYnV0 ZSBmcm9tCiAgICAgbXVsdGlib290Ml9tZW1vcnlfbWFwX3QgdHlwZSBkZWZpbml0aW9uCiAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcmVmb3JtYXQgeGVuL2luY2x1ZGUveGVu L211bHRpYm9vdDIuaAogICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwK ICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVr IFdpbGspLAogICAtIHJlbW92ZSBoYXJkIHRhYnMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoIGFuZCBLb25yYWQgUnplc3p1dGVrIFdpbGspLgoKdjIgLSBzdWdnZXN0aW9ucy9maXhlczoK ICAgLSBnZW5lcmF0ZSBtdWx0aWJvb3QyIGhlYWRlciB1c2luZyBtYWNyb3MKICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCksCiAgIC0gc2ltcGxpZnkgYXNzZW1ibHkgaW4geGVuL2FyY2gveDg2 L2Jvb3QvaGVhZC5TCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gZG8gbm90 IGluY2x1ZGUgaW5jbHVkZS94ZW4vY29tcGlsZXIuaAogICAgIGluIHhlbi9hcmNoL3g4Ni9ib290 L3JlbG9jLmMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBkbyBub3QgcmVh ZCBkYXRhIGJleW9uZCB0aGUgZW5kIG9mIE11bHRpYm9vdDIgaW5mb3JtYXRpb24KICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnYyIC0gbm90IGZpeGVkIHlldDoKICAgLSBkeW5hbWlj IGRlcGVuZGVuY3kgZ2VuZXJhdGlvbiBmb3IgeGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuUzsKICAg ICB0aGlzIHJlcXVpcmVzIG1vcmUgd29yazsgSSBhbSBub3Qgc3VyZSB0aGF0IGl0IHBheXMgYmVj YXVzZQogICAgIHBvdGVudGlhbCBwYXRjaCByZXF1aXJlcyBtb3JlIGNoYW5nZXMgdGhhbiBhZGRp dGlvbiBvZiBqdXN0CiAgICAgbXVsdGlib290Mi5oIHRvIE1ha2VmaWxlCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaXNvbGF0ZWQvc3RyYXkgX19wYWNrZWQgYXR0cmlidXRl IHVzYWdlIGZvciBtdWx0aWJvb3QyX21lbW9yeV9tYXBfdAogICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpLgotLS0KIHhlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlICAgICAgICB8ICAgIDMg Ky0KIHhlbi9hcmNoL3g4Ni9ib290L2hlYWQuUyAgICAgICAgICB8ICAxMDYgKysrKysrKysrKysr KysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMgICAgICAgICB8ICAxNTIgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB4ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1v ZmZzZXRzLmMgfCAgICA3ICsrCiB4ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290Mi5oICAgICAgfCAg MTY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdl ZCwgNDI3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHhlbi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QyLmgKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv Ym9vdC9NYWtlZmlsZSBiL3hlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCmluZGV4IDVmZGI1YWUu LjA2ODkzZDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCisrKyBiL3hl bi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCkBAIC0xLDYgKzEsNyBAQAogb2JqLWJpbi15ICs9IGhl YWQubwogCi1SRUxPQ19ERVBTID0gJChCQVNFRElSKS9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmgg JChCQVNFRElSKS9pbmNsdWRlL3hlbi9tdWx0aWJvb3QuaAorUkVMT0NfREVQUyA9ICQoQkFTRURJ UikvaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oICQoQkFTRURJUikvaW5jbHVkZS94ZW4vbXVsdGli b290LmggXAorCSAgICAgJChCQVNFRElSKS9pbmNsdWRlL3hlbi9tdWx0aWJvb3QyLmgKIAogaGVh ZC5vOiByZWxvYy5TCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUyBiL3hl bi9hcmNoL3g4Ni9ib290L2hlYWQuUwppbmRleCAxZmY1OTM3Li5lNDZkNjkxIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5T CkBAIC0xLDUgKzEsNiBAQAogI2luY2x1ZGUgPHhlbi9jb25maWcuaD4KICNpbmNsdWRlIDx4ZW4v bXVsdGlib290Lmg+CisjaW5jbHVkZSA8eGVuL211bHRpYm9vdDIuaD4KICNpbmNsdWRlIDxwdWJs aWMveGVuLmg+CiAjaW5jbHVkZSA8YXNtL2FzbV9kZWZucy5oPgogI2luY2x1ZGUgPGFzbS9kZXNj Lmg+CkBAIC0xOSw2ICsyMCwyOCBAQAogI2RlZmluZSBCT09UX1BTRVVET1JNX0NTIDB4MDAyMAog I2RlZmluZSBCT09UX1BTRVVET1JNX0RTIDB4MDAyOAogCisjZGVmaW5lIE1CMl9IVChuYW1lKSAg ICAgIChNVUxUSUJPT1QyX0hFQURFUl9UQUdfIyNuYW1lKQorI2RlZmluZSBNQjJfVFQobmFtZSkg ICAgICAoTVVMVElCT09UMl9UQUdfVFlQRV8jI25hbWUpCisKKyAgICAgICAgLm1hY3JvIG1iMmh0 X2FyZ3MgYXJnLCBhcmdzOnZhcmFyZworICAgICAgICAubG9uZyBcYXJnCisgICAgICAgIC5pZm5i IFxhcmdzCisgICAgICAgIG1iMmh0X2FyZ3MgXGFyZ3MKKyAgICAgICAgLmVuZGlmCisgICAgICAg IC5lbmRtCisKKyAgICAgICAgLm1hY3JvIG1iMmh0X2luaXQgdHlwZSwgcmVxLCBhcmdzOnZhcmFy ZworICAgICAgICAuYWxpZ24gTVVMVElCT09UMl9UQUdfQUxJR04KKy5MbWIyaHRfaW5pdF9zdGFy dFxAOgorICAgICAgICAuc2hvcnQgXHR5cGUKKyAgICAgICAgLnNob3J0IFxyZXEKKyAgICAgICAg LmxvbmcgLkxtYjJodF9pbml0X2VuZFxAIC0gLkxtYjJodF9pbml0X3N0YXJ0XEAKKyAgICAgICAg LmlmbmIgXGFyZ3MKKyAgICAgICAgbWIyaHRfYXJncyBcYXJncworICAgICAgICAuZW5kaWYKKy5M bWIyaHRfaW5pdF9lbmRcQDoKKyAgICAgICAgLmVuZG0KKwogRU5UUlkoc3RhcnQpCiAgICAgICAg IGptcCAgICAgX19zdGFydAogCkBAIC0zNCw2ICs1Nyw0MiBAQCBtdWx0aWJvb3QxX2hlYWRlcl9z dGFydDogICAgICAgLyoqKiBNVUxUSUJPT1QxIEhFQURFUiAqKioqLwogICAgICAgICAubG9uZyAg IC0oTVVMVElCT09UX0hFQURFUl9NQUdJQyArIE1VTFRJQk9PVF9IRUFERVJfRkxBR1MpCiBtdWx0 aWJvb3QxX2hlYWRlcl9lbmQ6CiAKKy8qKiogTVVMVElCT09UMiBIRUFERVIgKioqKi8KKy8qIFNv bWUgaWRlYXMgYXJlIHRha2VuIGZyb20gZ3J1Yi0yLjAwL2dydWItY29yZS90ZXN0cy9ib290L2tl cm5lbC1pMzg2LlMgZmlsZS4gKi8KKyAgICAgICAgLmFsaWduICBNVUxUSUJPT1QyX0hFQURFUl9B TElHTgorCittdWx0aWJvb3QyX2hlYWRlcl9zdGFydDoKKyAgICAgICAgLyogTWFnaWMgbnVtYmVy IGluZGljYXRpbmcgYSBNdWx0aWJvb3QyIGhlYWRlci4gKi8KKyAgICAgICAgLmxvbmcgICBNVUxU SUJPT1QyX0hFQURFUl9NQUdJQworICAgICAgICAvKiBBcmNoaXRlY3R1cmU6IGkzODYuICovCisg ICAgICAgIC5sb25nICAgTVVMVElCT09UMl9BUkNISVRFQ1RVUkVfSTM4NgorICAgICAgICAvKiBN dWx0aWJvb3QyIGhlYWRlciBsZW5ndGguICovCisgICAgICAgIC5sb25nICAgbXVsdGlib290Ml9o ZWFkZXJfZW5kIC0gbXVsdGlib290Ml9oZWFkZXJfc3RhcnQKKyAgICAgICAgLyogTXVsdGlib290 MiBoZWFkZXIgY2hlY2tzdW0uICovCisgICAgICAgIC5sb25nICAgLShNVUxUSUJPT1QyX0hFQURF Ul9NQUdJQyArIE1VTFRJQk9PVDJfQVJDSElURUNUVVJFX0kzODYgKyBcCisgICAgICAgICAgICAg ICAgICAgICAgICAobXVsdGlib290Ml9oZWFkZXJfZW5kIC0gbXVsdGlib290Ml9oZWFkZXJfc3Rh cnQpKQorCisgICAgICAgIC8qIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gcmVxdWVzdCB0YWcuICov CisgICAgICAgIG1iMmh0X2luaXQgTUIyX0hUKElORk9STUFUSU9OX1JFUVVFU1QpLCBNQjJfSFQo UkVRVUlSRUQpLCBcCisgICAgICAgICAgICAgICAgICAgTUIyX1RUKEJBU0lDX01FTUlORk8pLCBN QjJfVFQoTU1BUCkKKworICAgICAgICAvKiBBbGlnbiBtb2R1bGVzIGF0IHBhZ2UgYm91bmRyeS4g Ki8KKyAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoTU9EVUxFX0FMSUdOKSwgTUIyX0hUKFJFUVVJ UkVEKQorCisgICAgICAgIC8qIENvbnNvbGUgZmxhZ3MgdGFnLiAqLworICAgICAgICBtYjJodF9p bml0IE1CMl9IVChDT05TT0xFX0ZMQUdTKSwgTUIyX0hUKE9QVElPTkFMKSwgXAorICAgICAgICAg ICAgICAgICAgIE1VTFRJQk9PVDJfQ09OU09MRV9GTEFHU19FR0FfVEVYVF9TVVBQT1JURUQKKwor ICAgICAgICAvKiBGcmFtZWJ1ZmZlciB0YWcuICovCisgICAgICAgIG1iMmh0X2luaXQgTUIyX0hU KEZSQU1FQlVGRkVSKSwgTUIyX0hUKE9QVElPTkFMKSwgXAorICAgICAgICAgICAgICAgICAgIDAs IC8qIE51bWJlciBvZiB0aGUgY29sdW1ucyAtIG5vIHByZWZlcmVuY2UuICovIFwKKyAgICAgICAg ICAgICAgICAgICAwLCAvKiBOdW1iZXIgb2YgdGhlIGxpbmVzIC0gbm8gcHJlZmVyZW5jZS4gKi8g XAorICAgICAgICAgICAgICAgICAgIDAgIC8qIE51bWJlciBvZiBiaXRzIHBlciBwaXhlbCAtIG5v IHByZWZlcmVuY2UuICovCisKKyAgICAgICAgLyogTXVsdGlib290MiBoZWFkZXIgZW5kIHRhZy4g Ki8KKyAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRU5EKSwgTUIyX0hUKFJFUVVJUkVEKQorbXVs dGlib290Ml9oZWFkZXJfZW5kOgorCiAgICAgICAgIC5zZWN0aW9uIC5pbml0LnJvZGF0YSwgImEi LCBAcHJvZ2JpdHMKICAgICAgICAgLmFsaWduIDQKIApAQCAtODIsMTAgKzE0MSw0OSBAQCBfX3N0 YXJ0OgogICAgICAgICBtb3YgICAgICVlY3gsJWVzCiAgICAgICAgIG1vdiAgICAgJWVjeCwlc3MK IAotICAgICAgICAvKiBDaGVjayBmb3IgTXVsdGlib290IGJvb3Rsb2FkZXIgKi8KKyAgICAgICAg LyogQm9vdGxvYWRlcnMgbWF5IHNldCBtdWx0aWJvb3R7MSwyfS5tZW1fbG93ZXIgdG8gYSBub256 ZXJvIHZhbHVlLiAqLworICAgICAgICB4b3IgICAgICVlZHgsJWVkeAorCisgICAgICAgIC8qIENo ZWNrIGZvciBNdWx0aWJvb3QyIGJvb3Rsb2FkZXIuICovCisgICAgICAgIGNtcCAgICAgJE1VTFRJ Qk9PVDJfQk9PVExPQURFUl9NQUdJQywlZWF4CisgICAgICAgIGplICAgICAgbXVsdGlib290Ml9w cm90bworCisgICAgICAgIC8qIENoZWNrIGZvciBNdWx0aWJvb3QgYm9vdGxvYWRlci4gKi8KICAg ICAgICAgY21wICAgICAkTVVMVElCT09UX0JPT1RMT0FERVJfTUFHSUMsJWVheAogICAgICAgICBq bmUgICAgIG5vdF9tdWx0aWJvb3QKIAorICAgICAgICAvKiBHZXQgbWVtX2xvd2VyIGZyb20gTXVs dGlib290IGluZm9ybWF0aW9uLiAqLworICAgICAgICB0ZXN0YiAgICRNQklfTUVNTElNSVRTLE1C X2ZsYWdzKCVlYngpCisKKyAgICAgICAgLyogTm90IGF2YWlsYWJsZT8gQkRBIHZhbHVlIHdpbGwg YmUgZmluZS4gKi8KKyAgICAgICAgY21vdm56ICBNQl9tZW1fbG93ZXIoJWVieCksJWVkeAorICAg ICAgICBqbXAgICAgIHRyYW1wb2xpbmVfc2V0dXAKKworbXVsdGlib290Ml9wcm90bzoKKyAgICAg ICAgLyogU2tpcCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCisgICAgICAg IGxlYSAgICAgKE1CMl9maXhlZF9zaXplb2YrTVVMVElCT09UMl9UQUdfQUxJR04tMSkoJWVieCks JWVjeAorICAgICAgICBhbmQgICAgICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKwor MDoKKyAgICAgICAgLyogR2V0IG1lbV9sb3dlciBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24u ICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5GTyxN QjJfdGFnX3R5cGUoJWVjeCkKKyAgICAgICAgam5lICAgICAxZgorCisgICAgICAgIG1vdiAgICAg TUIyX21lbV9sb3dlciglZWN4KSwlZWR4CisgICAgICAgIGptcCAgICAgdHJhbXBvbGluZV9zZXR1 cAorCisxOgorICAgICAgICAvKiBJcyBpdCB0aGUgZW5kIG9mIE11bHRpYm9vdDIgaW5mb3JtYXRp b24/ICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRU5ELE1CMl90YWdf dHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIHRyYW1wb2xpbmVfc2V0dXAKKworICAgICAgICAv KiBHbyB0byBuZXh0IE11bHRpYm9vdDIgaW5mb3JtYXRpb24gdGFnLiAqLworICAgICAgICBhZGQg ICAgIE1CMl90YWdfc2l6ZSglZWN4KSwlZWN4CisgICAgICAgIGFkZCAgICAgJChNVUxUSUJPT1Qy X1RBR19BTElHTi0xKSwlZWN4CisgICAgICAgIGFuZCAgICAgJH4oTVVMVElCT09UMl9UQUdfQUxJ R04tMSksJWVjeAorICAgICAgICBqbXAgICAgIDBiCisKK3RyYW1wb2xpbmVfc2V0dXA6CiAgICAg ICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRrIGJlbG93IEVCREEgKi8KICAgICAg ICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVCREEgc2VnbWVudCAqLwogICAgICAg ICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2FuaXR5IGNoZWNrIChoaWdoKSAqLwpA QCAtMTAwLDkgKzE5OCw2IEBAIF9fc3RhcnQ6CiAgICAgICAgICAqIENvbXBhcmUgdGhlIHZhbHVl IGluIHRoZSBCREEgd2l0aCB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUKICAgICAgICAgICogbXVs dGlib290IHN0cnVjdHVyZSAoaWYgYXZhaWxhYmxlKSBhbmQgdXNlIHRoZSBzbWFsbGVzdC4KICAg ICAgICAgICovCi0gICAgICAgIHRlc3RiICAgJE1CSV9NRU1MSU1JVFMsKCVlYngpCi0gICAgICAg IGp6ICAgICAgMmYgICAgICAgICAgICAgICAgICAvKiBub3QgYXZhaWxhYmxlPyBCREEgdmFsdWUg d2lsbCBiZSBmaW5lICovCi0gICAgICAgIG1vdiAgICAgTUJfbWVtX2xvd2VyKCVlYngpLCVlZHgK ICAgICAgICAgY21wICAgICAkMHgxMDAsJWVkeCAgICAgICAgIC8qIGlzIHRoZSBtdWx0aWJvb3Qg dmFsdWUgdG9vIHNtYWxsPyAqLwogICAgICAgICBqYiAgICAgIDJmICAgICAgICAgICAgICAgICAg LyogaWYgc28sIGRvIG5vdCB1c2UgaXQgKi8KICAgICAgICAgc2hsICAgICAkMTAtNCwlZWR4CkBA IC0xMjEsOCArMjE2LDkgQEAgX19zdGFydDoKICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoY3B1 MF9zdGFjaykrMTAyNCwlZXNwCiAgICAgICAgIHB1c2ggICAgJWVjeCAgICAgICAgICAgICAgICAv KiBCb290IHRyYW1wb2xpbmUgYWRkcmVzcy4gKi8KICAgICAgICAgcHVzaCAgICAlZWJ4ICAgICAg ICAgICAgICAgIC8qIE11bHRpYm9vdCBpbmZvcm1hdGlvbiBhZGRyZXNzLiAqLworICAgICAgICBw dXNoICAgICVlYXggICAgICAgICAgICAgICAgLyogTXVsdGlib290IG1hZ2ljLiAqLwogICAgICAg ICBjYWxsICAgIHJlbG9jCi0gICAgICAgIGFkZCAgICAgJDgsJWVzcCAgICAgICAgICAgICAvKiBS ZW1vdmUgcmVsb2MoKSBhcmdzIGZyb20gc3RhY2suICovCisgICAgICAgIGFkZCAgICAgJDEyLCVl c3AgICAgICAgICAgICAvKiBSZW1vdmUgcmVsb2MoKSBhcmdzIGZyb20gc3RhY2suICovCiAgICAg ICAgIG1vdiAgICAgJWVheCxzeW1fcGh5cyhtdWx0aWJvb3RfcHRyKQogCiAgICAgICAgIC8qIElu aXRpYWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMhKS4gKi8KZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9ib290L3JlbG9jLmMgYi94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jCmluZGV4IDkz YjM4NDUuLjg0ZjYwNzMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMKKysr IGIveGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYwpAQCAtNSwxNSArNSwxOCBAQAogICogYW5kIG1v ZHVsZXMuIFRoaXMgaXMgbW9zdCBlYXNpbHkgZG9uZSBlYXJseSB3aXRoIHBhZ2luZyBkaXNhYmxl ZC4KICAqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIENpdHJpeCBTeXN0ZW1zLCBJbmMuCisgKiBD b3B5cmlnaHQgKGMpIDIwMTMtMjAxNiBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwg cmlnaHRzIHJlc2VydmVkLgogICoKICAqIEF1dGhvcnM6CiAgKiAgICBLZWlyIEZyYXNlciA8a2Vp ckB4ZW4ub3JnPgorICogICAgRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNvbT4K ICAqLwogCiAvKgogICogVGhpcyBlbnRyeSBwb2ludCBpcyBlbnRlcmVkIGZyb20geGVuL2FyY2gv eDg2L2Jvb3QvaGVhZC5TIHdpdGg6Ci0gKiAgIC0gMHg0KCVlc3ApID0gTVVMVElCT09UX0lORk9S TUFUSU9OX0FERFJFU1MsCi0gKiAgIC0gMHg4KCVlc3ApID0gQk9PVF9UUkFNUE9MSU5FX0FERFJF U1MuCisgKiAgIC0gMHg0KCVlc3ApID0gTVVMVElCT09UX01BR0lDLAorICogICAtIDB4OCglZXNw KSA9IE1VTFRJQk9PVF9JTkZPUk1BVElPTl9BRERSRVNTLAorICogICAtIDB4YyglZXNwKSA9IEJP T1RfVFJBTVBPTElORV9BRERSRVNTLgogICovCiBhc20gKAogICAgICIgICAgLnRleHQgICAgICAg ICAgICAgICAgICAgICAgICAgXG4iCkBAIC0yMyw4ICsyNiw5IEBAIGFzbSAoCiAgICAgIiAgICBt b3YgICVlc3AsJWVicCAgICAgICAgICAgICAgICBcbiIKICAgICAiICAgIGNhbGwgMWYgICAgICAg ICAgICAgICAgICAgICAgIFxuIgogICAgICIxOiAgcG9wICAlZWN4ICAgICAgICAgICAgICAgICAg ICAgXG4iCi0gICAgIiAgICBtb3YgIDB4YyglZWJwKSwlZWF4ICAgICAgICAgICBcbiIKKyAgICAi ICAgIG1vdiAgMHgxMCglZWJwKSwlZWF4ICAgICAgICAgIFxuIgogICAgICIgICAgbW92ICAlZWF4 LGFsbG9jLTFiKCVlY3gpICAgICAgXG4iCisgICAgIiAgICBwdXNoIDB4YyglZWJwKSAgICAgICAg ICAgICAgICBcbiIKICAgICAiICAgIHB1c2ggMHg4KCVlYnApICAgICAgICAgICAgICAgIFxuIgog ICAgICIgICAgY2FsbCByZWxvYyAgICAgICAgICAgICAgICAgICAgXG4iCiAgICAgIiAgICBsZWF2 ZSAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKQEAgLTQxLDcgKzQ1LDE2IEBAIGFzbSAoCiAg ICAgKTsKIAogdHlwZWRlZiB1bnNpZ25lZCBpbnQgdTMyOwordHlwZWRlZiB1bnNpZ25lZCBsb25n IGxvbmcgdTY0OworCiAjaW5jbHVkZSAiLi4vLi4vLi4vaW5jbHVkZS94ZW4vbXVsdGlib290Lmgi CisjaW5jbHVkZSAiLi4vLi4vLi4vaW5jbHVkZS94ZW4vbXVsdGlib290Mi5oIgorCisjZGVmaW5l IEFMSUdOX1VQKGFkZHIsIGFsaWduKSBcCisgICAgICAgICAgICAgICAgKCgoYWRkcikgKyAodHlw ZW9mKGFkZHIpKShhbGlnbikgLSAxKSAmIH4oKHR5cGVvZihhZGRyKSkoYWxpZ24pIC0gMSkpCisK KyNkZWZpbmUgZ2V0X21iMl9kYXRhKHRhZywgdHlwZSwgbWVtYmVyKSAgICgoKG11bHRpYm9vdDJf dGFnXyMjdHlwZSMjX3QgKikodGFnKSktPm1lbWJlcikKKyNkZWZpbmUgZ2V0X21iMl9zdHJpbmco dGFnLCB0eXBlLCBtZW1iZXIpICgodTMyKWdldF9tYjJfZGF0YSh0YWcsIHR5cGUsIG1lbWJlcikp CiAKIHN0YXRpYyB1MzIgYWxsb2NfbWVtKHUzMiBieXRlcykKIHsKQEAgLTU5LDYgKzcyLDExIEBA IHN0YXRpYyB1MzIgYWxsb2NfbWVtKHUzMiBieXRlcykKICAgICByZXR1cm4gczsKIH0KIAorc3Rh dGljIHZvaWQgemVyb19tZW0odTMyIHMsIHUzMiBieXRlcykKK3sKKyAgICBhc20gdm9sYXRpbGUo InJlcCBzdG9zYiIgOiAiK0QiIChzKSwgIitjIiAoYnl0ZXMpIDogImEiICgwKSA6ICJtZW1vcnki KTsKK30KKwogc3RhdGljIHUzMiBjb3B5X21lbSh1MzIgc3JjLCB1MzIgYnl0ZXMpCiB7CiAgICAg dTMyIGRzdCwgZHN0X2FzbTsKQEAgLTg0LDcgKzEwMiw3IEBAIHN0YXRpYyB1MzIgY29weV9zdHJp bmcodTMyIHNyYykKICAgICByZXR1cm4gY29weV9tZW0oc3JjLCBwIC0gc3JjICsgMSk7CiB9CiAK LW11bHRpYm9vdF9pbmZvX3QgKnJlbG9jKHUzMiBtYmlfaW4pCitzdGF0aWMgbXVsdGlib290X2lu Zm9fdCAqbWJpX21iaSh1MzIgbWJpX2luKQogewogICAgIGludCBpOwogICAgIG11bHRpYm9vdF9p bmZvX3QgKm1iaV9vdXQ7CkBAIC0xMjUsMyArMTQzLDEyOSBAQCBtdWx0aWJvb3RfaW5mb190ICpy ZWxvYyh1MzIgbWJpX2luKQogCiAgICAgcmV0dXJuIG1iaV9vdXQ7CiB9CisKK3N0YXRpYyBtdWx0 aWJvb3RfaW5mb190ICptYmkyX21iaSh1MzIgbWJpX2luKQoreworICAgIGNvbnN0IG11bHRpYm9v dDJfbWVtb3J5X21hcF90ICptbWFwX3NyYzsKKyAgICBjb25zdCBtdWx0aWJvb3QyX3RhZ190ICp0 YWc7CisgICAgLyogRG8gbm90IGNvbXBsYWluIHRoYXQgbWJpX291dF9tb2RzIGlzIG5vdCBpbml0 aWFsaXplZC4gKi8KKyAgICBtb2R1bGVfdCAqbWJpX291dF9tb2RzID0gKG1vZHVsZV90ICopMDsK KyAgICBtZW1vcnlfbWFwX3QgKm1tYXBfZHN0OworICAgIG11bHRpYm9vdF9pbmZvX3QgKm1iaV9v dXQ7CisgICAgdTMyIHB0cjsKKyAgICB1bnNpZ25lZCBpbnQgaSwgbW9kX2lkeCA9IDA7CisKKyAg ICBwdHIgPSBhbGxvY19tZW0oc2l6ZW9mKCptYmlfb3V0KSk7CisgICAgbWJpX291dCA9IChtdWx0 aWJvb3RfaW5mb190ICopcHRyOworICAgIHplcm9fbWVtKHB0ciwgc2l6ZW9mKCptYmlfb3V0KSk7 CisKKyAgICAvKiBTa2lwIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gZml4ZWQgcGFydC4gKi8KKyAg ICBwdHIgPSBBTElHTl9VUChtYmlfaW4gKyBzaXplb2YobXVsdGlib290Ml9maXhlZF90KSwgTVVM VElCT09UMl9UQUdfQUxJR04pOworCisgICAgLyogR2V0IHRoZSBudW1iZXIgb2YgbW9kdWxlcy4g Ki8KKyAgICBmb3IgKCB0YWcgPSAobXVsdGlib290Ml90YWdfdCAqKXB0cjsgOyApCisgICAgewor ICAgICAgICBpZiAoIHRhZy0+dHlwZSA9PSBNVUxUSUJPT1QyX1RBR19UWVBFX01PRFVMRSApCisg ICAgICAgICAgICArK21iaV9vdXQtPm1vZHNfY291bnQ7CisgICAgICAgIGVsc2UgaWYgKCB0YWct PnR5cGUgPT0gTVVMVElCT09UMl9UQUdfVFlQRV9FTkQgKQorICAgICAgICAgICAgYnJlYWs7CisK KyAgICAgICAgLyogR28gdG8gbmV4dCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIHRhZy4gKi8KKyAg ICAgICAgdGFnID0gKG11bHRpYm9vdDJfdGFnX3QgKilBTElHTl9VUCgodTMyKXRhZyArIHRhZy0+ c2l6ZSwgTVVMVElCT09UMl9UQUdfQUxJR04pOworCisgICAgICAgIC8qIENoZWNrIE11bHRpYm9v dDIgaW5mb3JtYXRpb24gdG90YWwgc2l6ZSBqdXN0IGluIGNhc2UuICovCisgICAgICAgIGlmICgg KHUzMil0YWcgLSBtYmlfaW4gPj0gKChtdWx0aWJvb3QyX2ZpeGVkX3QgKiltYmlfaW4pLT50b3Rh bF9zaXplICkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICggbWJpX291dC0+ bW9kc19jb3VudCApCisgICAgeworICAgICAgICBtYmlfb3V0LT5mbGFncyA9IE1CSV9NT0RVTEVT OworICAgICAgICBtYmlfb3V0LT5tb2RzX2FkZHIgPSBhbGxvY19tZW0obWJpX291dC0+bW9kc19j b3VudCAqIHNpemVvZihtb2R1bGVfdCkpOworICAgICAgICBtYmlfb3V0X21vZHMgPSAobW9kdWxl X3QgKiltYmlfb3V0LT5tb2RzX2FkZHI7CisgICAgfQorCisgICAgLyogU2tpcCBNdWx0aWJvb3Qy IGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCisgICAgcHRyID0gQUxJR05fVVAobWJpX2luICsg c2l6ZW9mKG11bHRpYm9vdDJfZml4ZWRfdCksIE1VTFRJQk9PVDJfVEFHX0FMSUdOKTsKKworICAg IC8qIFB1dCBhbGwgbmVlZGVkIGRhdGEgaW50byBtYmlfb3V0LiAqLworICAgIGZvciAoIHRhZyA9 IChtdWx0aWJvb3QyX3RhZ190ICopcHRyOyA7ICkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoIHRh Zy0+dHlwZSApCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBNVUxUSUJPT1QyX1RBR19UWVBFX0JP T1RfTE9BREVSX05BTUU6CisgICAgICAgICAgICBtYmlfb3V0LT5mbGFncyB8PSBNQklfTE9BREVS TkFNRTsKKyAgICAgICAgICAgIHB0ciA9IGdldF9tYjJfc3RyaW5nKHRhZywgc3RyaW5nLCBzdHJp bmcpOworICAgICAgICAgICAgbWJpX291dC0+Ym9vdF9sb2FkZXJfbmFtZSA9IGNvcHlfc3RyaW5n KHB0cik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1VTFRJQk9PVDJfVEFH X1RZUEVfQ01ETElORToKKyAgICAgICAgICAgIG1iaV9vdXQtPmZsYWdzIHw9IE1CSV9DTURMSU5F OworICAgICAgICAgICAgcHRyID0gZ2V0X21iMl9zdHJpbmcodGFnLCBzdHJpbmcsIHN0cmluZyk7 CisgICAgICAgICAgICBtYmlfb3V0LT5jbWRsaW5lID0gY29weV9zdHJpbmcocHRyKTsKKyAgICAg ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTVVMVElCT09UMl9UQUdfVFlQRV9CQVNJQ19N RU1JTkZPOgorICAgICAgICAgICAgbWJpX291dC0+ZmxhZ3MgfD0gTUJJX01FTUxJTUlUUzsKKyAg ICAgICAgICAgIG1iaV9vdXQtPm1lbV9sb3dlciA9IGdldF9tYjJfZGF0YSh0YWcsIGJhc2ljX21l bWluZm8sIG1lbV9sb3dlcik7CisgICAgICAgICAgICBtYmlfb3V0LT5tZW1fdXBwZXIgPSBnZXRf bWIyX2RhdGEodGFnLCBiYXNpY19tZW1pbmZvLCBtZW1fdXBwZXIpOworICAgICAgICAgICAgYnJl YWs7CisKKyAgICAgICAgY2FzZSBNVUxUSUJPT1QyX1RBR19UWVBFX01NQVA6CisgICAgICAgICAg ICBtYmlfb3V0LT5mbGFncyB8PSBNQklfTUVNTUFQOworICAgICAgICAgICAgbWJpX291dC0+bW1h cF9sZW5ndGggPSBnZXRfbWIyX2RhdGEodGFnLCBtbWFwLCBzaXplKTsKKyAgICAgICAgICAgIG1i aV9vdXQtPm1tYXBfbGVuZ3RoIC09IHNpemVvZihtdWx0aWJvb3QyX3RhZ19tbWFwX3QpOworICAg ICAgICAgICAgbWJpX291dC0+bW1hcF9sZW5ndGggLz0gZ2V0X21iMl9kYXRhKHRhZywgbW1hcCwg ZW50cnlfc2l6ZSk7CisgICAgICAgICAgICBtYmlfb3V0LT5tbWFwX2xlbmd0aCAqPSBzaXplb2Yo bWVtb3J5X21hcF90KTsKKworICAgICAgICAgICAgbWJpX291dC0+bW1hcF9hZGRyID0gYWxsb2Nf bWVtKG1iaV9vdXQtPm1tYXBfbGVuZ3RoKTsKKworICAgICAgICAgICAgbW1hcF9zcmMgPSBnZXRf bWIyX2RhdGEodGFnLCBtbWFwLCBlbnRyaWVzKTsKKyAgICAgICAgICAgIG1tYXBfZHN0ID0gKG1l bW9yeV9tYXBfdCAqKW1iaV9vdXQtPm1tYXBfYWRkcjsKKworICAgICAgICAgICAgZm9yICggaSA9 IDA7IGkgPCBtYmlfb3V0LT5tbWFwX2xlbmd0aCAvIHNpemVvZihtZW1vcnlfbWFwX3QpOyBpKysg KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8qIEluaXQgc2l6ZSBtZW1iZXIgcHJv cGVybHkuICovCisgICAgICAgICAgICAgICAgbW1hcF9kc3RbaV0uc2l6ZSA9IHNpemVvZihtZW1v cnlfbWFwX3QpOworICAgICAgICAgICAgICAgIG1tYXBfZHN0W2ldLnNpemUgLT0gc2l6ZW9mKCgo bWVtb3J5X21hcF90KXswfSkuc2l6ZSk7CisgICAgICAgICAgICAgICAgLyogTm93IGNvcHkgYSBn aXZlbiByZWdpb24gZGF0YS4gKi8KKyAgICAgICAgICAgICAgICBtbWFwX2RzdFtpXS5iYXNlX2Fk ZHJfbG93ID0gKHUzMiltbWFwX3NyY1tpXS5hZGRyOworICAgICAgICAgICAgICAgIG1tYXBfZHN0 W2ldLmJhc2VfYWRkcl9oaWdoID0gKHUzMikobW1hcF9zcmNbaV0uYWRkciA+PiAzMik7CisgICAg ICAgICAgICAgICAgbW1hcF9kc3RbaV0ubGVuZ3RoX2xvdyA9ICh1MzIpbW1hcF9zcmNbaV0ubGVu OworICAgICAgICAgICAgICAgIG1tYXBfZHN0W2ldLmxlbmd0aF9oaWdoID0gKHUzMikobW1hcF9z cmNbaV0ubGVuID4+IDMyKTsKKyAgICAgICAgICAgICAgICBtbWFwX2RzdFtpXS50eXBlID0gbW1h cF9zcmNbaV0udHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAg ICAgIGNhc2UgTVVMVElCT09UMl9UQUdfVFlQRV9NT0RVTEU6CisgICAgICAgICAgICBtYmlfb3V0 X21vZHNbbW9kX2lkeF0ubW9kX3N0YXJ0ID0gZ2V0X21iMl9kYXRhKHRhZywgbW9kdWxlLCBtb2Rf c3RhcnQpOworICAgICAgICAgICAgbWJpX291dF9tb2RzW21vZF9pZHhdLm1vZF9lbmQgPSBnZXRf bWIyX2RhdGEodGFnLCBtb2R1bGUsIG1vZF9lbmQpOworICAgICAgICAgICAgcHRyID0gZ2V0X21i Ml9zdHJpbmcodGFnLCBtb2R1bGUsIGNtZGxpbmUpOworICAgICAgICAgICAgbWJpX291dF9tb2Rz W21vZF9pZHhdLnN0cmluZyA9IGNvcHlfc3RyaW5nKHB0cik7CisgICAgICAgICAgICBtYmlfb3V0 X21vZHNbbW9kX2lkeF0ucmVzZXJ2ZWQgPSAwOworICAgICAgICAgICAgKyttb2RfaWR4OworICAg ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNVUxUSUJPT1QyX1RBR19UWVBFX0VORDoK KyAgICAgICAgICAgIHJldHVybiBtYmlfb3V0OworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8qIEdvIHRvIG5leHQgTXVsdGlib290 MiBpbmZvcm1hdGlvbiB0YWcuICovCisgICAgICAgIHRhZyA9IChtdWx0aWJvb3QyX3RhZ190ICop QUxJR05fVVAoKHUzMil0YWcgKyB0YWctPnNpemUsIE1VTFRJQk9PVDJfVEFHX0FMSUdOKTsKKwor ICAgICAgICAvKiBDaGVjayBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIHRvdGFsIHNpemUganVzdCBp biBjYXNlLiAqLworICAgICAgICBpZiAoICh1MzIpdGFnIC0gbWJpX2luID49ICgobXVsdGlib290 Ml9maXhlZF90ICopbWJpX2luKS0+dG90YWxfc2l6ZSApCisgICAgICAgICAgICByZXR1cm4gbWJp X291dDsKKyAgICB9Cit9CisKK211bHRpYm9vdF9pbmZvX3QgKnJlbG9jKHUzMiBtYl9tYWdpYywg dTMyIG1iaV9pbikKK3sKKyAgICBpZiAoIG1iX21hZ2ljID09IE1VTFRJQk9PVDJfQk9PVExPQURF Ul9NQUdJQyApCisgICAgICAgIHJldHVybiBtYmkyX21iaShtYmlfaW4pOworICAgIGVsc2UKKyAg ICAgICAgcmV0dXJuIG1iaV9tYmkobWJpX2luKTsKK30KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMu YwppbmRleCA0NDdjNjUwLi5iOTI2MDgyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0 L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCkBA IC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgogI2luY2x1ZGUgPGFzbS9o YXJkaXJxLmg+CiAjaW5jbHVkZSA8eGVuL211bHRpYm9vdC5oPgorI2luY2x1ZGUgPHhlbi9tdWx0 aWJvb3QyLmg+CiAKICNkZWZpbmUgREVGSU5FKF9zeW0sIF92YWwpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBhc20gdm9sYXRpbGUgKCJcbi5h c2NpaVwiPT0+I2RlZmluZSAiICNfc3ltICIgJTAgLyogIiAjX3ZhbCAiICovPD09XCIiIFwKQEAg LTE2Niw0ICsxNjcsMTAgQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQoTUJfZmxh Z3MsIG11bHRpYm9vdF9pbmZvX3QsIGZsYWdzKTsKICAgICBPRkZTRVQoTUJfY21kbGluZSwgbXVs dGlib290X2luZm9fdCwgY21kbGluZSk7CiAgICAgT0ZGU0VUKE1CX21lbV9sb3dlciwgbXVsdGli b290X2luZm9fdCwgbWVtX2xvd2VyKTsKKyAgICBCTEFOSygpOworCisgICAgREVGSU5FKE1CMl9m aXhlZF9zaXplb2YsIHNpemVvZihtdWx0aWJvb3QyX2ZpeGVkX3QpKTsKKyAgICBPRkZTRVQoTUIy X3RhZ190eXBlLCBtdWx0aWJvb3QyX3RhZ190LCB0eXBlKTsKKyAgICBPRkZTRVQoTUIyX3RhZ19z aXplLCBtdWx0aWJvb3QyX3RhZ190LCBzaXplKTsKKyAgICBPRkZTRVQoTUIyX21lbV9sb3dlciwg bXVsdGlib290Ml90YWdfYmFzaWNfbWVtaW5mb190LCBtZW1fbG93ZXIpOwogfQpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveGVuL211bHRpYm9vdDIuaCBiL3hlbi9pbmNsdWRlL3hlbi9tdWx0aWJv b3QyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYxMTNmMQotLS0gL2Rl di9udWxsCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QyLmgKQEAgLTAsMCArMSwxNjkg QEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LDIwMDMsMjAwNywyMDA4LDIwMDksMjAxMCAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgKgorICogIG11bHRpYm9vdDIuaCAtIE11 bHRpYm9vdCAyIGhlYWRlciBmaWxlLgorICoKKyAqICBCYXNlZCBvbiBncnViLTIuMDAvaW5jbHVk ZS9tdWx0aWJvb3QyLmggZmlsZS4KKyAqCisgKiAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogIG9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLCB0bworICogIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiAgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k L29yCisgKiAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqICBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp bgorICogIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJl LgorICoKKyAqICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBO TyBFVkVOVCBTSEFMTCBBTlkKKyAqICBERVZFTE9QRVIgT1IgRElTVFJJQlVUT1IgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLAorICogIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N LCBPVVQgT0YgT1IKKyAqICBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX19N VUxUSUJPT1QyX0hfXworI2RlZmluZSBfX01VTFRJQk9PVDJfSF9fCisKKy8qIFRoZSBtYWdpYyBm aWVsZCBzaG91bGQgY29udGFpbiB0aGlzLiAgKi8KKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJf TUFHSUMJCQkJMHhlODUyNTBkNgorCisvKiBUaGlzIHNob3VsZCBiZSBpbiAlZWF4IG9uIHg4NiBh cmNoaXRlY3R1cmUuICAqLworI2RlZmluZSBNVUxUSUJPT1QyX0JPT1RMT0FERVJfTUFHSUMJCQkw eDM2ZDc2Mjg5CisKKy8qIEhvdyBtYW55IGJ5dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBmaWxl IHdlIHNlYXJjaCBmb3IgdGhlIGhlYWRlci4gICovCisjZGVmaW5lIE1VTFRJQk9PVDJfU0VBUkNI CQkJCTMyNzY4CisKKy8qIE11bHRpYm9vdCAyIGhlYWRlciBhbGlnbm1lbnQuICovCisjZGVmaW5l IE1VTFRJQk9PVDJfSEVBREVSX0FMSUdOCQkJCTgKKworLyogQWxpZ25tZW50IG9mIG11bHRpYm9v dCAyIG1vZHVsZXMuICAqLworI2RlZmluZSBNVUxUSUJPT1QyX01PRF9BTElHTgkJCQkweDAwMDAx MDAwCisKKy8qIEFsaWdubWVudCBvZiB0aGUgbXVsdGlib290IDIgaW5mbyBzdHJ1Y3R1cmUuICAq LworI2RlZmluZSBNVUxUSUJPT1QyX0lORk9fQUxJR04JCQkJMHgwMDAwMDAwOAorCisvKiBNdWx0 aWJvb3QgMiBhcmNoaXRlY3R1cmVzLiAqLworI2RlZmluZSBNVUxUSUJPT1QyX0FSQ0hJVEVDVFVS RV9JMzg2CQkJMAorI2RlZmluZSBNVUxUSUJPT1QyX0FSQ0hJVEVDVFVSRV9NSVBTMzIJCQk0CisK Ky8qIEhlYWRlciB0YWcgdHlwZXMuICovCisjZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVSX1RBR19F TkQJCQkwCisjZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVSX1RBR19JTkZPUk1BVElPTl9SRVFVRVNU CTEKKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFHX0FERFJFU1MJCQkyCisjZGVmaW5lIE1V TFRJQk9PVDJfSEVBREVSX1RBR19FTlRSWV9BRERSRVNTCQkzCisjZGVmaW5lIE1VTFRJQk9PVDJf SEVBREVSX1RBR19DT05TT0xFX0ZMQUdTCQk0CisjZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVSX1RB R19GUkFNRUJVRkZFUgkJNQorI2RlZmluZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfTU9EVUxFX0FM SUdOCQk2CisjZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVSX1RBR19FRklfQlMJCQk3CisjZGVmaW5l IE1VTFRJQk9PVDJfSEVBREVSX1RBR19FTlRSWV9BRERSRVNTX0VGSTMyCTgKKyNkZWZpbmUgTVVM VElCT09UMl9IRUFERVJfVEFHX0VOVFJZX0FERFJFU1NfRUZJNjQJOQorCisvKiBIZWFkZXIgdGFn IGZsYWdzLiAqLworI2RlZmluZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfUkVRVUlSRUQJCQkwCisj ZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVSX1RBR19PUFRJT05BTAkJCTEKKworLyogSGVhZGVyIGNv bnNvbGUgdGFnIGNvbnNvbGVfZmxhZ3MuICovCisjZGVmaW5lIE1VTFRJQk9PVDJfQ09OU09MRV9G TEFHU19DT05TT0xFX1JFUVVJUkVECTEKKyNkZWZpbmUgTVVMVElCT09UMl9DT05TT0xFX0ZMQUdT X0VHQV9URVhUX1NVUFBPUlRFRAkyCisKKy8qIEZsYWdzIHNldCBpbiB0aGUgJ2ZsYWdzJyBtZW1i ZXIgb2YgdGhlIG11bHRpYm9vdCBoZWFkZXIuICAqLworI2RlZmluZSBNVUxUSUJPT1QyX1RBR19U WVBFX0VORAkJCQkwCisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfQ01ETElORQkJCTEKKyNk ZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9CT09UX0xPQURFUl9OQU1FCQkyCisjZGVmaW5lIE1V TFRJQk9PVDJfVEFHX1RZUEVfTU9EVUxFCQkJMworI2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBF X0JBU0lDX01FTUlORk8JCTQKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9CT09UREVWCQkJ NQorI2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBFX01NQVAJCQk2CisjZGVmaW5lIE1VTFRJQk9P VDJfVEFHX1RZUEVfVkJFCQkJCTcKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9GUkFNRUJV RkZFUgkJCTgKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9FTEZfU0VDVElPTlMJCTkKKyNk ZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9BUE0JCQkJMTAKKyNkZWZpbmUgTVVMVElCT09UMl9U QUdfVFlQRV9FRkkzMgkJCTExCisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJNjQJCQkx MgorI2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBFX1NNQklPUwkJCTEzCisjZGVmaW5lIE1VTFRJ Qk9PVDJfVEFHX1RZUEVfQUNQSV9PTEQJCQkxNAorI2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBF X0FDUElfTkVXCQkJMTUKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9ORVRXT1JLCQkJMTYK KyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9FRklfTU1BUAkJCTE3CisjZGVmaW5lIE1VTFRJ Qk9PVDJfVEFHX1RZUEVfRUZJX0JTCQkJMTgKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9F RkkzMl9JSAkJCTE5CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJNjRfSUgJCQkyMAor CisvKiBNdWx0aWJvb3QgMiB0YWcgYWxpZ25tZW50LiAqLworI2RlZmluZSBNVUxUSUJPT1QyX1RB R19BTElHTgkJCQk4CisKKy8qIE1lbW9yeSB0eXBlcy4gKi8KKyNkZWZpbmUgTVVMVElCT09UMl9N RU1PUllfQVZBSUxBQkxFCQkJMQorI2RlZmluZSBNVUxUSUJPT1QyX01FTU9SWV9SRVNFUlZFRAkJ CTIKKyNkZWZpbmUgTVVMVElCT09UMl9NRU1PUllfQUNQSV9SRUNMQUlNQUJMRQkJMworI2RlZmlu ZSBNVUxUSUJPT1QyX01FTU9SWV9OVlMJCQkJNAorI2RlZmluZSBNVUxUSUJPT1QyX01FTU9SWV9C QURSQU0JCQk1CisKKy8qIEZyYW1lYnVmZmVyIHR5cGVzLiAqLworI2RlZmluZSBNVUxUSUJPT1Qy X0ZSQU1FQlVGRkVSX1RZUEVfSU5ERVhFRAkJMAorI2RlZmluZSBNVUxUSUJPT1QyX0ZSQU1FQlVG RkVSX1RZUEVfUkdCCQkJMQorI2RlZmluZSBNVUxUSUJPT1QyX0ZSQU1FQlVGRkVSX1RZUEVfRUdB X1RFWFQJCTIKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1 MzIgdG90YWxfc2l6ZTsKKyAgICB1MzIgcmVzZXJ2ZWQ7Cit9IG11bHRpYm9vdDJfZml4ZWRfdDsK KwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHUzMiB0eXBlOworICAgIHUzMiBzaXplOworfSBtdWx0 aWJvb3QyX3RhZ190OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdTMyIHR5cGU7CisgICAgdTMy IHNpemU7CisgICAgY2hhciBzdHJpbmdbMF07Cit9IG11bHRpYm9vdDJfdGFnX3N0cmluZ190Owor Cit0eXBlZGVmIHN0cnVjdCB7CisgICAgdTMyIHR5cGU7CisgICAgdTMyIHNpemU7CisgICAgdTMy IG1lbV9sb3dlcjsKKyAgICB1MzIgbWVtX3VwcGVyOworfSBtdWx0aWJvb3QyX3RhZ19iYXNpY19t ZW1pbmZvX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1NjQgYWRkcjsKKyAgICB1NjQgbGVu OworICAgIHUzMiB0eXBlOworICAgIHUzMiB6ZXJvOworfSBtdWx0aWJvb3QyX21lbW9yeV9tYXBf dDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHUzMiB0eXBlOworICAgIHUzMiBzaXplOworICAg IHUzMiBlbnRyeV9zaXplOworICAgIHUzMiBlbnRyeV92ZXJzaW9uOworICAgIG11bHRpYm9vdDJf bWVtb3J5X21hcF90IGVudHJpZXNbMF07Cit9IG11bHRpYm9vdDJfdGFnX21tYXBfdDsKKwordHlw ZWRlZiBzdHJ1Y3QgeworICAgIHUzMiB0eXBlOworICAgIHUzMiBzaXplOworICAgIHU2NCBwb2lu dGVyOworfSBtdWx0aWJvb3QyX3RhZ19lZmk2NF90OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAg dTMyIHR5cGU7CisgICAgdTMyIHNpemU7CisgICAgdTY0IHBvaW50ZXI7Cit9IG11bHRpYm9vdDJf dGFnX2VmaTY0X2loX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1MzIgdHlwZTsKKyAgICB1 MzIgc2l6ZTsKKyAgICB1MzIgbW9kX3N0YXJ0OworICAgIHUzMiBtb2RfZW5kOworICAgIGNoYXIg Y21kbGluZVswXTsKK30gbXVsdGlib290Ml90YWdfbW9kdWxlX3Q7CisjZW5kaWYgLyogX19BU1NF TUJMWV9fICovCisKKyNlbmRpZiAvKiBfX01VTFRJQk9PVDJfSF9fICovCi0tIAoxLjcuMTAuNAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==