From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Clark Subject: [PATCH v4 04/14] argo: init, destroy and soft-reset, with enable command line opt Date: Tue, 15 Jan 2019 01:27:36 -0800 Message-ID: <1547544466-21135-5-git-send-email-christopher.w.clark@gmail.com> References: <1547544466-21135-1-git-send-email-christopher.w.clark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gjL0z-0003TK-Ty for xen-devel@lists.xenproject.org; Tue, 15 Jan 2019 09:28:10 +0000 Received: by mail-it1-x136.google.com with SMTP id w18so4028399ite.1 for ; Tue, 15 Jan 2019 01:28:07 -0800 (PST) In-Reply-To: <1547544466-21135-1-git-send-email-christopher.w.clark@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Ross Philipson , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Jason Andryuk , Ian Jackson , Rich Persaud , Tim Deegan , Daniel Smith , Julien Grall , Paul Durrant , Jan Beulich , James McKenzie , Eric Chanudet , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW5pdGlhbGlzZXMgYmFzaWMgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBwZXJmb3JtcyB0ZWFyZG93biBv ZiBhcmdvIHN0YXRlCmZvciBkb21haW4gc2h1dGRvd24uCgpJbmNsdXNpb24gb2YgdGhlIEFyZ28g aW1wbGVtZW50YXRpb24gaXMgZGVwZW5kZW50IG9uIENPTkZJR19BUkdPLgoKSW50cm9kdWNlcyBh IG5ldyBYZW4gY29tbWFuZCBsaW5lIHBhcmFtZXRlciAnYXJnbyc6IGJvb2wgdG8gZW5hYmxlL2Rp c2FibGUKdGhlIGFyZ28gaHlwZXJjYWxsLiBEZWZhdWx0cyB0byBkaXNhYmxlZC4KCk5ldyBoZWFk ZXJzOgogIHB1YmxpYy9hcmdvLmg6IHdpdGggZGVmaW5pb25zIG9mIGFkZHJlc3NlcyBhbmQgcmlu ZyBzdHJ1Y3R1cmUsIGluY2x1ZGluZwogIGluZGV4ZXMgZm9yIGF0b21pYyB1cGRhdGUgZm9yIGNv bW11bmljYXRpb24gYmV0d2VlbiBkb21haW4gYW5kIGh5cGVydmlzb3IuCgogIHhlbi9hcmdvLmg6 IHRvIGV4cG9zZSB0aGUgaG9va3MgZm9yIGludGVncmF0aW9uIGludG8gZG9tYWluIGxpZmVjeWNs ZToKICAgIGFyZ29faW5pdDogcGVyLWRvbWFpbiBpbml0IG9mIGFyZ28gZGF0YSBzdHJ1Y3R1cmVz IGZvciBkb21haW5fY3JlYXRlLgogICAgYXJnb19kZXN0cm95OiB0ZWFyZG93biBmb3IgZG9tYWlu X2Rlc3Ryb3kgYW5kIHRoZSBlcnJvciBleGl0CiAgICAgICAgICAgICAgICAgIHBhdGggb2YgZG9t YWluX2NyZWF0ZS4KICAgIGFyZ29fc29mdF9yZXNldDogcmVzZXQgb2YgZG9tYWluIHN0YXRlIGZv ciBkb21haW5fc29mdF9yZXNldC4KCkFkZHMgdHdvIG5ldyBmaWVsZHMgdG8gc3RydWN0IGRvbWFp bjoKICAgIHJ3bG9ja190IGFyZ29fbG9jazsKICAgIHN0cnVjdCBhcmdvX2RvbWFpbiAqYXJnbzsK CkluIGFjY29yZGFuY2Ugd2l0aCByZWNlbnQgd29yayBvbiBfZG9tYWluX2Rlc3Ryb3ksIGFyZ29f ZGVzdHJveSBpcwppZGVtcG90ZW50LiBJdCB3aWxsIHRlYXIgZG93bjogYWxsIHJpbmdzIHJlZ2lz dGVyZWQgYnkgdGhpcyBkb21haW4sIGFsbApyaW5ncyB3aGVyZSB0aGlzIGRvbWFpbiBpcyB0aGUg c2luZ2xlIHNlbmRlciAoaWUuIHNwZWNpZmllZCBwYXJ0bmVyLApub24td2lsZGNhcmQgcmluZ3Mp LCBhbmQgYWxsIHBlbmRpbmcgbm90aWZpY2F0aW9ucyB3aGVyZSB0aGlzIGRvbWFpbiBpcwphd2Fp dGluZyBzaWduYWwgYWJvdXQgYXZhaWxhYmxlIHNwYWNlIGluIHRoZSByaW5ncyBvZiBvdGhlciBk b21haW5zLgoKQSBjb3VudCB3aWxsIGJlIG1haW50YWluZWQgb2YgdGhlIG51bWJlciBvZiByaW5n cyB0aGF0IGEgZG9tYWluIGhhcwpyZWdpc3RlcmVkIGluIG9yZGVyIHRvIGxpbWl0IGl0IGJlbG93 IHRoZSBmaXhlZCBtYXhpbXVtIGxpbWl0IGRlZmluZWQgaGVyZS4KCk1hY3JvcyBhcmUgZGVmaW5l ZCB0byB2ZXJpZnkgdGhlIGludGVybmFsIGxvY2tpbmcgc3RhdGUgd2l0aGluIHRoZSBhcmdvCmlt cGxlbWVudGF0aW9uLiBUaGUgbWFjcm9zIGFyZSBBU1NFUlRlZCBvbiBlbnRyeSB0byBmdW5jdGlv bnMgdG8gdmFsaWRhdGUKYW5kIGRvY3VtZW50IHRoZSByZXF1aXJlZCBsb2NrIHN0YXRlIHByaW9y IHRvIGNhbGxpbmcuCgpUaGUgc29mdHdhcmUgbGljZW5zZSBvbiB0aGUgcHVibGljIGhlYWRlciBp cyB0aGUgQlNEIGxpY2Vuc2UsIHN0YW5kYXJkCnByb2NlZHVyZSBmb3IgdGhlIHB1YmxpYyBYZW4g aGVhZGVycy4gVGhlIHB1YmxpYyBoZWFkZXIgd2FzIG9yaWdpbmFsbHkKcG9zdGVkIHVuZGVyIGEg R1BMIGxpY2Vuc2UgYXQ6IFsxXToKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZl cy9odG1sL3hlbi1kZXZlbC8yMDEzLTA1L21zZzAyNzEwLmh0bWwKClRoZSBmb2xsb3dpbmcgQUNL IGJ5IExhcnMgS3VydGggaXMgdG8gY29uZmlybSB0aGF0IG9ubHkgcGVvcGxlIGJlaW5nCmVtcGxv eWVlcyBvZiBDaXRyaXggY29udHJpYnV0ZWQgdG8gdGhlIGhlYWRlciBmaWxlcyBpbiB0aGUgc2Vy aWVzIHBvc3RlZCBhdApbMV0gYW5kIHRoYXQgdGh1cyB0aGUgY29weXJpZ2h0IG9mIHRoZSBmaWxl cyBpbiBxdWVzdGlvbiBpcyBmdWxseSBvd25lZCBieQpDaXRyaXguIFRoZSBBQ0sgYWxzbyBjb25m aXJtcyB0aGF0IENpdHJpeCBpcyBoYXBweSBmb3IgdGhlIGhlYWRlciBmaWxlcyB0bwpiZSBwdWJs aXNoZWQgdW5kZXIgYSBCU0QgbGljZW5zZSBpbiB0aGlzIHNlcmllcyAod2hpY2ggaXMgYmFzZWQg b24gWzFdKS4KClNpZ25lZC1vZmYtYnk6IENocmlzdG9waGVyIENsYXJrIDxjaHJpc3RvcGhlci5j bGFyazZAYmFlc3lzdGVtcy5jb20+CkFja2VkLWJ5OiBMYXJzIEt1cnRoIDxsYXJzLmt1cnRoQGNp dHJpeC5jb20+ClJldmlld2VkLWJ5OiBSb3NzIFBoaWxpcHNvbiA8cm9zcy5waGlsaXBzb25Ab3Jh Y2xlLmNvbT4KClRoaXMgdmVyc2lvbiBjb250YWlucyBGSVhNRXMgZm9yIDQuMTI6CiAqIFJlcGxh Y2UgdGhlIGhhc2ggZnVuY3Rpb24gdG8gZ2V0IGJldHRlciBkaXN0cmlidXRpb24gYWNyb3NzIGJ1 Y2tldHMuCiAgICAgLSBEb24ndCB1c2UgY2FzdHMgaW4gdGhlIHJlcGxhY2VtZW50IGZ1bmN0aW9u LgogICAgIC0gRHJvcCB0aGUgdXNlIG9mIGFycmF5X2luZGV4X25vc3BlYy4KICogc2luY2UgYXJn b19kZXN0cm95IGlzIGluIF9kb21haW5fZGVzdHJveSwgcmVtb3ZlIGl0IGZyb20gZG9tYWluX2tp bGwKLS0tCnYzICMwNCBBbmRyZXc6IHVzZSB4emFsbG9jIGZvciBzdHJ1Y3QgYXJnb19kb21haW4g aW4gYXJnb19pbml0CnYzICMwNCBBbmRyZXc6IHJlZmVyZW5jZSBDT05GSUdfQVJHTyBpbiB0aGUg Y29tbWFuZCBsaW5lIGRvY3VtZW50YXRpb24KdjMgIzA3IEphbjogcmVuYW1lIHJpbmdfZmluZF9p bmZvIHRvIGZpbmRfcmluZ19pbmZvCnYzICMwNCBBbmRyZXc6IGRvbid0IHRydW5jYXRlIGFyZ3Mg ZG9fYXJnb19vcCBwcmludGsKdjMgIzA3IEphbjogZml4IG51bWVyaWMgZW50cmllcyBpbiBwcmlu dGsgZm9ybWF0IHN0cmluZ3MKdjMgIzEwIFJvZ2VyOiBtb3ZlIGZpbmQgZnVuY3Rpb25zIHRvIHRv cCBvZiBmaWxlIGFuZCBkcm9wIHByb3RvdHlwZXMKdjMgIzA0IEphbjogbWVsZCBjb21wYXQgY2hl Y2sgZm9yIGh5cGVyY2FsbCBhcmcgdHlwZXMKdjMgIzA0IFJvZ2VyL0phbjogbWFrZSBsb2NrIG5h bWVzIGNsZWFyZXIgYW5kIGFzc2VydCB0aGVpciBzdGF0ZQp2MyAjMDQgSmFuOiBwb3J0IC0+IGFw b3J0IHdpdGggdHlwZTsgZGlzdGluZ3Vpc2ggYXJnbyBwb3J0IGZyb20gZXZ0Y2huCnYzICMwNCBK YW46IHJlb3JkZXIgY2FsbCB0byBhcmdvX2luaXRfZG9tYWluIGluIGFyZ29faW5pdAp2MyAjMDQg SmFuOiByaW5nX3JlbW92ZV9tZm5zOiB6ZXJvIGNvdW50IGJlZm9yZSBmcmVlaW5nIGFycmF5cwp2 MyAjMDQgSmFzb24vUm9nZXI6IHNvZnRfcmVzZXQ6IGNhbiBhc3N1bWUgcmVpbml0IGlzIG9rIGlm IGQtPmFyZ28gc2V0CnYzICMwNCBSb2dlcjogcmVtb3ZlIHVudXNlZCBhbmQgY29uZnVzaW5nIGQt PmFyZ29fbG9jawp2MyAjMDQgUm9nZXI6IGFkZCBzaW1wbGUgaW5saW5lcyBpbiB4ZW4vYXJnby5o LCBkcm9wIGlmZGVmIENPTkZJR19BUkdPCnYzICMwNCBSb2dlcjogc2ltcGxlciByZXR1cm4gLUVP UE5PVFNVUFAgaW4gZG9fYXJnb19vcAp2MyAjMDQgUm9nZXI6IGFkZCBjb25zdCB0byBkb21haW4g YXJnIHRvIHJpbmdfcmVtb3ZlX2luZm8KdjMgIzA0IFJvZ2VyOiB1c2UgWEZSRUUKdjMgIzA0IFJv Z2VyOiBuZXdsaW5lIGZpeCBpbiB3aWxkY2FyZF9wZW5kaW5nX2xpc3RfcmVtb3ZlCnYzICMwNCBS b2dlcjogbWZuX21hcHBpbmc6IHZvaWQqIGluc3RlYWQgb2YgdWludDhfdCoKdjMgIzA0IFJvZ2Vy OiBkcm9wIG5wYWdlcyBzdHJ1Y3QgbWVtYmVyIGluIGFyZ29fcmluZ19pbmZvOyB1c2UgbGVuCnYz ICMwNCBSb2dlci9KYW46IGRyb3AgbWFueSBmaXhlZCB3aWR0aCB0eXBlcyBpbiBpbnRlcm5hbCBz dHJ1Y3RzCnYzICMwNCBKYXNvbi9KYW46IGRyb3AgcGFkIGFuZCBmaXhlZCB3aWR0aCB0eXBlIGlu IHBlbmRpbmdfZW50IHN0cnVjdAp2MyAjMDQgRXJpYzogbW92ZWQgcmluZ19maW5kX2luZm8gZnJv bSByZWdpc3RlciBvcCBpbnRvIHRoaXMgY29tbWl0CnYzIG1vdmVkIGhhc2hfaW5kZXggZnVuY3Rp b24sIG5vc3BlYyBpbmNsdWRlIGZyb20gcmVnaXN0ZXIgb3AgdG8gdGhpcyBjb21taXQKdjMgbW92 ZWQgWEVOX0FSR09fRE9NSURfQU5ZIGRlZm4gZnJvbSByZWdpc3RlciBvcCBpbnRvIHRoaXMgY29t bWl0CnYzIGFkZGVkICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4gdG8gPHhlbi9hcmdvLmg+IGZvciBk b21haW4gc3RydWN0IGRlZm4KdjMgZmVlZGJhY2sgIzA0IFJvZ2VyOiByZW9yZGVyICNpbmNsdWRl cyB0byBhbHBoYWJldGljYWwgb3JkZXIKdjMgQWRkZWQgUm9zcydzIFJldmlld2VkLWJ5LgoKdjIg cmV3cml0ZSBsb2NraW5nIGV4cGxhbmF0aW9uIGNvbW1lbnQKdjIgaGVhZGVyIGNvcHlyaWdodCBs aW5lIG5vdyBpbmNsdWRlcyAyMDE5CnYyIHNlbGY6IHVzZSByaW5nX2luZm8gYmFja3BvaW50ZXIg aW4gcGVuZGluZ19lbnQgdG8gbWFpbnRhaW4gbnBlbmRpbmcKdjIgc2VsZjogcmVuYW1lIGFsbF9y aW5nc19yZW1vdmVfaW5mbyB0byBkb21haW5fcmluZ3NfcmVtb3ZlX2FsbAp2MiBmZWVkYmFjayBK YW46IGRyb3AgY29va2llLCBpbXBsZW1lbnQgdGVhcmRvd24KdjIgc2VsZjogYWRkIG5wZW5kaW5n IHRvIHRyYWNrIG51bWJlciBvZiBwZW5kaW5nIGVudHJpZXMgcGVyIHJpbmcKdjIgc2VsZjogYW1l bmQgY29tbWVudCBvbiBsb2NraW5nOyBkcm9wIHNlY3Rpb24gY29tbWVudHMKdjIgY29va2llX2Vx OiB0ZXN0IGxvdyBiaXRzIGZpcnN0IGFuZCB1c2UgbGlrZWx5IG9uIGhpZ2ggYml0cwp2MiBzZWxm OiBPVkVSSEFVTAp2MiBzZWxmOiBzL2FyZ29fcGVuZGluZ19lbnQvcGVuZGluZ19lbnQvZwp2MiBz ZWxmOiBkcm9wIHBlbmRpbmdfcmVtb3ZlX2VudCwgaW5saW5lIGF0IHNpbmdsZSBjYWxsIHNpdGUK djEgZmVlZGJhY2sgUm9nZXIsIEphbjogZHJvcCBhcmdvIHByZWZpeCBvbiBzdGF0aWMgZnVuY3Rp b25zCnYyICM0IExhcnM6IGFkZCBBY2tlZC1ieSBhbmQgZGV0YWlscyB0byBjb21taXQgbWVzc2Fn ZS4KdjIgZmVlZGJhY2sgIzkgSmFuOiBkb2N1bWVudCBhcmdvIGJvb3Qgb3B0IGluIHhlbi1jb21t YW5kLWxpbmUubWFya2Rvd24KdjIgYnVnZml4OiB4c20gdXNlIGluIHNvZnQtcmVzZXQgcHJpb3Ig dG8gaW50cm9kdWN0aW9uCnYyIGZlZWRiYWNrICM5IEphbjogZHJvcCAnbWVzc2FnZScgZnJvbSBk b19hcmdvX21lc3NhZ2Vfb3AKdjEgIzUgZmVlZGJhY2sgUGF1bDogaW5pdC9kZXN0cm95IHVuc2ln bmVkLCBicmFja2V0cyBhbmQgd2hpdGVzcGFjZSBmaXhlcwp2MSAjNSBmZWVkYmFjayBQYXVsOiBV c2UgbWZuX2VxIGZvciBjb21wYXJpbmcgbWZucy4KdjEgIzUgZmVlZGJhY2sgUGF1bDogaW5pdC9k ZXN0cm95IDogdXNlIGN1cnJkCnYxICM2ICgjNSkgZmVlZGJhY2sgSmFuOiBpbml0L2Rlc3Ryb3k6 IHMvRU5PU1lTL0VPUE5PVFNVUFAvCnYxICM2IGZlZWRiYWNrIFBhdWw6IEZvbGRlZCBwYXRjaCA2 IGludG8gcGF0Y2ggNS4KdjEgIzYgZmVlZGJhY2sgSmFuOiBkcm9wIG9wdF9hcmdvX2VuYWJsZWQg aW5pdGlhbGl6ZXIKdjEgJDYgZmVlZGJhY2sgSmFuOiBzL0VOT1NZUy9FT1BOT1RTVVBQL2cgYW5k IGRyb3AgdXNlbGVzcyBkcHJpbnRrCnYxLiAjNSBmZWVkYmFjayBQYXVsOiBjaGFuZ2UgdGhlIGxp Y2Vuc2Ugb24gcHVibGljIGhlYWRlciB0byBCU0QKICAgICAgLSBhY2sgZnJvbSBMYXJzIGF0IENp dHJpeC4KdjEuIHNlbGYsIEphbjogZHJvcCB1bm5lY2Vzc2FyeSB4ZW4gaW5jbHVkZSBmcm9tIHNj aGVkLmgKdjEuIHNlbGYsIEphbjogZHJvcCBpbmNsdXNpb24gb2YgcHVibGljIGFyZ28uaCBpbiBw cml2YXRlIG9uZQp2MS4gc2VsZiwgSmFuOiBhZGQgaW5jbHVkZSBvZiBwdWJsaWMgYXJnby5oIHRv IGFyZ28uYwp2MS4gc2VsZiwgSmFuOiBkcm9wIGZ3ZCBkZWNsIG9mIGFyZ29fZG9tYWluIGluIHBy aXYgaGVhZGVyCnYxLiBQYXVsL3NlbGYvSmFuOiBhZGQgZGF0YSBzdHJ1Y3R1cmVzIHRvIHhsYXQu bHN0IGFuZCBjb21wYXQvYXJnby5oIHRvIE1ha2VmaWxlCnYxLiBzZWxmOiByZW1vdmVkIGFsbG9j YXRpb24gb2YgZXZlbnQgY2hhbm5lbCBzaW5jZSBzd2l0Y2hpbmcgdG8gVklSUQp2MS4gc2VsZjog ZHJvcCB0eXBlcy5oIGluY2x1ZGUgZnJvbSBwcml2YXRlIGFyZ28uaAp2MTogcmVvcmRlciBwdWJs aWMgYXJnbyBpbmNsdWRlIHBvc2l0aW9uCnYxOiAjMTMgZmVlZGJhY2sgSmFuOiBwdWJsaWMgbmFt ZXNwYWNlOiBwcmVmaXggd2l0aCB4ZW4KdjE6IHNlbGY6IHJlbmFtZSBwZW5kaW5nIGVudCAiaWQi IHRvICJkb21haW5faWQiCnYxOiBzZWxmOiBhZGQgZG9tYWluX2Nvb2tpZSB0byBlbnQgc3RydWN0 CnYxLiAjMTUgZmVlZGJhY2sgSmFuOiBtYWtlIGNtZCB1bnNpZ25lZAp2MS4gIzE1IGZlZWRiYWNr IEphbjogbWFrZSBpIGxvb3AgdmFyaWFibGUgdW5zaWduZWQKdjE6IHNlbGY6IGFkanVzdCBkcHJp bnRrcyBpbiBpbml0LCBkZXN0cm95CnYxOiAjMTggZmVlZGJhY2sgSmFuOiBtZWxkIG1heCByaW5n IGNvdW50IGxpbWl0CnYxOiBzZWxmOiB1c2UgdHlwZSBub3Qgc3RydWN0IGluIHB1YmxpYyBkZWZu LCBhZmZlY3RzIGNvbXBhdCBnZW4gaGVhZGVyCnYxOiBmZWVkYmFjayAjMTUgSmFuOiBoYW5kbGUg dXBwZXItaGFsdmVzIG9mIGh5cGVyY2FsbCBhcmdzCnYxOiBhZGQgY29tbWVudCBleHBsYWluaW5n IHRoZSAnbWFnaWMnIGZpZWxkCnYxOiBzZWxmICsgSmFuIGZlZWRiYWNrOiBpbXBsZW1lbnQgc29m dCByZXNldAp2MTogZmVlZGJhY2sgIzEzIFJvZ2VyOiB1c2UgQVNTRVJUX1VOUkVBQ0hBQkxFCgog ZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUucGFuZG9jIHwgIDEzICsKIHhlbi9jb21tb24vTWFr ZWZpbGUgICAgICAgICAgICAgICB8ICAgMiArLQogeGVuL2NvbW1vbi9hcmdvLmMgICAgICAgICAg ICAgICAgIHwgNTcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB4ZW4v Y29tbW9uL2NvbXBhdC9hcmdvLmMgICAgICAgICAgfCAgMjMgKysKIHhlbi9jb21tb24vZG9tYWlu LmMgICAgICAgICAgICAgICB8ICAxMiArCiB4ZW4vaW5jbHVkZS9NYWtlZmlsZSAgICAgICAgICAg ICAgfCAgIDEgKwogeGVuL2luY2x1ZGUvcHVibGljL2FyZ28uaCAgICAgICAgIHwgIDY0ICsrKysr CiB4ZW4vaW5jbHVkZS94ZW4vYXJnby5oICAgICAgICAgICAgfCAgNDQgKysrCiB4ZW4vaW5jbHVk ZS94ZW4vc2NoZWQuaCAgICAgICAgICAgfCAgIDUgKwogeGVuL2luY2x1ZGUveGxhdC5sc3QgICAg ICAgICAgICAgIHwgICAyICsKIDEwIGZpbGVzIGNoYW5nZWQsIDczNiBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9jb21tb24vY29tcGF0L2FyZ28u YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL3B1YmxpYy9hcmdvLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS94ZW4vYXJnby5oCgpkaWZmIC0tZ2l0IGEvZG9jcy9taXNj L3hlbi1jb21tYW5kLWxpbmUucGFuZG9jIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUucGFu ZG9jCmluZGV4IGE3NTVhNjcuLjA4YzI4ZjkgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy94ZW4tY29t bWFuZC1saW5lLnBhbmRvYworKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5wYW5kb2MK QEAgLTE4Miw2ICsxODIsMTkgQEAgUGVybWl0IFhlbiB0byB1c2UgIkFsd2F5cyBSdW5uaW5nIEFQ SUMgVGltZXIiIHN1cHBvcnQgb24gY29tcGF0aWJsZSBoYXJkd2FyZQogaW4gY29tYmluYXRpb24g d2l0aCBjcHVpZGxlLiAgVGhpcyBvcHRpb24gaXMgb25seSBleHBlY3RlZCB0byBiZSB1c2VmdWwg Zm9yCiBkZXZlbG9wZXJzIHdpc2hpbmcgWGVuIHRvIGZhbGwgYmFjayB0byBvbGRlciB0aW1pbmcg bWV0aG9kcyBvbiBuZXdlciBoYXJkd2FyZS4KIAorIyMjIGFyZ28KKz4gYD0gPGJvb2xlYW4+YAor Cis+IERlZmF1bHQ6IGBmYWxzZWAKKworRW5hYmxlIHRoZSBBcmdvIGh5cGVydmlzb3ItbWVkaWF0 ZWQgaW50ZXJkb21haW4gY29tbXVuaWNhdGlvbiBtZWNoYW5pc20uCisKK09ubHkgYXZhaWxhYmxl IGlmIFhlbiBpcyBjb21waWxlZCB3aXRoIGBDT05GSUdfQVJHT2AgZW5hYmxlZC4KKworVGhpcyBh bGxvd3MgZG9tYWlucyBhY2Nlc3MgdG8gdGhlIEFyZ28gaHlwZXJjYWxsLCB3aGljaCBzdXBwb3J0 cyByZWdpc3RyYXRpb24KK29mIG1lbW9yeSByaW5ncyB3aXRoIHRoZSBoeXBlcnZpc29yIHRvIHJl Y2VpdmUgbWVzc2FnZXMsIHNlbmRpbmcgbWVzc2FnZXMgdG8KK290aGVyIGRvbWFpbnMgYnkgaHlw ZXJjYWxsIGFuZCBxdWVyeWluZyB0aGUgcmluZyBzdGF0dXMgb2Ygb3RoZXIgZG9tYWlucy4KKwog IyMjIGFzaWQgKHg4NikKID4gYD0gPGJvb2xlYW4+YAogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9u L01ha2VmaWxlIGIveGVuL2NvbW1vbi9NYWtlZmlsZQppbmRleCA4YzY1YzZmLi44OGI5YjJmIDEw MDY0NAotLS0gYS94ZW4vY29tbW9uL01ha2VmaWxlCisrKyBiL3hlbi9jb21tb24vTWFrZWZpbGUK QEAgLTcwLDcgKzcwLDcgQEAgb2JqLXkgKz0geG1hbGxvY190bHNmLm8KIG9iai1iaW4tJChDT05G SUdfWDg2KSArPSAkKGZvcmVhY2ggbixkZWNvbXByZXNzIGJ1bnppcDIgdW54eiB1bmx6bWEgdW5s em8gdW5sejQgZWFybHljcGlvLCQobikuaW5pdC5vKQogCiAKLW9iai0kKENPTkZJR19DT01QQVQp ICs9ICQoYWRkcHJlZml4IGNvbXBhdC8sZG9tYWluLm8ga2VybmVsLm8gbWVtb3J5Lm8gbXVsdGlj YWxsLm8geGxhdC5vKQorb2JqLSQoQ09ORklHX0NPTVBBVCkgKz0gJChhZGRwcmVmaXggY29tcGF0 LyxhcmdvLm8gZG9tYWluLm8ga2VybmVsLm8gbWVtb3J5Lm8gbXVsdGljYWxsLm8geGxhdC5vKQog CiB0bWVtLXkgOj0gdG1lbS5vIHRtZW1feGVuLm8gdG1lbV9jb250cm9sLm8KIHRtZW0tJChDT05G SUdfQ09NUEFUKSArPSBjb21wYXQvdG1lbV94ZW4ubwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9h cmdvLmMgYi94ZW4vY29tbW9uL2FyZ28uYwppbmRleCA2Zjc4MmY3Li4xOTU4ZmRjIDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL2FyZ28uYworKysgYi94ZW4vY29tbW9uL2FyZ28uYwpAQCAtMTYsOCAr MTYsMjIzIEBACiAgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMz MCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAgKi8KIAorI2luY2x1ZGUgPHhlbi9hcmdv Lmg+CisjaW5jbHVkZSA8eGVuL2RvbWFpbi5oPgorI2luY2x1ZGUgPHhlbi9kb21haW5fcGFnZS5o PgogI2luY2x1ZGUgPHhlbi9lcnJuby5oPgorI2luY2x1ZGUgPHhlbi9ldmVudC5oPgogI2luY2x1 ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KKyNpbmNsdWRlIDx4ZW4vbm9zcGVjLmg+CisjaW5jbHVk ZSA8eGVuL3NjaGVkLmg+CisjaW5jbHVkZSA8eGVuL3RpbWUuaD4KKworI2luY2x1ZGUgPHB1Ymxp Yy9hcmdvLmg+CisKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9hcmdvX2FkZHJfdCk7CitE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fYXJnb19yaW5nX3QpOworCisvKiBYZW4gY29tbWFu ZCBsaW5lIG9wdGlvbiB0byBlbmFibGUgYXJnbyAqLworc3RhdGljIGJvb2wgX19yZWFkX21vc3Rs eSBvcHRfYXJnb19lbmFibGVkOworYm9vbGVhbl9wYXJhbSgiYXJnbyIsIG9wdF9hcmdvX2VuYWJs ZWQpOworCit0eXBlZGVmIHN0cnVjdCBhcmdvX3JpbmdfaWQKK3sKKyAgICB4ZW5fYXJnb19wb3J0 X3QgYXBvcnQ7CisgICAgZG9taWRfdCBwYXJ0bmVyX2lkOworICAgIGRvbWlkX3QgZG9tYWluX2lk OworfSBhcmdvX3JpbmdfaWQ7CisKKy8qIERhdGEgYWJvdXQgYSBkb21haW4ncyBvd24gcmluZyB0 aGF0IGl0IGhhcyByZWdpc3RlcmVkICovCitzdHJ1Y3QgYXJnb19yaW5nX2luZm8KK3sKKyAgICAv KiBuZXh0IG5vZGUgaW4gdGhlIGhhc2gsIHByb3RlY3RlZCBieSByaW5nc19MMiAqLworICAgIHN0 cnVjdCBobGlzdF9ub2RlIG5vZGU7CisgICAgLyogdGhpcyByaW5nJ3MgaWQsIHByb3RlY3RlZCBi eSByaW5nc19MMiAqLworICAgIHN0cnVjdCBhcmdvX3JpbmdfaWQgaWQ7CisgICAgLyogTDMsIHRo ZSByaW5nX2luZm8gbG9jazogcHJvdGVjdHMgdGhlIG1lbWJlcnMgb2YgdGhpcyBzdHJ1Y3QgYmVs b3cgKi8KKyAgICBzcGlubG9ja190IEwzX2xvY2s7CisgICAgLyogbGVuZ3RoIG9mIHRoZSByaW5n LCBwcm90ZWN0ZWQgYnkgTDMgKi8KKyAgICB1bnNpZ25lZCBpbnQgbGVuOworICAgIC8qIG51bWJl ciBvZiBwYWdlcyB0cmFuc2xhdGVkIGludG8gbWZucywgcHJvdGVjdGVkIGJ5IEwzICovCisgICAg dW5zaWduZWQgaW50IG5tZm5zOworICAgIC8qIGNhY2hlZCB0eCBwb2ludGVyIGxvY2F0aW9uLCBw cm90ZWN0ZWQgYnkgTDMgKi8KKyAgICB1bnNpZ25lZCBpbnQgdHhfcHRyOworICAgIC8qIG1hcHBl ZCByaW5nIHBhZ2VzIHByb3RlY3RlZCBieSBMMyAqLworICAgIHZvaWQgKiptZm5fbWFwcGluZzsK KyAgICAvKiBsaXN0IG9mIG1mbnMgb2YgZ3Vlc3QgcmluZywgcHJvdGVjdGVkIGJ5IEwzICovCisg ICAgbWZuX3QgKm1mbnM7CisgICAgLyogbGlzdCBvZiBzdHJ1Y3QgcGVuZGluZ19lbnQgZm9yIHRo aXMgcmluZywgcHJvdGVjdGVkIGJ5IEwzICovCisgICAgc3RydWN0IGhsaXN0X2hlYWQgcGVuZGlu ZzsKKyAgICAvKiBudW1iZXIgb2YgcGVuZGluZyBlbnRyaWVzIHF1ZXVlZCBmb3IgdGhpcyByaW5n LCBwcm90ZWN0ZWQgYnkgTDMgKi8KKyAgICB1bnNpZ25lZCBpbnQgbnBlbmRpbmc7Cit9OworCisv KiBEYXRhIGFib3V0IGEgc2luZ2xlLXNlbmRlciByaW5nLCBoZWxkIGJ5IHRoZSBzZW5kZXIgKHBh cnRuZXIpIGRvbWFpbiAqLworc3RydWN0IGFyZ29fc2VuZF9pbmZvCit7CisgICAgLyogbmV4dCBu b2RlIGluIHRoZSBoYXNoLCBwcm90ZWN0ZWQgYnkgc2VuZF9MMiAqLworICAgIHN0cnVjdCBobGlz dF9ub2RlIG5vZGU7CisgICAgLyogdGhpcyByaW5nJ3MgaWQsIHByb3RlY3RlZCBieSBzZW5kX0wy ICovCisgICAgc3RydWN0IGFyZ29fcmluZ19pZCBpZDsKK307CisKKy8qIEEgc3BhY2UtYXZhaWxh YmxlIG5vdGlmaWNhdGlvbiB0aGF0IGlzIGF3YWl0aW5nIHN1ZmZpY2llbnQgc3BhY2UgKi8KK3N0 cnVjdCBwZW5kaW5nX2VudAoreworICAgIC8qIExpc3Qgbm9kZSB3aXRoaW4gYXJnb19yaW5nX2lu Zm8ncyBwZW5kaW5nIGxpc3QgKi8KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSBub2RlOworICAgIC8q CisgICAgICogTGlzdCBub2RlIHdpdGhpbiBhcmdvX2RvbWFpbidzIHdpbGRjYXJkX3BlbmRfbGlz dC4gT25seSB1c2VkIGlmIHRoZQorICAgICAqIHJpbmcgaXMgb25lIHdpdGggYSB3aWxkY2FyZCBw YXJ0bmVyIChpZS4gdGhhdCBhbnkgZG9tYWluIG1heSBzZW5kIHRvKQorICAgICAqIHRvIGVuYWJs ZSBjYW5jZWxsaW5nIHNpZ25hbHMgb24gd2lsZGNhcmQgcmluZ3Mgb24gZG9tYWluIGRlc3Ryb3ku CisgICAgICovCisgICAgc3RydWN0IGhsaXN0X25vZGUgd2lsZGNhcmRfbm9kZTsKKyAgICAvKgor ICAgICAqIFBvaW50ZXIgdG8gdGhlIHJpbmdfaW5mbyB0aGF0IHRoaXMgZW50IHBlcnRhaW5zIHRv LiBVc2VkIHRvIGVuc3VyZSB0aGF0CisgICAgICogcmluZ19pbmZvLT5ucGVuZGluZyBpcyBkZWNy ZW1lbnRlZCB3aGVuIGVudHMgZm9yIHdpbGRjYXJkIHJpbmdzIGFyZQorICAgICAqIGNhbmNlbGxl ZCBmb3IgZG9tYWluIGRlc3Ryb3kuCisgICAgICogQ2F1dGlvbjogTXVzdCBob2xkIHRoZSBjb3Jy ZWN0IGxvY2tzIGJlZm9yZSBhY2Nlc3NpbmcgcmluZ19pbmZvIHZpYSB0aGlzLgorICAgICAqLwor ICAgIHN0cnVjdCBhcmdvX3JpbmdfaW5mbyAqcmluZ19pbmZvOworICAgIC8qIG1pbmltdW0gcmlu ZyBzcGFjZSBhdmFpbGFibGUgdGhhdCB0aGlzIHNpZ25hbCBpcyB3YWl0aW5nIHVwb24gKi8KKyAg ICB1bnNpZ25lZCBpbnQgbGVuOworICAgIC8qIGRvbWFpbiB0byBiZSBub3RpZmllZCB3aGVuIHNw YWNlIGlzIGF2YWlsYWJsZSAqLworICAgIGRvbWlkX3QgZG9tYWluX2lkOworfTsKKworLyoKKyAq IFRoZSB2YWx1ZSBvZiB0aGUgYXJnbyBlbGVtZW50IGluIGEgc3RydWN0IGRvbWFpbiBpcworICog cHJvdGVjdGVkIGJ5IEwxX2dsb2JhbF9hcmdvX3J3bG9jaworICovCisjZGVmaW5lIEFSR09fSFRB QkxFX1NJWkUgMzIKK3N0cnVjdCBhcmdvX2RvbWFpbgoreworICAgIC8qIHJpbmdzX0wyICovCisg ICAgcndsb2NrX3QgcmluZ3NfTDJfcndsb2NrOworICAgIC8qCisgICAgICogSGFzaCB0YWJsZSBv ZiBhcmdvX3JpbmdfaW5mbyBhYm91dCByaW5ncyB0aGlzIGRvbWFpbiBoYXMgcmVnaXN0ZXJlZC4K KyAgICAgKiBQcm90ZWN0ZWQgYnkgcmluZ3NfTDIuCisgICAgICovCisgICAgc3RydWN0IGhsaXN0 X2hlYWQgcmluZ19oYXNoW0FSR09fSFRBQkxFX1NJWkVdOworICAgIC8qIENvdW50ZXIgb2Ygcmlu Z3MgcmVnaXN0ZXJlZCBieSB0aGlzIGRvbWFpbi4gUHJvdGVjdGVkIGJ5IHJpbmdzX0wyLiAqLwor ICAgIHVuc2lnbmVkIGludCByaW5nX2NvdW50OworCisgICAgLyogc2VuZF9MMiAqLworICAgIHNw aW5sb2NrX3Qgc2VuZF9MMl9sb2NrOworICAgIC8qCisgICAgICogSGFzaCB0YWJsZSBvZiBhcmdv X3NlbmRfaW5mbyBhYm91dCByaW5ncyBvdGhlciBkb21haW5zIGhhdmUgcmVnaXN0ZXJlZAorICAg ICAqIGZvciB0aGlzIGRvbWFpbiB0byBzZW5kIHRvLiBTaW5nbGUgcGFydG5lciwgbm9uLXdpbGRj YXJkIHJpbmdzLgorICAgICAqIFByb3RlY3RlZCBieSBzZW5kX0wyLgorICAgICAqLworICAgIHN0 cnVjdCBobGlzdF9oZWFkIHNlbmRfaGFzaFtBUkdPX0hUQUJMRV9TSVpFXTsKKworICAgIC8qIHdp bGRjYXJkX0wyICovCisgICAgc3BpbmxvY2tfdCB3aWxkY2FyZF9MMl9sb2NrOworICAgIC8qCisg ICAgICogTGlzdCBvZiBwZW5kaW5nIHNwYWNlLWF2YWlsYWJsZSBzaWduYWxzIGZvciB0aGlzIGRv bWFpbiBhYm91dCB3aWxkY2FyZAorICAgICAqIHJpbmdzIHJlZ2lzdGVyZWQgYnkgb3RoZXIgZG9t YWlucy4gUHJvdGVjdGVkIGJ5IHdpbGRjYXJkX0wyLgorICAgICAqLworICAgIHN0cnVjdCBobGlz dF9oZWFkIHdpbGRjYXJkX3BlbmRfbGlzdDsKK307CisKKy8qCisgKiBMb2NraW5nIGlzIG9yZ2Fu aXplZCBhcyBmb2xsb3dzOgorICoKKyAqIFRlcm1pbm9sb2d5OiBSKDxsb2NrPikgbWVhbnMgdGFr aW5nIGEgcmVhZCBsb2NrIG9uIHRoZSBzcGVjaWZpZWQgbG9jazsKKyAqICAgICAgICAgICAgICBX KDxsb2NrPikgbWVhbnMgdGFraW5nIGEgd3JpdGUgbG9jayBvbiBpdC4KKyAqCisgKiA9PSBMMSA6 IFRoZSBnbG9iYWwgcmVhZC93cml0ZSBsb2NrOiBMMV9nbG9iYWxfYXJnb19yd2xvY2sKKyAqIFBy b3RlY3RzIHRoZSBhcmdvIGVsZW1lbnRzIG9mIGFsbCBzdHJ1Y3QgZG9tYWluICpkIGluIHRoZSBz eXN0ZW0uCisgKiBJdCBkb2VzIG5vdCBwcm90ZWN0IGFueSBvZiB0aGUgZWxlbWVudHMgb2YgZC0+ YXJnbywgb25seSB0aGVpcgorICogYWRkcmVzc2VzLgorICoKKyAqIEJ5IGV4dGVuc2lvbiBzaW5j ZSB0aGUgZGVzdHJ1Y3Rpb24gb2YgYSBkb21haW4gd2l0aCBhIG5vbi1OVUxMCisgKiBkLT5hcmdv IHdpbGwgbmVlZCB0byBmcmVlIHRoZSBkLT5hcmdvIHBvaW50ZXIsIGhvbGRpbmcgVyhMMSkKKyAq IGd1YXJhbnRlZXMgdGhhdCBubyBkb21haW5zIHBvaW50ZXJzIHRoYXQgYXJnbyBpcyBpbnRlcmVz dGVkIGluCisgKiBiZWNvbWUgaW52YWxpZCB3aGlsc3QgdGhpcyBsb2NrIGlzIGhlbGQuCisgKi8K Kworc3RhdGljIERFRklORV9SV0xPQ0soTDFfZ2xvYmFsX2FyZ29fcndsb2NrKTsgLyogTDEgKi8K KworLyoKKyAqID09IHJpbmdzX0wyIDogVGhlIHBlci1kb21haW4gcmluZyBoYXNoIGxvY2s6IGQt PmFyZ28tPnJpbmdzX0wyX3J3bG9jaworICoKKyAqIEhvbGRpbmcgYSByZWFkIGxvY2sgb24gcmlu Z3NfTDIgcHJvdGVjdHMgdGhlIHJpbmcgaGFzaCB0YWJsZSBhbmQKKyAqIHRoZSBlbGVtZW50cyBp biB0aGUgaGFzaF90YWJsZSBkLT5hcmdvLT5yaW5nX2hhc2gsIGFuZAorICogdGhlIG5vZGUgYW5k IGlkIGZpZWxkcyBpbiBzdHJ1Y3QgYXJnb19yaW5nX2luZm8gaW4gdGhlCisgKiBoYXNoIHRhYmxl LgorICogSG9sZGluZyBhIHdyaXRlIGxvY2sgb24gcmluZ3NfTDIgcHJvdGVjdHMgYWxsIG9mIHRo ZSBlbGVtZW50cyBvZiBhbGwgdGhlCisgKiBzdHJ1Y3QgYXJnb19yaW5nX2luZm8gYmVsb25naW5n IHRvIHRoaXMgZG9tYWluLgorICoKKyAqIFRvIHRha2UgcmluZ3NfTDIgeW91IG11c3QgYWxyZWFk eSBoYXZlIFIoTDEpLiBXKEwxKSBpbXBsaWVzIFcocmluZ3NfTDIpIGFuZAorICogTDMuCisgKgor ICogPT0gTDMgOiBUaGUgaW5kaXZpZHVhbCByaW5nX2luZm8gbG9jazogcmluZ19pbmZvLT5MM19s b2NrCisgKgorICogUHJvdGVjdHMgYWxsIHRoZSBmaWVsZHMgd2l0aGluIHRoZSBhcmdvX3Jpbmdf aW5mbywgYXNpZGUgZnJvbSB0aGUgb25lcyB0aGF0CisgKiByaW5nc19MMiBhbHJlYWR5IHByb3Rl Y3RzOiBub2RlLCBpZCwgbG9jay4KKyAqCisgKiBUbyBhY3F1aXJlIEwzIHlvdSBtdXN0IGFscmVh ZHkgaGF2ZSBSKHJpbmdzX0wyKS4gVyhyaW5nc19MMikgaW1wbGllcyBMMy4KKyAqCisgKiA9PSBz ZW5kX0wyIDogVGhlIHBlci1kb21haW4gc2luZ2xlLXNlbmRlciBwYXJ0bmVyIHJpbmdzIGxvY2s6 CisgKiAgICAgICAgICAgICAgZC0+YXJnby0+c2VuZF9MMl9sb2NrCisgKgorICogUHJvdGVjdHMg dGhlIHBlci1kb21haW4gc2VuZCBoYXNoIHRhYmxlIDogZC0+YXJnby0+c2VuZF9oYXNoCisgKiBh bmQgdGhlIGVsZW1lbnRzIGluIHRoZSBoYXNoIHRhYmxlLCBhbmQgdGhlIG5vZGUgYW5kIGlkIGZp ZWxkcworICogaW4gc3RydWN0IGFyZ29fc2VuZF9pbmZvIGluIHRoZSBoYXNoIHRhYmxlLgorICoK KyAqIFRvIHRha2Ugc2VuZF9MMiwgeW91IG11c3QgYWxyZWFkeSBoYXZlIFIoTDEpLiBXKEwxKSBp bXBsaWVzIHNlbmRfTDIuCisgKiBEbyBub3QgYXR0ZW1wdCB0byBhY3F1aXJlIGEgcmluZ3NfTDIg b24gYW55IGRvbWFpbiBhZnRlciB0YWtpbmcgYW5kIHdoaWxlCisgKiBob2xkaW5nIGEgc2VuZF9M MiBsb2NrIC0tIGFjcXVpcmUgdGhlIHJpbmdzX0wyIChpZiBvbmUgaXMgbmVlZGVkKSBiZWZvcmVo YW5kLgorICoKKyAqID09IHdpbGRjYXJkX0wyIDogVGhlIHBlci1kb21haW4gd2lsZGNhcmQgcGVu ZGluZyBsaXN0IGxvY2s6CisgKiAgICAgICAgICAgICAgICAgIGQtPmFyZ28tPndpbGRjYXJkX0wy X2xvY2sKKyAqCisgKiBQcm90ZWN0cyB0aGUgcGVyLWRvbWFpbiBsaXN0IG9mIG91dHN0YW5kaW5n IHNpZ25hbHMgZm9yIHNwYWNlIGF2YWlsYWJpbGl0eQorICogb24gd2lsZGNhcmQgcmluZ3MuCisg KgorICogVG8gdGFrZSB3aWxkY2FyZF9MMiwgeW91IG11c3QgYWxyZWFkeSBoYXZlIFIoTDEpLiBX KEwxKSBpbXBsaWVzIHdpbGRjYXJkX0wyLgorICogTm8gb3RoZXIgbG9ja3MgYXJlIGFjcXVpcmVk IGFmdGVyIG9idGFpbmluZyB3aWxkY2FyZF9MMi4KKyAqLworCisvKgorICogTG9jayBzdGF0ZSB2 YWxpZGF0aW9ucyBtYWNyb3MKKyAqCisgKiBUaGVzZSBtYWNyb3MgZW5jb2RlIHRoZSBsb2dpYyB0 byB2ZXJpZnkgdGhhdCB0aGUgbG9ja2luZyBoYXMgYWRoZXJlZCB0byB0aGUKKyAqIGxvY2tpbmcg ZGlzY2lwbGluZSBhYm92ZS4KKyAqIGVnLiBPbiBlbnRyeSB0byBsb2dpYyB0aGF0IHJlcXVpcmVz IGhvbGRpbmcgYXQgbGVhc3QgUihyaW5nc19MMiksIHRoaXM6CisgKiAgICAgIEFTU0VSVChMT0NL SU5HX1JlYWRfcmluZ3NfTDIoZCkpOworICoKKyAqIGNoZWNrcyB0aGF0IHRoZSBsb2NrIHN0YXRl IGlzIHN1ZmZpY2llbnQsIHZhbGlkYXRpbmcgdGhhdCBvbmUgb2YgdGhlCisgKiBmb2xsb3dpbmcg bXVzdCBiZSB0cnVlIHdoZW4gZXhlY3V0ZWQ6ICAgICAgIFIocmluZ3NfTDIpICYmIFIoTDEpCisg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcjogIFcocmluZ3NfTDIp ICYmIFIoTDEpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcjog IFcoTDEpCisgKi8KKworLyogUkFXIG1hY3JvcyBoZXJlIGFyZSBvbmx5IHVzZWQgdG8gYXNzaXN0 IGRlZmluaW5nIHRoZSBvdGhlciBtYWNyb3MgYmVsb3cgKi8KKyNkZWZpbmUgUkFXX0xPQ0tJTkdf UmVhZF9MMSAocndfaXNfbG9ja2VkKCZMMV9nbG9iYWxfYXJnb19yd2xvY2spKQorI2RlZmluZSBS QVdfTE9DS0lOR19SZWFkX3JpbmdzX0wyKGQpIFwKKyAgICAocndfaXNfbG9ja2VkKCZkLT5hcmdv LT5yaW5nc19MMl9yd2xvY2spICYmIFJBV19MT0NLSU5HX1JlYWRfTDEpCisKKy8qIFRoZSBMT0NL SU5HIG1hY3JvcyBkZWZpbmVkIGJlbG93IGhlcmUgYXJlIGZvciB1c2UgYXQgdmVyaWZpY2F0aW9u IHBvaW50cyAqLworI2RlZmluZSBMT0NLSU5HX1dyaXRlX0wxIChyd19pc193cml0ZV9sb2NrZWQo JkwxX2dsb2JhbF9hcmdvX3J3bG9jaykpCisjZGVmaW5lIExPQ0tJTkdfUmVhZF9MMSAoUkFXX0xP Q0tJTkdfUmVhZF9MMSB8fCBMT0NLSU5HX1dyaXRlX0wxKQorCisjZGVmaW5lIExPQ0tJTkdfV3Jp dGVfcmluZ3NfTDIoZCkgXAorICAgICgoUkFXX0xPQ0tJTkdfUmVhZF9MMSAmJiByd19pc193cml0 ZV9sb2NrZWQoJmQtPmFyZ28tPnJpbmdzX0wyX3J3bG9jaykpIHx8IFwKKyAgICAgTE9DS0lOR19X cml0ZV9MMSkKKworI2RlZmluZSBMT0NLSU5HX1JlYWRfcmluZ3NfTDIoZCkgXAorICAgICgoUkFX X0xPQ0tJTkdfUmVhZF9MMSAmJiByd19pc19sb2NrZWQoJmQtPmFyZ28tPnJpbmdzX0wyX3J3bG9j aykpIHx8IFwKKyAgICAgTE9DS0lOR19Xcml0ZV9yaW5nc19MMihkKSB8fCBMT0NLSU5HX1dyaXRl X0wxKQorCisjZGVmaW5lIExPQ0tJTkdfTDMoZCwgcikgXAorICAgICgoUkFXX0xPQ0tJTkdfUmVh ZF9yaW5nc19MMihkKSAmJiBzcGluX2lzX2xvY2tlZCgmci0+TDNfbG9jaykpIHx8IFwKKyAgICAg TE9DS0lOR19Xcml0ZV9yaW5nc19MMihkKSB8fCBMT0NLSU5HX1dyaXRlX0wxKQorCisjZGVmaW5l IExPQ0tJTkdfc2VuZF9MMihkKSBcCisgICAgKChSQVdfTE9DS0lOR19SZWFkX0wxICYmIHNwaW5f aXNfbG9ja2VkKCZkLT5hcmdvLT5zZW5kX0wyX2xvY2spKSB8fCBcCisgICAgIExPQ0tJTkdfV3Jp dGVfTDEpCiAKIC8qIENoYW5nZSB0aGlzIHRvICNkZWZpbmUgQVJHT19ERUJVRyBoZXJlIHRvIGVu YWJsZSBtb3JlIGRlYnVnIG1lc3NhZ2VzICovCiAjdW5kZWYgQVJHT19ERUJVRwpAQCAtMjgsMTAg KzI0MywzNjUgQEAKICNkZWZpbmUgYXJnb19kcHJpbnRrKGZvcm1hdCwgLi4uICkgKCh2b2lkKTAp CiAjZW5kaWYKIAorLyogCisgKiBGSVhNRSBmb3IgNC4xMjoKKyAqICAqIFJlcGxhY2UgdGhpcyBo YXNoIGZ1bmN0aW9uIHRvIGdldCBiZXR0ZXIgZGlzdHJpYnV0aW9uIGFjcm9zcyBidWNrZXRzLgor ICogICogRG9uJ3QgdXNlIGNhc3RzIGluIHRoZSByZXBsYWNlbWVudCBmdW5jdGlvbi4KKyAqICAq IERyb3AgdGhlIHVzZSBvZiBhcnJheV9pbmRleF9ub3NwZWMuCisgKi8KKy8qCisgKiBUaGlzIGhh c2ggZnVuY3Rpb24gaXMgdXNlZCB0byBkaXN0cmlidXRlIHJpbmdzIHdpdGhpbiB0aGUgcGVyLWRv bWFpbgorICogaGFzaCB0YWJsZXMgKGQtPmFyZ28tPnJpbmdfaGFzaCBhbmQgZC0+YXJnb19zZW5k X2hhc2gpLiBUaGUgaGFzaCB0YWJsZQorICogd2lsbCBwcm92aWRlIGEgc3RydWN0IGlmIGEgbWF0 Y2ggaXMgZm91bmQgd2l0aCBhICdhcmdvX3JpbmdfaWQnIGtleToKKyAqIGllLiB0aGUga2V5IGlz IGEgKGRvbWFpbiBpZCwgYXJnbyBwb3J0LCBwYXJ0bmVyIGRvbWFpbiBpZCkgdHVwbGUuCisgKiBT aW5jZSBhcmdvIHBvcnQgbnVtYmVyIHZhcmllcyB0aGUgbW9zdCBpbiBleHBlY3RlZCB1c2UsIGFu ZCB0aGUgTGludXggZHJpdmVyCisgKiBhbGxvY2F0ZXMgYXQgYm90aCB0aGUgaGlnaCBhbmQgbG93 IGVuZHMsIGluY29ycG9yYXRlIGhpZ2ggYW5kIGxvdyBiaXRzIHRvCisgKiBoZWxwIHdpdGggZGlz dHJpYnV0aW9uLgorICogQXBwbHkgYXJyYXlfaW5kZXhfbm9zcGVjIGFzIGEgZGVmZW5zaXZlIG1l YXN1cmUgc2luY2UgdGhpcyBvcGVyYXRlcworICogb24gdXNlci1zdXBwbGllZCBpbnB1dCBhbmQg dGhlIGFycmF5IHNpemUgdGhhdCBpdCBpbmRleGVzIGludG8gaXMga25vd24uCisgKi8KK3N0YXRp YyB1bnNpZ25lZCBpbnQKK2hhc2hfaW5kZXgoY29uc3Qgc3RydWN0IGFyZ29fcmluZ19pZCAqaWQp Cit7CisgICAgdW5zaWduZWQgaW50IGhhc2g7CisKKyAgICBoYXNoID0gKHVpbnQxNl90KShpZC0+ YXBvcnQgPj4gMTYpOworICAgIGhhc2ggXj0gKHVpbnQxNl90KWlkLT5hcG9ydDsKKyAgICBoYXNo IF49IGlkLT5kb21haW5faWQ7CisgICAgaGFzaCBePSBpZC0+cGFydG5lcl9pZDsKKyAgICBoYXNo ICY9IChBUkdPX0hUQUJMRV9TSVpFIC0gMSk7CisKKyAgICByZXR1cm4gYXJyYXlfaW5kZXhfbm9z cGVjKGhhc2gsIEFSR09fSFRBQkxFX1NJWkUpOworfQorCitzdGF0aWMgc3RydWN0IGFyZ29fcmlu Z19pbmZvICoKK2ZpbmRfcmluZ19pbmZvKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0 cnVjdCBhcmdvX3JpbmdfaWQgKmlkKQoreworICAgIHVuc2lnbmVkIGludCByaW5nX2hhc2hfaW5k ZXg7CisgICAgc3RydWN0IGhsaXN0X25vZGUgKm5vZGU7CisgICAgc3RydWN0IGFyZ29fcmluZ19p bmZvICpyaW5nX2luZm87CisKKyAgICBBU1NFUlQoTE9DS0lOR19SZWFkX3JpbmdzX0wyKGQpKTsK KworICAgIHJpbmdfaGFzaF9pbmRleCA9IGhhc2hfaW5kZXgoaWQpOworCisgICAgYXJnb19kcHJp bnRrKCJkLT5hcmdvPSVwLCBkLT5hcmdvLT5yaW5nX2hhc2hbJXVdPSVwIGlkPSVwXG4iLAorICAg ICAgICAgICAgICAgICBkLT5hcmdvLCByaW5nX2hhc2hfaW5kZXgsCisgICAgICAgICAgICAgICAg IGQtPmFyZ28tPnJpbmdfaGFzaFtyaW5nX2hhc2hfaW5kZXhdLmZpcnN0LCBpZCk7CisgICAgYXJn b19kcHJpbnRrKCJpZC5hcG9ydD0leCBpZC5kb21haW49dm0ldSBpZC5wYXJ0bmVyX2lkPXZtJXVc biIsCisgICAgICAgICAgICAgICAgIGlkLT5hcG9ydCwgaWQtPmRvbWFpbl9pZCwgaWQtPnBhcnRu ZXJfaWQpOworCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocmluZ19pbmZvLCBub2RlLCAmZC0+ YXJnby0+cmluZ19oYXNoW3JpbmdfaGFzaF9pbmRleF0sCisgICAgICAgICAgICAgICAgICAgICAg ICAgbm9kZSkKKyAgICB7CisgICAgICAgIGNvbnN0IHN0cnVjdCBhcmdvX3JpbmdfaWQgKmNtcGlk ID0gJnJpbmdfaW5mby0+aWQ7CisKKyAgICAgICAgaWYgKCBjbXBpZC0+YXBvcnQgPT0gaWQtPmFw b3J0ICYmCisgICAgICAgICAgICAgY21waWQtPmRvbWFpbl9pZCA9PSBpZC0+ZG9tYWluX2lkICYm CisgICAgICAgICAgICAgY21waWQtPnBhcnRuZXJfaWQgPT0gaWQtPnBhcnRuZXJfaWQgKQorICAg ICAgICB7CisgICAgICAgICAgICBhcmdvX2RwcmludGsoInJpbmdfaW5mbz0lcFxuIiwgcmluZ19p bmZvKTsKKyAgICAgICAgICAgIHJldHVybiByaW5nX2luZm87CisgICAgICAgIH0KKyAgICB9Cisg ICAgYXJnb19kcHJpbnRrKCJubyByaW5nX2luZm8gZm91bmRcbiIpOworCisgICAgcmV0dXJuIE5V TEw7Cit9CisKK3N0YXRpYyB2b2lkCityaW5nX3VubWFwKGNvbnN0IHN0cnVjdCBkb21haW4gKmQs IHN0cnVjdCBhcmdvX3JpbmdfaW5mbyAqcmluZ19pbmZvKQoreworICAgIHVuc2lnbmVkIGludCBp OworCisgICAgQVNTRVJUKExPQ0tJTkdfTDMoZCwgcmluZ19pbmZvKSk7CisKKyAgICBpZiAoICFy aW5nX2luZm8tPm1mbl9tYXBwaW5nICkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yICggaSA9 IDA7IGkgPCByaW5nX2luZm8tPm5tZm5zOyBpKysgKQorICAgIHsKKyAgICAgICAgaWYgKCAhcmlu Z19pbmZvLT5tZm5fbWFwcGluZ1tpXSApCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg aWYgKCByaW5nX2luZm8tPm1mbnMgKQorICAgICAgICAgICAgYXJnb19kcHJpbnRrKFhFTkxPR19F UlIgImFyZ286IHVubWFwcGluZyBwYWdlICUiUFJJX21mbiIgZnJvbSAlcFxuIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICBtZm5feChyaW5nX2luZm8tPm1mbnNbaV0pLAorICAgICAgICAgICAg ICAgICAgICAgICAgIHJpbmdfaW5mby0+bWZuX21hcHBpbmdbaV0pOworICAgICAgICB1bm1hcF9k b21haW5fcGFnZV9nbG9iYWwocmluZ19pbmZvLT5tZm5fbWFwcGluZ1tpXSk7CisgICAgICAgIHJp bmdfaW5mby0+bWZuX21hcHBpbmdbaV0gPSBOVUxMOworICAgIH0KK30KKworc3RhdGljIHZvaWQK K3dpbGRjYXJkX3BlbmRpbmdfbGlzdF9yZW1vdmUoZG9taWRfdCBkb21haW5faWQsIHN0cnVjdCBw ZW5kaW5nX2VudCAqZW50KQoreworICAgIHN0cnVjdCBkb21haW4gKmQgPSBnZXRfZG9tYWluX2J5 X2lkKGRvbWFpbl9pZCk7CisKKyAgICBpZiAoICFkICkKKyAgICAgICAgcmV0dXJuOworCisgICAg QVNTRVJUKExPQ0tJTkdfUmVhZF9MMSk7CisKKyAgICBpZiAoIGQtPmFyZ28gKQorICAgIHsKKyAg ICAgICAgc3Bpbl9sb2NrKCZkLT5hcmdvLT53aWxkY2FyZF9MMl9sb2NrKTsKKyAgICAgICAgaGxp c3RfZGVsKCZlbnQtPndpbGRjYXJkX25vZGUpOworICAgICAgICBzcGluX3VubG9jaygmZC0+YXJn by0+d2lsZGNhcmRfTDJfbG9jayk7CisgICAgfQorICAgIHB1dF9kb21haW4oZCk7Cit9CisKK3N0 YXRpYyB2b2lkCitwZW5kaW5nX3JlbW92ZV9hbGwoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwgc3Ry dWN0IGFyZ29fcmluZ19pbmZvICpyaW5nX2luZm8pCit7CisgICAgc3RydWN0IGhsaXN0X25vZGUg Km5vZGUsICpuZXh0OworICAgIHN0cnVjdCBwZW5kaW5nX2VudCAqZW50OworCisgICAgQVNTRVJU KExPQ0tJTkdfTDMoZCwgcmluZ19pbmZvKSk7CisKKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeV9z YWZlKGVudCwgbm9kZSwgbmV4dCwgJnJpbmdfaW5mby0+cGVuZGluZywgbm9kZSkKKyAgICB7Cisg ICAgICAgIGlmICggcmluZ19pbmZvLT5pZC5wYXJ0bmVyX2lkID09IFhFTl9BUkdPX0RPTUlEX0FO WSApCisgICAgICAgICAgICB3aWxkY2FyZF9wZW5kaW5nX2xpc3RfcmVtb3ZlKGVudC0+ZG9tYWlu X2lkLCBlbnQpOworICAgICAgICBobGlzdF9kZWwoJmVudC0+bm9kZSk7CisgICAgICAgIHhmcmVl KGVudCk7CisgICAgfQorICAgIHJpbmdfaW5mby0+bnBlbmRpbmcgPSAwOworfQorCitzdGF0aWMg dm9pZAord2lsZGNhcmRfcmluZ3NfcGVuZGluZ19yZW1vdmUoc3RydWN0IGRvbWFpbiAqZCkKK3sK KyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZSwgKm5leHQ7CisgICAgc3RydWN0IHBlbmRpbmdf ZW50ICplbnQ7CisKKyAgICBBU1NFUlQoTE9DS0lOR19Xcml0ZV9MMSk7CisKKyAgICBobGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKGVudCwgbm9kZSwgbmV4dCwgJmQtPmFyZ28tPndpbGRjYXJkX3Bl bmRfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUpCisgICAgeworICAg ICAgICAvKgorICAgICAgICAgKiBUaGUgZW50LT5ub2RlIGRlbGV0ZWQgaGVyZSwgYW5kIHRoZSBu cGVuZGluZyB2YWx1ZSBkZWNyZWFzZWQsCisgICAgICAgICAqIGJlbG9uZyB0byB0aGUgcmluZ19p bmZvIG9mIGFub3RoZXIgZG9tYWluLCB3aGljaCBpcyB3aHkgdGhpcworICAgICAgICAgKiBmdW5j dGlvbiByZXF1aXJlcyBob2xkaW5nIFcoTDEpOgorICAgICAgICAgKiBpdCBpbXBsaWVzIHRoZSBM MyBsb2NrIHRoYXQgcHJvdGVjdHMgdGhhdCByaW5nX2luZm8gc3RydWN0LgorICAgICAgICAgKi8K KyAgICAgICAgZW50LT5yaW5nX2luZm8tPm5wZW5kaW5nLS07CisgICAgICAgIGhsaXN0X2RlbCgm ZW50LT5ub2RlKTsKKyAgICAgICAgaGxpc3RfZGVsKCZlbnQtPndpbGRjYXJkX25vZGUpOworICAg ICAgICB4ZnJlZShlbnQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3JpbmdfcmVtb3ZlX21m bnMoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGFyZ29fcmluZ19pbmZvICpyaW5nX2lu Zm8pCit7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBBU1NFUlQoTE9DS0lOR19Xcml0ZV9y aW5nc19MMihkKSk7CisKKyAgICBpZiAoICFyaW5nX2luZm8tPm1mbnMgKQorICAgICAgICByZXR1 cm47CisKKyAgICBpZiAoICFyaW5nX2luZm8tPm1mbl9tYXBwaW5nICkKKyAgICB7CisgICAgICAg IEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmlu Z191bm1hcChkLCByaW5nX2luZm8pOworCisgICAgZm9yICggaSA9IDA7IGkgPCByaW5nX2luZm8t Pm5tZm5zOyBpKysgKQorICAgICAgICBpZiAoICFtZm5fZXEocmluZ19pbmZvLT5tZm5zW2ldLCBJ TlZBTElEX01GTikgKQorICAgICAgICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUobWZuX3RvX3BhZ2Uo cmluZ19pbmZvLT5tZm5zW2ldKSk7CisKKyAgICByaW5nX2luZm8tPm5tZm5zID0gMDsKKyAgICBY RlJFRShyaW5nX2luZm8tPm1mbnMpOworICAgIFhGUkVFKHJpbmdfaW5mby0+bWZuX21hcHBpbmcp OworfQorCitzdGF0aWMgdm9pZAorcmluZ19yZW1vdmVfaW5mbyhjb25zdCBzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3QgYXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbykKK3sKKyAgICBBU1NFUlQoTE9D S0lOR19Xcml0ZV9yaW5nc19MMihkKSk7CisKKyAgICBwZW5kaW5nX3JlbW92ZV9hbGwoZCwgcmlu Z19pbmZvKTsKKyAgICBobGlzdF9kZWwoJnJpbmdfaW5mby0+bm9kZSk7CisgICAgcmluZ19yZW1v dmVfbWZucyhkLCByaW5nX2luZm8pOworICAgIHhmcmVlKHJpbmdfaW5mbyk7Cit9CisKK3N0YXRp YyB2b2lkCitkb21haW5fcmluZ3NfcmVtb3ZlX2FsbChzdHJ1Y3QgZG9tYWluICpkKQoreworICAg IHVuc2lnbmVkIGludCBpOworCisgICAgQVNTRVJUKExPQ0tJTkdfV3JpdGVfcmluZ3NfTDIoZCkp OworCisgICAgZm9yICggaSA9IDA7IGkgPCBBUkdPX0hUQUJMRV9TSVpFOyArK2kgKQorICAgIHsK KyAgICAgICAgc3RydWN0IGhsaXN0X25vZGUgKm5vZGUsICpuZXh0OworICAgICAgICBzdHJ1Y3Qg YXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbzsKKworICAgICAgICBobGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKHJpbmdfaW5mbywgbm9kZSwgbmV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmZC0+YXJnby0+cmluZ19oYXNoW2ldLCBub2RlKQorICAgICAgICAgICAgcmluZ19y ZW1vdmVfaW5mbyhkLCByaW5nX2luZm8pOworICAgIH0KKyAgICBkLT5hcmdvLT5yaW5nX2NvdW50 ID0gMDsKK30KKworLyoKKyAqIFRlYXIgZG93biBhbGwgcmluZ3Mgb2Ygb3RoZXIgZG9tYWlucyB3 aGVyZSBzcmNfZCBkb21haW4gaXMgdGhlIHBhcnRuZXIuCisgKiAoaWUuIGl0IGlzIHRoZSBzaW5n bGUgZG9tYWluIHRoYXQgY2FuIHNlbmQgdG8gdGhvc2UgcmluZ3MuKQorICogVGhpcyB3aWxsIGFs c28gY2FuY2VsIGFueSBwZW5kaW5nIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhvc2UgcmluZ3MuCisg Ki8KK3N0YXRpYyB2b2lkCitwYXJ0bmVyX3JpbmdzX3JlbW92ZShzdHJ1Y3QgZG9tYWluICpzcmNf ZCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIEFTU0VSVChMT0NLSU5HX1dyaXRlX0wx KTsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgQVJHT19IVEFCTEVfU0laRTsgKytpICkKKyAgICB7 CisgICAgICAgIHN0cnVjdCBobGlzdF9ub2RlICpub2RlLCAqbmV4dDsKKyAgICAgICAgc3RydWN0 IGFyZ29fc2VuZF9pbmZvICpzZW5kX2luZm87CisKKyAgICAgICAgaGxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShzZW5kX2luZm8sIG5vZGUsIG5leHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnNyY19kLT5hcmdvLT5zZW5kX2hhc2hbaV0sIG5vZGUpCisgICAgICAgIHsKKyAg ICAgICAgICAgIHN0cnVjdCBhcmdvX3JpbmdfaW5mbyAqcmluZ19pbmZvOworICAgICAgICAgICAg c3RydWN0IGRvbWFpbiAqZHN0X2Q7CisKKyAgICAgICAgICAgIGRzdF9kID0gZ2V0X2RvbWFpbl9i eV9pZChzZW5kX2luZm8tPmlkLmRvbWFpbl9pZCk7CisgICAgICAgICAgICBpZiAoIGRzdF9kICkK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByaW5nX2luZm8gPSBmaW5kX3JpbmdfaW5m byhkc3RfZCwgJnNlbmRfaW5mby0+aWQpOworICAgICAgICAgICAgICAgIGlmICggcmluZ19pbmZv ICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJpbmdfcmVtb3ZlX2lu Zm8oZHN0X2QsIHJpbmdfaW5mbyk7CisgICAgICAgICAgICAgICAgICAgIGRzdF9kLT5hcmdvLT5y aW5nX2NvdW50LS07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHV0X2Rv bWFpbihkc3RfZCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGhsaXN0X2RlbCgmc2Vu ZF9pbmZvLT5ub2RlKTsKKyAgICAgICAgICAgIHhmcmVlKHNlbmRfaW5mbyk7CisgICAgICAgIH0K KyAgICB9Cit9CisKIGxvbmcKIGRvX2FyZ29fb3AodW5zaWduZWQgaW50IGNtZCwgWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcxLAogICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BB UkFNKHZvaWQpIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywKICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBhcmc0KQogewotICAgIHJldHVybiAtRU5PU1lTOworICAgIGxvbmcgcmMgPSAtRUZBVUxU OworCisgICAgYXJnb19kcHJpbnRrKCItPmRvX2FyZ29fb3AoJXUsJXAsJXAsJWx1LDB4JWx4KVxu IiwgY21kLAorICAgICAgICAgICAgICAgICAodm9pZCAqKWFyZzEucCwgKHZvaWQgKilhcmcyLnAs IGFyZzMsIGFyZzQpOworCisgICAgaWYgKCB1bmxpa2VseSghb3B0X2FyZ29fZW5hYmxlZCkgKQor ICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CisKKyAgICBzd2l0Y2ggKGNtZCkKKyAgICB7Cisg ICAgZGVmYXVsdDoKKyAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKKyAgICAgICAgYnJlYWs7Cisg ICAgfQorCisgICAgYXJnb19kcHJpbnRrKCI8LWRvX2FyZ29fb3AoJXUpPSVsZFxuIiwgY21kLCBy Yyk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyB2b2lkCithcmdvX2RvbWFpbl9pbml0 KHN0cnVjdCBhcmdvX2RvbWFpbiAqYXJnbykKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAg IHJ3bG9ja19pbml0KCZhcmdvLT5yaW5nc19MMl9yd2xvY2spOworICAgIHNwaW5fbG9ja19pbml0 KCZhcmdvLT5zZW5kX0wyX2xvY2spOworICAgIHNwaW5fbG9ja19pbml0KCZhcmdvLT53aWxkY2Fy ZF9MMl9sb2NrKTsKKyAgICBhcmdvLT5yaW5nX2NvdW50ID0gMDsKKworICAgIGZvciAoIGkgPSAw OyBpIDwgQVJHT19IVEFCTEVfU0laRTsgKytpICkKKyAgICB7CisgICAgICAgIElOSVRfSExJU1Rf SEVBRCgmYXJnby0+cmluZ19oYXNoW2ldKTsKKyAgICAgICAgSU5JVF9ITElTVF9IRUFEKCZhcmdv LT5zZW5kX2hhc2hbaV0pOworICAgIH0KKyAgICBJTklUX0hMSVNUX0hFQUQoJmFyZ28tPndpbGRj YXJkX3BlbmRfbGlzdCk7Cit9CisKK2ludAorYXJnb19pbml0KHN0cnVjdCBkb21haW4gKmQpCit7 CisgICAgc3RydWN0IGFyZ29fZG9tYWluICphcmdvOworCisgICAgaWYgKCAhb3B0X2FyZ29fZW5h YmxlZCApCisgICAgeworICAgICAgICBhcmdvX2RwcmludGsoImFyZ28gZGlzYWJsZWQsIGRvbWlk OiAldVxuIiwgZC0+ZG9tYWluX2lkKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAg YXJnb19kcHJpbnRrKCJpbml0OiBkb21pZDogJXVcbiIsIGQtPmRvbWFpbl9pZCk7CisKKyAgICBh cmdvID0geHphbGxvYyhzdHJ1Y3QgYXJnb19kb21haW4pOworICAgIGlmICggIWFyZ28gKQorICAg ICAgICByZXR1cm4gLUVOT01FTTsKKworICAgIGFyZ29fZG9tYWluX2luaXQoYXJnbyk7CisKKyAg ICB3cml0ZV9sb2NrKCZMMV9nbG9iYWxfYXJnb19yd2xvY2spOworCisgICAgZC0+YXJnbyA9IGFy Z287CisKKyAgICB3cml0ZV91bmxvY2soJkwxX2dsb2JhbF9hcmdvX3J3bG9jayk7CisKKyAgICBy ZXR1cm4gMDsKK30KKwordm9pZAorYXJnb19kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCit7Cisg ICAgQlVHX09OKCFkLT5pc19keWluZyk7CisKKyAgICB3cml0ZV9sb2NrKCZMMV9nbG9iYWxfYXJn b19yd2xvY2spOworCisgICAgYXJnb19kcHJpbnRrKCJkZXN0cm95OiBkb21pZCAldSBkLT5hcmdv PSVwXG4iLCBkLT5kb21haW5faWQsIGQtPmFyZ28pOworCisgICAgaWYgKCBkLT5hcmdvICkKKyAg ICB7CisgICAgICAgIGRvbWFpbl9yaW5nc19yZW1vdmVfYWxsKGQpOworICAgICAgICBwYXJ0bmVy X3JpbmdzX3JlbW92ZShkKTsKKyAgICAgICAgd2lsZGNhcmRfcmluZ3NfcGVuZGluZ19yZW1vdmUo ZCk7CisgICAgICAgIFhGUkVFKGQtPmFyZ28pOworICAgIH0KKyAgICB3cml0ZV91bmxvY2soJkwx X2dsb2JhbF9hcmdvX3J3bG9jayk7Cit9CisKK3ZvaWQKK2FyZ29fc29mdF9yZXNldChzdHJ1Y3Qg ZG9tYWluICpkKQoreworICAgIHdyaXRlX2xvY2soJkwxX2dsb2JhbF9hcmdvX3J3bG9jayk7CisK KyAgICBhcmdvX2RwcmludGsoInNvZnQgcmVzZXQgZD0ldSBkLT5hcmdvPSVwXG4iLCBkLT5kb21h aW5faWQsIGQtPmFyZ28pOworCisgICAgaWYgKCBkLT5hcmdvICkKKyAgICB7CisgICAgICAgIGRv bWFpbl9yaW5nc19yZW1vdmVfYWxsKGQpOworICAgICAgICBwYXJ0bmVyX3JpbmdzX3JlbW92ZShk KTsKKyAgICAgICAgd2lsZGNhcmRfcmluZ3NfcGVuZGluZ19yZW1vdmUoZCk7CisKKyAgICAgICAg LyoKKyAgICAgICAgICogU2luY2Ugb3B0X2FyZ29fZW5hYmxlZCBjYW5ub3QgY2hhbmdlIGF0IHJ1 bnRpbWUsIGlmIGQtPmFyZ28gaXMgdHJ1ZQorICAgICAgICAgKiB0aGVuIG9wdF9hcmdvX2VuYWJs ZWQgbXVzdCBiZSB0cnVlLCBhbmQgd2UgY2FuIGFzc3VtZSB0aGF0IGluaXQKKyAgICAgICAgICog aXMgYWxsb3dlZCB0byBwcm9jZWVkIGFnYWluIGhlcmUuCisgICAgICAgICAqLworICAgICAgICBh cmdvX2RvbWFpbl9pbml0KGQtPmFyZ28pOworICAgIH0KKworICAgIHdyaXRlX3VubG9jaygmTDFf Z2xvYmFsX2FyZ29fcndsb2NrKTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vY29tcGF0L2Fy Z28uYyBiL3hlbi9jb21tb24vY29tcGF0L2FyZ28uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi44ZWRiOWU4Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL2NvbW1vbi9jb21wYXQv YXJnby5jCkBAIC0wLDAgKzEsMjMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEFyZ28g OiBIeXBlcnZpc29yLU1lZGlhdGVkIGRhdGEgZVhjaGFuZ2UKKyAqCisgKiBDb3B5cmlnaHQgKGMp IDIwMTgsIEJBRSBTeXN0ZW1zCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICog R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUg MzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8eGVuL2xp Yi5oPgorCisjaW5jbHVkZSA8cHVibGljL2FyZ28uaD4KKworI2luY2x1ZGUgPGNvbXBhdC9hcmdv Lmg+CisKK0NIRUNLX2FyZ29fYWRkcjsKK0NIRUNLX2FyZ29fcmluZzsKZGlmZiAtLWdpdCBhL3hl bi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2RvbWFpbi5jCmluZGV4IGM2MjNkYWUuLmJk MzQ0ZTUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMKKysrIGIveGVuL2NvbW1vbi9k b21haW4uYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHhlbi9ncmFudF90YWJsZS5oPgog I2luY2x1ZGUgPHhlbi94ZW5vcHJvZi5oPgogI2luY2x1ZGUgPHhlbi9pcnEuaD4KKyNpbmNsdWRl IDx4ZW4vYXJnby5oPgogI2luY2x1ZGUgPGFzbS9kZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGFzbS9w Mm0uaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CkBAIC0yNzcsNiArMjc4LDggQEAgc3Rh dGljIHZvaWQgX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCiAKICAgICB4ZnJlZShk LT5wYnVmKTsKIAorICAgIGFyZ29fZGVzdHJveShkKTsKKwogICAgIHJhbmdlc2V0X2RvbWFpbl9k ZXN0cm95KGQpOwogCiAgICAgZnJlZV9jcHVtYXNrX3ZhcihkLT5kaXJ0eV9jcHVtYXNrKTsKQEAg LTQ0NSw2ICs0NDgsOSBAQCBzdHJ1Y3QgZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlkX3QgZG9t aWQsCiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIGluaXRfc3RhdHVzIHw9IElOSVRf Z250dGFiOwogCisgICAgICAgIGlmICggKGVyciA9IGFyZ29faW5pdChkKSkgIT0gMCApCisgICAg ICAgICAgICBnb3RvIGZhaWw7CisKICAgICAgICAgZXJyID0gLUVOT01FTTsKIAogICAgICAgICBk LT5wYnVmID0geHphbGxvY19hcnJheShjaGFyLCBET01BSU5fUEJVRl9TSVpFKTsKQEAgLTY5NCw2 ICs3MDAsOSBAQCBpbnQgcmN1X2xvY2tfbGl2ZV9yZW1vdGVfZG9tYWluX2J5X2lkKGRvbWlkX3Qg ZG9tLCBzdHJ1Y3QgZG9tYWluICoqZCkKICAgICByZXR1cm4gMDsKIH0KIAorLyoKKyAqIEZJWE1F IGZvciA0LjEyOiBzaW5jZSBhcmdvX2Rlc3Ryb3kgaXMgaW4gX2RvbWFpbl9kZXN0cm95LCByZW1v dmUgaXQgYmVsb3cuCisgKi8KIGludCBkb21haW5fa2lsbChzdHJ1Y3QgZG9tYWluICpkKQogewog ICAgIGludCByYyA9IDA7CkBAIC03MTcsNiArNzI2LDcgQEAgaW50IGRvbWFpbl9raWxsKHN0cnVj dCBkb21haW4gKmQpCiAgICAgICAgIGlmICggZC0+aXNfZHlpbmcgIT0gRE9NRFlJTkdfYWxpdmUg KQogICAgICAgICAgICAgcmV0dXJuIGRvbWFpbl9raWxsKGQpOwogICAgICAgICBkLT5pc19keWlu ZyA9IERPTURZSU5HX2R5aW5nOworICAgICAgICBhcmdvX2Rlc3Ryb3koZCk7CiAgICAgICAgIGV2 dGNobl9kZXN0cm95KGQpOwogICAgICAgICBnbnR0YWJfcmVsZWFzZV9tYXBwaW5ncyhkKTsKICAg ICAgICAgdG1lbV9kZXN0cm95KGQtPnRtZW1fY2xpZW50KTsKQEAgLTExNzUsNiArMTE4NSw4IEBA IGludCBkb21haW5fc29mdF9yZXNldChzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgZ3JhbnRfdGFi bGVfd2Fybl9hY3RpdmVfZ3JhbnRzKGQpOwogCisgICAgYXJnb19zb2Z0X3Jlc2V0KGQpOworCiAg ICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAgIHsKICAgICAgICAgc2V0X3hlbl9ndWVzdF9o YW5kbGUocnVuc3RhdGVfZ3Vlc3QodiksIE5VTEwpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv TWFrZWZpbGUgYi94ZW4vaW5jbHVkZS9NYWtlZmlsZQppbmRleCBmNzg5NWU0Li4zZDE0NTMyIDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS9NYWtlZmlsZQorKysgYi94ZW4vaW5jbHVkZS9NYWtlZmls ZQpAQCAtNSw2ICs1LDcgQEAgaWZuZXEgKCQoQ09ORklHX0NPTVBBVCksKQogY29tcGF0LWFyY2gt JChDT05GSUdfWDg2KSA6PSB4ODZfMzIKIAogaGVhZGVycy15IDo9IFwKKyAgICBjb21wYXQvYXJn by5oIFwKICAgICBjb21wYXQvY2FsbGJhY2suaCBcCiAgICAgY29tcGF0L2VsZm5vdGUuaCBcCiAg ICAgY29tcGF0L2V2ZW50X2NoYW5uZWwuaCBcCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJs aWMvYXJnby5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyZ28uaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41MzBiYjgyCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUv cHVibGljL2FyZ28uaApAQCAtMCwwICsxLDY0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg KiBBcmdvIDogSHlwZXJ2aXNvci1NZWRpYXRlZCBkYXRhIGVYY2hhbmdlCisgKgorICogRGVyaXZl ZCBmcm9tIHY0diwgdGhlIHZlcnNpb24gMiBvZiB2MnYuCisgKgorICogQ29weXJpZ2h0IChjKSAy MDEwLCBDaXRyaXggU3lzdGVtcworICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTksIEJBRSBTeXN0 ZW1zCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBv ZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2Fy ZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJz dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4g VEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkdPX0hfXwor I2RlZmluZSBfX1hFTl9QVUJMSUNfQVJHT19IX18KKworI2luY2x1ZGUgInhlbi5oIgorCisjZGVm aW5lIFhFTl9BUkdPX0RPTUlEX0FOWSAgICAgICBET01JRF9JTlZBTElECisKKy8qIEZpeGVkLXdp ZHRoIHR5cGUgZm9yICJhcmdvIHBvcnQiIG51bWJlci4gTm90aGluZyB0byBkbyB3aXRoIGV2dGNo bnMuICovCit0eXBlZGVmIHVpbnQzMl90IHhlbl9hcmdvX3BvcnRfdDsKKwordHlwZWRlZiBzdHJ1 Y3QgeGVuX2FyZ29fYWRkcgoreworICAgIHhlbl9hcmdvX3BvcnRfdCBhcG9ydDsKKyAgICBkb21p ZF90IGRvbWFpbl9pZDsKKyAgICB1aW50MTZfdCBwYWQ7Cit9IHhlbl9hcmdvX2FkZHJfdDsKKwor dHlwZWRlZiBzdHJ1Y3QgeGVuX2FyZ29fcmluZworeworICAgIC8qIEd1ZXN0cyBzaG91bGQgdXNl IGF0b21pYyBvcGVyYXRpb25zIHRvIGFjY2VzcyByeF9wdHIgKi8KKyAgICB1aW50MzJfdCByeF9w dHI7CisgICAgLyogR3Vlc3RzIHNob3VsZCB1c2UgYXRvbWljIG9wZXJhdGlvbnMgdG8gYWNjZXNz IHR4X3B0ciAqLworICAgIHVpbnQzMl90IHR4X3B0cjsKKyAgICAvKgorICAgICAqIEhlYWRlciBz cGFjZSByZXNlcnZlZCBmb3IgbGF0ZXIgdXNlLiBBbGlnbiB0aGUgc3RhcnQgb2YgdGhlIHJpbmcg dG8gYQorICAgICAqIG11bHRpcGxlIG9mIHRoZSBtZXNzYWdlIHNsb3Qgc2l6ZS4KKyAgICAgKi8K KyAgICB1aW50OF90IHJlc2VydmVkWzU2XTsKKyNpZiBkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18p ICYmIF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTAorICAgIHVpbnQ4X3QgcmluZ1tdOworI2Vs aWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICB1aW50OF90IHJpbmdbMF07CisjZW5kaWYKK30geGVu X2FyZ29fcmluZ190OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9hcmdv LmggYi94ZW4vaW5jbHVkZS94ZW4vYXJnby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjJiYTdlNWMKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS94ZW4vYXJnby5o CkBAIC0wLDAgKzEsNDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEFyZ28gOiBIeXBl cnZpc29yLU1lZGlhdGVkIGRhdGEgZVhjaGFuZ2UKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgs IEJBRSBTeXN0ZW1zCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor ICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBC b3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaWZuZGVmIF9fWEVOX0FSR09fSF9f CisjZGVmaW5lIF9fWEVOX0FSR09fSF9fCisKKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KKworI2lm ZGVmIENPTkZJR19BUkdPCisKK2ludCBhcmdvX2luaXQoc3RydWN0IGRvbWFpbiAqZCk7Cit2b2lk IGFyZ29fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKTsKK3ZvaWQgYXJnb19zb2Z0X3Jlc2V0KHN0 cnVjdCBkb21haW4gKmQpOworCisjZWxzZSAvKiAhQ09ORklHX0FSR08gKi8KKworc3RhdGljIGlu bGluZSBpbnQgYXJnb19pbml0KHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgcmV0dXJuIDA7Cit9 CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcmdvX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKK3sK K30KKworc3RhdGljIGlubGluZSB2b2lkIGFyZ29fc29mdF9yZXNldChzdHJ1Y3QgZG9tYWluICpk KQoreworfQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4v c2NoZWQuaCBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCmluZGV4IDQ5NTZhNzcuLjZlNjlhZmEg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCisrKyBiL3hlbi9pbmNsdWRlL3hl bi9zY2hlZC5oCkBAIC00OTAsNiArNDkwLDExIEBAIHN0cnVjdCBkb21haW4KICAgICAgICAgdW5z aWduZWQgaW50IGd1ZXN0X3JlcXVlc3RfZW5hYmxlZCAgICAgICA6IDE7CiAgICAgICAgIHVuc2ln bmVkIGludCBndWVzdF9yZXF1ZXN0X3N5bmMgICAgICAgICAgOiAxOwogICAgIH0gbW9uaXRvcjsK KworI2lmZGVmIENPTkZJR19BUkdPCisgICAgLyogQXJnbyBpbnRlcmRvbWFpbiBjb21tdW5pY2F0 aW9uIHN1cHBvcnQgKi8KKyAgICBzdHJ1Y3QgYXJnb19kb21haW4gKmFyZ287CisjZW5kaWYKIH07 CiAKIC8qIFByb3RlY3QgdXBkYXRlcy9yZWFkcyAocmVzcC4pIG9mIGRvbWFpbl9saXN0IGFuZCBk b21haW5faGFzaC4gKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hsYXQubHN0IGIveGVuL2lu Y2x1ZGUveGxhdC5sc3QKaW5kZXggNTI3MzMyMC4uOWY2MTZlNCAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUveGxhdC5sc3QKKysrIGIveGVuL2luY2x1ZGUveGxhdC5sc3QKQEAgLTE0OCwzICsxNDgs NSBAQAogPwlmbGFza19zZXRlbmZvcmNlCQl4c20vZmxhc2tfb3AuaAogIQlmbGFza19zaWRfY29u dGV4dAkJeHNtL2ZsYXNrX29wLmgKID8JZmxhc2tfdHJhbnNpdGlvbgkJeHNtL2ZsYXNrX29wLmgK Kz8JYXJnb19hZGRyCQkJYXJnby5oCis/CWFyZ29fcmluZwkJCWFyZ28uaAotLSAKMi43LjQKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs