From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 2F6DA2BCD for ; Fri, 2 Sep 2016 08:31:41 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga105.jf.intel.com with ESMTP; 01 Sep 2016 23:31:40 -0700 Message-Id: <4f15c9$uqkjmn@fmsmga001.fm.intel.com> Date: 01 Sep 2016 23:31:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,270,1470726000"; d="scan'208";a="1034571479" Received: from unknown (HELO [127.0.0.1]) ([10.239.254.251]) by fmsmga001.fm.intel.com with ESMTP; 01 Sep 2016 23:31:28 -0700 Content-Type: multipart/alternative; boundary="===============8292566366253750364==" MIME-Version: 1.0 From: sys_stv@intel.com To: fc@napatech.com, test-report@dpdk.org Subject: [dpdk-test-report] [PatchWork]|ERROR| pw15385 ntnic: add PMD driver X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: automatic test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Sep 2016 06:31:43 -0000 --===============8292566366253750364== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 ClRlc3QtTGFiZWw6IEludGVsIE5pYW50aWMgb24gRmVkb3JhClRlc3QtU3RhdHVzOiBFUlJPUgoK UGF0Y2h3b3JrIElEOiAxNTM4NQpodHRwOi8vd3d3LmRwZGsub3JnL2Rldi9wYXRjaHdvcmsvcGF0 Y2gvMTUzODUvClN1Ym1pdHRlcjogRmlubiBDaHJpc3RlbnNlbiA8ZmNAbmFwYXRlY2guY29tPgpE YXRlOiBGcmksIDI2IEF1ZyAyMDE2IDEzOjQ0OjAxICswMDAwCkRQREsgZ2l0IGJhc2VsaW5lOiBl MjI4NTYzMTNmZmYyZGIxMmQ4ZTEzMmRhZDQ0NmJiZjc0Y2YyOWE1CgpDaGVjayBwYXRjaCBlcnJv cjoKMTUzODU6IApXQVJOSU5HOiBuZXR3b3JraW5nIGJsb2NrIGNvbW1lbnRzIGRvbid0IHVzZSBh biBlbXB0eSAvKiBsaW5lLCB1c2UgLyogQ29tbWVudC4uLgojMzk3OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6NTY6CisvKgorICogaGFzaCA9IDx2YWx1ZT4gKDEuLjMp CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0MTE6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3MDoKKyAgICAgICB1aW50 MzJfdCB2YWx1ZVtNQVhfUlhfUVVFVUVTXTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0MTI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo3MToKKyAgICAgICBpbnQgY291bnQ7JAoKV0FSTklORzogVXNlIG9mIHZvbGF0 aWxlIGlzIHVzdWFsbHkgd3Jvbmc6IHNlZSBEb2N1bWVudGF0aW9uL3ZvbGF0aWxlLWNvbnNpZGVy ZWQtaGFybWZ1bC50eHQKIzQxNTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjc0Ogorc3RhdGljIHZvbGF0aWxlIHVpbnQxNl90IHBvcnRfbG9ja3NbTUFYX05UTklDX1BP UlRTXTsKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUK IzQxODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc3OgorICAgICAg IE50TmV0U3RyZWFtUnhfdCAgICAgICAgcE5ldFJ4W01BWF9SWF9RVUVVRVNdOyAgIC8qIE5UIFJ4 IHN0cmVhbXMgKi8kCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNDE5OiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Nzg6CisgICAgICAgaW50ICAgICAg ICAgICAgICAgICAgICBjdXJOZXRSeF9pZHg7ICAgICAgICAgICAgICAgICAgICAvKiBDdXJyZW50 IFJ4IHN0cmVhbSBpbmRleCAqLwoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0 YXJ0IG9mIGEgbGluZQojNDE5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6Nzg6CisgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICBjdXJOZXRSeF9pZHg7ICAgICAg ICAgICAgICAgICAgICAvKiBDdXJyZW50IFJ4IHN0cmVhbSBpbmRleCAqLyQKCldBUk5JTkc6IGxp bmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0MjA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo3OToKKyAgICAgICBzdHJ1Y3QgcnRlX21lbXBvb2wgICAgKm1iX3Bvb2w7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbWJ1ZiBtZW1vcnkgcG9vbCAqLwoKV0FS TklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDIwOiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Nzk6CisgICAgICAgc3RydWN0IHJ0 ZV9tZW1wb29sICAgICptYl9wb29sOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IG1idWYgbWVtb3J5IHBvb2wgKi8kCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwoj NDIxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODA6CisgICAgICAg dWludDE2X3QgICAgICAgICAgICAgICBidWZfc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIFNpemUgb2YgZGF0YSBhcmVhIGluIG1idWYgKi8KCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQyMTogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjgwOgorICAgICAgIHVpbnQxNl90ICAgICAgICAgICAgICAg YnVmX3NpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTaXplIG9mIGRhdGEg YXJlYSBpbiBtYnVmICovJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzQyMjog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgxOgorICAgICAgIE50TmV0 QnVmX3QgICAgICAgICAgICAgcFNlZzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBUaGUgY3VycmVudCBOVCBkYXRhIHNlZ21lbnQgd2UgYXJlIHdvcmtpbmcgd2l0aCAqLwoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDIyOiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODE6CisgICAgICAgTnROZXRC dWZfdCAgICAgICAgICAgICBwU2VnOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIFRoZSBjdXJyZW50IE5UIGRhdGEgc2VnbWVudCB3ZSBhcmUgd29ya2luZyB3aXRoICovJAoK V0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzQyMzogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjgyOgorICAgICAgIHN0cnVjdCBOdE5ldEJ1Zl9zICAgICAg cGt0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRoZSBj dXJyZW50IHBhY2tldCAqLwoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojNDIzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 ODI6CisgICAgICAgc3RydWN0IE50TmV0QnVmX3MgICAgICBwa3Q7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGhlIGN1cnJlbnQgcGFja2V0ICovJAoKV0FS TklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzQyNDogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjgzOgorICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgcnhf cGt0czsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSeCBwYWNrZXQgc3RhdGlz dGljcyAqLwoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGlu ZQojNDI0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODM6CisgICAg ICAgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyByeF9wa3RzOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIFJ4IHBhY2tldCBzdGF0aXN0aWNzICovJAoKV0FSTklORzogVXNlIG9mIHZv bGF0aWxlIGlzIHVzdWFsbHkgd3Jvbmc6IHNlZSBEb2N1bWVudGF0aW9uL3ZvbGF0aWxlLWNvbnNp ZGVyZWQtaGFybWZ1bC50eHQKIzQyNDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjgzOgorICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgcnhfcGt0czsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSeCBwYWNrZXQgc3RhdGlzdGljcyAqLwoKV0FS TklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzQyNTogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjg0OgorICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgZXJy X3BrdHM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSeCBlcnJvciBwYWNrZXQg c3RhdGlzdGljcyAqLwoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojNDI1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODQ6 CisgICAgICAgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyBlcnJfcGt0czsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIFJ4IGVycm9yIHBhY2tldCBzdGF0aXN0aWNzICovJAoKV0FSTklO RzogVXNlIG9mIHZvbGF0aWxlIGlzIHVzdWFsbHkgd3Jvbmc6IHNlZSBEb2N1bWVudGF0aW9uL3Zv bGF0aWxlLWNvbnNpZGVyZWQtaGFybWZ1bC50eHQKIzQyNTogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjg0OgorICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgZXJy X3BrdHM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSeCBlcnJvciBwYWNrZXQg c3RhdGlzdGljcyAqLwoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzQyNjogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1OgorICAgICAgIHN0cnVjdCBh cnJheV9zICAgICAgICAgYXN0cmVhbWlkczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBBcnJheSBvZiBOVCBzdHJlYW1pZHMgdG8gcmVhZCBkYXRhIGZyb20gKi8KCldBUk5JTkc6IHBs ZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQyNjogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1OgorICAgICAgIHN0cnVjdCBhcnJheV9zICAg ICAgICAgYXN0cmVhbWlkczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBcnJheSBv ZiBOVCBzdHJlYW1pZHMgdG8gcmVhZCBkYXRhIGZyb20gKi8kCgpXQVJOSU5HOiBsaW5lIG92ZXIg ODAgY2hhcmFjdGVycwojNDI3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6ODY6CisgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICBlbmFibGVkOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIEVuYWJsaW5nL2Rpc2FibGluZyBvZiB0aGlzIHF1ZXVl ICovCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0 Mjc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NjoKKyAgICAgICBp bnQgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogRW5hYmxpbmcvZGlzYWJsaW5nIG9mIHRoaXMgcXVldWUgKi8kCgpXQVJOSU5HOiBs aW5lIG92ZXIgODAgY2hhcmFjdGVycwojNDMxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6OTA6CisgICAgICAgTnROZXRTdHJlYW1UeF90ICAgICAgICBwTmV0VHg7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5UIFR4IHN0cmVhbSAqLwoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDMxOiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6OTA6CisgICAgICAgTnROZXRTdHJlYW1U eF90ICAgICAgICBwTmV0VHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5U IFR4IHN0cmVhbSAqLyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0MzI6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo5MToKKyAgICAgICB2b2xhdGls ZSB1bnNpZ25lZCBsb25nIHR4X3BrdHM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogVHggcGFja2V0IHN0YXRpc3RpY3MgKi8KCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQzMjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjkxOgorICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgdHhfcGt0czsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUeCBwYWNrZXQgc3RhdGlzdGljcyAqLyQK CldBUk5JTkc6IFVzZSBvZiB2b2xhdGlsZSBpcyB1c3VhbGx5IHdyb25nOiBzZWUgRG9jdW1lbnRh dGlvbi92b2xhdGlsZS1jb25zaWRlcmVkLWhhcm1mdWwudHh0CiM0MzI6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo5MToKKyAgICAgICB2b2xhdGlsZSB1bnNpZ25lZCBs b25nIHR4X3BrdHM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVHggcGFja2V0 IHN0YXRpc3RpY3MgKi8KCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0MzM6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo5MjoKKyAgICAgICB2b2xhdGls ZSB1bnNpZ25lZCBsb25nIGVycl9wa3RzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogVHggZXJyb3IgcGFja2V0IHN0YXRpc3RpY3MgKi8KCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQzMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjkyOgorICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgZXJyX3Br dHM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUeCBlcnJvciBwYWNrZXQgc3Rh dGlzdGljcyAqLyQKCldBUk5JTkc6IFVzZSBvZiB2b2xhdGlsZSBpcyB1c3VhbGx5IHdyb25nOiBz ZWUgRG9jdW1lbnRhdGlvbi92b2xhdGlsZS1jb25zaWRlcmVkLWhhcm1mdWwudHh0CiM0MzM6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo5MjoKKyAgICAgICB2b2xhdGls ZSB1bnNpZ25lZCBsb25nIGVycl9wa3RzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogVHggZXJyb3IgcGFja2V0IHN0YXRpc3RpY3MgKi8KCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBj aGFyYWN0ZXJzCiM0MzQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo5 MzoKKyAgICAgICB2b2xhdGlsZSB1aW50MTZfdCAgICAgKnBsb2NrOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogUGVyIHBvcnQgdHJhbnNtaXQgYXRvbWljIGxvY2sgKi8KCldB Uk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQzNDogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjkzOgorICAgICAgIHZvbGF0aWxl IHVpbnQxNl90ICAgICAqcGxvY2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBQZXIgcG9ydCB0cmFuc21pdCBhdG9taWMgbG9jayAqLyQKCldBUk5JTkc6IFVzZSBvZiB2b2xh dGlsZSBpcyB1c3VhbGx5IHdyb25nOiBzZWUgRG9jdW1lbnRhdGlvbi92b2xhdGlsZS1jb25zaWRl cmVkLWhhcm1mdWwudHh0CiM0MzQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo5MzoKKyAgICAgICB2b2xhdGlsZSB1aW50MTZfdCAgICAgKnBsb2NrOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogUGVyIHBvcnQgdHJhbnNtaXQgYXRvbWljIGxvY2sg Ki8KCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0MzU6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo5NDoKKyAgICAgICB1aW50MzJfdCAgICAgICAgICAg ICAgIHBvcnQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVHggcG9ydCBm b3IgdGhpcyBxdWV1ZSAqLwoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojNDM1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 OTQ6CisgICAgICAgdWludDMyX3QgICAgICAgICAgICAgICBwb3J0OyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIFR4IHBvcnQgZm9yIHRoaXMgcXVldWUgKi8kCgpXQVJOSU5H OiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNDM2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6OTU6CisgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICBlbmFibGVk OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVuYWJsaW5nL2Rpc2FibGluZyBv ZiB0aGlzIHF1ZXVlICovCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM0MzY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo5 NToKKyAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogRW5hYmxpbmcvZGlzYWJsaW5nIG9mIHRoaXMgcXVldWUgKi8k CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNDM3OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6OTY6CisgICAgICAgaW50ICAgICAgICAgICAgICAgICAg ICBmY3NfYWRkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHBvcnQgSFcg bmVlZHMgYWRkZWQgcm9vbSBmb3IgRkNTICovCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0Mzc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo5NjoKKyAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgIGZjc19hZGQ7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgcG9ydCBIVyBuZWVkcyBhZGRlZCBy b29tIGZvciBGQ1MgKi8kCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNDQxOiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTAwOgorICAgICAgIHN0cnVj dCBudG5pY19yeF9xdWV1ZSByeHFbTUFYX1JYX1FVRVVFU107ICAgICAgICAgICAgICAgLyogQXJy YXkgb2YgUnggcXVldWVzIGNvbmZpZ3VyZWQgKi8KCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2Vz IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ0MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjEwMDoKKyAgICAgICBzdHJ1Y3QgbnRuaWNfcnhfcXVldWUgcnhxW01BWF9S WF9RVUVVRVNdOyAgICAgICAgICAgICAgIC8qIEFycmF5IG9mIFJ4IHF1ZXVlcyBjb25maWd1cmVk ICovJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzQ0MjogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjEwMToKKyAgICAgICBzdHJ1Y3QgbnRuaWNfdHhf cXVldWUgdHhxW01BWF9UWF9RVUVVRVNdOyAgICAgICAgICAgICAgIC8qIEFycmF5IG9mIFR4IHF1 ZXVlcyBjb25maWd1cmVkICovCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3Rh cnQgb2YgYSBsaW5lCiM0NDI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu YzoxMDE6CisgICAgICAgc3RydWN0IG50bmljX3R4X3F1ZXVlIHR4cVtNQVhfVFhfUVVFVUVTXTsg ICAgICAgICAgICAgICAvKiBBcnJheSBvZiBUeCBxdWV1ZXMgY29uZmlndXJlZCAqLyQKCldBUk5J Tkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0NDM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzoxMDI6CisgICAgICAgaW50ICAgICAgICAgICAgICAgICBpZl9pbmRl eDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVyZmFjZSBpbmRleCBh bHdheXMgMCAtIG5vIGJvbmRpbmcgKi8KCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzQ0MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjEwMjoKKyAgICAgICBpbnQgICAgICAgICAgICAgICAgIGlmX2luZGV4OyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJmYWNlIGluZGV4IGFsd2F5cyAwIC0g bm8gYm9uZGluZyAqLyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0NDQ6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxMDM6CisgICAgICAgdW5zaWdu ZWQgaW50ICAgICAgICBuYl9yeF9xdWV1ZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIE51bWJlciBvZiBSeCBxdWV1ZXMgY29uZmlndXJlZCAqLwoKV0FSTklORzogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDQ0OiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6MTAzOgorICAgICAgIHVuc2lnbmVkIGludCAgICAgICAgbmJf cnhfcXVldWVzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgUngg cXVldWVzIGNvbmZpZ3VyZWQgKi8kCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwoj NDQ1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTA0OgorICAgICAg IHVuc2lnbmVkIGludCAgICAgICAgbmJfdHhfcXVldWVzOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBOdW1iZXIgb2YgVHggcXVldWVzIGNvbmZpZ3VyZWQgKi8KCldBUk5JTkc6IHBs ZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ0NTogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjEwNDoKKyAgICAgICB1bnNpZ25lZCBpbnQgICAg ICAgIG5iX3R4X3F1ZXVlczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTnVtYmVy IG9mIFR4IHF1ZXVlcyBjb25maWd1cmVkICovJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJh Y3RlcnMKIzQ0NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjEwNToK KyAgICAgICBpbnQgICAgICAgICAgICAgICAgIE1BQ181MEc7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogIFRydWUgaWYgNTBHIHBvcnRzICovCgpXQVJOSU5HOiBwbGVhc2Us IG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0NDY6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxMDU6CisgICAgICAgaW50ICAgICAgICAgICAgICAgICBN QUNfNTBHOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBUcnVlIGlmIDUw RyBwb3J0cyAqLyQKCldBUk5JTkc6IHN0YXRpYyBjb25zdCBjaGFyICogYXJyYXkgc2hvdWxkIHBy b2JhYmx5IGJlIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QKIzQ0OTogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjEwODoKK3N0YXRpYyBjb25zdCBjaGFyICp2YWxpZF9h cmd1bWVudHNbXSA9IHsKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzQ1MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjEw OToKKyAgICAgICBFVEhfTlROSUNfUE9SVF9BUkcsJAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFj ZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDUxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6MTEwOgorICAgICAgIEVUSF9OVE5JQ19QT1JURU5EX0FSRywkCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0NTI6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxMTE6CisgICAgICAgRVRIX05UTklD X1JYUVVFVUVTX0FSRywkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM0NTM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzox MTI6CisgICAgICAgRVRIX05UTklDX1RYUVVFVUVTX0FSRywkCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0NTQ6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzoxMTM6CisgICAgICAgRVRIX05UTklDX1NUUkVBTUlEX0FSRywk CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0NTU6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxMTQ6CisgICAgICAgRVRI X05UTklDX0hBU0hfQVJHLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFy dCBvZiBhIGxpbmUKIzQ1NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjExNToKKyAgICAgICBOVUxMJAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0 YXJ0IG9mIGEgbGluZQojNDY0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6MTIzOgorICAgICAgIHN0cnVjdCBydGVfbWJ1ZiAqbWJ1ZiwkCgpXQVJOSU5HOiBwbGVhc2Us IG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0NjU6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxMjQ6CisgICAgICAgY29uc3QgdV9jaGFyICpkYXRhLCQK CldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ2Njog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjEyNToKKyAgICAgICB1aW50 MTZfdCBkYXRhX2xlbikkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM0Njg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzox Mjc6CisgICAgICAgc3RydWN0IHJ0ZV9tYnVmICptID0gbWJ1ZjskCgpXQVJOSU5HOiBwbGVhc2Us IG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0NzE6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxMzA6CisgICAgICAgdWludDE2X3QgbGVuID0gcnRlX3Br dG1idWZfdGFpbHJvb20obWJ1Zik7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojNDczOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6MTMyOgorICAgICAgIHJ0ZV9tZW1jcHkocnRlX3BrdG1idWZfYXBwZW5kKG1idWYsIGxl biksIGRhdGEsIGxlbik7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojNDc0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 MTMzOgorICAgICAgIGRhdGFfbGVuIC09IGxlbjskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNl cyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0NzU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzoxMzQ6CisgICAgICAgZGF0YSArPSBsZW47JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDc3OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6MTM2OgorICAgICAgIHdoaWxlIChkYXRhX2xlbiA+IDAp IHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1l bnRzICg3LCAxNSkKIzQ3NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjEzNjoKKyAgICAgICB3aGlsZSAoZGF0YV9sZW4gPiAwKSB7CisgICAgICAgICAgICAgICAvKiBB bGxvY2F0ZSBuZXh0IG1idWYgYW5kIHBvaW50IHRvIHRoYXQuICovCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM0Nzg6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxMzc6CisgICAgICAgICAgICAgICAvKiBBbGxvY2F0ZSBu ZXh0IG1idWYgYW5kIHBvaW50IHRvIHRoYXQuICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNDc5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6MTM4OgorICAgICAgICAgICAgICAgbS0+bmV4dCA9IHJ0ZV9wa3RtYnVm X2FsbG9jKG1iX3Bvb2wpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFy dCBvZiBhIGxpbmUKIzQ3OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjEzODoKKyAgICAgICAgICAgICAgIG0tPm5leHQgPSBydGVfcGt0bWJ1Zl9hbGxvYyhtYl9wb29s KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM0 ODE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxNDA6CisgICAgICAg ICAgICAgICBpZiAodW5saWtlbHkoIW0tPm5leHQpKSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ4MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjE0MDoKKyAgICAgICAgICAgICAgIGlmICh1bmxpa2VseSghbS0+bmV4 dCkpJAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVt ZW50cyAoMTUsIDIzKQojNDgxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6MTQwOgorICAgICAgICAgICAgICAgaWYgKHVubGlrZWx5KCFtLT5uZXh0KSkKKyAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIC0xOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2Ug dGFicyB3aGVyZSBwb3NzaWJsZQojNDgyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6MTQxOgorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDgyOiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTQxOgorICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVy ZSBwb3NzaWJsZQojNDg0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 MTQzOgorICAgICAgICAgICAgICAgbSA9IG0tPm5leHQ7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDg0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6MTQzOgorICAgICAgICAgICAgICAgbSA9IG0tPm5leHQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNDg2OiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTQ1OgorICAgICAgICAgICAgICAg LyogSGVhZHJvb20gaXMgbm90IG5lZWRlZCBpbiBjaGFpbmVkIG1idWZzLiAqLyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzQ4NzogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE0NjoKKyAgICAgICAgICAgICAgIHJ0ZV9w a3RtYnVmX3ByZXBlbmQobSwgcnRlX3BrdG1idWZfaGVhZHJvb20obSkpOyQKCldBUk5JTkc6IHBs ZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ4NzogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE0NjoKKyAgICAgICAgICAgICAgIHJ0ZV9wa3Rt YnVmX3ByZXBlbmQobSwgcnRlX3BrdG1idWZfaGVhZHJvb20obSkpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzQ4ODogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE0NzoKKyAgICAgICAgICAgICAgIG0tPnBrdF9sZW4g PSAwOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUK IzQ4ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE0NzoKKyAgICAg ICAgICAgICAgIG0tPnBrdF9sZW4gPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNl IHRhYnMgd2hlcmUgcG9zc2libGUKIzQ4OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjE0ODoKKyAgICAgICAgICAgICAgIG0tPmRhdGFfbGVuID0gMDskCgpXQVJOSU5H OiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0ODk6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxNDg6CisgICAgICAgICAgICAgICBtLT5k YXRhX2xlbiA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBw b3NzaWJsZQojNDkxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTUw OgorICAgICAgICAgICAgICAgLyogQ29weSBuZXh0IHNlZ21lbnQuICovJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNDkyOiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTUxOgorICAgICAgICAgICAgICAgbGVuID0gUlRF X01JTihydGVfcGt0bWJ1Zl90YWlscm9vbShtKSwgZGF0YV9sZW4pOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ5MjogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE1MToKKyAgICAgICAgICAgICAgIGxlbiA9IFJURV9N SU4ocnRlX3BrdG1idWZfdGFpbHJvb20obSksIGRhdGFfbGVuKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM0OTM6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxNTI6CisgICAgICAgICAgICAgICBydGVfbWVtY3B5KHJ0 ZV9wa3RtYnVmX2FwcGVuZChtLCBsZW4pLCBkYXRhLCBsZW4pOyQKCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ5MzogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjE1MjoKKyAgICAgICAgICAgICAgIHJ0ZV9tZW1jcHkocnRl X3BrdG1idWZfYXBwZW5kKG0sIGxlbiksIGRhdGEsIGxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNDk1OiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6MTU0OgorICAgICAgICAgICAgICAgbWJ1Zi0+bmJfc2Vncysr OyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ5 NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE1NDoKKyAgICAgICAg ICAgICAgIG1idWYtPm5iX3NlZ3MrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0 YWJzIHdoZXJlIHBvc3NpYmxlCiM0OTY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzoxNTU6CisgICAgICAgICAgICAgICBkYXRhX2xlbiAtPSBsZW47JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDk2OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTU1OgorICAgICAgICAgICAgICAgZGF0YV9s ZW4gLT0gbGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9z c2libGUKIzQ5NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE1NjoK KyAgICAgICAgICAgICAgIGRhdGEgKz0gbGVuOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2Vz IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ5NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjE1NjoKKyAgICAgICAgICAgICAgIGRhdGEgKz0gbGVuOyQKCldBUk5JTkc6 IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ5ODogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE1NzoKKyAgICAgICB9JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTAwOiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTU5OgorICAgICAgIHJldHVybiBtYnVmLT5u Yl9zZWdzOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxp bmUKIzUwNzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE2NjoKKyAg ICAgICBzdHJ1Y3QgcnRlX21idWYgKipidWZzLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2Vz IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzUwODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjE2NzoKKyAgICAgICB1aW50MTZfdCBuYl9wa3RzKSQKCldBUk5JTkc6IHBs ZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzUxMDogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE2OToKKyAgICAgICB1bnNpZ25lZCBpOyQKCldB Uk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzUxMTogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE3MDoKKyAgICAgICBzdHJ1Y3Qg cnRlX21idWYgKm1idWY7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojNTEyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 MTcxOgorICAgICAgIHN0cnVjdCBudG5pY19yeF9xdWV1ZSAqcnhfcSA9IHF1ZXVlOyQKCldBUk5J Tkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzUxMzogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE3MjoKKyAgICAgICB1aW50MTZfdCBu dW1fcnggPSAwOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBh IGxpbmUKIzUxNDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE3MzoK KyAgICB1aW50MTZfdCBkYXRhX2xlbjskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0 aGUgc3RhcnQgb2YgYSBsaW5lCiM1MTY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzoxNzU6CisgICAgICAgaWYgKHVubGlrZWx5KHJ4X3EtPnBOZXRSeFtyeF9xLT5jdXJO ZXRSeF9pZHhdID09IE5VTEwgfHwgbmJfcGt0cyA9PSAwKSkkCgpXQVJOSU5HOiBzdXNwZWN0IGNv ZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzUxNjogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE3NToKKyAgICAgICBpZiAodW5saWtl bHkocnhfcS0+cE5ldFJ4W3J4X3EtPmN1ck5ldFJ4X2lkeF0gPT0gTlVMTCB8fCBuYl9wa3RzID09 IDApKQorICAgICAgICAgICAgICAgcmV0dXJuIDA7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1MTc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzoxNzY6CisgICAgICAgICAgICAgICByZXR1cm4gMDskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1MTc6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxNzY6CisgICAgICAgICAgICAgICByZXR1cm4g MDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1 MjA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxNzk6CisgICAgICAg aWYgKHJ4X3EtPnBTZWcgPT0gTlVMTCkgeyQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQg Zm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1KQojNTIwOiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6MTc5OgorICAgICAgIGlmIChyeF9xLT5wU2VnID09IE5V TEwpIHsKKyAgICAgICAgICAgICAgIC8qIE5leHQgc3RyZWFtIC0gaWYgbXVsdGlwbGUgc3RyZWFt cyBhcmUgY29tYmluZWQgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hl cmUgcG9zc2libGUKIzUyMTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjE4MDoKKyAgICAgICAgICAgICAgIC8qIE5leHQgc3RyZWFtIC0gaWYgbXVsdGlwbGUgc3RyZWFt cyBhcmUgY29tYmluZWQgKi8kCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNTIy OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTgxOgorICAgICAgICAg ICAgICAgcnhfcS0+Y3VyTmV0UnhfaWR4ID0gKHJ4X3EtPmN1ck5ldFJ4X2lkeCA8IChyeF9xLT5h c3RyZWFtaWRzLmNvdW50IC0gMSkpID8gcnhfcS0+Y3VyTmV0UnhfaWR4ICsgMSA6IDA7CgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1MjI6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxODE6CisgICAgICAgICAgICAgICBy eF9xLT5jdXJOZXRSeF9pZHggPSAocnhfcS0+Y3VyTmV0UnhfaWR4IDwgKHJ4X3EtPmFzdHJlYW1p ZHMuY291bnQgLSAxKSkgPyByeF9xLT5jdXJOZXRSeF9pZHggKyAxIDogMDskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1MjI6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxODE6CisgICAgICAgICAgICAgICByeF9xLT5j dXJOZXRSeF9pZHggPSAocnhfcS0+Y3VyTmV0UnhfaWR4IDwgKHJ4X3EtPmFzdHJlYW1pZHMuY291 bnQgLSAxKSkgPyByeF9xLT5jdXJOZXRSeF9pZHggKyAxIDogMDskCgpXQVJOSU5HOiBsaW5lIG92 ZXIgODAgY2hhcmFjdGVycwojNTI0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6MTgzOgorICAgICAgICAgICAgICAgaWYgKE5UX05ldFJ4R2V0KHJ4X3EtPnBOZXRSeFty eF9xLT5jdXJOZXRSeF9pZHhdLCAmcnhfcS0+cFNlZywgMCkgIT0gTlRfU1VDQ0VTUykgewoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTI0OiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTgzOgorICAgICAgICAgICAgICAg aWYgKE5UX05ldFJ4R2V0KHJ4X3EtPnBOZXRSeFtyeF9xLT5jdXJOZXRSeF9pZHhdLCAmcnhfcS0+ cFNlZywgMCkgIT0gTlRfU1VDQ0VTUykgeyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzUyNDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjE4MzoKKyAgICAgICAgICAgICAgIGlmIChOVF9OZXRSeEdldChyeF9xLT5wTmV0 UnhbcnhfcS0+Y3VyTmV0UnhfaWR4XSwgJnJ4X3EtPnBTZWcsIDApICE9IE5UX1NVQ0NFU1MpIHsk CgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRz ICgxNSwgMjMpCiM1MjQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzox ODM6CisgICAgICAgICAgICAgICBpZiAoTlRfTmV0UnhHZXQocnhfcS0+cE5ldFJ4W3J4X3EtPmN1 ck5ldFJ4X2lkeF0sICZyeF9xLT5wU2VnLCAwKSAhPSBOVF9TVUNDRVNTKSB7CisgICAgICAgICAg ICAgICAgICAgICAgIGlmIChyeF9xLT5wU2VnICE9IE5VTEwpIHsKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzUyNTogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjE4NDoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJ4 X3EtPnBTZWcgIT0gTlVMTCkgeyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBz dGFydCBvZiBhIGxpbmUKIzUyNTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjE4NDoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJ4X3EtPnBTZWcgIT0gTlVMTCkg eyQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVu dHMgKDIzLCAzMSkKIzUyNTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjE4NDoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJ4X3EtPnBTZWcgIT0gTlVMTCkgewor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UX05ldFJ4UmVsZWFzZShyeF9xLT5wTmV0 UnhbcnhfcS0+Y3VyTmV0UnhfaWR4XSwgcnhfcS0+cFNlZyk7CgpXQVJOSU5HOiBsaW5lIG92ZXIg ODAgY2hhcmFjdGVycwojNTI2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6MTg1OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UX05ldFJ4UmVsZWFzZShy eF9xLT5wTmV0UnhbcnhfcS0+Y3VyTmV0UnhfaWR4XSwgcnhfcS0+cFNlZyk7CgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1MjY6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxODU6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlRfTmV0UnhSZWxlYXNlKHJ4X3EtPnBOZXRSeFtyeF9xLT5jdXJOZXRSeF9pZHhd LCByeF9xLT5wU2VnKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM1MjY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzox ODU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRfTmV0UnhSZWxlYXNlKHJ4X3Et PnBOZXRSeFtyeF9xLT5jdXJOZXRSeF9pZHhdLCByeF9xLT5wU2VnKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1Mjc6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxODY6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcnhfcS0+cFNlZyA9IE5VTEw7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQg dGhlIHN0YXJ0IG9mIGEgbGluZQojNTI3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6MTg2OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ4X3EtPnBTZWcg PSBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2li bGUKIzUyODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE4NzoKKyAg ICAgICAgICAgICAgICAgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzUyODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjE4NzoKKyAgICAgICAgICAgICAgICAgICAgICAgfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzUyOTogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjE4ODoKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoj NTI5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MTg4OgorICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVz ZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1MzE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzoxOTA6CisgICAgICAgICAgICAgICB9JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTMxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6MTkwOgorICAgICAgICAgICAgICAgfSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzUzMjogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE5MToKKyAgICAgICAgICAgICAgIGlmIChOVF9ORVRf R0VUX1NFR01FTlRfTEVOR1RIKHJ4X3EtPnBTZWcpKSB7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTMyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6MTkxOgorICAgICAgICAgICAgICAgaWYgKE5UX05FVF9HRVRfU0VH TUVOVF9MRU5HVEgocnhfcS0+cFNlZykpIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50 IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiM1MzI6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxOTE6CisgICAgICAgICAgICAgICBpZiAoTlRfTkVU X0dFVF9TRUdNRU5UX0xFTkdUSChyeF9xLT5wU2VnKSkgeworICAgICAgICAgICAgICAgICAgICAg ICAvKiBCdWlsZCBhIHBhY2tldCBzdHJ1Y3R1cmUgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzUzMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjE5MjoKKyAgICAgICAgICAgICAgICAgICAgICAgLyogQnVpbGQgYSBw YWNrZXQgc3RydWN0dXJlICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3 aGVyZSBwb3NzaWJsZQojNTM0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6MTkzOgorICAgICAgICAgICAgICAgICAgICAgICBfbnRfbmV0X2J1aWxkX3BrdF9uZXRidWYo cnhfcS0+cFNlZywgJnJ4X3EtPnBrdCk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQg dGhlIHN0YXJ0IG9mIGEgbGluZQojNTM0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6MTkzOgorICAgICAgICAgICAgICAgICAgICAgICBfbnRfbmV0X2J1aWxkX3BrdF9u ZXRidWYocnhfcS0+cFNlZywgJnJ4X3EtPnBrdCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTM1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6MTk0OgorICAgICAgICAgICAgICAgfSBlbHNlIHskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1MzU6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxOTQ6CisgICAgICAgICAgICAgICB9IGVsc2Ug eyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM1MzY6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxOTU6CisgICAgICAgICAgICAgICAgICAgICAgIE5U X05ldFJ4UmVsZWFzZShyeF9xLT5wTmV0UnhbcnhfcS0+Y3VyTmV0UnhfaWR4XSwgcnhfcS0+cFNl Zyk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1 MzY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxOTU6CisgICAgICAg ICAgICAgICAgICAgICAgIE5UX05ldFJ4UmVsZWFzZShyeF9xLT5wTmV0UnhbcnhfcS0+Y3VyTmV0 UnhfaWR4XSwgcnhfcS0+cFNlZyk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojNTM2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6MTk1OgorICAgICAgICAgICAgICAgICAgICAgICBOVF9OZXRSeFJlbGVhc2UocnhfcS0+ cE5ldFJ4W3J4X3EtPmN1ck5ldFJ4X2lkeF0sIHJ4X3EtPnBTZWcpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzUzNzogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE5NjoKKyAgICAgICAgICAgICAgICAgICAgICAgcnhf cS0+cFNlZyA9IE5VTEw7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojNTM3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 MTk2OgorICAgICAgICAgICAgICAgICAgICAgICByeF9xLT5wU2VnID0gTlVMTDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1Mzg6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxOTc6CisgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzUzODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE5 NzoKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTM5OiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6MTk4OgorICAgICAgICAgICAgICAgfSQKCldBUk5JTkc6IHBs ZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzUzOTogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjE5ODoKKyAgICAgICAgICAgICAgIH0kCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1NDA6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoxOTk6CisgICAgICAgfSQKCldBUk5J Tkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzU0MjogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjIwMToKKyAgICAgICBpZiAocnRlX21l bXBvb2xfZ2V0X2J1bGsocnhfcS0+bWJfcG9vbCwgKHZvaWQgKiopYnVmcywgbmJfcGt0cykgIT0g MCkkCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1l bnRzICg3LCAxNSkKIzU0MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjIwMToKKyAgICAgICBpZiAocnRlX21lbXBvb2xfZ2V0X2J1bGsocnhfcS0+bWJfcG9vbCwgKHZv aWQgKiopYnVmcywgbmJfcGt0cykgIT0gMCkKKyAgICAgICAgICAgICAgIHJldHVybiAwOwoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTQzOiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjAyOgorICAgICAgICAgICAgICAg cmV0dXJuIDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojNTQzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjAyOgor ICAgICAgICAgICAgICAgcmV0dXJuIDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQg dGhlIHN0YXJ0IG9mIGEgbGluZQojNTQ1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6MjA0OgorICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYl9wa3RzOyBpKyspIHskCgpX QVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3 LCAxNSkKIzU0NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjIwNDoK KyAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmJfcGt0czsgaSsrKSB7CisgICAgICAgICAgICAgICBt YnVmID0gYnVmc1tpXTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUg cG9zc2libGUKIzU0NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjIw NToKKyAgICAgICAgICAgICAgIG1idWYgPSBidWZzW2ldOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzU0NjogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjIwNToKKyAgICAgICAgICAgICAgIG1idWYgPSBidWZzW2ldOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzU0Nzog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjIwNjoKKyAgICAgICAgICAg ICAgIHJ0ZV9tYnVmX3JlZmNudF9zZXQobWJ1ZiwgMSk7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTQ3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6MjA2OgorICAgICAgICAgICAgICAgcnRlX21idWZfcmVmY250X3Nl dChtYnVmLCAxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBv c3NpYmxlCiM1NDg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMDc6 CisgICAgICAgICAgICAgICBydGVfcGt0bWJ1Zl9yZXNldChtYnVmKTskCgpXQVJOSU5HOiBwbGVh c2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1NDg6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMDc6CisgICAgICAgICAgICAgICBydGVfcGt0bWJ1 Zl9yZXNldChtYnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJl IHBvc3NpYmxlCiM1NTA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoy MDk6CisgICAgICAgICAgICAgICAvKiBIVyBzbGljaW5nIG5vdCBzdXBwb3J0ZWQgKi8kCgpXQVJO SU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNTUxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6MjEwOgorICAgICAgICAgICAgICAgZGF0YV9sZW4gPSAodWludDE2 X3QpTlRfTkVUX0dFVF9QS1RfV0lSRV9MRU5HVEgoKCZyeF9xLT5wa3QpKSAtIDQ7CgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1NTE6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTA6CisgICAgICAgICAgICAgICBkYXRh X2xlbiA9ICh1aW50MTZfdClOVF9ORVRfR0VUX1BLVF9XSVJFX0xFTkdUSCgoJnJ4X3EtPnBrdCkp IC0gNDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5l CiM1NTE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTA6CisgICAg ICAgICAgICAgICBkYXRhX2xlbiA9ICh1aW50MTZfdClOVF9ORVRfR0VUX1BLVF9XSVJFX0xFTkdU SCgoJnJ4X3EtPnBrdCkpIC0gNDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJz IHdoZXJlIHBvc3NpYmxlCiM1NTI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzoyMTE6CisgICAgICAgICAgICAgICBpZiAoZGF0YV9sZW4gPD0gcnhfcS0+YnVmX3NpemUp IHskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1 NTI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTE6CisgICAgICAg ICAgICAgICBpZiAoZGF0YV9sZW4gPD0gcnhfcS0+YnVmX3NpemUpIHskCgpXQVJOSU5HOiBzdXNw ZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiM1NTI6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTE6CisgICAgICAgICAg ICAgICBpZiAoZGF0YV9sZW4gPD0gcnhfcS0+YnVmX3NpemUpIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgLyogUGFja2V0IHdpbGwgZml0IGluIHRoZSBtYnVmLCBnbyBhaGVhZCBhbmQgY29weSAq LwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTUz OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjEyOgorICAgICAgICAg ICAgICAgICAgICAgICAvKiBQYWNrZXQgd2lsbCBmaXQgaW4gdGhlIG1idWYsIGdvIGFoZWFkIGFu ZCBjb3B5ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3Nz aWJsZQojNTU0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjEzOgor ICAgICAgICAgICAgICAgICAgICAgICBtYnVmLT5wa3RfbGVuID0gbWJ1Zi0+ZGF0YV9sZW4gPSBk YXRhX2xlbjskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiM1NTQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTM6Cisg ICAgICAgICAgICAgICAgICAgICAgIG1idWYtPnBrdF9sZW4gPSBtYnVmLT5kYXRhX2xlbiA9IGRh dGFfbGVuOyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM1NTU6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTQ6CisgICAgICAgICAgICAgICAgICAg ICAgIHJ0ZV9tZW1jcHkoKHVfY2hhciAqKW1idWYtPmJ1Zl9hZGRyICsgUlRFX1BLVE1CVUZfSEVB RFJPT00sIE5UX05FVF9HRVRfUEtUX0wyX1BUUigoJnJ4X3EtPnBrdCkpLCBtYnVmLT5kYXRhX2xl bik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1 NTU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTQ6CisgICAgICAg ICAgICAgICAgICAgICAgIHJ0ZV9tZW1jcHkoKHVfY2hhciAqKW1idWYtPmJ1Zl9hZGRyICsgUlRF X1BLVE1CVUZfSEVBRFJPT00sIE5UX05FVF9HRVRfUEtUX0wyX1BUUigoJnJ4X3EtPnBrdCkpLCBt YnVmLT5kYXRhX2xlbik7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojNTU1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 MjE0OgorICAgICAgICAgICAgICAgICAgICAgICBydGVfbWVtY3B5KCh1X2NoYXIgKiltYnVmLT5i dWZfYWRkciArIFJURV9QS1RNQlVGX0hFQURST09NLCBOVF9ORVRfR0VUX1BLVF9MMl9QVFIoKCZy eF9xLT5wa3QpKSwgbWJ1Zi0+ZGF0YV9sZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg dXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzU1NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjIxNToKKyAgICAgICAgICAgICAgIH0gZWxzZSB7JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTU2OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjE1OgorICAgICAgICAgICAgICAgfSBlbHNlIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1NTc6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTY6CisgICAgICAgICAg ICAgICAgICAgICAgIC8qIFRyeSByZWFkIGp1bWJvIGZyYW1lIGludG8gbXVsdGkgbWJ1ZnMuICov JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTU4 OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjE3OgorICAgICAgICAg ICAgICAgICAgICAgICBpZiAodW5saWtlbHkoZXRoX250bmljX3J4X2p1bWJvKHJ4X3EtPm1iX3Bv b2wsJAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoj NTU4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjE3OgorICAgICAg ICAgICAgICAgICAgICAgICBpZiAodW5saWtlbHkoZXRoX250bmljX3J4X2p1bWJvKHJ4X3EtPm1i X3Bvb2wsJAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3Rh dGVtZW50cyAoMjMsIDMxKQojNTU4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6MjE3OgorICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5saWtlbHkoZXRoX250bmlj X3J4X2p1bWJvKHJ4X3EtPm1iX3Bvb2wsClsuLi5dCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBv c3NpYmxlCiM1NTk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTg6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWJ1ZiwkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5l CiM1NTk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMTg6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJ1Ziwk CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNTYwOiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6MjE5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UX05FVF9HRVRfUEtUX0wyX1BUUigoJnJ4X3Et PnBrdCkpLAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJs ZQojNTYwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjE5OgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UX05F VF9HRVRfUEtUX0wyX1BUUigoJnJ4X3EtPnBrdCkpLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzU2MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjIxOToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVF9ORVRfR0VUX1BLVF9MMl9QVFIoKCZyeF9xLT5wa3QpKSwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1NjE6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMjA6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9sZW4pID09 IC0xKSkkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5l CiM1NjE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMjA6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9s ZW4pID09IC0xKSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBv c3NpYmxlCiM1NjI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMjE6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTYyOiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6MjIxOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9z c2libGUKIzU2MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjIyMjoK KyAgICAgICAgICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3Rh cnQgb2YgYSBsaW5lCiM1NjM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu YzoyMjI6CisgICAgICAgICAgICAgICB9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2Ug dGFicyB3aGVyZSBwb3NzaWJsZQojNTY1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6MjI0OgorICAgICAgICAgICAgICAgbWJ1Zi0+cG9ydCA9IE5UX05FVF9HRVRfUEtU X1JYUE9SVCgoJnJ4X3EtPnBrdCkpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzU2NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjIyNDoKKyAgICAgICAgICAgICAgIG1idWYtPnBvcnQgPSBOVF9ORVRfR0VUX1BLVF9S WFBPUlQoKCZyeF9xLT5wa3QpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJz IHdoZXJlIHBvc3NpYmxlCiM1NjY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzoyMjU6CisgICAgICAgICAgICAgICBudW1fcngrKzskCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1NjY6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzoyMjU6CisgICAgICAgICAgICAgICBudW1fcngrKzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1Njg6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMjc6CisgICAgICAgICAgICAgICAv KiBHZXQgdGhlIG5leHQgcGFja2V0IGlmIGFueSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzU2OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjIyODoKKyAgICAgICAgICAgICAgIGlmIChfbnRfbmV0X2dldF9uZXh0 X3BhY2tldChyeF9xLT5wU2VnLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBz dGFydCBvZiBhIGxpbmUKIzU2OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjIyODoKKyAgICAgICAgICAgICAgIGlmIChfbnRfbmV0X2dldF9uZXh0X3BhY2tldChyeF9x LT5wU2VnLCQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0 YXRlbWVudHMgKDE1LCAyMykKIzU2OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjIyODoKKyAgICAgICAgICAgICAgIGlmIChfbnRfbmV0X2dldF9uZXh0X3BhY2tldChy eF9xLT5wU2VnLApbLi4uXQorICAgICAgICAgICAgICAgICAgICAgICBOVF9OZXRSeFJlbGVhc2Uo cnhfcS0+cE5ldFJ4W3J4X3EtPmN1ck5ldFJ4X2lkeF0sIHJ4X3EtPnBTZWcpOwoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTcwOiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjI5OgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5UX05FVF9HRVRfU0VHTUVOVF9MRU5HVEgocnhfcS0+cFNlZyksJAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTcwOiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjI5OgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5UX05FVF9HRVRfU0VHTUVOVF9MRU5HVEgocnhfcS0+cFNlZyksJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTcxOiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjMwOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZyeF9xLT5wa3QpID09IDAgKSB7JAoKV0FSTklORzogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTcxOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6MjMwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZyeF9xLT5wa3QpID09IDAgKSB7JAoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYmVmb3JlIHRo YXQgY2xvc2UgcGFyZW50aGVzaXMgJyknCiM1NzE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzoyMzA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJ4X3Et PnBrdCkgPT0gMCApIHsKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM1NzI6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMzE6CisgICAgICAgICAgICAg ICAgICAgICAgIE5UX05ldFJ4UmVsZWFzZShyeF9xLT5wTmV0UnhbcnhfcS0+Y3VyTmV0UnhfaWR4 XSwgcnhfcS0+cFNlZyk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJl IHBvc3NpYmxlCiM1NzI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoy MzE6CisgICAgICAgICAgICAgICAgICAgICAgIE5UX05ldFJ4UmVsZWFzZShyeF9xLT5wTmV0Unhb cnhfcS0+Y3VyTmV0UnhfaWR4XSwgcnhfcS0+cFNlZyk7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTcyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6MjMxOgorICAgICAgICAgICAgICAgICAgICAgICBOVF9OZXRSeFJl bGVhc2UocnhfcS0+cE5ldFJ4W3J4X3EtPmN1ck5ldFJ4X2lkeF0sIHJ4X3EtPnBTZWcpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzU3MzogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjIzMjoKKyAgICAgICAgICAgICAg ICAgICAgICAgcnhfcS0+cFNlZyA9IE5VTEw7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMg YXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTczOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6MjMyOgorICAgICAgICAgICAgICAgICAgICAgICByeF9xLT5wU2VnID0gTlVM TDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1 NzQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMzM6CisgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzU3NDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjIzMzoKKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTc1OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjM0OgorICAgICAgICAgICAgICAgfSQKCldBUk5J Tkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzU3NTogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjIzNDoKKyAgICAgICAgICAgICAgIH0k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM1Nzc6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyMzY6CisgICAgICAgICAg ICAgICByeF9xLT5yeF9wa3RzKys7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojNTc3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6MjM2OgorICAgICAgICAgICAgICAgcnhfcS0+cnhfcGt0cysrOyQKCldBUk5JTkc6IHBs ZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzU3ODogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjIzNzoKKyAgICAgICB9JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTgwOiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjM5OgorICAgICAgIGlmIChudW1fcnggPCBuYl9w a3RzKSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3Rh dGVtZW50cyAoNywgOSkKIzU4MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjIzOToKKyAgICAgICBpZiAobnVtX3J4IDwgbmJfcGt0cykgeworICAgICAgICAgcnRlX21l bXBvb2xfcHV0X2J1bGsocnhfcS0+bWJfcG9vbCwgKHZvaWQgKiBjb25zdCAqKShidWZzICsgbnVt X3J4KSwgbmJfcGt0cy1udW1fcngpOwoKV0FSTklORzogYnJhY2VzIHt9IGFyZSBub3QgbmVjZXNz YXJ5IGZvciBzaW5nbGUgc3RhdGVtZW50IGJsb2NrcwojNTgwOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6MjM5OgorICAgICAgIGlmIChudW1fcnggPCBuYl9wa3RzKSB7 CisgICAgICAgICBydGVfbWVtcG9vbF9wdXRfYnVsayhyeF9xLT5tYl9wb29sLCAodm9pZCAqIGNv bnN0ICopKGJ1ZnMgKyBudW1fcngpLCBuYl9wa3RzLW51bV9yeCk7CisgICAgICAgfQoKV0FSTklO RzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzU4MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjI0MDoKKyAgICAgICAgIHJ0ZV9tZW1wb29sX3B1dF9idWxrKHJ4X3Et Pm1iX3Bvb2wsICh2b2lkICogY29uc3QgKikoYnVmcyArIG51bV9yeCksIG5iX3BrdHMtbnVtX3J4 KTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzU4 MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI0MDoKKyAgICAgICAg IHJ0ZV9tZW1wb29sX3B1dF9idWxrKHJ4X3EtPm1iX3Bvb2wsICh2b2lkICogY29uc3QgKikoYnVm cyArIG51bV9yeCksIG5iX3BrdHMtbnVtX3J4KTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNl cyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1ODE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzoyNDA6CisgICAgICAgICBydGVfbWVtcG9vbF9wdXRfYnVsayhyeF9xLT5t Yl9wb29sLCAodm9pZCAqIGNvbnN0ICopKGJ1ZnMgKyBudW1fcngpLCBuYl9wa3RzLW51bV9yeCk7 JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTgy OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjQxOgorICAgICAgIH0k CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1ODM6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyNDI6CisgICAgICAgcmV0 dXJuIG51bV9yeDskCgpXQVJOSU5HOiBuZXR3b3JraW5nIGJsb2NrIGNvbW1lbnRzIGRvbid0IHVz ZSBhbiBlbXB0eSAvKiBsaW5lLCB1c2UgLyogQ29tbWVudC4uLgojNTkxOiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjUwOgorLyoKKyAqIENhbGxiYWNrIHRvIGhhbmRs ZSBzZW5kaW5nIHBhY2tldHMgdGhyb3VnaCBhIE5UIE5JQy4KCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzU5NTogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjI1NDoKKyAgICAgICBzdHJ1Y3QgcnRlX21idWYgKipidWZzLCQK CldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzU5Njog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI1NToKKyAgICAgICB1aW50 MTZfdCBuYl9wa3RzKSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzU5ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI1 NzoKKyAgICAgICB1bnNpZ25lZCBpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzU5OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjI1ODoKKyAgICAgICBzdHJ1Y3QgbnRuaWNfdHhfcXVldWUgKnR4X3EgPSBxdWV1ZTsk CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2MDA6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyNTk6CisgICAgICAgaW50 IHJldHZhbDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiM2MDE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyNjA6Cisg ICAgICAgdWludDE2X3Qgb2xkOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBz dGFydCBvZiBhIGxpbmUKIzYwMjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjI2MToKKyAgICAgICB1aW50MTZfdCBuZXdfZmxhZyA9IDA7JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjA1OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6MjY0OgorICAgICAgIGlmICh1bmxpa2VseSh0eF9xID09 IE5VTEwgfHwgdHhfcS0+cE5ldFR4ID09IE5VTEwgfHwgbmJfcGt0cyA9PSAwKSkgeyQKCldBUk5J Tkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1 KQojNjA1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjY0OgorICAg ICAgIGlmICh1bmxpa2VseSh0eF9xID09IE5VTEwgfHwgdHhfcS0+cE5ldFR4ID09IE5VTEwgfHwg bmJfcGt0cyA9PSAwKSkgeworICAgICAgICAgICAgICAgcmV0dXJuIDA7CgpXQVJOSU5HOiBicmFj ZXMge30gYXJlIG5vdCBuZWNlc3NhcnkgZm9yIHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2tzCiM2MDU6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyNjQ6CisgICAgICAgaWYg KHVubGlrZWx5KHR4X3EgPT0gTlVMTCB8fCB0eF9xLT5wTmV0VHggPT0gTlVMTCB8fCBuYl9wa3Rz ID09IDApKSB7CisgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICB9CgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM2MDY6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyNjU6CisgICAgICAgICAgICAgICByZXR1cm4g MDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2 MDY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyNjU6CisgICAgICAg ICAgICAgICByZXR1cm4gMDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3Rh cnQgb2YgYSBsaW5lCiM2MDc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu YzoyNjY6CisgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFy dCBvZiBhIGxpbmUKIzYwOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjI2ODoKKyAgICAgICBkbyB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29u ZGl0aW9uYWwgc3RhdGVtZW50cyAoNywgMTUpCiM2MDk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzoyNjg6CisgICAgICAgZG8geworICAgICAgICAgICAgICAgb2xkID0g MDsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzYx MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI2OToKKyAgICAgICAg ICAgICAgIG9sZCA9IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojNjEwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 MjY5OgorICAgICAgICAgICAgICAgb2xkID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM2MTE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzoyNzA6CisgICAgICAgICAgICAgICBuZXdfZmxhZyA9IDE7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjExOiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjcwOgorICAgICAgICAgICAgICAgbmV3 X2ZsYWcgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9z c2libGUKIzYxMjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI3MToK KyAgICAgICAgICAgICAgIHJldHZhbCA9IHJ0ZV9hdG9taWMxNl9jbXBzZXQodHhfcS0+cGxvY2ss IG9sZCwgbmV3X2ZsYWcpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFy dCBvZiBhIGxpbmUKIzYxMjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjI3MToKKyAgICAgICAgICAgICAgIHJldHZhbCA9IHJ0ZV9hdG9taWMxNl9jbXBzZXQodHhfcS0+ cGxvY2ssIG9sZCwgbmV3X2ZsYWcpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzYxMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjI3MjoKKyAgICAgICB9IHdoaWxlICh1bmxpa2VseShyZXR2YWwgPT0gMCkpOyQKCldB Uk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzYxNTogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI3NDoKKyAgICAgICBmb3IgKGkg PSAwOyBpIDwgbmJfcGt0czsgaSsrKSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBm b3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAoNywgMTUpCiM2MTU6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyNzQ6CisgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX3Br dHM7IGkrKykgeworICAgICAgICAgICAgICAgLyogTm90IGFsbG93ZWQgdG8gVFggbGVzcyB0aGFu IDY0IGJ5dGUgcGFja2V0cyAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3 aGVyZSBwb3NzaWJsZQojNjE2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6Mjc1OgorICAgICAgICAgICAgICAgLyogTm90IGFsbG93ZWQgdG8gVFggbGVzcyB0aGFuIDY0 IGJ5dGUgcGFja2V0cyAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hl cmUgcG9zc2libGUKIzYxNzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjI3NjoKKyAgICAgICAgICAgICAgIGlmIChidWZzW2ldLT5wa3RfbGVuIDwgNjApIHskCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2MTc6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoyNzY6CisgICAgICAgICAgICAgICBp ZiAoYnVmc1tpXS0+cGt0X2xlbiA8IDYwKSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVu dCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAoMTUsIDIzKQojNjE3OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Mjc2OgorICAgICAgICAgICAgICAgaWYgKGJ1ZnNb aV0tPnBrdF9sZW4gPCA2MCkgeworICAgICAgICAgICAgICAgICAgICAgICBidWZzW2ldLT5wa3Rf bGVuID0gNjA7CgpXQVJOSU5HOiBicmFjZXMge30gYXJlIG5vdCBuZWNlc3NhcnkgZm9yIHNpbmds ZSBzdGF0ZW1lbnQgYmxvY2tzCiM2MTc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzoyNzY6CisgICAgICAgICAgICAgICBpZiAoYnVmc1tpXS0+cGt0X2xlbiA8IDYwKSB7 CisgICAgICAgICAgICAgICAgICAgICAgIGJ1ZnNbaV0tPnBrdF9sZW4gPSA2MDsKKyAgICAgICAg ICAgICAgIH0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2li bGUKIzYxODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI3NzoKKyAg ICAgICAgICAgICAgICAgICAgICAgYnVmc1tpXS0+cGt0X2xlbiA9IDYwOyQKCldBUk5JTkc6IHBs ZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzYxODogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI3NzoKKyAgICAgICAgICAgICAgICAgICAgICAg YnVmc1tpXS0+cGt0X2xlbiA9IDYwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRh YnMgd2hlcmUgcG9zc2libGUKIzYxOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjI3ODoKKyAgICAgICAgICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNl cyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2MTk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzoyNzg6CisgICAgICAgICAgICAgICB9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNjIwOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6Mjc5OgorICAgICAgICAgICAgICAgLyogdHJhbnNtaXQgYSBz aW5nbGUgcGFja2V0ICovJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzYyMTog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI4MDoKKyAgICAgICAgICAg ICAgIE5UX05ldFR4UmluZ2J1ZmZlclRyYW5zbWl0UGFja2V0KHR4X3EtPnBOZXRUeCwgcnRlX3Br dG1idWZfbXRvZChidWZzW2ldLCB1aW50OF90ICopLCBidWZzW2ldLT5wa3RfbGVuICsgNCAtIHR4 X3EtPmZjc19hZGQpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBw b3NzaWJsZQojNjIxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Mjgw OgorICAgICAgICAgICAgICAgTlRfTmV0VHhSaW5nYnVmZmVyVHJhbnNtaXRQYWNrZXQodHhfcS0+ cE5ldFR4LCBydGVfcGt0bWJ1Zl9tdG9kKGJ1ZnNbaV0sIHVpbnQ4X3QgKiksIGJ1ZnNbaV0tPnBr dF9sZW4gKyA0IC0gdHhfcS0+ZmNzX2FkZCk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMg YXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjIxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6MjgwOgorICAgICAgICAgICAgICAgTlRfTmV0VHhSaW5nYnVmZmVyVHJhbnNt aXRQYWNrZXQodHhfcS0+cE5ldFR4LCBydGVfcGt0bWJ1Zl9tdG9kKGJ1ZnNbaV0sIHVpbnQ4X3Qg KiksIGJ1ZnNbaV0tPnBrdF9sZW4gKyA0IC0gdHhfcS0+ZmNzX2FkZCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNjIyOiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjgxOgorICAgICAgICAgICAgICAgcnRlX3BrdG1i dWZfZnJlZShidWZzW2ldKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3Rh cnQgb2YgYSBsaW5lCiM2MjI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu YzoyODE6CisgICAgICAgICAgICAgICBydGVfcGt0bWJ1Zl9mcmVlKGJ1ZnNbaV0pOyQKCldBUk5J Tkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzYyMzogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI4MjoKKyAgICAgICB9JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjI0OiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MjgzOgorICAgICAgIHR4X3EtPnR4X3Br dHMgKz0gbmJfcGt0czskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM2MjY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoy ODU6CisgICAgICAgKnR4X3EtPnBsb2NrID0gMDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNl cyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2Mjc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzoyODY6CisgICAgICAgcmV0dXJuIG5iX3BrdHM7JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjM1OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Mjk0OgorICAgICAgIHN0cnVjdCBwbWRfaW50ZXJu YWxzICppbnRlcm5hbHMgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzYzNjogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjI5NToKKyAgICAgICBzdHJ1Y3QgbnRuaWNfcnhfcXVl dWUgKnJ4X3EgPSBpbnRlcm5hbHMtPnJ4cTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2Mzc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzoyOTY6CisgICAgICAgc3RydWN0IG50bmljX3R4X3F1ZXVlICp0eF9xID0gaW50 ZXJuYWxzLT50eHE7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojNjM4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Mjk3 OgorICAgICAgIHVpbnQgcXVldWU7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojNjM5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6Mjk4OgorICAgICAgIGludCBzdGF0dXMsIGlkeDskCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2NDE6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzozMDA6CisgICAgICAgUlRFX0xPRyhJTkZPLCBQTUQsICJOVE5J QzogJXMKIiwgX19mdW5jX18pOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBz dGFydCBvZiBhIGxpbmUKIzY0MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjMwMjoKKyAgICAgICBpZiAoKGludGVybmFscy0+bmJfdHhfcXVldWVzIHwgaW50ZXJuYWxz LT5uYl9yeF9xdWV1ZXMpID09IDApIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZv ciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzY0MzogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjMwMjoKKyAgICAgICBpZiAoKGludGVybmFscy0+bmJfdHhf cXVldWVzIHwgaW50ZXJuYWxzLT5uYl9yeF9xdWV1ZXMpID09IDApIHsKKyAgICAgICAgICAgICAg IHJldHVybiAtMTsKCldBUk5JTkc6IGJyYWNlcyB7fSBhcmUgbm90IG5lY2Vzc2FyeSBmb3Igc2lu Z2xlIHN0YXRlbWVudCBibG9ja3MKIzY0MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjMwMjoKKyAgICAgICBpZiAoKGludGVybmFscy0+bmJfdHhfcXVldWVzIHwgaW50 ZXJuYWxzLT5uYl9yeF9xdWV1ZXMpID09IDApIHsKKyAgICAgICAgICAgICAgIHJldHVybiAtMTsK KyAgICAgICB9CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3Np YmxlCiM2NDQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMDM6Cisg ICAgICAgICAgICAgICByZXR1cm4gLTE7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQg dGhlIHN0YXJ0IG9mIGEgbGluZQojNjQ0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6MzAzOgorICAgICAgICAgICAgICAgcmV0dXJuIC0xOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzY0NTogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMwNDoKKyAgICAgICB9JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjQ3OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6MzA2OgorICAgICAgIGZvciAocXVldWUgPSAwOyBxdWV1 ZSA8IGludGVybmFscy0+bmJfcnhfcXVldWVzOyBxdWV1ZSsrKSB7JAoKV0FSTklORzogc3VzcGVj dCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAoNywgMTUpCiM2NDc6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMDY6CisgICAgICAgZm9yIChx dWV1ZSA9IDA7IHF1ZXVlIDwgaW50ZXJuYWxzLT5uYl9yeF9xdWV1ZXM7IHF1ZXVlKyspIHsKKyAg ICAgICAgICAgICAgIGlmIChyeF9xW3F1ZXVlXS5lbmFibGVkKSB7CgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM2NDg6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMDc6CisgICAgICAgICAgICAgICBpZiAocnhfcVtxdWV1 ZV0uZW5hYmxlZCkgeyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzY0ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMw NzoKKyAgICAgICAgICAgICAgIGlmIChyeF9xW3F1ZXVlXS5lbmFibGVkKSB7JAoKV0FSTklORzog c3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAoMTUsIDIzKQoj NjQ4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzA3OgorICAgICAg ICAgICAgICAgaWYgKHJ4X3FbcXVldWVdLmVuYWJsZWQpIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgY2hhciBzdHJbMTI4XSwgdmFsWzEwXTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNl IHRhYnMgd2hlcmUgcG9zc2libGUKIzY0OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjMwODoKKyAgICAgICAgICAgICAgICAgICAgICAgY2hhciBzdHJbMTI4XSwgdmFs WzEwXTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5l CiM2NDk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMDg6CisgICAg ICAgICAgICAgICAgICAgICAgIGNoYXIgc3RyWzEyOF0sIHZhbFsxMF07JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNjUwOiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzA5OgorICAgICAgICAgICAgICAgICAgICAgICBz dHJbMF0gPSAwOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBh IGxpbmUKIzY1MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMwOToK KyAgICAgICAgICAgICAgICAgICAgICAgc3RyWzBdID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM2NTE6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzozMTA6CisgICAgICAgICAgICAgICAgICAgICAgIC8qIGJ1aWxk IGxpc3Qgb2Ygc3RyZWFtaWRzIHRvIGxvZyAqLyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFy YWN0ZXJzCiM2NTI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMTE6 CisgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgcnhfcVtxdWV1ZV0u YXN0cmVhbWlkcy5jb3VudDsgaWR4KyspIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNl IHRhYnMgd2hlcmUgcG9zc2libGUKIzY1MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjMxMToKKyAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpZHggPSAwOyBpZHgg PCByeF9xW3F1ZXVlXS5hc3RyZWFtaWRzLmNvdW50OyBpZHgrKykgeyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzY1MjogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMxMToKKyAgICAgICAgICAgICAgICAgICAgICAgZm9y IChpZHggPSAwOyBpZHggPCByeF9xW3F1ZXVlXS5hc3RyZWFtaWRzLmNvdW50OyBpZHgrKykgeyQK CldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMg KDIzLCAzMSkKIzY1MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMx MToKKyAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpZHggPSAwOyBpZHggPCByeF9xW3F1ZXVl XS5hc3RyZWFtaWRzLmNvdW50OyBpZHgrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIChpZHgpIHNwcmludGYodmFsLCIsJWQiLHJ4X3FbcXVldWVdLmFzdHJlYW1pZHMudmFs dWVbaWR4XSk7CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNjUzOiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzEyOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChpZHgpIHNwcmludGYodmFsLCIsJWQiLHJ4X3FbcXVldWVdLmFzdHJl YW1pZHMudmFsdWVbaWR4XSk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdo ZXJlIHBvc3NpYmxlCiM2NTM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu YzozMTI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlkeCkgc3ByaW50Zih2 YWwsIiwlZCIscnhfcVtxdWV1ZV0uYXN0cmVhbWlkcy52YWx1ZVtpZHhdKTskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2NTM6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMTI6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKGlkeCkgc3ByaW50Zih2YWwsIiwlZCIscnhfcVtxdWV1ZV0uYXN0cmVhbWlk cy52YWx1ZVtpZHhdKTskCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhhdCAnLCcgKGN0 eDpWeFYpCiM2NTM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMTI6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlkeCkgc3ByaW50Zih2YWwsIiwl ZCIscnhfcVtxdWV1ZV0uYXN0cmVhbWlkcy52YWx1ZVtpZHhdKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSByZXF1aXJl ZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzY1MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjMxMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo aWR4KSBzcHJpbnRmKHZhbCwiLCVkIixyeF9xW3F1ZXVlXS5hc3RyZWFtaWRzLnZhbHVlW2lkeF0p OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgoKRVJST1I6IHRyYWlsaW5nIHN0YXRlbWVudHMgc2hvdWxkIGJlIG9uIG5leHQgbGluZQoj NjUzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzEyOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZHgpIHNwcmludGYodmFsLCIsJWQiLHJ4X3Fb cXVldWVdLmFzdHJlYW1pZHMudmFsdWVbaWR4XSk7CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hh cmFjdGVycwojNjU0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzEz OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc3ByaW50Zih2YWwsICIlaSIs cnhfcVtxdWV1ZV0uYXN0cmVhbWlkcy52YWx1ZVtpZHhdKTsKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzY1NDogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjMxMzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl bHNlIHNwcmludGYodmFsLCAiJWkiLHJ4X3FbcXVldWVdLmFzdHJlYW1pZHMudmFsdWVbaWR4XSk7 JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjU0 OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzEzOgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc3ByaW50Zih2YWwsICIlaSIscnhfcVtxdWV1ZV0u YXN0cmVhbWlkcy52YWx1ZVtpZHhdKTskCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhh dCAnLCcgKGN0eDpWeFYpCiM2NTQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzozMTM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzcHJpbnRmKHZh bCwgIiVpIixyeF9xW3F1ZXVlXS5hc3RyZWFtaWRzLnZhbHVlW2lkeF0pOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogdHJhaWxp bmcgc3RhdGVtZW50cyBzaG91bGQgYmUgb24gbmV4dCBsaW5lCiM2NTQ6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMTM6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZWxzZSBzcHJpbnRmKHZhbCwgIiVpIixyeF9xW3F1ZXVlXS5hc3RyZWFtaWRzLnZhbHVl W2lkeF0pOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJs ZQojNjU1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzE0OgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNhdChzdHIsIHZhbCk7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjU1OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzE0OgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cmNhdChzdHIsIHZhbCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1 c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNjU2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6MzE1OgorICAgICAgICAgICAgICAgICAgICAgICB9JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjU2OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzE1OgorICAgICAgICAgICAgICAgICAgICAgICB9 JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzY1ODogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMxNzoKKyAgICAgICAgICAgICAgICAgICAgICAgZm9y IChpZHggPSAwOyBpZHggPCByeF9xW3F1ZXVlXS5hc3RyZWFtaWRzLmNvdW50OyBpZHgrKykgewoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNjU4OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzE3OgorICAgICAgICAgICAg ICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IHJ4X3FbcXVldWVdLmFzdHJlYW1pZHMuY291 bnQ7IGlkeCsrKSB7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojNjU4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzE3 OgorICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IHJ4X3FbcXVldWVd LmFzdHJlYW1pZHMuY291bnQ7IGlkeCsrKSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVu dCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAoMjMsIDMxKQojNjU4OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzE3OgorICAgICAgICAgICAgICAgICAgICAgICBm b3IgKGlkeCA9IDA7IGlkeCA8IHJ4X3FbcXVldWVdLmFzdHJlYW1pZHMuY291bnQ7IGlkeCsrKSB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzdGF0dXMgPSBOVF9OZXRSeE9w ZW4oJnJ4X3FbcXVldWVdLnBOZXRSeFtpZHhdLCAiRFBESyIsIE5UX05FVF9JTlRFUkZBQ0VfU0VH TUVOVCwKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM2NTk6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMTg6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKChzdGF0dXMgPSBOVF9OZXRSeE9wZW4oJnJ4X3FbcXVldWVdLnBOZXRSeFtp ZHhdLCAiRFBESyIsIE5UX05FVF9JTlRFUkZBQ0VfU0VHTUVOVCwKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzY1OTogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjMxODoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoKHN0YXR1cyA9IE5UX05ldFJ4T3BlbigmcnhfcVtxdWV1ZV0ucE5ldFJ4W2lkeF0sICJE UERLIiwgTlRfTkVUX0lOVEVSRkFDRV9TRUdNRU5ULCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzY1OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjMxODoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo KHN0YXR1cyA9IE5UX05ldFJ4T3BlbigmcnhfcVtxdWV1ZV0ucE5ldFJ4W2lkeF0sICJEUERLIiwg TlRfTkVUX0lOVEVSRkFDRV9TRUdNRU5ULCQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQg Zm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDMxLCAzOSkKIzY1OTogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMxODoKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoKHN0YXR1cyA9IE5UX05ldFJ4T3BlbigmcnhfcVtxdWV1ZV0ucE5ldFJ4W2lkeF0s ICJEUERLIiwgTlRfTkVUX0lOVEVSRkFDRV9TRUdNRU5ULApbLi4uXQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogdHJ5IHBhY2tldCBpbnRlcmZhY2UgaW5zdGVhZCAq LwoKRVJST1I6IGRvIG5vdCB1c2UgYXNzaWdubWVudCBpbiBpZiBjb25kaXRpb24KIzY1OTogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMxODoKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoKHN0YXR1cyA9IE5UX05ldFJ4T3BlbigmcnhfcVtxdWV1ZV0u cE5ldFJ4W2lkeF0sICJEUERLIiwgTlRfTkVUX0lOVEVSRkFDRV9TRUdNRU5ULAoKV0FSTklORzog bGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzY2MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjMxOToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcnhfcVtxdWV1ZV0uYXN0cmVhbWlkcy52YWx1ZVtpZHhdLCAtMSkpICE9IE5UX1NV Q0NFU1MpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2li bGUKIzY2MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMxOToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnhfcVtxdWV1ZV0u YXN0cmVhbWlkcy52YWx1ZVtpZHhdLCAtMSkpICE9IE5UX1NVQ0NFU1MpIHskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2NjA6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMTk6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJ4X3FbcXVldWVdLmFzdHJlYW1pZHMudmFsdWVbaWR4 XSwgLTEpKSAhPSBOVF9TVUNDRVNTKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2Ug dGFicyB3aGVyZSBwb3NzaWJsZQojNjYxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6MzIwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog dHJ5IHBhY2tldCBpbnRlcmZhY2UgaW5zdGVhZCAqLyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBj aGFyYWN0ZXJzCiM2NjI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoz MjE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVF9FeHBsYWluRXJy b3Ioc3RhdHVzLCBlcnJvckJ1ZmZlciwgc2l6ZW9mKGVycm9yQnVmZmVyKSk7CgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM2NjI6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMjE6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVF9FeHBsYWluRXJyb3Ioc3RhdHVzLCBlcnJvckJ1ZmZlciwgc2l6 ZW9mKGVycm9yQnVmZmVyKSk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0 YXJ0IG9mIGEgbGluZQojNjYyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6MzIxOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRfRXhwbGFp bkVycm9yKHN0YXR1cywgZXJyb3JCdWZmZXIsIHNpemVvZihlcnJvckJ1ZmZlcikpOyQKCldBUk5J Tkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM2NjM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzozMjI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSVEVfTE9HKEVSUiwgUE1ELCAiTlRfTmV0UnhPcGVuKCkgZmFpbGVkOiAlcwoiLCBlcnJv ckJ1ZmZlcik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3Np YmxlCiM2NjM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMjI6Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgUE1ELCAi TlRfTmV0UnhPcGVuKCkgZmFpbGVkOiAlcwoiLCBlcnJvckJ1ZmZlcik7JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjYzOiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzIyOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUlRFX0xPRyhFUlIsIFBNRCwgIk5UX05ldFJ4T3BlbigpIGZhaWxlZDog JXMKIiwgZXJyb3JCdWZmZXIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMg d2hlcmUgcG9zc2libGUKIzY2NDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjMyMzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt MTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2 NjQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMjM6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNjY1OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzI0OgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiM2NjU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMjQ6Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzY2NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjMyNToKKyAgICAgICAgICAgICAgICAgICAgICAgfSQKCldBUk5JTkc6 IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzY2NjogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMyNToKKyAgICAgICAgICAgICAgICAgICAg ICAgfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUK IzY2NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMyNjoKKyAgICAg ICAgICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiM2Njc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMjY6 CisgICAgICAgICAgICAgICB9JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0 YXJ0IG9mIGEgbGluZQojNjY4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6MzI3OgorICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3Rh cnQgb2YgYSBsaW5lCiM2NzA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu YzozMjk6CisgICAgICAgZm9yIChxdWV1ZSA9IDA7IHF1ZXVlIDwgaW50ZXJuYWxzLT5uYl90eF9x dWV1ZXM7IHF1ZXVlKyspIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25k aXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzY3MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjMyOToKKyAgICAgICBmb3IgKHF1ZXVlID0gMDsgcXVldWUgPCBpbnRl cm5hbHMtPm5iX3R4X3F1ZXVlczsgcXVldWUrKykgeworICAgICAgICAgICAgICAgaWYgKHR4X3Fb cXVldWVdLmVuYWJsZWQpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hl cmUgcG9zc2libGUKIzY3MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjMzMDoKKyAgICAgICAgICAgICAgIGlmICh0eF9xW3F1ZXVlXS5lbmFibGVkKSB7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjcxOiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzMwOgorICAgICAgICAgICAgICAgaWYg KHR4X3FbcXVldWVdLmVuYWJsZWQpIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZv ciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiM2NzE6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzA6CisgICAgICAgICAgICAgICBpZiAodHhfcVtxdWV1 ZV0uZW5hYmxlZCkgeworICAgICAgICAgICAgICAgICAgICAgICBSVEVfTE9HKElORk8sIFBNRCwg Ik5UTklDOiBOVF9OZXRUeE9wZW4oJWQpCiIsIHR4X3FbcXVldWVdLnBvcnQpOwoKV0FSTklORzog bGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzY3MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjMzMToKKyAgICAgICAgICAgICAgICAgICAgICAgUlRFX0xPRyhJTkZPLCBQ TUQsICJOVE5JQzogTlRfTmV0VHhPcGVuKCVkKQoiLCB0eF9xW3F1ZXVlXS5wb3J0KTsKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzY3MjogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMzMToKKyAgICAgICAgICAgICAgICAg ICAgICAgUlRFX0xPRyhJTkZPLCBQTUQsICJOVE5JQzogTlRfTmV0VHhPcGVuKCVkKQoiLCB0eF9x W3F1ZXVlXS5wb3J0KTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM2NzI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzoz MzE6CisgICAgICAgICAgICAgICAgICAgICAgIFJURV9MT0coSU5GTywgUE1ELCAiTlROSUM6IE5U X05ldFR4T3BlbiglZCkKIiwgdHhfcVtxdWV1ZV0ucG9ydCk7JAoKV0FSTklORzogbGluZSBvdmVy IDgwIGNoYXJhY3RlcnMKIzY3MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjMzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzdGF0dXMgPSBOVF9OZXRUeE9w ZW4oJnR4X3FbcXVldWVdLnBOZXRUeCwgIkRQREsiLCAxIDw8IHR4X3FbcXVldWVdLnBvcnQsCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM2NzM6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzI6CisgICAgICAgICAgICAg ICAgICAgICAgIGlmICgoc3RhdHVzID0gTlRfTmV0VHhPcGVuKCZ0eF9xW3F1ZXVlXS5wTmV0VHgs ICJEUERLIiwgMSA8PCB0eF9xW3F1ZXVlXS5wb3J0LCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzY3MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjMzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzdGF0dXMg PSBOVF9OZXRUeE9wZW4oJnR4X3FbcXVldWVdLnBOZXRUeCwgIkRQREsiLCAxIDw8IHR4X3FbcXVl dWVdLnBvcnQsJAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwg c3RhdGVtZW50cyAoMjMsIDMxKQojNjczOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6MzMyOgorICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXR1cyA9IE5UX05l dFR4T3BlbigmdHhfcVtxdWV1ZV0ucE5ldFR4LCAiRFBESyIsIDEgPDwgdHhfcVtxdWV1ZV0ucG9y dCwKWy4uLl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVF9FeHBsYWluRXJyb3Io c3RhdHVzLCBlcnJvckJ1ZmZlciwgc2l6ZW9mKGVycm9yQnVmZmVyKSk7CgpFUlJPUjogZG8gbm90 IHVzZSBhc3NpZ25tZW50IGluIGlmIGNvbmRpdGlvbgojNjczOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6MzMyOgorICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHN0 YXR1cyA9IE5UX05ldFR4T3BlbigmdHhfcVtxdWV1ZV0ucE5ldFR4LCAiRFBESyIsIDEgPDwgdHhf cVtxdWV1ZV0ucG9ydCwKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM2NzQ6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzM6CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGV2LT5wY2lfZGV2LT5udW1hX25vZGUsIDApKSAhPSBOVF9TVUNDRVNTKSB7CgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM2NzQ6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzM6CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGV2LT5wY2lfZGV2LT5udW1hX25vZGUsIDApKSAhPSBOVF9TVUNDRVNTKSB7JAoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjc0OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzMzOgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRldi0+cGNpX2Rldi0+bnVtYV9ub2RlLCAwKSkgIT0gTlRfU1VDQ0VTUykgeyQK CldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM2NzU6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlRfRXhwbGFpbkVycm9yKHN0YXR1cywgZXJyb3JCdWZmZXIsIHNpemVvZihlcnJvckJ1ZmZl cikpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQoj Njc1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzM0OgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5UX0V4cGxhaW5FcnJvcihzdGF0dXMsIGVycm9yQnVm ZmVyLCBzaXplb2YoZXJyb3JCdWZmZXIpKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2NzU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzozMzQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRfRXhwbGFp bkVycm9yKHN0YXR1cywgZXJyb3JCdWZmZXIsIHNpemVvZihlcnJvckJ1ZmZlcikpOyQKCldBUk5J Tkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM2NzY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzozMzU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRF X0xPRyhJTkZPLCBQTUQsICJOVF9OZXRUeE9wZW4oMHglWCwgJWQsIDApIGZhaWxlZDogJXMKIiwg MSA8PCB0eF9xW3F1ZXVlXS5wb3J0LAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFi cyB3aGVyZSBwb3NzaWJsZQojNjc2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6MzM1OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJURV9MT0coSU5GTywg UE1ELCAiTlRfTmV0VHhPcGVuKDB4JVgsICVkLCAwKSBmYWlsZWQ6ICVzCiIsIDEgPDwgdHhfcVtx dWV1ZV0ucG9ydCwkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiM2NzY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzU6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRFX0xPRyhJTkZPLCBQTUQsICJOVF9O ZXRUeE9wZW4oMHglWCwgJWQsIDApIGZhaWxlZDogJXMKIiwgMSA8PCB0eF9xW3F1ZXVlXS5wb3J0 LCQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM2Nzc6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzY6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRldi0+cGNpX2Rldi0+bnVtYV9ub2RlLCBlcnJvckJ1ZmZl cik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM2 Nzc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzY6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+cGNpX2Rldi0+bnVt YV9ub2RlLCBlcnJvckJ1ZmZlcik7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojNjc3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6MzM2OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkZXYtPnBjaV9kZXYtPm51bWFfbm9kZSwgZXJyb3JCdWZmZXIpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzY3ODogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjMzNzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gLTE7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojNjc4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 MzM3OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM2Nzk6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzg6CisgICAgICAgICAgICAgICAgICAg ICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5l CiM2Nzk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozMzg6CisgICAg ICAgICAgICAgICAgICAgICAgIH0kCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwoj NjgxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQwOgorICAgICAg ICAgICAgICAgICAgICAgICAvKiBJbml0aWFsaXplIGFuZCBhc3NvY2lhdGUgUlREIFR4IFJpbmcg YnVmZmVyIHRvIFR4IGhhbmRsZXIgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRh YnMgd2hlcmUgcG9zc2libGUKIzY4MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjM0MDoKKyAgICAgICAgICAgICAgICAgICAgICAgLyogSW5pdGlhbGl6ZSBhbmQgYXNz b2NpYXRlIFJURCBUeCBSaW5nIGJ1ZmZlciB0byBUeCBoYW5kbGVyICovJAoKV0FSTklORzogbGlu ZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzY4MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjM0MToKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzdGF0dXMgPSBOVF9O ZXRUeFJpbmdidWZmZXJJbml0KHR4X3FbcXVldWVdLnBOZXRUeCwgdHhfcVtxdWV1ZV0ucG9ydCkp ICE9IE5UX1NVQ0NFU1MpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hl cmUgcG9zc2libGUKIzY4MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjM0MToKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzdGF0dXMgPSBOVF9OZXRUeFJpbmdi dWZmZXJJbml0KHR4X3FbcXVldWVdLnBOZXRUeCwgdHhfcVtxdWV1ZV0ucG9ydCkpICE9IE5UX1NV Q0NFU1MpIHskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiM2ODI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNDE6Cisg ICAgICAgICAgICAgICAgICAgICAgIGlmICgoc3RhdHVzID0gTlRfTmV0VHhSaW5nYnVmZmVySW5p dCh0eF9xW3F1ZXVlXS5wTmV0VHgsIHR4X3FbcXVldWVdLnBvcnQpKSAhPSBOVF9TVUNDRVNTKSB7 JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50 cyAoMjMsIDMxKQojNjgyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 MzQxOgorICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXR1cyA9IE5UX05ldFR4UmluZ2J1 ZmZlckluaXQodHhfcVtxdWV1ZV0ucE5ldFR4LCB0eF9xW3F1ZXVlXS5wb3J0KSkgIT0gTlRfU1VD Q0VTUykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UX0V4cGxhaW5FcnJvcihz dGF0dXMsIGVycm9yQnVmZmVyLCBzaXplb2YoZXJyb3JCdWZmZXIpKTsKCkVSUk9SOiBkbyBub3Qg dXNlIGFzc2lnbm1lbnQgaW4gaWYgY29uZGl0aW9uCiM2ODI6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzozNDE6CisgICAgICAgICAgICAgICAgICAgICAgIGlmICgoc3Rh dHVzID0gTlRfTmV0VHhSaW5nYnVmZmVySW5pdCh0eF9xW3F1ZXVlXS5wTmV0VHgsIHR4X3FbcXVl dWVdLnBvcnQpKSAhPSBOVF9TVUNDRVNTKSB7CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFj dGVycwojNjgzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQyOgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UX0V4cGxhaW5FcnJvcihzdGF0dXMsIGVy cm9yQnVmZmVyLCBzaXplb2YoZXJyb3JCdWZmZXIpKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzY4MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjM0MjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVF9F eHBsYWluRXJyb3Ioc3RhdHVzLCBlcnJvckJ1ZmZlciwgc2l6ZW9mKGVycm9yQnVmZmVyKSk7JAoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjgzOiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQyOgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5UX0V4cGxhaW5FcnJvcihzdGF0dXMsIGVycm9yQnVmZmVyLCBz aXplb2YoZXJyb3JCdWZmZXIpKTskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwoj Njg0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQzOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJURV9MT0coRVJSLCBQTUQsICJOVF9OZXRSeE9wZW4o KSBmYWlsZWQ6ICVzCiIsIGVycm9yQnVmZmVyKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg dXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzY4NDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjM0MzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVEVfTE9H KEVSUiwgUE1ELCAiTlRfTmV0UnhPcGVuKCkgZmFpbGVkOiAlcwoiLCBlcnJvckJ1ZmZlcik7JAoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjg0OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQzOgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJURV9MT0coRVJSLCBQTUQsICJOVF9OZXRSeE9wZW4oKSBmYWls ZWQ6ICVzCiIsIGVycm9yQnVmZmVyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0 YWJzIHdoZXJlIHBvc3NpYmxlCiM2ODU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzozNDQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOyQK CldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzY4NTog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM0NDoKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNjg2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6MzQ1OgorICAgICAgICAgICAgICAgICAgICAgICB9JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjg2OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQ1OgorICAgICAgICAgICAgICAgICAgICAg ICB9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQoj Njg3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQ2OgorICAgICAg ICAgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBh IGxpbmUKIzY4NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM0NjoK KyAgICAgICAgICAgICAgIH0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdo ZXJlIHBvc3NpYmxlCiM2ODg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu YzozNDc6CisgICAgICAgICAgICAgICB0eF9xW3F1ZXVlXS5wbG9jayA9ICZwb3J0X2xvY2tzW3R4 X3FbcXVldWVdLnBvcnRdOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFy dCBvZiBhIGxpbmUKIzY4ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjM0NzoKKyAgICAgICAgICAgICAgIHR4X3FbcXVldWVdLnBsb2NrID0gJnBvcnRfbG9ja3NbdHhf cVtxdWV1ZV0ucG9ydF07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVy ZSBwb3NzaWJsZQojNjg5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 MzQ4OgorICAgICAgICAgICAgICAgdHhfcVtxdWV1ZV0uZmNzX2FkZCA9IChpbnRlcm5hbHMtPk1B Q181MEcpPzQ6MDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiM2ODk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNDg6 CisgICAgICAgICAgICAgICB0eF9xW3F1ZXVlXS5mY3NfYWRkID0gKGludGVybmFscy0+TUFDXzUw Ryk/NDowOyQKCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJz8nIChjdHg6VnhW KQojNjg5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQ4OgorICAg ICAgICAgICAgICAgdHhfcVtxdWV1ZV0uZmNzX2FkZCA9IChpbnRlcm5hbHMtPk1BQ181MEcpPzQ6 MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJzonIChjdHg6VnhWKQoj Njg5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQ4OgorICAgICAg ICAgICAgICAgdHhfcVtxdWV1ZV0uZmNzX2FkZCA9IChpbnRlcm5hbHMtPk1BQ181MEcpPzQ6MDsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoj NjkwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzQ5OgorICAgICAg IH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM2 OTI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNTE6CisgICAgICAg ZGV2LT5kYXRhLT5kZXZfbGluay5saW5rX3N0YXR1cyA9IDE7JAoKV0FSTklORzogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNjkzOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6MzUyOgorICAgICAgIHJldHVybiAwOyQKCldBUk5JTkc6IG5l dHdvcmtpbmcgYmxvY2sgY29tbWVudHMgZG9uJ3QgdXNlIGFuIGVtcHR5IC8qIGxpbmUsIHVzZSAv KiBDb21tZW50Li4uCiM2OTc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu YzozNTY6CisvKgorICogVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB3aGVuIHRoZSBjdXJyZW50 IHBvcnQgZ2V0cyBzdG9wcGVkLgoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0 YXJ0IG9mIGEgbGluZQojNzA0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6MzYzOgorICAgICAgIHN0cnVjdCBwbWRfaW50ZXJuYWxzICppbnRlcm5hbHMgPSBkZXYtPmRh dGEtPmRldl9wcml2YXRlOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFy dCBvZiBhIGxpbmUKIzcwNTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjM2NDoKKyAgICAgICBzdHJ1Y3QgbnRuaWNfcnhfcXVldWUgKnJ4X3EgPSBpbnRlcm5hbHMtPnJ4 cTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3 MDY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNjU6CisgICAgICAg c3RydWN0IG50bmljX3R4X3F1ZXVlICp0eF9xID0gaW50ZXJuYWxzLT50eHE7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzA3OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzY2OgorICAgICAgIHVpbnQgcXVldWU7JAoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzA4OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzY3OgorICAgICAgIGludCBp ZHg7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoj NzA5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6MzY4OgorICAgICAg IFJURV9MT0coSU5GTywgUE1ELCAiTlROSUM6ICVzCiIsIF9fZnVuY19fKTskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3MTE6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNzA6CisgICAgICAgZm9yIChxdWV1ZSA9IDA7 IHF1ZXVlIDwgaW50ZXJuYWxzLT5uYl9yeF9xdWV1ZXM7IHF1ZXVlKyspIHskCgpXQVJOSU5HOiBz dXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzcx MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM3MDoKKyAgICAgICBm b3IgKHF1ZXVlID0gMDsgcXVldWUgPCBpbnRlcm5hbHMtPm5iX3J4X3F1ZXVlczsgcXVldWUrKykg eworICAgICAgICAgICAgICAgaWYgKHJ4X3FbcXVldWVdLnBTZWcpIHsKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzcxMjogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM3MToKKyAgICAgICAgICAgICAgIGlmIChyeF9xW3F1 ZXVlXS5wU2VnKSB7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojNzEyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Mzcx OgorICAgICAgICAgICAgICAgaWYgKHJ4X3FbcXVldWVdLnBTZWcpIHskCgpXQVJOSU5HOiBzdXNw ZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiM3MTI6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNzE6CisgICAgICAgICAg ICAgICBpZiAocnhfcVtxdWV1ZV0ucFNlZykgeworICAgICAgICAgICAgICAgICAgICAgICBOVF9O ZXRSeFJlbGVhc2UocnhfcVtxdWV1ZV0ucE5ldFJ4W3J4X3EtPmN1ck5ldFJ4X2lkeF0sIHJ4X3Fb cXVldWVdLnBTZWcpOwoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzcxMzogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM3MjoKKyAgICAgICAgICAgICAg ICAgICAgICAgTlRfTmV0UnhSZWxlYXNlKHJ4X3FbcXVldWVdLnBOZXRSeFtyeF9xLT5jdXJOZXRS eF9pZHhdLCByeF9xW3F1ZXVlXS5wU2VnKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNl IHRhYnMgd2hlcmUgcG9zc2libGUKIzcxMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjM3MjoKKyAgICAgICAgICAgICAgICAgICAgICAgTlRfTmV0UnhSZWxlYXNlKHJ4 X3FbcXVldWVdLnBOZXRSeFtyeF9xLT5jdXJOZXRSeF9pZHhdLCByeF9xW3F1ZXVlXS5wU2VnKTsk CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3MTM6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNzI6CisgICAgICAgICAg ICAgICAgICAgICAgIE5UX05ldFJ4UmVsZWFzZShyeF9xW3F1ZXVlXS5wTmV0UnhbcnhfcS0+Y3Vy TmV0UnhfaWR4XSwgcnhfcVtxdWV1ZV0ucFNlZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNzE0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6MzczOgorICAgICAgICAgICAgICAgICAgICAgICByeF9xW3F1ZXVlXS5w U2VnID0gTlVMTDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiM3MTQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNzM6 CisgICAgICAgICAgICAgICAgICAgICAgIHJ4X3FbcXVldWVdLnBTZWcgPSBOVUxMOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzcxNTogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM3NDoKKyAgICAgICAgICAgICAgIH0k CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3MTU6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNzQ6CisgICAgICAgICAg ICAgICB9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJs ZQojNzE2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Mzc1OgorICAg ICAgICAgICAgICAgZm9yIChpZHggPSAwOyBpZHggPCByeF9xW3F1ZXVlXS5hc3RyZWFtaWRzLmNv dW50OyBpZHgrKykgeyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzcxNjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM3 NToKKyAgICAgICAgICAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgcnhfcVtxdWV1ZV0uYXN0cmVh bWlkcy5jb3VudDsgaWR4KyspIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBj b25kaXRpb25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiM3MTY6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzozNzU6CisgICAgICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGlk eCA8IHJ4X3FbcXVldWVdLmFzdHJlYW1pZHMuY291bnQ7IGlkeCsrKSB7CisgICAgICAgICAgICAg ICAgICAgICAgIGlmIChyeF9xW3F1ZXVlXS5wTmV0UnhbaWR4XSkgewoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNzE3OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6Mzc2OgorICAgICAgICAgICAgICAgICAgICAgICBpZiAo cnhfcVtxdWV1ZV0ucE5ldFJ4W2lkeF0pIHskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3MTc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzozNzY6CisgICAgICAgICAgICAgICAgICAgICAgIGlmIChyeF9xW3F1ZXVlXS5w TmV0UnhbaWR4XSkgeyQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlv bmFsIHN0YXRlbWVudHMgKDIzLCAzMSkKIzcxNzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjM3NjoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJ4X3FbcXVldWVd LnBOZXRSeFtpZHhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpTlRf TmV0UnhDbG9zZShyeF9xW3F1ZXVlXS5wTmV0UnhbaWR4XSk7CgpXQVJOSU5HOiBicmFjZXMge30g YXJlIG5vdCBuZWNlc3NhcnkgZm9yIHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2tzCiM3MTc6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozNzY6CisgICAgICAgICAgICAgICAg ICAgICAgIGlmIChyeF9xW3F1ZXVlXS5wTmV0UnhbaWR4XSkgeworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh2b2lkKU5UX05ldFJ4Q2xvc2UocnhfcVtxdWV1ZV0ucE5ldFJ4W2lkeF0p OworICAgICAgICAgICAgICAgICAgICAgICB9CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVz ZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM3MTg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzozNzc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpTlRf TmV0UnhDbG9zZShyeF9xW3F1ZXVlXS5wTmV0UnhbaWR4XSk7JAoKV0FSTklORzogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzE4OiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6Mzc3OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICh2b2lkKU5UX05ldFJ4Q2xvc2UocnhfcVtxdWV1ZV0ucE5ldFJ4W2lkeF0pOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzcxOTogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM3ODoKKyAgICAgICAgICAgICAgICAgICAg ICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUK IzcxOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM3ODoKKyAgICAg ICAgICAgICAgICAgICAgICAgfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMg d2hlcmUgcG9zc2libGUKIzcyMDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjM3OToKKyAgICAgICAgICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3MjA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzozNzk6CisgICAgICAgICAgICAgICB9JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzIxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6MzgwOgorICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNw YWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3MjI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzozODE6CisgICAgICAgZm9yIChxdWV1ZSA9IDA7IHF1ZXVlIDwgaW50 ZXJuYWxzLT5uYl90eF9xdWV1ZXM7IHF1ZXVlKyspIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUg aW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzcyMjogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM4MToKKyAgICAgICBmb3IgKHF1ZXVlID0g MDsgcXVldWUgPCBpbnRlcm5hbHMtPm5iX3R4X3F1ZXVlczsgcXVldWUrKykgeworICAgICAgICAg ICAgICAgaWYgKHR4X3FbcXVldWVdLnBOZXRUeCkgewoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNzIzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6MzgyOgorICAgICAgICAgICAgICAgaWYgKHR4X3FbcXVldWVdLnBOZXRU eCkgeyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUK IzcyMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM4MjoKKyAgICAg ICAgICAgICAgIGlmICh0eF9xW3F1ZXVlXS5wTmV0VHgpIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNv ZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiM3MjM6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozODI6CisgICAgICAgICAgICAgICBp ZiAodHhfcVtxdWV1ZV0ucE5ldFR4KSB7CisgICAgICAgICAgICAgICAgICAgICAgIE5UX05ldFR4 UmluZ2J1ZmZlckRvbmUodHhfcVtxdWV1ZV0ucE5ldFR4KTsKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzcyNDogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjM4MzoKKyAgICAgICAgICAgICAgICAgICAgICAgTlRfTmV0VHhS aW5nYnVmZmVyRG9uZSh0eF9xW3F1ZXVlXS5wTmV0VHgpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzcyNDogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjM4MzoKKyAgICAgICAgICAgICAgICAgICAgICAgTlRfTmV0VHhS aW5nYnVmZmVyRG9uZSh0eF9xW3F1ZXVlXS5wTmV0VHgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzcyNTogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjM4NDoKKyAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpTlRf TmV0VHhDbG9zZSh0eF9xW3F1ZXVlXS5wTmV0VHgpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzcyNTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjM4NDoKKyAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpTlRfTmV0 VHhDbG9zZSh0eF9xW3F1ZXVlXS5wTmV0VHgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg dXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzcyNjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjM4NToKKyAgICAgICAgICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3MjY6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzozODU6CisgICAgICAgICAgICAgICB9JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzI3OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Mzg2OgorICAgICAgIH0kCgpXQVJOSU5HOiBwbGVh c2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3Mjg6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozODc6CisgICAgICAgZGV2LT5kYXRhLT5kZXZfbGlu ay5saW5rX3N0YXR1cyA9IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0 YXJ0IG9mIGEgbGluZQojNzM0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6MzkzOgorICAgICAgIFJURV9MT0coSU5GTywgUE1ELCAiTlROSUM6ICVzCiIsIF9fZnVuY19f KTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3 MzU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzozOTQ6CisgICAgICAg cmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3Nz aWJsZQojNzQwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Mzk5Ogor ICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKSQKCldBUk5J Tkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzc0MDogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjM5OToKKyAgICAgICAgICAgICAgIHN0 cnVjdCBydGVfZXRoX2Rldl9pbmZvICpkZXZfaW5mbykkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNw YWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3NDI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo0MDE6CisgICAgICAgc3RydWN0IHBtZF9pbnRlcm5hbHMgKmludGVy bmFscyA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFj ZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzQzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6NDAyOgorICAgICAgIGRldl9pbmZvLT5pZl9pbmRleCA9IGludGVybmFs cy0+aWZfaW5kZXg7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojNzQ0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDAz OgorICAgICAgIGRldl9pbmZvLT5kcml2ZXJfbmFtZSA9IGRyaXZlcm5hbWU7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzQ1OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDA0OgorICAgICAgIGRldl9pbmZvLT5tYXhf bWFjX2FkZHJzID0gMTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM3NDY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0 MDU6CisgICAgICAgZGV2X2luZm8tPm1heF9yeF9wa3RsZW4gPSBIV19NVFU7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzQ3OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDA2OgorICAgICAgIGRldl9pbmZvLT5tYXhf cnhfcXVldWVzID0gKHVpbnQxNl90KWludGVybmFscy0+bmJfcnhfcXVldWVzOyQKCldBUk5JTkc6 IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzc0ODogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQwNzoKKyAgICAgICBkZXZfaW5mby0+bWF4 X3R4X3F1ZXVlcyA9ICh1aW50MTZfdClpbnRlcm5hbHMtPm5iX3R4X3F1ZXVlczskCgpXQVJOSU5H OiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3NDk6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0MDg6CisgICAgICAgZGV2X2luZm8tPm1p bl9yeF9idWZzaXplID0gMDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3Rh cnQgb2YgYSBsaW5lCiM3NTA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu Yzo0MDk6CisgICAgICAgZGV2X2luZm8tPnBjaV9kZXYgPSBOVUxMOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzc1NTogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQxNDoKKyAgICAgICBzdHJ1Y3QgcnRlX2V0aF9zdGF0 cyAqaWdiX3N0YXRzKSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzc1NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQx NjoKKyAgICAgICB1bnNpZ25lZCBpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzc1ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjQxNzoKKyAgICAgICB1bnNpZ25lZCBsb25nIHJ4X3RvdGFsID0gMDskCgpXQVJOSU5H OiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3NTk6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0MTg6CisgICAgICAgdW5zaWduZWQgbG9u ZyB0eF90b3RhbCA9IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojNzYwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 NDE5OgorICAgICAgIHVuc2lnbmVkIGxvbmcgdHhfZXJyX3RvdGFsID0gMDskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3NjE6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0MjA6CisgICAgICAgY29uc3Qgc3RydWN0IHBt ZF9pbnRlcm5hbHMgKmludGVybmFsID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTskCgpXQVJOSU5H OiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3NjM6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0MjI6CisgICAgICAgbWVtc2V0KGlnYl9z dGF0cywgMCwgc2l6ZW9mKCppZ2Jfc3RhdHMpKTskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hh cmFjdGVycwojNzY0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDIz OgorICAgICAgIGZvciAoaSA9IDA7IGkgPCBSVEVfRVRIREVWX1FVRVVFX1NUQVRfQ05UUlMgJiYg aSA8IGludGVybmFsLT5uYl9yeF9xdWV1ZXM7IGkrKykgewoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzY0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NDIzOgorICAgICAgIGZvciAoaSA9IDA7IGkgPCBSVEVfRVRIREVW X1FVRVVFX1NUQVRfQ05UUlMgJiYgaSA8IGludGVybmFsLT5uYl9yeF9xdWV1ZXM7IGkrKykgeyQK CldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMg KDcsIDE1KQojNzY0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDIz OgorICAgICAgIGZvciAoaSA9IDA7IGkgPCBSVEVfRVRIREVWX1FVRVVFX1NUQVRfQ05UUlMgJiYg aSA8IGludGVybmFsLT5uYl9yeF9xdWV1ZXM7IGkrKykgeworICAgICAgICAgICAgICAgaWdiX3N0 YXRzLT5xX2lwYWNrZXRzW2ldID0gaW50ZXJuYWwtPnJ4cVtpXS5yeF9wa3RzOwoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNzY1OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDI0OgorICAgICAgICAgICAgICAgaWdiX3N0 YXRzLT5xX2lwYWNrZXRzW2ldID0gaW50ZXJuYWwtPnJ4cVtpXS5yeF9wa3RzOyQKCldBUk5JTkc6 IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzc2NTogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQyNDoKKyAgICAgICAgICAgICAgIGlnYl9z dGF0cy0+cV9pcGFja2V0c1tpXSA9IGludGVybmFsLT5yeHFbaV0ucnhfcGt0czskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM3NjY6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0MjU6CisgICAgICAgICAgICAgICByeF90 b3RhbCArPSBpZ2Jfc3RhdHMtPnFfaXBhY2tldHNbaV07JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzY2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NDI1OgorICAgICAgICAgICAgICAgcnhfdG90YWwgKz0gaWdiX3N0 YXRzLT5xX2lwYWNrZXRzW2ldOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBz dGFydCBvZiBhIGxpbmUKIzc2NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjQyNjoKKyAgICAgICB9JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzc2 ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQyNzoKKyAgICAgICBm b3IgKGkgPSAwOyBpIDwgUlRFX0VUSERFVl9RVUVVRV9TVEFUX0NOVFJTICYmIGkgPCBpbnRlcm5h bC0+bmJfdHhfcXVldWVzOyBpKyspIHsKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzc2ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjQyNzoKKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgUlRFX0VUSERFVl9RVUVVRV9TVEFU X0NOVFJTICYmIGkgPCBpbnRlcm5hbC0+bmJfdHhfcXVldWVzOyBpKyspIHskCgpXQVJOSU5HOiBz dXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzc2 ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQyNzoKKyAgICAgICBm b3IgKGkgPSAwOyBpIDwgUlRFX0VUSERFVl9RVUVVRV9TVEFUX0NOVFJTICYmIGkgPCBpbnRlcm5h bC0+bmJfdHhfcXVldWVzOyBpKyspIHsKKyAgICAgICAgICAgICAgIGlnYl9zdGF0cy0+cV9vcGFj a2V0c1tpXSA9IGludGVybmFsLT50eHFbaV0udHhfcGt0czsKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzc2OTogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjQyODoKKyAgICAgICAgICAgICAgIGlnYl9zdGF0cy0+cV9vcGFj a2V0c1tpXSA9IGludGVybmFsLT50eHFbaV0udHhfcGt0czskCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3Njk6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo0Mjg6CisgICAgICAgICAgICAgICBpZ2Jfc3RhdHMtPnFfb3Bh Y2tldHNbaV0gPSBpbnRlcm5hbC0+dHhxW2ldLnR4X3BrdHM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNzcwOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6NDI5OgorICAgICAgICAgICAgICAgaWdiX3N0YXRzLT5xX2Vy cm9yc1tpXSA9IGludGVybmFsLT50eHFbaV0uZXJyX3BrdHM7JAoKV0FSTklORzogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzcwOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6NDI5OgorICAgICAgICAgICAgICAgaWdiX3N0YXRzLT5xX2Vy cm9yc1tpXSA9IGludGVybmFsLT50eHFbaV0uZXJyX3BrdHM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNzcxOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6NDMwOgorICAgICAgICAgICAgICAgdHhfdG90YWwgKz0gaWdi X3N0YXRzLT5xX29wYWNrZXRzW2ldOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzc3MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjQzMDoKKyAgICAgICAgICAgICAgIHR4X3RvdGFsICs9IGlnYl9zdGF0cy0+cV9vcGFj a2V0c1tpXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3Np YmxlCiM3NzI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0MzE6Cisg ICAgICAgICAgICAgICB0eF9lcnJfdG90YWwgKz0gaWdiX3N0YXRzLT5xX2Vycm9yc1tpXTskCgpX QVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3NzI6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0MzE6CisgICAgICAgICAgICAg ICB0eF9lcnJfdG90YWwgKz0gaWdiX3N0YXRzLT5xX2Vycm9yc1tpXTskCgpXQVJOSU5HOiBwbGVh c2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3NzM6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0MzI6CisgICAgICAgfSQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzc3NTogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQzNDoKKyAgICAgICBpZ2Jfc3RhdHMtPmlwYWNrZXRz ID0gcnhfdG90YWw7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojNzc2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDM1 OgorICAgICAgIGlnYl9zdGF0cy0+b3BhY2tldHMgPSB0eF90b3RhbDskCgpXQVJOSU5HOiBwbGVh c2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3Nzc6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0MzY6CisgICAgICAgaWdiX3N0YXRzLT5vZXJyb3Jz ID0gdHhfZXJyX3RvdGFsOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFy dCBvZiBhIGxpbmUKIzc4MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjQ0MjoKKyAgICAgICB1bnNpZ25lZCBpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzc4NDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjQ0MzoKKyAgICAgICBzdHJ1Y3QgcG1kX2ludGVybmFscyAqaW50ZXJuYWwgPSBk ZXYtPmRhdGEtPmRldl9wcml2YXRlOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzc4NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjQ0NToKKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW50ZXJuYWwtPm5iX3J4X3F1ZXVl czsgaSsrKSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwg c3RhdGVtZW50cyAoNywgMTUpCiM3ODY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzo0NDU6CisgICAgICAgZm9yIChpID0gMDsgaSA8IGludGVybmFsLT5uYl9yeF9xdWV1 ZXM7IGkrKykgeworICAgICAgICAgICAgICAgaW50ZXJuYWwtPnJ4cVtpXS5yeF9wa3RzID0gMDsK CldBUk5JTkc6IGJyYWNlcyB7fSBhcmUgbm90IG5lY2Vzc2FyeSBmb3Igc2luZ2xlIHN0YXRlbWVu dCBibG9ja3MKIzc4NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQ0 NToKKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW50ZXJuYWwtPm5iX3J4X3F1ZXVlczsgaSsrKSB7 CisgICAgICAgICAgICAgICBpbnRlcm5hbC0+cnhxW2ldLnJ4X3BrdHMgPSAwOworICAgICAgIH0K CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzc4Nzog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQ0NjoKKyAgICAgICAgICAg ICAgIGludGVybmFsLT5yeHFbaV0ucnhfcGt0cyA9IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNzg3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NDQ2OgorICAgICAgICAgICAgICAgaW50ZXJuYWwtPnJ4cVtpXS5y eF9wa3RzID0gMDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiM3ODg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0NDc6 CisgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBh IGxpbmUKIzc4OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQ0ODoK KyAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW50ZXJuYWwtPm5iX3R4X3F1ZXVlczsgaSsrKSB7JAoK V0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAo NywgMTUpCiM3ODk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0NDg6 CisgICAgICAgZm9yIChpID0gMDsgaSA8IGludGVybmFsLT5uYl90eF9xdWV1ZXM7IGkrKykgewor ICAgICAgICAgICAgICAgaW50ZXJuYWwtPnR4cVtpXS50eF9wa3RzID0gMDsKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzc5MDogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQ0OToKKyAgICAgICAgICAgICAgIGludGVybmFs LT50eHFbaV0udHhfcGt0cyA9IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojNzkwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NDQ5OgorICAgICAgICAgICAgICAgaW50ZXJuYWwtPnR4cVtpXS50eF9wa3RzID0gMDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM3OTE6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0NTA6CisgICAgICAgICAg ICAgICBpbnRlcm5hbC0+dHhxW2ldLmVycl9wa3RzID0gMDskCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM3OTE6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo0NTA6CisgICAgICAgICAgICAgICBpbnRlcm5hbC0+dHhxW2ld LmVycl9wa3RzID0gMDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM3OTI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0 NTE6CisgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzc5ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQ1 NzoKKyAgICAgICBSVEVfTE9HKElORk8sIFBNRCwgIk5UTklDOiAlcwoiLCBfX2Z1bmNfXyk7JAoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODA0OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDYzOgorICAgICAgIFJURV9M T0coSU5GTywgUE1ELCAiTlROSUM6ICVzCiIsIF9fZnVuY19fKTskCgpXQVJOSU5HOiBwbGVhc2Us IG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4MDk6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0Njg6CisgICAgICAgaW50IHdhaXRfdG9fY29tcGxldGUg X19ydGVfdW51c2VkKSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzgxMTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQ3 MDoKKyAgICAgICByZXR1cm4gMDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUg c3RhcnQgb2YgYSBsaW5lCiM4MTY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo0NzU6CisgICAgICAgdWludDE2X3QgcnhfcXVldWVfaWQsJAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODE3OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6NDc2OgorICAgICAgIHVpbnQxNl90IG5iX3J4X2Rlc2Mg X19ydGVfdW51c2VkLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzgxODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQ3 NzoKKyAgICAgICB1bnNpZ25lZCBpbnQgc29ja2V0X2lkIF9fcnRlX3VudXNlZCwkCgpXQVJOSU5H OiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4MTk6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0Nzg6CisgICAgICAgY29uc3Qgc3RydWN0 IHJ0ZV9ldGhfcnhjb25mICpyeF9jb25mIF9fcnRlX3VudXNlZCwkCgpXQVJOSU5HOiBwbGVhc2Us IG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4MjA6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0Nzk6CisgICAgICAgc3RydWN0IHJ0ZV9tZW1wb29sICpt Yl9wb29sKSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxp bmUKIzgyMjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQ4MToKKyAg ICAgICBzdHJ1Y3QgcnRlX3BrdG1idWZfcG9vbF9wcml2YXRlICptYnBfcHJpdjskCgpXQVJOSU5H OiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4MjM6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0ODI6CisgICAgICAgc3RydWN0IHBtZF9p bnRlcm5hbHMgKmludGVybmFscyA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODI0OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDgzOgorICAgICAgIHN0cnVjdCBudG5pY19y eF9xdWV1ZSAqcnhfcSA9ICZpbnRlcm5hbHMtPnJ4cVtyeF9xdWV1ZV9pZF07JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODI2OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDg1OgorICAgICAgIFJURV9MT0coSU5GTywg UE1ELCAiTlROSUMgUlggcXVldWUgc2V0dXAKIik7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFj ZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODI3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6NDg2OgorICAgICAgIHJ4X3EtPm1iX3Bvb2wgPSBtYl9wb29sOyQKCldB Uk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzgyODogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjQ4NzoKKyAgICAgICBkZXYtPmRh dGEtPnJ4X3F1ZXVlc1tyeF9xdWV1ZV9pZF0gPSByeF9xOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzgzMDogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjQ4OToKKyAgICAgICBtYnBfcHJpdiA9ICBydGVfbWVtcG9vbF9n ZXRfcHJpdihyeF9xLT5tYl9wb29sKTskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVy cwojODMxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDkwOgorICAg ICAgIHJ4X3EtPmJ1Zl9zaXplID0gKHVpbnQxNl90KSAobWJwX3ByaXYtPm1idWZfZGF0YV9yb29t X3NpemUgLSBSVEVfUEtUTUJVRl9IRUFEUk9PTSk7CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNl cyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4MzE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzo0OTA6CisgICAgICAgcnhfcS0+YnVmX3NpemUgPSAodWludDE2X3QpICht YnBfcHJpdi0+bWJ1Zl9kYXRhX3Jvb21fc2l6ZSAtIFJURV9QS1RNQlVGX0hFQURST09NKTskCgpX QVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4MzI6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo0OTE6CisgICAgICAgcnhfcS0+ ZW5hYmxlZCA9IDE7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojODMzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDky OgorICAgICAgIHJldHVybiAwOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBz dGFydCBvZiBhIGxpbmUKIzgzODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjQ5NzoKKyAgICAgICB1aW50MTZfdCB0eF9xdWV1ZV9pZCBfX3J0ZV91bnVzZWQsJAoKV0FS TklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODM5OiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NDk4OgorICAgICAgIHVpbnQxNl90 IG5iX3R4X2Rlc2MgX19ydGVfdW51c2VkLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzg0MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjQ5OToKKyAgICAgICB1bnNpZ25lZCBpbnQgc29ja2V0X2lkIF9fcnRlX3VudXNl ZCwkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4 NDE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1MDA6CisgICAgICAg Y29uc3Qgc3RydWN0IHJ0ZV9ldGhfdHhjb25mICp0eF9jb25mIF9fcnRlX3VudXNlZCkkCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4NDM6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1MDI6CisgICAgICAgc3RydWN0IHBt ZF9pbnRlcm5hbHMgKmludGVybmFscyA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODQ0OiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTAzOgorICAgICAgIFJURV9MT0coSU5G TywgUE1ELCAiTlROSUMgVFggcXVldWUgc2V0dXAKIik7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODQ1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NTA0OgorICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVzW3R4X3F1 ZXVlX2lkXSA9ICZpbnRlcm5hbHMtPnR4cVt0eF9xdWV1ZV9pZF07JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODQ2OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6NTA1OgorICAgICAgIGludGVybmFscy0+dHhxW3R4X3F1 ZXVlX2lkXS5lbmFibGVkID0gMTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUg c3RhcnQgb2YgYSBsaW5lCiM4NDc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo1MDY6CisgICAgICAgcmV0dXJuIDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMg YXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODUyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6NTExOgorICAgICAgIGlmIChtdHUgPCA0NiB8fCBtdHUgPiBIV19NVFUpJAoK V0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAo NywgMTUpCiM4NTI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1MTE6 CisgICAgICAgaWYgKG10dSA8IDQ2IHx8IG10dSA+IEhXX01UVSkKKyAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBw b3NzaWJsZQojODUzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTEy OgorICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODUzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NTEyOgorICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7JAoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODU1OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTE0OgorICAgICAgIHJldHVy biAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUK Izg1OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjUxODoKKyAgICAg ICAgICAgICAgIC5kZXZfc3RhcnQgPSBldGhfZGV2X3N0YXJ0LCQKCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzg1OTogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjUxODoKKyAgICAgICAgICAgICAgIC5kZXZfc3RhcnQgPSBl dGhfZGV2X3N0YXJ0LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUg cG9zc2libGUKIzg2MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjUx OToKKyAgICAgICAgICAgICAgIC5kZXZfc3RvcCA9ICAgICBldGhfZGV2X3N0b3AsJAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODYwOiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTE5OgorICAgICAgICAgICAgICAgLmRl dl9zdG9wID0gICAgIGV0aF9kZXZfc3RvcCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVz ZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM4NjE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo1MjA6CisgICAgICAgICAgICAgICAuZGV2X2Nsb3NlID0gZXRoX2Rldl9jbG9z ZSwkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4 NjE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1MjA6CisgICAgICAg ICAgICAgICAuZGV2X2Nsb3NlID0gZXRoX2Rldl9jbG9zZSwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM4NjI6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo1MjE6CisgICAgICAgICAgICAgICAubXR1X3NldCA9IF9kZXZf c2V0X210dSwkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiM4NjI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1MjE6Cisg ICAgICAgICAgICAgICAubXR1X3NldCA9IF9kZXZfc2V0X210dSwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM4NjM6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1MjI6CisgICAgICAgICAgICAgICAuZGV2X2NvbmZpZ3Vy ZSA9IGV0aF9kZXZfY29uZmlndXJlLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzg2MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjUyMjoKKyAgICAgICAgICAgICAgIC5kZXZfY29uZmlndXJlID0gZXRoX2Rldl9jb25m aWd1cmUsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJs ZQojODY0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTIzOgorICAg ICAgICAgICAgICAgLmRldl9pbmZvc19nZXQgPSBldGhfZGV2X2luZm8sJAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODY0OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTIzOgorICAgICAgICAgICAgICAgLmRldl9pbmZv c19nZXQgPSBldGhfZGV2X2luZm8sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFi cyB3aGVyZSBwb3NzaWJsZQojODY1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NTI0OgorICAgICAgICAgICAgICAgLnJ4X3F1ZXVlX3NldHVwID0gZXRoX3J4X3F1ZXVl X3NldHVwLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxp bmUKIzg2NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjUyNDoKKyAg ICAgICAgICAgICAgIC5yeF9xdWV1ZV9zZXR1cCA9IGV0aF9yeF9xdWV1ZV9zZXR1cCwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM4NjY6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1MjU6CisgICAgICAgICAgICAgICAu dHhfcXVldWVfc2V0dXAgPSBldGhfdHhfcXVldWVfc2V0dXAsJAoKV0FSTklORzogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODY2OiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6NTI1OgorICAgICAgICAgICAgICAgLnR4X3F1ZXVlX3NldHVw ID0gZXRoX3R4X3F1ZXVlX3NldHVwLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRh YnMgd2hlcmUgcG9zc2libGUKIzg2NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjUyNjoKKyAgICAgICAgICAgICAgIC5yeF9xdWV1ZV9yZWxlYXNlID0gZXRoX3F1ZXVl X3JlbGVhc2UsJAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojODY3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTI2Ogor ICAgICAgICAgICAgICAgLnJ4X3F1ZXVlX3JlbGVhc2UgPSBldGhfcXVldWVfcmVsZWFzZSwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM4Njg6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1Mjc6CisgICAgICAgICAgICAg ICAudHhfcXVldWVfcmVsZWFzZSA9IGV0aF9xdWV1ZV9yZWxlYXNlLCQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzg2ODogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjUyNzoKKyAgICAgICAgICAgICAgIC50eF9xdWV1ZV9y ZWxlYXNlID0gZXRoX3F1ZXVlX3JlbGVhc2UsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1 c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojODY5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6NTI4OgorICAgICAgICAgICAgICAgLmxpbmtfdXBkYXRlID0gZXRoX2xpbmtf dXBkYXRlLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxp bmUKIzg2OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjUyODoKKyAg ICAgICAgICAgICAgIC5saW5rX3VwZGF0ZSA9IGV0aF9saW5rX3VwZGF0ZSwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM4NzA6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1Mjk6CisgICAgICAgICAgICAgICAuc3RhdHNf Z2V0ID0gZXRoX3N0YXRzX2dldCwkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUg c3RhcnQgb2YgYSBsaW5lCiM4NzA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo1Mjk6CisgICAgICAgICAgICAgICAuc3RhdHNfZ2V0ID0gZXRoX3N0YXRzX2dldCwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM4NzE6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1MzA6CisgICAgICAgICAgICAg ICAuc3RhdHNfcmVzZXQgPSBldGhfc3RhdHNfcmVzZXQsJAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODcxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NTMwOgorICAgICAgICAgICAgICAgLnN0YXRzX3Jlc2V0ID0gZXRo X3N0YXRzX3Jlc2V0LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUg cG9zc2libGUKIzg3NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjUz NToKKyAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIG5iX3J4X3F1ZXVlcywkCgpXQVJOSU5H OiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4NzY6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1MzU6CisgICAgICAgICAgICAgICBjb25z dCB1bnNpZ25lZCBuYl9yeF9xdWV1ZXMsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2Ug dGFicyB3aGVyZSBwb3NzaWJsZQojODc3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6NTM2OgorICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbmJfdHhfcXVldWVz LCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzg3 NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjUzNjoKKyAgICAgICAg ICAgICAgIGNvbnN0IHVuc2lnbmVkIG5iX3R4X3F1ZXVlcywkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM4Nzg6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo1Mzc6CisgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBu dW1hX25vZGUsJAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojODc4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTM3Ogor ICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbnVtYV9ub2RlLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzg3OTogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjUzODoKKyAgICAgICAgICAgICAgIHN0cnVjdCBhcnJh eV9zICpwYXN0cmVhbWlkcywkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3Rh cnQgb2YgYSBsaW5lCiM4Nzk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu Yzo1Mzg6CisgICAgICAgICAgICAgICBzdHJ1Y3QgYXJyYXlfcyAqcGFzdHJlYW1pZHMsJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojODgwOiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTM5OgorICAgICAgICAgICAgICAg Y29uc3QgdWludDMyX3QgcG9ydCwkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUg c3RhcnQgb2YgYSBsaW5lCiM4ODA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo1Mzk6CisgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCBwb3J0LCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzg4MTogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU0MDoKKyAgICAgICAgICAgICAgIHN0cnVj dCBydGVfZXRoX2RldiAqKmV0aF9kZXYpJAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQg dGhlIHN0YXJ0IG9mIGEgbGluZQojODgxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6NTQwOgorICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2ICoqZXRoX2Rl dikkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4 ODM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1NDI6CisgICAgICAg c3RydWN0IHBtZF9pbnRlcm5hbHMgKmludGVybmFscyA9IE5VTEw7JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODg0OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6NTQzOgorICAgICAgIHN0cnVjdCBydGVfZXRoX2Rldl9k YXRhICpkYXRhID0gTlVMTDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3Rh cnQgb2YgYSBsaW5lCiM4ODU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu Yzo1NDQ6CisgICAgICAgc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2ID0gTlVMTDskCgpX QVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4ODY6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1NDU6CisgICAgICAgdWludCBp LCBzdGF0dXM7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojODg3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTQ2Ogor ICAgICAgIGNoYXIgZXJyQnVmW05UX0VSUkJVRl9TSVpFXTskCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4ODg6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo1NDc6CisgICAgICAgTnRJbmZvU3RyZWFtX3QgaEluZm87JAoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojODg5OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTQ4OgorICAgICAgIE50SW5m b190IGluZm9Qb3J0OyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzg5MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU0 OToKKyAgICAgICBzdHJ1Y3QgcnRlX2V0aF9saW5rIHBtZF9saW5rOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzg5MTogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU1MDoKKyAgICAgICBhc3NlcnQobmJfcnhfcXVldWVz IDwgTUFYX1JYX1FVRVVFUyk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0 YXJ0IG9mIGEgbGluZQojODkyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmlj LmM6NTUxOgorICAgICAgIGFzc2VydChuYl90eF9xdWV1ZXMgPCBNQVhfVFhfUVVFVUVTKTskCgpX QVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM4OTM6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1NTI6CisgICAgICAgYXNzZXJ0 KHBvcnQgPCBNQVhfTlROSUNfUE9SVFMpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzg5NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjU1NDoKKyAgICAgICBSVEVfTE9HKElORk8sIFBNRCwkCgpXQVJOSU5HOiBsaW5l IG92ZXIgODAgY2hhcmFjdGVycwojODk2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6NTU1OgorICAgICAgICAgICAgICAgICAgICAgICAiQ3JlYXRpbmcgbnRuaWMtYmFj a2VuZCBldGhkZXYgb24gbnVtYSBzb2NrZXQgJXUKIiwgbnVtYV9ub2RlKTsKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzg5NjogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU1NToKKyAgICAgICAgICAgICAgICAgICAgICAg IkNyZWF0aW5nIG50bmljLWJhY2tlbmQgZXRoZGV2IG9uIG51bWEgc29ja2V0ICV1CiIsIG51bWFf bm9kZSk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGlu ZQojODk2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTU1OgorICAg ICAgICAgICAgICAgICAgICAgICAiQ3JlYXRpbmcgbnRuaWMtYmFja2VuZCBldGhkZXYgb24gbnVt YSBzb2NrZXQgJXUKIiwgbnVtYV9ub2RlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVz ZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM4OTk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo1NTg6CisgICAgICAgICogYW5kIGludGVybmFsIChwcml2YXRlKSBkYXRhJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojOTAwOiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTU5OgorICAgICAgICAqLyQK CldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzkwMTog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU2MDoKKyAgICAgICBkYXRh ID0gcnRlX3ptYWxsb2Nfc29ja2V0KG5hbWUsIHNpemVvZigqZGF0YSksIDAsIG51bWFfbm9kZSk7 JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTAy OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTYxOgorICAgICAgIGlm IChkYXRhID09IE5VTEwpJAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0 aW9uYWwgc3RhdGVtZW50cyAoNywgMTUpCiM5MDI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzo1NjE6CisgICAgICAgaWYgKGRhdGEgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgIGdvdG8gZXJyb3I7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJl IHBvc3NpYmxlCiM5MDM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1 NjI6CisgICAgICAgICAgICAgICBnb3RvIGVycm9yOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzkwMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjU2MjoKKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTA1OiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTY0OgorICAgICAgIHBjaV9kZXYgPSBy dGVfem1hbGxvY19zb2NrZXQobmFtZSwgc2l6ZW9mKCpwY2lfZGV2KSwgMCwgbnVtYV9ub2RlKTsk CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5MDY6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1NjU6CisgICAgICAgaWYg KHBjaV9kZXYgPT0gTlVMTCkkCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25k aXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzkwNjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjU2NToKKyAgICAgICBpZiAocGNpX2RldiA9PSBOVUxMKQorICAgICAg ICAgICAgICAgZ290byBlcnJvcjsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMg d2hlcmUgcG9zc2libGUKIzkwNzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjU2NjoKKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7JAoKV0FSTklORzogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTA3OiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6NTY2OgorICAgICAgICAgICAgICAgZ290byBlcnJvcjskCgpX QVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5MDk6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1Njg6CisgICAgICAgaW50ZXJu YWxzID0gcnRlX3ptYWxsb2Nfc29ja2V0KG5hbWUsIHNpemVvZigqaW50ZXJuYWxzKSwgMCwgbnVt YV9ub2RlKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiM5MTA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1Njk6Cisg ICAgICAgaWYgKGludGVybmFscyA9PSBOVUxMKSQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRl bnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1KQojOTEwOiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTY5OgorICAgICAgIGlmIChpbnRlcm5hbHMgPT0g TlVMTCkKKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5MTE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo1NzA6CisgICAgICAgICAgICAgICBnb3RvIGVycm9yOyQKCldBUk5J Tkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzkxMTogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU3MDoKKyAgICAgICAgICAgICAgIGdv dG8gZXJyb3I7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojOTE0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTczOgor ICAgICAgICpldGhfZGV2ID0gcnRlX2V0aF9kZXZfYWxsb2NhdGUobmFtZSwgUlRFX0VUSF9ERVZf VklSVFVBTCk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojOTE1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTc0Ogor ICAgICAgIGlmICgqZXRoX2RldiA9PSBOVUxMKSQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRl bnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1KQojOTE1OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTc0OgorICAgICAgIGlmICgqZXRoX2RldiA9PSBO VUxMKQorICAgICAgICAgICAgICAgZ290byBlcnJvcjsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzkxNjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjU3NToKKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTE2OiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTc1OgorICAgICAgICAgICAgICAgZ290 byBlcnJvcjskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiM5MTk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1Nzg6Cisg ICAgICAgaWYgKChzdGF0dXMgPSBOVF9JbmZvT3BlbigmaEluZm8sICJEUERLIEluZm8gc3RyZWFt IikpICE9IE5UX1NVQ0NFU1MpIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBj b25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzkxOTogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjU3ODoKKyAgICAgICBpZiAoKHN0YXR1cyA9IE5UX0luZm9PcGVu KCZoSW5mbywgIkRQREsgSW5mbyBzdHJlYW0iKSkgIT0gTlRfU1VDQ0VTUykgeworICAgICAgICAg ICAgICAgTlRfRXhwbGFpbkVycm9yKHN0YXR1cywgZXJyQnVmLCBzaXplb2YoZXJyQnVmKSk7CgpF UlJPUjogZG8gbm90IHVzZSBhc3NpZ25tZW50IGluIGlmIGNvbmRpdGlvbgojOTE5OiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTc4OgorICAgICAgIGlmICgoc3RhdHVz ID0gTlRfSW5mb09wZW4oJmhJbmZvLCAiRFBESyBJbmZvIHN0cmVhbSIpKSAhPSBOVF9TVUNDRVNT KSB7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5 MjA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1Nzk6CisgICAgICAg ICAgICAgICBOVF9FeHBsYWluRXJyb3Ioc3RhdHVzLCBlcnJCdWYsIHNpemVvZihlcnJCdWYpKTsk CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5MjA6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1Nzk6CisgICAgICAgICAg ICAgICBOVF9FeHBsYWluRXJyb3Ioc3RhdHVzLCBlcnJCdWYsIHNpemVvZihlcnJCdWYpKTskCgpX QVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojOTIxOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6NTgwOgorICAgICAgICAgICAgICAgUlRFX0xPRyhFUlIsIFBN RCwgIj4+PiBFcnJvcjogTlRfSW5mb09wZW4gZmFpbGVkLiBDb2RlIDB4JXggPSAlcwoiLCBzdGF0 dXMsIGVyckJ1Zik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBv c3NpYmxlCiM5MjE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1ODA6 CisgICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgUE1ELCAiPj4+IEVycm9yOiBOVF9JbmZvT3Bl biBmYWlsZWQuIENvZGUgMHgleCA9ICVzCiIsIHN0YXR1cywgZXJyQnVmKTskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5MjE6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1ODA6CisgICAgICAgICAgICAgICBSVEVfTE9H KEVSUiwgUE1ELCAiPj4+IEVycm9yOiBOVF9JbmZvT3BlbiBmYWlsZWQuIENvZGUgMHgleCA9ICVz CiIsIHN0YXR1cywgZXJyQnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJz IHdoZXJlIHBvc3NpYmxlCiM5MjI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo1ODE6CisgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzkyMjogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU4MToKKyAgICAgICAgICAgICAgIHJldHVybiBzdGF0 dXM7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoj OTIzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTgyOgorICAgICAg IH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5 MjY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1ODU6CisgICAgICAg aW5mb1BvcnQuY21kID0gTlRfSU5GT19DTURfUkVBRF9QT1JUX1Y3OyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzkyNzogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU4NjoKKyAgICAgICBpbmZvUG9ydC51LnBvcnRfdjcu cG9ydE5vID0gKHVpbnQ4X3QpKHBvcnQpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzkyODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjU4NzoKKyAgICAgICBpZiAoKHN0YXR1cyA9IE5UX0luZm9SZWFkKGhJbmZvLCAm aW5mb1BvcnQpKSAhPSAwKSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29u ZGl0aW9uYWwgc3RhdGVtZW50cyAoNywgMTUpCiM5Mjg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo1ODc6CisgICAgICAgaWYgKChzdGF0dXMgPSBOVF9JbmZvUmVhZCho SW5mbywgJmluZm9Qb3J0KSkgIT0gMCkgeworICAgICAgICAgICAgICAgTlRfRXhwbGFpbkVycm9y KHN0YXR1cywgZXJyQnVmLCBzaXplb2YoZXJyQnVmKSk7CgpFUlJPUjogZG8gbm90IHVzZSBhc3Np Z25tZW50IGluIGlmIGNvbmRpdGlvbgojOTI4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6NTg3OgorICAgICAgIGlmICgoc3RhdHVzID0gTlRfSW5mb1JlYWQoaEluZm8s ICZpbmZvUG9ydCkpICE9IDApIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMg d2hlcmUgcG9zc2libGUKIzkyOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjU4ODoKKyAgICAgICAgICAgICAgIE5UX0V4cGxhaW5FcnJvcihzdGF0dXMsIGVyckJ1Ziwg c2l6ZW9mKGVyckJ1ZikpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFy dCBvZiBhIGxpbmUKIzkyOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjU4ODoKKyAgICAgICAgICAgICAgIE5UX0V4cGxhaW5FcnJvcihzdGF0dXMsIGVyckJ1Ziwgc2l6 ZW9mKGVyckJ1ZikpOyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM5MzA6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1ODk6CisgICAgICAgICAgICAg ICBSVEVfTE9HKEVSUiwgUE1ELCAiRVJST1I6IE5UX0luZm9SZWFkIGZhaWxlZC4gQ29kZSAweCV4 ID0gJXMKIiwgc3RhdHVzLCBlcnJCdWYpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2Ug dGFicyB3aGVyZSBwb3NzaWJsZQojOTMwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6NTg5OgorICAgICAgICAgICAgICAgUlRFX0xPRyhFUlIsIFBNRCwgIkVSUk9SOiBO VF9JbmZvUmVhZCBmYWlsZWQuIENvZGUgMHgleCA9ICVzCiIsIHN0YXR1cywgZXJyQnVmKTskCgpX QVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5MzA6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1ODk6CisgICAgICAgICAgICAg ICBSVEVfTE9HKEVSUiwgUE1ELCAiRVJST1I6IE5UX0luZm9SZWFkIGZhaWxlZC4gQ29kZSAweCV4 ID0gJXMKIiwgc3RhdHVzLCBlcnJCdWYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNl IHRhYnMgd2hlcmUgcG9zc2libGUKIzkzMTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjU5MDoKKyAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTMxOiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NTkwOgorICAgICAgICAgICAgICAgcmV0dXJu IHN0YXR1czskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiM5MzI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1OTE6Cisg ICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxp bmUKIzkzNTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU5NDoKKyAg ICBpZiAoaW5mb1BvcnQudS5wb3J0X3Y3LmRhdGEuYWRhcHRlckluZm8uZnBnYWlkLnMucHJvZHVj dCA9PSA5NTA2IHx8JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9u YWwgc3RhdGVtZW50cyAoNCwgNykKIzkzNTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjU5NDoKKyAgICBpZiAoaW5mb1BvcnQudS5wb3J0X3Y3LmRhdGEuYWRhcHRlcklu Zm8uZnBnYWlkLnMucHJvZHVjdCA9PSA5NTA2IHx8ClsuLi5dCisgICAgICAgaW50ZXJuYWxzLT5N QUNfNTBHID0gMTsKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBh IGxpbmUKIzkzNjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjU5NToK KyAgICAgICBpbmZvUG9ydC51LnBvcnRfdjcuZGF0YS5hZGFwdGVySW5mby5mcGdhaWQucy5wcm9k dWN0ID09IDk1MDkpIHskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM5Mzc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1 OTY6CisgICAgICAgaW50ZXJuYWxzLT5NQUNfNTBHID0gMTskCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5Mzg6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo1OTc6CisgICAgfSBlbHNlIHskCgpXQVJOSU5HOiBwbGVhc2Us IG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5Mzk6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo1OTg6CisgICAgICAgaW50ZXJuYWxzLT5NQUNfNTBHID0g MDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5 NDE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MDA6CisgICAgICAg IGlmIChpbmZvUG9ydC51LnBvcnRfdjcuZGF0YS5hZGFwdGVySW5mby5mcGdhaWQucy5wcm9kdWN0 ICE9IDk1MDcgJiYkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiM5NDE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MDA6 CisgICAgICAgIGlmIChpbmZvUG9ydC51LnBvcnRfdjcuZGF0YS5hZGFwdGVySW5mby5mcGdhaWQu cy5wcm9kdWN0ICE9IDk1MDcgJiYkCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBj b25kaXRpb25hbCBzdGF0ZW1lbnRzICg4LCAxNSkKIzk0MTogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjYwMDoKKyAgICAgICAgaWYgKGluZm9Qb3J0LnUucG9ydF92Ny5k YXRhLmFkYXB0ZXJJbmZvLmZwZ2FpZC5zLnByb2R1Y3QgIT0gOTUwNyAmJgpbLi4uXQorICAgICAg ICAgICAgICAgUlRFX0xPRyhFUlIsIFBNRCwgIkVSUk9SOiBOVE5JQyBQTUQgZG9lcyBub3Qgc3Vw cG9ydCB0aGUgTlQgYWRhcHRlciAtIHBvcnQgJWkKIiwgcG9ydCk7CgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5NDI6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MDE6CisgICAgICAgICAgICAgICBpbmZvUG9ydC51LnBv cnRfdjcuZGF0YS5hZGFwdGVySW5mby5mcGdhaWQucy5wcm9kdWN0ICE9IDk1MTApIHskCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5NDI6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MDE6CisgICAgICAgICAgICAgICBp bmZvUG9ydC51LnBvcnRfdjcuZGF0YS5hZGFwdGVySW5mby5mcGdhaWQucy5wcm9kdWN0ICE9IDk1 MTApIHskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojOTQzOiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjAyOgorICAgICAgICAgICAgICAgUlRFX0xP RyhFUlIsIFBNRCwgIkVSUk9SOiBOVE5JQyBQTUQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgTlQgYWRh cHRlciAtIHBvcnQgJWkKIiwgcG9ydCk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0 YWJzIHdoZXJlIHBvc3NpYmxlCiM5NDM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzo2MDI6CisgICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgUE1ELCAiRVJST1I6IE5U TklDIFBNRCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBOVCBhZGFwdGVyIC0gcG9ydCAlaQoiLCBwb3J0 KTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5 NDM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MDI6CisgICAgICAg ICAgICAgICBSVEVfTE9HKEVSUiwgUE1ELCAiRVJST1I6IE5UTklDIFBNRCBkb2VzIG5vdCBzdXBw b3J0IHRoZSBOVCBhZGFwdGVyIC0gcG9ydCAlaQoiLCBwb3J0KTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5NDQ6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MDM6CisgICAgICAgICAgICAgICByZXR1cm4gLTE7JAoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTQ0OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjAzOgorICAgICAgICAgICAg ICAgcmV0dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUg cG9zc2libGUKIzk0NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYw NDoKKyAgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzk0NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYw NDoKKyAgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzk0NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYw NToKKyAgICB9JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojOTQ4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjA3Ogor ICAgICAgIGludGVybmFscy0+bmJfcnhfcXVldWVzID0gbmJfcnhfcXVldWVzOyQKCldBUk5JTkc6 IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk0OTogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYwODoKKyAgICBpbnRlcm5hbHMtPm5iX3R4 X3F1ZXVlcyA9IG5iX3R4X3F1ZXVlczskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0 aGUgc3RhcnQgb2YgYSBsaW5lCiM5NTA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzo2MDk6CisgICAgICAgZm9yIChpPTA7IGkgPCBuYl9yeF9xdWV1ZXM7IGkrKykgeyQK CldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMg KDcsIDE1KQojOTUwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjA5 OgorICAgICAgIGZvciAoaT0wOyBpIDwgbmJfcnhfcXVldWVzOyBpKyspIHsKKyAgICAgICAgICAg ICAgIGludCBpZHg7CgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICc9JyAoY3R4 OlZ4VikKIzk1MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYwOToK KyAgICAgICBmb3IgKGk9MDsgaSA8IG5iX3J4X3F1ZXVlczsgaSsrKSB7CiAgICAgICAgICAgICAg XgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojOTUx OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjEwOgorICAgICAgICAg ICAgICAgaW50IGlkeDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM5NTE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2 MTA6CisgICAgICAgICAgICAgICBpbnQgaWR4OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg dXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzk1MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjYxMToKKyAgICAgICAgICAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgcGFz dHJlYW1pZHMtPmNvdW50OyBpZHgrKykgeyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk1MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjYxMToKKyAgICAgICAgICAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgcGFzdHJl YW1pZHMtPmNvdW50OyBpZHgrKykgeyQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9y IGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDE1LCAyMykKIzk1MjogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjYxMToKKyAgICAgICAgICAgICAgIGZvciAoaWR4ID0gMDsg aWR4IDwgcGFzdHJlYW1pZHMtPmNvdW50OyBpZHgrKykgeworICAgICAgICAgICAgICAgICAgICAg ICBpbnRlcm5hbHMtPnJ4cVtpXS5hc3RyZWFtaWRzLnZhbHVlW2lkeF0gPSBwYXN0cmVhbWlkcy0+ dmFsdWVbaWR4XSArIGk7CgpXQVJOSU5HOiBicmFjZXMge30gYXJlIG5vdCBuZWNlc3NhcnkgZm9y IHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2tzCiM5NTI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzo2MTE6CisgICAgICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IHBh c3RyZWFtaWRzLT5jb3VudDsgaWR4KyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJu YWxzLT5yeHFbaV0uYXN0cmVhbWlkcy52YWx1ZVtpZHhdID0gcGFzdHJlYW1pZHMtPnZhbHVlW2lk eF0gKyBpOworICAgICAgICAgICAgICAgfQoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3Rl cnMKIzk1MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYxMjoKKyAg ICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLT5yeHFbaV0uYXN0cmVhbWlkcy52YWx1ZVtp ZHhdID0gcGFzdHJlYW1pZHMtPnZhbHVlW2lkeF0gKyBpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojOTUzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NjEyOgorICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMt PnJ4cVtpXS5hc3RyZWFtaWRzLnZhbHVlW2lkeF0gPSBwYXN0cmVhbWlkcy0+dmFsdWVbaWR4XSAr IGk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoj OTUzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjEyOgorICAgICAg ICAgICAgICAgICAgICAgICBpbnRlcm5hbHMtPnJ4cVtpXS5hc3RyZWFtaWRzLnZhbHVlW2lkeF0g PSBwYXN0cmVhbWlkcy0+dmFsdWVbaWR4XSArIGk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojOTU0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6NjEzOgorICAgICAgICAgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk1NDogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjYxMzoKKyAgICAgICAgICAgICAgIH0kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5NTY6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MTU6CisgICAgICAgICAgICAgICBpbnRlcm5h bHMtPnJ4cVtpXS5hc3RyZWFtaWRzLmNvdW50ID0gcGFzdHJlYW1pZHMtPmNvdW50OyQKCldBUk5J Tkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk1NjogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYxNToKKyAgICAgICAgICAgICAgIGlu dGVybmFscy0+cnhxW2ldLmFzdHJlYW1pZHMuY291bnQgPSBwYXN0cmVhbWlkcy0+Y291bnQ7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojOTU4OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjE3OgorICAgICAgICAgICAg ICAgaW50ZXJuYWxzLT5yeHFbaV0ucFNlZyA9IE5VTEw7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTU4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NjE3OgorICAgICAgICAgICAgICAgaW50ZXJuYWxzLT5yeHFbaV0u cFNlZyA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBw b3NzaWJsZQojOTU5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjE4 OgorICAgICAgICAgICAgICAgaW50ZXJuYWxzLT5yeHFbaV0uZW5hYmxlZCA9IDA7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTU5OiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjE4OgorICAgICAgICAgICAgICAgaW50 ZXJuYWxzLT5yeHFbaV0uZW5hYmxlZCA9IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMg YXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTYwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6NjE5OgorICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5NjI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo2MjE6CisgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX3R4X3F1ZXVlczsgaSsr KSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVt ZW50cyAoNywgNykKIzk2MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j OjYyMToKKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmJfdHhfcXVldWVzOyBpKyspIHsKKyAgICAg ICBpZiAocG9ydCA8IGluZm9Qb3J0LnUucG9ydF92Ny5kYXRhLmFkYXB0ZXJJbmZvLnBvcnRPZmZz ZXQpIHsKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUK Izk2MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYyMjoKKyAgICAg ICBpZiAocG9ydCA8IGluZm9Qb3J0LnUucG9ydF92Ny5kYXRhLmFkYXB0ZXJJbmZvLnBvcnRPZmZz ZXQpIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0 ZW1lbnRzICg3LCAxNSkKIzk2MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjYyMjoKKyAgICAgICBpZiAocG9ydCA8IGluZm9Qb3J0LnUucG9ydF92Ny5kYXRhLmFkYXB0 ZXJJbmZvLnBvcnRPZmZzZXQpIHsKKyAgICAgICAgICAgICAgIFJURV9MT0coRVJSLCBQTUQsICJF cnJvciB3cm9uZyBwb3J0IHNwZWNpZmllZAoiKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg dXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzk2NDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjYyMzoKKyAgICAgICAgICAgICAgIFJURV9MT0coRVJSLCBQTUQsICJFcnJv ciB3cm9uZyBwb3J0IHNwZWNpZmllZAoiKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5NjQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo2MjM6CisgICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgUE1ELCAiRXJyb3Ig d3JvbmcgcG9ydCBzcGVjaWZpZWQKIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2Ug dGFicyB3aGVyZSBwb3NzaWJsZQojOTY1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6NjI0OgorICAgICAgICAgICAgICAgcmV0dXJuIC0xOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk2NTogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYyNDoKKyAgICAgICAgICAgICAgIHJldHVybiAtMTsk CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5NjY6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MjU6CisgICAgICAgfSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzk2Nzog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYyNjoKKyAgICAgICAgICAg ICAgIGludGVybmFscy0+dHhxW2ldLnBvcnQgPSBwb3J0OyQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk2NzogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjYyNjoKKyAgICAgICAgICAgICAgIGludGVybmFscy0+dHhxW2ld LnBvcnQgPSBwb3J0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUg cG9zc2libGUKIzk2ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYy NzoKKyAgICAgICAgICAgICAgIGludGVybmFscy0+dHhxW2ldLmVuYWJsZWQgPSAwOyQKCldBUk5J Tkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk2ODogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYyNzoKKyAgICAgICAgICAgICAgIGlu dGVybmFscy0+dHhxW2ldLmVuYWJsZWQgPSAwOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2Vz IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk2OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjYyODoKKyAgICAgICB9JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMg YXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTcxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6NjMwOgorICAgICAgIHN3aXRjaCAoaW5mb1BvcnQudS5wb3J0X3Y3LmRhdGEu c3BlZWQpIHskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiM5NzI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MzE6Cisg ICAgICAgY2FzZSBOVF9MSU5LX1NQRUVEX1VOS05PV046JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojOTczOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NjMyOgorICAgICAgICAgICAgICAgcG1kX2xpbmsubGlua19zcGVl ZCA9IEVUSF9TUEVFRF9OVU1fMUc7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojOTczOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NjMyOgorICAgICAgICAgICAgICAgcG1kX2xpbmsubGlua19zcGVlZCA9IEVUSF9TUEVF RF9OVU1fMUc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3Nz aWJsZQojOTc0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjMzOgor ICAgICAgICAgICAgICAgYnJlYWs7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojOTc0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NjMzOgorICAgICAgICAgICAgICAgYnJlYWs7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTc1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NjM0OgorICAgICAgIGNhc2UgTlRfTElOS19TUEVFRF8xME06JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojOTc2OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjM1OgorICAgICAgICAgICAg ICAgcG1kX2xpbmsubGlua19zcGVlZCA9IEVUSF9TUEVFRF9OVU1fMTBNOyQKCldBUk5JTkc6IHBs ZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk3NjogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYzNToKKyAgICAgICAgICAgICAgIHBtZF9saW5r Lmxpbmtfc3BlZWQgPSBFVEhfU1BFRURfTlVNXzEwTTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5Nzc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo2MzY6CisgICAgICAgICAgICAgICBicmVhazskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5Nzc6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2MzY6CisgICAgICAgICAgICAgICBicmVhazsk CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5Nzg6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2Mzc6CisgICAgICAgY2Fz ZSBOVF9MSU5LX1NQRUVEXzEwME06JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFi cyB3aGVyZSBwb3NzaWJsZQojOTc5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NjM4OgorICAgICAgICAgICAgICAgcG1kX2xpbmsubGlua19zcGVlZCA9IEVUSF9TUEVF RF9OVU1fMTAwTTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiM5Nzk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2Mzg6 CisgICAgICAgICAgICAgICBwbWRfbGluay5saW5rX3NwZWVkID0gRVRIX1NQRUVEX05VTV8xMDBN OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzk4 MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYzOToKKyAgICAgICAg ICAgICAgIGJyZWFrOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzk4MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjYz OToKKyAgICAgICAgICAgICAgIGJyZWFrOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk4MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjY0MDoKKyAgICAgICBjYXNlIE5UX0xJTktfU1BFRURfMUc6JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojOTgyOiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjQxOgorICAgICAgICAgICAgICAgcG1kX2xp bmsubGlua19zcGVlZCA9IEVUSF9TUEVFRF9OVU1fMUc7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTgyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NjQxOgorICAgICAgICAgICAgICAgcG1kX2xpbmsubGlua19zcGVl ZCA9IEVUSF9TUEVFRF9OVU1fMUc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFi cyB3aGVyZSBwb3NzaWJsZQojOTgzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NjQyOgorICAgICAgICAgICAgICAgYnJlYWs7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTgzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NjQyOgorICAgICAgICAgICAgICAgYnJlYWs7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTg0OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjQzOgorICAgICAgIGNhc2UgTlRfTElOS19T UEVFRF8xMEc6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3Nz aWJsZQojOTg1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjQ0Ogor ICAgICAgICAgICAgICAgcG1kX2xpbmsubGlua19zcGVlZCA9IEVUSF9TUEVFRF9OVU1fMTBHOyQK CldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk4NTog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY0NDoKKyAgICAgICAgICAg ICAgIHBtZF9saW5rLmxpbmtfc3BlZWQgPSBFVEhfU1BFRURfTlVNXzEwRzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5ODY6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NDU6CisgICAgICAgICAgICAgICBicmVhazsk CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5ODY6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NDU6CisgICAgICAgICAg ICAgICBicmVhazskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiM5ODc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NDY6 CisgICAgICAgY2FzZSBOVF9MSU5LX1NQRUVEXzQwRzokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5ODg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo2NDc6CisgICAgICAgICAgICAgICBwbWRfbGluay5saW5rX3NwZWVk ID0gRVRIX1NQRUVEX05VTV80MEc7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojOTg4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NjQ3OgorICAgICAgICAgICAgICAgcG1kX2xpbmsubGlua19zcGVlZCA9IEVUSF9TUEVF RF9OVU1fNDBHOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9z c2libGUKIzk4OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY0ODoK KyAgICAgICAgICAgICAgIGJyZWFrOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzk4OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjY0ODoKKyAgICAgICAgICAgICAgIGJyZWFrOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk5MDogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjY0OToKKyAgICAgICBjYXNlIE5UX0xJTktfU1BFRURfNTBHOiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzk5MTog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY1MDoKKyAgICAgICAgICAg ICAgIHBtZF9saW5rLmxpbmtfc3BlZWQgPSBFVEhfU1BFRURfTlVNXzUwRzskCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5OTE6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NTA6CisgICAgICAgICAgICAgICBwbWRfbGlu ay5saW5rX3NwZWVkID0gRVRIX1NQRUVEX05VTV81MEc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojOTkyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NjUxOgorICAgICAgICAgICAgICAgYnJlYWs7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTkyOiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjUxOgorICAgICAgICAgICAgICAgYnJlYWs7 JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojOTkz OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjUyOgorICAgICAgIGNh c2UgTlRfTElOS19TUEVFRF8xMDBHOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRh YnMgd2hlcmUgcG9zc2libGUKIzk5NDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjY1MzoKKyAgICAgICAgICAgICAgIHBtZF9saW5rLmxpbmtfc3BlZWQgPSBFVEhfU1BF RURfTlVNXzEwMEc7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojOTk0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjUz OgorICAgICAgICAgICAgICAgcG1kX2xpbmsubGlua19zcGVlZCA9IEVUSF9TUEVFRF9OVU1fMTAw RzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5 OTU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NTQ6CisgICAgICAg ICAgICAgICBicmVhazskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiM5OTU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2 NTQ6CisgICAgICAgICAgICAgICBicmVhazskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM5OTY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo2NTU6CisgICAgICAgfSQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0 ZXJzCiM5OTg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NTc6Cisg ICAgICAgbWVtY3B5KCZldGhfYWRkcltwb3J0XS5hZGRyX2J5dGVzLCAmaW5mb1BvcnQudS5wb3J0 X3Y3LmRhdGEubWFjQWRkcmVzcywgc2l6ZW9mKGV0aF9hZGRyW3BvcnRdLmFkZHJfYnl0ZXMpKTsK CldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzk5ODog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY1NzoKKyAgICAgICBtZW1j cHkoJmV0aF9hZGRyW3BvcnRdLmFkZHJfYnl0ZXMsICZpbmZvUG9ydC51LnBvcnRfdjcuZGF0YS5t YWNBZGRyZXNzLCBzaXplb2YoZXRoX2FkZHJbcG9ydF0uYWRkcl9ieXRlcykpOyQKCldBUk5JTkc6 IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwMDA6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NTk6CisgICAgICAgaWYgKChzdGF0dXMg PSBOVF9JbmZvQ2xvc2UoaEluZm8pKSAhPSBOVF9TVUNDRVNTKSB7JAoKV0FSTklORzogc3VzcGVj dCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAoNywgMTUpCiMxMDAwOiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NjU5OgorICAgICAgIGlmICgo c3RhdHVzID0gTlRfSW5mb0Nsb3NlKGhJbmZvKSkgIT0gTlRfU1VDQ0VTUykgeworICAgICAgICAg ICAgICAgTlRfRXhwbGFpbkVycm9yKHN0YXR1cywgZXJyQnVmLCBzaXplb2YoZXJyQnVmKSk7CgpF UlJPUjogZG8gbm90IHVzZSBhc3NpZ25tZW50IGluIGlmIGNvbmRpdGlvbgojMTAwMDogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY1OToKKyAgICAgICBpZiAoKHN0YXR1 cyA9IE5UX0luZm9DbG9zZShoSW5mbykpICE9IE5UX1NVQ0NFU1MpIHsKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEwMDE6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NjA6CisgICAgICAgICAgICAgICBOVF9FeHBsYWlu RXJyb3Ioc3RhdHVzLCBlcnJCdWYsIHNpemVvZihlcnJCdWYpKTskCgpXQVJOSU5HOiBwbGVhc2Us IG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDAxOiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6NjYwOgorICAgICAgICAgICAgICAgTlRfRXhwbGFpbkVy cm9yKHN0YXR1cywgZXJyQnVmLCBzaXplb2YoZXJyQnVmKSk7JAoKV0FSTklORzogbGluZSBvdmVy IDgwIGNoYXJhY3RlcnMKIzEwMDI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo2NjE6CisgICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgUE1ELCAiPj4+IEVycm9yOiBO VF9JbmZvT3BlbiBmYWlsZWQuIENvZGUgMHgleCA9ICVzCiIsIHN0YXR1cywgZXJyQnVmKTsKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEwMDI6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NjE6CisgICAgICAgICAgICAg ICBSVEVfTE9HKEVSUiwgUE1ELCAiPj4+IEVycm9yOiBOVF9JbmZvT3BlbiBmYWlsZWQuIENvZGUg MHgleCA9ICVzCiIsIHN0YXR1cywgZXJyQnVmKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNl cyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDAyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6NjYxOgorICAgICAgICAgICAgICAgUlRFX0xPRyhFUlIsIFBNRCwgIj4+ PiBFcnJvcjogTlRfSW5mb09wZW4gZmFpbGVkLiBDb2RlIDB4JXggPSAlcwoiLCBzdGF0dXMsIGVy ckJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJs ZQojMTAwMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY2MjoKKyAg ICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMg YXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTAwMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjY2MjoKKyAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTAwNDogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY2MzoKKyAgICAgICB9JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTAwNjogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY2NToKKyAgICAgICBwbWRfbGluay5s aW5rX2R1cGxleCA9IEVUSF9MSU5LX0ZVTExfRFVQTEVYOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwMDc6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo2NjY6CisgICAgICAgcG1kX2xpbmsubGlua19zdGF0dXMgPSAw OyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEw MDk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2Njg6CisgICAgICAg aW50ZXJuYWxzLT5pZl9pbmRleCA9IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQg dGhlIHN0YXJ0IG9mIGEgbGluZQojMTAxMTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjY3MDoKKyAgICAgICBwY2lfZGV2LT5udW1hX25vZGUgPSBudW1hX25vZGU7JAoK V0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTAxMzog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY3MjoKKyAgICAgICBkYXRh LT5kZXZfcHJpdmF0ZSA9IGludGVybmFsczskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDE0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6NjczOgorICAgICAgIGRhdGEtPnBvcnRfaWQgPSAoKmV0aF9kZXYpLT5kYXRh LT5wb3J0X2lkOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBh IGxpbmUKIzEwMTU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2NzQ6 CisgICAgICAgZGF0YS0+bmJfcnhfcXVldWVzID0gKHVpbnQxNl90KW5iX3J4X3F1ZXVlczskCgpX QVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDE2OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Njc1OgorICAgICAgIGRhdGEt Pm5iX3R4X3F1ZXVlcyA9ICh1aW50MTZfdCluYl90eF9xdWV1ZXM7JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTAxNzogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY3NjoKKyAgICAgICBkYXRhLT5kZXZfbGluayA9IHBt ZF9saW5rOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxp bmUKIzEwMTg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2Nzc6Cisg ICAgICAgZGF0YS0+bWFjX2FkZHJzID0gJmV0aF9hZGRyW3BvcnRdOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwMTk6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2Nzg6CisgICAgICAgZGF0YS0+bnVtYV9ub2RlID0g bnVtYV9ub2RlOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBh IGxpbmUKIzEwMjA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2Nzk6 CisgICAgICAgZGF0YS0+ZHJ2X25hbWUgPSBkcml2ZXJuYW1lOyQKCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwMjI6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2ODE6CisgICAgICAgKCpldGhfZGV2KS0+ZGF0YSA9IGRh dGE7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoj MTAyMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY4MjoKKyAgICAg ICAoKmV0aF9kZXYpLT5kZXZfb3BzID0gJm9wczskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNl cyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDI0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6NjgzOgorICAgICAgICgqZXRoX2RldiktPnBjaV9kZXYgPSBwY2lfZGV2 OyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEw MjY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2ODU6CisgICAgICAg cmV0dXJuIDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojMTAyOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY4ODoK KyAgICAgICBpZiAoZGF0YSkkCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25k aXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzEwMjk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo2ODg6CisgICAgICAgaWYgKGRhdGEpCisgICAgICAgICAgICAgICBy dGVfZnJlZShkYXRhKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUg cG9zc2libGUKIzEwMzA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2 ODk6CisgICAgICAgICAgICAgICBydGVfZnJlZShkYXRhKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDMwOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6Njg5OgorICAgICAgICAgICAgICAgcnRlX2ZyZWUoZGF0YSk7 JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTAz MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY5MDoKKyAgICAgICBp ZiAocGNpX2RldikkCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25h bCBzdGF0ZW1lbnRzICg3LCAxNSkKIzEwMzE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo2OTA6CisgICAgICAgaWYgKHBjaV9kZXYpCisgICAgICAgICAgICAgICBydGVf ZnJlZShwY2lfZGV2KTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUg cG9zc2libGUKIzEwMzI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2 OTE6CisgICAgICAgICAgICAgICBydGVfZnJlZShwY2lfZGV2KTskCgpXQVJOSU5HOiBwbGVhc2Us IG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDMyOiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6NjkxOgorICAgICAgICAgICAgICAgcnRlX2ZyZWUocGNp X2Rldik7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGlu ZQojMTAzMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjY5MjoKKyAg ICAgICBpZiAoaW50ZXJuYWxzKSQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNv bmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1KQojMTAzMzogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjY5MjoKKyAgICAgICBpZiAoaW50ZXJuYWxzKQorICAgICAgICAg ICAgICAgcnRlX2ZyZWUoaW50ZXJuYWxzKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNl IHRhYnMgd2hlcmUgcG9zc2libGUKIzEwMzQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo2OTM6CisgICAgICAgICAgICAgICBydGVfZnJlZShpbnRlcm5hbHMpOyQKCldB Uk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwMzQ6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo2OTM6CisgICAgICAgICAgICAg ICBydGVfZnJlZShpbnRlcm5hbHMpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzEwMzU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzo2OTQ6CisgICAgICAgcmV0dXJuIC0xOyQKCldBUk5JTkc6IG5ldHdvcmtpbmcgYmxv Y2sgY29tbWVudHMgZG9uJ3QgdXNlIGFuIGVtcHR5IC8qIGxpbmUsIHVzZSAvKiBDb21tZW50Li4u CiMxMDM5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Njk4OgorLyoK KyAqIGNvbnZlcnQgYXNjaWkgdG8gaW50CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVy cwojMTA0MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjcwMToKK2Fz Y2lpX3RvX3UzMihjb25zdCBjaGFyICprZXkgX19ydGVfdW51c2VkLCBjb25zdCBjaGFyICp2YWx1 ZSwgdm9pZCAqZXh0cmFfYXJncyBfX3J0ZV91bnVzZWQpCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNw YWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDQ0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NzAzOgorICAgICAgICoodWludDMyX3QqKWV4dHJhX2FyZ3MgPSBh dG9pKHZhbHVlKTskCgpFUlJPUjogIihmb28qKSIgc2hvdWxkIGJlICIoZm9vICopIgojMTA0NDog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjcwMzoKKyAgICAgICAqKHVp bnQzMl90KilleHRyYV9hcmdzID0gYXRvaSh2YWx1ZSk7CgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNw YWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDQ1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NzA0OgorICAgICAgIHJldHVybiAwOyQKCldBUk5JTkc6IGxpbmUg b3ZlciA4MCBjaGFyYWN0ZXJzCiMxMDQ5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6NzA4OgorYXNjaWlfdG9fdTMyX2FycmF5KGNvbnN0IGNoYXIgKmtleSBfX3J0ZV91 bnVzZWQsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpleHRyYV9hcmdzKQoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTA1MTogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjcxMDoKKyAgICAgICBzdHJ1Y3QgYXJyYXlfcyAq cGFzdHJlYW1zID0gKHN0cnVjdCBhcnJheV9zICopZXh0cmFfYXJnczskCgpXQVJOSU5HOiBwbGVh c2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDUyOiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzExOgorICAgICAgIGludCBzdmFsLCBldmFsOyQK CldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwNTM6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3MTI6CisgICAgICAgaWYg KHNzY2FuZih2YWx1ZSwgIiVkLi4lZCIsICZzdmFsLCAmZXZhbCkgPT0gMikgeyQKCldBUk5JTkc6 IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1KQoj MTA1MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjcxMjoKKyAgICAg ICBpZiAoc3NjYW5mKHZhbHVlLCAiJWQuLiVkIiwgJnN2YWwsICZldmFsKSA9PSAyKSB7CisgICAg ICAgICAgICAgICBpbnQgY250OwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3 aGVyZSBwb3NzaWJsZQojMTA1NDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjcxMzoKKyAgICAgICAgICAgICAgIGludCBjbnQ7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTA1NDogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjcxMzoKKyAgICAgICAgICAgICAgIGludCBjbnQ7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTA1NTogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjcxNDoKKyAgICAgICAgICAgICAgIGZv ciAoY250ID0gc3ZhbDsgY250IDw9IGV2YWw7IGNudCsrKSQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwNTU6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo3MTQ6CisgICAgICAgICAgICAgICBmb3IgKGNudCA9IHN2YWw7 IGNudCA8PSBldmFsOyBjbnQrKykkCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBj b25kaXRpb25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiMxMDU1OiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6NzE0OgorICAgICAgICAgICAgICAgZm9yIChjbnQgPSBzdmFs OyBjbnQgPD0gZXZhbDsgY250KyspCisgICAgICAgICAgICAgICAgICAgICAgIHBhc3RyZWFtcy0+ dmFsdWVbcGFzdHJlYW1zLT5jb3VudCsrXSA9IGNudDsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEwNTY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo3MTU6CisgICAgICAgICAgICAgICAgICAgICAgIHBhc3RyZWFtcy0+ dmFsdWVbcGFzdHJlYW1zLT5jb3VudCsrXSA9IGNudDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNw YWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDU2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NzE1OgorICAgICAgICAgICAgICAgICAgICAgICBwYXN0cmVhbXMt PnZhbHVlW3Bhc3RyZWFtcy0+Y291bnQrK10gPSBjbnQ7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTA1NzogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjcxNjoKKyAgICAgICB9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEwNTg6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3MTc6CisgICAgICAgICAgICAgICBwYXN0cmVhbXMt PnZhbHVlW3Bhc3RyZWFtcy0+Y291bnQrK10gPSBhdG9pKHZhbHVlKTskCgpXQVJOSU5HOiBwbGVh c2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDU4OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzE3OgorICAgICAgICAgICAgICAgcGFzdHJlYW1z LT52YWx1ZVtwYXN0cmVhbXMtPmNvdW50KytdID0gYXRvaSh2YWx1ZSk7JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTA1OTogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjcxODoKKyAgICAgICB9JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTA2MDogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjcxOToKKyAgICAgICByZXR1cm4gMDskCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDY5OiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzI4OgorICAgICAgIE50Q29uZmln U3RyZWFtX3QgaENmZ1N0cmVhbTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUg c3RhcnQgb2YgYSBsaW5lCiMxMDcwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NzI5OgorICAgICAgIE50TnRwbEluZm9fdCBudHBsSW5mbzskCgpXQVJOSU5HOiBwbGVh c2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDcxOiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzMwOgorICAgICAgIGludCBzdGF0dXM7JAoKV0FS TklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTA3MzogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjczMjoKKyAgICAgICBpZigoc3Rh dHVzID0gTlRfQ29uZmlnT3BlbigmaENmZ1N0cmVhbSwgImNhcHR1cmUiKSkgIT0gTlRfU1VDQ0VT UykgeyQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRl bWVudHMgKDcsIDE1KQojMTA3MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjczMjoKKyAgICAgICBpZigoc3RhdHVzID0gTlRfQ29uZmlnT3BlbigmaENmZ1N0cmVhbSwg ImNhcHR1cmUiKSkgIT0gTlRfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgLyogR2V0IHRoZSBz dGF0dXMgY29kZSBhcyB0ZXh0ICovCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYmVmb3JlIHRoZSBv cGVuIHBhcmVudGhlc2lzICcoJwojMTA3MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjczMjoKKyAgICAgICBpZigoc3RhdHVzID0gTlRfQ29uZmlnT3BlbigmaENmZ1N0 cmVhbSwgImNhcHR1cmUiKSkgIT0gTlRfU1VDQ0VTUykgewoKRVJST1I6IGRvIG5vdCB1c2UgYXNz aWdubWVudCBpbiBpZiBjb25kaXRpb24KIzEwNzM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzo3MzI6CisgICAgICAgaWYoKHN0YXR1cyA9IE5UX0NvbmZpZ09wZW4oJmhD ZmdTdHJlYW0sICJjYXB0dXJlIikpICE9IE5UX1NVQ0NFU1MpIHsKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEwNzQ6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3MzM6CisgICAgICAgICAgICAgICAvKiBHZXQgdGhlIHN0 YXR1cyBjb2RlIGFzIHRleHQgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJz IHdoZXJlIHBvc3NpYmxlCiMxMDc1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NzM0OgorICAgICAgICAgICAgICAgTlRfRXhwbGFpbkVycm9yKHN0YXR1cywgZXJyb3JC dWZmZXIsIHNpemVvZihlcnJvckJ1ZmZlciktMSk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFj ZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTA3NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjczNDoKKyAgICAgICAgICAgICAgIE5UX0V4cGxhaW5FcnJvcihzdGF0 dXMsIGVycm9yQnVmZmVyLCBzaXplb2YoZXJyb3JCdWZmZXIpLTEpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEwNzY6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3MzU6CisgICAgICAgICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIk5UX0NvbmZpZ09wZW4oKSBmYWlsZWQ6ICVzCiIsIGVycm9yQnVmZmVyKTskCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDc2OiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzM1OgorICAgICAgICAgICAgICAg ZnByaW50ZihzdGRlcnIsICJOVF9Db25maWdPcGVuKCkgZmFpbGVkOiAlcwoiLCBlcnJvckJ1ZmZl cik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQoj MTA3NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjczNjoKKyAgICAg ICAgICAgICAgIHJldHVybiAtMTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUg c3RhcnQgb2YgYSBsaW5lCiMxMDc3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NzM2OgorICAgICAgICAgICAgICAgcmV0dXJuIC0xOyQKCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwNzg6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3Mzc6CisgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwODA6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3Mzk6CisgICAgICAgUlRFX0xPRyhJTkZPLCBQTUQsICJO VFBMIDogJXMKIiwgbnRwbFN0cik7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMK IzEwODE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NDA6CisgICAg ICAgaWYoKHN0YXR1cyA9IE5UX05UUEwoaENmZ1N0cmVhbSwgbnRwbFN0ciwgJm50cGxJbmZvLCBO VF9OVFBMX1BBUlNFUl9WQUxJREFURV9OT1JNQUwpKSAhPSBOVF9TVUNDRVNTKSB7CgpXQVJOSU5H OiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDgxOiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzQwOgorICAgICAgIGlmKChzdGF0dXMg PSBOVF9OVFBMKGhDZmdTdHJlYW0sIG50cGxTdHIsICZudHBsSW5mbywgTlRfTlRQTF9QQVJTRVJf VkFMSURBVEVfTk9STUFMKSkgIT0gTlRfU1VDQ0VTUykgeyQKCldBUk5JTkc6IHN1c3BlY3QgY29k ZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1KQojMTA4MTogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc0MDoKKyAgICAgICBpZigoc3RhdHVz ID0gTlRfTlRQTChoQ2ZnU3RyZWFtLCBudHBsU3RyLCAmbnRwbEluZm8sIE5UX05UUExfUEFSU0VS X1ZBTElEQVRFX05PUk1BTCkpICE9IE5UX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgIC8qIEdl dCB0aGUgc3RhdHVzIGNvZGUgYXMgdGV4dCAqLwoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9y ZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzEwODE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo3NDA6CisgICAgICAgaWYoKHN0YXR1cyA9IE5UX05UUEwoaENmZ1N0 cmVhbSwgbnRwbFN0ciwgJm50cGxJbmZvLCBOVF9OVFBMX1BBUlNFUl9WQUxJREFURV9OT1JNQUwp KSAhPSBOVF9TVUNDRVNTKSB7CgpFUlJPUjogZG8gbm90IHVzZSBhc3NpZ25tZW50IGluIGlmIGNv bmRpdGlvbgojMTA4MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc0 MDoKKyAgICAgICBpZigoc3RhdHVzID0gTlRfTlRQTChoQ2ZnU3RyZWFtLCBudHBsU3RyLCAmbnRw bEluZm8sIE5UX05UUExfUEFSU0VSX1ZBTElEQVRFX05PUk1BTCkpICE9IE5UX1NVQ0NFU1MpIHsK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEwODI6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NDE6CisgICAgICAgICAg ICAgICAvKiBHZXQgdGhlIHN0YXR1cyBjb2RlIGFzIHRleHQgKi8kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMDgzOiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6NzQyOgorICAgICAgICAgICAgICAgTlRfRXhwbGFpbkVy cm9yKHN0YXR1cywgZXJyb3JCdWZmZXIsIHNpemVvZihlcnJvckJ1ZmZlciktMSk7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTA4MzogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc0MjoKKyAgICAgICAgICAgICAgIE5U X0V4cGxhaW5FcnJvcihzdGF0dXMsIGVycm9yQnVmZmVyLCBzaXplb2YoZXJyb3JCdWZmZXIpLTEp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEw ODQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NDM6CisgICAgICAg ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk5UX05UUEwoKSBmYWlsZWQ6ICVzCiIsIGVycm9yQnVm ZmVyKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5l CiMxMDg0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzQzOgorICAg ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJOVF9OVFBMKCkgZmFpbGVkOiAlcwoiLCBlcnJv ckJ1ZmZlcik7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzEwODU6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NDQ6CisgICAgICAgICAgICAgICBm cHJpbnRmKHN0ZGVyciwgIj4+PiBOVFBMIGVycm9yY29kZTogJVgKIiwgbnRwbEluZm8udS5lcnJv ckRhdGEuZXJyQ29kZSk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJl IHBvc3NpYmxlCiMxMDg1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 NzQ0OgorICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICI+Pj4gTlRQTCBlcnJvcmNvZGU6 ICVYCiIsIG50cGxJbmZvLnUuZXJyb3JEYXRhLmVyckNvZGUpOyQKCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwODU6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NDQ6CisgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVy ciwgIj4+PiBOVFBMIGVycm9yY29kZTogJVgKIiwgbnRwbEluZm8udS5lcnJvckRhdGEuZXJyQ29k ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQoj MTA4NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc0NToKKyAgICAg ICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPj4+ICVzCiIsIG50cGxJbmZvLnUuZXJyb3JEYXRh LmVyckJ1ZmZlclswXSk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0 IG9mIGEgbGluZQojMTA4NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j Ojc0NToKKyAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPj4+ICVzCiIsIG50cGxJbmZv LnUuZXJyb3JEYXRhLmVyckJ1ZmZlclswXSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1 c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTA4NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjc0NjoKKyAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPj4+ICVz CiIsIG50cGxJbmZvLnUuZXJyb3JEYXRhLmVyckJ1ZmZlclsxXSk7JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTA4NzogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc0NjoKKyAgICAgICAgICAgICAgIGZwcmludGYoc3Rk ZXJyLCAiPj4+ICVzCiIsIG50cGxJbmZvLnUuZXJyb3JEYXRhLmVyckJ1ZmZlclsxXSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTA4ODogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc0NzoKKyAgICAgICAgICAgICAg IGZwcmludGYoc3RkZXJyLCAiPj4+ICVzCiIsIG50cGxJbmZvLnUuZXJyb3JEYXRhLmVyckJ1ZmZl clsyXSk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGlu ZQojMTA4ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc0NzoKKyAg ICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPj4+ICVzCiIsIG50cGxJbmZvLnUuZXJyb3JE YXRhLmVyckJ1ZmZlclsyXSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3 aGVyZSBwb3NzaWJsZQojMTA4OTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjc0ODoKKyAgICAgICAgICAgICAgIE5UX0NvbmZpZ0Nsb3NlKGhDZmdTdHJlYW0pOyQKCldB Uk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwODk6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NDg6CisgICAgICAgICAgICAg ICBOVF9Db25maWdDbG9zZShoQ2ZnU3RyZWFtKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMDkwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6NzQ5OgorICAgICAgICAgICAgICAgcmV0dXJuIC0xOyQKCldBUk5JTkc6 IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEwOTA6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NDk6CisgICAgICAgICAgICAgICByZXR1 cm4gLTE7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGlu ZQojMTA5MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc1MDoKKyAg ICAgICB9JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGlu ZQojMTA5MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc1MToKKyAg ICAgICBOVF9Db25maWdDbG9zZShoQ2ZnU3RyZWFtKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNw YWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMDkzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6NzUyOgorICAgICAgIHJldHVybiAwOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExMDI6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NjE6CisgICAgICAgdW5zaWduZWQgbnVtYV9ub2Rl OyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEx MDM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NjI6CisgICAgICAg aW50IHJldCA9IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojMTEwNDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc2 MzoKKyAgICAgICBzdHJ1Y3QgcnRlX2t2YXJncyAqa3ZsaXN0OyQKCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExMDU6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NjQ6CisgICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2ICpl dGhfZGV2OyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxp bmUKIzExMDY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NjU6Cisg ICAgICAgdW5zaWduZWQgaW50IGk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojMTEwNzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjc2NjoKKyAgICAgICB1aW50MzJfdCByeHF1ZXVlcyA9IDA7JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTEwODogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc2NzoKKyAgICAgICB1aW50MzJfdCB0eHF1ZXVl cyA9IDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGlu ZQojMTEwOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc2ODoKKyAg ICAgICB1aW50MzJfdCBwb3J0PTA7JAoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhh dCAnPScgKGN0eDpWeFYpCiMxMTA5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250 bmljLmM6NzY4OgorICAgICAgIHVpbnQzMl90IHBvcnQ9MDsKICAgICAgICAgICAgICAgICAgICAg XgoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTEx MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc2OToKKyAgICAgICB1 aW50MzJfdCBwb3J0ZW5kID0gKHVpbnQzMl90KS0xOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExMTE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo3NzA6CisgICAgICAgdWludDMyX3QgaGFzaCA9ICh1aW50MzJfdCkt MTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMx MTEyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzcxOgorICAgICAg IHN0cnVjdCBhcnJheV9zIGFzdHJlYW1pZHM7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMg YXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTExNDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjc3MzoKKyAgICAgICBzdGF0aWMgaW50IGZpcnN0ID0gMTskCgpXQVJOSU5H OiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMTE1OiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Nzc0OgorICAgICAgIHN0YXRpYyBpbnQg c3RyZWFtX2lkID0gMDskCgpFUlJPUjogZG8gbm90IGluaXRpYWxpc2Ugc3RhdGljcyB0byAwIG9y IE5VTEwKIzExMTU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3NzQ6 CisgICAgICAgc3RhdGljIGludCBzdHJlYW1faWQgPSAwOwoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTExNjogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjc3NToKKyAgICAgICBjaGFyIG50cGxTdHJbNTEyXTskCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMTE4OiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Nzc3OgorICAgICAgIGFzdHJlYW1p ZHMuY291bnQgPSAwOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzExMjA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3 Nzk6CisgICAgICAgUlRFX0xPRyhJTkZPLCBQTUQsICJJbml0aWFsaXppbmcgcG1kX250bmljIGZv ciAlcwoiLCBuYW1lKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiMxMTIyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 NzgxOgorICAgICAgIG51bWFfbm9kZSA9IHJ0ZV9zb2NrZXRfaWQoKTskCgpXQVJOSU5HOiBwbGVh c2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMTI0OiBGSUxFOiBkcml2ZXJz L25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzgzOgorICAgICAgIGt2bGlzdCA9IHJ0ZV9rdmFy Z3NfcGFyc2UocGFyYW1zLCB2YWxpZF9hcmd1bWVudHMpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExMjU6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo3ODQ6CisgICAgICAgaWYgKGt2bGlzdCA9PSBOVUxMKSB7JAoK V0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAo NywgMTUpCiMxMTI1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Nzg0 OgorICAgICAgIGlmIChrdmxpc3QgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgcmV0dXJuIC0x OwoKV0FSTklORzogYnJhY2VzIHt9IGFyZSBub3QgbmVjZXNzYXJ5IGZvciBzaW5nbGUgc3RhdGVt ZW50IGJsb2NrcwojMTEyNTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5j Ojc4NDoKKyAgICAgICBpZiAoa3ZsaXN0ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgIHJldHVy biAtMTsKKyAgICAgICB9CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJl IHBvc3NpYmxlCiMxMTI2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 Nzg1OgorICAgICAgICAgICAgICAgcmV0dXJuIC0xOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExMjY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo3ODU6CisgICAgICAgICAgICAgICByZXR1cm4gLTE7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTEyNzogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc4NjoKKyAgICAgICB9JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTEzMDogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc4OToKKyAgICAgICBpZiAoKGkgPSBy dGVfa3ZhcmdzX2NvdW50KGt2bGlzdCwgRVRIX05UTklDX1BPUlRfQVJHKSkpIHskCgpXQVJOSU5H OiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkK IzExMzA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3ODk6CisgICAg ICAgaWYgKChpID0gcnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEVUSF9OVE5JQ19QT1JUX0FSRykp KSB7CisgICAgICAgICAgICAgICBhc3NlcnQgKGkgPT0gMSk7CgpFUlJPUjogZG8gbm90IHVzZSBh c3NpZ25tZW50IGluIGlmIGNvbmRpdGlvbgojMTEzMDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjc4OToKKyAgICAgICBpZiAoKGkgPSBydGVfa3ZhcmdzX2NvdW50KGt2 bGlzdCwgRVRIX05UTklDX1BPUlRfQVJHKSkpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg dXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzExMzE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzo3OTA6CisgICAgICAgICAgICAgICBhc3NlcnQgKGkgPT0gMSk7JAoKV0FS TklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTEzMTogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc5MDoKKyAgICAgICAgICAgICAg IGFzc2VydCAoaSA9PSAxKTskCgpXQVJOSU5HOiBzcGFjZSBwcm9oaWJpdGVkIGJldHdlZW4gZnVu Y3Rpb24gbmFtZSBhbmQgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzExMzE6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3OTA6CisgICAgICAgICAgICAgICBhc3NlcnQgKGkg PT0gMSk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxl CiMxMTMyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6NzkxOgorICAg ICAgICAgICAgICAgcmV0ID0gcnRlX2t2YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX05UTklDX1BP UlRfQVJHLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxp bmUKIzExMzI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3OTE6Cisg ICAgICAgICAgICAgICByZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moa3ZsaXN0LCBFVEhfTlROSUNf UE9SVF9BUkcsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3Nz aWJsZQojMTEzMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc5MjoK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmYXNjaWlfdG9fdTMyLCAmcG9ydCk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQg dGhlIHN0YXJ0IG9mIGEgbGluZQojMTEzMzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjc5MjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmYXNjaWlfdG9fdTMyLCAmcG9ydCk7JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTEzNDogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc5MzoKKyAgICAgICB9JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTEzNjogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc5NToKKyAgICAgICBpZiAoKGkgPSBydGVfa3Zhcmdz X2NvdW50KGt2bGlzdCwgRVRIX05UTklDX1BPUlRFTkRfQVJHKSkpIHskCgpXQVJOSU5HOiBzdXNw ZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzExMzY6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3OTU6CisgICAgICAgaWYg KChpID0gcnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEVUSF9OVE5JQ19QT1JURU5EX0FSRykpKSB7 CisgICAgICAgICAgICAgICBhc3NlcnQgKGkgPT0gMSk7CgpFUlJPUjogZG8gbm90IHVzZSBhc3Np Z25tZW50IGluIGlmIGNvbmRpdGlvbgojMTEzNjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjc5NToKKyAgICAgICBpZiAoKGkgPSBydGVfa3ZhcmdzX2NvdW50KGt2bGlz dCwgRVRIX05UTklDX1BPUlRFTkRfQVJHKSkpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg dXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzExMzc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzo3OTY6CisgICAgICAgICAgICAgICBhc3NlcnQgKGkgPT0gMSk7JAoKV0FS TklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTEzNzogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc5NjoKKyAgICAgICAgICAgICAg IGFzc2VydCAoaSA9PSAxKTskCgpXQVJOSU5HOiBzcGFjZSBwcm9oaWJpdGVkIGJldHdlZW4gZnVu Y3Rpb24gbmFtZSBhbmQgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzExMzc6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3OTY6CisgICAgICAgICAgICAgICBhc3NlcnQgKGkg PT0gMSk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxl CiMxMTM4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6Nzk3OgorICAg ICAgICAgICAgICAgcmV0ID0gcnRlX2t2YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX05UTklDX1BP UlRFTkRfQVJHLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBh IGxpbmUKIzExMzg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3OTc6 CisgICAgICAgICAgICAgICByZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moa3ZsaXN0LCBFVEhfTlRO SUNfUE9SVEVORF9BUkcsJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzExMzk6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo3OTg6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFz Y2lpX3RvX3UzMiwgJnBvcnRlbmQpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFi cyB3aGVyZSBwb3NzaWJsZQojMTEzOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjc5ODoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmYXNjaWlfdG9fdTMyLCAmcG9ydGVuZCk7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTEzOTogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc5ODoKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXNjaWlfdG9fdTMy LCAmcG9ydGVuZCk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojMTE0MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjc5 OToKKyAgICAgICB9JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojMTE0MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgw MjoKKyAgICAgICBpZiAoKGkgPSBydGVfa3ZhcmdzX2NvdW50KGt2bGlzdCwgRVRIX05UTklDX1JY UVVFVUVTX0FSRykpKSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0 aW9uYWwgc3RhdGVtZW50cyAoNywgMTUpCiMxMTQzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6ODAyOgorICAgICAgIGlmICgoaSA9IHJ0ZV9rdmFyZ3NfY291bnQoa3Zs aXN0LCBFVEhfTlROSUNfUlhRVUVVRVNfQVJHKSkpIHsKKyAgICAgICAgICAgICAgIGFzc2VydCAo aSA9PSAxKTsKCkVSUk9SOiBkbyBub3QgdXNlIGFzc2lnbm1lbnQgaW4gaWYgY29uZGl0aW9uCiMx MTQzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODAyOgorICAgICAg IGlmICgoaSA9IHJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBFVEhfTlROSUNfUlhRVUVVRVNfQVJH KSkpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUK IzExNDQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4MDM6CisgICAg ICAgICAgICAgICBhc3NlcnQgKGkgPT0gMSk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMg YXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE0NDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjgwMzoKKyAgICAgICAgICAgICAgIGFzc2VydCAoaSA9PSAxKTskCgpXQVJO SU5HOiBzcGFjZSBwcm9oaWJpdGVkIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgb3BlbiBwYXJl bnRoZXNpcyAnKCcKIzExNDQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu Yzo4MDM6CisgICAgICAgICAgICAgICBhc3NlcnQgKGkgPT0gMSk7CgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMTQ1OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6ODA0OgorICAgICAgICAgICAgICAgcmV0ID0gcnRlX2t2 YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX05UTklDX1JYUVVFVUVTX0FSRywkCgpXQVJOSU5HOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMTQ1OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODA0OgorICAgICAgICAgICAgICAgcmV0ID0g cnRlX2t2YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX05UTklDX1JYUVVFVUVTX0FSRywkCgpXQVJO SU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTE0NjogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjgwNToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXNjaWlfdG9fdTMyLCAmcnhxdWV1ZXMp OwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTE0 NjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgwNToKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm YXNjaWlfdG9fdTMyLCAmcnhxdWV1ZXMpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExNDY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo4MDU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmFzY2lpX3RvX3UzMiwgJnJ4cXVldWVzKTskCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMTQ3OiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODA2OgorICAgICAgIH0kCgpXQVJO SU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMTQ5OiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODA4OgorICAgICAgIGlmICgoaSA9 IHJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBFVEhfTlROSUNfVFhRVUVVRVNfQVJHKSkpIHskCgpX QVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3 LCAxNSkKIzExNDk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4MDg6 CisgICAgICAgaWYgKChpID0gcnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEVUSF9OVE5JQ19UWFFV RVVFU19BUkcpKSkgeworICAgICAgICAgICAgICAgYXNzZXJ0IChpID09IDEpOwoKRVJST1I6IGRv IG5vdCB1c2UgYXNzaWdubWVudCBpbiBpZiBjb25kaXRpb24KIzExNDk6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4MDg6CisgICAgICAgaWYgKChpID0gcnRlX2t2YXJn c19jb3VudChrdmxpc3QsIEVUSF9OVE5JQ19UWFFVRVVFU19BUkcpKSkgewoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTE1MDogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgwOToKKyAgICAgICAgICAgICAgIGFzc2VydCAo aSA9PSAxKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiMxMTUwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODA5Ogor ICAgICAgICAgICAgICAgYXNzZXJ0IChpID09IDEpOyQKCldBUk5JTkc6IHNwYWNlIHByb2hpYml0 ZWQgYmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCBvcGVuIHBhcmVudGhlc2lzICcoJwojMTE1MDog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgwOToKKyAgICAgICAgICAg ICAgIGFzc2VydCAoaSA9PSAxKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMg d2hlcmUgcG9zc2libGUKIzExNTE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo4MTA6CisgICAgICAgICAgICAgICByZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moa3ZsaXN0 LCBFVEhfTlROSUNfVFhRVUVVRVNfQVJHLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0 IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExNTE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo4MTA6CisgICAgICAgICAgICAgICByZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Mo a3ZsaXN0LCBFVEhfTlROSUNfVFhRVUVVRVNfQVJHLCQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBj aGFyYWN0ZXJzCiMxMTUyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 ODExOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZhc2NpaV90b191MzIsICZ0eHF1ZXVlcyk7CgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMTUyOiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6ODExOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhc2NpaV90b191MzIsICZ0eHF1 ZXVlcyk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGlu ZQojMTE1MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgxMToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmYXNjaWlfdG9fdTMyLCAmdHhxdWV1ZXMpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExNTM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo4MTI6CisgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExNTY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo4MTU6CisgICAgICAgaWYgKChpID0gcnRlX2t2YXJnc19jb3VudChr dmxpc3QsIEVUSF9OVE5JQ19TVFJFQU1JRF9BUkcpKSkgeyQKCldBUk5JTkc6IHN1c3BlY3QgY29k ZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1KQojMTE1NjogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgxNToKKyAgICAgICBpZiAoKGkgPSBy dGVfa3ZhcmdzX2NvdW50KGt2bGlzdCwgRVRIX05UTklDX1NUUkVBTUlEX0FSRykpKSB7CisgICAg ICAgICAgICAgICByZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moa3ZsaXN0LCBFVEhfTlROSUNfU1RS RUFNSURfQVJHLAoKRVJST1I6IGRvIG5vdCB1c2UgYXNzaWdubWVudCBpbiBpZiBjb25kaXRpb24K IzExNTY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4MTU6CisgICAg ICAgaWYgKChpID0gcnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEVUSF9OVE5JQ19TVFJFQU1JRF9B UkcpKSkgewoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJs ZQojMTE1NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgxNjoKKyAg ICAgICAgICAgICAgIHJldCA9IHJ0ZV9rdmFyZ3NfcHJvY2Vzcyhrdmxpc3QsIEVUSF9OVE5JQ19T VFJFQU1JRF9BUkcsJAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojMTE1NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgx NjoKKyAgICAgICAgICAgICAgIHJldCA9IHJ0ZV9rdmFyZ3NfcHJvY2Vzcyhrdmxpc3QsIEVUSF9O VE5JQ19TVFJFQU1JRF9BUkcsJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzEx NTg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4MTc6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JmFzY2lpX3RvX3UzMl9hcnJheSwgJmFzdHJlYW1pZHMpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTE1ODogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjgxNzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXNjaWlfdG9fdTMyX2FycmF5LCAmYXN0 cmVhbWlkcyk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojMTE1ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgxNzoK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmYXNjaWlfdG9fdTMyX2FycmF5LCAmYXN0cmVhbWlkcyk7JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE1OTogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgxODoKKyAgICAgICB9JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE2MjogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgyMToKKyAgICAgICBpZiAoKGkgPSBydGVfa3Zh cmdzX2NvdW50KGt2bGlzdCwgRVRIX05UTklDX0hBU0hfQVJHKSkpIHskCgpXQVJOSU5HOiBzdXNw ZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzExNjI6 IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4MjE6CisgICAgICAgaWYg KChpID0gcnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEVUSF9OVE5JQ19IQVNIX0FSRykpKSB7Cisg ICAgICAgICAgICAgICBhc3NlcnQgKGkgPT0gMSk7CgpFUlJPUjogZG8gbm90IHVzZSBhc3NpZ25t ZW50IGluIGlmIGNvbmRpdGlvbgojMTE2MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjgyMToKKyAgICAgICBpZiAoKGkgPSBydGVfa3ZhcmdzX2NvdW50KGt2bGlzdCwg RVRIX05UTklDX0hBU0hfQVJHKSkpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRh YnMgd2hlcmUgcG9zc2libGUKIzExNjM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzo4MjI6CisgICAgICAgICAgICAgICBhc3NlcnQgKGkgPT0gMSk7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE2MzogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgyMjoKKyAgICAgICAgICAgICAgIGFzc2Vy dCAoaSA9PSAxKTskCgpXQVJOSU5HOiBzcGFjZSBwcm9oaWJpdGVkIGJldHdlZW4gZnVuY3Rpb24g bmFtZSBhbmQgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzExNjM6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo4MjI6CisgICAgICAgICAgICAgICBhc3NlcnQgKGkgPT0gMSk7 CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMTY0 OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODIzOgorICAgICAgICAg ICAgICAgcmV0ID0gcnRlX2t2YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX05UTklDX0hBU0hfQVJH LCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEx NjQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4MjM6CisgICAgICAg ICAgICAgICByZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moa3ZsaXN0LCBFVEhfTlROSUNfSEFTSF9B UkcsJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzExNjU6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4MjQ6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFzY2lpX3RvX3UzMiwg Jmhhc2gpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJs ZQojMTE2NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgyNDoKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmYXNjaWlfdG9fdTMyLCAmaGFzaCk7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMg YXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE2NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjgyNDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmYXNjaWlfdG9fdTMyLCAmaGFzaCk7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE2NjogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgyNToKKyAgICAgICB9JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE2OTogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgyODoKKyAgICAgICBpZiAocG9ydGVu ZCAhPSAodWludDMyX3QpLTEgJiYgYXN0cmVhbWlkcy5jb3VudCkgeyQKCldBUk5JTkc6IHN1c3Bl Y3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1KQojMTE2OTog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgyODoKKyAgICAgICBpZiAo cG9ydGVuZCAhPSAodWludDMyX3QpLTEgJiYgYXN0cmVhbWlkcy5jb3VudCkgeworICAgICAgICAg ICAgICAgUlRFX0xPRyhFUlIsIFBNRCwgIkNhbm5vdCBzcGVjaWZ5IHBvcnRlbmQgd2hlbiBvbmUg b3IgbW9yZSBzdHJlYW1pZCdzIGFyZSBzcGVjaWZpZWQKIik7CgpXQVJOSU5HOiBsaW5lIG92ZXIg ODAgY2hhcmFjdGVycwojMTE3MDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjgyOToKKyAgICAgICAgICAgICAgIFJURV9MT0coRVJSLCBQTUQsICJDYW5ub3Qgc3BlY2lm eSBwb3J0ZW5kIHdoZW4gb25lIG9yIG1vcmUgc3RyZWFtaWQncyBhcmUgc3BlY2lmaWVkCiIpOwoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTE3MDog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgyOToKKyAgICAgICAgICAg ICAgIFJURV9MT0coRVJSLCBQTUQsICJDYW5ub3Qgc3BlY2lmeSBwb3J0ZW5kIHdoZW4gb25lIG9y IG1vcmUgc3RyZWFtaWQncyBhcmUgc3BlY2lmaWVkCiIpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExNzA6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo4Mjk6CisgICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgUE1E LCAiQ2Fubm90IHNwZWNpZnkgcG9ydGVuZCB3aGVuIG9uZSBvciBtb3JlIHN0cmVhbWlkJ3MgYXJl IHNwZWNpZmllZAoiKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJl IHBvc3NpYmxlCiMxMTcxOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 ODMwOgorICAgICAgICAgICAgICAgcmV0dXJuIC0xOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExNzE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo4MzA6CisgICAgICAgICAgICAgICByZXR1cm4gLTE7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE3MjogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgzMToKKyAgICAgICB9JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE3MzogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgzMjoKKyAgICAgICBydGVfa3Zhcmdz X2ZyZWUoa3ZsaXN0KTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiMxMTc1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 ODM0OgorICAgICAgIGlmIChyZXQgPCAwKSQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQg Zm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcsIDE1KQojMTE3NTogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjgzNDoKKyAgICAgICBpZiAocmV0IDwgMCkKKyAgICAg ICAgICAgICAgIHJldHVybiAtMTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMg d2hlcmUgcG9zc2libGUKIzExNzY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo4MzU6CisgICAgICAgICAgICAgICByZXR1cm4gLTE7JAoKV0FSTklORzogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE3NjogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjgzNToKKyAgICAgICAgICAgICAgIHJldHVybiAtMTskCgpX QVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMTc4OiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODM3OgorICAgICAgIGlmIChm aXJzdCkkCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0 ZW1lbnRzICg3LCAxNSkKIzExNzg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo4Mzc6CisgICAgICAgaWYgKGZpcnN0KQorICAgICAgICAgICAgICAgTlRfSW5pdChOVEFQ SV9WRVJTSU9OKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9z c2libGUKIzExNzk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4Mzg6 CisgICAgICAgICAgICAgICBOVF9Jbml0KE5UQVBJX1ZFUlNJT04pOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExNzk6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4Mzg6CisgICAgICAgICAgICAgICBOVF9Jbml0KE5U QVBJX1ZFUlNJT04pOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzExODE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4 NDA6CisgICAgICAgaWYgKGFzdHJlYW1pZHMuY291bnQpIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNv ZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzExODE6IEZJTEU6 IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NDA6CisgICAgICAgaWYgKGFzdHJl YW1pZHMuY291bnQpIHsKKyAgICAgICAgICAgICAgIGZpcnN0ID0gMDsKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzExODI6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NDE6CisgICAgICAgICAgICAgICBmaXJzdCA9IDA7 JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE4 MjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg0MToKKyAgICAgICAg ICAgICAgIGZpcnN0ID0gMDskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTE4 MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg0MjoKKyAgICAgICAg ICAgICAgIC8qIHNwZWNpZmljIHN0cmVhbWlkIHNwZWNpZmllZCwgdXNlIHRoYXQgLSBwb3J0IGRl ZmF1bHRzIHRvIFR4IHBvcnQgb25seSAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2Ug dGFicyB3aGVyZSBwb3NzaWJsZQojMTE4MzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjg0MjoKKyAgICAgICAgICAgICAgIC8qIHNwZWNpZmljIHN0cmVhbWlkIHNwZWNp ZmllZCwgdXNlIHRoYXQgLSBwb3J0IGRlZmF1bHRzIHRvIFR4IHBvcnQgb25seSAqLyQKCldBUk5J Tkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMxMTg0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5p Yy9ydGVfZXRoX250bmljLmM6ODQzOgorICAgICAgICAgICAgICAgaWYgKHJ0ZV9wbWRfaW5pdF9p bnRlcm5hbHMobmFtZSwgcnhxdWV1ZXMsIHR4cXVldWVzLCBudW1hX25vZGUsICZhc3RyZWFtaWRz LCBwb3J0LCAmZXRoX2RldikgPCAwKQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFi cyB3aGVyZSBwb3NzaWJsZQojMTE4NDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjg0MzoKKyAgICAgICAgICAgICAgIGlmIChydGVfcG1kX2luaXRfaW50ZXJuYWxzKG5h bWUsIHJ4cXVldWVzLCB0eHF1ZXVlcywgbnVtYV9ub2RlLCAmYXN0cmVhbWlkcywgcG9ydCwgJmV0 aF9kZXYpIDwgMCkkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiMxMTg0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODQz OgorICAgICAgICAgICAgICAgaWYgKHJ0ZV9wbWRfaW5pdF9pbnRlcm5hbHMobmFtZSwgcnhxdWV1 ZXMsIHR4cXVldWVzLCBudW1hX25vZGUsICZhc3RyZWFtaWRzLCBwb3J0LCAmZXRoX2RldikgPCAw KSQKCldBUk5JTkc6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVu dHMgKDE1LCAyMykKIzExODQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu Yzo4NDM6CisgICAgICAgICAgICAgICBpZiAocnRlX3BtZF9pbml0X2ludGVybmFscyhuYW1lLCBy eHF1ZXVlcywgdHhxdWV1ZXMsIG51bWFfbm9kZSwgJmFzdHJlYW1pZHMsIHBvcnQsICZldGhfZGV2 KSA8IDApCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzExODU6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NDQ6CisgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtMTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBs aW5lCiMxMTg1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODQ0Ogor ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7JAoKV0FSTklORzogcGxlYXNlLCBubyBz cGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE4NjogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjg0NToKKyAgICAgICB9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzExODc6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NDY6CisgICAgICAgICAgICAgICBzdHJ1Y3QgYXJy YXlfcyBhc3RyaWRzOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBv ZiBhIGxpbmUKIzExODc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4 NDY6CisgICAgICAgICAgICAgICBzdHJ1Y3QgYXJyYXlfcyBhc3RyaWRzOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzExODg6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NDc6CisgICAgICAgICAgICAgICBpZiAoZmly c3QpIHskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5l CiMxMTg4OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODQ3OgorICAg ICAgICAgICAgICAgaWYgKGZpcnN0KSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBm b3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAoMTUsIDIzKQojMTE4ODogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg0NzoKKyAgICAgICAgICAgICAgIGlmIChmaXJzdCkg eworICAgICAgICAgICAgICAgICAgICAgICAvKiBEZWxldGUgYWxsIE5UUEwgKi8KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzExODk6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NDg6CisgICAgICAgICAgICAgICAgICAg ICAgIC8qIERlbGV0ZSBhbGwgTlRQTCAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNl IHRhYnMgd2hlcmUgcG9zc2libGUKIzExOTA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo4NDk6CisgICAgICAgICAgICAgICAgICAgICAgIHNwcmludGYobnRwbFN0ciwg IkRlbGV0ZT1BbGwiKTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiMxMTkwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 ODQ5OgorICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKG50cGxTdHIsICJEZWxldGU9QWxs Iik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQoj MTE5MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1MDoKKyAgICAg ICAgICAgICAgICAgICAgICAgaWYgKERvTnRwbChudHBsU3RyKSAhPSAwKSB7JAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE5MTogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1MDoKKyAgICAgICAgICAgICAgICAgICAg ICAgaWYgKERvTnRwbChudHBsU3RyKSAhPSAwKSB7JAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGlu ZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAoMjMsIDMxKQojMTE5MTogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1MDoKKyAgICAgICAgICAgICAgICAgICAg ICAgaWYgKERvTnRwbChudHBsU3RyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIC0xOwoKV0FSTklORzogYnJhY2VzIHt9IGFyZSBub3QgbmVjZXNzYXJ5IGZv ciBzaW5nbGUgc3RhdGVtZW50IGJsb2NrcwojMTE5MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjg1MDoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKERvTnRwbChu dHBsU3RyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0x OworICAgICAgICAgICAgICAgICAgICAgICB9CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVz ZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMTkyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6ODUxOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt MTskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMx MTkyOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODUxOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMTkzOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6ODUyOgorICAgICAgICAgICAgICAgICAgICAgICB9JAoKV0FS TklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE5MzogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1MjoKKyAgICAgICAgICAgICAg ICAgICAgICAgfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9z c2libGUKIzExOTQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NTM6 CisgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gMDskCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMTk0OiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6ODUzOgorICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9 IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQoj MTE5NTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1NDoKKyAgICAg ICAgICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2Yg YSBsaW5lCiMxMTk1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODU0 OgorICAgICAgICAgICAgICAgfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMg d2hlcmUgcG9zc2libGUKIzExOTY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo4NTU6CisgICAgICAgICAgICAgICBhc3RyaWRzLmNvdW50PTE7JAoKV0FSTklORzogcGxl YXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE5NjogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1NToKKyAgICAgICAgICAgICAgIGFzdHJpZHMu Y291bnQ9MTskCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICc9JyAoY3R4OlZ4 VikKIzExOTY6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NTU6Cisg ICAgICAgICAgICAgICBhc3RyaWRzLmNvdW50PTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQoj MTE5NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1NjoKKyAgICAg ICAgICAgICAgIGFzdHJpZHMudmFsdWVbMF0gPSBzdHJlYW1faWQ7JAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTE5NzogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1NjoKKyAgICAgICAgICAgICAgIGFzdHJpZHMudmFs dWVbMF0gPSBzdHJlYW1faWQ7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzEx OTg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NTc6CisgICAgICAg ICAgICAgICBpZiAocnRlX3BtZF9pbml0X2ludGVybmFscyhuYW1lLCByeHF1ZXVlcywgdHhxdWV1 ZXMsIG51bWFfbm9kZSwgJmFzdHJpZHMsIHBvcnQsICZldGhfZGV2KSA8IDApCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMTk4OiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODU3OgorICAgICAgICAgICAgICAgaWYgKHJ0 ZV9wbWRfaW5pdF9pbnRlcm5hbHMobmFtZSwgcnhxdWV1ZXMsIHR4cXVldWVzLCBudW1hX25vZGUs ICZhc3RyaWRzLCBwb3J0LCAmZXRoX2RldikgPCAwKSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3Bh Y2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzExOTg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmlj L3J0ZV9ldGhfbnRuaWMuYzo4NTc6CisgICAgICAgICAgICAgICBpZiAocnRlX3BtZF9pbml0X2lu dGVybmFscyhuYW1lLCByeHF1ZXVlcywgdHhxdWV1ZXMsIG51bWFfbm9kZSwgJmFzdHJpZHMsIHBv cnQsICZldGhfZGV2KSA8IDApJAoKV0FSTklORzogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29u ZGl0aW9uYWwgc3RhdGVtZW50cyAoMTUsIDIzKQojMTE5ODogRklMRTogZHJpdmVycy9uZXQvbnRu aWMvcnRlX2V0aF9udG5pYy5jOjg1NzoKKyAgICAgICAgICAgICAgIGlmIChydGVfcG1kX2luaXRf aW50ZXJuYWxzKG5hbWUsIHJ4cXVldWVzLCB0eHF1ZXVlcywgbnVtYV9ub2RlLCAmYXN0cmlkcywg cG9ydCwgJmV0aF9kZXYpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTE5OTog RklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg1ODoKKyAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIC0xOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzExOTk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzo4NTg6CisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMjAxOiBGSUxFOiBk cml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODYwOgorICAgICAgICAgICAgICAgLyog QXNzaWduIHRoZSB0cmFmZmljICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFi cyB3aGVyZSBwb3NzaWJsZQojMTIwMjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9u dG5pYy5jOjg2MToKKyAgICAgICAgICAgICAgIGlmIChwb3J0ZW5kICE9ICh1aW50MzJfdCktMSkg eyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEy MDI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NjE6CisgICAgICAg ICAgICAgICBpZiAocG9ydGVuZCAhPSAodWludDMyX3QpLTEpIHskCgpXQVJOSU5HOiBzdXNwZWN0 IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiMxMjAyOiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODYxOgorICAgICAgICAgICAg ICAgaWYgKHBvcnRlbmQgIT0gKHVpbnQzMl90KS0xKSB7CisgICAgICAgICAgICAgICAgICAgICAg IHNwcmludGYobnRwbFN0ciwgIkFzc2lnbltzdHJlYW1pZD0oJWQuLiVkKTtEZXNjcmlwdG9yPU5U XT1wb3J0PT0oJWQuLiVkKSIsIHN0cmVhbV9pZCwKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFy YWN0ZXJzCiMxMjAzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODYy OgorICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKG50cGxTdHIsICJBc3NpZ25bc3RyZWFt aWQ9KCVkLi4lZCk7RGVzY3JpcHRvcj1OVF09cG9ydD09KCVkLi4lZCkiLCBzdHJlYW1faWQsCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMjAzOiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODYyOgorICAgICAgICAgICAg ICAgICAgICAgICBzcHJpbnRmKG50cGxTdHIsICJBc3NpZ25bc3RyZWFtaWQ9KCVkLi4lZCk7RGVz Y3JpcHRvcj1OVF09cG9ydD09KCVkLi4lZCkiLCBzdHJlYW1faWQsJAoKV0FSTklORzogcGxlYXNl LCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTIwMzogRklMRTogZHJpdmVycy9u ZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg2MjoKKyAgICAgICAgICAgICAgICAgICAgICAgc3By aW50ZihudHBsU3RyLCAiQXNzaWduW3N0cmVhbWlkPSglZC4uJWQpO0Rlc2NyaXB0b3I9TlRdPXBv cnQ9PSglZC4uJWQpIiwgc3RyZWFtX2lkLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNl IHRhYnMgd2hlcmUgcG9zc2libGUKIzEyMDQ6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9l dGhfbnRuaWMuYzo4NjM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo c3RyZWFtX2lkK3J4cXVldWVzLTEpLCBwb3J0LCBwb3J0ZW5kKTskCgpXQVJOSU5HOiBwbGVhc2Us IG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMjA0OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6ODYzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN0cmVhbV9pZCtyeHF1ZXVlcy0xKSwgcG9ydCwgcG9ydGVuZCk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTIwNjogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg2NToKKyAgICAgICAgICAgICAg IH0gZWxzZSB7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEg bGluZQojMTIwNjogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg2NToK KyAgICAgICAgICAgICAgIH0gZWxzZSB7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3Rl cnMKIzEyMDc6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NjY6Cisg ICAgICAgICAgICAgICAgICAgICAgIHNwcmludGYobnRwbFN0ciwgIkFzc2lnbltzdHJlYW1pZD0o JWQuLiVkKTtEZXNjcmlwdG9yPU5UXT1wb3J0PT0lZCIsIHN0cmVhbV9pZCwKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEyMDc6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NjY6CisgICAgICAgICAgICAgICAgICAgICAg IHNwcmludGYobnRwbFN0ciwgIkFzc2lnbltzdHJlYW1pZD0oJWQuLiVkKTtEZXNjcmlwdG9yPU5U XT1wb3J0PT0lZCIsIHN0cmVhbV9pZCwkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0 aGUgc3RhcnQgb2YgYSBsaW5lCiMxMjA3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6ODY2OgorICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKG50cGxTdHIsICJB c3NpZ25bc3RyZWFtaWQ9KCVkLi4lZCk7RGVzY3JpcHRvcj1OVF09cG9ydD09JWQiLCBzdHJlYW1f aWQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQoj MTIwODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg2NzoKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJlYW1faWQrcnhxdWV1ZXMtMSks IHBvcnQpOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxp bmUKIzEyMDg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4Njc6Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyZWFtX2lkK3J4cXVldWVz LTEpLCBwb3J0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBv c3NpYmxlCiMxMjA5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODY4 OgorICAgICAgICAgICAgICAgfSQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBz dGFydCBvZiBhIGxpbmUKIzEyMDk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo4Njg6CisgICAgICAgICAgICAgICB9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1 c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTIxMDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRl X2V0aF9udG5pYy5jOjg2OToKKyAgICAgICAgICAgICAgIGlmIChEb050cGwobnRwbFN0cikgIT0g MCkgeyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUK IzEyMTA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4Njk6CisgICAg ICAgICAgICAgICBpZiAoRG9OdHBsKG50cGxTdHIpICE9IDApIHskCgpXQVJOSU5HOiBzdXNwZWN0 IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiMxMjEwOiBG SUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODY5OgorICAgICAgICAgICAg ICAgaWYgKERvTnRwbChudHBsU3RyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtMTsKCldBUk5JTkc6IGJyYWNlcyB7fSBhcmUgbm90IG5lY2Vzc2FyeSBmb3Igc2luZ2xl IHN0YXRlbWVudCBibG9ja3MKIzEyMTA6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzo4Njk6CisgICAgICAgICAgICAgICBpZiAoRG9OdHBsKG50cGxTdHIpICE9IDApIHsK KyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgfQoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTIxMTogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg3MDoKKyAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIC0xOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBz dGFydCBvZiBhIGxpbmUKIzEyMTE6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRu aWMuYzo4NzA6CisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMjEyOiBGSUxFOiBkcml2 ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODcxOgorICAgICAgICAgICAgICAgfSQKCldB Uk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEyMTI6IEZJ TEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NzE6CisgICAgICAgICAgICAg ICB9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQoj MTIxNDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg3MzoKKyAgICAg ICAgICAgICAgIGlmIChoYXNoICE9ICh1aW50MzJfdCktMSkgeyQKCldBUk5JTkc6IHBsZWFzZSwg bm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEyMTQ6IEZJTEU6IGRyaXZlcnMvbmV0 L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4NzM6CisgICAgICAgICAgICAgICBpZiAoaGFzaCAhPSAo dWludDMyX3QpLTEpIHskCgpXQVJOSU5HOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRp b25hbCBzdGF0ZW1lbnRzICgxNSwgMjMpCiMxMjE0OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9y dGVfZXRoX250bmljLmM6ODczOgorICAgICAgICAgICAgICAgaWYgKGhhc2ggIT0gKHVpbnQzMl90 KS0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaGFzaCkgewoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTIxNTogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg3NDoKKyAgICAgICAgICAgICAgICAgICAg ICAgc3dpdGNoIChoYXNoKSB7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0 YXJ0IG9mIGEgbGluZQojMTIxNTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjg3NDoKKyAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChoYXNoKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTIxNjogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg3NToKKyAgICAgICAgICAgICAgICAg ICAgICAgZGVmYXVsdDokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJl IHBvc3NpYmxlCiMxMjE3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 ODc2OgorICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6JAoKV0FSTklORzogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTIxNzogRklMRTogZHJpdmVycy9uZXQv bnRuaWMvcnRlX2V0aF9udG5pYy5jOjg3NjoKKyAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAx OiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEy MTg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4Nzc6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRG9OdHBsKCJIYXNoTW9kZT1IYXNoUm91bmRSb2JpbiIp OyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEy MTg6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4Nzc6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRG9OdHBsKCJIYXNoTW9kZT1IYXNoUm91bmRSb2JpbiIp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEy MTk6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4Nzg6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFj ZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTIxOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMv cnRlX2V0aF9udG5pYy5jOjg3ODoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMx MjIwOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODc5OgorICAgICAg ICAgICAgICAgICAgICAgICBjYXNlIDI6JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQg dGhlIHN0YXJ0IG9mIGEgbGluZQojMTIyMDogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0 aF9udG5pYy5jOjg3OToKKyAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEyMjE6IEZJTEU6IGRy aXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4ODA6CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRG9OdHBsKCJIYXNoTW9kZT1IYXNoMlR1cGxlU29ydGVkIik7JAoKV0FSTklO RzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTIyMTogRklMRTog ZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg4MDoKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEb050cGwoIkhhc2hNb2RlPUhhc2gyVHVwbGVTb3J0ZWQiKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMjIyOiBGSUxF OiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODgxOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUKIzEyMjI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhf bnRuaWMuYzo4ODE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTIyMzogRklM RTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg4MjoKKyAgICAgICAgICAgICAg ICAgICAgICAgY2FzZSAzOiQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFy dCBvZiBhIGxpbmUKIzEyMjM6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMu Yzo4ODI6CisgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMjI0OiBGSUxFOiBkcml2ZXJzL25l dC9udG5pYy9ydGVfZXRoX250bmljLmM6ODgzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERvTnRwbCgiSGFzaE1vZGU9SGFzaDVUdXBsZVNvcnRlZCIpOyQKCldBUk5JTkc6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEyMjQ6IEZJTEU6IGRyaXZlcnMv bmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4ODM6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRG9OdHBsKCJIYXNoTW9kZT1IYXNoNVR1cGxlU29ydGVkIik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMTIyNTogRklMRTogZHJpdmVy cy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg4NDoKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiMxMjI1OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 ODg0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEyMjY6IEZJTEU6IGRyaXZl cnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4ODU6CisgICAgICAgICAgICAgICAgICAgICAg IH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMx MjI2OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6ODg1OgorICAgICAg ICAgICAgICAgICAgICAgICB9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3 aGVyZSBwb3NzaWJsZQojMTIyNzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5p Yy5jOjg4NjoKKyAgICAgICAgICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBh dCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMjI3OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVf ZXRoX250bmljLmM6ODg2OgorICAgICAgICAgICAgICAgfSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzEyMjk6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo4ODg6CisgICAgICAgICAgICAgICBzdHJlYW1faWQgKz0gcnhx dWV1ZXM7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGlu ZQojMTIyOTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjg4ODoKKyAg ICAgICAgICAgICAgIHN0cmVhbV9pZCArPSByeHF1ZXVlczskCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMjMwOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6ODg5OgorICAgICAgIH0kCgpXQVJOSU5HOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMxMjMyOiBGSUxFOiBkcml2ZXJzL25ldC9u dG5pYy9ydGVfZXRoX250bmljLmM6ODkxOgorICAgICAgIGV0aF9kZXYtPnJ4X3BrdF9idXJzdCA9 IGV0aF9udG5pY19yeDskCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQg b2YgYSBsaW5lCiMxMjMzOiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRoX250bmljLmM6 ODkyOgorICAgICAgIGV0aF9kZXYtPnR4X3BrdF9idXJzdCA9IGV0aF9udG5pY190eF9yaW5nYnVm ZmVyOyQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUK IzEyMzU6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0ZV9ldGhfbnRuaWMuYzo4OTQ6CisgICAg ICAgcmV0dXJuIDA7JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojMTI0MTogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjkw MDoKKyAgICAgICAudHlwZSA9IFBNRF9WREVWLCQKCldBUk5JTkc6IHBsZWFzZSwgbm8gc3BhY2Vz IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEyNDI6IEZJTEU6IGRyaXZlcnMvbmV0L250bmljL3J0 ZV9ldGhfbnRuaWMuYzo5MDE6CisgICAgICAgLmluaXQgPSBydGVfcG1kX250bmljX2RldmluaXQs JAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTI0 NzogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjkwNjoKKyAgICAgICAi cG9ydD08aW50PiAiJAoKV0FSTklORzogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9m IGEgbGluZQojMTI0ODogRklMRTogZHJpdmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjkw NzoKKyAgICAgICAicnhxcz08aW50PiIkCgpXQVJOSU5HOiBwbGVhc2UsIG5vIHNwYWNlcyBhdCB0 aGUgc3RhcnQgb2YgYSBsaW5lCiMxMjQ5OiBGSUxFOiBkcml2ZXJzL25ldC9udG5pYy9ydGVfZXRo X250bmljLmM6OTA4OgorICAgICAgICJ0eHFzPTxpbnQ+IiQKCldBUk5JTkc6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzEyNTA6IEZJTEU6IGRyaXZlcnMvbmV0L250 bmljL3J0ZV9ldGhfbnRuaWMuYzo5MDk6CisgICAgICAgImhhc2g9PGludD4iJAoKV0FSTklORzog cGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojMTI1MTogRklMRTogZHJp dmVycy9uZXQvbnRuaWMvcnRlX2V0aF9udG5pYy5jOjkxMDoKKyAgICAgICAic3RyZWFtaWRzPTxp bnQuLmludD4iKTskCgp0b3RhbDogMzE3IGVycm9ycywgNzQ2IHdhcm5pbmdzLCAxMTk2IGxpbmVz IGNoZWNrZWQKCk5PVEU6IHdoaXRlc3BhY2UgZXJyb3JzIGRldGVjdGVkLCB5b3UgbWF5IHdpc2gg dG8gdXNlIHNjcmlwdHMvY2xlYW5wYXRjaCBvcgogICAgICBzY3JpcHRzL2NsZWFuZmlsZQoKL2hv bWUvcGF0Y2hXb3JrT3JnL3BhdGNoZXMvZHBkay1kZXYtbnRuaWMtYWRkLVBNRC1kcml2ZXIucGF0 Y2ggaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LgoKSWYgYW55IG9mIHRoZXNlIGVy cm9ycyBhcmUgZmFsc2UgcG9zaXRpdmVzLCBwbGVhc2UgcmVwb3J0CnRoZW0gdG8gdGhlIG1haW50 YWluZXIsIHNlZSBDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoKCkNvbXBpbGF0aW9uOgpPUzog ZmVkb3JhCk5pYzogbmlhbnRpYwpHQ0M6IGdjY194ODYtNjQsIDQuOC4zCklDQzoxNi4wLjIKaTY4 Ni1uYXRpdmUtbGludXhhcHAtaWNjOiBjb21waWxlIHBhc3MKeDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MtY29tYmluZWQ6IGNvbXBpbGUgcGFzcwppNjg2LW5hdGl2ZS1saW51eGFwcC1nY2M6IGNv bXBpbGUgcGFzcwp4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYzogY29tcGlsZSBwYXNzCng4Nl82 NC1uYXRpdmUtbGludXhhcHAtaWNjOiBjb21waWxlIHBhc3MKeDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MtZGVidWc6IGNvbXBpbGUgcGFzcwp4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1zaGFy ZWQ6IGNvbXBpbGUgcGFzcwp4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nOiBjb21waWxlIHBh c3MKCgoKRFBESyBTVFYgdGVhbSAK --===============8292566366253750364==--