From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13052 invoked by alias); 27 Jul 2005 11:08:48 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 13038 invoked by uid 22791); 27 Jul 2005 11:08:41 -0000 Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Wed, 27 Jul 2005 11:08:41 +0000 Received: from Relay1.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 5CB471D5CB; Wed, 27 Jul 2005 13:08:39 +0200 (CEST) Date: Wed, 27 Jul 2005 11:08:00 -0000 From: Richard Guenther To: Diego Novillo , Daniel Berlin Cc: gcc@gcc.gnu.org Subject: Latent PTA bug? Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="168427776-861837893-1122462518=:21145" X-Virus-Checked: Checked by ClamAV on sourceware.org X-SW-Source: 2005-07/txt/msg01126.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. --168427776-861837893-1122462518=:21145 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-length: 1677 Hi all! I reduced my array aliasing libstdc++ failures to the following testcase: struct iterator { int* ptr; iterator(int* _ptr) : ptr(_ptr) {} }; struct container { int* first; container(int* _first) : first(_first) {} iterator begin() { return iterator(first); } }; bool includes(const iterator&); bool test4() { int array[] = {2, 4}; container con(array); return includes(con.begin()); } the weird thing now is, that the alias1 dump contains # SFT.2_19 = V_MAY_DEF ; # SFT.4_20 = V_MAY_DEF ; D.1797_16 = includes (&D.1794); i.e. it misses the V_MAY_DEF for SFT.1 (array, UID 1783, int[2], is addressable, sub-vars: { SFT.2 SFT.1 }), while the alias2 dump is ok: # SFT.1_9 = V_MAY_DEF ; # SFT.2_19 = V_MAY_DEF ; # SFT.4_20 = V_MAY_DEF ; D.1797_16 = includes (&D.1794); unfortunately, at that time DCE already decided to remove the array[1] initialization. The difference seems to be in the Pointed-to sets; alias1 contains SFT.0_10 SFT.3_6 SFT.4_14 SFT.5_12 _first_5, its value escapes, points-to vars: { SFT.2 } D.1810_8, points-to vars: { SFT.2 } _ptr_9, its value escapes, points-to vars: { SFT.2 } while alias2 is only SFT.0_10 SFT.3_6 SFT.4_14 SFT.5_12 _ptr_8, points-to vars: { } So maybe from there we miscompute flow-insensitive alias information which differs in only - SFT.1, UID 1815, int, is addressable, default def: SFT.1_3 + SFT.1, UID 1815, int, is addressable, call clobbered, default def: SFT.1_3 I attached the two alias dumps for reference. Maybe you can point out what is going wrong - I'm somewhat lost here. Thanks, Richard. --168427776-861837893-1122462518=:21145 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="1-red3.C.t18.alias1" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: alias1 dump Content-Disposition: attachment; filename="1-red3.C.t18.alias1" Content-length: 6231 DQo7OyBGdW5jdGlvbiBib29sIHRlc3Q0KCkgKF9aNXRlc3Q0dikNCg0KUG9p bnRzLXRvIGFuYWx5c2lzDQoNCkNvbnN0cmFpbnRzOg0KDQpBTllUSElORyA9 ICZBTllUSElORw0KUkVBRE9OTFkgPSAmQU5ZVEhJTkcNCklOVEVHRVIgPSAm QU5ZVEhJTkcNCkFOWU9GRlNFVCA9ICZBTllPRkZTRVQNCl9maXJzdF81ID0g JmFycmF5DQpjb24gPSBfZmlyc3RfNQ0KRC4xODEwXzggPSBjb24NCl9wdHJf OSA9IEQuMTgxMF84DQpELjE4MDkgPSBfcHRyXzkNCkQuMTc5NiA9IEQuMTgw OQ0KRC4xNzk0ID0gRC4xNzk2DQpELjE3OTdfMTYgPSAmQU5ZVEhJTkcNCg0K Q29sbGFwc2luZyBzdGF0aWMgY3ljbGVzIGFuZCBkb2luZyB2YXJpYWJsZSBz dWJzdGl0dXRpb246DQpDb2xsYXBzaW5nIGNvbiBpbnRvIF9maXJzdF81DQpD b2xsYXBzaW5nIEQuMTgxMF84IGludG8gX2ZpcnN0XzUNCkNvbGxhcHNpbmcg X3B0cl85IGludG8gX2ZpcnN0XzUNCkNvbGxhcHNpbmcgRC4xODA5IGludG8g X2ZpcnN0XzUNCkNvbGxhcHNpbmcgRC4xNzk2IGludG8gX2ZpcnN0XzUNCkNv bGxhcHNpbmcgRC4xNzk0IGludG8gX2ZpcnN0XzUNCg0KU29sdmluZyBncmFw aDoNCg0KUG9pbnRzLXRvIHNldHMNCg0KTlVMTCA9IHsgfQ0KQU5ZVEhJTkcg PSB7IEFOWVRISU5HIH0NClJFQURPTkxZID0geyBBTllUSElORyB9DQpJTlRF R0VSID0geyBBTllUSElORyB9DQpBTllPRkZTRVQgPSB7IEFOWU9GRlNFVCB9 DQpfZmlyc3RfNSA9IHsgYXJyYXkgfQ0KYXJyYXkgPSB7IH0NCmFycmF5LjEg PSB7IH0NCmNvbiA9IHsgYXJyYXkgfQ0KRC4xODEwXzggPSB7IGFycmF5IH0N Cl9wdHJfOSA9IHsgYXJyYXkgfQ0KRC4xODA5ID0geyBhcnJheSB9DQpELjE3 OTYgPSB7IGFycmF5IH0NCkQuMTc5NCA9IHsgYXJyYXkgfQ0KRC4xNzk3XzE2 ID0geyBBTllUSElORyB9DQoNCnRlc3Q0OiBUb3RhbCBudW1iZXIgb2YgYWxp YXNlZCB2b3BzOiAwDQoNClJlZmVyZW5jZWQgdmFyaWFibGVzIGluIHRlc3Q0 OiAxNw0KDQpWYXJpYWJsZTogU0ZULjAsIFVJRCAxODE0LCBpbnQgKiwgZGVm YXVsdCBkZWY6IFNGVC4wXzEwDQoNClZhcmlhYmxlOiBTRlQuMSwgVUlEIDE4 MTUsIGludCwgaXMgYWRkcmVzc2FibGUsIGRlZmF1bHQgZGVmOiBTRlQuMV8z DQoNClZhcmlhYmxlOiBfZmlyc3QsIFVJRCAxODA4LCBpbnQgKg0KDQpWYXJp YWJsZTogRC4xODA5LCBVSUQgMTgwOSwgc3RydWN0IGl0ZXJhdG9yLCBzdWIt dmFyczogeyBTRlQuMCB9DQoNClZhcmlhYmxlOiBELjE4MTAsIFVJRCAxODEw LCBpbnQgKg0KDQpWYXJpYWJsZTogX3B0ciwgVUlEIDE4MTEsIGludCAqDQoN ClZhcmlhYmxlOiA8cmV0dmFsPiwgVUlEIDE3ODIsIGludA0KDQpWYXJpYWJs ZTogYXJyYXksIFVJRCAxNzgzLCBpbnRbMl0sIGlzIGFkZHJlc3NhYmxlLCBz dWItdmFyczogeyBTRlQuMiBTRlQuMSB9DQoNClZhcmlhYmxlOiBjb24sIFVJ RCAxNzg0LCBzdHJ1Y3QgY29udGFpbmVyLCBzdWItdmFyczogeyBTRlQuMyB9 DQoNClZhcmlhYmxlOiBTRlQuMiwgVUlEIDE4MTYsIGludCwgaXMgYWRkcmVz c2FibGUsIGNhbGwgY2xvYmJlcmVkLCBkZWZhdWx0IGRlZjogU0ZULjJfMQ0K DQpWYXJpYWJsZTogU0ZULjMsIFVJRCAxODE3LCBpbnQgKiwgZGVmYXVsdCBk ZWY6IFNGVC4zXzYNCg0KVmFyaWFibGU6IFNGVC40LCBVSUQgMTgxOCwgaW50 ICosIGlzIGFkZHJlc3NhYmxlLCBjYWxsIGNsb2JiZXJlZCwgZGVmYXVsdCBk ZWY6IFNGVC40XzE0DQoNClZhcmlhYmxlOiBTRlQuNSwgVUlEIDE4MTksIGlu dCAqLCBkZWZhdWx0IGRlZjogU0ZULjVfMTINCg0KVmFyaWFibGU6IEQuMTc5 NCwgVUlEIDE3OTQsIHN0cnVjdCBpdGVyYXRvciwgaXMgYWRkcmVzc2FibGUs IHN1Yi12YXJzOiB7IFNGVC40IH0NCg0KVmFyaWFibGU6IEQuMTc5NSwgVUlE IDE3OTUsIGludA0KDQpWYXJpYWJsZTogRC4xNzk2LCBVSUQgMTc5Niwgc3Ry dWN0IGl0ZXJhdG9yLCBzdWItdmFyczogeyBTRlQuNSB9DQoNClZhcmlhYmxl OiBELjE3OTcsIFVJRCAxNzk3LCBib29sDQoNCg0KDQpQb2ludGVkLXRvIHNl dHMgZm9yIHBvaW50ZXJzIGluIGJvb2wgdGVzdDQoKQ0KDQpTRlQuMF8xMA0K U0ZULjNfNg0KU0ZULjRfMTQNClNGVC41XzEyDQpfZmlyc3RfNSwgaXRzIHZh bHVlIGVzY2FwZXMsIHBvaW50cy10byB2YXJzOiB7IFNGVC4yIH0NCkQuMTgx MF84LCBwb2ludHMtdG8gdmFyczogeyBTRlQuMiB9DQpfcHRyXzksIGl0cyB2 YWx1ZSBlc2NhcGVzLCBwb2ludHMtdG8gdmFyczogeyBTRlQuMiB9DQoNCg0K Rmxvdy1pbnNlbnNpdGl2ZSBhbGlhcyBpbmZvcm1hdGlvbiBmb3IgYm9vbCB0 ZXN0NCgpDQoNCkFsaWFzZWQgc3ltYm9scw0KDQpTRlQuMSwgVUlEIDE4MTUs IGludCwgaXMgYWRkcmVzc2FibGUsIGRlZmF1bHQgZGVmOiBTRlQuMV8zDQph cnJheSwgVUlEIDE3ODMsIGludFsyXSwgaXMgYWRkcmVzc2FibGUsIHN1Yi12 YXJzOiB7IFNGVC4yIFNGVC4xIH0NClNGVC4yLCBVSUQgMTgxNiwgaW50LCBp cyBhZGRyZXNzYWJsZSwgY2FsbCBjbG9iYmVyZWQsIGRlZmF1bHQgZGVmOiBT RlQuMl8xDQpTRlQuNCwgVUlEIDE4MTgsIGludCAqLCBpcyBhZGRyZXNzYWJs ZSwgY2FsbCBjbG9iYmVyZWQsIGRlZmF1bHQgZGVmOiBTRlQuNF8xNA0KRC4x Nzk0LCBVSUQgMTc5NCwgc3RydWN0IGl0ZXJhdG9yLCBpcyBhZGRyZXNzYWJs ZSwgc3ViLXZhcnM6IHsgU0ZULjQgfQ0KDQpEZXJlZmVyZW5jZWQgcG9pbnRl cnMNCg0KDQpUeXBlIG1lbW9yeSB0YWdzDQoNCg0KDQpGbG93LXNlbnNpdGl2 ZSBhbGlhcyBpbmZvcm1hdGlvbiBmb3IgYm9vbCB0ZXN0NCgpDQoNClNTQV9O QU1FIHBvaW50ZXJzDQoNCg0KTmFtZSBtZW1vcnkgdGFncw0KDQoNCg0KDQpS ZWdpc3RlcmluZyBuZXcgUEhJIG5vZGVzIGluIGJsb2NrICMtMQ0KDQoNCg0K UmVnaXN0ZXJpbmcgbmV3IFBISSBub2RlcyBpbiBibG9jayAjMA0KDQpVcGRh dGluZyBTU0EgaW5mb3JtYXRpb24gZm9yIHN0YXRlbWVudCBhcnJheVswXSA9 IDI7DQoNClVwZGF0aW5nIFNTQSBpbmZvcm1hdGlvbiBmb3Igc3RhdGVtZW50 IGFycmF5WzFdID0gNDsNCg0KVXBkYXRpbmcgU1NBIGluZm9ybWF0aW9uIGZv ciBzdGF0ZW1lbnQgY29uLmZpcnN0ID0gX2ZpcnN0XzU7DQoNClVwZGF0aW5n IFNTQSBpbmZvcm1hdGlvbiBmb3Igc3RhdGVtZW50IEQuMTgxMF84ID0gY29u LmZpcnN0Ow0KDQpVcGRhdGluZyBTU0EgaW5mb3JtYXRpb24gZm9yIHN0YXRl bWVudCBELjE4MDkucHRyID0gX3B0cl85Ow0KDQpVcGRhdGluZyBTU0EgaW5m b3JtYXRpb24gZm9yIHN0YXRlbWVudCBELjE3OTYgPSBELjE4MDk7DQoNClVw ZGF0aW5nIFNTQSBpbmZvcm1hdGlvbiBmb3Igc3RhdGVtZW50IEQuMTc5NCA9 IEQuMTc5NjsNCg0KVXBkYXRpbmcgU1NBIGluZm9ybWF0aW9uIGZvciBzdGF0 ZW1lbnQgRC4xNzk3XzE2ID0gaW5jbHVkZXMgKCZELjE3OTQpOw0KDQoNCg0K U3ltYm9scyB0byBiZSBwdXQgaW4gU1NBIGZvcm0NCg0KYXJyYXkgY29uIEQu MTc5NCBELjE4MDkgU0ZULjAgU0ZULjEgU0ZULjIgU0ZULjMgU0ZULjQgDQoN CkluY3JlbWVudGFsIFNTQSB1cGRhdGUgc3RhcnRlZCBhdCBibG9jazogLTEN Cg0KTnVtYmVyIG9mIGJsb2NrcyBpbiBDRkc6IDENCk51bWJlciBvZiBibG9j a3MgdG8gdXBkYXRlOiAxICgxMDAlKQ0KDQpBZmZlY3RlZCBibG9ja3M6IDAg DQoNCg0KYm9vbCB0ZXN0NCgpICgpDQp7DQogIGludCAqIF9wdHI7DQogIHN0 cnVjdCBpdGVyYXRvciBELjE4MDk7DQogIGludCAqIEQuMTgxMDsNCiAgc3Ry dWN0IGl0ZXJhdG9yIEQuMTgwOTsNCiAgaW50ICogX2ZpcnN0Ow0KICBzdHJ1 Y3QgY29udGFpbmVyIGNvbjsNCiAgaW50IGFycmF5WzJdOw0KICBib29sIEQu MTc5NzsNCiAgc3RydWN0IGl0ZXJhdG9yIEQuMTc5NjsNCiAgc3RydWN0IGl0 ZXJhdG9yIEQuMTc5NDsNCiAgaW50IEQuMTc5NTsNCg0KPGJiIDA+Og0KICAj ICAgU0ZULjJfMiA9IFZfTVVTVF9ERUYgPFNGVC4yXzE+Ow0KICBhcnJheVsw XSA9IDI7DQogICMgICBTRlQuMV80ID0gVl9NVVNUX0RFRiA8U0ZULjFfMz47 DQogIGFycmF5WzFdID0gNDsNCiAgX2ZpcnN0XzUgPSAmYXJyYXlbMF07DQog ICMgICBTRlQuM183ID0gVl9NVVNUX0RFRiA8U0ZULjNfNj47DQogIGNvbi5m aXJzdCA9IF9maXJzdF81Ow0KICAjICAgVlVTRSA8U0ZULjNfNz47DQogIEQu MTgxMF84ID0gY29uLmZpcnN0Ow0KICBfcHRyXzkgPSBELjE4MTBfODsNCiAg IyAgIFNGVC4wXzExID0gVl9NVVNUX0RFRiA8U0ZULjBfMTA+Ow0KICBELjE4 MDkucHRyID0gX3B0cl85Ow0KICAjICAgU0ZULjVfMTMgPSBWX01VU1RfREVG IDxTRlQuNV8xMj47DQogICMgICBWVVNFIDxTRlQuMF8xMT47DQogIEQuMTc5 NiA9IEQuMTgwOTsNCiAgIyAgIFNGVC40XzE1ID0gVl9NVVNUX0RFRiA8U0ZU LjRfMTQ+Ow0KICAjICAgVlVTRSA8U0ZULjVfMTM+Ow0KICBELjE3OTQgPSBE LjE3OTY7DQogICMgICBTRlQuMl8xOSA9IFZfTUFZX0RFRiA8U0ZULjJfMj47 DQogICMgICBTRlQuNF8yMCA9IFZfTUFZX0RFRiA8U0ZULjRfMTU+Ow0KICBE LjE3OTdfMTYgPSBpbmNsdWRlcyAoJkQuMTc5NCk7DQogIEQuMTc5NV8xNyA9 IChpbnQpIEQuMTc5N18xNjsNCiAgcmV0dXJuIEQuMTc5NV8xNzsNCg0KfQ0K DQoNCg== --168427776-861837893-1122462518=:21145 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="1-red3.C.t32.alias2" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: alias2 dump Content-Disposition: attachment; filename="1-red3.C.t32.alias2" Content-length: 5255 DQo7OyBGdW5jdGlvbiBib29sIHRlc3Q0KCkgKF9aNXRlc3Q0dikNCg0KUG9p bnRzLXRvIGFuYWx5c2lzDQoNCkNvbnN0cmFpbnRzOg0KDQpBTllUSElORyA9 ICZBTllUSElORw0KUkVBRE9OTFkgPSAmQU5ZVEhJTkcNCklOVEVHRVIgPSAm QU5ZVEhJTkcNCkFOWU9GRlNFVCA9ICZBTllPRkZTRVQNCmNvbiA9ICZhcnJh eQ0KX3B0cl84ID0gJmFycmF5DQpELjE4MDkgPSAmYXJyYXkNCkQuMTc5NiA9 IEQuMTgwOQ0KRC4xNzk0ID0gRC4xNzk2DQpELjE3OTdfMTYgPSAmQU5ZVEhJ TkcNCg0KQ29sbGFwc2luZyBzdGF0aWMgY3ljbGVzIGFuZCBkb2luZyB2YXJp YWJsZSBzdWJzdGl0dXRpb246DQpDb2xsYXBzaW5nIEQuMTc5NiBpbnRvIEQu MTgwOQ0KQ29sbGFwc2luZyBELjE3OTQgaW50byBELjE4MDkNCg0KU29sdmlu ZyBncmFwaDoNCg0KUG9pbnRzLXRvIHNldHMNCg0KTlVMTCA9IHsgfQ0KQU5Z VEhJTkcgPSB7IEFOWVRISU5HIH0NClJFQURPTkxZID0geyBBTllUSElORyB9 DQpJTlRFR0VSID0geyBBTllUSElORyB9DQpBTllPRkZTRVQgPSB7IEFOWU9G RlNFVCB9DQpjb24gPSB7IGFycmF5IH0NCmFycmF5ID0geyB9DQphcnJheS4x ID0geyB9DQpfcHRyXzggPSB7IGFycmF5IH0NCkQuMTgwOSA9IHsgYXJyYXkg fQ0KRC4xNzk2ID0geyBhcnJheSB9DQpELjE3OTQgPSB7IGFycmF5IH0NCkQu MTc5N18xNiA9IHsgQU5ZVEhJTkcgfQ0KDQp0ZXN0NDogVG90YWwgbnVtYmVy IG9mIGFsaWFzZWQgdm9wczogMA0KDQpSZWZlcmVuY2VkIHZhcmlhYmxlcyBp biB0ZXN0NDogMTcNCg0KVmFyaWFibGU6IFNGVC4wLCBVSUQgMTgxNCwgaW50 ICosIGRlZmF1bHQgZGVmOiBTRlQuMF8xMA0KDQpWYXJpYWJsZTogU0ZULjEs IFVJRCAxODE1LCBpbnQsIGlzIGFkZHJlc3NhYmxlLCBjYWxsIGNsb2JiZXJl ZCwgZGVmYXVsdCBkZWY6IFNGVC4xXzMNCg0KVmFyaWFibGU6IF9maXJzdCwg VUlEIDE4MDgsIGludCAqDQoNClZhcmlhYmxlOiBELjE4MDksIFVJRCAxODA5 LCBzdHJ1Y3QgaXRlcmF0b3IsIHN1Yi12YXJzOiB7IFNGVC4wIH0NCg0KVmFy aWFibGU6IEQuMTgxMCwgVUlEIDE4MTAsIGludCAqDQoNClZhcmlhYmxlOiBf cHRyLCBVSUQgMTgxMSwgaW50ICoNCg0KVmFyaWFibGU6IDxyZXR2YWw+LCBV SUQgMTc4MiwgaW50DQoNClZhcmlhYmxlOiBhcnJheSwgVUlEIDE3ODMsIGlu dFsyXSwgaXMgYWRkcmVzc2FibGUsIHN1Yi12YXJzOiB7IFNGVC4yIFNGVC4x IH0NCg0KVmFyaWFibGU6IGNvbiwgVUlEIDE3ODQsIHN0cnVjdCBjb250YWlu ZXIsIHN1Yi12YXJzOiB7IFNGVC4zIH0NCg0KVmFyaWFibGU6IFNGVC4yLCBV SUQgMTgxNiwgaW50LCBpcyBhZGRyZXNzYWJsZSwgY2FsbCBjbG9iYmVyZWQs IGRlZmF1bHQgZGVmOiBTRlQuMl8xDQoNClZhcmlhYmxlOiBTRlQuMywgVUlE IDE4MTcsIGludCAqLCBkZWZhdWx0IGRlZjogU0ZULjNfNg0KDQpWYXJpYWJs ZTogU0ZULjQsIFVJRCAxODE4LCBpbnQgKiwgaXMgYWRkcmVzc2FibGUsIGNh bGwgY2xvYmJlcmVkLCBkZWZhdWx0IGRlZjogU0ZULjRfMTQNCg0KVmFyaWFi bGU6IFNGVC41LCBVSUQgMTgxOSwgaW50ICosIGRlZmF1bHQgZGVmOiBTRlQu NV8xMg0KDQpWYXJpYWJsZTogRC4xNzk0LCBVSUQgMTc5NCwgc3RydWN0IGl0 ZXJhdG9yLCBpcyBhZGRyZXNzYWJsZSwgc3ViLXZhcnM6IHsgU0ZULjQgfQ0K DQpWYXJpYWJsZTogRC4xNzk1LCBVSUQgMTc5NSwgaW50DQoNClZhcmlhYmxl OiBELjE3OTYsIFVJRCAxNzk2LCBzdHJ1Y3QgaXRlcmF0b3IsIHN1Yi12YXJz OiB7IFNGVC41IH0NCg0KVmFyaWFibGU6IEQuMTc5NywgVUlEIDE3OTcsIGJv b2wNCg0KDQoNClBvaW50ZWQtdG8gc2V0cyBmb3IgcG9pbnRlcnMgaW4gYm9v bCB0ZXN0NCgpDQoNClNGVC4wXzEwDQpTRlQuM182DQpTRlQuNF8xNA0KU0ZU LjVfMTINCl9wdHJfOCwgcG9pbnRzLXRvIHZhcnM6IHsgfQ0KDQoNCkZsb3ct aW5zZW5zaXRpdmUgYWxpYXMgaW5mb3JtYXRpb24gZm9yIGJvb2wgdGVzdDQo KQ0KDQpBbGlhc2VkIHN5bWJvbHMNCg0KU0ZULjEsIFVJRCAxODE1LCBpbnQs IGlzIGFkZHJlc3NhYmxlLCBjYWxsIGNsb2JiZXJlZCwgZGVmYXVsdCBkZWY6 IFNGVC4xXzMNCmFycmF5LCBVSUQgMTc4MywgaW50WzJdLCBpcyBhZGRyZXNz YWJsZSwgc3ViLXZhcnM6IHsgU0ZULjIgU0ZULjEgfQ0KU0ZULjIsIFVJRCAx ODE2LCBpbnQsIGlzIGFkZHJlc3NhYmxlLCBjYWxsIGNsb2JiZXJlZCwgZGVm YXVsdCBkZWY6IFNGVC4yXzENClNGVC40LCBVSUQgMTgxOCwgaW50ICosIGlz IGFkZHJlc3NhYmxlLCBjYWxsIGNsb2JiZXJlZCwgZGVmYXVsdCBkZWY6IFNG VC40XzE0DQpELjE3OTQsIFVJRCAxNzk0LCBzdHJ1Y3QgaXRlcmF0b3IsIGlz IGFkZHJlc3NhYmxlLCBzdWItdmFyczogeyBTRlQuNCB9DQoNCkRlcmVmZXJl bmNlZCBwb2ludGVycw0KDQoNClR5cGUgbWVtb3J5IHRhZ3MNCg0KDQoNCkZs b3ctc2Vuc2l0aXZlIGFsaWFzIGluZm9ybWF0aW9uIGZvciBib29sIHRlc3Q0 KCkNCg0KU1NBX05BTUUgcG9pbnRlcnMNCg0KDQpOYW1lIG1lbW9yeSB0YWdz DQoNCg0KDQoNClJlZ2lzdGVyaW5nIG5ldyBQSEkgbm9kZXMgaW4gYmxvY2sg Iy0xDQoNCg0KDQpSZWdpc3RlcmluZyBuZXcgUEhJIG5vZGVzIGluIGJsb2Nr ICMwDQoNClVwZGF0aW5nIFNTQSBpbmZvcm1hdGlvbiBmb3Igc3RhdGVtZW50 IGFycmF5WzBdID0gMjsNCg0KVXBkYXRpbmcgU1NBIGluZm9ybWF0aW9uIGZv ciBzdGF0ZW1lbnQgRC4xNzk0ID0gRC4xNzk2Ow0KDQpVcGRhdGluZyBTU0Eg aW5mb3JtYXRpb24gZm9yIHN0YXRlbWVudCBELjE3OTdfMTYgPSBpbmNsdWRl cyAoJkQuMTc5NCk7DQoNCg0KDQpTeW1ib2xzIHRvIGJlIHB1dCBpbiBTU0Eg Zm9ybQ0KDQphcnJheSBELjE3OTQgU0ZULjEgU0ZULjIgU0ZULjQgDQoNCklu Y3JlbWVudGFsIFNTQSB1cGRhdGUgc3RhcnRlZCBhdCBibG9jazogLTENCg0K TnVtYmVyIG9mIGJsb2NrcyBpbiBDRkc6IDENCk51bWJlciBvZiBibG9ja3Mg dG8gdXBkYXRlOiAxICgxMDAlKQ0KDQpBZmZlY3RlZCBibG9ja3M6IDAgDQoN Cg0KYm9vbCB0ZXN0NCgpICgpDQp7DQogIGludCAqIF9wdHI7DQogIHN0cnVj dCBpdGVyYXRvciBELjE4MDk7DQogIGludCAqIEQuMTgxMDsNCiAgc3RydWN0 IGl0ZXJhdG9yIEQuMTgwOTsNCiAgaW50ICogX2ZpcnN0Ow0KICBzdHJ1Y3Qg Y29udGFpbmVyIGNvbjsNCiAgaW50IGFycmF5WzJdOw0KICBib29sIEQuMTc5 NzsNCiAgc3RydWN0IGl0ZXJhdG9yIEQuMTc5NjsNCiAgc3RydWN0IGl0ZXJh dG9yIEQuMTc5NDsNCiAgaW50IEQuMTc5NTsNCg0KPGJiIDA+Og0KICAjICAg U0ZULjJfMiA9IFZfTVVTVF9ERUYgPFNGVC4yXzE+Ow0KICBhcnJheVswXSA9 IDI7DQogICMgICBTRlQuM183ID0gVl9NVVNUX0RFRiA8U0ZULjNfNj47DQog IGNvbi5maXJzdCA9ICZhcnJheVswXTsNCiAgX3B0cl84ID0gJmFycmF5WzBd Ow0KICAjICAgU0ZULjBfMTEgPSBWX01VU1RfREVGIDxTRlQuMF8xMD47DQog IEQuMTgwOS5wdHIgPSAmYXJyYXlbMF07DQogICMgICBTRlQuNV8xMyA9IFZf TVVTVF9ERUYgPFNGVC41XzEyPjsNCiAgIyAgIFZVU0UgPFNGVC4wXzExPjsN CiAgRC4xNzk2ID0gRC4xODA5Ow0KICAjICAgU0ZULjRfMTUgPSBWX01VU1Rf REVGIDxTRlQuNF8xND47DQogICMgICBWVVNFIDxTRlQuNV8xMz47DQogIEQu MTc5NCA9IEQuMTc5NjsNCiAgIyAgIFNGVC4xXzkgPSBWX01BWV9ERUYgPFNG VC4xXzM+Ow0KICAjICAgU0ZULjJfMTkgPSBWX01BWV9ERUYgPFNGVC4yXzI+ Ow0KICAjICAgU0ZULjRfMjAgPSBWX01BWV9ERUYgPFNGVC40XzE1PjsNCiAg RC4xNzk3XzE2ID0gaW5jbHVkZXMgKCZELjE3OTQpOw0KICBELjE3OTVfMTcg PSAoaW50KSBELjE3OTdfMTY7DQogIHJldHVybiBELjE3OTVfMTc7DQoNCn0N Cg0KDQo= --168427776-861837893-1122462518=:21145--