ZGlmZiAtLWdpdCBhL3NyYy9ibG93ZmlzaC5jIGIvc3JjL2Jsb3dmaXNoLmMKaW5kZXggZDQ3ZjQ2My4uZjBiOTdiNyAxMDA2NDQKLS0tIGEvc3JjL2Jsb3dmaXNoLmMKKysrIGIvc3JjL2Jsb3dmaXNoLmMKQEAgLTQwMiwyMiArNDAyLDQwIEBACiB9CiAjZW5kaWYKIAorLyoKKyAqIEluaXRpYWxpemUgdGhlIGNyeXB0IG1ldGhvZCB1c2luZyAicGFzc3dvcmQiIGFzIHRoZSBlbmNyeXB0aW9uIGtleSBhbmQKKyAqICJzYWx0W3NhbHRfbGVuXSIgYXMgdGhlIHNhbHQuCisgKi8KICAgICB2b2lkCi1iZl9rZXlfaW5pdChwYXNzd29yZCkKK2JmX2tleV9pbml0KHBhc3N3b3JkLCBzYWx0LCBzYWx0X2xlbikKICAgICBjaGFyX3UgKnBhc3N3b3JkOworICAgIGNoYXJfdSAqc2FsdDsKKyAgICBpbnQgICAgc2FsdF9sZW47CiB7CiAgICAgaW50ICAgICAgaSwgaiwga2V5cG9zID0gMDsKICAgICBVSU5UMzJfVCB2YWwsIGRhdGFfbCwgZGF0YV9yOwogICAgIGNoYXJfdSAgICprZXk7CiAgICAgaW50ICAgICAga2V5bGVuOwogCi0gICAga2V5ID0gc2hhMjU2X2tleShwYXNzd29yZCk7Ci0gICAga2V5bGVuID0gKGludClTVFJMRU4oa2V5KTsKKyAgICAvKiBQcm9jZXNzIHRoZSBrZXkgMTAwMCB0aW1lcy4KKyAgICAgKiBTZWUgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9LZXlfc3RyZW5ndGhlbmluZy4gKi8KKyAgICBrZXkgPSBzaGEyNTZfa2V5KHBhc3N3b3JkLCBzYWx0LCBzYWx0X2xlbik7CisgICAgZm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAga2V5ID0gc2hhMjU2X2tleShrZXksIHNhbHQsIHNhbHRfbGVuKTsKKworICAgIC8qIENvbnZlcnQgdGhlIGtleSBmcm9tIDY0IGhleCBjaGFycyB0byAzMiBiaW5hcnkgY2hhcnMuICovCisgICAga2V5bGVuID0gKGludClTVFJMRU4oa2V5KSAvIDI7CiAgICAgaWYgKGtleWxlbiA9PSAwKQogICAgIHsKIAlFTVNHKF8oIkU4MzE6IGJmX2tleV9pbml0KCkgY2FsbGVkIHdpdGggZW1wdHkgcGFzc3dvcmQiKSk7CiAJcmV0dXJuOwogICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwga2V5bGVuOyBpKyspCisgICAgeworICAgICAgICBzc2NhbmYoKGNoYXIgKikma2V5W2kgKiAyXSwgIiUyeCIsICZqKTsKKyAgICAgICAga2V5W2ldID0gajsKKyAgICB9CisKICAgICBmb3IgKGkgPSAwOyBpIDwgMjU2OyArK2kpCiAgICAgewogCXNieFswXVtpXSA9IHNiaVswXVtpXTsKQEAgLTQ3NSw5ICs0OTMsMTAgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIGNoYXJfdSAgIHBhc3N3b3JkWzY0XTsKLSAgICBjaGFyX3UgICBwbGFpbnR4dFs4XTsKLSAgICBjaGFyX3UgICBjcnlwdHh0WzhdOwotICAgIGNoYXJfdSAgIGJhZGNyeXB0eHRbOF07IC8qIGNyeXB0eHQgd2hlbiBiaWcvbGl0dGxlIGVuZGlhbiBpcyB3cm9uZyAqLworICAgIGNoYXJfdSAgIHNhbHRbOV07CisgICAgY2hhcl91ICAgcGxhaW50eHRbOV07CisgICAgY2hhcl91ICAgY3J5cHR4dFs5XTsKKyAgICBjaGFyX3UgICBiYWRjcnlwdHh0WzldOyAvKiBjcnlwdHh0IHdoZW4gYmlnL2xpdHRsZSBlbmRpYW4gaXMgd3JvbmcgKi8KICAgICBVSU5UMzJfVCBrZXlzdW07CiB9IHN0cnVjdF9iZl90ZXN0X2RhdGE7CiAKQEAgLTQ4OCwxMCArNTA3LDExIEBACiBzdGF0aWMgc3RydWN0X2JmX3Rlc3RfZGF0YSBiZl90ZXN0X2RhdGFbXSA9IHsKICAgewogICAgICAgInBhc3N3b3JkIiwKKyAgICAgICJzYWx0IiwKICAgICAgICJwbGFpbnR4dCIsCi0gICAgICAiXHg1NVx4Y2FceDU2XHgzYVx4ZWZceGUxXHg5Y1x4NzMiLCAvKiBjcnlwdHh0ICovCi0gICAgICAiXHg0N1x4ZDlceDY3XHg0OVx4OTFceGM1XHg5YVx4OTUiLCAvKiBiYWRjcnlwdHh0ICovCi0gICAgICAweDVkZTAxYmRidSwgLyoga2V5c3VtICovCisgICAgICAiXHhhZFx4M2RceGZhXHg3Zlx4ZThceGVhXHg0MFx4ZjYiLCAvKiBjcnlwdHh0ICovCisgICAgICAiXHg3Mlx4NTBceDNiXHgzOFx4MTBceDYwXHgyMlx4YTciLCAvKiBiYWRjcnlwdHh0ICovCisgICAgICAweDU2NzAxYjVkdSAvKiBrZXlzdW0gKi8KICAgfSwKIH07CiAKQEAgLTUxOSw3ICs1MzksOSBAQAogICAgIGJuID0gQVJSQVlfTEVOR1RIKGJmX3Rlc3RfZGF0YSk7CiAgICAgZm9yIChpID0gMDsgaSA8IGJuOyBpKyspCiAgICAgewotCWJmX2tleV9pbml0KChjaGFyX3UgKikoYmZfdGVzdF9kYXRhW2ldLnBhc3N3b3JkKSk7CisJYmZfa2V5X2luaXQoKGNoYXJfdSAqKShiZl90ZXN0X2RhdGFbaV0ucGFzc3dvcmQpLAorICAgICAgICAgICAgICAgICAgICBiZl90ZXN0X2RhdGFbaV0uc2FsdCwKKwkJICAgIChpbnQpU1RSTEVOKGJmX3Rlc3RfZGF0YVtpXS5zYWx0KSk7CiAJaWYgKCFiZl9jaGVja190YWJsZXMocGF4LCBzYngsIGJmX3Rlc3RfZGF0YVtpXS5rZXlzdW0pKQogCSAgICBlcnIrKzsKIApkaWZmIC0tZ2l0IGEvc3JjL2ZpbGVpby5jIGIvc3JjL2ZpbGVpby5jCmluZGV4IGJjNjI5ZjMuLmJmYzExZDAgMTAwNjQ0Ci0tLSBhL3NyYy9maWxlaW8uYworKysgYi9zcmMvZmlsZWlvLmMKQEAgLTM3LDcgKzM3LDEyIEBACiBzdGF0aWMgY2hhcgkqY3J5cHRfbWFnaWNbXSA9IHsiVmltQ3J5cHR+MDEhIiwgIlZpbUNyeXB0fjAyISJ9Owogc3RhdGljIGNoYXIJY3J5cHRfbWFnaWNfaGVhZFtdID0gIlZpbUNyeXB0fiI7CiAjIGRlZmluZSBDUllQVF9NQUdJQ19MRU4JMTIJCS8qIG11c3QgYmUgbXVsdGlwbGUgb2YgNCEgKi8KKworLyogRm9yIGJsb3dmaXNoLCBhZnRlciB0aGUgbWFnaWMgaGVhZGVyLCB3ZSBzdG9yZSA4IGJ5dGVzIG9mIHNhbHQgYW5kIHRoZW4gOAorICogYnl0ZXMgb2Ygc2VlZCAoaW5pdGlhbGlzYXRpb24gdmVjdG9yKS4gKi8KK3N0YXRpYyBpbnQJY3J5cHRfc2FsdF9sZW5bXSA9IHswLCA4fTsKIHN0YXRpYyBpbnQJY3J5cHRfc2VlZF9sZW5bXSA9IHswLCA4fTsKKyNkZWZpbmUgQ1JZUFRfU0FMVF9MRU5fTUFYIDgKICNkZWZpbmUgQ1JZUFRfU0VFRF9MRU5fTUFYIDgKICNlbmRpZgogCkBAIC0xNDQxLDYgKzE0NDYsNyBAQAogCSAgICBpZiAoKGZpbGVzaXplID09IDAKICMgaWZkZWYgRkVBVF9DUllQVAogCQkgICB8fCAoZmlsZXNpemUgPT0gKENSWVBUX01BR0lDX0xFTgorCQkJCQkgICArIGNyeXB0X3NhbHRfbGVuW3VzZV9jcnlwdF9tZXRob2RdCiAJCQkJCSAgICsgY3J5cHRfc2VlZF9sZW5bdXNlX2NyeXB0X21ldGhvZF0pCiAJCQkJCQkJICAmJiBjcnlwdGtleSAhPSBOVUxMKQogIyBlbmRpZgpAQCAtMjQ4OCw3ICsyNDk0LDkgQEAKICNpZmRlZiBGRUFUX0NSWVBUCiAJICAgIGlmIChjcnlwdGtleSAhPSBOVUxMKQogCQltc2dfYWRkX2xpbmVzKGMsIChsb25nKWxpbmVjbnQsIGZpbGVzaXplCi0JCQktIENSWVBUX01BR0lDX0xFTiAtIGNyeXB0X3NlZWRfbGVuW3VzZV9jcnlwdF9tZXRob2RdKTsKKwkJCS0gQ1JZUFRfTUFHSUNfTEVOCisJCQktIGNyeXB0X3NhbHRfbGVuW3VzZV9jcnlwdF9tZXRob2RdCisJCQktIGNyeXB0X3NlZWRfbGVuW3VzZV9jcnlwdF9tZXRob2RdKTsKIAkgICAgZWxzZQogI2VuZGlmCiAJCW1zZ19hZGRfbGluZXMoYywgKGxvbmcpbGluZWNudCwgZmlsZXNpemUpOwpAQCAtMjg0MSw3ICsyODQ5LDcgQEAKIAogICAgIGZvciAoaSA9IDA7IGkgPCAoaW50KShzaXplb2YoY3J5cHRfbWFnaWMpIC8gc2l6ZW9mKGNyeXB0X21hZ2ljWzBdKSk7IGkrKykKICAgICB7Ci0JaWYgKGxlbiA8IChDUllQVF9NQUdJQ19MRU4gKyBjcnlwdF9zZWVkX2xlbltpXSkpCisJaWYgKGxlbiA8IChDUllQVF9NQUdJQ19MRU4gKyBjcnlwdF9zYWx0X2xlbltpXSArIGNyeXB0X3NlZWRfbGVuW2ldKSkKIAkgICAgY29udGludWU7CiAJaWYgKG1lbWNtcChwdHIsIGNyeXB0X21hZ2ljW2ldLCBDUllQVF9NQUdJQ19MRU4pID09IDApCiAJICAgIHJldHVybiBpOwpAQCAtMjkwMywxOSArMjkxMSwyMCBAQAogCWlmIChjcnlwdGtleSAhPSBOVUxMKQogCXsKIAkgICAgaW50IHNlZWRfbGVuID0gY3J5cHRfc2VlZF9sZW5bbWV0aG9kXTsKKwkgICAgaW50IHNhbHRfbGVuID0gY3J5cHRfc2FsdF9sZW5bbWV0aG9kXTsKIAogCSAgICBpZiAobWV0aG9kID09IDApCiAJCWNyeXB0X2luaXRfa2V5cyhjcnlwdGtleSk7CiAJICAgIGVsc2UKIAkgICAgewotCQliZl9rZXlfaW5pdChjcnlwdGtleSk7Ci0JCWJmX29mYl9pbml0KHB0ciArIENSWVBUX01BR0lDX0xFTiwgc2VlZF9sZW4pOworCQliZl9rZXlfaW5pdChjcnlwdGtleSwgcHRyICsgQ1JZUFRfTUFHSUNfTEVOLCBzYWx0X2xlbik7CisJCWJmX29mYl9pbml0KHB0ciArIENSWVBUX01BR0lDX0xFTiArIHNhbHRfbGVuLCBzZWVkX2xlbik7CiAJICAgIH0KIAogCSAgICAvKiBSZW1vdmUgbWFnaWMgbnVtYmVyIGZyb20gdGhlIHRleHQgKi8KLQkgICAgKmZpbGVzaXplcCArPSBDUllQVF9NQUdJQ19MRU4gKyBzZWVkX2xlbjsKLQkgICAgKnNpemVwIC09IENSWVBUX01BR0lDX0xFTiArIHNlZWRfbGVuOwotCSAgICBtY2hfbWVtbW92ZShwdHIsIHB0ciArIENSWVBUX01BR0lDX0xFTiArIHNlZWRfbGVuLCAoc2l6ZV90KSpzaXplcCk7CisJICAgICpmaWxlc2l6ZXAgKz0gQ1JZUFRfTUFHSUNfTEVOICsgc2FsdF9sZW4gKyBzZWVkX2xlbjsKKwkgICAgKnNpemVwIC09IENSWVBUX01BR0lDX0xFTiArIHNhbHRfbGVuICsgc2VlZF9sZW47CisJICAgIG1jaF9tZW1tb3ZlKHB0ciwgcHRyICsgQ1JZUFRfTUFHSUNfTEVOICsgc2FsdF9sZW4gKyBzZWVkX2xlbiwgKHNpemVfdCkqc2l6ZXApOwogCX0KICAgICB9CiAgICAgLyogV2hlbiBzdGFydGluZyB0byBlZGl0IGEgbmV3IGZpbGUgd2hpY2ggZG9lcyBub3QgaGF2ZSBlbmNyeXB0aW9uLCBjbGVhcgpAQCAtMjkzNSwxMiArMjk0NCwxNSBAQAogICAgIEZJTEUJKmZwOwogewogICAgIGludAkJbWV0aG9kOwotICAgIGNoYXJfdQlidWZmZXJbQ1JZUFRfTUFHSUNfTEVOICsgQ1JZUFRfU0VFRF9MRU5fTUFYICsgMl07CisgICAgY2hhcl91CWJ1ZmZlcltDUllQVF9NQUdJQ19MRU4gKyBDUllQVF9TQUxUX0xFTl9NQVgKKwkJCQkJCSAgICArIENSWVBUX1NFRURfTEVOX01BWCArIDJdOwogCiAgICAgaWYgKGZyZWFkKGJ1ZmZlciwgQ1JZUFRfTUFHSUNfTEVOLCAxLCBmcCkgIT0gMSkKIAlyZXR1cm4gRkFJTDsKICAgICBtZXRob2QgPSBnZXRfY3J5cHRfbWV0aG9kKChjaGFyICopYnVmZmVyLAotCQkJCQlDUllQVF9NQUdJQ19MRU4gKyBDUllQVF9TRUVEX0xFTl9NQVgpOworCQkJCQlDUllQVF9NQUdJQ19MRU4gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENSWVBUX1NFRURfTEVOX01BWCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1JZUFRfU0FMVF9MRU5fTUFYKTsKICAgICBpZiAobWV0aG9kIDwgMCB8fCBtZXRob2QgIT0gY3VyYnVmLT5iX3BfY20pCiAJcmV0dXJuIEZBSUw7CiAKQEAgLTI5NDgsMTIgKzI5NjAsMTMgQEAKIAljcnlwdF9pbml0X2tleXMoY3VyYnVmLT5iX3Bfa2V5KTsKICAgICBlbHNlCiAgICAgeworCWludCBzYWx0X2xlbiA9IGNyeXB0X3NhbHRfbGVuW21ldGhvZF07CiAJaW50IHNlZWRfbGVuID0gY3J5cHRfc2VlZF9sZW5bbWV0aG9kXTsKIAotCWlmIChmcmVhZChidWZmZXIsIHNlZWRfbGVuLCAxLCBmcCkgIT0gMSkKKwlpZiAoZnJlYWQoYnVmZmVyLCBzYWx0X2xlbiArIHNlZWRfbGVuLCAxLCBmcCkgIT0gMSkKIAkgICAgcmV0dXJuIEZBSUw7Ci0JYmZfa2V5X2luaXQoY3VyYnVmLT5iX3Bfa2V5KTsKLQliZl9vZmJfaW5pdChidWZmZXIsIHNlZWRfbGVuKTsKKwliZl9rZXlfaW5pdChjdXJidWYtPmJfcF9rZXksIGJ1ZmZlciwgc2FsdF9sZW4pOworCWJmX29mYl9pbml0KGJ1ZmZlciArIHNhbHRfbGVuLCBzZWVkX2xlbik7CiAgICAgfQogICAgIHJldHVybiBPSzsKIH0KQEAgLTI5NjksOCArMjk4MiwxMiBAQAogewogICAgIGNoYXJfdSAgKmhlYWRlcjsKICAgICBpbnQJICAgIHNlZWRfbGVuID0gY3J5cHRfc2VlZF9sZW5bYnVmLT5iX3BfY21dOworICAgIGludCAgICAgc2FsdF9sZW4gPSBjcnlwdF9zYWx0X2xlbltidWYtPmJfcF9jbV07CisgICAgY2hhcl91ICAqc2FsdDsKKyAgICBjaGFyX3UgICpzZWVkOwogCi0gICAgaGVhZGVyID0gYWxsb2NfY2xlYXIoQ1JZUFRfTUFHSUNfTEVOICsgQ1JZUFRfU0VFRF9MRU5fTUFYICsgMik7CisgICAgaGVhZGVyID0gYWxsb2NfY2xlYXIoQ1JZUFRfTUFHSUNfTEVOICsgQ1JZUFRfU0FMVF9MRU5fTUFYCisJCQkJCQkgICAgKyBDUllQVF9TRUVEX0xFTl9NQVggKyAyKTsKICAgICBpZiAoaGVhZGVyICE9IE5VTEwpCiAgICAgewogCXVzZV9jcnlwdF9tZXRob2QgPSBidWYtPmJfcF9jbTsgIC8qIHNlbGVjdCBwa3ppcCBvciBibG93ZmlzaCAqLwpAQCAtMjk4MCwyNyArMjk5NywzMiBAQAogCSAgICBjcnlwdF9pbml0X2tleXMoYnVmLT5iX3Bfa2V5KTsKIAllbHNlCiAJewotCSAgICAvKiBVc2luZyBibG93ZmlzaCwgYWRkIHNlZWQuICovCi0JICAgIHNoYTJfc2VlZChoZWFkZXIgKyBDUllQVF9NQUdJQ19MRU4sIHNlZWRfbGVuKTsgLyogY3JlYXRlIGl2ICovCi0JICAgIGJmX29mYl9pbml0KGhlYWRlciArIENSWVBUX01BR0lDX0xFTiwgc2VlZF9sZW4pOwotCSAgICBiZl9rZXlfaW5pdChidWYtPmJfcF9rZXkpOworCSAgICAvKiBVc2luZyBibG93ZmlzaCwgYWRkIHNhbHQgYW5kIHNlZWQuICovCisJICAgIHNhbHQgPSBoZWFkZXIgKyBDUllQVF9NQUdJQ19MRU47CisJICAgIHNlZWQgPSBzYWx0ICsgc2FsdF9sZW47CisJICAgIHNoYTJfc2VlZChzYWx0LCBzYWx0X2xlbiwgc2VlZCwgc2VlZF9sZW4pOworCSAgICBiZl9rZXlfaW5pdChidWYtPmJfcF9rZXksIHNhbHQsIHNhbHRfbGVuKTsKKwkgICAgYmZfb2ZiX2luaXQoc2VlZCwgc2VlZF9sZW4pOwogCX0KICAgICB9Ci0gICAgKmxlbnAgPSBDUllQVF9NQUdJQ19MRU4gKyBzZWVkX2xlbjsKKyAgICAqbGVucCA9IENSWVBUX01BR0lDX0xFTiArIHNhbHRfbGVuICsgc2VlZF9sZW47CiAgICAgcmV0dXJuIGhlYWRlcjsKIH0KIAorI2VuZGlmICAvKiBGRUFUX0NSWVBUICovCisKIC8qCiAgKiBMaWtlIGZ3cml0ZSgpIGJ1dCBjcnlwdCB0aGUgYnl0ZXMgd2hlbiAna2V5JyBpcyBzZXQuCiAgKiBSZXR1cm5zIDEgaWYgc3VjY2Vzc2Z1bC4KICAqLwogICAgIHNpemVfdAogZndyaXRlX2NyeXB0KGJ1ZiwgcHRyLCBsZW4sIGZwKQotICAgIGJ1Zl9UCSpidWY7CisgICAgYnVmX1QJKmJ1ZiBVTlVTRUQ7CiAgICAgY2hhcl91CSpwdHI7CiAgICAgc2l6ZV90CWxlbjsKICAgICBGSUxFCSpmcDsKIHsKKyNpZmRlZiBGRUFUX0NSWVBUCiAgICAgY2hhcl91ICAqY29weTsKICAgICBjaGFyX3UgIHNtYWxsX2J1ZlsxMDBdOwogICAgIHNpemVfdCAgaTsKQEAgLTMwMjAsNiArMzA0Miw5IEBACiAgICAgaWYgKGNvcHkgIT0gc21hbGxfYnVmKQogCXZpbV9mcmVlKGNvcHkpOwogICAgIHJldHVybiBpOworI2Vsc2UKKyAgICByZXR1cm4gZndyaXRlKHB0ciwgbGVuLCAoc2l6ZV90KTEsIGZwKTsKKyNlbmRpZgogfQogCiAvKgpAQCAtMzAyOCwxOSArMzA1MywyMCBAQAogICovCiAgICAgY2hhcl91ICoKIHJlYWRfc3RyaW5nX2RlY3J5cHQoYnVmLCBmZCwgbGVuKQotICAgIGJ1Zl9UICAgKmJ1ZjsKKyAgICBidWZfVCAgICpidWYgVU5VU0VEOwogICAgIEZJTEUgICAgKmZkOwogICAgIGludAkgICAgbGVuOwogewogICAgIGNoYXJfdSAgKnB0cjsKIAogICAgIHB0ciA9IHJlYWRfc3RyaW5nKGZkLCBsZW4pOworI2lmZGVmIEZFQVRfQ1JZUFQKICAgICBpZiAocHRyICE9IE5VTEwgfHwgKmJ1Zi0+Yl9wX2tleSAhPSBOVUwpCiAJY3J5cHRfZGVjb2RlKHB0ciwgbGVuKTsKKyNlbmRpZgogICAgIHJldHVybiBwdHI7CiB9CiAKLSNlbmRpZiAgLyogRkVBVF9DUllQVCAqLwogCiAjaWZkZWYgVU5JWAogICAgIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9zcmMvcG8vZW8ucG8gYi9zcmMvcG8vZW8ucG8KaW5kZXggN2VhMmU2OS4uMjM1NDNlYiAxMDA2NDQKLS0tIGEvc3JjL3BvL2VvLnBvCisrKyBiL3NyYy9wby9lby5wbwpAQCAtMjMsMTQgKzIzLDI5IEBACiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IFZpbShFc3BlcmFudG8pXG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEwLTAyLTE2IDIxOjU0KzAxMDBcbiIKLSJQTy1SZXZpc2lvbi1EYXRlOiAyMDEwLTAyLTE2IDIxOjU2KzAxMDBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wNi0xMiAwNzoxNSswMjAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAxMC0wNi0xMiAwODoyNCswMjAwXG4iCiAiTGFzdC1UcmFuc2xhdG9yOiBEb21pbmlxdWUgUEVMTMOJIDxkb21pbmlxdWUucGVsbGVAZ21haWwuY29tPlxuIgogIkxhbmd1YWdlLVRlYW06IFxuIgogIk1JTUUtVmVyc2lvbjogMS4wXG4iCiAiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04XG4iCiAiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgogCittc2dpZCAiRTgzMTogYmZfa2V5X2luaXQoKSBjYWxsZWQgd2l0aCBlbXB0eSBwYXNzd29yZCIKK21zZ3N0ciAiRTgzMTogYmZfa2V5X2luaXQoKSBhbHZva2l0YSBrdW4gbWFscGxlbmEgcGFzdm9ydG8iCisKK21zZ2lkICJFODIwOiBzaXplb2YodWludDMyX3QpICE9IDQiCittc2dzdHIgIkU4MjA6IHNpemVvZih1aW50MzJfdCkgIT0gNCIKKworbXNnaWQgIkU4MTc6IEJsb3dmaXNoIGJpZy9saXR0bGUgZW5kaWFuIHVzZSB3cm9uZyIKK21zZ3N0ciAiRTgxNzogTWlzdXpvIGRlIHBlemtvbWVuY2EvcGV6ZmluYSBlbiBibG93ZmlzaCIKKworbXNnaWQgIkU4MTg6IHNoYTI1NiB0ZXN0IGZhaWxlZCIKK21zZ3N0ciAiRTgxODogVGVzdG8gZGUgc2hhMjU2IGZpYXNraXMiCisKK21zZ2lkICJFODE5OiBCbG93ZmlzaCB0ZXN0IGZhaWxlZCIKK21zZ3N0ciAiRTgxOTogVGVzdG8gZGUgYmxvd2Zpc2ggZmlhc2tpcyIKKwogbXNnaWQgIkU4MjogQ2Fubm90IGFsbG9jYXRlIGFueSBidWZmZXIsIGV4aXRpbmcuLi4iCiBtc2dzdHIgIkU4MjogTmUgZWJsYXMgZGlzcG9uaWdpIGl1biBham4gYnVmcm9uLCBudW4gZWxpcmFzLi4uIgogCkBAIC03NDksNyArNzY0LDYgQEAKIG1zZ2lkICJFMTMzOiA6cmV0dXJuIG5vdCBpbnNpZGUgYSBmdW5jdGlvbiIKIG1zZ3N0ciAiRTEzMzogXCI6cmV0dXJuXCIgZWtzdGVyIGZ1bmtjaW8iCiAKLSMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgogIiMgZ2xvYmFsIHZhcmlhYmxlczpcbiIKQEAgLTEwMzksNyArMTA1Myw3IEBACiBtc2dzdHIgIiAgKE5FVFJPVklUQSkiCiAKIG1zZ2lkICIgKG5vdCBzdXBwb3J0ZWQpIgotbXNnc3RyICIgKG5lc3VidGVuaXRhKSIKK21zZ3N0ciAiIChuZXN1YnRlbmF0YSkiCiAKIG1zZ2lkICJbRGVsZXRlZF0iCiBtc2dzdHIgIltGb3J2acWdaXRhXSIKQEAgLTEwNzAsOCArMTA4NCw4IEBACiBtc2dpZCAiJTNkICAlcyAlcyAgbGluZSAlbGQiCiBtc2dzdHIgIiUzZCAgJXMgJXMgIGxpbmlvICVsZCIKIAotbXNnaWQgIkU3NTA6IEZpcnN0IHVzZSA6cHJvZmlsZSBzdGFydCA8Zm5hbWU+IgotbXNnc3RyICJFNzUwOiBVenUgdW51ZSBcIjpwcm9maWxlIHN0YXJ0IDxkb3NpZXJub21vPlwiIgorbXNnaWQgIkU3NTA6IEZpcnN0IHVzZSBcIjpwcm9maWxlIHN0YXJ0IHtmbmFtZX1cIiIKK21zZ3N0ciAiRTc1MDogVXp1IHVudWUgXCI6cHJvZmlsZSBzdGFydCB7ZG9zaWVybm9tb31cIiIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJTYXZlIGNoYW5nZXMgdG8gXCIlc1wiPyIKQEAgLTEwOTcsMTAgKzExMTEsNiBAQAogbXNnc3RyICJFMTY1OiBOZSBlYmxhcyBpcmkgcHJldGVyIGxhIGxhc3RhbiBkb3NpZXJvbiIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJFNjY2OiBjb21waWxlciBub3Qgc3VwcG9ydGVkOiAlcyIKLW1zZ3N0ciAiRTY2Njoga29tcGlsaWxvIG5lc3VidGVuaXRhOiAlcyIKLQotIywgYy1mb3JtYXQKIG1zZ2lkICJTZWFyY2hpbmcgZm9yIFwiJXNcIiBpbiBcIiVzXCIiCiBtc2dzdHIgIlNlcsSJYWRvIGRlIFwiJXNcIiBlbiBcIiVzXCIiCiAKQEAgLTEyNzksNiArMTI4OSw5IEBACiBtc2dpZCAiRTQ2NzogQ3VzdG9tIGNvbXBsZXRpb24gcmVxdWlyZXMgYSBmdW5jdGlvbiBhcmd1bWVudCIKIG1zZ3N0ciAiRTQ2NzogVXp1bGEga29tcGxldGlnbyBiZXpvbmFzIGZ1bmtjaWFuIGFyZ3VtZW50b24iCiAKK21zZ2lkICJ1bmtub3duIgorbXNnc3RyICJuZWtvbmF0YSIKKwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMTg1OiBDYW5ub3QgZmluZCBjb2xvciBzY2hlbWUgJXMiCiBtc2dzdHIgIkUxODU6IE5lIGVibGFzIHRyb3ZpIGFnb3JkYXJvbiBkZSBrb2xvcm9qICVzIgpAQCAtMTY0NSw2ICsxNjU4LDkgQEAKIG1zZ2lkICJjYW4ndCByZWFkIG91dHB1dCBvZiAnY2hhcmNvbnZlcnQnIgogbXNnc3RyICJuZSBlYmxhcyBsZWdpIGxhIGVsaWdvbiBkZSAnY2hhcmNvbnZlcnQnIgogCittc2dpZCAiRTgyMTogRmlsZSBpcyBlbmNyeXB0ZWQgd2l0aCB1bmtub3duIG1ldGhvZCIKK21zZ3N0ciAiRTgyMTogRG9zaWVybyBlc3RhcyDEiWlmcmF0YSBwZXIgbmVrb25hdGEgbWV0b2RvIgorCiBtc2dpZCAiRTY3NjogTm8gbWF0Y2hpbmcgYXV0b2NvbW1hbmRzIGZvciBhY3dyaXRlIGJ1ZmZlciIKIG1zZ3N0ciAiRTY3NjogTmVuaXUga29uZ3J1YSBhxa10b2tvbWFuZG8gcG9yIGxhIGJ1ZnJvIGFjd3JpdGUiCiAKQEAgLTE3OTMsNiArMTgwOSwxMCBAQAogbXNnc3RyICIxIHNpZ25vIgogCiAjLCBjLWZvcm1hdAorbXNnaWQgIiVsbGQgY2hhcmFjdGVycyIKK21zZ3N0ciAiJWxsZCBzaWdub2oiCisKKyMsIGMtZm9ybWF0CiBtc2dpZCAiJWxkIGNoYXJhY3RlcnMiCiBtc2dzdHIgIiVsZCBzaWdub2oiCiAKQEAgLTIxNjksNyArMjE4OSw3IEBACiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTI0MzogQXJndW1lbnQgbm90IHN1cHBvcnRlZDogXCItJXNcIjsgVXNlIHRoZSBPTEUgdmVyc2lvbi4iCi1tc2dzdHIgIkUyNDM6IE5lIHN1YnRlbml0YSBhcmd1bWVudG86IFwiLSVzXCI7IFV6dSBsYSB2ZXJzaW9uIE9MRS4iCittc2dzdHIgIkUyNDM6IE5lIHN1YnRlbmF0YSBhcmd1bWVudG86IFwiLSVzXCI7IFV6dSBsYSB2ZXJzaW9uIE9MRS4iCiAKIG1zZ2lkICJFNjcyOiBVbmFibGUgdG8gb3BlbiB3aW5kb3cgaW5zaWRlIE1ESSBhcHBsaWNhdGlvbiIKIG1zZ3N0ciAiRTY3MjogTmUgZWJsYXMgbWFsZmVybWkgZmVuZXN0cm9uIGludGVybmUgZGUgYXBsaWthxLVvIE1ESSIKQEAgLTIzMjEsNyArMjM0MSw3IEBACiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTYxOTogZmlsZSBcIiVzXCIgaXMgbm90IGEgc3VwcG9ydGVkIFBvc3RTY3JpcHQgcmVzb3VyY2UgZmlsZSIKLW1zZ3N0ciAiRTYxOTogXCIlc1wiIG5lIGVzdGFzIHN1YnRlbml0YSBkb3NpZXJvIGRlIFBvc3RTa3JpcHRhIHJpbWVkbyIKK21zZ3N0ciAiRTYxOTogXCIlc1wiIG5lIGVzdGFzIHN1YnRlbmF0YSBkb3NpZXJvIGRlIFBvc3RTa3JpcHRhIHJpbWVkbyIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFNjIxOiBcIiVzXCIgcmVzb3VyY2UgZmlsZSBoYXMgd3JvbmcgdmVyc2lvbiIKQEAgLTI0NDIsMTMgKzI0NjIsMTMgQEAKIG1zZ3N0ciAiRTU2NzogbmVuaXUga29uZWt0byBhbCBjc2NvcGUiCiAKICMsIGMtZm9ybWF0Ci1tc2dpZCAiRTI1OTogbm8gbWF0Y2hlcyBmb3VuZCBmb3IgY3Njb3BlIHF1ZXJ5ICVzIG9mICVzIgotbXNnc3RyICJFMjU5OiBuZW5pdSBrb25ncnVvIHRyb3ZpdGEgcG9yIHNlcsSJbyBwZXIgY3Njb3BlICVzIGRlICVzIgotCi0jLCBjLWZvcm1hdAogbXNnaWQgIkU0Njk6IGludmFsaWQgY3Njb3BlcXVpY2tmaXggZmxhZyAlYyBmb3IgJWMiCiBtc2dzdHIgIkU0Njk6IG5ldmFsaWRhIGZsYWdvIGNzY29wZXF1aWNrZml4ICVjIGRlICVjIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIkUyNTk6IG5vIG1hdGNoZXMgZm91bmQgZm9yIGNzY29wZSBxdWVyeSAlcyBvZiAlcyIKK21zZ3N0ciAiRTI1OTogbmVuaXUga29uZ3J1byB0cm92aXRhIHBvciBzZXLEiW8gcGVyIGNzY29wZSAlcyBkZSAlcyIKKwogbXNnaWQgImNzY29wZSBjb21tYW5kczpcbiIKIG1zZ3N0ciAia29tYW5kb2ogZGUgY3Njb3BlOlxuIgogCkBAIC0yODgwLDYgKzI5MDAsOSBAQAogbXNnaWQgIiVkIGZpbGVzIHRvIGVkaXRcbiIKIG1zZ3N0ciAiJWQgcmVkYWt0ZW5kYWogZG9zaWVyb2pcbiIKIAorbXNnaWQgIm5ldGJlYW5zIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGlzIEdVSVxuIgorbXNnc3RyICJuZXRiZWFucyBuZSBlc3RhcyBzdWJ0ZW5hdGEga3VuIHRpdSBncmFmaWthIGludGVyZmFjb1xuIgorCiBtc2dpZCAiVGhpcyBWaW0gd2FzIG5vdCBjb21waWxlZCB3aXRoIHRoZSBkaWZmIGZlYXR1cmUuIgogbXNnc3RyICJUaXUgVmltIG5lIGVzdGlzIGtvbXBpbGl0YSBrdW4gbGEga29tcGFyYSBlYmxvLiIKIApAQCAtMjk3MSw3ICsyOTk0LDcgQEAKIG1zZ3N0ciAiLS1cdFx0XHROdXIgZG9zaWVybm9tb2ogbWFsYW50YcWtIHRpbyIKIAogbXNnaWQgIi0tbGl0ZXJhbFx0XHREb24ndCBleHBhbmQgd2lsZGNhcmRzIgotbXNnc3RyICItLWxpdGVyYWxcdFx0TmUgZWtzcGFuc2lpIMS1b2tlcm9qbiIKK21zZ3N0ciAiLS1saXRlcmFsXHRcdE5lIG1hbHZvbHZpIMS1b2tlcm9qbiIKIAogbXNnaWQgIi1yZWdpc3Rlclx0XHRSZWdpc3RlciB0aGlzIGd2aW0gZm9yIE9MRSIKIG1zZ3N0ciAiLXJlZ2lzdGVyXHRcdFJlZ2lzdHJpIHRpdW4gZ3ZpbSBhbCBPTEUiCkBAIC0zMzk3LDcgKzM0MjAsNyBAQAogbXNnc3RyICJFMjk2OiBFcmFybyBkZSBlbnBvemljaWlnbyBkdW0gc2tyaWJvIGRlIHBlcm11dG9kb3NpZXJvIC5zd3AiCiAKIG1zZ2lkICJFMjk3OiBXcml0ZSBlcnJvciBpbiBzd2FwIGZpbGUiCi1tc2dzdHIgIkUyOTc6IEVyYXJvIGRlIHNrcmlibyBlbiBwZXJtdXRvZG9zaWVybyAuc3dwIgorbXNnc3RyICJFMjk3OiBTa3JpYmVyYXJvIGVuIHBlcm11dG9kb3NpZXJvIC5zd3AiCiAKIG1zZ2lkICJFMzAwOiBTd2FwIGZpbGUgYWxyZWFkeSBleGlzdHMgKHN5bWxpbmsgYXR0YWNrPykiCiBtc2dzdHIgIkUzMDA6IFBlcm11dG9kb3NpZXJvIC5zd3AgamFtIGVremlzdGFzICjEiXUgYXRha28gcGVyIHNpbWJvbGEgbGlnaWxvPykiCkBAIC0zNTM3LDE0ICszNTYwLDIwIEBACiAiXG4iCiAiKEluZGFzIGtvbnNlcnZpIHRpdW4gZG9zaWVyb24gcGVyIGFsaWEgbm9tb1xuIgogCi1tc2dpZCAiYW5kIHJ1biBkaWZmIHdpdGggdGhlIG9yaWdpbmFsIGZpbGUgdG8gY2hlY2sgZm9yIGNoYW5nZXMpXG4iCi1tc2dzdHIgImthaiBsYW7EiWkgZGlmZiBrdW4gbGEgb3JpZ2luYWxhIGRvc2llcm8gcG9yIGtvbnRyb2xpIGxhIMWdYW7EnW9qbilcbiIKK21zZ2lkICJhbmQgcnVuIGRpZmYgd2l0aCB0aGUgb3JpZ2luYWwgZmlsZSB0byBjaGVjayBmb3IgY2hhbmdlcykiCittc2dzdHIgImthaiBsYW7EiWkgZGlmZiBrdW4gbGEgb3JpZ2luYWxhIGRvc2llcm8gcG9yIGtvbnRyb2xpIGxhIMWdYW7EnW9qbikiCisKK21zZ2lkICJSZWNvdmVyeSBjb21wbGV0ZWQuIEJ1ZmZlciBjb250ZW50cyBlcXVhbHMgZmlsZSBjb250ZW50cy4iCittc2dzdHIgIiIKKyJSZXN0YcWtcm8gZmluacSdaXMuIExhIGVuaGF2byBkZSBsYSBidWZybyBzYW1hcyBrdW4gbGEgZW5oYXZvIGRlIGxhIGRvc2llcm8uIgogCiBtc2dpZCAiIgotIkRlbGV0ZSB0aGUgLnN3cCBmaWxlIGFmdGVyd2FyZHMuXG4iCisiXG4iCisiWW91IG1heSB3YW50IHRvIGRlbGV0ZSB0aGUgLnN3cCBmaWxlIG5vdy5cbiIKICJcbiIKIG1zZ3N0ciAiIgotIlBvc3RlIGZvcnZpxZ1pIGxhIHBlcm11dG9kb3NpZXJvbiAuc3dwLlxuIgorIlxuIgorIkxhIGRvc2llcm8gLnN3cCBudW4gZm9ydmnFnWluZGFzLlxuIgogIlxuIgogCiAjLiB1c2UgbXNnKCkgdG8gc3RhcnQgdGhlIHNjcm9sbGluZyBwcm9wZXJseQpAQCAtNDA3NCw2ICs0MTAzLDkgQEAKIG1zZ2lkICJFNjU4OiBOZXRCZWFucyBjb25uZWN0aW9uIGxvc3QgZm9yIGJ1ZmZlciAlbGQiCiBtc2dzdHIgIkU2NTg6IEtvbmVrdG8gZGUgTmV0QmVhbnMgcGVyZGl0YSBwb3IgYnVmcm8gJWxkIgogCittc2dpZCAiRTUxMTogbmV0YmVhbnMgYWxyZWFkeSBjb25uZWN0ZWQiCittc2dzdHIgIkU1MTE6IG5lYmVhbnMgamFtIGtvbmVrdGF0YSIKKwogbXNnaWQgIkU1MDU6ICIKIG1zZ3N0ciAiRTUwNTogIgogCkBAIC00MjM2LDcgKzQyNjgsNyBAQAogbXNnc3RyICJFNTE4OiBOZWtvbmF0YSBvcGNpbyIKIAogbXNnaWQgIkU1MTk6IE9wdGlvbiBub3Qgc3VwcG9ydGVkIgotbXNnc3RyICJFNTE5OiBPcGNpbyBuZSBzdWJ0ZW5pdGEiCittc2dzdHIgIkU1MTk6IE9wY2lvIG5lIHN1YnRlbmF0YSIKIAogbXNnaWQgIkU1MjA6IE5vdCBhbGxvd2VkIGluIGEgbW9kZWxpbmUiCiBtc2dzdHIgIkU1MjA6IE5lIHBlcm1lc2l0YSBlbiByZcSdaW1saW5pbyIKQEAgLTQzMTIsNyArNDM0NCw3IEBACiBtc2dzdHIgIkU1Mzc6ICdjb21tZW50c3RyaW5nJyBkZXZhcyBlc3RpIG1hbHBsZW5hIGHFrSBlbmhhdmkgJXMiCiAKIG1zZ2lkICJFNTM4OiBObyBtb3VzZSBzdXBwb3J0IgotbXNnc3RyICJFNTM4OiBOZW5pdSBtdXNvIHN1YnRlbml0YSIKK21zZ3N0ciAiRTUzODogTmVuaXUgbXVzbyBzdWJ0ZW5hdGEiCiAKIG1zZ2lkICJFNTQwOiBVbmNsb3NlZCBleHByZXNzaW9uIHNlcXVlbmNlIgogbXNnc3RyICJFNTQwOiAnfScgbWFua2FzIgpAQCAtNDYzNyw3ICs0NjY5LDcgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzc1OiBVbnN1cHBvcnRlZCAlJSVjIGluIGZvcm1hdCBzdHJpbmciCi1tc2dzdHIgIkUzNzU6IE5lc3VidGVuaXRhICUlJWMgZW4gZm9ybWF0YSDEiWVubyIKK21zZ3N0ciAiRTM3NTogTmVzdWJ0ZW5hdGEgJSUlYyBlbiBmb3JtYXRhIMSJZW5vIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzY6IEludmFsaWQgJSUlYyBpbiBmb3JtYXQgc3RyaW5nIHByZWZpeCIKQEAgLTQ5NDksMTEgKzQ5ODEsMTEgQEAKIG1zZ3N0ciAiRTc3MjogTGl0ZXJ1bWEgZG9zaWVybyBlc3RhcyBwb3IgcGxpIG5vdmEgdmVyc2lvIGRlIFZpbSIKIAogbXNnaWQgIkU3NzA6IFVuc3VwcG9ydGVkIHNlY3Rpb24gaW4gc3BlbGwgZmlsZSIKLW1zZ3N0ciAiRTc3MDogTmVzdWJ0ZW5pdGEgc2VrY2lvIGVuIGxpdGVydW1hIGRvc2llcm8iCittc2dzdHIgIkU3NzA6IE5lc3VidGVuYXRhIHNla2NpbyBlbiBsaXRlcnVtYSBkb3NpZXJvIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIldhcm5pbmc6IHJlZ2lvbiAlcyBub3Qgc3VwcG9ydGVkIgotbXNnc3RyICJBdmVydG86IHJlZ2lvbm8gJXMgbmUgc3VidGVuaXRhIgorbXNnc3RyICJBdmVydG86IHJlZ2lvbm8gJXMgbmUgc3VidGVuYXRhIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlYWRpbmcgYWZmaXggZmlsZSAlcyAuLi4iCkBAIC00OTY1LDExICs0OTk3LDExIEBACiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29udmVyc2lvbiBpbiAlcyBub3Qgc3VwcG9ydGVkOiBmcm9tICVzIHRvICVzIgotbXNnc3RyICJLb252ZXJ0byBlbiAlcyBuZXN1YnRlbml0YTogZGUgJXMgYWwgJXMiCittc2dzdHIgIktvbnZlcnRvIGVuICVzIG5lc3VidGVuYXRhOiBkZSAlcyBhbCAlcyIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb252ZXJzaW9uIGluICVzIG5vdCBzdXBwb3J0ZWQiCi1tc2dzdHIgIktvbnZlcnRvIGVuICVzIG5lc3VidGVuaXRhIgorbXNnc3RyICJLb252ZXJ0byBlbiAlcyBuZXN1YnRlbmF0YSIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciBGTEFHIGluICVzIGxpbmUgJWQ6ICVzIgpAQCAtNTE4OSw3ICs1MjIxLDcgQEAKIG1zZ3N0ciAiRTc1MTogTm9tbyBkZSBlbGlnYSBkb3NpZXJvIG5lIGRldmFzIGhhdmkgbm9tb24gZGUgcmVnaW9ubyIKIAogbXNnaWQgIkU3NTQ6IE9ubHkgdXAgdG8gOCByZWdpb25zIHN1cHBvcnRlZCIKLW1zZ3N0ciAiRTc1NDogTnVyIDggcmVnaW9ub2ogc3VidGVuaXRhaiIKK21zZ3N0ciAiRTc1NDogTnVyIDggcmVnaW9ub2ogc3VidGVuYXRhaiIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFNzU1OiBJbnZhbGlkIHJlZ2lvbiBpbiAlcyIKQEAgLTU1ODksNiArNTYyMSw3NSBAQAogbXNnaWQgIk5vIHVuZG8gcG9zc2libGU7IGNvbnRpbnVlIGFueXdheSIKIG1zZ3N0ciAiTWFsZmFybyBuZWVibGE7IGRhxa1yaWdpIHRhbWVuZSIKIAorIywgYy1mb3JtYXQKK21zZ2lkICJFODI4OiBDYW5ub3Qgb3BlbiB1bmRvIGZpbGUgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJFODI4OiBOZSBlYmxhcyBtYWxmZXJtaSBsYSBtYWxmYXJhbiBkb3NpZXJvbiBwb3Igc2tyaWJpOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODI1OiBDb3JydXB0ZWQgdW5kbyBmaWxlICglcyk6ICVzIgorbXNnc3RyICJFODI1OiBEaWZla3RpdGEgbWFsZmFyYSBkb3NpZXJvICglcyk6ICVzIgorCittc2dpZCAiQ2Fubm90IHdyaXRlIHVuZG8gZmlsZSBpbiBhbnkgZGlyZWN0b3J5IGluICd1bmRvZGlyJyIKK21zZ3N0ciAiTmUgZWJsaXMgc2tyaWJpIG1hbGZhcmFuIGRvc2llcm9uIGVuIGl1IGRvc2llcm8gYWpuIGRlICd1bmRvZGlyJyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXaWxsIG5vdCBvdmVyd3JpdGUgd2l0aCB1bmRvIGZpbGUsIGNhbm5vdCByZWFkOiAlcyIKK21zZ3N0ciAiTmUgc3VwZXJrcmlib3MgbWFsZmFyYW4gZG9zaWVyb24sIG5lIGVibGlzIGxlZ2k6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIldpbGwgbm90IG92ZXJ3cml0ZSwgdGhpcyBpcyBub3QgYW4gdW5kbyBmaWxlOiAlcyIKK21zZ3N0ciAiTmUgc3VwZXJza3JpYm9zLCB0aW8gbmUgZXN0YXMgbWFsZmFyYSBkb3NpZXJvOiAlcyIKKworbXNnaWQgIlNraXBwaW5nIHVuZG8gZmlsZSB3cml0ZSwgbm90aGluZyB0byB1bmRvIgorbXNnc3RyICJQcmV0ZXJwYXNhcyBza3JpYm9uIGRlIG1hbGZhcmEgZG9zaWVybywgbmVuaW8gcG9yIG1hbGZhcmkiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGluZyB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJTa3JpYmFzIG1hbGZhcmFuIGRvc2llcm9uOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODI5OiB3cml0ZSBlcnJvciBpbiB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJFODI5OiBTa3JpYmVyYXJvIGVuIG1hbGZhcmEgZG9zaWVybzogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHJlYWRpbmcgdW5kbyBmaWxlLCBvd25lciBkaWZmZXJzOiAlcyIKK21zZ3N0ciAiTmUgbGVnYXMgbWFsZmFyYW4gZG9zaWVyb24sIHBvc2VkYW50byBtYWxzYW1hczogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJMZWdhZG8gZGUgZGUgbWFsZmFyYSBkb3NpZXJvOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODIyOiBDYW5ub3Qgb3BlbiB1bmRvIGZpbGUgZm9yIHJlYWRpbmc6ICVzIgorbXNnc3RyICJFODIyOiBOZSBlYmxhcyBtYWxmZXJtaSBtYWxmYXJhbiBkb3NpZXJvbiBwb3IgbGVnaTogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgyMzogTm90IGFuIHVuZG8gZmlsZTogJXMiCittc2dzdHIgIkU4MjM6IE5lIGVzdGFzIG1hbGZhcmEgZG9zaWVybzogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgzMjogTm9uLWVuY3J5cHRlZCBmaWxlIGhhcyBlbmNyeXB0ZWQgdW5kbyBmaWxlOiAlcyIKK21zZ3N0ciAiRTgzMjogTmUgxIlpZnJhdGEgZG9zaWVybyBoYXZhcyDEiWlmcmF0YW4gbWFsZmFyYW4gZG9zaWVyb246ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MjY6IFVuZG8gZmlsZSBkZWNyeXB0aW9uIGZhaWxlZDogJXMiCittc2dzdHIgIkU4MjY6IE1hbMSJaWZyYWRvIGRlIG1hbGZhcmEgZG9zaWVybyBmaWFza2lzOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODI3OiBVbmRvIGZpbGUgaXMgZW5jcnlwdGVkOiAlcyIKK21zZ3N0ciAiRTgyNzogTWFsZmFyYSBkb3NpZXJvIGVzdGFzIMSJaWZyYXRhOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODI0OiBJbmNvbXBhdGlibGUgdW5kbyBmaWxlOiAlcyIKK21zZ3N0ciAiRTgyNDogTWFsa29uZ3J1YSBtYWxmYXJhIGRvc2llcm86ICVzIgorCittc2dpZCAiRmlsZSBjb250ZW50cyBjaGFuZ2VkLCBjYW5ub3QgdXNlIHVuZG8gaW5mbyIKK21zZ3N0ciAiRW5oYXZvIGRlIGRvc2llcm8gxZ1hbsSdacSdaXMsIG5lIGVibGFzIHV6aSBtYWxmYXJham4gaW5mb21vam4iCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgcmVhZGluZyB1bmRvIGZpbGUgJXMiCittc2dzdHIgIkZpbmlzIGxlZ2kgbWFsZmFyYW4gZG9zaWVyb24gJXMiCisKIG1zZ2lkICJBbHJlYWR5IGF0IG9sZGVzdCBjaGFuZ2UiCiBtc2dzdHIgIkphbSBhbCBsYSBwbGVqIG1hbG5vdmEgxZ1hbsSdbyIKIApAQCAtNTU5Niw4ICs1Njk3LDggQEAKIG1zZ3N0ciAiSmFtIGFsIGxhIHBsZWogbm92YSDFnWFuxJ1vIgogCiAjLCBjLWZvcm1hdAotbXNnaWQgIlVuZG8gbnVtYmVyICVsZCBub3QgZm91bmQiCi1tc2dzdHIgIk1hbGZhcm8gbnVtZXJvICVsZCBuZXRyb3ZpdGEiCittc2dpZCAiRTgzMDogVW5kbyBudW1iZXIgJWxkIG5vdCBmb3VuZCIKK21zZ3N0ciAiRTgzMDogTWFsZmFyYSBudW1lcm8gJWxkIG5ldHJvdml0YSIKIAogbXNnaWQgIkU0Mzg6IHVfdW5kbzogbGluZSBudW1iZXJzIHdyb25nIgogbXNnc3RyICJFNDM4OiB1X3VuZG86IG5ldmFsaWRhaiBudW1lcm9qIGRlIGxpbmlvaiIKQEAgLTYzMTgsNyArNjQxOSw3IEBACiBtc2dzdHIgIkU1MjM6IE5lIHBlcm1lc2l0YSB0aWUiCiAKIG1zZ2lkICJFMzU5OiBTY3JlZW4gbW9kZSBzZXR0aW5nIG5vdCBzdXBwb3J0ZWQiCi1tc2dzdHIgIkUzNTk6IFJlxJ1pbW8gZGUgZWtyYW5vIG5lIHN1YnRlbml0YSIKK21zZ3N0ciAiRTM1OTogUmXEnWltbyBkZSBla3Jhbm8gbmUgc3VidGVuYXRhIgogCiBtc2dpZCAiRTQ5OiBJbnZhbGlkIHNjcm9sbCBzaXplIgogbXNnc3RyICJFNDk6IE5ldmFsaWRhIGdyYW5kbyBkZSBydWx1bW8iCkBAIC02MzU0LDcgKzY0NTUsNyBAQAogbXNnc3RyICJFNzg6IE5la29uYXRhIG1hcmtvIgogCiBtc2dpZCAiRTc5OiBDYW5ub3QgZXhwYW5kIHdpbGRjYXJkcyIKLW1zZ3N0ciAiRTc5OiBOZSBlYmxhcyBla3NwYW5zaSDEtW9rZXJvam4iCittc2dzdHIgIkU3OTogTmUgZWJsYXMgbWFsdm9sdmkgxLVva2Vyb2puIgogCiBtc2dpZCAiRTU5MTogJ3dpbmhlaWdodCcgY2Fubm90IGJlIHNtYWxsZXIgdGhhbiAnd2lubWluaGVpZ2h0JyIKIG1zZ3N0ciAiRTU5MTogJ3dpbmhlaWdodCcgbmUgcmFqdGFzIGVzdGkgbWFscGxpIG9sICd3aW5taW5oZWlnaHQnIgpkaWZmIC0tZ2l0IGEvc3JjL3BvL2ZyLnBvIGIvc3JjL3BvL2ZyLnBvCmluZGV4IGIzNDE0ODkuLjBjNmY2OWIgMTAwNjQ0Ci0tLSBhL3NyYy9wby9mci5wbworKysgYi9zcmMvcG8vZnIucG8KQEAgLTE1LDE0ICsxNSwyOSBAQAogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiBWaW0oRnJhbudhaXMpXG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEwLTAyLTE2IDIxOjU0KzAxMDBcbiIKLSJQTy1SZXZpc2lvbi1EYXRlOiAyMDEwLTAyLTE2IDIyOjEwKzAxMDBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wNi0xMiAwNzoxNSswMjAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAxMC0wNi0xMiAwNzo1NiswMjAwXG4iCiAiTGFzdC1UcmFuc2xhdG9yOiBEb21pbmlxdWUgUGVsbOkgPGRvbWluaXF1ZS5wZWxsZUBnbWFpbC5jb20+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogXG4iCiAiTUlNRS1WZXJzaW9uOiAxLjBcbiIKICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPXzg4NTktMTVcbiIKICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiAKK21zZ2lkICJFODMxOiBiZl9rZXlfaW5pdCgpIGNhbGxlZCB3aXRoIGVtcHR5IHBhc3N3b3JkIgorbXNnc3RyICJFODMxOiBiZl9rZXlfaW5pdCgpIGFwcGVs6WUgYXZlYyB1biBtb3QgZGUgcGFzc2UgdmlkZSIKKworbXNnaWQgIkU4MjA6IHNpemVvZih1aW50MzJfdCkgIT0gNCIKK21zZ3N0ciAiRTgyMDogc2l6ZW9mKHVpbnQzMl90KSAhPSA0IgorCittc2dpZCAiRTgxNzogQmxvd2Zpc2ggYmlnL2xpdHRsZSBlbmRpYW4gdXNlIHdyb25nIgorbXNnc3RyICJFODE3OiBwZXRpdC9ncm9zIGJvdXRpc21lIGluY29ycmVjdCBkYW5zIGJsb3dmaXNoIgorCittc2dpZCAiRTgxODogc2hhMjU2IHRlc3QgZmFpbGVkIgorbXNnc3RyICJFODE4OiBsZSB0ZXN0IGRlIHNoYTI1NiBhIOljaG916SIKKworbXNnaWQgIkU4MTk6IEJsb3dmaXNoIHRlc3QgZmFpbGVkIgorbXNnc3RyICJFODE5OiBsZSB0ZXN0IGRlIGJsb3dmaXNoIGEg6WNob3XpIgorCiAjIEFCIC0gSWwgZmF1dCByZXNwZWN0ZXIgbCdlc3ByaXQgcGx1cyBxdWUgbGEgbGV0dHJlLgogbXNnaWQgIkU4MjogQ2Fubm90IGFsbG9jYXRlIGFueSBidWZmZXIsIGV4aXRpbmcuLi4iCiBtc2dzdHIgIkU4MjogQXVjdW4gdGFtcG9uIG5lIHBldXQg6nRyZSBhbGxvdeksIFZpbSBkb2l0IHMnYXJy6nRlciIKQEAgLTU5MCw3ICs2MDUsNyBAQAogbXNnc3RyICJFNzIzOiBJbCBtYW5xdWUgJ30nIOAgbGEgZmluIGR1IERpY3Rpb25uYWlyZSAlcyIKIAogbXNnaWQgIkU3MjQ6IHZhcmlhYmxlIG5lc3RlZCB0b28gZGVlcCBmb3IgZGlzcGxheWluZyIKLW1zZ3N0ciAiRTcyNDogdmFyaWFibGUgdHJvcCBpbWJyaXF16WUgcG91ciDqdHJlIGFmZmljaGVyIgorbXNnc3RyICJFNzI0OiB2YXJpYWJsZSB0cm9wIGltYnJpcXXpZSBwb3VyIOp0cmUgYWZmaWNo6WUiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTc0MDogVG9vIG1hbnkgYXJndW1lbnRzIGZvciBmdW5jdGlvbiAlcyIKQEAgLTg0MCw3ICs4NTUsNiBAQAogCiAjIEFCIC0gTGEgdmVyc2lvbiBmcmFu52Fpc2UgZXN0IGNhcGl0YWxpc+llIHBvdXIg6nRyZSBlbiBhY2NvcmQgYXZlYyBsZXMgYXV0cmVzCiAjICAgICAgY29tbWVudGFpcmVzIGVucmVnaXN0culzIGRhbnMgbGUgZmljaGllciB2aW1pbmZvLgotIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCiAiIyBnbG9iYWwgdmFyaWFibGVzOlxuIgpAQCAtMTExMyw3ICsxMTI3LDcgQEAKICMgICAgICBxdWkgZXN0IHV0aWxpc+kuCiAjLCBjLWZvcm1hdAogbXNnaWQgIlBhdHRlcm4gZm91bmQgaW4gZXZlcnkgbGluZTogJXMiCi1tc2dzdHIgIk1vdGlmIHRyb3V26SBkYW5zIHRvdXRlcyBsZXMgbGlnbmUgOiAlcyIKK21zZ3N0ciAiTW90aWYgdHJvdXbpIGRhbnMgdG91dGVzIGxlcyBsaWduZXMgOiAlcyIKIAogIyBBQiAtIE5lIHBhcyB0cmFkdWlyZSBsZSBkb2xsYXIuCiAjIEFCIC0gQ2UgbWVzc2FnZSBuJ2VzdCB2b2xvbnRhaXJlbWVudCBwYXMgdHJhZHVpdC4gRW4gZWZmZXQsIGlsIGZhaXQgcGFydGllCkBAIC0xMjUxLDggKzEyNjUsOCBAQAogbXNnaWQgIiUzZCAgJXMgJXMgIGxpbmUgJWxkIgogbXNnc3RyICIlM2QgICVzICVzICBsaWduZSAlbGQiCiAKLW1zZ2lkICJFNzUwOiBGaXJzdCB1c2UgOnByb2ZpbGUgc3RhcnQgPGZuYW1lPiIKLW1zZ3N0ciAiRTc1MDogVXRpbGlzZXogZCdhYm9yZCA6cHJvZmlsZSBzdGFydCA8bm9tZmljaGllcj4iCittc2dpZCAiRTc1MDogRmlyc3QgdXNlIFwiOnByb2ZpbGUgc3RhcnQge2ZuYW1lfVwiIgorbXNnc3RyICJFNzUwOiBVdGlsaXNleiBkJ2Fib3JkIFwiOnByb2ZpbGUgc3RhcnQge25vbWZpY2hpZXJ9XCIiCiAKICMgQUIgLSAiY2hhbmdlcyB0byIgZXN0IHJlZG9uZGFudCBldCBhIOl06SBvbWlzIGRlIGxhIHZlcnNpb24gZnJhbudhaXNlLgogIywgYy1mb3JtYXQKQEAgLTE0NjUsNiArMTQ3OSw5IEBACiBtc2dpZCAiRTQ2NzogQ3VzdG9tIGNvbXBsZXRpb24gcmVxdWlyZXMgYSBmdW5jdGlvbiBhcmd1bWVudCIKIG1zZ3N0ciAiRTQ2NzogTGUgY29tcGzodGVtZW50IHBlcnNvbm5hbGlz6SByZXF1aWVydCB1bmUgZm9uY3Rpb24gZW4gYXJndW1lbnQiCiAKK21zZ2lkICJ1bmtub3duIgorbXNnc3RyICJpbmNvbm51IgorCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxODU6IENhbm5vdCBmaW5kIGNvbG9yIHNjaGVtZSAlcyIKIG1zZ3N0ciAiRTE4NTogSW1wb3NzaWJsZSBkZSB0cm91dmVyIGxlIGpldSBkZSBjb3VsZXVycyAlcyIKQEAgLTE3MzIsNyArMTc0OSw3IEBACiBtc2dzdHIgIkUxOTg6IGNtZF9wY2hhciBhdS1kZWzgIGRlIGxhIGxvbmd1ZXVyIGRlIGxhIGNvbW1hbmRlIgogCiBtc2dpZCAiRTE5OTogQWN0aXZlIHdpbmRvdyBvciBidWZmZXIgZGVsZXRlZCIKLW1zZ3N0ciAiRTE5OTogVGFtcG9uIG91IGZlbup0cmUgYWN0aXZlIGVmZmFj6ShlKSIKK21zZ3N0ciAiRTE5OTogRmVu6nRyZSBvdSB0YW1wb24gYWN0aWYgZWZmYWPpIgogCiBtc2dpZCAiRTgxMjogQXV0b2NvbW1hbmRzIGNoYW5nZWQgYnVmZmVyIG9yIGJ1ZmZlciBuYW1lIgogbXNnc3RyICJFODEyOiBEZXMgYXV0b2NvbW1hbmRlcyBvbiBjaGFuZ+kgbGUgdGFtcG9uIG91IGxlIG5vbSBkdSB0YW1wb24iCkBAIC0xODMwLDYgKzE4NDcsOSBAQAogbXNnaWQgImNhbid0IHJlYWQgb3V0cHV0IG9mICdjaGFyY29udmVydCciCiBtc2dzdHIgIkltcG9zc2libGUgZGUgbGlyZSBsYSBzb3J0aWUgZGUgJ2NoYXJjb252ZXJ0JyIKIAorbXNnaWQgIkU4MjE6IEZpbGUgaXMgZW5jcnlwdGVkIHdpdGggdW5rbm93biBtZXRob2QiCittc2dzdHIgIkU4MjE6IExlIGZpY2hpZXIgZXN0IGNoaWZmcukgYXZlYyB1bmUgbel0aG9kZSBpbmNvbm51ZSIKKwogbXNnaWQgIkU2NzY6IE5vIG1hdGNoaW5nIGF1dG9jb21tYW5kcyBmb3IgYWN3cml0ZSBidWZmZXIiCiBtc2dzdHIgIkU2NzY6IFBhcyBkJ2F1dG9jb21tYW5kZSBjb3JyZXNwb25kYW50ZSBwb3VyIGxlIHRhbXBvbiBhY3dyaXRlIgogCkBAIC0xODk4LDE1ICsxOTE4LDE1IEBACiAKIG1zZ2lkICJFNTEzOiB3cml0ZSBlcnJvciwgY29udmVyc2lvbiBmYWlsZWQgKG1ha2UgJ2ZlbmMnIGVtcHR5IHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiIgotIkU1MTM6IEVycmV1ciBkJ+ljcml0dXJlLCDpY2hlYyBkZSBjb252ZXJzaW9uICh2aWRleiAnZmVuYycgcG91ciBwYXNzZXIgIgotIm91dHJlKSIKKyJFNTEzOiBFcnJldXIgZCfpY3JpdHVyZSwg6WNoZWMgZGUgY29udmVyc2lvbiAodmlkZXogJ2ZlbmMnIHBvdXIgcGFzc2VyIG91dHJlKSIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiRTUxMzogd3JpdGUgZXJyb3IsIGNvbnZlcnNpb24gZmFpbGVkIGluIGxpbmUgJWxkIChtYWtlICdmZW5jJyBlbXB0eSB0byAiCiAib3ZlcnJpZGUpIgogbXNnc3RyICIiCi0iRTUxMzogRXJyZXVyIGQn6WNyaXR1cmUsIOljaGVjIGRlIGNvbnZlcnNpb24g4CBsYSBsaWduZSAlbGQgKHZpZGV6ICdmZW5jJyBwb3VyIHBhc3NlciBvdXRyZSkiCisiRTUxMzogRXJyZXVyIGQn6WNyaXR1cmUsIOljaGVjIGRlIGNvbnZlcnNpb24g4CBsYSBsaWduZSAlbGQgKHZpZGV6ICdmZW5jJyAiCisicG91ciBwYXNzZXIgb3V0cmUpIgogCiBtc2dpZCAiRTUxNDogd3JpdGUgZXJyb3IgKGZpbGUgc3lzdGVtIGZ1bGw/KSIKIG1zZ3N0ciAiRTUxNDogZXJyZXVyIGQn6WNyaXR1cmUgKHN5c3TobWUgZGUgZmljaGllcnMgcGxlaW4gPykiCkBAIC0xOTg3LDYgKzIwMDcsMTAgQEAKIG1zZ3N0ciAiMSBjYXJhY3TocmUiCiAKICMsIGMtZm9ybWF0Cittc2dpZCAiJWxsZCBjaGFyYWN0ZXJzIgorbXNnc3RyICIlbGxkIGNhcmFjdOhyZXMiCisKKyMsIGMtZm9ybWF0CiBtc2dpZCAiJWxkIGNoYXJhY3RlcnMiCiBtc2dzdHIgIiVsZCBjYXJhY3TocmVzIgogCkBAIC0yNjU3LDE1ICsyNjgxLDE1IEBACiBtc2dpZCAiRTU2Nzogbm8gY3Njb3BlIGNvbm5lY3Rpb25zIgogbXNnc3RyICJFNTY3OiBBdWN1bmUgY29ubmV4aW9uIGNzY29wZSIKIAorIywgYy1mb3JtYXQKK21zZ2lkICJFNDY5OiBpbnZhbGlkIGNzY29wZXF1aWNrZml4IGZsYWcgJWMgZm9yICVjIgorbXNnc3RyICJFNDY5OiBEcmFwZWF1IGNzY29wZXF1aWNrZml4ICVjIGludmFsaWRlIHBvdXIgJWMiCisKICMgREIgLSB0b2RvCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyNTk6IG5vIG1hdGNoZXMgZm91bmQgZm9yIGNzY29wZSBxdWVyeSAlcyBvZiAlcyIKIG1zZ3N0ciAiRTI1OTogYXVjdW5lIGNvcnJlc3BvbmRhbmNlIHRyb3V26WUgcG91ciBsYSByZXF16nRlIGNzY29wZSAlcyBkZSAlcyIKIAotIywgYy1mb3JtYXQKLW1zZ2lkICJFNDY5OiBpbnZhbGlkIGNzY29wZXF1aWNrZml4IGZsYWcgJWMgZm9yICVjIgotbXNnc3RyICJFNDY5OiBEcmFwZWF1IGNzY29wZXF1aWNrZml4ICVjIGludmFsaWRlIHBvdXIgJWMiCi0KIG1zZ2lkICJjc2NvcGUgY29tbWFuZHM6XG4iCiBtc2dzdHIgImNvbW1hbmRlcyBjc2NvcGUgOlxuIgogCkBAIC0zMDk3LDYgKzMxMjEsOSBAQAogbXNnaWQgIiVkIGZpbGVzIHRvIGVkaXRcbiIKIG1zZ3N0ciAiJWQgZmljaGllcnMg4CDpZGl0ZXJcbiIKIAorbXNnaWQgIm5ldGJlYW5zIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGlzIEdVSVxuIgorbXNnc3RyICJuZXRiZWFucyBuJ2VzdCBwYXMgc3VwcG9ydOkgYXZlYyBjZXR0ZSBpbnRlcmZhY2UgZ3JhcGhpcXVlXG4iCisKIG1zZ2lkICJUaGlzIFZpbSB3YXMgbm90IGNvbXBpbGVkIHdpdGggdGhlIGRpZmYgZmVhdHVyZS4iCiBtc2dzdHIgIkNlIFZpbSBuJ2EgcGFzIOl06SBjb21waWzpIGF2ZWMgbGEgZm9uY3Rpb25uYWxpdOkgZGlmZiIKIApAQCAtMzM3MSw3ICszMzk4LDkgQEAKIG1zZ3N0ciAiLS1zZXJ2ZXJuYW1lIDxub20+XHRFbnZveWVyIGF1L2RldmVuaXIgbGUgc2VydmV1ciBWaW0gbm9tbekgPG5vbT4iCiAKIG1zZ2lkICItLXN0YXJ0dXB0aW1lIDxmaWxlPlx0V3JpdGUgc3RhcnR1cCB0aW1pbmcgbWVzc2FnZXMgdG8gPGZpbGU+IgotbXNnc3RyICItLXN0YXJ0dXB0aW1lIDxmaWNoPlx0yWNyaXJlIGxlcyBtZXNzYWdlcyBkJ2hvcm9kYXRhZ2UgYXUgZOltYXJyYWdlIGRhbnMgPGZpY2g+IgorbXNnc3RyICIiCisiLS1zdGFydHVwdGltZSA8ZmljaD5cdMljcmlyZSBsZXMgbWVzc2FnZXMgZCdob3JvZGF0YWdlIGF1IGTpbWFycmFnZSBkYW5zICIKKyI8ZmljaD4iCiAKIG1zZ2lkICItaSA8dmltaW5mbz5cdFx0VXNlIDx2aW1pbmZvPiBpbnN0ZWFkIG9mIC52aW1pbmZvIgogbXNnc3RyICItaSA8dmltaW5mbz5cdFx0VXRpbGlzZXIgPHZpbWluZm8+IGF1IGxpZXUgZHUgdmltaW5mbyBoYWJpdHVlbCIKQEAgLTM3NTksMTUgKzM3ODgsMjAgQEAKICJcbiIKICIoVm91cyB2b3VkcmV6IHBldXQt6nRyZSBlbnJlZ2lzdHJlciBjZSBmaWNoaWVyIHNvdXMgdW4gYXV0cmUgbm9tXG4iCiAKLW1zZ2lkICJhbmQgcnVuIGRpZmYgd2l0aCB0aGUgb3JpZ2luYWwgZmlsZSB0byBjaGVjayBmb3IgY2hhbmdlcylcbiIKK21zZ2lkICJhbmQgcnVuIGRpZmYgd2l0aCB0aGUgb3JpZ2luYWwgZmlsZSB0byBjaGVjayBmb3IgY2hhbmdlcykiCiBtc2dzdHIgIiIKLSJldCBsYW5jZXIgZGlmZiBhdmVjIGxlIGZpY2hpZXIgb3JpZ2luYWwgcG91ciByZXDpcmVyIGxlcyBjaGFuZ2VtZW50cylcbiIKKyJldCBsYW5jZXIgZGlmZiBhdmVjIGxlIGZpY2hpZXIgb3JpZ2luYWwgcG91ciByZXDpcmVyIGxlcyBjaGFuZ2VtZW50cykiCisKK21zZ2lkICJSZWNvdmVyeSBjb21wbGV0ZWQuIEJ1ZmZlciBjb250ZW50cyBlcXVhbHMgZmlsZSBjb250ZW50cy4iCittc2dzdHIgIlLpY3Vw6XJhdGlvbiBhY2hldullLiBMZSBjb250ZW51IGR1IHRhbXBvbiBlc3QgaWRlbnRpcXVlIGF1IGNvbnRlbnUgZHUgZmljaGllci4iCiAKIG1zZ2lkICIiCi0iRGVsZXRlIHRoZSAuc3dwIGZpbGUgYWZ0ZXJ3YXJkcy5cbiIKKyJcbiIKKyJZb3UgbWF5IHdhbnQgdG8gZGVsZXRlIHRoZSAuc3dwIGZpbGUgbm93LlxuIgogIlxuIgogbXNnc3RyICIiCi0iRWZmYWNleiBlbnN1aXRlIGxlIGZpY2hpZXIgLnN3cC5cbiIKKyJcbiIKKyJJbCBlc3QgY29uc2VpbGzpIGQnZWZmYWNlciBtYWludGVuYW50IGxlIGZpY2hpZXIgLnN3cC5cbiIKICJcbiIKIAogIy4gdXNlIG1zZygpIHRvIHN0YXJ0IHRoZSBzY3JvbGxpbmcgcHJvcGVybHkKQEAgLTQyOTksNiArNDMzMyw5IEBACiBtc2dpZCAiRTY1ODogTmV0QmVhbnMgY29ubmVjdGlvbiBsb3N0IGZvciBidWZmZXIgJWxkIgogbXNnc3RyICJFNjU4OiBDb25uZXhpb24gTmV0QmVhbnMgcGVyZHVlIHBvdXIgbGUgdGFtcG9uICVsZCIKIAorbXNnaWQgIkU1MTE6IG5ldGJlYW5zIGFscmVhZHkgY29ubmVjdGVkIgorbXNnc3RyICJFNTExOiBuZXRiZWFucyBk6WrgIGNvbm5lY3TpIgorCiBtc2dpZCAiRTUwNTogIgogbXNnc3RyICJFNTA1OiAiCiAKQEAgLTUzNzYsNyArNTQxMyw3IEBACiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiLyBsaW5lIGlnbm9yZWQgaW4gJXMgbGluZSAlZDogJXMiCi1tc2dzdHIgIkxpZ25lIC8gaWdub3LpZSBkYW5zICVzIGxpZ2VuICVkIDogJXMiCittc2dzdHIgIkxpZ25lIC8gaWdub3LpZSBkYW5zICVzIGxpZ25lICVkIDogJXMiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCByZWdpb24gbnIgaW4gJXMgbGluZSAlZDogJXMiCkBAIC01NTk5LDcgKzU2MzYsNyBAQAogbXNnc3RyICJFMzk5OiBQYXMgYXNzZXogZCdhcmd1bWVudHMgOiBzeW50YXggcmVnaW9uICVzIgogCiBtc2dpZCAiRTQwMDogTm8gY2x1c3RlciBzcGVjaWZpZWQiCi1tc2dzdHIgIkU0MDA6IEF1Y3VuIGdyYXBwZSBzcOljaWZp6WUiCittc2dzdHIgIkU0MDA6IEF1Y3VuZSBncmFwcGUgc3DpY2lmaellIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0MDE6IFBhdHRlcm4gZGVsaW1pdGVyIG5vdCBmb3VuZDogJXMiCkBAIC01ODM0LDYgKzU4NzEsNzcgQEAKIG1zZ2lkICJObyB1bmRvIHBvc3NpYmxlOyBjb250aW51ZSBhbnl3YXkiCiBtc2dzdHIgIkFubnVsYXRpb24gaW1wb3NzaWJsZSA7IGNvbnRpbnVlciIKIAorIywgYy1mb3JtYXQKK21zZ2lkICJFODI4OiBDYW5ub3Qgb3BlbiB1bmRvIGZpbGUgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJFODI4OiBJbXBvc3NpYmxlIGQnb3V2cmlyIGxlIGZpY2hpZXIgZCdhbm51bGF0aW9ucyBlbiDpY3JpdHVyZSA6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MjU6IENvcnJ1cHRlZCB1bmRvIGZpbGUgKCVzKTogJXMiCittc2dzdHIgIkU4MjU6IEZpY2hpZXIgZCdhbm51bGF0aW9ucyBjb3Jyb21wdSAoJXMpIDogJXMiCisKK21zZ2lkICJDYW5ub3Qgd3JpdGUgdW5kbyBmaWxlIGluIGFueSBkaXJlY3RvcnkgaW4gJ3VuZG9kaXInIgorbXNnc3RyICJJbXBvc3NpYmxlIGQn6WNyaXJlIGxlIGZpY2hpZXIgZCdhbm51bGF0aW9ucyBkYW5zIG4naW1wb3J0ZSAiCisicXVlbCBy6XBlcnRvaXJlIGRlICd1bmRvZGlyJyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXaWxsIG5vdCBvdmVyd3JpdGUgd2l0aCB1bmRvIGZpbGUsIGNhbm5vdCByZWFkOiAlcyIKK21zZ3N0ciAiTGUgZmljaGllciBkJ2FubnVsYXRpb25zIGRlIHNlcmEgcGFzIOljcmFz6SwgaW1wb3NzaWJsZSBkZSBsaXJlIDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2lsbCBub3Qgb3ZlcndyaXRlLCB0aGlzIGlzIG5vdCBhbiB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJGaWNoaWVyIG5lIHNlcmEgcGFzIOljcmFz6SwgY2Ugbidlc3QgcGFzIHVuIGZpY2hpZXIgZCdhbm51bGF0aW9ucyA6ICVzIgorCittc2dpZCAiU2tpcHBpbmcgdW5kbyBmaWxlIHdyaXRlLCBub3RoaW5nIHRvIHVuZG8iCittc2dzdHIgIkxlIGZpY2hpZXIgZCdhbm51bGF0aW9ucyBuJ2VzdCBwYXMg6WNyaXQsIHJpZW4g4CBhbm51bGVyIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRpbmcgdW5kbyBmaWxlOiAlcyIKK21zZ3N0ciAiyWNyaXR1cmUgZHUgZmljaGllciBkJ2FubnVsYXRpb25zIDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgyOTogd3JpdGUgZXJyb3IgaW4gdW5kbyBmaWxlOiAlcyIKK21zZ3N0ciAiRTgyOTogRXJyZXVyIGQn6WNyaXR1cmUgZGFucyBsZSBmaWNoaWVyIGQnYW5udWxhdGlvbnMgOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgcmVhZGluZyB1bmRvIGZpbGUsIG93bmVyIGRpZmZlcnM6ICVzIgorbXNnc3RyICJMZSBmaWNoaWVyIGQnYW5udWxhdGlvbnMgbidlc3QgcGFzIGx1LCBwcm9wcmnpdGFpcmUgZGlmZulyZW50IDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJMZWN0dXJlIGR1IGZpY2hpZXIgZCdhbm51bGF0aW9ucyA6ICVzLi4uIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MjI6IENhbm5vdCBvcGVuIHVuZG8gZmlsZSBmb3IgcmVhZGluZzogJXMiCittc2dzdHIgIkU4MjI6IEltcG9zc2libGUgZCdvdXZyaXIgbGUgZmljaGllciBkJ2FubnVsYXRpb25zIGVuIGxlY3R1cmUgOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODIzOiBOb3QgYW4gdW5kbyBmaWxlOiAlcyIKK21zZ3N0ciAiRTgyMzogQ2Ugbidlc3QgcGFzIHVuIGZpY2hpZXIgZCdhbm51bGF0aW9ucyA6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MzI6IE5vbi1lbmNyeXB0ZWQgZmlsZSBoYXMgZW5jcnlwdGVkIHVuZG8gZmlsZTogJXMiCittc2dzdHIgIkU4MzI6IEZpY2hpZXIgbm9uLWNoaWZmcukgYSB1biBmaWNoaWVyIGQnYW5udWxhdGlvbnMgY2hpZmZy6SA6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MjY6IFVuZG8gZmlsZSBkZWNyeXB0aW9uIGZhaWxlZDogJXMiCittc2dzdHIgIkU4MjY6IETpY2hpZmZyYWdlIGR1IGZpY2hpZXIgZCdhbm51bGF0aW9uIGEg6WNob3XpIDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgyNzogVW5kbyBmaWxlIGlzIGVuY3J5cHRlZDogJXMiCittc2dzdHIgIkU4Mjc6IExlIGZpY2hpZXIgZCdhbm51bGF0aW9ucyBlc3QgY2hpZmZy6SA6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MjQ6IEluY29tcGF0aWJsZSB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJFODI0OiBGaWNoaWVyIGQnYW5udWxhdGlvbnMgaW5jb21wYXRpYmxlIDogJXMiCisKK21zZ2lkICJGaWxlIGNvbnRlbnRzIGNoYW5nZWQsIGNhbm5vdCB1c2UgdW5kbyBpbmZvIgorbXNnc3RyICJMZSBjb250ZW51IGR1IGZpY2hpZXIgYSBjaGFuZ+ksIGltcG9zc2libGUgZCd1dGlsaXNlciBsZXMgIgorImluZm9ybWF0aW9ucyBkJ2FubnVsYXRpb24iCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgcmVhZGluZyB1bmRvIGZpbGUgJXMiCittc2dzdHIgIkZpbiBkZSBsZWN0dXJlIGR1IGZpY2hpZXIgZCdhbm51bGF0aW9ucyAlcyIKKwogbXNnaWQgIkFscmVhZHkgYXQgb2xkZXN0IGNoYW5nZSIKIG1zZ3N0ciAiROlq4CDgIGxhIG1vZGlmaWNhdGlvbiBsYSBwbHVzIGFuY2llbm5lIgogCkBAIC01ODQxLDggKzU5NDksOCBAQAogbXNnc3RyICJE6WrgIOAgbGEgbW9kaWZpY2F0aW9uIGxhIHBsdXMgculjZW50ZSIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJVbmRvIG51bWJlciAlbGQgbm90IGZvdW5kIgotbXNnc3RyICJMJ2FubnVsYXRpb24gbrAgJWxkIGludHJvdXZhYmxlIgorbXNnaWQgIkU4MzA6IFVuZG8gbnVtYmVyICVsZCBub3QgZm91bmQiCittc2dzdHIgIkU4MzA6IEFubnVsYXRpb24gbrAgJWxkIGludHJvdXZhYmxlIgogCiBtc2dpZCAiRTQzODogdV91bmRvOiBsaW5lIG51bWJlcnMgd3JvbmciCiBtc2dzdHIgIkU0Mzg6IHVfdW5kbyA6IG51belyb3MgZGUgbGlnbmUgZXJyb27pcyIKQEAgLTY1MzUsNyArNjY0Myw3IEBACiBtc2dzdHIgIkU3NzY6IEF1Y3VuZSBsaXN0ZSBkJ2VtcGxhY2VtZW50cyIKIAogbXNnaWQgIkU0MzogRGFtYWdlZCBtYXRjaCBzdHJpbmciCi1tc2dzdHIgIkU0MzogTGUgY2hh7m5lIGRlIHJlY2hlcmNoZSBlc3QgZW5kb21tYWfpZSIKK21zZ3N0ciAiRTQzOiBMYSBjaGHubmUgZGUgcmVjaGVyY2hlIGVzdCBlbmRvbW1hZ+llIgogCiBtc2dpZCAiRTQ0OiBDb3JydXB0ZWQgcmVnZXhwIHByb2dyYW0iCiBtc2dzdHIgIkU0NDogTCdhdXRvbWF0ZSBkZSByZWdleHAgZXN0IGNvcnJvbXB1IgpAQCAtNjY1MCw5ICs2NzU4LDMgQEAKIAogbXNnaWQgInNlYXJjaCBoaXQgQk9UVE9NLCBjb250aW51aW5nIGF0IFRPUCIKIG1zZ3N0ciAiTGEgcmVjaGVyY2hlIGEgYXR0ZWludCBsZSBCQVMsIGV0IGNvbnRpbnVlIGVuIEhBVVQiCi0KLSN+IG1zZ2lkICJFNTY5OiBtYXhpbXVtIG51bWJlciBvZiBjc2NvcGUgY29ubmVjdGlvbnMgcmVhY2hlZCIKLSN+IG1zZ3N0ciAiRTU2OTogbm9tYnJlIG1heGltdW0gZGUgY29ubmV4aW9ucyBjc2NvcGUgYXR0ZWludCIKLQotI34gbXNnaWQgIltOTCBmb3VuZF0iCi0jfiBtc2dzdHIgIltOTCB0cm91duldIgpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvLmggYi9zcmMvcHJvdG8uaAppbmRleCAyYjI0OGE1Li4zMzEzNjU2IDEwMDY0NAotLS0gYS9zcmMvcHJvdG8uaAorKysgYi9zcmMvcHJvdG8uaApAQCAtMTQ5LDcgKzE0OSw3IEBACiAjIGVuZGlmCiAjIGluY2x1ZGUgInJlZ2V4cC5wcm8iCiAjIGluY2x1ZGUgInNjcmVlbi5wcm8iCi0jIGlmZGVmIEZFQVRfQ1JZUFQKKyMgaWYgZGVmaW5lZChGRUFUX0NSWVBUKSB8fCBkZWZpbmVkKEZFQVRfUEVSU0lTVEVOVF9VTkRPKQogIyAgaW5jbHVkZSAic2hhMjU2LnBybyIKICMgZW5kaWYKICMgaW5jbHVkZSAic2VhcmNoLnBybyIKZGlmZiAtLWdpdCBhL3NyYy9wcm90by9ibG93ZmlzaC5wcm8gYi9zcmMvcHJvdG8vYmxvd2Zpc2gucHJvCmluZGV4IGRhMzU2MGUuLmJhMTgxNzYgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9ibG93ZmlzaC5wcm8KKysrIGIvc3JjL3Byb3RvL2Jsb3dmaXNoLnBybwpAQCAtMSw1ICsxLDUgQEAKIC8qIGJsb3dmaXNoLmMgKi8KLXZvaWQgYmZfa2V5X2luaXQgX19BUkdTKChjaGFyX3UgKnBhc3N3b3JkKSk7Cit2b2lkIGJmX2tleV9pbml0IF9fQVJHUygoY2hhcl91ICpwYXNzd29yZCwgY2hhcl91ICpzYWx0LCBpbnQgc2FsdF9sZW4pKTsKIHZvaWQgYmZfb2ZiX2luaXQgX19BUkdTKChjaGFyX3UgKml2LCBpbnQgaXZfbGVuKSk7CiB2b2lkIGJmX2NyeXB0X2VuY29kZSBfX0FSR1MoKGNoYXJfdSAqZnJvbSwgc2l6ZV90IGxlbiwgY2hhcl91ICp0bykpOwogdm9pZCBiZl9jcnlwdF9kZWNvZGUgX19BUkdTKChjaGFyX3UgKnB0ciwgbG9uZyBsZW4pKTsKZGlmZiAtLWdpdCBhL3NyYy9wcm90by9zaGEyNTYucHJvIGIvc3JjL3Byb3RvL3NoYTI1Ni5wcm8KaW5kZXggYzUyMzdmNC4uNjUxYTBhMCAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL3NoYTI1Ni5wcm8KKysrIGIvc3JjL3Byb3RvL3NoYTI1Ni5wcm8KQEAgLTIsNyArMiw3IEBACiB2b2lkIHNoYTI1Nl9zdGFydCBfX0FSR1MoKGNvbnRleHRfc2hhMjU2X1QgKmN0eCkpOwogdm9pZCBzaGEyNTZfdXBkYXRlIF9fQVJHUygoY29udGV4dF9zaGEyNTZfVCAqY3R4LCBjaGFyX3UgKmlucHV0LCBVSU5UMzJfVCBsZW5ndGgpKTsKIHZvaWQgc2hhMjU2X2ZpbmlzaCBfX0FSR1MoKGNvbnRleHRfc2hhMjU2X1QgKmN0eCwgY2hhcl91IGRpZ2VzdFszMl0pKTsKLWNoYXJfdSAqc2hhMjU2X2tleSBfX0FSR1MoKGNoYXJfdSAqYnVmKSk7CitjaGFyX3UgKnNoYTI1Nl9rZXkgX19BUkdTKChjaGFyX3UgKmJ1ZiwgY2hhcl91ICpzYWx0LCBpbnQgc2FsdF9sZW4pKTsKIGludCBzaGEyNTZfc2VsZl90ZXN0IF9fQVJHUygodm9pZCkpOwotdm9pZCBzaGEyX3NlZWQgX19BUkdTKChjaGFyX3UgaGVhZGVyW10sIGludCBoZWFkZXJfbGVuKSk7Cit2b2lkIHNoYTJfc2VlZCBfX0FSR1MoKGNoYXJfdSBoZWFkZXJbXSwgaW50IGhlYWRlcl9sZW4sIGNoYXJfdSBzYWx0W10sIGludCBzYWx0X2xlbikpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvc2hhMjU2LmMgYi9zcmMvc2hhMjU2LmMKaW5kZXggMGY5NTg1Ni4uYzI0ZThiOCAxMDA2NDQKLS0tIGEvc3JjL3NoYTI1Ni5jCisrKyBiL3NyYy9zaGEyNTYuYwpAQCAtMjMsOSArMjMsNiBAQAogI2lmIGRlZmluZWQoRkVBVF9DUllQVCkgfHwgZGVmaW5lZChGRUFUX1BFUlNJU1RFTlRfVU5ETykKIAogc3RhdGljIHZvaWQgc2hhMjU2X3Byb2Nlc3MgX19BUkdTKChjb250ZXh0X3NoYTI1Nl9UICpjdHgsIGNoYXJfdSBkYXRhWzY0XSkpOwotc3RhdGljIGNoYXJfdSAqc2hhMjU2X2J5dGVzIF9fQVJHUygoY2hhcl91ICpidWYsIGludCBidWZsZW4pKTsKLXN0YXRpYyB1bnNpZ25lZCBpbnQgZ2V0X3NvbWVfdGltZSBfX0FSR1MoKHZvaWQpKTsKLQogCiAjZGVmaW5lIEdFVF9VSU5UMzIobiwgYiwgaSkJCSAgICBcCiB7CQkJCQkgICAgXApAQCAtMjcxLDE0ICsyNjgsMjIgQEAKICAgICBQVVRfVUlOVDMyKGN0eC0+c3RhdGVbNl0sIGRpZ2VzdCwgMjQpOwogICAgIFBVVF9VSU5UMzIoY3R4LT5zdGF0ZVs3XSwgZGlnZXN0LCAyOCk7CiB9CisjZW5kaWYgLyogRkVBVF9DUllQVCB8fCBGRUFUX1BFUlNJU1RFTlRfVU5ETyAqLworCisjaWYgZGVmaW5lZChGRUFUX0NSWVBUKSB8fCBkZWZpbmVkKFBST1RPKQorc3RhdGljIGNoYXJfdSAqc2hhMjU2X2J5dGVzIF9fQVJHUygoY2hhcl91ICpidWYsIGludCBidWZfbGVuLCBjaGFyX3UgKnNhbHQsIGludCBzYWx0X2xlbikpOworc3RhdGljIHVuc2lnbmVkIGludCBnZXRfc29tZV90aW1lIF9fQVJHUygodm9pZCkpOwogCiAvKgotICogUmV0dXJucyBoZXggZGlnZXN0IG9mICJidWZbYnVmbGVuXSIgaW4gYSBzdGF0aWMgYXJyYXkuCisgKiBSZXR1cm5zIGhleCBkaWdlc3Qgb2YgImJ1ZltidWZfbGVuXSIgaW4gYSBzdGF0aWMgYXJyYXkuCisgKiBpZiAic2FsdCIgaXMgbm90IE5VTEwgYWxzbyBkbyAic2FsdFtzYWx0X2xlbl0iLgogICovCiAgICAgc3RhdGljIGNoYXJfdSAqCi1zaGEyNTZfYnl0ZXMoYnVmLCBidWZsZW4pCitzaGEyNTZfYnl0ZXMoYnVmLCBidWZfbGVuLCBzYWx0LCBzYWx0X2xlbikKICAgICBjaGFyX3UgKmJ1ZjsKLSAgICBpbnQgICAgYnVmbGVuOworICAgIGludCAgICBidWZfbGVuOworICAgIGNoYXJfdSAqc2FsdDsKKyAgICBpbnQgICAgc2FsdF9sZW47CiB7CiAgICAgY2hhcl91CSAgICAgc2hhMjU2c3VtWzMyXTsKICAgICBzdGF0aWMgY2hhcl91ICAgIGhleGl0WzY1XTsKQEAgLTI4OCw3ICsyOTMsOSBAQAogICAgIHNoYTI1Nl9zZWxmX3Rlc3QoKTsKIAogICAgIHNoYTI1Nl9zdGFydCgmY3R4KTsKLSAgICBzaGEyNTZfdXBkYXRlKCZjdHgsIGJ1ZiwgYnVmbGVuKTsKKyAgICBzaGEyNTZfdXBkYXRlKCZjdHgsIGJ1ZiwgYnVmX2xlbik7CisgICAgaWYgKHNhbHQgIT0gTlVMTCkKKwlzaGEyNTZfdXBkYXRlKCZjdHgsIHNhbHQsIHNhbHRfbGVuKTsKICAgICBzaGEyNTZfZmluaXNoKCZjdHgsIHNoYTI1NnN1bSk7CiAgICAgZm9yIChqID0gMDsgaiA8IDMyOyBqKyspCiAJc3ByaW50ZigoY2hhciAqKWhleGl0ICsgaiAqIDIsICIlMDJ4Iiwgc2hhMjU2c3VtW2pdKTsKQEAgLTMwMCwxNCArMzA3LDE2IEBACiAgKiBSZXR1cm5zIHNoYTI1NihidWYpIGFzIDY0IGhleCBjaGFycyBpbiBzdGF0aWMgYXJyYXkuCiAgKi8KICAgICBjaGFyX3UgKgotc2hhMjU2X2tleShidWYpCitzaGEyNTZfa2V5KGJ1Ziwgc2FsdCwgc2FsdF9sZW4pCiAgICAgY2hhcl91ICpidWY7CisgICAgY2hhcl91ICpzYWx0OworICAgIGludCAgICBzYWx0X2xlbjsKIHsKICAgICAvKiBObyBwYXNzd2QgbWVhbnMgZG9uJ3QgZW5jcnlwdCAqLwogICAgIGlmIChidWYgPT0gTlVMTCB8fCAqYnVmID09IE5VTCkKIAlyZXR1cm4gKGNoYXJfdSAqKSIiOwogCi0gICAgcmV0dXJuIHNoYTI1Nl9ieXRlcyhidWYsIChpbnQpU1RSTEVOKGJ1ZikpOworICAgIHJldHVybiBzaGEyNTZfYnl0ZXMoYnVmLCAoaW50KVNUUkxFTihidWYpLCBzYWx0LCBzYWx0X2xlbik7CiB9CiAKIC8qCkBAIC0zNTQsNyArMzYzLDggQEAKIAlpZiAoaSA8IDIpCiAJewogCSAgICBoZXhpdCA9IHNoYTI1Nl9ieXRlcygoY2hhcl91ICopc2hhX3NlbGZfdGVzdF9tc2dbaV0sCi0JCQkJCSAgIChpbnQpU1RSTEVOKHNoYV9zZWxmX3Rlc3RfbXNnW2ldKSk7CisJCSAgICAoaW50KVNUUkxFTihzaGFfc2VsZl90ZXN0X21zZ1tpXSksCisJCSAgICBOVUxMLCAwKTsKIAkgICAgU1RSQ1BZKG91dHB1dCwgaGV4aXQpOwogCX0KIAllbHNlCkBAIC0zODAsMjkgKzM5MCwzMiBAQAogICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQKIGdldF9zb21lX3RpbWUoKQogewotI2lmZGVmIEhBVkVfR0VUVElNRU9GREFZCisjIGlmZGVmIEhBVkVfR0VUVElNRU9GREFZCiAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAKICAgICAvKiBVc2luZyB1c2VjIG1ha2VzIGl0IGxlc3MgcHJlZGljdGFibGUuICovCiAgICAgZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CiAgICAgcmV0dXJuICh1bnNpZ25lZCBpbnQpKHR2LnR2X3NlYyArIHR2LnR2X3VzZWMpOwotI2Vsc2UKKyMgZWxzZQogICAgIHJldHVybiAodW5zaWduZWQgaW50KXRpbWUoTlVMTCk7Ci0jZW5kaWYKKyMgZW5kaWYKIH0KIAogLyoKICAqIHNldCBoZWFkZXIgPSBzaGEyX3NlZWQocmFuZG9tX2RhdGEpOwogICovCiAgICAgdm9pZAotc2hhMl9zZWVkKGhlYWRlciwgaGVhZGVyX2xlbikKLSAgICBjaGFyX3UgaGVhZGVyW107CitzaGEyX3NlZWQoaGVhZGVyLCBoZWFkZXJfbGVuLCBzYWx0LCBzYWx0X2xlbikKKyAgICBjaGFyX3UgKmhlYWRlcjsKICAgICBpbnQgICAgaGVhZGVyX2xlbjsKKyAgICBjaGFyX3UgKnNhbHQ7CisgICAgaW50ICAgIHNhbHRfbGVuOwogewogICAgIGludAkJICAgICBpOwogICAgIHN0YXRpYyBjaGFyX3UgICAgcmFuZG9tX2RhdGFbMTAwMF07CiAgICAgY2hhcl91CSAgICAgc2hhMjU2c3VtWzMyXTsKICAgICBjb250ZXh0X3NoYTI1Nl9UIGN0eDsKKwogICAgIHNyYW5kKGdldF9zb21lX3RpbWUoKSk7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgKGludClzaXplb2YocmFuZG9tX2RhdGEpIC0gMTsgaSsrKQpAQCAtNDExLDggKzQyNCwxMyBAQAogICAgIHNoYTI1Nl91cGRhdGUoJmN0eCwgKGNoYXJfdSAqKXJhbmRvbV9kYXRhLCBzaXplb2YocmFuZG9tX2RhdGEpKTsKICAgICBzaGEyNTZfZmluaXNoKCZjdHgsIHNoYTI1NnN1bSk7CiAKKyAgICAvKiBwdXQgZmlyc3QgYmxvY2sgaW50byBoZWFkZXIuICovCiAgICAgZm9yIChpID0gMDsgaSA8IGhlYWRlcl9sZW47IGkrKykKIAloZWFkZXJbaV0gPSBzaGEyNTZzdW1baSAlIHNpemVvZihzaGEyNTZzdW0pXTsKKworICAgIC8qIHB1dCByZW1haW5pbmcgYmxvY2sgaW50byBzYWx0LiAqLworICAgIGZvciAoaSA9IDA7IGkgPCBzYWx0X2xlbjsgaSsrKQorCXNhbHRbaV0gPSBzaGEyNTZzdW1bKGkgKyBoZWFkZXJfbGVuKSAlIHNpemVvZihzaGEyNTZzdW0pXTsKIH0KIAotI2VuZGlmIC8qIEZFQVRfQ1JZUFQgfHwgRkVBVF9QRVJTSVNURU5UX1VORE8gKi8KKyNlbmRpZiAvKiBGRUFUX0NSWVBUICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0NzEuaW4gYi9zcmMvdGVzdGRpci90ZXN0NzEuaW4KaW5kZXggNzE3YjY2MC4uNTZkZWU1NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdDcxLmluCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3Q3MS5pbgpCaW5hcnkgZmlsZXMgZGlmZmVyCg==