From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27734 invoked by alias); 9 Oct 2002 08:54:20 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 27560 invoked from network); 9 Oct 2002 08:54:19 -0000 Received: from unknown (HELO devserv.devel.redhat.com) (66.187.233.200) by sources.redhat.com with SMTP; 9 Oct 2002 08:54:19 -0000 Received: from localhost (alexl@localhost) by devserv.devel.redhat.com (8.11.6/8.11.0) with ESMTP id g998sJm17024 for ; Wed, 9 Oct 2002 04:54:19 -0400 X-Authentication-Warning: devserv.devel.redhat.com: alexl owned process doing -bs Date: Wed, 09 Oct 2002 01:54:00 -0000 From: Alexander Larsson X-X-Sender: alexl@devserv.devel.redhat.com To: gdb@sources.redhat.com Subject: Final separate debug info patch Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="279707962-2004295901-1034153658=:29225" X-SW-Source: 2002-10/txt/msg00081.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --279707962-2004295901-1034153658=:29225 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-length: 806 After a few iterations I stopped getting comments, so I guess this patch is mature now. I forward ported the patch to cvs HEAD, so this should be fine to go in. The docs changes are approved by Eli, and Daniel Jacobowitz promised to handle the test suite changes if this goes in. The patch doesn't have any autoconf-generated changes in it, because I don't have the exact same version of autoconf that gdb seems to use. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's an unconventional zombie gangster on a mission from God. She's a provocative tempestuous former first lady who dreams of becoming Elvis. They fight crime! --279707962-2004295901-1034153658=:29225 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="gdb_separate_debug.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="gdb_separate_debug.patch" Content-length: 25775 SW5kZXg6IGdkYi9hY2NvbmZpZy5oDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9hY2NvbmZpZy5oLHYNCnJl dHJpZXZpbmcgcmV2aXNpb24gMS4xOA0KZGlmZiAtdSAtcCAtcjEuMTggYWNj b25maWcuaA0KLS0tIGdkYi9hY2NvbmZpZy5oCTExIEFwciAyMDAyIDE4OjMy OjUxIC0wMDAwCTEuMTgNCisrKyBnZGIvYWNjb25maWcuaAk5IE9jdCAyMDAy IDA4OjIxOjE2IC0wMDAwDQpAQCAtMTc2LDMgKzE3Niw3IEBADQogDQogLyog bmF0aXZlZmlsZSAqLw0KICN1bmRlZiBHREJfTk1fRklMRQ0KKw0KKy8qIGRl YnVnZGlyICovDQorI3VuZGVmIERFQlVHRElSDQorDQpJbmRleDogZ2RiL2Fj aW5jbHVkZS5tNA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6 IC9jdnMvc3JjL3NyYy9nZGIvYWNpbmNsdWRlLm00LHYNCnJldHJpZXZpbmcg cmV2aXNpb24gMS40DQpkaWZmIC11IC1wIC1yMS40IGFjaW5jbHVkZS5tNA0K LS0tIGdkYi9hY2luY2x1ZGUubTQJMjAgU2VwIDIwMDIgMDA6MjQ6MDEgLTAw MDAJMS40DQorKysgZ2RiL2FjaW5jbHVkZS5tNAk5IE9jdCAyMDAyIDA4OjIx OjE2IC0wMDAwDQpAQCAtMTA0NCwzICsxMDQ0LDE4IEBAIHNpemVfdCBpY29u digpOw0KICAgZmkNCiAgIEFDX1NVQlNUKExJQklDT05WKQ0KIF0pDQorDQor ZG5sIHdyaXR0ZW4gYnkgR3VpZG8gRHJhaGVpbSA8Z3VpZG9kQGdteC5kZT4s IG9yaWdpbmFsIGJ5IEFsZXhhbmRyZSBPbGl2YSANCitkbmwgVmVyc2lvbiAx LjMgKDIwMDEvMDMvMDIpDQorZG5sIHNvdXJjZSBodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvYWMtYXJjaGl2ZS9NaXNjZWxsYW5lb3VzL2FjX2RlZmlu ZV9kaXIuaHRtbA0KKw0KK0FDX0RFRlVOKFtBQ19ERUZJTkVfRElSXSwgWw0K KyAgdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSIkYWNfZGVm YXVsdF9wcmVmaXgiDQorICB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05F ICYmIGV4ZWNfcHJlZml4PScke3ByZWZpeH0nDQorICBhY19kZWZpbmVfZGly PWBldmFsIGVjaG8gWyRdJDJgDQorICBhY19kZWZpbmVfZGlyPWBldmFsIGVj aG8gWyRdYWNfZGVmaW5lX2RpcmANCisgIGlmZWxzZSgkMywgLA0KKyAgICBB Q19ERUZJTkVfVU5RVU9URUQoJDEsICIkYWNfZGVmaW5lX2RpciIpLA0KKyAg ICBBQ19ERUZJTkVfVU5RVU9URUQoJDEsICIkYWNfZGVmaW5lX2RpciIsICQz KSkNCitdKQ0KKw0KSW5kZXg6IGdkYi9jb25maWd1cmUuaW4NCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2Nv bmZpZ3VyZS5pbix2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTENCmRpZmYg LXUgLXAgLXIxLjkxIGNvbmZpZ3VyZS5pbg0KLS0tIGdkYi9jb25maWd1cmUu aW4JMjAgU2VwIDIwMDIgMDA6MjQ6MDEgLTAwMDAJMS45MQ0KKysrIGdkYi9j b25maWd1cmUuaW4JOSBPY3QgMjAwMiAwODoyMToxOCAtMDAwMA0KQEAgLTIz Nyw2ICsyMzcsMTQgQEAgZmkNCiBBQ19DSEVDS19MSUIoc29ja2V0LCBzb2Nr ZXRwYWlyKQ0KIEFDX0NIRUNLX0ZVTkNTKHNvY2tldHBhaXIpDQogDQorZGVi dWdkaXI9JHtsaWJkaXJ9L2RlYnVnDQorCSANCitBQ19BUkdfV0lUSChzZXBh cmF0ZS1kZWJ1Zy1kaXIsDQorWyAgLS13aXRoLXNlcGFyYXRlLWRlYnVnLWRp cj1wYXRoICAgTG9vayBmb3IgZ2xvYmFsIHNlcGFyYXRlIGRlYnVnIGluZm8g aW4gdGhpcyBwYXRoIFtMSUJESVIvZGVidWddXSwNCitbZGVidWdkaXI9IiR7 d2l0aHZhbH0iXSkNCisJDQorQUNfREVGSU5FX0RJUihERUJVR0RJUiwgZGVi dWdkaXIpDQorI0FDX0RFRklORV9VTlFVT1RFRChERUJVR0RJUiwgIiRkZWJ1 Z2RpciIpLA0KIA0KIEJGRF9ORUVEX0RFQ0xBUkFUSU9OKG1hbGxvYykNCiBC RkRfTkVFRF9ERUNMQVJBVElPTihyZWFsbG9jKQ0KSW5kZXg6IGdkYi9kZWZz LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvY3ZzL3Ny Yy9zcmMvZ2RiL2RlZnMuaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTkN CmRpZmYgLXUgLXAgLXIxLjk5IGRlZnMuaA0KLS0tIGdkYi9kZWZzLmgJMjcg U2VwIDIwMDIgMjI6MDg6NTEgLTAwMDAJMS45OQ0KKysrIGdkYi9kZWZzLmgJ OSBPY3QgMjAwMiAwODoyMToxOCAtMDAwMA0KQEAgLTM4NSw2ICszODUsOCBA QCBleHRlcm4gdm9pZCAqYWRkcmVzc190b19ob3N0X3BvaW50ZXIgKENPDQog ZXh0ZXJuIGNoYXIgKmdkYl9yZWFscGF0aCAoY29uc3QgY2hhciAqKTsNCiBl eHRlcm4gY2hhciAqeGZ1bGxwYXRoIChjb25zdCBjaGFyICopOw0KIA0KK2V4 dGVybiB1bnNpZ25lZCBsb25nIGNhbGNfY3JjMzIgKHVuc2lnbmVkIGxvbmcg Y3JjLCB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4pOw0KKw0KIC8q IEZyb20gZGVtYW5nbGUuYyAqLw0KIA0KIGV4dGVybiB2b2lkIHNldF9kZW1h bmdsaW5nX3N0eWxlIChjaGFyICopOw0KSW5kZXg6IGdkYi9vYmpmaWxlcy5j DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9zcmMv c3JjL2dkYi9vYmpmaWxlcy5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4y Mg0KZGlmZiAtdSAtcCAtcjEuMjIgb2JqZmlsZXMuYw0KLS0tIGdkYi9vYmpm aWxlcy5jCTI5IEp1bCAyMDAyIDIyOjU1OjI2IC0wMDAwCTEuMjINCisrKyBn ZGIvb2JqZmlsZXMuYwk5IE9jdCAyMDAyIDA4OjIxOjE4IC0wMDAwDQpAQCAt MzMzLDYgKzMzMywzMCBAQCBhbGxvY2F0ZV9vYmpmaWxlIChiZmQgKmFiZmQs IGludCBmbGFncykNCiAgIHJldHVybiAob2JqZmlsZSk7DQogfQ0KIA0KKy8q IFB1dCBvbmUgb2JqZWN0IGZpbGUgYmVmb3JlIGEgc3BlY2lmaWVkIG9uIGlu IHRoZSBnbG9iYWwgbGlzdC4NCisgICBUaGlzIGNhbiBiZSB1c2VkIHRvIG1h a2Ugc3VyZSBhbiBvYmplY3QgZmlsZSBpcyBkZXN0cm95ZWQgYmVmb3JlDQor ICAgYW5vdGhlciB3aGVuIHVzaW5nIEFMTF9PQkpGSUxFU19TQUZFIHRvIGZy ZWUgYWxsIG9iamZpbGVzLiAqLw0KK3ZvaWQNCitwdXRfb2JqZmlsZV9iZWZv cmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3Qgb2JqZmlsZSAq YmVmb3JlX3RoaXMpDQorew0KKyAgc3RydWN0IG9iamZpbGUgKipvYmpwOw0K Kw0KKyAgdW5saW5rX29iamZpbGUgKG9iamZpbGUpOw0KKyAgDQorICBmb3Ig KG9ianAgPSAmb2JqZWN0X2ZpbGVzOyAqb2JqcCAhPSBOVUxMOyBvYmpwID0g JigoKm9ianApLT5uZXh0KSkNCisgICAgew0KKyAgICAgIGlmICgqb2JqcCA9 PSBiZWZvcmVfdGhpcykNCisJew0KKwkgIG9iamZpbGUtPm5leHQgPSAqb2Jq cDsNCisJICAqb2JqcCA9IG9iamZpbGU7DQorCSAgcmV0dXJuOw0KKwl9DQor ICAgIH0NCisgIA0KKyAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJ TkVfXywNCisJCSAgInB1dF9vYmpmaWxlX2JlZm9yZTogYmVmb3JlIG9iamZp bGUgbm90IGluIGxpc3QiKTsNCit9DQorDQogLyogUHV0IE9CSkZJTEUgYXQg dGhlIGZyb250IG9mIHRoZSBsaXN0LiAgKi8NCiANCiB2b2lkDQpAQCAtNDA1 LDYgKzQyOSwxOCBAQCB1bmxpbmtfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUpDQogdm9pZA0KIGZyZWVfb2JqZmlsZSAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUpDQogew0KKyAgaWYgKG9iamZpbGUtPnNlcGFyYXRlX2Rl YnVnX29iamZpbGUpDQorICAgIHsNCisgICAgICBmcmVlX29iamZpbGUgKG9i amZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGUpOw0KKyAgICB9DQorICAN CisgIGlmIChvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2ts aW5rKQ0KKyAgICB7DQorICAgICAgLyogV2UgZnJlZWQgdGhlIHNlcGFyYXRl IGRlYnVnIGZpbGUsIG1ha2Ugc3VyZSB0aGUgYmFzZSBvYmpmaWxlDQorCSBk b2Vzbid0IHJlZmVyZW5jZSBpdC4gICovDQorICAgICAgb2JqZmlsZS0+c2Vw YXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluay0+c2VwYXJhdGVfZGVidWdf b2JqZmlsZSA9IE5VTEw7DQorICAgIH0NCisgIA0KICAgLyogRmlyc3QgZG8g YW55IHN5bWJvbCBmaWxlIHNwZWNpZmljIGFjdGlvbnMgcmVxdWlyZWQgd2hl biB3ZSBhcmUNCiAgICAgIGZpbmlzaGVkIHdpdGggYSBwYXJ0aWN1bGFyIHN5 bWJvbCBmaWxlLiAgTm90ZSB0aGF0IGlmIHRoZSBvYmpmaWxlDQogICAgICBp cyB1c2luZyByZXVzYWJsZSBzeW1ib2wgaW5mb3JtYXRpb24gKHZpYSBtbWFs bG9jKSB0aGVuIGVhY2ggb2YNCkluZGV4OiBnZGIvb2JqZmlsZXMuaA0KPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9n ZGIvb2JqZmlsZXMuaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTUNCmRp ZmYgLXUgLXAgLXIxLjE1IG9iamZpbGVzLmgNCi0tLSBnZGIvb2JqZmlsZXMu aAk1IEF1ZyAyMDAyIDE2OjE3OjQxIC0wMDAwCTEuMTUNCisrKyBnZGIvb2Jq ZmlsZXMuaAk5IE9jdCAyMDAyIDA4OjIxOjE4IC0wMDAwDQpAQCAtNDE0LDYg KzQxNCwxNSBAQCBzdHJ1Y3Qgb2JqZmlsZQ0KICAgICBFeHBvcnRFbnRyeSAq ZXhwb3J0X2xpc3Q7DQogICAgIGludCBleHBvcnRfbGlzdF9zaXplOw0KIA0K KyAgICAvKiBMaW5rIHRvIG9iamZpbGUgdGhhdCBjb250YWlucyB0aGUgZGVi dWcgc3ltYm9scyBmb3IgdGhpcyBvbmUuDQorICAgICAgIE9uZSBpcyBsb2Fk ZWQgaWYgdGhpcyBmaWxlIGhhcyBhbiBkZWJ1ZyBsaW5rIHRvIGFuIGV4aXN0 aW5nDQorICAgICAgIGRlYnVnIGZpbGUgd2l0aCB0aGUgcmlnaHQgY2hlY2tz dW0gKi8NCisgICAgc3RydWN0IG9iamZpbGUgKnNlcGFyYXRlX2RlYnVnX29i amZpbGU7DQorDQorICAgIC8qIElmIHRoaXMgaXMgYSBzZXBhcmF0ZSBkZWJ1 ZyBvYmplY3QsIHRoaXMgaXMgdXNlZCBhcyBhIGxpbmsgdG8gdGhlDQorICAg ICAgIGFjdHVhbCBleGVjdXRhYmxlIG9iamZpbGUuICovDQorICAgIHN0cnVj dCBvYmpmaWxlICpzZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rOw0K KyAgICANCiAgICAgLyogUGxhY2UgdG8gc3Rhc2ggdmFyaW91cyBzdGF0aXN0 aWNzIGFib3V0IHRoaXMgb2JqZmlsZSAqLw0KICAgICAgIE9CSlNUQVRTOw0K ICAgfTsNCkBAIC01MDQsNiArNTEzLDggQEAgZXh0ZXJuIHN0cnVjdCBvYmpm aWxlICpvYmplY3RfZmlsZXM7DQogZXh0ZXJuIHN0cnVjdCBvYmpmaWxlICph bGxvY2F0ZV9vYmpmaWxlIChiZmQgKiwgaW50KTsNCiANCiBleHRlcm4gaW50 IGJ1aWxkX29iamZpbGVfc2VjdGlvbl90YWJsZSAoc3RydWN0IG9iamZpbGUg Kik7DQorDQorZXh0ZXJuIHZvaWQgcHV0X29iamZpbGVfYmVmb3JlIChzdHJ1 Y3Qgb2JqZmlsZSAqLCBzdHJ1Y3Qgb2JqZmlsZSAqKTsNCiANCiBleHRlcm4g dm9pZCBvYmpmaWxlX3RvX2Zyb250IChzdHJ1Y3Qgb2JqZmlsZSAqKTsNCiAN CkluZGV4OiBnZGIvc3ltZmlsZS5jDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9zeW1maWxlLmMsdg0KcmV0 cmlldmluZyByZXZpc2lvbiAxLjY5DQpkaWZmIC11IC1wIC1yMS42OSBzeW1m aWxlLmMNCi0tLSBnZGIvc3ltZmlsZS5jCTIwIFNlcCAyMDAyIDE0OjU4OjU4 IC0wMDAwCTEuNjkNCisrKyBnZGIvc3ltZmlsZS5jCTkgT2N0IDIwMDIgMDg6 MjE6MTkgLTAwMDANCkBAIC0zOCw2ICszOCw3IEBADQogI2luY2x1ZGUgImNv bXBsYWludHMuaCINCiAjaW5jbHVkZSAiZGVtYW5nbGUuaCINCiAjaW5jbHVk ZSAiaW5mZXJpb3IuaCIJCS8qIGZvciB3cml0ZV9wYyAqLw0KKyNpbmNsdWRl ICJmaWxlbmFtZXMuaCIJCS8qIGZvciBET1Npc2ggZmlsZSBuYW1lcyAqLw0K ICNpbmNsdWRlICJnZGItc3RhYnMuaCINCiAjaW5jbHVkZSAiZ2RiX29ic3Rh Y2suaCINCiAjaW5jbHVkZSAiY29tcGxldGVyLmgiDQpAQCAtMTQ3LDYgKzE0 OCw4IEBAIHN0YXRpYyB2b2lkIHNldF9leHRfbGFuZ19jb21tYW5kIChjaGFy ICoNCiANCiBzdGF0aWMgdm9pZCBpbmZvX2V4dF9sYW5nX2NvbW1hbmQgKGNo YXIgKmFyZ3MsIGludCBmcm9tX3R0eSk7DQogDQorc3RhdGljIGNoYXIgKmZp bmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsIGNvbnN0IGNoYXIgKm5hbWUpOw0KKw0KIHN0YXRpYyB2b2lkIGluaXRf ZmlsZW5hbWVfbGFuZ3VhZ2VfdGFibGUgKHZvaWQpOw0KIA0KIHZvaWQgX2lu aXRpYWxpemVfc3ltZmlsZSAodm9pZCk7DQpAQCAtODI2LDcgKzgyOSwxMiBA QCBzeW1ib2xfZmlsZV9hZGQgKGNoYXIgKm5hbWUsIGludCBmcm9tX3R0DQog ew0KICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7DQogICBzdHJ1Y3QgcGFy dGlhbF9zeW10YWIgKnBzeW10YWI7DQorICBjaGFyICpkZWJ1Z2ZpbGU7DQog ICBiZmQgKmFiZmQ7DQorICBzdHJ1Y3Qgc2VjdGlvbl9hZGRyX2luZm8gb3Jp Z19hZGRyczsNCisgIA0KKyAgaWYgKGFkZHJzKQ0KKyAgICBvcmlnX2FkZHJz ID0gKmFkZHJzOw0KIA0KICAgLyogT3BlbiBhIGJmZCBmb3IgdGhlIGZpbGUs IGFuZCBnaXZlIHVzZXIgYSBjaGFuY2UgdG8gYnVycCBpZiB3ZSdkIGJlDQog ICAgICBpbnRlcmFjdGl2ZWx5IHdpcGluZyBvdXQgYW55IGV4aXN0aW5nIHN5 bWJvbHMuICAqLw0KQEAgLTkxOSw2ICs5MjcsMjggQEAgc3ltYm9sX2ZpbGVf YWRkIChjaGFyICpuYW1lLCBpbnQgZnJvbV90dA0KICAgaWYgKHRhcmdldF9u ZXdfb2JqZmlsZV9ob29rKQ0KICAgICB0YXJnZXRfbmV3X29iamZpbGVfaG9v ayAob2JqZmlsZSk7DQogDQorICBkZWJ1Z2ZpbGUgPSBmaW5kX3NlcGFyYXRl X2RlYnVnX2ZpbGUgKG9iamZpbGUsIG5hbWUpOw0KKyAgaWYgKGRlYnVnZmls ZSkNCisgICAgew0KKyAgICAgIHByaW50Zl9maWx0ZXJlZCAoImxvYWRpbmcg c2VwYXJhdGUgZGVidWcgaW5mbyBmcm9tICclcydcbiIsIGRlYnVnZmlsZSk7 DQorDQorICAgICAgaWYgKGFkZHJzICE9IE5VTEwpDQorCXsNCisJICBvYmpm aWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID0gc3ltYm9sX2ZpbGVfYWRk IChkZWJ1Z2ZpbGUsIGZyb21fdHR5LCAmb3JpZ19hZGRycywgMCwgZmxhZ3Mp Ow0KKwl9DQorICAgICAgZWxzZQ0KKwl7DQorCSAgb2JqZmlsZS0+c2VwYXJh dGVfZGVidWdfb2JqZmlsZSA9IHN5bWJvbF9maWxlX2FkZCAoZGVidWdmaWxl LCBmcm9tX3R0eSwgTlVMTCwgMCwgZmxhZ3MpOw0KKwl9DQorICAgICAgb2Jq ZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdf b2JqZmlsZV9iYWNrbGluayA9IG9iamZpbGU7DQorICAgICAgDQorICAgICAg LyogUHV0IHRoZSBzZXBhcmF0ZSBkZWJ1ZyBvYmplY3QgYmVmb3JlIHRoZSBu b3JtYWwgb25lLCB0aGlzIGlzIHNvIHRoYXQNCisgICAgICAgICB1c2FnZSBv ZiB0aGUgQUxMX09CSkZJTEVTX1NBRkUgbWFjcm8gd2lsbCBzdGF5IHNhZmUu ICovDQorICAgICAgcHV0X29iamZpbGVfYmVmb3JlIChvYmpmaWxlLT5zZXBh cmF0ZV9kZWJ1Z19vYmpmaWxlLCBvYmpmaWxlKTsNCisgICAgICANCisgICAg ICB4ZnJlZSAoZGVidWdmaWxlKTsNCisgICAgfQ0KKyAgDQogICByZXR1cm4g KG9iamZpbGUpOw0KIH0NCiANCkBAIC05NzgsNiArMTAwOCwxNDUgQEAgc3lt Ym9sX2ZpbGVfY2xlYXIgKGludCBmcm9tX3R0eSkNCiAjZW5kaWYNCiB9DQog DQorc3RhdGljIGNoYXIgKg0KK2dldF9kZWJ1Z19saW5rX2luZm8gKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLCB1bnNpZ25lZCBsb25nICpjcmMzMl9vdXQp DQorew0KKyAgYXNlY3Rpb24gKnNlY3Q7DQorICBiZmRfc2l6ZV90eXBlIGRl YnVnbGlua19zaXplOw0KKyAgdW5zaWduZWQgbG9uZyBjcmMzMjsNCisgIGNo YXIgKmNvbnRlbnRzOw0KKyAgaW50IGNyY19vZmZzZXQ7DQorICB1bnNpZ25l ZCBjaGFyICpjcmNfZGF0YTsNCisgIHVuc2lnbmVkIGNoYXIgKnA7DQorICAN CisgIHNlY3QgPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAob2JqZmlsZS0+ b2JmZCwgIi5nbnVfZGVidWdsaW5rIik7DQorDQorICBpZiAoc2VjdCA9PSBO VUxMKQ0KKyAgICByZXR1cm4gTlVMTDsNCisNCisgIGRlYnVnbGlua19zaXpl ID0gYmZkX3NlY3Rpb25fc2l6ZSAob2JqZmlsZS0+b2JmZCwgc2VjdCk7DQor ICANCisgIGNvbnRlbnRzID0geG1hbGxvYyAoZGVidWdsaW5rX3NpemUpOw0K KyAgYmZkX2dldF9zZWN0aW9uX2NvbnRlbnRzIChvYmpmaWxlLT5vYmZkLCBz ZWN0LCBjb250ZW50cywNCisJCQkgICAgKGZpbGVfcHRyKTAsIChiZmRfc2l6 ZV90eXBlKWRlYnVnbGlua19zaXplKTsNCisNCisgIC8qIENyYyB2YWx1ZSBp cyBzdG9yZWQgYWZ0ZXIgdGhlIGZpbGVuYW1lLCBhbGlnbmVkIHVwIHRvIDQg Ynl0ZXMuICovDQorICBjcmNfb2Zmc2V0ID0gc3RybGVuIChjb250ZW50cykg KyAxOw0KKyAgaWYgKGNyY19vZmZzZXQgJiAzKQ0KKyAgICBjcmNfb2Zmc2V0 ICs9IDQgLSAoY3JjX29mZnNldCAmIDMpOw0KKyAgY3JjX2RhdGEgPSBjb250 ZW50cyArIGNyY19vZmZzZXQ7DQorDQorICBjcmMzMiA9IDA7DQorICBpZiAo VEFSR0VUX0JZVEVfT1JERVIgPT0gQkZEX0VORElBTl9CSUcpDQorICAgIHsN CisgICAgICBmb3IgKHAgPSBjcmNfZGF0YTsgcCA8IGNyY19kYXRhICsgNDsg KytwKQ0KKwljcmMzMiA9IChjcmMzMiA8PCA4KSB8ICpwOw0KKyAgICB9DQor ICBlbHNlDQorICAgIHsNCisgICAgICBmb3IgKHAgPSBjcmNfZGF0YSArIDQg LSAxOyBwID49IGNyY19kYXRhOyAtLXApDQorCWNyYzMyID0gKGNyYzMyIDw8 IDgpIHwgKnA7DQorICAgIH0NCisgIA0KKyAgKmNyYzMyX291dCA9IGNyYzMy Ow0KKyAgcmV0dXJuIGNvbnRlbnRzOw0KK30NCisNCitzdGF0aWMgaW50DQor c2VwYXJhdGVfZGVidWdfZmlsZV9leGlzdHMgKGNvbnN0IGNoYXIgKm5hbWUs IHVuc2lnbmVkIGxvbmcgY3JjKQ0KK3sNCisgIHVuc2lnbmVkIGxvbmcgZmls ZV9jcmMgPSAwOw0KKyAgaW50IGZkOw0KKyAgY2hhciBidWZmZXJbOCoxMDI0 XTsNCisgIGludCBjb3VudDsNCisNCisgIGZkID0gb3BlbiAobmFtZSwgT19S RE9OTFkgfCBPX0JJTkFSWSk7DQorICBpZiAoZmQgPCAwKQ0KKyAgICByZXR1 cm4gMDsNCisNCisgIHdoaWxlICgoY291bnQgPSByZWFkIChmZCwgYnVmZmVy LCBzaXplb2YgKGJ1ZmZlcikpKSA+IDApDQorICAgIGZpbGVfY3JjID0gY2Fs Y19jcmMzMiAoZmlsZV9jcmMsIGJ1ZmZlciwgY291bnQpOw0KKw0KKyAgY2xv c2UgKGZkKTsNCisNCisgIHJldHVybiBjcmMgPT0gZmlsZV9jcmM7DQorfQ0K Kw0KK3N0YXRpYyBjaGFyICpkZWJ1Z19maWxlX2RpcmVjdG9yeSA9IE5VTEw7 DQorDQorc3RhdGljIGNoYXIgKg0KK2ZpbmRfc2VwYXJhdGVfZGVidWdfZmls ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGNvbnN0IGNoYXIgKm5hbWUp DQorew0KKyAgYXNlY3Rpb24gKnNlY3Q7DQorICBjaGFyICpiYXNlbmFtZTsN CisgIGNoYXIgKmRpcjsNCisgIGNoYXIgKmRlYnVnZmlsZTsNCisgIGNoYXIg Km5hbWVfY29weTsNCisgIGJmZF9zaXplX3R5cGUgZGVidWdsaW5rX3NpemU7 DQorICB1bnNpZ25lZCBsb25nIGNyYzMyOw0KKyAgaW50IGk7DQorDQorICBi YXNlbmFtZSA9IGdldF9kZWJ1Z19saW5rX2luZm8gKG9iamZpbGUsICZjcmMz Mik7DQorDQorICBpZiAoYmFzZW5hbWUgPT0gTlVMTCkNCisgICAgcmV0dXJu IE5VTEw7DQorICANCisgIGRpciA9IHhzdHJkdXAgKG5hbWUpOw0KKw0KKyAg LyogU3RyaXAgb2ZmIGZpbGVuYW1lIHBhcnQgKi8NCisgIGZvciAoaSA9IHN0 cmxlbihkaXIpIC0gMTsgaSA+PSAwOyBpLS0pDQorICAgIHsNCisgICAgICBp ZiAoSVNfRElSX1NFUEFSQVRPUiAoZGlyW2ldKSkNCisJYnJlYWs7DQorICAg IH0NCisgIGRpcltpKzFdID0gJ1wwJzsNCisgIA0KKyAgZGVidWdmaWxlID0g YWxsb2NhIChzdHJsZW4gKGRlYnVnX2ZpbGVfZGlyZWN0b3J5KSArIDEgKw0K KwkJICAgICAgc3RybGVuIChkaXIpICsgc3RybGVuICgiLmRlYnVnLyIpICsg c3RybGVuIChiYXNlbmFtZSkgKyAxKTsNCisNCisgIC8qIEZpcnN0IHRyeSBp biB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIG9yaWdpbmFsIGZpbGU6ICov DQorICBzdHJjcHkgKGRlYnVnZmlsZSwgZGlyKTsNCisgIHN0cmNhdCAoZGVi dWdmaWxlLCBiYXNlbmFtZSk7DQorDQorICBpZiAoc2VwYXJhdGVfZGVidWdf ZmlsZV9leGlzdHMgKGRlYnVnZmlsZSwgY3JjMzIpKQ0KKyAgICB7DQorICAg ICAgeGZyZWUgKGJhc2VuYW1lKTsNCisgICAgICB4ZnJlZSAoZGlyKTsNCisg ICAgICByZXR1cm4geHN0cmR1cCAoZGVidWdmaWxlKTsNCisgICAgfQ0KKyAg DQorICAvKiBUaGVuIHRyeSBpbiBhIHN1YmRpcmVjdG9yeSBjYWxsZWQgLmRl YnVnICovDQorICBzdHJjcHkgKGRlYnVnZmlsZSwgZGlyKTsNCisgIHN0cmNh dCAoZGVidWdmaWxlLCAiLmRlYnVnLyIpOw0KKyAgc3RyY2F0IChkZWJ1Z2Zp bGUsIGJhc2VuYW1lKTsNCisNCisgIGlmIChzZXBhcmF0ZV9kZWJ1Z19maWxl X2V4aXN0cyAoZGVidWdmaWxlLCBjcmMzMikpDQorICAgIHsNCisgICAgICB4 ZnJlZSAoYmFzZW5hbWUpOw0KKyAgICAgIHhmcmVlIChkaXIpOw0KKyAgICAg IHJldHVybiB4c3RyZHVwIChkZWJ1Z2ZpbGUpOw0KKyAgICB9DQorICANCisg IC8qIFRoZW4gdHJ5IGluIHRoZSBnbG9iYWwgZGVidWdmaWxlIGRpcmVjdG9y eSAqLw0KKyAgc3RyY3B5IChkZWJ1Z2ZpbGUsIGRlYnVnX2ZpbGVfZGlyZWN0 b3J5KTsNCisgIHN0cmNhdCAoZGVidWdmaWxlLCAiLyIpOw0KKyAgc3RyY2F0 IChkZWJ1Z2ZpbGUsIGRpcik7DQorICBzdHJjYXQgKGRlYnVnZmlsZSwgIi8i KTsNCisgIHN0cmNhdCAoZGVidWdmaWxlLCBiYXNlbmFtZSk7DQorDQorICBp ZiAoc2VwYXJhdGVfZGVidWdfZmlsZV9leGlzdHMgKGRlYnVnZmlsZSwgY3Jj MzIpKQ0KKyAgICB7DQorICAgICAgeGZyZWUgKGJhc2VuYW1lKTsNCisgICAg ICB4ZnJlZSAoZGlyKTsNCisgICAgICByZXR1cm4geHN0cmR1cCAoZGVidWdm aWxlKTsNCisgICAgfQ0KKyAgDQorICB4ZnJlZSAoYmFzZW5hbWUpOw0KKyAg eGZyZWUgKGRpcik7DQorICByZXR1cm4gTlVMTDsNCit9DQorDQorDQogLyog VGhpcyBpcyB0aGUgc3ltYm9sLWZpbGUgY29tbWFuZC4gIFJlYWQgdGhlIGZp bGUsIGFuYWx5emUgaXRzDQogICAgc3ltYm9scywgYW5kIGFkZCBhIHN0cnVj dCBzeW10YWIgdG8gYSBzeW10YWIgbGlzdC4gIFRoZSBzeW50YXggb2YNCiAg ICB0aGUgY29tbWFuZCBpcyByYXRoZXIgYml6YXJyZS0tKDEpIGJ1aWxkYXJn diBpbXBsZW1lbnRzIHZhcmlvdXMNCkBAIC0xNjM3LDYgKzE4MDYsOCBAQCBy ZXJlYWRfc3ltYm9scyAodm9pZCkNCiAgIGxvbmcgbmV3X21vZHRpbWU7DQog ICBpbnQgcmVyZWFkX29uZSA9IDA7DQogICBzdHJ1Y3Qgc3RhdCBuZXdfc3Rh dGJ1ZjsNCisgIGNoYXIgKmRlYnVnX2ZpbGU7DQorICB1bnNpZ25lZCBsb25n IGNyYzMyOw0KICAgaW50IHJlczsNCiANCiAgIC8qIFdpdGggdGhlIGFkZGl0 aW9uIG9mIHNoYXJlZCBsaWJyYXJpZXMsIHRoaXMgc2hvdWxkIGJlIG1vZGlm aWVkLA0KQEAgLTE4MjMsNiArMTk5NCwyNyBAQCByZXJlYWRfc3ltYm9scyAo dm9pZCkNCiAJICAgICAgICAgbmVlZHMgdG8ga2VlcCB0cmFjayBvZiAoc3Vj aCBhcyBfc2lndHJhbXAsIG9yIHdoYXRldmVyKS4gICovDQogDQogCSAgICAg IFRBUkdFVF9TWU1GSUxFX1BPU1RSRUFEIChvYmpmaWxlKTsNCisNCisJICAg ICAgLyogVmVyaWZ5IHRoZSBjaGVja3N1bSBvZiBhIHByZXZpb3VzbHkgbG9h ZGVkIHNlcGFyYXRlIGRlYnVnIGZpbGUuICovDQorCSAgICAgIGlmIChvYmpm aWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlKQ0KKwkJew0KKwkJICBkZWJ1 Z19maWxlID0gZ2V0X2RlYnVnX2xpbmtfaW5mbyAob2JqZmlsZSwgJmNyYzMy KTsNCisJCSAgaWYgKGRlYnVnX2ZpbGUpDQorCQkgICAgew0KKwkJICAgICAg aWYgKCFzZXBhcmF0ZV9kZWJ1Z19maWxlX2V4aXN0cyAob2JqZmlsZS0+c2Vw YXJhdGVfZGVidWdfb2JqZmlsZS0+bmFtZSwgY3JjMzIpKQ0KKwkJCXsNCisJ CQkgIC8qIFRoZSBvbGQgc2VwYXJhdGUgZGVidWcgc3ltYm9scyBmaWxlIGlz IGludmFsaWQgKi8NCisJCQkgIGZyZWVfb2JqZmlsZSAob2JqZmlsZS0+c2Vw YXJhdGVfZGVidWdfb2JqZmlsZSk7DQorCQkJfQ0KKwkJICAgICAgeGZyZWUg KGRlYnVnX2ZpbGUpOw0KKwkJICAgIH0NCisJCSAgZWxzZQ0KKwkJICAgIHsN CisJCSAgICAgIC8qIE5vIG1vcmUgZGVidWcgbGluaywga2lsbCBvbGQgc2Vw YXJhdGUgZGVidWcgc3ltYm9scyAqLw0KKwkJICAgICAgZnJlZV9vYmpmaWxl IChvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlKTsNCisJCSAgICB9 DQorCQl9DQorCSAgICAgIA0KIAkgICAgfQ0KIAl9DQogICAgIH0NCkBAIC0z MzM3LDQgKzM1MjksMTcgQEAgVXNhZ2U6IHNldCBleHRlbnNpb24tbGFuZ3Vh Z2UgLmZvbyBiYXIiLA0KIAkJICAiY2FjaGUuXG4iLA0KIAkJICAmc2V0bGlz dCksDQogICAgICAmc2hvd2xpc3QpOw0KKw0KKyAgZGVidWdfZmlsZV9kaXJl Y3RvcnkgPSB4c3RyZHVwIChERUJVR0RJUik7DQorICBjID0gYWRkX3NldF9j bWQgKCJkZWJ1Zy1maWxlLWRpcmVjdG9yeSIsIGNsYXNzX3N1cHBvcnQsIHZh cl9zdHJpbmcsDQorCQkgICAoY2hhciAqKSAmZGVidWdfZmlsZV9kaXJlY3Rv cnksDQorCQkgICAiU2V0IHRoZSBkaXJlY3Rvcnkgd2hlcmUgc2VwYXJhdGUg ZGVidWcgc3ltYm9scyBhcmUgc2VhcmNoZWQgZm9yLlxuIg0KKwkJICAgIlNl cGFyYXRlIGRlYnVnIHN5bWJvbHMgYXJlIGZpcnN0IHNlYXJjaGVkIGZvciBp biB0aGUgc2FtZVxuIg0KKwkJICAgImRpcmVjdG9yeSBhcyB0aGUgYmluYXJ5 LCB0aGVuIGluIHRoZSAuZGVidWcgc3ViZGlyZWN0b3J5LFxuIg0KKwkJICAg ImFuZCBsYXN0bHkgYXQgdGhlIHBhdGggb2YgdGhlIGRpcmVjdG9yeSBvZiB0 aGUgYmluYXJ5IHdpdGhcbiINCisJCSAgICJ0aGUgZ2xvYmFsIGRlYnVnLWZp bGUgZGlyZWN0b3J5IHByZXBlbmRlZFxuIiwNCisJCSAgICZzZXRsaXN0KTsN CisgIGFkZF9zaG93X2Zyb21fc2V0IChjLCAmc2hvd2xpc3QpOw0KKyAgc2V0 X2NtZF9jb21wbGV0ZXIgKGMsIGZpbGVuYW1lX2NvbXBsZXRlcik7DQorDQog fQ0KSW5kZXg6IGdkYi91dGlscy5jDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi91dGlscy5jLHYNCnJldHJp ZXZpbmcgcmV2aXNpb24gMS44MA0KZGlmZiAtdSAtcCAtcjEuODAgdXRpbHMu Yw0KLS0tIGdkYi91dGlscy5jCTIwIFNlcCAyMDAyIDAwOjI0OjAxIC0wMDAw CTEuODANCisrKyBnZGIvdXRpbHMuYwk5IE9jdCAyMDAyIDA4OjIxOjE5IC0w MDAwDQpAQCAtMjcyOCwzICsyNzI4LDY5IEBAIHhmdWxscGF0aCAoY29uc3Qg Y2hhciAqZmlsZW5hbWUpDQogICB4ZnJlZSAocmVhbF9wYXRoKTsNCiAgIHJl dHVybiByZXN1bHQ7DQogfQ0KKw0KK3Vuc2lnbmVkIGxvbmcNCitjYWxjX2Ny YzMyICh1bnNpZ25lZCBsb25nIGNyYywgdW5zaWduZWQgY2hhciAqYnVmLCBz aXplX3QgbGVuKQ0KK3sNCisgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25n IGNyYzMyX3RhYmxlWzI1Nl0gPQ0KKyAgICB7DQorICAgICAgMHgwMDAwMDAw MCwgMHg3NzA3MzA5NiwgMHhlZTBlNjEyYywgMHg5OTA5NTFiYSwgMHgwNzZk YzQxOSwNCisgICAgICAweDcwNmFmNDhmLCAweGU5NjNhNTM1LCAweDllNjQ5 NWEzLCAweDBlZGI4ODMyLCAweDc5ZGNiOGE0LA0KKyAgICAgIDB4ZTBkNWU5 MWUsIDB4OTdkMmQ5ODgsIDB4MDliNjRjMmIsIDB4N2ViMTdjYmQsIDB4ZTdi ODJkMDcsDQorICAgICAgMHg5MGJmMWQ5MSwgMHgxZGI3MTA2NCwgMHg2YWIw MjBmMiwgMHhmM2I5NzE0OCwgMHg4NGJlNDFkZSwNCisgICAgICAweDFhZGFk NDdkLCAweDZkZGRlNGViLCAweGY0ZDRiNTUxLCAweDgzZDM4NWM3LCAweDEz NmM5ODU2LA0KKyAgICAgIDB4NjQ2YmE4YzAsIDB4ZmQ2MmY5N2EsIDB4OGE2 NWM5ZWMsIDB4MTQwMTVjNGYsIDB4NjMwNjZjZDksDQorICAgICAgMHhmYTBm M2Q2MywgMHg4ZDA4MGRmNSwgMHgzYjZlMjBjOCwgMHg0YzY5MTA1ZSwgMHhk NTYwNDFlNCwNCisgICAgICAweGEyNjc3MTcyLCAweDNjMDNlNGQxLCAweDRi MDRkNDQ3LCAweGQyMGQ4NWZkLCAweGE1MGFiNTZiLA0KKyAgICAgIDB4MzVi NWE4ZmEsIDB4NDJiMjk4NmMsIDB4ZGJiYmM5ZDYsIDB4YWNiY2Y5NDAsIDB4 MzJkODZjZTMsDQorICAgICAgMHg0NWRmNWM3NSwgMHhkY2Q2MGRjZiwgMHhh YmQxM2Q1OSwgMHgyNmQ5MzBhYywgMHg1MWRlMDAzYSwNCisgICAgICAweGM4 ZDc1MTgwLCAweGJmZDA2MTE2LCAweDIxYjRmNGI1LCAweDU2YjNjNDIzLCAw eGNmYmE5NTk5LA0KKyAgICAgIDB4YjhiZGE1MGYsIDB4MjgwMmI4OWUsIDB4 NWYwNTg4MDgsIDB4YzYwY2Q5YjIsIDB4YjEwYmU5MjQsDQorICAgICAgMHgy ZjZmN2M4NywgMHg1ODY4NGMxMSwgMHhjMTYxMWRhYiwgMHhiNjY2MmQzZCwg MHg3NmRjNDE5MCwNCisgICAgICAweDAxZGI3MTA2LCAweDk4ZDIyMGJjLCAw eGVmZDUxMDJhLCAweDcxYjE4NTg5LCAweDA2YjZiNTFmLA0KKyAgICAgIDB4 OWZiZmU0YTUsIDB4ZThiOGQ0MzMsIDB4NzgwN2M5YTIsIDB4MGYwMGY5MzQs IDB4OTYwOWE4OGUsDQorICAgICAgMHhlMTBlOTgxOCwgMHg3ZjZhMGRiYiwg MHgwODZkM2QyZCwgMHg5MTY0NmM5NywgMHhlNjYzNWMwMSwNCisgICAgICAw eDZiNmI1MWY0LCAweDFjNmM2MTYyLCAweDg1NjUzMGQ4LCAweGYyNjIwMDRl LCAweDZjMDY5NWVkLA0KKyAgICAgIDB4MWIwMWE1N2IsIDB4ODIwOGY0YzEs IDB4ZjUwZmM0NTcsIDB4NjViMGQ5YzYsIDB4MTJiN2U5NTAsDQorICAgICAg MHg4YmJlYjhlYSwgMHhmY2I5ODg3YywgMHg2MmRkMWRkZiwgMHgxNWRhMmQ0 OSwgMHg4Y2QzN2NmMywNCisgICAgICAweGZiZDQ0YzY1LCAweDRkYjI2MTU4 LCAweDNhYjU1MWNlLCAweGEzYmMwMDc0LCAweGQ0YmIzMGUyLA0KKyAgICAg IDB4NGFkZmE1NDEsIDB4M2RkODk1ZDcsIDB4YTRkMWM0NmQsIDB4ZDNkNmY0 ZmIsIDB4NDM2OWU5NmEsDQorICAgICAgMHgzNDZlZDlmYywgMHhhZDY3ODg0 NiwgMHhkYTYwYjhkMCwgMHg0NDA0MmQ3MywgMHgzMzAzMWRlNSwNCisgICAg ICAweGFhMGE0YzVmLCAweGRkMGQ3Y2M5LCAweDUwMDU3MTNjLCAweDI3MDI0 MWFhLCAweGJlMGIxMDEwLA0KKyAgICAgIDB4YzkwYzIwODYsIDB4NTc2OGI1 MjUsIDB4MjA2Zjg1YjMsIDB4Yjk2NmQ0MDksIDB4Y2U2MWU0OWYsDQorICAg ICAgMHg1ZWRlZjkwZSwgMHgyOWQ5Yzk5OCwgMHhiMGQwOTgyMiwgMHhjN2Q3 YThiNCwgMHg1OWIzM2QxNywNCisgICAgICAweDJlYjQwZDgxLCAweGI3YmQ1 YzNiLCAweGMwYmE2Y2FkLCAweGVkYjg4MzIwLCAweDlhYmZiM2I2LA0KKyAg ICAgIDB4MDNiNmUyMGMsIDB4NzRiMWQyOWEsIDB4ZWFkNTQ3MzksIDB4OWRk Mjc3YWYsIDB4MDRkYjI2MTUsDQorICAgICAgMHg3M2RjMTY4MywgMHhlMzYz MGIxMiwgMHg5NDY0M2I4NCwgMHgwZDZkNmEzZSwgMHg3YTZhNWFhOCwNCisg ICAgICAweGU0MGVjZjBiLCAweDkzMDlmZjlkLCAweDBhMDBhZTI3LCAweDdk MDc5ZWIxLCAweGYwMGY5MzQ0LA0KKyAgICAgIDB4ODcwOGEzZDIsIDB4MWUw MWYyNjgsIDB4NjkwNmMyZmUsIDB4Zjc2MjU3NWQsIDB4ODA2NTY3Y2IsDQor ICAgICAgMHgxOTZjMzY3MSwgMHg2ZTZiMDZlNywgMHhmZWQ0MWI3NiwgMHg4 OWQzMmJlMCwgMHgxMGRhN2E1YSwNCisgICAgICAweDY3ZGQ0YWNjLCAweGY5 YjlkZjZmLCAweDhlYmVlZmY5LCAweDE3YjdiZTQzLCAweDYwYjA4ZWQ1LA0K KyAgICAgIDB4ZDZkNmEzZTgsIDB4YTFkMTkzN2UsIDB4MzhkOGMyYzQsIDB4 NGZkZmYyNTIsIDB4ZDFiYjY3ZjEsDQorICAgICAgMHhhNmJjNTc2NywgMHgz ZmI1MDZkZCwgMHg0OGIyMzY0YiwgMHhkODBkMmJkYSwgMHhhZjBhMWI0YywN CisgICAgICAweDM2MDM0YWY2LCAweDQxMDQ3YTYwLCAweGRmNjBlZmMzLCAw eGE4NjdkZjU1LCAweDMxNmU4ZWVmLA0KKyAgICAgIDB4NDY2OWJlNzksIDB4 Y2I2MWIzOGMsIDB4YmM2NjgzMWEsIDB4MjU2ZmQyYTAsIDB4NTI2OGUyMzYs DQorICAgICAgMHhjYzBjNzc5NSwgMHhiYjBiNDcwMywgMHgyMjAyMTZiOSwg MHg1NTA1MjYyZiwgMHhjNWJhM2JiZSwNCisgICAgICAweGIyYmQwYjI4LCAw eDJiYjQ1YTkyLCAweDVjYjM2YTA0LCAweGMyZDdmZmE3LCAweGI1ZDBjZjMx LA0KKyAgICAgIDB4MmNkOTllOGIsIDB4NWJkZWFlMWQsIDB4OWI2NGMyYjAs IDB4ZWM2M2YyMjYsIDB4NzU2YWEzOWMsDQorICAgICAgMHgwMjZkOTMwYSwg MHg5YzA5MDZhOSwgMHhlYjBlMzYzZiwgMHg3MjA3Njc4NSwgMHgwNTAwNTcx MywNCisgICAgICAweDk1YmY0YTgyLCAweGUyYjg3YTE0LCAweDdiYjEyYmFl LCAweDBjYjYxYjM4LCAweDkyZDI4ZTliLA0KKyAgICAgIDB4ZTVkNWJlMGQs IDB4N2NkY2VmYjcsIDB4MGJkYmRmMjEsIDB4ODZkM2QyZDQsIDB4ZjFkNGUy NDIsDQorICAgICAgMHg2OGRkYjNmOCwgMHgxZmRhODM2ZSwgMHg4MWJlMTZj ZCwgMHhmNmI5MjY1YiwgMHg2ZmIwNzdlMSwNCisgICAgICAweDE4Yjc0Nzc3 LCAweDg4MDg1YWU2LCAweGZmMGY2YTcwLCAweDY2MDYzYmNhLCAweDExMDEw YjVjLA0KKyAgICAgIDB4OGY2NTllZmYsIDB4Zjg2MmFlNjksIDB4NjE2YmZm ZDMsIDB4MTY2Y2NmNDUsIDB4YTAwYWUyNzgsDQorICAgICAgMHhkNzBkZDJl ZSwgMHg0ZTA0ODM1NCwgMHgzOTAzYjNjMiwgMHhhNzY3MjY2MSwgMHhkMDYw MTZmNywNCisgICAgICAweDQ5Njk0NzRkLCAweDNlNmU3N2RiLCAweGFlZDE2 YTRhLCAweGQ5ZDY1YWRjLCAweDQwZGYwYjY2LA0KKyAgICAgIDB4MzdkODNi ZjAsIDB4YTliY2FlNTMsIDB4ZGViYjllYzUsIDB4NDdiMmNmN2YsIDB4MzBi NWZmZTksDQorICAgICAgMHhiZGJkZjIxYywgMHhjYWJhYzI4YSwgMHg1M2Iz OTMzMCwgMHgyNGI0YTNhNiwgMHhiYWQwMzYwNSwNCisgICAgICAweGNkZDcw NjkzLCAweDU0ZGU1NzI5LCAweDIzZDk2N2JmLCAweGIzNjY3YTJlLCAweGM0 NjE0YWI4LA0KKyAgICAgIDB4NWQ2ODFiMDIsIDB4MmE2ZjJiOTQsIDB4YjQw YmJlMzcsIDB4YzMwYzhlYTEsIDB4NWEwNWRmMWIsDQorICAgICAgMHgyZDAy ZWY4ZA0KKyAgICB9Ow0KKyAgdW5zaWduZWQgY2hhciAqZW5kOw0KKw0KKyAg Y3JjID0gfmNyYyAmIDB4ZmZmZmZmZmY7DQorICBmb3IgKGVuZCA9IGJ1ZiAr IGxlbjsgYnVmIDwgZW5kOyArK2J1ZikNCisgICAgY3JjID0gY3JjMzJfdGFi bGVbKGNyYyBeICpidWYpICYgMHhmZl0gXiAoY3JjID4+IDgpOw0KKyAgcmV0 dXJuIH5jcmMgJiAweGZmZmZmZmZmOzsNCit9DQpJbmRleDogZ2RiL2RvYy9n ZGIudGV4aW5mbw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6 IC9jdnMvc3JjL3NyYy9nZGIvZG9jL2dkYi50ZXhpbmZvLHYNCnJldHJpZXZp bmcgcmV2aXNpb24gMS4xMzANCmRpZmYgLXUgLXAgLXIxLjEzMCBnZGIudGV4 aW5mbw0KLS0tIGdkYi9kb2MvZ2RiLnRleGluZm8JMyBPY3QgMjAwMiAwNTo1 Njo0MCAtMDAwMAkxLjEzMA0KKysrIGdkYi9kb2MvZ2RiLnRleGluZm8JOSBP Y3QgMjAwMiAwODoyMToyNCAtMDAwMA0KQEAgLTEwMjA2LDYgKzEwMjA2LDI5 IEBAIE1iKS4NCiBEaXNwbGF5IHRoZSBjdXJyZW50IGF1dG9sb2FkaW5nIHNp emUgdGhyZXNob2xkLCBpbiBtZWdhYnl0ZXMuDQogQGVuZCB0YWJsZQ0KIA0K K09uIEBzY3tlbGZ9IGJhc2VkIHN5c3RlbXMsIEB2YWx1ZXtHREJOfSBzdXBw b3J0cyBhdXRvbWF0aWNhbGx5IGxvYWRpbmcNCitzeW1ib2wgdGFibGVzIGFu ZCBkZWJ1ZyBpbmZvcm1hdGlvbiBmcm9tIGEgZmlsZSBzZXBhcmF0ZSBmcm9t IHRoZQ0KK2V4ZWN1dGFibGUuICBUaGlzIHdvcmtzIGJ5IHB1dHRpbmcgaW5m b3JtYXRpb24gaW4gdGhlIGV4ZWN1dGFibGUgYWJvdXQNCit0aGUgbmFtZSBh bmQgY2hlY2tzdW0gb2YgdGhlIGZpbGUgd2l0aCBkZWJ1ZyBpbmZvcm1hdGlv bi4gIFdoZW4NCitAdmFsdWV7R0RCTn0gcmVhZHMgc3VjaCBhbiBleGVjdXRh YmxlIGl0IGF1dG9tYXRpY2FsbHkgdHJpZXMgdG8gbG9jYXRlDQordGhlIGRl YnVnIGZpbGUgYW5kIGxvYWQgaXQuIA0KKw0KK0B2YWx1ZXtHREJOfSBzZWFy Y2hzIGZvciB0aGUgZmlsZSBmaXJzdCBpbiB0aGUgc2FtZSBkaXJlY3Rvcnkg YXMgdGhlDQorZXhlY3V0YWJsZSwgYW5kIHRoZW4gaW4gYSBzdWJkaXJlY3Rv cnkgY2FsbGVkIEBmaWxley5kZWJ1Z30uIA0KK0lmIGJvdGggdGhlc2UgZmFp bCBAdmFsdWV7R0RCTn0gbG9va3MgaW4gdGhlIGdsb2JhbCBkZWJ1ZyBkaXJl Y3RvcnksIHdpdGggdGhlDQorZnVsbCBwYXRobmFtZSBvZiB0aGUgZXhlY3V0 YWJsZS4gIFNvIGlmIHlvdSBhcmUgbG9hZGluZw0KK0BmaWxley91c3IvYmlu L2xzfSBhbmQgaXQgcmVmZXJlbmNlcyB0aGUgZGVidWcgZmlsZSBAZmlsZXts cy5kZWJ1Z30NCitAdmFsdWV7R0RCTn0gd2lsbCBsb29rIGZvciBAZmlsZXt1 c3IvYmluL2xzLmRlYnVnfSBpbiB0aGUgZ2xvYmFsIGRlYnVnDQorZGlyZWN0 b3J5Lg0KKw0KK0B0YWJsZSBAY29kZQ0KK0BraW5kZXggc2V0IGRlYnVnLWZp bGUtZGlyZWN0b3J5DQorQGl0ZW0gc2V0IGRlYnVnLWZpbGUtZGlyZWN0b3J5 IEB2YXJ7ZGlyZWN0b3J5fQ0KK1NldCB0aGUgZ2xvYmFsIGRpcmVjdG9yeSB3 aGVyZSBAdmFsdWV7R0RCTn0gc2VhcmNoZXMgZm9yIHNlcGFyYXRlDQorZGVi dWcgZmlsZXMgdG8gQHZhcntkaXJlY3Rvcnl9Lg0KK0BlbmQgdGFibGUNCisN CisNCiBAbm9kZSBTeW1ib2wgRXJyb3JzDQogQHNlY3Rpb24gRXJyb3JzIHJl YWRpbmcgc3ltYm9sIGZpbGVzDQogDQo= --279707962-2004295901-1034153658=:29225--