From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 43B081B971 for ; Thu, 10 May 2018 10:08:07 +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 orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 May 2018 01:08:06 -0700 Message-Id: <0590c7$1k5amf@orsmga001.jf.intel.com> Date: 10 May 2018 01:08:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,384,1520924400"; d="scan'208";a="54700756" Received: from unknown (HELO [127.0.1.1]) ([10.240.176.154]) by orsmga001.jf.intel.com with ESMTP; 10 May 2018 01:08:05 -0700 Content-Type: multipart/alternative; boundary="===============5856468232168406773==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org Cc: xinfengx.zhao@intel.com, zhaoyan.chen@intel.com, peipeix.lu@intel.com Subject: [dpdk-test-report] |FAILURE| pw37178[dpdk-dev, v1, 11/16] ethdev: refine TPID handling 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, 10 May 2018 08:08:08 -0000 --===============5856468232168406773== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKaHR0cDov L2RwZGsub3JnL3BhdGNoLzM3MTc4CgpfYXBwbHkgaXNzdWVzXwoKU3VibWl0dGVyOiBBZHJpZW4g TWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbT4KRGF0ZTogMjAxOC0wNC0wNCAx NTo1Njo0OQpEUERLIGdpdCBiYXNlbGluZToKCVJlcG86ZHBkay1tYXN0ZXIsIENvbW1pdElEOiA4 ZWE0MTQzODgzMmEzNjBhZWQyYjdiYTQ5ZmI3NWUzMTBhMmZmMWRjCglSZXBvOmRwZGstbmV4dC1l dmVudGRldiwgQ29tbWl0SUQ6IDY0MGIwZDFlNTEwZTExMTY5NGMyNTE0NTQ2NmYzNzg2NzQ1Mzgz N2YKCVJlcG86ZHBkay1uZXh0LW5ldCwgQ29tbWl0SUQ6IDc3NGMxODkyYzQzNGRiYTA5OTk4Y2Nj NzZiOTU2ZmViNzIyMjQ1NzEKCVJlcG86ZHBkay1uZXh0LWNyeXB0bywgQ29tbWl0SUQ6IDcyOGNh OWIwZDVhYmVhODJjZDAxZGVlNjY0NTQ1NmE5ZDU2MjE1ZjcKCVJlcG86ZHBkay1uZXh0LXZpcnRp bywgQ29tbWl0SUQ6IDAzN2MwOTk2YmM5MjczNDJmMTU3NDI2NzM5ZTBjYjYzZjJkYjg2ODkKCipS ZXBvOiBkcGRrLW1hc3RlcgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglJVEVNX0VUSF9TUkMsCglJVEVNX0VU SF9UWVBFLAoJSVRFTV9WTEFOLAoJSVRFTV9WTEFOX1RQSUQsCglJVEVNX1ZMQU5fVENJLAotLQoJ SVRFTV9WTEFOX1ZJRCwKCUlURU1fSVBWNCwKCUlURU1fSVBWNF9UT1MsCglJVEVNX0lQVjRfVFRM LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jOjk5CmVy cm9yOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvbmljcy90YXAucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgpTdXBwb3J0ZWQgaXRlbXM6CgotIGV0aDogc3JjIGFuZCBkc3QgKHdpdGggdmFy aWFibGUgbWFza3MpLCBhbmQgZXRoX3R5cGUgKDB4ZmZmZiBtYXNrKS4KLSB2bGFuOiB2aWQsIHBj cCwgdHBpZCwgYnV0IG5vdCBlaWQuIChyZXF1aXJlcyBrZXJuZWwgNC45KQotIGlwdjQvNjogc3Jj IGFuZCBkc3QgKHdpdGggdmFyaWFibGUgbWFza3MpLCBhbmQgaXBfcHJvdG8gKDB4ZmZmZiBtYXNr KS4KLSB1ZHAvdGNwOiBzcmMgYW5kIGRzdCBwb3J0ICgweGZmZmYpIG1hc2suCgoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZG9jL2d1aWRlcy9uaWNzL3RhcC5yc3Q6OTcKZXJyb3I6IGRvYy9ndWlkZXMv bmljcy90YXAucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoKTWF0Y2hlcyBhbiBFdGhlcm5ldCBoZWFkZXIuCgotIGBgZHN0YGA6IGRlc3RpbmF0aW9uIE1B Qy4KLSBgYHNyY2BgOiBzb3VyY2UgTUFDLgotIGBgdHlwZWBgOiBFdGhlclR5cGUuCi0gRGVmYXVs dCBgYG1hc2tgYCBtYXRjaGVzIGRlc3RpbmF0aW9uIGFuZCBzb3VyY2UgYWRkcmVzc2VzIG9ubHku CgpJdGVtOiBgYFZMQU5gYAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRlcy9wcm9nX2d1 aWRlL3J0ZV9mbG93LnJzdDo3ODQKZXJyb3I6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxv dy5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvdGVz dHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgogIC0gYGBkc3Qge01BQy00OH1gYDogZGVzdGluYXRpb24gTUFDLgogIC0gYGBzcmMge01B Qy00OH1gYDogc291cmNlIE1BQy4KICAtIGBgdHlwZSB7dW5zaWduZWR9YGA6IEV0aGVyVHlwZS4K Ci0tCiAgLSBgYHZpZCB7dW5zaWduZWR9YGA6IFZMQU4gaWRlbnRpZmllci4KCi0gYGBpcHY0YGA6 IG1hdGNoIElQdjQgaGVhZGVyLgoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvdGVz dHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzIyMwplcnJvcjogZG9jL2d1aWRlcy90ZXN0 cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X2ZpbHRlci5jLi4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJdWludDMyX3QgdmYgPSAwOwoJaW50IHVzZV9udHVwbGU7Cgl1aW50MzJf dCBlbiA9IDA7CglpbnQgZGZsdF92bmljOwoKCXVzZV9udHVwbGUgPSBibnh0X2ZpbHRlcl90eXBl X2NoZWNrKHBhdHRlcm4sIGVycm9yKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L2JueHQvYm54dF9maWx0ZXIuYzozMjcKZXJyb3I6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9maWx0 ZXIuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZW5p Yy9lbmljX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWlmICghc3BlYykK CQlyZXR1cm4gMDsKCgkvKiBEb24ndCBzdXBwb3J0IGZpbHRlcmluZyBpbiB0cGlkICovCglpZiAo bWFzaykgewotLQoJaWYgKCppbm5lcl9vZnN0ID09IDApIHsKCQkvKiBPdXRlciBoZWFkZXIuIFVz ZSB0aGUgdmxhbiBtYXNrL3ZhbCBmaWVsZHMgKi8KCQlncC0+bWFza192bGFuID0gbWFzay0+dGNp OwoJCWdwLT52YWxfdmxhbiA9IHNwZWMtPnRjaTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L2VuaWMvZW5pY19mbG93LmM6NTQ1CmVycm9yOiBkcml2ZXJzL25ldC9lbmljL2VuaWNf Zmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9p NDBlL2k0MGVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCQkgICAg ICAiSW52YWxpZCBNQUNfYWRkciBtYXNrLiIpOwoJCQkJCXJldHVybiAtcnRlX2Vycm5vOwoJCQkJ fQoKCQkJCWlmICgoZXRoX21hc2stPnR5cGUgJiBVSU5UMTZfTUFYKSA9PQotLQoJCQkJZXRoZXJf dHlwZSA9IHJ0ZV9iZV90b19jcHVfMTYoZXRoX3NwZWMtPnR5cGUpOwoJCQkJaWYgKGV0aGVyX3R5 cGUgPT0gRVRIRVJfVFlQRV9JUHY0IHx8CgkJCQkgICAgZXRoZXJfdHlwZSA9PSBFVEhFUl9UWVBF X0lQdjYgfHwKCQkJCSAgICBldGhlcl90eXBlID09IEVUSEVSX1RZUEVfQVJQIHx8CgkJCQkgICAg ZXRoZXJfdHlwZSA9PSBvdXRlcl90cGlkKSB7CgkJCQkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9y LCBFSU5WQUwsCgkJCQkJCSAgICAgUlRFX0ZMT1dfRVJST1JfVFlQRV9JVEVNLAoJCQkJCQkgICAg IGl0ZW0sCgkJCQkJCSAgICAgIlVuc3VwcG9ydGVkIGV0aGVyX3R5cGUuIik7CgkJCQkJcmV0dXJu IC1ydGVfZXJybm87CgkJCQl9CgkJCX0KCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9pNDBlL2k0MGVfZmxvdy5jOjI0OTAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93 LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUv bWx4NV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNwcmFnbWEgR0NDIGRp YWdub3N0aWMgZXJyb3IgIi1XcGVkYW50aWMiCiNlbmRpZgoKI2luY2x1ZGUgPHJ0ZV9jb21tb24u aD4KI2luY2x1ZGUgPHJ0ZV9ldGhfY3RybC5oPgojaW5jbHVkZSA8cnRlX2V0aGRldl9kcml2ZXIu aD4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6MTcK ZXJyb3I6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L212cHAyL21ydmxfZmxvdy5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYgKHJldCkKCQlyZXR1cm4gcmV0OwoKCWlmIChtYXNrLT50 cGlkKSB7CgkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsIFJURV9GTE9XX0VSUk9S X1RZUEVfSVRFTSwKCQkJCSAgIE5VTEwsICJOb3Qgc3VwcG9ydGVkIGJ5IGNsYXNzaWZpZXJcbiIp OwoJCXJldHVybiAtcnRlX2Vycm5vOwoJfQoKCW0gPSBydGVfYmVfdG9fY3B1XzE2KG1hc2stPnRj aSk7CglpZiAobSAmIE1SVkxfVkxBTl9JRF9NQVNLKSB7CgkJUlRFX0xPRyhXQVJOSU5HLCBQTUQs ICJ2bGFuIGlkIG1hc2sgaXMgaWdub3JlZFxuIik7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9tdnBwMi9tcnZsX2Zsb3cuYzoxMDkxCmVycm9yOiBkcml2ZXJzL25ldC9tdnBwMi9t cnZsX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvc2ZjL3NmY19mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgljb25zdCBz dHJ1Y3QgcnRlX2Zsb3dfaXRlbV92bGFuICptYXNrID0gTlVMTDsKCWNvbnN0IHN0cnVjdCBydGVf Zmxvd19pdGVtX3ZsYW4gc3VwcF9tYXNrID0gewoJCS50Y2kgPSBydGVfY3B1X3RvX2JlXzE2KEVU SF9WTEFOX0lEX01BWCksCgl9OwoKCXJjID0gc2ZjX2Zsb3dfcGFyc2VfaW5pdChpdGVtLAoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmM6MzUyCmVycm9yOiBk cml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJLml0ZW1zID0gSVRFTVMoUlRFX0ZMT1dfSVRFTV9UWVBFX0lQVjQsCgkJCSAgICAg ICBSVEVfRkxPV19JVEVNX1RZUEVfSVBWNiksCgkJLm1hc2sgPSAmKGNvbnN0IHN0cnVjdCBydGVf Zmxvd19pdGVtX3ZsYW4pewoJCQkudHBpZCA9IC0xLAoJCQkvKiBERUkgbWF0Y2hpbmcgaXMgbm90 IHN1cHBvcnRlZCAqLwotLQojZW5kaWYKCQl9LAoJCS5tYXNrX3N6ID0gc2l6ZW9mKHN0cnVjdCBy dGVfZmxvd19pdGVtX3ZsYW4pLAoJCS5kZWZhdWx0X21hc2sgPSAmcnRlX2Zsb3dfaXRlbV92bGFu X21hc2ssCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYzoy NzAKZXJyb3I6IGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmguLi4KZXJyb3I6IGxp Yi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQoqUmVw bzogZHBkay1uZXh0LWV2ZW50ZGV2CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jbWRsaW5l X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCUlURU1fRVRIX1NSQywKCUlU RU1fRVRIX1RZUEUsCglJVEVNX1ZMQU4sCglJVEVNX1ZMQU5fVFBJRCwKCUlURU1fVkxBTl9UQ0ks Ci0tCglJVEVNX1ZMQU5fVklELAoJSVRFTV9JUFY0LAoJSVRFTV9JUFY0X1RPUywKCUlURU1fSVBW NF9UVEwsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6 OTkKZXJyb3I6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL3RhcC5yc3QuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6ClN1cHBvcnRlZCBpdGVtczoKCi0gZXRoOiBzcmMgYW5kIGRzdCAod2l0 aCB2YXJpYWJsZSBtYXNrcyksIGFuZCBldGhfdHlwZSAoMHhmZmZmIG1hc2spLgotIHZsYW46IHZp ZCwgcGNwLCB0cGlkLCBidXQgbm90IGVpZC4gKHJlcXVpcmVzIGtlcm5lbCA0LjkpCi0gaXB2NC82 OiBzcmMgYW5kIGRzdCAod2l0aCB2YXJpYWJsZSBtYXNrcyksIGFuZCBpcF9wcm90byAoMHhmZmZm IG1hc2spLgotIHVkcC90Y3A6IHNyYyBhbmQgZHN0IHBvcnQgKDB4ZmZmZikgbWFzay4KCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL25pY3MvdGFwLnJzdDo5NwplcnJvcjogZG9jL2d1 aWRlcy9uaWNzL3RhcC5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRv Yy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgpNYXRjaGVzIGFuIEV0aGVybmV0IGhlYWRlci4KCi0gYGBkc3RgYDogZGVzdGluYXRp b24gTUFDLgotIGBgc3JjYGA6IHNvdXJjZSBNQUMuCi0gYGB0eXBlYGA6IEV0aGVyVHlwZS4KLSBE ZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMgZGVzdGluYXRpb24gYW5kIHNvdXJjZSBhZGRyZXNzZXMg b25seS4KCkl0ZW06IGBgVkxBTmBgCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL3By b2dfZ3VpZGUvcnRlX2Zsb3cucnN0Ojc4NAplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0 ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRl cy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCiAgLSBgYGRzdCB7TUFDLTQ4fWBgOiBkZXN0aW5hdGlvbiBNQUMuCiAgLSBgYHNy YyB7TUFDLTQ4fWBgOiBzb3VyY2UgTUFDLgogIC0gYGB0eXBlIHt1bnNpZ25lZH1gYDogRXRoZXJU eXBlLgoKLS0KICAtIGBgdmlkIHt1bnNpZ25lZH1gYDogVkxBTiBpZGVudGlmaWVyLgoKLSBgYGlw djRgYDogbWF0Y2ggSVB2NCBoZWFkZXIuCgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRl cy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDozMjIzCmVycm9yOiBkb2MvZ3VpZGVz L3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZmlsdGVyLmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6Cgl1aW50MzJfdCB2ZiA9IDA7CglpbnQgdXNlX250dXBsZTsKCXVp bnQzMl90IGVuID0gMDsKCWludCBkZmx0X3ZuaWM7CgoJdXNlX250dXBsZSA9IGJueHRfZmlsdGVy X3R5cGVfY2hlY2socGF0dGVybiwgZXJyb3IpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvYm54dC9ibnh0X2ZpbHRlci5jOjMyNwplcnJvcjogZHJpdmVycy9uZXQvYm54dC9ibnh0 X2ZpbHRlci5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9lbmljL2VuaWNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYgKCFz cGVjKQoJCXJldHVybiAwOwoKCS8qIERvbid0IHN1cHBvcnQgZmlsdGVyaW5nIGluIHRwaWQgKi8K CWlmIChtYXNrKSB7Ci0tCglpZiAoKmlubmVyX29mc3QgPT0gMCkgewoJCS8qIE91dGVyIGhlYWRl ci4gVXNlIHRoZSB2bGFuIG1hc2svdmFsIGZpZWxkcyAqLwoJCWdwLT5tYXNrX3ZsYW4gPSBtYXNr LT50Y2k7CgkJZ3AtPnZhbF92bGFuID0gc3BlYy0+dGNpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvZW5pYy9lbmljX2Zsb3cuYzo1NDUKZXJyb3I6IGRyaXZlcnMvbmV0L2VuaWMv ZW5pY19mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2k0MGUvaTQwZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJ CSAgICAgICJJbnZhbGlkIE1BQ19hZGRyIG1hc2suIik7CgkJCQkJcmV0dXJuIC1ydGVfZXJybm87 CgkJCQl9CgoJCQkJaWYgKChldGhfbWFzay0+dHlwZSAmIFVJTlQxNl9NQVgpID09Ci0tCgkJCQll dGhlcl90eXBlID0gcnRlX2JlX3RvX2NwdV8xNihldGhfc3BlYy0+dHlwZSk7CgkJCQlpZiAoZXRo ZXJfdHlwZSA9PSBFVEhFUl9UWVBFX0lQdjQgfHwKCQkJCSAgICBldGhlcl90eXBlID09IEVUSEVS X1RZUEVfSVB2NiB8fAoJCQkJICAgIGV0aGVyX3R5cGUgPT0gRVRIRVJfVFlQRV9BUlAgfHwKCQkJ CSAgICBldGhlcl90eXBlID09IG91dGVyX3RwaWQpIHsKCQkJCQlydGVfZmxvd19lcnJvcl9zZXQo ZXJyb3IsIEVJTlZBTCwKCQkJCQkJICAgICBSVEVfRkxPV19FUlJPUl9UWVBFX0lURU0sCgkJCQkJ CSAgICAgaXRlbSwKCQkJCQkJICAgICAiVW5zdXBwb3J0ZWQgZXRoZXJfdHlwZS4iKTsKCQkJCQly ZXR1cm4gLXJ0ZV9lcnJubzsKCQkJCX0KCQkJfQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6MjQ5MAplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBl X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NS9tbHg1X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI3ByYWdtYSBH Q0MgZGlhZ25vc3RpYyBlcnJvciAiLVdwZWRhbnRpYyIKI2VuZGlmCgojaW5jbHVkZSA8cnRlX2Nv bW1vbi5oPgojaW5jbHVkZSA8cnRlX2V0aF9jdHJsLmg+CiNpbmNsdWRlIDxydGVfZXRoZGV2X2Ry aXZlci5oPgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cu YzoxNwplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZwcDIvbXJ2bF9mbG93LmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpZiAocmV0KQoJCXJldHVybiByZXQ7CgoJaWYgKG1h c2stPnRwaWQpIHsKCQlydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVJTlZBTCwgUlRFX0ZMT1df RVJST1JfVFlQRV9JVEVNLAoJCQkJICAgTlVMTCwgIk5vdCBzdXBwb3J0ZWQgYnkgY2xhc3NpZmll clxuIik7CgkJcmV0dXJuIC1ydGVfZXJybm87Cgl9CgoJbSA9IHJ0ZV9iZV90b19jcHVfMTYobWFz ay0+dGNpKTsKCWlmIChtICYgTVJWTF9WTEFOX0lEX01BU0spIHsKCQlSVEVfTE9HKFdBUk5JTkcs IFBNRCwgInZsYW4gaWQgbWFzayBpcyBpZ25vcmVkXG4iKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L212cHAyL21ydmxfZmxvdy5jOjEwOTEKZXJyb3I6IGRyaXZlcnMvbmV0L212 cHAyL21ydmxfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWNv bnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX3ZsYW4gKm1hc2sgPSBOVUxMOwoJY29uc3Qgc3RydWN0 IHJ0ZV9mbG93X2l0ZW1fdmxhbiBzdXBwX21hc2sgPSB7CgkJLnRjaSA9IHJ0ZV9jcHVfdG9fYmVf MTYoRVRIX1ZMQU5fSURfTUFYKSwKCX07CgoJcmMgPSBzZmNfZmxvd19wYXJzZV9pbml0KGl0ZW0s CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzozNTIKZXJy b3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCQkuaXRlbXMgPSBJVEVNUyhSVEVfRkxPV19JVEVNX1RZUEVfSVBWNCwKCQkJ ICAgICAgIFJURV9GTE9XX0lURU1fVFlQRV9JUFY2KSwKCQkubWFzayA9ICYoY29uc3Qgc3RydWN0 IHJ0ZV9mbG93X2l0ZW1fdmxhbil7CgkJCS50cGlkID0gLTEsCgkJCS8qIERFSSBtYXRjaGluZyBp cyBub3Qgc3VwcG9ydGVkICovCi0tCiNlbmRpZgoJCX0sCgkJLm1hc2tfc3ogPSBzaXplb2Yoc3Ry dWN0IHJ0ZV9mbG93X2l0ZW1fdmxhbiksCgkJLmRlZmF1bHRfbWFzayA9ICZydGVfZmxvd19pdGVt X3ZsYW5fbWFzaywKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3RhcC90YXBfZmxv dy5jOjI3MAplcnJvcjogZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4uLgplcnJv cjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CipSZXBvOiBkcGRrLW5leHQtbmV0CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jbWRsaW5l X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCUlURU1fRVRIX1NSQywKCUlU RU1fRVRIX1RZUEUsCglJVEVNX1ZMQU4sCglJVEVNX1ZMQU5fVFBJRCwKCUlURU1fVkxBTl9UQ0ks Ci0tCglJVEVNX1ZMQU5fVklELAoJSVRFTV9JUFY0LAoJSVRFTV9JUFY0X1RPUywKCUlURU1fSVBW NF9UVEwsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6 OTkKZXJyb3I6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL3RhcC5yc3QuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6ClN1cHBvcnRlZCBpdGVtczoKCi0gZXRoOiBzcmMgYW5kIGRzdCAod2l0 aCB2YXJpYWJsZSBtYXNrcyksIGFuZCBldGhfdHlwZSAoMHhmZmZmIG1hc2spLgotIHZsYW46IHZp ZCwgcGNwLCB0cGlkLCBidXQgbm90IGVpZC4gKHJlcXVpcmVzIGtlcm5lbCA0LjkpCi0gaXB2NC82 OiBzcmMgYW5kIGRzdCAod2l0aCB2YXJpYWJsZSBtYXNrcyksIGFuZCBpcF9wcm90byAoMHhmZmZm IG1hc2spLgotIHVkcC90Y3A6IHNyYyBhbmQgZHN0IHBvcnQgKDB4ZmZmZikgbWFzay4KCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL25pY3MvdGFwLnJzdDo5NwplcnJvcjogZG9jL2d1 aWRlcy9uaWNzL3RhcC5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRv Yy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgpNYXRjaGVzIGFuIEV0aGVybmV0IGhlYWRlci4KCi0gYGBkc3RgYDogZGVzdGluYXRp b24gTUFDLgotIGBgc3JjYGA6IHNvdXJjZSBNQUMuCi0gYGB0eXBlYGA6IEV0aGVyVHlwZS4KLSBE ZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMgZGVzdGluYXRpb24gYW5kIHNvdXJjZSBhZGRyZXNzZXMg b25seS4KCkl0ZW06IGBgVkxBTmBgCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL3By b2dfZ3VpZGUvcnRlX2Zsb3cucnN0Ojc4NAplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0 ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRl cy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCiAgLSBgYGRzdCB7TUFDLTQ4fWBgOiBkZXN0aW5hdGlvbiBNQUMuCiAgLSBgYHNy YyB7TUFDLTQ4fWBgOiBzb3VyY2UgTUFDLgogIC0gYGB0eXBlIHt1bnNpZ25lZH1gYDogRXRoZXJU eXBlLgoKLS0KICAtIGBgdmlkIHt1bnNpZ25lZH1gYDogVkxBTiBpZGVudGlmaWVyLgoKLSBgYGlw djRgYDogbWF0Y2ggSVB2NCBoZWFkZXIuCgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRl cy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDozMjIzCmVycm9yOiBkb2MvZ3VpZGVz L3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZmlsdGVyLmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6Cgl1aW50MzJfdCB2ZiA9IDA7CglpbnQgdXNlX250dXBsZTsKCXVp bnQzMl90IGVuID0gMDsKCWludCBkZmx0X3ZuaWM7CgoJdXNlX250dXBsZSA9IGJueHRfZmlsdGVy X3R5cGVfY2hlY2socGF0dGVybiwgZXJyb3IpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvYm54dC9ibnh0X2ZpbHRlci5jOjMyNwplcnJvcjogZHJpdmVycy9uZXQvYm54dC9ibnh0 X2ZpbHRlci5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9lbmljL2VuaWNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYgKCFz cGVjKQoJCXJldHVybiAwOwoKCS8qIERvbid0IHN1cHBvcnQgZmlsdGVyaW5nIGluIHRwaWQgKi8K CWlmIChtYXNrKSB7Ci0tCglpZiAoKmlubmVyX29mc3QgPT0gMCkgewoJCS8qIE91dGVyIGhlYWRl ci4gVXNlIHRoZSB2bGFuIG1hc2svdmFsIGZpZWxkcyAqLwoJCWdwLT5tYXNrX3ZsYW4gPSBtYXNr LT50Y2k7CgkJZ3AtPnZhbF92bGFuID0gc3BlYy0+dGNpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvZW5pYy9lbmljX2Zsb3cuYzo1NDUKZXJyb3I6IGRyaXZlcnMvbmV0L2VuaWMv ZW5pY19mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2k0MGUvaTQwZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJ CSAgICAgICJJbnZhbGlkIE1BQ19hZGRyIG1hc2suIik7CgkJCQkJcmV0dXJuIC1ydGVfZXJybm87 CgkJCQl9CgoJCQkJaWYgKChldGhfbWFzay0+dHlwZSAmIFVJTlQxNl9NQVgpID09Ci0tCgkJCQll dGhlcl90eXBlID0gcnRlX2JlX3RvX2NwdV8xNihldGhfc3BlYy0+dHlwZSk7CgkJCQlpZiAoZXRo ZXJfdHlwZSA9PSBFVEhFUl9UWVBFX0lQdjQgfHwKCQkJCSAgICBldGhlcl90eXBlID09IEVUSEVS X1RZUEVfSVB2NiB8fAoJCQkJICAgIGV0aGVyX3R5cGUgPT0gRVRIRVJfVFlQRV9BUlAgfHwKCQkJ CSAgICBldGhlcl90eXBlID09IG91dGVyX3RwaWQpIHsKCQkJCQlydGVfZmxvd19lcnJvcl9zZXQo ZXJyb3IsIEVJTlZBTCwKCQkJCQkJICAgICBSVEVfRkxPV19FUlJPUl9UWVBFX0lURU0sCgkJCQkJ CSAgICAgaXRlbSwKCQkJCQkJICAgICAiVW5zdXBwb3J0ZWQgZXRoZXJfdHlwZS4iKTsKCQkJCQly ZXR1cm4gLXJ0ZV9lcnJubzsKCQkJCX0KCQkJfQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6MjQ5MAplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBl X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NS9tbHg1X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI3ByYWdtYSBH Q0MgZGlhZ25vc3RpYyBlcnJvciAiLVdwZWRhbnRpYyIKI2VuZGlmCgojaW5jbHVkZSA8cnRlX2Nv bW1vbi5oPgojaW5jbHVkZSA8cnRlX2V0aF9jdHJsLmg+CiNpbmNsdWRlIDxydGVfZXRoZGV2X2Ry aXZlci5oPgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cu YzoxNwplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZwcDIvbXJ2bF9mbG93LmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpZiAocmV0KQoJCXJldHVybiByZXQ7CgoJaWYgKG1h c2stPnRwaWQpIHsKCQlydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVJTlZBTCwgUlRFX0ZMT1df RVJST1JfVFlQRV9JVEVNLAoJCQkJICAgTlVMTCwgIk5vdCBzdXBwb3J0ZWQgYnkgY2xhc3NpZmll clxuIik7CgkJcmV0dXJuIC1ydGVfZXJybm87Cgl9CgoJbSA9IHJ0ZV9iZV90b19jcHVfMTYobWFz ay0+dGNpKTsKCWlmIChtICYgTVJWTF9WTEFOX0lEX01BU0spIHsKCQlSVEVfTE9HKFdBUk5JTkcs IFBNRCwgInZsYW4gaWQgbWFzayBpcyBpZ25vcmVkXG4iKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L212cHAyL21ydmxfZmxvdy5jOjEwOTEKZXJyb3I6IGRyaXZlcnMvbmV0L212 cHAyL21ydmxfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWNv bnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX3ZsYW4gKm1hc2sgPSBOVUxMOwoJY29uc3Qgc3RydWN0 IHJ0ZV9mbG93X2l0ZW1fdmxhbiBzdXBwX21hc2sgPSB7CgkJLnRjaSA9IHJ0ZV9jcHVfdG9fYmVf MTYoRVRIX1ZMQU5fSURfTUFYKSwKCX07CgoJcmMgPSBzZmNfZmxvd19wYXJzZV9pbml0KGl0ZW0s CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzozNTIKZXJy b3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCQkuaXRlbXMgPSBJVEVNUyhSVEVfRkxPV19JVEVNX1RZUEVfSVBWNCwKCQkJ ICAgICAgIFJURV9GTE9XX0lURU1fVFlQRV9JUFY2KSwKCQkubWFzayA9ICYoY29uc3Qgc3RydWN0 IHJ0ZV9mbG93X2l0ZW1fdmxhbil7CgkJCS50cGlkID0gLTEsCgkJCS8qIERFSSBtYXRjaGluZyBp cyBub3Qgc3VwcG9ydGVkICovCi0tCiNlbmRpZgoJCX0sCgkJLm1hc2tfc3ogPSBzaXplb2Yoc3Ry dWN0IHJ0ZV9mbG93X2l0ZW1fdmxhbiksCgkJLmRlZmF1bHRfbWFzayA9ICZydGVfZmxvd19pdGVt X3ZsYW5fbWFzaywKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3RhcC90YXBfZmxv dy5jOjI3MAplcnJvcjogZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4uLgplcnJv cjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CipSZXBvOiBkcGRrLW5leHQtY3J5cHRvCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jbWRs aW5lX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCUlURU1fRVRIX1NSQywK CUlURU1fRVRIX1RZUEUsCglJVEVNX1ZMQU4sCglJVEVNX1ZMQU5fVFBJRCwKCUlURU1fVkxBTl9U Q0ksCi0tCglJVEVNX1ZMQU5fVklELAoJSVRFTV9JUFY0LAoJSVRFTV9JUFY0X1RPUywKCUlURU1f SVBWNF9UVEwsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmM6OTkKZXJyb3I6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL3RhcC5yc3QuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6ClN1cHBvcnRlZCBpdGVtczoKCi0gZXRoOiBzcmMgYW5kIGRzdCAo d2l0aCB2YXJpYWJsZSBtYXNrcyksIGFuZCBldGhfdHlwZSAoMHhmZmZmIG1hc2spLgotIHZsYW46 IHZpZCwgcGNwLCB0cGlkLCBidXQgbm90IGVpZC4gKHJlcXVpcmVzIGtlcm5lbCA0LjkpCi0gaXB2 NC82OiBzcmMgYW5kIGRzdCAod2l0aCB2YXJpYWJsZSBtYXNrcyksIGFuZCBpcF9wcm90byAoMHhm ZmZmIG1hc2spLgotIHVkcC90Y3A6IHNyYyBhbmQgZHN0IHBvcnQgKDB4ZmZmZikgbWFzay4KCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL25pY3MvdGFwLnJzdDo5NwplcnJvcjogZG9j L2d1aWRlcy9uaWNzL3RhcC5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgpNYXRjaGVzIGFuIEV0aGVybmV0IGhlYWRlci4KCi0gYGBkc3RgYDogZGVzdGlu YXRpb24gTUFDLgotIGBgc3JjYGA6IHNvdXJjZSBNQUMuCi0gYGB0eXBlYGA6IEV0aGVyVHlwZS4K LSBEZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMgZGVzdGluYXRpb24gYW5kIHNvdXJjZSBhZGRyZXNz ZXMgb25seS4KCkl0ZW06IGBgVkxBTmBgCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVz L3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Ojc4NAplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1aWRl L3J0ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1 aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCiAgLSBgYGRzdCB7TUFDLTQ4fWBgOiBkZXN0aW5hdGlvbiBNQUMuCiAgLSBg YHNyYyB7TUFDLTQ4fWBgOiBzb3VyY2UgTUFDLgogIC0gYGB0eXBlIHt1bnNpZ25lZH1gYDogRXRo ZXJUeXBlLgoKLS0KICAtIGBgdmlkIHt1bnNpZ25lZH1gYDogVkxBTiBpZGVudGlmaWVyLgoKLSBg YGlwdjRgYDogbWF0Y2ggSVB2NCBoZWFkZXIuCgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1 aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDozMjIzCmVycm9yOiBkb2MvZ3Vp ZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZmlsdGVyLmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgl1aW50MzJfdCB2ZiA9IDA7CglpbnQgdXNlX250dXBsZTsK CXVpbnQzMl90IGVuID0gMDsKCWludCBkZmx0X3ZuaWM7CgoJdXNlX250dXBsZSA9IGJueHRfZmls dGVyX3R5cGVfY2hlY2socGF0dGVybiwgZXJyb3IpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvYm54dC9ibnh0X2ZpbHRlci5jOjMyNwplcnJvcjogZHJpdmVycy9uZXQvYm54dC9i bnh0X2ZpbHRlci5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9lbmljL2VuaWNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYg KCFzcGVjKQoJCXJldHVybiAwOwoKCS8qIERvbid0IHN1cHBvcnQgZmlsdGVyaW5nIGluIHRwaWQg Ki8KCWlmIChtYXNrKSB7Ci0tCglpZiAoKmlubmVyX29mc3QgPT0gMCkgewoJCS8qIE91dGVyIGhl YWRlci4gVXNlIHRoZSB2bGFuIG1hc2svdmFsIGZpZWxkcyAqLwoJCWdwLT5tYXNrX3ZsYW4gPSBt YXNrLT50Y2k7CgkJZ3AtPnZhbF92bGFuID0gc3BlYy0+dGNpOwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvZW5pYy9lbmljX2Zsb3cuYzo1NDUKZXJyb3I6IGRyaXZlcnMvbmV0L2Vu aWMvZW5pY19mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2k0MGUvaTQwZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJ CQkJCSAgICAgICJJbnZhbGlkIE1BQ19hZGRyIG1hc2suIik7CgkJCQkJcmV0dXJuIC1ydGVfZXJy bm87CgkJCQl9CgoJCQkJaWYgKChldGhfbWFzay0+dHlwZSAmIFVJTlQxNl9NQVgpID09Ci0tCgkJ CQlldGhlcl90eXBlID0gcnRlX2JlX3RvX2NwdV8xNihldGhfc3BlYy0+dHlwZSk7CgkJCQlpZiAo ZXRoZXJfdHlwZSA9PSBFVEhFUl9UWVBFX0lQdjQgfHwKCQkJCSAgICBldGhlcl90eXBlID09IEVU SEVSX1RZUEVfSVB2NiB8fAoJCQkJICAgIGV0aGVyX3R5cGUgPT0gRVRIRVJfVFlQRV9BUlAgfHwK CQkJCSAgICBldGhlcl90eXBlID09IG91dGVyX3RwaWQpIHsKCQkJCQlydGVfZmxvd19lcnJvcl9z ZXQoZXJyb3IsIEVJTlZBTCwKCQkJCQkJICAgICBSVEVfRkxPV19FUlJPUl9UWVBFX0lURU0sCgkJ CQkJCSAgICAgaXRlbSwKCQkJCQkJICAgICAiVW5zdXBwb3J0ZWQgZXRoZXJfdHlwZS4iKTsKCQkJ CQlyZXR1cm4gLXJ0ZV9lcnJubzsKCQkJCX0KCQkJfQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6MjQ5MAplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9p NDBlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvbWx4NS9tbHg1X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI3ByYWdt YSBHQ0MgZGlhZ25vc3RpYyBlcnJvciAiLVdwZWRhbnRpYyIKI2VuZGlmCgojaW5jbHVkZSA8cnRl X2NvbW1vbi5oPgojaW5jbHVkZSA8cnRlX2V0aF9jdHJsLmg+CiNpbmNsdWRlIDxydGVfZXRoZGV2 X2RyaXZlci5oPgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zs b3cuYzoxNwplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZwcDIvbXJ2bF9mbG93LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpZiAocmV0KQoJCXJldHVybiByZXQ7CgoJaWYg KG1hc2stPnRwaWQpIHsKCQlydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVJTlZBTCwgUlRFX0ZM T1dfRVJST1JfVFlQRV9JVEVNLAoJCQkJICAgTlVMTCwgIk5vdCBzdXBwb3J0ZWQgYnkgY2xhc3Np ZmllclxuIik7CgkJcmV0dXJuIC1ydGVfZXJybm87Cgl9CgoJbSA9IHJ0ZV9iZV90b19jcHVfMTYo bWFzay0+dGNpKTsKCWlmIChtICYgTVJWTF9WTEFOX0lEX01BU0spIHsKCQlSVEVfTE9HKFdBUk5J TkcsIFBNRCwgInZsYW4gaWQgbWFzayBpcyBpZ25vcmVkXG4iKTsKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L212cHAyL21ydmxfZmxvdy5jOjEwOTEKZXJyb3I6IGRyaXZlcnMvbmV0 L212cHAyL21ydmxfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX3ZsYW4gKm1hc2sgPSBOVUxMOwoJY29uc3Qgc3Ry dWN0IHJ0ZV9mbG93X2l0ZW1fdmxhbiBzdXBwX21hc2sgPSB7CgkJLnRjaSA9IHJ0ZV9jcHVfdG9f YmVfMTYoRVRIX1ZMQU5fSURfTUFYKSwKCX07CgoJcmMgPSBzZmNfZmxvd19wYXJzZV9pbml0KGl0 ZW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzozNTIK ZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQkuaXRlbXMgPSBJVEVNUyhSVEVfRkxPV19JVEVNX1RZUEVfSVBWNCwK CQkJICAgICAgIFJURV9GTE9XX0lURU1fVFlQRV9JUFY2KSwKCQkubWFzayA9ICYoY29uc3Qgc3Ry dWN0IHJ0ZV9mbG93X2l0ZW1fdmxhbil7CgkJCS50cGlkID0gLTEsCgkJCS8qIERFSSBtYXRjaGlu ZyBpcyBub3Qgc3VwcG9ydGVkICovCi0tCiNlbmRpZgoJCX0sCgkJLm1hc2tfc3ogPSBzaXplb2Yo c3RydWN0IHJ0ZV9mbG93X2l0ZW1fdmxhbiksCgkJLmRlZmF1bHRfbWFzayA9ICZydGVfZmxvd19p dGVtX3ZsYW5fbWFzaywKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3RhcC90YXBf Zmxvdy5jOjI3MAplcnJvcjogZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4uLgpl cnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CipSZXBvOiBkcGRrLW5leHQtdmlydGlvCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9j bWRsaW5lX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCUlURU1fRVRIX1NS QywKCUlURU1fRVRIX1RZUEUsCglJVEVNX1ZMQU4sCglJVEVNX1ZMQU5fVFBJRCwKCUlURU1fVkxB Tl9UQ0ksCi0tCglJVEVNX1ZMQU5fVklELAoJSVRFTV9JUFY0LAoJSVRFTV9JUFY0X1RPUywKCUlU RU1fSVBWNF9UVEwsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9m bG93LmM6OTkKZXJyb3I6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL3RhcC5yc3QuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6ClN1cHBvcnRlZCBpdGVtczoKCi0gZXRoOiBzcmMgYW5kIGRz dCAod2l0aCB2YXJpYWJsZSBtYXNrcyksIGFuZCBldGhfdHlwZSAoMHhmZmZmIG1hc2spLgotIHZs YW46IHZpZCwgcGNwLCB0cGlkLCBidXQgbm90IGVpZC4gKHJlcXVpcmVzIGtlcm5lbCA0LjkpCi0g aXB2NC82OiBzcmMgYW5kIGRzdCAod2l0aCB2YXJpYWJsZSBtYXNrcyksIGFuZCBpcF9wcm90byAo MHhmZmZmIG1hc2spLgotIHVkcC90Y3A6IHNyYyBhbmQgZHN0IHBvcnQgKDB4ZmZmZikgbWFzay4K CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL25pY3MvdGFwLnJzdDo5NwplcnJvcjog ZG9jL2d1aWRlcy9uaWNzL3RhcC5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgpNYXRjaGVzIGFuIEV0aGVybmV0IGhlYWRlci4KCi0gYGBkc3RgYDogZGVz dGluYXRpb24gTUFDLgotIGBgc3JjYGA6IHNvdXJjZSBNQUMuCi0gYGB0eXBlYGA6IEV0aGVyVHlw ZS4KLSBEZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMgZGVzdGluYXRpb24gYW5kIHNvdXJjZSBhZGRy ZXNzZXMgb25seS4KCkl0ZW06IGBgVkxBTmBgCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Ojc4NAplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1 aWRlL3J0ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9j L2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCiAgLSBgYGRzdCB7TUFDLTQ4fWBgOiBkZXN0aW5hdGlvbiBNQUMuCiAg LSBgYHNyYyB7TUFDLTQ4fWBgOiBzb3VyY2UgTUFDLgogIC0gYGB0eXBlIHt1bnNpZ25lZH1gYDog RXRoZXJUeXBlLgoKLS0KICAtIGBgdmlkIHt1bnNpZ25lZH1gYDogVkxBTiBpZGVudGlmaWVyLgoK LSBgYGlwdjRgYDogbWF0Y2ggSVB2NCBoZWFkZXIuCgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9j L2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDozMjIzCmVycm9yOiBkb2Mv Z3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OiBwYXRjaCBkb2VzIG5vdCBh cHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZmlsdGVyLmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgl1aW50MzJfdCB2ZiA9IDA7CglpbnQgdXNlX250dXBs ZTsKCXVpbnQzMl90IGVuID0gMDsKCWludCBkZmx0X3ZuaWM7CgoJdXNlX250dXBsZSA9IGJueHRf ZmlsdGVyX3R5cGVfY2hlY2socGF0dGVybiwgZXJyb3IpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvYm54dC9ibnh0X2ZpbHRlci5jOjMyNwplcnJvcjogZHJpdmVycy9uZXQvYm54 dC9ibnh0X2ZpbHRlci5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9lbmljL2VuaWNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ aWYgKCFzcGVjKQoJCXJldHVybiAwOwoKCS8qIERvbid0IHN1cHBvcnQgZmlsdGVyaW5nIGluIHRw aWQgKi8KCWlmIChtYXNrKSB7Ci0tCglpZiAoKmlubmVyX29mc3QgPT0gMCkgewoJCS8qIE91dGVy IGhlYWRlci4gVXNlIHRoZSB2bGFuIG1hc2svdmFsIGZpZWxkcyAqLwoJCWdwLT5tYXNrX3ZsYW4g PSBtYXNrLT50Y2k7CgkJZ3AtPnZhbF92bGFuID0gc3BlYy0+dGNpOwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvZW5pYy9lbmljX2Zsb3cuYzo1NDUKZXJyb3I6IGRyaXZlcnMvbmV0 L2VuaWMvZW5pY19mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CgkJCQkJCSAgICAgICJJbnZhbGlkIE1BQ19hZGRyIG1hc2suIik7CgkJCQkJcmV0dXJuIC1ydGVf ZXJybm87CgkJCQl9CgoJCQkJaWYgKChldGhfbWFzay0+dHlwZSAmIFVJTlQxNl9NQVgpID09Ci0t CgkJCQlldGhlcl90eXBlID0gcnRlX2JlX3RvX2NwdV8xNihldGhfc3BlYy0+dHlwZSk7CgkJCQlp ZiAoZXRoZXJfdHlwZSA9PSBFVEhFUl9UWVBFX0lQdjQgfHwKCQkJCSAgICBldGhlcl90eXBlID09 IEVUSEVSX1RZUEVfSVB2NiB8fAoJCQkJICAgIGV0aGVyX3R5cGUgPT0gRVRIRVJfVFlQRV9BUlAg fHwKCQkJCSAgICBldGhlcl90eXBlID09IG91dGVyX3RwaWQpIHsKCQkJCQlydGVfZmxvd19lcnJv cl9zZXQoZXJyb3IsIEVJTlZBTCwKCQkJCQkJICAgICBSVEVfRkxPV19FUlJPUl9UWVBFX0lURU0s CgkJCQkJCSAgICAgaXRlbSwKCQkJCQkJICAgICAiVW5zdXBwb3J0ZWQgZXRoZXJfdHlwZS4iKTsK CQkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsKCQkJCX0KCQkJfQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6MjQ5MAplcnJvcjogZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NS9tbHg1X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI3By YWdtYSBHQ0MgZGlhZ25vc3RpYyBlcnJvciAiLVdwZWRhbnRpYyIKI2VuZGlmCgojaW5jbHVkZSA8 cnRlX2NvbW1vbi5oPgojaW5jbHVkZSA8cnRlX2V0aF9jdHJsLmg+CiNpbmNsdWRlIDxydGVfZXRo ZGV2X2RyaXZlci5oPgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1 X2Zsb3cuYzoxNwplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZwcDIvbXJ2bF9mbG93LmMu Li4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpZiAocmV0KQoJCXJldHVybiByZXQ7CgoJ aWYgKG1hc2stPnRwaWQpIHsKCQlydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVJTlZBTCwgUlRF X0ZMT1dfRVJST1JfVFlQRV9JVEVNLAoJCQkJICAgTlVMTCwgIk5vdCBzdXBwb3J0ZWQgYnkgY2xh c3NpZmllclxuIik7CgkJcmV0dXJuIC1ydGVfZXJybm87Cgl9CgoJbSA9IHJ0ZV9iZV90b19jcHVf MTYobWFzay0+dGNpKTsKCWlmIChtICYgTVJWTF9WTEFOX0lEX01BU0spIHsKCQlSVEVfTE9HKFdB Uk5JTkcsIFBNRCwgInZsYW4gaWQgbWFzayBpcyBpZ25vcmVkXG4iKTsKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L212cHAyL21ydmxfZmxvdy5jOjEwOTEKZXJyb3I6IGRyaXZlcnMv bmV0L212cHAyL21ydmxfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX3ZsYW4gKm1hc2sgPSBOVUxMOwoJY29uc3Qg c3RydWN0IHJ0ZV9mbG93X2l0ZW1fdmxhbiBzdXBwX21hc2sgPSB7CgkJLnRjaSA9IHJ0ZV9jcHVf dG9fYmVfMTYoRVRIX1ZMQU5fSURfTUFYKSwKCX07CgoJcmMgPSBzZmNfZmxvd19wYXJzZV9pbml0 KGl0ZW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzoz NTIKZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQkuaXRlbXMgPSBJVEVNUyhSVEVfRkxPV19JVEVNX1RZUEVfSVBW NCwKCQkJICAgICAgIFJURV9GTE9XX0lURU1fVFlQRV9JUFY2KSwKCQkubWFzayA9ICYoY29uc3Qg c3RydWN0IHJ0ZV9mbG93X2l0ZW1fdmxhbil7CgkJCS50cGlkID0gLTEsCgkJCS8qIERFSSBtYXRj aGluZyBpcyBub3Qgc3VwcG9ydGVkICovCi0tCiNlbmRpZgoJCX0sCgkJLm1hc2tfc3ogPSBzaXpl b2Yoc3RydWN0IHJ0ZV9mbG93X2l0ZW1fdmxhbiksCgkJLmRlZmF1bHRfbWFzayA9ICZydGVfZmxv d19pdGVtX3ZsYW5fbWFzaywKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3RhcC90 YXBfZmxvdy5jOjI3MAplcnJvcjogZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4u LgplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CgpEUERLIFNUViB0ZWFt --===============5856468232168406773==--