From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BB6EDC433E0 for ; Mon, 8 Feb 2021 13:35:31 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5462664DD5 for ; Mon, 8 Feb 2021 13:35:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5462664DD5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AF9FC6E8DA; Mon, 8 Feb 2021 13:35:30 +0000 (UTC) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2066.outbound.protection.outlook.com [40.107.236.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id AB77F6E8DA for ; Mon, 8 Feb 2021 13:35:28 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HcWyZwxSFy9fbsOiyEbAdoOBYHI25nGZKUtMzkHP0tRp7foEyMzDemQ2vOKDxhdvDV0/b+MQcsUjaLkgnF3RkUG/VjPwrbhqP7bvyBqD23qAUr3vWlMPeg3/BIT6ixptje5uqPaxYH++qPNZM0UFlq4yrp4oJAanuUSwfRUQZhiKEvJ7nUC2kay1VpAKVNoRZQfubQtE7jO8lpIukSZ7xABmeT5w5FKdcW+hKePE3hRZ8yQ/l4VzQbuvXB91FQoZHRvjINhwP6e6Z9cPwqgKnQxqB3aPW2wqMThhYE4wYcnFb86PI5SlNVWIlXBImtuTkeSp+cAhL3ifWj4PTSaAsw== 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=J24sF/q5CtCde3De3kNFd/87NfPo3igm3m6mKucXHNY=; b=jCVx3slBHMEShB1pt0PbfZJlNb5ZCMhM8tyeiHIVyu5BfBJ1+Cvc5XRAa5/RBmwsK/4r637l/LIZQjahcPhBV5Jsq2P8uagLDR49qYSu0A75Iza9y4xaL6LRS+yvA3PM0Cpq1tD00CjQOTOdY72z3PHgfzl7gNY2Uq/EP6kZHl4lIIEoEIPZbdAE9gae4ckA4C+cEBzZ1MNv83untAQgArwdbClDj25V/7mo+mDigSH1P1FH7XVHL47ORvFrU+cUfEscY+U0ANZnc2vHAEf3pPpJ+lT/5KbJhkyv41ZIbJobHqDCIdLlnOwVGibYZnWtY2uGACUpvsn4C2r/LJx7Ew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J24sF/q5CtCde3De3kNFd/87NfPo3igm3m6mKucXHNY=; b=lhkHU/kP1nIDRSs/sbYsH8ZOAKmv+NSEwUO4se+OwABg+Eyug1Q910aFapVWY1i2U/6keNHgvKXWwYW+gZZ1yn3sd9YejWhVCXzw8KRWXRXHqlErqTh/WXogVT/uPJOTxgDE1/YzdwaqiV4fiCDOhhzwogdS9bQIgnrIZ/ArhzQ= Authentication-Results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB4784.namprd12.prod.outlook.com (2603:10b6:208:39::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.24; Mon, 8 Feb 2021 13:35:24 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::c1ff:dcf1:9536:a1f2]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::c1ff:dcf1:9536:a1f2%2]) with mapi id 15.20.3825.030; Mon, 8 Feb 2021 13:35:24 +0000 Subject: Re: [Linux-graphics-maintainer] [PATCH 2/3] drm/ttm: move memory accounting into vmwgfx v3 From: =?UTF-8?Q?Christian_K=c3=b6nig?= To: Zack Rusin References: <20210128131604.149660-1-christian.koenig@amd.com> <20210128131604.149660-2-christian.koenig@amd.com> <071AC444-2B1A-4333-83FA-CA1A53E35C1C@vmware.com> <003b1e64-2510-5d96-be62-f8f45843023b@amd.com> <5CBDA1F3-5801-45BA-B84A-A5B83FA95BEB@vmware.com> <9CB18811-DA0A-40C3-A719-A9EFAA98D0CE@vmware.com> Message-ID: <8d14d1b6-e3eb-87ad-a386-681f787ecf94@amd.com> Date: Mon, 8 Feb 2021 14:35:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-ClientProxiedBy: FRYP281CA0007.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::17) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7] (2a02:908:1252:fb60:be8a:bd56:1f94:86e7) by FRYP281CA0007.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.11 via Frontend Transport; Mon, 8 Feb 2021 13:35:22 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 11f0a497-6e6c-4196-334c-08d8cc3662ee X-MS-TrafficTypeDiagnostic: MN2PR12MB4784: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PMa12zwTN5BQ4h/01btVvU3iJF5a8NuoClR1Kf5Ke9tKaq4oJIzHoedjLaiusDebB0rvx+lkomAkmPl7060T8bBaH0TgOcC2k1kcIyVVJcZ4UmyW16sLpY6ZLDSj11TY1R+OfPK9iiJrmO7MUZk9a5cDppWXwKVVpwiaOmePaUiCcvV/q2ANG7T8f07VdN0xx1tkLuTWpSYtczLD6SW4h5w5XUgAKbfvi8rU/K6iMCXfvMtYZILmwuu3AHttCUB+ckoJlXg2FisRQREpIKLxRlxCogHZ+YvFskudkH5fnVfvKSqRVuWwxhP3NXTmIIiBAglyWO7ungckxqrpCIy5+h4iSmL7O6Kb64qxSIk2oEUFYjd4tJko8GYvKqY4bFOZAII5ec/abzYdvTvv/az9AA/O3hWrKOlXjm1T/uRDVc8Ukt1NnXuw4Lh6IW2+IgYfHENeQsAc6i4+RfW74nA5eK3loF80Ek6Lb4t3NbMFFVd2BQBFPGb5vzbW1GnmId0AgOHiV6rSFe5LK/04QsHWZwoQSAdtoVHvSuQhIvTtiOXRh1RLm2fNKbL5zzAUSGBSwr7BDrzSODNlUlBMpj9fR6zADiGZrLtxCCYq45brYGBjKICeMYnuuJs2DGgSCU3L X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(39860400002)(366004)(136003)(396003)(346002)(66946007)(66476007)(66556008)(52116002)(86362001)(16526019)(66574015)(186003)(53546011)(36756003)(45080400002)(8676002)(15650500001)(478600001)(54906003)(966005)(5660300002)(6916009)(316002)(4326008)(31686004)(83380400001)(6486002)(6666004)(31696002)(8936002)(2906002)(2616005)(30864003)(40753002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?NGRkT0g0WExSdmJvNFpRNDFVbUNBazlOQWRYTSt6TE9HcjVKZmlmRk9rUUJT?= =?utf-8?B?T2hMdkZqd1lnbWMxSTA0clhkOG1GWWFIelp2Zjk3M1I3cTQ0VzFEREVzbnZq?= =?utf-8?B?UlpmdTd2RjB6YzY1eXMvVUZBQnFPbHdUT3FaT0pSWU5UQUJ6M2c5RUVqMmh3?= =?utf-8?B?SGUzSU44eThyd2pHUkhZQzBaemJWeGtjWEg3RTErS3VRSytVSmNNYTh0ZWhi?= =?utf-8?B?eStqNVNsUSsyYyszaHVkVjhvSnEvT3NaT1paZDJObTJkZHVuS1NDbkV5bURH?= =?utf-8?B?Vkttd01NejBZaFQrY2I1K01veXFURm1FUE5TOEZPSlp3VkdWb1FubDFCK2ln?= =?utf-8?B?MlNUSGR2N3c5OWNyU0ZpWmxKWFNoZEc1L3FUWU9lWmQ2VnAvU0ZxaTkvTG5R?= =?utf-8?B?SWtOSysrR25JU285WVF6eS9vQUZuTXlZR3ZMendWT1orRGV3Z2FqeXBXNURm?= =?utf-8?B?Y0x2b210S0FEemRNdTdhcWx1ODNuOTA5eGpGZUxUcGpBdkRWQi9OdTEwcFVm?= =?utf-8?B?MlhIL3FBalVCYWQxNDVhcXBaaFFtUnNwM0RIaHBHZDltOERNN3lxaVlzZGEw?= =?utf-8?B?ck45clNpMEpxMjNLZVlZckFXMExZeTNwMkRzbitCSm5GSnFqejlybjJlMGNt?= =?utf-8?B?eHkzdFU0amVwSXRPeHNJaC96RktuZS96R2tTa2lmWjZWMzRNeTQxZmR3WXVD?= =?utf-8?B?Yk8xdVVlMlBpRXByK2NTMHRIbUtycE44S2ZWZS9xU3pOVExqTEhLemRmSnhi?= =?utf-8?B?WTlraU0wM2hlT0xJSVVWbXVUR1lPcDNoRzRHWStNNzh5dkhVcGN4RGsycWlk?= =?utf-8?B?TUdOM0dBeWRHSDVOc0VvQzRSaFlhaHAyYXdjSFo3VHVYdnUrUFFzTWJUMWpr?= =?utf-8?B?bmFZMTRpN3daV0dMN0JoZG1WVTJvbXlSYTQwUW5IWFRyM3Y1VDNUYVVNWDl1?= =?utf-8?B?YjBIeUdsUmpXZEJVV0JzZmdyR1BkRWE1VEtFSVRmVWhjWStvSnBJS2VwamZi?= =?utf-8?B?Q0pwUVY0amxzemNkQnhqOFFpN25lREhKelFFelgxcVl4RmRkNmtZamVYZkV1?= =?utf-8?B?S0hTYVF3VXRlL1dhUFg1RkdSZC9XbnpueGQ4M0ZJYy9ocjdZbVRQREUyazI2?= =?utf-8?B?YUFJdCtjVFN2bnNJSmFrOXdKSTUvYURXSDNSblhETUhRWFk0WDgzSVJqQnhH?= =?utf-8?B?U2FhNlhlQUtCSWtORDNYZ0pxdzVkeUNMaVBTV2hJRWF0ZkdobnJ1NWV4Uzlo?= =?utf-8?B?b1lseW9xaWZZZU5uNitlZjc5SVRhSVVnZTBnZG9yQm1OQmtaQ1NmNGkzUFg1?= =?utf-8?B?UEJMOG5uc1ArWHVLSVVyR1lsdktNdVF1SmVrMFJRTFU4eTJWbHFTQ3dPVlVs?= =?utf-8?B?c3ZPckx4akdLZ1JPVDJRL09WQVBCMXFzaVBOYmFMWDFaeVR6WXZ1QmNKdm5S?= =?utf-8?B?YU1GcHowVHJwMGxMUi95LzdkU0ZnU3NPWkpOS2x5MlJubEFtK2FoOGdnQUov?= =?utf-8?B?UHNWTFJuNVpkVjdrcDFBR0tlQ2lUZDB4SWFOcmp2Wk1UZjVWVDM3SW9CcHpN?= =?utf-8?B?cStSakk3K1FKUXlLYmVuUjlUU0dTK1ZEcGdHV1ZtUytXckZHU0FkOC9LS0l0?= =?utf-8?B?SVRIVWlmd0JRVmtHME5vaURSNVpwNDNQNTVGZDBiVnBlNWFkano5ckg0RW0x?= =?utf-8?B?UUZnY2JJbWdqa0FqVmdIN3lsMjBnT2JkM016Y2FyNjcyOVYwcmpUbUNxMGJv?= =?utf-8?B?WndkeDVyNno4VXJaMmdxZ3VqQ2JOeXVIWGRHOERubVRxV3JJM0gvTHB3cnZk?= =?utf-8?B?V3ZMdzFWUUtXQWdDQlNqTXJzMVFXYzRNa1RSc0cwUTdjRWhRTCtSeVZSbm4x?= =?utf-8?Q?/cn5LIx5G8K8u?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 11f0a497-6e6c-4196-334c-08d8cc3662ee X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2021 13:35:23.9289 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hxlVRypaW84uXSekEr/dVBSw81n0+j0dBVYaQQfRPati3FmPTvp3mAkvZrn3AfbR X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4784 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Das, Nirmoy" , Linux-graphics-maintainer , "dri-devel@lists.freedesktop.org" Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgWmFjaywKCm9rIHdlIGZpZ3VyZWQgb3V0IGhvdyB0byBkbyB0aGlzIGNvcnJlY3RseS4KCkJh c2ljYWxseSB1c2luZyB0aGUgcGRldi0+a29iaiBpbnN0ZWFkIG9mIHRoZSBkcm0tPnByaW1hcnkt PmtkZXYtPmtvYmogCnBvaW50ZXIgd29ya2VkIHF1aXRlIHdlbGwuCgpJJ3ZlIGp1c3Qgc2VuZCB0 aGUgbGF0ZXN0IHBhdGNoZXMgdG8gdGhlIG1haWxpbmcgbGlzdC4gSWYgeW91IGRvbid0IGhhdmUg CmFueSBvYmplY3Rpb25zIEkgd2lsbCBjb21taXQgdGhhdCB0b21vcnJvdyB3aXRoIHlvdXIgYW5k IERhbmllbHMgcmIuCgpUaGFua3MsCkNocmlzdGlhbi4KCkFtIDAzLjAyLjIxIHVtIDA5OjIwIHNj aHJpZWIgQ2hyaXN0aWFuIEvDtm5pZzoKPiBIaSBaYWNrLAo+Cj4gdGhhbmtzIEkgY2FuIHRha2Ug b3ZlciBhZ2FpbiBmcm9tIGhlcmUgb24uCj4KPiBRdWl0ZSBidXN5IHRvZGF5LCBidXQgSSB0aGlu ayBJIGNhbiBnbyBvdmVyIHRoZSBjb2RlIG9uY2UgbW9yZSB0b21vcnJvdy4KPgo+IFRoYW5rcyBm b3IgdGhlIGhlbHAsCj4gQ2hyaXN0aWFuLgo+Cj4gQW0gMDMuMDIuMjEgdW0gMDM6NDUgc2Nocmll YiBaYWNrIFJ1c2luOgo+PiBKdXN0IGhhZCBhIHF1aWNrIHBlZWsuIFRoZSBpc3N1ZSBpcyB0aGF0 IHlvdSBjYW7igJl0IGF0dGFjaCB0byB0aGUgZHJtIAo+PiBkZXZpY2UgKGNhcmQwKSBiZWNhdXNl IGl0IGhhc27igJl0IGJlZW4gcmVnaXN0ZXJlZCB5ZXQgKGRybSBkZXZpY2UgCj4+IHJlZ2lzdHJh dGlvbiBpcyBsYXN0IGluIHRoZSB2bXdfcHJvYmUgaW4gdm13Z2Z4X2Rydi5jIHZpYSB0aGUgCj4+ IGRybV9kZXZfcmVnaXN0ZXIpLiBTbyBkZXYtPnByaW1hcnktPmtkZXYtPmtvYmogdGhhdCB5b3Xi gJlyZSB1c2luZyBhcyAKPj4gYXJndW1lbnQgdG8ga29iamVjdF9pbml0X2FuZF9hZGQgaW4gdHRt X21lbV9nbG9iYWxfaW5pdCBoYXNu4oCZdCBiZWVuIAo+PiBpbml0aWFsaXplZCB5ZXQuIFNvIHRo YXQgcGFydGljdWxhciBzeXNmcyBjb2RlIHdvdWxkIGxpa2VseSBoYXZlIHRvIAo+PiBiZSByZWZh Y3RvcmVkIG91dCBvZiB0dG1fbWVtX2dsb2JhbF9pbml0IHRvIGFub3RoZXIgZnVuY3Rpb24gdGhh dCAKPj4gY291bGQgYmUgY2FsbGVkIGFmdGVyIGRybSByZWdpc3RyYWN0aW9uLiBJIGNvdWxkIHRh a2UgdGhpcyBvbiBidXQgbm90IAo+PiB1bnRpbCBGcmlkYXkgb3Igc28uCj4+Cj4+IHoKPj4KPj4K Pj4+IE9uIEZlYiAyLCAyMDIxLCBhdCAxMjo0MiwgWmFjayBSdXNpbiA8emFja3JAdm13YXJlLmNv bT4gd3JvdGU6Cj4+Pgo+Pj4gQWgsIHllcywgc29ycnksIEkgbWlzc2VkIHRoYXQuIEkganVzdCBk b3VibGUgY2hlY2tlZCBhbmQgaXQgZmFpbHMgd2l0aDoKPj4+Cj4+PiBrb2JqZWN0X2FkZF9pbnRl cm5hbCBmYWlsZWQgZm9yIG1lbW9yeV9hY2NvdW50aW5nIChlcnJvcjogLTIgcGFyZW50OiAKPj4+ IGNhcmQwKQo+Pj4KPj4+IHdoaWNoIGJyZWFrcyB0aGUgcHJvYmUgYW5kIHRoZSBkcml2ZXIgd29u 4oCZdCBsb2FkLiBJIHdvbuKAmXQgaGF2ZSB0aW1lIAo+Pj4gdG8gbG9vayBpbnRvIGl0IHVudGls IHRvbW9ycm93IHRob3VnaC4KPj4+Cj4+PiB6Cj4+Pgo+Pj4+IE9uIEZlYiAyLCAyMDIxLCBhdCAx MDoxNiwgQ2hyaXN0aWFuIEvDtm5pZyAKPj4+PiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPiB3 cm90ZToKPj4+Pgo+Pj4+IEhpIFphY2ssCj4+Pj4KPj4+PiBjYW4geW91IGFsc28gZ2l2ZSBpdCBh IHF1aWNrIHNtb2tlIHRlc3Q/Cj4+Pj4KPj4+PiBJJ20gbm90IHN1cmUgaWYgSSB3aXJlZCB1cCBh bGwgdGhlIHN5c2ZzIG1hZ2ljIGNvcnJlY3RseSBpbnNpZGUgCj4+Pj4gdm13Z2Z4LCBidXQgSSBj dXJyZW50bHkgZG9uJ3QgaGF2ZSBhIHNldHVwIHdoZXJlIEkgY2FuIHRlc3QgdGhpcy4KPj4+Pgo+ Pj4+IFRoYW5rcywKPj4+PiBDaHJpc3RpYW4uCj4+Pj4KPj4+PiBBbSAwMi4wMi4yMSB1bSAxNjox NCBzY2hyaWViIFphY2sgUnVzaW46Cj4+Pj4+IExvb2tzIGdvb2QuIFRoZXJl4oCZcyBwcm9iYWJs eSBub3QgbXVjaCByZWFzb24gdG8gY2FsbCBpdCB0dG1fbWVtb3J5IAo+Pj4+PiBhbnltb3JlIGFz IGl0IG9ubHkgZGVhbHMgd2l0aCB0dG1fbWVtX2dsb2IsIHdl4oCZbGwgbGlrZWx5IGZvbGQgaXQg Cj4+Pj4+IGluIGFmdGVyIHlvdSBzdWJtaXQuIFRoYW5rcy4KPj4+Pj4KPj4+Pj4gUmV2aWV3ZWQt Ynk6IFphY2sgUnVzaW4gPHphY2tyQHZtd2FyZS5jb20+Cj4+Pj4+Cj4+Pj4+IHoKPj4+Pj4KPj4+ Pj4+IE9uIEZlYiAyLCAyMDIxLCBhdCAwODowNCwgQ2hyaXN0aWFuIEvDtm5pZyAKPj4+Pj4+IDxj aHJpc3RpYW4ua29lbmlnQGFtZC5jb20+IHdyb3RlOgo+Pj4+Pj4KPj4+Pj4+IFBpbmc/Cj4+Pj4+ Pgo+Pj4+Pj4gRXNwZWNpYWxseSBSb2xhbmQgYW5kIFphY2sgZG8geW91IGhhdmUgYW55IG9iamVj dGlvbnMgdG8gdGhpcz8KPj4+Pj4+Cj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4gQ2hyaXN0aWFuLgo+ Pj4+Pj4KPj4+Pj4+IEFtIDI4LjAxLjIxIHVtIDE0OjE2IHNjaHJpZWIgQ2hyaXN0aWFuIEvDtm5p ZzoKPj4+Pj4+PiBUaGlzIGlzIGp1c3QgYW5vdGhlciBmZWF0dXJlIHdoaWNoIGlzIG9ubHkgdXNl ZCBieSBWTVdHRlgsIHNvIG1vdmUKPj4+Pj4+PiBpdCBpbnRvIHRoZSBkcml2ZXIgaW5zdGVhZC4K Pj4+Pj4+Pgo+Pj4+Pj4+IEkndmUgdHJpZWQgdG8gYWRkIHRoZSBhY2NvdW50aW5nIHN5c2ZzIGZp bGUgdG8gdGhlIGtvYmplY3Qgb2YgCj4+Pj4+Pj4gdGhlIGRybQo+Pj4+Pj4+IG1pbm9yLCBidXQg SSdtIG5vdCAxMDAlIHN1cmUgaWYgdGhpcyB3b3JrcyBhcyBleHBlY3RlZC4KPj4+Pj4+Pgo+Pj4+ Pj4+IHYyOiBmaXggdHlwbyBpbiBLRkQgYW5kIGF2b2lkIDY0Yml0IGRpdmlkZQo+Pj4+Pj4+IHYz OiBmaXggaW5pdCBvcmRlciBpbiBWTVdHRlgKPj4+Pj4+Pgo+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6 IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4+Pj4+PiAtLS0K Pj4+Pj4+PiAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uY8KgIHwg MTYgKysrKysrLS0tCj4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29i amVjdC5jwqDCoMKgIHzCoCA4ICsrLS0tCj4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL2RybV9nZW1f dnJhbV9oZWxwZXIuY8KgwqDCoMKgwqDCoMKgwqAgfMKgIDYgKystLQo+Pj4+Pj4+IGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uY8KgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNyArKy0t Cj4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaMKgwqDCoMKgwqDC oMKgwqAgfMKgIDEgLQo+Pj4+Pj4+IGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDQgKy0tCj4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fb2JqZWN0LmPCoMKgwqDCoMKgwqDCoCB8wqAgOCArKy0tLQo+Pj4+Pj4+ IGRyaXZlcnMvZ3B1L2RybS90dG0vTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHzCoCA3ICsrLS0KPj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDMzIAo+Pj4+Pj4+ICstLS0tLS0tLS0t LS0tLS0tLS0KPj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmPCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgLQo+Pj4+Pj4+IGRyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2RldmljZS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyMiArKysrKysrKysrLS0tCj4+ Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcG9vbC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHwgMTMgKy0tLS0tLS0KPj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L01h a2VmaWxlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArLQo+Pj4+Pj4+IGRyaXZl cnMvZ3B1L2RybS97dHRtID0+IHZtd2dmeH0vdHRtX21lbW9yeS5jwqAgfCAxOSArKysrLS0tLS0t LQo+Pj4+Pj4+IC4uLi9ncHUvZHJtL3Ztd2dmeH0vdHRtX21lbW9yeS5owqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfMKgIDUgKy0tCj4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1f b2JqZWN0LmjCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArLQo+Pj4+Pj4+IGRyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2JvLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMjIgKysrKysr KysrKy0tLQo+Pj4+Pj4+IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jwqDCoMKg wqDCoMKgwqDCoMKgwqAgfMKgIDUgKysrCj4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfdHRtX2J1ZmZlci5jwqDCoMKgIHwgMjggKysrKysrKysrKysrKysrLQo+Pj4+Pj4+IGlu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHwgMTMgKystLS0tLS0KPj4+Pj4+PiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5o wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMSAtCj4+Pj4+Pj4gaW5jbHVkZS9kcm0v dHRtL3R0bV90dC5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzC oCAxICsKPj4+Pj4+PiAyMiBmaWxlcyBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwgMTE1IGRl bGV0aW9ucygtKQo+Pj4+Pj4+IHJlbmFtZSBkcml2ZXJzL2dwdS9kcm0ve3R0bSA9PiB2bXdnZnh9 L3R0bV9tZW1vcnkuYyAoOTclKQo+Pj4+Pj4+IHJlbmFtZSB7aW5jbHVkZS9kcm0vdHRtID0+IGRy aXZlcnMvZ3B1L2RybS92bXdnZnh9L3R0bV9tZW1vcnkuaCAKPj4+Pj4+PiAoOTclKQo+Pj4+Pj4+ Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9h bWRrZmRfZ3B1dm0uYyAKPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9hbWRrZmRfZ3B1dm0uYwo+Pj4+Pj4+IGluZGV4IDA4NDliNjhlNzg0Zi4uZTQ0MGFmMzdkZGU4 IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9h bWRrZmRfZ3B1dm0uYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9hbWRrZmRfZ3B1dm0uYwo+Pj4+Pj4+IEBAIC0xMTgsNiArMTE4LDE2IEBAIHZvaWQgYW1k Z3B1X2FtZGtmZF9ncHV2bV9pbml0X21lbV9saW1pdHModm9pZCkKPj4+Pj4+PiDCoCAqLwo+Pj4+ Pj4+ICNkZWZpbmUgRVNUSU1BVEVfUFRfU0laRShtZW1fc2l6ZSkgKChtZW1fc2l6ZSkgPj4gMTQp Cj4+Pj4+Pj4gK3N0YXRpYyBzaXplX3QgYW1kZ3B1X2FtZGtmZF9hY2Nfc2l6ZSh1aW50NjRfdCBz aXplKQo+Pj4+Pj4+ICt7Cj4+Pj4+Pj4gK3NpemUgPj49IFBBR0VfU0hJRlQ7Cj4+Pj4+Pj4gK3Np emUgKj0gc2l6ZW9mKGRtYV9hZGRyX3QpICsgc2l6ZW9mKHZvaWQgKik7Cj4+Pj4+Pj4gKwo+Pj4+ Pj4+ICtyZXR1cm4gX19yb3VuZHVwX3Bvd19vZl90d28oc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8p KSArCj4+Pj4+Pj4gK19fcm91bmR1cF9wb3dfb2ZfdHdvKHNpemVvZihzdHJ1Y3QgdHRtX3R0KSkg Kwo+Pj4+Pj4+ICtQQUdFX0FMSUdOKHNpemUpOwo+Pj4+Pj4+ICt9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ IHN0YXRpYyBpbnQgYW1kZ3B1X2FtZGtmZF9yZXNlcnZlX21lbV9saW1pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAKPj4+Pj4+PiAqYWRldiwKPj4+Pj4+PiB1aW50NjRfdCBzaXplLCB1MzIgZG9tYWlu LCBib29sIHNnKQo+Pj4+Pj4+IHsKPj4+Pj4+PiBAQCAtMTI2LDggKzEzNiw3IEBAIHN0YXRpYyBp bnQgCj4+Pj4+Pj4gYW1kZ3B1X2FtZGtmZF9yZXNlcnZlX21lbV9saW1pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwKPj4+Pj4+PiBzaXplX3QgYWNjX3NpemUsIHN5c3RlbV9tZW1fbmVlZGVk LCB0dG1fbWVtX25lZWRlZCwgdnJhbV9uZWVkZWQ7Cj4+Pj4+Pj4gaW50IHJldCA9IDA7Cj4+Pj4+ Pj4gLWFjY19zaXplID0gdHRtX2JvX2RtYV9hY2Nfc2l6ZSgmYWRldi0+bW1hbi5iZGV2LCBzaXpl LAo+Pj4+Pj4+IC3CoMKgwqDCoMKgwqAgc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsKPj4+Pj4+ PiArYWNjX3NpemUgPSBhbWRncHVfYW1ka2ZkX2FjY19zaXplKHNpemUpOwo+Pj4+Pj4+IMKgwqAg dnJhbV9uZWVkZWQgPSAwOwo+Pj4+Pj4+IGlmIChkb21haW4gPT0gQU1ER1BVX0dFTV9ET01BSU5f R1RUKSB7Cj4+Pj4+Pj4gQEAgLTE3NCw4ICsxODMsNyBAQCBzdGF0aWMgdm9pZCB1bnJlc2VydmVf bWVtX2xpbWl0KHN0cnVjdCAKPj4+Pj4+PiBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4+Pj4+IHsK Pj4+Pj4+PiBzaXplX3QgYWNjX3NpemU7Cj4+Pj4+Pj4gLWFjY19zaXplID0gdHRtX2JvX2RtYV9h Y2Nfc2l6ZSgmYWRldi0+bW1hbi5iZGV2LCBzaXplLAo+Pj4+Pj4+IC3CoMKgwqDCoMKgwqAgc2l6 ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsKPj4+Pj4+PiArYWNjX3NpemUgPSBhbWRncHVfYW1ka2Zk X2FjY19zaXplKHNpemUpOwo+Pj4+Pj4+IMKgwqAgc3Bpbl9sb2NrKCZrZmRfbWVtX2xpbWl0Lm1l bV9saW1pdF9sb2NrKTsKPj4+Pj4+PiBpZiAoZG9tYWluID09IEFNREdQVV9HRU1fRE9NQUlOX0dU VCkgewo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfb2JqZWN0LmMgCj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf b2JqZWN0LmMKPj4+Pj4+PiBpbmRleCA2Y2M5OTE5YjEyY2MuLjU5OWM5YTEzMmViNiAxMDA2NDQK Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMK Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMK Pj4+Pj4+PiBAQCAtNTIzLDcgKzUyMyw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX2RvX2NyZWF0 ZShzdHJ1Y3QgCj4+Pj4+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+Pj4+PiB9Owo+Pj4+Pj4+ IHN0cnVjdCBhbWRncHVfYm8gKmJvOwo+Pj4+Pj4+IHVuc2lnbmVkIGxvbmcgcGFnZV9hbGlnbiwg c2l6ZSA9IGJwLT5zaXplOwo+Pj4+Pj4+IC1zaXplX3QgYWNjX3NpemU7Cj4+Pj4+Pj4gaW50IHI7 Cj4+Pj4+Pj4gwqDCoCAvKiBOb3RlIHRoYXQgR0RTL0dXUy9PQSBhbGxvY2F0ZXMgMSBwYWdlIHBl ciBieXRlL3Jlc291cmNlLiAqLwo+Pj4+Pj4+IEBAIC01NDYsOSArNTQ1LDYgQEAgc3RhdGljIGlu dCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVjdCAKPj4+Pj4+PiBhbWRncHVfZGV2aWNlICphZGV2 LAo+Pj4+Pj4+IMKgwqAgKmJvX3B0ciA9IE5VTEw7Cj4+Pj4+Pj4gLWFjY19zaXplID0gdHRtX2Jv X2RtYV9hY2Nfc2l6ZSgmYWRldi0+bW1hbi5iZGV2LCBzaXplLAo+Pj4+Pj4+IC3CoMKgwqDCoMKg wqAgc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsKPj4+Pj4+PiAtCj4+Pj4+Pj4gYm8gPSBremFs bG9jKHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2JvKSwgR0ZQX0tFUk5FTCk7Cj4+Pj4+Pj4gaWYgKGJv ID09IE5VTEwpCj4+Pj4+Pj4gcmV0dXJuIC1FTk9NRU07Cj4+Pj4+Pj4gQEAgLTU3Nyw4ICs1NzMs OCBAQCBzdGF0aWMgaW50IGFtZGdwdV9ib19kb19jcmVhdGUoc3RydWN0IAo+Pj4+Pj4+IGFtZGdw dV9kZXZpY2UgKmFkZXYsCj4+Pj4+Pj4gYm8tPnRiby5wcmlvcml0eSA9IDE7Cj4+Pj4+Pj4gwqDC oCByID0gdHRtX2JvX2luaXRfcmVzZXJ2ZWQoJmFkZXYtPm1tYW4uYmRldiwgJmJvLT50Ym8sIHNp emUsIAo+Pj4+Pj4+IGJwLT50eXBlLAo+Pj4+Pj4+IC0gJmJvLT5wbGFjZW1lbnQsIHBhZ2VfYWxp Z24sICZjdHgsIGFjY19zaXplLAo+Pj4+Pj4+IC0gTlVMTCwgYnAtPnJlc3YsICZhbWRncHVfYm9f ZGVzdHJveSk7Cj4+Pj4+Pj4gKyAmYm8tPnBsYWNlbWVudCwgcGFnZV9hbGlnbiwgJmN0eCzCoCBO VUxMLAo+Pj4+Pj4+ICsgYnAtPnJlc3YsICZhbWRncHVfYm9fZGVzdHJveSk7Cj4+Pj4+Pj4gaWYg KHVubGlrZWx5KHIgIT0gMCkpCj4+Pj4+Pj4gcmV0dXJuIHI7Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgCj4+Pj4+Pj4gYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCj4+Pj4+Pj4gaW5kZXggMGIxM2M4NTA3Njg4 Li5hMDk5MmYwYjhhZmQgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9n ZW1fdnJhbV9oZWxwZXIuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3Zy YW1faGVscGVyLmMKPj4+Pj4+PiBAQCAtMTg5LDcgKzE4OSw2IEBAIHN0cnVjdCBkcm1fZ2VtX3Zy YW1fb2JqZWN0IAo+Pj4+Pj4+ICpkcm1fZ2VtX3ZyYW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4+Pj4+Pj4gc3RydWN0IGRybV92cmFtX21tICp2bW0gPSBkZXYtPnZyYW1fbW07Cj4+ Pj4+Pj4gc3RydWN0IHR0bV9kZXZpY2UgKmJkZXY7Cj4+Pj4+Pj4gaW50IHJldDsKPj4+Pj4+PiAt c2l6ZV90IGFjY19zaXplOwo+Pj4+Pj4+IMKgwqAgaWYgKFdBUk5fT05DRSghdm1tLCAiVlJBTSBN TSBub3QgaW5pdGlhbGl6ZWQiKSkKPj4+Pj4+PiByZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKPj4+ Pj4+PiBAQCAtMjE2LDcgKzIxNSw2IEBAIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0IAo+Pj4+ Pj4+ICpkcm1fZ2VtX3ZyYW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+Pj4+Pj4g fQo+Pj4+Pj4+IMKgwqAgYmRldiA9ICZ2bW0tPmJkZXY7Cj4+Pj4+Pj4gLWFjY19zaXplID0gdHRt X2JvX2RtYV9hY2Nfc2l6ZShiZGV2LCBzaXplLCBzaXplb2YoKmdibykpOwo+Pj4+Pj4+IMKgwqAg Z2JvLT5iby5iZGV2ID0gYmRldjsKPj4+Pj4+PiBkcm1fZ2VtX3ZyYW1fcGxhY2VtZW50KGdibywg RFJNX0dFTV9WUkFNX1BMX0ZMQUdfU1lTVEVNKTsKPj4+Pj4+PiBAQCAtMjI2LDggKzIyNCw4IEBA IHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0IAo+Pj4+Pj4+ICpkcm1fZ2VtX3ZyYW1fY3JlYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+Pj4+Pj4gwqAgKiB0byByZWxlYXNlIGdiby0+Ym8u YmFzZSBhbmQga2ZyZWUgZ2JvLgo+Pj4+Pj4+IMKgICovCj4+Pj4+Pj4gcmV0ID0gdHRtX2JvX2lu aXQoYmRldiwgJmdiby0+Ym8sIHNpemUsIHR0bV9ib190eXBlX2RldmljZSwKPj4+Pj4+PiAtwqAg Jmdiby0+cGxhY2VtZW50LCBwZ19hbGlnbiwgZmFsc2UsIGFjY19zaXplLAo+Pj4+Pj4+IC3CoCBO VUxMLCBOVUxMLCB0dG1fYnVmZmVyX29iamVjdF9kZXN0cm95KTsKPj4+Pj4+PiArwqAgJmdiby0+ cGxhY2VtZW50LCBwZ19hbGlnbiwgZmFsc2UsIE5VTEwsIE5VTEwsCj4+Pj4+Pj4gK8KgIHR0bV9i dWZmZXJfb2JqZWN0X2Rlc3Ryb3kpOwo+Pj4+Pj4+IGlmIChyZXQpCj4+Pj4+Pj4gcmV0dXJuIEVS Ul9QVFIocmV0KTsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9iby5jIAo+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9i by5jCj4+Pj4+Pj4gaW5kZXggYzE3Nzk0MGQ2ZTJjLi5jYTJhOGFlMTkzOGUgMTAwNjQ0Cj4+Pj4+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCj4+Pj4+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCj4+Pj4+Pj4gQEAgLTMwMCwx OCArMzAwLDE1IEBAIG5vdXZlYXVfYm9faW5pdChzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibywgCj4+ Pj4+Pj4gdTY0IHNpemUsIGludCBhbGlnbiwgdTMyIGRvbWFpbiwKPj4+Pj4+PiBzdHJ1Y3Qgc2df dGFibGUgKnNnLCBzdHJ1Y3QgZG1hX3Jlc3YgKnJvYmopCj4+Pj4+Pj4gewo+Pj4+Pj4+IGludCB0 eXBlID0gc2cgPyB0dG1fYm9fdHlwZV9zZyA6IHR0bV9ib190eXBlX2RldmljZTsKPj4+Pj4+PiAt c2l6ZV90IGFjY19zaXplOwo+Pj4+Pj4+IGludCByZXQ7Cj4+Pj4+Pj4gLWFjY19zaXplID0gdHRt X2JvX2RtYV9hY2Nfc2l6ZShudmJvLT5iby5iZGV2LCBzaXplLCAKPj4+Pj4+PiBzaXplb2YoKm52 Ym8pKTsKPj4+Pj4+PiAtCj4+Pj4+Pj4gbnZiby0+Ym8ubWVtLm51bV9wYWdlcyA9IHNpemUgPj4g UEFHRV9TSElGVDsKPj4+Pj4+PiBub3V2ZWF1X2JvX3BsYWNlbWVudF9zZXQobnZibywgZG9tYWlu LCAwKTsKPj4+Pj4+PiBJTklUX0xJU1RfSEVBRCgmbnZiby0+aW9fcmVzZXJ2ZV9scnUpOwo+Pj4+ Pj4+IMKgwqAgcmV0ID0gdHRtX2JvX2luaXQobnZiby0+Ym8uYmRldiwgJm52Ym8tPmJvLCBzaXpl LCB0eXBlLAo+Pj4+Pj4+IC3CoCAmbnZiby0+cGxhY2VtZW50LCBhbGlnbiA+PiBQQUdFX1NISUZU LCBmYWxzZSwKPj4+Pj4+PiAtwqAgYWNjX3NpemUsIHNnLCByb2JqLCBub3V2ZWF1X2JvX2RlbF90 dG0pOwo+Pj4+Pj4+ICvCoCAmbnZiby0+cGxhY2VtZW50LCBhbGlnbiA+PiBQQUdFX1NISUZULCBm YWxzZSwgc2csCj4+Pj4+Pj4gK8KgIHJvYmosIG5vdXZlYXVfYm9fZGVsX3R0bSk7Cj4+Pj4+Pj4g aWYgKHJldCkgewo+Pj4+Pj4+IC8qIHR0bSB3aWxsIGNhbGwgbm91dmVhdV9ib19kZWxfdHRtIGlm IGl0IGZhaWxzLi4gKi8KPj4+Pj4+PiByZXR1cm4gcmV0Owo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oIAo+Pj4+Pj4+IGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaAo+Pj4+Pj4+IGluZGV4IGVkZjlkMWVlOWQ1OC4u YTQ5MWMyYzFjNTZlIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfZHJ2LmgKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2Rydi5oCj4+Pj4+Pj4gQEAgLTU0LDcgKzU0LDYgQEAKPj4+Pj4+PiAjaW5jbHVkZSA8ZHJt L3R0bS90dG1fYm9fYXBpLmg+Cj4+Pj4+Pj4gI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZl ci5oPgo+Pj4+Pj4+ICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1lbnQuaD4KPj4+Pj4+PiAt I2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5oPgo+Pj4+Pj4+IMKgwqAgI2luY2x1ZGUgPGRy bS9kcm1fYXVkaW9fY29tcG9uZW50Lmg+Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9xeGwvcXhsX29iamVjdC5jIAo+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxf b2JqZWN0LmMKPj4+Pj4+PiBpbmRleCBjZWViYzU4ODFmNjguLjcwNWI1MTUzNTQ5MiAxMDA2NDQK Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuYwo+Pj4+Pj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jCj4+Pj4+Pj4gQEAgLTEzOCw4ICsx MzgsOCBAQCBpbnQgcXhsX2JvX2NyZWF0ZShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiwKPj4+Pj4+ PiBxeGxfdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgZG9tYWluKTsKPj4+Pj4+PiDCoMKg IHIgPSB0dG1fYm9faW5pdF9yZXNlcnZlZCgmcWRldi0+bW1hbi5iZGV2LCAmYm8tPnRibywgc2l6 ZSwgdHlwZSwKPj4+Pj4+PiAtICZiby0+cGxhY2VtZW50LCAwLCAmY3R4LCBzaXplLAo+Pj4+Pj4+ IC0gTlVMTCwgTlVMTCwgJnF4bF90dG1fYm9fZGVzdHJveSk7Cj4+Pj4+Pj4gKyAmYm8tPnBsYWNl bWVudCwgMCwgJmN0eCwgTlVMTCwgTlVMTCwKPj4+Pj4+PiArICZxeGxfdHRtX2JvX2Rlc3Ryb3kp Owo+Pj4+Pj4+IGlmICh1bmxpa2VseShyICE9IDApKSB7Cj4+Pj4+Pj4gaWYgKHIgIT0gLUVSRVNU QVJUU1lTKQo+Pj4+Pj4+IGRldl9lcnIocWRldi0+ZGRldi5kZXYsCj4+Pj4+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jIAo+Pj4+Pj4+IGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKPj4+Pj4+PiBpbmRleCA2YTMzNjI4 NDQ2NmYuLjgwNGY3YTQyN2JlNyAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9vYmplY3QuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX29iamVjdC5jCj4+Pj4+Pj4gQEAgLTE1OSw3ICsxNTksNiBAQCBpbnQgcmFkZW9u X2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAKPj4+Pj4+PiAqcmRldiwKPj4+Pj4+PiBz dHJ1Y3QgcmFkZW9uX2JvICpibzsKPj4+Pj4+PiBlbnVtIHR0bV9ib190eXBlIHR5cGU7Cj4+Pj4+ Pj4gdW5zaWduZWQgbG9uZyBwYWdlX2FsaWduID0gcm91bmR1cChieXRlX2FsaWduLCBQQUdFX1NJ WkUpID4+IAo+Pj4+Pj4+IFBBR0VfU0hJRlQ7Cj4+Pj4+Pj4gLXNpemVfdCBhY2Nfc2l6ZTsKPj4+ Pj4+PiBpbnQgcjsKPj4+Pj4+PiDCoMKgIHNpemUgPSBBTElHTihzaXplLCBQQUdFX1NJWkUpOwo+ Pj4+Pj4+IEBAIC0xNzMsOSArMTcyLDYgQEAgaW50IHJhZGVvbl9ib19jcmVhdGUoc3RydWN0IHJh ZGVvbl9kZXZpY2UgCj4+Pj4+Pj4gKnJkZXYsCj4+Pj4+Pj4gfQo+Pj4+Pj4+ICpib19wdHIgPSBO VUxMOwo+Pj4+Pj4+IC1hY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJnJkZXYtPm1tYW4u YmRldiwgc2l6ZSwKPj4+Pj4+PiAtwqDCoMKgwqDCoMKgIHNpemVvZihzdHJ1Y3QgcmFkZW9uX2Jv KSk7Cj4+Pj4+Pj4gLQo+Pj4+Pj4+IGJvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHJhZGVvbl9i byksIEdGUF9LRVJORUwpOwo+Pj4+Pj4+IGlmIChibyA9PSBOVUxMKQo+Pj4+Pj4+IHJldHVybiAt RU5PTUVNOwo+Pj4+Pj4+IEBAIC0yMzAsOCArMjI2LDggQEAgaW50IHJhZGVvbl9ib19jcmVhdGUo c3RydWN0IHJhZGVvbl9kZXZpY2UgCj4+Pj4+Pj4gKnJkZXYsCj4+Pj4+Pj4gLyogS2VybmVsIGFs bG9jYXRpb24gYXJlIHVuaW50ZXJydXB0aWJsZSAqLwo+Pj4+Pj4+IGRvd25fcmVhZCgmcmRldi0+ cG0ubWNsa19sb2NrKTsKPj4+Pj4+PiByID0gdHRtX2JvX2luaXQoJnJkZXYtPm1tYW4uYmRldiwg JmJvLT50Ym8sIHNpemUsIHR5cGUsCj4+Pj4+Pj4gLSZiby0+cGxhY2VtZW50LCBwYWdlX2FsaWdu LCAha2VybmVsLCBhY2Nfc2l6ZSwKPj4+Pj4+PiAtc2csIHJlc3YsICZyYWRlb25fdHRtX2JvX2Rl c3Ryb3kpOwo+Pj4+Pj4+ICsmYm8tPnBsYWNlbWVudCwgcGFnZV9hbGlnbiwgIWtlcm5lbCwgc2cs IHJlc3YsCj4+Pj4+Pj4gKyZyYWRlb25fdHRtX2JvX2Rlc3Ryb3kpOwo+Pj4+Pj4+IHVwX3JlYWQo JnJkZXYtPnBtLm1jbGtfbG9jayk7Cj4+Pj4+Pj4gaWYgKHVubGlrZWx5KHIgIT0gMCkpIHsKPj4+ Pj4+PiByZXR1cm4gcjsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS9N YWtlZmlsZSAKPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS90dG0vTWFrZWZpbGUKPj4+Pj4+PiBp bmRleCA4ZTY0MzdlYWRhYmUuLjQwZTVlOWRhNzk1MyAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0 bS9NYWtlZmlsZQo+Pj4+Pj4+IEBAIC0yLDEwICsyLDkgQEAKPj4+Pj4+PiAjCj4+Pj4+Pj4gIyBN YWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLsKgIFRoaXMgZHJpdmVyIHByb3ZpZGVz IAo+Pj4+Pj4+IHN1cHBvcnQgZm9yIHRoZQo+Pj4+Pj4+IC10dG0teSA6PSB0dG1fbWVtb3J5Lm8g dHRtX3R0Lm8gdHRtX2JvLm8gXAo+Pj4+Pj4+IC10dG1fYm9fdXRpbC5vIHR0bV9ib192bS5vIHR0 bV9tb2R1bGUubyBcCj4+Pj4+Pj4gLXR0bV9leGVjYnVmX3V0aWwubyB0dG1fcmFuZ2VfbWFuYWdl ci5vIFwKPj4+Pj4+PiAtdHRtX3Jlc291cmNlLm8gdHRtX3Bvb2wubyB0dG1fZGV2aWNlLm8KPj4+ Pj4+PiArdHRtLXkgOj0gdHRtX3R0Lm8gdHRtX2JvLm8gdHRtX2JvX3V0aWwubyB0dG1fYm9fdm0u byAKPj4+Pj4+PiB0dG1fbW9kdWxlLm8gXAo+Pj4+Pj4+ICt0dG1fZXhlY2J1Zl91dGlsLm8gdHRt X3JhbmdlX21hbmFnZXIubyB0dG1fcmVzb3VyY2UubyB0dG1fcG9vbC5vIFwKPj4+Pj4+PiArdHRt X2RldmljZS5vCj4+Pj4+Pj4gdHRtLSQoQ09ORklHX0FHUCkgKz0gdHRtX2FncF9iYWNrZW5kLm8K Pj4+Pj4+PiDCoMKgIG9iai0kKENPTkZJR19EUk1fVFRNKSArPSB0dG0ubwo+Pj4+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIAo+Pj4+Pj4+IGIvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm8uYwo+Pj4+Pj4+IGluZGV4IDY0M2JlZmMxYTZmMi4uZTM4MTAyMjgy ZmQ1IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPj4+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+Pj4+Pj4gQEAgLTQyNSw3 ICs0MjUsNiBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZikK Pj4+Pj4+PiBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0KPj4+Pj4+PiDCoMKgwqDCoCBj b250YWluZXJfb2Yoa3JlZiwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0LCBrcmVmKTsKPj4+Pj4+ PiBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+Pj4+Pj4+IC1zaXplX3QgYWNj X3NpemUgPSBiby0+YWNjX3NpemU7Cj4+Pj4+Pj4gaW50IHJldDsKPj4+Pj4+PiDCoMKgIGlmICgh Ym8tPmRlbGV0ZWQpIHsKPj4+Pj4+PiBAQCAtNDg1LDcgKzQ4NCw2IEBAIHN0YXRpYyB2b2lkIHR0 bV9ib19yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQo+Pj4+Pj4+IGlmICghdHRtX2JvX3VzZXNf ZW1iZWRkZWRfZ2VtX29iamVjdChibykpCj4+Pj4+Pj4gZG1hX3Jlc3ZfZmluaSgmYm8tPmJhc2Uu X3Jlc3YpOwo+Pj4+Pj4+IGJvLT5kZXN0cm95KGJvKTsKPj4+Pj4+PiAtdHRtX21lbV9nbG9iYWxf ZnJlZSgmdHRtX21lbV9nbG9iLCBhY2Nfc2l6ZSk7Cj4+Pj4+Pj4gfQo+Pj4+Pj4+IMKgwqAgdm9p ZCB0dG1fYm9fcHV0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+Pj4+Pj4gQEAgLTEw NDYsMjUgKzEwNDQsMTMgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCAKPj4+Pj4+ PiB0dG1fZGV2aWNlICpiZGV2LAo+Pj4+Pj4+IMKgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFj ZW1lbnQsCj4+Pj4+Pj4gwqAgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsCj4+Pj4+Pj4gwqAgc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4+Pj4+Pj4gLSBzaXplX3QgYWNjX3NpemUsCj4+ Pj4+Pj4gwqAgc3RydWN0IHNnX3RhYmxlICpzZywKPj4+Pj4+PiDCoCBzdHJ1Y3QgZG1hX3Jlc3Yg KnJlc3YsCj4+Pj4+Pj4gwqAgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKikpCj4+Pj4+Pj4gewo+Pj4+Pj4+IC1zdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKm1lbV9nbG9i ID0gJnR0bV9tZW1fZ2xvYjsKPj4+Pj4+PiBib29sIGxvY2tlZDsKPj4+Pj4+PiBpbnQgcmV0ID0g MDsKPj4+Pj4+PiAtcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxsb2MobWVtX2dsb2IsIGFjY19zaXpl LCBjdHgpOwo+Pj4+Pj4+IC1pZiAocmV0KSB7Cj4+Pj4+Pj4gLXByX2VycigiT3V0IG9mIGtlcm5l bCBtZW1vcnlcbiIpOwo+Pj4+Pj4+IC1pZiAoZGVzdHJveSkKPj4+Pj4+PiAtKCpkZXN0cm95KShi byk7Cj4+Pj4+Pj4gLWVsc2UKPj4+Pj4+PiAta2ZyZWUoYm8pOwo+Pj4+Pj4+IC1yZXR1cm4gLUVO T01FTTsKPj4+Pj4+PiAtfQo+Pj4+Pj4+IC0KPj4+Pj4+PiBiby0+ZGVzdHJveSA9IGRlc3Ryb3kg PyBkZXN0cm95IDogdHRtX2JvX2RlZmF1bHRfZGVzdHJveTsKPj4+Pj4+PiDCoMKgIGtyZWZfaW5p dCgmYm8tPmtyZWYpOwo+Pj4+Pj4+IEBAIC0xMDgxLDcgKzEwNjcsNiBAQCBpbnQgdHRtX2JvX2lu aXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9kZXZpY2UgCj4+Pj4+Pj4gKmJkZXYsCj4+Pj4+Pj4gYm8t Pm1lbS5idXMuYWRkciA9IE5VTEw7Cj4+Pj4+Pj4gYm8tPm1vdmluZyA9IE5VTEw7Cj4+Pj4+Pj4g Ym8tPm1lbS5wbGFjZW1lbnQgPSAwOwo+Pj4+Pj4+IC1iby0+YWNjX3NpemUgPSBhY2Nfc2l6ZTsK Pj4+Pj4+PiBiby0+cGluX2NvdW50ID0gMDsKPj4+Pj4+PiBiby0+c2cgPSBzZzsKPj4+Pj4+PiBp ZiAocmVzdikgewo+Pj4+Pj4+IEBAIC0xMTQyLDcgKzExMjcsNiBAQCBpbnQgdHRtX2JvX2luaXQo c3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+Pj4+Pj4gc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBs YWNlbWVudCwKPj4+Pj4+PiB1aW50MzJfdCBwYWdlX2FsaWdubWVudCwKPj4+Pj4+PiBib29sIGlu dGVycnVwdGlibGUsCj4+Pj4+Pj4gLXNpemVfdCBhY2Nfc2l6ZSwKPj4+Pj4+PiBzdHJ1Y3Qgc2df dGFibGUgKnNnLAo+Pj4+Pj4+IHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+Pj4+PiB2b2lkICgq ZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKSkKPj4+Pj4+PiBAQCAtMTE1MSw4 ICsxMTM1LDcgQEAgaW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4+ Pj4+IGludCByZXQ7Cj4+Pj4+Pj4gwqDCoCByZXQgPSB0dG1fYm9faW5pdF9yZXNlcnZlZChiZGV2 LCBibywgc2l6ZSwgdHlwZSwgcGxhY2VtZW50LAo+Pj4+Pj4+IC3CoMKgIHBhZ2VfYWxpZ25tZW50 LCAmY3R4LCBhY2Nfc2l6ZSwKPj4+Pj4+PiAtwqDCoCBzZywgcmVzdiwgZGVzdHJveSk7Cj4+Pj4+ Pj4gK8KgwqAgcGFnZV9hbGlnbm1lbnQsICZjdHgsIHNnLCByZXN2LCBkZXN0cm95KTsKPj4+Pj4+ PiBpZiAocmV0KQo+Pj4+Pj4+IHJldHVybiByZXQ7Cj4+Pj4+Pj4gQEAgLTExNjMsMjAgKzExNDYs NiBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+Pj4+Pj4gfQo+ Pj4+Pj4+IEVYUE9SVF9TWU1CT0wodHRtX2JvX2luaXQpOwo+Pj4+Pj4+IC1zaXplX3QgdHRtX2Jv X2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+Pj4+PiAtwqDCoCB1bnNp Z25lZCBsb25nIGJvX3NpemUsCj4+Pj4+Pj4gLcKgwqAgdW5zaWduZWQgc3RydWN0X3NpemUpCj4+ Pj4+Pj4gLXsKPj4+Pj4+PiAtdW5zaWduZWQgbnBhZ2VzID0gKFBBR0VfQUxJR04oYm9fc2l6ZSkp ID4+IFBBR0VfU0hJRlQ7Cj4+Pj4+Pj4gLXNpemVfdCBzaXplID0gMDsKPj4+Pj4+PiAtCj4+Pj4+ Pj4gLXNpemUgKz0gdHRtX3JvdW5kX3BvdChzdHJ1Y3Rfc2l6ZSk7Cj4+Pj4+Pj4gLXNpemUgKz0g dHRtX3JvdW5kX3BvdChucGFnZXMgKiAoMipzaXplb2Yodm9pZCAqKSArIAo+Pj4+Pj4+IHNpemVv ZihkbWFfYWRkcl90KSkpOwo+Pj4+Pj4+IC1zaXplICs9IHR0bV9yb3VuZF9wb3Qoc2l6ZW9mKHN0 cnVjdCB0dG1fdHQpKTsKPj4+Pj4+PiAtcmV0dXJuIHNpemU7Cj4+Pj4+Pj4gLX0KPj4+Pj4+PiAt RVhQT1JUX1NZTUJPTCh0dG1fYm9fZG1hX2FjY19zaXplKTsKPj4+Pj4+PiAtCj4+Pj4+Pj4gLyoK Pj4+Pj4+PiDCoCAqIGJ1ZmZlciBvYmplY3Qgdm0gZnVuY3Rpb25zLgo+Pj4+Pj4+IMKgICovCj4+ Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyAKPj4+ Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwo+Pj4+Pj4+IGluZGV4IGRi MGYyNjYxZDUwNC4uMDMxZTU4MTlmZWM0IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2JvX3V0aWwuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvX3V0aWwuYwo+Pj4+Pj4+IEBAIC0zMDksNyArMzA5LDYgQEAgc3RhdGljIGludCB0dG1f YnVmZmVyX29iamVjdF90cmFuc2ZlcihzdHJ1Y3QgCj4+Pj4+Pj4gdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+Pj4+Pj4+IMKgwqAga3JlZl9pbml0KCZmYm8tPmJhc2Uua3JlZik7Cj4+Pj4+Pj4gZmJv LT5iYXNlLmRlc3Ryb3kgPSAmdHRtX3RyYW5zZmVyZWRfZGVzdHJveTsKPj4+Pj4+PiAtZmJvLT5i YXNlLmFjY19zaXplID0gMDsKPj4+Pj4+PiBmYm8tPmJhc2UucGluX2NvdW50ID0gMDsKPj4+Pj4+ PiBpZiAoYm8tPnR5cGUgIT0gdHRtX2JvX3R5cGVfc2cpCj4+Pj4+Pj4gZmJvLT5iYXNlLmJhc2Uu cmVzdiA9ICZmYm8tPmJhc2UuYmFzZS5fcmVzdjsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMgCj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9kZXZpY2UuYwo+Pj4+Pj4+IGluZGV4IGFjMDkwM2M5ZTYwYS4uNmJkZTM0NGU1ZGE3IDEw MDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jCj4+Pj4+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMKPj4+Pj4+PiBAQCAtMjcs OSArMjcsMTIgQEAKPj4+Pj4+PiDCoMKgICNkZWZpbmUgcHJfZm10KGZtdCkgIltUVE0gREVWSUNF XSAiIGZtdAo+Pj4+Pj4+ICsjaW5jbHVkZSA8bGludXgvbW0uaD4KPj4+Pj4+PiArCj4+Pj4+Pj4g I2luY2x1ZGUgPGRybS90dG0vdHRtX2RldmljZS5oPgo+Pj4+Pj4+IC0jaW5jbHVkZSA8ZHJtL3R0 bS90dG1fbWVtb3J5Lmg+Cj4+Pj4+Pj4gKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV90dC5oPgo+Pj4+ Pj4+ICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1lbnQuaD4KPj4+Pj4+PiArI2luY2x1ZGUg PGRybS90dG0vdHRtX2JvX2FwaS5oPgo+Pj4+Pj4+IMKgwqAgI2luY2x1ZGUgInR0bV9tb2R1bGUu aCIKPj4+Pj4+PiBAQCAtNDksOSArNTIsMTEgQEAgc3RhdGljIHZvaWQgdHRtX2dsb2JhbF9yZWxl YXNlKHZvaWQpCj4+Pj4+Pj4gaWYgKC0tdHRtX2dsb2JfdXNlX2NvdW50ID4gMCkKPj4+Pj4+PiBn b3RvIG91dDsKPj4+Pj4+PiArdHRtX3Bvb2xfbWdyX2ZpbmkoKTsKPj4+Pj4+PiArdHRtX3R0X21n cl9maW5pKCk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+IGtvYmplY3RfZGVsKCZnbG9iLT5rb2JqKTsKPj4+ Pj4+PiBrb2JqZWN0X3B1dCgmZ2xvYi0+a29iaik7Cj4+Pj4+Pj4gLXR0bV9tZW1fZ2xvYmFsX3Jl bGVhc2UoJnR0bV9tZW1fZ2xvYik7Cj4+Pj4+Pj4gX19mcmVlX3BhZ2UoZ2xvYi0+ZHVtbXlfcmVh ZF9wYWdlKTsKPj4+Pj4+PiBtZW1zZXQoZ2xvYiwgMCwgc2l6ZW9mKCpnbG9iKSk7Cj4+Pj4+Pj4g b3V0Ogo+Pj4+Pj4+IEBAIC02MSw2ICs2Niw4IEBAIHN0YXRpYyB2b2lkIHR0bV9nbG9iYWxfcmVs ZWFzZSh2b2lkKQo+Pj4+Pj4+IHN0YXRpYyBpbnQgdHRtX2dsb2JhbF9pbml0KHZvaWQpCj4+Pj4+ Pj4gewo+Pj4+Pj4+IHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9nbG9iOwo+Pj4+Pj4+ ICt1bnNpZ25lZCBsb25nIG51bV9wYWdlczsKPj4+Pj4+PiArc3RydWN0IHN5c2luZm8gc2k7Cj4+ Pj4+Pj4gaW50IHJldCA9IDA7Cj4+Pj4+Pj4gdW5zaWduZWQgaTsKPj4+Pj4+PiBAQCAtNjgsOSAr NzUsMTQgQEAgc3RhdGljIGludCB0dG1fZ2xvYmFsX2luaXQodm9pZCkKPj4+Pj4+PiBpZiAoKyt0 dG1fZ2xvYl91c2VfY291bnQgPiAxKQo+Pj4+Pj4+IGdvdG8gb3V0Owo+Pj4+Pj4+IC1yZXQgPSB0 dG1fbWVtX2dsb2JhbF9pbml0KCZ0dG1fbWVtX2dsb2IpOwo+Pj4+Pj4+IC1pZiAocmV0KQo+Pj4+ Pj4+IC1nb3RvIG91dDsKPj4+Pj4+PiArc2lfbWVtaW5mbygmc2kpOwo+Pj4+Pj4+ICsKPj4+Pj4+ PiArLyogTGltaXQgdGhlIG51bWJlciBvZiBwYWdlcyBpbiB0aGUgcG9vbCB0byBhYm91dCA1MCUg b2YgdGhlIHRvdGFsCj4+Pj4+Pj4gKyAqIHN5c3RlbSBtZW1vcnkuCj4+Pj4+Pj4gKyAqLwo+Pj4+ Pj4+ICtudW1fcGFnZXMgPSAoKHU2NClzaS50b3RhbHJhbSAqIHNpLm1lbV91bml0KSA+PiBQQUdF X1NISUZUOwo+Pj4+Pj4+ICt0dG1fcG9vbF9tZ3JfaW5pdChudW1fcGFnZXMgKiA1MCAvIDEwMCk7 Cj4+Pj4+Pj4gK3R0bV90dF9tZ3JfaW5pdCgpOwo+Pj4+Pj4+IMKgwqAgc3Bpbl9sb2NrX2luaXQo Jmdsb2ItPmxydV9sb2NrKTsKPj4+Pj4+PiBnbG9iLT5kdW1teV9yZWFkX3BhZ2UgPSBhbGxvY19w YWdlKF9fR0ZQX1pFUk8gfCBHRlBfRE1BMzIpOwo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9wb29sLmMgCj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9wb29sLmMKPj4+Pj4+PiBpbmRleCBlMDYxNzcxNzExM2YuLjZiMGY5NTdkNjNkNSAxMDA2NDQK Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMKPj4+Pj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMKPj4+Pj4+PiBAQCAtNDA0LDE2ICs0MDQs MTAgQEAgaW50IHR0bV9wb29sX2FsbG9jKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwgCj4+Pj4+Pj4g c3RydWN0IHR0bV90dCAqdHQsCj4+Pj4+Pj4gY2FjaGluZyA9IHBhZ2VzICsgKDEgPDwgb3JkZXIp Owo+Pj4+Pj4+IH0KPj4+Pj4+PiAtciA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2UoJnR0bV9t ZW1fZ2xvYiwgcCwKPj4+Pj4+PiAtwqDCoMKgwqDCoCAoMSA8PCBvcmRlcikgKiBQQUdFX1NJWkUs Cj4+Pj4+Pj4gLcKgwqDCoMKgwqAgY3R4KTsKPj4+Pj4+PiAtaWYgKHIpCj4+Pj4+Pj4gLWdvdG8g ZXJyb3JfZnJlZV9wYWdlOwo+Pj4+Pj4+IC0KPj4+Pj4+PiBpZiAoZG1hX2FkZHIpIHsKPj4+Pj4+ PiByID0gdHRtX3Bvb2xfbWFwKHBvb2wsIG9yZGVyLCBwLCAmZG1hX2FkZHIpOwo+Pj4+Pj4+IGlm IChyKQo+Pj4+Pj4+IC1nb3RvIGVycm9yX2dsb2JhbF9mcmVlOwo+Pj4+Pj4+ICtnb3RvIGVycm9y X2ZyZWVfcGFnZTsKPj4+Pj4+PiB9Cj4+Pj4+Pj4gwqDCoCBudW1fcGFnZXMgLT0gMSA8PCBvcmRl cjsKPj4+Pj4+PiBAQCAtNDI3LDkgKzQyMSw2IEBAIGludCB0dG1fcG9vbF9hbGxvYyhzdHJ1Y3Qg dHRtX3Bvb2wgKnBvb2wsIAo+Pj4+Pj4+IHN0cnVjdCB0dG1fdHQgKnR0LAo+Pj4+Pj4+IMKgwqAg cmV0dXJuIDA7Cj4+Pj4+Pj4gLWVycm9yX2dsb2JhbF9mcmVlOgo+Pj4+Pj4+IC10dG1fbWVtX2ds b2JhbF9mcmVlX3BhZ2UoJnR0bV9tZW1fZ2xvYiwgcCwgKDEgPDwgb3JkZXIpICogCj4+Pj4+Pj4g UEFHRV9TSVpFKTsKPj4+Pj4+PiAtCj4+Pj4+Pj4gZXJyb3JfZnJlZV9wYWdlOgo+Pj4+Pj4+IHR0 bV9wb29sX2ZyZWVfcGFnZShwb29sLCB0dC0+Y2FjaGluZywgb3JkZXIsIHApOwo+Pj4+Pj4+IEBA IC00NjQsOCArNDU1LDYgQEAgdm9pZCB0dG1fcG9vbF9mcmVlKHN0cnVjdCB0dG1fcG9vbCAqcG9v bCwgCj4+Pj4+Pj4gc3RydWN0IHR0bV90dCAqdHQpCj4+Pj4+Pj4gwqDCoCBvcmRlciA9IHR0bV9w b29sX3BhZ2Vfb3JkZXIocG9vbCwgcCk7Cj4+Pj4+Pj4gbnVtX3BhZ2VzID0gMVVMTCA8PCBvcmRl cjsKPj4+Pj4+PiAtdHRtX21lbV9nbG9iYWxfZnJlZV9wYWdlKCZ0dG1fbWVtX2dsb2IsIHAsCj4+ Pj4+Pj4gLSBudW1fcGFnZXMgKiBQQUdFX1NJWkUpOwo+Pj4+Pj4+IGlmICh0dC0+ZG1hX2FkZHJl c3MpCj4+Pj4+Pj4gdHRtX3Bvb2xfdW5tYXAocG9vbCwgdHQtPmRtYV9hZGRyZXNzW2ldLCBudW1f cGFnZXMpOwo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L01ha2Vm aWxlIAo+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9NYWtlZmlsZQo+Pj4+Pj4+IGlu ZGV4IGNjNGNkY2E3MTc2ZS4uOGMwMmZhNTg1MmU3IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvTWFrZWZpbGUKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L01ha2VmaWxlCj4+Pj4+Pj4gQEAgLTksNyArOSw3IEBAIHZtd2dmeC15IDo9IHZtd2dm eF9leGVjYnVmLm8gdm13Z2Z4X2dtci5vIAo+Pj4+Pj4+IHZtd2dmeF9rbXMubyB2bXdnZnhfZHJ2 Lm8gXAo+Pj4+Pj4+IMKgwqDCoMKgIHZtd2dmeF9jb3RhYmxlLm8gdm13Z2Z4X3NvLm8gdm13Z2Z4 X2JpbmRpbmcubyB2bXdnZnhfbXNnLm8gXAo+Pj4+Pj4+IMKgwqDCoMKgIHZtd2dmeF9zaW1wbGVf cmVzb3VyY2UubyB2bXdnZnhfdmEubyB2bXdnZnhfYmxpdC5vIFwKPj4+Pj4+PiDCoMKgwqDCoCB2 bXdnZnhfdmFsaWRhdGlvbi5vIHZtd2dmeF9wYWdlX2RpcnR5Lm8gCj4+Pj4+Pj4gdm13Z2Z4X3N0 cmVhbW91dHB1dC5vIFwKPj4+Pj4+PiAtwqDCoMKgIHR0bV9vYmplY3QubyB0dG1fbG9jay5vCj4+ Pj4+Pj4gK8KgwqDCoCB0dG1fb2JqZWN0Lm8gdHRtX2xvY2subyB0dG1fbWVtb3J5Lm8KPj4+Pj4+ PiDCoMKgIHZtd2dmeC0kKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSkgKz0gdm13Z2Z4X3Ro cC5vCj4+Pj4+Pj4gb2JqLSQoQ09ORklHX0RSTV9WTVdHRlgpIDo9IHZtd2dmeC5vCj4+Pj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX21lbW9yeS5jIAo+Pj4+Pj4+IGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5LmMKPj4+Pj4+PiBzaW1pbGFyaXR5IGlu ZGV4IDk3JQo+Pj4+Pj4+IHJlbmFtZSBmcm9tIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX21lbW9y eS5jCj4+Pj4+Pj4gcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX21lbW9yeS5j Cj4+Pj4+Pj4gaW5kZXggNjM0YTg1YzJkYzRjLi4xMzA2ZDllMGYwOTUgMTAwNjQ0Cj4+Pj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fbWVtb3J5LmMKPj4+Pj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuYwo+Pj4+Pj4+IEBAIC0yOCw3ICsyOCw2IEBA Cj4+Pj4+Pj4gwqDCoCAjZGVmaW5lIHByX2ZtdChmbXQpICJbVFRNXSAiIGZtdAo+Pj4+Pj4+IC0j aW5jbHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+Cj4+Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L3Nw aW5sb2NrLmg+Cj4+Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Cj4+Pj4+Pj4gI2luY2x1 ZGUgPGxpbnV4L3dhaXQuaD4KPj4+Pj4+PiBAQCAtMzYsMTAgKzM1LDExIEBACj4+Pj4+Pj4gI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+Pj4+Pj4+ICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4+ Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KPj4+Pj4+PiAtI2luY2x1ZGUgPGRybS90dG0v dHRtX3Bvb2wuaD4KPj4+Pj4+PiAtI2luY2x1ZGUgPGRybS90dG0vdHRtX3R0Lmg+Cj4+Pj4+Pj4g LSNpbmNsdWRlICJ0dG1fbW9kdWxlLmgiCj4+Pj4+Pj4gKyNpbmNsdWRlIDxkcm0vZHJtX2Rldmlj ZS5oPgo+Pj4+Pj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ ICsjaW5jbHVkZSAidHRtX21lbW9yeS5oIgo+Pj4+Pj4+IMKgwqAgI2RlZmluZSBUVE1fTUVNT1JZ X0FMTE9DX1JFVFJJRVMgNAo+Pj4+Pj4+IEBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGljIGludCB0 dG1fbWVtX2luaXRfZG1hMzJfem9uZShzdHJ1Y3QgCj4+Pj4+Pj4gdHRtX21lbV9nbG9iYWwgKmds b2IsCj4+Pj4+Pj4gfQo+Pj4+Pj4+ICNlbmRpZgo+Pj4+Pj4+IC1pbnQgdHRtX21lbV9nbG9iYWxf aW5pdChzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IpCj4+Pj4+Pj4gK2ludCB0dG1fbWVtX2ds b2JhbF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgc3RydWN0IAo+Pj4+Pj4+IGRy bV9kZXZpY2UgKmRldikKPj4+Pj4+PiB7Cj4+Pj4+Pj4gc3RydWN0IHN5c2luZm8gc2k7Cj4+Pj4+ Pj4gaW50IHJldDsKPj4+Pj4+PiBAQCAtNDI1LDcgKzQyNSw4IEBAIGludCB0dG1fbWVtX2dsb2Jh bF9pbml0KHN0cnVjdCAKPj4+Pj4+PiB0dG1fbWVtX2dsb2JhbCAqZ2xvYikKPj4+Pj4+PiBnbG9i LT5zd2FwX3F1ZXVlID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoInR0bV9zd2FwIik7 Cj4+Pj4+Pj4gSU5JVF9XT1JLKCZnbG9iLT53b3JrLCB0dG1fc2hyaW5rX3dvcmspOwo+Pj4+Pj4+ IHJldCA9IGtvYmplY3RfaW5pdF9hbmRfYWRkKAo+Pj4+Pj4+IC0mZ2xvYi0+a29iaiwgJnR0bV9t ZW1fZ2xvYl9rb2JqX3R5cGUsIHR0bV9nZXRfa29iaigpLCAKPj4+Pj4+PiAibWVtb3J5X2FjY291 bnRpbmciKTsKPj4+Pj4+PiArJmdsb2ItPmtvYmosICZ0dG1fbWVtX2dsb2Jfa29ial90eXBlLCAm ZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLAo+Pj4+Pj4+ICsibWVtb3J5X2FjY291bnRpbmciKTsK Pj4+Pj4+PiBpZiAodW5saWtlbHkocmV0ICE9IDApKSB7Cj4+Pj4+Pj4ga29iamVjdF9wdXQoJmds b2ItPmtvYmopOwo+Pj4+Pj4+IHJldHVybiByZXQ7Cj4+Pj4+Pj4gQEAgLTQ1Myw4ICs0NTQsNiBA QCBpbnQgdHRtX21lbV9nbG9iYWxfaW5pdChzdHJ1Y3QgCj4+Pj4+Pj4gdHRtX21lbV9nbG9iYWwg Kmdsb2IpCj4+Pj4+Pj4gcHJfaW5mbygiWm9uZSAlN3M6IEF2YWlsYWJsZSBncmFwaGljcyBtZW1v cnk6ICVsbHUgS2lCXG4iLAo+Pj4+Pj4+IHpvbmUtPm5hbWUsICh1bnNpZ25lZCBsb25nIGxvbmcp em9uZS0+bWF4X21lbSA+PiAxMCk7Cj4+Pj4+Pj4gfQo+Pj4+Pj4+IC10dG1fcG9vbF9tZ3JfaW5p dChnbG9iLT56b25lX2tlcm5lbC0+bWF4X21lbS8oMipQQUdFX1NJWkUpKTsKPj4+Pj4+PiAtdHRt X3R0X21ncl9pbml0KCk7Cj4+Pj4+Pj4gcmV0dXJuIDA7Cj4+Pj4+Pj4gb3V0X25vX3pvbmU6Cj4+ Pj4+Pj4gdHRtX21lbV9nbG9iYWxfcmVsZWFzZShnbG9iKTsKPj4+Pj4+PiBAQCAtNDY2LDEwICs0 NjUsNiBAQCB2b2lkIHR0bV9tZW1fZ2xvYmFsX3JlbGVhc2Uoc3RydWN0IAo+Pj4+Pj4+IHR0bV9t ZW1fZ2xvYmFsICpnbG9iKQo+Pj4+Pj4+IHN0cnVjdCB0dG1fbWVtX3pvbmUgKnpvbmU7Cj4+Pj4+ Pj4gdW5zaWduZWQgaW50IGk7Cj4+Pj4+Pj4gLS8qIGxldCB0aGUgcGFnZSBhbGxvY2F0b3IgZmly c3Qgc3RvcCB0aGUgc2hyaW5rIHdvcmsuICovCj4+Pj4+Pj4gLXR0bV9wb29sX21ncl9maW5pKCk7 Cj4+Pj4+Pj4gLXR0bV90dF9tZ3JfZmluaSgpOwo+Pj4+Pj4+IC0KPj4+Pj4+PiBmbHVzaF93b3Jr cXVldWUoZ2xvYi0+c3dhcF9xdWV1ZSk7Cj4+Pj4+Pj4gZGVzdHJveV93b3JrcXVldWUoZ2xvYi0+ c3dhcF9xdWV1ZSk7Cj4+Pj4+Pj4gZ2xvYi0+c3dhcF9xdWV1ZSA9IE5VTEw7Cj4+Pj4+Pj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fbWVtb3J5LmggCj4+Pj4+Pj4gYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuaAo+Pj4+Pj4+IHNpbWlsYXJpdHkgaW5kZXggOTcl Cj4+Pj4+Pj4gcmVuYW1lIGZyb20gaW5jbHVkZS9kcm0vdHRtL3R0bV9tZW1vcnkuaAo+Pj4+Pj4+ IHJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuaAo+Pj4+Pj4+IGlu ZGV4IGMxZjE2Nzg4MWUzMy4uODUwZWU2Yzg2N2RhIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2luY2x1 ZGUvZHJtL3R0bS90dG1fbWVtb3J5LmgKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3R0bV9tZW1vcnkuaAo+Pj4+Pj4+IEBAIC0zNSw3ICszNSw4IEBACj4+Pj4+Pj4gI2luY2x1 ZGUgPGxpbnV4L2Vycm5vLmg+Cj4+Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KPj4+ Pj4+PiAjaW5jbHVkZSA8bGludXgvbW0uaD4KPj4+Pj4+PiAtI2luY2x1ZGUgInR0bV9ib19hcGku aCIKPj4+Pj4+PiArCj4+Pj4+Pj4gKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19hcGkuaD4KPj4+ Pj4+PiDCoMKgIC8qKgo+Pj4+Pj4+IMKgICogc3RydWN0IHR0bV9tZW1fZ2xvYmFsIC0gR2xvYmFs IG1lbW9yeSBhY2NvdW50aW5nIHN0cnVjdHVyZS4KPj4+Pj4+PiBAQCAtNzksNyArODAsNyBAQCBl eHRlcm4gc3RydWN0IHR0bV9tZW1fZ2xvYmFsIHsKPj4+Pj4+PiAjZW5kaWYKPj4+Pj4+PiB9IHR0 bV9tZW1fZ2xvYjsKPj4+Pj4+PiAtaW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9t ZW1fZ2xvYmFsICpnbG9iKTsKPj4+Pj4+PiAraW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0 IHR0bV9tZW1fZ2xvYmFsICpnbG9iLCBzdHJ1Y3QgCj4+Pj4+Pj4gZHJtX2RldmljZSAqZGV2KTsK Pj4+Pj4+PiB2b2lkIHR0bV9tZW1fZ2xvYmFsX3JlbGVhc2Uoc3RydWN0IHR0bV9tZW1fZ2xvYmFs ICpnbG9iKTsKPj4+Pj4+PiBpbnQgdHRtX21lbV9nbG9iYWxfYWxsb2Moc3RydWN0IHR0bV9tZW1f Z2xvYmFsICpnbG9iLCB1aW50NjRfdCAKPj4+Pj4+PiBtZW1vcnksCj4+Pj4+Pj4gwqAgc3RydWN0 IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3R0bV9vYmplY3QuaCAKPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS92bXdn ZngvdHRtX29iamVjdC5oCj4+Pj4+Pj4gaW5kZXggZWRlMjZkZjg3YzkzLi40OWIwNjRmMGNiMTkg MTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmgK Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9vYmplY3QuaAo+Pj4+Pj4+ IEBAIC00Myw3ICs0Myw4IEBACj4+Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+Cj4+ Pj4+Pj4gwqDCoCAjaW5jbHVkZSA8ZHJtL2RybV9oYXNodGFiLmg+Cj4+Pj4+Pj4gLSNpbmNsdWRl IDxkcm0vdHRtL3R0bV9tZW1vcnkuaD4KPj4+Pj4+PiArCj4+Pj4+Pj4gKyNpbmNsdWRlICJ0dG1f bWVtb3J5LmgiCj4+Pj4+Pj4gwqDCoCAvKioKPj4+Pj4+PiDCoCAqIGVudW0gdHRtX3JlZl90eXBl Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMg Cj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jCj4+Pj4+Pj4gaW5k ZXggNmIzYmZkOGM2NzhhLi41MGU1MjlhMDE2NzcgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2JvLmMKPj4+Pj4+PiBAQCAtNTA3LDExICs1MDcsMTYgQEAgaW50IHZt d19ib19jcmVhdGVfa2VybmVsKHN0cnVjdCAKPj4+Pj4+PiB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYs IHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4+Pj4+PiBhY2Nfc2l6ZSA9IHR0bV9yb3VuZF9wb3Qoc2l6 ZW9mKCpibykpOwo+Pj4+Pj4+IGFjY19zaXplICs9IHR0bV9yb3VuZF9wb3QobnBhZ2VzICogc2l6 ZW9mKHZvaWQgKikpOwo+Pj4+Pj4+IGFjY19zaXplICs9IHR0bV9yb3VuZF9wb3Qoc2l6ZW9mKHN0 cnVjdCB0dG1fdHQpKTsKPj4+Pj4+PiArCj4+Pj4+Pj4gK3JldCA9IHR0bV9tZW1fZ2xvYmFsX2Fs bG9jKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplLCAmY3R4KTsKPj4+Pj4+PiAraWYgKHVubGlrZWx5 KHJldCkpCj4+Pj4+Pj4gK2dvdG8gZXJyb3JfZnJlZTsKPj4+Pj4+PiArCj4+Pj4+Pj4gcmV0ID0g dHRtX2JvX2luaXRfcmVzZXJ2ZWQoJmRldl9wcml2LT5iZGV2LCBibywgc2l6ZSwKPj4+Pj4+PiDC oMKgwqAgdHRtX2JvX3R5cGVfZGV2aWNlLCBwbGFjZW1lbnQsIDAsCj4+Pj4+Pj4gLcKgwqAgJmN0 eCwgYWNjX3NpemUsIE5VTEwsIE5VTEwsIE5VTEwpOwo+Pj4+Pj4+ICvCoMKgICZjdHgsIE5VTEws IE5VTEwsIE5VTEwpOwo+Pj4+Pj4+IGlmICh1bmxpa2VseShyZXQpKQo+Pj4+Pj4+IC1nb3RvIGVy cm9yX2ZyZWU7Cj4+Pj4+Pj4gK2dvdG8gZXJyb3JfYWNjb3VudDsKPj4+Pj4+PiDCoMKgIHR0bV9i b19waW4oYm8pOwo+Pj4+Pj4+IHR0bV9ib191bnJlc2VydmUoYm8pOwo+Pj4+Pj4+IEBAIC01MTks NiArNTI0LDkgQEAgaW50IHZtd19ib19jcmVhdGVfa2VybmVsKHN0cnVjdCB2bXdfcHJpdmF0ZSAK Pj4+Pj4+PiAqZGV2X3ByaXYsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4+Pj4+PiDCoMKgIHJldHVy biAwOwo+Pj4+Pj4+ICtlcnJvcl9hY2NvdW50Ogo+Pj4+Pj4+ICt0dG1fbWVtX2dsb2JhbF9mcmVl KCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplKTsKPj4+Pj4+PiArCj4+Pj4+Pj4gZXJyb3JfZnJlZToK Pj4+Pj4+PiBrZnJlZShibyk7Cj4+Pj4+Pj4gcmV0dXJuIHJldDsKPj4+Pj4+PiBAQCAtNTU4LDEx ICs1NjYsMTcgQEAgaW50IHZtd19ib19pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4+Pj4+Pj4gdm13X2JvLT5iYXNlLnByaW9yaXR5ID0gMzsKPj4+Pj4+PiB2bXdfYm8tPnJlc190 cmVlID0gUkJfUk9PVDsKPj4+Pj4+PiArcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxsb2MoJnR0bV9t ZW1fZ2xvYiwgYWNjX3NpemUsICZjdHgpOwo+Pj4+Pj4+ICtpZiAodW5saWtlbHkocmV0KSkKPj4+ Pj4+PiArcmV0dXJuIHJldDsKPj4+Pj4+PiArCj4+Pj4+Pj4gcmV0ID0gdHRtX2JvX2luaXRfcmVz ZXJ2ZWQoYmRldiwgJnZtd19iby0+YmFzZSwgc2l6ZSwKPj4+Pj4+PiDCoMKgwqAgdHRtX2JvX3R5 cGVfZGV2aWNlLCBwbGFjZW1lbnQsCj4+Pj4+Pj4gLcKgwqAgMCwgJmN0eCwgYWNjX3NpemUsIE5V TEwsIE5VTEwsIGJvX2ZyZWUpOwo+Pj4+Pj4+IC1pZiAodW5saWtlbHkocmV0KSkKPj4+Pj4+PiAr wqDCoCAwLCAmY3R4LCBOVUxMLCBOVUxMLCBib19mcmVlKTsKPj4+Pj4+PiAraWYgKHVubGlrZWx5 KHJldCkpIHsKPj4+Pj4+PiArdHRtX21lbV9nbG9iYWxfZnJlZSgmdHRtX21lbV9nbG9iLCBhY2Nf c2l6ZSk7Cj4+Pj4+Pj4gcmV0dXJuIHJldDsKPj4+Pj4+PiArfQo+Pj4+Pj4+IMKgwqAgaWYgKHBp bikKPj4+Pj4+PiB0dG1fYm9fcGluKCZ2bXdfYm8tPmJhc2UpOwo+Pj4+Pj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYyAKPj4+Pj4+PiBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCj4+Pj4+Pj4gaW5kZXggNzEwYmE1MTY5YTc0Li42 YzBjYTEwMTE2MjkgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfZHJ2LmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9k cnYuYwo+Pj4+Pj4+IEBAIC0xMjY4LDYgKzEyNjgsNyBAQCBzdGF0aWMgdm9pZCB2bXdfcmVtb3Zl KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+Pj4+Pj4+IHsKPj4+Pj4+PiBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwo+Pj4+Pj4+ICt0dG1fbWVtX2dsb2JhbF9y ZWxlYXNlKCZ0dG1fbWVtX2dsb2IpOwo+Pj4+Pj4+IGRybV9kZXZfdW5yZWdpc3RlcihkZXYpOwo+ Pj4+Pj4+IHZtd19kcml2ZXJfdW5sb2FkKGRldik7Cj4+Pj4+Pj4gfQo+Pj4+Pj4+IEBAIC0xNTE4 LDYgKzE1MTksMTAgQEAgc3RhdGljIGludCB2bXdfcHJvYmUoc3RydWN0IHBjaV9kZXYgCj4+Pj4+ Pj4gKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCj4+Pj4+Pj4gwqDCoCBw Y2lfc2V0X2RydmRhdGEocGRldiwgJnZtdy0+ZHJtKTsKPj4+Pj4+PiArcmV0ID0gdHRtX21lbV9n bG9iYWxfaW5pdCgmdHRtX21lbV9nbG9iLCAmdm13LT5kcm0pOwo+Pj4+Pj4+ICtpZiAocmV0KQo+ Pj4+Pj4+ICtyZXR1cm4gcmV0Owo+Pj4+Pj4+ICsKPj4+Pj4+PiByZXQgPSB2bXdfZHJpdmVyX2xv YWQodm13LCBlbnQtPmRldmljZSk7Cj4+Pj4+Pj4gaWYgKHJldCkKPj4+Pj4+PiByZXR1cm4gcmV0 Owo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1f YnVmZmVyLmMgCj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVm ZmVyLmMKPj4+Pj4+PiBpbmRleCBkMWJmYTU5NTc5ZjEuLjYzZjEwYzg2NTA2MSAxMDA2NDQKPj4+ Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKPj4+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKPj4+ Pj4+PiBAQCAtNTc2LDExICs1NzYsMzEgQEAgc3RhdGljIHZvaWQgdm13X3R0bV9kZXN0cm95KHN0 cnVjdCAKPj4+Pj4+PiB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+Pj4+ Pj4gc3RhdGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+ Pj4+Pj4+IMKgwqDCoMKgIHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25f Y3R4ICpjdHgpCj4+Pj4+Pj4gewo+Pj4+Pj4+ICt1bnNpZ25lZCBpbnQgaTsKPj4+Pj4+PiAraW50 IHJldDsKPj4+Pj4+PiArCj4+Pj4+Pj4gLyogVE9ETzogbWF5YmUgY29tcGxldGVseSBkcm9wIHRo aXMgPyAqLwo+Pj4+Pj4+IGlmICh0dG1fdHRfaXNfcG9wdWxhdGVkKHR0bSkpCj4+Pj4+Pj4gcmV0 dXJuIDA7Cj4+Pj4+Pj4gLXJldHVybiB0dG1fcG9vbF9hbGxvYygmYmRldi0+cG9vbCwgdHRtLCBj dHgpOwo+Pj4+Pj4+ICtyZXQgPSB0dG1fcG9vbF9hbGxvYygmYmRldi0+cG9vbCwgdHRtLCBjdHgp Owo+Pj4+Pj4+ICtpZiAocmV0KQo+Pj4+Pj4+ICtyZXR1cm4gcmV0Owo+Pj4+Pj4+ICsKPj4+Pj4+ PiArZm9yIChpID0gMDsgaSA8IHR0bS0+bnVtX3BhZ2VzOyArK2kpIHsKPj4+Pj4+PiArcmV0ID0g dHRtX21lbV9nbG9iYWxfYWxsb2NfcGFnZSgmdHRtX21lbV9nbG9iLCB0dG0tPnBhZ2VzW2ldLAo+ Pj4+Pj4+ICtQQUdFX1NJWkUsIGN0eCk7Cj4+Pj4+Pj4gK2lmIChyZXQpCj4+Pj4+Pj4gK2dvdG8g ZXJyb3I7Cj4+Pj4+Pj4gK30KPj4+Pj4+PiArcmV0dXJuIDA7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtl cnJvcjoKPj4+Pj4+PiArd2hpbGUgKGktLSkKPj4+Pj4+PiArdHRtX21lbV9nbG9iYWxfZnJlZV9w YWdlKCZ0dG1fbWVtX2dsb2IsIHR0bS0+cGFnZXNbaV0sCj4+Pj4+Pj4gKyBQQUdFX1NJWkUpOwo+ Pj4+Pj4+ICt0dG1fcG9vbF9mcmVlKCZiZGV2LT5wb29sLCB0dG0pOwo+Pj4+Pj4+ICtyZXR1cm4g cmV0Owo+Pj4+Pj4+IH0KPj4+Pj4+PiDCoMKgIHN0YXRpYyB2b2lkIHZtd190dG1fdW5wb3B1bGF0 ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+Pj4+PiBAQCAtNTg4LDYgKzYwOCw3IEBAIHN0 YXRpYyB2b2lkIHZtd190dG1fdW5wb3B1bGF0ZShzdHJ1Y3QgCj4+Pj4+Pj4gdHRtX2RldmljZSAq YmRldiwKPj4+Pj4+PiB7Cj4+Pj4+Pj4gc3RydWN0IHZtd190dG1fdHQgKnZtd190dCA9IGNvbnRh aW5lcl9vZih0dG0sIHN0cnVjdCB2bXdfdHRtX3R0LAo+Pj4+Pj4+IMKgIGRtYV90dG0pOwo+Pj4+ Pj4+ICt1bnNpZ25lZCBpbnQgaTsKPj4+Pj4+PiDCoMKgIGlmICh2bXdfdHQtPm1vYikgewo+Pj4+ Pj4+IHZtd19tb2JfZGVzdHJveSh2bXdfdHQtPm1vYik7Cj4+Pj4+Pj4gQEAgLTU5NSw2ICs2MTYs MTEgQEAgc3RhdGljIHZvaWQgdm13X3R0bV91bnBvcHVsYXRlKHN0cnVjdCAKPj4+Pj4+PiB0dG1f ZGV2aWNlICpiZGV2LAo+Pj4+Pj4+IH0KPj4+Pj4+PiDCoMKgIHZtd190dG1fdW5tYXBfZG1hKHZt d190dCk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtmb3IgKGkgPSAwOyBpIDwgdHRtLT5udW1fcGFnZXM7 ICsraSkKPj4+Pj4+PiArdHRtX21lbV9nbG9iYWxfZnJlZV9wYWdlKCZ0dG1fbWVtX2dsb2IsIHR0 bS0+cGFnZXNbaV0sCj4+Pj4+Pj4gKyBQQUdFX1NJWkUpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiB0dG1f cG9vbF9mcmVlKCZiZGV2LT5wb29sLCB0dG0pOwo+Pj4+Pj4+IH0KPj4+Pj4+PiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAKPj4+Pj4+PiBiL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fYXBpLmgKPj4+Pj4+PiBpbmRleCAxMjk3YThmYjdjY2IuLjRmYjUyM2RmYWIzMiAx MDA2NDQKPj4+Pj4+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCj4+Pj4+Pj4g KysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAo+Pj4+Pj4+IEBAIC04OCw3ICs4OCw2 IEBAIHN0cnVjdCB0dG1fdHQ7Cj4+Pj4+Pj4gwqAgKiBAdHlwZTogVGhlIGJvIHR5cGUuCj4+Pj4+ Pj4gwqAgKiBAZGVzdHJveTogRGVzdHJ1Y3Rpb24gZnVuY3Rpb24uIElmIE5VTEwsIGtmcmVlIGlz IHVzZWQuCj4+Pj4+Pj4gwqAgKiBAbnVtX3BhZ2VzOiBBY3R1YWwgbnVtYmVyIG9mIHBhZ2VzLgo+ Pj4+Pj4+IC0gKiBAYWNjX3NpemU6IEFjY291bnRlZCBzaXplIGZvciB0aGlzIG9iamVjdC4KPj4+ Pj4+PiDCoCAqIEBrcmVmOiBSZWZlcmVuY2UgY291bnQgb2YgdGhpcyBidWZmZXIgb2JqZWN0LiBX aGVuIHRoaXMgCj4+Pj4+Pj4gcmVmY291bnQgcmVhY2hlcwo+Pj4+Pj4+IMKgICogemVybywgdGhl IG9iamVjdCBpcyBkZXN0cm95ZWQgb3IgcHV0IG9uIHRoZSBkZWxheWVkIGRlbGV0ZSAKPj4+Pj4+ PiBsaXN0Lgo+Pj4+Pj4+IMKgICogQG1lbTogc3RydWN0dXJlIGRlc2NyaWJpbmcgY3VycmVudCBw bGFjZW1lbnQuCj4+Pj4+Pj4gQEAgLTEyNSw3ICsxMjQsNiBAQCBzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3Qgewo+Pj4+Pj4+IHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2Owo+Pj4+Pj4+IGVudW0gdHRt X2JvX3R5cGUgdHlwZTsKPj4+Pj4+PiB2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqKTsKPj4+Pj4+PiAtc2l6ZV90IGFjY19zaXplOwo+Pj4+Pj4+IMKgwqAgLyoqCj4+ Pj4+Pj4gKiBNZW1iZXJzIG5vdCBuZWVkaW5nIHByb3RlY3Rpb24uCj4+Pj4+Pj4gQEAgLTM1Nywx MCArMzU1LDYgQEAgdm9pZCB0dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVjdCAK Pj4+Pj4+PiB0dG1fZGV2aWNlICpiZGV2LCBpbnQgcmVzY2hlZCk7Cj4+Pj4+Pj4gYm9vbCB0dG1f Ym9fZXZpY3Rpb25fdmFsdWFibGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+Pj4+ PiDCoMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UpOwo+Pj4+Pj4+IC1z aXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+Pj4+ PiAtwqDCoCB1bnNpZ25lZCBsb25nIGJvX3NpemUsCj4+Pj4+Pj4gLcKgwqAgdW5zaWduZWQgc3Ry dWN0X3NpemUpOwo+Pj4+Pj4+IC0KPj4+Pj4+PiAvKioKPj4+Pj4+PiDCoCAqIHR0bV9ib19pbml0 X3Jlc2VydmVkCj4+Pj4+Pj4gwqAgKgo+Pj4+Pj4+IEBAIC0zNzEsNyArMzY1LDYgQEAgc2l6ZV90 IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0IHR0bV9kZXZpY2UgCj4+Pj4+Pj4gKmJkZXYsCj4+ Pj4+Pj4gwqAgKiBAZmxhZ3M6IEluaXRpYWwgcGxhY2VtZW50IGZsYWdzLgo+Pj4+Pj4+IMKgICog QHBhZ2VfYWxpZ25tZW50OiBEYXRhIGFsaWdubWVudCBpbiBwYWdlcy4KPj4+Pj4+PiDCoCAqIEBj dHg6IFRUTSBvcGVyYXRpb24gY29udGV4dCBmb3IgbWVtb3J5IGFsbG9jYXRpb24uCj4+Pj4+Pj4g LSAqIEBhY2Nfc2l6ZTogQWNjb3VudGVkIHNpemUgZm9yIHRoaXMgb2JqZWN0Lgo+Pj4+Pj4+IMKg ICogQHJlc3Y6IFBvaW50ZXIgdG8gYSBkbWFfcmVzdiwgb3IgTlVMTCB0byBsZXQgdHRtIGFsbG9j YXRlIG9uZS4KPj4+Pj4+PiDCoCAqIEBkZXN0cm95OiBEZXN0cm95IGZ1bmN0aW9uLiBVc2UgTlVM TCBmb3Iga2ZyZWUoKS4KPj4+Pj4+PiDCoCAqCj4+Pj4+Pj4gQEAgLTQwMiw4ICszOTUsNyBAQCBp bnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9kZXZpY2UgCj4+Pj4+Pj4gKmJkZXYs Cj4+Pj4+Pj4gwqAgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwKPj4+Pj4+PiDCoCB1 aW50MzJfdCBwYWdlX2FsaWdubWVudCwKPj4+Pj4+PiDCoCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9j dHggKmN0eCwKPj4+Pj4+PiAtIHNpemVfdCBhY2Nfc2l6ZSwgc3RydWN0IHNnX3RhYmxlICpzZywK Pj4+Pj4+PiAtIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+Pj4+PiArIHN0cnVjdCBzZ190YWJs ZSAqc2csIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+Pj4+PiDCoCB2b2lkICgqZGVzdHJveSkg KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKSk7Cj4+Pj4+Pj4gwqDCoCAvKioKPj4+Pj4+PiBA QCAtNDIxLDcgKzQxMyw2IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2Rl dmljZSAKPj4+Pj4+PiAqYmRldiwKPj4+Pj4+PiDCoCAqIGhvbGRzIGEgcG9pbnRlciB0byBhIHBl cnNpc3RlbnQgc2htZW0gb2JqZWN0LiBUeXBpY2FsbHksIAo+Pj4+Pj4+IHRoaXMgd291bGQKPj4+ Pj4+PiDCoCAqIHBvaW50IHRvIHRoZSBzaG1lbSBvYmplY3QgYmFja2luZyBhIEdFTSBvYmplY3Qg aWYgVFRNIGlzIAo+Pj4+Pj4+IHVzZWQgdG8gYmFjayBhCj4+Pj4+Pj4gwqAgKiBHRU0gdXNlciBp bnRlcmZhY2UuCj4+Pj4+Pj4gLSAqIEBhY2Nfc2l6ZTogQWNjb3VudGVkIHNpemUgZm9yIHRoaXMg b2JqZWN0Lgo+Pj4+Pj4+IMKgICogQHJlc3Y6IFBvaW50ZXIgdG8gYSBkbWFfcmVzdiwgb3IgTlVM TCB0byBsZXQgdHRtIGFsbG9jYXRlIG9uZS4KPj4+Pj4+PiDCoCAqIEBkZXN0cm95OiBEZXN0cm95 IGZ1bmN0aW9uLiBVc2UgTlVMTCBmb3Iga2ZyZWUoKS4KPj4+Pj4+PiDCoCAqCj4+Pj4+Pj4gQEAg LTQ0Niw3ICs0MzcsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9kZXZp Y2UgCj4+Pj4+Pj4gKmJkZXYsCj4+Pj4+Pj4gaW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2LCBzdHJ1Y3QgCj4+Pj4+Pj4gdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4+Pj4+ IHNpemVfdCBzaXplLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsCj4+Pj4+Pj4gc3RydWN0IHR0bV9w bGFjZW1lbnQgKnBsYWNlbWVudCwKPj4+Pj4+PiAtdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsIGJv b2wgaW50ZXJydWJ0aWJsZSwgc2l6ZV90IGFjY19zaXplLAo+Pj4+Pj4+ICt1aW50MzJfdCBwYWdl X2FsaWdubWVudCwgYm9vbCBpbnRlcnJ1YnRpYmxlLAo+Pj4+Pj4+IHN0cnVjdCBzZ190YWJsZSAq c2csIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+Pj4+PiB2b2lkICgqZGVzdHJveSkgKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqKSk7Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L3R0bS90dG1fYm9fZHJpdmVyLmggCj4+Pj4+Pj4gYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Ry aXZlci5oCj4+Pj4+Pj4gaW5kZXggMWM5YmY5OTNlMjUyLi44OTU5YzAwNzVjZmQgMTAwNjQ0Cj4+ Pj4+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+Pj4+Pj4+ICsrKyBi L2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPj4+Pj4+PiBAQCAtNDAsNyArNDAsNiBA QAo+Pj4+Pj4+ICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9kZXZpY2UuaD4KPj4+Pj4+PiDCoMKgICNp bmNsdWRlICJ0dG1fYm9fYXBpLmgiCj4+Pj4+Pj4gLSNpbmNsdWRlICJ0dG1fbWVtb3J5LmgiCj4+ Pj4+Pj4gI2luY2x1ZGUgInR0bV9wbGFjZW1lbnQuaCIKPj4+Pj4+PiAjaW5jbHVkZSAidHRtX3R0 LmgiCj4+Pj4+Pj4gI2luY2x1ZGUgInR0bV9wb29sLmgiCj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL3R0bS90dG1fdHQuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaAo+Pj4+Pj4+ IGluZGV4IGNjZTU3ZmI0OWUyYy4uMDY5ZjgxMzAyNDFhIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2lu Y2x1ZGUvZHJtL3R0bS90dG1fdHQuaAo+Pj4+Pj4+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1f dHQuaAo+Pj4+Pj4+IEBAIC0zMCw2ICszMCw3IEBACj4+Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+Cj4+Pj4+Pj4gI2luY2x1ZGUgPGRybS90dG0vdHRtX2NhY2hpbmcuaD4KPj4+Pj4+PiAr c3RydWN0IHR0bV9ib19kZXZpY2U7Cj4+Pj4+Pj4gc3RydWN0IHR0bV90dDsKPj4+Pj4+PiBzdHJ1 Y3QgdHRtX3Jlc291cmNlOwo+Pj4+Pj4+IHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdDsKPj4+Cj4+ Pgo+Pj4gLS0tLS0tLS0tLQo+Pj4KPj4+IFlvdSdyZSByZWNlaXZpbmcgdGhpcyBtZXNzYWdlIGJl Y2F1c2UgeW91J3JlIGEgbWVtYmVyIG9mIHRoZSAKPj4+IExpbnV4LWdyYXBoaWNzLW1haW50YWlu ZXIgZ3JvdXAgZnJvbSBWTXdhcmUsIEluYy4uCj4+Pgo+Pj4gTGVhdmUgZ3JvdXA6Cj4+PiBodHRw czovL25hbTExLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0El MkYlMkZvdXRsb29rLm9mZmljZTM2NS5jb20lMkZvd2ElMkZMaW51eC1ncmFwaGljcy1tYWludGFp bmVyJTQwdm13YXJlLmNvbSUyRmdyb3Vwc3Vic2NyaXB0aW9uLmFzaHglM0Zzb3VyY2UlM0RFc2Nh bGF0ZWRNZXNzYWdlJTI2YWN0aW9uJTNEbGVhdmUlMjZHdWVzdElkJTNENjlkM2JmNmYtNTI0Mi00 YmU0LWI4NjMtYjc5NDk3NTJmMzYzJmFtcDtkYXRhPTA0JTdDMDElN0NjaHJpc3RpYW4ua29lbmln JTQwYW1kLmNvbSU3Q2NjZjkwMGU2ZDIzNjQ4ZWYwYjA4MDhkOGM3ZWRiNzYwJTdDM2RkODk2MWZl NDg4NGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzQ3OTE3MTEwMzM4NDA3MiU3Q1Vu a25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlM Q0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MxMDAwJmFtcDtzZGF0YT1mOFklMkJ5ekJu dDlHeHhtbTdYWjNocFpxVGRiWTA1b2c5eWxvQXJMQ0xJeDAlM0QmYW1wO3Jlc2VydmVkPTAgCj4+ Pgo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+ IFNlbnQgdG8gbGludXgtZ3JhcGhpY3MtbWFpbnRhaW5lckB2bXdhcmUuY29tCj4KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=