From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8B5E2A0C4C; Wed, 11 Aug 2021 04:26:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 71EA94067A; Wed, 11 Aug 2021 04:26:29 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 4496E40150 for ; Wed, 11 Aug 2021 04:26:27 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10072"; a="214769445" X-IronPort-AV: E=Sophos;i="5.84,311,1620716400"; d="scan'208";a="214769445" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Aug 2021 19:26:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,311,1620716400"; d="scan'208";a="422024946" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga003.jf.intel.com with ESMTP; 10 Aug 2021 19:26:23 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Tue, 10 Aug 2021 19:26:22 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Tue, 10 Aug 2021 19:26:22 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Tue, 10 Aug 2021 19:26:22 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.175) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Tue, 10 Aug 2021 19:26:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gkfL2IhUwHIF0IwMP9ok9Yc/VmoyhB35UDU5tZchksxnpQ58+qscdREZr6Ju3ZH6Vvkcqj0cGcDgJhzNplD4K32XW33Qhh644Z4wKmEwhqL9LyzI83YT7svUXri7R1uoKrUyc0kntPPCFkZ+fTvZWmzUNAehslml7E8WAu25hsY1zrbEOTuVQIWNTQzu0YiVrJ6mp1LD6hYra8ai7RVh9C/s+KLWoTOQoBTUT6crlruPZh2NGgZjjJoOWf3pznc5GmlpNYHkZVG1HEC2DLD/BGpICaTSFO4ggFUYzEG/j51vyOOCJK2wWxjvmlu/8GH5iiYejnkKW6kZX4ANMzREXw== 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=6T2vilP12D2L6geLB6VAO1vHAIMTX5R4Tp3dQT0PUZo=; b=HyRt2hwGlpkGH1aTjdBzCOrq073nid7umFRYAmzYY7JhowAKoPJOScPEtMmD90/MbRAjl2xueW349MpX3MYPMHfW6KbFdncAd0Werg1iOx5EKCocUu5npDyxUZ0gv4Yz2ceWnAS6RZ5111lrBc0WDJE3v0TRRoarsy6NYNgT0bVexcDC4dwr9F2VYyb25fpxf0NhlF6o0R7e3Z5YUifyg66p375fCP4wLKjc4svPbOOcmPXWrPS6Cvvg29QdN+YZ8bLzo/3aBtjhR/P6LzyTIByplMqnFO0B057P4tkPn+Ll/+JfnhY9AopO9j0FPTreU95E37jp7DZMKl6jeumxNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6T2vilP12D2L6geLB6VAO1vHAIMTX5R4Tp3dQT0PUZo=; b=JQ6IVPwJyXulKrCQU1kSQhhHthVKyfcLN/t3WO6YT3gSEZsoz+O6sqkVnwcdpmzehei7OyqkRP21p9ZgoL9hNqFBNMcEIFM3Olbg0PT294V5qQifCms6+SpOtmCCMNGZb1r5rid6Er1S0l191xyOv2kcHyiC1Z148zxtjROiggo= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3551.namprd11.prod.outlook.com (2603:10b6:208:ea::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.17; Wed, 11 Aug 2021 02:26:20 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::d447:3a7a:aad7:4d32]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::d447:3a7a:aad7:4d32%7]) with mapi id 15.20.4394.023; Wed, 11 Aug 2021 02:26:20 +0000 From: "Xia, Chenbo" To: Vijay Srivastava , "dev@dpdk.org" CC: "maxime.coquelin@redhat.com" , "andrew.rybchenko@oktetlabs.ru" , "Vijay Kumar Srivastava" Thread-Topic: [PATCH 01/10] vdpa/sfc: introduce Xilinx vDPA driver Thread-Index: AQHXcoZrDQSPVctU9UGdCvCquWfWGqtM1PcA Date: Wed, 11 Aug 2021 02:26:20 +0000 Message-ID: References: <20210706164418.32615-1-vsrivast@xilinx.com> <20210706164418.32615-2-vsrivast@xilinx.com> In-Reply-To: <20210706164418.32615-2-vsrivast@xilinx.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: xilinx.com; dkim=none (message not signed) header.d=none;xilinx.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4fb2804b-d99b-431b-d16f-08d95c6f67fb x-ms-traffictypediagnostic: MN2PR11MB3551: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2276; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6dpeOeRINVgolu2Hv97NUm4YQ39Wu8hcS4vQHRq3vX6X+1sbLpa//CHmY/8y49ExM9N7SBpvzZXi5aYi3YU/ubPMrDbR5/kb37cBI919JVtYFM874UkAiEAJh5WfyXpY1SV5ZPtk3X0pIAemt/E6vL1fRHxFX6CF9T85EhOm11DUju+h5z7pMRynT3xg50MyoKJzu0pzfGfzidXffhJpEDNRkJEk5LVgZsC6OFUkHW3vQXWZB8ZEgi0dTBJ2UnKnRVZBwSIZo0WvKQQOIrJvlsaSbTlWcNYKph21PrP7lUQmqAfttcy+fzCtbB1s9/E58nIXPq1J4F7rYF44n4OssD46HSVv696RsNjGNIbUDtjmEx66aEPS2DJNzDAPq1RsYlNlKHw5xCYTuj3hsu2vo7rlcaQ7/cX+XKg8hNUWqPoLZpRrx/iL3l9RH54tnypvd7jjFYgXmRnBR9BoN+OTb5uIes6CrZ/WMO8gbaZdJNbYm45B7BSqf8SFXjHk+RQDTMAOJGu/gHdrJiq0YFknblnZLJGWPBXYvH9jmbc3LH+4u+XO9PnHkpiUg3Y7/MA+vh9+9G3/gP0Z+59POW4Qvx7KvVaU2IL1jZb4j6LjYv7YQ86ln6VrC6oMBYUkh/DwaC8rrCsceHXQhG/2jUX6+BAdc+QwZ4cY1fTCq3WWjKs9VAx6O1bBKGjWFeHzDpp+/JcCxMACjX0p3WVAYF01NDMX+D+jQYMJCkyEw/tepNe7DdO/BXnpZHpFPcEX/QOGDKrwXJFmKWZxmSoy3EepcwLN2UBgE+cmcdz3f2CV9WtYQh5hoxxIBSmj0ifT1teYVty8JMwBliifnMEtBh7QcO05g+LOeEdIioc4cIM8gow= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(366004)(346002)(136003)(39860400002)(396003)(2906002)(66476007)(66946007)(26005)(8936002)(7696005)(186003)(66556008)(76116006)(9686003)(33656002)(55016002)(52536014)(64756008)(38070700005)(66446008)(6506007)(5660300002)(122000001)(478600001)(71200400001)(38100700002)(53546011)(316002)(966005)(4326008)(86362001)(110136005)(54906003)(30864003)(83380400001)(8676002)(21314003)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Qlc2NTFveUlmbUJVcS9xc0Zka21FeUVnaS9WNmowVlJoRE5YOWJBcVdQTEEr?= =?utf-8?B?eEZKNzRlV0QrbVFxMzNMU2ppS29rUFpDK2hwNGYwOC9vd0dhaTNKZ3p6Z1hQ?= =?utf-8?B?OHZtTW0zcklHSXVDblh3aHllNVk5NEpwbGhLUFZzaDY1L21EVEZ1c1JFY3NW?= =?utf-8?B?UklZRE0zcTVObWs1eCt4NzlDM3ZzdUZTQTZwcVhIR3pabVdaZm5yakJXbllp?= =?utf-8?B?ckhBM0hCL2FsUTNWVUJPbVJUV0lXc1ZwUkVrWFcra0tJUkgvNnUyK212YTRu?= =?utf-8?B?Szd6VEt0eE1BOXJHRmJkU2NOdEFiVjkzdDBKTFVFNThuTEszU3p5ZTV0NjBB?= =?utf-8?B?ME1XbENnaXZSajJJSUZZNXNDeFZqMVVON3FOVUw1dm9VZDRFMmJsRDBYaGdE?= =?utf-8?B?a2ZMbU1oelRDWENyRk9rNndKQXhITWFqMnduejk2WU45Vm83cHRmSy9VM3Ju?= =?utf-8?B?MVZwT0hGdTV1WjQ5T0JuVytXcTF5Zm5wTnlHTUZ6TlNWTldoU0pDa2hSMG9z?= =?utf-8?B?S01VaHlkWG9hRmc0blZKbTRTTFZpTC9wRTdpblhsMVdpNHFETWZPZ3BjRk05?= =?utf-8?B?TFI3a04yQitCVU1qOGtNOFYvbU5HNlNacEtrS1FveVZOVXVWK3NkYXVFTGVS?= =?utf-8?B?cTdKTGJkaHJkeEhGNjg3RDNicEJtank3NVdKTjU5Z2ErT2o4WHNINVZXdnIr?= =?utf-8?B?QTlYK005MC8wcTY3WmR1emFNRFhsTDBpWmpqbFBvZERiMDNld01NUG1pY2h0?= =?utf-8?B?aDVTU01VQXhqUjdjTGUzamVXRktDNTVWVVBaV3crN1NVZWlMVnd1ckFlTElD?= =?utf-8?B?d2twaHl6M1ZUS1BISndXSGQ2RE00WEhZUC94WURxTG44VU9FelVlZHJPTFNy?= =?utf-8?B?T3FORHJSMmx5YWROcVVRVHJ6eW51UkdKMUJTWGJzeVQwTTMvWWN1UUdPNHFL?= =?utf-8?B?WVovcGFqWTBHbDhxS1FMeU5UQStDRWNoVkVPMUxqRDIzelpHZjcrd2pCYnVa?= =?utf-8?B?SjhhSzhTOUZQVGRmcXh1d1Rxc1ZOZi95aFZoZmhEcHNpMnhuZ0ZiUHYxRW5D?= =?utf-8?B?UUJ2M0FXM3l3TjhwbWduQUt4NFBvWXUvQWd0cTZsMFFFazBwZG5mTExzWFJq?= =?utf-8?B?SUFBdy9ERDlGS1kyQzVxam10Slo0ejRKU2U3MDFWekpvd0lJb0g5Qlh0d3lD?= =?utf-8?B?M0tnOG5CeWt0RWk5U2Jscko2Skk1by80cVdZVDNyWnRMcVpNdXZTUmJjVElW?= =?utf-8?B?aEZvSE1QYkx2Q1J4bGpMVndEb015WElqVmc5YzFyeEViQzdJOW5jbVMzUU9y?= =?utf-8?B?REhTeXArcHV2VlNvQ0RMTElScDFweTFNazhUdlZuS1BsWlNyTmt4NDJXQ3JX?= =?utf-8?B?WTZSMFFCMTNyYjdHekF4aE0yU3NHbTdnTW4wZWtSZXJmMFYxaERKeGN5Y2NT?= =?utf-8?B?NDJJZ1dtU2w0WjlCMGJpZnRWdmZSblFic3lDQkhYU3lIYStYVGNBcUg0bzNk?= =?utf-8?B?OUZGK2lFQlJsUitUMmhLL1lvVFk2OWpRbjBxSmNjQkJJd28yL2ZHVVR0YjVB?= =?utf-8?B?bm9ldHl4NGxGNjFKbzFLbmhjTzBEZW5mKzQwVFc0bVJVeXA3ejYzSjUwV1pY?= =?utf-8?B?UnRQdnUwVXhlZ1J4OVZSRzdUdVpRb1U3dnBWWGZRL2JaM2lkdjVlWHp1MWhP?= =?utf-8?B?SngraCs4cldjVWo3T3BuL1JYbmU1UE13Ui9oTnVKS2ZJVFBLQTJoNWw2Wlht?= =?utf-8?Q?42pGBXkMyP18BUW401cjiA7EGAhw0qbkJFbGRHE?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4fb2804b-d99b-431b-d16f-08d95c6f67fb X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2021 02:26:20.3658 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: L3k/IP3iTRKfKczbPNbxsB8jDcHyp40FjW5OZkYFBHtzcVWd04ypIycDsSEJ48BNd1ncx0tvhZQOAAVbrsH2Xg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3551 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 01/10] vdpa/sfc: introduce Xilinx vDPA driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgVmlqYXksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVmlqYXkg U3JpdmFzdGF2YSA8dmlqYXkuc3JpdmFzdGF2YUB4aWxpbnguY29tPg0KPiBTZW50OiBXZWRuZXNk YXksIEp1bHkgNywgMjAyMSAxMjo0NCBBTQ0KPiBUbzogZGV2QGRwZGsub3JnDQo+IENjOiBtYXhp bWUuY29xdWVsaW5AcmVkaGF0LmNvbTsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29t PjsNCj4gYW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU7IFZpamF5IEt1bWFyIFNyaXZhc3Rh dmEgPHZzcml2YXN0QHhpbGlueC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCAwMS8xMF0gdmRwYS9z ZmM6IGludHJvZHVjZSBYaWxpbnggdkRQQSBkcml2ZXINCj4gDQo+IEZyb206IFZpamF5IEt1bWFy IFNyaXZhc3RhdmEgPHZzcml2YXN0QHhpbGlueC5jb20+DQo+IA0KPiBBZGQgbmV3IHZEUEEgUE1E IHRvIHN1cHBvcnQgdkRQQSBvcGVyYXRpb24gYnkgWGlsaW54IGRldmljZXMuDQoNCnZEUEEgb3Bl cmF0aW9ucyBvZiBYaWxpbnggZGV2aWNlcw0KDQo+IFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBwcm9i ZSBhbmQgcmVtb3ZlIGZ1bmN0aW9ucy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFZpamF5IEt1bWFy IFNyaXZhc3RhdmEgPHZzcml2YXN0QHhpbGlueC5jb20+DQo+IC0tLQ0KPiAgTUFJTlRBSU5FUlMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKw0KPiAgZG9jL2d1aWRlcy9yZWxfbm90 ZXMvcmVsZWFzZV8yMV8wOC5yc3QgfCAgIDUgKw0KPiAgZG9jL2d1aWRlcy92ZHBhZGV2cy9mZWF0 dXJlcy9zZmMuaW5pICAgfCAgIDkgKysNCj4gIGRvYy9ndWlkZXMvdmRwYWRldnMvc2ZjLnJzdCAg ICAgICAgICAgIHwgIDk3ICsrKysrKysrKysrDQo+ICBkcml2ZXJzL3ZkcGEvbWVzb24uYnVpbGQg ICAgICAgICAgICAgICB8ICAgMSArDQo+ICBkcml2ZXJzL3ZkcGEvc2ZjL21lc29uLmJ1aWxkICAg ICAgICAgICB8ICAzMyArKysrDQo+ICBkcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhLmMgICAgICAg ICAgICB8IDI4Ng0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGRyaXZl cnMvdmRwYS9zZmMvc2ZjX3ZkcGEuaCAgICAgICAgICAgIHwgIDQwICsrKysrDQo+ICBkcml2ZXJz L3ZkcGEvc2ZjL3NmY192ZHBhX2xvZy5oICAgICAgICB8ICA3NyArKysrKysrKysNCj4gIGRyaXZl cnMvdmRwYS9zZmMvdmVyc2lvbi5tYXAgICAgICAgICAgIHwgICAzICsNCj4gIDEwIGZpbGVzIGNo YW5nZWQsIDU1NyBpbnNlcnRpb25zKCspDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL2d1aWRl cy92ZHBhZGV2cy9mZWF0dXJlcy9zZmMuaW5pDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL2d1 aWRlcy92ZHBhZGV2cy9zZmMucnN0DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy92ZHBh L3NmYy9tZXNvbi5idWlsZA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdmRwYS9zZmMv c2ZjX3ZkcGEuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdmRwYS9zZmMvc2ZjX3Zk cGEuaA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGFfbG9n LmgNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3ZkcGEvc2ZjL3ZlcnNpb24ubWFwDQo+ IA0KPiBkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUw0KPiBpbmRleCA1ODc3 YTE2Li5jY2MwYTJhIDEwMDY0NA0KPiAtLS0gYS9NQUlOVEFJTkVSUw0KPiArKysgYi9NQUlOVEFJ TkVSUw0KPiBAQCAtMTE5Nyw2ICsxMTk3LDEyIEBAIEY6IGRyaXZlcnMvdmRwYS9tbHg1Lw0KPiAg RjogZG9jL2d1aWRlcy92ZHBhZGV2cy9tbHg1LnJzdA0KPiAgRjogZG9jL2d1aWRlcy92ZHBhZGV2 cy9mZWF0dXJlcy9tbHg1LmluaQ0KPiANCj4gK1hpbGlueCBzZmMgdkRQQQ0KPiArTTogVmlqYXkg S3VtYXIgU3JpdmFzdGF2YSA8dnNyaXZhc3RAeGlsaW54LmNvbT4NCj4gK0Y6IGRyaXZlcnMvdmRw YS9zZmMvDQo+ICtGOiBkb2MvZ3VpZGVzL3ZkcGFkZXZzL3NmYy5yc3QNCj4gK0Y6IGRvYy9ndWlk ZXMvdmRwYWRldnMvZmVhdHVyZXMvc2ZjLmluaQ0KPiArDQo+IA0KPiAgRXZlbnRkZXYgRHJpdmVy cw0KPiAgLS0tLS0tLS0tLS0tLS0tLQ0KPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9yZWxfbm90 ZXMvcmVsZWFzZV8yMV8wOC5yc3QNCj4gYi9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIx XzA4LnJzdA0KPiBpbmRleCBhNmVjZmRmLi5iYjlhYTgzIDEwMDY0NA0KPiAtLS0gYS9kb2MvZ3Vp ZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIxXzA4LnJzdA0KPiArKysgYi9kb2MvZ3VpZGVzL3JlbF9u b3Rlcy9yZWxlYXNlXzIxXzA4LnJzdA0KPiBAQCAtNTUsNiArNTUsMTEgQEAgTmV3IEZlYXR1cmVz DQo+ICAgICAgIEFsc28sIG1ha2Ugc3VyZSB0byBzdGFydCB0aGUgYWN0dWFsIHRleHQgYXQgdGhl IG1hcmdpbi4NCj4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KPiANCj4gKyogKipBZGQgbmV3IHZEUEEgUE1EIGJhc2VkIG9uIFhp bGlueCBkZXZpY2VzLioqDQo+ICsNCj4gKyAgQWRkZWQgYSBuZXcgWGlsaW54IHZEUEEgIChgYHNm Y192ZHBhYGApIFBNRC4NCj4gKyAgU2VlIHRoZSA6ZG9jOmAuLi92ZHBhZGV2cy9zZmNgIGd1aWRl IGZvciBtb3JlIGRldGFpbHMgb24gdGhpcyBkcml2ZXIuDQo+ICsNCj4gDQo+ICBSZW1vdmVkIEl0 ZW1zDQo+ICAtLS0tLS0tLS0tLS0tDQo+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3ZkcGFkZXZz L2ZlYXR1cmVzL3NmYy5pbmkNCj4gYi9kb2MvZ3VpZGVzL3ZkcGFkZXZzL2ZlYXR1cmVzL3NmYy5p bmkNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uNzFiNjE1OA0KPiAt LS0gL2Rldi9udWxsDQo+ICsrKyBiL2RvYy9ndWlkZXMvdmRwYWRldnMvZmVhdHVyZXMvc2ZjLmlu aQ0KPiBAQCAtMCwwICsxLDkgQEANCj4gKzsNCj4gKzsgU3VwcG9ydGVkIGZlYXR1cmVzIG9mIHRo ZSAnc2ZjJyB2RFBBIGRyaXZlci4NCj4gKzsNCj4gKzsgUmVmZXIgdG8gZGVmYXVsdC5pbmkgZm9y IHRoZSBmdWxsIGxpc3Qgb2YgYXZhaWxhYmxlIGRyaXZlciBmZWF0dXJlcy4NCj4gKzsNCj4gK1tG ZWF0dXJlc10NCj4gK0xpbnV4CQkJPSBZDQo+ICt4ODYtNjQJCQk9IFkNCj4gK1VzYWdlIGRvYwkJ PSBZDQo+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3ZkcGFkZXZzL3NmYy5yc3QgYi9kb2MvZ3Vp ZGVzL3ZkcGFkZXZzL3NmYy5yc3QNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw MDAwMC4uNTlmOTkwYg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RvYy9ndWlkZXMvdmRwYWRl dnMvc2ZjLnJzdA0KPiBAQCAtMCwwICsxLDk3IEBADQo+ICsuLiAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiArICAgIENvcHlyaWdodChjKSAyMDIxIFhpbGlueCBDb3Jw b3JhdGlvbi4NCj4gKw0KPiArWGlsaW54IHZEUEEgZHJpdmVyDQo+ICs9PT09PT09PT09PT09PT09 PT0NCj4gKw0KPiArVGhlIFhpbGlueCB2RFBBICh2aG9zdCBkYXRhIHBhdGggYWNjZWxlcmF0aW9u KSBkcml2ZXINCj4gKCoqbGlicnRlX3BtZF9zZmNfdmRwYSoqKQ0KPiArcHJvdmlkZXMgc3VwcG9y dCBmb3IgdGhlIFhpbGlueCBTTjEwMjIgU21hcnROSUNzIGZhbWlseSBvZiAxMC8yNS80MC81MC8x MDANCj4gR2Jwcw0KPiArYWRhcHRlcnMgaGFzIHN1cHBvcnQgZm9yIGxhdGVzdCBMaW51eCBhbmQg RnJlZUJTRCBvcGVyYXRpbmcgc3lzdGVtcy4NCg0KQWRhcHRlcnMgdGhhdCBoYXZlIHN1cHBvcnQg Zm9yIFhYWD8NCg0KPiArDQo+ICtNb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBhdCBYaWxp bnggd2Vic2l0ZSBodHRwczovL3d3dy54aWxpbnguY29tLg0KPiArDQo+ICsNCj4gK1hpbGlueCB2 RFBBIGltcGxlbWVudGF0aW9uDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ ICtlZjEwMCBkZXZpY2UgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gdGhlIG5ldCBkZXZpY2Ugb3IgdkRQ QSBtb2RlLg0KPiArQWRkaW5nICJjbGFzcz12ZHBhIiBwYXJhbWV0ZXIgaGVscHMgdG8gc3BlY2lm eSB0aGF0IHRoaXMNCj4gK2RldmljZSBpcyB0byBiZSB1c2VkIGluIHZEUEEgbW9kZS4gSWYgdGhp cyBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgZGV2aWNlDQo+ICt3aWxsIGJlIHByb2JlZCBi eSBuZXQvc2ZjIGRyaXZlciBhbmQgd2lsbCB1c2VkIGFzIGEgbmV0IGRldmljZS4NCj4gKw0KPiAr VGhpcyBQTUQgdXNlcyBsaWJlZnggKGNvbW1vbi9zZmNfZWZ4KSBjb2RlIHRvIGFjY2VzcyB0aGUg ZGV2aWNlIGZpcm13YXJlLg0KPiArDQo+ICsNCj4gK1N1cHBvcnRlZCBOSUNzDQo+ICstLS0tLS0t LS0tLS0tLQ0KPiArDQo+ICstIFhpbGlueCBTTjEwMjIgU21hcnROSUNzDQo+ICsNCj4gKw0KPiAr RmVhdHVyZXMNCj4gKy0tLS0tLS0tDQo+ICsNCj4gK0ZlYXR1cmVzIG9mIHRoZSBYaWxpbnggdkRQ QSBkcml2ZXIgYXJlOg0KPiArDQo+ICstIENvbXBhdGliaWxpdHkgd2l0aCB2aXJ0aW8gMC45NSBh bmQgMS4wDQo+ICsNCj4gKw0KPiArTm9uLXN1cHBvcnRlZCBGZWF0dXJlcw0KPiArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiArDQo+ICstIENvbnRyb2wgUXVldWUNCj4gKy0gTXVsdGkgcXVldWUN Cj4gKy0gTGl2ZSBNaWdyYXRpb24NCj4gKw0KPiArDQo+ICtQcmVyZXF1aXNpdGVzDQo+ICstLS0t LS0tLS0tLS0tDQo+ICsNCj4gK1JlcXVpcmVzIGZpcm13YXJlIHZlcnNpb246IHYxLjAuNy4wIG9y IGhpZ2hlcg0KPiArDQo+ICtWaXNpdCBgWGlsaW54IFN1cHBvcnQgRG93bmxvYWRzIDxodHRwczov L3d3dy54aWxpbnguY29tL3N1cHBvcnQuaHRtbD5gXw0KPiArdG8gZ2V0IFhpbGlueCBVdGlsaXRp ZXMgd2l0aCB0aGUgbGF0ZXN0IGZpcm13YXJlLg0KPiArRm9sbG93IGluc3RydWN0aW9ucyBmcm9t IEFsdmVvIFNOMTAwMCBTbWFydE5JQ3MgVXNlciBHdWlkZSB0bw0KPiArdXBkYXRlIGZpcm13YXJl IGFuZCBjb25maWd1cmUgdGhlIGFkYXB0ZXIuDQo+ICsNCj4gKw0KPiArUGVyLURldmljZSBQYXJh bWV0ZXJzDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGhlIGZvbGxvd2luZyBw ZXItZGV2aWNlIHBhcmFtZXRlcnMgY2FuIGJlIHBhc3NlZCB2aWEgRUFMIFBDSSBkZXZpY2UNCj4g K3doaXRlbGlzdCBvcHRpb24gbGlrZSAiLXcgMDI6MDAuMCxhcmcxPXZhbHVlMSwuLi4iLg0KDQpU aGUgbmFtZSAnd2hpdGVsaXN0JyBpcyBkZXByZWNhdGVkIGluIERQREsgbm93LiBTbyBwbGVhc2Ug dXNlOg0KDQphbGxvd2xpc3Qgb3B0aW9uIGxpa2UgIi1hIDAyOjAwLjAsYXJnMT12YWx1ZTEsLi4u Ig0KDQo+ICsNCj4gK0Nhc2UtaW5zZW5zaXRpdmUgMS95L3llcy9vbiBvciAwL24vbm8vb2ZmIG1h eSBiZSB1c2VkIHRvIHNwZWNpZnkNCj4gK2Jvb2xlYW4gcGFyYW1ldGVycyB2YWx1ZS4NCj4gKw0K PiArLSBgYGNsYXNzYGAgW25ldHx2ZHBhXSAoZGVmYXVsdCAqKm5ldCoqKQ0KPiArDQo+ICsgIENo b29zZSB0aGUgbW9kZSBvZiBvcGVyYXRpb24gb2YgZWYxMDAgZGV2aWNlLg0KPiArICAqKm5ldCoq IGRldmljZSB3aWxsIHdvcmsgYXMgbmV0d29yayBkZXZpY2UgYW5kIHdpbGwgYmUgcHJvYmVkIGJ5 IG5ldC9zZmMNCj4gZHJpdmVyLg0KPiArICAqKnZkcGEqKiBkZXZpY2Ugd2lsbCB3b3JrIGFzIHZk cGEgZGV2aWNlIGFuZCB3aWxsIGJlIHByb2JlZCBieSB2ZHBhL3NmYw0KPiBkcml2ZXIuDQo+ICsg IElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQgdGhlbiBlZjEwMCBkZXZpY2Ugd2ls bCBvcGVyYXRlIGFzDQo+IG5ldHdvcmsgZGV2aWNlLg0KPiArDQo+ICsNCj4gK0R5bmFtaWMgTG9n Z2luZyBQYXJhbWV0ZXJzDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtP bmUgbWF5IGxldmVyYWdlIEVBTCBvcHRpb24gIi0tbG9nLWxldmVsIiB0byBjaGFuZ2UgZGVmYXVs dCBsZXZlbHMNCj4gK2ZvciB0aGUgbG9nIHR5cGVzIHN1cHBvcnRlZCBieSB0aGUgZHJpdmVyLiBU aGUgb3B0aW9uIGlzIHVzZWQgd2l0aA0KPiArYW4gYXJndW1lbnQgdHlwaWNhbGx5IGNvbnNpc3Rp bmcgb2YgdHdvIHBhcnRzIHNlcGFyYXRlZCBieSBhIGNvbG9uLg0KPiArDQo+ICtMZXZlbCB2YWx1 ZSBpcyB0aGUgbGFzdCBwYXJ0IHdoaWNoIHRha2VzIGEgc3ltYm9saWMgbmFtZSAob3IgaW50ZWdl cikuDQo+ICtMb2cgdHlwZSBpcyB0aGUgZm9ybWVyIHBhcnQgd2hpY2ggbWF5IHNoZWxsIG1hdGNo IHN5bnRheC4NCj4gK0RlcGVuZGluZyBvbiB0aGUgY2hvaWNlIG9mIHRoZSBleHByZXNzaW9uLCB0 aGUgZ2l2ZW4gbG9nIGxldmVsIG1heQ0KPiArYmUgdXNlZCBlaXRoZXIgZm9yIHNvbWUgc3BlY2lm aWMgbG9nIHR5cGUgb3IgZm9yIGEgc3Vic2V0IG9mIHR5cGVzLg0KPiArDQo+ICtTRkMgdkRQQSBQ TUQgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBsb2cgdHlwZXMgYXZhaWxhYmxlIGZvciBjb250cm9s Og0KPiArDQo+ICstIGBgcG1kLnZkcGEuc2ZjLmRyaXZlcmBgIChkZWZhdWx0IGxldmVsIGlzICoq bm90aWNlKiopDQo+ICsNCj4gKyAgQWZmZWN0cyBkcml2ZXItd2lkZSBtZXNzYWdlcyB1bnJlbGF0 ZWQgdG8gYW55IHBhcnRpY3VsYXIgZGV2aWNlcy4NCj4gKw0KPiArLSBgYHBtZC52ZHBhLnNmYy5t YWluYGAgKGRlZmF1bHQgbGV2ZWwgaXMgKipub3RpY2UqKikNCj4gKw0KPiArICBNYXRjaGVzIGEg c3Vic2V0IG9mIHBlci1wb3J0IGxvZyB0eXBlcyByZWdpc3RlcmVkIGR1cmluZyBydW50aW1lLg0K PiArICBBIGZ1bGwgbmFtZSBmb3IgYSBwYXJ0aWN1bGFyIHR5cGUgbWF5IGJlIG9idGFpbmVkIGJ5 IGFwcGVuZGluZyBhDQo+ICsgIGRvdCBhbmQgYSBQQ0kgZGV2aWNlIGlkZW50aWZpZXIgKGBgWFhY WDpYWDpYWC5YYGApIHRvIHRoZSBwcmVmaXguDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEv bWVzb24uYnVpbGQgYi9kcml2ZXJzL3ZkcGEvbWVzb24uYnVpbGQNCj4gaW5kZXggZjc2NWZlMy4u Nzc0MTJjNyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy92ZHBhL21lc29uLmJ1aWxkDQo+ICsrKyBi L2RyaXZlcnMvdmRwYS9tZXNvbi5idWlsZA0KPiBAQCAtOCw2ICs4LDcgQEAgZW5kaWYNCj4gIGRy aXZlcnMgPSBbDQo+ICAgICAgICAgICdpZmMnLA0KPiAgICAgICAgICAnbWx4NScsDQo+ICsgICAg ICAgICdzZmMnLA0KPiAgXQ0KPiAgc3RkX2RlcHMgPSBbJ2J1c19wY2knLCAna3ZhcmdzJ10NCj4g IHN0ZF9kZXBzICs9IFsndmhvc3QnXQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZHBhL3NmYy9t ZXNvbi5idWlsZCBiL2RyaXZlcnMvdmRwYS9zZmMvbWVzb24uYnVpbGQNCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uZDkxNjM4OQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsr KyBiL2RyaXZlcnMvdmRwYS9zZmMvbWVzb24uYnVpbGQNCj4gQEAgLTAsMCArMSwzMyBAQA0KPiAr IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICsjDQo+ICsjIENvcHly aWdodChjKSAyMDIwLTIwMjEgWGlsaW54LCBJbmMuDQo+ICsNCj4gK2lmIChhcmNoX3N1YmRpciAh PSAneDg2JyBvciBub3QgZHBka19jb25mLmdldCgnUlRFX0FSQ0hfNjQnKSkgYW5kDQo+IChhcmNo X3N1YmRpciAhPSAnYXJtJyBvciBub3QgaG9zdF9tYWNoaW5lLmNwdV9mYW1pbHkoKS5zdGFydHN3 aXRoKCdhYXJjaDY0JykpDQo+ICsJYnVpbGQgPSBmYWxzZQ0KPiArCXJlYXNvbiA9ICdvbmx5IHN1 cHBvcnRlZCBvbiB4ODZfNjQgYW5kIGFhcmNoNjQnDQo+ICtlbmRpZg0KPiArDQo+ICtmbXRfbmFt ZSA9ICdzZmNfdmRwYScNCj4gK2V4dHJhX2ZsYWdzID0gW10NCj4gKw0KPiArIyBFbmFibGUgbW9y ZSB3YXJuaW5ncw0KPiArZXh0cmFfZmxhZ3MgKz0gWw0KPiArCSctV2Rpc2FibGVkLW9wdGltaXph dGlvbicNCj4gK10NCj4gKw0KPiArIyBDb21waWxlciBhbmQgdmVyc2lvbiBkZXBlbmRlbnQgZmxh Z3MNCj4gK2V4dHJhX2ZsYWdzICs9IFsNCj4gKwknLVdhZ2dyZWdhdGUtcmV0dXJuJywNCj4gKwkn LVdiYWQtZnVuY3Rpb24tY2FzdCcNCj4gK10NCj4gKw0KPiArZm9yZWFjaCBmbGFnOiBleHRyYV9m bGFncw0KPiArCWlmIGNjLmhhc19hcmd1bWVudChmbGFnKQ0KPiArCQljZmxhZ3MgKz0gZmxhZw0K PiArCWVuZGlmDQo+ICtlbmRmb3JlYWNoDQo+ICsNCj4gK2RlcHMgKz0gWydjb21tb25fc2ZjX2Vm eCcsICdidXNfcGNpJ10NCj4gK3NvdXJjZXMgPSBmaWxlcygNCj4gKwknc2ZjX3ZkcGEuYycsDQo+ ICspDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhLmMgYi9kcml2ZXJz L3ZkcGEvc2ZjL3NmY192ZHBhLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw MDAwMC4uZDhmYWFjYQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvdmRwYS9zZmMv c2ZjX3ZkcGEuYw0KPiBAQCAtMCwwICsxLDI4NiBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiArICoNCj4gKyAqIENvcHlyaWdodChjKSAyMDIwLTIwMjEg WGlsaW54LCBJbmMuDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUgPHN0ZGJvb2wuaD4NCj4gKyNp bmNsdWRlIDxzdGRpbnQuaD4NCj4gKyNpbmNsdWRlIDxzeXMvcXVldWUuaD4NCj4gKw0KPiArI2lu Y2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gKyNpbmNsdWRlIDxydGVfZXJybm8uaD4NCj4gKyNpbmNs dWRlIDxydGVfc3RyaW5nX2Zucy5oPg0KPiArI2luY2x1ZGUgPHJ0ZV92ZmlvLmg+DQo+ICsjaW5j bHVkZSA8cnRlX3Zob3N0Lmg+DQo+ICsNCj4gKyNpbmNsdWRlICJlZnguaCINCj4gKyNpbmNsdWRl ICJzZmNfZWZ4LmgiDQo+ICsjaW5jbHVkZSAic2ZjX3ZkcGEuaCINCj4gKw0KPiArVEFJTFFfSEVB RChzZmNfdmRwYV9hZGFwdGVyX2xpc3RfaGVhZCwgc2ZjX3ZkcGFfYWRhcHRlcik7DQo+ICtzdGF0 aWMgc3RydWN0IHNmY192ZHBhX2FkYXB0ZXJfbGlzdF9oZWFkIHNmY192ZHBhX2FkYXB0ZXJfbGlz dCA9DQo+ICsJVEFJTFFfSEVBRF9JTklUSUFMSVpFUihzZmNfdmRwYV9hZGFwdGVyX2xpc3QpOw0K PiArDQo+ICtzdGF0aWMgcHRocmVhZF9tdXRleF90IHNmY192ZHBhX2FkYXB0ZXJfbGlzdF9sb2Nr ID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsNCj4gKw0KPiArc3RydWN0IHNmY192ZHBhX2Fk YXB0ZXIgKg0KPiArc2ZjX3ZkcGFfZ2V0X2FkYXB0ZXJfYnlfZGV2KHN0cnVjdCBydGVfcGNpX2Rl dmljZSAqcGRldikNCj4gK3sNCj4gKwlib29sIGZvdW5kID0gZmFsc2U7DQo+ICsJc3RydWN0IHNm Y192ZHBhX2FkYXB0ZXIgKnN2YTsNCj4gKw0KPiArCXB0aHJlYWRfbXV0ZXhfbG9jaygmc2ZjX3Zk cGFfYWRhcHRlcl9saXN0X2xvY2spOw0KPiArDQo+ICsJVEFJTFFfRk9SRUFDSChzdmEsICZzZmNf dmRwYV9hZGFwdGVyX2xpc3QsIG5leHQpIHsNCj4gKwkJaWYgKHBkZXYgPT0gc3ZhLT5wZGV2KSB7 DQo+ICsJCQlmb3VuZCA9IHRydWU7DQo+ICsJCQlicmVhazsNCj4gKwkJfQ0KPiArCX0NCj4gKw0K PiArCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZzZmNfdmRwYV9hZGFwdGVyX2xpc3RfbG9jayk7DQo+ ICsNCj4gKwlyZXR1cm4gZm91bmQgPyBzdmEgOiBOVUxMOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMg aW50DQo+ICtzZmNfdmRwYV92ZmlvX3NldHVwKHN0cnVjdCBzZmNfdmRwYV9hZGFwdGVyICpzdmEp DQo+ICt7DQo+ICsJc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpkZXYgPSBzdmEtPnBkZXY7DQo+ICsJ Y2hhciBkZXZfbmFtZVtSVEVfREVWX05BTUVfTUFYX0xFTl0gPSB7MH07DQo+ICsJaW50IHJjOw0K PiArDQo+ICsJaWYgKGRldiA9PSBOVUxMKQ0KPiArCQlnb3RvIGZhaWxfaW52YWw7DQo+ICsNCj4g KwlydGVfcGNpX2RldmljZV9uYW1lKCZkZXYtPmFkZHIsIGRldl9uYW1lLCBSVEVfREVWX05BTUVf TUFYX0xFTik7DQo+ICsNCj4gKwlzdmEtPnZmaW9fY29udGFpbmVyX2ZkID0gcnRlX3ZmaW9fY29u dGFpbmVyX2NyZWF0ZSgpOw0KPiArCWlmIChzdmEtPnZmaW9fY29udGFpbmVyX2ZkIDwgMCkJew0K PiArCQlzZmNfdmRwYV9lcnIoc3ZhLCAiZmFpbGVkIHRvIGNyZWF0ZSBWRklPIGNvbnRhaW5lciIp Ow0KDQpmYWlsZWQgLT4gRmFpbGVkIA0KDQpJIHN1Z2dlc3QgdG8gdXNlIGNhcGl0YWwgbGV0dGVy IGZvciBmaXJzdCBsZXR0ZXIgb2YgZXZlcnkgbG9nIGluZm8uDQpQbGVhc2UgY2hlY2sgb3RoZXIg bG9ncy4NCg0KPiArCQlnb3RvIGZhaWxfY29udGFpbmVyX2NyZWF0ZTsNCj4gKwl9DQo+ICsNCj4g KwlyYyA9IHJ0ZV92ZmlvX2dldF9ncm91cF9udW0ocnRlX3BjaV9nZXRfc3lzZnNfcGF0aCgpLCBk ZXZfbmFtZSwNCj4gKwkJCQkgICAgJnN2YS0+aW9tbXVfZ3JvdXBfbnVtKTsNCj4gKwlpZiAocmMg PD0gMCkgew0KPiArCQlzZmNfdmRwYV9lcnIoc3ZhLCAiZmFpbGVkIHRvIGdldCBJT01NVSBncm91 cCBmb3IgJXMgOiAlcyIsDQo+ICsJCQkgICAgIGRldl9uYW1lLCBydGVfc3RyZXJyb3IoLXJjKSk7 DQo+ICsJCWdvdG8gZmFpbF9nZXRfZ3JvdXBfbnVtOw0KPiArCX0NCj4gKw0KPiArCXN2YS0+dmZp b19ncm91cF9mZCA9DQo+ICsJCXJ0ZV92ZmlvX2NvbnRhaW5lcl9ncm91cF9iaW5kKHN2YS0+dmZp b19jb250YWluZXJfZmQsDQo+ICsJCQkJCSAgICAgIHN2YS0+aW9tbXVfZ3JvdXBfbnVtKTsNCj4g KwlpZiAoc3ZhLT52ZmlvX2dyb3VwX2ZkIDwgMCkgew0KPiArCQlzZmNfdmRwYV9lcnIoc3ZhLA0K PiArCQkJICAgICAiZmFpbGVkIHRvIGJpbmQgSU9NTVUgZ3JvdXAgJWQgdG8gY29udGFpbmVyICVk IiwNCj4gKwkJCSAgICAgc3ZhLT5pb21tdV9ncm91cF9udW0sIHN2YS0+dmZpb19jb250YWluZXJf ZmQpOw0KPiArCQlnb3RvIGZhaWxfZ3JvdXBfYmluZDsNCj4gKwl9DQo+ICsNCj4gKwlpZiAocnRl X3BjaV9tYXBfZGV2aWNlKGRldikgIT0gMCkgew0KPiArCQlzZmNfdmRwYV9lcnIoc3ZhLCAiZmFp bGVkIHRvIG1hcCBQQ0kgZGV2aWNlICVzIDogJXMiLA0KPiArCQkJICAgICBkZXZfbmFtZSwgcnRl X3N0cmVycm9yKHJ0ZV9lcnJubykpOw0KPiArCQlnb3RvIGZhaWxfcGNpX21hcF9kZXZpY2U7DQo+ ICsJfQ0KPiArDQo+ICsJc3ZhLT52ZmlvX2Rldl9mZCA9IGRldi0+aW50cl9oYW5kbGUudmZpb19k ZXZfZmQ7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gKw0KPiArZmFpbF9wY2lfbWFwX2RldmljZToN Cj4gKwlpZiAocnRlX3ZmaW9fY29udGFpbmVyX2dyb3VwX3VuYmluZChzdmEtPnZmaW9fY29udGFp bmVyX2ZkLA0KPiArCQkJCQlzdmEtPmlvbW11X2dyb3VwX251bSkgIT0gMCkgew0KPiArCQlzZmNf dmRwYV9lcnIoc3ZhLA0KPiArCQkJICAgICAiZmFpbGVkIHRvIHVuYmluZCBJT01NVSBncm91cCAl ZCBmcm9tIGNvbnRhaW5lciAlZCIsDQo+ICsJCQkgICAgIHN2YS0+aW9tbXVfZ3JvdXBfbnVtLCBz dmEtPnZmaW9fY29udGFpbmVyX2ZkKTsNCj4gKwl9DQo+ICsNCj4gK2ZhaWxfZ3JvdXBfYmluZDoN Cj4gK2ZhaWxfZ2V0X2dyb3VwX251bToNCg0KWW91IGNhbiBjb21iaW5lZCB0aGVzZSB0d28gdGFn cyBpbnRvIG9uZSB3aXRoIHRhZyBuYW1lIGNoYW5nZWQuDQoNCj4gKwlpZiAocnRlX3ZmaW9fY29u dGFpbmVyX2Rlc3Ryb3koc3ZhLT52ZmlvX2NvbnRhaW5lcl9mZCkgIT0gMCkgew0KPiArCQlzZmNf dmRwYV9lcnIoc3ZhLCAiZmFpbGVkIHRvIGRlc3Ryb3kgY29udGFpbmVyICVkIiwNCj4gKwkJCSAg ICAgc3ZhLT52ZmlvX2NvbnRhaW5lcl9mZCk7DQo+ICsJfQ0KPiArDQo+ICtmYWlsX2NvbnRhaW5l cl9jcmVhdGU6DQo+ICtmYWlsX2ludmFsOg0KDQpTYW1lIGhlcmUuDQoNCj4gKwlyZXR1cm4gLTE7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICtzZmNfdmRwYV92ZmlvX3RlYXJkb3duKHN0 cnVjdCBzZmNfdmRwYV9hZGFwdGVyICpzdmEpDQo+ICt7DQo+ICsJcnRlX3BjaV91bm1hcF9kZXZp Y2Uoc3ZhLT5wZGV2KTsNCj4gKw0KPiArCWlmIChydGVfdmZpb19jb250YWluZXJfZ3JvdXBfdW5i aW5kKHN2YS0+dmZpb19jb250YWluZXJfZmQsDQo+ICsJCQkJCSAgICBzdmEtPmlvbW11X2dyb3Vw X251bSkgIT0gMCkgew0KPiArCQlzZmNfdmRwYV9lcnIoc3ZhLA0KPiArCQkJICAgICAiZmFpbGVk IHRvIHVuYmluZCBJT01NVSBncm91cCAlZCBmcm9tIGNvbnRhaW5lciAlZCIsDQo+ICsJCQkgICAg IHN2YS0+aW9tbXVfZ3JvdXBfbnVtLCBzdmEtPnZmaW9fY29udGFpbmVyX2ZkKTsNCj4gKwl9DQo+ ICsNCj4gKwlpZiAocnRlX3ZmaW9fY29udGFpbmVyX2Rlc3Ryb3koc3ZhLT52ZmlvX2NvbnRhaW5l cl9mZCkgIT0gMCkgew0KPiArCQlzZmNfdmRwYV9lcnIoc3ZhLA0KPiArCQkJICAgICAiZmFpbGVk IHRvIGRlc3Ryb3kgY29udGFpbmVyICVkIiwNCj4gKwkJCSAgICAgc3ZhLT52ZmlvX2NvbnRhaW5l cl9mZCk7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICtzZmNfdmRwYV9zZXRf bG9nX3ByZWZpeChzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciAqc3ZhKQ0KPiArew0KPiArCXN0cnVj dCBydGVfcGNpX2RldmljZSAqcGNpX2RldiA9IHN2YS0+cGRldjsNCj4gKwlpbnQgcmV0Ow0KPiAr DQo+ICsJcmV0ID0gc25wcmludGYoc3ZhLT5sb2dfcHJlZml4LCBzaXplb2Yoc3ZhLT5sb2dfcHJl Zml4KSwNCj4gKwkJICAgICAgICJQTUQ6IHNmY192ZHBhICIgUENJX1BSSV9GTVQgIiA6ICIsDQo+ ICsJCSAgICAgICBwY2lfZGV2LT5hZGRyLmRvbWFpbiwgcGNpX2Rldi0+YWRkci5idXMsDQo+ICsJ CSAgICAgICBwY2lfZGV2LT5hZGRyLmRldmlkLCBwY2lfZGV2LT5hZGRyLmZ1bmN0aW9uKTsNCj4g Kw0KPiArCWlmIChyZXQgPCAwIHx8IHJldCA+PSAoaW50KXNpemVvZihzdmEtPmxvZ19wcmVmaXgp KSB7DQo+ICsJCVNGQ19WRFBBX0dFTkVSSUNfTE9HKEVSUiwNCj4gKwkJCSJyZXNlcnZlZCBsb2cg cHJlZml4IGlzIHRvbyBzaG9ydCBmb3IgIiBQQ0lfUFJJX0ZNVCwNCj4gKwkJCXBjaV9kZXYtPmFk ZHIuZG9tYWluLCBwY2lfZGV2LT5hZGRyLmJ1cywNCj4gKwkJCXBjaV9kZXYtPmFkZHIuZGV2aWQs IHBjaV9kZXYtPmFkZHIuZnVuY3Rpb24pOw0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9DQo+ ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArdWludDMyX3QNCj4gK3NmY192ZHBhX3Jl Z2lzdGVyX2xvZ3R5cGUoY29uc3Qgc3RydWN0IHJ0ZV9wY2lfYWRkciAqcGNpX2FkZHIsDQo+ICsJ CQkgIGNvbnN0IGNoYXIgKmx0X3ByZWZpeF9zdHIsIHVpbnQzMl90IGxsX2RlZmF1bHQpDQo+ICt7 DQo+ICsJc2l6ZV90IGx0X3ByZWZpeF9zdHJfc2l6ZSA9IHN0cmxlbihsdF9wcmVmaXhfc3RyKTsN Cj4gKwlzaXplX3QgbHRfc3RyX3NpemVfbWF4Ow0KPiArCWNoYXIgKmx0X3N0ciA9IE5VTEw7DQo+ ICsJaW50IHJldDsNCj4gKw0KPiArCWlmIChTSVpFX01BWCAtIFBDSV9QUklfU1RSX1NJWkUgLSAx ID4gbHRfcHJlZml4X3N0cl9zaXplKSB7DQo+ICsJCSsrbHRfcHJlZml4X3N0cl9zaXplOyAvKiBS ZXNlcnZlIHNwYWNlIGZvciBwcmVmaXggc2VwYXJhdG9yICovDQo+ICsJCWx0X3N0cl9zaXplX21h eCA9IGx0X3ByZWZpeF9zdHJfc2l6ZSArIFBDSV9QUklfU1RSX1NJWkUgKyAxOw0KPiArCX0gZWxz ZSB7DQo+ICsJCXJldHVybiBSVEVfTE9HVFlQRV9QTUQ7DQo+ICsJfQ0KPiArDQo+ICsJbHRfc3Ry ID0gcnRlX3ptYWxsb2MoImxvZ3R5cGVfc3RyIiwgbHRfc3RyX3NpemVfbWF4LCAwKTsNCj4gKwlp ZiAobHRfc3RyID09IE5VTEwpDQo+ICsJCXJldHVybiBSVEVfTE9HVFlQRV9QTUQ7DQo+ICsNCj4g KwlzdHJuY3B5KGx0X3N0ciwgbHRfcHJlZml4X3N0ciwgbHRfcHJlZml4X3N0cl9zaXplKTsNCj4g KwlsdF9zdHJbbHRfcHJlZml4X3N0cl9zaXplIC0gMV0gPSAnLic7DQo+ICsJcnRlX3BjaV9kZXZp Y2VfbmFtZShwY2lfYWRkciwgbHRfc3RyICsgbHRfcHJlZml4X3N0cl9zaXplLA0KPiArCQkJICAg IGx0X3N0cl9zaXplX21heCAtIGx0X3ByZWZpeF9zdHJfc2l6ZSk7DQo+ICsJbHRfc3RyW2x0X3N0 cl9zaXplX21heCAtIDFdID0gJ1wwJzsNCj4gKw0KPiArCXJldCA9IHJ0ZV9sb2dfcmVnaXN0ZXJf dHlwZV9hbmRfcGlja19sZXZlbChsdF9zdHIsIGxsX2RlZmF1bHQpOw0KPiArCXJ0ZV9mcmVlKGx0 X3N0cik7DQo+ICsNCj4gKwlyZXR1cm4gKHJldCA8IDApID8gUlRFX0xPR1RZUEVfUE1EIDogcmV0 Ow0KDQonKCknIG5vdCBuZWVkZWQNCg0KPiArfQ0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHJ0ZV9w Y2lfaWQgcGNpX2lkX3NmY192ZHBhX2VmeF9tYXBbXSA9IHsNCj4gKwl7IFJURV9QQ0lfREVWSUNF KEVGWF9QQ0lfVkVOSURfWElMSU5YLCBFRlhfUENJX0RFVklEX1JJVkVSSEVBRF9WRikgfSwNCj4g Kwl7IC52ZW5kb3JfaWQgPSAwLCAvKiBzZW50aW5lbCAqLyB9LA0KPiArfTsNCj4gKw0KPiArc3Rh dGljIGludA0KPiArc2ZjX3ZkcGFfcGNpX3Byb2JlKHN0cnVjdCBydGVfcGNpX2RyaXZlciAqcGNp X2RydiBfX3J0ZV91bnVzZWQsDQo+ICsJc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2KQ0K PiArew0KPiArCXN0cnVjdCBzZmNfdmRwYV9hZGFwdGVyICpzdmEgPSBOVUxMOw0KPiArCXVpbnQz Ml90IGxvZ3R5cGVfbWFpbjsNCj4gKwlpbnQgcmV0ID0gMDsNCj4gKw0KPiArCWlmIChzZmNfZWZ4 X2Rldl9jbGFzc19nZXQocGNpX2Rldi0+ZGV2aWNlLmRldmFyZ3MpICE9DQo+ICsJCQlTRkNfRUZY X0RFVl9DTEFTU19WRFBBKSB7DQo+ICsJCVNGQ19WRFBBX0dFTkVSSUNfTE9HKElORk8sDQo+ICsJ CQkiSW5jb21wYXRpYmxlIGRldmljZSBjbGFzczogc2tpcCBwcm9iaW5nLCBzaG91bGQgYmUgcHJv YmVkDQo+IGJ5IG90aGVyIHNmYyBkcml2ZXIuIik7DQo+ICsJCQlyZXR1cm4gMTsNCj4gKwl9DQo+ ICsNCj4gKwkvKg0KPiArCSAqIEl0IHdpbGwgbm90IGJlIHByb2JlZCBpbiB0aGUgc2Vjb25kYXJ5 IHByb2Nlc3MuIEFzIGRldmljZSBjbGFzcw0KPiArCSAqIGlzIHZkcGEgc28gcmV0dXJuIDAgdG8g YXZvaWQgcHJvYmUgYnkgb3RoZXIgc2ZjIGRyaXZlcg0KPiArCSAqLw0KPiArCWlmIChydGVfZWFs X3Byb2Nlc3NfdHlwZSgpICE9IFJURV9QUk9DX1BSSU1BUlkpDQo+ICsJCXJldHVybiAwOw0KPiAr DQo+ICsJbG9ndHlwZV9tYWluID0gc2ZjX3ZkcGFfcmVnaXN0ZXJfbG9ndHlwZSgmcGNpX2Rldi0+ YWRkciwNCj4gKwkJCQkJCSBTRkNfVkRQQV9MT0dUWVBFX01BSU5fU1RSLA0KPiArCQkJCQkJIFJU RV9MT0dfTk9USUNFKTsNCj4gKw0KPiArCXN2YSA9IHJ0ZV96bWFsbG9jKCJzZmNfdmRwYSIsIHNp emVvZihzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciksIDApOw0KPiArCWlmIChzdmEgPT0gTlVMTCkN Cj4gKwkJZ290byBmYWlsX3ptYWxsb2M7DQo+ICsNCj4gKwlzdmEtPnBkZXYgPSBwY2lfZGV2Ow0K PiArCXN2YS0+bG9ndHlwZV9tYWluID0gbG9ndHlwZV9tYWluOw0KPiArDQo+ICsJcmV0ID0gc2Zj X3ZkcGFfc2V0X2xvZ19wcmVmaXgoc3ZhKTsNCj4gKwlpZiAocmV0ICE9IDApDQo+ICsJCWdvdG8g ZmFpbF9zZXRfbG9nX3ByZWZpeDsNCj4gKw0KPiArCXNmY192ZHBhX2xvZ19pbml0KHN2YSwgImVu dHJ5Iik7DQo+ICsNCj4gKwlzZmNfdmRwYV9sb2dfaW5pdChzdmEsICJ2ZmlvIGluaXQiKTsNCj4g KwlpZiAoc2ZjX3ZkcGFfdmZpb19zZXR1cChzdmEpIDwgMCkgew0KPiArCQlzZmNfdmRwYV9lcnIo c3ZhLCAiZmFpbGVkIHRvIHNldHVwIGRldmljZSAlcyIsIHBjaV9kZXYtPm5hbWUpOw0KPiArCQln b3RvIGZhaWxfdmZpb19zZXR1cDsNCj4gKwl9DQo+ICsNCj4gKwlwdGhyZWFkX211dGV4X2xvY2so JnNmY192ZHBhX2FkYXB0ZXJfbGlzdF9sb2NrKTsNCj4gKwlUQUlMUV9JTlNFUlRfVEFJTCgmc2Zj X3ZkcGFfYWRhcHRlcl9saXN0LCBzdmEsIG5leHQpOw0KPiArCXB0aHJlYWRfbXV0ZXhfdW5sb2Nr KCZzZmNfdmRwYV9hZGFwdGVyX2xpc3RfbG9jayk7DQo+ICsNCj4gKwlzZmNfdmRwYV9sb2dfaW5p dChzdmEsICJkb25lIik7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gKw0KPiArZmFpbF92ZmlvX3Nl dHVwOg0KPiArZmFpbF9zZXRfbG9nX3ByZWZpeDoNCg0KVGFncyBjYW4gYmUgY29tYmluZWQNCg0K PiArCXJ0ZV9mcmVlKHN2YSk7DQo+ICsNCj4gK2ZhaWxfem1hbGxvYzoNCj4gKwlyZXR1cm4gLTE7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3NmY192ZHBhX3BjaV9yZW1vdmUoc3RydWN0 IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2KQ0KPiArew0KPiArCXN0cnVjdCBzZmNfdmRwYV9hZGFw dGVyICpzdmEgPSBOVUxMOw0KPiArDQo+ICsJaWYgKHJ0ZV9lYWxfcHJvY2Vzc190eXBlKCkgIT0g UlRFX1BST0NfUFJJTUFSWSkNCj4gKwkJcmV0dXJuIC0xOw0KPiArDQo+ICsJc3ZhID0gc2ZjX3Zk cGFfZ2V0X2FkYXB0ZXJfYnlfZGV2KHBjaV9kZXYpOw0KPiArCWlmIChzdmEgPT0gTlVMTCkgew0K PiArCQlzZmNfdmRwYV9pbmZvKHN2YSwgImludmFsaWQgZGV2aWNlOiAlcyIsIHBjaV9kZXYtPm5h bWUpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJcHRocmVhZF9tdXRleF9sb2Nr KCZzZmNfdmRwYV9hZGFwdGVyX2xpc3RfbG9jayk7DQo+ICsJVEFJTFFfUkVNT1ZFKCZzZmNfdmRw YV9hZGFwdGVyX2xpc3QsIHN2YSwgbmV4dCk7DQo+ICsJcHRocmVhZF9tdXRleF91bmxvY2soJnNm Y192ZHBhX2FkYXB0ZXJfbGlzdF9sb2NrKTsNCj4gKw0KPiArCXNmY192ZHBhX3ZmaW9fdGVhcmRv d24oc3ZhKTsNCj4gKw0KPiArCXJ0ZV9mcmVlKHN2YSk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4g K30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBydGVfcGNpX2RyaXZlciBydGVfc2ZjX3ZkcGEgPSB7 DQo+ICsJLmlkX3RhYmxlID0gcGNpX2lkX3NmY192ZHBhX2VmeF9tYXAsDQo+ICsJLmRydl9mbGFn cyA9IDAsDQo+ICsJLnByb2JlID0gc2ZjX3ZkcGFfcGNpX3Byb2JlLA0KPiArCS5yZW1vdmUgPSBz ZmNfdmRwYV9wY2lfcmVtb3ZlLA0KPiArfTsNCj4gKw0KPiArUlRFX1BNRF9SRUdJU1RFUl9QQ0ko bmV0X3NmY192ZHBhLCBydGVfc2ZjX3ZkcGEpOw0KPiArUlRFX1BNRF9SRUdJU1RFUl9QQ0lfVEFC TEUobmV0X3NmY192ZHBhLCBwY2lfaWRfc2ZjX3ZkcGFfZWZ4X21hcCk7DQo+ICtSVEVfUE1EX1JF R0lTVEVSX0tNT0RfREVQKG5ldF9zZmNfdmRwYSwgIiogdmZpby1wY2kiKTsNCj4gK1JURV9MT0df UkVHSVNURVJfU1VGRklYKHNmY192ZHBhX2xvZ3R5cGVfZHJpdmVyLCBkcml2ZXIsIE5PVElDRSk7 DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhLmggYi9kcml2ZXJzL3Zk cGEvc2ZjL3NmY192ZHBhLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAw MC4uM2I3NzkwMA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvdmRwYS9zZmMvc2Zj X3ZkcGEuaA0KPiBAQCAtMCwwICsxLDQwIEBADQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTMtQ2xhdXNlDQo+ICsgKg0KPiArICogQ29weXJpZ2h0KGMpIDIwMjAtMjAyMSBYaWxp bngsIEluYy4NCj4gKyAqLw0KPiArDQo+ICsjaWZuZGVmIF9TRkNfVkRQQV9IDQo+ICsjZGVmaW5l IF9TRkNfVkRQQV9IDQo+ICsNCj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4NCj4gKyNpbmNsdWRlIDxz eXMvcXVldWUuaD4NCj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV9idXNfcGNpLmg+DQo+ICsNCj4gKyNp bmNsdWRlICJzZmNfdmRwYV9sb2cuaCINCj4gKw0KPiArLyogQWRhcHRlciBwcml2YXRlIGRhdGEg Ki8NCj4gK3N0cnVjdCBzZmNfdmRwYV9hZGFwdGVyIHsNCj4gKwlUQUlMUV9FTlRSWShzZmNfdmRw YV9hZGFwdGVyKQluZXh0Ow0KPiArCXN0cnVjdCBydGVfcGNpX2RldmljZQkJKnBkZXY7DQo+ICsJ c3RydWN0IHJ0ZV9wY2lfYWRkcgkJcGNpX2FkZHI7DQo+ICsNCj4gKwljaGFyCQkJCWxvZ19wcmVm aXhbU0ZDX1ZEUEFfTE9HX1BSRUZJWF9NQVhdOw0KPiArCXVpbnQzMl90CQkJbG9ndHlwZV9tYWlu Ow0KPiArDQo+ICsJaW50CQkJCXZmaW9fZ3JvdXBfZmQ7DQo+ICsJaW50CQkJCXZmaW9fZGV2X2Zk Ow0KPiArCWludAkJCQl2ZmlvX2NvbnRhaW5lcl9mZDsNCj4gKwlpbnQJCQkJaW9tbXVfZ3JvdXBf bnVtOw0KPiArfTsNCj4gKw0KPiArdWludDMyX3QNCj4gK3NmY192ZHBhX3JlZ2lzdGVyX2xvZ3R5 cGUoY29uc3Qgc3RydWN0IHJ0ZV9wY2lfYWRkciAqcGNpX2FkZHIsDQo+ICsJCQkgIGNvbnN0IGNo YXIgKmx0X3ByZWZpeF9zdHIsDQo+ICsJCQkgIHVpbnQzMl90IGxsX2RlZmF1bHQpOw0KPiArDQo+ ICtzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciAqDQo+ICtzZmNfdmRwYV9nZXRfYWRhcHRlcl9ieV9k ZXYoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwZGV2KTsNCj4gKw0KPiArI2VuZGlmICAvKiBfU0ZD X1ZEUEFfSCAqLw0KPiArDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBh X2xvZy5oIGIvZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRwYV9sb2cuaA0KPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi4wYTNkNmFkDQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRwYV9sb2cuaA0KPiBAQCAtMCwwICsxLDc3IEBADQo+ ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICsgKg0KPiArICog Q29weXJpZ2h0KGMpIDIwMjAtMjAyMSBYaWxpbngsIEluYy4NCj4gKyAqLw0KPiArDQo+ICsjaWZu ZGVmIF9TRkNfVkRQQV9MT0dfSF8NCj4gKyNkZWZpbmUgX1NGQ19WRFBBX0xPR19IXw0KPiArDQo+ ICsvKiogR2VuZXJpYyBkcml2ZXIgbG9nIHR5cGUgKi8NCj4gK2V4dGVybiBpbnQgc2ZjX3ZkcGFf bG9ndHlwZV9kcml2ZXI7DQo+ICsNCj4gKy8qKiBDb21tb24gbG9nIHR5cGUgbmFtZSBwcmVmaXgg Ki8NCj4gKyNkZWZpbmUgU0ZDX1ZEUEFfTE9HVFlQRV9QUkVGSVgJInBtZC52ZHBhLnNmYy4iDQo+ ICsNCj4gKy8qKiBMb2cgUE1EIGdlbmVyaWMgbWVzc2FnZSwgYWRkIGEgcHJlZml4IGFuZCBhIGxp bmUgYnJlYWsgKi8NCj4gKyNkZWZpbmUgU0ZDX1ZEUEFfR0VORVJJQ19MT0cobGV2ZWwsIC4uLikg XA0KPiArCXJ0ZV9sb2coUlRFX0xPR18gIyMgbGV2ZWwsIHNmY192ZHBhX2xvZ3R5cGVfZHJpdmVy LAkJXA0KPiArCQlSVEVfRk1UKCJQTUQ6ICIgUlRFX0ZNVF9IRUFEKF9fVkFfQVJHU19fICwpICJc biIsCVwNCj4gKwkJCVJURV9GTVRfVEFJTChfX1ZBX0FSR1NfXyAsKSkpDQo+ICsNCj4gKy8qKiBO YW1lIHByZWZpeCBmb3IgdGhlIHBlci1kZXZpY2UgbG9nIHR5cGUgdXNlZCB0byByZXBvcnQgYmFz aWMgaW5mb3JtYXRpb24NCj4gKi8NCj4gKyNkZWZpbmUgU0ZDX1ZEUEFfTE9HVFlQRV9NQUlOX1NU UglTRkNfVkRQQV9MT0dUWVBFX1BSRUZJWCAibWFpbiINCj4gKw0KPiArI2RlZmluZSBTRkNfVkRQ QV9MT0dfUFJFRklYX01BWAkzMg0KPiArDQo+ICsvKiBMb2cgUE1EIG1lc3NhZ2UsIGF1dG9tYXRp Y2FsbHkgYWRkIHByZWZpeCBhbmQgXG4gKi8NCj4gKyNkZWZpbmUgU0ZDX1ZEUEFfTE9HKHN2YSwg bGV2ZWwsIHR5cGUsIC4uLikgXA0KPiArCXJ0ZV9sb2cobGV2ZWwsIHR5cGUsCQkJCQlcDQo+ICsJ CVJURV9GTVQoIiVzIiBSVEVfRk1UX0hFQUQoX19WQV9BUkdTX18gLCkgIlxuIiwJXA0KPiArCQkJ c3ZhLT5sb2dfcHJlZml4LAkJCVwNCj4gKwkJCVJURV9GTVRfVEFJTChfX1ZBX0FSR1NfXyAsKSkp DQo+ICsNCj4gKyNkZWZpbmUgc2ZjX3ZkcGFfZXJyKHN2YSwgLi4uKSBcDQo+ICsJZG8gewkJCQkJ CQlcDQo+ICsJCWNvbnN0IHN0cnVjdCBzZmNfdmRwYV9hZGFwdGVyICpfc3ZhID0gKHN2YSk7CVwN Cj4gKwkJCQkJCQkJXA0KPiArCQlTRkNfVkRQQV9MT0coX3N2YSwgUlRFX0xPR19FUlIsCQkJXA0K PiArCQkJX3N2YS0+bG9ndHlwZV9tYWluLCBfX1ZBX0FSR1NfXyk7CVwNCj4gKwl9IHdoaWxlICgw KQ0KPiArDQo+ICsjZGVmaW5lIHNmY192ZHBhX3dhcm4oc3ZhLCAuLi4pIFwNCj4gKwlkbyB7CQkJ CQkJCVwNCj4gKwkJY29uc3Qgc3RydWN0IHNmY192ZHBhX2FkYXB0ZXIgKl9zdmEgPSAoc3ZhKTsJ XA0KPiArCQkJCQkJCQlcDQo+ICsJCVNGQ19WRFBBX0xPRyhfc3ZhLCBSVEVfTE9HX1dBUk5JTkcs CQlcDQo+ICsJCQlfc3ZhLT5sb2d0eXBlX21haW4sIF9fVkFfQVJHU19fKTsJXA0KPiArCX0gd2hp bGUgKDApDQo+ICsNCj4gKyNkZWZpbmUgc2ZjX3ZkcGFfbm90aWNlKHN2YSwgLi4uKSBcDQo+ICsJ ZG8gewkJCQkJCQlcDQo+ICsJCWNvbnN0IHN0cnVjdCBzZmNfdmRwYV9hZGFwdGVyICpfc3ZhID0g KHN2YSk7CVwNCj4gKwkJCQkJCQkJXA0KPiArCQlTRkNfVkRQQV9MT0coX3N2YSwgUlRFX0xPR19O T1RJQ0UsCQlcDQo+ICsJCQlfc3ZhLT5sb2d0eXBlX21haW4sIF9fVkFfQVJHU19fKTsJXA0KPiAr CX0gd2hpbGUgKDApDQo+ICsNCj4gKyNkZWZpbmUgc2ZjX3ZkcGFfaW5mbyhzdmEsIC4uLikgXA0K PiArCWRvIHsJCQkJCQkJXA0KPiArCQljb25zdCBzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciAqX3N2 YSA9IChzdmEpOwlcDQo+ICsJCQkJCQkJCVwNCj4gKwkJU0ZDX1ZEUEFfTE9HKF9zdmEsIFJURV9M T0dfSU5GTywJCVwNCj4gKwkJCV9zdmEtPmxvZ3R5cGVfbWFpbiwgX19WQV9BUkdTX18pOwlcDQo+ ICsJfSB3aGlsZSAoMCkNCj4gKw0KDQpGb3IgYWJvdmUgbG9nLCBjYW4ndCB3ZSBtYWtlIGxvZyBs ZXZlbCBhIHBhcmFtZXRlcj8NClRoZW4gYWJvdmUgZm91ciBkZWZpbmUgY2FuIGJlIG9uZS4NCg0K VGhhbmtzLA0KQ2hlbmJvDQoNCj4gKyNkZWZpbmUgc2ZjX3ZkcGFfbG9nX2luaXQoc3ZhLCAuLi4p IFwNCj4gKwlkbyB7CQkJCQkJCVwNCj4gKwkJY29uc3Qgc3RydWN0IHNmY192ZHBhX2FkYXB0ZXIg Kl9zdmEgPSAoc3ZhKTsJXA0KPiArCQkJCQkJCQlcDQo+ICsJCVNGQ19WRFBBX0xPRyhfc3ZhLCBS VEVfTE9HX0lORk8sCQlcDQo+ICsJCQlfc3ZhLT5sb2d0eXBlX21haW4sCQkJXA0KPiArCQkJUlRF X0ZNVCgiJXMoKTogIgkJCVwNCj4gKwkJCQlSVEVfRk1UX0hFQUQoX19WQV9BUkdTX18gLCksCVwN Cj4gKwkJCQlfX2Z1bmNfXywJCQlcDQo+ICsJCQkJUlRFX0ZNVF9UQUlMKF9fVkFfQVJHU19fICwp KSk7CVwNCj4gKwl9IHdoaWxlICgwKQ0KPiArDQo+ICsjZW5kaWYgLyogX1NGQ19WRFBBX0xPR19I XyAqLw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZHBhL3NmYy92ZXJzaW9uLm1hcCBiL2RyaXZl cnMvdmRwYS9zZmMvdmVyc2lvbi5tYXANCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMC4uNGE3NmQxZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvdmRwYS9z ZmMvdmVyc2lvbi5tYXANCj4gQEAgLTAsMCArMSwzIEBADQo+ICtEUERLXzIxIHsNCj4gKwlsb2Nh bDogKjsNCj4gK307DQo+IC0tDQo+IDEuOC4zLjENCg0K