From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2124.outbound.protection.outlook.com [40.107.92.124]) by sourceware.org (Postfix) with ESMTPS id 76ADA3858D39 for ; Fri, 8 Dec 2023 03:34:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 76ADA3858D39 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=os.amperecomputing.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=os.amperecomputing.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 76ADA3858D39 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.92.124 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1702006470; cv=pass; b=WHfen29uS8+kmhodgY/ZNPDmcdiRb+k7yJXgHFZCCg6DRkp+ZMsIRhQYwbprrFXYVSB/fohPV95c/BgVNFISr+NLKcfXfbZndIMi1WirZSugOdH7YFZhAz269xptHEZrIXOaFJCKDyzkG36hIcxhM4DHzvLt56VCXWOZpAIyw7s= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1702006470; c=relaxed/simple; bh=SGu9dv/jP735NTwYQZV8LF1QCkHUbxc34jTdTWWkoFo=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=eNfuPyWYFs7pPorfs3s6y9bSo9q9QyY7uKYPLOBXAD7d8X1svDSH5pLF0iOuyqBcMgbtt4fBdgCYxwjJmoeTAf6wjWFeeHjohfZ8HqsU7a0BiICudBHXS40i7ojMnbc2aEi09i53Si4JFLxFHZP55VhJ2HckL9ZZC7/yez2H+4E= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R8Xfybt69raskSS6liK2LPJ5JLWqxPVdMk2HqXBYlaCQGI8nMTQ/3F3CLJowox7HpHmmcNB5hbhPQUtgFZvveqn9TJlNnwzj+LdWPR4E2qMq+9tUFMowrRnQ1N8izQpEqRzpa86S1AWl9ay+qAULII5XJpMXbgv8OQsTXsrB0a+kYQqVIG94J4zXwY859ty1efm64OYUjiwS7wJTmWbjO0GJFqDbADBvI9/bkCTiK1iYl+kNyjeNZBZaQ7NJrTNQRWXmcvS4QEXJLxM0r/ZtZv5PCiWYFvomcAF/TzNR9G16j5FviQJ7iOYqT1zEr5FUzaMW7gseHP6v6v0MZtJJeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SGu9dv/jP735NTwYQZV8LF1QCkHUbxc34jTdTWWkoFo=; b=dtqMWmnqwZpViMKCkV5l0ZlO8U4UTP6WmM3fGqPagpBTNkn89Aso4qzDtQ4b4OZpl7F6rMad+qnyL3DSdqWT1Id5QnQARz3NP24Rgn5l160yWSJAGN9sZlUFbisloh3Mee8pCK0tzjHSithAjriXvO4tZdMkY1IjbLSTizVjm2jA2oeSDlYB80/r+U0CnKVWXoRAd3DURHl96qv53Se1dai4qmJIZDDHzrfe9VCInjGn24vKjFLxNxVSJB3AI2JipxYmvS7LKxZ6JHoFk9qQCwEy7o/cx19ZpZoQ0eqUbVaVzp6JWWme9lbWQmHMja3caq9/168JuojAhyHV5CY2hg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SGu9dv/jP735NTwYQZV8LF1QCkHUbxc34jTdTWWkoFo=; b=BSNkPVoUqSsoYYsxg5fA6m/1OFzZwGLAkOsc4doNQT9U5nLe8RQrZeWjEH2Rfr8oal0VakQpmeeEc6blBNRQpoLk+bukgFv+eLA/vh+ym2D4WiiFKZp5eZdulLDAci0iV7jXP61mlyBLRtapDogdOFcfsIwlRb9TgGkyAfYzMSQ= Received: from SN6PR0102MB3487.prod.exchangelabs.com (2603:10b6:805:3::28) by DM8PR01MB7047.prod.exchangelabs.com (2603:10b6:8:1c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec 2023 03:34:22 +0000 Received: from SN6PR0102MB3487.prod.exchangelabs.com ([fe80::88fb:57da:b19f:2f5a]) by SN6PR0102MB3487.prod.exchangelabs.com ([fe80::88fb:57da:b19f:2f5a%7]) with mapi id 15.20.7068.025; Fri, 8 Dec 2023 03:34:22 +0000 From: Hao Liu OS To: Richard Biener CC: "GCC-patches@gcc.gnu.org" Subject: Re: [PATCH] tree-optimization/PR112774 - SCEV: extend the chrec tree with a nonwrapping flag Thread-Topic: [PATCH] tree-optimization/PR112774 - SCEV: extend the chrec tree with a nonwrapping flag Thread-Index: AQHaJpjz807IjvAR70SqMTUmFSqmCbCcA8FvgAAjnACAAVj8Z4AAYSiAgADfclw= Date: Fri, 8 Dec 2023 03:34:22 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Enabled=True;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_SiteId=3bc2b170-fd94-476d-b0ce-4229bdc904a7;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_SetDate=2023-12-08T03:34:21.948Z;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Name=Confidential;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_ContentBits=0;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Method=Standard; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR0102MB3487:EE_|DM8PR01MB7047:EE_ x-ms-office365-filtering-correlation-id: 445e11e0-07db-4788-ebb8-08dbf79e91b4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qOWJFOmlLCMcpwZEX9pypnQtgvT8gTLzL1EIBY7ZLcm0yYWKKN2olvumn5jdi0gAGBOJNB7hfXtbEx1izRusjQ3NMEFfdhynBhH1XgGylJCHgvYSSL+TPnQMUerrjanrfj9xpRCKrr8QGSP+RTHvn+z6h75dQ7qnUIU+tzzp2laoG8ND111ZUrIfJ9elEfIMGZG0zRsSUQjQ/1j04icAaP5YwZsU9spjJbQ92zuzfPcEUFe5g9XumPzI+woIjkc0jmXCnVq6R1AQxFZe0xhQZeMeQH2XHr+PqyMI5rv+l8z1v0GJCg/4vYeN0CPEyCLAAcaQLYbXlJCtNx8bnCNHqMOjTkFoDT/Fk0Y9nSNBfg/ye+y1o2/SR9e88jOI4Eb7iA5NzbcIDaYDM+TDMNweYW9Y6KDkoSz9MrrmrS8Rb7h9vnrXq+Q3preURH/eTZzCyMuPROKsNVa2rhLDubJlItq6RH7agXZ24WLLYpS/PQUc0Tag2z01vpO65hRYIdhYEknqWMdvFxHCeMbB6TaYvU8/WU3QcE/TUCEah1zRu14TZssc8fP1lK65Uqzyw3Gp2Licul2UKI18hNVB+IjLGDE9x0YSUQdtxEdb8VLH+uQtUMRDJOZlkTgMDna/Q4Y9K+ReCJJQAns5znehXhTboQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR0102MB3487.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(136003)(366004)(396003)(39850400004)(346002)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(2906002)(5660300002)(30864003)(84970400001)(52536014)(4326008)(8936002)(8676002)(55016003)(316002)(66946007)(64756008)(66556008)(66446008)(66476007)(76116006)(91956017)(6916009)(478600001)(966005)(53546011)(6506007)(9686003)(71200400001)(41300700001)(7696005)(26005)(33656002)(83380400001)(38100700002)(38070700009)(122000001)(86362001)(573474002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NWM5Q2k1bDYrckYrV1RFTjgvcEwwcFIyRlN4RTZYd2lQZEoweElPQWxpV2tZ?= =?utf-8?B?K1NWclZJMEczSWtKdlhkOG1DNkh2b3dlcnhpNUVERDdCYWlCNE5OUFVFd0Zv?= =?utf-8?B?MDZwUFFkcGJodTFleVl3Zkk2b0VnRjZ5MEovNFREODZDQWhBa1RKR2x5K3gv?= =?utf-8?B?MEtvMHdwdUp3UDNrKzFLSEdRTlJnU3YzTWJ0V1A3aWtyeFpkTThUSEVsMzJ2?= =?utf-8?B?amlBM2pCUG81SitXQVQxZTlJRGNyRUozQ2FkL2hnWWQyNEZycUYwOUkyUjV5?= =?utf-8?B?bVFSUXYyOTQ1NlhnTXdYMXM1c1g0RzF3VUE3cjB2VWw0OVQ5V3lOdE5Manlk?= =?utf-8?B?TW1rTDhrb3JTS0FaNjY1TWxvS2FFVTdNNVRxblJ5dGphNWU0OTZaNnAwWDNj?= =?utf-8?B?MVpqYm1UazFXSzBtbkFWY2NIWXlLTGhLeElrZjVNT2dqcUVXcC9HeWQ1eU50?= =?utf-8?B?MmUrV0xpK2xKTFJMQlBmbGdpR0FWNTRGby84Rk8xd3U5SW5xd0Y3UUhzZjJN?= =?utf-8?B?MTcyNEZIMUpjTStHdFM3WHA2YW1rNXpldnAyTXE4UFpVRjdUaW9CR0tEN0FH?= =?utf-8?B?UFNkOG8wV0VRWXNENmdzWkdKcUpzNEg2em9rb2J0dFNTUFBSUlJGbHU3L2Zh?= =?utf-8?B?U2FLdkZOS3NsY0IvZFFnUWFoQ2VzRVVud2R6dXhYTVNvZWg0K2dLcDFmMjdL?= =?utf-8?B?cFI4RGlXWHhNQXdXanJWU1dHVE5UQ0J0MU5WTlhocDRyK2JVeS9lNnNJblMv?= =?utf-8?B?SVE5MUpSYit6QUp2dW1SSnJxT2cxRWdWQWFoR3pHVll0bVlnSlliWUZpWXJC?= =?utf-8?B?TzBzY3o1SmZUQmZFdjZaQXVobEthV3lmTjNIV2lXWE9JTllrRW40L2V1QzRy?= =?utf-8?B?VnRhVllZQXlmekRxb21OWTl5L3ZPay9TWFJMWlAra0JvYXBDTmZQRGxVR01J?= =?utf-8?B?NmZ1Tm95WEdycFdyNzlOekl2dmtEVThnZWEyZWVqRXdyL1hscnc2VExVVGNY?= =?utf-8?B?UXNLa0ZlSXZiU1d0QkdRMDRXblE1OWpjWVZva1Rjc3YydkVaSzlCQy84cFJr?= =?utf-8?B?ajNWakxXbTR6aVBiQjRMam1EczZXeVo0aUx1cm50UEttWFFCZGxlSzFja0hO?= =?utf-8?B?N3FUeDBkZ0l4cDRNaUczZGJDbnVDUEwweDVhZWI2M1lTQ0Y1SlpUT2o3dFoy?= =?utf-8?B?VzFDQkFXeGd5TDFHakpHbnZWamlidkdONFUvVDRYQkNmcGErTVBWUEFySHlV?= =?utf-8?B?U3ByZ1dZUW1uMkxIcFdBbEI2OTlHY2F2N05aU0xrWjcwNWg4TkpoYWRSVkM3?= =?utf-8?B?NElLZmpMNlhZVG4vczA4VG1UT2ZCaStFQ1lOUndra3Baa1l3d2V3SGJudUNq?= =?utf-8?B?a2ttVXk3UlpRM0swMHFmQmVUQWZKYXlVeWVCQWZ1dUx2K3ppR1NwRTdMcUFX?= =?utf-8?B?YVErUUpRYzJGMFlBUG1PaktHQWJRcFF1R3NjS0kxWVdXTFRTdXNGVWJlN3Z0?= =?utf-8?B?eitDL0pjWkxrZUdJRWRrbHNiT2RiZCs1L2cwMWpvTWZQS21mZWI2QUp4SGto?= =?utf-8?B?Rm14RjNZWUR4MnhqajdpZFZZbEJVeERmazNtZUdWd0ZxdGNvYjYwQ3diczdy?= =?utf-8?B?b0dBQW0zWHhtU0JNeGR5UENiVjVPK0Y5V242cnhRNUFyNVp4bUI2VVJpWU5j?= =?utf-8?B?d3F3SENqUitlb29GUkZza2dvU0dGYTREaUd0V0VpQzFST2RVODRVTCsyMFd5?= =?utf-8?B?TFg1WDBlbStVd0o2VENkTlhQZXlqNXgxMmR4R3lYSzJpTk1nSnhOU25xeU52?= =?utf-8?B?QWRqNGRLRmJ3ZmpabW13aGNJTitUWmd1RjZGdGhiTW80S21iNXJrMGtCbnlD?= =?utf-8?B?Z0hUd05BQThvTWxRVmlnNU1zL3REM1N0a2NXR0lxd2liYi9OTWNaWGRONU9Z?= =?utf-8?B?T3ZUb3kwTDB0eXBtODZHVExZakJWa1Q2ZDVWTG9HcTM3MDc1VWpvc2RhbTRu?= =?utf-8?B?RjdOS1dCbGRUMUlNc2M2NWJkaUJ4Unpsc3lhVWFCL0ZqNW9uNGZTVnFtTkVh?= =?utf-8?B?VTdYd1NhVmJoT1ZSYUVtNTd0MEZTMVRiQnNpZm1NK2dWdXQrQkNPRmhWK3hX?= =?utf-8?B?djkyeHZLNFNJR3pQMUxoSG03WTV2bFBYOUhKb0lMd0NnS0lTWFhtMkZWSDB2?= =?utf-8?B?ZFE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR0102MB3487.prod.exchangelabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 445e11e0-07db-4788-ebb8-08dbf79e91b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2023 03:34:22.3997 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: mp0uRHi84f57ylnJJfOiqGKgKMH23EYXFlZpcVk1/daNl58Iv3kmgVOBQCDlTQccgWfnbekAqrHJ/F3kWFxflF/zqZCiEgZso9ylg+6CoF+qzKyKxog6HbmUT2S4KVEN X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR01MB7047 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiBZZXMsIEkgY2FuIHNlZSB0aGF0LiAgSSB0aGluayB0aGUgcGF0Y2ggaXMgT0sgd2l0aCBhIG1p bm9yIG5pdCAtIGNhbiB5b3UNCj4gcGxlYXNlIGRvY3VtZW50IHRoZSBub3Rocm93IGZsYWcgdXNh Z2UgaW4gVFJFRV9DSFJFQyBpbg0KPiB0cmVlLWNvcmUuaD8gIFRoZXJlJ3MgYSBiaWcgY29tbWVu dCBkb2luZyBmbGFncyBkb2N1bWVudGF0aW9uOg0KDQpUaGFua3MsIGNvbW1pdHRlZCB3aXRoIHRo ZSBuZXcgZG9jdW1lbnRhdGlvbjoNCmh0dHBzOi8vZ2NjLmdudS5vcmcvZzoyZWZlM2E3ZGUwMTA3 NjE4Mzk3MjY0MDE3ZmIwNDVmMjM3NzY0Y2M3DQoNClRoYW5rcywNCkhhby4NCg0KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KRnJvbTogUmljaGFyZCBCaWVuZXIgPHJp Y2hhcmQuZ3VlbnRoZXJAZ21haWwuY29tPg0KU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDcsIDIw MjMgMjI6MTINClRvOiBIYW8gTGl1IE9TDQpDYzogR0NDLXBhdGNoZXNAZ2NjLmdudS5vcmcNClN1 YmplY3Q6IFJlOiBbUEFUQ0hdIHRyZWUtb3B0aW1pemF0aW9uL1BSMTEyNzc0IC0gU0NFVjogZXh0 ZW5kIHRoZSBjaHJlYyB0cmVlIHdpdGggYSBub253cmFwcGluZyBmbGFnDQoNCk9uIFRodSwgRGVj IDcsIDIwMjMgYXQgOTo1OeKAr0FNIEhhbyBMaXUgT1MgPGhsaXVAb3MuYW1wZXJlY29tcHV0aW5n LmNvbT4gd3JvdGU6DQo+DQo+ID4gQ2FuIHlvdSB0cnkgdG8gZG8gc29tZSBzdGF0aXN0aWNzIG9u IHNheSBTUEVDIENQVT8gIEknbSB1c3VhbGx5DQo+ID4gYnVpbGRpbmcgKHdpdGggLWoxKSB3aXRo IC1mb3B0LWluZm8tdmVjIGFuZCBkaWZmIGJ1aWxkIGxvZ3MsIHlvdSBjYW4gdGhlbiBzZWUNCj4g PiBob3cgbWFueSBtb3JlIGxvb3BzIChhbmQgd2hpY2gpIHdlIHZlY3Rvcml6ZSBhZGRpdGlvbmFs bHk/DQo+DQo+IEkgdHJpZWQgdGhpcyBvcHRpb24gd2l0aCBTUEVDMjAxNyBpbnRyYXRlK2ZwcmF0 ZSBhbmQgY291bnQgdGhlICJvcHRpbWl6ZWQ6ICINCj4gbGluZXMuIEZpdmUgbW9yZSBsb29wcyBh cmUgdmVjdG9yaXplZCAoYWFyY2g2NC1saW51eC1nbnU6IE8zL09mYXN0IGZvciBpbnQvZnApOg0K Pg0KPiAgICAgfCBPMy9PZmFzdCAgICAgICAgfCBiZWZvcmUgfCBhZnRlciB8IGFkZGl0aW9uYWxs eSB2ZWN0b3JpemVkICAgICB8DQo+ICAgICB8IC0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLSB8IC0t LS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwNCj4gICAgIHwgNTAyLmdjY19yICAg ICAgIHwgMTA3NSAgIHwgMTA3NiAgfCByZWxvYWQxLmM6MTkzNCAgICAgICAgICAgICAgfA0KPiAg ICAgfCA1MTAucGFyZXN0X3IgICAgfCA5ODE4ICAgfCA5ODE5ICB8IGZlX2RncF9tb25vbWlhbC5j YzoxMDQgICAgICB8DQo+ICAgICB8IDUyMy54YWxhbmNibWtfciB8IDQ3OTEgICB8IDQ4MjQgIHwg WE1MUmVhZGVyLmNwcDoxNjUwICAgICAgICAgIHwNCj4gICAgIHwgNTI2LmJsZW5kZXJfciAgIHwg NDUyMCAgIHwgNDUyMiAgfCBpbmZiYWNrLmM6NDQxLGluZmxhdGUuYzo5ODMgfA0KPg0KPiBBbGwg b2YgdGhlbSBhY2Nlc3MgYXJyYXlzIHdpdGggdW5zaWduZWQgb2Zmc2V0cywgd2hpY2ggYXJlIHBy ZXZpb3VzbHkgdGhvdWdodA0KPiBjYW4gYmUgb3ZlcmZsb3cuIEUuZy4sIHRoZSBjYXNlIGluIDUw Mi5nY2M6DQo+DQo+ICAgICB1bnNpZ25lZCBpbnQgaTsNCj4gICAgIHVuc2lnbmVkIGludCB0aGlz X25yZWdzID0gLi4uOw0KPg0KPiAgICAgZm9yIChqID0gMTsgaiA8IHRoaXNfbnJlZ3M7IGorKykN Cj4gICAgICAgew0KPiAgICAgICAgIHRoaXNfY29zdCArPSBzcGlsbF9hZGRfY29zdFtyZWdubyAr IGpdOw0KPiAgICAgICAgIGlmICgoVEVTVF9IQVJEX1JFR19CSVQgKG5vdF91c2FibGUsIHJlZ25v ICsgaikpDQo+ICAgICAgICAgICB8fCBURVNUX0hBUkRfUkVHX0JJVCAodXNlZF9ieV9vdGhlcl9y ZWxvYWQsIHJlZ25vICsgaikpDQo+ICAgICAgICAgICBvayA9IDA7DQo+ICAgICAgIH0NCj4NCj4g SG93ZXZlciwgYXMgdGhleSBhcmUgbm90IGhvdCwgdGhlIHBlcmZvcm1hbmNlIGlzIG5vdCBhZmZl Y3RlZC4gSSBtZWFzdXJlZCB0aGUgYnVpbGQgdGltZSwgd2hpY2ggaXMgYWxzbyBub3QgYWZmZWN0 ZWQuIFdpdGggIi1mbHRvIiwgbW9yZSBiZW5jaG1hcmtzICgxMiBpbiB0b3RhbCkgd2lsbCBiZSBh ZmZlY3RlZCAoZGV0YWlscyBhcmUgbm90IGFuYWx5emVkKToNCj4NCj4gICAgIHwgTzMvT2Zhc3Qg KyAtZmx0byB8IGJlZm9yZSB8IGFmdGVyIHwgZGlmZiB8DQo+ICAgICB8IC0tLS0tLS0tLS0tLS0t LS0gfCAtLS0tLS0gfCAtLS0tLSB8IC0tLS0gfA0KPiAgICAgfCA1MDIuZ2NjX3IgICAgICAgIHwg OTc5ICAgIHwgOTgwICAgfCArMSAgIHwNCj4gICAgIHwgNTA3LmNhY3R1QlNTTl9yICB8IDM0NTQg ICB8IDM0NTggIHwgKzQgICB8DQo+ICAgICB8IDUwOC5uYW1kX3IgICAgICAgfCA4NTggICAgfCA4 NTcgICB8IC0xICAgfA0KPiAgICAgfCA1MTAucGFyZXN0X3IgICAgIHwgMTU3NSAgIHwgMTU3NyAg fCArMiAgIHwNCj4gICAgIHwgNTExLnBvdnJheV9yICAgICB8IDgxMCAgICB8IDgxMiAgIHwgKzIg ICB8DQo+ICAgICB8IDUyMS53cmZfciAgICAgICAgfCA4NzY5ICAgfCA4NzYzICB8IC02ICAgfA0K PiAgICAgfCA1MjMueGFsYW5jYm1rX3IgIHwgMzk1OSAgIHwgMzk3OSAgfCArMjAgIHwNCj4gICAg IHwgNTI2LmJsZW5kZXJfciAgICB8IDQ1ODAgICB8IDQ1NzUgIHwgLTUgICB8DQo+ICAgICB8IDUy Ny5jYW00X3IgICAgICAgfCAyMzcxICAgfCAyMzcwICB8IC0xICAgfA0KPiAgICAgfCA1MzguaW1h Z2lja19yICAgIHwgNDYyICAgIHwgNDYxICAgfCAtMSAgIHwNCj4gICAgIHwgNTQ5LmZvdG9uaWsz ZF9yICB8IDQzNiAgICB8IDQzNyAgIHwgKzEgICB8DQo+ICAgICB8IDU1NC5yb21zX3IgICAgICAg fCA4NTIgICAgfCA4NTEgICB8IC0xICAgfA0KPg0KPiBJIHRoaW5rIHVzaW5nIHVuc2lnbmVkIGlu ZGV4IHRvIGFjY2VzcyBhcnJheSBzaG91bGQgYmUgcmFyZS4gUHJvZ3JhbW1lcnMNCj4gdGVuZCB0 byB1c2UgImZvciAoaW50IGk7IC4uLikiIGluc3RlYWQgb2YgdW5zaWduZWQgdmFsdWVzLiBCdXQg dGhlcmUgbWF5IGJlDQo+IHNwZWNpYWwgcmVxdWlyZW1lbnRzLiBUaGlzIG9wcG9ydHVuaXR5IGlz IGZvdW5kIGluIGEgcmVhbCBhcHBsaWNhdGlvbiwgd2hpY2gNCj4gaGFzIGhvdCBsb29wcyB3aXRo IHN1Y2ggdW5zaWduZWQgYWNjZXNzIHBhdHRlcm4sIGFuZCBpdCBjYW4gZ2V0IGh1Z2UNCj4gaW1w cm92ZW1lbnRzLg0KDQpZZXMsIEkgY2FuIHNlZSB0aGF0LiAgSSB0aGluayB0aGUgcGF0Y2ggaXMg T0sgd2l0aCBhIG1pbm9yIG5pdCAtIGNhbiB5b3UNCnBsZWFzZSBkb2N1bWVudCB0aGUgbm90aHJv dyBmbGFnIHVzYWdlIGluIFRSRUVfQ0hSRUMgaW4NCnRyZWUtY29yZS5oPyAgVGhlcmUncyBhIGJp ZyBjb21tZW50IGRvaW5nIGZsYWdzIGRvY3VtZW50YXRpb246DQoNCg0KLyogVGhlIGZvbGxvd2lu ZyB0YWJsZSBsaXN0cyB0aGUgdXNlcyBvZiBlYWNoIG9mIHRoZSBhYm92ZSBmbGFncyBhbmQNCiAg IGZvciB3aGljaCB0eXBlcyBvZiBub2RlcyB0aGV5IGFyZSBkZWZpbmVkLg0KLi4uDQoNCk9LIHdp dGggdGhhdCBjaGFuZ2UuICAgTGV0J3Mgc2VlIGhvdyBpdCBnb2VzIC4uLg0KDQpUaGFua3MsDQpS aWNoYXJkLg0KDQo+IFRoYW5rcywNCj4gSGFvDQo+DQo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18NCj4gRnJvbTogUmljaGFyZCBCaWVuZXIgPHJpY2hhcmQuZ3VlbnRo ZXJAZ21haWwuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDYsIDIwMjMgMTk6NDkN Cj4gVG86IEhhbyBMaXUgT1MNCj4gQ2M6IEdDQy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0hdIHRyZWUtb3B0aW1pemF0aW9uL1BSMTEyNzc0IC0gU0NFVjogZXh0ZW5k IHRoZSBjaHJlYyB0cmVlIHdpdGggYSBub253cmFwcGluZyBmbGFnDQo+DQo+IE9uIFdlZCwgRGVj IDYsIDIwMjMgYXQgMTA6NDbigK9BTSBIYW8gTGl1IE9TIDxobGl1QG9zLmFtcGVyZWNvbXB1dGlu Zy5jb20+IHdyb3RlOg0KPiA+DQo+ID4gSGksDQo+ID4NCj4gPiBVcGRhdGUgdGhlIHBhdGNoIHRv IGZpeCBwcm9ibGVtcyBpbiB0aGUgdGVzdCBjYXNlOg0KPiA+ICAtIGFkZCAiLWRldGFpbHMiIG9w dGlvbiB0byB0aGUgZHVtcCBjb21tYW5kDQo+ID4gIC0gYWRkIGRnLXJlcXVpcmUgYW5kIHRhcmdl dCBmaWx0ZXJzIHRvIGF2b2lkIHBvdGVudGlhbCBmYWlsdXJlcyBvbiBwbGF0Zm9ybXMgdGhhdCBk b24ndCBzdXBwb3J0IHZlY3Rvcml6YXRpb24uDQo+DQo+IEludGVyZXN0aW5nIHNpbXBsZSB0cmlj ayAtIHRoZSBkb3duc2lkZSBpcyB0aGF0IHRoaXMgbWFrZXMgdGhlDQo+IHJlY3Vyc2l2ZSBkZXBl bmRlbmNlDQo+IG9mIFNDRVYgb24gbml0ZXIgYW5hbHlzaXMgYW5kIG5pdGVyIGFuYWx5c2lzIG9u IFNDRVYgZXZlbiAid29yc2UiLiAgQWxzbyB5b3UNCj4gc2V0IHRoZSBmbGFnIG9uIENIUkVDcyB0 aGF0IGFyZSBub3QgbmVjZXNzYXJpbHkgY2FjaGVkLCBzbyBJJ20gbm90IHN1cmUgaG93DQo+IGVm ZmVjdGl2ZSB0aGlzIHdpbGwgYmUgLi4uDQo+DQo+IENhbiB5b3UgdHJ5IHRvIGRvIHNvbWUgc3Rh dGlzdGljcyBvbiBzYXkgU1BFQyBDUFU/ICBJJ20gdXN1YWxseQ0KPiBidWlsZGluZyAod2l0aCAt ajEpIHdpdGggLWZvcHQtaW5mby12ZWMgYW5kIGRpZmYgYnVpbGQgbG9ncywgeW91IGNhbiB0aGVu IHNlZQ0KPiBob3cgbWFueSBtb3JlIGxvb3BzIChhbmQgd2hpY2gpIHdlIHZlY3Rvcml6ZSBhZGRp dGlvbmFsbHk/DQo+DQo+IFRoYW5rcywNCj4gUmljaGFyZC4NCj4NCj4gPiBUaGFua3MsDQo+ID4g LUhhbw0KPiA+DQo+ID4gZ2NjL0NoYW5nZUxvZzoNCj4gPg0KPiA+ICAgICAgICAgUFIgdHJlZS1v cHRpbWl6YXRpb24vMTEyNzc0DQo+ID4gICAgICAgICAqIHRyZWUtcHJldHR5LXByaW50LmNjOiBp ZiBub253cmFwcGluZyBmbGFnIGlzIHNldCwgY2hyZWMgd2lsbCBiZQ0KPiA+ICAgICAgICAgcHJp bnRlZCB3aXRoIGFkZGl0aW9uYWwgPG53PiBpbmZvLg0KPiA+ICAgICAgICAgKiB0cmVlLXNjYWxh ci1ldm9sdXRpb24uY2M6IGFkZCByZWNvcmRfbm9ud3JhcHBpbmdfY2hyZWMgYW5kDQo+ID4gICAg ICAgICBub253cmFwcGluZ19jaHJlY19wIHRvIHNldCBhbmQgY2hlY2sgdGhlIG5ldyBmbGFnIHJl c3BlY3RpdmVseS4NCj4gPiAgICAgICAgICogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmg6IExpa2V3 aXNlLg0KPiA+ICAgICAgICAgKiB0cmVlLXNzYS1sb29wLW5pdGVyLmNjIChpZHhfaW5mZXJfbG9v cF9ib3VuZHMsDQo+ID4gICAgICAgICBpbmZlcl9sb29wX2JvdW5kc19mcm9tX3BvaW50ZXJfYXJp dGgsIGluZmVyX2xvb3BfYm91bmRzX2Zyb21fc2lnbmVkbmVzcywNCj4gPiAgICAgICAgIHNjZXZf cHJvYmFibHlfd3JhcHNfcCk6IGNhbGwgcmVjb3JkX25vbndyYXBwaW5nX2NocmVjIGJlZm9yZQ0K PiA+ICAgICAgICAgcmVjb3JkX25vbndyYXBwaW5nX2l2LCBjYWxsIG5vbndyYXBwaW5nX2NocmVj X3AgdG8gY2hlY2sgdGhlIGZsYWcgaXMgc2V0IGFuZA0KPiA+ICAgICAgICAgcmV0dXJuIGZhbHNl IGZyb20gc2Nldl9wcm9iYWJseV93cmFwc19wLg0KPiA+ICAgICAgICAgKiB0cmVlLXZlY3QtbG9v cC5jYyAodmVjdF9hbmFseXplX2xvb3ApOiBjYWxsDQo+ID4gICAgICAgICBmcmVlX251bWJlcnNf b2ZfaXRlcmF0aW9uc19lc3RpbWF0ZXMgZXhwbGljaXRseS4NCj4gPiAgICAgICAgICogZ2NjL3Ry ZWUuaDogYWRkIENIUkVDX05PV1JBUChOT0RFKSwgYmFzZS5ub3Rocm93X2ZsYWcgaXMgdXNlZA0K PiA+ICAgICAgICAgdG8gcmVwcmVzZW50IHRoZSBub253cmFwcGluZyBpbmZvLg0KPiA+DQo+ID4g Z2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+ID4NCj4gPiAgICAgICAgICogZ2NjLmRnL3RyZWUt c3NhL3NjZXYtMTYuYzogTmV3IHRlc3QuDQo+ID4gLS0tDQo+ID4gIGdjYy90ZXN0c3VpdGUvZ2Nj LmRnL3RyZWUtc3NhL3NjZXYtMTYuYyB8IDE4ICsrKysrKysrKysrKysrKysrKw0KPiA+ICBnY2Mv dHJlZS1wcmV0dHktcHJpbnQuY2MgICAgICAgICAgICAgICAgfCAgMiArLQ0KPiA+ICBnY2MvdHJl ZS1zY2FsYXItZXZvbHV0aW9uLmNjICAgICAgICAgICAgfCAyNCArKysrKysrKysrKysrKysrKysr KysrKysNCj4gPiAgZ2NjL3RyZWUtc2NhbGFyLWV2b2x1dGlvbi5oICAgICAgICAgICAgIHwgIDIg KysNCj4gPiAgZ2NjL3RyZWUtc3NhLWxvb3Atbml0ZXIuY2MgICAgICAgICAgICAgIHwgMjEgKysr KysrKysrKysrKysrKy0tLS0tDQo+ID4gIGdjYy90cmVlLXZlY3QtbG9vcC5jYyAgICAgICAgICAg ICAgICAgICB8ICA0ICsrKysNCj4gPiAgZ2NjL3RyZWUuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDggKysrKystLS0NCj4gPiAgNyBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25z KCspLCA5IGRlbGV0aW9ucygtKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvdHJlZS1zc2Evc2Nldi0xNi5jDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2Evc2Nldi0xNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv dHJlZS1zc2Evc2Nldi0xNi5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAw MDAwMDAwMDAwMC4uMTIwZjQwYzBiNmMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2Evc2Nldi0xNi5jDQo+ID4gQEAgLTAsMCArMSwxOCBA QA0KPiA+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiA+ICsvKiB7IGRnLXJlcXVpcmUtZWZm ZWN0aXZlLXRhcmdldCB2ZWN0X2ludCB9ICovDQo+ID4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1m dHJlZS12ZWN0b3JpemUgLWZkdW1wLXRyZWUtdmVjdC1kZXRhaWxzIiB9ICovDQo+ID4gKw0KPiA+ ICtpbnQgQVsxMDI0ICogMl07DQo+ID4gKw0KPiA+ICtpbnQgZm9vICh1bnNpZ25lZCBvZmZzZXQs IHVuc2lnbmVkIE4pDQo+ID4gK3sNCj4gPiArICBpbnQgc3VtID0gMDsNCj4gPiArDQo+ID4gKyAg Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE47IGkrKykNCj4gPiArICAgIHN1bSArPSBBW2kgKyBv ZmZzZXRdOw0KPiA+ICsNCj4gPiArICByZXR1cm4gc3VtOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsv KiBMb29wIGNhbiBiZSB2ZWN0b3JpemVkIGJ5IHJlZmVycmluZyAiaSArIG9mZnNldCIgaXMgbm9u d3JhcHBpbmcgZnJvbSBhcnJheS4gICovDQo+ID4gKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcCAidmVjdG9yaXplZCAxIGxvb3BzIiAidmVjdCIgeyB0YXJnZXQgeyAhIHsgYXZyLSotKiBt c3A0MzAtKi0qIHBydS0qLSogfSB9IH0gfSB9ICovDQo+ID4gZGlmZiAtLWdpdCBhL2djYy90cmVl LXByZXR0eS1wcmludC5jYyBiL2djYy90cmVlLXByZXR0eS1wcmludC5jYw0KPiA+IGluZGV4IDFm YWRkNzUyZDA1Li4wZGFiYjZkMTU4MCAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvdHJlZS1wcmV0dHkt cHJpbnQuY2MNCj4gPiArKysgYi9nY2MvdHJlZS1wcmV0dHktcHJpbnQuY2MNCj4gPiBAQCAtMzQ4 OCw3ICszNDg4LDcgQEAgZHVtcF9nZW5lcmljX25vZGUgKHByZXR0eV9wcmludGVyICpwcCwgdHJl ZSBub2RlLCBpbnQgc3BjLCBkdW1wX2ZsYWdzX3QgZmxhZ3MsDQo+ID4gICAgICAgIGR1bXBfZ2Vu ZXJpY19ub2RlIChwcCwgQ0hSRUNfTEVGVCAobm9kZSksIHNwYywgZmxhZ3MsIGZhbHNlKTsNCj4g PiAgICAgICAgcHBfc3RyaW5nIChwcCwgIiwgKywgIik7DQo+ID4gICAgICAgIGR1bXBfZ2VuZXJp Y19ub2RlIChwcCwgQ0hSRUNfUklHSFQgKG5vZGUpLCBzcGMsIGZsYWdzLCBmYWxzZSk7DQo+ID4g LSAgICAgIHBwX3N0cmluZyAocHAsICJ9XyIpOw0KPiA+ICsgICAgICBwcF9zdHJpbmcgKHBwLCAh Q0hSRUNfTk9XUkFQIChub2RlKSA/ICJ9XyIgOiAifTxudz5fIik7DQo+ID4gICAgICAgIHBwX3Nj YWxhciAocHAsICIldSIsIENIUkVDX1ZBUklBQkxFIChub2RlKSk7DQo+ID4gICAgICAgIGlzX3N0 bXQgPSBmYWxzZTsNCj4gPiAgICAgICAgYnJlYWs7DQo+ID4gZGlmZiAtLWdpdCBhL2djYy90cmVl LXNjYWxhci1ldm9sdXRpb24uY2MgYi9nY2MvdHJlZS1zY2FsYXItZXZvbHV0aW9uLmNjDQo+ID4g aW5kZXggZjYxMjc3YzMyZGYuLjgxNjMwNjAzYzEyIDEwMDY0NA0KPiA+IC0tLSBhL2djYy90cmVl LXNjYWxhci1ldm9sdXRpb24uY2MNCj4gPiArKysgYi9nY2MvdHJlZS1zY2FsYXItZXZvbHV0aW9u LmNjDQo+ID4gQEAgLTIwNTAsNiArMjA1MCwzMCBAQCBhbmFseXplX3NjYWxhcl9ldm9sdXRpb24g KGNsYXNzIGxvb3AgKmxvb3AsIHRyZWUgdmFyKQ0KPiA+ICAgIHJldHVybiByZXM7DQo+ID4gIH0N Cj4gPg0KPiA+ICsvKiBJZiBDSFJFQyBkb2Vzbid0IG92ZXJmbG93LCBzZXQgdGhlIG5vbndyYXBw aW5nIGZsYWcuICAqLw0KPiA+ICsNCj4gPiArdm9pZCByZWNvcmRfbm9ud3JhcHBpbmdfY2hyZWMg KHRyZWUgY2hyZWMpDQo+ID4gK3sNCj4gPiArICBDSFJFQ19OT1dSQVAoY2hyZWMpID0gMTsNCj4g PiArDQo+ID4gKyAgaWYgKGR1bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAmIFRERl9TQ0VWKSkNCj4g PiArICAgIHsNCj4gPiArICAgICAgZnByaW50ZiAoZHVtcF9maWxlLCAiKHJlY29yZF9ub253cmFw cGluZ19jaHJlYzogIik7DQo+ID4gKyAgICAgIHByaW50X2dlbmVyaWNfZXhwciAoZHVtcF9maWxl LCBjaHJlYyk7DQo+ID4gKyAgICAgIGZwcmludGYgKGR1bXBfZmlsZSwgIilcbiIpOw0KPiA+ICsg ICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiBSZXR1cm4gdHJ1ZSBpZiBDSFJFQydzIG5vbndy YXBwaW5nIGZsYWcgaXMgc2V0LiAgKi8NCj4gPiArDQo+ID4gK2Jvb2wgbm9ud3JhcHBpbmdfY2hy ZWNfcCAodHJlZSBjaHJlYykNCj4gPiArew0KPiA+ICsgIGlmICghY2hyZWMgfHwgVFJFRV9DT0RF KGNocmVjKSAhPSBQT0xZTk9NSUFMX0NIUkVDKQ0KPiA+ICsgICAgcmV0dXJuIGZhbHNlOw0KPiA+ ICsNCj4gPiArICByZXR1cm4gQ0hSRUNfTk9XUkFQKGNocmVjKTsNCj4gPiArfQ0KPiA+ICsNCj4g PiAgLyogQW5hbHl6ZXMgYW5kIHJldHVybnMgdGhlIHNjYWxhciBldm9sdXRpb24gb2YgVkFSIGFk ZHJlc3MgaW4gTE9PUC4gICovDQo+ID4NCj4gPiAgc3RhdGljIHRyZWUNCj4gPiBkaWZmIC0tZ2l0 IGEvZ2NjL3RyZWUtc2NhbGFyLWV2b2x1dGlvbi5oIGIvZ2NjL3RyZWUtc2NhbGFyLWV2b2x1dGlv bi5oDQo+ID4gaW5kZXggYTY0ZWQ3OGZlNjMuLmY1N2ZkZTEyZWUyIDEwMDY0NA0KPiA+IC0tLSBh L2djYy90cmVlLXNjYWxhci1ldm9sdXRpb24uaA0KPiA+ICsrKyBiL2djYy90cmVlLXNjYWxhci1l dm9sdXRpb24uaA0KPiA+IEBAIC00Myw2ICs0Myw4IEBAIGV4dGVybiBib29sIHNpbXBsZV9pdiAo Y2xhc3MgbG9vcCAqLCBjbGFzcyBsb29wICosIHRyZWUsIHN0cnVjdCBhZmZpbmVfaXYgKiwNCj4g PiAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wpOw0KPiA+ICBleHRlcm4gYm9vbCBpdl9jYW5f b3ZlcmZsb3dfcCAoY2xhc3MgbG9vcCAqLCB0cmVlLCB0cmVlLCB0cmVlKTsNCj4gPiAgZXh0ZXJu IHRyZWUgY29tcHV0ZV9vdmVyYWxsX2VmZmVjdF9vZl9pbm5lcl9sb29wIChjbGFzcyBsb29wICos IHRyZWUpOw0KPiA+ICtleHRlcm4gdm9pZCByZWNvcmRfbm9ud3JhcHBpbmdfY2hyZWMgKHRyZWUp Ow0KPiA+ICtleHRlcm4gYm9vbCBub253cmFwcGluZ19jaHJlY19wICh0cmVlKTsNCj4gPg0KPiA+ ICAvKiBSZXR1cm5zIHRoZSBiYXNpYyBibG9jayBwcmVjZWRpbmcgTE9PUCwgb3IgdGhlIENGRyBl bnRyeSBibG9jayB3aGVuDQo+ID4gICAgIHRoZSBsb29wIGlzIGZ1bmN0aW9uJ3MgYm9keS4gICov DQo+ID4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXNzYS1sb29wLW5pdGVyLmNjIGIvZ2NjL3RyZWUt c3NhLWxvb3Atbml0ZXIuY2MNCj4gPiBpbmRleCAyMDk4YmVmOWE5Ny4uZDQ2NWUwZWQ3ZTEgMTAw NjQ0DQo+ID4gLS0tIGEvZ2NjL3RyZWUtc3NhLWxvb3Atbml0ZXIuY2MNCj4gPiArKysgYi9nY2Mv dHJlZS1zc2EtbG9vcC1uaXRlci5jYw0KPiA+IEBAIC00MjA2LDExICs0MjA2LDE1IEBAIGlkeF9p bmZlcl9sb29wX2JvdW5kcyAodHJlZSBiYXNlLCB0cmVlICppZHgsIHZvaWQgKmR0YSkNCj4gPg0K PiA+ICAgIC8qIElmIGFjY2VzcyBpcyBub3QgZXhlY3V0ZWQgb24gZXZlcnkgaXRlcmF0aW9uLCB3 ZSBtdXN0IGVuc3VyZSB0aGF0IG92ZXJsb3cNCj4gPiAgICAgICBtYXkgbm90IG1ha2UgdGhlIGFj Y2VzcyB2YWxpZCBsYXRlci4gICovDQo+ID4gLSAgaWYgKCFkb21pbmF0ZWRfYnlfcCAoQ0RJX0RP TUlOQVRPUlMsIGxvb3AtPmxhdGNoLCBnaW1wbGVfYmIgKGRhdGEtPnN0bXQpKQ0KPiA+IC0gICAg ICAmJiBzY2V2X3Byb2JhYmx5X3dyYXBzX3AgKE5VTExfVFJFRSwNCj4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluaXRpYWxfY29uZGl0aW9uX2luX2xvb3BfbnVtIChldiwgbG9v cC0+bnVtKSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAsIGRhdGEt PnN0bXQsIGxvb3AsIHRydWUpKQ0KPiA+IC0gICAgdXBwZXIgPSBmYWxzZTsNCj4gPiArICBpZiAo IWRvbWluYXRlZF9ieV9wIChDRElfRE9NSU5BVE9SUywgbG9vcC0+bGF0Y2gsIGdpbXBsZV9iYiAo ZGF0YS0+c3RtdCkpKQ0KPiA+ICsgICAgew0KPiA+ICsgICAgICBpZiAoc2Nldl9wcm9iYWJseV93 cmFwc19wIChOVUxMX1RSRUUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW5pdGlhbF9jb25kaXRpb25faW5fbG9vcF9udW0gKGV2LCBsb29wLT5udW0pLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAsIGRhdGEtPnN0bXQsIGxvb3AsIHRydWUp KQ0KPiA+ICsgICAgICAgdXBwZXIgPSBmYWxzZTsNCj4gPiArICAgIH0NCj4gPiArICBlbHNlDQo+ ID4gKyAgICByZWNvcmRfbm9ud3JhcHBpbmdfY2hyZWMgKGV2KTsNCj4gPg0KPiA+ICAgIHJlY29y ZF9ub253cmFwcGluZ19pdiAobG9vcCwgaW5pdCwgc3RlcCwgZGF0YS0+c3RtdCwgbG93LCBoaWdo LCBmYWxzZSwgdXBwZXIpOw0KPiA+ICAgIHJldHVybiB0cnVlOw0KPiA+IEBAIC00MzI0LDYgKzQz MjgsNyBAQCBpbmZlcl9sb29wX2JvdW5kc19mcm9tX3BvaW50ZXJfYXJpdGggKGNsYXNzIGxvb3Ag Kmxvb3AsIGdpbXBsZSAqc3RtdCkNCj4gPiAgICBpZiAoZmxhZ19kZWxldGVfbnVsbF9wb2ludGVy X2NoZWNrcyAmJiBpbnRfY3N0X3ZhbHVlIChsb3cpID09IDApDQo+ID4gICAgICBsb3cgPSBidWls ZF9pbnRfY3N0dSAoVFJFRV9UWVBFIChsb3cpLCBUWVBFX0FMSUdOX1VOSVQgKFRSRUVfVFlQRSAo dHlwZSkpKTsNCj4gPg0KPiA+ICsgIHJlY29yZF9ub253cmFwcGluZ19jaHJlYyAoc2Nldik7DQo+ ID4gICAgcmVjb3JkX25vbndyYXBwaW5nX2l2IChsb29wLCBiYXNlLCBzdGVwLCBzdG10LCBsb3cs IGhpZ2gsIGZhbHNlLCB0cnVlKTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTQzNzEsNiArNDM3Niw3 IEBAIGluZmVyX2xvb3BfYm91bmRzX2Zyb21fc2lnbmVkbmVzcyAoY2xhc3MgbG9vcCAqbG9vcCwg Z2ltcGxlICpzdG10KQ0KPiA+ICAgICAgICBoaWdoID0gd2lkZV9pbnRfdG9fdHJlZSAodHlwZSwg ci51cHBlcl9ib3VuZCAoKSk7DQo+ID4gICAgICB9DQo+ID4NCj4gPiArICByZWNvcmRfbm9ud3Jh cHBpbmdfY2hyZWMgKHNjZXYpOw0KPiA+ICAgIHJlY29yZF9ub253cmFwcGluZ19pdiAobG9vcCwg YmFzZSwgc3RlcCwgc3RtdCwgbG93LCBoaWdoLCBmYWxzZSwgdHJ1ZSk7DQo+ID4gIH0NCj4gPg0K PiA+IEBAIC01NTA1LDYgKzU1MTEsMTEgQEAgc2Nldl9wcm9iYWJseV93cmFwc19wICh0cmVlIHZh ciwgdHJlZSBiYXNlLCB0cmVlIHN0ZXAsDQo+ID4gICAgaWYgKGxvb3BfZXhpdHNfYmVmb3JlX292 ZXJmbG93IChiYXNlLCBzdGVwLCBhdF9zdG10LCBsb29wKSkNCj4gPiAgICAgIHJldHVybiBmYWxz ZTsNCj4gPg0KPiA+ICsgIC8qIENoZWNrIHRoZSBub253cmFwcGluZyBmbGFnLCB3aGljaCBtYXkg YmUgc2V0IGJ5IG5pdGVyIGFuYWx5c2lzIChlLmcuLCB0aGUNCj4gPiArICAgICBhYm92ZSBsb29w IGV4aXRzIGJlZm9yZSBvdmVyZmxvdykuICAqLw0KPiA+ICsgIGlmICh2YXIgJiYgbm9ud3JhcHBp bmdfY2hyZWNfcCAoYW5hbHl6ZV9zY2FsYXJfZXZvbHV0aW9uIChsb29wLCB2YXIpKSkNCj4gPiAr ICAgIHJldHVybiBmYWxzZTsNCj4gPiArDQo+ID4gICAgLyogQXQgdGhpcyBwb2ludCB3ZSBzdGls bCBkb24ndCBoYXZlIGEgcHJvb2YgdGhhdCB0aGUgaXYgZG9lcyBub3QNCj4gPiAgICAgICBvdmVy ZmxvdzogZ2l2ZSB1cC4gICovDQo+ID4gICAgcmV0dXJuIHRydWU7DQo+ID4gZGlmZiAtLWdpdCBh L2djYy90cmVlLXZlY3QtbG9vcC5jYyBiL2djYy90cmVlLXZlY3QtbG9vcC5jYw0KPiA+IGluZGV4 IDNkZjAyMGQyMjI4Li43ZjI3OGUyZDhmNCAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvdHJlZS12ZWN0 LWxvb3AuY2MNCj4gPiArKysgYi9nY2MvdHJlZS12ZWN0LWxvb3AuY2MNCj4gPiBAQCAtMzU3MCw2 ICszNTcwLDEwIEBAIHZlY3RfYW5hbHl6ZV9sb29wIChjbGFzcyBsb29wICpsb29wLCB2ZWNfaW5m b19zaGFyZWQgKnNoYXJlZCkNCj4gPiAgICAgICAgICBhbmFseXNpcyBhcmUgZG9uZSB1bmRlciB0 aGUgYXNzdW1wdGlvbnMuICAqLw0KPiA+ICAgICAgICBsb29wX2NvbnN0cmFpbnRfc2V0IChsb29w LCBMT09QX0NfRklOSVRFKTsNCj4gPiAgICAgIH0NCj4gPiArICBlbHNlDQo+ID4gKyAgICAvKiBD bGVhciB0aGUgZXhpc3Rpbmcgbml0ZXIgaW5mb3JtYXRpb24gdG8gbWFrZSBzdXJlIHRoZSBub253 cmFwcGluZyBmbGFnDQo+ID4gKyAgICAgICB3aWxsIGJlIGNhbGN1bGF0ZWQgYW5kIHNldCBwcm9w cmlhdGVseS4gICovDQo+ID4gKyAgICBmcmVlX251bWJlcnNfb2ZfaXRlcmF0aW9uc19lc3RpbWF0 ZXMgKGxvb3ApOw0KPiA+DQo+ID4gICAgYXV0b192ZWN0b3JfbW9kZXMgdmVjdG9yX21vZGVzOw0K PiA+ICAgIC8qIEF1dG9kZXRlY3QgZmlyc3QgdmVjdG9yIHNpemUgd2UgdHJ5LiAgKi8NCj4gPiBk aWZmIC0tZ2l0IGEvZ2NjL3RyZWUuaCBiL2djYy90cmVlLmgNCj4gPiBpbmRleCAwODZiNTVmMDM3 NS4uNTlhZjg5MjBmMDIgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL3RyZWUuaA0KPiA+ICsrKyBiL2dj Yy90cmVlLmgNCj4gPiBAQCAtMTQzOCw5ICsxNDM4LDExIEBAIGNsYXNzIGF1dG9fc3VwcHJlc3Nf bG9jYXRpb25fd3JhcHBlcnMNCj4gPiAgI2RlZmluZSBDT05EX0VYUFJfRUxTRShOT0RFKSAgIChU UkVFX09QRVJBTkQgKENPTkRfRVhQUl9DSEVDSyAoTk9ERSksIDIpKQ0KPiA+DQo+ID4gIC8qIEFj Y2Vzc29ycyBmb3IgdGhlIGNoYWlucyBvZiByZWN1cnJlbmNlcy4gICovDQo+ID4gLSNkZWZpbmUg Q0hSRUNfTEVGVChOT0RFKSAgICAgICAgICBUUkVFX09QRVJBTkQgKFBPTFlOT01JQUxfQ0hSRUNf Q0hFQ0sgKE5PREUpLCAwKQ0KPiA+IC0jZGVmaW5lIENIUkVDX1JJR0hUKE5PREUpICAgICAgICAg VFJFRV9PUEVSQU5EIChQT0xZTk9NSUFMX0NIUkVDX0NIRUNLIChOT0RFKSwgMSkNCj4gPiAtI2Rl ZmluZSBDSFJFQ19WQVJJQUJMRShOT0RFKSAgICAgIFBPTFlOT01JQUxfQ0hSRUNfQ0hFQ0sgKE5P REUpLT5iYXNlLnUuY2hyZWNfdmFyDQo+ID4gKyNkZWZpbmUgQ0hSRUNfTEVGVChOT0RFKSAgICAg ICAgVFJFRV9PUEVSQU5EIChQT0xZTk9NSUFMX0NIUkVDX0NIRUNLIChOT0RFKSwgMCkNCj4gPiAr I2RlZmluZSBDSFJFQ19SSUdIVChOT0RFKSAgICAgICBUUkVFX09QRVJBTkQgKFBPTFlOT01JQUxf Q0hSRUNfQ0hFQ0sgKE5PREUpLCAxKQ0KPiA+ICsjZGVmaW5lIENIUkVDX1ZBUklBQkxFKE5PREUp ICAgIFBPTFlOT01JQUxfQ0hSRUNfQ0hFQ0sgKE5PREUpLT5iYXNlLnUuY2hyZWNfdmFyDQo+ID4g Ky8qIE5vbnplcm8gaWYgdGhpcyBjaHJlYyBkb2Vzbid0IG92ZXJmbG93IChpLmUuLCBub253cmFw cGluZykuICAqLw0KPiA+ICsjZGVmaW5lIENIUkVDX05PV1JBUChOT0RFKSAgICAgIFBPTFlOT01J QUxfQ0hSRUNfQ0hFQ0sgKE5PREUpLT5iYXNlLm5vdGhyb3dfZmxhZw0KPiA+DQo+ID4gIC8qIExB QkVMX0VYUFIgYWNjZXNzb3IuIFRoaXMgZ2l2ZXMgYWNjZXNzIHRvIHRoZSBsYWJlbCBhc3NvY2lh dGVkIHdpdGgNCj4gPiAgICAgdGhlIGdpdmVuIGxhYmVsIGV4cHJlc3Npb24uICAqLw0KPiA+IC0t DQo+ID4gMi4zNC4xDQo+ID4NCj4gPg0KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18NCj4gPiBGcm9tOiBIYW8gTGl1IE9TIDxobGl1QG9zLmFtcGVyZWNvbXB1dGlu Zy5jb20+DQo+ID4gU2VudDogTW9uZGF5LCBEZWNlbWJlciA0LCAyMDIzIDE4OjA1DQo+ID4gVG86 IEdDQy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+ID4gU3ViamVjdDogW1BBVENIXSB0cmVlLW9wdGlt aXphdGlvbi9QUjExMjc3NCAtIFNDRVY6IGV4dGVuZCB0aGUgY2hyZWMgdHJlZSB3aXRoIGEgbm9u d3JhcHBpbmcgZmxhZw0KPiA+DQo+ID4gTG9vcCB2ZWNvdG9yaXphdGlvbiBjYW4gbm90IG9wdGlt aXplIGZvbGxvd2luZyBjYXNlIGR1ZSB0byBTQ0VWIGlzIG5vdCBhZmZpbmUNCj4gPiBmYWlsdXJl IChpK29mZnNldCBtYXkgb3ZlcmZsb3cpOg0KPiA+DQo+ID4gICAgIGludCBBWzEwMjQgKiAyXTsN Cj4gPg0KPiA+ICAgICBpbnQgZm9vICh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIE4pDQo+ID4g ICAgIHsNCj4gPiAgICAgICBpbnQgc3VtID0gMDsNCj4gPiAgICAgICBmb3IgKHVuc2lnbmVkIGkg PSAwOyBpIDwgTjsgaSsrKQ0KPiA+ICAgICAgICAgc3VtICs9IEFbaSArIG9mZnNldF07DQo+ID4g ICAgICAgcmV0dXJuIHN1bTsNCj4gPiAgICAgfQ0KPiA+DQo+ID4gQWN0dWFsbHksIG5pdGVyIHBh c3MgY2FuIGZpbmQgbm9ud3JhcHBpbmcgaW5kdWN0aW9uIHZhcmlhYmxlcyAoaS5lLiwgaSArIG9m ZnNldA0KPiA+IGNhbiBub3Qgb3ZlcmZsb3cpIGJ5IGluZmVycmluZyBmcm9tIHVuZGVmaW5lZCBi ZWhhdmlvcnMgbGlrZSBhcnJheSBhY2Nlc3MgKHNlZQ0KPiA+IHJlY29yZF9ub253cmFwcGluZ19p dikuIEJ1dCB0aGlzIGluZm9ybWF0aW9uIGlzIG5vdCBzaGFyZWQgdG8gU0NFViB5ZXQuIFRoaXMN Cj4gPiBwYXRjaCBhZGRzIGEgbm9ud3JhcHBpbmcgZmxhZyB0byB0aGUgY2hyZWMgdHJlZSwgd2hp Y2ggYWxsb3dzIFNDRVYgdG8gcmUtdXNlIGl0DQo+ID4gdG8gcGFzcyB0aGUgbm9ud3JhcHBpbmcg Y2hlY2tzIGxpa2Ugc2Nldl9wcm9iYWJseV93cmFwc19wLCBhbmQgZmluYWx5IGxvb3ANCj4gPiB2 ZWN0b3JpemF0aW9uIGNvdWxkIHN1Y2NlZWQuDQo+ID4NCj4gPiBUaGUgbmV3IGZsYWcgaXMgZGVm aW5lZCBhcyBDSFJFQ19OT1dSQVAodHJlZSksIGFuZCB0aGUgZHVtcCBpbmZvIGlzIGNoYW5nZWQg ZnJvbQ0KPiA+ICJ7b2Zmc2V0LCArLCAxfV8xIiAtPiAie29mZnNldCwgKywgMX08bnc+XzEiIChu dyBpcyBzaG9ydCBmb3Igbm9ud3JhcHBpbmcpLiBUd28NCj4gPiBTQ0VWIGludGVyZmFjZXMgcmVj b3JkX25vbndyYXBwaW5nX2NocmVjIGFuZCBub253cmFwcGluZ19jaHJlY19wIGFyZSBhZGRlZCB0 bw0KPiA+IHNldCBhbmQgY2hlY2sgdGhlIGZsYWcgcmVzcGVjdGl2ZWx5Lg0KPiA+DQo+ID4gSG93 ZXZlciwgYW4gZXh0cmEgcHJvYmxlbSBpcyBjYXVzZWQgYnkgcmVzZXR0aW5nIFNDRVYgY2FjaGUg KGkuZS4sIHNjZXZfcmVzZXQgb3INCj4gPiByZXNldF9zY2V2X2h0YWIpLCB3aGljaCBtYXkgbm90 IGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSBjYWxsaW5nIG9mDQo+ID4gZnJlZV9udW1iZXJzX29m X2l0ZXJhdGlvbnNfZXN0aW1hdGVzLCB3aGljaCBzZXQgdGhlIGxvb3AtPmVzdGltYXRlX3N0YXRl IHRvDQo+ID4gRVNUX05PVF9DT01QVVRFRCBhbmQgbWFrZSBzdXJlIHRoZSBhYm92ZSBpbmZlcnJp bmcgZnJvbSBhcnJheSBhY2Nlc3MgaXMgY2FsbGVkLg0KPiA+IEluIG90aGVyIHdvcmRzLCB0aGUg bm9ud3JhcHBpbmcgZmxhZyBjb3VsZCBiZSBjbGVhcmVkIGFuZCBsb3N0IGJ5IHJlc2V0dGluZyBT Q0VWDQo+ID4gY2FjaGUgaWYgdGhlIGxvb3AtPmVzdGltYXRlX3N0YXRlIGlzIG5vdCByZXNldC4N Cj4gPiBFLmcuLCBnaW1wbGVfZHVwbGljYXRlX2xvb3BfYm9keV90b19oZWFkZXJfZWRnZS9mbHVz aF9zc2FuYW1lX2ZyZWVsaXN0LA0KPiA+IHdoaWNoIGNhbGxzIHNjZXZfcmVzZXQvc2Nldl9yZXNl dF9odGFiIHRvIGNsZWFyIHRoZSBTQ0VWIGNhY2hlLCBidXQgdGhlDQo+ID4gZXN0aW1hdGVfc3Rh dGUgaXMgc3RpbGwga2VwdCBhcyBFU1RfQVZBSUxBQkxFIGFuZCB0aGUgZmxhZyB3aWxsIG5vdCBi ZSBzZXQgaW4NCj4gPiBsb29wIHZlY3Rvcml6YXRpb24uDQo+ID4NCj4gPiBUaGlzIHBhdGNoIHVz ZXMgYSBzaW1wbGUgZml4IGJ5IGNhbGxpbmcgZnJlZV9udW1iZXJzX29mX2l0ZXJhdGlvbnNfZXN0 aW1hdGVzIGluDQo+ID4gdmVjdF9hbmFseXplX2xvb3AsIHdoaWNoIHdpbGwgbWFrZSBzdXJlIHRo ZSBmbGFnIGlzIGFsd2F5cyBzZXQgcHJvcHJpYXRlbHkgaW4NCj4gPiBsb29wIHZlY3Rvcml6YXRp b24uIFRoaXMgZml4IGlzIGEgYml0IGFkLWhvYyAod29ya3MgZm9yIGxvb3AgdmVjdG9yaXphdGlv bg0KPiA+IG9ubHkpLCBpZiB0aGVyZSBpcyBtb3JlIHJlYXNvbmFibGUgbWV0aG9kLCBJIHdpbGwg cmV2ZXJ0IHRoZSBzaW1wbGUgZml4IGFuZCB0cnkNCj4gPiB0aGF0Lg0KPiA+DQo+ID4gVGhpcyBw YXRjaCBpcyBib290c3RyYXBwZWQgYW5kIHRlc3RlZCBvbiBhYXJjaDY0LWxpbnV4LWdudSB3aXRo IG5vIHJlZ3Jlc3Npb25zLg0KPiA+IE9LIGZvciB0cnVuaz8NCj4gPg0KPiA+IC0tLQ0KPiA+IFRo ZSBwYXRjaCBpcyBhcyBmb2xsb3dpbmc6DQo+ID4NCj4gPiBbUEFUQ0hdIFNDRVY6IGV4dGVuZCB0 aGUgY2hyZWMgdHJlZSB3aXRoIGEgbm9ud3JhcHBpbmcgZmxhZw0KPiA+ICBbUFIxMTI3NzRdDQo+ ID4NCj4gPiBUaGUgZmxhZyBpcyBkZWZpbmVkIGFzIENIUkVDX05PV1JBUCh0cmVlKSwgYW5kIHdp bGwgYmUgZHVtcGVkIGZyb20NCj4gPiAie29mZnNldCwgKywgMX1fMSIgdG8gIntvZmZzZXQsICss IDF9PG53Pl8xIiAobncgaXMgc2hvcnQgZm9yIG5vbndyYXBwaW5nKS4NCj4gPiBUd28gU0NFViBp bnRlcmZhY2VzIHJlY29yZF9ub253cmFwcGluZ19jaHJlYyBhbmQgbm9ud3JhcHBpbmdfY2hyZWNf cCBhcmUNCj4gPiBhZGRlZCB0byBzZXQgYW5kIGNoZWNrIHRoZSBmbGFnIHJlc3BlY3RpdmVseS4N Cj4gPg0KPiA+IEFzIHJlc2V0dGluZyB0aGUgU0NFViBjYWNoZSAoaS5lLiwgdGhlIGNocmVjIHRy ZWVzKSBtYXkgbm90IHJlc2V0IHRoZQ0KPiA+IGxvb3AtPmVzdGltYXRlX3N0YXRlLCBmcmVlX251 bWJlcnNfb2ZfaXRlcmF0aW9uc19lc3RpbWF0ZXMgaXMgY2FsbGVkDQo+ID4gZXhwbGljaXRseSBp biBsb29wIHZlY3Rvcml6YXRpb24gdG8gbWFrZSBzdXJlIHRoZSBmbGFnIGNhbiBiZQ0KPiA+IGNh bGN1bGF0ZWQgcHJvcHJpYXRlbHkgYnkgbml0ZXIuDQo+ID4NCj4gPiBnY2MvQ2hhbmdlTG9nOg0K PiA+DQo+ID4gICAgICAgICBQUiB0cmVlLW9wdGltaXphdGlvbi8xMTI3NzQNCj4gPiAgICAgICAg ICogdHJlZS1wcmV0dHktcHJpbnQuY2M6IGlmIG5vbndyYXBwaW5nIGZsYWcgaXMgc2V0LCBjaHJl YyB3aWxsIGJlDQo+ID4gICAgICAgICBwcmludGVkIHdpdGggYWRkaXRpb25hbCA8bnc+IGluZm8u DQo+ID4gICAgICAgICAqIHRyZWUtc2NhbGFyLWV2b2x1dGlvbi5jYzogYWRkIHJlY29yZF9ub253 cmFwcGluZ19jaHJlYyBhbmQNCj4gPiAgICAgICAgIG5vbndyYXBwaW5nX2NocmVjX3AgdG8gc2V0 IGFuZCBjaGVjayB0aGUgbmV3IGZsYWcgcmVzcGVjdGl2ZWx5Lg0KPiA+ICAgICAgICAgKiB0cmVl LXNjYWxhci1ldm9sdXRpb24uaDogTGlrZXdpc2UuDQo+ID4gICAgICAgICAqIHRyZWUtc3NhLWxv b3Atbml0ZXIuY2MgKGlkeF9pbmZlcl9sb29wX2JvdW5kcywNCj4gPiAgICAgICAgIGluZmVyX2xv b3BfYm91bmRzX2Zyb21fcG9pbnRlcl9hcml0aCwgaW5mZXJfbG9vcF9ib3VuZHNfZnJvbV9zaWdu ZWRuZXNzLA0KPiA+ICAgICAgICAgc2Nldl9wcm9iYWJseV93cmFwc19wKTogY2FsbCByZWNvcmRf bm9ud3JhcHBpbmdfY2hyZWMgYmVmb3JlDQo+ID4gICAgICAgICByZWNvcmRfbm9ud3JhcHBpbmdf aXYsIGNhbGwgbm9ud3JhcHBpbmdfY2hyZWNfcCB0byBjaGVjayB0aGUgZmxhZyBpcyBzZXQgYW5k DQo+ID4gICAgICAgICByZXR1cm4gZmFsc2UgZnJvbSBzY2V2X3Byb2JhYmx5X3dyYXBzX3AuDQo+ ID4gICAgICAgICAqIHRyZWUtdmVjdC1sb29wLmNjICh2ZWN0X2FuYWx5emVfbG9vcCk6IGNhbGwN Cj4gPiAgICAgICAgIGZyZWVfbnVtYmVyc19vZl9pdGVyYXRpb25zX2VzdGltYXRlcyBleHBsaWNp dGx5Lg0KPiA+ICAgICAgICAgKiBnY2MvdHJlZS5oOiBhZGQgQ0hSRUNfTk9XUkFQKE5PREUpLCBi YXNlLm5vdGhyb3dfZmxhZyBpcyB1c2VkDQo+ID4gICAgICAgICB0byByZXByZXNlbnQgdGhlIG5v bndyYXBwaW5nIGluZm8uDQo+ID4NCj4gPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gPg0K PiA+ICAgICAgICAgKiBnY2MuZGcvdHJlZS1zc2Evc2Nldi0xNi5jOiBOZXcgdGVzdC4NCj4gPiAt LS0NCj4gPiAgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2Evc2Nldi0xNi5jIHwgMTcgKysr KysrKysrKysrKysrKysNCj4gPiAgZ2NjL3RyZWUtcHJldHR5LXByaW50LmNjICAgICAgICAgICAg ICAgIHwgIDIgKy0NCj4gPiAgZ2NjL3RyZWUtc2NhbGFyLWV2b2x1dGlvbi5jYyAgICAgICAgICAg IHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGdjYy90cmVlLXNjYWxhci1ldm9s dXRpb24uaCAgICAgICAgICAgICB8ICAyICsrDQo+ID4gIGdjYy90cmVlLXNzYS1sb29wLW5pdGVy LmNjICAgICAgICAgICAgICB8IDIxICsrKysrKysrKysrKysrKystLS0tLQ0KPiA+ICBnY2MvdHJl ZS12ZWN0LWxvb3AuY2MgICAgICAgICAgICAgICAgICAgfCAgNCArKysrDQo+ID4gIGdjYy90cmVl LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKysrLS0tDQo+ID4gIDcgZmls ZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkNCj4gPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3NjZXYtMTYuYw0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3NjZXYtMTYu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3NjZXYtMTYuYw0KPiA+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAuLjk2ZWEzNmU0YzY1DQo+ID4gLS0t IC9kZXYvbnVsbA0KPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3NjZXYt MTYuYw0KPiA+IEBAIC0wLDAgKzEsMTcgQEANCj4gPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8N Cj4gPiArLyogeyBkZy1vcHRpb25zICItTzMgLWZkdW1wLXRyZWUtdmVjdC1zY2V2IiB9ICovDQo+ ID4gKw0KPiA+ICtpbnQgQVsxMDI0ICogMl07DQo+ID4gKw0KPiA+ICtpbnQgZm9vICh1bnNpZ25l ZCBvZmZzZXQsIHVuc2lnbmVkIE4pDQo+ID4gK3sNCj4gPiArICBpbnQgc3VtID0gMDsNCj4gPiAr DQo+ID4gKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE47IGkrKykNCj4gPiArICAgIHN1bSAr PSBBW2kgKyBvZmZzZXRdOw0KPiA+ICsNCj4gPiArICByZXR1cm4gc3VtOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgInZlY190cmFuc2Zvcm1fbG9v cCIgInZlY3QiIH0gfSAqLw0KPiA+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90 ICJtaXNzZWQ6ICBmYWlsZWQ6IGV2b2x1dGlvbiBvZiBvZmZzZXQgaXMgbm90IGFmZmluZSIgInZl Y3QiIH0gfSAqLw0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS1wcmV0dHktcHJpbnQuY2MgYi9n Y2MvdHJlZS1wcmV0dHktcHJpbnQuY2MNCj4gPiBpbmRleCAxZmFkZDc1MmQwNS4uMGRhYmI2ZDE1 ODAgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL3RyZWUtcHJldHR5LXByaW50LmNjDQo+ID4gKysrIGIv Z2NjL3RyZWUtcHJldHR5LXByaW50LmNjDQo+ID4gQEAgLTM0ODgsNyArMzQ4OCw3IEBAIGR1bXBf Z2VuZXJpY19ub2RlIChwcmV0dHlfcHJpbnRlciAqcHAsIHRyZWUgbm9kZSwgaW50IHNwYywgZHVt cF9mbGFnc190IGZsYWdzLA0KPiA+ICAgICAgICBkdW1wX2dlbmVyaWNfbm9kZSAocHAsIENIUkVD X0xFRlQgKG5vZGUpLCBzcGMsIGZsYWdzLCBmYWxzZSk7DQo+ID4gICAgICAgIHBwX3N0cmluZyAo cHAsICIsICssICIpOw0KPiA+ICAgICAgICBkdW1wX2dlbmVyaWNfbm9kZSAocHAsIENIUkVDX1JJ R0hUIChub2RlKSwgc3BjLCBmbGFncywgZmFsc2UpOw0KPiA+IC0gICAgICBwcF9zdHJpbmcgKHBw LCAifV8iKTsNCj4gPiArICAgICAgcHBfc3RyaW5nIChwcCwgIUNIUkVDX05PV1JBUCAobm9kZSkg PyAifV8iIDogIn08bnc+XyIpOw0KPiA+ICAgICAgICBwcF9zY2FsYXIgKHBwLCAiJXUiLCBDSFJF Q19WQVJJQUJMRSAobm9kZSkpOw0KPiA+ICAgICAgICBpc19zdG10ID0gZmFsc2U7DQo+ID4gICAg ICAgIGJyZWFrOw0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS1zY2FsYXItZXZvbHV0aW9uLmNj IGIvZ2NjL3RyZWUtc2NhbGFyLWV2b2x1dGlvbi5jYw0KPiA+IGluZGV4IDA2NWJjZDA3NDNkLi5h OTExMjU3MmUwYyAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvdHJlZS1zY2FsYXItZXZvbHV0aW9uLmNj DQo+ID4gKysrIGIvZ2NjL3RyZWUtc2NhbGFyLWV2b2x1dGlvbi5jYw0KPiA+IEBAIC0yMDUwLDYg KzIwNTAsMzAgQEAgYW5hbHl6ZV9zY2FsYXJfZXZvbHV0aW9uIChjbGFzcyBsb29wICpsb29wLCB0 cmVlIHZhcikNCj4gPiAgICByZXR1cm4gcmVzOw0KPiA+ICB9DQo+ID4NCj4gPiArLyogSWYgQ0hS RUMgZG9lc24ndCBvdmVyZmxvdywgc2V0IHRoZSBub253cmFwcGluZyBmbGFnLiAgKi8NCj4gPiAr DQo+ID4gK3ZvaWQgcmVjb3JkX25vbndyYXBwaW5nX2NocmVjICh0cmVlIGNocmVjKQ0KPiA+ICt7 DQo+ID4gKyAgQ0hSRUNfTk9XUkFQKGNocmVjKSA9IDE7DQo+ID4gKw0KPiA+ICsgIGlmIChkdW1w X2ZpbGUgJiYgKGR1bXBfZmxhZ3MgJiBUREZfU0NFVikpDQo+ID4gKyAgICB7DQo+ID4gKyAgICAg IGZwcmludGYgKGR1bXBfZmlsZSwgIihyZWNvcmRfbm9ud3JhcHBpbmdfY2hyZWM6ICIpOw0KPiA+ ICsgICAgICBwcmludF9nZW5lcmljX2V4cHIgKGR1bXBfZmlsZSwgY2hyZWMpOw0KPiA+ICsgICAg ICBmcHJpbnRmIChkdW1wX2ZpbGUsICIpXG4iKTsNCj4gPiArICAgIH0NCj4gPiArfQ0KPiA+ICsN Cj4gPiArLyogUmV0dXJuIHRydWUgaWYgQ0hSRUMncyBub253cmFwcGluZyBmbGFnIGlzIHNldC4g ICovDQo+ID4gKw0KPiA+ICtib29sIG5vbndyYXBwaW5nX2NocmVjX3AgKHRyZWUgY2hyZWMpDQo+ ID4gK3sNCj4gPiArICBpZiAoIWNocmVjIHx8IFRSRUVfQ09ERShjaHJlYykgIT0gUE9MWU5PTUlB TF9DSFJFQykNCj4gPiArICAgIHJldHVybiBmYWxzZTsNCj4gPiArDQo+ID4gKyAgcmV0dXJuIENI UkVDX05PV1JBUChjaHJlYyk7DQo+ID4gK30NCj4gPiArDQo+ID4gIC8qIEFuYWx5emVzIGFuZCBy ZXR1cm5zIHRoZSBzY2FsYXIgZXZvbHV0aW9uIG9mIFZBUiBhZGRyZXNzIGluIExPT1AuICAqLw0K PiA+DQo+ID4gIHN0YXRpYyB0cmVlDQo+ID4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXNjYWxhci1l dm9sdXRpb24uaCBiL2djYy90cmVlLXNjYWxhci1ldm9sdXRpb24uaA0KPiA+IGluZGV4IGE2NGVk NzhmZTYzLi5mNTdmZGUxMmVlMiAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvdHJlZS1zY2FsYXItZXZv bHV0aW9uLmgNCj4gPiArKysgYi9nY2MvdHJlZS1zY2FsYXItZXZvbHV0aW9uLmgNCj4gPiBAQCAt NDMsNiArNDMsOCBAQCBleHRlcm4gYm9vbCBzaW1wbGVfaXYgKGNsYXNzIGxvb3AgKiwgY2xhc3Mg bG9vcCAqLCB0cmVlLCBzdHJ1Y3QgYWZmaW5lX2l2ICosDQo+ID4gICAgICAgICAgICAgICAgICAg ICAgICBib29sKTsNCj4gPiAgZXh0ZXJuIGJvb2wgaXZfY2FuX292ZXJmbG93X3AgKGNsYXNzIGxv b3AgKiwgdHJlZSwgdHJlZSwgdHJlZSk7DQo+ID4gIGV4dGVybiB0cmVlIGNvbXB1dGVfb3ZlcmFs bF9lZmZlY3Rfb2ZfaW5uZXJfbG9vcCAoY2xhc3MgbG9vcCAqLCB0cmVlKTsNCj4gPiArZXh0ZXJu IHZvaWQgcmVjb3JkX25vbndyYXBwaW5nX2NocmVjICh0cmVlKTsNCj4gPiArZXh0ZXJuIGJvb2wg bm9ud3JhcHBpbmdfY2hyZWNfcCAodHJlZSk7DQo+ID4NCj4gPiAgLyogUmV0dXJucyB0aGUgYmFz aWMgYmxvY2sgcHJlY2VkaW5nIExPT1AsIG9yIHRoZSBDRkcgZW50cnkgYmxvY2sgd2hlbg0KPiA+ ICAgICB0aGUgbG9vcCBpcyBmdW5jdGlvbidzIGJvZHkuICAqLw0KPiA+IGRpZmYgLS1naXQgYS9n Y2MvdHJlZS1zc2EtbG9vcC1uaXRlci5jYyBiL2djYy90cmVlLXNzYS1sb29wLW5pdGVyLmNjDQo+ ID4gaW5kZXggMjA5OGJlZjlhOTcuLmQ0NjVlMGVkN2UxIDEwMDY0NA0KPiA+IC0tLSBhL2djYy90 cmVlLXNzYS1sb29wLW5pdGVyLmNjDQo+ID4gKysrIGIvZ2NjL3RyZWUtc3NhLWxvb3Atbml0ZXIu Y2MNCj4gPiBAQCAtNDIwNiwxMSArNDIwNiwxNSBAQCBpZHhfaW5mZXJfbG9vcF9ib3VuZHMgKHRy ZWUgYmFzZSwgdHJlZSAqaWR4LCB2b2lkICpkdGEpDQo+ID4NCj4gPiAgICAvKiBJZiBhY2Nlc3Mg aXMgbm90IGV4ZWN1dGVkIG9uIGV2ZXJ5IGl0ZXJhdGlvbiwgd2UgbXVzdCBlbnN1cmUgdGhhdCBv dmVybG93DQo+ID4gICAgICAgbWF5IG5vdCBtYWtlIHRoZSBhY2Nlc3MgdmFsaWQgbGF0ZXIuICAq Lw0KPiA+IC0gIGlmICghZG9taW5hdGVkX2J5X3AgKENESV9ET01JTkFUT1JTLCBsb29wLT5sYXRj aCwgZ2ltcGxlX2JiIChkYXRhLT5zdG10KSkNCj4gPiAtICAgICAgJiYgc2Nldl9wcm9iYWJseV93 cmFwc19wIChOVUxMX1RSRUUsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bml0aWFsX2NvbmRpdGlvbl9pbl9sb29wX251bSAoZXYsIGxvb3AtPm51bSksDQo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwLCBkYXRhLT5zdG10LCBsb29wLCB0cnVlKSkN Cj4gPiAtICAgIHVwcGVyID0gZmFsc2U7DQo+ID4gKyAgaWYgKCFkb21pbmF0ZWRfYnlfcCAoQ0RJ X0RPTUlOQVRPUlMsIGxvb3AtPmxhdGNoLCBnaW1wbGVfYmIgKGRhdGEtPnN0bXQpKSkNCj4gPiAr ICAgIHsNCj4gPiArICAgICAgaWYgKHNjZXZfcHJvYmFibHlfd3JhcHNfcCAoTlVMTF9UUkVFLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxfY29uZGl0aW9uX2lu X2xvb3BfbnVtIChldiwgbG9vcC0+bnVtKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGVwLCBkYXRhLT5zdG10LCBsb29wLCB0cnVlKSkNCj4gPiArICAgICAgIHVwcGVy ID0gZmFsc2U7DQo+ID4gKyAgICB9DQo+ID4gKyAgZWxzZQ0KPiA+ICsgICAgcmVjb3JkX25vbndy YXBwaW5nX2NocmVjIChldik7DQo+ID4NCj4gPiAgICByZWNvcmRfbm9ud3JhcHBpbmdfaXYgKGxv b3AsIGluaXQsIHN0ZXAsIGRhdGEtPnN0bXQsIGxvdywgaGlnaCwgZmFsc2UsIHVwcGVyKTsNCj4g PiAgICByZXR1cm4gdHJ1ZTsNCj4gPiBAQCAtNDMyNCw2ICs0MzI4LDcgQEAgaW5mZXJfbG9vcF9i b3VuZHNfZnJvbV9wb2ludGVyX2FyaXRoIChjbGFzcyBsb29wICpsb29wLCBnaW1wbGUgKnN0bXQp DQo+ID4gICAgaWYgKGZsYWdfZGVsZXRlX251bGxfcG9pbnRlcl9jaGVja3MgJiYgaW50X2NzdF92 YWx1ZSAobG93KSA9PSAwKQ0KPiA+ICAgICAgbG93ID0gYnVpbGRfaW50X2NzdHUgKFRSRUVfVFlQ RSAobG93KSwgVFlQRV9BTElHTl9VTklUIChUUkVFX1RZUEUgKHR5cGUpKSk7DQo+ID4NCj4gPiAr ICByZWNvcmRfbm9ud3JhcHBpbmdfY2hyZWMgKHNjZXYpOw0KPiA+ICAgIHJlY29yZF9ub253cmFw cGluZ19pdiAobG9vcCwgYmFzZSwgc3RlcCwgc3RtdCwgbG93LCBoaWdoLCBmYWxzZSwgdHJ1ZSk7 DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC00MzcxLDYgKzQzNzYsNyBAQCBpbmZlcl9sb29wX2JvdW5k c19mcm9tX3NpZ25lZG5lc3MgKGNsYXNzIGxvb3AgKmxvb3AsIGdpbXBsZSAqc3RtdCkNCj4gPiAg ICAgICAgaGlnaCA9IHdpZGVfaW50X3RvX3RyZWUgKHR5cGUsIHIudXBwZXJfYm91bmQgKCkpOw0K PiA+ICAgICAgfQ0KPiA+DQo+ID4gKyAgcmVjb3JkX25vbndyYXBwaW5nX2NocmVjIChzY2V2KTsN Cj4gPiAgICByZWNvcmRfbm9ud3JhcHBpbmdfaXYgKGxvb3AsIGJhc2UsIHN0ZXAsIHN0bXQsIGxv dywgaGlnaCwgZmFsc2UsIHRydWUpOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtNTUwNSw2ICs1NTEx LDExIEBAIHNjZXZfcHJvYmFibHlfd3JhcHNfcCAodHJlZSB2YXIsIHRyZWUgYmFzZSwgdHJlZSBz dGVwLA0KPiA+ICAgIGlmIChsb29wX2V4aXRzX2JlZm9yZV9vdmVyZmxvdyAoYmFzZSwgc3RlcCwg YXRfc3RtdCwgbG9vcCkpDQo+ID4gICAgICByZXR1cm4gZmFsc2U7DQo+ID4NCj4gPiArICAvKiBD aGVjayB0aGUgbm9ud3JhcHBpbmcgZmxhZywgd2hpY2ggbWF5IGJlIHNldCBieSBuaXRlciBhbmFs eXNpcyAoZS5nLiwgdGhlDQo+ID4gKyAgICAgYWJvdmUgbG9vcCBleGl0cyBiZWZvcmUgb3ZlcmZs b3cpLiAgKi8NCj4gPiArICBpZiAodmFyICYmIG5vbndyYXBwaW5nX2NocmVjX3AgKGFuYWx5emVf c2NhbGFyX2V2b2x1dGlvbiAobG9vcCwgdmFyKSkpDQo+ID4gKyAgICByZXR1cm4gZmFsc2U7DQo+ ID4gKw0KPiA+ICAgIC8qIEF0IHRoaXMgcG9pbnQgd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBhIHByb29m IHRoYXQgdGhlIGl2IGRvZXMgbm90DQo+ID4gICAgICAgb3ZlcmZsb3c6IGdpdmUgdXAuICAqLw0K PiA+ICAgIHJldHVybiB0cnVlOw0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0LWxvb3Au Y2MgYi9nY2MvdHJlZS12ZWN0LWxvb3AuY2MNCj4gPiBpbmRleCBkZDU4NGFiNGE0Mi4uNjI2MWNk MWJlMWQgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL3RyZWUtdmVjdC1sb29wLmNjDQo+ID4gKysrIGIv Z2NjL3RyZWUtdmVjdC1sb29wLmNjDQo+ID4gQEAgLTM1NzAsNiArMzU3MCwxMCBAQCB2ZWN0X2Fu YWx5emVfbG9vcCAoY2xhc3MgbG9vcCAqbG9vcCwgdmVjX2luZm9fc2hhcmVkICpzaGFyZWQpDQo+ ID4gICAgICAgICAgYW5hbHlzaXMgYXJlIGRvbmUgdW5kZXIgdGhlIGFzc3VtcHRpb25zLiAgKi8N Cj4gPiAgICAgICAgbG9vcF9jb25zdHJhaW50X3NldCAobG9vcCwgTE9PUF9DX0ZJTklURSk7DQo+ ID4gICAgICB9DQo+ID4gKyAgZWxzZQ0KPiA+ICsgICAgLyogQ2xlYXIgdGhlIGV4aXN0aW5nIG5p dGVyIGluZm9ybWF0aW9uIHRvIG1ha2Ugc3VyZSB0aGUgbm9ud3JhcHBpbmcgZmxhZw0KPiA+ICsg ICAgICAgd2lsbCBiZSBjYWxjdWxhdGVkIGFuZCBzZXQgcHJvcHJpYXRlbHkuICAqLw0KPiA+ICsg ICAgZnJlZV9udW1iZXJzX29mX2l0ZXJhdGlvbnNfZXN0aW1hdGVzIChsb29wKTsNCj4gPg0KPiA+ ICAgIGF1dG9fdmVjdG9yX21vZGVzIHZlY3Rvcl9tb2RlczsNCj4gPiAgICAvKiBBdXRvZGV0ZWN0 IGZpcnN0IHZlY3RvciBzaXplIHdlIHRyeS4gICovDQo+ID4gZGlmZiAtLWdpdCBhL2djYy90cmVl LmggYi9nY2MvdHJlZS5oDQo+ID4gaW5kZXggMDg2YjU1ZjAzNzUuLjU5YWY4OTIwZjAyIDEwMDY0 NA0KPiA+IC0tLSBhL2djYy90cmVlLmgNCj4gPiArKysgYi9nY2MvdHJlZS5oDQo+ID4gQEAgLTE0 MzgsOSArMTQzOCwxMSBAQCBjbGFzcyBhdXRvX3N1cHByZXNzX2xvY2F0aW9uX3dyYXBwZXJzDQo+ ID4gICNkZWZpbmUgQ09ORF9FWFBSX0VMU0UoTk9ERSkgICAoVFJFRV9PUEVSQU5EIChDT05EX0VY UFJfQ0hFQ0sgKE5PREUpLCAyKSkNCj4gPg0KPiA+ICAvKiBBY2Nlc3NvcnMgZm9yIHRoZSBjaGFp bnMgb2YgcmVjdXJyZW5jZXMuICAqLw0KPiA+IC0jZGVmaW5lIENIUkVDX0xFRlQoTk9ERSkgICAg ICAgICAgVFJFRV9PUEVSQU5EIChQT0xZTk9NSUFMX0NIUkVDX0NIRUNLIChOT0RFKSwgMCkNCj4g PiAtI2RlZmluZSBDSFJFQ19SSUdIVChOT0RFKSAgICAgICAgIFRSRUVfT1BFUkFORCAoUE9MWU5P TUlBTF9DSFJFQ19DSEVDSyAoTk9ERSksIDEpDQo+ID4gLSNkZWZpbmUgQ0hSRUNfVkFSSUFCTEUo Tk9ERSkgICAgICBQT0xZTk9NSUFMX0NIUkVDX0NIRUNLIChOT0RFKS0+YmFzZS51LmNocmVjX3Zh cg0KPiA+ICsjZGVmaW5lIENIUkVDX0xFRlQoTk9ERSkgICAgICAgIFRSRUVfT1BFUkFORCAoUE9M WU5PTUlBTF9DSFJFQ19DSEVDSyAoTk9ERSksIDApDQo+ID4gKyNkZWZpbmUgQ0hSRUNfUklHSFQo Tk9ERSkgICAgICAgVFJFRV9PUEVSQU5EIChQT0xZTk9NSUFMX0NIUkVDX0NIRUNLIChOT0RFKSwg MSkNCj4gPiArI2RlZmluZSBDSFJFQ19WQVJJQUJMRShOT0RFKSAgICBQT0xZTk9NSUFMX0NIUkVD X0NIRUNLIChOT0RFKS0+YmFzZS51LmNocmVjX3Zhcg0KPiA+ICsvKiBOb256ZXJvIGlmIHRoaXMg Y2hyZWMgZG9lc24ndCBvdmVyZmxvdyAoaS5lLiwgbm9ud3JhcHBpbmcpLiAgKi8NCj4gPiArI2Rl ZmluZSBDSFJFQ19OT1dSQVAoTk9ERSkgICAgICBQT0xZTk9NSUFMX0NIUkVDX0NIRUNLIChOT0RF KS0+YmFzZS5ub3Rocm93X2ZsYWcNCj4gPg0KPiA+ICAvKiBMQUJFTF9FWFBSIGFjY2Vzc29yLiBU aGlzIGdpdmVzIGFjY2VzcyB0byB0aGUgbGFiZWwgYXNzb2NpYXRlZCB3aXRoDQo+ID4gICAgIHRo ZSBnaXZlbiBsYWJlbCBleHByZXNzaW9uLiAgKi8NCj4gPiAtLQ0KPiA+IDIuMzQuMQ0KPiA+DQo=