From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 1B6908D9B for ; Thu, 19 Apr 2018 12:27:13 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Apr 2018 03:27:13 -0700 Message-Id: <0590c7$1er3kh@orsmga001.jf.intel.com> Date: 19 Apr 2018 03:27:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,468,1517904000"; d="scan'208";a="49122966" Received: from unknown (HELO [127.0.1.1]) ([10.240.176.154]) by orsmga001.jf.intel.com with ESMTP; 19 Apr 2018 03:27:12 -0700 Content-Type: multipart/alternative; boundary="===============2148214327890350442==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org Cc: xinfengx.zhao@intel.com, zhaoyan.chen@intel.com Subject: [dpdk-test-report] |FAILURE| pw38506[dpdk-dev, v5, 07/16] ethdev: flatten RSS configuration in flow API X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Apr 2018 10:27:15 -0000 --===============2148214327890350442== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKaHR0cDov L2RwZGsub3JnL3BhdGNoLzM4NTA2CgpfYXBwbHkgaXNzdWVzXwoKU3VibWl0dGVyOiBBZHJpZW4g TWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbT4KRGF0ZTogMjAxOC0wNC0xOSAx MDoxNjozOQpEUERLIGdpdCBiYXNlbGluZToKCVJlcG86ZHBkay1tYXN0ZXIsIENvbW1pdElEOiBl NjJmM2E4YTA0NzY4MzUyYmM3ODM4OWQ0OTliZTUwYzkyM2JmNmFhCglSZXBvOmRwZGstbmV4dC1l dmVudGRldiwgQ29tbWl0SUQ6IGZlNWFiZDMxNTBiYzFjYWE4MzY5ZTc0M2MzOTVjMzlmNTMyNjU1 OTcKCVJlcG86ZHBkay1uZXh0LW5ldCwgQ29tbWl0SUQ6IDlmNDRiNjEyNjM3YzI5NzUyZDE1ODVl OGQxYWYyZTI5OTc1NmNkNjAKCVJlcG86ZHBkay1uZXh0LWNyeXB0bywgQ29tbWl0SUQ6IGIxYWY0 ODllNjQ4MmEyMjQ3ZWYzNjQxOGNlZTgwM2UzMmJjODRiMmUKCVJlcG86ZHBkay1uZXh0LXZpcnRp bywgQ29tbWl0SUQ6IDhhZGJlN2U0ODQ3MDYwZDA5MWM0NmFiY2JlY2QzZGZlYTgzNjJiN2EKCipS ZXBvOiBkcGRrLW1hc3RlcgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Ci8qKiBTdG9yYWdlIGZvciBzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uX3JzcyBpbmNsdWRpbmcgZXh0ZXJuYWwgZGF0YS4gKi8Kc3RydWN0IGFj dGlvbl9yc3NfZGF0YSB7CglzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyBjb25mOwoJdWludDE2 X3QgcXVldWVbQUNUSU9OX1JTU19RVUVVRV9OVU1dOwoJc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYg cnNzX2NvbmY7Cgl1aW50OF90IHJzc19rZXlbUlNTX0hBU0hfS0VZX0xFTkdUSF07Cn07CgovKiog TWF4aW11bSBudW1iZXIgb2Ygc3Vic2VxdWVudCB0b2tlbnMgYW5kIGFyZ3VtZW50cyBvbiB0aGUg c3RhY2suICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmM6MTkyCmVycm9yOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9 IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkubnVtID0gc3JjLnJzcy0+bnVtLAoJ CQl9OwotLQoJCQl9CgkJCW9mZiArPSBzaXplOwoJCX0KCQlzaXplID0gb2ZmOwoKZXJyb3I6IHBh dGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjExMDAKZXJyb3I6IGFwcC90ZXN0LXBt ZC9jb25maWcuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRl cy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMzI1IChv ZmZzZXQgMjQgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCi4uIHRhYmxlOjog UlNTCgogICArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r CiAgIHwgRmllbGQgICAgICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLS0K ICAgKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKQWN0 aW9uOiBgYFBGYGAKXl5eXl5eXl5eXl5eXl4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlk ZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3Q6MTMwOQplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1 aWRlL3J0ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9j L2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCi0gYGByc3NgYDogc3ByZWFkIHBhY2tldHMgYW1vbmcgc2V2ZXJhbCBx dWV1ZXMuCgogIC0gYGB0eXBlcyBbe1JTUyBoYXNoIHR5cGV9IFsuLi5dXSBlbmRgYDogUlNTIGhh c2ggdHlwZXMsIGFsbG93ZWQgdG9rZW5zCiAgICBhcmUgdGhlIHNhbWUgYXMgYHNldF9oYXNoX2lu cHV0X3NldGBfLCBhbiBlbXB0eSBsaXN0IG1lYW5zIG5vbmUgKDApLgoKICAtIGBga2V5IHtzdHJp bmd9YGA6IFJTUyBoYXNoIGtleSwgb3ZlcnJpZGVzIGBga2V5X2xlbmBgLgoKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzM5 OAplcnJvcjogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0 Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBf ZXRoZGV2LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5j Li4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmMuLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMuLi4KLS0KSHVuayAjNCBzdWNjZWVkZWQgYXQg NTczOSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgNTc0OSAob2Zmc2V0 IC0xIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgNTc2OCAob2Zmc2V0IC0xIGxpbmVzKS4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0LmMuLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCQlzd2l0Y2ggKGFjdGlvbi0+dHlwZSkgewoJCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0 aW9uX3F1ZXVlICpxdWV1ZTsKCQkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MgKnJz czsKCQkJY29uc3Qgc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgKnJzc19jb25mOwoJCQl1aW50NjRf dCBmaWVsZHM7CgkJCXVuc2lnbmVkIGludCBpOwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L21seDQvbWx4NF9mbG93LmM6NzE3CmVycm9yOiBkcml2ZXJzL25ldC9tbHg0L21seDRf Zmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9t bHg0L21seDRfZmxvdy5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9y eHEuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfcnh0eC5oLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMuLi4KSHVuayAjMSBzdWNj ZWVkZWQgYXQgMjEyIChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA0MDMg KG9mZnNldCAtMiBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDUyOCAob2Zmc2V0IC0yIGxp bmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgllbnVtIHsgRkFURSA9IDEsIE1BUksg PSAyLCBDT1VOVCA9IDQsIH07Cgl1aW50MzJfdCBvdmVybGFwID0gMDsKCXN0cnVjdCBwcml2ICpw cml2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKCWludCByZXQ7CgotLQoJCXJldHVybiByZXQ7 Cglmb3IgKDsgYWN0aW9ucy0+dHlwZSAhPSBSVEVfRkxPV19BQ1RJT05fVFlQRV9FTkQ7ICsrYWN0 aW9ucykgewoJCWlmIChhY3Rpb25zLT50eXBlID09IFJURV9GTE9XX0FDVElPTl9UWVBFX1ZPSUQp IHsKCQkJY29udGludWU7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21s eDVfZmxvdy5jOjY0MgplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzogcGF0Y2gg ZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5j Li4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHR4LmguLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvdGFwL3RhcF9mbG93LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTIxNCAob2Zm c2V0IC0xIGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjAzOSAob2Zmc2V0IC0xMSBsaW5l cykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDIwNTUgKG9mZnNldCAtMTEgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJCQkJICAgICBpIDwgZXRoX2Rldi0+ZGF0YS0+bmJfcnhfcXVldWVzOyArK2kp CgkJCQkJaWYgKGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSkKCQkJCQkJcXVldWVbaisrXSA9 IGk7CgkJCQlhY3Rpb25fcnNzLnJzc19jb25mID0gJnJzc19jb25mOwoJCQkJYWN0aW9uX3Jzcy5u dW0gPSBqOwoJCQkJYWN0aW9uX3Jzcy5xdWV1ZSA9IHF1ZXVlOwoJCQkJcmV0ID0gcnRlX2Zsb3df dmFsaWRhdGUoc2EtPnBvcnRpZCwgJnNhLT5hdHRyLAoJCQkJCQkJc2EtPnBhdHRlcm4sIHNhLT5h Y3Rpb24sCgkJCQkJCQkmZXJyKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lwc2Vj LXNlY2d3L2lwc2VjLmM6MjAyCmVycm9yOiBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy5jOiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9m bG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJb2ZmID0gMDsKCQlpZiAoZHN0 LnJzcykKCQkJKmRzdC5yc3MgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCQkJLm51 bSA9IHNyYy5yc3MtPm51bSwKCQkJfTsKLS0KCQkJfQoJCQlvZmYgKz0gc2l6ZTsKCQl9CgkJc2l6 ZSA9IG9mZjsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cu YzozMzAKZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogKiBTaW1pbGFyIHRvIFFVRVVFLCBleGNlcHQgUlNTIGlz IGFkZGl0aW9uYWxseSBwZXJmb3JtZWQgb24gcGFja2V0cyB0bwogKiBzcHJlYWQgdGhlbSBhbW9u ZyBzZXZlcmFsIHF1ZXVlcyBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMuCiAq CiAqIE5vdGU6IFJTUyBoYXNoIHJlc3VsdCBpcyBzdG9yZWQgaW4gdGhlIGhhc2gucnNzIG1idWYg ZmllbGQgd2hpY2ggb3ZlcmxhcHMKICogaGFzaC5mZGlyLmxvLiBTaW5jZSB0aGUgTUFSSyBhY3Rp b24gc2V0cyB0aGUgaGFzaC5mZGlyLmhpIGZpZWxkIG9ubHksCi0tCgl1aW50MTZfdCBudW07IC8q KjwgTnVtYmVyIG9mIGVudHJpZXMgaW4gQHAgcXVldWUuICovCgljb25zdCB1aW50MTZfdCAqcXVl dWU7IC8qKjwgUXVldWUgaW5kaWNlcyB0byB1c2UuICovCn07CgoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOjEwMzMKZXJyb3I6IGxpYi9saWJydGVfZXRo ZXIvcnRlX2Zsb3cuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKKlJlcG86IGRwZGstbmV4dC1ldmVu dGRldgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6Ci8qKiBTdG9yYWdlIGZvciBzdHJ1Y3QgcnRlX2Zsb3dfYWN0 aW9uX3JzcyBpbmNsdWRpbmcgZXh0ZXJuYWwgZGF0YS4gKi8Kc3RydWN0IGFjdGlvbl9yc3NfZGF0 YSB7CglzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyBjb25mOwoJdWludDE2X3QgcXVldWVbQUNU SU9OX1JTU19RVUVVRV9OVU1dOwoJc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgcnNzX2NvbmY7Cgl1 aW50OF90IHJzc19rZXlbUlNTX0hBU0hfS0VZX0xFTkdUSF07Cn07CgovKiogTWF4aW11bSBudW1i ZXIgb2Ygc3Vic2VxdWVudCB0b2tlbnMgYW5kIGFyZ3VtZW50cyBvbiB0aGUgc3RhY2suICovCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6MTkyCmVycm9y OiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRl X2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkubnVtID0gc3JjLnJzcy0+bnVtLAoJCQl9OwotLQoJCQl9 CgkJCW9mZiArPSBzaXplOwoJCX0KCQlzaXplID0gb2ZmOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog YXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjExMDAKZXJyb3I6IGFwcC90ZXN0LXBtZC9jb25maWcuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9wcm9nX2d1aWRl L3J0ZV9mbG93LnJzdC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMzI1IChvZmZzZXQgMjQgbGlu ZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCi4uIHRhYmxlOjogUlNTCgogICArLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgIHwgRmllbGQg ICAgICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLS0KICAgKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKQWN0aW9uOiBgYFBGYGAK Xl5eXl5eXl5eXl5eXl4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvcHJvZ19ndWlk ZS9ydGVfZmxvdy5yc3Q6MTMwOQplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93 LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy90ZXN0 cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCi0gYGByc3NgYDogc3ByZWFkIHBhY2tldHMgYW1vbmcgc2V2ZXJhbCBxdWV1ZXMuCgogIC0g YGB0eXBlcyBbe1JTUyBoYXNoIHR5cGV9IFsuLi5dXSBlbmRgYDogUlNTIGhhc2ggdHlwZXMsIGFs bG93ZWQgdG9rZW5zCiAgICBhcmUgdGhlIHNhbWUgYXMgYHNldF9oYXNoX2lucHV0X3NldGBfLCBh biBlbXB0eSBsaXN0IG1lYW5zIG5vbmUgKDApLgoKICAtIGBga2V5IHtzdHJpbmd9YGA6IFJTUyBo YXNoIGtleSwgb3ZlcnJpZGVzIGBga2V5X2xlbmBgLgoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRv Yy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzM5OAplcnJvcjogZG9j L2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmguLi4K SHVuayAjNCBzdWNjZWVkZWQgYXQgNDkyIChvZmZzZXQgLTE0IGxpbmVzKS4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0 IDU1NjggKG9mZnNldCAtNiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAw L2lnYl9mbG93LmMuLi4KLS0KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTIwMDkgKG9mZnNldCAtNzcg bGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxMjAyMCAob2Zmc2V0IC03NyBsaW5lcykuCkh1 bmsgIzYgc3VjY2VlZGVkIGF0IDEyMDMzIChvZmZzZXQgLTc3IGxpbmVzKS4KSHVuayAjNyBzdWNj ZWVkZWQgYXQgMTIwNTggKG9mZnNldCAtNzcgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNp Zm5kZWYgX0k0MEVfRVRIREVWX0hfCiNkZWZpbmUgX0k0MEVfRVRIREVWX0hfCgojaW5jbHVkZSA8 cnRlX2V0aF9jdHJsLmg+CiNpbmNsdWRlIDxydGVfdGltZS5oPgotLQoKI2RlZmluZSBJNDBFX1ZM QU5fVEFHX1NJWkUgICAgICAgIDQKCiNkZWZpbmUgSTQwRV9BUV9MRU4gICAgICAgICAgICAgICAz MgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5oOjUK ZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuaDogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYy4uLgpIdW5rICMx IHN1Y2NlZWRlZCBhdCA0MjA1IChvZmZzZXQgLTE1IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkgKiBxdWV1ZSBpbmRleCBmb3IgdGhpcyBwb3J0LgoJICovCglpZiAoY29uZl9p bmZvLT5xdWV1ZV9yZWdpb25fbnVtYmVyKSB7CgkJZm9yIChpID0gMDsgaSA8IHJzcy0+bnVtOyBp KyspIHsKCQkJZm9yIChqID0gMDsgaiA8IHJzc19pbmZvLT5udW07IGorKykgewoJCQkJaWYgKHJz cy0+cXVldWVbaV0gPT0gcnNzX2luZm8tPnF1ZXVlW2pdKQoJCQkJCWJyZWFrOwoJCQl9CgkJCWlm IChqID09IHJzc19pbmZvLT5udW0pIHsKCQkJCXJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRUlO VkFMLAoJCQkJCVJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLAoJCQkJCWFjdCwKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6NDIzNgplcnJvcjogZHJp dmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMuLi4KSHVuayAjMiBzdWNjZWVk ZWQgYXQgODI4MiAob2Zmc2V0IC04IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aXhnYmUvaXhnYmVfZXRoZGV2LmguLi4KSHVuayAjNSBzdWNjZWVkZWQgYXQgNzAzIChvZmZzZXQg MiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYy4u LgotLQpIdW5rICM0IHN1Y2NlZWRlZCBhdCA1NTg2IChvZmZzZXQgLTE1NCBsaW5lcykuCkh1bmsg IzUgc3VjY2VlZGVkIGF0IDU1OTYgKG9mZnNldCAtMTU0IGxpbmVzKS4KSHVuayAjNiBzdWNjZWVk ZWQgYXQgNTYxNSAob2Zmc2V0IC0xNTQgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9tbHg0L21seDQuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxv dy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXN3aXRjaCAoYWN0aW9uLT50eXBl KSB7CgkJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcXVldWUgKnF1ZXVlOwoJCQljb25z dCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyAqcnNzOwoJCQljb25zdCBzdHJ1Y3QgcnRlX2V0 aF9yc3NfY29uZiAqcnNzX2NvbmY7CgkJCXVpbnQ2NF90IGZpZWxkczsKCQkJdW5zaWduZWQgaW50 IGk7CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzo3 MTcKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFw cGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmguLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jLi4uCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L21seDQvbWx4NF9yeHR4LmguLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTI2IChv ZmZzZXQgLTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxv dy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDIxMiAob2Zmc2V0IC0yIGxpbmVzKS4KSHVuayAj MiBzdWNjZWVkZWQgYXQgNDAzIChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBh dCA1MjggKG9mZnNldCAtMiBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZW51 bSB7IEZBVEUgPSAxLCBNQVJLID0gMiwgQ09VTlQgPSA0LCB9OwoJdWludDMyX3Qgb3ZlcmxhcCA9 IDA7CglzdHJ1Y3QgcHJpdiAqcHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7CglpbnQgcmV0 OwoKLS0KCQlyZXR1cm4gcmV0OwoJZm9yICg7IGFjdGlvbnMtPnR5cGUgIT0gUlRFX0ZMT1dfQUNU SU9OX1RZUEVfRU5EOyArK2FjdGlvbnMpIHsKCQlpZiAoYWN0aW9ucy0+dHlwZSA9PSBSVEVfRkxP V19BQ1RJT05fVFlQRV9WT0lEKSB7CgkJCWNvbnRpbnVlOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzo2NDIKZXJyb3I6IGRyaXZlcnMvbmV0L21seDUv bWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L21seDUvbWx4NV9yeHEuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21s eDVfcnh0eC5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jLi4uCkh1bmsgIzEgc3Vj Y2VlZGVkIGF0IDEyMTQgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIw MzkgKG9mZnNldCAtMTEgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyMDU1IChvZmZzZXQg LTExIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMuYy4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCSAgICAgaSA8IGV0aF9kZXYtPmRhdGEt Pm5iX3J4X3F1ZXVlczsgKytpKQoJCQkJCWlmIChldGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV0p CgkJCQkJCXF1ZXVlW2orK10gPSBpOwoJCQkJYWN0aW9uX3Jzcy5yc3NfY29uZiA9ICZyc3NfY29u ZjsKCQkJCWFjdGlvbl9yc3MubnVtID0gajsKCQkJCWFjdGlvbl9yc3MucXVldWUgPSBxdWV1ZTsK CQkJCXJldCA9IHJ0ZV9mbG93X3ZhbGlkYXRlKHNhLT5wb3J0aWQsICZzYS0+YXR0ciwKCQkJCQkJ CXNhLT5wYXR0ZXJuLCBzYS0+YWN0aW9uLAoJCQkJCQkJJmVycik7CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy5jOjIwMgplcnJvcjogZXhhbXBsZXMvaXBz ZWMtc2VjZ3cvaXBzZWMuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGli L2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ CW9mZiA9IDA7CgkJaWYgKGRzdC5yc3MpCgkJCSpkc3QucnNzID0gKHN0cnVjdCBydGVfZmxvd19h Y3Rpb25fcnNzKXsKCQkJCS5udW0gPSBzcmMucnNzLT5udW0sCgkJCX07Ci0tCgkJCX0KCQkJb2Zm ICs9IHNpemU7CgkJfQoJCXNpemUgPSBvZmY7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvbGli cnRlX2V0aGVyL3J0ZV9mbG93LmM6MzMwCmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93 LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIv cnRlX2Zsb3cuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICogU2ltaWxhciB0byBR VUVVRSwgZXhjZXB0IFJTUyBpcyBhZGRpdGlvbmFsbHkgcGVyZm9ybWVkIG9uIHBhY2tldHMgdG8K ICogc3ByZWFkIHRoZW0gYW1vbmcgc2V2ZXJhbCBxdWV1ZXMgYWNjb3JkaW5nIHRvIHRoZSBwcm92 aWRlZCBwYXJhbWV0ZXJzLgogKgogKiBOb3RlOiBSU1MgaGFzaCByZXN1bHQgaXMgc3RvcmVkIGlu IHRoZSBoYXNoLnJzcyBtYnVmIGZpZWxkIHdoaWNoIG92ZXJsYXBzCiAqIGhhc2guZmRpci5sby4g U2luY2UgdGhlIE1BUksgYWN0aW9uIHNldHMgdGhlIGhhc2guZmRpci5oaSBmaWVsZCBvbmx5LAot LQoJdWludDE2X3QgbnVtOyAvKio8IE51bWJlciBvZiBlbnRyaWVzIGluIEBwIHF1ZXVlLiAqLwoJ Y29uc3QgdWludDE2X3QgKnF1ZXVlOyAvKio8IFF1ZXVlIGluZGljZXMgdG8gdXNlLiAqLwp9OwoK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaDoxMDMzCmVy cm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CipS ZXBvOiBkcGRrLW5leHQtbmV0CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zs b3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKLyoqIFN0b3JhZ2UgZm9yIHN0cnVj dCBydGVfZmxvd19hY3Rpb25fcnNzIGluY2x1ZGluZyBleHRlcm5hbCBkYXRhLiAqLwpzdHJ1Y3Qg YWN0aW9uX3Jzc19kYXRhIHsKCXN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzIGNvbmY7Cgl1aW50 MTZfdCBxdWV1ZVtBQ1RJT05fUlNTX1FVRVVFX05VTV07CglzdHJ1Y3QgcnRlX2V0aF9yc3NfY29u ZiByc3NfY29uZjsKCXVpbnQ4X3QgcnNzX2tleVtSU1NfSEFTSF9LRVlfTEVOR1RIXTsKfTsKCi8q KiBNYXhpbXVtIG51bWJlciBvZiBzdWJzZXF1ZW50IHRva2VucyBhbmQgYXJndW1lbnRzIG9uIHRo ZSBzdGFjay4gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zs b3cuYzoxOTIKZXJyb3I6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NvbmZpZy5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJCW9mZiA9IDA7CgkJaWYgKGRzdC5yc3MpCgkJCSpkc3QucnNz ID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkJCS5udW0gPSBzcmMucnNzLT5udW0s CgkJCX07Ci0tCgkJCX0KCQkJb2ZmICs9IHNpemU7CgkJfQoJCXNpemUgPSBvZmY7CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6MTEwMAplcnJvcjogYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDEzMjUg KG9mZnNldCAyNCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKLi4gdGFibGU6 OiBSU1MKCiAgICstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsKICAgfCBGaWVsZCAgICAgICAgfCBWYWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgfAot LQogICArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCgpB Y3Rpb246IGBgUEZgYApeXl5eXl5eXl5eXl5eXgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1 aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDoxMzA5CmVycm9yOiBkb2MvZ3VpZGVzL3Byb2df Z3VpZGUvcnRlX2Zsb3cucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBk b2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0Li4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoKLSBgYHJzc2BgOiBzcHJlYWQgcGFja2V0cyBhbW9uZyBzZXZlcmFs IHF1ZXVlcy4KCiAgLSBgYHR5cGVzIFt7UlNTIGhhc2ggdHlwZX0gWy4uLl1dIGVuZGBgOiBSU1Mg aGFzaCB0eXBlcywgYWxsb3dlZCB0b2tlbnMKICAgIGFyZSB0aGUgc2FtZSBhcyBgc2V0X2hhc2hf aW5wdXRfc2V0YF8sIGFuIGVtcHR5IGxpc3QgbWVhbnMgbm9uZSAoMCkuCgogIC0gYGBrZXkge3N0 cmluZ31gYDogUlNTIGhhc2gga2V5LCBvdmVycmlkZXMgYGBrZXlfbGVuYGAuCgoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDoz Mzk4CmVycm9yOiBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9lMTAw MF9ldGhkZXYuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2 LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgotLQpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9peGdiZS9peGdiZV9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfcnh0eC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NC5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgkJc3dpdGNoIChhY3Rpb24tPnR5cGUpIHsKCQkJY29uc3Qgc3Ry dWN0IHJ0ZV9mbG93X2FjdGlvbl9xdWV1ZSAqcXVldWU7CgkJCWNvbnN0IHN0cnVjdCBydGVfZmxv d19hY3Rpb25fcnNzICpyc3M7CgkJCWNvbnN0IHN0cnVjdCBydGVfZXRoX3Jzc19jb25mICpyc3Nf Y29uZjsKCQkJdWludDY0X3QgZmllbGRzOwoJCQl1bnNpZ25lZCBpbnQgaTsKCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jOjcxNwplcnJvcjogZHJpdmVy cy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9tbHg0L21seDRfcnhxLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9t bHg0X3J4dHguaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5j Li4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDIxMiAob2Zmc2V0IC0yIGxpbmVzKS4KSHVuayAjMiBz dWNjZWVkZWQgYXQgNDAzIChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA1 MjggKG9mZnNldCAtMiBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZW51bSB7 IEZBVEUgPSAxLCBNQVJLID0gMiwgQ09VTlQgPSA0LCB9OwoJdWludDMyX3Qgb3ZlcmxhcCA9IDA7 CglzdHJ1Y3QgcHJpdiAqcHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7CglpbnQgcmV0OwoK LS0KCQlyZXR1cm4gcmV0OwoJZm9yICg7IGFjdGlvbnMtPnR5cGUgIT0gUlRFX0ZMT1dfQUNUSU9O X1RZUEVfRU5EOyArK2FjdGlvbnMpIHsKCQlpZiAoYWN0aW9ucy0+dHlwZSA9PSBSVEVfRkxPV19B Q1RJT05fVFlQRV9WT0lEKSB7CgkJCWNvbnRpbnVlOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzo2NDIKZXJyb3I6IGRyaXZlcnMvbmV0L21seDUvbWx4 NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L21seDUvbWx4NV9yeHEuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVf cnh0eC5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jLi4uCkh1bmsgIzEgc3VjY2Vl ZGVkIGF0IDEyMTQgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIwMzkg KG9mZnNldCAtMTEgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyMDU1IChvZmZzZXQgLTEx IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMuYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCSAgICAgaSA8IGV0aF9kZXYtPmRhdGEtPm5i X3J4X3F1ZXVlczsgKytpKQoJCQkJCWlmIChldGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV0pCgkJ CQkJCXF1ZXVlW2orK10gPSBpOwoJCQkJYWN0aW9uX3Jzcy5yc3NfY29uZiA9ICZyc3NfY29uZjsK CQkJCWFjdGlvbl9yc3MubnVtID0gajsKCQkJCWFjdGlvbl9yc3MucXVldWUgPSBxdWV1ZTsKCQkJ CXJldCA9IHJ0ZV9mbG93X3ZhbGlkYXRlKHNhLT5wb3J0aWQsICZzYS0+YXR0ciwKCQkJCQkJCXNh LT5wYXR0ZXJuLCBzYS0+YWN0aW9uLAoJCQkJCQkJJmVycik7CgplcnJvcjogcGF0Y2ggZmFpbGVk OiBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy5jOjIwMgplcnJvcjogZXhhbXBsZXMvaXBzZWMt c2VjZ3cvaXBzZWMuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGliL2xp YnJ0ZV9ldGhlci9ydGVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCW9m ZiA9IDA7CgkJaWYgKGRzdC5yc3MpCgkJCSpkc3QucnNzID0gKHN0cnVjdCBydGVfZmxvd19hY3Rp b25fcnNzKXsKCQkJCS5udW0gPSBzcmMucnNzLT5udW0sCgkJCX07Ci0tCgkJCX0KCQkJb2ZmICs9 IHNpemU7CgkJfQoJCXNpemUgPSBvZmY7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvbGlicnRl X2V0aGVyL3J0ZV9mbG93LmM6MzMwCmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRl X2Zsb3cuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICogU2ltaWxhciB0byBRVUVV RSwgZXhjZXB0IFJTUyBpcyBhZGRpdGlvbmFsbHkgcGVyZm9ybWVkIG9uIHBhY2tldHMgdG8KICog c3ByZWFkIHRoZW0gYW1vbmcgc2V2ZXJhbCBxdWV1ZXMgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRl ZCBwYXJhbWV0ZXJzLgogKgogKiBOb3RlOiBSU1MgaGFzaCByZXN1bHQgaXMgc3RvcmVkIGluIHRo ZSBoYXNoLnJzcyBtYnVmIGZpZWxkIHdoaWNoIG92ZXJsYXBzCiAqIGhhc2guZmRpci5sby4gU2lu Y2UgdGhlIE1BUksgYWN0aW9uIHNldHMgdGhlIGhhc2guZmRpci5oaSBmaWVsZCBvbmx5LAotLQoJ dWludDE2X3QgbnVtOyAvKio8IE51bWJlciBvZiBlbnRyaWVzIGluIEBwIHF1ZXVlLiAqLwoJY29u c3QgdWludDE2X3QgKnF1ZXVlOyAvKio8IFF1ZXVlIGluZGljZXMgdG8gdXNlLiAqLwp9OwoKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaDoxMDMzCmVycm9y OiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CipSZXBv OiBkcGRrLW5leHQtY3J5cHRvCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zs b3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKLyoqIFN0b3JhZ2UgZm9yIHN0cnVj dCBydGVfZmxvd19hY3Rpb25fcnNzIGluY2x1ZGluZyBleHRlcm5hbCBkYXRhLiAqLwpzdHJ1Y3Qg YWN0aW9uX3Jzc19kYXRhIHsKCXN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzIGNvbmY7Cgl1aW50 MTZfdCBxdWV1ZVtBQ1RJT05fUlNTX1FVRVVFX05VTV07CglzdHJ1Y3QgcnRlX2V0aF9yc3NfY29u ZiByc3NfY29uZjsKCXVpbnQ4X3QgcnNzX2tleVtSU1NfSEFTSF9LRVlfTEVOR1RIXTsKfTsKCi8q KiBNYXhpbXVtIG51bWJlciBvZiBzdWJzZXF1ZW50IHRva2VucyBhbmQgYXJndW1lbnRzIG9uIHRo ZSBzdGFjay4gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zs b3cuYzoxOTIKZXJyb3I6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NvbmZpZy5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJCW9mZiA9IDA7CgkJaWYgKGRzdC5yc3MpCgkJCSpkc3QucnNz ID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkJCS5udW0gPSBzcmMucnNzLT5udW0s CgkJCX07Ci0tCgkJCX0KCQkJb2ZmICs9IHNpemU7CgkJfQoJCXNpemUgPSBvZmY7CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6MTEwMAplcnJvcjogYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDEzMjUg KG9mZnNldCAyNCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKLi4gdGFibGU6 OiBSU1MKCiAgICstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsKICAgfCBGaWVsZCAgICAgICAgfCBWYWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgfAot LQogICArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCgpB Y3Rpb246IGBgUEZgYApeXl5eXl5eXl5eXl5eXgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1 aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDoxMzA5CmVycm9yOiBkb2MvZ3VpZGVzL3Byb2df Z3VpZGUvcnRlX2Zsb3cucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBk b2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0Li4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoKLSBgYHJzc2BgOiBzcHJlYWQgcGFja2V0cyBhbW9uZyBzZXZlcmFs IHF1ZXVlcy4KCiAgLSBgYHR5cGVzIFt7UlNTIGhhc2ggdHlwZX0gWy4uLl1dIGVuZGBgOiBSU1Mg aGFzaCB0eXBlcywgYWxsb3dlZCB0b2tlbnMKICAgIGFyZSB0aGUgc2FtZSBhcyBgc2V0X2hhc2hf aW5wdXRfc2V0YF8sIGFuIGVtcHR5IGxpc3QgbWVhbnMgbm9uZSAoMCkuCgogIC0gYGBrZXkge3N0 cmluZ31gYDogUlNTIGhhc2gga2V5LCBvdmVycmlkZXMgYGBrZXlfbGVuYGAuCgoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDoz Mzk4CmVycm9yOiBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9lMTAw MF9ldGhkZXYuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2 LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgotLQpIdW5rICM0IHN1Y2NlZWRlZCBh dCA1NzM5IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA1NzQ5IChvZmZz ZXQgLTEgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA1NzY4IChvZmZzZXQgLTEgbGluZXMp LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDQuYy4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJCXN3aXRjaCAoYWN0aW9uLT50eXBlKSB7CgkJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19h Y3Rpb25fcXVldWUgKnF1ZXVlOwoJCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyAq cnNzOwoJCQljb25zdCBzdHJ1Y3QgcnRlX2V0aF9yc3NfY29uZiAqcnNzX2NvbmY7CgkJCXVpbnQ2 NF90IGZpZWxkczsKCQkJdW5zaWduZWQgaW50IGk7CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzo3MTcKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4 NF9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L21seDQvbWx4NF9mbG93LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0 X3J4cS5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHR4LmguLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYy4uLgpIdW5rICMxIHN1 Y2NlZWRlZCBhdCAyMTIgKG9mZnNldCAtMiBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDQw MyAob2Zmc2V0IC0yIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgNTI4IChvZmZzZXQgLTIg bGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWVudW0geyBGQVRFID0gMSwgTUFS SyA9IDIsIENPVU5UID0gNCwgfTsKCXVpbnQzMl90IG92ZXJsYXAgPSAwOwoJc3RydWN0IHByaXYg KnByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOwoJaW50IHJldDsKCi0tCgkJcmV0dXJuIHJl dDsKCWZvciAoOyBhY3Rpb25zLT50eXBlICE9IFJURV9GTE9XX0FDVElPTl9UWVBFX0VORDsgKyth Y3Rpb25zKSB7CgkJaWYgKGFjdGlvbnMtPnR5cGUgPT0gUlRFX0ZMT1dfQUNUSU9OX1RZUEVfVk9J RCkgewoJCQljb250aW51ZTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUv bWx4NV9mbG93LmM6NjQyCmVycm9yOiBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfcnhx LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4dHguaC4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMjE0IChv ZmZzZXQgLTEgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAyMDM5IChvZmZzZXQgLTExIGxp bmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMjA1NSAob2Zmc2V0IC0xMSBsaW5lcykuCkNoZWNr aW5nIHBhdGNoIGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgkJCQkgICAgIGkgPCBldGhfZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7ICsr aSkKCQkJCQlpZiAoZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW2ldKQoJCQkJCQlxdWV1ZVtqKytd ID0gaTsKCQkJCWFjdGlvbl9yc3MucnNzX2NvbmYgPSAmcnNzX2NvbmY7CgkJCQlhY3Rpb25fcnNz Lm51bSA9IGo7CgkJCQlhY3Rpb25fcnNzLnF1ZXVlID0gcXVldWU7CgkJCQlyZXQgPSBydGVfZmxv d192YWxpZGF0ZShzYS0+cG9ydGlkLCAmc2EtPmF0dHIsCgkJCQkJCQlzYS0+cGF0dGVybiwgc2Et PmFjdGlvbiwKCQkJCQkJCSZlcnIpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvaXBz ZWMtc2VjZ3cvaXBzZWMuYzoyMDIKZXJyb3I6IGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRl X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlvZmYgPSAwOwoJCWlmIChk c3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQku bnVtID0gc3JjLnJzcy0+bnVtLAoJCQl9OwotLQoJCQl9CgkJCW9mZiArPSBzaXplOwoJCX0KCQlz aXplID0gb2ZmOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxv dy5jOjMzMAplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmguLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqIFNpbWlsYXIgdG8gUVVFVUUsIGV4Y2VwdCBSU1Mg aXMgYWRkaXRpb25hbGx5IHBlcmZvcm1lZCBvbiBwYWNrZXRzIHRvCiAqIHNwcmVhZCB0aGVtIGFt b25nIHNldmVyYWwgcXVldWVzIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycy4K ICoKICogTm90ZTogUlNTIGhhc2ggcmVzdWx0IGlzIHN0b3JlZCBpbiB0aGUgaGFzaC5yc3MgbWJ1 ZiBmaWVsZCB3aGljaCBvdmVybGFwcwogKiBoYXNoLmZkaXIubG8uIFNpbmNlIHRoZSBNQVJLIGFj dGlvbiBzZXRzIHRoZSBoYXNoLmZkaXIuaGkgZmllbGQgb25seSwKLS0KCXVpbnQxNl90IG51bTsg LyoqPCBOdW1iZXIgb2YgZW50cmllcyBpbiBAcCBxdWV1ZS4gKi8KCWNvbnN0IHVpbnQxNl90ICpx dWV1ZTsgLyoqPCBRdWV1ZSBpbmRpY2VzIHRvIHVzZS4gKi8KfTsKCgplcnJvcjogcGF0Y2ggZmFp bGVkOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93Lmg6MTAzMwplcnJvcjogbGliL2xpYnJ0ZV9l dGhlci9ydGVfZmxvdy5oOiBwYXRjaCBkb2VzIG5vdCBhcHBseQoqUmVwbzogZHBkay1uZXh0LXZp cnRpbwpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6Ci8qKiBTdG9yYWdlIGZvciBzdHJ1Y3QgcnRlX2Zsb3dfYWN0 aW9uX3JzcyBpbmNsdWRpbmcgZXh0ZXJuYWwgZGF0YS4gKi8Kc3RydWN0IGFjdGlvbl9yc3NfZGF0 YSB7CglzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyBjb25mOwoJdWludDE2X3QgcXVldWVbQUNU SU9OX1JTU19RVUVVRV9OVU1dOwoJc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgcnNzX2NvbmY7Cgl1 aW50OF90IHJzc19rZXlbUlNTX0hBU0hfS0VZX0xFTkdUSF07Cn07CgovKiogTWF4aW11bSBudW1i ZXIgb2Ygc3Vic2VxdWVudCB0b2tlbnMgYW5kIGFyZ3VtZW50cyBvbiB0aGUgc3RhY2suICovCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6MTkyCmVycm9y OiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRl X2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkubnVtID0gc3JjLnJzcy0+bnVtLAoJCQl9OwotLQoJCQl9 CgkJCW9mZiArPSBzaXplOwoJCX0KCQlzaXplID0gb2ZmOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog YXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjExMDAKZXJyb3I6IGFwcC90ZXN0LXBtZC9jb25maWcuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9wcm9nX2d1aWRl L3J0ZV9mbG93LnJzdC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMzI1IChvZmZzZXQgMjQgbGlu ZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCi4uIHRhYmxlOjogUlNTCgogICArLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgIHwgRmllbGQg ICAgICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLS0KICAgKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKQWN0aW9uOiBgYFBGYGAK Xl5eXl5eXl5eXl5eXl4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvcHJvZ19ndWlk ZS9ydGVfZmxvdy5yc3Q6MTMwOQplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93 LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy90ZXN0 cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCi0gYGByc3NgYDogc3ByZWFkIHBhY2tldHMgYW1vbmcgc2V2ZXJhbCBxdWV1ZXMuCgogIC0g YGB0eXBlcyBbe1JTUyBoYXNoIHR5cGV9IFsuLi5dXSBlbmRgYDogUlNTIGhhc2ggdHlwZXMsIGFs bG93ZWQgdG9rZW5zCiAgICBhcmUgdGhlIHNhbWUgYXMgYHNldF9oYXNoX2lucHV0X3NldGBfLCBh biBlbXB0eSBsaXN0IG1lYW5zIG5vbmUgKDApLgoKICAtIGBga2V5IHtzdHJpbmd9YGA6IFJTUyBo YXNoIGtleSwgb3ZlcnJpZGVzIGBga2V5X2xlbmBgLgoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRv Yy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzM5OAplcnJvcjogZG9j L2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmguLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jLi4uCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmMuLi4KLS0KSHVuayAjNCBzdWNjZWVkZWQgYXQgNTczOSAob2Zmc2V0 IC0xIGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgNTc0OSAob2Zmc2V0IC0xIGxpbmVzKS4K SHVuayAjNiBzdWNjZWVkZWQgYXQgNTc2OCAob2Zmc2V0IC0xIGxpbmVzKS4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NC9tbHg0X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlzd2l0Y2gg KGFjdGlvbi0+dHlwZSkgewoJCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3F1ZXVlICpx dWV1ZTsKCQkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MgKnJzczsKCQkJY29uc3Qg c3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgKnJzc19jb25mOwoJCQl1aW50NjRfdCBmaWVsZHM7CgkJ CXVuc2lnbmVkIGludCBpOwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQv bWx4NF9mbG93LmM6NzE3CmVycm9yOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxv dy5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfcnh0eC5oLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjEy IChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA0MDMgKG9mZnNldCAtMiBs aW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDUyOCAob2Zmc2V0IC0yIGxpbmVzKS4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgllbnVtIHsgRkFURSA9IDEsIE1BUksgPSAyLCBDT1VOVCA9 IDQsIH07Cgl1aW50MzJfdCBvdmVybGFwID0gMDsKCXN0cnVjdCBwcml2ICpwcml2ID0gZGV2LT5k YXRhLT5kZXZfcHJpdmF0ZTsKCWludCByZXQ7CgotLQoJCXJldHVybiByZXQ7Cglmb3IgKDsgYWN0 aW9ucy0+dHlwZSAhPSBSVEVfRkxPV19BQ1RJT05fVFlQRV9FTkQ7ICsrYWN0aW9ucykgewoJCWlm IChhY3Rpb25zLT50eXBlID09IFJURV9GTE9XX0FDVElPTl9UWVBFX1ZPSUQpIHsKCQkJY29udGlu dWU7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jOjY0 MgplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jLi4uCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHR4LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvc2ZjL3NmY19mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdGFw L3RhcF9mbG93LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTIxNCAob2Zmc2V0IC0xIGxpbmVz KS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjAzOSAob2Zmc2V0IC0xMSBsaW5lcykuCkh1bmsgIzMg c3VjY2VlZGVkIGF0IDIwNTUgKG9mZnNldCAtMTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBleGFt cGxlcy9pcHNlYy1zZWNndy9pcHNlYy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ CQkJICAgICBpIDwgZXRoX2Rldi0+ZGF0YS0+bmJfcnhfcXVldWVzOyArK2kpCgkJCQkJaWYgKGV0 aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSkKCQkJCQkJcXVldWVbaisrXSA9IGk7CgkJCQlhY3Rp b25fcnNzLnJzc19jb25mID0gJnJzc19jb25mOwoJCQkJYWN0aW9uX3Jzcy5udW0gPSBqOwoJCQkJ YWN0aW9uX3Jzcy5xdWV1ZSA9IHF1ZXVlOwoJCQkJcmV0ID0gcnRlX2Zsb3dfdmFsaWRhdGUoc2Et PnBvcnRpZCwgJnNhLT5hdHRyLAoJCQkJCQkJc2EtPnBhdHRlcm4sIHNhLT5hY3Rpb24sCgkJCQkJ CQkmZXJyKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2Vj LmM6MjAyCmVycm9yOiBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJb2ZmID0gMDsKCQlpZiAoZHN0LnJzcykKCQkJKmRz dC5yc3MgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCQkJLm51bSA9IHNyYy5yc3Mt Pm51bSwKCQkJfTsKLS0KCQkJfQoJCQlvZmYgKz0gc2l6ZTsKCQl9CgkJc2l6ZSA9IG9mZjsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYzozMzAKZXJyb3I6 IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgogKiBTaW1pbGFyIHRvIFFVRVVFLCBleGNlcHQgUlNTIGlzIGFkZGl0aW9uYWxs eSBwZXJmb3JtZWQgb24gcGFja2V0cyB0bwogKiBzcHJlYWQgdGhlbSBhbW9uZyBzZXZlcmFsIHF1 ZXVlcyBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMuCiAqCiAqIE5vdGU6IFJT UyBoYXNoIHJlc3VsdCBpcyBzdG9yZWQgaW4gdGhlIGhhc2gucnNzIG1idWYgZmllbGQgd2hpY2gg b3ZlcmxhcHMKICogaGFzaC5mZGlyLmxvLiBTaW5jZSB0aGUgTUFSSyBhY3Rpb24gc2V0cyB0aGUg aGFzaC5mZGlyLmhpIGZpZWxkIG9ubHksCi0tCgl1aW50MTZfdCBudW07IC8qKjwgTnVtYmVyIG9m IGVudHJpZXMgaW4gQHAgcXVldWUuICovCgljb25zdCB1aW50MTZfdCAqcXVldWU7IC8qKjwgUXVl dWUgaW5kaWNlcyB0byB1c2UuICovCn07CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2xpYnJ0 ZV9ldGhlci9ydGVfZmxvdy5oOjEwMzMKZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cu aDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKCkRQREsgU1RWIHRlYW0= --===============2148214327890350442==--