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 A9509A823 for ; Thu, 19 Apr 2018 12:27:18 +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:18 -0700 Message-Id: <0590c7$1er3ks@orsmga001.jf.intel.com> Date: 19 Apr 2018 03:27:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,468,1517904000"; d="scan'208";a="49122978" Received: from unknown (HELO [127.0.1.1]) ([10.240.176.154]) by orsmga001.jf.intel.com with ESMTP; 19 Apr 2018 03:27:16 -0700 Content-Type: multipart/alternative; boundary="===============8490178661375644714==" 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| pw38508[dpdk-dev, v5, 09/16] ethdev: add encap level to RSS flow API action 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:19 -0000 --===============8490178661375644714== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKaHR0cDov L2RwZGsub3JnL3BhdGNoLzM4NTA4CgpfYXBwbHkgaXNzdWVzXwoKU3VibWl0dGVyOiBBZHJpZW4g TWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbT4KRGF0ZTogMjAxOC0wNC0xOSAx MDoxNjo0MwpEUERLIGdpdCBiYXNlbGluZToKCVJlcG86ZHBkay1tYXN0ZXIsIENvbW1pdElEOiBl NjJmM2E4YTA0NzY4MzUyYmM3ODM4OWQ0OTliZTUwYzkyM2JmNmFhCglSZXBvOmRwZGstbmV4dC1l dmVudGRldiwgQ29tbWl0SUQ6IGZlNWFiZDMxNTBiYzFjYWE4MzY5ZTc0M2MzOTVjMzlmNTMyNjU1 OTcKCVJlcG86ZHBkay1uZXh0LW5ldCwgQ29tbWl0SUQ6IDlmNDRiNjEyNjM3YzI5NzUyZDE1ODVl OGQxYWYyZTI5OTc1NmNkNjAKCVJlcG86ZHBkay1uZXh0LWNyeXB0bywgQ29tbWl0SUQ6IGIxYWY0 ODllNjQ4MmEyMjQ3ZWYzNjQxOGNlZTgwM2UzMmJjODRiMmUKCVJlcG86ZHBkay1uZXh0LXZpcnRp bywgQ29tbWl0SUQ6IDhhZGJlN2U0ODQ3MDYwZDA5MWM0NmFiY2JlY2QzZGZlYTgzNjJiN2EKCipS ZXBvOiBkcGRrLW1hc3RlcgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglBQ1RJT05fQ09VTlQsCglBQ1RJT05f UlNTLAoJQUNUSU9OX1JTU19GVU5DLAoJQUNUSU9OX1JTU19GVU5DX0RFRkFVTFQsCglBQ1RJT05f UlNTX0ZVTkNfVE9FUExJVFosCglBQ1RJT05fUlNTX0ZVTkNfU0lNUExFX1hPUiwKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzoxNjcKZXJyb3I6IGFwcC90 ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggYXBwL3Rlc3QtcG1kL2NvbmZpZy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ CWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7 CgkJCQkuZnVuYyA9IHNyYy5yc3MtPmZ1bmMsCgkJCQkudHlwZXMgPSBzcmMucnNzLT50eXBlcywK CQkJCS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1ZV9udW0gPSBzcmMucnNz LT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6 MTEwMQplcnJvcjogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpvdmVybGFwcyBgYGhhc2guZmRpci5sb2BgLiBTaW5jZSBg QWN0aW9uOiBNQVJLYF8gc2V0cyB0aGUgYGBoYXNoLmZkaXIuaGlgYApmaWVsZCBvbmx5LCBib3Ro IGNhbiBiZSByZXF1ZXN0ZWQgc2ltdWx0YW5lb3VzbHkuCgouLiBfdGFibGVfcnRlX2Zsb3dfYWN0 aW9uX3JzczoKCi4uIHRhYmxlOjogUlNTCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVz L3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0OjEzMTEKZXJyb3I6IGRvYy9ndWlkZXMvcHJvZ19ndWlk ZS9ydGVfZmxvdy5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRvYy9n dWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CiAgLSBgYGZ1bmMge2hhc2ggZnVuY3Rpb259YGA6IFJTUyBoYXNoIGZ1bmN0 aW9uIHRvIGFwcGx5LCBhbGxvd2VkIHRva2VucyBhcmUKICAgIHRoZSBzYW1lIGFzIGBzZXRfaGFz aF9nbG9iYWxfY29uZmlnYF8uCgogIC0gYGB0eXBlcyBbe1JTUyBoYXNoIHR5cGV9IFsuLi5dXSBl bmRgYDogc3BlY2lmaWMgUlNTIGhhc2ggdHlwZXMsIGFsbG93ZWQKICAgIHRva2VucyBhcmUgdGhl IHNhbWUgYXMgYHNldF9oYXNoX2lucHV0X3NldGBfLCBleGNlcHQgdGhhdCBhbiBlbXB0eSBsaXN0 CiAgICBkb2VzIG5vdCBkaXNhYmxlIFJTUyBidXQgaW5zdGVhZCByZXF1ZXN0cyB1bnNwZWNpZmll ZCAiYmVzdC1lZmZvcnQiCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL3Rlc3RwbWRf YXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OjM0MDEKZXJyb3I6IGRvYy9ndWlkZXMvdGVzdHBtZF9h cHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJU RV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgkJCSAibm9uLWRlZmF1bHQgUlNTIGhhc2gg ZnVuY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIik7CglpZiAocnNzLT5rZXlfbGVuICYmIHJzcy0+ a2V5X2xlbiAhPSBSVEVfRElNKHJzc19jb25mLT5rZXkpKQoJCXJldHVybiBydGVfZmxvd19lcnJv cl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0 LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYzoxMzE0 CmVycm9yOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJb3V0LT5jb25mID0gKHN0cnVj dCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkuZnVuYyA9IGluLT5mdW5jLAoJCS50eXBlcyA9IGlu LT50eXBlcywKCQkua2V5X2xlbiA9IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9udW0gPSBpbi0+cXVl dWVfbnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHgu YzoyOTA2CmVycm9yOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYg PSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5 cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9 IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTIwNDAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBl X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gcnRlX2Zsb3df ZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04s IGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0 ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuID4gUlRFX0RJTShyc3NfY29u ZmlnLT5rZXkpKQoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQ LCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYzo0MzgwCmVycm9yOiBkcml2ZXJzL25ldC9pNDBl L2k0MGVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9peGdiZS9peGdiZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJ cmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VS Uk9SX1RZUEVfQUNUSU9OLCBhY3QsCgkJCSAibm9uLWRlZmF1bHQgUlNTIGhhc2ggZnVuY3Rpb25z IGFyZSBub3Qgc3VwcG9ydGVkIik7CglpZiAocnNzLT5rZXlfbGVuICYmIHJzcy0+a2V5X2xlbiAh PSBSVEVfRElNKHJzc19jb25mLT5rZXkpKQoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJ KGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jOjI3ODMKZXJyb3I6 IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJb3V0LT5jb25mID0gKHN0cnVjdCBy dGVfZmxvd19hY3Rpb25fcnNzKXsKCQkuZnVuYyA9IGluLT5mdW5jLAoJCS50eXBlcyA9IGluLT50 eXBlcywKCQkua2V5X2xlbiA9IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9udW0gPSBpbi0+cXVldWVf bnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5j OjU2ODQKZXJyb3I6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCQkiIGlzIFRvZXBsaXR6IjsKCQkJCWdvdG8g ZXhpdF9hY3Rpb25fbm90X3N1cHBvcnRlZDsKCQkJfQoJCQlydGVfZXJybm8gPSAwOwoJCQlmaWVs ZHMgPSBtbHg0X2NvbnZfcnNzX3R5cGVzKHByaXYsIHJzcy0+dHlwZXMpOwoJCQlpZiAoZmllbGRz ID09ICh1aW50NjRfdCktMSAmJiBydGVfZXJybm8pIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6Nzk2CmVycm9yOiBkcml2ZXJzL25ldC9tbHg0L21s eDRfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9tbHg1L21seDVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCQkg ICAiIGZ1bmN0aW9uIGlzIFRvZXBsaXR6Iik7CgkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsKCQkJfQoJ CQlpZiAocnNzLT50eXBlcyAmIE1MWDVfUlNTX0hGX01BU0spIHsKCQkJCXJ0ZV9mbG93X2Vycm9y X3NldChlcnJvciwgRUlOVkFMLAoJCQkJCQkgICBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6NjQ0CmVy cm9yOiBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsKCX0KCglpZiAoKHJzcy0+dHlwZXMgJiB+ U0ZDX1JTU19PRkZMT0FEUykgIT0gMCkKCQlyZXR1cm4gLUVJTlZBTDsKCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzoxMjY5CmVycm9yOiBkcml2ZXJzL25l dC9zZmMvc2ZjX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvdGFwL3RhcF9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cglz dHJ1Y3QgcnNzX2tleSByc3NfZW50cnkgPSB7IC5oYXNoX2ZpZWxkcyA9IDAsCgkJCQkgICAgIC5r ZXlfc2l6ZSA9IDAgfTsKCgkvKiBDaGVjayBzdXBwb3J0ZWQgaGFzaCBmdW5jdGlvbnMgKi8KCWlm IChyc3MtPmZ1bmMgIT0gUlRFX0VUSF9IQVNIX0ZVTkNUSU9OX0RFRkFVTFQpCgkJcmV0dXJuIHJ0 ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVf VU5TUEVDSUZJRUQsIE5VTEwsCgkJCSAibm9uLWRlZmF1bHQgUlNTIGhhc2ggZnVuY3Rpb25zIGFy ZSBub3Qgc3VwcG9ydGVkIik7CgoJLyogR2V0IGEgbmV3IG1hcCBrZXkgZm9yIGEgbmV3IFJTUyBy dWxlICovCgllcnIgPSBicGZfcnNzX2tleShLRVlfQ01EX0dFVCwgJmZsb3ctPmtleV9pZHgpOwoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6MjA1NQplcnJv cjogZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCQlpZiAoZHN0LnJzcykKCQkJKmRzdC5yc3MgPSAoc3RydWN0IHJ0ZV9mbG93 X2FjdGlvbl9yc3MpewoJCQkJLmZ1bmMgPSBzcmMucnNzLT5mdW5jLAoJCQkJLnR5cGVzID0gc3Jj LnJzcy0+dHlwZXMsCgkJCQkua2V5X2xlbiA9IHNyYy5yc3MtPmtleV9sZW4sCgkJCQkucXVldWVf bnVtID0gc3JjLnJzcy0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2xpYnJ0 ZV9ldGhlci9ydGVfZmxvdy5jOjMzMQplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5j OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0 ZV9mbG93LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqLwpzdHJ1Y3QgcnRlX2Zs b3dfYWN0aW9uX3JzcyB7CgllbnVtIHJ0ZV9ldGhfaGFzaF9mdW5jdGlvbiBmdW5jOyAvKio8IFJT UyBoYXNoIGZ1bmN0aW9uIHRvIGFwcGx5LiAqLwoJdWludDY0X3QgdHlwZXM7IC8qKjwgU3BlY2lm aWMgUlNTIGhhc2ggdHlwZXMgKHNlZSBFVEhfUlNTXyopLiAqLwoJdWludDMyX3Qga2V5X2xlbjsg LyoqPCBIYXNoIGtleSBsZW5ndGggaW4gYnl0ZXMuICovCgl1aW50MzJfdCBxdWV1ZV9udW07IC8q KjwgTnVtYmVyIG9mIGVudHJpZXMgaW4gQHAgcXVldWUuICovCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93Lmg6MTA0NgplcnJvcjogbGliL2xpYnJ0ZV9ldGhl ci9ydGVfZmxvdy5oOiBwYXRjaCBkb2VzIG5vdCBhcHBseQoqUmVwbzogZHBkay1uZXh0LWV2ZW50 ZGV2CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCUFDVElPTl9DT1VOVCwKCUFDVElPTl9SU1MsCglBQ1RJT05f UlNTX0ZVTkMsCglBQ1RJT05fUlNTX0ZVTkNfREVGQVVMVCwKCUFDVElPTl9SU1NfRlVOQ19UT0VQ TElUWiwKCUFDVElPTl9SU1NfRlVOQ19TSU1QTEVfWE9SLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDog YXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jOjE2NwplcnJvcjogYXBwL3Rlc3QtcG1kL2NtZGxp bmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1w bWQvY29uZmlnLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJaWYgKGRzdC5yc3Mp CgkJCSpkc3QucnNzID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkJCS5mdW5jID0g c3JjLnJzcy0+ZnVuYywKCQkJCS50eXBlcyA9IHNyYy5yc3MtPnR5cGVzLAoJCQkJLmtleV9sZW4g PSBzcmMucnNzLT5rZXlfbGVuLAoJCQkJLnF1ZXVlX251bSA9IHNyYy5yc3MtPnF1ZXVlX251bSwK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9jb25maWcuYzoxMTAxCmVycm9yOiBh cHAvdGVzdC1wbWQvY29uZmlnLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6Cm92ZXJsYXBzIGBgaGFzaC5mZGlyLmxvYGAuIFNpbmNlIGBBY3Rpb246IE1BUktg XyBzZXRzIHRoZSBgYGhhc2guZmRpci5oaWBgCmZpZWxkIG9ubHksIGJvdGggY2FuIGJlIHJlcXVl c3RlZCBzaW11bHRhbmVvdXNseS4KCi4uIF90YWJsZV9ydGVfZmxvd19hY3Rpb25fcnNzOgoKLi4g dGFibGU6OiBSU1MKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9y dGVfZmxvdy5yc3Q6MTMxMQplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJz dDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy90ZXN0cG1k X2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK ICAtIGBgZnVuYyB7aGFzaCBmdW5jdGlvbn1gYDogUlNTIGhhc2ggZnVuY3Rpb24gdG8gYXBwbHks IGFsbG93ZWQgdG9rZW5zIGFyZQogICAgdGhlIHNhbWUgYXMgYHNldF9oYXNoX2dsb2JhbF9jb25m aWdgXy4KCiAgLSBgYHR5cGVzIFt7UlNTIGhhc2ggdHlwZX0gWy4uLl1dIGVuZGBgOiBzcGVjaWZp YyBSU1MgaGFzaCB0eXBlcywgYWxsb3dlZAogICAgdG9rZW5zIGFyZSB0aGUgc2FtZSBhcyBgc2V0 X2hhc2hfaW5wdXRfc2V0YF8sIGV4Y2VwdCB0aGF0IGFuIGVtcHR5IGxpc3QKICAgIGRvZXMgbm90 IGRpc2FibGUgUlNTIGJ1dCBpbnN0ZWFkIHJlcXVlc3RzIHVuc3BlY2lmaWVkICJiZXN0LWVmZm9y dCIKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBt ZF9mdW5jcy5yc3Q6MzQwMQplcnJvcjogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1k X2Z1bmNzLnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvZTEwMDAvaWdiX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1 cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1Jf VFlQRV9BQ1RJT04sIGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJU RV9ESU0ocnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJy b3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOjEzMTQKZXJyb3I6IGRyaXZl cnMvbmV0L2UxMDAwL2lnYl9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9mbG93X2Fj dGlvbl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5r ZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOjI5MDYKZXJyb3I6 IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRl X2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLmZ1bmMgPSBpbi0+ZnVuYywKCQkudHlwZXMgPSBpbi0+dHlw ZXMsCgkJLmtleV9sZW4gPSBpbi0+a2V5X2xlbiwKCQkucXVldWVfbnVtID0gaW4tPnF1ZXVlX251 bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MjA0MAplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJ KGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoJCQkgIm5v bi1kZWZhdWx0IFJTUyBoYXNoIGZ1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCIpOwoJaWYgKHJz cy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gPiBSVEVfRElNKHJzc19jb25maWctPmtleSkpCgkJ cmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VS Uk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9p NDBlL2k0MGVfZmxvdy5jOjQzODAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4 Z2JlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gcnRlX2Zs b3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJ T04sIGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBw b3J0ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJURV9ESU0ocnNz X2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RT VVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6Mjc4MwplcnJvcjogZHJpdmVycy9uZXQv aXhnYmUvaXhnYmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlv bl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlf bGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6NTY4NAplcnJvcjog ZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJCQkJCSIgaXMgVG9lcGxpdHoiOwoJCQkJZ290byBleGl0X2FjdGlvbl9u b3Rfc3VwcG9ydGVkOwoJCQl9CgkJCXJ0ZV9lcnJubyA9IDA7CgkJCWZpZWxkcyA9IG1seDRfY29u dl9yc3NfdHlwZXMocHJpdiwgcnNzLT50eXBlcyk7CgkJCWlmIChmaWVsZHMgPT0gKHVpbnQ2NF90 KS0xICYmIHJ0ZV9lcnJubykgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4 NC9tbHg0X2Zsb3cuYzo3OTYKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6IHBh dGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9m bG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJCSAgICIgZnVuY3Rpb24g aXMgVG9lcGxpdHoiKTsKCQkJCXJldHVybiAtcnRlX2Vycm5vOwoJCQl9CgkJCWlmIChyc3MtPnR5 cGVzICYgTUxYNV9SU1NfSEZfTUFTSykgewoJCQkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBF SU5WQUwsCgkJCQkJCSAgIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLAoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzo2NDQKZXJyb3I6IGRyaXZlcnMv bmV0L21seDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJCXJldHVybiAtRUlOVkFMOwoJfQoKCWlmICgocnNzLT50eXBlcyAmIH5TRkNfUlNTX09GRkxP QURTKSAhPSAwKQoJCXJldHVybiAtRUlOVkFMOwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L3NmYy9zZmNfZmxvdy5jOjEyNjkKZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxv dy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90YXAv dGFwX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCByc3Nfa2V5 IHJzc19lbnRyeSA9IHsgLmhhc2hfZmllbGRzID0gMCwKCQkJCSAgICAgLmtleV9zaXplID0gMCB9 OwoKCS8qIENoZWNrIHN1cHBvcnRlZCBoYXNoIGZ1bmN0aW9ucyAqLwoJaWYgKHJzcy0+ZnVuYyAh PSBSVEVfRVRIX0hBU0hfRlVOQ1RJT05fREVGQVVMVCkKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jf c2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwg TlVMTCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0 ZWQiKTsKCgkvKiBHZXQgYSBuZXcgbWFwIGtleSBmb3IgYSBuZXcgUlNTIHJ1bGUgKi8KCWVyciA9 IGJwZl9yc3Nfa2V5KEtFWV9DTURfR0VULCAmZmxvdy0+a2V5X2lkeCk7CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYzoyMDU1CmVycm9yOiBkcml2ZXJzL25l dC90YXAvdGFwX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGli L2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ CWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7 CgkJCQkuZnVuYyA9IHNyYy5yc3MtPmZ1bmMsCgkJCQkudHlwZXMgPSBzcmMucnNzLT50eXBlcywK CQkJCS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1ZV9udW0gPSBzcmMucnNz LT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9m bG93LmM6MzMxCmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICovCnN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNz IHsKCWVudW0gcnRlX2V0aF9oYXNoX2Z1bmN0aW9uIGZ1bmM7IC8qKjwgUlNTIGhhc2ggZnVuY3Rp b24gdG8gYXBwbHkuICovCgl1aW50NjRfdCB0eXBlczsgLyoqPCBTcGVjaWZpYyBSU1MgaGFzaCB0 eXBlcyAoc2VlIEVUSF9SU1NfKikuICovCgl1aW50MzJfdCBrZXlfbGVuOyAvKio8IEhhc2gga2V5 IGxlbmd0aCBpbiBieXRlcy4gKi8KCXVpbnQzMl90IHF1ZXVlX251bTsgLyoqPCBOdW1iZXIgb2Yg ZW50cmllcyBpbiBAcCBxdWV1ZS4gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9saWJydGVf ZXRoZXIvcnRlX2Zsb3cuaDoxMDQ2CmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93Lmg6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CipSZXBvOiBkcGRrLW5leHQtbmV0CkNoZWNraW5nIHBhdGNo IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCUFDVElPTl9DT1VOVCwKCUFDVElPTl9SU1MsCglBQ1RJT05fUlNTX0ZVTkMsCglBQ1RJT05f UlNTX0ZVTkNfREVGQVVMVCwKCUFDVElPTl9SU1NfRlVOQ19UT0VQTElUWiwKCUFDVElPTl9SU1Nf RlVOQ19TSU1QTEVfWE9SLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NtZGxp bmVfZmxvdy5jOjE2NwplcnJvcjogYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jOiBwYXRjaCBk b2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY29uZmlnLmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJaWYgKGRzdC5yc3MpCgkJCSpkc3QucnNzID0gKHN0 cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkJCS5mdW5jID0gc3JjLnJzcy0+ZnVuYywKCQkJ CS50eXBlcyA9IHNyYy5yc3MtPnR5cGVzLAoJCQkJLmtleV9sZW4gPSBzcmMucnNzLT5rZXlfbGVu LAoJCQkJLnF1ZXVlX251bSA9IHNyYy5yc3MtPnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGFwcC90ZXN0LXBtZC9jb25maWcuYzoxMTAxCmVycm9yOiBhcHAvdGVzdC1wbWQvY29uZmln LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19n dWlkZS9ydGVfZmxvdy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cm92ZXJsYXBz IGBgaGFzaC5mZGlyLmxvYGAuIFNpbmNlIGBBY3Rpb246IE1BUktgXyBzZXRzIHRoZSBgYGhhc2gu ZmRpci5oaWBgCmZpZWxkIG9ubHksIGJvdGggY2FuIGJlIHJlcXVlc3RlZCBzaW11bHRhbmVvdXNs eS4KCi4uIF90YWJsZV9ydGVfZmxvd19hY3Rpb25fcnNzOgoKLi4gdGFibGU6OiBSU1MKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3Q6MTMxMQpl cnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1 bmNzLnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICAtIGBgZnVuYyB7aGFzaCBm dW5jdGlvbn1gYDogUlNTIGhhc2ggZnVuY3Rpb24gdG8gYXBwbHksIGFsbG93ZWQgdG9rZW5zIGFy ZQogICAgdGhlIHNhbWUgYXMgYHNldF9oYXNoX2dsb2JhbF9jb25maWdgXy4KCiAgLSBgYHR5cGVz IFt7UlNTIGhhc2ggdHlwZX0gWy4uLl1dIGVuZGBgOiBzcGVjaWZpYyBSU1MgaGFzaCB0eXBlcywg YWxsb3dlZAogICAgdG9rZW5zIGFyZSB0aGUgc2FtZSBhcyBgc2V0X2hhc2hfaW5wdXRfc2V0YF8s IGV4Y2VwdCB0aGF0IGFuIGVtcHR5IGxpc3QKICAgIGRvZXMgbm90IGRpc2FibGUgUlNTIGJ1dCBp bnN0ZWFkIHJlcXVlc3RzIHVuc3BlY2lmaWVkICJiZXN0LWVmZm9ydCIKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzQwMQpl cnJvcjogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0Y2gg ZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jf c2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwK CQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsK CWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJURV9ESU0ocnNzX2NvbmYtPmtl eSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9G TE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9lMTAwMC9pZ2JfZmxvdy5jOjEzMTQKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9m bG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2Ux MDAwL2lnYl9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1F SU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS5mdW5j ID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9s ZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBk cml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOjI5MDYKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAw L2lnYl9yeHR4LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQly ZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7 CgkJLmZ1bmMgPSBpbi0+ZnVuYywKCQkudHlwZXMgPSBpbi0+dHlwZXMsCgkJLmtleV9sZW4gPSBp bi0+a2V5X2xlbiwKCQkucXVldWVfbnVtID0gaW4tPnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMjA0MAplcnJvcjogZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBS VEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoJCQkgIm5vbi1kZWZhdWx0IFJTUyBoYXNo IGZ1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCIpOwoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3Mt PmtleV9sZW4gPiBSVEVfRElNKHJzc19jb25maWctPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vy cm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBh Y3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jOjQz ODAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFw cGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShl cnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCQkJICJub24t ZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKCWlmIChyc3Mt PmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJURV9ESU0ocnNzX2NvbmYtPmtleSkpCgkJcmV0 dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9S X1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdi ZS9peGdiZV9mbG93LmM6Mjc4MwplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5j OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9p eGdiZV9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5W QUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0g aW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4s CgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6NTY4NAplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfcnh0eC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9tbHg0L21seDRfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJ CSIgaXMgVG9lcGxpdHoiOwoJCQkJZ290byBleGl0X2FjdGlvbl9ub3Rfc3VwcG9ydGVkOwoJCQl9 CgkJCXJ0ZV9lcnJubyA9IDA7CgkJCWZpZWxkcyA9IG1seDRfY29udl9yc3NfdHlwZXMocHJpdiwg cnNzLT50eXBlcyk7CgkJCWlmIChmaWVsZHMgPT0gKHVpbnQ2NF90KS0xICYmIHJ0ZV9lcnJubykg ewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzo3OTYK ZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJCSAgICIgZnVuY3Rpb24gaXMgVG9lcGxpdHoiKTsKCQkJ CXJldHVybiAtcnRlX2Vycm5vOwoJCQl9CgkJCWlmIChyc3MtPnR5cGVzICYgTUxYNV9SU1NfSEZf TUFTSykgewoJCQkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsCgkJCQkJCSAgIFJU RV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvbWx4NS9tbHg1X2Zsb3cuYzo2NDQKZXJyb3I6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93 LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9z ZmNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFM OwoJfQoKCWlmICgocnNzLT50eXBlcyAmIH5TRkNfUlNTX09GRkxPQURTKSAhPSAwKQoJCXJldHVy biAtRUlOVkFMOwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxv dy5jOjEyNjkKZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCByc3Nfa2V5IHJzc19lbnRyeSA9IHsgLmhh c2hfZmllbGRzID0gMCwKCQkJCSAgICAgLmtleV9zaXplID0gMCB9OwoKCS8qIENoZWNrIHN1cHBv cnRlZCBoYXNoIGZ1bmN0aW9ucyAqLwoJaWYgKHJzcy0+ZnVuYyAhPSBSVEVfRVRIX0hBU0hfRlVO Q1RJT05fREVGQVVMVCkKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5P VFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwgTlVMTCwKCQkJICJub24tZGVm YXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKCgkvKiBHZXQgYSBu ZXcgbWFwIGtleSBmb3IgYSBuZXcgUlNTIHJ1bGUgKi8KCWVyciA9IGJwZl9yc3Nfa2V5KEtFWV9D TURfR0VULCAmZmxvdy0+a2V5X2lkeCk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC90YXAvdGFwX2Zsb3cuYzoyMDU1CmVycm9yOiBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVf Zmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCWlmIChkc3QucnNzKQoJCQkq ZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkuZnVuYyA9IHNyYy5y c3MtPmZ1bmMsCgkJCQkudHlwZXMgPSBzcmMucnNzLT50eXBlcywKCQkJCS5rZXlfbGVuID0gc3Jj LnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1ZV9udW0gPSBzcmMucnNzLT5xdWV1ZV9udW0sCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6MzMxCmVycm9yOiBs aWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKICovCnN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzIHsKCWVudW0gcnRlX2V0aF9o YXNoX2Z1bmN0aW9uIGZ1bmM7IC8qKjwgUlNTIGhhc2ggZnVuY3Rpb24gdG8gYXBwbHkuICovCgl1 aW50NjRfdCB0eXBlczsgLyoqPCBTcGVjaWZpYyBSU1MgaGFzaCB0eXBlcyAoc2VlIEVUSF9SU1Nf KikuICovCgl1aW50MzJfdCBrZXlfbGVuOyAvKio8IEhhc2gga2V5IGxlbmd0aCBpbiBieXRlcy4g Ki8KCXVpbnQzMl90IHF1ZXVlX251bTsgLyoqPCBOdW1iZXIgb2YgZW50cmllcyBpbiBAcCBxdWV1 ZS4gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaDox MDQ2CmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93Lmg6IHBhdGNoIGRvZXMgbm90IGFw cGx5CipSZXBvOiBkcGRrLW5leHQtY3J5cHRvCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9j bWRsaW5lX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCUFDVElPTl9DT1VO VCwKCUFDVElPTl9SU1MsCglBQ1RJT05fUlNTX0ZVTkMsCglBQ1RJT05fUlNTX0ZVTkNfREVGQVVM VCwKCUFDVElPTl9SU1NfRlVOQ19UT0VQTElUWiwKCUFDVElPTl9SU1NfRlVOQ19TSU1QTEVfWE9S LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jOjE2Nwpl cnJvcjogYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY29uZmlnLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkJaWYgKGRzdC5yc3MpCgkJCSpkc3QucnNzID0gKHN0cnVjdCBydGVfZmxvd19h Y3Rpb25fcnNzKXsKCQkJCS5mdW5jID0gc3JjLnJzcy0+ZnVuYywKCQkJCS50eXBlcyA9IHNyYy5y c3MtPnR5cGVzLAoJCQkJLmtleV9sZW4gPSBzcmMucnNzLT5rZXlfbGVuLAoJCQkJLnF1ZXVlX251 bSA9IHNyYy5yc3MtPnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBt ZC9jb25maWcuYzoxMTAxCmVycm9yOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5y c3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cm92ZXJsYXBzIGBgaGFzaC5mZGlyLmxv YGAuIFNpbmNlIGBBY3Rpb246IE1BUktgXyBzZXRzIHRoZSBgYGhhc2guZmRpci5oaWBgCmZpZWxk IG9ubHksIGJvdGggY2FuIGJlIHJlcXVlc3RlZCBzaW11bHRhbmVvdXNseS4KCi4uIF90YWJsZV9y dGVfZmxvd19hY3Rpb25fcnNzOgoKLi4gdGFibGU6OiBSU1MKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3Q6MTMxMQplcnJvcjogZG9jL2d1aWRl cy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICAtIGBgZnVuYyB7aGFzaCBmdW5jdGlvbn1gYDogUlNT IGhhc2ggZnVuY3Rpb24gdG8gYXBwbHksIGFsbG93ZWQgdG9rZW5zIGFyZQogICAgdGhlIHNhbWUg YXMgYHNldF9oYXNoX2dsb2JhbF9jb25maWdgXy4KCiAgLSBgYHR5cGVzIFt7UlNTIGhhc2ggdHlw ZX0gWy4uLl1dIGVuZGBgOiBzcGVjaWZpYyBSU1MgaGFzaCB0eXBlcywgYWxsb3dlZAogICAgdG9r ZW5zIGFyZSB0aGUgc2FtZSBhcyBgc2V0X2hhc2hfaW5wdXRfc2V0YF8sIGV4Y2VwdCB0aGF0IGFu IGVtcHR5IGxpc3QKICAgIGRvZXMgbm90IGRpc2FibGUgUlNTIGJ1dCBpbnN0ZWFkIHJlcXVlc3Rz IHVuc3BlY2lmaWVkICJiZXN0LWVmZm9ydCIKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlk ZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzQwMQplcnJvcjogZG9jL2d1aWRl cy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwg RU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCQkJICJub24tZGVmYXVs dCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKCWlmIChyc3MtPmtleV9s ZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJURV9ESU0ocnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0 ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVf QUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jf Zmxvdy5jOjEzMTQKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMu Li4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNv bmYgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJ LnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251 bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAw MC9pZ2Jfcnh0eC5jOjI5MDYKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6IHBh dGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsK CW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLmZ1bmMgPSBpbi0+ ZnVuYywKCQkudHlwZXMgPSBpbi0+dHlwZXMsCgkJLmtleV9sZW4gPSBpbi0+a2V5X2xlbiwKCQku cXVldWVfbnVtID0gaW4tPnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMjA0MAplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9pNDBlL2k0MGVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVy biBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9U WVBFX0FDVElPTiwgYWN0LAoJCQkgIm5vbi1kZWZhdWx0IFJTUyBoYXNoIGZ1bmN0aW9ucyBhcmUg bm90IHN1cHBvcnRlZCIpOwoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gPiBSVEVf RElNKHJzc19jb25maWctPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJy b3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jOjQzODAKZXJyb3I6IGRyaXZl cnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwg UlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFz aCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNz LT5rZXlfbGVuICE9IFJURV9ESU0ocnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vy cm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBh Y3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6 Mjc4MwplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYg PSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5 cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9 IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9p eGdiZV9yeHR4LmM6NTY4NAplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRf Zmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCSIgaXMgVG9lcGxpdHoi OwoJCQkJZ290byBleGl0X2FjdGlvbl9ub3Rfc3VwcG9ydGVkOwoJCQl9CgkJCXJ0ZV9lcnJubyA9 IDA7CgkJCWZpZWxkcyA9IG1seDRfY29udl9yc3NfdHlwZXMocHJpdiwgcnNzLT50eXBlcyk7CgkJ CWlmIChmaWVsZHMgPT0gKHVpbnQ2NF90KS0xICYmIHJ0ZV9lcnJubykgewoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzo3OTYKZXJyb3I6IGRyaXZlcnMv bmV0L21seDQvbWx4NF9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgkJCQkJCSAgICIgZnVuY3Rpb24gaXMgVG9lcGxpdHoiKTsKCQkJCXJldHVybiAtcnRlX2Vy cm5vOwoJCQl9CgkJCWlmIChyc3MtPnR5cGVzICYgTUxYNV9SU1NfSEZfTUFTSykgewoJCQkJcnRl X2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsCgkJCQkJCSAgIFJURV9GTE9XX0VSUk9SX1RZ UEVfQUNUSU9OLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zs b3cuYzo2NDQKZXJyb3I6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJfQoKCWlmICgocnNz LT50eXBlcyAmIH5TRkNfUlNTX09GRkxPQURTKSAhPSAwKQoJCXJldHVybiAtRUlOVkFMOwoKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOjEyNjkKZXJyb3I6 IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCXN0cnVjdCByc3Nfa2V5IHJzc19lbnRyeSA9IHsgLmhhc2hfZmllbGRzID0gMCwK CQkJCSAgICAgLmtleV9zaXplID0gMCB9OwoKCS8qIENoZWNrIHN1cHBvcnRlZCBoYXNoIGZ1bmN0 aW9ucyAqLwoJaWYgKHJzcy0+ZnVuYyAhPSBSVEVfRVRIX0hBU0hfRlVOQ1RJT05fREVGQVVMVCkK CQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1df RVJST1JfVFlQRV9VTlNQRUNJRklFRCwgTlVMTCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBm dW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKCgkvKiBHZXQgYSBuZXcgbWFwIGtleSBmb3Ig YSBuZXcgUlNTIHJ1bGUgKi8KCWVyciA9IGJwZl9yc3Nfa2V5KEtFWV9DTURfR0VULCAmZmxvdy0+ a2V5X2lkeCk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cu YzoyMDU1CmVycm9yOiBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkuZnVuYyA9IHNyYy5yc3MtPmZ1bmMsCgkJCQku dHlwZXMgPSBzcmMucnNzLT50eXBlcywKCQkJCS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwK CQkJCS5xdWV1ZV9udW0gPSBzcmMucnNzLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6MzMxCmVycm9yOiBsaWIvbGlicnRlX2V0aGVy L3J0ZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJy dGVfZXRoZXIvcnRlX2Zsb3cuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICovCnN0 cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzIHsKCWVudW0gcnRlX2V0aF9oYXNoX2Z1bmN0aW9uIGZ1 bmM7IC8qKjwgUlNTIGhhc2ggZnVuY3Rpb24gdG8gYXBwbHkuICovCgl1aW50NjRfdCB0eXBlczsg LyoqPCBTcGVjaWZpYyBSU1MgaGFzaCB0eXBlcyAoc2VlIEVUSF9SU1NfKikuICovCgl1aW50MzJf dCBrZXlfbGVuOyAvKio8IEhhc2gga2V5IGxlbmd0aCBpbiBieXRlcy4gKi8KCXVpbnQzMl90IHF1 ZXVlX251bTsgLyoqPCBOdW1iZXIgb2YgZW50cmllcyBpbiBAcCBxdWV1ZS4gKi8KCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaDoxMDQ2CmVycm9yOiBsaWIv bGlicnRlX2V0aGVyL3J0ZV9mbG93Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CipSZXBvOiBkcGRr LW5leHQtdmlydGlvCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYy4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCUFDVElPTl9DT1VOVCwKCUFDVElPTl9SU1Ms CglBQ1RJT05fUlNTX0ZVTkMsCglBQ1RJT05fUlNTX0ZVTkNfREVGQVVMVCwKCUFDVElPTl9SU1Nf RlVOQ19UT0VQTElUWiwKCUFDVElPTl9SU1NfRlVOQ19TSU1QTEVfWE9SLAoKZXJyb3I6IHBhdGNo IGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jOjE2NwplcnJvcjogYXBwL3Rlc3Qt cG1kL2NtZGxpbmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBh cHAvdGVzdC1wbWQvY29uZmlnLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJaWYg KGRzdC5yc3MpCgkJCSpkc3QucnNzID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkJ CS5mdW5jID0gc3JjLnJzcy0+ZnVuYywKCQkJCS50eXBlcyA9IHNyYy5yc3MtPnR5cGVzLAoJCQkJ LmtleV9sZW4gPSBzcmMucnNzLT5rZXlfbGVuLAoJCQkJLnF1ZXVlX251bSA9IHNyYy5yc3MtPnF1 ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9jb25maWcuYzoxMTAx CmVycm9yOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6Cm92ZXJsYXBzIGBgaGFzaC5mZGlyLmxvYGAuIFNpbmNlIGBBY3Rp b246IE1BUktgXyBzZXRzIHRoZSBgYGhhc2guZmRpci5oaWBgCmZpZWxkIG9ubHksIGJvdGggY2Fu IGJlIHJlcXVlc3RlZCBzaW11bHRhbmVvdXNseS4KCi4uIF90YWJsZV9ydGVfZmxvd19hY3Rpb25f cnNzOgoKLi4gdGFibGU6OiBSU1MKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvcHJv Z19ndWlkZS9ydGVfZmxvdy5yc3Q6MTMxMQplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0 ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRl cy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKICAtIGBgZnVuYyB7aGFzaCBmdW5jdGlvbn1gYDogUlNTIGhhc2ggZnVuY3Rpb24g dG8gYXBwbHksIGFsbG93ZWQgdG9rZW5zIGFyZQogICAgdGhlIHNhbWUgYXMgYHNldF9oYXNoX2ds b2JhbF9jb25maWdgXy4KCiAgLSBgYHR5cGVzIFt7UlNTIGhhc2ggdHlwZX0gWy4uLl1dIGVuZGBg OiBzcGVjaWZpYyBSU1MgaGFzaCB0eXBlcywgYWxsb3dlZAogICAgdG9rZW5zIGFyZSB0aGUgc2Ft ZSBhcyBgc2V0X2hhc2hfaW5wdXRfc2V0YF8sIGV4Y2VwdCB0aGF0IGFuIGVtcHR5IGxpc3QKICAg IGRvZXMgbm90IGRpc2FibGUgUlNTIGJ1dCBpbnN0ZWFkIHJlcXVlc3RzIHVuc3BlY2lmaWVkICJi ZXN0LWVmZm9ydCIKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBf dWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzQwMQplcnJvcjogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91 Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZM T1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5j dGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlf bGVuICE9IFJURV9ESU0ocnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3Nl dAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOjEzMTQKZXJy b3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5 cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9u dW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOjI5 MDYKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6IHBhdGNoIGRvZXMgbm90IGFw cGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLmZ1bmMgPSBpbi0+ZnVuYywKCQkudHlwZXMg PSBpbi0+dHlwZXMsCgkJLmtleV9sZW4gPSBpbi0+a2V5X2xlbiwKCQkucXVldWVfbnVtID0gaW4t PnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMjA0MAplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxv dy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiBydGVfZmxvd19lcnJv cl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0 LAoJCQkgIm5vbi1kZWZhdWx0IFJTUyBoYXNoIGZ1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCIp OwoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gPiBSVEVfRElNKHJzc19jb25maWct PmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJU RV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jOjQzODAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQw ZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2l4Z2JlL2l4Z2JlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1 cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1Jf VFlQRV9BQ1RJT04sIGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJU RV9ESU0ocnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJy b3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6Mjc4MwplcnJvcjogZHJp dmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9m bG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5cGVz LAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0s CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6NTY4 NAplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOiBwYXRjaCBkb2VzIG5vdCBh cHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCSIgaXMgVG9lcGxpdHoiOwoJCQkJZ290byBleGl0 X2FjdGlvbl9ub3Rfc3VwcG9ydGVkOwoJCQl9CgkJCXJ0ZV9lcnJubyA9IDA7CgkJCWZpZWxkcyA9 IG1seDRfY29udl9yc3NfdHlwZXMocHJpdiwgcnNzLT50eXBlcyk7CgkJCWlmIChmaWVsZHMgPT0g KHVpbnQ2NF90KS0xICYmIHJ0ZV9lcnJubykgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzo3OTYKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9m bG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21s eDUvbWx4NV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJCSAgICIg ZnVuY3Rpb24gaXMgVG9lcGxpdHoiKTsKCQkJCXJldHVybiAtcnRlX2Vycm5vOwoJCQl9CgkJCWlm IChyc3MtPnR5cGVzICYgTUxYNV9SU1NfSEZfTUFTSykgewoJCQkJcnRlX2Zsb3dfZXJyb3Jfc2V0 KGVycm9yLCBFSU5WQUwsCgkJCQkJCSAgIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLAoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzo2NDQKZXJyb3I6 IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJfQoKCWlmICgocnNzLT50eXBlcyAmIH5TRkNf UlNTX09GRkxPQURTKSAhPSAwKQoJCXJldHVybiAtRUlOVkFMOwoKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOjEyNjkKZXJyb3I6IGRyaXZlcnMvbmV0L3Nm Yy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC90YXAvdGFwX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVj dCByc3Nfa2V5IHJzc19lbnRyeSA9IHsgLmhhc2hfZmllbGRzID0gMCwKCQkJCSAgICAgLmtleV9z aXplID0gMCB9OwoKCS8qIENoZWNrIHN1cHBvcnRlZCBoYXNoIGZ1bmN0aW9ucyAqLwoJaWYgKHJz cy0+ZnVuYyAhPSBSVEVfRVRIX0hBU0hfRlVOQ1RJT05fREVGQVVMVCkKCQlyZXR1cm4gcnRlX2Zs b3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQ RUNJRklFRCwgTlVMTCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5v dCBzdXBwb3J0ZWQiKTsKCgkvKiBHZXQgYSBuZXcgbWFwIGtleSBmb3IgYSBuZXcgUlNTIHJ1bGUg Ki8KCWVyciA9IGJwZl9yc3Nfa2V5KEtFWV9DTURfR0VULCAmZmxvdy0+a2V5X2lkeCk7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYzoyMDU1CmVycm9yOiBk cml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0 aW9uX3Jzcyl7CgkJCQkuZnVuYyA9IHNyYy5yc3MtPmZ1bmMsCgkJCQkudHlwZXMgPSBzcmMucnNz LT50eXBlcywKCQkJCS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1ZV9udW0g PSBzcmMucnNzLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvbGlicnRlX2V0 aGVyL3J0ZV9mbG93LmM6MzMxCmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6IHBh dGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zs b3cuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICovCnN0cnVjdCBydGVfZmxvd19h Y3Rpb25fcnNzIHsKCWVudW0gcnRlX2V0aF9oYXNoX2Z1bmN0aW9uIGZ1bmM7IC8qKjwgUlNTIGhh c2ggZnVuY3Rpb24gdG8gYXBwbHkuICovCgl1aW50NjRfdCB0eXBlczsgLyoqPCBTcGVjaWZpYyBS U1MgaGFzaCB0eXBlcyAoc2VlIEVUSF9SU1NfKikuICovCgl1aW50MzJfdCBrZXlfbGVuOyAvKio8 IEhhc2gga2V5IGxlbmd0aCBpbiBieXRlcy4gKi8KCXVpbnQzMl90IHF1ZXVlX251bTsgLyoqPCBO dW1iZXIgb2YgZW50cmllcyBpbiBAcCBxdWV1ZS4gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxp Yi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaDoxMDQ2CmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0 ZV9mbG93Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CgpEUERLIFNUViB0ZWFt --===============8490178661375644714==--