Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp2536119pxp; Mon, 21 Mar 2022 23:54:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx0crKLPjIgyG2wW+Pg3RmYmjlyl3I6URWeo0hUaapyzfc24HzCAVrJ9ngo7s5yTLR+aona X-Received: by 2002:a17:902:70c1:b0:154:667f:e361 with SMTP id l1-20020a17090270c100b00154667fe361mr6859394plt.148.1647932080215; Mon, 21 Mar 2022 23:54:40 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1647932080; cv=pass; d=google.com; s=arc-20160816; b=g39A0YDsViPx9CfcROdHDFoXAcSpTYXZ/4dwoie8KeA4IqEpI2hk8SocwTwMrfqHpv 8Fp2hQvWRf0xV49hlQNAcz432GgXSA1KP/geezSzaMLFyQy/qtis6nZ4LNrAehPhrNWO ALLELvO+h79OXwTExFkrubozVH2/dFKNoNrO3rxUUCWu3x/JdJCuq2DJpoLprfIC33Yl LRtWWjpIPTvIGQ9ECSHGusPNoD7FMIAMlgSHPdaFQ1XoiHYxCDHAwZyzshk01lcO7uTt h8YIUOG8KkUPL7sXs5BiGy4p/y4b/MBTi/GEQmYUzVUNO8nveL7UcrJSNSe3+EauoBVl YrqA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence: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=SfUUHR3s8Ab+5dU7LTGTj2XE0zB74L1h03ESigS8Mw4=; b=ztWe6pDOJPAsaDAG8Nidb7pHAK3NnAkMXW9QkVMuZp/FhQBG1cHLbqOGLRanCi3zAP 256fOOs6f0ZbURP9yYHq/a7pHg7NpS0iFU2HIiH9u+eQypc9zjgHie2r+r6dKSP2tMlK bnnJpGMfjrjc4FFbsGZTrhOc+IF+zVVawBHbra9vA+m4nZ93r7pinU5/XRiC90FJsDOw 44zk3VwRLxxlXkj5zA7IhJlvDI2DvZUH3UCul9CgvE0GFw+5IvgbsFgiDxhG0Qm6Tanx q24OjR5O4YdendGYJWbGx+hcOCQpgwH49mbgN2K2qSJAV7ucM3GvR9Hqy+OsW7iT1cah 44ag== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=TLXxZgof; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=softfail (google.com: domain of transitioning linux-crypto-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id j21-20020a17090a841500b001c6f8b9aea5si1361484pjn.42.2022.03.21.23.54.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Mar 2022 23:54:40 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-crypto-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=TLXxZgof; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=softfail (google.com: domain of transitioning linux-crypto-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4B906340E2; Mon, 21 Mar 2022 23:25:31 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237158AbiCVG0y (ORCPT + 99 others); Tue, 22 Mar 2022 02:26:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237160AbiCVG0p (ORCPT ); Tue, 22 Mar 2022 02:26:45 -0400 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150040.outbound.protection.outlook.com [40.107.15.40]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C078B329AF; Mon, 21 Mar 2022 23:25:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I3plDlMEk1x+ec8K1zyDa2crkODB5OiRBVsj6r5PGjud8wOGgrIx9zoZsyfoHJusSYagP6mlG7pp3GhY23xxcCn8TEDzWQsfL5o7nvCdP7iA5DF4UNav9HQw08OkdUyOH1sCSYQF9NTCoZVxiMVpKWRBL1MyF2C3yDciX3M/mcvjCLUnc32Gv/5LHvLntiu/eXq3pVqmLMkBZdoIBz9McRCsKRt03xkq8MLvIDv9rWMdq2ErGoyEBBCpTDX8JaTHqBqjBJUJk3sAx5oruKOVb4bUq5NmTHE51qXvz0qR3iwAjMHOK7pHvRSSzSm2NeJ4WcF2ZUMednwBAqDtVwR+1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SfUUHR3s8Ab+5dU7LTGTj2XE0zB74L1h03ESigS8Mw4=; b=HPORPEp1nssBONDa4MoJDgI4skqC34PSGlZYCL1jwodv+pcPgkOKlm5sy+7ooGqnqOPDa4aRyNKz01Sa7GY4cT0LyAlbS5T+twj66unOBzfgOw4dtSzK6oSbqzqirKVG6XsPUSJogxa5Y2nqq2oMC5MoABjFIeRgoG38gPNzAa4Y+Z1UvfiovoZjHNRLM1f169B97E4ZDcmrp0aIsTKS/v544VrAFfs18rG/7bYubjI4sKmph+dUYXSBnNz0rLLtfRhUX8FmUl8D2pFECzs8696HvZnRMcgZcws4FJ05WK3fvHwuNEUkpi+8bXKW2FNaCbOhXNxvjci4Fsu0M0x8gA== 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=SfUUHR3s8Ab+5dU7LTGTj2XE0zB74L1h03ESigS8Mw4=; b=TLXxZgofUaIwqC/8Co8I57ZKZCDzh17f8j5OFhMz9zD8jsa6zojbG1e0UOCSyV7+qAtP4Bfk+znJUSPDEDKskNAWZAW10uYrpp+9ylJayhScYnsl57s/g2ECMFdvKhE7Vx4QREKBhxeLxbdPiaOHrv6sqByFnH41dyCtJk1sXKQ= Received: from DU2PR04MB8630.eurprd04.prod.outlook.com (2603:10a6:10:2dd::15) by DB8PR04MB6715.eurprd04.prod.outlook.com (2603:10a6:10:10d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Tue, 22 Mar 2022 06:25:05 +0000 Received: from DU2PR04MB8630.eurprd04.prod.outlook.com ([fe80::7c79:2f39:20a0:f2fb]) by DU2PR04MB8630.eurprd04.prod.outlook.com ([fe80::7c79:2f39:20a0:f2fb%3]) with mapi id 15.20.5081.023; Tue, 22 Mar 2022 06:25:05 +0000 From: Pankaj Gupta To: Ahmad Fatoum , Horia Geanta , Herbert Xu , "David S. Miller" CC: "kernel@pengutronix.de" , David Gstir , "tharvey@gateworks.com" , Matthias Schiffer , James Bottomley , Jarkko Sakkinen , Mimi Zohar , David Howells , James Morris , Eric Biggers , "Serge E. Hallyn" , Jan Luebbe , Richard Weinberger , Franck Lenormand , Sumit Garg , "linux-integrity@vger.kernel.org" , "keyrings@vger.kernel.org" , "linux-crypto@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-security-module@vger.kernel.org" Subject: RE: [EXT] [PATCH v6 3/4] crypto: caam - add in-kernel interface for blob generator Thread-Topic: [EXT] [PATCH v6 3/4] crypto: caam - add in-kernel interface for blob generator Thread-Index: AQHYOVUNOyYgdbVIskOFW8XkCJYEX6zK4/kQ Date: Tue, 22 Mar 2022 06:25:05 +0000 Message-ID: References: <20220316164335.1720255-1-a.fatoum@pengutronix.de> <20220316164335.1720255-4-a.fatoum@pengutronix.de> In-Reply-To: <20220316164335.1720255-4-a.fatoum@pengutronix.de> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 71da5c46-8987-4709-d842-08da0bccb44f x-ms-traffictypediagnostic: DB8PR04MB6715:EE_ x-ld-processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HKRnV1o984TTGGKUv5wk9IWJZvEGycWuS71kqS9Thb3sVhhDjjtqGXRL8u8Ae3Kxlev3306wq3walmQjzoJFnOBtZTJtEyJiNdCAzK2VxRVW3YbbJNZM3WrC1lA0lrTykFhAWzG+MjtbJY8ZTNsLr1Zranj+7zjx+h1Evt8ZLQKJNw2ItCmp9rxD3ZkQ7A+ujbLBkMKMHigGI/pdIYEUMTQ6UTQyxvFjHZDY4udrke6v4zpXClOxN8NtT3W42Sx9shPPSmq1iE78MgVYS5kY3pkTxruyZcSkRDM0ZvJ8TUoco24/fQvGTqoqdWO6IpSC3ocu52c9DbrKMQUOS7ElTIBQ4o8iIbZ9zGdLU6M5JsS9DwUsVKD3JWQ3NHkx8/qTc4E/k87enT7EWw4H0+kFTICpQ9TN0+RLafezwQNfX/Yw0j6YnNmIgOGNs/qIWAYziWdtQwT+bVMgf6r3HgB8fR8sQhC+qumXCbzEcDwz+rwOzGCQRoHB6C6dmLbi46VEJLzVjHYSfAjfUmgvr6sXpMzeZFS12m0QDxzqksv1s11lq/n20svd2lD/LHWsf5yHuXq77/mdMAZRze+58iArQjs/YjFQpN60za/TwR+/aMoj/xVV8ZPjRQosPUlJ0HbZVtOQosbe21i+tZ4GLADvExgQtXnQcEsecAN832wFm3kAjtw2Y5w/4U8ro/xOM9InyqYwK5kejXvaufeNGq1/vg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8630.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(110136005)(316002)(54906003)(186003)(83380400001)(6506007)(53546011)(7696005)(9686003)(71200400001)(508600001)(33656002)(55236004)(26005)(55016003)(38100700002)(2906002)(66476007)(64756008)(4326008)(122000001)(7416002)(8936002)(30864003)(44832011)(52536014)(5660300002)(38070700005)(66446008)(66946007)(86362001)(76116006)(66556008)(8676002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WE45d0NjZjk5bTNlZXFWdk4xbU9DNXFOSUJUNGVGUk5obEsyR3RFd3dRNk43?= =?utf-8?B?bVVHVnJ6eElURUt2dDJIQXV3SUpFSzBFZzk1SENocExmMVBsaFRWMVd0M0RQ?= =?utf-8?B?cGMwSjZBUzFyTDBGd0dTSVMzcGRCaGhoTlFIeHdDdDBaMzh2R1JQK0Yya04z?= =?utf-8?B?Mk8ybFJ6bFI5OWVJVDN5RGRqbmJkc2ZZVjg3WGhqWlc0YnNuWVl6cEt1eWtw?= =?utf-8?B?TGtoaWMxUXFtQjlVT0NKTHRGVUZkNzZ2Mm9RZmtXVGg0RXVpL1hpb0RrRnd4?= =?utf-8?B?MjR4ajROeGZCYnNua3RSY1VLS1BSRVJTZVphUjZuMUFjcnhOWWE4bEJNSm9S?= =?utf-8?B?eXZ1d0VNNk9MWi9NOFc5WWdVRXN1bURqaFhGdFVBVWVxNUJWeWU2Z0hHM1NS?= =?utf-8?B?UldFR1VxN1FLU0pPT1dhUitnaTBUNCtEaDVBMSsyU25zRzdtK0pFK3ZoNXJ1?= =?utf-8?B?Z04rQmNNdW1jVTFMS3JlSi9kajFBWFpPVWZGZVNkVTU5SXdxcGVyL0RNR2ZY?= =?utf-8?B?NlRXRTRrYTNxSGdjSWdEbmxMWEZTcUV0VWp4NTcrS3pCdE1SdFFOYit1Tmdt?= =?utf-8?B?eFRsVTZJWm9GQklwazlNVXRlRWxKclFnQkJmazJPZmNQaWxEcEcra253OWdq?= =?utf-8?B?K1JHK1g2Ny80RVk1UUFQWFJEbkFXWDloemFpRDRsNnRwZmUxMkRBblAzamox?= =?utf-8?B?aDYrVkY4QnUzSUdmL1hPZlVSYWpiM3N4anJ6eEJrSERwOGVvcU44eHBkRzds?= =?utf-8?B?VGJmK2cxMmxydUZORnRmRXpXMURTV2lvR1ZiNDQ1QjZzbWxKN3JkZDZhWDM0?= =?utf-8?B?REpSTWJWVi9QVmZkWFk3WElZU1RWRHNtQStvdi9vRFkrKzZlSTY3UTZTUkg3?= =?utf-8?B?cWxsbXR4RVFmazdwdFhiYkM5VWVySFhHN3BBUGxHOXFsSnVwa0hjTmJtS2FB?= =?utf-8?B?VWdMODBEZkM0aWhEQytZT0JRM3pKbHFNQjJBamFQMHFpZGpVL1NJZUdCdmV4?= =?utf-8?B?TlV2QVVpeDQ5TEN4N3MzVmNGZlFuNjNFTDhWeUNVSk42TWl2VWNUZkwxeUo3?= =?utf-8?B?czdSUGZNUHhEQWZPd29zVWh0a0xYeXdPUk42TWpmKyt4KzgrRWxMZlJUclJa?= =?utf-8?B?a0Fxd1F4WWRmcGtFZnNlSVl0MElBQTF4VmRkWk9uWUlXQmpPOFNmQm5JZ3U0?= =?utf-8?B?K0w5M0UzaWUrN2V3M1FuUzY4VkFidWhUWitybE5KcU16SDd4aTNDWnFnTnZ3?= =?utf-8?B?SmhwOFh3OVJMaTJRZ0tCV0l3KzQyaDE3YkNRR21HK0pFTGhSOWo0dWs1Yy82?= =?utf-8?B?eFpURExRbmlSb01PTlorRUdmWG9PczlnTUFoRXRMaGEwb2Y2WmNsTVd0VEl3?= =?utf-8?B?eWkveUFXVWFiTlhUOHB3MWRvUTFPaHlmNUYrSWYwcTIzYk9rcVlRYkNLOGxn?= =?utf-8?B?clJJa0xCSGJVYUhXSEsrR2dTckZ1d29pbHlrYklPdzV2YmpkcS9qMjZkNnRQ?= =?utf-8?B?bXYydzhXaC9XOEdUVWZnQUxWQnBmMERHN2w5QmRBb3lCTkh4cE5lbXIvcjQw?= =?utf-8?B?dmkrWitqTk0rS1hpQ3RoVDRWb1lhMTUvWlE4UWo2WkhJTnN6bEo2NWNNTGhT?= =?utf-8?B?ZjBBaHJVQldKeStVVWdGUVFEWGNvU1BBNm9IM05iVEV1VWVlYnZDKzlFMk1B?= =?utf-8?B?OHVBRm14Rks2UmU5VlNhZHg4cXg3S3FsTDdFeHVnazFhek9iZVl4Si8zMWto?= =?utf-8?B?Q3c5ejkzMk5Kd1lpcTlEQWl5Q1JTS2FxTEp6ZHZPa0hCYmIzZXRFMENRZXUv?= =?utf-8?B?MmZZbGxKZkpjSE0wQkhqeG5pQ28rVEtVZGx0S00ySlhsVTBYL0VqcUdmVFVJ?= =?utf-8?B?TXhFbHN3cVlrQzVKSVBvYXJQWEJjb2RZUExvaERpeDVQcXkyMGFmSzZYSEYw?= =?utf-8?Q?rIQlAFoKyCx2VZOdxUwQjgRqzYZEuSFB?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8630.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71da5c46-8987-4709-d842-08da0bccb44f X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Mar 2022 06:25:05.1462 (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: npq9PCr0CHhV/rmkm0jhoU0dEYjg6/EpMDwFFlR5tbqeVCLigv7Dd3wPrTfD0APlQXhH3a6Ej9TWlPC9N2ePVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB6715 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org SGkgQWhtYWQsDQoNClN1Z2dlc3RlZCB0byBkZWZpbmUgbWFjcm8gd2l0aCBtb3JlIGRldGFpbHMu DQpQbGVhc2UgZmluZCBjb21tZW50cyBpbi1saW5lLg0KDQpSZWdhcmRzDQpQYW5rYWoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWhtYWQgRmF0b3VtIDxhLmZhdG91bUBw ZW5ndXRyb25peC5kZT4NCj4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCAxNiwgMjAyMiAxMDoxNCBQ TQ0KPiBUbzogSG9yaWEgR2VhbnRhIDxob3JpYS5nZWFudGFAbnhwLmNvbT47IFBhbmthaiBHdXB0 YQ0KPiA8cGFua2FqLmd1cHRhQG54cC5jb20+OyBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5h cGFuYS5vcmcuYXU+OyBEYXZpZA0KPiBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+DQo+ IENjOiBrZXJuZWxAcGVuZ3V0cm9uaXguZGU7IERhdmlkIEdzdGlyIDxkYXZpZEBzaWdtYS1zdGFy LmF0PjsNCj4gdGhhcnZleUBnYXRld29ya3MuY29tOyBNYXR0aGlhcyBTY2hpZmZlciA8bWF0dGhp YXMuc2NoaWZmZXJAZXcudHEtDQo+IGdyb3VwLmNvbT47IEFobWFkIEZhdG91bSA8YS5mYXRvdW1A cGVuZ3V0cm9uaXguZGU+OyBKYW1lcyBCb3R0b21sZXkNCj4gPGplamJAbGludXguaWJtLmNvbT47 IEphcmtrbyBTYWtraW5lbiA8amFya2tvQGtlcm5lbC5vcmc+OyBNaW1pIFpvaGFyDQo+IDx6b2hh ckBsaW51eC5pYm0uY29tPjsgRGF2aWQgSG93ZWxscyA8ZGhvd2VsbHNAcmVkaGF0LmNvbT47IEph bWVzIE1vcnJpcw0KPiA8am1vcnJpc0BuYW1laS5vcmc+OyBFcmljIEJpZ2dlcnMgPGViaWdnZXJz QGtlcm5lbC5vcmc+OyBTZXJnZSBFLiBIYWxseW4NCj4gPHNlcmdlQGhhbGx5bi5jb20+OyBKYW4g THVlYmJlIDxqLmx1ZWJiZUBwZW5ndXRyb25peC5kZT47IFJpY2hhcmQNCj4gV2VpbmJlcmdlciA8 cmljaGFyZEBub2QuYXQ+OyBGcmFuY2sgTGVub3JtYW5kDQo+IDxmcmFuY2subGVub3JtYW5kQG54 cC5jb20+OyBTdW1pdCBHYXJnIDxzdW1pdC5nYXJnQGxpbmFyby5vcmc+OyBsaW51eC0NCj4gaW50 ZWdyaXR5QHZnZXIua2VybmVsLm9yZzsga2V5cmluZ3NAdmdlci5rZXJuZWwub3JnOyBsaW51eC0N Cj4gY3J5cHRvQHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsg bGludXgtc2VjdXJpdHktDQo+IG1vZHVsZUB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogW0VY VF0gW1BBVENIIHY2IDMvNF0gY3J5cHRvOiBjYWFtIC0gYWRkIGluLWtlcm5lbCBpbnRlcmZhY2Ug Zm9yIGJsb2INCj4gZ2VuZXJhdG9yDQo+IA0KPiBDYXV0aW9uOiBFWFQgRW1haWwNCj4gDQo+IFRo ZSBOWFAgQ3J5cHRvZ3JhcGhpYyBBY2NlbGVyYXRpb24gYW5kIEFzc3VyYW5jZSBNb2R1bGUgKENB QU0pIGNhbiBiZSB1c2VkDQo+IHRvIHByb3RlY3QgdXNlci1kZWZpbmVkIGRhdGEgYWNyb3NzIHN5 c3RlbSByZWJvb3Q6DQo+IA0KPiAgIC0gV2hlbiB0aGUgc3lzdGVtIGlzIGZ1c2VkIGFuZCBib290 cyBpbnRvIHNlY3VyZSBzdGF0ZSwgdGhlIG1hc3Rlcg0KPiAgICAga2V5IGlzIGEgdW5pcXVlIG5l dmVyLWRpc2Nsb3NlZCBkZXZpY2Utc3BlY2lmaWMga2V5DQo+ICAgLSByYW5kb20ga2V5IGlzIGVu Y3J5cHRlZCBieSBrZXkgZGVyaXZlZCBmcm9tIG1hc3RlciBrZXkNCj4gICAtIGRhdGEgaXMgZW5j cnlwdGVkIHVzaW5nIHRoZSByYW5kb20ga2V5DQo+ICAgLSBlbmNyeXB0ZWQgZGF0YSBhbmQgaXRz IGVuY3J5cHRlZCByYW5kb20ga2V5IGFyZSBzdG9yZWQgYWxvbmdzaWRlDQo+ICAgLSBUaGlzIGJs b2IgY2FuIG5vdyBiZSBzYWZlbHkgc3RvcmVkIGluIG5vbi12b2xhdGlsZSBtZW1vcnkNCj4gDQo+ IE9uIG5leHQgcG93ZXItb246DQo+ICAgLSBibG9iIGlzIGxvYWRlZCBpbnRvIENBQU0NCj4gICAt IENBQU0gd3JpdGVzIGRlY3J5cHRlZCBkYXRhIGVpdGhlciBpbnRvIG1lbW9yeSBvciBrZXkgcmVn aXN0ZXINCj4gDQo+IEFkZCBmdW5jdGlvbnMgdG8gcmVhbGl6ZSBlbmNyeXB0aW5nIGFuZCBkZWNy eXB0aW5nIGludG8gbWVtb3J5IGFsb25nc2lkZSB0aGUNCj4gQ0FBTSBkcml2ZXIuDQo+IA0KPiBU aGV5IHdpbGwgYmUgdXNlZCBpbiBhIGxhdGVyIGNvbW1pdCBhcyBhIHNvdXJjZSBmb3IgdGhlIHRy dXN0ZWQga2V5IHNlYWwvdW5zZWFsDQo+IG1lY2hhbmlzbS4NCj4gDQo+IFJldmlld2VkLWJ5OiBE YXZpZCBHc3RpciA8ZGF2aWRAc2lnbWEtc3Rhci5hdD4NCj4gUmV2aWV3ZWQtYnk6IFBhbmthaiBH dXB0YSA8cGFua2FqLmd1cHRhQG54cC5jb20+DQo+IFRlc3RlZC1CeTogVGltIEhhcnZleSA8dGhh cnZleUBnYXRld29ya3MuY29tPg0KPiBUZXN0ZWQtYnk6IE1hdHRoaWFzIFNjaGlmZmVyIDxtYXR0 aGlhcy5zY2hpZmZlckBldy50cS1ncm91cC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFN0ZWZmZW4g VHJ1bXRyYXIgPHMudHJ1bXRyYXJAcGVuZ3V0cm9uaXguZGU+DQo+IFNpZ25lZC1vZmYtYnk6IEFo bWFkIEZhdG91bSA8YS5mYXRvdW1AcGVuZ3V0cm9uaXguZGU+DQo+IC0tLQ0KPiB2NSAtPiB2NjoN Cj4gICAtIERyb3BwZWQgY2FhbV9ibG9iX2FsbG9jX2Rlc2MoKSBpbiBmYXZvciBvZiBremFsbG9j KCkgd2l0aCBmaXhlZCBzaXplLg0KPiAgICAgVGhpcyBzaW1wbGlmaWVzIGNvZGUgYW5kIHdhc3Rl cyBhdCBtb3N0IDEyIGJ5dGVzIHdoaWNoIGFyZSBmcmVlZA0KPiAgICAgYXQgdGhlIGVuZCBvZiB0 aGUgZnVuY3Rpb24gYW55d2F5Lg0KPiAgIC0gRmFjdG9yZWQgb3V0IGNvbW1vbiBjb2RlIGJldHdl ZW4gY2FhbV9lbmNhcF9ibG9iIGFuZA0KPiBjYWFtX2RlY2FwX2Jsb2INCj4gICAgIGFzIGJvdGgg ZnVuY3Rpb25zIHdlcmUgbGFyZ2VseSBpZGVudGljYWwNCj4gICAtIHVzZSBhcHBlbmRfc2VxXyhp bnxvdXQpX3B0cl9pbnRsZW4gZm9yIGJvdGggZW5jYXAvZGVjYXAgYXMgYSByZXN1bHQNCj4gICAt IHVzZSByZXZlcnNlIGNocmlzdG1hcyB0cmVlIG9yZGVyIGZvciBjYWFtX3Byb2Nlc3NfYmxvYiB2 YXJpYWJsZQ0KPiAgICAgZGVmaW5pdGlvbnMuDQo+IHY0IC0+IHY1Og0KPiAgIC0gQ29sbGVjdGVk IFJldmlld2VkLWJ5J3MgYW5kIFRlc3RlZC1ieSdzDQo+ICAgLSBOb3RlIGluIENBQU0gcGF0Y2gg d2hhdCBDQUFNIGlzIChKYXJra28pDQo+IHYzIC0+IHY0Og0KPiAgIC0gQ29sbGVjdGVkIEFja2Vk LWJ5J3MsIFJldmlld2VkLWJ5J3MgYW5kIFRlc3RlZC1ieQ0KPiAgIC0gRml4ZWQgdHlwbyBzcG90 dGVkIGJ5IERhdmlkDQo+IHYyIC0+IHYzOg0KPiAgLSBObyBjaGFuZ2UNCj4gdjEgLT4gdjI6DQo+ ICAtIEVuZm9yY2UgbWF4aW11bSBrZXltb2Qgc2l6ZSAoSG9yaWEpDQo+ICAtIFVzZSBhcHBlbmRf c2VxXyhpbnxvdXQpX3B0cl9pbnRsZW4gaW5zdGVhZCBvZiBhcHBlbmRfc2VxXyhpbnxvdXQpX3B0 cg0KPiAgICAoSG9yaWEpDQo+ICAtIE1ha2UgYmxvYmlmaWVyIGhhbmRsZSBwcml2YXRlIHRvIENB QU0gZ2x1ZSBjb2RlIGZpbGUgKEhvcmlhKQ0KPiANCj4gVG86ICJIb3JpYSBHZWFudMSDIiA8aG9y aWEuZ2VhbnRhQG54cC5jb20+DQo+IFRvOiBQYW5rYWogR3VwdGEgPHBhbmthai5ndXB0YUBueHAu Y29tPg0KPiBUbzogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1Pg0KPiBU bzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+DQo+IENjOiBKYW1lcyBC b3R0b21sZXkgPGplamJAbGludXguaWJtLmNvbT4NCj4gQ2M6IEphcmtrbyBTYWtraW5lbiA8amFy a2tvQGtlcm5lbC5vcmc+DQo+IENjOiBNaW1pIFpvaGFyIDx6b2hhckBsaW51eC5pYm0uY29tPg0K PiBDYzogRGF2aWQgSG93ZWxscyA8ZGhvd2VsbHNAcmVkaGF0LmNvbT4NCj4gQ2M6IEphbWVzIE1v cnJpcyA8am1vcnJpc0BuYW1laS5vcmc+DQo+IENjOiBFcmljIEJpZ2dlcnMgPGViaWdnZXJzQGtl cm5lbC5vcmc+DQo+IENjOiAiU2VyZ2UgRS4gSGFsbHluIiA8c2VyZ2VAaGFsbHluLmNvbT4NCj4g Q2M6IEphbiBMdWViYmUgPGoubHVlYmJlQHBlbmd1dHJvbml4LmRlPg0KPiBDYzogRGF2aWQgR3N0 aXIgPGRhdmlkQHNpZ21hLXN0YXIuYXQ+DQo+IENjOiBSaWNoYXJkIFdlaW5iZXJnZXIgPHJpY2hh cmRAbm9kLmF0Pg0KPiBDYzogRnJhbmNrIExFTk9STUFORCA8ZnJhbmNrLmxlbm9ybWFuZEBueHAu Y29tPg0KPiBDYzogTWF0dGhpYXMgU2NoaWZmZXIgPG1hdHRoaWFzLnNjaGlmZmVyQGV3LnRxLWdy b3VwLmNvbT4NCj4gQ2M6IFN1bWl0IEdhcmcgPHN1bWl0LmdhcmdAbGluYXJvLm9yZz4NCj4gQ2M6 IGxpbnV4LWludGVncml0eUB2Z2VyLmtlcm5lbC5vcmcNCj4gQ2M6IGtleXJpbmdzQHZnZXIua2Vy bmVsLm9yZw0KPiBDYzogbGludXgtY3J5cHRvQHZnZXIua2VybmVsLm9yZw0KPiBDYzogbGludXgt a2VybmVsQHZnZXIua2VybmVsLm9yZw0KPiBDYzogbGludXgtc2VjdXJpdHktbW9kdWxlQHZnZXIu a2VybmVsLm9yZw0KPiAtLS0NCj4gIGRyaXZlcnMvY3J5cHRvL2NhYW0vS2NvbmZpZyAgICB8ICAg MyArDQo+ICBkcml2ZXJzL2NyeXB0by9jYWFtL01ha2VmaWxlICAgfCAgIDEgKw0KPiAgZHJpdmVy cy9jcnlwdG8vY2FhbS9ibG9iX2dlbi5jIHwgMTYwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKw0KPiAgaW5jbHVkZS9zb2MvZnNsL2NhYW0tYmxvYi5oICAgIHwgIDc5ICsrKysrKysr KysrKysrKysNCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjQzIGluc2VydGlvbnMoKykNCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2NyeXB0by9jYWFtL2Jsb2JfZ2VuLmMgIGNyZWF0ZSBtb2Rl IDEwMDY0NA0KPiBpbmNsdWRlL3NvYy9mc2wvY2FhbS1ibG9iLmgNCj4gDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2NyeXB0by9jYWFtL0tjb25maWcgYi9kcml2ZXJzL2NyeXB0by9jYWFtL0tjb25m aWcgaW5kZXgNCj4gODRlYTdjYmE1ZWU1Li5lYTlmOGIxYWU5ODEgMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvY3J5cHRvL2NhYW0vS2NvbmZpZw0KPiArKysgYi9kcml2ZXJzL2NyeXB0by9jYWFtL0tj b25maWcNCj4gQEAgLTE1MSw2ICsxNTEsOSBAQCBjb25maWcgQ1JZUFRPX0RFVl9GU0xfQ0FBTV9S TkdfQVBJDQo+ICAgICAgICAgICBTZWxlY3RpbmcgdGhpcyB3aWxsIHJlZ2lzdGVyIHRoZSBTRUM0 IGhhcmR3YXJlIHJuZyB0bw0KPiAgICAgICAgICAgdGhlIGh3X3JhbmRvbSBBUEkgZm9yIHN1cHBs eWluZyB0aGUga2VybmVsIGVudHJvcHkgcG9vbC4NCj4gDQo+ICtjb25maWcgQ1JZUFRPX0RFVl9G U0xfQ0FBTV9CTE9CX0dFTg0KPiArICAgICAgIGJvb2wNCj4gKw0KPiAgZW5kaWYgIyBDUllQVE9f REVWX0ZTTF9DQUFNX0pSDQo+IA0KPiAgZW5kaWYgIyBDUllQVE9fREVWX0ZTTF9DQUFNDQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jYWFtL01ha2VmaWxlIGIvZHJpdmVycy9jcnlwdG8v Y2FhbS9NYWtlZmlsZSBpbmRleA0KPiAzNTcwMjg2ZWI5Y2UuLjI1ZjdhZTVhNDY0MiAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy9jcnlwdG8vY2FhbS9NYWtlZmlsZQ0KPiArKysgYi9kcml2ZXJzL2Ny eXB0by9jYWFtL01ha2VmaWxlDQo+IEBAIC0yMSw2ICsyMSw3IEBAIGNhYW1fanItDQo+ICQoQ09O RklHX0NSWVBUT19ERVZfRlNMX0NBQU1fQ1JZUFRPX0FQSV9RSSkgKz0gY2FhbWFsZ19xaS5vDQo+ ICBjYWFtX2pyLSQoQ09ORklHX0NSWVBUT19ERVZfRlNMX0NBQU1fQUhBU0hfQVBJKSArPSBjYWFt aGFzaC5vDQo+ICBjYWFtX2pyLSQoQ09ORklHX0NSWVBUT19ERVZfRlNMX0NBQU1fUk5HX0FQSSkg Kz0gY2FhbXJuZy5vDQo+ICBjYWFtX2pyLSQoQ09ORklHX0NSWVBUT19ERVZfRlNMX0NBQU1fUEtD X0FQSSkgKz0gY2FhbXBrYy5vDQo+IHBrY19kZXNjLm8NCj4gK2NhYW1fanItJChDT05GSUdfQ1JZ UFRPX0RFVl9GU0xfQ0FBTV9CTE9CX0dFTikgKz0gYmxvYl9nZW4ubw0KPiANCj4gIGNhYW0tJChD T05GSUdfQ1JZUFRPX0RFVl9GU0xfQ0FBTV9DUllQVE9fQVBJX1FJKSArPSBxaS5vICBpZm5lcQ0K PiAoJChDT05GSUdfQ1JZUFRPX0RFVl9GU0xfQ0FBTV9DUllQVE9fQVBJX1FJKSwpDQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2NyeXB0by9jYWFtL2Jsb2JfZ2VuLmMgYi9kcml2ZXJzL2NyeXB0by9j YWFtL2Jsb2JfZ2VuLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXggMDAwMDAwMDAwMDAw Li4yNTY0ZTYzYzhmZTANCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2NyeXB0by9j YWFtL2Jsb2JfZ2VuLmMNCj4gQEAgLTAsMCArMSwxNjAgQEANCj4gKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTUg UGVuZ3V0cm9uaXgsIFN0ZWZmZW4gVHJ1bXRyYXINCj4gKzxrZXJuZWxAcGVuZ3V0cm9uaXguZGU+ DQo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjEgUGVuZ3V0cm9uaXgsIEFobWFkIEZhdG91bSA8a2Vy bmVsQHBlbmd1dHJvbml4LmRlPg0KPiArKi8NCj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L2Rldmlj ZS5oPg0KPiArI2luY2x1ZGUgPHNvYy9mc2wvY2FhbS1ibG9iLmg+DQo+ICsNCj4gKyNpbmNsdWRl ICJjb21wYXQuaCINCj4gKyNpbmNsdWRlICJkZXNjX2NvbnN0ci5oIg0KPiArI2luY2x1ZGUgImRl c2MuaCINCj4gKyNpbmNsdWRlICJlcnJvci5oIg0KPiArI2luY2x1ZGUgImludGVybi5oIg0KPiAr I2luY2x1ZGUgImpyLmgiDQo+ICsjaW5jbHVkZSAicmVncy5oIg0KPiArDQoNCmxlbiA9IDQgKyAo NCArIEFMSUdOKGtleW1vZF9sZW4sIDQpKSArIDIqKDQgKyA0ICsgDQo+Pj4+ICsgQ0FBTV9QVFJf U1pfTUFYKSArIDQ7DQoNCj4gKy8qIGhlYWRlciArIChrZXkgbW9kIGltbWVkaWF0ZSkgKyAyeCBz ZXFfaW50bGVuIHBvaW50ZXJzICsgb3AgKi8NCj4gKyNkZWZpbmUgQ0FBTV9CTE9CX0RFU0NfQllU RVNfTUFYIFwNCj4gKyAgICAgICAoQ0FBTV9DTURfU1ogKyBcDQo+ICsgICAgICAgIENBQU1fQ01E X1NaICsgQ0FBTV9CTE9CX0tFWU1PRF9MRU5HVEggKyBcDQo+ICsgICAgICAgIDIgKiAoQ0FBTV9D TURfU1ogKyBDQUFNX1BUUl9TWl9NQVgpICsgXA0KPiArICAgICAgICBDQUFNX0NNRF9TWikNCj4g Kw0KDQpTdWdnZXN0ZWQgdG8gcmVwbGFjZSB0aGUgYWJvdmUgbWFjcm8gbGlrZSBiZWxvdzoNCg0K KyNkZWZpbmUgQ0FBTV9CTE9CX0RFU0NfQllURVNfTUFYIFwJCQkNCisgICAgICAgKENBQU1fQ01E X1NaICsgXAkJCQkJLyogQ29tbWFuZCB0byBpbml0aWFsaXplICYgc3RhdGluZyBsZW5ndGggb2Yg IGRlc2NyaXB0b3IgKi8NCisgICAgICAgIENBQU1fQ01EX1NaICsgQ0FBTV9CTE9CX0tFWU1PRF9M RU5HVEggKyBcCS8qIENvbW1hbmQgdG8gYXBwZW5kIHRoZSBrZXktbW9kaWZpZXIgKyBmb2xsb3dl ZCBieSB0aGUga2V5LW1vZGlmaWVyIGRhdGEgKi8NCisgICAgICAgIChDQUFNX0NNRF9TWiArIENB QU1fUFRSX1NaX01BWCkgKyBcCQkvKiBDb21tYW5kIHRvIGluY2x1ZGUgaW5wdXQgcGxhaW4ga2V5 IGFuZCBwb2ludGVyIHRvIHRoZSBpbnB1dCBrZXkgKi8NCisgICAgICAgIChDQUFNX0NNRF9TWiAr IENBQU1fUFRSX1NaX01BWCkgKyBcCQkvKiBDb21tYW5kIHRvIGluY2x1ZGUgb3V0cHV0LWtleSBi bG9iIGFuZCBwb2ludGVyIHRvIHRoZSBvdXRwdXQta2V5IGJsb2IgKi8NCisgICAgICAgIENBQU1f Q01EX1NaKQkJCQkJCS8qIENvbW1hbmQgZGVzY3JpYmluZyB0aGUgT3BlcmF0aW9uIHRvIHBlcmZv cm0gKi8NCg0KDQoNCj4gK3N0cnVjdCBjYWFtX2Jsb2JfcHJpdiB7DQo+ICsgICAgICAgc3RydWN0 IGRldmljZSBqcmRldjsNCj4gK307DQo+ICsNCj4gK3N0cnVjdCBjYWFtX2Jsb2Jfam9iX3Jlc3Vs dCB7DQo+ICsgICAgICAgaW50IGVycjsNCj4gKyAgICAgICBzdHJ1Y3QgY29tcGxldGlvbiBjb21w bGV0aW9uOw0KPiArfTsNCj4gKw0KPiArc3RhdGljIHZvaWQgY2FhbV9ibG9iX2pvYl9kb25lKHN0 cnVjdCBkZXZpY2UgKmRldiwgdTMyICpkZXNjLCB1MzIgZXJyLA0KPiArdm9pZCAqY29udGV4dCkg ew0KPiArICAgICAgIHN0cnVjdCBjYWFtX2Jsb2Jfam9iX3Jlc3VsdCAqcmVzID0gY29udGV4dDsN Cj4gKyAgICAgICBpbnQgZWNvZGUgPSAwOw0KPiArDQo+ICsgICAgICAgZGV2X2RiZyhkZXYsICIl cyAlZDogZXJyIDB4JXhcbiIsIF9fZnVuY19fLCBfX0xJTkVfXywgZXJyKTsNCj4gKw0KPiArICAg ICAgIGlmIChlcnIpDQo+ICsgICAgICAgICAgICAgICBlY29kZSA9IGNhYW1fanJfc3Ryc3RhdHVz KGRldiwgZXJyKTsNCj4gKw0KPiArICAgICAgIHJlcy0+ZXJyID0gZWNvZGU7DQo+ICsNCj4gKyAg ICAgICAvKg0KPiArICAgICAgICAqIFVwb24gY29tcGxldGlvbiwgZGVzYyBwb2ludHMgdG8gYSBi dWZmZXIgY29udGFpbmluZyBhIENBQU0gam9iDQo+ICsgICAgICAgICogZGVzY3JpcHRvciB3aGlj aCBlbmNhcHN1bGF0ZXMgZGF0YSBpbnRvIGFuIGV4dGVybmFsbHktc3RvcmFibGUNCj4gKyAgICAg ICAgKiBibG9iLg0KPiArICAgICAgICAqLw0KPiArICAgICAgIGNvbXBsZXRlKCZyZXMtPmNvbXBs ZXRpb24pOw0KPiArfQ0KPiArDQo+ICtpbnQgY2FhbV9wcm9jZXNzX2Jsb2Ioc3RydWN0IGNhYW1f YmxvYl9wcml2ICpwcml2LCBib29sIGVuY2FwLA0KPiArICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqa2V5bW9kLCB2b2lkICppbnB1dCwgdm9pZCAqb3V0cHV0LA0KPiArICAgICAgICAg ICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCkNCj4gK3sNCj4gKyAgICAgICBzaXplX3QgaW5fbGVu ID0gbGVuZ3RoLCBvdXRfbGVuID0gbGVuZ3RoOw0KPiArICAgICAgIHN0cnVjdCBjYWFtX2Jsb2Jf am9iX3Jlc3VsdCB0ZXN0cmVzOw0KPiArICAgICAgIHN0cnVjdCBkZXZpY2UgKmpyZGV2ID0gJnBy aXYtPmpyZGV2Ow0KPiArICAgICAgIGRtYV9hZGRyX3QgZG1hX2luLCBkbWFfb3V0Ow0KPiArICAg ICAgIGludCBvcCA9IE9QX1BDTElEX0JMT0I7DQo+ICsgICAgICAgc2l6ZV90IGtleW1vZF9sZW47 DQo+ICsgICAgICAgdTMyICpkZXNjOw0KPiArICAgICAgIGludCByZXQ7DQo+ICsNCj4gKyAgICAg ICBrZXltb2RfbGVuID0gc3RybGVuKGtleW1vZCk7DQo+ICsNCj4gKyAgICAgICBpZiAobGVuZ3Ro IDw9IENBQU1fQkxPQl9PVkVSSEVBRCB8fCBrZXltb2RfbGVuID4NCj4gQ0FBTV9CTE9CX0tFWU1P RF9MRU5HVEgpDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArICAg ICAgIGlmIChlbmNhcCkgew0KPiArICAgICAgICAgICAgICAgb3AgfD0gT1BfVFlQRV9FTkNBUF9Q Uk9UT0NPTDsNCj4gKyAgICAgICAgICAgICAgIGluX2xlbiAtPSBDQUFNX0JMT0JfT1ZFUkhFQUQ7 DQo+ICsgICAgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgICAgICAgIG9wIHw9IE9QX1RZUEVfREVD QVBfUFJPVE9DT0w7DQo+ICsgICAgICAgICAgICAgICBvdXRfbGVuIC09IENBQU1fQkxPQl9PVkVS SEVBRDsNCj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICBkZXNjID0ga3phbGxvYyhDQUFNX0JM T0JfREVTQ19CWVRFU19NQVgsIEdGUF9LRVJORUwgfCBHRlBfRE1BKTsNCj4gKyAgICAgICBpZiAo IWRlc2MpIHsNCj4gKyAgICAgICAgICAgICAgIGRldl9lcnIoanJkZXYsICJ1bmFibGUgdG8gYWxs b2NhdGUgZGVzY1xuIik7DQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gKyAg ICAgICB9DQo+ICsNCj4gKyAgICAgICBkbWFfaW4gPSBkbWFfbWFwX3NpbmdsZShqcmRldiwgaW5w dXQsIGluX2xlbiwgRE1BX1RPX0RFVklDRSk7DQo+ICsgICAgICAgaWYgKGRtYV9tYXBwaW5nX2Vy cm9yKGpyZGV2LCBkbWFfaW4pKSB7DQo+ICsgICAgICAgICAgICAgICBkZXZfZXJyKGpyZGV2LCAi dW5hYmxlIHRvIG1hcCBpbnB1dCBETUEgYnVmZmVyXG4iKTsNCj4gKyAgICAgICAgICAgICAgIHJl dCA9IC1FTk9NRU07DQo+ICsgICAgICAgICAgICAgICBnb3RvIG91dF9mcmVlOw0KPiArICAgICAg IH0NCj4gKw0KPiArICAgICAgIGRtYV9vdXQgPSBkbWFfbWFwX3NpbmdsZShqcmRldiwgb3V0cHV0 LCBvdXRfbGVuLCBETUFfRlJPTV9ERVZJQ0UpOw0KPiArICAgICAgIGlmIChkbWFfbWFwcGluZ19l cnJvcihqcmRldiwgZG1hX291dCkpIHsNCj4gKyAgICAgICAgICAgICAgIGRldl9lcnIoanJkZXYs ICJ1bmFibGUgdG8gbWFwIG91dHB1dCBETUEgYnVmZmVyXG4iKTsNCj4gKyAgICAgICAgICAgICAg IHJldCA9IC1FTk9NRU07DQo+ICsgICAgICAgICAgICAgICBnb3RvIG91dF91bm1hcF9pbjsNCj4g KyAgICAgICB9DQo+ICsNCj4gKyAgICAgICAvKg0KPiArICAgICAgICAqIEEgZGF0YSBibG9iIGlz IGVuY3J5cHRlZCB1c2luZyBhIGJsb2Iga2V5IChCSyk7IGEgcmFuZG9tIG51bWJlci4NCj4gKyAg ICAgICAgKiBUaGUgQksgaXMgdXNlZCBhcyBhbiBBRVMtQ0NNIGtleS4gVGhlIGluaXRpYWwgYmxv Y2sgKEIwKSBhbmQgdGhlDQo+ICsgICAgICAgICogaW5pdGlhbCBjb3VudGVyIChDdHIwKSBhcmUg Z2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYW5kIHN0b3JlZCBpbg0KPiArICAgICAgICAqIENsYXNz IDEgQ29udGV4dCBEV29yZHMgMCsxKzIrMy4gVGhlIHJhbmRvbSBCSyBpcyBzdG9yZWQgaW4gdGhl DQo+ICsgICAgICAgICogQ2xhc3MgMSBLZXkgUmVnaXN0ZXIuIE9wZXJhdGlvbiBNb2RlIGlzIHNl dCB0byBBRVMtQ0NNLg0KPiArICAgICAgICAqLw0KPiArDQo+ICsgICAgICAgaW5pdF9qb2JfZGVz YyhkZXNjLCAwKTsNCj4gKyAgICAgICBhcHBlbmRfa2V5X2FzX2ltbShkZXNjLCBrZXltb2QsIGtl eW1vZF9sZW4sIGtleW1vZF9sZW4sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBU1Nf MiB8IEtFWV9ERVNUX0NMQVNTX1JFRyk7DQo+ICsgICAgICAgYXBwZW5kX3NlcV9pbl9wdHJfaW50 bGVuKGRlc2MsIGRtYV9pbiwgaW5fbGVuLCAwKTsNCj4gKyAgICAgICBhcHBlbmRfc2VxX291dF9w dHJfaW50bGVuKGRlc2MsIGRtYV9vdXQsIG91dF9sZW4sIDApOw0KPiArICAgICAgIGFwcGVuZF9v cGVyYXRpb24oZGVzYywgb3ApOw0KPiArDQo+ICsgICAgICAgcHJpbnRfaGV4X2R1bXBfZGVidWco ImRhdGFAIl9fc3RyaW5naWZ5KF9fTElORV9fKSI6ICIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRFVNUF9QUkVGSVhfQUREUkVTUywgMTYsIDEsIGlucHV0LA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluX2xlbiwgZmFsc2UpOw0KPiArICAgICAgIHByaW50X2hleF9k dW1wX2RlYnVnKCJqb2JkZXNjQCJfX3N0cmluZ2lmeShfX0xJTkVfXykiOiAiLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERVTVBfUFJFRklYX0FERFJFU1MsIDE2LCAxLCBkZXNjLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NfYnl0ZXMoZGVzYyksIGZhbHNlKTsN Cj4gKw0KPiArICAgICAgIHRlc3RyZXMuZXJyID0gMDsNCj4gKyAgICAgICBpbml0X2NvbXBsZXRp b24oJnRlc3RyZXMuY29tcGxldGlvbik7DQo+ICsNCj4gKyAgICAgICByZXQgPSBjYWFtX2pyX2Vu cXVldWUoanJkZXYsIGRlc2MsIGNhYW1fYmxvYl9qb2JfZG9uZSwgJnRlc3RyZXMpOw0KPiArICAg ICAgIGlmIChyZXQgPT0gLUVJTlBST0dSRVNTKSB7DQo+ICsgICAgICAgICAgICAgICB3YWl0X2Zv cl9jb21wbGV0aW9uKCZ0ZXN0cmVzLmNvbXBsZXRpb24pOw0KPiArICAgICAgICAgICAgICAgcmV0 ID0gdGVzdHJlcy5lcnI7DQo+ICsgICAgICAgICAgICAgICBwcmludF9oZXhfZHVtcF9kZWJ1Zygi b3V0cHV0QCJfX3N0cmluZ2lmeShfX0xJTkVfXykiOiAiLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRFVNUF9QUkVGSVhfQUREUkVTUywgMTYsIDEsIG91dHB1dCwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9sZW4sIGZhbHNlKTsNCj4g KyAgICAgICB9DQo+ICsNCj4gKyAgICAgICBkbWFfdW5tYXBfc2luZ2xlKGpyZGV2LCBkbWFfb3V0 LCBvdXRfbGVuLCBETUFfRlJPTV9ERVZJQ0UpOw0KPiArb3V0X3VubWFwX2luOg0KPiArICAgICAg IGRtYV91bm1hcF9zaW5nbGUoanJkZXYsIGRtYV9pbiwgaW5fbGVuLCBETUFfVE9fREVWSUNFKTsN Cj4gK291dF9mcmVlOg0KPiArICAgICAgIGtmcmVlKGRlc2MpOw0KPiArDQo+ICsgICAgICAgcmV0 dXJuIHJldDsNCj4gK30NCj4gK0VYUE9SVF9TWU1CT0woY2FhbV9wcm9jZXNzX2Jsb2IpOw0KPiAr DQo+ICtzdHJ1Y3QgY2FhbV9ibG9iX3ByaXYgKmNhYW1fYmxvYl9nZW5faW5pdCh2b2lkKSB7DQo+ ICsgICAgICAgc3RydWN0IGRldmljZSAqanJkZXY7DQo+ICsNCj4gKyAgICAgICBqcmRldiA9IGNh YW1fanJfYWxsb2MoKTsNCj4gKyAgICAgICBpZiAoSVNfRVJSKGpyZGV2KSkNCj4gKyAgICAgICAg ICAgICAgIHJldHVybiBFUlJfQ0FTVChqcmRldik7DQo+ICsNCj4gKyAgICAgICByZXR1cm4gY29u dGFpbmVyX29mKGpyZGV2LCBzdHJ1Y3QgY2FhbV9ibG9iX3ByaXYsIGpyZGV2KTsgfQ0KPiArRVhQ T1JUX1NZTUJPTChjYWFtX2Jsb2JfZ2VuX2luaXQpOw0KPiArDQo+ICt2b2lkIGNhYW1fYmxvYl9n ZW5fZXhpdChzdHJ1Y3QgY2FhbV9ibG9iX3ByaXYgKnByaXYpIHsNCj4gKyAgICAgICBjYWFtX2py X2ZyZWUoJnByaXYtPmpyZGV2KTsNCj4gK30NCj4gK0VYUE9SVF9TWU1CT0woY2FhbV9ibG9iX2dl bl9leGl0KTsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc29jL2ZzbC9jYWFtLWJsb2IuaCBiL2lu Y2x1ZGUvc29jL2ZzbC9jYWFtLWJsb2IuaCBuZXcgZmlsZQ0KPiBtb2RlIDEwMDY0NCBpbmRleCAw MDAwMDAwMDAwMDAuLjJjNGEwNWRjNTljZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2luY2x1 ZGUvc29jL2ZzbC9jYWFtLWJsb2IuaA0KPiBAQCAtMCwwICsxLDc5IEBADQo+ICsvKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovDQo+ICsvKg0KPiArICogQ29weXJpZ2h0 IChDKSAyMDIwIFBlbmd1dHJvbml4LCBBaG1hZCBGYXRvdW0gPGtlcm5lbEBwZW5ndXRyb25peC5k ZT4NCj4gKyovDQo+ICsNCj4gKyNpZm5kZWYgX19DQUFNX0JMT0JfR0VODQo+ICsjZGVmaW5lIF9f Q0FBTV9CTE9CX0dFTg0KPiArDQo+ICsjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4NCj4gKw0KPiAr I2RlZmluZSBDQUFNX0JMT0JfS0VZTU9EX0xFTkdUSCAgICAgICAgICAgICAgICAxNg0KPiArI2Rl ZmluZSBDQUFNX0JMT0JfT1ZFUkhFQUQgICAgICAgICAgICAgKDMyICsgMTYpDQo+ICsjZGVmaW5l IENBQU1fQkxPQl9NQVhfTEVOICAgICAgICAgICAgICA0MDk2DQo+ICsNCj4gK3N0cnVjdCBjYWFt X2Jsb2JfcHJpdjsNCj4gKw0KPiArLyoqIGNhYW1fYmxvYl9nZW5faW5pdCAtIGluaXRpYWxpemUg YmxvYiBnZW5lcmF0aW9uDQo+ICsgKg0KPiArICogcmV0dXJucyBlaXRoZXIgcG9pbnRlciB0byBu ZXcgY2FhbV9ibG9iX3ByaXYgaW5zdGFuY2UNCj4gKyAqIG9yIGVycm9yIHBvaW50ZXINCj4gKyAq Lw0KPiArc3RydWN0IGNhYW1fYmxvYl9wcml2ICpjYWFtX2Jsb2JfZ2VuX2luaXQodm9pZCk7DQo+ ICsNCj4gKy8qKiBjYWFtX2Jsb2JfZ2VuX2V4aXQgLSBmcmVlIGJsb2IgZ2VuZXJhdGlvbiByZXNv dXJjZXMNCj4gKyAqDQo+ICsgKiBAcHJpdjogaW5zdGFuY2UgcmV0dXJuZWQgYnkgY2FhbV9ibG9i X2dlbl9pbml0ICAqLyB2b2lkDQo+ICtjYWFtX2Jsb2JfZ2VuX2V4aXQoc3RydWN0IGNhYW1fYmxv Yl9wcml2ICpwcml2KTsNCj4gKw0KPiArLyoqIGNhYW1fcHJvY2Vzc19ibG9iIC0gZW5jYXBzdWxh dGUgb3IgZGVjYXBzdWxhdGUgYmxvYg0KPiArICoNCj4gKyAqIEBwcml2OiAgIGluc3RhbmNlIHJl dHVybmVkIGJ5IGNhYW1fYmxvYl9nZW5faW5pdA0KPiArICogQGVuY2FwOiAgdHJ1ZSBmb3IgZW5j YXBzdWxhdGlvbiwgZmFsc2UgZm9yIGRlY2Fwc3VsYXRpb24NCj4gKyAqIEBrZXltb2Q6IHN0cmlu ZyB0byB1c2UgYXMga2V5IG1vZGlmaWVyIGZvciBibG9iIGNhcHN1bGF0aW9uDQo+ICsgKiAgICAg ICAgIGNhbid0IGJlIGxvbmdlciB0aGFuIENBQU1fQkxPQl9LRVlNT0RfTEVOR1RIDQo+ICsgKiBA aW5wdXQ6ICBidWZmZXIgd2hpY2ggQ0FBTSB3aWxsIERNQSBmcm9tDQo+ICsgKiBAb3V0cHV0OiBi dWZmZXIgd2hpY2ggQ0FBTSB3aWxsIERNQSB0bw0KPiArICogQGxlbmd0aDogYnVmZmVyIGxlbmd0 aCBpbmNsdWRpbmcgYmxvYiBvdmVyaGVhZA0KPiArICogICAgICAgICAgQ0FBTV9CTE9CX09WRVJI RUFEIDwgbGVuZ3RoIDw9IENBQU1fQkxPQl9NQVhfTEVODQo+ICsgKi8NCj4gK2ludCBjYWFtX3By b2Nlc3NfYmxvYihzdHJ1Y3QgY2FhbV9ibG9iX3ByaXYgKnByaXYsIGJvb2wgZW5jYXAsDQo+ICsg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXltb2QsIHZvaWQgKmlucHV0LCB2b2lk ICpvdXRwdXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoKTsNCj4gKw0K PiArLyoqIGNhYW1fZW5jYXBfYmxvYiAtIGVuY2Fwc3VsYXRlIGJsb2INCj4gKyAqDQo+ICsgKiBA cHJpdjogICBpbnN0YW5jZSByZXR1cm5lZCBieSBjYWFtX2Jsb2JfZ2VuX2luaXQNCj4gKyAqIEBr ZXltb2Q6IHN0cmluZyB0byB1c2UgYXMga2V5IG1vZGlmaWVyIGZvciBibG9iIGVuY2Fwc3VsYXRp b24NCj4gKyAqICAgICAgICAgY2FuJ3QgYmUgbG9uZ2VyIHRoYW4gQ0FBTV9CTE9CX0tFWU1PRF9M RU5HVEgNCj4gKyAqIEBpbnB1dDogIGJ1ZmZlciB3aGljaCBDQUFNIHdpbGwgRE1BIGZyb20NCj4g KyAqIEBvdXRwdXQ6IGJ1ZmZlciB3aGljaCBDQUFNIHdpbGwgRE1BIHRvDQo+ICsgKiBAbGVuZ3Ro OiBidWZmZXIgbGVuZ3RoIGluY2x1ZGluZyBibG9iIG92ZXJoZWFkDQo+ICsgKiAgICAgICAgICBD QUFNX0JMT0JfT1ZFUkhFQUQgPCBsZW5ndGggPD0gQ0FBTV9CTE9CX01BWF9MRU4NCj4gKyAqLw0K PiArc3RhdGljIGlubGluZSBpbnQgY2FhbV9lbmNhcF9ibG9iKHN0cnVjdCBjYWFtX2Jsb2JfcHJp diAqcHJpdiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg KmtleW1vZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmlucHV0 LCB2b2lkICpvdXRwdXQsIHNpemVfdA0KPiArbGVuZ3RoKSB7DQo+ICsgICAgICAgcmV0dXJuIGNh YW1fcHJvY2Vzc19ibG9iKHByaXYsIHRydWUsIGtleW1vZCwgaW5wdXQsIG91dHB1dCwNCj4gK2xl bmd0aCk7IH0NCj4gKw0KPiArLyoqIGNhYW1fZGVjYXBfYmxvYiAtIGRlY2Fwc3VsYXRlIGJsb2IN Cj4gKyAqDQo+ICsgKiBAcHJpdjogICBpbnN0YW5jZSByZXR1cm5lZCBieSBjYWFtX2Jsb2JfZ2Vu X2luaXQNCj4gKyAqIEBrZXltb2Q6IHN0cmluZyB0byB1c2UgYXMga2V5IG1vZGlmaWVyIGZvciBi bG9iIGRlY2Fwc3VsYXRpb24NCj4gKyAqICAgICAgICAgY2FuJ3QgYmUgbG9uZ2VyIHRoYW4gQ0FB TV9CTE9CX0tFWU1PRF9MRU5HVEgNCj4gKyAqIEBpbnB1dDogIGJ1ZmZlciB3aGljaCBDQUFNIHdp bGwgRE1BIGZyb20NCj4gKyAqIEBvdXRwdXQ6IGJ1ZmZlciB3aGljaCBDQUFNIHdpbGwgRE1BIHRv DQo+ICsgKiBAbGVuZ3RoOiBidWZmZXIgbGVuZ3RoIGluY2x1ZGluZyBibG9iIG92ZXJoZWFkDQo+ ICsgKiAgICAgICAgICBDQUFNX0JMT0JfT1ZFUkhFQUQgPCBsZW5ndGggPD0gQ0FBTV9CTE9CX01B WF9MRU4NCj4gKyAqLw0KPiArc3RhdGljIGlubGluZSBpbnQgY2FhbV9kZWNhcF9ibG9iKHN0cnVj dCBjYWFtX2Jsb2JfcHJpdiAqcHJpdiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmtleW1vZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZvaWQgKmlucHV0LCB2b2lkICpvdXRwdXQsIHNpemVfdA0KPiArbGVuZ3RoKSB7DQo+ICsg ICAgICAgcmV0dXJuIGNhYW1fcHJvY2Vzc19ibG9iKHByaXYsIGZhbHNlLCBrZXltb2QsIGlucHV0 LCBvdXRwdXQsDQo+ICtsZW5ndGgpOyB9DQo+ICsNCj4gKyNlbmRpZg0KPiAtLQ0KPiAyLjMwLjIN Cg0K