From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH] drmif: add ABI for para-virtual DRM/KMS Date: Thu, 24 Nov 2016 13:30:46 +0200 Message-ID: <1479987046-7226-2-git-send-email-andr2000@gmail.com> References: <1479987046-7226-1-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1479987046-7226-1-git-send-email-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xensource.com Cc: embedded-pv-devel@lists.xenproject.org, lars.kurth@citrix.com, vlad.babchuk@gmail.com, ian.jackson@eu.citrix.com, dario.faggioli@citrix.com, tim@xen.org, iurii.konovalenko@globallogic.com, andrii.anisov@gmail.com, olekstysh@gmail.com, andr2000@gmail.com, al1img@gmail.com, david.vrabel@citrix.com, JBeulich@suse.com, oleksandr.dmytryshyn@globallogic.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org VGhpcyBpcyB0aGUgQUJJIGZvciB0aGUgdHdvIGhhbHZlcyBvZiBhIHBhcmEtdmlydHVhbGl6ZWQK RFJNL0tNUyBkcml2ZXIuCgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8 YW5kcjIwMDBAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgR3J5dHNvdiA8YWwx aW1nQGdtYWlsLmNvbT4KLS0tCiBpbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vZHJtaWYuaCAgICAg ICB8IDUwNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUveGVuL2lu dGVyZmFjZS9pby9kcm1pZl9saW51eC5oIHwgMTQyICsrKysrKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCA2NDcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2ludGVy ZmFjZS9pby9kcm1pZi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vaW50ZXJmYWNl L2lvL2RybWlmX2xpbnV4LmgKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8v ZHJtaWYuaCBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9kcm1pZi5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyZjQ5ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRl L3hlbi9pbnRlcmZhY2UvaW8vZHJtaWYuaApAQCAtMCwwICsxLDUwNSBAQAorLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICogZHJtaWYuaAorICoKKyAqIFVuaWZpZWQgRFJNLWRldmljZSBJL08gaW50 ZXJmYWNlIGZvciBYZW4gZ3Vlc3QgT1Nlcy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cisg KiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh bmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGlu CisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4K KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVO VCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9S IE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChD KSAyMDE2IEVQQU0gU3lzdGVtcyBJbmMuCisgKgorICogQXV0aG9yczogT2xla3NhbmRyIEFuZHJ1 c2hjaGVua28gPGFuZHIyMDAwQGdtYWlsLmNvbT4KKyAqICAgICAgICAgIE9sZWtzYW5kciBHcnl0 c292IDxhbDFpbWdAZ21haWwuY29tPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0lPX1hF TkRSTV9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0lPX1hFTkRSTV9IX18KKworLyoKKyAqIEZy b250LT5iYWNrIG5vdGlmaWNhdGlvbnM6IFdoZW4gZW5xdWV1aW5nIGEgbmV3IHJlcXVlc3QsIHNl bmRpbmcgYQorICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHJlcV9l dmVudCAoaS5lLiwgdGhlIGdlbmVyaWMKKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBi eSB0aGUgcmluZyBtYWNyb3MpLiBCYWNrZW5kcyBtdXN0IHNldAorICogcmVxX2V2ZW50IGFwcHJv cHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFUVVFU1RTKCkpLgor ICoKKyAqIEJhY2stPmZyb250IG5vdGlmaWNhdGlvbnM6IFdoZW4gZW5xdWV1aW5nIGEgbmV3IHJl c3BvbnNlLCBzZW5kaW5nIGEKKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25kaXRpb25h bCBvbiByc3BfZXZlbnQgKGkuZS4sIHRoZSBnZW5lcmljCisgKiBob2xkLW9mZiBtZWNoYW5pc20g cHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gRnJvbnRlbmRzIG11c3Qgc2V0CisgKiByc3Bf ZXZlbnQgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5BTF9DSEVDS19GT1JfUkVT UE9OU0VTKCkpLgorICovCisKKy8qCisgKiBGZWF0dXJlIGFuZCBQYXJhbWV0ZXIgTmVnb3RpYXRp b24KKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogVGhlIHR3byBoYWx2 ZXMgb2YgYSBwYXJhLXZpcnR1YWwgRFJNIGRyaXZlciB1dGlsaXplIG5vZGVzIHdpdGhpbiB0aGUK KyAqIFhlblN0b3JlIHRvIGNvbW11bmljYXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVnb3RpYXRl IG9wZXJhdGluZyBwYXJhbWV0ZXJzLgorICogVGhpcyBzZWN0aW9uIGVudW1lcmF0ZXMgdGhlc2Ug bm9kZXMgd2hpY2ggcmVzaWRlIGluIHRoZSByZXNwZWN0aXZlIGZyb250IGFuZAorICogYmFja2Vu ZCBwb3J0aW9ucyBvZiB0aGUgWGVuU3RvcmUsIGZvbGxvd2luZyB0aGUgWGVuQnVzIGNvbnZlbnRp b24uCisgKgorICogQWxsIGRhdGEgaW4gdGhlIFhlblN0b3JlIGlzIHN0b3JlZCBhcyBzdHJpbmdz LiAgTm9kZXMgc3BlY2lmeWluZyBudW1lcmljCisgKiB2YWx1ZXMgYXJlIGVuY29kZWQgaW4gZGVj aW1hbC4gIEludGVnZXIgdmFsdWUgcmFuZ2VzIGxpc3RlZCBiZWxvdyBhcmUKKyAqIGV4cHJlc3Nl ZCBhcyBmaXhlZCBzaXplZCBpbnRlZ2VyIHR5cGVzIGNhcGFibGUgb2Ygc3RvcmluZyB0aGUgY29u dmVyc2lvbgorICogb2YgYSBwcm9wZXJseSBmb3JtYXRlZCBub2RlIHN0cmluZywgd2l0aG91dCBs b3NzIG9mIGluZm9ybWF0aW9uLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQmFja2VuZCBYZW5CdXMgTm9kZXMKKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkcmVzc2lu ZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBJbmRpY2VzIHVzZWQg dG8gYWRkcmVzcyBmcm9udGVuZHMsIGRyaXZlciBpbnN0YW5jZXMsIGNhcmRzLAorICogZGV2aWNl cyBhbmQgc3RyZWFtcy4KKyAqCisgKiBmcm9udGVuZF9pZAorICogICAgICBWYWx1ZXM6ICAgICAg ICAgPHVpbnQ+CisgKgorICogICAgICBEb21haW4gSUQgb2YgdGhlIHNvdW5kIGZyb250ZW5kLgor ICoKKyAqIGRydl9pZHgKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAg ICAgWmVybyBiYXNlZCBjb250aWd1b3VzIGluZGV4IG9mIHRoZSB2aXJ0dWFsaXplZCBEUk0gZHJp dmVyIGluc3RhbmNlIGluCisgKiAgICAgIHRoaXMgZG9tYWluLiBNdWx0aXBsZSBQViBkcml2ZXJz IGFyZSBhbGxvd2VkIGluIHRoZSBkb21haW4KKyAqICAgICAgYXQgdGhlIHNhbWUgdGltZS4KKyAq CisgKiBjb25uX2lkCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAg IFplcm8gYmFzZWQgY29udGlndW91cyBpbmRleCBvZiB0aGUgY29ubmVjdG9yIHdpdGhpbiB0aGUg Y2FyZC4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvbm5lY3RvciBzZXR0 aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVzb2x1dGlvbgorICogICAg ICBWYWx1ZXM6ICAgICAgICAgPFt3aWR0aF14W2hlaWdodF0+CisgKgorICogICAgICBXaWR0aCBh bmQgaGVpZ2h0IGZvciB0aGUgY29ubmVjdG9yIGluIHBpeGVscyBzZXBhcmF0ZWQgYnkKKyAqICAg ICAgWEVORFJNX1JFU09MVVRJT05fU0VQQVJBVE9SLiBGb3IgZXhhbXBsZSwKKyAqICAgICAgdmRy bS8wL2Nvbm5lY3Rvci8wL3Jlc29sdXRpb24gPSAiODAweDYwMCIKKyAqCisgKgorICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZCBYZW5C dXMgTm9kZXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gUmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoKKyAqIFRoZXNlIGFyZSBwZXIgc3RyZWFtLgorICoKKyAqIGN0cmwtY2hhbm5lbAorICog ICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBUaGUgaWRlbnRpZmllciBv ZiB0aGUgWGVuIGNvbm5lY3RvcidzIGNvbnRyb2wgZXZlbnQgY2hhbm5lbAorICogICAgICB1c2Vk IHRvIHNpZ25hbCBhY3Rpdml0eSBpbiB0aGUgcmluZyBidWZmZXIuCisgKgorICogY3RybC1yaW5n LXJlZgorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBUaGUgWGVu IGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBt YXAKKyAqICAgICAgYSBzb2xlIHBhZ2UgaW4gYSBzaW5nbGUgcGFnZSBzaXplZCBjb25uZWN0b3In cyBjb250cm9sIHJpbmcgYnVmZmVyLgorICoKKyAqIGV2ZW50LWNoYW5uZWwKKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhl biBjb25uZWN0b3IncyBldmVudCBjaGFubmVsCisgKiAgICAgIHVzZWQgdG8gc2lnbmFsIGFjdGl2 aXR5IGluIHRoZSByaW5nIGJ1ZmZlci4KKyAqCisgKiBldmVudC1yaW5nLXJlZgorICogICAgICBW YWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVyZW5j ZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAKKyAqICAgICAgYSBz b2xlIHBhZ2UgaW4gYSBzaW5nbGUgcGFnZSBzaXplZCBjb25uZWN0b3IncyBldmVudCByaW5nIGJ1 ZmZlci4KKyAqLworCisvKgorICogU1RBVEUgRElBR1JBTVMKKyAqCisgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydHVwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgor ICogVG9vbCBzdGFjayBjcmVhdGVzIGZyb250IGFuZCBiYWNrIHN0YXRlIG5vZGVzIHdpdGggaW5p dGlhbCBzdGF0ZQorICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcuCisgKiBUb29sIHN0YWNrIGNy ZWF0ZXMgYW5kIHNldHMgdXAgZnJvbnRlbmQgc291bmQgY29uZmlndXJhdGlvbiBub2RlcyBwZXIg ZG9tYWluLgorICoKKyAqIEZyb250ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNr CisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gICAgPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgICAgICAg ICAgICAgIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nCisgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG8gUXVlcnkgYmFja2VuZCBkZXZpY2UgaWRlbnRpZmljYXRpb24KKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLgorICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIE9wZW4gYW5kIHZhbGlkYXRlIGJhY2tl bmQgZGV2aWNlLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFhlbmJ1c1N0YXRlSW5pdFdhaXQKKyAqCisgKiBvIFF1ZXJ5IGZyb250ZW5kIGNvbmZpZ3VyYXRp b24KKyAqIG8gQWxsb2NhdGUgYW5kIGluaXRpYWxpemUKKyAqICAgZXZlbnQgY2hhbm5lbHMgYW5k IGJ1ZmZlcnMKKyAqIG8gUHVibGlzaCB0cmFuc3BvcnQgcGFyYW1ldGVycworICogICB0aGF0IHdp bGwgYmUgaW4gZWZmZWN0IGR1cmluZworICogICB0aGlzIGNvbm5lY3Rpb24uCisgKiAgICAgICAg ICAgICAgfAorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICBWCisgKiBYZW5idXNT dGF0ZUluaXRpYWxpc2VkCisgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvIFF1ZXJ5IGZyb250ZW5kIHRyYW5zcG9ydCBwYXJhbWV0ZXJzLgorICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIENvbm5lY3QgdG8gdGhlIGV2ZW50IGNoYW5u ZWxzLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1 c1N0YXRlQ29ubmVjdGVkCisgKgorICogIG8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIE9TCisgKiAg dmlydHVhbCBEUk0gYXMgcGVyIGNvbmZpZ3VyYXRpb24uCisgKiAgICAgICAgICAgICAgfAorICog ICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICBWCisgKiBYZW5idXNTdGF0ZUNvbm5lY3Rl ZAorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0 ZVVua25vd24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNT dGF0ZUNsb3NlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1 c1N0YXRlQ2xvc2luZworICogbyBSZW1vdmUgdmlydHVhbCBzb3VuZCBkZXZpY2UKKyAqIG8gUmVt b3ZlIGV2ZW50IGNoYW5uZWxzCisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIHwK KyAqICAgICAgICAgICAgICBWCisgKiBYZW5idXNTdGF0ZUNsb3NlZAorICoKKyAqLworCisvKgor ICogUkVRVUVTVCBDT0RFUy4KKyAqLworI2RlZmluZSBYRU5EUk1fT1BfRFVNQl9DUkVBVEUgICAg ICAgICAgIDAKKyNkZWZpbmUgWEVORFJNX09QX0RVTUJfREVTVFJPWSAgICAgICAgICAxCisjZGVm aW5lIFhFTkRSTV9PUF9GQl9DUkVBVEUgICAgICAgICAgICAgMgorI2RlZmluZSBYRU5EUk1fT1Bf RkJfREVTVFJPWSAgICAgICAgICAgIDMKKyNkZWZpbmUgWEVORFJNX09QX1NFVF9DT05GSUcgICAg ICAgICAgICA0CisjZGVmaW5lIFhFTkRSTV9PUF9QR19GTElQICAgICAgICAgICAgICAgNQorCisv KgorICogRVZFTlQgQ09ERVMuCisgKi8KKyNkZWZpbmUgWEVORFJNX0VWVF9QR19GTElQICAgICAg ICAgICAgICAwCisKKy8qCisgKiBYRU5TVE9SRSBGSUVMRCBBTkQgUEFUSCBOQU1FIFNUUklOR1Ms IEhFTFBFUlMuCisgKi8KKyNkZWZpbmUgWEVORFJNX0RSSVZFUl9OQU1FICAgICAgICAgICAgICAg ICAgICJ2ZHJtIgorCisjZGVmaW5lIFhFTkRSTV9SRVNPTFVUSU9OX1NFUEFSQVRPUiAgICAgICAg ICAieCIKKy8qIEZpZWxkIG5hbWVzICovCisjZGVmaW5lIFhFTkRSTV9GSUVMRF9DVFJMX1JJTkdf UkVGICAgICAgICAgICAiY3RybC1yaW5nLXJlZiIKKyNkZWZpbmUgWEVORFJNX0ZJRUxEX0NUUkxf Q0hBTk5FTCAgICAgICAgICAgICJjdHJsLWNoYW5uZWwiCisjZGVmaW5lIFhFTkRSTV9GSUVMRF9F VlRfUklOR19SRUYgICAgICAgICAgICAiZXZlbnQtcmluZy1yZWYiCisjZGVmaW5lIFhFTkRSTV9G SUVMRF9FVlRfQ0hBTk5FTCAgICAgICAgICAgICAiZXZlbnQtY2hhbm5lbCIKKyNkZWZpbmUgWEVO RFJNX0ZJRUxEX1JFU09MVVRJT04gICAgICAgICAgICAgICJyZXNvbHV0aW9uIgorCisvKgorICog U1RBVFVTIFJFVFVSTiBDT0RFUy4KKyAqLworIC8qIE9wZXJhdGlvbiBmYWlsZWQgZm9yIHNvbWUg dW5zcGVjaWZpZWQgcmVhc29uIChlLiBnLiAtRUlPKS4gKi8KKyNkZWZpbmUgWEVORFJNX1JTUF9F UlJPUiAgICAgICAgICAgICAgICAgKC0xKQorIC8qIE9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vz c2Z1bGx5LiAqLworI2RlZmluZSBYRU5EUk1fUlNQX09LQVkgICAgICAgICAgICAgICAgICAwCisK Ky8qIFBhdGggZW50cmllcyAqLworI2RlZmluZSBYRU5EUk1fUEFUSF9DT05ORUNUT1IgICAgICAg ICAgICAgICAgImNvbm5lY3RvciIKKworLyoKKyAqIERlc2NyaXB0aW9uIG9mIHRoZSBwcm90b2Nv bCBiZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGRyaXZlci4KKyAqCisgKiBUaGUgdHdvIGhh bHZlcyBvZiBhIFBhcmEtdmlydHVhbCBzb3VuZCBkcml2ZXIgY29tbXVuaWNhdGVzIHdpdGgKKyAq IGVhY2ggb3RoZXIgdXNpbmcgYSBzaGFyZWQgcGFnZSBhbmQgYW4gZXZlbnQgY2hhbm5lbC4KKyAq IFNoYXJlZCBwYWdlIGNvbnRhaW5zIGEgcmluZyB3aXRoIHJlcXVlc3QvcmVzcG9uc2UgcGFja2V0 cy4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZyb250ZW5kIHRvIGJhY2tlbmQgcmVxdWVzdHMKKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor ICoKKyAqIEFsbCByZXF1ZXN0IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IG9jdGV0 cykKKyAqCisgKgorICogUmVxdWVzdCBkdW1iIGNyZWF0aW9uIC0gcmVxdWVzdCBjcmVhdGlvbiBv ZiBhIERSTSBkdW1iIGJ1ZmZlci4KKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAg ICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9w ZXJhdGlvbiAgICB8ICAgICByZXNlcnZlZCAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgIGR1bWJfY29va2llIGxvdyAzMi1iaXQgICAgICAgICAg ICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg ICAgICAgICAgIGR1bWJfY29va2llIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAgICAgICAgICB8 CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgd2lkdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJwcCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgIGdyZWZfZGlyZWN0b3J5X3N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQgLSB1aW50MTZfdCwgcHJp dmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGluIHJlc3BvbnNlCisgKiBvcGVyYXRpb24gLSB1aW50 OF90LCBYRU5EUk1fT1BfRFVNQl9DUkVBVEUKKyAqIGR1bWJfY29va2llIC0gdWludDY0X3QsIHVu aXF1ZSB0byBndWVzdCBkb21haW4gdmFsdWUgdXNlZCBieSB0aGUgYmFja2VuZAorICogICB0byBt YXAgcmVtb3RlIGR1bWIgdG8gbG9jYWwgaW4gcmVxdWVzdHMKKyAqIHdpZHRoIC0gdWludDMyX3Qs IHdpZHRoIGluIHBpeGVscworICogaGVpZ2h0IC0gdWludDMyX3QsIGhlaWdodCBpbiBwaXhlbHMK KyAqIGJwcCAtIHVpbnQzMl90LCBiaXRzIHBlciBwaXhlbAorICogZ3JlZl9kaXJlY3Rvcnlfc3Rh cnQgLSBncmFudF9yZWZfdCwgYSByZWZlcmVuY2UgdG8gdGhlIGZpcnN0IHNoYXJlZCBwYWdlCisg KiAgIGRlc2NyaWJpbmcgc2hhcmVkIGJ1ZmZlciByZWZlcmVuY2VzLiBBdCBsZWFzdCBvbmUgcGFn ZSBleGlzdHMuIElmIHNoYXJlZAorICogICBidWZmZXIgc2l6ZSBleGNlZWRzIHdoYXQgY2FuIGJl IGFkZHJlc3NlZCBieSB0aGlzIHNpbmdsZSBwYWdlLCB0aGVuCisgKiAgIHJlZmVyZW5jZSB0byB0 aGUgbmV4dCBwYWdlIG11c3QgYmUgc3VwcGxpZWQgKGdyZWZfZGlyX25leHRfcGFnZSBiZWxvdwor ICogICBpcyBub3QgTlVMTCkKKyAqCisgKiBTaGFyZWQgcGFnZSBmb3IgWEVORFJNX09QX0RVTUJf Q1JFQVRFIGJ1ZmZlciBkZXNjcmlwdG9yIChncmVmX2RpcmVjdG9yeSBpbgorICogICB0aGUgcmVx dWVzdCkgZW1wbG95cyBhIGxpc3Qgb2YgcGFnZXMsIGRlc2NyaWJpbmcgYWxsIHBhZ2VzIG9mIHRo ZSBzaGFyZWQKKyAqICAgZGF0YSBidWZmZXI6CisgKiAgICAgICAgICAwICAgICAgICAgICAgICAg ICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICog Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJf bmV4dF9wYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t KworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtX2dyZWZzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZlswXSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ3JlZlsxXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwor ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZltOIC0xXSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGdyZWZfZGly X25leHRfcGFnZSAtIGdyYW50X3JlZl90LCByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFnZSBkZXNj cmliaW5nCisgKiAgIHBhZ2UgZGlyZWN0b3J5CisgKiBudW1fZ3JlZnMgLSBudW1iZXIgb2YgZ3Jl ZnMgaW4gdGhpcyBwYWdlCisgKiBncmVmW2ldIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byBh IHNoYXJlZCBwYWdlIG9mIHRoZSBkdW1iIGJ1ZmZlcgorICogICBhbGxvY2F0ZWQgYXQgWEVORFJN X09QX0RVTUJfQ1JFQVRFCisgKgorICoKKyAqIFJlcXVlc3QgZHVtYiBkZXN0cnVjdGlvbiAtIGRl c3Ryb3kgYSBwcmV2aW91c2x5IGFsbG9jYXRlZCBkdW1iIGJ1ZmZlcjoKKyAqICAgICAgICAgIDAg ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAg ICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICBpZCAg ICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgICB8ICAgICByZXNlcnZlZCAgICB8CisgKiAr LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgIGR1bWJfY29va2ll IGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgIGR1bWJfY29va2llIGhpZ2ggMzItYml0ICAg ICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisg KgorICogaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGluIHJlc3Bv bnNlCisgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5EUk1fT1BfRFVNQl9ERVNUUk9ZCisgKiBk dW1iX2Nvb2tpZSAtIHVpbnQ2NF90LCB1bmlxdWUgdG8gZ3Vlc3QgZG9tYWluIHZhbHVlIHVzZWQg YnkgdGhlIGJhY2tlbmQKKyAqICAgdG8gbWFwIHJlbW90ZSBkdW1iIHRvIGxvY2FsIGluIHJlcXVl c3RzCisgKgorICoKKyAqIFJlcXVlc3QgZnJhbWVidWZmZXIgY3JlYXRpb24gLSByZXF1ZXN0IGNy ZWF0aW9uIG9mIGEgRFJNIGZyYW1lYnVmZmVyLgorICogICAgICAgICAgMCAgICAgICAgICAgICAg ICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAq ICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAg IHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHJlc2VydmVkICAgIHwKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgZHVtYl9jb29raWUgbG93IDMyLWJpdCAg ICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgZHVtYl9jb29raWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIGZiX2Nvb2tpZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIGZiX2Nvb2tpZSBo aWdoIDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsK KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwaXhlbF9mb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAq IHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBwcml2YXRlIGd1 ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAqIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIFhF TkRSTV9PUF9GQl9DUkVBVEUKKyAqIGR1bWJfY29va2llIC0gdWludDY0X3QsIHVuaXF1ZSB0byBn dWVzdCBkb21haW4gdmFsdWUgdXNlZCBieSB0aGUgYmFja2VuZAorICogICB0byBtYXAgcmVtb3Rl IGR1bWIgdG8gbG9jYWwgaW4gcmVxdWVzdHMKKyAqIGZiX2Nvb2tpZSAtIHVpbnQ2NF90LCB1bmlx dWUgdG8gZ3Vlc3QgZG9tYWluIHZhbHVlIHVzZWQgYnkgdGhlIGJhY2tlbmQKKyAqICAgdG8gbWFw IHJlbW90ZSBmcmFtZWJ1ZmZlciB0byBsb2NhbCBpbiByZXF1ZXN0cworICogd2lkdGggLSB1aW50 MzJfdCwgd2lkdGggaW4gcGl4ZWxzCisgKiBoZWlnaHQgLSB1aW50MzJfdCwgaGVpZ2h0IGluIHBp eGVscworICogcGl4ZWxfZm9ybWF0IC0gdWludDMyX3QsIHBpeGVsIGZvcm1hdCBvZiB0aGUgZnJh bWVidWZmZXIKKyAqCisgKgorICogUmVxdWVzdCBmcmFtZWJ1ZmZlciBkZXN0cnVjdGlvbiAtIGRl c3Ryb3kgYSBwcmV2aW91c2x5CisgKiAgIGFsbG9jYXRlZCBmcmFtZWJ1ZmZlciBidWZmZXI6Cisg KiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAg ICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg ICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgcmVzZXJ2 ZWQgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgZmJfY29va2llIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgZmJfY29va2llIGhp Z2ggMzItYml0ICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwor ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKworICoKKyAqIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVj aG9lZCBpbiByZXNwb25zZQorICogb3BlcmF0aW9uIC0gdWludDhfdCwgWEVORFJNX09QX0ZCX0RF U1RST1kKKyAqIGR1bWJfY29va2llIC0gdWludDY0X3QsIHVuaXF1ZSB0byBndWVzdCBkb21haW4g dmFsdWUgdXNlZCBieSB0aGUgYmFja2VuZAorICogICB0byBtYXAgcmVtb3RlIGR1bWIgdG8gbG9j YWwgaW4gcmVxdWVzdHMKKyAqCisgKgorICogUmVxdWVzdCBjb25maWd1cmF0aW9uIHNldC9yZXNl dCAtIHJlcXVlc3QgdG8gc2V0IG9yIHJlc2V0CisgKiAgIHRoZSBjb25maWd1cmF0aW9uL21vZGUg b24gQ1JUQzoKKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAg ICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisg KiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgICB8 ICAgICByZXNlcnZlZCAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICBmYl9jb29raWUgbG93IDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICAg ICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICBm Yl9jb29raWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd2lkdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJwcCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rCisgKgorICogUGFzcyBhbGwgemVyb3MgdG8gcmVzZXQsIG90aGVyd2lzZSBjb21tYW5kIGlz IHRyZWF0ZWQgYXMKKyAqIENSVEMgY29uZmlndXJhdGlvbiBzZXQuCisgKgorICogaWQgLSB1aW50 MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGluIHJlc3BvbnNlCisgKiBvcGVyYXRp b24gLSB1aW50OF90LCBYRU5EUk1fT1BfU0VUX0NPTkZJRworICogZmJfY29va2llIC0gdWludDY0 X3QsIHVuaXF1ZSB0byBndWVzdCBkb21haW4gdmFsdWUgdXNlZCBieSB0aGUgYmFja2VuZAorICog ICB0byBtYXAgcmVtb3RlIGZyYW1lYnVmZmVyIHRvIGxvY2FsIGluIHJlcXVlc3RzCisgKiB4IC0g dWludDMyX3QsIHN0YXJ0aW5nIHBvc2l0aW9uIGluIHBpeGVscyBieSBYIGF4aXMKKyAqIHkgLSB1 aW50MzJfdCwgc3RhcnRpbmcgcG9zaXRpb24gaW4gcGl4ZWxzIGJ5IFkgYXhpcworICogd2lkdGgg LSB1aW50MzJfdCwgd2lkdGggaW4gcGl4ZWxzCisgKiBoZWlnaHQgLSB1aW50MzJfdCwgaGVpZ2h0 IGluIHBpeGVscworICogYnBwIC0gdWludDMyX3QsIGJpdHMgcGVyIHBpeGVsCisgKgorICoKKyAq IFJlcXVlc3QgcGFnZSBmbGlwIC0gcmVxdWVzdCB0byBmbGlwIGEgcGFnZSBpZGVudGlmaWVkIGJ5 IHRoZSBmcmFtZWJ1ZmZlcgorICogICBjb29raWU6CisgKiAgICAgICAgICAwICAgICAgICAgICAg ICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAg ICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgcmVzZXJ2ZWQgICAgfAorICogKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNydGNfaWR4ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgZmJfY29va2llIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAg ICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgZmJfY29va2llIGhpZ2ggMzItYml0ICAgICAgICAgICAgICAgICAgICAgICAgfAorICog Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNl cnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t KworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGlkIC0gdWludDE2X3QsIHByaXZh dGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQorICogb3BlcmF0aW9uIC0gdWludDhf dCwgWEVORFJNX09QX1BHX0ZMSVAKKyAqIGNydGNfaWR4IC0gdWludDMyX3QsIHByaXZhdGUgZ3Vl c3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZSBieSB0aGUgYmFjaworICogZmJfY29va2llIC0g dWludDY0X3QsIHVuaXF1ZSB0byBndWVzdCBkb21haW4gdmFsdWUgdXNlZCBieSB0aGUgYmFja2Vu ZAorICogICB0byBtYXAgcmVtb3RlIGZyYW1lYnVmZmVyIHRvIGxvY2FsIGluIHJlcXVlc3RzCisg KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBC YWNrZW5kIHRvIGZyb250ZW5kIGV2ZW50cworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICog QWxsIGV2ZW50IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IG9jdGV0cykKKyAqIEV2 ZW50cyBhcmUgc2VudCB2aWEgYSBzaGFyZWQgcGFnZSBhbGxvY2F0ZWQgYnkgdGhlIGZyb250IGFu ZCBwcm9wYWdhdGVkIGJ5CisgKiAgIGV2ZW50LWNoYW5uZWwvZXZlbnQtcmluZy1yZWYgWGVuU3Rv cmUgZW50cmllcworICoKKyAqCisgKiBQYWdlIGZsaXAgY29tcGxldGUgZXZlbnQgLSBldmVudCBm cm9tIGJhY2sgdG8gZnJvbnQgb24gcGFnZSBmbGlwIGNvbXBsZXRlZDoKKyAqICAgICAgICAgIDAg ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAg ICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICBpZCAg ICAgICAgICAgICAgICB8ICAgICAgdHlwZSAgICAgICB8ICAgICByZXNlcnZlZCAgICB8CisgKiAr LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3J0 Y19pZHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICBmYl9jb29raWUgbG93IDMyLWJpdCAgICAg ICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICBmYl9jb29raWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAg ICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQgLSB1aW50 MTZfdCwgZXZlbnQgaWQsIG1heSBiZSB1c2VkIGJ5IGZyb250CisgKiB0eXBlIC0gdWludDhfdCwg WEVORFJNX0VWVF9QR19GTElQCisgKiBjcnRjX2lkeCAtIHVpbnQzMl90LCBlY2hvZWQgdmFsdWUg cmVjZWl2ZWQgaW4gWEVORFJNX09QX1BHX0ZMSVAgcmVxdWVzdAorICogZmJfY29va2llIC0gdWlu dDY0X3QsIHVuaXF1ZSB0byBndWVzdCBkb21haW4gdmFsdWUgdXNlZCBieSB0aGUgYmFja2VuZAor ICogICB0byBtYXAgcmVtb3RlIGZyYW1lYnVmZmVyIHRvIGxvY2FsIGluIHJlcXVlc3RzCisgKgor ICovCisKK3N0cnVjdCB4ZW5kcm1fcmVxdWVzdCB7CisJdWludDhfdCByYXdbNjRdOworfTsKKwor c3RydWN0IHhlbmRybV9yZXNwb25zZSB7CisJdWludDhfdCByYXdbNjRdOworfTsKKworc3RydWN0 IHhlbmRybV9ldmVudCB7CisJdWludDhfdCByYXdbNjRdOworfTsKKworc3RydWN0IHhlbmRybV9l dmVudF9wYWdlIHsKKwl1bmlvbiB7CisJCXN0cnVjdCB4ZW5kcm1fZXZlbnQgcmF3OworCQlzdHJ1 Y3QgeworCQkJdWludDMyX3QgaW5fY29uczsKKwkJCXVpbnQzMl90IGluX3Byb2Q7CisJCX0gcmlu ZzsKKwl9IHU7Cit9OworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX1hFTkRSTV9IX18gKi8K ZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9kcm1pZl9saW51eC5oIGIvaW5j bHVkZS94ZW4vaW50ZXJmYWNlL2lvL2RybWlmX2xpbnV4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNzI0NDE0OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL2lu dGVyZmFjZS9pby9kcm1pZl9saW51eC5oCkBAIC0wLDAgKzEsMTQyIEBACisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisgKiBkcm1pZl9saW51eC5oCisgKgorICogIFVuaWZpZWQgRFJNLWRldmljZSBJ L08gaW50ZXJmYWNlIGZvciBYZW4gZ3Vlc3QgT1NlcworICoKKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNv cHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu c2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk ZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3 YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5P IEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAq IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmln aHQgKEMpIDIwMTYgRVBBTSBTeXN0ZW1zIEluYy4KKyAqCisgKiBBdXRob3JzOiBPbGVrc2FuZHIg QW5kcnVzaGNoZW5rbyA8YW5kcjIwMDBAZ21haWwuY29tPgorICogICAgICAgICAgT2xla3NhbmRy IEdyeXRzb3YgPGFsMWltZ0BnbWFpbC5jb20+CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNf SU9fWEVOU05EX0xJTlVYX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fWEVOU05EX0xJTlVY X0hfXworCisjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9pby9yaW5nLmg+CisjaW5jbHVkZSA8eGVu L2ludGVyZmFjZS9pby9kcm1pZi5oPgorI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvZ3JhbnRfdGFi bGUuaD4KKworc3RydWN0IHhlbmRybV9kdW1iX2NyZWF0ZV9yZXEgeworCXVpbnQ2NF90IGR1bWJf Y29va2llOworCXVpbnQzMl90IHdpZHRoOworCXVpbnQzMl90IGhlaWdodDsKKwl1aW50MzJfdCBi cHA7CisJZ3JhbnRfcmVmX3QgZ3JlZl9kaXJlY3Rvcnlfc3RhcnQ7Cit9IF9fcGFja2VkOworCitz dHJ1Y3QgeGVuZHJtX2R1bWJfZGVzdHJveV9yZXEgeworCXVpbnQ2NF90IGR1bWJfY29va2llOwor fSBfX3BhY2tlZDsKKworc3RydWN0IHhlbmRybV9mYl9jcmVhdGVfcmVxIHsKKwl1aW50NjRfdCBk dW1iX2Nvb2tpZTsKKwl1aW50NjRfdCBmYl9jb29raWU7CisJdWludDMyX3Qgd2lkdGg7CisJdWlu dDMyX3QgaGVpZ2h0OworCXVpbnQzMl90IHBpeGVsX2Zvcm1hdDsKK30gX19wYWNrZWQ7CisKK3N0 cnVjdCB4ZW5kcm1fZmJfZGVzdHJveV9yZXEgeworCXVpbnQ2NF90IGZiX2Nvb2tpZTsKK30gX19w YWNrZWQ7CisKK3N0cnVjdCB4ZW5kcm1fc2V0X2NvbmZpZ19yZXEgeworCXVpbnQ2NF90IGZiX2Nv b2tpZTsKKwl1aW50MzJfdCB4OworCXVpbnQzMl90IHk7CisJdWludDMyX3Qgd2lkdGg7CisJdWlu dDMyX3QgaGVpZ2h0OworCXVpbnQzMl90IGJwcDsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCB4ZW5k cm1fcGFnZV9mbGlwX3JlcSB7CisJdWludDMyX3QgY3J0Y19pZHg7CisJdWludDY0X3QgZmJfY29v a2llOworfSBfX3BhY2tlZDsKKworc3RydWN0IHhlbmRybV9wYWdlX2RpcmVjdG9yeSB7CisJZ3Jh bnRfcmVmX3QgZ3JlZl9kaXJfbmV4dF9wYWdlOworCXVpbnQzMl90IG51bV9ncmVmczsKKwlncmFu dF9yZWZfdCBncmVmWzBdOworfSBfX3BhY2tlZDsKKworc3RydWN0IHhlbmRybV9yZXEgeworCXVu aW9uIHsKKwkJc3RydWN0IHhlbmRybV9yZXF1ZXN0IHJhdzsKKwkJc3RydWN0IHsKKwkJCXVpbnQx Nl90IGlkOworCQkJdWludDhfdCBvcGVyYXRpb247CisJCQl1aW50OF90IHJlc2VydmVkOworCQkJ dW5pb24geworCQkJCXN0cnVjdCB4ZW5kcm1fZHVtYl9jcmVhdGVfcmVxIGR1bWJfY3JlYXRlOwor CQkJCXN0cnVjdCB4ZW5kcm1fZHVtYl9kZXN0cm95X3JlcSBkdW1iX2Rlc3Ryb3k7CisJCQkJc3Ry dWN0IHhlbmRybV9mYl9jcmVhdGVfcmVxIGZiX2NyZWF0ZTsKKwkJCQlzdHJ1Y3QgeGVuZHJtX2Zi X2Rlc3Ryb3lfcmVxIGZiX2Rlc3Ryb3k7CisJCQkJc3RydWN0IHhlbmRybV9zZXRfY29uZmlnX3Jl cSBzZXRfY29uZmlnOworCQkJCXN0cnVjdCB4ZW5kcm1fcGFnZV9mbGlwX3JlcSBwZ19mbGlwOwor CQkJfSBvcDsKKwkJfSBkYXRhIF9fcGFja2VkOworCX0gdTsKK307CisKK3N0cnVjdCB4ZW5kcm1f cmVzcCB7CisJdW5pb24geworCQlzdHJ1Y3QgeGVuZHJtX3Jlc3BvbnNlIHJhdzsKKwkJc3RydWN0 IHsKKwkJCXVpbnQxNl90IGlkOworCQkJdWludDhfdCBvcGVyYXRpb247CisJCQlpbnQ4X3Qgc3Rh dHVzOworCQl9IGRhdGE7CisJfSB1OworfTsKKworc3RydWN0IHhlbmRybV9wZ19mbGlwX2V2dCB7 CisJdWludDMyX3QgY3J0Y19pZHg7CisJdWludDY0X3QgZmJfY29va2llOworfSBfX3BhY2tlZDsK Kworc3RydWN0IHhlbmRybV9ldnQgeworCXVuaW9uIHsKKwkJc3RydWN0IHhlbmRybV9ldmVudCBy YXc7CisJCXN0cnVjdCB7CisJCQl1aW50MTZfdCBpZDsKKwkJCXVpbnQ4X3QgdHlwZTsKKwkJCXVp bnQ4X3QgcmVzZXJ2ZWQ7CisJCQl1bmlvbiB7CisJCQkJc3RydWN0IHhlbmRybV9wZ19mbGlwX2V2 dCBwZ19mbGlwOworCQkJfSBvcDsKKwkJfSBkYXRhIF9fcGFja2VkOworCX0gdTsKK307CisKK0RF RklORV9SSU5HX1RZUEVTKHhlbl9kcm1pZiwgc3RydWN0IHhlbmRybV9yZXEsIHN0cnVjdCB4ZW5k cm1fcmVzcCk7CisKKy8qIHNoYXJlZCBwYWdlIGZvciBiYWNrIHRvIGZyb250IGV2ZW50cyAqLwor CisjZGVmaW5lIFhFTkRSTV9JTl9SSU5HX09GRlMgKHNpemVvZihzdHJ1Y3QgeGVuZHJtX2V2ZW50 X3BhZ2UpKQorI2RlZmluZSBYRU5EUk1fSU5fUklOR19TSVpFIChQQUdFX1NJWkUgLSBYRU5EUk1f SU5fUklOR19PRkZTKQorI2RlZmluZSBYRU5EUk1fSU5fUklOR19MRU4gKFhFTkRSTV9JTl9SSU5H X1NJWkUgLyBzaXplb2Yoc3RydWN0IHhlbmRybV9ldnQpKQorI2RlZmluZSBYRU5EUk1fSU5fUklO RyhwYWdlKSBcCisJKChzdHJ1Y3QgeGVuZHJtX2V2dCAqKSgoY2hhciAqKShwYWdlKSArIFhFTkRS TV9JTl9SSU5HX09GRlMpKQorI2RlZmluZSBYRU5EUk1fSU5fUklOR19SRUYocGFnZSwgaWR4KSBc CisJKFhFTkRSTV9JTl9SSU5HKChwYWdlKSlbKGlkeCkgJSBYRU5EUk1fSU5fUklOR19MRU5dKQor CisjZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX1hFTkRSTV9MSU5VWF9IX18gKi8KLS0gCjIuNy40 CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==