Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp198562yba; Fri, 12 Apr 2019 01:36:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqy8GeYppho6G3XS7lFCdY+aoU0oHVVT5BQe45qqCSD4x7z0uZmgaQDxJKt0O0dbK1d1hM2h X-Received: by 2002:aa7:81d0:: with SMTP id c16mr55983812pfn.132.1555058198781; Fri, 12 Apr 2019 01:36:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555058198; cv=none; d=google.com; s=arc-20160816; b=wKkT1Nfas1LVqkAcAltx9bPiMpTY6Vtn9nf276GbbBmcUaqvRHnXWulRYnPgkfPijq KJTUYN7cLkqueH3KWPadrocZI1z1my2qerB9TY0zzF6DDRqUyPcm5xHUDJntI3PT+1I8 3O4tBc5r2zeyAVWCTwK8XF3xcKkFaLUltXj9pi47aOYNimQ+wtBi96c6i4HFLjLMBADx xN+9I1zSAK1a1ZGeqlFLsDqu1/p9wduz1IWQCgeUsejc+pWKCx8VO93vvU4emxji+SQ7 TzfV+hpxLGO9aJM0KPdCHBqQKF4hWwkU7SbbW0j9Rp2z7sutmZWDj9pnEx1JSR8B43bl 7e6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=IR0+A9+3R+ZFam9/qxvlCh4khXPtIciddJQk6G4J+P8=; b=ii9od0pdtNsBExMxZ3QCTSzeubaeKuXx7yC/r07klcg956pLTL0N4DSInGDgpAEuoc jV0+sXzrQMjWQDNIgPU6frN7pzvWXBmSHyft/X8ubHv2kF/ltrxQ0HGSV5t/BfPAOBAt Gx6CLDNq8qvtBUSXtwm0pQmIPt/6BNqer1Nz5bcMKtHLsnYaKXrsZ+Or5q/vVfufyw0Y A5DFOMETUvIYd9yFPdk8bNKUMvsja/la8N98urdy9pQHsjj8jVEI6+8w28xgB6MJ9a8k IN6lQrBjlZux7db5uO5uC8RuEtn6pfsdOoTvkC8yMfgF6yImPuIn+wrip0B1YaogCMTI VDTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector1 header.b=AOlvIFV4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k3si3385147pfc.91.2019.04.12.01.36.22; Fri, 12 Apr 2019 01:36:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector1 header.b=AOlvIFV4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727440AbfDLIfd (ORCPT + 99 others); Fri, 12 Apr 2019 04:35:33 -0400 Received: from mail-eopbgr30068.outbound.protection.outlook.com ([40.107.3.68]:59521 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727289AbfDLIfc (ORCPT ); Fri, 12 Apr 2019 04:35:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IR0+A9+3R+ZFam9/qxvlCh4khXPtIciddJQk6G4J+P8=; b=AOlvIFV4EXQZIAajYofIKdrn2XZruzWHlBZgewT7iFQEyUTAz1+itaYpwisUxZba3TIQaASSKFjzMP2ZYc4YGcZi4fOy7e4TEa95dZk0XBYRKYXOUkYUonFx7Rvd3HZafChsAtoWAwxrmYrr/+12G2GGdgBpekiQg76dZYG/Tcw= Received: from AM6PR04MB5781.eurprd04.prod.outlook.com (20.179.3.19) by AM6PR04MB5926.eurprd04.prod.outlook.com (20.179.3.159) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1792.14; Fri, 12 Apr 2019 08:35:24 +0000 Received: from AM6PR04MB5781.eurprd04.prod.outlook.com ([fe80::f9db:ed86:614e:460]) by AM6PR04MB5781.eurprd04.prod.outlook.com ([fe80::f9db:ed86:614e:460%4]) with mapi id 15.20.1792.009; Fri, 12 Apr 2019 08:35:24 +0000 From: "Z.q. Hou" To: "linux-pci@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "bhelgaas@google.com" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "l.subrahmanya@mobiveil.co.in" , "shawnguo@kernel.org" , Leo Li , "lorenzo.pieralisi@arm.com" , "catalin.marinas@arm.com" , "will.deacon@arm.com" CC: Mingkai Hu , "M.h. Lian" , Xiaowei Bao , "Z.q. Hou" Subject: [PATCHv5 02/20] PCI: mobiveil: Format the code without functionality change Thread-Topic: [PATCHv5 02/20] PCI: mobiveil: Format the code without functionality change Thread-Index: AQHU8Qqsskjg5i2JJUOtSWDylHX9tg== Date: Fri, 12 Apr 2019 08:35:24 +0000 Message-ID: <20190412083635.33626-3-Zhiqiang.Hou@nxp.com> References: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> In-Reply-To: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HK2PR06CA0011.apcprd06.prod.outlook.com (2603:1096:202:2e::23) To AM6PR04MB5781.eurprd04.prod.outlook.com (2603:10a6:20b:ad::19) authentication-results: spf=none (sender IP is ) smtp.mailfrom=zhiqiang.hou@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 98e1ad42-2a09-49ed-e2a8-08d6bf21ce5a x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:AM6PR04MB5926; x-ms-traffictypediagnostic: AM6PR04MB5926: x-microsoft-antispam-prvs: x-forefront-prvs: 0005B05917 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(376002)(136003)(366004)(396003)(39860400002)(189003)(199004)(478600001)(36756003)(305945005)(30864003)(52116002)(6486002)(110136005)(186003)(7416002)(3846002)(7736002)(6436002)(50226002)(54906003)(53946003)(316002)(6512007)(6116002)(25786009)(1076003)(26005)(86362001)(105586002)(8676002)(81166006)(386003)(106356001)(14454004)(2501003)(6506007)(81156014)(76176011)(5660300002)(102836004)(256004)(53936002)(71200400001)(71190400001)(2906002)(68736007)(476003)(66066001)(99286004)(2616005)(97736004)(4326008)(486006)(446003)(11346002)(8936002)(2201001)(14444005)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR04MB5926;H:AM6PR04MB5781.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: j1aRpFgyBxEmLcC3DnoLVdaAfOwlq7XVcdIr09AwnA8U5aLIqGc0+gHvyBDAG8rK0nVgdL74Q7mlJAyMwEmemlp9SFTl2Kl7/MmZGqPRm8bHtbl8gfZXVLOy6Y/xvz0EzkmHdv1w2oiJrVPxkMp/LaNUSnvuCsmb0D1s7p8dC0fP/bz9MpD/jDSRJ+4BWQtF2QqayMPYx3W+l3ogwhagzPbECI0B8bdQhtt3REG39+y1Q07BPD01eLklRDillF5uQhP7h0rymw0O2Eohgu3rc0+Dn97Mhwr2OxNhG3JeNIE+F/jpFOP1sbGSbLRLcL7C1U9zFhl+G2LlFC16LeDcbuWhHZNmq2EjE+dOp/uepPvoMOZHvDGwRiOV+PCyu2c4P8ZxkZjiG/CjpMgEXph1e0FBQRt8pNniBrQMTJqluD8= 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: 98e1ad42-2a09-49ed-e2a8-08d6bf21ce5a X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2019 08:35:24.2086 (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-Transport-CrossTenantHeadersStamped: AM6PR04MB5926 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4NCg0KSnVzdCBmb3JtYXQg dGhlIGNvZGUgd2l0aG91dCBmdW5jdGlvbmFsaXR5IGNoYW5nZS4NCg0KU2lnbmVkLW9mZi1ieTog SG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4NClJldmlld2VkLWJ5OiBNaW5naHVh biBMaWFuIDxNaW5naHVhbi5MaWFuQG54cC5jb20+DQotLS0NClY1Og0KIC0gUmV0b3VjaGVkIHRo ZSBzdWJqZWN0Lg0KDQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW1vYml2ZWlsLmMgfCAy NjEgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCAxMzcgaW5zZXJ0 aW9ucygrKSwgMTI0IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9wY2llLW1vYml2ZWlsLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbW9i aXZlaWwuYw0KaW5kZXggZDU1YzdlNzgwYzZlLi5iODc0NzFmMDhhNDAgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYw0KKysrIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9wY2llLW1vYml2ZWlsLmMNCkBAIC0zMSwzOCArMzEsNDAgQEANCiAgKiB0cmFu c2xhdGlvbiB0YWJsZXMgYXJlIGdyb3VwZWQgaW50byB3aW5kb3dzLCBlYWNoIHdpbmRvdyByZWdp c3RlcnMgYXJlDQogICogZ3JvdXBlZCBpbnRvIGJsb2NrcyBvZiA0IG9yIDE2IHJlZ2lzdGVycyBl YWNoDQogICovDQotI2RlZmluZSBQQUJfUkVHX0JMT0NLX1NJWkUJMTYNCi0jZGVmaW5lIFBBQl9F WFRfUkVHX0JMT0NLX1NJWkUJNA0KKyNkZWZpbmUgUEFCX1JFR19CTE9DS19TSVpFCQkxNg0KKyNk ZWZpbmUgUEFCX0VYVF9SRUdfQkxPQ0tfU0laRQkJNA0KIA0KLSNkZWZpbmUgUEFCX1JFR19BRERS KG9mZnNldCwgd2luKSAob2Zmc2V0ICsgKHdpbiAqIFBBQl9SRUdfQkxPQ0tfU0laRSkpDQotI2Rl ZmluZSBQQUJfRVhUX1JFR19BRERSKG9mZnNldCwgd2luKSAob2Zmc2V0ICsgKHdpbiAqIFBBQl9F WFRfUkVHX0JMT0NLX1NJWkUpKQ0KKyNkZWZpbmUgUEFCX1JFR19BRERSKG9mZnNldCwgd2luKQlc DQorCShvZmZzZXQgKyAod2luICogUEFCX1JFR19CTE9DS19TSVpFKSkNCisjZGVmaW5lIFBBQl9F WFRfUkVHX0FERFIob2Zmc2V0LCB3aW4pCVwNCisJKG9mZnNldCArICh3aW4gKiBQQUJfRVhUX1JF R19CTE9DS19TSVpFKSkNCiANCi0jZGVmaW5lIExUU1NNX1NUQVRVUwkJMHgwNDA0DQotI2RlZmlu ZSAgTFRTU01fU1RBVFVTX0wwX01BU0sJMHgzZg0KLSNkZWZpbmUgIExUU1NNX1NUQVRVU19MMAkw eDJkDQorI2RlZmluZSBMVFNTTV9TVEFUVVMJCQkweDA0MDQNCisjZGVmaW5lICBMVFNTTV9TVEFU VVNfTDBfTUFTSwkJMHgzZg0KKyNkZWZpbmUgIExUU1NNX1NUQVRVU19MMAkJMHgyZA0KIA0KLSNk ZWZpbmUgUEFCX0NUUkwJCTB4MDgwOA0KLSNkZWZpbmUgIEFNQkFfUElPX0VOQUJMRV9TSElGVAkw DQotI2RlZmluZSAgUEVYX1BJT19FTkFCTEVfU0hJRlQJMQ0KLSNkZWZpbmUgIFBBR0VfU0VMX1NI SUZUCTEzDQotI2RlZmluZSAgUEFHRV9TRUxfTUFTSwkJMHgzZg0KLSNkZWZpbmUgIFBBR0VfTE9f TUFTSwkJMHgzZmYNCi0jZGVmaW5lICBQQUdFX1NFTF9PRkZTRVRfU0hJRlQJMTANCisjZGVmaW5l IFBBQl9DVFJMCQkJMHgwODA4DQorI2RlZmluZSAgQU1CQV9QSU9fRU5BQkxFX1NISUZUCQkwDQor I2RlZmluZSAgUEVYX1BJT19FTkFCTEVfU0hJRlQJCTENCisjZGVmaW5lICBQQUdFX1NFTF9TSElG VAkJCTEzDQorI2RlZmluZSAgUEFHRV9TRUxfTUFTSwkJCTB4M2YNCisjZGVmaW5lICBQQUdFX0xP X01BU0sJCQkweDNmZg0KKyNkZWZpbmUgIFBBR0VfU0VMX09GRlNFVF9TSElGVAkJMTANCiANCi0j ZGVmaW5lIFBBQl9BWElfUElPX0NUUkwJMHgwODQwDQotI2RlZmluZSAgQVBJT19FTl9NQVNLCQkw eGYNCisjZGVmaW5lIFBBQl9BWElfUElPX0NUUkwJCTB4MDg0MA0KKyNkZWZpbmUgIEFQSU9fRU5f TUFTSwkJCTB4Zg0KIA0KLSNkZWZpbmUgUEFCX1BFWF9QSU9fQ1RSTAkweDA4YzANCi0jZGVmaW5l ICBQSU9fRU5BQkxFX1NISUZUCTANCisjZGVmaW5lIFBBQl9QRVhfUElPX0NUUkwJCTB4MDhjMA0K KyNkZWZpbmUgIFBJT19FTkFCTEVfU0hJRlQJCTANCiANCiAjZGVmaW5lIFBBQl9JTlRQX0FNQkFf TUlTQ19FTkIJCTB4MGIwYw0KLSNkZWZpbmUgUEFCX0lOVFBfQU1CQV9NSVNDX1NUQVQJMHgwYjFj DQorI2RlZmluZSBQQUJfSU5UUF9BTUJBX01JU0NfU1RBVAkJMHgwYjFjDQogI2RlZmluZSAgUEFC X0lOVFBfSU5UWF9NQVNLCQkweDAxZTANCiAjZGVmaW5lICBQQUJfSU5UUF9NU0lfTUFTSwkJMHg4 DQogDQotI2RlZmluZSBQQUJfQVhJX0FNQVBfQ1RSTCh3aW4pCVBBQl9SRUdfQUREUigweDBiYTAs IHdpbikNCi0jZGVmaW5lICBXSU5fRU5BQkxFX1NISUZUCTANCi0jZGVmaW5lICBXSU5fVFlQRV9T SElGVAkxDQorI2RlZmluZSBQQUJfQVhJX0FNQVBfQ1RSTCh3aW4pCQlQQUJfUkVHX0FERFIoMHgw YmEwLCB3aW4pDQorI2RlZmluZSAgV0lOX0VOQUJMRV9TSElGVAkJMA0KKyNkZWZpbmUgIFdJTl9U WVBFX1NISUZUCQkJMQ0KIA0KICNkZWZpbmUgUEFCX0VYVF9BWElfQU1BUF9TSVpFKHdpbikJUEFC X0VYVF9SRUdfQUREUigweGJhZjAsIHdpbikNCiANCkBAIC03MCwxNiArNzIsMTYgQEANCiAjZGVm aW5lICBBWElfV0lORE9XX0FMSUdOX01BU0sJCTMNCiANCiAjZGVmaW5lIFBBQl9BWElfQU1BUF9Q RVhfV0lOX0wod2luKQlQQUJfUkVHX0FERFIoMHgwYmE4LCB3aW4pDQotI2RlZmluZSAgUEFCX0JV U19TSElGVAkJMjQNCi0jZGVmaW5lICBQQUJfREVWSUNFX1NISUZUCTE5DQotI2RlZmluZSAgUEFC X0ZVTkNUSU9OX1NISUZUCTE2DQorI2RlZmluZSAgUEFCX0JVU19TSElGVAkJCTI0DQorI2RlZmlu ZSAgUEFCX0RFVklDRV9TSElGVAkJMTkNCisjZGVmaW5lICBQQUJfRlVOQ1RJT05fU0hJRlQJCTE2 DQogDQogI2RlZmluZSBQQUJfQVhJX0FNQVBfUEVYX1dJTl9IKHdpbikJUEFCX1JFR19BRERSKDB4 MGJhYywgd2luKQ0KICNkZWZpbmUgUEFCX0lOVFBfQVhJX1BJT19DTEFTUwkJMHg0NzQNCiANCi0j ZGVmaW5lIFBBQl9QRVhfQU1BUF9DVFJMKHdpbikJUEFCX1JFR19BRERSKDB4NGJhMCwgd2luKQ0K LSNkZWZpbmUgIEFNQVBfQ1RSTF9FTl9TSElGVAkwDQotI2RlZmluZSAgQU1BUF9DVFJMX1RZUEVf U0hJRlQJMQ0KKyNkZWZpbmUgUEFCX1BFWF9BTUFQX0NUUkwod2luKQkJUEFCX1JFR19BRERSKDB4 NGJhMCwgd2luKQ0KKyNkZWZpbmUgIEFNQVBfQ1RSTF9FTl9TSElGVAkJMA0KKyNkZWZpbmUgIEFN QVBfQ1RSTF9UWVBFX1NISUZUCQkxDQogDQogI2RlZmluZSBQQUJfRVhUX1BFWF9BTUFQX1NJWkVO KHdpbikJUEFCX0VYVF9SRUdfQUREUigweGJlZjAsIHdpbikNCiAjZGVmaW5lIFBBQl9QRVhfQU1B UF9BWElfV0lOKHdpbikJUEFCX1JFR19BRERSKDB4NGJhNCwgd2luKQ0KQEAgLTg3LDM5ICs4OSwz OSBAQA0KICNkZWZpbmUgUEFCX1BFWF9BTUFQX1BFWF9XSU5fSCh3aW4pCVBBQl9SRUdfQUREUigw eDRiYWMsIHdpbikNCiANCiAvKiBzdGFydGluZyBvZmZzZXQgb2YgSU5UWCBiaXRzIGluIHN0YXR1 cyByZWdpc3RlciAqLw0KLSNkZWZpbmUgUEFCX0lOVFhfU1RBUlQJNQ0KKyNkZWZpbmUgUEFCX0lO VFhfU1RBUlQJCQk1DQogDQogLyogc3VwcG9ydGVkIG51bWJlciBvZiBNU0kgaW50ZXJydXB0cyAq Lw0KLSNkZWZpbmUgUENJX05VTV9NU0kJMTYNCisjZGVmaW5lIFBDSV9OVU1fTVNJCQkJMTYNCiAN CiAvKiBNU0kgcmVnaXN0ZXJzICovDQotI2RlZmluZSBNU0lfQkFTRV9MT19PRkZTRVQJMHgwNA0K LSNkZWZpbmUgTVNJX0JBU0VfSElfT0ZGU0VUCTB4MDgNCi0jZGVmaW5lIE1TSV9TSVpFX09GRlNF VAkweDBjDQotI2RlZmluZSBNU0lfRU5BQkxFX09GRlNFVAkweDE0DQotI2RlZmluZSBNU0lfU1RB VFVTX09GRlNFVAkweDE4DQotI2RlZmluZSBNU0lfREFUQV9PRkZTRVQJMHgyMA0KLSNkZWZpbmUg TVNJX0FERFJfTF9PRkZTRVQJMHgyNA0KLSNkZWZpbmUgTVNJX0FERFJfSF9PRkZTRVQJMHgyOA0K KyNkZWZpbmUgTVNJX0JBU0VfTE9fT0ZGU0VUCQkweDA0DQorI2RlZmluZSBNU0lfQkFTRV9ISV9P RkZTRVQJCTB4MDgNCisjZGVmaW5lIE1TSV9TSVpFX09GRlNFVAkJCTB4MGMNCisjZGVmaW5lIE1T SV9FTkFCTEVfT0ZGU0VUCQkweDE0DQorI2RlZmluZSBNU0lfU1RBVFVTX09GRlNFVAkJMHgxOA0K KyNkZWZpbmUgTVNJX0RBVEFfT0ZGU0VUCQkJMHgyMA0KKyNkZWZpbmUgTVNJX0FERFJfTF9PRkZT RVQJCTB4MjQNCisjZGVmaW5lIE1TSV9BRERSX0hfT0ZGU0VUCQkweDI4DQogDQogLyogb3V0Ym91 bmQgYW5kIGluYm91bmQgd2luZG93IGRlZmluaXRpb25zICovDQotI2RlZmluZSBXSU5fTlVNXzAJ CTANCi0jZGVmaW5lIFdJTl9OVU1fMQkJMQ0KLSNkZWZpbmUgQ0ZHX1dJTkRPV19UWVBFCTANCi0j ZGVmaW5lIElPX1dJTkRPV19UWVBFCQkxDQotI2RlZmluZSBNRU1fV0lORE9XX1RZUEUJMg0KLSNk ZWZpbmUgSUJfV0lOX1NJWkUJCSgodTY0KTI1NiAqIDEwMjQgKiAxMDI0ICogMTAyNCkNCi0jZGVm aW5lIE1BWF9QSU9fV0lORE9XUwk4DQorI2RlZmluZSBXSU5fTlVNXzAJCQkwDQorI2RlZmluZSBX SU5fTlVNXzEJCQkxDQorI2RlZmluZSBDRkdfV0lORE9XX1RZUEUJCQkwDQorI2RlZmluZSBJT19X SU5ET1dfVFlQRQkJCTENCisjZGVmaW5lIE1FTV9XSU5ET1dfVFlQRQkJCTINCisjZGVmaW5lIElC X1dJTl9TSVpFCQkJKCh1NjQpMjU2ICogMTAyNCAqIDEwMjQgKiAxMDI0KQ0KKyNkZWZpbmUgTUFY X1BJT19XSU5ET1dTCQkJOA0KIA0KIC8qIFBhcmFtZXRlcnMgZm9yIHRoZSB3YWl0aW5nIGZvciBs aW5rIHVwIHJvdXRpbmUgKi8NCi0jZGVmaW5lIExJTktfV0FJVF9NQVhfUkVUUklFUwkxMA0KLSNk ZWZpbmUgTElOS19XQUlUX01JTgk5MDAwMA0KLSNkZWZpbmUgTElOS19XQUlUX01BWAkxMDAwMDAN CisjZGVmaW5lIExJTktfV0FJVF9NQVhfUkVUUklFUwkJMTANCisjZGVmaW5lIExJTktfV0FJVF9N SU4JCQk5MDAwMA0KKyNkZWZpbmUgTElOS19XQUlUX01BWAkJCTEwMDAwMA0KIA0KLSNkZWZpbmUg UEFHRURfQUREUl9CTkRSWQkJCTB4YzAwDQotI2RlZmluZSBPRkZTRVRfVE9fUEFHRV9BRERSKG9m ZikJCVwNCisjZGVmaW5lIFBBR0VEX0FERFJfQk5EUlkJCTB4YzAwDQorI2RlZmluZSBPRkZTRVRf VE9fUEFHRV9BRERSKG9mZikJXA0KIAkoKG9mZiAmIFBBR0VfTE9fTUFTSykgfCBQQUdFRF9BRERS X0JORFJZKQ0KLSNkZWZpbmUgT0ZGU0VUX1RPX1BBR0VfSURYKG9mZikJCQlcDQorI2RlZmluZSBP RkZTRVRfVE9fUEFHRV9JRFgob2ZmKQkJXA0KIAkoKG9mZiA+PiBQQUdFX1NFTF9PRkZTRVRfU0hJ RlQpICYgUEFHRV9TRUxfTUFTSykNCiANCiBzdHJ1Y3QgbW9iaXZlaWxfbXNpIHsJCQkvKiBNU0kg aW5mb3JtYXRpb24gKi8NCkBAIC0yOTcsMTQgKzI5OSwxNCBAQCBzdGF0aWMgdm9pZCBfX2lvbWVt ICptb2JpdmVpbF9wY2llX21hcF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cywNCiAJCQkJCXVuc2ln bmVkIGludCBkZXZmbiwgaW50IHdoZXJlKQ0KIHsNCiAJc3RydWN0IG1vYml2ZWlsX3BjaWUgKnBj aWUgPSBidXMtPnN5c2RhdGE7DQorCXUzMiB2YWx1ZTsNCiANCiAJaWYgKCFtb2JpdmVpbF9wY2ll X3ZhbGlkX2RldmljZShidXMsIGRldmZuKSkNCiAJCXJldHVybiBOVUxMOw0KIA0KLQlpZiAoYnVz LT5udW1iZXIgPT0gcGNpZS0+cm9vdF9idXNfbnIpIHsNCi0JCS8qIFJDIGNvbmZpZyBhY2Nlc3Mg Ki8NCisJLyogUkMgY29uZmlnIGFjY2VzcyAqLw0KKwlpZiAoYnVzLT5udW1iZXIgPT0gcGNpZS0+ cm9vdF9idXNfbnIpDQogCQlyZXR1cm4gcGNpZS0+Y3NyX2F4aV9zbGF2ZV9iYXNlICsgd2hlcmU7 DQotCX0NCiANCiAJLyoNCiAJICogRVAgY29uZmlnIGFjY2VzcyAoaW4gQ29uZmlnL0FQSU8gc3Bh Y2UpDQpAQCAtMzEyLDEwICszMTQsMTIgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqbW9iaXZlaWxf cGNpZV9tYXBfYnVzKHN0cnVjdCBwY2lfYnVzICpidXMsDQogCSAqIChCREYpIGluIFBBQl9BWElf QU1BUF9QRVhfV0lOX0wwIFJlZ2lzdGVyLg0KIAkgKiBSZWxpZXMgb24gcGNpX2xvY2sgc2VyaWFs aXphdGlvbg0KIAkgKi8NCi0JY3NyX3dyaXRlbChwY2llLCBidXMtPm51bWJlciA8PCBQQUJfQlVT X1NISUZUIHwNCi0JCQlQQ0lfU0xPVChkZXZmbikgPDwgUEFCX0RFVklDRV9TSElGVCB8DQotCQkJ UENJX0ZVTkMoZGV2Zm4pIDw8IFBBQl9GVU5DVElPTl9TSElGVCwNCi0JCQlQQUJfQVhJX0FNQVBf UEVYX1dJTl9MKFdJTl9OVU1fMCkpOw0KKwl2YWx1ZSA9IGJ1cy0+bnVtYmVyIDw8IFBBQl9CVVNf U0hJRlQgfA0KKwkJUENJX1NMT1QoZGV2Zm4pIDw8IFBBQl9ERVZJQ0VfU0hJRlQgfA0KKwkJUENJ X0ZVTkMoZGV2Zm4pIDw8IFBBQl9GVU5DVElPTl9TSElGVDsNCisNCisJY3NyX3dyaXRlbChwY2ll LCB2YWx1ZSwgUEFCX0FYSV9BTUFQX1BFWF9XSU5fTChXSU5fTlVNXzApKTsNCisNCiAJcmV0dXJu IHBjaWUtPmNvbmZpZ19heGlfc2xhdmVfYmFzZSArIHdoZXJlOw0KIH0NCiANCkBAIC0zNTAsMjIg KzM1NCwyMiBAQCBzdGF0aWMgdm9pZCBtb2JpdmVpbF9wY2llX2lzcihzdHJ1Y3QgaXJxX2Rlc2Mg KmRlc2MpDQogDQogCS8qIEhhbmRsZSBJTlR4ICovDQogCWlmIChpbnRyX3N0YXR1cyAmIFBBQl9J TlRQX0lOVFhfTUFTSykgew0KLQkJc2hpZnRlZF9zdGF0dXMgPSBjc3JfcmVhZGwocGNpZSwgUEFC X0lOVFBfQU1CQV9NSVNDX1NUQVQpID4+DQotCQkJUEFCX0lOVFhfU1RBUlQ7DQorCQlzaGlmdGVk X3N0YXR1cyA9IGNzcl9yZWFkbChwY2llLCBQQUJfSU5UUF9BTUJBX01JU0NfU1RBVCk7DQorCQlz aGlmdGVkX3N0YXR1cyA+Pj0gUEFCX0lOVFhfU1RBUlQ7DQogCQlkbyB7DQogCQkJZm9yX2VhY2hf c2V0X2JpdChiaXQsICZzaGlmdGVkX3N0YXR1cywgUENJX05VTV9JTlRYKSB7DQogCQkJCXZpcnEg PSBpcnFfZmluZF9tYXBwaW5nKHBjaWUtPmludHhfZG9tYWluLA0KLQkJCQkJCWJpdCArIDEpOw0K KwkJCQkJCQliaXQgKyAxKTsNCiAJCQkJaWYgKHZpcnEpDQogCQkJCQlnZW5lcmljX2hhbmRsZV9p cnEodmlycSk7DQogCQkJCWVsc2UNCi0JCQkJCWRldl9lcnJfcmF0ZWxpbWl0ZWQoZGV2LA0KLQkJ CQkJCSJ1bmV4cGVjdGVkIElSUSwgSU5UJWRcbiIsIGJpdCk7DQorCQkJCQlkZXZfZXJyX3JhdGVs aW1pdGVkKGRldiwgInVuZXhwZWN0ZWQgSVJRLCBJTlQlZFxuIiwNCisJCQkJCQkJICAgIGJpdCk7 DQogDQogCQkJCS8qIGNsZWFyIGludGVycnVwdCAqLw0KIAkJCQljc3Jfd3JpdGVsKHBjaWUsDQot CQkJCQlzaGlmdGVkX3N0YXR1cyA8PCBQQUJfSU5UWF9TVEFSVCwNCi0JCQkJCVBBQl9JTlRQX0FN QkFfTUlTQ19TVEFUKTsNCisJCQkJCSAgIHNoaWZ0ZWRfc3RhdHVzIDw8IFBBQl9JTlRYX1NUQVJU LA0KKwkJCQkJICAgUEFCX0lOVFBfQU1CQV9NSVNDX1NUQVQpOw0KIAkJCX0NCiAJCX0gd2hpbGUg KChzaGlmdGVkX3N0YXR1cyA+PiBQQUJfSU5UWF9TVEFSVCkgIT0gMCk7DQogCX0NCkBAIC0zNzUs OCArMzc5LDcgQEAgc3RhdGljIHZvaWQgbW9iaXZlaWxfcGNpZV9pc3Ioc3RydWN0IGlycV9kZXNj ICpkZXNjKQ0KIA0KIAkvKiBoYW5kbGUgTVNJIGludGVycnVwdHMgKi8NCiAJd2hpbGUgKG1zaV9z dGF0dXMgJiAxKSB7DQotCQltc2lfZGF0YSA9IHJlYWRsX3JlbGF4ZWQocGNpZS0+YXBiX2Nzcl9i YXNlDQotCQkJCSsgTVNJX0RBVEFfT0ZGU0VUKTsNCisJCW1zaV9kYXRhID0gcmVhZGxfcmVsYXhl ZChwY2llLT5hcGJfY3NyX2Jhc2UgKyBNU0lfREFUQV9PRkZTRVQpOw0KIA0KIAkJLyoNCiAJCSAq IE1TSV9TVEFUVVNfT0ZGU0VUIHJlZ2lzdGVyIGdldHMgdXBkYXRlZCB0byB6ZXJvDQpAQCAtMzg1 LDE4ICszODgsMTggQEAgc3RhdGljIHZvaWQgbW9iaXZlaWxfcGNpZV9pc3Ioc3RydWN0IGlycV9k ZXNjICpkZXNjKQ0KIAkJICogdHdvIGR1bW15IHJlYWRzLg0KIAkJICovDQogCQltc2lfYWRkcl9s byA9IHJlYWRsX3JlbGF4ZWQocGNpZS0+YXBiX2Nzcl9iYXNlICsNCi0JCQkJTVNJX0FERFJfTF9P RkZTRVQpOw0KKwkJCQkJICAgIE1TSV9BRERSX0xfT0ZGU0VUKTsNCiAJCW1zaV9hZGRyX2hpID0g cmVhZGxfcmVsYXhlZChwY2llLT5hcGJfY3NyX2Jhc2UgKw0KLQkJCQlNU0lfQUREUl9IX09GRlNF VCk7DQorCQkJCQkgICAgTVNJX0FERFJfSF9PRkZTRVQpOw0KIAkJZGV2X2RiZyhkZXYsICJNU0kg cmVnaXN0ZXJzLCBkYXRhOiAlMDh4LCBhZGRyOiAlMDh4OiUwOHhcbiIsDQotCQkJCW1zaV9kYXRh LCBtc2lfYWRkcl9oaSwgbXNpX2FkZHJfbG8pOw0KKwkJCW1zaV9kYXRhLCBtc2lfYWRkcl9oaSwg bXNpX2FkZHJfbG8pOw0KIA0KIAkJdmlycSA9IGlycV9maW5kX21hcHBpbmcobXNpLT5kZXZfZG9t YWluLCBtc2lfZGF0YSk7DQogCQlpZiAodmlycSkNCiAJCQlnZW5lcmljX2hhbmRsZV9pcnEodmly cSk7DQogDQogCQltc2lfc3RhdHVzID0gcmVhZGxfcmVsYXhlZChwY2llLT5hcGJfY3NyX2Jhc2Ug Kw0KLQkJCQlNU0lfU1RBVFVTX09GRlNFVCk7DQorCQkJCQkgICBNU0lfU1RBVFVTX09GRlNFVCk7 DQogCX0NCiANCiAJLyogQ2xlYXIgdGhlIGludGVycnVwdCBzdGF0dXMgKi8NCkBAIC00MTMsNyAr NDE2LDcgQEAgc3RhdGljIGludCBtb2JpdmVpbF9wY2llX3BhcnNlX2R0KHN0cnVjdCBtb2JpdmVp bF9wY2llICpwY2llKQ0KIA0KIAkvKiBtYXAgY29uZmlnIHJlc291cmNlICovDQogCXJlcyA9IHBs YXRmb3JtX2dldF9yZXNvdXJjZV9ieW5hbWUocGRldiwgSU9SRVNPVVJDRV9NRU0sDQotCQkJImNv bmZpZ19heGlfc2xhdmUiKTsNCisJCQkJCSAgICJjb25maWdfYXhpX3NsYXZlIik7DQogCXBjaWUt PmNvbmZpZ19heGlfc2xhdmVfYmFzZSA9IGRldm1fcGNpX3JlbWFwX2NmZ19yZXNvdXJjZShkZXYs IHJlcyk7DQogCWlmIChJU19FUlIocGNpZS0+Y29uZmlnX2F4aV9zbGF2ZV9iYXNlKSkNCiAJCXJl dHVybiBQVFJfRVJSKHBjaWUtPmNvbmZpZ19heGlfc2xhdmVfYmFzZSk7DQpAQCAtNDIxLDcgKzQy NCw3IEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfcGNpZV9wYXJzZV9kdChzdHJ1Y3QgbW9iaXZlaWxf cGNpZSAqcGNpZSkNCiANCiAJLyogbWFwIGNzciByZXNvdXJjZSAqLw0KIAlyZXMgPSBwbGF0Zm9y bV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElPUkVTT1VSQ0VfTUVNLA0KLQkJCSJjc3JfYXhp X3NsYXZlIik7DQorCQkJCQkgICAiY3NyX2F4aV9zbGF2ZSIpOw0KIAlwY2llLT5jc3JfYXhpX3Ns YXZlX2Jhc2UgPSBkZXZtX3BjaV9yZW1hcF9jZmdfcmVzb3VyY2UoZGV2LCByZXMpOw0KIAlpZiAo SVNfRVJSKHBjaWUtPmNzcl9heGlfc2xhdmVfYmFzZSkpDQogCQlyZXR1cm4gUFRSX0VSUihwY2ll LT5jc3JfYXhpX3NsYXZlX2Jhc2UpOw0KQEAgLTQ1Miw3ICs0NTUsNyBAQCBzdGF0aWMgaW50IG1v Yml2ZWlsX3BjaWVfcGFyc2VfZHQoc3RydWN0IG1vYml2ZWlsX3BjaWUgKnBjaWUpDQogfQ0KIA0K IHN0YXRpYyB2b2lkIHByb2dyYW1faWJfd2luZG93cyhzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNp ZSwgaW50IHdpbl9udW0sDQotCQlpbnQgcGNpX2FkZHIsIHUzMiB0eXBlLCB1NjQgc2l6ZSkNCisJ CQkgICAgICAgaW50IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0IHNpemUpDQogew0KIAlpbnQgcGlv X2N0cmxfdmFsOw0KIAlpbnQgYW1hcF9jdHJsX2R3Ow0KQEAgLTQ2NSwxOSArNDY4LDIwIEBAIHN0 YXRpYyB2b2lkIHByb2dyYW1faWJfd2luZG93cyhzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSwg aW50IHdpbl9udW0sDQogCX0NCiANCiAJcGlvX2N0cmxfdmFsID0gY3NyX3JlYWRsKHBjaWUsIFBB Ql9QRVhfUElPX0NUUkwpOw0KLQljc3Jfd3JpdGVsKHBjaWUsDQotCQlwaW9fY3RybF92YWwgfCAo MSA8PCBQSU9fRU5BQkxFX1NISUZUKSwgUEFCX1BFWF9QSU9fQ1RSTCk7DQotCWFtYXBfY3RybF9k dyA9IGNzcl9yZWFkbChwY2llLCBQQUJfUEVYX0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQotCWFtYXBf Y3RybF9kdyA9IChhbWFwX2N0cmxfZHcgfCAodHlwZSA8PCBBTUFQX0NUUkxfVFlQRV9TSElGVCkp Ow0KLQlhbWFwX2N0cmxfZHcgPSAoYW1hcF9jdHJsX2R3IHwgKDEgPDwgQU1BUF9DVFJMX0VOX1NI SUZUKSk7DQorCXBpb19jdHJsX3ZhbCB8PSAxIDw8IFBJT19FTkFCTEVfU0hJRlQ7DQorCWNzcl93 cml0ZWwocGNpZSwgcGlvX2N0cmxfdmFsLCBQQUJfUEVYX1BJT19DVFJMKTsNCiANCi0JY3NyX3dy aXRlbChwY2llLCBhbWFwX2N0cmxfZHcgfCBsb3dlcl8zMl9iaXRzKHNpemU2NCksDQotCQkgICBQ QUJfUEVYX0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQorCWFtYXBfY3RybF9kdyA9IGNzcl9yZWFkbChw Y2llLCBQQUJfUEVYX0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQorCWFtYXBfY3RybF9kdyB8PSAodHlw ZSA8PCBBTUFQX0NUUkxfVFlQRV9TSElGVCkgfA0KKwkJCSgxIDw8IEFNQVBfQ1RSTF9FTl9TSElG VCkgfA0KKwkJCWxvd2VyXzMyX2JpdHMoc2l6ZTY0KTsNCisJY3NyX3dyaXRlbChwY2llLCBhbWFw X2N0cmxfZHcsIFBBQl9QRVhfQU1BUF9DVFJMKHdpbl9udW0pKTsNCiANCiAJY3NyX3dyaXRlbChw Y2llLCB1cHBlcl8zMl9iaXRzKHNpemU2NCksDQogCQkgICBQQUJfRVhUX1BFWF9BTUFQX1NJWkVO KHdpbl9udW0pKTsNCiANCiAJY3NyX3dyaXRlbChwY2llLCBwY2lfYWRkciwgUEFCX1BFWF9BTUFQ X0FYSV9XSU4od2luX251bSkpOw0KKw0KIAljc3Jfd3JpdGVsKHBjaWUsIHBjaV9hZGRyLCBQQUJf UEVYX0FNQVBfUEVYX1dJTl9MKHdpbl9udW0pKTsNCiAJY3NyX3dyaXRlbChwY2llLCAwLCBQQUJf UEVYX0FNQVBfUEVYX1dJTl9IKHdpbl9udW0pKTsNCiB9DQpAQCAtNDg2LDcgKzQ5MCw4IEBAIHN0 YXRpYyB2b2lkIHByb2dyYW1faWJfd2luZG93cyhzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSwg aW50IHdpbl9udW0sDQogICogcm91dGluZSB0byBwcm9ncmFtIHRoZSBvdXRib3VuZCB3aW5kb3dz DQogICovDQogc3RhdGljIHZvaWQgcHJvZ3JhbV9vYl93aW5kb3dzKHN0cnVjdCBtb2JpdmVpbF9w Y2llICpwY2llLCBpbnQgd2luX251bSwNCi0JCXU2NCBjcHVfYWRkciwgdTY0IHBjaV9hZGRyLCB1 MzIgY29uZmlnX2lvX2JpdCwgdTY0IHNpemUpDQorCQkJICAgICAgIHU2NCBjcHVfYWRkciwgdTY0 IHBjaV9hZGRyLA0KKwkJCSAgICAgICB1MzIgY29uZmlnX2lvX2JpdCwgdTY0IHNpemUpDQogew0K IA0KIAl1MzIgdmFsdWUsIHR5cGU7DQpAQCAtNTA1LDcgKzUxMCw3IEBAIHN0YXRpYyB2b2lkIHBy b2dyYW1fb2Jfd2luZG93cyhzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSwgaW50IHdpbl9udW0s DQogCXR5cGUgPSBjb25maWdfaW9fYml0Ow0KIAl2YWx1ZSA9IGNzcl9yZWFkbChwY2llLCBQQUJf QVhJX0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQogCWNzcl93cml0ZWwocGNpZSwgMSA8PCBXSU5fRU5B QkxFX1NISUZUIHwgdHlwZSA8PCBXSU5fVFlQRV9TSElGVCB8DQotCQkJbG93ZXJfMzJfYml0cyhz aXplNjQpLCBQQUJfQVhJX0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQorCQkgICBsb3dlcl8zMl9iaXRz KHNpemU2NCksIFBBQl9BWElfQU1BUF9DVFJMKHdpbl9udW0pKTsNCiANCiAJY3NyX3dyaXRlbChw Y2llLCB1cHBlcl8zMl9iaXRzKHNpemU2NCksIFBBQl9FWFRfQVhJX0FNQVBfU0laRSh3aW5fbnVt KSk7DQogDQpAQCAtNTE1LDE0ICs1MjAsMTQgQEAgc3RhdGljIHZvaWQgcHJvZ3JhbV9vYl93aW5k b3dzKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llLCBpbnQgd2luX251bSwNCiAJICovDQogCXZh bHVlID0gY3NyX3JlYWRsKHBjaWUsIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbl9udW0pKTsNCiAJ Y3NyX3dyaXRlbChwY2llLCBjcHVfYWRkciAmICh+QVhJX1dJTkRPV19BTElHTl9NQVNLKSwNCi0J CQlQQUJfQVhJX0FNQVBfQVhJX1dJTih3aW5fbnVtKSk7DQorCQkgICBQQUJfQVhJX0FNQVBfQVhJ X1dJTih3aW5fbnVtKSk7DQogDQogCXZhbHVlID0gY3NyX3JlYWRsKHBjaWUsIFBBQl9BWElfQU1B UF9QRVhfV0lOX0god2luX251bSkpOw0KIA0KIAljc3Jfd3JpdGVsKHBjaWUsIGxvd2VyXzMyX2Jp dHMocGNpX2FkZHIpLA0KLQkJCVBBQl9BWElfQU1BUF9QRVhfV0lOX0wod2luX251bSkpOw0KKwkJ ICAgUEFCX0FYSV9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7DQogCWNzcl93cml0ZWwocGNpZSwg dXBwZXJfMzJfYml0cyhwY2lfYWRkciksDQotCQkJUEFCX0FYSV9BTUFQX1BFWF9XSU5fSCh3aW5f bnVtKSk7DQorCQkgICBQQUJfQVhJX0FNQVBfUEVYX1dJTl9IKHdpbl9udW0pKTsNCiANCiAJcGNp ZS0+b2Jfd2luc19jb25maWd1cmVkKys7DQogfQ0KQEAgLTUzOCw3ICs1NDMsOSBAQCBzdGF0aWMg aW50IG1vYml2ZWlsX2JyaW5ndXBfbGluayhzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSkNCiAN CiAJCXVzbGVlcF9yYW5nZShMSU5LX1dBSVRfTUlOLCBMSU5LX1dBSVRfTUFYKTsNCiAJfQ0KKw0K IAlkZXZfZXJyKCZwY2llLT5wZGV2LT5kZXYsICJsaW5rIG5ldmVyIGNhbWUgdXBcbiIpOw0KKw0K IAlyZXR1cm4gLUVUSU1FRE9VVDsNCiB9DQogDQpAQCAtNTUxLDE2ICs1NTgsMTYgQEAgc3RhdGlj IHZvaWQgbW9iaXZlaWxfcGNpZV9lbmFibGVfbXNpKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2ll KQ0KIAltc2ktPm1zaV9wYWdlc19waHlzID0gKHBoeXNfYWRkcl90KW1zZ19hZGRyOw0KIA0KIAl3 cml0ZWxfcmVsYXhlZChsb3dlcl8zMl9iaXRzKG1zZ19hZGRyKSwNCi0JCXBjaWUtPmFwYl9jc3Jf YmFzZSArIE1TSV9CQVNFX0xPX09GRlNFVCk7DQorCQkgICAgICAgcGNpZS0+YXBiX2Nzcl9iYXNl ICsgTVNJX0JBU0VfTE9fT0ZGU0VUKTsNCiAJd3JpdGVsX3JlbGF4ZWQodXBwZXJfMzJfYml0cyht c2dfYWRkciksDQotCQlwY2llLT5hcGJfY3NyX2Jhc2UgKyBNU0lfQkFTRV9ISV9PRkZTRVQpOw0K KwkJICAgICAgIHBjaWUtPmFwYl9jc3JfYmFzZSArIE1TSV9CQVNFX0hJX09GRlNFVCk7DQogCXdy aXRlbF9yZWxheGVkKDQwOTYsIHBjaWUtPmFwYl9jc3JfYmFzZSArIE1TSV9TSVpFX09GRlNFVCk7 DQogCXdyaXRlbF9yZWxheGVkKDEsIHBjaWUtPmFwYl9jc3JfYmFzZSArIE1TSV9FTkFCTEVfT0ZG U0VUKTsNCiB9DQogDQogc3RhdGljIGludCBtb2JpdmVpbF9ob3N0X2luaXQoc3RydWN0IG1vYml2 ZWlsX3BjaWUgKnBjaWUpDQogew0KLQl1MzIgdmFsdWUsIHBhYl9jdHJsLCB0eXBlID0gMDsNCisJ dTMyIHZhbHVlLCBwYWJfY3RybCwgdHlwZTsNCiAJaW50IGVycjsNCiAJc3RydWN0IHJlc291cmNl X2VudHJ5ICp3aW4sICp0bXA7DQogDQpAQCAtNTc1LDI2ICs1ODIsMjcgQEAgc3RhdGljIGludCBt b2JpdmVpbF9ob3N0X2luaXQoc3RydWN0IG1vYml2ZWlsX3BjaWUgKnBjaWUpDQogCSAqIFNwYWNl DQogCSAqLw0KIAl2YWx1ZSA9IGNzcl9yZWFkbChwY2llLCBQQ0lfQ09NTUFORCk7DQotCWNzcl93 cml0ZWwocGNpZSwgdmFsdWUgfCBQQ0lfQ09NTUFORF9JTyB8IFBDSV9DT01NQU5EX01FTU9SWSB8 DQotCQlQQ0lfQ09NTUFORF9NQVNURVIsIFBDSV9DT01NQU5EKTsNCisJdmFsdWUgfD0gUENJX0NP TU1BTkRfSU8gfCBQQ0lfQ09NTUFORF9NRU1PUlkgfCBQQ0lfQ09NTUFORF9NQVNURVI7DQorCWNz cl93cml0ZWwocGNpZSwgdmFsdWUsIFBDSV9DT01NQU5EKTsNCiANCiAJLyoNCiAJICogcHJvZ3Jh bSBQSU8gRW5hYmxlIEJpdCB0byAxIChhbmQgUEVYIFBJTyBFbmFibGUgdG8gMSkgaW4gUEFCX0NU UkwNCiAJICogcmVnaXN0ZXINCiAJICovDQogCXBhYl9jdHJsID0gY3NyX3JlYWRsKHBjaWUsIFBB Ql9DVFJMKTsNCi0JY3NyX3dyaXRlbChwY2llLCBwYWJfY3RybCB8ICgxIDw8IEFNQkFfUElPX0VO QUJMRV9TSElGVCkgfA0KLQkJKDEgPDwgUEVYX1BJT19FTkFCTEVfU0hJRlQpLCBQQUJfQ1RSTCk7 DQorCXBhYl9jdHJsIHw9ICgxIDw8IEFNQkFfUElPX0VOQUJMRV9TSElGVCkgfCAoMSA8PCBQRVhf UElPX0VOQUJMRV9TSElGVCk7DQorCWNzcl93cml0ZWwocGNpZSwgcGFiX2N0cmwsIFBBQl9DVFJM KTsNCiANCiAJY3NyX3dyaXRlbChwY2llLCAoUEFCX0lOVFBfSU5UWF9NQVNLIHwgUEFCX0lOVFBf TVNJX01BU0spLA0KLQkJUEFCX0lOVFBfQU1CQV9NSVNDX0VOQik7DQorCQkgICBQQUJfSU5UUF9B TUJBX01JU0NfRU5CKTsNCiANCiAJLyoNCiAJICogcHJvZ3JhbSBQSU8gRW5hYmxlIEJpdCB0byAx IGFuZCBDb25maWcgV2luZG93IEVuYWJsZSBCaXQgdG8gMSBpbg0KIAkgKiBQQUJfQVhJX1BJT19D VFJMIFJlZ2lzdGVyDQogCSAqLw0KIAl2YWx1ZSA9IGNzcl9yZWFkbChwY2llLCBQQUJfQVhJX1BJ T19DVFJMKTsNCi0JY3NyX3dyaXRlbChwY2llLCB2YWx1ZSB8IEFQSU9fRU5fTUFTSywgUEFCX0FY SV9QSU9fQ1RSTCk7DQorCXZhbHVlIHw9IEFQSU9fRU5fTUFTSzsNCisJY3NyX3dyaXRlbChwY2ll LCB2YWx1ZSwgUEFCX0FYSV9QSU9fQ1RSTCk7DQogDQogCS8qDQogCSAqIHdlJ2xsIHByb2dyYW0g b25lIG91dGJvdW5kIHdpbmRvdyBmb3IgY29uZmlnIHJlYWRzIGFuZA0KQEAgLTYwNSwyNSArNjEz LDI1IEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfaG9zdF9pbml0KHN0cnVjdCBtb2JpdmVpbF9wY2ll ICpwY2llKQ0KIA0KIAkvKiBjb25maWcgb3V0Ym91bmQgdHJhbnNsYXRpb24gd2luZG93ICovDQog CXByb2dyYW1fb2Jfd2luZG93cyhwY2llLCBwY2llLT5vYl93aW5zX2NvbmZpZ3VyZWQsDQotCQkJ cGNpZS0+b2JfaW9fcmVzLT5zdGFydCwgMCwgQ0ZHX1dJTkRPV19UWVBFLA0KLQkJCXJlc291cmNl X3NpemUocGNpZS0+b2JfaW9fcmVzKSk7DQorCQkJICAgcGNpZS0+b2JfaW9fcmVzLT5zdGFydCwg MCwgQ0ZHX1dJTkRPV19UWVBFLA0KKwkJCSAgIHJlc291cmNlX3NpemUocGNpZS0+b2JfaW9fcmVz KSk7DQogDQogCS8qIG1lbW9yeSBpbmJvdW5kIHRyYW5zbGF0aW9uIHdpbmRvdyAqLw0KIAlwcm9n cmFtX2liX3dpbmRvd3MocGNpZSwgV0lOX05VTV8xLCAwLCBNRU1fV0lORE9XX1RZUEUsIElCX1dJ Tl9TSVpFKTsNCiANCiAJLyogR2V0IHRoZSBJL08gYW5kIG1lbW9yeSByYW5nZXMgZnJvbSBEVCAq Lw0KIAlyZXNvdXJjZV9saXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUod2luLCB0bXAsICZwY2llLT5y ZXNvdXJjZXMpIHsNCi0JCXR5cGUgPSAwOw0KIAkJaWYgKHJlc291cmNlX3R5cGUod2luLT5yZXMp ID09IElPUkVTT1VSQ0VfTUVNKQ0KIAkJCXR5cGUgPSBNRU1fV0lORE9XX1RZUEU7DQotCQlpZiAo cmVzb3VyY2VfdHlwZSh3aW4tPnJlcykgPT0gSU9SRVNPVVJDRV9JTykNCisJCWVsc2UgaWYgKHJl c291cmNlX3R5cGUod2luLT5yZXMpID09IElPUkVTT1VSQ0VfSU8pDQogCQkJdHlwZSA9IElPX1dJ TkRPV19UWVBFOw0KLQkJaWYgKHR5cGUpIHsNCi0JCQkvKiBjb25maWd1cmUgb3V0Ym91bmQgdHJh bnNsYXRpb24gd2luZG93ICovDQotCQkJcHJvZ3JhbV9vYl93aW5kb3dzKHBjaWUsIHBjaWUtPm9i X3dpbnNfY29uZmlndXJlZCwNCi0JCQkJd2luLT5yZXMtPnN0YXJ0LCAwLCB0eXBlLA0KLQkJCQly ZXNvdXJjZV9zaXplKHdpbi0+cmVzKSk7DQotCQl9DQorCQllbHNlDQorCQkJY29udGludWU7DQor DQorCQkvKiBjb25maWd1cmUgb3V0Ym91bmQgdHJhbnNsYXRpb24gd2luZG93ICovDQorCQlwcm9n cmFtX29iX3dpbmRvd3MocGNpZSwgcGNpZS0+b2Jfd2luc19jb25maWd1cmVkLA0KKwkJCQkgICB3 aW4tPnJlcy0+c3RhcnQsIDAsIHR5cGUsDQorCQkJCSAgIHJlc291cmNlX3NpemUod2luLT5yZXMp KTsNCiAJfQ0KIA0KIAkvKiBzZXR1cCBNU0kgaGFyZHdhcmUgcmVnaXN0ZXJzICovDQpAQCAtNjQz LDcgKzY1MSw4IEBAIHN0YXRpYyB2b2lkIG1vYml2ZWlsX21hc2tfaW50eF9pcnEoc3RydWN0IGly cV9kYXRhICpkYXRhKQ0KIAltYXNrID0gMSA8PCAoKGRhdGEtPmh3aXJxICsgUEFCX0lOVFhfU1RB UlQpIC0gMSk7DQogCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcGNpZS0+aW50eF9tYXNrX2xvY2ss IGZsYWdzKTsNCiAJc2hpZnRlZF92YWwgPSBjc3JfcmVhZGwocGNpZSwgUEFCX0lOVFBfQU1CQV9N SVNDX0VOQik7DQotCWNzcl93cml0ZWwocGNpZSwgKHNoaWZ0ZWRfdmFsICYgKH5tYXNrKSksIFBB Ql9JTlRQX0FNQkFfTUlTQ19FTkIpOw0KKwlzaGlmdGVkX3ZhbCAmPSB+bWFzazsNCisJY3NyX3dy aXRlbChwY2llLCBzaGlmdGVkX3ZhbCwgUEFCX0lOVFBfQU1CQV9NSVNDX0VOQik7DQogCXJhd19z cGluX3VubG9ja19pcnFyZXN0b3JlKCZwY2llLT5pbnR4X21hc2tfbG9jaywgZmxhZ3MpOw0KIH0N CiANCkBAIC02NTgsNyArNjY3LDggQEAgc3RhdGljIHZvaWQgbW9iaXZlaWxfdW5tYXNrX2ludHhf aXJxKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkNCiAJbWFzayA9IDEgPDwgKChkYXRhLT5od2lycSAr IFBBQl9JTlRYX1NUQVJUKSAtIDEpOw0KIAlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJnBjaWUtPmlu dHhfbWFza19sb2NrLCBmbGFncyk7DQogCXNoaWZ0ZWRfdmFsID0gY3NyX3JlYWRsKHBjaWUsIFBB Ql9JTlRQX0FNQkFfTUlTQ19FTkIpOw0KLQljc3Jfd3JpdGVsKHBjaWUsIChzaGlmdGVkX3ZhbCB8 IG1hc2spLCBQQUJfSU5UUF9BTUJBX01JU0NfRU5CKTsNCisJc2hpZnRlZF92YWwgfD0gbWFzazsN CisJY3NyX3dyaXRlbChwY2llLCBzaGlmdGVkX3ZhbCwgUEFCX0lOVFBfQU1CQV9NSVNDX0VOQik7 DQogCXJhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKCZwY2llLT5pbnR4X21hc2tfbG9jaywgZmxh Z3MpOw0KIH0NCiANCkBAIC02NzIsMTAgKzY4MiwxMSBAQCBzdGF0aWMgc3RydWN0IGlycV9jaGlw IGludHhfaXJxX2NoaXAgPSB7DQogDQogLyogcm91dGluZSB0byBzZXR1cCB0aGUgSU5UeCByZWxh dGVkIGRhdGEgKi8NCiBzdGF0aWMgaW50IG1vYml2ZWlsX3BjaWVfaW50eF9tYXAoc3RydWN0IGly cV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IGlycSwNCi0JCWlycV9od19udW1iZXJfdCBo d2lycSkNCisJCQkJICBpcnFfaHdfbnVtYmVyX3QgaHdpcnEpDQogew0KIAlpcnFfc2V0X2NoaXBf YW5kX2hhbmRsZXIoaXJxLCAmaW50eF9pcnFfY2hpcCwgaGFuZGxlX2xldmVsX2lycSk7DQogCWly cV9zZXRfY2hpcF9kYXRhKGlycSwgZG9tYWluLT5ob3N0X2RhdGEpOw0KKw0KIAlyZXR1cm4gMDsN CiB9DQogDQpAQCAtNjkyLDcgKzcwMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgbW9iaXZl aWxfbXNpX2lycV9jaGlwID0gew0KIA0KIHN0YXRpYyBzdHJ1Y3QgbXNpX2RvbWFpbl9pbmZvIG1v Yml2ZWlsX21zaV9kb21haW5faW5mbyA9IHsNCiAJLmZsYWdzCT0gKE1TSV9GTEFHX1VTRV9ERUZf RE9NX09QUyB8IE1TSV9GTEFHX1VTRV9ERUZfQ0hJUF9PUFMgfA0KLQkJTVNJX0ZMQUdfTVVMVElf UENJX01TSSB8IE1TSV9GTEFHX1BDSV9NU0lYKSwNCisJCSAgIE1TSV9GTEFHX01VTFRJX1BDSV9N U0kgfCBNU0lfRkxBR19QQ0lfTVNJWCksDQogCS5jaGlwCT0gJm1vYml2ZWlsX21zaV9pcnFfY2hp cCwNCiB9Ow0KIA0KQEAgLTcxMCw3ICs3MjEsNyBAQCBzdGF0aWMgdm9pZCBtb2JpdmVpbF9jb21w b3NlX21zaV9tc2coc3RydWN0IGlycV9kYXRhICpkYXRhLCBzdHJ1Y3QgbXNpX21zZyAqbXNnKQ0K IH0NCiANCiBzdGF0aWMgaW50IG1vYml2ZWlsX21zaV9zZXRfYWZmaW5pdHkoc3RydWN0IGlycV9k YXRhICppcnFfZGF0YSwNCi0JCWNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCBib29sIGZvcmNl KQ0KKwkJCQkgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCBib29sIGZvcmNlKQ0KIHsN CiAJcmV0dXJuIC1FSU5WQUw7DQogfQ0KQEAgLTcyMiw3ICs3MzMsOCBAQCBzdGF0aWMgc3RydWN0 IGlycV9jaGlwIG1vYml2ZWlsX21zaV9ib3R0b21faXJxX2NoaXAgPSB7DQogfTsNCiANCiBzdGF0 aWMgaW50IG1vYml2ZWlsX2lycV9tc2lfZG9tYWluX2FsbG9jKHN0cnVjdCBpcnFfZG9tYWluICpk b21haW4sDQotCQl1bnNpZ25lZCBpbnQgdmlycSwgdW5zaWduZWQgaW50IG5yX2lycXMsIHZvaWQg KmFyZ3MpDQorCQkJCQkgdW5zaWduZWQgaW50IHZpcnEsDQorCQkJCQkgdW5zaWduZWQgaW50IG5y X2lycXMsIHZvaWQgKmFyZ3MpDQogew0KIAlzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSA9IGRv bWFpbi0+aG9zdF9kYXRhOw0KIAlzdHJ1Y3QgbW9iaXZlaWxfbXNpICptc2kgPSAmcGNpZS0+bXNp Ow0KQEAgLTc0MiwxMyArNzU0LDEzIEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfaXJxX21zaV9kb21h aW5fYWxsb2Moc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwNCiAJbXV0ZXhfdW5sb2NrKCZtc2kt PmxvY2spOw0KIA0KIAlpcnFfZG9tYWluX3NldF9pbmZvKGRvbWFpbiwgdmlycSwgYml0LCAmbW9i aXZlaWxfbXNpX2JvdHRvbV9pcnFfY2hpcCwNCi0JCQkJZG9tYWluLT5ob3N0X2RhdGEsIGhhbmRs ZV9sZXZlbF9pcnEsDQotCQkJCU5VTEwsIE5VTEwpOw0KKwkJCSAgICBkb21haW4tPmhvc3RfZGF0 YSwgaGFuZGxlX2xldmVsX2lycSwgTlVMTCwgTlVMTCk7DQogCXJldHVybiAwOw0KIH0NCiANCiBz dGF0aWMgdm9pZCBtb2JpdmVpbF9pcnFfbXNpX2RvbWFpbl9mcmVlKHN0cnVjdCBpcnFfZG9tYWlu ICpkb21haW4sDQotCQl1bnNpZ25lZCBpbnQgdmlycSwgdW5zaWduZWQgaW50IG5yX2lycXMpDQor CQkJCQkgdW5zaWduZWQgaW50IHZpcnEsDQorCQkJCQkgdW5zaWduZWQgaW50IG5yX2lycXMpDQog ew0KIAlzdHJ1Y3QgaXJxX2RhdGEgKmQgPSBpcnFfZG9tYWluX2dldF9pcnFfZGF0YShkb21haW4s IHZpcnEpOw0KIAlzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSA9IGlycV9kYXRhX2dldF9pcnFf Y2hpcF9kYXRhKGQpOw0KQEAgLTc1NiwxMiArNzY4LDExIEBAIHN0YXRpYyB2b2lkIG1vYml2ZWls X2lycV9tc2lfZG9tYWluX2ZyZWUoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwNCiANCiAJbXV0 ZXhfbG9jaygmbXNpLT5sb2NrKTsNCiANCi0JaWYgKCF0ZXN0X2JpdChkLT5od2lycSwgbXNpLT5t c2lfaXJxX2luX3VzZSkpIHsNCisJaWYgKCF0ZXN0X2JpdChkLT5od2lycSwgbXNpLT5tc2lfaXJx X2luX3VzZSkpDQogCQlkZXZfZXJyKCZwY2llLT5wZGV2LT5kZXYsICJ0cnlpbmcgdG8gZnJlZSB1 bnVzZWQgTVNJIyVsdVxuIiwNCiAJCQlkLT5od2lycSk7DQotCX0gZWxzZSB7DQorCWVsc2UNCiAJ CV9fY2xlYXJfYml0KGQtPmh3aXJxLCBtc2ktPm1zaV9pcnFfaW5fdXNlKTsNCi0JfQ0KIA0KIAlt dXRleF91bmxvY2soJm1zaS0+bG9jayk7DQogfQ0KQEAgLTc4NSwxMiArNzk2LDE0IEBAIHN0YXRp YyBpbnQgbW9iaXZlaWxfYWxsb2NhdGVfbXNpX2RvbWFpbnMoc3RydWN0IG1vYml2ZWlsX3BjaWUg KnBjaWUpDQogCX0NCiANCiAJbXNpLT5tc2lfZG9tYWluID0gcGNpX21zaV9jcmVhdGVfaXJxX2Rv bWFpbihmd25vZGUsDQotCQkJCSZtb2JpdmVpbF9tc2lfZG9tYWluX2luZm8sIG1zaS0+ZGV2X2Rv bWFpbik7DQorCQkJCQkJICAgICZtb2JpdmVpbF9tc2lfZG9tYWluX2luZm8sDQorCQkJCQkJICAg IG1zaS0+ZGV2X2RvbWFpbik7DQogCWlmICghbXNpLT5tc2lfZG9tYWluKSB7DQogCQlkZXZfZXJy KGRldiwgImZhaWxlZCB0byBjcmVhdGUgTVNJIGRvbWFpblxuIik7DQogCQlpcnFfZG9tYWluX3Jl bW92ZShtc2ktPmRldl9kb21haW4pOw0KIAkJcmV0dXJuIC1FTk9NRU07DQogCX0NCisNCiAJcmV0 dXJuIDA7DQogfQ0KIA0KQEAgLTgwMSw4ICs4MTQsOCBAQCBzdGF0aWMgaW50IG1vYml2ZWlsX3Bj aWVfaW5pdF9pcnFfZG9tYWluKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llKQ0KIAlpbnQgcmV0 Ow0KIA0KIAkvKiBzZXR1cCBJTlR4ICovDQotCXBjaWUtPmludHhfZG9tYWluID0gaXJxX2RvbWFp bl9hZGRfbGluZWFyKG5vZGUsDQotCQkJCVBDSV9OVU1fSU5UWCwgJmludHhfZG9tYWluX29wcywg cGNpZSk7DQorCXBjaWUtPmludHhfZG9tYWluID0gaXJxX2RvbWFpbl9hZGRfbGluZWFyKG5vZGUs IFBDSV9OVU1fSU5UWCwNCisJCQkJCQkgICZpbnR4X2RvbWFpbl9vcHMsIHBjaWUpOw0KIA0KIAlp ZiAoIXBjaWUtPmludHhfZG9tYWluKSB7DQogCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQg YSBJTlR4IElSUSBkb21haW5cbiIpOw0KQEAgLTkxNywxMCArOTMwLDEwIEBAIE1PRFVMRV9ERVZJ Q0VfVEFCTEUob2YsIG1vYml2ZWlsX3BjaWVfb2ZfbWF0Y2gpOw0KIHN0YXRpYyBzdHJ1Y3QgcGxh dGZvcm1fZHJpdmVyIG1vYml2ZWlsX3BjaWVfZHJpdmVyID0gew0KIAkucHJvYmUgPSBtb2JpdmVp bF9wY2llX3Byb2JlLA0KIAkuZHJpdmVyID0gew0KLQkJCS5uYW1lID0gIm1vYml2ZWlsLXBjaWUi LA0KLQkJCS5vZl9tYXRjaF90YWJsZSA9IG1vYml2ZWlsX3BjaWVfb2ZfbWF0Y2gsDQotCQkJLnN1 cHByZXNzX2JpbmRfYXR0cnMgPSB0cnVlLA0KLQkJfSwNCisJCS5uYW1lID0gIm1vYml2ZWlsLXBj aWUiLA0KKwkJLm9mX21hdGNoX3RhYmxlID0gbW9iaXZlaWxfcGNpZV9vZl9tYXRjaCwNCisJCS5z dXBwcmVzc19iaW5kX2F0dHJzID0gdHJ1ZSwNCisJfSwNCiB9Ow0KIA0KIGJ1aWx0aW5fcGxhdGZv cm1fZHJpdmVyKG1vYml2ZWlsX3BjaWVfZHJpdmVyKTsNCi0tIA0KMi4xNy4xDQoNCg==