From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 84972C433DF for ; Tue, 2 Jun 2020 07:48:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 321CB206C3 for ; Tue, 2 Jun 2020 07:48:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="gt2Llb1Z" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726315AbgFBHsh (ORCPT ); Tue, 2 Jun 2020 03:48:37 -0400 Received: from mail-eopbgr70080.outbound.protection.outlook.com ([40.107.7.80]:32440 "EHLO EUR04-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725819AbgFBHsg (ORCPT ); Tue, 2 Jun 2020 03:48:36 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aJBqGQdzbJ+aby3Y27NfN1Sw2QV3k3ylK6CKvlcJHIl6Y9kezwPDz09fZ8jZOM4AFSkIPRDgduPsbKEYMHCVkwwrLbIFmd3xTytnHwWU/kTb8qNJiwudDGnQQUayoT3ECeB4QsJLPi107mVu48Fy1/TTibC7rCXq/t+gXNowc3JA+ILDRn+kLc/N831gnWdthcRp0XdqfztkklJwFUSv4kW52Uze91yfIGyi/t+pXjbKARNhM77b6vSQyYev8ta0SyPSfH9CyU5Zqc3X0d54MknQ57b1M5QOHEVhYTgCLkzsXCOXtK5p/itmeQUjOSmsC9DslLdUKyABHF97848/Dg== 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-SenderADCheck; bh=QuoiHdTjpN7hxrxdLncJB82kcWTfUYaq9gwrIKlYD24=; b=WB97l81G2ZsoKdsfkreVdiXWZskdG6nH/ROS3YOPl7dJUGRmgwnDef91QBTlD6BQGBDorqdhBQ2Tr1+8WZ/DN5NdszXT6sfUxBkIbYcX4dVq3pbMiwk9jn/DHRKfg2gS64UnqmdJAZ9JX98cddc5Zsa4oany30SYYzNdWTxnMSK9n1OxgnCOzBm1BJ5Rb0hdC/Kdi6omYdjtx9Hkw6IDfY31i3Sz+asXELqE7UlZDKvWi8tG+E1Dp1rj1IZvtZs51x+eG5BEeOE8piuUYRS5oPJPVKmU0Z/eDiuM82zHdXqvQ3qxKCO0k5H+68SVBSrapD1Pls6zYjZ5W/n9MFUbXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QuoiHdTjpN7hxrxdLncJB82kcWTfUYaq9gwrIKlYD24=; b=gt2Llb1ZRpeKRwBV2DXeSP7Uv+Pu6DjkMPdY/j+SbWrn2p93EeAoRlrJyqjzexYqtdSeQ0oHCxqp7r/Txr/m41ScDwy4eMpM/hT18d4VQM/UDaOf7Ety6Q3SuU/sMFIyLDZT2N2/fRahy5UlVXPvMRm4knj+Af+XqGTXmMaRI8g= Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB6PR0402MB2872.eurprd04.prod.outlook.com (2603:10a6:4:98::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.22; Tue, 2 Jun 2020 07:47:52 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::d17b:d767:19c3:b871]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::d17b:d767:19c3:b871%6]) with mapi id 15.20.3045.022; Tue, 2 Jun 2020 07:47:51 +0000 From: Peng Fan To: Aisheng Dong , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" CC: "kernel@pengutronix.de" , "festevam@gmail.com" , "linux@rempel-privat.de" , Leonard Crestez , Daniel Baluta , Joakim Zhang , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , dl-linux-imx Subject: RE: [PATCH 2/4] firmware: imx: add resource management api Thread-Topic: [PATCH 2/4] firmware: imx: add resource management api Thread-Index: AQHWGT37doAjG8vSF0ywBJjXXTGn3qiGerCAgAAOdvCAADSbAIAAuXGAgAAPwICAPGmj8IAA668AgAAi6pCAAC0gAIAAAHwQ Date: Tue, 2 Jun 2020 07:47:51 +0000 Message-ID: References: <1587625174-32668-1-git-send-email-peng.fan@nxp.com> <1587625174-32668-3-git-send-email-peng.fan@nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=nxp.com; x-originating-ip: [119.31.174.71] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: a4cdd6ca-7a6d-48c7-07a2-08d806c940d5 x-ms-traffictypediagnostic: DB6PR0402MB2872: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0422860ED4 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LIvwE9a0z0SXbn5Wy1XL6SCT1qmul9lO0Brsb7OXDR8FIstOiNQpoVz1mPvmzoX0oOruqNn5Bp+s0roP0hS+NyLBigVBtkMYDQ7QTfouFJYvqKjMHOVi7GqvFLiPRbIWYw+38wX/O/MGP2IJhRHvglySAR8HJYdZXfEL8lch1bA5cKxsNzdffglR/fZRmeRlnC1vNrikaTAzPqYT8oUa20a6Q2eTc2O1gLCOetOGoC2GHLcunihyrtcLZvcAhyKODTV7W3SiIZ4GISyF1kAXaY7/9B/2o9dj7kzSwEdFZq4fQFhzrcy+zxnTcHE/nOje x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB6PR0402MB2760.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(376002)(346002)(396003)(136003)(39860400002)(366004)(66946007)(4326008)(186003)(33656002)(54906003)(66556008)(66446008)(64756008)(66476007)(5660300002)(2906002)(71200400001)(55016002)(8936002)(7696005)(9686003)(30864003)(316002)(44832011)(110136005)(478600001)(26005)(8676002)(6506007)(76116006)(52536014)(83380400001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: DG56Dphz9cHPvp8xcsBAzvmthArJKY0PCzz0YR2WaB4eo7e/0gXSzyU5ayjOqHC91lvZWHXMCATAAAjG9Msa2mHp0kY/0iQjzUH47uaFRTgZS+cvDvENl20gSdrK6rc9xK2rDWdYFWAKyvHaKhLkz8jdDiTO3KSKpUvGDh6TWDrHTjY3JMmx6P7TEiV6rYjcVy55phFNJzSznc96GCHFPvD1iX8FjuxrtwMIIjI/Z7Nqzc6Sz4neMReLyUprfqt4PaNz3zQutoX5PzLPXovIM3/9p/NAojlcjom4Szkjq3aPhKd5Io63JrU0utLWcjmqVzY10y2fZF9PzIahb8LfuRxHgwCNcmI2DFgckPPSO2TrbBOvKDZ3lYggHbDuDPubGQFF17V2XRmkIYTzEUnNHweAWqMVC6KC8PKFM1dY3husRR1jsjgwML+hj9yE0b5Ue2kuf7kbh+0yn7Pibp2d7hfe3ay47rkoGvJ3ZpPD8pB5bi36I/Lq++0tabpF1SZy Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4cdd6ca-7a6d-48c7-07a2-08d806c940d5 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jun 2020 07:47:51.7441 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: MARX06rEbzHQ5jCrsbxTixhe4c+GNWQdmdRakk1qLzDuK/Uoy5ZGcvHQ1xs5IRu6YvDbF3vv2jtbSMfhLIjeUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0402MB2872 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBTdWJqZWN0OiBSRTogW1BBVENIIDIvNF0gZmlybXdhcmU6IGlteDogYWRkIHJlc291cmNlIG1h bmFnZW1lbnQgYXBpDQo+IA0KPiA+IEZyb206IFBlbmcgRmFuIDxwZW5nLmZhbkBueHAuY29tPg0K PiA+IFNlbnQ6IFR1ZXNkYXksIEp1bmUgMiwgMjAyMCAxMjo1MSBQTQ0KPiA+ID4NCj4gPiA+ID4g RnJvbTogUGVuZyBGYW4gPHBlbmcuZmFuQG54cC5jb20+DQo+ID4gPiA+IFNlbnQ6IE1vbmRheSwg SnVuZSAxLCAyMDIwIDg6NDAgUE0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gRnJvbTogUGVuZyBG YW4gPHBlbmcuZmFuQG54cC5jb20+DQo+ID4gPiA+ID4gPiBTZW50OiBGcmlkYXksIEFwcmlsIDI0 LCAyMDIwIDk6MTIgQU0NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBGcm9tOiBQZW5n IEZhbiA8cGVuZy5mYW5AbnhwLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBTZW50OiBUaHVyc2RheSwg QXByaWwgMjMsIDIwMjAgNjo1NyBQTQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBGcm9tOiBQZW5nIEZh biA8cGVuZy5mYW5AbnhwLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gU2VudDogVGh1cnNkYXks IEFwcmlsIDIzLCAyMDIwIDM6MDAgUE0NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gQWRkIHJlc291cmNlIG1hbmFnZW1lbnQgQVBJLCB3aGVuIHdlIGhhdmUgbXVsdGlw bGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gcGFydGl0aW9uIHJ1bm5pbmcgdG9nZXRoZXIsIHJlc291 cmNlcyBub3Qgb3duZWQgdG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gY3VycmVudCBwYXJ0aXRpb24g c2hvdWxkIG5vdCBiZQ0KPiA+ID4gPiA+ID4gPiB1c2VkLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gPiBSZXZpZXdlZC1ieTogTGVvbmFyZCBDcmVzdGV6IDxsZW9uYXJk LmNyZXN0ZXpAbnhwLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUGVu ZyBGYW4gPHBlbmcuZmFuQG54cC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+ID4gUmlnaHQgbm93IEknbSBzdGlsbCBub3QgcXVpdGUgdW5kZXJzdGFuZCBpZiB3ZSByZWFs bHkgbmVlZCB0aGlzLg0KPiA+ID4gPiA+ID4gPiA+ID4gQXMgY3VycmVudCByZXNvdXJjZSBpcyBi b3VuZCB0byBwb3dlciBkb21haW5zLCBpZiBpdCdzDQo+ID4gPiA+ID4gPiA+ID4gPiBub3Qgb3du ZWQgYnkgb25lIHNwZWNpZmljIFNXIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCwNCj4gPiA+ID4gPiA+ ID4gPiA+IHBvd2VyIG9uIHdpbGwgYWxzbw0KPiA+ID4gPiBmYWlsLg0KPiA+ID4gPiA+ID4gPiA+ ID4gQ2FuIHlvdSBjbGFyaWZ5IGlmIGFueSBleGNlcHRpb25zPw0KPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ID4gVGhlcmUgd2lsbCBiZSBsb3RzIG9mIGZhaWx1cmVzIHdoZW4gYm9vdCBM aW51eCBkb211IGlmIG5vIGNoZWNrLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+IFdoYXQga2luZCBvZiBmZWF0dXJlcyBkaWQgeW91IG1lYW4/DQo+ID4gPiA+ ID4gPiA+IENvdWxkIHlvdSBjbGFyaWZ5IGEgYml0IG1vcmU/IEknZCBsaWtlIHRvIHVuZGVyc3Rh bmQgdGhpcyBpc3N1ZQ0KPiBiZXR0ZXIuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gV2hlbiBz dXBwb3J0aW5nIGh5cGVydmlzb3Igd2l0aCBkdWFsIExpbnV4IHJ1bm5pbmcsIDFzdCBMaW51eA0K PiA+ID4gPiA+ID4gYW5kIHRoZSAybmQgTGludXggd2lsbCBoYXZlIHRoZWlyIG93biBkZWRpY2F0 ZWQgcmVzb3VyY2VzLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IElmIG5vIHJlc291cmNlIGNo ZWNrLCB0aGF0IG1lYW5zIDFzdC8ybmQgTGludXggd2lsbCByZWdpc3Rlcg0KPiA+ID4gPiA+ID4g YWxsIHRoZSByZXNvdXJjZXMsIHRoZW4gYm90aCB3aWxsIHNlZSBmYWlsIGxvZ3Mgd2hlbiByZWdp c3Rlcg0KPiA+ID4gPiA+ID4gcmVzb3VyY2VzIG5vdCBvd25lZCB0bw0KPiA+ID4gPiA+IGl0c2Vs Zi4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBTYW1lIHRvIHBhcnRpdGlvbmVkIG00IGNhc2Uu DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gV291bGQgaXQgYmUgYmV0dGVyIHdpdGhvdXQgdGhl IGZhaWx1cmUgbG9nPw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IElzIGl0IHBv d2VyIHVwIGZhaWx1cmU/DQo+ID4gPiA+ID4gSWYgeWVzLCBpdCdzIGV4cGVjdGVkIGJlY2F1c2Ug d2UgYWN0dWFsbHkgdXNlIHBvd2VyIHVwIHRvIGNoZWNrDQo+ID4gPiA+ID4gaWYgcmVzb3VyY2Vz IGFyZSBvd25lZCBieSB0aGlzIHBhcnRpdGlvbi4gSXQgZnVuY3Rpb25zIHRoZSBzYW1lDQo+ID4g PiA+ID4gYXMgY2FsbGluZyByZXNvdXJjZSBjaGVjayBBUEkuDQo+ID4gPiA+ID4gVGhhdCdzIGN1 cnJlbnQgZGVzaWduLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT3IgaXQncyBvdGhlciBmYWlsdXJl cz8gTG9nPw0KPiA+ID4gPiBTb3JyeSBmb3IgbG9uZyBsYXRlIHJlcGx5Lg0KPiA+ID4gPg0KPiA+ ID4gPiBQYXJ0IG9mIG15IFhFTiBEb21VIGxvZywgdGhlcmUgYXJlIGxvdHMgb2YgZmFpbHVyZSBs b2cuIEkgdGhpbmsNCj4gPiA+ID4gYmV0dGVyIG5vdCBoYXZlIHN1Y2ggbG9ncyBieSBhZGQgYSBy ZXNvdXJjZSBvd24gY2hlY2suDQo+ID4gPg0KPiA+ID4gVGhvc2UgZXJyb3IgbG9ncyBhcmUgaW50 ZW5kZWQuDQo+ID4gPiBSZXNvdXJjZSBvd25lciBjaGVjayBhY3R1YWxseSBiZWhhdmVzIHRoZSBz YW1lIGFzIHBvd2VyIHVwLg0KPiA+DQo+ID4gSWYgcmVzb3VyY2UgaXMgbm90IG93bmVkLCBpdCB3 aWxsIG5vdCByZWdpc3RlciB0aGUgcG93ZXIgZG9tYWluLg0KPiA+DQo+ID4gV2l0aG91dCByZXNv dXJjZSBvd24gY2hlY2ssIGl0IHdpbGwgY29udGludWUgcmVnaXN0ZXIgdGhlIHBvd2VyIGRvbWFp bg0KPiA+IGFuZCBob29rIGl0IGludG8gZ2VucGQgbGlzdC4NCj4gPg0KPiANCj4gVGhhdCdzIHRo ZSBpbnRlbmRlZCBiZWhhdmlvciB0byBzYXZlIHRoZSByZXNvdXJjZSBvd25lciBjaGVja2luZyBh cyBpdCdzIHZlcnkNCj4gdGltZSBjb3N0IHRvIHNlbmQgU0NVIGNtZCBmb3IgZWFjaCBkb21haW4g ZHVyaW5nIGJvb3Rpbmcgd2hpY2ggYmVuZWZpdHMNCj4gbm90aGluZyBleGNlcHQgbm90IGV4cG9z aW5nIHRoZW0gaW4gZ2VucGQgbGlzdC4NCj4gDQo+ID4gSSBwcmVmZXIgd2Ugbm90IGV4cG9zZSB0 aGUgcG93ZXIgZG9tYWluIG5vdCBvd25lZCB0byBjdXJyZW50IHBhcnRpdGlvbg0KPiA+IGFuZCBr ZWVwIHRoZSBlcnIgbXNnIGZvciBwZW9wbGUgdG8gZWFzeSBzZWUgd2hlcmUgaXQgZ29lcyB3cm9u Zy4NCj4gDQo+IElmIHdlIHJlYWxseSB3YW50IHRvIHRvIGRvLCBJIHdvbmRlciBwcm9iYWJseSBh bm90aGVyIGJldHRlciBhcHByb2FjaCBpcw0KPiB0cnlpbmcgdG8gcmUtdXNlIHRoZSBwYXJ0aXRp b24gSW5mb3JtYXRpb24gYnVpbHQgYnkgYm9vdGxvYWRlciBhcyB1Ym9vdCBhbHJlYWR5DQo+IGRp ZCB0aGF0IG9uZSB0aW1lLCBub3QgbmVjZXNzYXJ5IHRvIHJlLWRvIEl0IGFnYWluIGZvciBrZXJu ZWwgYXMgaXQncyB0aW1lIGNvc3QuDQo+IGUuZy4gaW50cm9kdWNlIGEgcmVzb3VyY2UgcGFydGl0 aW9uIHByb3BlcnR5IGluIGR0IGFuZCBpbml0aWFsaXplZCBhbmQgcGFzc2VkIGJ5DQo+IGJvb3Rs b2FyZGVyIHRvIGtlcm5lbCB0byB1c2UgbGF0ZXIuDQoNClRoaXMgd2lsbCBub3Qgd29yayBmb3Ig aHlwZXJ2aXNvciBiYXNlZCBWTSBydW50aW1lIHBhcnRpdGlvbiBjcmVhdGUgYW5kIHJlc291cmNl DQphc3NpZ25tZW50Lg0KDQo+IFRoZW4gd2UgY2FuIHN0aWxsIHNhdmUgdGhvc2UgaHVnZSBudW1i ZXIgb2YgcmVzb3VyY2Ugb3duZXIgY2hlY2sgQ01Ecy4NCg0KU28gd2UgaGF2ZSB0byBsaXZlIHdp dGggdGhlbSBldmVuIEkgb25seSBuZWVkIG9uZSBTREhDIGZvciBhIFZNPyBXaXRoDQpzbyBtYW55 IGNsay1zY3UgZW50cmllcyBhbmQgcG93ZXIgZG9tYWluIGVudHJpZXMgdGhlcmUuDQoNClRoYW5r cywNClBlbmcuDQoNCj4gDQo+IFJlZ2FyZHMNCj4gQWlzaGVuZw0KPiANCj4gPg0KPiA+IFJlZ2Fy ZHMsDQo+ID4gUGVuZy4NCj4gPiA+IFNvIG5vdCBxdWl0ZSBuZWNlc3NhcnkgdG8gYWRkIGEgZG91 YmxlIGNoZWNrLg0KPiA+ID4gSWYgd2UncmUgY29uY2VybmluZyBhYm91dCB0aGUgZXJyb3IgbG9n LCB3ZSBjYW4gY2hhbmdlIGl0IHRvIGRldl9kYmcoKS4NCj4gPiA+DQo+ID4gPiBCVFcsIGFzIHJl c291cmNlIG1hbmFnZW1lbnQgd2lsbCBiZSBuZWVkZWQgYnkgc2VjbyBkcml2ZXJzIGxhdGVyLCBT bw0KPiA+ID4gSSB3aWxsIGNvbnRpbnVlIHRvIHJldmlldyB0aGUgcGF0Y2guDQo+ID4gPg0KPiA+ ID4gUmVnYXJkcw0KPiA+ID4gQWlzaGVuZw0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gWyAgICAy LjAzNDc3NF0gaW14NnEtcGNpZSA1ZjAwMDAwMC5wY2llOiAgICBJTw0KPiAweDZmZjgwMDAwLi4w eDZmZjhmZmZmDQo+ID4gLT4NCj4gPiA+ID4gMHgwMDAwMDAwMA0KPiA+ID4gPiBbICAgIDIuMDM0 ODAxXSBpbXg2cS1wY2llIDVmMDAwMDAwLnBjaWU6ICAgTUVNDQo+ID4gMHg2MDAwMDAwMC4uMHg2 ZmVmZmZmZg0KPiA+ID4gLT4NCj4gPiA+ID4gMHg2MDAwMDAwMA0KPiA+ID4gPiBbICAgIDIuMDM1 MDcyXSAgc2RoYzE6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAyNDkgcmV0IC0xMw0KPiA+ ID4gPiBbICAgIDIuMDM1NjE5XSAgc2RoYzI6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAy NTAgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDM2MTI2XSAgZW5ldDA6IGZhaWxlZCB0byBwb3dl ciB1cCByZXNvdXJjZSAyNTEgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDM2NTg0XSAgZW5ldDE6 IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAyNTIgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIu MDM3MDQwXSAgbWxiMDogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDI1MyByZXQgLTEzDQo+ ID4gPiA+IFsgICAgMi4wMzc0OTVdICBuYW5kOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2Ug MjY1IHJldCAtMTMNCj4gPiA+ID4gWyAgICAyLjAzNzk1MV0gIG5hbmQ6IGZhaWxlZCB0byBwb3dl ciB1cCByZXNvdXJjZSAyNjUgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDM4NDE2XSAgcHdtMDog ZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDE5MSByZXQgLTEzDQo+ID4gPiA+IFsgICAgMi4w Mzg4NjhdICBwd20xOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgMTkyIHJldCAtMTMNCj4g PiA+ID4gWyAgICAyLjAzOTMyMF0gIHB3bTI6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAx OTMgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDM5Nzg2XSAgcHdtMzogZmFpbGVkIHRvIHBvd2Vy IHVwIHJlc291cmNlIDE5NCByZXQgLTEzDQo+ID4gPiA+IFsgICAgMi4wNDAyMzldICBwd200OiBm YWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgMTk1IHJldCAtMTMNCj4gPiA+ID4gWyAgICAyLjA0 MDY5Ml0gIHB3bTU6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAxOTYgcmV0IC0xMw0KPiA+ ID4gPiBbICAgIDIuMDQxMTQyXSAgcHdtNjogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDE5 NyByZXQgLTEzDQo+ID4gPiA+IFsgICAgMi4wNDE1OTZdICBwd203OiBmYWlsZWQgdG8gcG93ZXIg dXAgcmVzb3VyY2UgMTk4IHJldCAtMTMNCj4gPiA+ID4gWyAgICAyLjA0MjA3M10gIGFtaXg6IGZh aWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSA0NTggcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDQy NTU4XSAgbHBzcGkwOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgNTMgcmV0IC0xMw0KPiA+ ID4gPiBbICAgIDIuMDQzMDMzXSAgbHBzcGkxOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2Ug NTQgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDQzNTAxXSAgbHBzcGkyOiBmYWlsZWQgdG8gcG93 ZXIgdXAgcmVzb3VyY2UgNTUgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDQzOTkyXSAgbHBzcGkz OiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgNTYgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIu MDQ0NDYwXSAgbHB1YXJ0MDogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDU3IHJldCAtMTMN Cj4gPiA+ID4gWyAgICAyLjA0NDkzNV0gIGxwdWFydDI6IGZhaWxlZCB0byBwb3dlciB1cCByZXNv dXJjZSA1OSByZXQgLTEzDQo+ID4gPiA+IFsgICAgMi4wNDU0MDldICBscHVhcnQzOiBmYWlsZWQg dG8gcG93ZXIgdXAgcmVzb3VyY2UgNjAgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDU1MDE0XSAg c2ltMDogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDYyIHJldCAtMTMNCj4gPiA+ID4gWyAg ICAyLjA1NTUxMF0gIGFkYzA6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAxMDEgcmV0IC0x Mw0KPiA+ID4gPiBbICAgIDIuMDU2NDY3XSAgbHBpMmMwOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVz b3VyY2UgOTYgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDU2OTQ2XSAgbHBpMmMxOiBmYWlsZWQg dG8gcG93ZXIgdXAgcmVzb3VyY2UgOTcgcmV0IC0xMw0KPiA+ID4gPiBbICAgIDIuMDU3NDI0XSAg bHBpMmMyOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgOTggcmV0IC0xMw0KPiA+ID4gPiBb ICAgIDIuMDU3ODk4XSAgbHBpMmMzOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgOTkgcmV0 IC0xMw0KPiA+ID4gPiBbICAgIDIuMDU4MzcxXSAgY2FuMDogZmFpbGVkIHRvIHBvd2VyIHVwIHJl c291cmNlIDEwNSByZXQgLTEzDQo+ID4gPiA+IFsgICAgMi4wNTkyODldICBjYW4xOiBmYWlsZWQg dG8gcG93ZXIgdXAgcmVzb3VyY2UgMTA2IHJldCAtMTMNCj4gPiA+ID4gWyAgICAyLjA1OTgwMV0g IGNhbjI6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAxMDcgcmV0IC0xMw0KPiA+ID4gPiBb ICAgIDIuMDYwMjgxXSAgbmFuZDogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDI2NSByZXQg LTEzDQo+ID4gPiA+IFsgICAgMi4wNjI3NjRdIGRwdS1jb3JlIDU2MTgwMDAwLmRwdTogZHJpdmVy IHByb2JlZA0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+IFBlbmcuDQo+ID4gPiA+ DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBSZWdhcmRzDQo+ID4gPiA+ID4gQWlzaGVuZw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+ID4gPiBQZW5nLg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFJlZ2FyZHMNCj4gPiA+ ID4gPiA+ID4gQWlzaGVuZw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRoYW5rcywN Cj4gPiA+ID4gPiA+ID4gPiBQZW5nLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ID4gUmVnYXJkcw0KPiA+ID4gPiA+ID4gPiA+ID4gQWlzaGVuZw0K PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICBkcml2ZXJzL2Zpcm13YXJlL2lteC9NYWtlZmlsZSAgICAgICB8ICAyICstDQo+ID4g PiA+ID4gPiA+ID4gPiA+ICBkcml2ZXJzL2Zpcm13YXJlL2lteC9ybS5jICAgICAgICAgICB8IDQw DQo+ID4gPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ID4gPiA+ID4g PiAgaW5jbHVkZS9saW51eC9maXJtd2FyZS9pbXgvc2NpLmggICAgfCAgMSArDQo+ID4gPiA+ID4g PiA+ID4gPiA+ICBpbmNsdWRlL2xpbnV4L2Zpcm13YXJlL2lteC9zdmMvcm0uaCB8IDY5DQo+ID4g PiA+ID4gPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4g PiA+ID4gPiA+ID4gPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gY3JlYXRlIG1vZGUNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gMTAwNjQ0IGRyaXZlcnMvZmlybXdhcmUvaW14L3JtLmMgIGNyZWF0ZSBtb2RlIDEw MDY0NA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpbmNsdWRlL2xpbnV4L2Zpcm13YXJlL2lteC9zdmMv cm0uaA0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9maXJtd2FyZS9pbXgvTWFrZWZpbGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYi9k cml2ZXJzL2Zpcm13YXJlL2lteC9NYWtlZmlsZSBpbmRleA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAw OGJjOWRkZmJkZmIuLjE3ZWEzNjEzZTE0Mg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAxMDA2NDQNCj4g PiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9maXJtd2FyZS9pbXgvTWFrZWZpbGUNCj4g PiA+ID4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9maXJtd2FyZS9pbXgvTWFrZWZpbGUNCj4g PiA+ID4gPiA+ID4gPiA+ID4gQEAgLTEsNCArMSw0IEBADQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAj IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICBv YmotJChDT05GSUdfSU1YX0RTUCkJCSs9IGlteC1kc3Aubw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAt b2JqLSQoQ09ORklHX0lNWF9TQ1UpCQkrPSBpbXgtc2N1Lm8gbWlzYy5vDQo+ID4gaW14LXNjdS1p cnEubw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArb2JqLSQoQ09ORklHX0lNWF9TQ1UpCQkrPSBpbXgt c2N1Lm8gbWlzYy5vDQo+ID4gPiBpbXgtc2N1LWlycS5vDQo+ID4gPiA+ID4gcm0ubw0KPiA+ID4g PiA+ID4gPiA+ID4gPiAgb2JqLSQoQ09ORklHX0lNWF9TQ1VfUEQpCSs9IHNjdS1wZC5vDQo+ID4g PiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL2lteC9ybS5jDQo+ ID4gPiA+ID4gPiA+ID4gPiA+IGIvZHJpdmVycy9maXJtd2FyZS9pbXgvcm0uYyBuZXcgZmlsZSBt b2RlIDEwMDY0NCBpbmRleA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAwMDAwMDAwMDAwMDAuLjdiMDMz NGRlNTQ4Ng0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsrKyBiL2RyaXZlcnMvZmlybXdhcmUvaW14L3JtLmMNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gQEAgLTAsMCArMSw0MCBAQA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArLy8gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsvKg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArICogQ29weXJpZ2h0IDIwMjAgTlhQDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsg Kg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICogRmlsZSBjb250YWluaW5nIGNsaWVudC1zaWRlIFJQ QyBmdW5jdGlvbnMgZm9yIHRoZSBSTQ0KPiBzZXJ2aWNlLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAr VGhlc2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAqIGZ1bmN0aW9uIGFyZSBwb3J0ZWQgdG8gY2xp ZW50cyB0aGF0IGNvbW11bmljYXRlIHRvIHRoZSBTQy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAq Lw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8 bGludXgvZmlybXdhcmUvaW14L3N2Yy9ybS5oPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiA+ID4gPiA+ICtzdHJ1Y3QgaW14X3NjX21zZ19ybV9yc3JjX293bmVkIHsNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgaW14X3NjX3JwY19tc2cgaGRyOw0KPiA+ID4gPiA+ID4g PiA+ID4gPiArCXUxNiByZXNvdXJjZTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gK30gX19wYWNrZWQg X19hbGlnbmVkKDQpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsvKg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICogVGhpcyBmdW5jdGlvbiBjaGVjayBAcmVzb3Vy Y2UgaXMgb3duZWQgYnkgY3VycmVudA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArcGFydGl0aW9uIG9y IG5vdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAqIEBw YXJhbVtpbl0gICAgIGlwYyAgICAgICAgIElQQyBoYW5kbGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4g KyAqIEBwYXJhbVtpbl0gICAgIHJlc291cmNlICAgIHJlc291cmNlIHRoZSBjb250cm9sIGlzDQo+ ID4gPiA+ID4gYXNzb2NpYXRlZA0KPiA+ID4gPiA+ID4gPiB3aXRoDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsgKg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICogQHJldHVybiBSZXR1cm5zIDAgZm9yIHN1 Y2Nlc3MgYW5kIDwgMCBmb3IgZXJyb3JzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICovDQo+ID4g PiA+ID4gPiA+ID4gPiA+ICtib29sIGlteF9zY19ybV9pc19yZXNvdXJjZV9vd25lZChzdHJ1Y3Qg aW14X3NjX2lwYw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArKmlwYywNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gK3UxNg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArcmVzb3VyY2UpIHsNCj4gPiA+ID4gPiA+ID4g PiA+ID4gKwlzdHJ1Y3QgaW14X3NjX21zZ19ybV9yc3JjX293bmVkIG1zZzsNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gKwlzdHJ1Y3QgaW14X3NjX3JwY19tc2cgKmhkciA9ICZtc2cuaGRyOw0KPiA+ID4g PiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJaGRyLT52ZXIgPSBJTVhfU0Nf UlBDX1ZFUlNJT047DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJaGRyLT5zdmMgPSBJTVhfU0NfUlBD X1NWQ19STTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwloZHItPmZ1bmMgPSBJTVhfU0NfUk1fRlVO Q19JU19SRVNPVVJDRV9PV05FRDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwloZHItPnNpemUgPSAy Ow0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJbXNnLnJlc291 cmNlID0gcmVzb3VyY2U7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKwlpbXhfc2N1X2NhbGxfcnBjKGlwYywgJm1zZywgdHJ1ZSk7DQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlyZXR1cm4gaGRyLT5mdW5jOw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiArRVhQT1JUX1NZTUJPTChpbXhfc2Nf cm1faXNfcmVzb3VyY2Vfb3duZWQpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC9maXJtd2FyZS9pbXgvc2NpLmgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYi9p bmNsdWRlL2xpbnV4L2Zpcm13YXJlL2lteC9zY2kuaA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpbmRl eCAxN2JhNGU0MDUxMjkuLmI1YzVhNTZmMjliZSAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gPiA+ID4g LS0tIGEvaW5jbHVkZS9saW51eC9maXJtd2FyZS9pbXgvc2NpLmgNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKysrIGIvaW5jbHVkZS9saW51eC9maXJtd2FyZS9pbXgvc2NpLmgNCj4gPiA+ID4gPiA+ID4g PiA+ID4gQEAgLTE1LDYgKzE1LDcgQEANCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS9pbXgvc3ZjL21pc2MuaD4gICNpbmNs dWRlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IDxsaW51eC9maXJtd2FyZS9pbXgvc3ZjL3BtLmg+DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvZmlybXdhcmUvaW14L3N2Yy9ybS5o Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgaW50IGlteF9zY3Vf ZW5hYmxlX2dlbmVyYWxfaXJxX2NoYW5uZWwoc3RydWN0IGRldmljZQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPiAqZGV2KTsgaW50IGlteF9zY3VfaXJxX3JlZ2lzdGVyX25vdGlmaWVyKHN0cnVjdA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiBub3RpZmllcl9ibG9jayAqbmIpOyBkaWZmIC0tZ2l0DQo+ID4gPiA+ ID4gPiA+ID4gPiA+IGEvaW5jbHVkZS9saW51eC9maXJtd2FyZS9pbXgvc3ZjL3JtLmgNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gYi9pbmNsdWRlL2xpbnV4L2Zpcm13YXJlL2lteC9zdmMvcm0uaA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+ID4g PiBpbmRleCAwMDAwMDAwMDAwMDAuLmZjNmVhNjJkOWQwZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAt LS0gL2Rldi9udWxsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvZmly bXdhcmUvaW14L3N2Yy9ybS5oDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsNjkgQEAN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w KyAqLw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArLyoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAqIENv cHlyaWdodCAoQykgMjAxNiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArICogQ29weXJpZ2h0IDIwMTctMjAxOSBOWFANCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKyAqDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBIZWFkZXIgZmlsZSBjb250YWluaW5nIHRo ZSBwdWJsaWMgQVBJIGZvciB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gK1N5c3RlbSBDb250cm9s bGVyDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsoU0MpDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBQ b3dlciBNYW5hZ2VtZW50IChQTSkgZnVuY3Rpb24uIFRoaXMgaW5jbHVkZXMNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gK2Z1bmN0aW9ucyBmb3IgcG93ZXIgc3RhdGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4g KyAqIGNvbnRyb2wsIGNsb2NrIGNvbnRyb2wsIHJlc2V0IGNvbnRyb2wsIGFuZCB3YWtlLXVwDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICtldmVudA0KPiA+ID4gY29udHJvbC4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gKyAqDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBSTV9TVkMgKFNWQykgUmVzb3VyY2Ug TWFuYWdlbWVudCBTZXJ2aWNlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ID4g PiA+ID4gPiArICogTW9kdWxlIGZvciB0aGUgUmVzb3VyY2UgTWFuYWdlbWVudCAoUk0pIHNlcnZp Y2UuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiArI2lmbmRlZiBfU0NfUk1fQVBJX0gNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKyNkZWZpbmUgX1NDX1JNX0FQSV9IDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS9pbXgvc2NpLmg+DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKy8qDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsgKiBUaGlzIHR5cGUgaXMgdXNlZCB0byBpbmRpY2F0ZSBSUEMgUk0gZnVuY3Rpb24gY2Fs bHMuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gK2VudW0g aW14X3NjX3JtX2Z1bmMgew0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX1VO S05PV04gPSAwLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX1BBUlRJVElP Tl9BTExPQyA9IDEsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfU0VUX0NP TkZJREVOVElBTCA9IDMxLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX1BB UlRJVElPTl9GUkVFID0gMiwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19H RVRfRElEID0gMjYsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfUEFSVElU SU9OX1NUQVRJQyA9IDMsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfUEFS VElUSU9OX0xPQ0sgPSA0LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0dF VF9QQVJUSVRJT04gPSA1LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX1NF VF9QQVJFTlQgPSA2LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX01PVkVf QUxMID0gNywNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19BU1NJR05fUkVT T1VSQ0UgPSA4LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX1NFVF9SRVNP VVJDRV9NT1ZBQkxFID0gOSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19T RVRfU1VCU1lTX1JTUkNfTU9WQUJMRSA9IDI4LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9T Q19STV9GVU5DX1NFVF9NQVNURVJfQVRUUklCVVRFUyA9IDEwLA0KPiA+ID4gPiA+ID4gPiA+ID4g PiArCUlNWF9TQ19STV9GVU5DX1NFVF9NQVNURVJfU0lEID0gMTEsDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsJSU1YX1NDX1JNX0ZVTkNfU0VUX1BFUklQSEVSQUxfUEVSTUlTU0lPTlMgPQ0KPiAxMiwN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19JU19SRVNPVVJDRV9PV05FRCA9 IDEzLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0dFVF9SRVNPVVJDRV9P V05FUiA9IDMzLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0lTX1JFU09V UkNFX01BU1RFUiA9IDE0LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0lT X1JFU09VUkNFX1BFUklQSEVSQUwgPSAxNSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0Nf Uk1fRlVOQ19HRVRfUkVTT1VSQ0VfSU5GTyA9IDE2LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlN WF9TQ19STV9GVU5DX01FTVJFR19BTExPQyA9IDE3LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlN WF9TQ19STV9GVU5DX01FTVJFR19TUExJVCA9IDI5LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlN WF9TQ19STV9GVU5DX01FTVJFR19GUkFHID0gMzIsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1Y X1NDX1JNX0ZVTkNfTUVNUkVHX0ZSRUUgPSAxOCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhf U0NfUk1fRlVOQ19GSU5EX01FTVJFRyA9IDMwLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9T Q19STV9GVU5DX0FTU0lHTl9NRU1SRUcgPSAxOSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhf U0NfUk1fRlVOQ19TRVRfTUVNUkVHX1BFUk1JU1NJT05TID0gMjAsDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsJSU1YX1NDX1JNX0ZVTkNfSVNfTUVNUkVHX09XTkVEID0gMjEsDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfR0VUX01FTVJFR19JTkZPID0gMjIsDQo+ID4gPiA+ID4g PiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfQVNTSUdOX1BBRCA9IDIzLA0KPiA+ID4gPiA+ID4g PiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX1NFVF9QQURfTU9WQUJMRSA9IDI0LA0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0lTX1BBRF9PV05FRCA9IDI1LA0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0RVTVAgPSAyNywgfTsNCj4gPiA+ID4gPiA+ID4g PiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArI2lmIElTX0VOQUJMRUQoQ09ORklHX0lNWF9T Q1UpIGJvb2wNCj4gPiA+ID4gPiA+ID4gPiA+ID4gK2lteF9zY19ybV9pc19yZXNvdXJjZV9vd25l ZChzdHJ1Y3QgaW14X3NjX2lwYyAqaXBjLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArdTE2IHJlc291 cmNlKTsgI2Vsc2Ugc3RhdGljIGlubGluZSBib29sDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICtpbXhf c2Nfcm1faXNfcmVzb3VyY2Vfb3duZWQoc3RydWN0IGlteF9zY19pcGMgKmlwYywNCj4gPiA+ID4g PiA+ID4gPiA+ID4gK3UxNg0KPiA+ID4gPiA+IHJlc291cmNlKSB7DQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsJcmV0dXJuIHRydWU7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsjZW5kaWYNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyNlbmRpZg0KPiA+ID4gPiA+ID4g PiA+ID4gPiAtLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAyLjE2LjQNCg0K