From: Date: January 14 2009 3:51pm Subject: bzr commit into mysql-5.1-bugteam branch (ramil:2749) Bug#33094 List-Archive: http://lists.mysql.com/commits/63226 X-Bug: 33094 Message-Id: <0KDG007HPUL3XBA0@fe-emea-09.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: BASE64 I0F0IGZpbGU6Ly8vaG9tZS9yYW0vbXlzcWwvYjMzMDk0LTUuMS1idWd0ZWFtLyBi YXNlZCBvbiByZXZpZDp6aGVueGluZy5oZUBzdW4uY29tLTIwMDkwMTE0MDkzMjI1 LXd1Mzgxb3hkdzZpMW9hczENCg0KIDI3NDkgUmFtaWwgS2FsaW11bGxpbgkyMDA5 LTAxLTE0DQogICAgICBGaXggZm9yDQogICAgICBidWcjMzMwOTQ6IEVycm9yIGlu IHVwZ3JhZGluZyBmcm9tIDUuMCB0byA1LjEgd2hlbiB0YWJsZSBjb250YWlucw0K ICAgICAgdHJpZ2dlcnMNCiAgICAgIGFuZA0KICAgICAgIzQxMzg1OiBDcmFzaCB3 aGVuIGF0dGVtcHRpbmcgdG8gcmVwYWlyIGEgI215c3FsNTAjIHVwZ3JhZGVkIHRh YmxlDQogICAgICB3aXRoIHRyaWdnZXJzLg0KICAgICAgDQogICAgICBQcm9ibGVt Og0KICAgICAgMS4gdHJpZ2dlciBjb2RlIGRpZG4ndCBhc3N1bWUgYSB0YWJsZSBu YW1lIG1heSBoYXZlDQogICAgICBhICIjbXlzcWw1MCMiIHByZWZpeCwgdGhhdCBt YXkgbGVhZCB0byBhIGZhaWxpbmcgQVNTRVJUKCkuDQogICAgICAyLiAiQUxURVIg REFUQUJBU0UgLi4uIFVQR1JBREUgREFUQSBESVJFQ1RPUlkgTkFNRSIgZmFpbGVk DQogICAgICBmb3IgZGF0YWJhc2VzIHdpdGggIiNteXNxbDUwIyIgcHJlZml4IGlm IGFueSB0cmlnZ2VyLg0KICAgICAgMy4gbXlzcWxjaGVjayAtLWZpeC10YWJsZS1u YW1lIGRpZG4ndCB1c2UgVVRGOCBhcyBhIGRlZmF1bHQNCiAgICAgIGNoYXJhY3Rl ciBzZXQgdGhhdCByZXN1bHRlZCBpbiAocGFyc2luZykgZXJyb3JzIGZvciB0YWJs ZXMgd2l0aA0KICAgICAgbm9uLWxhdGluIHN5bWJvbHMgaW4gdGhlaXIgbmFtZXMg YW5kIGRlZmluaXRpb25zIG9mIHRyaWdnZXJzLg0KICAgICAgDQogICAgICBGaXg6 DQogICAgICAxLiBwcm9wZXJseSBoYW5kbGUgdGFibGUvZGF0YWJhc2UgbmFtZXMg d2l0aCAiI215c3FsNTAjIiBwcmVmaXguDQogICAgICAyLiBoYW5kbGUgLS1kZWZh dWx0LWNoYXJhY3Rlci1zZXQgbXlzcWxjaGVjayBvcHRpb247DQogICAgICBpZiBt eXNxbGNoZWNrIGlzIGxhdW5jaGVkIHdpdGggLS1maXgtdGFibGUtbmFtZSBvciAt LWZpeC1kYi1uYW1lDQogICAgICBzZXQgZGVmYXVsdCBjaGFyYWN0ZXIgc2V0IHRv IFVURjggaWYgbm8gLS1kZWZhdWx0LWNoYXJhY3Rlci1zZXQNCiAgICAgIG9wdGlv biBnaXZlbi4NCiAgICAgIA0KICAgICAgTm90ZTogaWYgZ2l2ZW4gLS1maXgtdGFi bGUtbmFtZSBvciAtLWZpeC1kYi1uYW1lIG9wdGlvbiwNCiAgICAgIHdpdGhvdXQg LS1kZWZhdWx0LWNoYXJhY3Rlci1zZXQgbXlzcWxjaGVjayBvcHRpb24NCiAgICAg IGRlZmF1bHQgY2hhcmFjdGVyIHNldCBpcyBVVEY4Lg0KbW9kaWZpZWQ6DQogIGNs aWVudC9teXNxbGNoZWNrLmMNCiAgbXlzcWwtdGVzdC9yL215c3FsY2hlY2sucmVz dWx0DQogIG15c3FsLXRlc3QvdC9teXNxbGNoZWNrLnRlc3QNCiAgc3FsL215c3Fs X3ByaXYuaA0KICBzcWwvc3FsX3RhYmxlLmNjDQogIHNxbC9zcWxfdHJpZ2dlci5j Yw0KICBzcWwvc3FsX3RyaWdnZXIuaA0KDQpwZXItZmlsZSBtZXNzYWdlczoNCiAg Y2xpZW50L215c3FsY2hlY2suYw0KICAgIEZpeCBmb3INCiAgICBidWcjMzMwOTQ6 IEVycm9yIGluIHVwZ3JhZGluZyBmcm9tIDUuMCB0byA1LjEgd2hlbiB0YWJsZSBj b250YWlucw0KICAgIHRyaWdnZXJzDQogICAgYW5kDQogICAgIzQxMzg1OiBDcmFz aCB3aGVuIGF0dGVtcHRpbmcgdG8gcmVwYWlyIGEgI215c3FsNTAjIHVwZ3JhZGVk IHRhYmxlDQogICAgd2l0aCB0cmlnZ2Vycy4NCiAgICAgIC0gY2hlY2sgYW5kIHNl dCBkZWZhdWx0IGNoYXJzZXQgaWYgLS1kZWZhdWx0LWNoYXJhY3Rlci1zZXQgb3B0 aW9uDQogICAgICAgIGdpdmVuLg0KICAgICAgLSBzZXQgZGVmYXVsdCBjaGFyc2V0 IHRvICJ1dGY4IiBpZiB0aGVyZSdzDQogICAgICAgIC0tZml4LXRhYmxlLW5hbWUg b3IgLS1maXgtZGItbmFtZSBhbmQgbm8gLS1kZWZhdWx0LWNoYXJhY3Rlci1zZXQu DQogIG15c3FsLXRlc3Qvci9teXNxbGNoZWNrLnJlc3VsdA0KICAgIEZpeCBmb3IN CiAgICBidWcjMzMwOTQ6IEVycm9yIGluIHVwZ3JhZGluZyBmcm9tIDUuMCB0byA1 LjEgd2hlbiB0YWJsZSBjb250YWlucw0KICAgIHRyaWdnZXJzDQogICAgYW5kDQog ICAgIzQxMzg1OiBDcmFzaCB3aGVuIGF0dGVtcHRpbmcgdG8gcmVwYWlyIGEgI215 c3FsNTAjIHVwZ3JhZGVkIHRhYmxlDQogICAgd2l0aCB0cmlnZ2Vycy4NCiAgICAg IC0gdGVzdCByZXN1bHQuDQogIG15c3FsLXRlc3QvdC9teXNxbGNoZWNrLnRlc3QN CiAgICBGaXggZm9yDQogICAgYnVnIzMzMDk0OiBFcnJvciBpbiB1cGdyYWRpbmcg ZnJvbSA1LjAgdG8gNS4xIHdoZW4gdGFibGUgY29udGFpbnMNCiAgICB0cmlnZ2Vy cw0KICAgIGFuZA0KICAgICM0MTM4NTogQ3Jhc2ggd2hlbiBhdHRlbXB0aW5nIHRv IHJlcGFpciBhICNteXNxbDUwIyB1cGdyYWRlZCB0YWJsZQ0KICAgIHdpdGggdHJp Z2dlcnMuDQogICAgICAtIHRlc3QgY2FzZS4NCiAgc3FsL215c3FsX3ByaXYuaA0K ICAgIEZpeCBmb3INCiAgICBidWcjMzMwOTQ6IEVycm9yIGluIHVwZ3JhZGluZyBm cm9tIDUuMCB0byA1LjEgd2hlbiB0YWJsZSBjb250YWlucw0KICAgIHRyaWdnZXJz DQogICAgYW5kDQogICAgIzQxMzg1OiBDcmFzaCB3aGVuIGF0dGVtcHRpbmcgdG8g cmVwYWlyIGEgI215c3FsNTAjIHVwZ3JhZGVkIHRhYmxlDQogICAgd2l0aCB0cmln Z2Vycy4NCiAgICAgIC0gY2hlY2tfbl9jdXRfbXlzcWw1MF9wcmVmaXgoKSBpbnRy b2R1Y2VkLg0KICBzcWwvc3FsX3RhYmxlLmNjDQogICAgRml4IGZvcg0KICAgIGJ1 ZyMzMzA5NDogRXJyb3IgaW4gdXBncmFkaW5nIGZyb20gNS4wIHRvIDUuMSB3aGVu IHRhYmxlIGNvbnRhaW5zDQogICAgdHJpZ2dlcnMNCiAgICBhbmQNCiAgICAjNDEz ODU6IENyYXNoIHdoZW4gYXR0ZW1wdGluZyB0byByZXBhaXIgYSAjbXlzcWw1MCMg dXBncmFkZWQgdGFibGUNCiAgICB3aXRoIHRyaWdnZXJzLg0KICAgICAgLSB0YWJs ZW5hbWVfdG9fZmlsZW5hbWUoKSBjb2RlIHNwbGl0IGludG8gMiBwYXJ0cw0KICAg ICAgLSBjaGVja19uX2N1dF9teXNxbDUwX3ByZWZpeCgpIGludHJvZHVjZWQgdG8g Y3V0ICNteXNxbDUwIyBwcmVmaXhlcywNCiAgICAgICAgdXNlZCBpbiB0aGUgdHJp Z2dlciBjb2RlIGFzIHdlbGwuDQogIHNxbC9zcWxfdHJpZ2dlci5jYw0KICAgIEZp eCBmb3INCiAgICBidWcjMzMwOTQ6IEVycm9yIGluIHVwZ3JhZGluZyBmcm9tIDUu MCB0byA1LjEgd2hlbiB0YWJsZSBjb250YWlucw0KICAgIHRyaWdnZXJzDQogICAg YW5kDQogICAgIzQxMzg1OiBDcmFzaCB3aGVuIGF0dGVtcHRpbmcgdG8gcmVwYWly IGEgI215c3FsNTAjIHVwZ3JhZGVkIHRhYmxlDQogICAgd2l0aCB0cmlnZ2Vycy4N CiAgICAgIC0gVGFibGVfdHJpZ2dlcnNfbGlzdDo6Y2hlY2tfbl9sb2FkKCkgLSBj aGVja2luZyB0cmlnZ2VycyBhc3N1bWUNCiAgICAgICAgYSB0YWJsZS9kYXRhYmFz ZSBuYW1lIGdpdmVuIG1heSBoYXZlICIjbXlzcWw1MCMiIHByZWZpeCBpbiBzb21l IGNhc2VzLg0KICAgICAgLSBUYWJsZV90cmlnZ2Vyc19saXN0OjpjaGFuZ2VfdGFi bGVfbmFtZV9pbl90cmlnZ2VycygpIC0NCiAgICAgICAgY3JlYXRlIC5UUkcgZmls ZSBpbiBuZXcgZGF0YWJhc2UgZGlyZWN0b3J5IGFuZCBkZWxldGUgaXQgaW4gb2xk IG9uZSwNCiAgICAgICAgYXMgdGhleSBtYXkgZGlmZmVyIGluIGNhc2Ugb2YNCiAg ICAgICAgIkFMVEVSIERBVEFCQVNFIC4uLiBVUEdSQURFIERBVEEgRElSRUNUT1JZ IE5BTUUiDQogICAgICAtIFRhYmxlX3RyaWdnZXJzX2xpc3Q6OmNoYW5nZV90YWJs ZV9uYW1lX2luX3RyaWduYW1lcygpIC0gcmVtb3ZlIHN0YWxlIC5UUk4NCiAgICAg ICAgZmlsZXMgaW4gI215c3FsNTAjZGJuYW1lIGRpcmVjdG9yeSBpbiBjYXNlIG9m IGRhdGFiYXNlIHVwZ3JhZGUNCiAgICAgIC0gVGFibGVfdHJpZ2dlcnNfbGlzdDo6 Y2hhbmdlX3RhYmxlX25hbWUoKSAtIGFsbG93IGNoYW5naW5nIHRyaWdnZXIncw0K ICAgICAgICBkYXRhYmFzZSBpbiBjYXNlIG9mIGl0cyB1cGdyYWRpbmcNCiAgc3Fs L3NxbF90cmlnZ2VyLmgNCiAgICBGaXggZm9yDQogICAgYnVnIzMzMDk0OiBFcnJv ciBpbiB1cGdyYWRpbmcgZnJvbSA1LjAgdG8gNS4xIHdoZW4gdGFibGUgY29udGFp bnMNCiAgICB0cmlnZ2Vycw0KICAgIGFuZA0KICAgICM0MTM4NTogQ3Jhc2ggd2hl biBhdHRlbXB0aW5nIHRvIHJlcGFpciBhICNteXNxbDUwIyB1cGdyYWRlZCB0YWJs ZQ0KICAgIHdpdGggdHJpZ2dlcnMuDQogICAgICAtIG5ldyBvbGRfZGJfbmFtZSBw YXJhbWV0ZXIgYWRkZWQgaW4NCiAgICAgICAgVGFibGVfdHJpZ2dlcnNfbGlzdDo6 Y2hhbmdlX3RhYmxlX25hbWVfaW5fdHJpZ25hbWVzKCkgYW5kDQogICAgICAgIFRh YmxlX3RyaWdnZXJzX2xpc3Q6OmNoYW5nZV90YWJsZV9uYW1lX2luX3RyaWdnZXJz KCkNCj09PSBtb2RpZmllZCBmaWxlICdjbGllbnQvbXlzcWxjaGVjay5jJw0KLS0t IGEvY2xpZW50L215c3FsY2hlY2suYwkyMDA4LTExLTE0IDA5OjQ4OjAxICswMDAw DQorKysgYi9jbGllbnQvbXlzcWxjaGVjay5jCTIwMDktMDEtMTQgMTQ6NTA6NTEg KzAwMDANCkBAIC00MCwxNSArNDAsMTMgQEAgc3RhdGljIHVpbnQgdmVyYm9zZSA9 IDAsIG9wdF9teXNxbF9wb3J0PQ0KIHN0YXRpYyBpbnQgbXlfZW5kX2FyZzsNCiBz dGF0aWMgY2hhciAqIG9wdF9teXNxbF91bml4X3BvcnQgPSAwOw0KIHN0YXRpYyBj aGFyICpvcHRfcGFzc3dvcmQgPSAwLCAqY3VycmVudF91c2VyID0gMCwgDQotCSAg ICAqZGVmYXVsdF9jaGFyc2V0ID0gKGNoYXIgKilNWVNRTF9ERUZBVUxUX0NIQVJT RVRfTkFNRSwNCi0JICAgICpjdXJyZW50X2hvc3QgPSAwOw0KKwkgICAgKmRlZmF1 bHRfY2hhcnNldD0gMCwgKmN1cnJlbnRfaG9zdD0gMDsNCiBzdGF0aWMgaW50IGZp cnN0X2Vycm9yID0gMDsNCiBEWU5BTUlDX0FSUkFZIHRhYmxlczRyZXBhaXI7DQog I2lmZGVmIEhBVkVfU01FTQ0KIHN0YXRpYyBjaGFyICpzaGFyZWRfbWVtb3J5X2Jh c2VfbmFtZT0wOw0KICNlbmRpZg0KIHN0YXRpYyB1aW50IG9wdF9wcm90b2NvbD0w Ow0KLXN0YXRpYyBDSEFSU0VUX0lORk8gKmNoYXJzZXRfaW5mbz0gJm15X2NoYXJz ZXRfbGF0aW4xOw0KIA0KIGVudW0gb3BlcmF0aW9ucyB7IERPX0NIRUNLLCBET19S RVBBSVIsIERPX0FOQUxZWkUsIERPX09QVElNSVpFLCBET19VUEdSQURFIH07DQog DQpAQCAtMjgyLDEyICsyODAsMTAgQEAgZ2V0X29uZV9vcHRpb24oaW50IG9wdGlk LCBjb25zdCBzdHJ1Y3QgbQ0KICAgICBicmVhazsNCiAgIGNhc2UgT1BUX0ZJWF9E Ql9OQU1FUzoNCiAgICAgd2hhdF90b19kbz0gRE9fVVBHUkFERTsNCi0gICAgZGVm YXVsdF9jaGFyc2V0PSAoY2hhciopICJ1dGY4IjsNCiAgICAgb3B0X2RhdGFiYXNl cz0gMTsNCiAgICAgYnJlYWs7DQogICBjYXNlIE9QVF9GSVhfVEFCTEVfTkFNRVM6 DQogICAgIHdoYXRfdG9fZG89IERPX1VQR1JBREU7DQotICAgIGRlZmF1bHRfY2hh cnNldD0gKGNoYXIqKSAidXRmOCI7DQogICAgIGJyZWFrOw0KICAgY2FzZSAncCc6 DQogICAgIGlmIChhcmd1bWVudCkNCkBAIC0zNjcsMTEgKzM2MywyMCBAQCBzdGF0 aWMgaW50IGdldF9vcHRpb25zKGludCAqYXJnYywgY2hhciAqDQogICAgICAgd2hh dF90b19kbyA9IERPX0NIRUNLOw0KICAgfQ0KIA0KLSAgLyogVE9ETzogVGhpcyB2 YXJpYWJsZSBpcyBub3QgeWV0IHVzZWQgKi8NCi0gIGlmIChzdHJjbXAoZGVmYXVs dF9jaGFyc2V0LCBjaGFyc2V0X2luZm8tPmNzbmFtZSkgJiYNCi0gICAgICAhKGNo YXJzZXRfaW5mbz0gZ2V0X2NoYXJzZXRfYnlfY3NuYW1lKGRlZmF1bHRfY2hhcnNl dCwgDQotICAJCQkJCSAgICBNWV9DU19QUklNQVJZLCBNWUYoTVlfV01FKSkpKQ0K LSAgICAgIGV4aXQoMSk7DQorICAvKg0KKyAgICBJZiB0aGVyZSdzIG5vIC0tZGVm YXVsdC1jaGFyYWN0ZXItc2V0IG9wdGlvbiBnaXZlbiB3aXRoDQorICAgIC0tZml4 LXRhYmxlLW5hbWUgb3IgLS1maXgtZGItbmFtZSBzZXQgdGhlIGRlZmF1bHQgY2hh cmFjdGVyIHNldCB0byAidXRmOCIuDQorICAqLw0KKyAgaWYgKCFkZWZhdWx0X2No YXJzZXQgJiYgKG9wdF9maXhfZGJfbmFtZXMgfHwgb3B0X2ZpeF90YWJsZV9uYW1l cykpDQorICB7DQorICAgIGRlZmF1bHRfY2hhcnNldD0gKGNoYXIqKSAidXRmOCI7 DQorICB9DQorICBpZiAoZGVmYXVsdF9jaGFyc2V0ICYmICFnZXRfY2hhcnNldF9i eV9jc25hbWUoZGVmYXVsdF9jaGFyc2V0LCBNWV9DU19QUklNQVJZLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ZRihN WV9XTUUpKSkNCisgIHsNCisgICAgcHJpbnRmKCJVbnN1cHBvcnRlZCBjaGFyYWN0 ZXIgc2V0OiAlc1xuIiwgZGVmYXVsdF9jaGFyc2V0KTsNCisgICAgcmV0dXJuIDE7 DQorICB9DQogICBpZiAoKmFyZ2MgPiAwICYmIG9wdF9hbGxkYnMpDQogICB7DQog ICAgIHByaW50ZigiWW91IHNob3VsZCBnaXZlIG9ubHkgb3B0aW9ucywgbm8gYXJn dW1lbnRzIGF0IGFsbCwgd2l0aCBvcHRpb25cbiIpOw0KQEAgLTc3OSw2ICs3ODQs OCBAQCBzdGF0aWMgaW50IGRiQ29ubmVjdChjaGFyICpob3N0LCBjaGFyICp1DQog ICBpZiAoc2hhcmVkX21lbW9yeV9iYXNlX25hbWUpDQogICAgIG15c3FsX29wdGlv bnMoJm15c3FsX2Nvbm5lY3Rpb24sTVlTUUxfU0hBUkVEX01FTU9SWV9CQVNFX05B TUUsc2hhcmVkX21lbW9yeV9iYXNlX25hbWUpOw0KICNlbmRpZg0KKyAgaWYgKGRl ZmF1bHRfY2hhcnNldCkNCisgICAgbXlzcWxfb3B0aW9ucygmbXlzcWxfY29ubmVj dGlvbiwgTVlTUUxfU0VUX0NIQVJTRVRfTkFNRSwgZGVmYXVsdF9jaGFyc2V0KTsN CiAgIGlmICghKHNvY2sgPSBteXNxbF9yZWFsX2Nvbm5lY3QoJm15c3FsX2Nvbm5l Y3Rpb24sIGhvc3QsIHVzZXIsIHBhc3N3ZCwNCiAgICAgICAgICBOVUxMLCBvcHRf bXlzcWxfcG9ydCwgb3B0X215c3FsX3VuaXhfcG9ydCwgMCkpKQ0KICAgew0KDQo9 PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL215c3FsY2hlY2sucmVzdWx0 Jw0KLS0tIGEvbXlzcWwtdGVzdC9yL215c3FsY2hlY2sucmVzdWx0CTIwMDgtMTEt MTQgMDk6NDg6MDEgKzAwMDANCisrKyBiL215c3FsLXRlc3Qvci9teXNxbGNoZWNr LnJlc3VsdAkyMDA5LTAxLTE0IDE0OjUwOjUxICswMDAwDQpAQCAtMTMwLDMgKzEz MCw1OCBAQCB2MQ0KIHYtMQ0KIGRyb3AgdmlldyB2MSwgYHYtMWA7DQogZHJvcCB0 YWJsZSB0MTsNCitTRVQgTkFNRVMgdXRmODsNCitDUkVBVEUgVEFCTEUgYCNteXNx bDUwI0BgIChhIElOVCk7DQorU0hPVyBUQUJMRVM7DQorVGFibGVzX2luX3Rlc3QN CisjbXlzcWw1MCNADQorU0VUIE5BTUVTIERFRkFVTFQ7DQorbXlzcWxjaGVjayAt LWZpeC10YWJsZS1uYW1lcyAtLWRhdGFiYXNlcyB0ZXN0DQorU0VUIE5BTUVTIHV0 Zjg7DQorU0hPVyBUQUJMRVM7DQorVGFibGVzX2luX3Rlc3QNCitADQorRFJPUCBU QUJMRSBgQGA7DQorQ1JFQVRFIFRBQkxFIGDRj2AgKGEgSU5UKTsNCitTRVQgTkFN RVMgREVGQVVMVDsNCitteXNxbGNoZWNrIC0tZGVmYXVsdC1jaGFyYWN0ZXItc2V0 PSJsYXRpbjEiIC0tZGF0YWJhc2VzIHRlc3QNCit0ZXN0Lj8NCitFcnJvciAgICA6 IFRhYmxlICd0ZXN0Lj8nIGRvZXNuJ3QgZXhpc3QNCitlcnJvciAgICA6IENvcnJ1 cHQNCitteXNxbGNoZWNrIC0tZGVmYXVsdC1jaGFyYWN0ZXItc2V0PSJ1dGY4IiAt LWRhdGFiYXNlcyB0ZXN0DQordGVzdC7RjyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT0sNCitTRVQgTkFNRVMgdXRmODsNCitEUk9Q IFRBQkxFIGDRj2A7DQorU0VUIE5BTUVTIERFRkFVTFQ7DQorQ1JFQVRFIERBVEFC QVNFIGAjbXlzcWw1MCNhQGJgOw0KK1VTRSBgI215c3FsNTAjYUBiYDsNCitDUkVB VEUgVEFCTEUgYCNteXNxbDUwI2NAZGAgKGEgSU5UKTsNCitDUkVBVEUgVEFCTEUg dDEgKGEgSU5UKTsNCitTRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5U UklHR0VSUw0KK1dIRVJFIFRSSUdHRVJfU0NIRU1BPSIjbXlzcWw1MCNhQGIiIE9S REVSIEJZIHRyaWdnZXJfbmFtZTsNCitUUklHR0VSX0NBVEFMT0cJVFJJR0dFUl9T Q0hFTUEJVFJJR0dFUl9OQU1FCUVWRU5UX01BTklQVUxBVElPTglFVkVOVF9PQkpF Q1RfQ0FUQUxPRwlFVkVOVF9PQkpFQ1RfU0NIRU1BCUVWRU5UX09CSkVDVF9UQUJM RQlBQ1RJT05fT1JERVIJQUNUSU9OX0NPTkRJVElPTglBQ1RJT05fU1RBVEVNRU5U CUFDVElPTl9PUklFTlRBVElPTglBQ1RJT05fVElNSU5HCUFDVElPTl9SRUZFUkVO Q0VfT0xEX1RBQkxFCUFDVElPTl9SRUZFUkVOQ0VfTkVXX1RBQkxFCUFDVElPTl9S RUZFUkVOQ0VfT0xEX1JPVwlBQ1RJT05fUkVGRVJFTkNFX05FV19ST1cJQ1JFQVRF RAlTUUxfTU9ERQlERUZJTkVSCUNIQVJBQ1RFUl9TRVRfQ0xJRU5UCUNPTExBVElP Tl9DT05ORUNUSU9OCURBVEFCQVNFX0NPTExBVElPTg0KK05VTEwJI215c3FsNTAj YUBiCXRyMQlJTlNFUlQJTlVMTAkjbXlzcWw1MCNhQGIJI215c3FsNTAjY0BkCTAJ TlVMTAlTRVQgTkVXLmEgPSAxMCAqIE5FVy5hCVJPVwlCRUZPUkUJTlVMTAlOVUxM CU9MRAlORVcJTlVMTAkJcm9vdEBsb2NhbGhvc3QJbGF0aW4xCWxhdGluMV9zd2Vk aXNoX2NpCWxhdGluMV9zd2VkaXNoX2NpDQorTlVMTAkjbXlzcWw1MCNhQGIJdHIy CUlOU0VSVAlOVUxMCSNteXNxbDUwI2FAYgl0MQkwCU5VTEwJU0VUIE5FVy5hID0g MTAwICogTkVXLmEJUk9XCUJFRk9SRQlOVUxMCU5VTEwJT0xECU5FVwlOVUxMCQly b290QGxvY2FsaG9zdAlsYXRpbjEJbGF0aW4xX3N3ZWRpc2hfY2kJbGF0aW4xX3N3 ZWRpc2hfY2kNCitXYXJuaW5nczoNCitXYXJuaW5nCTE2MDMJVHJpZ2dlcnMgZm9y IHRhYmxlIGAjbXlzcWw1MCNhQGJgLmAjbXlzcWw1MCNjQGRgIGhhdmUgbm8gY3Jl YXRpb24gY29udGV4dA0KK1dhcm5pbmcJMTYwMwlUcmlnZ2VycyBmb3IgdGFibGUg YCNteXNxbDUwI2FAYmAuYHQxYCBoYXZlIG5vIGNyZWF0aW9uIGNvbnRleHQNCitt eXNxbGNoZWNrIC0tZml4LWRiLW5hbWVzIC0tZml4LXRhYmxlLW5hbWVzIC0tYWxs LWRhdGFiYXNlcw0KK1VTRSBgYUBiYDsNCitTRUxFQ1QgKiBGUk9NIElORk9STUFU SU9OX1NDSEVNQS5UUklHR0VSUw0KK1dIRVJFIFRSSUdHRVJfU0NIRU1BPSJhQGIi IE9SREVSIEJZIHRyaWdnZXJfbmFtZTsNCitUUklHR0VSX0NBVEFMT0cJVFJJR0dF Ul9TQ0hFTUEJVFJJR0dFUl9OQU1FCUVWRU5UX01BTklQVUxBVElPTglFVkVOVF9P QkpFQ1RfQ0FUQUxPRwlFVkVOVF9PQkpFQ1RfU0NIRU1BCUVWRU5UX09CSkVDVF9U QUJMRQlBQ1RJT05fT1JERVIJQUNUSU9OX0NPTkRJVElPTglBQ1RJT05fU1RBVEVN RU5UCUFDVElPTl9PUklFTlRBVElPTglBQ1RJT05fVElNSU5HCUFDVElPTl9SRUZF UkVOQ0VfT0xEX1RBQkxFCUFDVElPTl9SRUZFUkVOQ0VfTkVXX1RBQkxFCUFDVElP Tl9SRUZFUkVOQ0VfT0xEX1JPVwlBQ1RJT05fUkVGRVJFTkNFX05FV19ST1cJQ1JF QVRFRAlTUUxfTU9ERQlERUZJTkVSCUNIQVJBQ1RFUl9TRVRfQ0xJRU5UCUNPTExB VElPTl9DT05ORUNUSU9OCURBVEFCQVNFX0NPTExBVElPTg0KK05VTEwJYUBiCXRy MQlJTlNFUlQJTlVMTAlhQGIJY0BkCTAJTlVMTAlTRVQgTkVXLmEgPSAxMCAqIE5F Vy5hCVJPVwlCRUZPUkUJTlVMTAlOVUxMCU9MRAlORVcJTlVMTAkJcm9vdEBsb2Nh bGhvc3QJdXRmOAl1dGY4X2dlbmVyYWxfY2kJbGF0aW4xX3N3ZWRpc2hfY2kNCitO VUxMCWFAYgl0cjIJSU5TRVJUCU5VTEwJYUBiCXQxCTAJTlVMTAlTRVQgTkVXLmEg PSAxMDAgKiBORVcuYQlST1cJQkVGT1JFCU5VTEwJTlVMTAlPTEQJTkVXCU5VTEwJ CXJvb3RAbG9jYWxob3N0CXV0ZjgJdXRmOF9nZW5lcmFsX2NpCWxhdGluMV9zd2Vk aXNoX2NpDQorSU5TRVJUIElOVE8gYGNAZGAgVkFMVUVTICgyKSwgKDEpOw0KK1NF TEVDVCAqIEZST00gYGNAZGA7DQorYQ0KKzIwDQorMTANCitJTlNFUlQgSU5UTyB0 MSBWQUxVRVMgKDMpLCAoNSk7DQorU0VMRUNUICogRlJPTSB0MTsNCithDQorMzAw DQorNTAwDQorRFJPUCBEQVRBQkFTRSBgYUBiYDsNCitVU0UgdGVzdDsNCitFbmQg b2YgNS4xIHRlc3RzDQoNCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Qv bXlzcWxjaGVjay50ZXN0Jw0KLS0tIGEvbXlzcWwtdGVzdC90L215c3FsY2hlY2su dGVzdAkyMDA4LTExLTE0IDA5OjQ4OjAxICswMDAwDQorKysgYi9teXNxbC10ZXN0 L3QvbXlzcWxjaGVjay50ZXN0CTIwMDktMDEtMTQgMTQ6NTA6NTEgKzAwMDANCkBA IC0xMTIsMyArMTEyLDc2IEBAIHNob3cgdGFibGVzOw0KIHNob3cgdGFibGVzOw0K IGRyb3AgdmlldyB2MSwgYHYtMWA7DQogZHJvcCB0YWJsZSB0MTsNCisNCisjDQor IyBCdWcgIzMzMDk0OiBFcnJvciBpbiB1cGdyYWRpbmcgZnJvbSA1LjAgdG8gNS4x IHdoZW4gdGFibGUgY29udGFpbnMgdHJpZ2dlcnMNCisjIEJ1ZyAjNDEzODU6IENy YXNoIHdoZW4gYXR0ZW1wdGluZyB0byByZXBhaXIgYSAjbXlzcWw1MCMgdXBncmFk ZWQgdGFibGUgd2l0aA0KKyMgICAgICAgICAgICAgdHJpZ2dlcnMNCisjDQorU0VU IE5BTUVTIHV0Zjg7DQorQ1JFQVRFIFRBQkxFIGAjbXlzcWw1MCNAYCAoYSBJTlQp Ow0KK1NIT1cgVEFCTEVTOw0KK1NFVCBOQU1FUyBERUZBVUxUOw0KKy0tZWNobyBt eXNxbGNoZWNrIC0tZml4LXRhYmxlLW5hbWVzIC0tZGF0YWJhc2VzIHRlc3QNCist LWV4ZWMgJE1ZU1FMX0NIRUNLIC0tZml4LXRhYmxlLW5hbWVzIC0tZGF0YWJhc2Vz IHRlc3QNCitTRVQgTkFNRVMgdXRmODsNCitTSE9XIFRBQkxFUzsNCitEUk9QIFRB QkxFIGBAYDsNCisNCitDUkVBVEUgVEFCTEUgYNGPYCAoYSBJTlQpOw0KK1NFVCBO QU1FUyBERUZBVUxUOw0KKy0tZWNobyBteXNxbGNoZWNrIC0tZGVmYXVsdC1jaGFy YWN0ZXItc2V0PSJsYXRpbjEiIC0tZGF0YWJhc2VzIHRlc3QNCistLWV4ZWMgJE1Z U1FMX0NIRUNLIC0tZGVmYXVsdC1jaGFyYWN0ZXItc2V0PSJsYXRpbjEiIC0tZGF0 YWJhc2VzIHRlc3QNCistLWVjaG8gbXlzcWxjaGVjayAtLWRlZmF1bHQtY2hhcmFj dGVyLXNldD0idXRmOCIgLS1kYXRhYmFzZXMgdGVzdA0KKy0tZXhlYyAkTVlTUUxf Q0hFQ0sgLS1kZWZhdWx0LWNoYXJhY3Rlci1zZXQ9InV0ZjgiIC0tZGF0YWJhc2Vz IHRlc3QNCitTRVQgTkFNRVMgdXRmODsNCitEUk9QIFRBQkxFIGDRj2A7DQorU0VU IE5BTUVTIERFRkFVTFQ7DQorDQorQ1JFQVRFIERBVEFCQVNFIGAjbXlzcWw1MCNh QGJgOw0KK1VTRSBgI215c3FsNTAjYUBiYDsNCitDUkVBVEUgVEFCTEUgYCNteXNx bDUwI2NAZGAgKGEgSU5UKTsNCitDUkVBVEUgVEFCTEUgdDEgKGEgSU5UKTsNCisN CisjIENyZWF0ZSA1LjAgbGlrZSB0cmlnZ2Vycw0KKy0td3JpdGVfZmlsZSAkTVlT UUxURVNUX1ZBUkRJUi9tYXN0ZXItZGF0YS9hQGIvY0BkLlRSRw0KK1RZUEU9VFJJ R0dFUlMNCit0cmlnZ2Vycz0nQ1JFQVRFIERFRklORVI9YHJvb3RgQGBsb2NhbGhv c3RgIFRSSUdHRVIgdHIxIEJFRk9SRSBJTlNFUlQgT04gYGNAZGAgRk9SIEVBQ0gg Uk9XIFNFVCBORVcuYSA9IDEwICogTkVXLmEnDQorc3FsX21vZGVzPTANCitkZWZp bmVycz0ncm9vdEBsb2NhbGhvc3QnDQorRU9GDQorLS13cml0ZV9maWxlICRNWVNR TFRFU1RfVkFSRElSL21hc3Rlci1kYXRhL2FAYi90cjEuVFJODQorVFlQRT1UUklH R0VSTkFNRQ0KK3RyaWdnZXJfdGFibGU9Y0BkDQorRU9GDQorLS13cml0ZV9maWxl ICRNWVNRTFRFU1RfVkFSRElSL21hc3Rlci1kYXRhL2FAYi90MS5UUkcNCitUWVBF PVRSSUdHRVJTDQordHJpZ2dlcnM9J0NSRUFURSBERUZJTkVSPWByb290YEBgbG9j YWxob3N0YCBUUklHR0VSIHRyMiBCRUZPUkUgSU5TRVJUIE9OIGBhQGJgLnQxIEZP UiBFQUNIIFJPVyBTRVQgTkVXLmEgPSAxMDAgKiBORVcuYScNCitzcWxfbW9kZXM9 MA0KK2RlZmluZXJzPSdyb290QGxvY2FsaG9zdCcNCitFT0YNCistLXdyaXRlX2Zp bGUgJE1ZU1FMVEVTVF9WQVJESVIvbWFzdGVyLWRhdGEvYUBiL3RyMi5UUk4NCitU WVBFPVRSSUdHRVJOQU1FDQordHJpZ2dlcl90YWJsZT10MQ0KK0VPRg0KKw0KK1NF TEVDVCAqIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRSSUdHRVJTDQorICBXSEVS RSBUUklHR0VSX1NDSEVNQT0iI215c3FsNTAjYUBiIiBPUkRFUiBCWSB0cmlnZ2Vy X25hbWU7DQorDQorLS1lY2hvIG15c3FsY2hlY2sgLS1maXgtZGItbmFtZXMgLS1m aXgtdGFibGUtbmFtZXMgLS1hbGwtZGF0YWJhc2VzDQorLS1leGVjICRNWVNRTF9D SEVDSyAtLWZpeC1kYi1uYW1lcyAtLWZpeC10YWJsZS1uYW1lcyAtLWFsbC1kYXRh YmFzZXMNCisNCitVU0UgYGFAYmA7DQorU0VMRUNUICogRlJPTSBJTkZPUk1BVElP Tl9TQ0hFTUEuVFJJR0dFUlMNCisgIFdIRVJFIFRSSUdHRVJfU0NIRU1BPSJhQGIi IE9SREVSIEJZIHRyaWdnZXJfbmFtZTsNCisNCitJTlNFUlQgSU5UTyBgY0BkYCBW QUxVRVMgKDIpLCAoMSk7DQorU0VMRUNUICogRlJPTSBgY0BkYDsNCitJTlNFUlQg SU5UTyB0MSBWQUxVRVMgKDMpLCAoNSk7DQorU0VMRUNUICogRlJPTSB0MTsNCisN CitEUk9QIERBVEFCQVNFIGBhQGJgOw0KKw0KK1VTRSB0ZXN0Ow0KKw0KKy0tZWNo byBFbmQgb2YgNS4xIHRlc3RzDQoNCj09PSBtb2RpZmllZCBmaWxlICdzcWwvbXlz cWxfcHJpdi5oJw0KLS0tIGEvc3FsL215c3FsX3ByaXYuaAkyMDA5LTAxLTA1IDE2 OjEwOjIwICswMDAwDQorKysgYi9zcWwvbXlzcWxfcHJpdi5oCTIwMDktMDEtMTQg MTQ6NTA6NTEgKzAwMDANCkBAIC0yMjMwLDYgKzIyMzAsNyBAQCB1aW50IHN0cmNv bnZlcnQoQ0hBUlNFVF9JTkZPICpmcm9tX2NzLCBjDQogICAgICAgICAgICAgICAg IENIQVJTRVRfSU5GTyAqdG9fY3MsIGNoYXIgKnRvLCB1aW50IHRvX2xlbmd0aCwg dWludCAqZXJyb3JzKTsNCiB1aW50IGZpbGVuYW1lX3RvX3RhYmxlbmFtZShjb25z dCBjaGFyICpmcm9tLCBjaGFyICp0bywgdWludCB0b19sZW5ndGgpOw0KIHVpbnQg dGFibGVuYW1lX3RvX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZyb20sIGNoYXIgKnRv LCB1aW50IHRvX2xlbmd0aCk7DQordWludCBjaGVja19uX2N1dF9teXNxbDUwX3By ZWZpeChjb25zdCBjaGFyICpmcm9tLCBjaGFyICp0bywgdWludCB0b19sZW5ndGgp Ow0KICNlbmRpZiAvKiBNWVNRTF9TRVJWRVIgfHwgSU5OT0RCX0NPTVBBVElCSUxJ VFlfSE9PS1MgKi8NCiAjaWZkZWYgTVlTUUxfU0VSVkVSDQogdWludCBidWlsZF90 YWJsZV9maWxlbmFtZShjaGFyICpidWZmLCBzaXplX3QgYnVmZmxlbiwgY29uc3Qg Y2hhciAqZGIsDQoNCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3RhYmxlLmNj Jw0KLS0tIGEvc3FsL3NxbF90YWJsZS5jYwkyMDA5LTAxLTA1IDE2OjEwOjIwICsw MDAwDQorKysgYi9zcWwvc3FsX3RhYmxlLmNjCTIwMDktMDEtMTQgMTQ6NTA6NTEg KzAwMDANCkBAIC0xMTQsNiArMTE0LDMwIEBAIHVpbnQgZmlsZW5hbWVfdG9fdGFi bGVuYW1lKGNvbnN0IGNoYXIgKmYNCiB9DQogDQogDQorLyoqDQorICBDaGVjayBp ZiBnaXZlbiBzdHJpbmcgYmVnaW5zIHdpdGggIiNteXNxbDUwIyIgcHJlZml4LCBj dXQgaXQgaWYgc28uDQorICANCisgIEBwYXJhbSAgIGZyb20gICAgICAgICAgc3Ry aW5nIHRvIGNoZWNrIGFuZCBjdXQgDQorICBAcGFyYW0gICB0b1tvdXRdICAgICAg IGJ1ZmZlciBmb3IgcmVzdWx0IHN0cmluZw0KKyAgQHBhcmFtICAgdG9fbGVuZ3Ro ICAgICBpdHMgc2l6ZQ0KKyAgDQorICBAcmV0dmFsDQorICAgIDAgICAgICBubyBw cmVmaXggZm91bmQNCisgIEByZXR2YWwNCisgICAgbm9uLTAgIHJlc3VsdCBzdHJp bmcgbGVuZ3RoDQorKi8NCisNCit1aW50IGNoZWNrX25fY3V0X215c3FsNTBfcHJl Zml4KGNvbnN0IGNoYXIgKmZyb20sIGNoYXIgKnRvLCB1aW50IHRvX2xlbmd0aCkN Cit7DQorICBpZiAoZnJvbVswXSA9PSAnIycgJiYgDQorICAgICAgIXN0cm5jbXAo ZnJvbSwgTVlTUUw1MF9UQUJMRV9OQU1FX1BSRUZJWCwNCisgICAgICAgICAgICAg ICBNWVNRTDUwX1RBQkxFX05BTUVfUFJFRklYX0xFTkdUSCkpDQorICAgIHJldHVy biAodWludCkgKHN0cm1ha2UodG8sIGZyb20gKyBNWVNRTDUwX1RBQkxFX05BTUVf UFJFRklYX0xFTkdUSCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0b19s ZW5ndGggLSAxKSAtIHRvKTsNCisgIHJldHVybiAwOw0KK30NCisNCisNCiAvKg0K ICAgVHJhbnNsYXRlIGEgdGFibGUgbmFtZSB0byBhIGZpbGUgbmFtZSAoV0wgIzEz MjQpLg0KIA0KQEAgLTEzMywxMSArMTU3LDggQEAgdWludCB0YWJsZW5hbWVfdG9f ZmlsZW5hbWUoY29uc3QgY2hhciAqZg0KICAgREJVR19FTlRFUigidGFibGVuYW1l X3RvX2ZpbGVuYW1lIik7DQogICBEQlVHX1BSSU5UKCJlbnRlciIsICgiZnJvbSAn JXMnIiwgZnJvbSkpOw0KIA0KLSAgaWYgKGZyb21bMF0gPT0gJyMnICYmICFzdHJu Y21wKGZyb20sIE1ZU1FMNTBfVEFCTEVfTkFNRV9QUkVGSVgsDQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTVlTUUw1MF9UQUJMRV9OQU1FX1BSRUZJ WF9MRU5HVEgpKQ0KLSAgICBEQlVHX1JFVFVSTigodWludCkgKHN0cm1ha2UodG8s IGZyb20rTVlTUUw1MF9UQUJMRV9OQU1FX1BSRUZJWF9MRU5HVEgsDQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0b19sZW5ndGgtMSkgLQ0KLSAgICAg ICAgICAgICAgICAgICAgICAgIChmcm9tICsgTVlTUUw1MF9UQUJMRV9OQU1FX1BS RUZJWF9MRU5HVEgpKSk7DQorICBpZiAoKGxlbmd0aD0gY2hlY2tfbl9jdXRfbXlz cWw1MF9wcmVmaXgoZnJvbSwgdG8sIHRvX2xlbmd0aCkpKQ0KKyAgICBEQlVHX1JF VFVSTihsZW5ndGgpOw0KICAgbGVuZ3RoPSBzdHJjb252ZXJ0KHN5c3RlbV9jaGFy c2V0X2luZm8sIGZyb20sDQogICAgICAgICAgICAgICAgICAgICAgJm15X2NoYXJz ZXRfZmlsZW5hbWUsIHRvLCB0b19sZW5ndGgsICZlcnJvcnMpOw0KICAgaWYgKGNo ZWNrX2lmX2xlZ2FsX3RhYmxlbmFtZSh0bykgJiYNCg0KPT09IG1vZGlmaWVkIGZp bGUgJ3NxbC9zcWxfdHJpZ2dlci5jYycNCi0tLSBhL3NxbC9zcWxfdHJpZ2dlci5j YwkyMDA4LTExLTE0IDE3OjM3OjI3ICswMDAwDQorKysgYi9zcWwvc3FsX3RyaWdn ZXIuY2MJMjAwOS0wMS0xNCAxNDo1MDo1MSArMDAwMA0KQEAgLTEzNjgsMTUgKzEz NjgsMjcgQEAgYm9vbCBUYWJsZV90cmlnZ2Vyc19saXN0OjpjaGVja19uX2xvYWQo VA0KIA0KICAgICAgICAgaWYgKHRyaWdnZXJzLT5vbl90YWJsZV9uYW1lc19saXN0 LnB1c2hfYmFjayhvbl90YWJsZV9uYW1lLCAmdGFibGUtPm1lbV9yb290KSkNCiAg ICAgICAgICAgZ290byBlcnJfd2l0aF9sZXhfY2xlYW51cDsNCi0NCisjaWZuZGVm IERCVUdfT0ZGDQogICAgICAgICAvKg0KICAgICAgICAgICBMZXQgdXMgY2hlY2sg dGhhdCB3ZSBjb3JyZWN0bHkgdXBkYXRlIHRyaWdnZXIgZGVmaW5pdGlvbnMgd2hl biB3ZQ0KICAgICAgICAgICByZW5hbWUgdGFibGVzIHdpdGggdHJpZ2dlcnMuDQor ICAgICAgICAgIA0KKyAgICAgICAgICBJbiBzcGVjaWFsIGNhc2VzIGxpa2UgIlJF TkFNRSBUQUJMRSBgI215c3FsNTAjc29tZW5hbWVgIFRPIGBzb21lbmFtZWAiDQor ICAgICAgICAgIG9yICJBTFRFUiBEQVRBQkFTRSBgI215c3FsNTAjc29tZW5hbWVg IFVQR1JBREUgREFUQSBESVJFQ1RPUlkgTkFNRSINCisgICAgICAgICAgd2UgbWln aHQgYmUgZ2l2ZW4gdGFibGUgb3IgZGF0YWJhc2UgbmFtZSB3aXRoICIjbXlzcWw1 MCMiIHByZWZpeCAoYW5kDQorICAgICAgICAgIHRyaWdnZXIncyBkZWZpbml0b24g Y29udGFpbnMgdW4tcHJlZml4ZWQgdmVyc2lvbiBvZiB0aGUgc2FtZSBuYW1lKS4N CisgICAgICAgICAgVG8gcmVtb3ZlIHRoaXMgcHJlZml4IHdlIHVzZSBjaGVja19u X2N1dF9teXNxbDUwX3ByZWZpeCgpLg0KICAgICAgICAgKi8NCi0gICAgICAgIERC VUdfQVNTRVJUKCFteV9zdHJjYXNlY21wKHRhYmxlX2FsaWFzX2NoYXJzZXQsIGxl eC5xdWVyeV90YWJsZXMtPmRiLCBkYikgJiYNCi0gICAgICAgICAgICAgICAgICAg ICFteV9zdHJjYXNlY21wKHRhYmxlX2FsaWFzX2NoYXJzZXQsIGxleC5xdWVyeV90 YWJsZXMtPnRhYmxlX25hbWUsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0YWJsZV9uYW1lKSk7DQogDQorICAgICAgICBjaGFyIGZuYW1lW05B TUVfTEVOICsgMV07DQorICAgICAgICBEQlVHX0FTU0VSVCgoIW15X3N0cmNhc2Vj bXAodGFibGVfYWxpYXNfY2hhcnNldCwgbGV4LnF1ZXJ5X3RhYmxlcy0+ZGIsIGRi KSB8fA0KKyAgICAgICAgICAgICAgICAgICAgIChjaGVja19uX2N1dF9teXNxbDUw X3ByZWZpeChkYiwgZm5hbWUsIHNpemVvZihmbmFtZSkpICYmDQorICAgICAgICAg ICAgICAgICAgICAgICFteV9zdHJjYXNlY21wKHRhYmxlX2FsaWFzX2NoYXJzZXQs IGxleC5xdWVyeV90YWJsZXMtPmRiLCBmbmFtZSkpKSAmJg0KKyAgICAgICAgICAg ICAgICAgICAgKCFteV9zdHJjYXNlY21wKHRhYmxlX2FsaWFzX2NoYXJzZXQsIGxl eC5xdWVyeV90YWJsZXMtPnRhYmxlX25hbWUsDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGFibGVfbmFtZSkgfHwNCisgICAgICAgICAgICAg ICAgICAgICAoY2hlY2tfbl9jdXRfbXlzcWw1MF9wcmVmaXgodGFibGVfbmFtZSwg Zm5hbWUsIHNpemVvZihmbmFtZSkpICYmDQorICAgICAgICAgICAgICAgICAgICAg ICFteV9zdHJjYXNlY21wKHRhYmxlX2FsaWFzX2NoYXJzZXQsIGxleC5xdWVyeV90 YWJsZXMtPnRhYmxlX25hbWUsIGZuYW1lKSkpKTsNCisjZW5kaWYNCiAgICAgICAg IGlmIChuYW1lc19vbmx5KQ0KICAgICAgICAgew0KICAgICAgICAgICBsZXhfZW5k KCZsZXgpOw0KQEAgLTE2OTIsNyArMTcwNCw4IEBAIGVuZDoNCiAgIChjaGFuZ2Ug bmFtZSBvZiB0YWJsZSBpbiB0cmlnZ2VycycgZGVmaW5pdGlvbnMpLg0KIA0KICAg QHBhcmFtIHRoZCAgICAgICAgICAgICAgICAgVGhyZWFkIGNvbnRleHQNCi0gIEBw YXJhbSBkYl9uYW1lICAgICAgICAgICAgIERhdGFiYXNlIG9mIHN1YmplY3QgdGFi bGUNCisgIEBwYXJhbSBvbGRfZGJfbmFtZSAgICAgICAgIE9sZCBkYXRhYmFzZSBv ZiBzdWJqZWN0IHRhYmxlDQorICBAcGFyYW0gbmV3X2RiX25hbWUgICAgICAgICBO ZXcgZGF0YWJhc2Ugb2Ygc3ViamVjdCB0YWJsZQ0KICAgQHBhcmFtIG9sZF90YWJs ZV9uYW1lICAgICAgT2xkIHN1YmplY3QgdGFibGUncyBuYW1lDQogICBAcGFyYW0g bmV3X3RhYmxlX25hbWUgICAgICBOZXcgc3ViamVjdCB0YWJsZSdzIG5hbWUNCiAN CkBAIC0xNzA0LDcgKzE3MTcsOCBAQCBlbmQ6DQogDQogYm9vbA0KIFRhYmxlX3Ry aWdnZXJzX2xpc3Q6OmNoYW5nZV90YWJsZV9uYW1lX2luX3RyaWdnZXJzKFRIRCAq dGhkLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKmRiX25hbWUsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq b2xkX2RiX25hbWUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmV3X2RiX25hbWUsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TEVYX1NUUklORyAqb2xkX3RhYmxlX25hbWUsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVYX1NUUklORyAqbmV3 X3RhYmxlX25hbWUpDQogew0KQEAgLTE3NTcsMTEgKzE3NzEsMTEgQEAgVGFibGVf dHJpZ2dlcnNfbGlzdDo6Y2hhbmdlX3RhYmxlX25hbWVfaQ0KICAgaWYgKHRoZC0+ aXNfZmF0YWxfZXJyb3IpDQogICAgIHJldHVybiBUUlVFOyAvKiBPT00gKi8NCiAN Ci0gIGlmIChzYXZlX3RyaWdnZXJfZmlsZSh0aGlzLCBkYl9uYW1lLCBuZXdfdGFi bGVfbmFtZS0+c3RyKSkNCisgIGlmIChzYXZlX3RyaWdnZXJfZmlsZSh0aGlzLCBu ZXdfZGJfbmFtZSwgbmV3X3RhYmxlX25hbWUtPnN0cikpDQogICAgIHJldHVybiBU UlVFOw0KLSAgaWYgKHJtX3RyaWdnZXJfZmlsZShwYXRoX2J1ZmYsIGRiX25hbWUs IG9sZF90YWJsZV9uYW1lLT5zdHIpKQ0KKyAgaWYgKHJtX3RyaWdnZXJfZmlsZShw YXRoX2J1ZmYsIG9sZF9kYl9uYW1lLCBvbGRfdGFibGVfbmFtZS0+c3RyKSkNCiAg IHsNCi0gICAgKHZvaWQpIHJtX3RyaWdnZXJfZmlsZShwYXRoX2J1ZmYsIGRiX25h bWUsIG5ld190YWJsZV9uYW1lLT5zdHIpOw0KKyAgICAodm9pZCkgcm1fdHJpZ2dl cl9maWxlKHBhdGhfYnVmZiwgbmV3X2RiX25hbWUsIG5ld190YWJsZV9uYW1lLT5z dHIpOw0KICAgICByZXR1cm4gVFJVRTsNCiAgIH0NCiAgIHJldHVybiBGQUxTRTsN CkBAIC0xNzcyLDcgKzE3ODYsOCBAQCBUYWJsZV90cmlnZ2Vyc19saXN0OjpjaGFu Z2VfdGFibGVfbmFtZV9pDQogICBJdGVyYXRlIHRob3VnaCBUYWJsZV90cmlnZ2Vy c19saXN0OjpuYW1lc19saXN0IGxpc3QgYW5kIHVwZGF0ZQ0KICAgLlRSTiBmaWxl cyBhZnRlciByZW5hbWluZyB0cmlnZ2Vycycgc3ViamVjdCB0YWJsZS4NCiANCi0g IEBwYXJhbSBkYl9uYW1lICAgICAgICAgICAgIERhdGFiYXNlIG9mIHN1YmplY3Qg dGFibGUNCisgIEBwYXJhbSBvbGRfZGJfbmFtZSAgICAgICAgIE9sZCBkYXRhYmFz ZSBvZiBzdWJqZWN0IHRhYmxlDQorICBAcGFyYW0gbmV3X2RiX25hbWUgICAgICAg ICBOZXcgZGF0YWJhc2Ugb2Ygc3ViamVjdCB0YWJsZQ0KICAgQHBhcmFtIG5ld190 YWJsZV9uYW1lICAgICAgTmV3IHN1YmplY3QgdGFibGUncyBuYW1lDQogICBAcGFy YW0gc3RvcHBlciAgICAgICAgICAgICBQb2ludGVyIHRvIFRhYmxlX3RyaWdnZXJz X2xpc3Q6Om5hbWVzX2xpc3QgYXQNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHdoaWNoIHdlIHNob3VsZCBzdG9wIHVwZGF0aW5nLg0KQEAgLTE3ODUsNyAr MTgwMCw4IEBAIFRhYmxlX3RyaWdnZXJzX2xpc3Q6OmNoYW5nZV90YWJsZV9uYW1l X2kNCiAqLw0KIA0KIExFWF9TVFJJTkcqDQotVGFibGVfdHJpZ2dlcnNfbGlzdDo6 Y2hhbmdlX3RhYmxlX25hbWVfaW5fdHJpZ25hbWVzKGNvbnN0IGNoYXIgKmRiX25h bWUsDQorVGFibGVfdHJpZ2dlcnNfbGlzdDo6Y2hhbmdlX3RhYmxlX25hbWVfaW5f dHJpZ25hbWVzKGNvbnN0IGNoYXIgKm9sZF9kYl9uYW1lLA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpuZXdfZGJfbmFtZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTEVYX1NUUklORyAqbmV3X3RhYmxlX25h bWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExFWF9TVFJJTkcgKnN0b3BwZXIpDQogew0KQEAgLTE3OTgsNyAr MTgxNCw3IEBAIFRhYmxlX3RyaWdnZXJzX2xpc3Q6OmNoYW5nZV90YWJsZV9uYW1l X2kNCiAgIHdoaWxlICgodHJpZ2dlcj0gaXRfbmFtZSsrKSAhPSBzdG9wcGVyKQ0K ICAgew0KICAgICB0cmlnbmFtZV9maWxlLmxlbmd0aD0gYnVpbGRfdGFibGVfZmls ZW5hbWUodHJpZ25hbWVfYnVmZiwgRk5fUkVGTEVOLTEsDQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLCB0cmln Z2VyLT5zdHIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuZXdfZGJfbmFtZSwgdHJpZ2dlci0+c3RyLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJOX0VYVCwg MCk7DQogICAgIHRyaWduYW1lX2ZpbGUuc3RyPSB0cmlnbmFtZV9idWZmOw0KIA0K QEAgLTE4MDcsNiArMTgyMywxNiBAQCBUYWJsZV90cmlnZ2Vyc19saXN0OjpjaGFu Z2VfdGFibGVfbmFtZV9pDQogICAgIGlmIChzcWxfY3JlYXRlX2RlZmluaXRpb25f ZmlsZShOVUxMLCAmdHJpZ25hbWVfZmlsZSwgJnRyaWduYW1lX2ZpbGVfdHlwZSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1Y2hhciopJnRy aWduYW1lLCB0cmlnbmFtZV9maWxlX3BhcmFtZXRlcnMpKQ0KICAgICAgIHJldHVy biB0cmlnZ2VyOw0KKyAgICAgIA0KKyAgICAvKiBSZW1vdmUgc3RhbGUgLlRSTiBm aWxlIGluIGNhc2Ugb2YgZGF0YWJhc2UgdXBncmFkZSAqLw0KKyAgICBpZiAob2xk X2RiX25hbWUpDQorICAgIHsNCisgICAgICBpZiAocm1fdHJpZ25hbWVfZmlsZSh0 cmlnbmFtZV9idWZmLCBvbGRfZGJfbmFtZSwgdHJpZ2dlci0+c3RyKSkNCisgICAg ICB7DQorICAgICAgICAodm9pZCkgcm1fdHJpZ25hbWVfZmlsZSh0cmlnbmFtZV9i dWZmLCBuZXdfZGJfbmFtZSwgdHJpZ2dlci0+c3RyKTsNCisgICAgICAgIHJldHVy biB0cmlnZ2VyOw0KKyAgICAgIH0NCisgICAgfQ0KICAgfQ0KIA0KICAgcmV0dXJu IDA7DQpAQCAtMTg0MCw2ICsxODY2LDcgQEAgYm9vbCBUYWJsZV90cmlnZ2Vyc19s aXN0OjpjaGFuZ2VfdGFibGVfbg0KIHsNCiAgIFRBQkxFIHRhYmxlOw0KICAgYm9v bCByZXN1bHQ9IDA7DQorICBib29sIHVwZ3JhZGluZzUwdG81MT0gRkFMU0U7IA0K ICAgTEVYX1NUUklORyAqZXJyX3RyaWduYW1lOw0KICAgREJVR19FTlRFUigiY2hh bmdlX3RhYmxlX25hbWUiKTsNCiANCkBAIC0xODc3LDE0ICsxOTA0LDI3IEBAIGJv b2wgVGFibGVfdHJpZ2dlcnNfbGlzdDo6Y2hhbmdlX3RhYmxlX24NCiAgICAgICBt b3ZpbmcgdGFibGUgd2l0aCB0aGVtIGJldHdlZW4gdHdvIHNjaGVtYXMgcmFpc2Vz IHRvbyBtYW55IHF1ZXN0aW9ucy4NCiAgICAgICAoRS5nLiB3aGF0IHNob3VsZCBo YXBwZW4gaWYgaW4gbmV3IHNjaGVtYSB3ZSBhbHJlYWR5IGhhdmUgdHJpZ2dlcg0K ICAgICAgICB3aXRoIHNhbWUgbmFtZSA/KS4NCisgICAgICAgDQorICAgICAgSW4g Y2FzZSBvZiAiQUxURVIgREFUQUJBU0UgYCNteXNxbDUwI2RiMWAgVVBHUkFERSBE QVRBIERJUkVDVE9SWSBOQU1FIg0KKyAgICAgIHdlIHdpbGwgYmUgZ2l2ZW4gdGFi bGUgbmFtZSB3aXRoICIjbXlzcWw1MCMiIHByZWZpeA0KKyAgICAgIFRvIHJlbW92 ZSB0aGlzIHByZWZpeCB3ZSB1c2UgY2hlY2tfbl9jdXRfbXlzcWw1MF9wcmVmaXgo KS4NCiAgICAgKi8NCiAgICAgaWYgKG15X3N0cmNhc2VjbXAodGFibGVfYWxpYXNf Y2hhcnNldCwgZGIsIG5ld19kYikpDQogICAgIHsNCi0gICAgICBteV9lcnJvcihF Ul9UUkdfSU5fV1JPTkdfU0NIRU1BLCBNWUYoMCkpOw0KLSAgICAgIHJlc3VsdD0g MTsNCi0gICAgICBnb3RvIGVuZDsNCisgICAgICBjaGFyIGRibmFtZVtOQU1FX0xF TiArIDFdOw0KKyAgICAgIGlmIChjaGVja19uX2N1dF9teXNxbDUwX3ByZWZpeChk YiwgZGJuYW1lLCBzaXplb2YoZGJuYW1lKSkgJiYgDQorICAgICAgICAgICFteV9z dHJjYXNlY21wKHRhYmxlX2FsaWFzX2NoYXJzZXQsIGRibmFtZSwgbmV3X2RiKSkN CisgICAgICB7DQorICAgICAgICB1cGdyYWRpbmc1MHRvNTE9IFRSVUU7DQorICAg ICAgfQ0KKyAgICAgIGVsc2UNCisgICAgICB7DQorICAgICAgICBteV9lcnJvcihF Ul9UUkdfSU5fV1JPTkdfU0NIRU1BLCBNWUYoMCkpOw0KKyAgICAgICAgcmVzdWx0 PSAxOw0KKyAgICAgICAgZ290byBlbmQ7DQorICAgICAgfQ0KICAgICB9DQotICAg IGlmICh0YWJsZS50cmlnZ2Vycy0+Y2hhbmdlX3RhYmxlX25hbWVfaW5fdHJpZ2dl cnModGhkLCBkYiwNCisgICAgaWYgKHRhYmxlLnRyaWdnZXJzLT5jaGFuZ2VfdGFi bGVfbmFtZV9pbl90cmlnZ2Vycyh0aGQsIGRiLCBuZXdfZGIsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9s ZF90YWJsZV9uYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZuZXdfdGFibGVfbmFtZSkpDQogICAgIHsN CkBAIC0xODkyLDcgKzE5MzIsOCBAQCBib29sIFRhYmxlX3RyaWdnZXJzX2xpc3Q6 OmNoYW5nZV90YWJsZV9uDQogICAgICAgZ290byBlbmQ7DQogICAgIH0NCiAgICAg aWYgKChlcnJfdHJpZ25hbWU9IHRhYmxlLnRyaWdnZXJzLT5jaGFuZ2VfdGFibGVf bmFtZV9pbl90cmlnbmFtZXMoDQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYiwgJm5ld190YWJsZV9uYW1lLCAwKSkpDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGdyYWRpbmc1MHRv NTEgPyBkYiA6IE5VTEwsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuZXdfZGIsICZuZXdfdGFibGVfbmFtZSwgMCkpKQ0KICAgICB7 DQogICAgICAgLyoNCiAgICAgICAgIElmIHdlIHdlcmUgdW5hYmxlIHRvIHVwZGF0 ZSBvbmUgb2YgLlRSTiBmaWxlcyBwcm9wZXJseSB3ZSB3aWxsDQpAQCAtMTkwMCwx NiArMTk0MSwxNyBAQCBib29sIFRhYmxlX3RyaWdnZXJzX2xpc3Q6OmNoYW5nZV90 YWJsZV9uDQogICAgICAgICBXZSBhc3N1bWUgdGhhdCB3ZSB3aWxsIGJlIGFibGUg dG8gdW5kbyBvdXIgY2hhbmdlcyB3aXRob3V0IGVycm9ycw0KICAgICAgICAgKHdl IGNhbid0IGRvIG11Y2ggaWYgdGhlcmUgd2lsbCBiZSBhbiBlcnJvciBhbnl3YXkp Lg0KICAgICAgICovDQotICAgICAgKHZvaWQpIHRhYmxlLnRyaWdnZXJzLT5jaGFu Z2VfdGFibGVfbmFtZV9pbl90cmlnbmFtZXMoZGIsDQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9s ZF90YWJsZV9uYW1lLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycl90cmlnbmFtZSk7DQotICAg ICAgKHZvaWQpIHRhYmxlLnRyaWdnZXJzLT5jaGFuZ2VfdGFibGVfbmFtZV9pbl90 cmlnZ2Vycyh0aGQsIGRiLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld190YWJsZV9uYW1lLA0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJm9sZF90YWJsZV9uYW1lKTsNCisgICAgICAodm9pZCkgdGFi bGUudHJpZ2dlcnMtPmNoYW5nZV90YWJsZV9uYW1lX2luX3RyaWduYW1lcygNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBncmFkaW5nNTB0bzUxID8g bmV3X2RiIDogTlVMTCwgZGIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZvbGRfdGFibGVfbmFtZSwgZXJyX3RyaWduYW1lKTsNCisgICAgICAodm9p ZCkgdGFibGUudHJpZ2dlcnMtPmNoYW5nZV90YWJsZV9uYW1lX2luX3RyaWdnZXJz KA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGQsIGRiLCBuZXdf ZGIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuZXdfdGFibGVf bmFtZSwgJm9sZF90YWJsZV9uYW1lKTsNCiAgICAgICByZXN1bHQ9IDE7DQogICAg ICAgZ290byBlbmQ7DQogICAgIH0NCiAgIH0NCisgIA0KIGVuZDoNCiAgIGRlbGV0 ZSB0YWJsZS50cmlnZ2VyczsNCiAgIGZyZWVfcm9vdCgmdGFibGUubWVtX3Jvb3Qs IE1ZRigwKSk7DQoNCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3RyaWdnZXIu aCcNCi0tLSBhL3NxbC9zcWxfdHJpZ2dlci5oCTIwMDctMTAtMTYgMjA6MTE6NTAg KzAwMDANCisrKyBiL3NxbC9zcWxfdHJpZ2dlci5oCTIwMDktMDEtMTQgMTQ6NTA6 NTEgKzAwMDANCkBAIC0xNDYsMTEgKzE0NiwxMyBAQCBwdWJsaWM6DQogDQogcHJp dmF0ZToNCiAgIGJvb2wgcHJlcGFyZV9yZWNvcmQxX2FjY2Vzc29ycyhUQUJMRSAq dGFibGUpOw0KLSAgTEVYX1NUUklORyogY2hhbmdlX3RhYmxlX25hbWVfaW5fdHJp Z25hbWVzKGNvbnN0IGNoYXIgKmRiX25hbWUsDQorICBMRVhfU1RSSU5HKiBjaGFu Z2VfdGFibGVfbmFtZV9pbl90cmlnbmFtZXMoY29uc3QgY2hhciAqb2xkX2RiX25h bWUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqbmV3X2RiX25hbWUsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVYX1NUUklORyAqbmV3X3RhYmxl X25hbWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTEVYX1NUUklORyAqc3RvcHBlcik7DQogICBib29sIGNoYW5nZV90YWJs ZV9uYW1lX2luX3RyaWdnZXJzKFRIRCAqdGhkLA0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpkYl9uYW1lLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvbGRf ZGJfbmFtZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmV3X2RiX25hbWUsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExFWF9TVFJJTkcgKm9sZF90YWJsZV9uYW1lLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVhfU1RSSU5HICpu ZXdfdGFibGVfbmFtZSk7DQogfTsNCg0K