ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY29uZmlnLWdpdHdlYi50eHQgYi9Eb2N1bWVudGF0aW9uL2NvbmZpZy1naXR3ZWIudHh0CmluZGV4IDM1ZDVjMGQuLmU1ZWRkYTggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vY29uZmlnLWdpdHdlYi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9jb25maWctZ2l0d2ViLnR4dApAQCAtMSwxMyArMSwxMiBAQAotR2Vycml0IENvZGUgUmV2aWV3IC0gR2l0d2ViIEludGVncmF0aW9uCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0dpdHdlYiBJbnRlZ3JhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tCiAKIEdlcnJpdCBDb2RlIFJldmlldyBjYW4gbWFuYWdlIGFuZCBnZW5lcmF0ZSBoeXBlcmxpbmtzIHRvIGdpdHdlYiwKIGFsbG93aW5nIHVzZXJzIHRvIGp1bXAgZnJvbSBHZXJyaXQgY29udGVudCB0byB0aGUgc2FtZSBpbmZvcm1hdGlvbiwKIGJ1dCBzaG93biBieSBnaXR3ZWIuCiAKLQogSW50ZXJuYWwvTWFuYWdlZCBnaXR3ZWIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCiBJbiB0aGUgaW50ZXJuYWwgY29uZmlndXJhdGlvbiwgR2Vycml0IGluc3BlY3RzIHRoZSByZXF1ZXN0LCBlbmZvcmNlcwogaXRzIHByb2plY3QgbGV2ZWwgYWNjZXNzIGNvbnRyb2xzLCBhbmQgZGlyZWN0bHkgZXhlY3V0ZXMgYGdpdHdlYi5jZ2lgCkBAIC0zOSw3ICszOCw3IEBACiBiZSByZXN0YXJ0ZWQgYW5kIGNsaWVudHMgbXVzdCByZWxvYWQgdGhlIGhvc3QgcGFnZSB0byBzZWUgdGhlIGNoYW5nZS4KIAogQ29uZmlndXJhdGlvbgotfn5+fn5+fn5+fn5+fgorXl5eXl5eXl5eXl5eXgogCiBNb3N0IG9mIHRoZSBnaXR3ZWIgY29uZmlndXJhdGlvbiBmaWxlIGlzIGhhbmRsZWQgYXV0b21hdGljYWxseQogYnkgR2Vycml0IENvZGUgUmV2aWV3LiAgU2l0ZSBzcGVjaWZpYyBvdmVycmlkZXMgY2FuIGJlIHBsYWNlZCBpbgpAQCAtNDcsNyArNDYsNyBAQAogcGFydCBvZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyYXRpb24gZmlsZS4KIAogTG9nbyBhbmQgQ1NTCi1+fn5+fn5+fn5+fn4KK15eXl5eXl5eXl5eXgogCiBJZiB0aGUgcGFja2FnZS1tYW5hZ2VyIGluc3RhbGxlZCBDR0kgKGAvdXNyL2xpYi9jZ2ktYmluL2dpdHdlYi5jZ2lgKQogaXMgYmVpbmcgdXNlZCwgdGhlIHN0b2NrIENTUyBhbmQgbG9nbyBmaWxlcyB3aWxsIGJlIHNlcnZlZCBmcm9tCkBAIC01OCwxNyArNTcsMTY1IEBACiB0aGUgZGVmYXVsdCBzb3VyY2UgY29kZSBkaXN0cmlidXRpb24sIGFuZCBtb3N0IGN1c3RvbSBpbnN0YWxsYXRpb25zLgogCiBBY2Nlc3MgQ29udHJvbAotfn5+fn5+fn5+fn5+fn4KK15eXl5eXl5eXl5eXl5eCiAKIEFjY2VzcyBjb250cm9scyBmb3IgaW50ZXJuYWxseSBtYW5hZ2VkIGdpdHdlYiBwYWdlIHZpZXdzIGFyZSBlbmZvcmNlZAogdXNpbmcgdGhlIHN0YW5kYXJkIHByb2plY3QgUkVBRCArMSBwZXJtaXNzaW9uLgogCi0KIEV4dGVybmFsL1VubWFuYWdlZCBnaXR3ZWIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAotSW4gdGhlIGV4dGVybmFsIGNvbmZpZ3VyYXRpb24sIGdpdHdlYiBydW5zIHVuZGVyIHRoZSBjb250cm9sIG9mIGFuCi1leHRlcm5hbCB3ZWIgc2VydmVyLCBhbmQgR2Vycml0IGFjY2VzcyBjb250cm9scyBhcmUgbm90IGVuZm9yY2VkLgorRm9yIHRoZSBleHRlcm5hbCBjb25maWd1cmF0aW9uLCBnaXR3ZWIgcnVucyB1bmRlciB0aGUgY29udHJvbCBvZiBhbgorZXh0ZXJuYWwgd2ViIHNlcnZlciwgYW5kIEdlcnJpdCBhY2Nlc3MgY29udHJvbHMgYXJlIG5vdCBlbmZvcmNlZC4gR2Vycml0Citwcm92aWRlcyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgZm9yIGludGVncmF0aW9uIHdpdGggR2l0V2ViLgorCitbW2xpbnV4R2l0V2ViXV0KK0xpbnV4IEluc3RhbGxhdGlvbgorXl5eXl5eXl5eXl5eXl5eXl5eCisKK0luc3RhbGwgR2l0V2ViCisrKysrKysrKysrKysrKworCitPbiBVYnVudHU6CisKKz09PT0KKyAgc3VkbyBhcHQtZ2V0IGluc3RhbGwgZ2l0d2ViCis9PT09CisKK1dpdGggWXVtOgorCis9PT09CisgICQgeXVtIGluc3RhbGwgZ2l0d2ViCis9PT09CisKK0NvbmZpZ3VyZSBHaXRXZWIKKysrKysrKysrKysrKysrKysKKworCitVcGRhdGUgYC9ldGMvZ2l0d2ViLmNvbmZgLCBhZGQgdGhlIHB1YmxpYyBHSVQgcmVwb3NpdG9yaWVzOgorCistLS0tCiskcHJvamVjdHJvb3QgPSAiL3Zhci93d3cvcmVwby8iOworCisjIGRpcmVjdG9yeSB0byB1c2UgZm9yIHRlbXAgZmlsZXMKKyRnaXRfdGVtcCA9ICIvdG1wIjsKKworIyB0YXJnZXQgb2YgdGhlIGhvbWUgbGluayBvbiB0b3Agb2YgYWxsIHBhZ2VzCisjJGhvbWVfbGluayA9ICRteV91cmkgfHwgIi8iOworCisjIGh0bWwgdGV4dCB0byBpbmNsdWRlIGF0IGhvbWUgcGFnZQorJGhvbWVfdGV4dCA9ICJpbmRleHRleHQuaHRtbCI7CisKKyMgZmlsZSB3aXRoIHByb2plY3QgbGlzdDsgYnkgZGVmYXVsdCwgc2ltcGx5IHNjYW4gdGhlIHByb2plY3Ryb290IGRpci4KKyRwcm9qZWN0c19saXN0ID0gJHByb2plY3Ryb290OworCisjIHN0eWxlc2hlZXQgdG8gdXNlCisjIEkgdG9vayBvZmYgdGhlIHByZWZpeCAvIG9mIHRoZSBmb2xsb3dpbmcgcGF0aCB0byBwdXQgdGhlc2UgZmlsZXMgaW5zaWRlIGdpdHdlYiBkaXJlY3RvcnkgZGlyZWN0bHkKKyRzdHlsZXNoZWV0ID0gImdpdHdlYi5jc3MiOworCisjIGxvZ28gdG8gdXNlCiskbG9nbyA9ICJnaXQtbG9nby5wbmciOworCisjIHRoZSCRZmF2aWNvbpIKKyRmYXZpY29uID0gImdpdC1mYXZpY29uLnBuZyI7CistLS0tCisKK0NvbmZpZ3VyZSAmIFJlc3RhcnQgQXBhY2hlIFdlYiBTZXJ2ZXIKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworQ29uZmlndXJlIEFwYWNoZQorKysrKysrKysrKysrKysrKworCisKK0xpbmsgZ2l0d2ViIHRvIGAvdmFyL3d3dy9naXR3ZWJgLCBjaGVjayBgL2V0Yy9naXR3ZWIuY29uZmAgaWYgdW5zdXJlIG9mIHBhdGhzOgorCis9PT09CisgICQgc3VkbyBsbiAtcyAvdXNyL3NoYXJlL2dpdHdlYiAvdmFyL3d3dy9naXR3ZWIKKz09PT0KKworQWRkIHRoZSBnaXR3ZWIgZGlyZWN0b3J5IHRvIHRoZSBBcGFjaGUgY29uZmlndXJhdGlvbiBieSBjcmVhdGluZyBhICJnaXR3ZWIiCitmaWxlIGluc2lkZSB0aGUgQXBhY2hlIGNvbmYuZCBkaXJlY3Rvcnk6CisKKz09PT0KKyAgJCB0b3VjaCAvZXRjL2FwYWNoZS9jb25mLmQvZ2l0d2ViCis9PT09CisKK0FkZCB0aGUgZm9sbG93aW5nIHRvIC9ldGMvYXBhY2hlL2NvbmYuZC9naXR3ZWI6CisKKy0tLS0KK0FsaWFzIC9naXR3ZWIgL3Zhci93d3cvZ2l0d2ViCisKK09wdGlvbnMgSW5kZXhlcyBGb2xsb3dTeW1saW5rcyBFeGVjQ0dJCitEaXJlY3RvcnlJbmRleCAvY2dpLWJpbi9naXR3ZWIuY2dpCitBbGxvd092ZXJyaWRlIE5vbmUKKy0tLS0KKworKk5PVEUqIFRoaXMgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGFkZGVkIGJ5IHl1bS9hcHQtZ2V0LiBJZiB0aGF0J3MgdGhlIGNhc2UsIGxlYXZlIGFzCitpcy4KKworUmVzdGFydCB0aGUgQXBhY2hlIFdlYiBTZXJ2ZXIKKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisKKz09PT0KKyQgc3VkbyAvZXRjL2luaXQuZC9hcGFjaGUyIHJlc3RhcnQKKz09PT0KKworTm93IHlvdSBzaG91bGQgYmUgYWJsZSB0byB2aWV3IHlvdXIgcmVwb3NpdG9yeSBwcm9qZWN0cyBvbmxpbmU6CisKK2xpbms6aHR0cDovL2xvY2FsaG9zdC9naXR3ZWJbaHR0cDovL2xvY2FsaG9zdC9naXR3ZWJdCisKK1tbV2luZG93c0dpdFdlYl1dCitXaW5kb3dzIEluc3RhbGxhdGlvbgorXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworSW5zdHJ1Y3Rpb25zIGFyZSBhdmFpbGFibGUgZm9yIGluc3RhbGxpbmcgdGhlIEdpdFdlYiBtb2R1bGUgZGlzdHJpYnV0ZWQgd2l0aAorTXN5c0dpdDoKKworbGluazpodHRwczovL2dpdGh1Yi5jb20vbXN5c2dpdC9tc3lzZ2l0L3dpa2kvR2l0V2ViW0dpdFdlYl0KKworSWYgeW91IGRvbid0IGhhdmUgQXBhY2hlIGluc3RhbGxlZCwgeW91IGNhbiBkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgYnVpbGQgZm9yCitXaW5kb3dzIGZyb20gbGluazpodHRwOi8vd3d3LmFwYWNoZWxvdW5nZS5jb20vZG93bmxvYWRbYXBhY2hlbG91bmdlLm9yZ10uCisKK0FmdGVyIHlvdSBoYXZlIGluc3RhbGxlZCBBcGFjaGUsIHlvdSB3aWxsIHdhbnQgdG8gY3JlYXRlIGEgbGluazpodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMC9wbGF0Zm9ybS93aW5kb3dzLmh0bWwjd2luc3ZjW25ldyBzZXJ2aWNlIHVzZXIKK2FjY291bnRdIHRvIHVzZSB3aXRoIEFwYWNoZS4KKworSWYgeW91J3JlIHN0aWxsIGhhdmluZyBkaWZmaWN1bHR5IHNldHRpbmcgdXAgcGVybWlzc2lvbnMsIHlvdSBtYXkgZmluZCB0aGlzCit0ZWNoIG5vdGUgdXNlZnVsIGZvciBjb25maWd1cmluZyBBcGFjaGUgU2VydmljZSB0byBydW4gdW5kZXIgYW5vdGhlciBhY2NvdW50LgorWW91IG11c3QgZ3JhbnQgdGhlIG5ldyBhY2NvdW50IGxpbms6aHR0cDovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2NjNzk0OTQ0KFdTLjEwKS5hc3B4WyJydW4gYXMgc2VydmljZSJdIHBlcm1pc3Npb246CisKK1RoZSBHaXRXZWIgdmVyc2lvbiBpbiBtc3lzZ2l0IGlzIG1pc3Npbmcgc2V2ZXJhbCBpbXBvcnRhbnQgYW5kIHJlcXVpcmVkCitwZXJsIG1vZHVsZXMsIGluY2x1ZGluZyBDR0kucG0uIFRoZSBwZXJsIGluY2x1ZGVkIHdpdGggdGhlIG1zeXNnaXQgZGlzdHJvIDEuNy44CitpcyBicm9rZW4uLiBUaGUgbGluazpodHRwOi8vZ3JvdXBzLmdvb2dsZS5jb20vZ3JvdXAvbXN5c2dpdC9icm93c2VfdGhyZWFkL3RocmVhZC9iYTM1MDFmMWYwZWQ5NWFmW3VuaWNvcmUgZm9sZGVyIGlzIG1pc3NpbmcgYWxvbmcgd2l0aCB1dGY4X2hlYXZ5LnBsIGFuZCBDR0kucG1dLiBZb3UgY2FuCit2ZXJpZnkgYnkgY2hlY2tpbmcgZm9yIHBlcmwgbW9kdWxlcy4gRnJvbSBhbiBtc3lzIGNvbnNvbGUsIGV4ZWN1dGUgdGhlCitmb2xsb3dpbmcgdG8gY2hlY2s6CisKKz09PT0KKyQgcGVybCAtbUNHSSAtbUVuY29kZSAtbUZjbnRsIC1tRmlsZTo6RmluZCAtbUZpbGU6OkJhc2VuYW1lIC1lICIiCis9PT09CisKK1lvdSBtYXkgZW5jb3VudGVyIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgorCistLS0tCiskIHBlcmwgLW1DR0kgLW1FbmNvZGUgLW1GY250bCAtbUZpbGU6OkZpbmQgLW1GaWxlOjpCYXNlbmFtZSAtZSAiIgorQ2FuJ3QgbG9jYXRlIENHSS5wbSBpbiBASU5DIChASU5DIGNvbnRhaW5zOiAvdXNyL2xpYi9wZXJsNS81LjguOC9tc3lzCisvdXNyL2xpYi9wIGVybDUvNS44LjggL3Vzci9saWIvcGVybDUvc2l0ZV9wZXJsLzUuOC44L21zeXMKKy91c3IvbGliL3Blcmw1L3NpdGVfcGVybC81LjguOCAvdSBzci9saWIvcGVybDUvc2l0ZV9wZXJsIC4pLiBCRUdJTgorZmFpbGVkLS1jb21waWxhdGlvbiBhYm9ydGVkLgorLS0tLQorCitJZiB5b3UncmUgbWlzc2luZyBDR0kucG0sIHlvdSdsbCBoYXZlIHRvIGRlcGxveSB0aGUgbW9kdWxlIHRvIHRoZSBtc3lzCitlbnZpcm9ubWVudDogWW91IHdpbGwgaGF2ZSB0byByZXRyaWV2ZSB0aGVtIGZyb20gdGhlIDUuOC44IGRpc3RybyBvbiA6CisKK2h0dHA6Ly9zdHJhd2JlcnJ5cGVybC5jb20vcmVsZWFzZXMuaHRtbAorCitGaWxlOiBzdHJhd2JlcnJ5LXBlcmwtNS44LjguMy56aXAKKworY29udGVudHM6IGBiaW4vYCBgbGliL2AgYHNpdGUvYAorCitjb3B5IHRoZSBjb250ZW50cyBvZiBsaWIgaW50byBgbXN5c2dpdC9saWIvcGVybDUvNS44LjhgIGFuZCBvdmVyd3JpdGUgZXhpc3RpbmcgZmlsZXMuCisKK0VuYWJsZSBHaXRXZWIgSW50ZWdyYXRpb24KK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KIAogVG8gZW5hYmxlIHRoZSBleHRlcm5hbCBnaXR3ZWIgaW50ZWdyYXRpb24sIHNldAogbGluazpjb25maWctZ2Vycml0Lmh0bWwjZ2l0d2ViLnVybFtnaXR3ZWIudXJsXSB3aXRoIHRoZSBVUkwgb2YgeW91cgpAQCAtNzksMTYgKzIyNiwyNyBAQAogYmVpbmcgdXNlZCwgZW5zdXJlIGl0IHVzZXMgYSBmdWxsIG1pcnJvciwgc28gdGhlIGByZWZzL2NoYW5nZXMvKmAKIG5hbWVzcGFjZSBpcyBhdmFpbGFibGUuCiAKLT09PT0KLSAgZ2l0IGNvbmZpZyAtLWZpbGUgJHNpdGVfcGF0aC9ldGMvZ2Vycml0LmNvbmZpZyBnaXR3ZWIudXJsIGh0dHA6Ly9leGFtcGxlLmNvbS9naXR3ZWIuY2dpCi0gIGdpdCBjb25maWcgLS1maWxlICRzaXRlX3BhdGgvZXRjL2dlcnJpdC5jb25maWcgLS11bnNldCBnaXR3ZWIuY2dpCi09PT09CistLS0tCiskIGdpdCBjb25maWcgLWYgJHNpdGVfcGF0aC9ldGMvZ2Vycml0LmNvbmZpZyBnaXR3ZWIuY2dpICRQQVRIX1RPX0dJVFdFQi9naXR3ZWIuY2dpCiskIGdpdCBjb25maWcgLWYgJHNpdGVfcGF0aC9ldGMvZ2Vycml0LmNvbmZpZyBnaXR3ZWIudXJsIGh0dHBzOi8vZ2l0d2ViLmNvcnBvcmF0aW9uLmNvbQorLS0tLQorCitJZiB5b3UncmUgbm90IGZvbGxvd2luZyB0aGUgdHJhZGl0aW9uYWwgXHtwcm9qZWN0TmFtZVx9LmdpdCBwcm9qZWN0IG5hbWluZyBjb252ZW50aW9ucywKK3lvdSB3aWxsIHdhbnQgdG8gY3VzdG9taXplIEdlcnJpdCB0byByZWFkIHRoZW0uIEFkZCB0aGUgZm9sbG93aW5nOgorCistLS0tCiskIGdpdCBjb25maWcgLWYgJHNpdGVfcGF0aC9ldGMvZ2Vycml0LmNvbmZpZyBnaXR3ZWIudHlwZSBjdXN0b20KKyQgZ2l0IGNvbmZpZyAtZiAkc2l0ZV9wYXRoL2V0Yy9nZXJyaXQuY29uZmlnIGdpdHdlYi5wcm9qZWN0ID9wPVwke3Byb2plY3R9XDthPXN1bW1hcnkKKyQgZ2l0IGNvbmZpZyAtZiAkc2l0ZV9wYXRoL2V0Yy9nZXJyaXQuY29uZmlnIGdpdHdlYi5yZXZpc2lvbiA/cD1cJHtwcm9qZWN0fVw7YT1jb21taXRcO2g9XCR7Y29tbWl0fQorJCBnaXQgY29uZmlnIC1mICRzaXRlX3BhdGgvZXRjL2dlcnJpdC5jb25maWcgZ2l0d2ViLmJyYW5jaCA/cD1cJHtwcm9qZWN0fVw7YT1zaG9ydGxvZ1w7aD1cJHticmFuY2h9CiskIGdpdCBjb25maWcgLWYgJHNpdGVfcGF0aC9ldGMvZ2Vycml0LmNvbmZpZyBnaXR3ZWIuZmlsZWhpc3RvcnkgP3A9XCR7cHJvamVjdH1cO2E9aGlzdG9yeVw7aGI9XCR7YnJhbmNofVw7Zj1cJHtmaWxlfQorLS0tLQogCiBBZnRlciB1cGRhdGluZyBgJyRzaXRlX3BhdGgnL2V0Yy9nZXJyaXQuY29uZmlnYCwgdGhlIEdlcnJpdCBzZXJ2ZXIgbXVzdAogYmUgcmVzdGFydGVkIGFuZCBjbGllbnRzIG11c3QgcmVsb2FkIHRoZSBob3N0IHBhZ2UgdG8gc2VlIHRoZSBjaGFuZ2UuCiAKIEFjY2VzcyBDb250cm9sCi1+fn5+fn5+fn5+fn5+fgorKysrKysrKysrKysrKysKIAogR2l0d2ViIGFjY2VzcyBjb250cm9scyBjYW4gYmUgaW1wbGVtZW50ZWQgdXNpbmcgc3RhbmRhcmQgd2ViIHNlcnZlcgogYWNjZXNzIGNvbnRyb2xzLiAgVGhpcyBpc24ndCB0eXBpY2FsbHkgaW50ZWdyYXRlZCB3aXRoIEdlcnJpdCdzIG93bgpAQCAtOTYsNyArMjU0LDcgQEAKIGNvbnNpc3RlbnQgaWYgYWNjZXNzIG5lZWRzIHRvIGJlIHJlc3RyaWN0ZWQuCiAKIENhY2hpbmcgR2l0d2ViCi1+fn5+fn5+fn5+fn5+fgorKysrKysrKysrKysrKysKIAogSWYgeW91ciByZXBvc2l0b3J5IHNldCBpcyBsYXJnZSBhbmQgeW91IGFyZSBleHBlY3RpbmcgYSBsb3QKIG9mIHVzZXJzLCB5b3UgbWF5IHdhbnQgdG8gbG9vayBhdCB0aGUgY2FjaGluZyBmb3JrcyB1c2VkIGJ5CkBAIC0xMTIsNyArMjcwLDcgQEAKIEl0IGlzIGFsc28gcG9zc2libGUgdG8gZGVmaW5lIGN1c3RvbSBwYXR0ZXJucy4KIAogU2VlIEFsc28KLS0tLS0tLS0tCit+fn5+fn5+fgogCiAqIGxpbms6Y29uZmlnLWdlcnJpdC5odG1sI2dpdHdlYltTZWN0aW9uIGdpdHdlYl0KICogbGluazpodHRwOi8vaGplbWxpLm5ldC9naXQvY2dpdC9bY2dpdF0K