From: Martin Zaun Date: September 27 2010 5:31am Subject: bzr commit into mysql-5.1-telco-7.1 branch (martin.zaun:3813) List-Archive: http://lists.mysql.com/commits/119133 Message-Id: <201009270531.o8R4M3qv022910@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0924315129==" --===============0924315129== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vVXNlcnMvbXovbXlzcWwvbmRiLTcuMS1vcHQzMi8gYmFzZWQgb24gcmV2aWQ6 am9uYXNAbXlzcWwuY29tLTIwMTAwOTE4MTQxMzUxLWxkM2t2cGgwb3FsZzlkYTkKCiAzODEzIE1h cnRpbiBaYXVuCTIwMTAtMDktMjYKICAgICAgY3J1bmQgLSBtaW5vciBjb2RlIGFuZCBzY3JpcHRz IGltcHJvdmVtZW50cwoKICAgIHJlbW92ZWQ6CiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQv bmRibG9nLwogICAgICBzdG9yYWdlL25kYi90ZXN0L2NydW5kL3NyYy90YWJsZXNfbXlzcWwuaW5u b2RiLnNxbAogICAgICBzdG9yYWdlL25kYi90ZXN0L2NydW5kL3NyYy90YWJsZXNfbXlzcWwubWVt b3J5LnNxbAogICAgICBzdG9yYWdlL25kYi90ZXN0L2NydW5kL3NyYy90YWJsZXNfbXlzcWwubXlp c2FtLnNxbAogICAgYWRkZWQ6CiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy8K ICAgICAgc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL3NsYXkuc2gKICAgIHJlbmFtZWQ6 CiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvY29uZmlnLmluaS5zb2xhcmlzID0+IHN0b3Jh Z2UvbmRiL3Rlc3QvY3J1bmQvY29uZmlnX3NhbXBsZXMvY29uZmlnLmluaS5zb2xhcmlzCiAgICAg IHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvY29uZmlnLmluaV9jb21tZW50ZWQgPT4gc3RvcmFnZS9u ZGIvdGVzdC9jcnVuZC9jb25maWdfc2FtcGxlcy9jb25maWcuaW5pX2NvbW1lbnRlZAogICAgICBz dG9yYWdlL25kYi90ZXN0L2NydW5kL2NvbmZpZy5pbmlfbWluaW1hbCA9PiBzdG9yYWdlL25kYi90 ZXN0L2NydW5kL2NvbmZpZ19zYW1wbGVzL2NvbmZpZy5pbmlfbWluaW1hbAogICAgICBzdG9yYWdl L25kYi90ZXN0L2NydW5kL2xvYWRfc2hlbWEuc2ggPT4gc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9z Y3JpcHRzL2xvYWRfc2hlbWEuc2gKICAgICAgc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9teXRlc3Qu c2ggPT4gc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL215dGVzdC5zaAogICAgICBzdG9y YWdlL25kYi90ZXN0L2NydW5kL215dGVzdGN4eC5zaCA9PiBzdG9yYWdlL25kYi90ZXN0L2NydW5k L3NjcmlwdHMvbXl0ZXN0Y3h4LnNoCiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvbXl0ZXN0 cy5zaCA9PiBzdG9yYWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMvbXl0ZXN0cy5zaAogICAgICBz dG9yYWdlL25kYi90ZXN0L2NydW5kL3Jlc3RhcnRfY2x1c3Rlci5zaCA9PiBzdG9yYWdlL25kYi90 ZXN0L2NydW5kL3NjcmlwdHMvcmVzdGFydF9jbHVzdGVyLnNoCiAgICAgIHN0b3JhZ2UvbmRiL3Rl c3QvY3J1bmQvcmVzdGFydF9teXNxbGQuc2ggPT4gc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3Jp cHRzL3Jlc3RhcnRfbXlzcWxkLnNoCiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvcmVzdGFy dF9uZGIuc2ggPT4gc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL3Jlc3RhcnRfbmRiLnNo CiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3RhcnRfY2x1c3Rlci5zaCA9PiBzdG9yYWdl L25kYi90ZXN0L2NydW5kL3NjcmlwdHMvc3RhcnRfY2x1c3Rlci5zaAogICAgICBzdG9yYWdlL25k Yi90ZXN0L2NydW5kL3N0YXJ0X215c3FsZC5zaCA9PiBzdG9yYWdlL25kYi90ZXN0L2NydW5kL3Nj cmlwdHMvc3RhcnRfbXlzcWxkLnNoCiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3RhcnRf bmRiLnNoID0+IHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9zdGFydF9uZGIuc2gKICAg ICAgc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zdG9wX2NsdXN0ZXIuc2ggPT4gc3RvcmFnZS9uZGIv dGVzdC9jcnVuZC9zY3JpcHRzL3N0b3BfY2x1c3Rlci5zaAogICAgICBzdG9yYWdlL25kYi90ZXN0 L2NydW5kL3N0b3BfbXlzcWxkLnNoID0+IHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9z dG9wX215c3FsZC5zaAogICAgICBzdG9yYWdlL25kYi90ZXN0L2NydW5kL3N0b3BfbmRiLnNoID0+ IHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9zdG9wX25kYi5zaAogICAgbW9kaWZpZWQ6 CiAgICAgIC5ienJpZ25vcmUKICAgICAgc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9NYWtlZmlsZQog ICAgICBzdG9yYWdlL25kYi90ZXN0L2NydW5kL01ha2VmaWxlLmRlZmF1bHRzCiAgICAgIHN0b3Jh Z2UvbmRiL3Rlc3QvY3J1bmQvY29uZmlnX3NhbXBsZXMvY29uZmlnLmluaQogICAgICBzdG9yYWdl L25kYi90ZXN0L2NydW5kL21hcnRpbnNfbGl0dGxlX2hlbHBlcnMvc3JjL3V0aWxzL01ha2VmaWxl CiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3JjL2NvbS9teXNxbC9jbHVzdGVyL2NydW5k L0NsdXN0ZXJqTG9hZC5qYXZhCiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3JjL2NvbS9t eXNxbC9jbHVzdGVyL2NydW5kL05kYkpUaWVMb2FkLmphdmEKICAgICAgc3RvcmFnZS9uZGIvdGVz dC9jcnVuZC9zcmMvdGFibGVzX215c3FsLnNxbAogICAgICBzdG9yYWdlL25kYi90ZXN0L2NydW5k L3NjcmlwdHMvbG9hZF9zaGVtYS5zaAogICAgICBzdG9yYWdlL25kYi90ZXN0L2NydW5kL3Njcmlw dHMvbXl0ZXN0LnNoCiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9teXRlc3Rj eHguc2gKICAgICAgc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL215dGVzdHMuc2gKICAg ICAgc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL3Jlc3RhcnRfY2x1c3Rlci5zaAogICAg ICBzdG9yYWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMvcmVzdGFydF9teXNxbGQuc2gKICAgICAg c3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL3Jlc3RhcnRfbmRiLnNoCiAgICAgIHN0b3Jh Z2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9zdGFydF9jbHVzdGVyLnNoCiAgICAgIHN0b3JhZ2Uv bmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9zdGFydF9teXNxbGQuc2gKICAgICAgc3RvcmFnZS9uZGIv dGVzdC9jcnVuZC9zY3JpcHRzL3N0YXJ0X25kYi5zaAogICAgICBzdG9yYWdlL25kYi90ZXN0L2Ny dW5kL3NjcmlwdHMvc3RvcF9jbHVzdGVyLnNoCiAgICAgIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQv c2NyaXB0cy9zdG9wX215c3FsZC5zaAogICAgICBzdG9yYWdlL25kYi90ZXN0L2NydW5kL3Njcmlw dHMvc3RvcF9uZGIuc2gKPT09IG1vZGlmaWVkIGZpbGUgJy5ienJpZ25vcmUnCi0tLSBhLy5ienJp Z25vcmUJMjAxMC0wNC0wNiAwMjo1NTo0MiArMDAwMAorKysgYi8uYnpyaWdub3JlCTIwMTAtMDkt MjcgMDU6MzE6MTcgKzAwMDAKQEAgLTMxMTgsMTAgKzMxMTgsMTcgQEAgc3RvcmFnZS9uZGIvc3Jj L25kYmp0aWUvKiovKi5sb2cKIHN0b3JhZ2UvbmRiL3NyYy9uZGJqdGllL2p0aWUvdGVzdC9teWFw aS9teWFwaV90ZXN0CiBzdG9yYWdlL25kYi9jbHVzdGVyai8qKi8qTUFOSUZFU1QuTUYKIHN0b3Jh Z2UvbmRiL2NsdXN0ZXJqLyoqLyptYW5pZmVzdC5tZgotc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC8q LnByb3BlcnRpZXMKIHN0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvKi5jbmYKIHN0b3JhZ2UvbmRiL3Rl c3QvY3J1bmQvKi5pbmkKK3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvKi5wcm9wZXJ0aWVzCiBzdG9y YWdlL25kYi90ZXN0L2NydW5kL2xpYgotc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9yZXN1bHRzCitz dG9yYWdlL25kYi90ZXN0L2NydW5kL21hcnRpbnNfbGl0dGxlX2hlbHBlcnMvc3JjL3V0aWxzL1By b3BlcnRpZXNfdGVzdAorc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9tYXJ0aW5zX2xpdHRsZV9oZWxw ZXJzL3NyYy91dGlscy9ocnRfc3RvcHdhdGNoX3Rlc3QKK3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQv bWFydGluc19saXR0bGVfaGVscGVycy9zcmMvdXRpbHMvaHJ0X3V0aWxzX3Rlc3QKK3N0b3JhZ2Uv bmRiL3Rlc3QvY3J1bmQvbWFydGluc19saXR0bGVfaGVscGVycy9zcmMvdXRpbHMvdXRpbHNfSHJ0 U3RvcHdhdGNoLmgKK3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvbWFydGluc19saXR0bGVfaGVscGVy cy9zcmMvdXRpbHMvdXRpbHNfSm5pSW5zdHJ1bWVudGF0aW9uVGVzdC5oCitzdG9yYWdlL25kYi90 ZXN0L2NydW5kL3NjcmlwdHMvbmRibG9nCitzdG9yYWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMv cmVzdWx0cworc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zcmMvY3J1bmRuZGIvRHJpdmVyCiBsaWJt eXNxbGQvZXhhbXBsZXMvbXlzcWx0ZXN0LmNjCiBsaWJteXNxbGQvZGVidWdfc3luYy5jYwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvTWFrZWZpbGUnCi0tLSBhL3N0 b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvTWFrZWZpbGUJMjAxMC0wMi0xNCAwNTowNTozMSArMDAwMAor KysgYi9zdG9yYWdlL25kYi90ZXN0L2NydW5kL01ha2VmaWxlCTIwMTAtMDktMjcgMDU6MzE6MTcg KzAwMDAKQEAgLTIxLDEwICsyMSw3IEBAIGRlcCBkYmcgb3B0IHByZiBjbGVhbiBtb3N0bHljbGVh biBjaGVjazoKIAlAY2QgJChTUkMpL2NydW5kbmRiICYmICQoTUFLRSkgJChNRkxBR1MpICRACiAK IGRpc3RjbGVhbjoKLQlybSAtcmYgbmRibG9nCi0JbWtkaXIgbmRibG9nCi0JdG91Y2ggbXlzcWxk LmxvZy5lcnIKLQlybSBteXNxbGQubG9nLmVycgorCXJtIC1yZiBzY3JpcHRzL25kYmxvZwogCXJt IC1mICp+CiAJYW50ICRACiAJcm0gLWYgLi8uYW50LXRhcmdldHMtYnVpbGQueG1sCgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9NYWtlZmlsZS5kZWZhdWx0cycKLS0t IGEvc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9NYWtlZmlsZS5kZWZhdWx0cwkyMDEwLTAyLTE0IDA1 OjA1OjMxICswMDAwCisrKyBiL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvTWFrZWZpbGUuZGVmYXVs dHMJMjAxMC0wOS0yNyAwNTozMToxNyArMDAwMApAQCAtMjgsNyArMjgsNyBAQAogIyBwbGFpbiBj YywgZGVidWc6CiAjICBDRkxBR1MJPSAtZyAtRERFQlVHCiAjIGdudSBnY2MsIGdlbmVyYWw6IC1w ZWRhbnRpYyAtYW5zaSAtc3RkPWM4OSAtc3RkPWM5OSAtc3RkPWdudTg5IC1zdGQ9Z251OTkKLSAg Q0ZMQUdTLmdlbgk9IC1XYWxsCisgIENGTEFHUy5nZW4JPSAtV2FsbCAtbTY0CiAjIGdudSBnY2Ms IGRlZmF1bHQ6CiAgIENGTEFHUwk9ICQoQ0ZMQUdTLmdlbikgLWcgLU8KICMgZ251IGdjYywgZGVi dWc6CkBAIC01OCw3ICs1OCw3IEBACiAjICAgLVdvdmVybG9hZGVkLXZpcnR1YWwKICMgICAgICBV bmZvcnR1bmF0ZWx5LCB0b28gbWFueSB3YXJuaW5ncyBmcm9tIE5EQiBpbmNsdWRlcwogICBDWFhG TEFHUy5nZW4JPSAtYW5zaSAtV2FsbCAtV3N0cmljdC1udWxsLXNlbnRpbmVsIFwKLQkJICAtV3Np Z24tcHJvbW8KKwkJICAtV3NpZ24tcHJvbW8gLW02NAogIyBnbnUgZysrLCBkZWZhdWx0OgogICBD WFhGTEFHUwk9ICQoQ1hYRkxBR1MuZ2VuKSAtZyAtTwogICBDWFhGTEFHUy5kYmcJPSAkKENYWEZM QUdTLmdlbikgLWcgLURERUJVRwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3Qv Y3J1bmQvY29uZmlnX3NhbXBsZXMvY29uZmlnLmluaScKLS0tIGEvc3RvcmFnZS9uZGIvdGVzdC9j cnVuZC9jb25maWdfc2FtcGxlcy9jb25maWcuaW5pCTIwMTAtMDItMjUgMTU6MDA6MTcgKzAwMDAK KysrIGIvc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9jb25maWdfc2FtcGxlcy9jb25maWcuaW5pCTIw MTAtMDktMjcgMDU6MzE6MTcgKzAwMDAKQEAgLTcwLDYgKzcwLDcgQEAgSG9zdE5hbWU9MTI3LjAu MC4xCQkjIGhvc3RuYW1lIG9yIElQIGFkZAogSG9zdE5hbWU9MTI3LjAuMC4xCQkjIGhvc3RuYW1l IG9yIElQIGFkZHJlc3MKICNEYXRhRGlyPS9Vc2Vycy9tei9teXNxbC9jcnVuZC9uZGJsb2cJIyBk aXJlY3RvcnkgZm9yIGRhdGEgZmlsZXMgKGRlZmF1bHQgaXMgY3dkKQogCi1bbXlzcWxkXQotCi1b bXlzcWxkXQorW2FwaV0KK1thcGldCitbYXBpXQorW2FwaV0KCj09PSByZW5hbWVkIGZpbGUgJ3N0 b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvY29uZmlnLmluaS5zb2xhcmlzJyA9PiAnc3RvcmFnZS9uZGIv dGVzdC9jcnVuZC9jb25maWdfc2FtcGxlcy9jb25maWcuaW5pLnNvbGFyaXMnCj09PSByZW5hbWVk IGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvY29uZmlnLmluaV9jb21tZW50ZWQnID0+ICdz dG9yYWdlL25kYi90ZXN0L2NydW5kL2NvbmZpZ19zYW1wbGVzL2NvbmZpZy5pbmlfY29tbWVudGVk Jwo9PT0gcmVuYW1lZCBmaWxlICdzdG9yYWdlL25kYi90ZXN0L2NydW5kL2NvbmZpZy5pbmlfbWlu aW1hbCcgPT4gJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvY29uZmlnX3NhbXBsZXMvY29uZmlnLmlu aV9taW5pbWFsJwo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9tYXJ0 aW5zX2xpdHRsZV9oZWxwZXJzL3NyYy91dGlscy9NYWtlZmlsZScKLS0tIGEvc3RvcmFnZS9uZGIv dGVzdC9jcnVuZC9tYXJ0aW5zX2xpdHRsZV9oZWxwZXJzL3NyYy91dGlscy9NYWtlZmlsZQkyMDEw LTA5LTA0IDAxOjM0OjU0ICswMDAwCisrKyBiL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvbWFydGlu c19saXR0bGVfaGVscGVycy9zcmMvdXRpbHMvTWFrZWZpbGUJMjAxMC0wOS0yNyAwNTozMToxNyAr MDAwMApAQCAtMzksOCArMzksOCBAQCBpbmNsdWRlCS4uLy4uLy4uL2Vudi5wcm9wZXJ0aWVzCiAj IF9QT1NJWF9DX1NPVVJDRQogIyBfVU5JWF9TVEQKIAotIyAgREVMSVZFUkFCTEVTCT0gbGlidXRp bHMuYSBsaWJ1dGlscy4kKERMTF9TVUZGSVgpIHV0aWxzLmphcgotICBERUxJVkVSQUJMRVMJPSBs aWJ1dGlscy5hIGxpYnV0aWxzLiQoRExMX1NVRkZJWCkgJChURVNUUykgJChURVNUUzEpCisgIERF TElWRVJBQkxFUwk9IGxpYnV0aWxzLmEgbGlidXRpbHMuJChETExfU1VGRklYKSB1dGlscy5qYXIg XAorCQkkKFRFU1RTKSAkKFRFU1RTMSkKIAogICBURVNUUwkJPSBocnRfdXRpbHNfdGVzdCBocnRf c3RvcHdhdGNoX3Rlc3QgUHJvcGVydGllc190ZXN0IFwKIAkJJChBUElfUEtHX1BBVEgpL0hydFN0 b3B3YXRjaC5jbGFzcyBcCkBAIC04MSwxMCArODEsOSBAQCBkZXAgZGVwZW5kOgkkKEdFTkVSQVRF RF9IKQogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgbm90IGNvcnJlY3QsIG9ubHkgYWRk cyBmaXJzdCBmaWxlCi0jdXRpbHMuamFyOgkkKEFQSV9QS0dfUEFUSCkvSHJ0U3RvcHdhdGNoLmNs YXNzIFwKLSMJCSQoQVBJX1BLR19QQVRIKS9IcnRQcm9maWxlci5jbGFzcwotIwkkKEpBUikgY3Zm ICRAICQ8Cit1dGlscy5qYXI6CSQoQVBJX1BLR19QQVRIKS9IcnRTdG9wd2F0Y2guY2xhc3MgXAor CQkkKEFQSV9QS0dfUEFUSCkvSHJ0UHJvZmlsZXIuY2xhc3MKKwkkKEpBUikgY3ZmICRAICQ/CiAK IHV0aWxzX0hydFN0b3B3YXRjaC5oOgkkKEFQSV9QS0dfUEFUSCkvSHJ0U3RvcHdhdGNoLmNsYXNz CiAJJChDT01QSUxFLmphdmFoKSB1dGlscy5IcnRTdG9wd2F0Y2gKCj09PSByZW1vdmVkIGRpcmVj dG9yeSAnc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9uZGJsb2cnCj09PSBhZGRlZCBkaXJlY3Rvcnkg J3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cycKPT09IHJlbmFtZWQgZmlsZSAnc3RvcmFn ZS9uZGIvdGVzdC9jcnVuZC9sb2FkX3NoZW1hLnNoJyA9PiAnc3RvcmFnZS9uZGIvdGVzdC9jcnVu ZC9zY3JpcHRzL2xvYWRfc2hlbWEuc2gnCi0tLSBhL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvbG9h ZF9zaGVtYS5zaAkyMDEwLTAyLTE0IDA1OjA1OjMxICswMDAwCisrKyBiL3N0b3JhZ2UvbmRiL3Rl c3QvY3J1bmQvc2NyaXB0cy9sb2FkX3NoZW1hLnNoCTIwMTAtMDktMjcgMDU6MzE6MTcgKzAwMDAK QEAgLTEsNSArMSw1IEBACiAjIS9iaW4vYmFzaAotc291cmNlIGVudi5wcm9wZXJ0aWVzCitzb3Vy Y2UgLi4vZW52LnByb3BlcnRpZXMKIGVjaG8gTVlTUUxfSE9NRT0kTVlTUUxfSE9NRQogCiBlY2hv CkBAIC0xMCwzMiArMTAsNjggQEAgZWNobwogIyAtIHRoZSBkYXRhIG5vZGVzIGhhdmVuJ3QgZnVs bHkgY29tZSB1cCB5ZXQKICMgLSBuZGIgYW5kIG15c3FsZCBoYXZlIGdvdHRlbiBvdXQgb2Ygc3lu YyAoZS5nLiwgbWF5IGhhcHBlbiB3aGVuIG5kYiB3YXMKICMgICAocmUpc3RhcnRlZCB3aXRoIG9w dGlvbiAiLS1pbml0aWFsIiwgc2VlIGJ1Zy5waHA/aWQ9NDIxMDcpCi1mb3IgKChpPTU7IGk+PTA7 IGktLSkpIDsgZG8KK2ZvciAoKGk9MzsgaT49MDsgaS0tKSkgOyBkbwogCisgIHVzZXI9ImB3aG9h bWlgIgogICBlY2hvCi0gIGVjaG8gcmVsb2FkIHNjaGVtYS4uLgotICAiJE1ZU1FMX0JJTi9teXNx bCIgLXYgLXUgcm9vdCA8IHNyYy90YWJsZXNfbXlzcWwuc3FsCi0jICAiJE1ZU1FMX0hPTUUvYmlu L215c3FsIiAtdiA8IHNyYy90YWJsZXNfbXlzcWwwLnNxbAorICBlY2hvICJncmFudCBwcml2aWxl Z2VzIHRvIHVzZXJzLi4uIgorICAjIE15U1FMIGRvZXMgbm90IHN1cHBvcnQgd2lsZGNhcmRzIGlu IHVzZXIgbmFtZXMsIG9ubHkgYW5vbnltb3VzIHVzZXJzCisgICMgc3BlY2lmaWVkIGJ5IHRoZSBl bXB0eSB1c2VyIG5hbWUgJyc7IGFueSB1c2VyIHdobyBjb25uZWN0cyBmcm9tIHRoZQorICAjIGxv Y2FsIGhvc3Qgd2l0aCB0aGUgY29ycmVjdCBwYXNzd29yZCBmb3IgdGhlIGFub255bW91cyB1c2Vy IHdpbGwgYmUKKyAgIyBhbGxvd2VkIGFjY2VzcyB0aGVuLiAKKyAgZWNobyAiR1JBTlQgQUxMIE9O ICouKiBUTyAnJ0Bsb2NhbGhvc3Q7IiBcCisgICAgICAgIkdSQU5UIEFMTCBPTiAqLiogVE8gJHVz ZXJAbG9jYWxob3N0OyIgXAorICAgICAgIHwgIiRNWVNRTF9CSU4vbXlzcWwiIC12IC11IHJvb3QK ICAgcz0kPwotICBlY2hvIG15c3FsIGV4aXQgc3RhdHVzOiAkcworICBlY2hvICJteXNxbCBleGl0 IHN0YXR1czogJHMiCiAKICAgaWYgW1sgJHMgPT0gMCBdXTsgdGhlbgotICAgIGVjaG8gInN1Y2Nl c3NmdWxseSAocmUpbG9hZGVkIHNjaGVtYSIKLSAgICBicmVhaworICAgIGVjaG8gInN1Y2Nlc3Nm dWxseSBncmFudGVkIHByaXZpbGVnZXMiCiAgIGVsc2UKICAgICBlY2hvCi0gICAgZWNobyAiZmFp bGVkIChyZSlsb2FkaW5nIHNjaGVtYSIKLSAgICBlY2hvICJyZXRyeWluZyB1cCB0byAkaSB0aW1l cyAocGxlYXNlIGJlIHBhdGllbnQpLi4uIgotICAgIGZvciAoKGo9MDsgajw1OyBqKyspKSA7IGRv IGVjaG8gIi4iIDsgc2xlZXAgMTsgZG9uZQotICAgICIkTVlTUUxfQklOL215c3FsIiAtZSAiVVNF IGNydW5kZGI7IFNIT1cgVEFCTEVTOyIgPiAvZGV2L251bGwKLSAgICBmb3IgKChqPTA7IGo8NTsg aisrKSkgOyBkbyBlY2hvICIuIiA7IHNsZWVwIDE7IGRvbmUKKyAgICBlY2hvICJmYWlsZWQgZ3Jh bnRpbmcgcHJpdmlsZWdlczsgcmV0cnlpbmcgdXAgdG8gJGkgdGltZXMuLi4iCisgICAgZm9yICgo aj0wOyBqPDM7IGorKykpIDsgZG8gZWNobyAiLiIgOyBzbGVlcCAxOyBkb25lCisgICAgY29udGlu dWUKICAgZmkKIAorICBlY2hvCisgIGVjaG8gImxvYWQgY3J1bmQgc2NoZW1hLi4uIgorICAiJE1Z U1FMX0JJTi9teXNxbCIgLXYgPCAuLi9zcmMvdGFibGVzX215c3FsLnNxbAorICBzPSQ/CisgIGVj aG8gIm15c3FsIGV4aXQgc3RhdHVzOiAkcyIKKworICBpZiBbWyAkcyA9PSAwIF1dOyB0aGVuCisg ICAgZWNobyAic3VjY2Vzc2Z1bGx5IGxvYWRlZCBjcnVuZGRiIHNjaGVtYSIKKyAgZWxzZQorICAg IGVjaG8KKyAgICBlY2hvICJmYWlsZWQgbG9hZGluZyBzY2hlbWE7IHJldHJ5aW5nIHVwIHRvICRp IHRpbWVzLi4uIgorICAgIGZvciAoKGo9MDsgajwzOyBqKyspKSA7IGRvIGVjaG8gIi4iIDsgc2xl ZXAgMTsgZG9uZQorICAgIGNvbnRpbnVlCisgIGZpCisKKyAgZWNobworICBlY2hvICJsb2FkIHR3 cyBzY2hlbWEuLi4iCisgICIkTVlTUUxfQklOL215c3FsIiAtdiA8IC4uL3R3c19iZW5jaG1hcmsv c2NoZW1hLnNxbAorICBzPSQ/CisgIGVjaG8gIm15c3FsIGV4aXQgc3RhdHVzOiAkcyIKKworICBp ZiBbWyAkcyA9PSAwIF1dOyB0aGVuCisgICAgZWNobyAic3VjY2Vzc2Z1bGx5IGxvYWRlZCB0ZXN0 ZGIgc2NoZW1hIgorICBlbHNlCisgICAgZWNobworICAgIGVjaG8gImZhaWxlZCBsb2FkaW5nIHNj aGVtYTsgcmV0cnlpbmcgdXAgdG8gJGkgdGltZXMuLi4iCisgICAgZm9yICgoaj0wOyBqPDM7IGor KykpIDsgZG8gZWNobyAiLiIgOyBzbGVlcCAxOyBkb25lCisgICAgY29udGludWUKKyAgZmkKKwor ICBicmVhaworCiBkb25lCiAKIGVjaG8KIGVjaG8gInNob3cgdGFibGVzLi4uIgogIiRNWVNRTF9C SU4vbXlzcWwiIC1lICJVU0UgY3J1bmRkYjsgU0hPVyBUQUJMRVM7IgorIiRNWVNRTF9CSU4vbXlz cWwiIC1lICJVU0UgdGVzdGRiOyBTSE9XIFRBQkxFUzsiCiAKIGVjaG8KIGVjaG8gZG9uZS4KCj09 PSByZW5hbWVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvbXl0ZXN0LnNoJyA9PiAnc3Rv cmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL215dGVzdC5zaCcKLS0tIGEvc3RvcmFnZS9uZGIv dGVzdC9jcnVuZC9teXRlc3Quc2gJMjAxMC0wMi0xNCAwNTowNTozMSArMDAwMAorKysgYi9zdG9y YWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMvbXl0ZXN0LnNoCTIwMTAtMDktMjcgMDU6MzE6MTcg KzAwMDAKQEAgLTEzLDExICsxMywxMiBAQCBpb3N0YXQgNSA+IGlvc3RhdDUudHh0IDI+JjEgJgog I3Ztc3RhdCA1ID4gdm1zdGF0NS50eHQgMj4mMSAmCiBwaWQ9JCEKIGVjaG8gIiIgPj4gb3V0LnR4 dCAyPiYxCi0kMSAkMiA+PiBvdXQudHh0IDI+JjEKKyggY2QgLi4gOyAkMSAkMiApID4+IG91dC50 eHQgMj4mMQogbWtkaXIgLXAgcmVzdWx0cy94eHgKIG12IC12IFthLXpdKi50eHQgcmVzdWx0cy94 eHgKLWNwIC12ICoucHJvcGVydGllcyByZXN1bHRzL3h4eAotY3AgLXYgYnVpbGQueG1sIHJlc3Vs dHMveHh4Ci1jcCAtdiBjb25maWcuaW5pIG15LmNuZiByZXN1bHRzL3h4eAorY3AgLXYgLi4vKi5w cm9wZXJ0aWVzIHJlc3VsdHMveHh4CitjcCAtdiAuLi9idWlsZC54bWwgcmVzdWx0cy94eHgKK2Nw IC12IC4uL2NvbmZpZy5pbmkgcmVzdWx0cy94eHgKK2NwIC12IC4uL215LmNuZiByZXN1bHRzL3h4 eAogc2xlZXAgNgoga2lsbCAtOSAkcGlkCgo9PT0gcmVuYW1lZCBmaWxlICdzdG9yYWdlL25kYi90 ZXN0L2NydW5kL215dGVzdGN4eC5zaCcgPT4gJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0 cy9teXRlc3RjeHguc2gnCi0tLSBhL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvbXl0ZXN0Y3h4LnNo CTIwMTAtMDItMTQgMDU6MDU6MzEgKzAwMDAKKysrIGIvc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9z Y3JpcHRzL215dGVzdGN4eC5zaAkyMDEwLTA5LTI3IDA1OjMxOjE3ICswMDAwCkBAIC04LDEyICs4 LDEzIEBAIGVjaG8gIiIgPj4gb3V0LnR4dCAyPiYxCiB2bXN0YXQgNSA+IHZtc3RhdDUudHh0IDI+ JjEgJgogcGlkPSQhCiBlY2hvICIiID4+IG91dC50eHQgMj4mMQotbWFrZSBydW4uZHJpdmVyID4+ IG91dC50eHQgMj4mMQorKCBjZCAuLiA7IG1ha2UgcnVuLmRyaXZlciApID4+IG91dC50eHQgMj4m MQogbWtkaXIgLXAgcmVzdWx0cy94eHgKIG12IC12IFthLXpdKi50eHQgcmVzdWx0cy94eHgKLWNw IC12ICoucHJvcGVydGllcyByZXN1bHRzL3h4eAotY3AgLXYgYnVpbGQueG1sIHJlc3VsdHMveHh4 Ci1jcCAtdiBjb25maWcuaW5pIG15LmNuZiByZXN1bHRzL3h4eAorY3AgLXYgLi4vKi5wcm9wZXJ0 aWVzIHJlc3VsdHMveHh4CitjcCAtdiAuLi9idWlsZC54bWwgcmVzdWx0cy94eHgKK2NwIC12IC4u L2NvbmZpZy5pbmkgcmVzdWx0cy94eHgKK2NwIC12IC4uL215LmNuZiByZXN1bHRzL3h4eAogc2xl ZXAgNgoga2lsbCAtOSAkcGlkCiBtdiByZXN1bHRzL3h4eCByZXN1bHRzL3h4eF9jeHhkcml2ZXIK Cj09PSByZW5hbWVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvbXl0ZXN0cy5zaCcgPT4g J3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9teXRlc3RzLnNoJwotLS0gYS9zdG9yYWdl L25kYi90ZXN0L2NydW5kL215dGVzdHMuc2gJMjAxMC0wOS0wNCAwMToyMDoyOCArMDAwMAorKysg Yi9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMvbXl0ZXN0cy5zaAkyMDEwLTA5LTI3IDA1 OjMxOjE3ICswMDAwCkBAIC0xLDcgKzEsOCBAQAogIyEvYmluL2Jhc2gKIAogI2ZvciBmIGluIHJ1 bi5uZGJhcGkub3B0IHJ1bi5uZGJqdGllLm9wdCBydW4uY2x1c3Rlcmoub3B0IHJ1bi5teXNxbC5v cHQgcnVuLm9wZW5qcGEubXlzcWwub3B0IHJ1bi5vcGVuanBhLmNsdXN0ZXJqLm9wdCA7IGRvCi1m b3IgZiBpbiBydW4ubmRiYXBpLm9wdCBydW4ubmRianRpZS5vcHQgcnVuLmNsdXN0ZXJqLm9wdCBy dW4ubXlzcWwub3B0IDsgZG8KKyNmb3IgZiBpbiBydW4ubmRiYXBpLm9wdCBydW4ubmRianRpZS5v cHQgcnVuLmNsdXN0ZXJqLm9wdCBydW4ubXlzcWwub3B0IDsgZG8KK2ZvciBmIGluIHJ1bi5uZGJh cGkub3B0IDsgZG8KICAgZWNobyB0ZXN0aW5nICRmCiAgIC4vbXl0ZXN0LnNoIGFudCAkZgogICBt diAtdiByZXN1bHRzL3h4eCAgcmVzdWx0cy94eHhfJGYKCj09PSByZW5hbWVkIGZpbGUgJ3N0b3Jh Z2UvbmRiL3Rlc3QvY3J1bmQvcmVzdGFydF9jbHVzdGVyLnNoJyA9PiAnc3RvcmFnZS9uZGIvdGVz dC9jcnVuZC9zY3JpcHRzL3Jlc3RhcnRfY2x1c3Rlci5zaCcKLS0tIGEvc3RvcmFnZS9uZGIvdGVz dC9jcnVuZC9yZXN0YXJ0X2NsdXN0ZXIuc2gJMjAxMC0wMi0xNCAwNTowNTozMSArMDAwMAorKysg Yi9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMvcmVzdGFydF9jbHVzdGVyLnNoCTIwMTAt MDktMjcgMDU6MzE6MTcgKzAwMDAKQEAgLTIsNiArMiw2IEBACiAKIC4vc3RvcF9jbHVzdGVyLnNo CiAKLWZvciAoKGk9MDsgaTwyOyBpKyspKSA7IGRvIGVjaG8gIi4iIDsgc2xlZXAgMTsgZG9uZQor I2ZvciAoKGk9MDsgaTwyOyBpKyspKSA7IGRvIGVjaG8gIi4iIDsgc2xlZXAgMTsgZG9uZQogCiAu L3N0YXJ0X2NsdXN0ZXIuc2gKCj09PSByZW5hbWVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1 bmQvcmVzdGFydF9teXNxbGQuc2gnID0+ICdzdG9yYWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMv cmVzdGFydF9teXNxbGQuc2gnCi0tLSBhL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvcmVzdGFydF9t eXNxbGQuc2gJMjAxMC0wMi0xNCAwNTowNTozMSArMDAwMAorKysgYi9zdG9yYWdlL25kYi90ZXN0 L2NydW5kL3NjcmlwdHMvcmVzdGFydF9teXNxbGQuc2gJMjAxMC0wOS0yNyAwNTozMToxNyArMDAw MApAQCAtMiw2ICsyLDYgQEAKIAogLi9zdG9wX215c3FsZC5zaAogCi1mb3IgKChpPTA7IGk8Mjsg aSsrKSkgOyBkbyBlY2hvICIuIiA7IHNsZWVwIDE7IGRvbmUKKyNmb3IgKChpPTA7IGk8MjsgaSsr KSkgOyBkbyBlY2hvICIuIiA7IHNsZWVwIDE7IGRvbmUKIAogLi9zdGFydF9teXNxbGQuc2gKCj09 PSByZW5hbWVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvcmVzdGFydF9uZGIuc2gnID0+ ICdzdG9yYWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMvcmVzdGFydF9uZGIuc2gnCi0tLSBhL3N0 b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvcmVzdGFydF9uZGIuc2gJMjAxMC0wMi0xNCAwNTowNTozMSAr MDAwMAorKysgYi9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMvcmVzdGFydF9uZGIuc2gJ MjAxMC0wOS0yNyAwNTozMToxNyArMDAwMApAQCAtMiw2ICsyLDYgQEAKIAogLi9zdG9wX25kYi5z aAogCi1mb3IgKChpPTA7IGk8MjsgaSsrKSkgOyBkbyBlY2hvICIuIiA7IHNsZWVwIDE7IGRvbmUK KyNmb3IgKChpPTA7IGk8MjsgaSsrKSkgOyBkbyBlY2hvICIuIiA7IHNsZWVwIDE7IGRvbmUKIAog Li9zdGFydF9uZGIuc2gKCj09PSBhZGRlZCBmaWxlICdzdG9yYWdlL25kYi90ZXN0L2NydW5kL3Nj cmlwdHMvc2xheS5zaCcKLS0tIGEvc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL3NsYXku c2gJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9zdG9yYWdlL25kYi90ZXN0L2NydW5k L3NjcmlwdHMvc2xheS5zaAkyMDEwLTA5LTI3IDA1OjMxOjE3ICswMDAwCkBAIC0wLDAgKzEsMTEg QEAKKyMhL2Jpbi9zaAorCitmb3IgWCBpbiBgcHMgLWVmYSB8IGdyZXAgLWkgJDEgfCBhd2sgeydw cmludCAkMid9YDsgZG8KKyAga2lsbCAkWDsKK2RvbmUKKworc2xlZXAgMQorCitmb3IgWCBpbiBg cHMgLWVmYSB8IGdyZXAgLWkgJDEgfCBhd2sgeydwcmludCAkMid9YDsgZG8KKyAga2lsbCAtOSAk WDsKK2RvbmUKCj09PSByZW5hbWVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3RhcnRf Y2x1c3Rlci5zaCcgPT4gJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9zdGFydF9jbHVz dGVyLnNoJwotLS0gYS9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3N0YXJ0X2NsdXN0ZXIuc2gJMjAx MC0wMi0xNCAwNTowNTozMSArMDAwMAorKysgYi9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3Njcmlw dHMvc3RhcnRfY2x1c3Rlci5zaAkyMDEwLTA5LTI3IDA1OjMxOjE3ICswMDAwCkBAIC0yLDcgKzIs NyBAQAogCiAuL3N0YXJ0X25kYi5zaAogCi0jIHRoZSBuZGIgbm9kZXMgc2VlbSB0byByZXF1aXJl IHNvbWUgdGltZSB0byBzdGFydAotZm9yICgoaT0wOyBpPDMwOyBpKyspKSA7IGRvIGVjaG8gIi4i IDsgc2xlZXAgMTsgZG9uZQorIyBuZWVkIHNvbWUgZXh0cmEgdGltZQorI2ZvciAoKGk9MDsgaTwx OyBpKyspKSA7IGRvIGVjaG8gIi4iIDsgc2xlZXAgMTsgZG9uZQogCiAuL3N0YXJ0X215c3FsZC5z aAoKPT09IHJlbmFtZWQgZmlsZSAnc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zdGFydF9teXNxbGQu c2gnID0+ICdzdG9yYWdlL25kYi90ZXN0L2NydW5kL3NjcmlwdHMvc3RhcnRfbXlzcWxkLnNoJwot LS0gYS9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3N0YXJ0X215c3FsZC5zaAkyMDEwLTAyLTE0IDA1 OjA1OjMxICswMDAwCisrKyBiL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9zdGFydF9t eXNxbGQuc2gJMjAxMC0wOS0yNyAwNTozMToxNyArMDAwMApAQCAtMSwxNiArMSwyMSBAQAogIyEv YmluL2Jhc2gKLXNvdXJjZSBlbnYucHJvcGVydGllcworc291cmNlIC4uL2Vudi5wcm9wZXJ0aWVz CiBlY2hvIE1ZU1FMX0hPTUU9JE1ZU1FMX0hPTUUKIAogZWNobwogZWNobyBzdGFydCBteXNxbGQu Li4KIAorbXlsb2dkaXI9Im5kYmxvZyIKK21rZGlyIC1wICIkbXlsb2dkaXIiCisKK3VzZXI9ImB3 aG9hbWlgIgogY3dkPSJgcHdkYCIKLW15Y25mPSIkY3dkL215LmNuZiIKLW15ZXJyPSIkY3dkL215 c3FsZC5sb2cuZXJyIgorbXljbmY9IiRjd2QvLi4vbXkuY25mIgorbXllcnI9IiRjd2QvJG15bG9n ZGlyL215c3FsZC5sb2cuZXJyIgogZWNobyBkZWZhdWx0cy1maWxlPSRteWNuZgotKCBjZCAkTVlT UUxfSE9NRSA7ICIkTVlTUUxfQklOL215c3FsZF9zYWZlIiAtLWRlZmF1bHRzLWZpbGU9IiRteWNu ZiIgLS11c2VyPW16IC0tbG9nLWVycm9yPSIkbXllcnIiICYgKQorKCBjZCAkTVlTUUxfSE9NRSA7 ICIkTVlTUUxfQklOL215c3FsZF9zYWZlIiAtLWRlZmF1bHRzLWZpbGU9IiRteWNuZiIgLS11c2Vy PSIkdXNlciIgLS1sb2ctZXJyb3I9IiRteWVyciIgJiApCiAKKyMgbmVlZCBzb21lIGV4dHJhIHRp bWUKIGZvciAoKGk9MDsgaTwzOyBpKyspKSA7IGRvIGVjaG8gIi4iIDsgc2xlZXAgMTsgZG9uZQog CiBlY2hvCgo9PT0gcmVuYW1lZCBmaWxlICdzdG9yYWdlL25kYi90ZXN0L2NydW5kL3N0YXJ0X25k Yi5zaCcgPT4gJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9zdGFydF9uZGIuc2gnCi0t LSBhL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3RhcnRfbmRiLnNoCTIwMTAtMDItMTQgMDU6MDU6 MzEgKzAwMDAKKysrIGIvc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL3N0YXJ0X25kYi5z aAkyMDEwLTA5LTI3IDA1OjMxOjE3ICswMDAwCkBAIC0xLDE5ICsxLDM0IEBACiAjIS9iaW4vYmFz aAotc291cmNlIGVudi5wcm9wZXJ0aWVzCitzb3VyY2UgLi4vZW52LnByb3BlcnRpZXMKIGVjaG8g TVlTUUxfSE9NRT0kTVlTUUxfSE9NRQogCisjc2V0IC14CisKK215bG9nZGlyPSJuZGJsb2ciCitt a2RpciAtcCAiJG15bG9nZGlyIgorCitteWluaT0iLi4vLi4vY29uZmlnLmluaSIKIGVjaG8KIGVj aG8gc3RhcnQgbWdtZC4uLgotKCBjZCBuZGJsb2cgOyAiJE1ZU1FMX0xJQkVYRUMvbmRiX21nbWQi IC1mIC4uL2NvbmZpZy5pbmkgKQorKCBjZCAiJG15bG9nZGlyIiA7ICIkTVlTUUxfTElCRVhFQy9u ZGJfbWdtZCIgLS1pbml0aWFsIC1mICIkbXlpbmkiICkKIAotZm9yICgoaT0wOyBpPDI7IGkrKykp IDsgZG8gZWNobyAiLiIgOyBzbGVlcCAxOyBkb25lCisjIG5lZWQgc29tZSBleHRyYSB0aW1lCitm b3IgKChpPTA7IGk8MzsgaSsrKSkgOyBkbyBlY2hvICIuIiA7IHNsZWVwIDE7IGRvbmUKIAogZWNo bwogZWNobyBzdGFydCBuZGJkLi4uCi0oIGNkIG5kYmxvZyA7ICIkTVlTUUxfTElCRVhFQy9uZGJk IiAtLWluaXRpYWwgKQorKCBjZCAiJG15bG9nZGlyIiA7ICIkTVlTUUxfTElCRVhFQy9uZGJkIiAt LWluaXRpYWwgKQogCi1mb3IgKChpPTA7IGk8MzsgaSsrKSkgOyBkbyBlY2hvICIuIiA7IHNsZWVw IDE7IGRvbmUKKyMgbmVlZCBzb21lIGV4dHJhIHRpbWUKK2ZvciAoKGk9MDsgaTwxOyBpKyspKSA7 IGRvIGVjaG8gIi4iIDsgc2xlZXAgMTsgZG9uZQorCit0aW1lb3V0PTYwCitlY2hvCitlY2hvIHdh aXRpbmcgdXAgdG8gJHRpbWVvdXQgcyBmb3IgbmRiZCB0byBzdGFydCB1cC4uLgorIiRNWVNRTF9C SU4vbmRiX3dhaXRlciIgLXQgJHRpbWVvdXQKIAogZWNobwogZWNobyBzaG93IGNsdXN0ZXIuLi4K LSIkTVlTUUxfQklOL25kYl9tZ20iIC1lIHNob3cKKyIkTVlTUUxfQklOL25kYl9tZ20iIC1lIHNo b3cgLXQgMQorCisjc2V0ICt4Cgo9PT0gcmVuYW1lZCBmaWxlICdzdG9yYWdlL25kYi90ZXN0L2Ny dW5kL3N0b3BfY2x1c3Rlci5zaCcgPT4gJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc2NyaXB0cy9z dG9wX2NsdXN0ZXIuc2gnCi0tLSBhL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3RvcF9jbHVzdGVy LnNoCTIwMTAtMDItMTQgMDU6MDU6MzEgKzAwMDAKKysrIGIvc3RvcmFnZS9uZGIvdGVzdC9jcnVu ZC9zY3JpcHRzL3N0b3BfY2x1c3Rlci5zaAkyMDEwLTA5LTI3IDA1OjMxOjE3ICswMDAwCkBAIC0y LDYgKzIsNyBAQAogCiAuL3N0b3BfbXlzcWxkLnNoCiAKLWZvciAoKGk9MDsgaTwyOyBpKyspKSA7 IGRvIGVjaG8gIi4iIDsgc2xlZXAgMTsgZG9uZQorIyBuZWVkIHNvbWUgZXh0cmEgdGltZQorI2Zv ciAoKGk9MDsgaTwxOyBpKyspKSA7IGRvIGVjaG8gIi4iIDsgc2xlZXAgMTsgZG9uZQogCiAuL3N0 b3BfbmRiLnNoCgo9PT0gcmVuYW1lZCBmaWxlICdzdG9yYWdlL25kYi90ZXN0L2NydW5kL3N0b3Bf bXlzcWxkLnNoJyA9PiAnc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL3N0b3BfbXlzcWxk LnNoJwotLS0gYS9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3N0b3BfbXlzcWxkLnNoCTIwMTAtMDIt MTQgMDU6MDU6MzEgKzAwMDAKKysrIGIvc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zY3JpcHRzL3N0 b3BfbXlzcWxkLnNoCTIwMTAtMDktMjcgMDU6MzE6MTcgKzAwMDAKQEAgLTEsOCArMSw5IEBACiAj IS9iaW4vYmFzaAotc291cmNlIGVudi5wcm9wZXJ0aWVzCitzb3VyY2UgLi4vZW52LnByb3BlcnRp ZXMKIGVjaG8gTVlTUUxfSE9NRT0kTVlTUUxfSE9NRQogCi1lY2hvIHNodXRkb3duIG15c3FsZC4u LgorZWNobyBzaHV0IGRvd24gbXlzcWxkLi4uCiAiJE1ZU1FMX0JJTi9teXNxbGFkbWluIiBzaHV0 ZG93bgogCisjIG5lZWQgc29tZSBleHRyYSB0aW1lCiBmb3IgKChpPTA7IGk8MzsgaSsrKSkgOyBk byBlY2hvICIuIiA7IHNsZWVwIDE7IGRvbmUKCj09PSByZW5hbWVkIGZpbGUgJ3N0b3JhZ2UvbmRi L3Rlc3QvY3J1bmQvc3RvcF9uZGIuc2gnID0+ICdzdG9yYWdlL25kYi90ZXN0L2NydW5kL3Njcmlw dHMvc3RvcF9uZGIuc2gnCi0tLSBhL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3RvcF9uZGIuc2gJ MjAxMC0wMi0xNCAwNTowNTozMSArMDAwMAorKysgYi9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3Nj cmlwdHMvc3RvcF9uZGIuc2gJMjAxMC0wOS0yNyAwNTozMToxNyArMDAwMApAQCAtMSw4ICsxLDE1 IEBACiAjIS9iaW4vYmFzaAotc291cmNlIGVudi5wcm9wZXJ0aWVzCitzb3VyY2UgLi4vZW52LnBy b3BlcnRpZXMKIGVjaG8gTVlTUUxfSE9NRT0kTVlTUUxfSE9NRQogCi1lY2hvIHNodXRkb3duIE5E Qi4uLgotIiRNWVNRTF9CSU4vbmRiX21nbSIgLWUgc2h1dGRvd24KK2VjaG8gc2h1dCBkb3duIE5E Qi4uLgorIiRNWVNRTF9CSU4vbmRiX21nbSIgLWUgc2h1dGRvd24gLXQgMQogCi1mb3IgKChpPTA7 IGk8MTA7IGkrKykpIDsgZG8gZWNobyAiLiIgOyBzbGVlcCAxOyBkb25lCit0aW1lb3V0PTYwCitl Y2hvCitlY2hvIHdhaXRpbmcgdXAgdG8gJHRpbWVvdXQgcyBmb3IgbmRiX21nbWQgdG8gc2h1dCBk b3duLi4uCisjIiRNWVNRTF9CSU4vbmRiX3dhaXRlciIgLXQgJHRpbWVvdXQgLWMgImxvY2FsaG9z dDoxMTg2IiAtLW5vLWNvbnRhY3QKKyIkTVlTUUxfQklOL25kYl93YWl0ZXIiIC10ICR0aW1lb3V0 IC0tbm8tY29udGFjdAorCisjIG5lZWQgc29tZSBleHRyYSB0aW1lCitmb3IgKChpPTA7IGk8Njsg aSsrKSkgOyBkbyBlY2hvICIuIiA7IHNsZWVwIDE7IGRvbmUKCj09PSBtb2RpZmllZCBmaWxlICdz dG9yYWdlL25kYi90ZXN0L2NydW5kL3NyYy9jb20vbXlzcWwvY2x1c3Rlci9jcnVuZC9DbHVzdGVy akxvYWQuamF2YScKLS0tIGEvc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zcmMvY29tL215c3FsL2Ns dXN0ZXIvY3J1bmQvQ2x1c3RlcmpMb2FkLmphdmEJMjAxMC0wOS0wNCAwMToyMDoyOCArMDAwMAor KysgYi9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3NyYy9jb20vbXlzcWwvY2x1c3Rlci9jcnVuZC9D bHVzdGVyakxvYWQuamF2YQkyMDEwLTA5LTI3IDA1OjMxOjE3ICswMDAwCkBAIC0xODEsMTEgKzE4 MSwxMCBAQCBwdWJsaWMgY2xhc3MgQ2x1c3RlcmpMb2FkIGV4dGVuZHMgRHJpdmVyCiAgICAgICAg ICAgICBuZXcgQ2x1c3RlcmpPcCgic2V0QUJ5UEsiKSB7CiAgICAgICAgICAgICAgICAgcHVibGlj IHZvaWQgcnVuKGludCBjb3VudEEsIGludCBjb3VudEIpIHsKICAgICAgICAgICAgICAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudEE7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAg ICAgLy8gWFhYIGJsaW5kIHVwZGF0ZSBub3Qgd29ya2luZwotICAgICAgICAgICAgICAgICAgICAg ICAgZmluYWwgSUEgbyA9IHNlc3Npb24uZmluZChJQS5jbGFzcywgaSk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAvL2ZpbmFsIElBIG8gPSBzZXNzaW9uLm5ld0luc3RhbmNlKElBLmNsYXNzKTsK LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBvICE9IG51bGw7CisgICAgICAgICAgICAg ICAgICAgICAgICAvLyBibGluZCB1cGRhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFs IElBIG8gPSBzZXNzaW9uLm5ld0luc3RhbmNlKElBLmNsYXNzKTsKICAgICAgICAgICAgICAgICAg ICAgICAgIG8uc2V0SWQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbyAhPSBu dWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgby5zZXRDaW50KGkpOwogICAgICAgICAgICAg ICAgICAgICAgICAgby5zZXRDbG9uZygobG9uZylpKTsKICAgICAgICAgICAgICAgICAgICAgICAg IG8uc2V0Q2Zsb2F0KChmbG9hdClpKTsKQEAgLTE5OSwxMSArMTk4LDEwIEBAIHB1YmxpYyBjbGFz cyBDbHVzdGVyakxvYWQgZXh0ZW5kcyBEcml2ZXIKICAgICAgICAgICAgIG5ldyBDbHVzdGVyak9w KCJzZXRCMEJ5UEsiKSB7CiAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKGludCBjb3Vu dEEsIGludCBjb3VudEIpIHsKICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBjb3VudEI7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gWFhYIGJsaW5kIHVw ZGF0ZSBub3Qgd29ya2luZwotICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgSUIwIG8gPSBz ZXNzaW9uLmZpbmQoSUIwLmNsYXNzLCBpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vZmlu YWwgSUIwIG8gPSBzZXNzaW9uLm5ld0luc3RhbmNlKElCMC5jbGFzcyk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQgbyAhPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgLy8g YmxpbmQgdXBkYXRlCisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBJQjAgbyA9IHNlc3Np b24ubmV3SW5zdGFuY2UoSUIwLmNsYXNzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG8uc2V0 SWQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbyAhPSBudWxsOwogICAgICAg ICAgICAgICAgICAgICAgICAgby5zZXRDaW50KGkpOwogICAgICAgICAgICAgICAgICAgICAgICAg by5zZXRDbG9uZygobG9uZylpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG8uc2V0Q2Zsb2F0 KChmbG9hdClpKTsKQEAgLTI0OSw5ICsyNDcsOSBAQCBwdWJsaWMgY2xhc3MgQ2x1c3RlcmpMb2Fk IGV4dGVuZHMgRHJpdmVyCiAgICAgICAgICAgICAgICAgbmV3IENsdXN0ZXJqT3AoInNldFZhcmJp bmFyeSIgKyBsKSB7CiAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bihpbnQgY291 bnRBLCBpbnQgY291bnRCKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0g MDsgaSA8IGNvdW50QjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWFhY IGJsaW5kIHVwZGF0ZSBub3Qgd29ya2luZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp bmFsIElCMCBvID0gc2Vzc2lvbi5maW5kKElCMC5jbGFzcywgaSk7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy9maW5hbCBJQjAgbyA9IHNlc3Npb24ubmV3SW5zdGFuY2UoSUIwLmNsYXNz KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBibGluZCB1cGRhdGUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmaW5hbCBJQjAgbyA9IHNlc3Npb24ubmV3SW5zdGFuY2UoSUIw LmNsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvLnNldElkKGkpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBvICE9IG51bGw7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgby5zZXRDdmFyYmluYXJ5X2RlZihiKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXNzaW9uLnVwZGF0ZVBlcnNpc3RlbnQobyk7CkBAIC0yNzQsOSArMjcyLDkgQEAg cHVibGljIGNsYXNzIENsdXN0ZXJqTG9hZCBleHRlbmRzIERyaXZlcgogICAgICAgICAgICAgICAg IG5ldyBDbHVzdGVyak9wKCJjbGVhclZhcmJpbmFyeSIgKyBsKSB7CiAgICAgICAgICAgICAgICAg ICAgIHB1YmxpYyB2b2lkIHJ1bihpbnQgY291bnRBLCBpbnQgY291bnRCKSB7CiAgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50QjsgaSsrKSB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gWFhYIGJsaW5kIHVwZGF0ZSBub3Qgd29ya2luZwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIElCMCBvID0gc2Vzc2lvbi5maW5kKElCMC5j bGFzcywgaSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9maW5hbCBJQjAgbyA9IHNl c3Npb24ubmV3SW5zdGFuY2UoSUIwLmNsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBibGluZCB1cGRhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBJQjAg byA9IHNlc3Npb24ubmV3SW5zdGFuY2UoSUIwLmNsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvLnNldElkKGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBv ICE9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgby5zZXRDdmFyYmluYXJ5X2Rl ZihudWxsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLnVwZGF0ZVBlcnNp c3RlbnQobyk7CkBAIC0yOTMsOSArMjkxLDkgQEAgcHVibGljIGNsYXNzIENsdXN0ZXJqTG9hZCBl eHRlbmRzIERyaXZlcgogICAgICAgICAgICAgICAgIG5ldyBDbHVzdGVyak9wKCJzZXRWYXJjaGFy IiArIGwpIHsKICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKGludCBjb3VudEEs IGludCBjb3VudEIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgY291bnRCOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBYWFggYmxp bmQgdXBkYXRlIG5vdCB3b3JraW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwg SUIwIG8gPSBzZXNzaW9uLmZpbmQoSUIwLmNsYXNzLCBpKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvL2ZpbmFsIElCMCBvID0gc2Vzc2lvbi5uZXdJbnN0YW5jZShJQjAuY2xhc3MpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJsaW5kIHVwZGF0ZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZpbmFsIElCMCBvID0gc2Vzc2lvbi5uZXdJbnN0YW5jZShJQjAuY2xh c3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8uc2V0SWQoaSk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IG8gIT0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvLnNldEN2YXJjaGFyX2RlZihzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXNzaW9uLnVwZGF0ZVBlcnNpc3RlbnQobyk7CkBAIC0zMTgsOSArMzE2LDkgQEAgcHVibGlj IGNsYXNzIENsdXN0ZXJqTG9hZCBleHRlbmRzIERyaXZlcgogICAgICAgICAgICAgICAgIG5ldyBD bHVzdGVyak9wKCJjbGVhclZhcmNoYXIiICsgbCkgewogICAgICAgICAgICAgICAgICAgICBwdWJs aWMgdm9pZCBydW4oaW50IGNvdW50QSwgaW50IGNvdW50QikgewogICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudEI7IGkrKykgewotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFhYWCBibGluZCB1cGRhdGUgbm90IHdvcmtpbmcKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmaW5hbCBJQjAgbyA9IHNlc3Npb24uZmluZChJQjAuY2xhc3MsIGkp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZmluYWwgSUIwIG8gPSBzZXNzaW9uLm5l d0luc3RhbmNlKElCMC5jbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmxp bmQgdXBkYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgSUIwIG8gPSBzZXNz aW9uLm5ld0luc3RhbmNlKElCMC5jbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg by5zZXRJZChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbyAhPSBudWxs OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8uc2V0Q3ZhcmNoYXJfZGVmKG51bGwpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24udXBkYXRlUGVyc2lzdGVudChvKTsK QEAgLTMzMyw5ICszMzEsOSBAQCBwdWJsaWMgY2xhc3MgQ2x1c3RlcmpMb2FkIGV4dGVuZHMgRHJp dmVyCiAgICAgICAgICAgICBuZXcgQ2x1c3RlcmpPcCgic2V0QjAtPkEiKSB7CiAgICAgICAgICAg ICAgICAgcHVibGljIHZvaWQgcnVuKGludCBjb3VudEEsIGludCBjb3VudEIpIHsKICAgICAgICAg ICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudEI7IGkrKykgewotICAgICAgICAg ICAgICAgICAgICAgICAgLy8gWFhYIGJsaW5kIHVwZGF0ZSBub3Qgd29ya2luZwotICAgICAgICAg ICAgICAgICAgICAgICAgZmluYWwgSUIwIGIwID0gc2Vzc2lvbi5maW5kKElCMC5jbGFzcywgaSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAvL2ZpbmFsIElCMCBiMCA9IHNlc3Npb24ubmV3SW5z dGFuY2UoSUIwLmNsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJsaW5kIHVwZGF0 ZQorICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgSUIwIGIwID0gc2Vzc2lvbi5uZXdJbnN0 YW5jZShJQjAuY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgICAgYjAuc2V0SWQoaSk7CiAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYjAgIT0gbnVsbDsKICAgICAgICAgICAgICAg ICAgICAgICAgIGZpbmFsIGludCBhSWQgPSBpICUgY291bnRBOwogICAgICAgICAgICAgICAgICAg ICAgICAgYjAuc2V0QWlkKGFJZCk7CkBAIC00MDgsOSArNDA2LDkgQEAgcHVibGljIGNsYXNzIENs dXN0ZXJqTG9hZCBleHRlbmRzIERyaXZlcgogICAgICAgICAgICAgbmV3IENsdXN0ZXJqT3AoIm51 bGxCMC0+QSIpIHsKICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oaW50IGNvdW50QSwg aW50IGNvdW50QikgewogICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNv dW50QjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBYWFggYmxpbmQgdXBkYXRl IG5vdCB3b3JraW5nCi0gICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBJQjAgYjAgPSBzZXNz aW9uLmZpbmQoSUIwLmNsYXNzLCBpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vZmluYWwg SUIwIGIwID0gc2Vzc2lvbi5uZXdJbnN0YW5jZShJQjAuY2xhc3MpOworICAgICAgICAgICAgICAg ICAgICAgICAgLy8gYmxpbmQgdXBkYXRlCisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBJ QjAgYjAgPSBzZXNzaW9uLm5ld0luc3RhbmNlKElCMC5jbGFzcyk7CisgICAgICAgICAgICAgICAg ICAgICAgICBiMC5zZXRJZChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBiMCAh PSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgYjAuc2V0QWlkKDApOwogICAgICAgICAg ICAgICAgICAgICB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9z cmMvY29tL215c3FsL2NsdXN0ZXIvY3J1bmQvTmRiSlRpZUxvYWQuamF2YScKLS0tIGEvc3RvcmFn ZS9uZGIvdGVzdC9jcnVuZC9zcmMvY29tL215c3FsL2NsdXN0ZXIvY3J1bmQvTmRiSlRpZUxvYWQu amF2YQkyMDEwLTA5LTA0IDAxOjIwOjI4ICswMDAwCisrKyBiL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1 bmQvc3JjL2NvbS9teXNxbC9jbHVzdGVyL2NydW5kL05kYkpUaWVMb2FkLmphdmEJMjAxMC0wOS0y NyAwNTozMToxNyArMDAwMApAQCAtNjkxLDcgKzY5MSw3IEBAIHB1YmxpYyBjbGFzcyBOZGJKVGll TG9hZCBleHRlbmRzIE5kYkJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4g YmF0Y2gpIHsKICAgICAgICAgYmVnaW5UcmFuc2FjdGlvbjEoKTsKICAgICAgICAgZm9yIChpbnQg aSA9IGZyb207IGkgPD0gdG87IGkrKykgewotICAgICAgICAgICAgLy8gZ2V0IGFuIGluc2VydCBv cGVyYXRpb24gZm9yIHRoZSB0YWJsZQorICAgICAgICAgICAgLy8gZ2V0IGFuIHVwZGF0ZSBvcGVy YXRpb24gZm9yIHRoZSB0YWJsZQogICAgICAgICAgICAgTmRiT3BlcmF0aW9uIG9wID0gdHguZ2V0 TmRiT3BlcmF0aW9uKHRhYmxlKTsKICAgICAgICAgICAgIGlmIChvcCA9PSBudWxsKQogICAgICAg ICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKHRvU3RyKHR4LmdldE5kYkVycm9y KCkpKTsKCj09PSByZW1vdmVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3JjL3RhYmxl c19teXNxbC5pbm5vZGIuc3FsJwotLS0gYS9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3NyYy90YWJs ZXNfbXlzcWwuaW5ub2RiLnNxbAkyMDEwLTAyLTE0IDA1OjA1OjMxICswMDAwCisrKyBiL3N0b3Jh Z2UvbmRiL3Rlc3QvY3J1bmQvc3JjL3RhYmxlc19teXNxbC5pbm5vZGIuc3FsCTE5NzAtMDEtMDEg MDA6MDA6MDAgKzAwMDAKQEAgLTEsMjE3ICswLDAgQEAKLS0tIFNFVCBzdG9yYWdlX2VuZ2luZT1O REI7Ci1TRVQgc3RvcmFnZV9lbmdpbmU9SU5OT0RCOwotLS0gU0VUIHN0b3JhZ2VfZW5naW5lPU1Z SVNBTTsKLQotRFJPUCBEQVRBQkFTRSBJRiBFWElTVFMgY3J1bmRkYjsKLUNSRUFURSBEQVRBQkFT RSBjcnVuZGRiOwotCi1VU0UgY3J1bmRkYjsKLQotLS0gRFJPUCBUQUJMRSBJRiBFWElTVFMgQjE7 Ci0tLSBEUk9QIFRBQkxFIElGIEVYSVNUUyBCMDsKLS0tIERST1AgVEFCTEUgSUYgRVhJU1RTIEE7 Ci0KLUNSRUFURSBUQUJMRSBBICgKLSAgICAgICAgaWQgICAgICAgICAgICAgIElOVCAgICAgICAg ICAgICBOT1QgTlVMTCwKLSAgICAgICAgY2ludCAgICAgICAgICAgIElOVCwKLSAgICAgICAgY2xv bmcgICAgICAgICAgIEJJR0lOVCwKLSAgICAgICAgY2Zsb2F0ICAgICAgICAgIEZMT0FULAotICAg ICAgICBjZG91YmxlICAgICAgICAgRE9VQkxFLAotICAgICAgICBDT05TVFJBSU5UIFBLX0FfMCBQ UklNQVJZIEtFWSAoaWQpCi0pOwotCi1DUkVBVEUgVEFCTEUgQjAgKAotICAgICAgICBpZCAgICAg ICAgICAgICAgSU5UICAgICAgICAgICAgIE5PVCBOVUxMLAotICAgICAgICBjaW50ICAgICAgICAg ICAgSU5ULAotICAgICAgICBjbG9uZyAgICAgICAgICAgQklHSU5ULAotICAgICAgICBjZmxvYXQg ICAgICAgICAgRkxPQVQsCi0gICAgICAgIGNkb3VibGUgICAgICAgICBET1VCTEUsCi0gICAgICAg IGFfaWQgICAgICAgICAgICBJTlQsCi0gICAgICAgIGN2YXJiaW5hcnlfZGVmICBWQVJCSU5BUlko MjAyKSwKLSAgICAgICAgY3ZhcmNoYXJfZGVmICAgIFZBUkNIQVIoMjAyKSwKLSAgICAgICAgY2Js b2JfZGVmICAgICAgIEJMT0IoMjAyKSwKLSAgICAgICAgY3RleHRfZGVmICAgICAgIFRFWFQoMjAy KSwKLSAgICAgICAgQ09OU1RSQUlOVCBQS19CMF8wIFBSSU1BUlkgS0VZIChpZCksCi0gICAgICAg IENPTlNUUkFJTlQgRktfQjBfMSBGT1JFSUdOIEtFWSAoYV9pZCkgUkVGRVJFTkNFUyBBIChpZCkK LSk7Ci0tLSAgICAgICAgY3ZhcmNoYXJfYXNjaWkgIFZBUkNIQVIoMjAyKSBDSEFSQUNURVIgU0VU IEFTQ0lJLAotLS0gICAgICAgIGN0ZXh0X2FzY2lpICAgICBURVhUKDIwMikgQ0hBUkFDVEVSIFNF VCBBU0NJSSwKLS0tICAgICAgICBjdmFyY2hhcl91Y3MyICAgVkFSQ0hBUigyMDIpIENIQVJBQ1RF UiBTRVQgVUNTMiwKLS0tICAgICAgICBjdGV4dF91Y3MyICAgICAgVEVYVCgyMDIpIENIQVJBQ1RF UiBTRVQgVUNTMiwKLS0tICAgICAgICBjdmFyY2hhcl91dGY4ICAgVkFSQ0hBUigyMDIpIENIQVJB Q1RFUiBTRVQgVVRGOCwKLS0tICAgICAgICBjdGV4dF91dGY4ICAgICAgVEVYVCgyMDIpIENIQVJB Q1RFUiBTRVQgVVRGOCwKLQotQ1JFQVRFIFRBQkxFIEIxICgKLSAgICAgICAgaWQgICAgICAgICAg ICAgIElOVCBOT1QgTlVMTCwKLSAgICAgICAgQ09OU1RSQUlOVCBQS19CMV8wIFBSSU1BUlkgS0VZ IChpZCkKLSk7Ci0KLUNSRUFURSBJTkRFWCBJX0IwX0ZLIE9OIEIwICgKLSAgICAgICAgYV9pZAot KTsKLQotCi0tLSBURVhUIHN0b3JlcyBmaXJzdCAyNTYgaW4gcHJpbWFyeSB0YWJsZSwgcmVzdCBp biBwYXJ0cyB0YWJsZSBhdAotLS0gZGlmZmVyZW50IGNodW5rIHNpemVzOyBWQVJDSEFSIGFsd2F5 cyBzdG9yZXMgaW4gcHJpbWFyeSB0YWJsZXMgYW5kCi0tLSB0aHVzIGlzIHN1YmplY3QgdG8gOGsg bGltaXQKLQotCi0KLS0tIDUuMSBSZWZlcmVuY2UgTWFudWFsLCBEYXRhIFR5cGVzICgxMCkKLS0t IE51bWVyaWMgVHlwZXM6Ci0tLSAqIEJJVFsoTSldICgxIDw9IE0gPD0gNjQsIGRlZmF1bHQ9IDEs IGFwcHJveGltYXRlbHkgKE0rNykvOCBieXRlcykKLS0tICogQk9PTCwgQk9PTEVBTiAoc3lub255 bXMgZm9yIFRJTllJTlQoMSkpCi0tLSAqIElOVFsoTSldLCBJTlRFR0VSWyhNKV0gW1VOU0lHTkVE XSAoNCBieXRlcykKLS0tICAgVElOWUlOVFsoTSldICgxIGJ5dGUpLCBTTUFMTElOVFsoTSldICgy IGJ5dGVzKSwKLS0tICAgTUVESVVNSU5UWyhNKV0gKDMgYnl0ZXMpLCBCSUdJTlRbKE0pXSAoOCBi eXRlcykKLS0tICogRkxPQVRbKE0sRCldIFtVTlNJR05FRF0gKDQgYnl0ZXMgaWYgMCA8PSBwIDw9 IDI0LCA4IGJ5dGVzIGlmIDI1IDw9IHAgPD0gNTMpCi0tLSAqIERPVUJMRVsoTSxEKV0sIERPVUJM RVsoTSxEKV0sIFJFQUxbKE0sRCldIFtVTlNJR05FRF0gKDggYnl0ZXMpCi0tLSAqIERFQ0lNQUxb KE1bLERdKV0sREVDWyhNWyxEXSldLE5VTUVSSUNbKE1bLERdKV0sRklYRURbKE1bLERdKV0gW1VO U0lHTkVEXQotLS0gICAoTSo0LzkgYnl0ZXMgcGx1cyBleHRyYSkKLS0tIERhdGUgVHlwZXM6Ci0t LSAqIERBVEVUSU1FICg4IGJ5dGVzKQotLS0gKiBEQVRFLCBUSU1FICgzIGJ5dGVzKQotLS0gKiBU SU1FU1RBTVAgKDQgYnl0ZXMpCi0tLSAqIFlFQVJbKDJ8NCldICgxIGJ5dGUpCi0tLSBTdHJpbmcg VHlwZXM6Ci0tLSAqIEJJTkFSWShNKSwgW05BVElPTkFMXSBDSEFSWyhNKV0gW0NIQVJBQ1RFUiBT RVQgbmFtZV0gW0NPTExBVEUgbmFtZV0KLS0tICAgKGZpeGVkLWxlbmd0aCwgMCA8PSBNIDw9IDJe OC0xLCBkZWZhdWx0PTEsIHJpZ2h0LXBhZGRlZCkKLS0tICogVkFSQklOQVJZKE0pLCBbTkFUSU9O QUxdIFZBUkNIQVJbKE0pXSBbQ0hBUkFDVEVSIFNFVCBuYW1lXSBbQ09MTEFURSBuYW1lXQotLS0g ICAodmFyaWFibGUtbGVuZ3RoLCAwIDw9IE0gPD0gMl4xNi0xLCAxLi4yLWJ5dGUgbGVuZ3RoIHBy ZWZpeCkKLS0tICogQkxPQlsoTSldLCBURVhUWyhNKV0gW0NIQVJBQ1RFUiBTRVQgbmFtZV0gW0NP TExBVEUgbmFtZV0KLS0tICAgKG1heCBsZW5ndGggPSAyXjE2LTEgYnl0ZXMsIDItYnl0ZSBsZW5n dGggcHJlZml4LCBubyBkZWZhdWx0IHZhbHVlcykKLS0tICogVElOWUJMT0IsIFRJTllURVhUICgx LWJ5dGUgbGVuZ3RoIHByZWZpeCksCi0tLSAqIE1FRElVTUJMT0IsIE1FRElVTVRFWFQgKDMtYnl0 ZSBsZW5ndGggcHJlZml4KSwKLS0tICogTE9OR0JMT0IsIExPTkdURVhUICg0LWJ5dGUgbGVuZ3Ro IHByZWZpeCkKLS0tICogRU5VTSAobWF4IDJeMTYtMSBlbGVtZW50cywgMS4uMiBieXRlcykKLS0t ICogU0VUIChtYXggNjQgZWxlbWVudHMsIDEsMiwzLDQsIG9yIDggYnl0ZXMpCi0tLSB2YXJ5aW5n IHNpemUgdHlwZXMgc3ViamVjdCB0byB0aGUgbWF4aW11bSByb3cgc2l6ZQotLS0gY2hhcmFjdGVy IHNpemVzIHN1YmplY3QgdG8gdGhlIGNoYXJhY3RlciBzZXQgKHV0ZjggPSAxLi4zIGJ5dGVzL2No YXJhY3RlcikKLQotLS0gVGhlIGxhcmdlc3QgdmFsdWVzIG9mIGEgQkxPQiBvciBURVhUIG9iamVj dCB0aGF0IGNhbiBiZSB0cmFuc21pdHRlZAotLS0gYmV0d2VlbiB0aGUgY2xpZW50IGFuZCBzZXJ2 ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYW1vdW50IG9mIGF2YWlsYWJsZQotLS0gbWVtb3J5IGFu ZCB0aGUgc2l6ZSBvZiB0aGUgY29tbXVuaWNhdGlvbnMgYnVmZmVycy4gWW91IGNhbiBjaGFuZ2Ug dGhlCi0tLSBtZXNzYWdlIGJ1ZmZlciBzaXplIGJ5IGNoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUg bWF4X2FsbG93ZWRfcGFja2V0Ci0tLSB2YXJpYWJsZSwgYnV0IHlvdSBtdXN0IGRvIHNvIGZvciBi b3RoIHRoZSBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQgcHJvZ3JhbS4KLQotLS0gRWFjaCBCTE9CIG9y IFRFWFQgdmFsdWUgaXMgcmVwcmVzZW50ZWQgaW50ZXJuYWxseSBieSBhIHNlcGFyYXRlbHkKLS0t IGFsbG9jYXRlZCBvYmplY3QuIFRoaXMgaXMgaW4gY29udHJhc3QgdG8gYWxsIG90aGVyIGRhdGEg dHlwZXMsIGZvciB3aGljaAotLS0gc3RvcmFnZSBpcyBhbGxvY2F0ZWQgb25jZSBwZXIgY29sdW1u IHdoZW4gdGhlIHRhYmxlIGlzIG9wZW5lZC4KLQotLS0gVEVYVCBhbmQgQkxPQiBjb2x1bW5zIGFy ZSBpbXBsZW1lbnRlZCBkaWZmZXJlbnRseSBpbiB0aGUgTkRCIENsdXN0ZXIKLS0tIHN0b3JhZ2Ug ZW5naW5lLCB3aGVyZWluIGVhY2ggcm93IGluIGEgVEVYVCBjb2x1bW4gaXMgbWFkZSB1cCBvZiB0 d28KLS0tIHNlcGFyYXRlIHBhcnRzLiBPbmUgb2YgdGhlc2UgaXMgb2YgZml4ZWQgc2l6ZSAoMjU2 IGJ5dGVzKSwgYW5kIGlzCi0tLSBhY3R1YWxseSBzdG9yZWQgaW4gdGhlIG9yaWdpbmFsIHRhYmxl LiBUaGUgb3RoZXIgY29uc2lzdHMgb2YgYW55IGRhdGEKLS0tIGluIGV4Y2VzcyBvZiAyNTYgYnl0 ZXMsIHdoaWNoIGlzIHN0b3JlZCBpbiBhIGhpZGRlbiB0YWJsZS4gVGhlIHJvd3MKLS0tIGluIHRo aXMgc2Vjb25kIHRhYmxlIGFyZSBhbHdheXMgMiwwMDAgYnl0ZXMgbG9uZy4gVGhpcyBtZWFucyB0 aGF0IHRoZQotLS0gc2l6ZSBvZiBhIFRFWFQgY29sdW1uIGlzIDI1NiBpZiBzaXplIDw9IDI1NiAo d2hlcmUgc2l6ZSByZXByZXNlbnRzCi0tLSB0aGUgc2l6ZSBvZiB0aGUgcm93KTsgb3RoZXJ3aXNl LCB0aGUgc2l6ZSBpcyAyNTYgKyBzaXplICsgKDIwMDAg4oCTCi0tLSAoc2l6ZSDigJMgMjU2KSAl IDIwMDApLgotCi0tLSBGb3IgdGFibGVzIHVzaW5nIHRoZSBOREJDTFVTVEVSIHN0b3JhZ2UgZW5n aW5lLCB0aGVyZSBpcyB0aGUgZmFjdG9yIG9mCi0tLSA0LWJ5dGUgYWxpZ25tZW50IHRvIGJlIHRh a2VuIGludG8gYWNjb3VudCB3aGVuIGNhbGN1bGF0aW5nIHN0b3JhZ2UKLS0tIHJlcXVpcmVtZW50 cy4gVGhpcyBtZWFucyB0aGF0IGFsbCBOREIgZGF0YSBzdG9yYWdlIGlzIGRvbmUgaW4gbXVsdGlw bGVzCi0tLSBvZiA0IGJ5dGVzLiAgRm9yIGV4YW1wbGUsIGluIE5EQkNMVVNURVIgdGFibGVzLCB0 aGUgVElOWUlOVCwgU01BTExJTlQsCi0tLSBNRURJVU1JTlQsIGFuZCBJTlRFR0VSIChJTlQpIGNv bHVtbiB0eXBlcyBlYWNoIHJlcXVpcmUgNCBieXRlcyBzdG9yYWdlCi0tLSBwZXIgcmVjb3JkIGR1 ZSB0byB0aGUgYWxpZ25tZW50IGZhY3Rvci4KLQotLS0gV2hlbiBjYWxjdWxhdGluZyBzdG9yYWdl IHJlcXVpcmVtZW50cyBmb3IgTXlTUUwgQ2x1c3RlciB0YWJsZXMsIHlvdSBtdXN0Ci0tLSBhbHNv IHJlbWVtYmVyIHRoYXQgZXZlcnkgdGFibGUgdXNpbmcgdGhlIE5EQkNMVVNURVIgc3RvcmFnZSBl bmdpbmUKLS0tIHJlcXVpcmVzIGEgcHJpbWFyeSBrZXk7IGlmIG5vIHByaW1hcnkga2V5IGlzIGRl ZmluZWQgYnkgdGhlIHVzZXIsIHRoZW4gYQotLS0g4oCcaGlkZGVu4oCdIHByaW1hcnkga2V5IHdp bGwgYmUgY3JlYXRlZCBieSBOREIuICBUaGlzIGhpZGRlbiBwcmltYXJ5IGtleQotLS0gY29uc3Vt ZXMgMzEtMzUgYnl0ZXMgcGVyIHRhYmxlIHJlY29yZC4KLQotLS0gVGhlIE5EQkNMVVNURVIgc3Rv cmFnZSBlbmdpbmUgaW4gTXlTUUwgNS4xIHN1cHBvcnRzIHZhcmlhYmxlLXdpZHRoCi0tLSBjb2x1 bW5zLiBUaGlzIG1lYW5zIHRoYXQgYSBWQVJDSEFSIGNvbHVtbiBpbiBhIE15U1FMIENsdXN0ZXIg dGFibGUKLS0tIHJlcXVpcmVzIHRoZSBzYW1lIGFtb3VudCBvZiBzdG9yYWdlIGFzIGl0IHdvdWxk IHVzaW5nIGFueSBvdGhlcgotLS0gc3RvcmFnZSBlbmdpbmUsIHdpdGggdGhlIGV4Y2VwdGlvbiB0 aGF0IHN1Y2ggdmFsdWVzIGFyZSA0LWJ5dGUKLS0tIGFsaWduZWQuIFRodXMsIHRoZSBzdHJpbmcg J2FiY2QnIHN0b3JlZCBpbiBhIFZBUkNIQVIoNTApIGNvbHVtbiB1c2luZwotLS0gdGhlIGxhdGlu MSBjaGFyYWN0ZXIgc2V0IHJlcXVpcmVzIDggYnl0ZXMgKHJhdGhlciB0aGFuIDYgYnl0ZXMgZm9y Ci0tLSB0aGUgc2FtZSBjb2x1bW4gdmFsdWUgaW4gYSBNeUlTQU0gdGFibGUpLiBUaGlzIHJlcHJl c2VudHMgYSBjaGFuZ2UgaW4KLS0tIGJlaGF2aW9yIGZyb20gZWFybGllciB2ZXJzaW9ucyBvZiBO REItQ0xVU1RFUiwgd2hlcmUgYSBWQVJDSEFSKDUwKQotLS0gY29sdW1uIHdvdWxkIHJlcXVpcmUg NTIgYnl0ZXMgc3RvcmFnZSBwZXIgcmVjb3JkIHJlZ2FyZGxlc3Mgb2YgdGhlCi0tLSBsZW5ndGgg b2YgdGhlIHN0cmluZyBiZWluZyBzdG9yZWQuCi0KLS0tIFlvdSBtYXkgZmluZCB0aGUgbmRiX3Np emUucGwgdXRpbGl0eSB0byBiZSB1c2VmdWwgZm9yIGVzdGltYXRpbmcgTkRCCi0tLSBzdG9yYWdl IHJlcXVpcmVtZW50cy4gVGhpcyBQZXJsIHNjcmlwdCBjb25uZWN0cyB0byBhIGN1cnJlbnQgTXlT UUwKLS0tIChub24tQ2x1c3RlcikgZGF0YWJhc2UgYW5kIGNyZWF0ZXMgYSByZXBvcnQgb24gaG93 IG11Y2ggc3BhY2UgdGhhdAotLS0gZGF0YWJhc2Ugd291bGQgcmVxdWlyZSBpZiBpdCB1c2VkIHRo ZSBOREJDTFVTVEVSIHN0b3JhZ2UgZW5naW5lLiBTZWUKLS0tIFNlY3Rpb24gMTYuMTAuMTUsICJu ZGJfc2l6ZS5wbCDigJQgTkRCQ0xVU1RFUiBTaXplIFJlcXVpcmVtZW50IEVzdGltYXRvciIsCi0t LSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLQotLS0gOS4yLiBUaGUgQ2hhcmFjdGVyIFNldCBVc2Vk IGZvciBEYXRhIGFuZCBTb3J0aW5nCi0tLSBkZWZhdWx0OiBsYXRpbjEgKGNwMTI1MiBXZXN0IEV1 cm9wZWFuKSBjaGFyYWN0ZXIgc2V0IGFuZCB0aGUKLS0tIGxhdGluMV9zd2VkaXNoX2NpIGNvbGxh dGlvbgotLS0gQ0hBUlNFVCBtYXkgYmUgb25lIG9mIGJpbmFyeSwgYXJtc2NpaTgsIGFzY2lpLCBi aWc1LCBjcDEyNTAsIGNwMTI1MSwKLS0tIGNwMTI1NiwgY3AxMjU3LCBjcDg1MCwgY3A4NTIsIGNw ODY2LCBjcDkzMiwgZGVjOCwgZXVjanBtcywgZXVja3IsCi0tLSBnYjIzMTIsIGdiaywgZ2Vvc3Rk OCwgZ3JlZWssIGhlYnJldywgaHA4LCBrZXliY3MyLCBrb2k4ciwga29pOHUsCi0tLSBsYXRpbjEs IGxhdGluMiwgbGF0aW41LCBsYXRpbjcsIG1hY2NlLCBtYWNyb21hbiwgc2ppcywgc3dlNywgdGlz NjIwLAotLS0gdWNzMiwgdWppcywgdXRmOC4KLQotLS0gamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0 OgotLS0gVGhlIG5hdGl2ZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIEphdmEgcHJvZ3JhbW1p bmcgbGFuZ3VhZ2UgaXMgVVRGLTE2LgotLS0gW25vdCBzdXJlOiAKLS0tICAgICAgb3V0LnByaW50 bG4oImRlZmF1bHQgY2hhcnNldDogIiArIGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldC5kZWZhdWx0 Q2hhcnNldCgpLmRpc3BsYXlOYW1lKCkpOwotLS0gIHNob3dzOiBVVEYtOAotLS0gXQotCi0tLSBo dHRwOi8vdW5pY29kZS5vcmcvZmFxL2Jhc2ljX3EuaHRtbCMxNAotLS0gUTogV2hhdCBpcyB0aGUg ZGlmZmVyZW5jZSBiZXR3ZWVuIFVDUy0yIGFuZCBVVEYtMTY/Ci0tLSBBOiBVQ1MtMiBpcyB3aGF0 IGEgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiB3YXMgdXAgdG8gVW5pY29kZSAxLjEsCi0tLSBiZWZv cmUgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIGFuZCBVVEYtMTYgd2VyZSBhZGRlZCBhcyBjb25jZXB0 cyB0bwotLS0gVmVyc2lvbiAyLjAgb2YgdGhlIHN0YW5kYXJkLiBUaGlzIHRlcm0gc2hvdWxkIGJl IG5vdyBiZSBhdm9pZGVkLgotLS0KLS0tIFdoZW4gaW50ZXJwcmV0aW5nIHdoYXQgcGVvcGxlIGhh dmUgbWVhbnQgYnkgIlVDUy0yIiBpbiBwYXN0IHVzYWdlLCBpdAotLS0gaXMgYmVzdCB0aG91Z2h0 IG9mIGFzIG5vdCBhIGRhdGEgZm9ybWF0LCBidXQgYXMgYW4gaW5kaWNhdGlvbiB0aGF0IGFuCi0t LSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBpbnRlcnByZXQgYW55IHN1cHBsZW1lbnRhcnkgY2hh cmFjdGVycy4gSW4KLS0tIHBhcnRpY3VsYXIsIGZvciB0aGUgcHVycG9zZXMgb2YgZGF0YSBleGNo YW5nZSwgVUNTLTIgYW5kIFVURi0xNiBhcmUKLS0tIGlkZW50aWNhbCBmb3JtYXRzLiBCb3RoIGFy ZSAxNi1iaXQsIGFuZCBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgY29kZQotLS0gdW5pdCByZXByZXNl bnRhdGlvbi4KLS0tCi0tLSBUaGUgZWZmZWN0aXZlIGRpZmZlcmVuY2UgYmV0d2VlbiBVQ1MtMiBh bmQgVVRGLTE2IGxpZXMgYXQgYSBkaWZmZXJlbnQKLS0tIGxldmVsLCB3aGVuIG9uZSBpcyBpbnRl cnByZXRpbmcgYSBzZXF1ZW5jZSBjb2RlIHVuaXRzIGFzIGNvZGUgcG9pbnRzCi0tLSBvciBhcyBj aGFyYWN0ZXJzLiBJbiB0aGF0IGNhc2UsIGEgVUNTLTIgaW1wbGVtZW50YXRpb24gd291bGQgbm90 Ci0tLSBoYW5kbGUgcHJvY2Vzc2luZyBsaWtlIGNoYXJhY3RlciBwcm9wZXJ0aWVzLCBjb2RlcG9p bnQgYm91bmRhcmllcywKLS0tIGNvbGxhdGlvbiwgZXRjLiBmb3Igc3VwcGxlbWVudGFyeSBjaGFy YWN0ZXJzLiBbTURdICYgW0tXXQotCi0KLS0tIDUuMSBSZWZlcmVuY2UgTWFudWFsLCBOREIgTGlt aXRhdGlvbnMgKDE2LjE0KQotLS0gKiBubyBpbmRleGVzIG9uIFRFWFQgYW5kIEJMT0IgY29sdW1z OyBidXQgVkFSQ0hBUiBhbGxvd2VkCi0tLSAqIGF0dHJpYnV0ZSBuYW1lcyBhcmUgdHJ1bmNhdGVk IHRvIDMxIGNoYXJhY3RlcnMgKGVycm9ycyBpZiBub3QgdW5pcXVlKQotLS0gKiBkYXRhYmFzZSBu YW1lcyBhbmQgdGFibGUgbmFtZXMgY2FuIHRvdGFsIGEgbWF4aW11bSBvZiAxMjIgY2hhcmFjdGVy cwotLS0gKiBwYXN0IGlzc3VlcyB3aXRoIHRhYmxlIG5hbWVzIGhhdmluZyBzcGVjaWFsIGNoYXJh Y3RlcnMKLS0tICogdGhlIG1heGltdW0gbnVtYmVyIG9mIE5EQiB0YWJsZXMgaXMgbGltaXRlZCB0 byAyMDMyMAotLS0gKiB0aGUgbWF4aW11bSBudW1iZXIgb2YgYXR0cmlidXRlcyAoY29sdW1ucyBh bmQgaW5kZXhlcykgcGVyIHRhYmxlIGlzCi0tLSAgIGxpbWl0ZWQgdG8gMTI4Ci0tLSAqIHRoZSBt YXhpbXVtIG51bWJlciBvZiBhdHRyaWJ1dGVzIHBlciBrZXkgaXMgMzIKLS0tICogdGhlIG1heGlt dW0gcGVybWl0dGVkIHNpemUgb2YgYW55IG9uZSByb3cgaXMgOEs7IGVhY2ggQkxPQiBvciBURVhU Ci0tLSAgIGNvbHVtbiBjb250cmlidXRlcyAyNTYgKyA4ID0gMjY0IGJ5dGVzIHRvd2FyZHMgdGhp cyB0b3RhbAotLS0gKiB0aGUgZm9yZWlnbiBrZXkgY29uc3RydWN0IGlzIGlnbm9yZWQgKGp1c3Qg YXMgaXQgaXMgaW4gTXlJU0FNIHRhYmxlcykKLS0tCi0tLSAqIFRoZXJlIGFyZSBubyBkdXJhYmxl IGNvbW1pdHMgb24gZGlzay4gQ29tbWl0cyBhcmUgcmVwbGljYXRlZCwgYnV0IHRoZXJlCi0tLSAg IGlzIG5vIGd1YXJhbnRlZSB0aGF0IGxvZ3MgYXJlIGZsdXNoZWQgdG8gZGlzayBvbiBjb21taXQu Ci0tLSAqIFJhbmdlIHNjYW5zLiBUaGVyZSBhcmUgcXVlcnkgcGVyZm9ybWFuY2UgaXNzdWVzIGR1 ZSB0byBzZXF1ZW50aWFsIGFjY2VzcwotLS0gICB0byB0aGUgTkRCIHN0b3JhZ2UgZW5naW5lOyBp dCBpcyBhbHNvIHJlbGF0aXZlbHkgbW9yZSBleHBlbnNpdmUgdG8gZG8KLS0tICAgbWFueSByYW5n ZSBzY2FucyB0aGFuIGl0IGlzIHdpdGggZWl0aGVyIE15SVNBTSBvciBJbm5vREIuCi0tLSAqIFJl bGlhYmlsaXR5IG9mIFJlY29yZHMgaW4gcmFuZ2UuIFRoZSBSZWNvcmRzIGluIHJhbmdlIHN0YXRp c3RpYyBpcwotLS0gICBhdmFpbGFibGUgYnV0IGlzIG5vdCBjb21wbGV0ZWx5IHRlc3RlZCBvciBv ZmZpY2lhbGx5IHN1cHBvcnRlZC4gVGhpcyBtYXkKLS0tICAgcmVzdWx0IGluIG5vbi1vcHRpbWFs IHF1ZXJ5IHBsYW5zIGluIHNvbWUgY2FzZXMuIElmIG5lY2Vzc2FyeSwgeW91IGNhbgotLS0gICBl bXBsb3kgVVNFIElOREVYIG9yIEZPUkNFIElOREVYIHRvIGFsdGVyIHRoZSBleGVjdXRpb24gcGxh bgotLS0gKiBVbmlxdWUgaGFzaCBpbmRleGVzIGNyZWF0ZWQgd2l0aCBVU0lORyBIQVNIIGNhbm5v dCBiZSB1c2VkIGZvciBhY2Nlc3NpbmcKLS0tICAgYSB0YWJsZSBpZiBOVUxMIGlzIGdpdmVuIGFz IHBhcnQgb2YgdGhlIGtleS4KLS0tCi0tLSAqIE5vIGRpc3RyaWJ1dGVkIHRhYmxlIGxvY2tzLiBB IExPQ0sgVEFCTEVTIHdvcmtzIG9ubHkgZm9yIHRoZSBTUUwgbm9kZSBvbgotLS0gICB3aGljaCB0 aGUgbG9jayBpcyBpc3N1ZWQ7IG5vIG90aGVyIFNRTCBub2RlIGluIHRoZSBjbHVzdGVyIOKAnHNl ZXPigJ0gdGhpcwotLS0gICBsb2NrLiAgRm9yIGV4YW1wbGUsIEFMVEVSIFRBQkxFIGlzIG5vdCBm dWxseSBsb2NraW5nIHdoZW4gcnVubmluZwotLS0gICBtdWx0aXBsZSBNeVNRTCBzZXJ2ZXJzIChT UUwgbm9kZXMpLgotLS0KLS0tICogRERMIG9wZXJhdGlvbnMuIERETCBvcGVyYXRpb25zIChzdWNo IGFzIENSRUFURSBUQUJMRSBvciBBTFRFUiBUQUJMRSkgYXJlCi0tLSAgIG5vdCBzYWZlIGZyb20g ZGF0YSBub2RlIGZhaWx1cmVzLiBJZiBhIGRhdGEgbm9kZSBmYWlscyB3aGlsZSB0cnlpbmcgdG8K LS0tICAgcGVyZm9ybSBvbmUgb2YgdGhlc2UsIHRoZSBkYXRhIGRpY3Rpb25hcnkgaXMgbG9ja2Vk IGFuZCBubyBmdXJ0aGVyIERETAotLS0gICBzdGF0ZW1lbnRzIGNhbiBiZSBleGVjdXRlZCB3aXRo b3V0IHJlc3RhcnRpbmcgdGhlIGNsdXN0ZXIuCi0tLQotLS0gKiBUaGUgcmVzdWx0IG9mIG9wZXJh dGlvbnMgc3VjaCBhcyBBTFRFUiBUQUJMRSBhbmQgQ1JFQVRFIElOREVYIHBlcmZvcm1lZAotLS0g ICBvbiBvbmUgU1FMIG5vZGUgaW4gdGhlIGNsdXN0ZXIgYXJlIG5vdyB2aXNpYmxlIHRvIHRoZSBj bHVzdGVyJ3Mgb3RoZXIKLS0tICAgU1FMIG5vZGVzIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgYWN0 aW9uIGJlaW5nIHRha2VuLgotCi0tLSBxdWl0OwoKPT09IHJlbW92ZWQgZmlsZSAnc3RvcmFnZS9u ZGIvdGVzdC9jcnVuZC9zcmMvdGFibGVzX215c3FsLm1lbW9yeS5zcWwnCi0tLSBhL3N0b3JhZ2Uv bmRiL3Rlc3QvY3J1bmQvc3JjL3RhYmxlc19teXNxbC5tZW1vcnkuc3FsCTIwMTAtMDItMTQgMDU6 MDU6MzEgKzAwMDAKKysrIGIvc3RvcmFnZS9uZGIvdGVzdC9jcnVuZC9zcmMvdGFibGVzX215c3Fs Lm1lbW9yeS5zcWwJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMApAQCAtMSwyMjEgKzAsMCBAQAot U0VUIHN0b3JhZ2VfZW5naW5lPU1FTU9SWTsKLS0tIGZhaWxzIHdpdGgKLS0tIEVSUk9SIDExNjMg KDQyMDAwKSBhdCBsaW5lIDI0OiBUaGUgdXNlZCB0YWJsZSB0eXBlIGRvZXNuJ3Qgc3VwcG9ydCBC TE9CL1RFWFQgY29sdW1ucwotCi0tLSBTRVQgc3RvcmFnZV9lbmdpbmU9TkRCOwotLS0gU0VUIHN0 b3JhZ2VfZW5naW5lPUlOTk9EQjsKLS0tIFNFVCBzdG9yYWdlX2VuZ2luZT1NWUlTQU07Ci0KLURS T1AgREFUQUJBU0UgSUYgRVhJU1RTIGNydW5kZGI7Ci1DUkVBVEUgREFUQUJBU0UgY3J1bmRkYjsK LQotVVNFIGNydW5kZGI7Ci0KLS0tIERST1AgVEFCTEUgSUYgRVhJU1RTIEIxOwotLS0gRFJPUCBU QUJMRSBJRiBFWElTVFMgQjA7Ci0tLSBEUk9QIFRBQkxFIElGIEVYSVNUUyBBOwotCi1DUkVBVEUg VEFCTEUgQSAoCi0gICAgICAgIGlkICAgICAgICAgICAgICBJTlQgICAgICAgICAgICAgTk9UIE5V TEwsCi0gICAgICAgIGNpbnQgICAgICAgICAgICBJTlQsCi0gICAgICAgIGNsb25nICAgICAgICAg ICBCSUdJTlQsCi0gICAgICAgIGNmbG9hdCAgICAgICAgICBGTE9BVCwKLSAgICAgICAgY2RvdWJs ZSAgICAgICAgIERPVUJMRSwKLSAgICAgICAgQ09OU1RSQUlOVCBQS19BXzAgUFJJTUFSWSBLRVkg KGlkKQotKTsKLQotQ1JFQVRFIFRBQkxFIEIwICgKLSAgICAgICAgaWQgICAgICAgICAgICAgIElO VCAgICAgICAgICAgICBOT1QgTlVMTCwKLSAgICAgICAgY2ludCAgICAgICAgICAgIElOVCwKLSAg ICAgICAgY2xvbmcgICAgICAgICAgIEJJR0lOVCwKLSAgICAgICAgY2Zsb2F0ICAgICAgICAgIEZM T0FULAotICAgICAgICBjZG91YmxlICAgICAgICAgRE9VQkxFLAotICAgICAgICBhX2lkICAgICAg ICAgICAgSU5ULAotICAgICAgICBjdmFyYmluYXJ5X2RlZiAgVkFSQklOQVJZKDIwMiksCi0gICAg ICAgIGN2YXJjaGFyX2RlZiAgICBWQVJDSEFSKDIwMiksCi0gICAgICAgIGNibG9iX2RlZiAgICAg ICBCTE9CKDIwMiksCi0gICAgICAgIGN0ZXh0X2RlZiAgICAgICBURVhUKDIwMiksCi0gICAgICAg IENPTlNUUkFJTlQgUEtfQjBfMCBQUklNQVJZIEtFWSAoaWQpLAotICAgICAgICBDT05TVFJBSU5U IEZLX0IwXzEgRk9SRUlHTiBLRVkgKGFfaWQpIFJFRkVSRU5DRVMgQSAoaWQpCi0pOwotLS0gICAg ICAgIGN2YXJjaGFyX2FzY2lpICBWQVJDSEFSKDIwMikgQ0hBUkFDVEVSIFNFVCBBU0NJSSwKLS0t ICAgICAgICBjdGV4dF9hc2NpaSAgICAgVEVYVCgyMDIpIENIQVJBQ1RFUiBTRVQgQVNDSUksCi0t LSAgICAgICAgY3ZhcmNoYXJfdWNzMiAgIFZBUkNIQVIoMjAyKSBDSEFSQUNURVIgU0VUIFVDUzIs Ci0tLSAgICAgICAgY3RleHRfdWNzMiAgICAgIFRFWFQoMjAyKSBDSEFSQUNURVIgU0VUIFVDUzIs Ci0tLSAgICAgICAgY3ZhcmNoYXJfdXRmOCAgIFZBUkNIQVIoMjAyKSBDSEFSQUNURVIgU0VUIFVU RjgsCi0tLSAgICAgICAgY3RleHRfdXRmOCAgICAgIFRFWFQoMjAyKSBDSEFSQUNURVIgU0VUIFVU RjgsCi0KLUNSRUFURSBUQUJMRSBCMSAoCi0gICAgICAgIGlkICAgICAgICAgICAgICBJTlQgTk9U IE5VTEwsCi0gICAgICAgIENPTlNUUkFJTlQgUEtfQjFfMCBQUklNQVJZIEtFWSAoaWQpCi0pOwot Ci1DUkVBVEUgSU5ERVggSV9CMF9GSyBPTiBCMCAoCi0gICAgICAgIGFfaWQKLSk7Ci0KLQotLS0g VEVYVCBzdG9yZXMgZmlyc3QgMjU2IGluIHByaW1hcnkgdGFibGUsIHJlc3QgaW4gcGFydHMgdGFi bGUgYXQKLS0tIGRpZmZlcmVudCBjaHVuayBzaXplczsgVkFSQ0hBUiBhbHdheXMgc3RvcmVzIGlu IHByaW1hcnkgdGFibGVzIGFuZAotLS0gdGh1cyBpcyBzdWJqZWN0IHRvIDhrIGxpbWl0Ci0KLQot Ci0tLSA1LjEgUmVmZXJlbmNlIE1hbnVhbCwgRGF0YSBUeXBlcyAoMTApCi0tLSBOdW1lcmljIFR5 cGVzOgotLS0gKiBCSVRbKE0pXSAoMSA8PSBNIDw9IDY0LCBkZWZhdWx0PSAxLCBhcHByb3hpbWF0 ZWx5IChNKzcpLzggYnl0ZXMpCi0tLSAqIEJPT0wsIEJPT0xFQU4gKHN5bm9ueW1zIGZvciBUSU5Z SU5UKDEpKQotLS0gKiBJTlRbKE0pXSwgSU5URUdFUlsoTSldIFtVTlNJR05FRF0gKDQgYnl0ZXMp Ci0tLSAgIFRJTllJTlRbKE0pXSAoMSBieXRlKSwgU01BTExJTlRbKE0pXSAoMiBieXRlcyksCi0t LSAgIE1FRElVTUlOVFsoTSldICgzIGJ5dGVzKSwgQklHSU5UWyhNKV0gKDggYnl0ZXMpCi0tLSAq IEZMT0FUWyhNLEQpXSBbVU5TSUdORURdICg0IGJ5dGVzIGlmIDAgPD0gcCA8PSAyNCwgOCBieXRl cyBpZiAyNSA8PSBwIDw9IDUzKQotLS0gKiBET1VCTEVbKE0sRCldLCBET1VCTEVbKE0sRCldLCBS RUFMWyhNLEQpXSBbVU5TSUdORURdICg4IGJ5dGVzKQotLS0gKiBERUNJTUFMWyhNWyxEXSldLERF Q1soTVssRF0pXSxOVU1FUklDWyhNWyxEXSldLEZJWEVEWyhNWyxEXSldIFtVTlNJR05FRF0KLS0t ICAgKE0qNC85IGJ5dGVzIHBsdXMgZXh0cmEpCi0tLSBEYXRlIFR5cGVzOgotLS0gKiBEQVRFVElN RSAoOCBieXRlcykKLS0tICogREFURSwgVElNRSAoMyBieXRlcykKLS0tICogVElNRVNUQU1QICg0 IGJ5dGVzKQotLS0gKiBZRUFSWygyfDQpXSAoMSBieXRlKQotLS0gU3RyaW5nIFR5cGVzOgotLS0g KiBCSU5BUlkoTSksIFtOQVRJT05BTF0gQ0hBUlsoTSldIFtDSEFSQUNURVIgU0VUIG5hbWVdIFtD T0xMQVRFIG5hbWVdCi0tLSAgIChmaXhlZC1sZW5ndGgsIDAgPD0gTSA8PSAyXjgtMSwgZGVmYXVs dD0xLCByaWdodC1wYWRkZWQpCi0tLSAqIFZBUkJJTkFSWShNKSwgW05BVElPTkFMXSBWQVJDSEFS WyhNKV0gW0NIQVJBQ1RFUiBTRVQgbmFtZV0gW0NPTExBVEUgbmFtZV0KLS0tICAgKHZhcmlhYmxl LWxlbmd0aCwgMCA8PSBNIDw9IDJeMTYtMSwgMS4uMi1ieXRlIGxlbmd0aCBwcmVmaXgpCi0tLSAq IEJMT0JbKE0pXSwgVEVYVFsoTSldIFtDSEFSQUNURVIgU0VUIG5hbWVdIFtDT0xMQVRFIG5hbWVd Ci0tLSAgIChtYXggbGVuZ3RoID0gMl4xNi0xIGJ5dGVzLCAyLWJ5dGUgbGVuZ3RoIHByZWZpeCwg bm8gZGVmYXVsdCB2YWx1ZXMpCi0tLSAqIFRJTllCTE9CLCBUSU5ZVEVYVCAoMS1ieXRlIGxlbmd0 aCBwcmVmaXgpLAotLS0gKiBNRURJVU1CTE9CLCBNRURJVU1URVhUICgzLWJ5dGUgbGVuZ3RoIHBy ZWZpeCksCi0tLSAqIExPTkdCTE9CLCBMT05HVEVYVCAoNC1ieXRlIGxlbmd0aCBwcmVmaXgpCi0t LSAqIEVOVU0gKG1heCAyXjE2LTEgZWxlbWVudHMsIDEuLjIgYnl0ZXMpCi0tLSAqIFNFVCAobWF4 IDY0IGVsZW1lbnRzLCAxLDIsMyw0LCBvciA4IGJ5dGVzKQotLS0gdmFyeWluZyBzaXplIHR5cGVz IHN1YmplY3QgdG8gdGhlIG1heGltdW0gcm93IHNpemUKLS0tIGNoYXJhY3RlciBzaXplcyBzdWJq ZWN0IHRvIHRoZSBjaGFyYWN0ZXIgc2V0ICh1dGY4ID0gMS4uMyBieXRlcy9jaGFyYWN0ZXIpCi0K LS0tIFRoZSBsYXJnZXN0IHZhbHVlcyBvZiBhIEJMT0Igb3IgVEVYVCBvYmplY3QgdGhhdCBjYW4g YmUgdHJhbnNtaXR0ZWQKLS0tIGJldHdlZW4gdGhlIGNsaWVudCBhbmQgc2VydmVyIGlzIGRldGVy bWluZWQgYnkgdGhlIGFtb3VudCBvZiBhdmFpbGFibGUKLS0tIG1lbW9yeSBhbmQgdGhlIHNpemUg b2YgdGhlIGNvbW11bmljYXRpb25zIGJ1ZmZlcnMuIFlvdSBjYW4gY2hhbmdlIHRoZQotLS0gbWVz c2FnZSBidWZmZXIgc2l6ZSBieSBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIG1heF9hbGxvd2Vk X3BhY2tldAotLS0gdmFyaWFibGUsIGJ1dCB5b3UgbXVzdCBkbyBzbyBmb3IgYm90aCB0aGUgc2Vy dmVyIGFuZCB0aGUgY2xpZW50IHByb2dyYW0uCi0KLS0tIEVhY2ggQkxPQiBvciBURVhUIHZhbHVl IGlzIHJlcHJlc2VudGVkIGludGVybmFsbHkgYnkgYSBzZXBhcmF0ZWx5Ci0tLSBhbGxvY2F0ZWQg b2JqZWN0LiBUaGlzIGlzIGluIGNvbnRyYXN0IHRvIGFsbCBvdGhlciBkYXRhIHR5cGVzLCBmb3Ig d2hpY2gKLS0tIHN0b3JhZ2UgaXMgYWxsb2NhdGVkIG9uY2UgcGVyIGNvbHVtbiB3aGVuIHRoZSB0 YWJsZSBpcyBvcGVuZWQuCi0KLS0tIFRFWFQgYW5kIEJMT0IgY29sdW1ucyBhcmUgaW1wbGVtZW50 ZWQgZGlmZmVyZW50bHkgaW4gdGhlIE5EQiBDbHVzdGVyCi0tLSBzdG9yYWdlIGVuZ2luZSwgd2hl cmVpbiBlYWNoIHJvdyBpbiBhIFRFWFQgY29sdW1uIGlzIG1hZGUgdXAgb2YgdHdvCi0tLSBzZXBh cmF0ZSBwYXJ0cy4gT25lIG9mIHRoZXNlIGlzIG9mIGZpeGVkIHNpemUgKDI1NiBieXRlcyksIGFu ZCBpcwotLS0gYWN0dWFsbHkgc3RvcmVkIGluIHRoZSBvcmlnaW5hbCB0YWJsZS4gVGhlIG90aGVy IGNvbnNpc3RzIG9mIGFueSBkYXRhCi0tLSBpbiBleGNlc3Mgb2YgMjU2IGJ5dGVzLCB3aGljaCBp cyBzdG9yZWQgaW4gYSBoaWRkZW4gdGFibGUuIFRoZSByb3dzCi0tLSBpbiB0aGlzIHNlY29uZCB0 YWJsZSBhcmUgYWx3YXlzIDIsMDAwIGJ5dGVzIGxvbmcuIFRoaXMgbWVhbnMgdGhhdCB0aGUKLS0t IHNpemUgb2YgYSBURVhUIGNvbHVtbiBpcyAyNTYgaWYgc2l6ZSA8PSAyNTYgKHdoZXJlIHNpemUg cmVwcmVzZW50cwotLS0gdGhlIHNpemUgb2YgdGhlIHJvdyk7IG90aGVyd2lzZSwgdGhlIHNpemUg aXMgMjU2ICsgc2l6ZSArICgyMDAwIOKAkwotLS0gKHNpemUg4oCTIDI1NikgJSAyMDAwKS4KLQot LS0gRm9yIHRhYmxlcyB1c2luZyB0aGUgTkRCQ0xVU1RFUiBzdG9yYWdlIGVuZ2luZSwgdGhlcmUg aXMgdGhlIGZhY3RvciBvZgotLS0gNC1ieXRlIGFsaWdubWVudCB0byBiZSB0YWtlbiBpbnRvIGFj Y291bnQgd2hlbiBjYWxjdWxhdGluZyBzdG9yYWdlCi0tLSByZXF1aXJlbWVudHMuIFRoaXMgbWVh bnMgdGhhdCBhbGwgTkRCIGRhdGEgc3RvcmFnZSBpcyBkb25lIGluIG11bHRpcGxlcwotLS0gb2Yg NCBieXRlcy4gIEZvciBleGFtcGxlLCBpbiBOREJDTFVTVEVSIHRhYmxlcywgdGhlIFRJTllJTlQs IFNNQUxMSU5ULAotLS0gTUVESVVNSU5ULCBhbmQgSU5URUdFUiAoSU5UKSBjb2x1bW4gdHlwZXMg ZWFjaCByZXF1aXJlIDQgYnl0ZXMgc3RvcmFnZQotLS0gcGVyIHJlY29yZCBkdWUgdG8gdGhlIGFs aWdubWVudCBmYWN0b3IuCi0KLS0tIFdoZW4gY2FsY3VsYXRpbmcgc3RvcmFnZSByZXF1aXJlbWVu dHMgZm9yIE15U1FMIENsdXN0ZXIgdGFibGVzLCB5b3UgbXVzdAotLS0gYWxzbyByZW1lbWJlciB0 aGF0IGV2ZXJ5IHRhYmxlIHVzaW5nIHRoZSBOREJDTFVTVEVSIHN0b3JhZ2UgZW5naW5lCi0tLSBy ZXF1aXJlcyBhIHByaW1hcnkga2V5OyBpZiBubyBwcmltYXJ5IGtleSBpcyBkZWZpbmVkIGJ5IHRo ZSB1c2VyLCB0aGVuIGEKLS0tIOKAnGhpZGRlbuKAnSBwcmltYXJ5IGtleSB3aWxsIGJlIGNyZWF0 ZWQgYnkgTkRCLiAgVGhpcyBoaWRkZW4gcHJpbWFyeSBrZXkKLS0tIGNvbnN1bWVzIDMxLTM1IGJ5 dGVzIHBlciB0YWJsZSByZWNvcmQuCi0KLS0tIFRoZSBOREJDTFVTVEVSIHN0b3JhZ2UgZW5naW5l IGluIE15U1FMIDUuMSBzdXBwb3J0cyB2YXJpYWJsZS13aWR0aAotLS0gY29sdW1ucy4gVGhpcyBt ZWFucyB0aGF0IGEgVkFSQ0hBUiBjb2x1bW4gaW4gYSBNeVNRTCBDbHVzdGVyIHRhYmxlCi0tLSBy ZXF1aXJlcyB0aGUgc2FtZSBhbW91bnQgb2Ygc3RvcmFnZSBhcyBpdCB3b3VsZCB1c2luZyBhbnkg b3RoZXIKLS0tIHN0b3JhZ2UgZW5naW5lLCB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCBzdWNoIHZh bHVlcyBhcmUgNC1ieXRlCi0tLSBhbGlnbmVkLiBUaHVzLCB0aGUgc3RyaW5nICdhYmNkJyBzdG9y ZWQgaW4gYSBWQVJDSEFSKDUwKSBjb2x1bW4gdXNpbmcKLS0tIHRoZSBsYXRpbjEgY2hhcmFjdGVy IHNldCByZXF1aXJlcyA4IGJ5dGVzIChyYXRoZXIgdGhhbiA2IGJ5dGVzIGZvcgotLS0gdGhlIHNh bWUgY29sdW1uIHZhbHVlIGluIGEgTXlJU0FNIHRhYmxlKS4gVGhpcyByZXByZXNlbnRzIGEgY2hh bmdlIGluCi0tLSBiZWhhdmlvciBmcm9tIGVhcmxpZXIgdmVyc2lvbnMgb2YgTkRCLUNMVVNURVIs IHdoZXJlIGEgVkFSQ0hBUig1MCkKLS0tIGNvbHVtbiB3b3VsZCByZXF1aXJlIDUyIGJ5dGVzIHN0 b3JhZ2UgcGVyIHJlY29yZCByZWdhcmRsZXNzIG9mIHRoZQotLS0gbGVuZ3RoIG9mIHRoZSBzdHJp bmcgYmVpbmcgc3RvcmVkLgotCi0tLSBZb3UgbWF5IGZpbmQgdGhlIG5kYl9zaXplLnBsIHV0aWxp dHkgdG8gYmUgdXNlZnVsIGZvciBlc3RpbWF0aW5nIE5EQgotLS0gc3RvcmFnZSByZXF1aXJlbWVu dHMuIFRoaXMgUGVybCBzY3JpcHQgY29ubmVjdHMgdG8gYSBjdXJyZW50IE15U1FMCi0tLSAobm9u LUNsdXN0ZXIpIGRhdGFiYXNlIGFuZCBjcmVhdGVzIGEgcmVwb3J0IG9uIGhvdyBtdWNoIHNwYWNl IHRoYXQKLS0tIGRhdGFiYXNlIHdvdWxkIHJlcXVpcmUgaWYgaXQgdXNlZCB0aGUgTkRCQ0xVU1RF UiBzdG9yYWdlIGVuZ2luZS4gU2VlCi0tLSBTZWN0aW9uIDE2LjEwLjE1LCAibmRiX3NpemUucGwg 4oCUIE5EQkNMVVNURVIgU2l6ZSBSZXF1aXJlbWVudCBFc3RpbWF0b3IiLAotLS0gZm9yIG1vcmUg aW5mb3JtYXRpb24uCi0KLS0tIDkuMi4gVGhlIENoYXJhY3RlciBTZXQgVXNlZCBmb3IgRGF0YSBh bmQgU29ydGluZwotLS0gZGVmYXVsdDogbGF0aW4xIChjcDEyNTIgV2VzdCBFdXJvcGVhbikgY2hh cmFjdGVyIHNldCBhbmQgdGhlCi0tLSBsYXRpbjFfc3dlZGlzaF9jaSBjb2xsYXRpb24KLS0tIENI QVJTRVQgbWF5IGJlIG9uZSBvZiBiaW5hcnksIGFybXNjaWk4LCBhc2NpaSwgYmlnNSwgY3AxMjUw LCBjcDEyNTEsCi0tLSBjcDEyNTYsIGNwMTI1NywgY3A4NTAsIGNwODUyLCBjcDg2NiwgY3A5MzIs IGRlYzgsIGV1Y2pwbXMsIGV1Y2tyLAotLS0gZ2IyMzEyLCBnYmssIGdlb3N0ZDgsIGdyZWVrLCBo ZWJyZXcsIGhwOCwga2V5YmNzMiwga29pOHIsIGtvaTh1LAotLS0gbGF0aW4xLCBsYXRpbjIsIGxh dGluNSwgbGF0aW43LCBtYWNjZSwgbWFjcm9tYW4sIHNqaXMsIHN3ZTcsIHRpczYyMCwKLS0tIHVj czIsIHVqaXMsIHV0ZjguCi0KLS0tIGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldDoKLS0tIFRoZSBu YXRpdmUgY2hhcmFjdGVyIGVuY29kaW5nIG9mIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdl IGlzIFVURi0xNi4KLS0tIFtub3Qgc3VyZTogCi0tLSAgICAgIG91dC5wcmludGxuKCJkZWZhdWx0 IGNoYXJzZXQ6ICIgKyBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXQuZGVmYXVsdENoYXJzZXQoKS5k aXNwbGF5TmFtZSgpKTsKLS0tICBzaG93czogVVRGLTgKLS0tIF0KLQotLS0gaHR0cDovL3VuaWNv ZGUub3JnL2ZhcS9iYXNpY19xLmh0bWwjMTQKLS0tIFE6IFdoYXQgaXMgdGhlIGRpZmZlcmVuY2Ug YmV0d2VlbiBVQ1MtMiBhbmQgVVRGLTE2PwotLS0gQTogVUNTLTIgaXMgd2hhdCBhIFVuaWNvZGUg aW1wbGVtZW50YXRpb24gd2FzIHVwIHRvIFVuaWNvZGUgMS4xLAotLS0gYmVmb3JlIHN1cnJvZ2F0 ZSBjb2RlIHBvaW50cyBhbmQgVVRGLTE2IHdlcmUgYWRkZWQgYXMgY29uY2VwdHMgdG8KLS0tIFZl cnNpb24gMi4wIG9mIHRoZSBzdGFuZGFyZC4gVGhpcyB0ZXJtIHNob3VsZCBiZSBub3cgYmUgYXZv aWRlZC4KLS0tCi0tLSBXaGVuIGludGVycHJldGluZyB3aGF0IHBlb3BsZSBoYXZlIG1lYW50IGJ5 ICJVQ1MtMiIgaW4gcGFzdCB1c2FnZSwgaXQKLS0tIGlzIGJlc3QgdGhvdWdodCBvZiBhcyBub3Qg YSBkYXRhIGZvcm1hdCwgYnV0IGFzIGFuIGluZGljYXRpb24gdGhhdCBhbgotLS0gaW1wbGVtZW50 YXRpb24gZG9lcyBub3QgaW50ZXJwcmV0IGFueSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMuIElu Ci0tLSBwYXJ0aWN1bGFyLCBmb3IgdGhlIHB1cnBvc2VzIG9mIGRhdGEgZXhjaGFuZ2UsIFVDUy0y IGFuZCBVVEYtMTYgYXJlCi0tLSBpZGVudGljYWwgZm9ybWF0cy4gQm90aCBhcmUgMTYtYml0LCBh bmQgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIGNvZGUKLS0tIHVuaXQgcmVwcmVzZW50YXRpb24uCi0t LQotLS0gVGhlIGVmZmVjdGl2ZSBkaWZmZXJlbmNlIGJldHdlZW4gVUNTLTIgYW5kIFVURi0xNiBs aWVzIGF0IGEgZGlmZmVyZW50Ci0tLSBsZXZlbCwgd2hlbiBvbmUgaXMgaW50ZXJwcmV0aW5nIGEg c2VxdWVuY2UgY29kZSB1bml0cyBhcyBjb2RlIHBvaW50cwotLS0gb3IgYXMgY2hhcmFjdGVycy4g SW4gdGhhdCBjYXNlLCBhIFVDUy0yIGltcGxlbWVudGF0aW9uIHdvdWxkIG5vdAotLS0gaGFuZGxl IHByb2Nlc3NpbmcgbGlrZSBjaGFyYWN0ZXIgcHJvcGVydGllcywgY29kZXBvaW50IGJvdW5kYXJp ZXMsCi0tLSBjb2xsYXRpb24sIGV0Yy4gZm9yIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycy4gW01E XSAmIFtLV10KLQotCi0tLSA1LjEgUmVmZXJlbmNlIE1hbnVhbCwgTkRCIExpbWl0YXRpb25zICgx Ni4xNCkKLS0tICogbm8gaW5kZXhlcyBvbiBURVhUIGFuZCBCTE9CIGNvbHVtczsgYnV0IFZBUkNI QVIgYWxsb3dlZAotLS0gKiBhdHRyaWJ1dGUgbmFtZXMgYXJlIHRydW5jYXRlZCB0byAzMSBjaGFy YWN0ZXJzIChlcnJvcnMgaWYgbm90IHVuaXF1ZSkKLS0tICogZGF0YWJhc2UgbmFtZXMgYW5kIHRh YmxlIG5hbWVzIGNhbiB0b3RhbCBhIG1heGltdW0gb2YgMTIyIGNoYXJhY3RlcnMKLS0tICogcGFz dCBpc3N1ZXMgd2l0aCB0YWJsZSBuYW1lcyBoYXZpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzCi0tLSAq IHRoZSBtYXhpbXVtIG51bWJlciBvZiBOREIgdGFibGVzIGlzIGxpbWl0ZWQgdG8gMjAzMjAKLS0t ICogdGhlIG1heGltdW0gbnVtYmVyIG9mIGF0dHJpYnV0ZXMgKGNvbHVtbnMgYW5kIGluZGV4ZXMp IHBlciB0YWJsZSBpcwotLS0gICBsaW1pdGVkIHRvIDEyOAotLS0gKiB0aGUgbWF4aW11bSBudW1i ZXIgb2YgYXR0cmlidXRlcyBwZXIga2V5IGlzIDMyCi0tLSAqIHRoZSBtYXhpbXVtIHBlcm1pdHRl ZCBzaXplIG9mIGFueSBvbmUgcm93IGlzIDhLOyBlYWNoIEJMT0Igb3IgVEVYVAotLS0gICBjb2x1 bW4gY29udHJpYnV0ZXMgMjU2ICsgOCA9IDI2NCBieXRlcyB0b3dhcmRzIHRoaXMgdG90YWwKLS0t ICogdGhlIGZvcmVpZ24ga2V5IGNvbnN0cnVjdCBpcyBpZ25vcmVkIChqdXN0IGFzIGl0IGlzIGlu IE15SVNBTSB0YWJsZXMpCi0tLQotLS0gKiBUaGVyZSBhcmUgbm8gZHVyYWJsZSBjb21taXRzIG9u IGRpc2suIENvbW1pdHMgYXJlIHJlcGxpY2F0ZWQsIGJ1dCB0aGVyZQotLS0gICBpcyBubyBndWFy YW50ZWUgdGhhdCBsb2dzIGFyZSBmbHVzaGVkIHRvIGRpc2sgb24gY29tbWl0LgotLS0gKiBSYW5n ZSBzY2Fucy4gVGhlcmUgYXJlIHF1ZXJ5IHBlcmZvcm1hbmNlIGlzc3VlcyBkdWUgdG8gc2VxdWVu dGlhbCBhY2Nlc3MKLS0tICAgdG8gdGhlIE5EQiBzdG9yYWdlIGVuZ2luZTsgaXQgaXMgYWxzbyBy ZWxhdGl2ZWx5IG1vcmUgZXhwZW5zaXZlIHRvIGRvCi0tLSAgIG1hbnkgcmFuZ2Ugc2NhbnMgdGhh biBpdCBpcyB3aXRoIGVpdGhlciBNeUlTQU0gb3IgSW5ub0RCLgotLS0gKiBSZWxpYWJpbGl0eSBv ZiBSZWNvcmRzIGluIHJhbmdlLiBUaGUgUmVjb3JkcyBpbiByYW5nZSBzdGF0aXN0aWMgaXMKLS0t ICAgYXZhaWxhYmxlIGJ1dCBpcyBub3QgY29tcGxldGVseSB0ZXN0ZWQgb3Igb2ZmaWNpYWxseSBz dXBwb3J0ZWQuIFRoaXMgbWF5Ci0tLSAgIHJlc3VsdCBpbiBub24tb3B0aW1hbCBxdWVyeSBwbGFu cyBpbiBzb21lIGNhc2VzLiBJZiBuZWNlc3NhcnksIHlvdSBjYW4KLS0tICAgZW1wbG95IFVTRSBJ TkRFWCBvciBGT1JDRSBJTkRFWCB0byBhbHRlciB0aGUgZXhlY3V0aW9uIHBsYW4KLS0tICogVW5p cXVlIGhhc2ggaW5kZXhlcyBjcmVhdGVkIHdpdGggVVNJTkcgSEFTSCBjYW5ub3QgYmUgdXNlZCBm b3IgYWNjZXNzaW5nCi0tLSAgIGEgdGFibGUgaWYgTlVMTCBpcyBnaXZlbiBhcyBwYXJ0IG9mIHRo ZSBrZXkuCi0tLQotLS0gKiBObyBkaXN0cmlidXRlZCB0YWJsZSBsb2Nrcy4gQSBMT0NLIFRBQkxF UyB3b3JrcyBvbmx5IGZvciB0aGUgU1FMIG5vZGUgb24KLS0tICAgd2hpY2ggdGhlIGxvY2sgaXMg aXNzdWVkOyBubyBvdGhlciBTUUwgbm9kZSBpbiB0aGUgY2x1c3RlciDigJxzZWVz4oCdIHRoaXMK LS0tICAgbG9jay4gIEZvciBleGFtcGxlLCBBTFRFUiBUQUJMRSBpcyBub3QgZnVsbHkgbG9ja2lu ZyB3aGVuIHJ1bm5pbmcKLS0tICAgbXVsdGlwbGUgTXlTUUwgc2VydmVycyAoU1FMIG5vZGVzKS4K LS0tCi0tLSAqIERETCBvcGVyYXRpb25zLiBEREwgb3BlcmF0aW9ucyAoc3VjaCBhcyBDUkVBVEUg VEFCTEUgb3IgQUxURVIgVEFCTEUpIGFyZQotLS0gICBub3Qgc2FmZSBmcm9tIGRhdGEgbm9kZSBm YWlsdXJlcy4gSWYgYSBkYXRhIG5vZGUgZmFpbHMgd2hpbGUgdHJ5aW5nIHRvCi0tLSAgIHBlcmZv cm0gb25lIG9mIHRoZXNlLCB0aGUgZGF0YSBkaWN0aW9uYXJ5IGlzIGxvY2tlZCBhbmQgbm8gZnVy dGhlciBEREwKLS0tICAgc3RhdGVtZW50cyBjYW4gYmUgZXhlY3V0ZWQgd2l0aG91dCByZXN0YXJ0 aW5nIHRoZSBjbHVzdGVyLgotLS0KLS0tICogVGhlIHJlc3VsdCBvZiBvcGVyYXRpb25zIHN1Y2gg YXMgQUxURVIgVEFCTEUgYW5kIENSRUFURSBJTkRFWCBwZXJmb3JtZWQKLS0tICAgb24gb25lIFNR TCBub2RlIGluIHRoZSBjbHVzdGVyIGFyZSBub3cgdmlzaWJsZSB0byB0aGUgY2x1c3RlcidzIG90 aGVyCi0tLSAgIFNRTCBub2RlcyB3aXRob3V0IGFueSBhZGRpdGlvbmFsIGFjdGlvbiBiZWluZyB0 YWtlbi4KLQotLS0gcXVpdDsKCj09PSByZW1vdmVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1 bmQvc3JjL3RhYmxlc19teXNxbC5teWlzYW0uc3FsJwotLS0gYS9zdG9yYWdlL25kYi90ZXN0L2Ny dW5kL3NyYy90YWJsZXNfbXlzcWwubXlpc2FtLnNxbAkyMDEwLTAyLTE0IDA1OjA1OjMxICswMDAw CisrKyBiL3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3JjL3RhYmxlc19teXNxbC5teWlzYW0uc3Fs CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKQEAgLTEsMjE3ICswLDAgQEAKLS0tIFNFVCBzdG9y YWdlX2VuZ2luZT1OREI7Ci0tLSBTRVQgc3RvcmFnZV9lbmdpbmU9SU5OT0RCOwotU0VUIHN0b3Jh Z2VfZW5naW5lPU1ZSVNBTTsKLQotRFJPUCBEQVRBQkFTRSBJRiBFWElTVFMgY3J1bmRkYjsKLUNS RUFURSBEQVRBQkFTRSBjcnVuZGRiOwotCi1VU0UgY3J1bmRkYjsKLQotLS0gRFJPUCBUQUJMRSBJ RiBFWElTVFMgQjE7Ci0tLSBEUk9QIFRBQkxFIElGIEVYSVNUUyBCMDsKLS0tIERST1AgVEFCTEUg SUYgRVhJU1RTIEE7Ci0KLUNSRUFURSBUQUJMRSBBICgKLSAgICAgICAgaWQgICAgICAgICAgICAg IElOVCAgICAgICAgICAgICBOT1QgTlVMTCwKLSAgICAgICAgY2ludCAgICAgICAgICAgIElOVCwK LSAgICAgICAgY2xvbmcgICAgICAgICAgIEJJR0lOVCwKLSAgICAgICAgY2Zsb2F0ICAgICAgICAg IEZMT0FULAotICAgICAgICBjZG91YmxlICAgICAgICAgRE9VQkxFLAotICAgICAgICBDT05TVFJB SU5UIFBLX0FfMCBQUklNQVJZIEtFWSAoaWQpCi0pOwotCi1DUkVBVEUgVEFCTEUgQjAgKAotICAg ICAgICBpZCAgICAgICAgICAgICAgSU5UICAgICAgICAgICAgIE5PVCBOVUxMLAotICAgICAgICBj aW50ICAgICAgICAgICAgSU5ULAotICAgICAgICBjbG9uZyAgICAgICAgICAgQklHSU5ULAotICAg ICAgICBjZmxvYXQgICAgICAgICAgRkxPQVQsCi0gICAgICAgIGNkb3VibGUgICAgICAgICBET1VC TEUsCi0gICAgICAgIGFfaWQgICAgICAgICAgICBJTlQsCi0gICAgICAgIGN2YXJiaW5hcnlfZGVm ICBWQVJCSU5BUlkoMjAyKSwKLSAgICAgICAgY3ZhcmNoYXJfZGVmICAgIFZBUkNIQVIoMjAyKSwK LSAgICAgICAgY2Jsb2JfZGVmICAgICAgIEJMT0IoMjAyKSwKLSAgICAgICAgY3RleHRfZGVmICAg ICAgIFRFWFQoMjAyKSwKLSAgICAgICAgQ09OU1RSQUlOVCBQS19CMF8wIFBSSU1BUlkgS0VZIChp ZCksCi0gICAgICAgIENPTlNUUkFJTlQgRktfQjBfMSBGT1JFSUdOIEtFWSAoYV9pZCkgUkVGRVJF TkNFUyBBIChpZCkKLSk7Ci0tLSAgICAgICAgY3ZhcmNoYXJfYXNjaWkgIFZBUkNIQVIoMjAyKSBD SEFSQUNURVIgU0VUIEFTQ0lJLAotLS0gICAgICAgIGN0ZXh0X2FzY2lpICAgICBURVhUKDIwMikg Q0hBUkFDVEVSIFNFVCBBU0NJSSwKLS0tICAgICAgICBjdmFyY2hhcl91Y3MyICAgVkFSQ0hBUigy MDIpIENIQVJBQ1RFUiBTRVQgVUNTMiwKLS0tICAgICAgICBjdGV4dF91Y3MyICAgICAgVEVYVCgy MDIpIENIQVJBQ1RFUiBTRVQgVUNTMiwKLS0tICAgICAgICBjdmFyY2hhcl91dGY4ICAgVkFSQ0hB UigyMDIpIENIQVJBQ1RFUiBTRVQgVVRGOCwKLS0tICAgICAgICBjdGV4dF91dGY4ICAgICAgVEVY VCgyMDIpIENIQVJBQ1RFUiBTRVQgVVRGOCwKLQotQ1JFQVRFIFRBQkxFIEIxICgKLSAgICAgICAg aWQgICAgICAgICAgICAgIElOVCBOT1QgTlVMTCwKLSAgICAgICAgQ09OU1RSQUlOVCBQS19CMV8w IFBSSU1BUlkgS0VZIChpZCkKLSk7Ci0KLUNSRUFURSBJTkRFWCBJX0IwX0ZLIE9OIEIwICgKLSAg ICAgICAgYV9pZAotKTsKLQotCi0tLSBURVhUIHN0b3JlcyBmaXJzdCAyNTYgaW4gcHJpbWFyeSB0 YWJsZSwgcmVzdCBpbiBwYXJ0cyB0YWJsZSBhdAotLS0gZGlmZmVyZW50IGNodW5rIHNpemVzOyBW QVJDSEFSIGFsd2F5cyBzdG9yZXMgaW4gcHJpbWFyeSB0YWJsZXMgYW5kCi0tLSB0aHVzIGlzIHN1 YmplY3QgdG8gOGsgbGltaXQKLQotCi0KLS0tIDUuMSBSZWZlcmVuY2UgTWFudWFsLCBEYXRhIFR5 cGVzICgxMCkKLS0tIE51bWVyaWMgVHlwZXM6Ci0tLSAqIEJJVFsoTSldICgxIDw9IE0gPD0gNjQs IGRlZmF1bHQ9IDEsIGFwcHJveGltYXRlbHkgKE0rNykvOCBieXRlcykKLS0tICogQk9PTCwgQk9P TEVBTiAoc3lub255bXMgZm9yIFRJTllJTlQoMSkpCi0tLSAqIElOVFsoTSldLCBJTlRFR0VSWyhN KV0gW1VOU0lHTkVEXSAoNCBieXRlcykKLS0tICAgVElOWUlOVFsoTSldICgxIGJ5dGUpLCBTTUFM TElOVFsoTSldICgyIGJ5dGVzKSwKLS0tICAgTUVESVVNSU5UWyhNKV0gKDMgYnl0ZXMpLCBCSUdJ TlRbKE0pXSAoOCBieXRlcykKLS0tICogRkxPQVRbKE0sRCldIFtVTlNJR05FRF0gKDQgYnl0ZXMg aWYgMCA8PSBwIDw9IDI0LCA4IGJ5dGVzIGlmIDI1IDw9IHAgPD0gNTMpCi0tLSAqIERPVUJMRVso TSxEKV0sIERPVUJMRVsoTSxEKV0sIFJFQUxbKE0sRCldIFtVTlNJR05FRF0gKDggYnl0ZXMpCi0t LSAqIERFQ0lNQUxbKE1bLERdKV0sREVDWyhNWyxEXSldLE5VTUVSSUNbKE1bLERdKV0sRklYRURb KE1bLERdKV0gW1VOU0lHTkVEXQotLS0gICAoTSo0LzkgYnl0ZXMgcGx1cyBleHRyYSkKLS0tIERh dGUgVHlwZXM6Ci0tLSAqIERBVEVUSU1FICg4IGJ5dGVzKQotLS0gKiBEQVRFLCBUSU1FICgzIGJ5 dGVzKQotLS0gKiBUSU1FU1RBTVAgKDQgYnl0ZXMpCi0tLSAqIFlFQVJbKDJ8NCldICgxIGJ5dGUp Ci0tLSBTdHJpbmcgVHlwZXM6Ci0tLSAqIEJJTkFSWShNKSwgW05BVElPTkFMXSBDSEFSWyhNKV0g W0NIQVJBQ1RFUiBTRVQgbmFtZV0gW0NPTExBVEUgbmFtZV0KLS0tICAgKGZpeGVkLWxlbmd0aCwg MCA8PSBNIDw9IDJeOC0xLCBkZWZhdWx0PTEsIHJpZ2h0LXBhZGRlZCkKLS0tICogVkFSQklOQVJZ KE0pLCBbTkFUSU9OQUxdIFZBUkNIQVJbKE0pXSBbQ0hBUkFDVEVSIFNFVCBuYW1lXSBbQ09MTEFU RSBuYW1lXQotLS0gICAodmFyaWFibGUtbGVuZ3RoLCAwIDw9IE0gPD0gMl4xNi0xLCAxLi4yLWJ5 dGUgbGVuZ3RoIHByZWZpeCkKLS0tICogQkxPQlsoTSldLCBURVhUWyhNKV0gW0NIQVJBQ1RFUiBT RVQgbmFtZV0gW0NPTExBVEUgbmFtZV0KLS0tICAgKG1heCBsZW5ndGggPSAyXjE2LTEgYnl0ZXMs IDItYnl0ZSBsZW5ndGggcHJlZml4LCBubyBkZWZhdWx0IHZhbHVlcykKLS0tICogVElOWUJMT0Is IFRJTllURVhUICgxLWJ5dGUgbGVuZ3RoIHByZWZpeCksCi0tLSAqIE1FRElVTUJMT0IsIE1FRElV TVRFWFQgKDMtYnl0ZSBsZW5ndGggcHJlZml4KSwKLS0tICogTE9OR0JMT0IsIExPTkdURVhUICg0 LWJ5dGUgbGVuZ3RoIHByZWZpeCkKLS0tICogRU5VTSAobWF4IDJeMTYtMSBlbGVtZW50cywgMS4u MiBieXRlcykKLS0tICogU0VUIChtYXggNjQgZWxlbWVudHMsIDEsMiwzLDQsIG9yIDggYnl0ZXMp Ci0tLSB2YXJ5aW5nIHNpemUgdHlwZXMgc3ViamVjdCB0byB0aGUgbWF4aW11bSByb3cgc2l6ZQot LS0gY2hhcmFjdGVyIHNpemVzIHN1YmplY3QgdG8gdGhlIGNoYXJhY3RlciBzZXQgKHV0ZjggPSAx Li4zIGJ5dGVzL2NoYXJhY3RlcikKLQotLS0gVGhlIGxhcmdlc3QgdmFsdWVzIG9mIGEgQkxPQiBv ciBURVhUIG9iamVjdCB0aGF0IGNhbiBiZSB0cmFuc21pdHRlZAotLS0gYmV0d2VlbiB0aGUgY2xp ZW50IGFuZCBzZXJ2ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYW1vdW50IG9mIGF2YWlsYWJsZQot LS0gbWVtb3J5IGFuZCB0aGUgc2l6ZSBvZiB0aGUgY29tbXVuaWNhdGlvbnMgYnVmZmVycy4gWW91 IGNhbiBjaGFuZ2UgdGhlCi0tLSBtZXNzYWdlIGJ1ZmZlciBzaXplIGJ5IGNoYW5naW5nIHRoZSB2 YWx1ZSBvZiB0aGUgbWF4X2FsbG93ZWRfcGFja2V0Ci0tLSB2YXJpYWJsZSwgYnV0IHlvdSBtdXN0 IGRvIHNvIGZvciBib3RoIHRoZSBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQgcHJvZ3JhbS4KLQotLS0g RWFjaCBCTE9CIG9yIFRFWFQgdmFsdWUgaXMgcmVwcmVzZW50ZWQgaW50ZXJuYWxseSBieSBhIHNl cGFyYXRlbHkKLS0tIGFsbG9jYXRlZCBvYmplY3QuIFRoaXMgaXMgaW4gY29udHJhc3QgdG8gYWxs IG90aGVyIGRhdGEgdHlwZXMsIGZvciB3aGljaAotLS0gc3RvcmFnZSBpcyBhbGxvY2F0ZWQgb25j ZSBwZXIgY29sdW1uIHdoZW4gdGhlIHRhYmxlIGlzIG9wZW5lZC4KLQotLS0gVEVYVCBhbmQgQkxP QiBjb2x1bW5zIGFyZSBpbXBsZW1lbnRlZCBkaWZmZXJlbnRseSBpbiB0aGUgTkRCIENsdXN0ZXIK LS0tIHN0b3JhZ2UgZW5naW5lLCB3aGVyZWluIGVhY2ggcm93IGluIGEgVEVYVCBjb2x1bW4gaXMg bWFkZSB1cCBvZiB0d28KLS0tIHNlcGFyYXRlIHBhcnRzLiBPbmUgb2YgdGhlc2UgaXMgb2YgZml4 ZWQgc2l6ZSAoMjU2IGJ5dGVzKSwgYW5kIGlzCi0tLSBhY3R1YWxseSBzdG9yZWQgaW4gdGhlIG9y aWdpbmFsIHRhYmxlLiBUaGUgb3RoZXIgY29uc2lzdHMgb2YgYW55IGRhdGEKLS0tIGluIGV4Y2Vz cyBvZiAyNTYgYnl0ZXMsIHdoaWNoIGlzIHN0b3JlZCBpbiBhIGhpZGRlbiB0YWJsZS4gVGhlIHJv d3MKLS0tIGluIHRoaXMgc2Vjb25kIHRhYmxlIGFyZSBhbHdheXMgMiwwMDAgYnl0ZXMgbG9uZy4g VGhpcyBtZWFucyB0aGF0IHRoZQotLS0gc2l6ZSBvZiBhIFRFWFQgY29sdW1uIGlzIDI1NiBpZiBz aXplIDw9IDI1NiAod2hlcmUgc2l6ZSByZXByZXNlbnRzCi0tLSB0aGUgc2l6ZSBvZiB0aGUgcm93 KTsgb3RoZXJ3aXNlLCB0aGUgc2l6ZSBpcyAyNTYgKyBzaXplICsgKDIwMDAg4oCTCi0tLSAoc2l6 ZSDigJMgMjU2KSAlIDIwMDApLgotCi0tLSBGb3IgdGFibGVzIHVzaW5nIHRoZSBOREJDTFVTVEVS IHN0b3JhZ2UgZW5naW5lLCB0aGVyZSBpcyB0aGUgZmFjdG9yIG9mCi0tLSA0LWJ5dGUgYWxpZ25t ZW50IHRvIGJlIHRha2VuIGludG8gYWNjb3VudCB3aGVuIGNhbGN1bGF0aW5nIHN0b3JhZ2UKLS0t IHJlcXVpcmVtZW50cy4gVGhpcyBtZWFucyB0aGF0IGFsbCBOREIgZGF0YSBzdG9yYWdlIGlzIGRv bmUgaW4gbXVsdGlwbGVzCi0tLSBvZiA0IGJ5dGVzLiAgRm9yIGV4YW1wbGUsIGluIE5EQkNMVVNU RVIgdGFibGVzLCB0aGUgVElOWUlOVCwgU01BTExJTlQsCi0tLSBNRURJVU1JTlQsIGFuZCBJTlRF R0VSIChJTlQpIGNvbHVtbiB0eXBlcyBlYWNoIHJlcXVpcmUgNCBieXRlcyBzdG9yYWdlCi0tLSBw ZXIgcmVjb3JkIGR1ZSB0byB0aGUgYWxpZ25tZW50IGZhY3Rvci4KLQotLS0gV2hlbiBjYWxjdWxh dGluZyBzdG9yYWdlIHJlcXVpcmVtZW50cyBmb3IgTXlTUUwgQ2x1c3RlciB0YWJsZXMsIHlvdSBt dXN0Ci0tLSBhbHNvIHJlbWVtYmVyIHRoYXQgZXZlcnkgdGFibGUgdXNpbmcgdGhlIE5EQkNMVVNU RVIgc3RvcmFnZSBlbmdpbmUKLS0tIHJlcXVpcmVzIGEgcHJpbWFyeSBrZXk7IGlmIG5vIHByaW1h cnkga2V5IGlzIGRlZmluZWQgYnkgdGhlIHVzZXIsIHRoZW4gYQotLS0g4oCcaGlkZGVu4oCdIHBy aW1hcnkga2V5IHdpbGwgYmUgY3JlYXRlZCBieSBOREIuICBUaGlzIGhpZGRlbiBwcmltYXJ5IGtl eQotLS0gY29uc3VtZXMgMzEtMzUgYnl0ZXMgcGVyIHRhYmxlIHJlY29yZC4KLQotLS0gVGhlIE5E QkNMVVNURVIgc3RvcmFnZSBlbmdpbmUgaW4gTXlTUUwgNS4xIHN1cHBvcnRzIHZhcmlhYmxlLXdp ZHRoCi0tLSBjb2x1bW5zLiBUaGlzIG1lYW5zIHRoYXQgYSBWQVJDSEFSIGNvbHVtbiBpbiBhIE15 U1FMIENsdXN0ZXIgdGFibGUKLS0tIHJlcXVpcmVzIHRoZSBzYW1lIGFtb3VudCBvZiBzdG9yYWdl IGFzIGl0IHdvdWxkIHVzaW5nIGFueSBvdGhlcgotLS0gc3RvcmFnZSBlbmdpbmUsIHdpdGggdGhl IGV4Y2VwdGlvbiB0aGF0IHN1Y2ggdmFsdWVzIGFyZSA0LWJ5dGUKLS0tIGFsaWduZWQuIFRodXMs IHRoZSBzdHJpbmcgJ2FiY2QnIHN0b3JlZCBpbiBhIFZBUkNIQVIoNTApIGNvbHVtbiB1c2luZwot LS0gdGhlIGxhdGluMSBjaGFyYWN0ZXIgc2V0IHJlcXVpcmVzIDggYnl0ZXMgKHJhdGhlciB0aGFu IDYgYnl0ZXMgZm9yCi0tLSB0aGUgc2FtZSBjb2x1bW4gdmFsdWUgaW4gYSBNeUlTQU0gdGFibGUp LiBUaGlzIHJlcHJlc2VudHMgYSBjaGFuZ2UgaW4KLS0tIGJlaGF2aW9yIGZyb20gZWFybGllciB2 ZXJzaW9ucyBvZiBOREItQ0xVU1RFUiwgd2hlcmUgYSBWQVJDSEFSKDUwKQotLS0gY29sdW1uIHdv dWxkIHJlcXVpcmUgNTIgYnl0ZXMgc3RvcmFnZSBwZXIgcmVjb3JkIHJlZ2FyZGxlc3Mgb2YgdGhl Ci0tLSBsZW5ndGggb2YgdGhlIHN0cmluZyBiZWluZyBzdG9yZWQuCi0KLS0tIFlvdSBtYXkgZmlu ZCB0aGUgbmRiX3NpemUucGwgdXRpbGl0eSB0byBiZSB1c2VmdWwgZm9yIGVzdGltYXRpbmcgTkRC Ci0tLSBzdG9yYWdlIHJlcXVpcmVtZW50cy4gVGhpcyBQZXJsIHNjcmlwdCBjb25uZWN0cyB0byBh IGN1cnJlbnQgTXlTUUwKLS0tIChub24tQ2x1c3RlcikgZGF0YWJhc2UgYW5kIGNyZWF0ZXMgYSBy ZXBvcnQgb24gaG93IG11Y2ggc3BhY2UgdGhhdAotLS0gZGF0YWJhc2Ugd291bGQgcmVxdWlyZSBp ZiBpdCB1c2VkIHRoZSBOREJDTFVTVEVSIHN0b3JhZ2UgZW5naW5lLiBTZWUKLS0tIFNlY3Rpb24g MTYuMTAuMTUsICJuZGJfc2l6ZS5wbCDigJQgTkRCQ0xVU1RFUiBTaXplIFJlcXVpcmVtZW50IEVz dGltYXRvciIsCi0tLSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLQotLS0gOS4yLiBUaGUgQ2hhcmFj dGVyIFNldCBVc2VkIGZvciBEYXRhIGFuZCBTb3J0aW5nCi0tLSBkZWZhdWx0OiBsYXRpbjEgKGNw MTI1MiBXZXN0IEV1cm9wZWFuKSBjaGFyYWN0ZXIgc2V0IGFuZCB0aGUKLS0tIGxhdGluMV9zd2Vk aXNoX2NpIGNvbGxhdGlvbgotLS0gQ0hBUlNFVCBtYXkgYmUgb25lIG9mIGJpbmFyeSwgYXJtc2Np aTgsIGFzY2lpLCBiaWc1LCBjcDEyNTAsIGNwMTI1MSwKLS0tIGNwMTI1NiwgY3AxMjU3LCBjcDg1 MCwgY3A4NTIsIGNwODY2LCBjcDkzMiwgZGVjOCwgZXVjanBtcywgZXVja3IsCi0tLSBnYjIzMTIs IGdiaywgZ2Vvc3RkOCwgZ3JlZWssIGhlYnJldywgaHA4LCBrZXliY3MyLCBrb2k4ciwga29pOHUs Ci0tLSBsYXRpbjEsIGxhdGluMiwgbGF0aW41LCBsYXRpbjcsIG1hY2NlLCBtYWNyb21hbiwgc2pp cywgc3dlNywgdGlzNjIwLAotLS0gdWNzMiwgdWppcywgdXRmOC4KLQotLS0gamF2YS5uaW8uY2hh cnNldC5DaGFyc2V0OgotLS0gVGhlIG5hdGl2ZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIEph dmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgaXMgVVRGLTE2LgotLS0gW25vdCBzdXJlOiAKLS0tICAg ICAgb3V0LnByaW50bG4oImRlZmF1bHQgY2hhcnNldDogIiArIGphdmEubmlvLmNoYXJzZXQuQ2hh cnNldC5kZWZhdWx0Q2hhcnNldCgpLmRpc3BsYXlOYW1lKCkpOwotLS0gIHNob3dzOiBVVEYtOAot LS0gXQotCi0tLSBodHRwOi8vdW5pY29kZS5vcmcvZmFxL2Jhc2ljX3EuaHRtbCMxNAotLS0gUTog V2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIFVDUy0yIGFuZCBVVEYtMTY/Ci0tLSBBOiBV Q1MtMiBpcyB3aGF0IGEgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiB3YXMgdXAgdG8gVW5pY29kZSAx LjEsCi0tLSBiZWZvcmUgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIGFuZCBVVEYtMTYgd2VyZSBhZGRl ZCBhcyBjb25jZXB0cyB0bwotLS0gVmVyc2lvbiAyLjAgb2YgdGhlIHN0YW5kYXJkLiBUaGlzIHRl cm0gc2hvdWxkIGJlIG5vdyBiZSBhdm9pZGVkLgotLS0KLS0tIFdoZW4gaW50ZXJwcmV0aW5nIHdo YXQgcGVvcGxlIGhhdmUgbWVhbnQgYnkgIlVDUy0yIiBpbiBwYXN0IHVzYWdlLCBpdAotLS0gaXMg YmVzdCB0aG91Z2h0IG9mIGFzIG5vdCBhIGRhdGEgZm9ybWF0LCBidXQgYXMgYW4gaW5kaWNhdGlv biB0aGF0IGFuCi0tLSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBpbnRlcnByZXQgYW55IHN1cHBs ZW1lbnRhcnkgY2hhcmFjdGVycy4gSW4KLS0tIHBhcnRpY3VsYXIsIGZvciB0aGUgcHVycG9zZXMg b2YgZGF0YSBleGNoYW5nZSwgVUNTLTIgYW5kIFVURi0xNiBhcmUKLS0tIGlkZW50aWNhbCBmb3Jt YXRzLiBCb3RoIGFyZSAxNi1iaXQsIGFuZCBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgY29kZQotLS0g dW5pdCByZXByZXNlbnRhdGlvbi4KLS0tCi0tLSBUaGUgZWZmZWN0aXZlIGRpZmZlcmVuY2UgYmV0 d2VlbiBVQ1MtMiBhbmQgVVRGLTE2IGxpZXMgYXQgYSBkaWZmZXJlbnQKLS0tIGxldmVsLCB3aGVu IG9uZSBpcyBpbnRlcnByZXRpbmcgYSBzZXF1ZW5jZSBjb2RlIHVuaXRzIGFzIGNvZGUgcG9pbnRz Ci0tLSBvciBhcyBjaGFyYWN0ZXJzLiBJbiB0aGF0IGNhc2UsIGEgVUNTLTIgaW1wbGVtZW50YXRp b24gd291bGQgbm90Ci0tLSBoYW5kbGUgcHJvY2Vzc2luZyBsaWtlIGNoYXJhY3RlciBwcm9wZXJ0 aWVzLCBjb2RlcG9pbnQgYm91bmRhcmllcywKLS0tIGNvbGxhdGlvbiwgZXRjLiBmb3Igc3VwcGxl bWVudGFyeSBjaGFyYWN0ZXJzLiBbTURdICYgW0tXXQotCi0KLS0tIDUuMSBSZWZlcmVuY2UgTWFu dWFsLCBOREIgTGltaXRhdGlvbnMgKDE2LjE0KQotLS0gKiBubyBpbmRleGVzIG9uIFRFWFQgYW5k IEJMT0IgY29sdW1zOyBidXQgVkFSQ0hBUiBhbGxvd2VkCi0tLSAqIGF0dHJpYnV0ZSBuYW1lcyBh cmUgdHJ1bmNhdGVkIHRvIDMxIGNoYXJhY3RlcnMgKGVycm9ycyBpZiBub3QgdW5pcXVlKQotLS0g KiBkYXRhYmFzZSBuYW1lcyBhbmQgdGFibGUgbmFtZXMgY2FuIHRvdGFsIGEgbWF4aW11bSBvZiAx MjIgY2hhcmFjdGVycwotLS0gKiBwYXN0IGlzc3VlcyB3aXRoIHRhYmxlIG5hbWVzIGhhdmluZyBz cGVjaWFsIGNoYXJhY3RlcnMKLS0tICogdGhlIG1heGltdW0gbnVtYmVyIG9mIE5EQiB0YWJsZXMg aXMgbGltaXRlZCB0byAyMDMyMAotLS0gKiB0aGUgbWF4aW11bSBudW1iZXIgb2YgYXR0cmlidXRl cyAoY29sdW1ucyBhbmQgaW5kZXhlcykgcGVyIHRhYmxlIGlzCi0tLSAgIGxpbWl0ZWQgdG8gMTI4 Ci0tLSAqIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhdHRyaWJ1dGVzIHBlciBrZXkgaXMgMzIKLS0t ICogdGhlIG1heGltdW0gcGVybWl0dGVkIHNpemUgb2YgYW55IG9uZSByb3cgaXMgOEs7IGVhY2gg QkxPQiBvciBURVhUCi0tLSAgIGNvbHVtbiBjb250cmlidXRlcyAyNTYgKyA4ID0gMjY0IGJ5dGVz IHRvd2FyZHMgdGhpcyB0b3RhbAotLS0gKiB0aGUgZm9yZWlnbiBrZXkgY29uc3RydWN0IGlzIGln bm9yZWQgKGp1c3QgYXMgaXQgaXMgaW4gTXlJU0FNIHRhYmxlcykKLS0tCi0tLSAqIFRoZXJlIGFy ZSBubyBkdXJhYmxlIGNvbW1pdHMgb24gZGlzay4gQ29tbWl0cyBhcmUgcmVwbGljYXRlZCwgYnV0 IHRoZXJlCi0tLSAgIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGxvZ3MgYXJlIGZsdXNoZWQgdG8gZGlz ayBvbiBjb21taXQuCi0tLSAqIFJhbmdlIHNjYW5zLiBUaGVyZSBhcmUgcXVlcnkgcGVyZm9ybWFu Y2UgaXNzdWVzIGR1ZSB0byBzZXF1ZW50aWFsIGFjY2VzcwotLS0gICB0byB0aGUgTkRCIHN0b3Jh Z2UgZW5naW5lOyBpdCBpcyBhbHNvIHJlbGF0aXZlbHkgbW9yZSBleHBlbnNpdmUgdG8gZG8KLS0t ICAgbWFueSByYW5nZSBzY2FucyB0aGFuIGl0IGlzIHdpdGggZWl0aGVyIE15SVNBTSBvciBJbm5v REIuCi0tLSAqIFJlbGlhYmlsaXR5IG9mIFJlY29yZHMgaW4gcmFuZ2UuIFRoZSBSZWNvcmRzIGlu IHJhbmdlIHN0YXRpc3RpYyBpcwotLS0gICBhdmFpbGFibGUgYnV0IGlzIG5vdCBjb21wbGV0ZWx5 IHRlc3RlZCBvciBvZmZpY2lhbGx5IHN1cHBvcnRlZC4gVGhpcyBtYXkKLS0tICAgcmVzdWx0IGlu IG5vbi1vcHRpbWFsIHF1ZXJ5IHBsYW5zIGluIHNvbWUgY2FzZXMuIElmIG5lY2Vzc2FyeSwgeW91 IGNhbgotLS0gICBlbXBsb3kgVVNFIElOREVYIG9yIEZPUkNFIElOREVYIHRvIGFsdGVyIHRoZSBl eGVjdXRpb24gcGxhbgotLS0gKiBVbmlxdWUgaGFzaCBpbmRleGVzIGNyZWF0ZWQgd2l0aCBVU0lO RyBIQVNIIGNhbm5vdCBiZSB1c2VkIGZvciBhY2Nlc3NpbmcKLS0tICAgYSB0YWJsZSBpZiBOVUxM IGlzIGdpdmVuIGFzIHBhcnQgb2YgdGhlIGtleS4KLS0tCi0tLSAqIE5vIGRpc3RyaWJ1dGVkIHRh YmxlIGxvY2tzLiBBIExPQ0sgVEFCTEVTIHdvcmtzIG9ubHkgZm9yIHRoZSBTUUwgbm9kZSBvbgot LS0gICB3aGljaCB0aGUgbG9jayBpcyBpc3N1ZWQ7IG5vIG90aGVyIFNRTCBub2RlIGluIHRoZSBj bHVzdGVyIOKAnHNlZXPigJ0gdGhpcwotLS0gICBsb2NrLiAgRm9yIGV4YW1wbGUsIEFMVEVSIFRB QkxFIGlzIG5vdCBmdWxseSBsb2NraW5nIHdoZW4gcnVubmluZwotLS0gICBtdWx0aXBsZSBNeVNR TCBzZXJ2ZXJzIChTUUwgbm9kZXMpLgotLS0KLS0tICogRERMIG9wZXJhdGlvbnMuIERETCBvcGVy YXRpb25zIChzdWNoIGFzIENSRUFURSBUQUJMRSBvciBBTFRFUiBUQUJMRSkgYXJlCi0tLSAgIG5v dCBzYWZlIGZyb20gZGF0YSBub2RlIGZhaWx1cmVzLiBJZiBhIGRhdGEgbm9kZSBmYWlscyB3aGls ZSB0cnlpbmcgdG8KLS0tICAgcGVyZm9ybSBvbmUgb2YgdGhlc2UsIHRoZSBkYXRhIGRpY3Rpb25h cnkgaXMgbG9ja2VkIGFuZCBubyBmdXJ0aGVyIERETAotLS0gICBzdGF0ZW1lbnRzIGNhbiBiZSBl eGVjdXRlZCB3aXRob3V0IHJlc3RhcnRpbmcgdGhlIGNsdXN0ZXIuCi0tLQotLS0gKiBUaGUgcmVz dWx0IG9mIG9wZXJhdGlvbnMgc3VjaCBhcyBBTFRFUiBUQUJMRSBhbmQgQ1JFQVRFIElOREVYIHBl cmZvcm1lZAotLS0gICBvbiBvbmUgU1FMIG5vZGUgaW4gdGhlIGNsdXN0ZXIgYXJlIG5vdyB2aXNp YmxlIHRvIHRoZSBjbHVzdGVyJ3Mgb3RoZXIKLS0tICAgU1FMIG5vZGVzIHdpdGhvdXQgYW55IGFk ZGl0aW9uYWwgYWN0aW9uIGJlaW5nIHRha2VuLgotCi0tLSBxdWl0OwoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3JjL3RhYmxlc19teXNxbC5zcWwnCi0tLSBhL3N0 b3JhZ2UvbmRiL3Rlc3QvY3J1bmQvc3JjL3RhYmxlc19teXNxbC5zcWwJMjAxMC0wMi0xNCAwNTow NTozMSArMDAwMAorKysgYi9zdG9yYWdlL25kYi90ZXN0L2NydW5kL3NyYy90YWJsZXNfbXlzcWwu c3FsCTIwMTAtMDktMjcgMDU6MzE6MTcgKzAwMDAKQEAgLTE0LDE3ICsxNCw2IEBAIERST1AgVEFC TEUgSUYgRVhJU1RTIGIxOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgYjA7CiBEUk9QIFRBQkxFIElG IEVYSVNUUyBhOwogCi0tLSBTSE9XIFRBQkxFUzsKLQotLS0gTXlTUUwgZG9lcyBub3Qgc3VwcG9y dCB3aWxkY2FyZHMgaW4gdXNlciBuYW1lcywgb25seSBhbm9ueW1vdXMgdXNlcnMKLS0tIHNwZWNp ZmllZCBieSB0aGUgZW1wdHkgdXNlciBuYW1lICcnOyBhbnkgdXNlciB3aG8gY29ubmVjdHMgZnJv bSB0aGUKLS0tIGxvY2FsIGhvc3Qgd2l0aCB0aGUgY29ycmVjdCBwYXNzd29yZCBmb3IgdGhlIGFu b255bW91cyB1c2VyIHdpbGwgYmUKLS0tIGFsbG93ZWQgYWNjZXNzIHRoZW4uIAotR1JBTlQgQUxM IE9OICouKiBUTyAnJ0Bsb2NhbGhvc3QgOwotR1JBTlQgQUxMIE9OICouKiBUTyBtZEBsb2NhbGhv c3QgOwotR1JBTlQgQUxMIE9OICouKiBUTyBtekBsb2NhbGhvc3QgOwotR1JBTlQgQUxMIE9OICou KiBUTyBjbHJAbG9jYWxob3N0IDsKLQogQ1JFQVRFIFRBQkxFIGEgKAogICAgICAgICBpZCAgICAg ICAgICAgICAgSU5UICAgICAgICAgICAgIE5PVCBOVUxMLAogICAgICAgICBjaW50ICAgICAgICAg ICAgSU5ULAoK --===============0924315129== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/martin.zaun@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: martin.zaun@stripped # target_branch: file:///Users/mz/mysql/ndb-7.1-opt32/ # testament_sha1: b566b3c21cbe48406976b30c02b113c14829ffdd # timestamp: 2010-09-26 22:31:30 -0700 # source_branch: file:///Users/mz/mysql/ndb-7.1-opt/ # base_revision_id: jonas@stripped # # Begin bundle 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 --===============0924315129==--