Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp2984881rdb; Tue, 12 Sep 2023 20:12:21 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEPu3CR7tZ0ieByNGQc9eXYQ530yZJkenzaUeKWsg3aIO4TXkfkoPM+pvWlPCTgGYzqRQQO X-Received: by 2002:a05:6358:c13:b0:13a:d065:512 with SMTP id f19-20020a0563580c1300b0013ad0650512mr2074805rwj.8.1694574741134; Tue, 12 Sep 2023 20:12:21 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1694574741; cv=pass; d=google.com; s=arc-20160816; b=N201rGBqUOirBozKxEbR4FPz9FKO0oWtVF3sBF4GRFkA3sdS1cL4AWdRECLAXh3+Zg 1ajzWa0VRDSrsYDhHm7a4qtMshdQ+KPukVhBsQxmZ+hP33WC4MzR+HBAT8sEcHZSU+JM QQFWLQRB1hUUMu7Cb3QHNWDlWvAM7cwmJmAaqRH1JYdeUa3VP9dNKtwBhzMsjJ2N/b40 RR/fRIG5M7pUBVYIz6Eaz1up68+VvRclc3gVmek5VLE7NvhbzY4r/nqaCxhX3McVE3av XrZs7WWJhpK24YinVho1kkoDlW0WYTLUxhq7mgn9XXtxbsPDCckJetNk+Ue4J92Gmry5 W5SA== 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-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature:dkim-signature; bh=4BlH1ToEViWEi7TBexF+DYIn8UyrjkQ51cUoPtyEsyw=; fh=FYtTsiFcEJIy+xdUXi6U2D7D2XpufKtKvw8EfDy7y5w=; b=h10SNDspuzyPLnnh0PUccy9mzll6PeC/TuJ448NGoFLv+nR5nLRNijhP1CqJsI2y1f zCdjCfNyDTM08auldkWoeHYFrbAR2LrKkxCpIvmsDXL5+K6YjqAgik1WG039ObXXEAqR 7SYnKQGvb6cj+AQkce6PET+zivLVHznvN4P43BmtTbiwR3Xfka1vIN6bmCMMfk0xRs3q TTin0CSkNzGQl/5l0aQLT4Z/ZdqUlWMsEW0TAJpXOFBnHXTj9mk4fOqSlIfjFoDFbLeM iNn96/a3ln+A7T+kC1CLqUkVFABN2h8w58Ug4TpAaa6oVa8OrhTh1THbg2BU6PPGzxQy 8ufA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=jjY74tA5; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=u1InGTzh; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id 23-20020a630217000000b00569466198b0si9286109pgc.821.2023.09.12.20.12.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 20:12:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=jjY74tA5; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=u1InGTzh; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 385CB83A8A3E; Tue, 12 Sep 2023 03:34:44 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.8 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234317AbjILKel (ORCPT + 99 others); Tue, 12 Sep 2023 06:34:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234318AbjILKcn (ORCPT ); Tue, 12 Sep 2023 06:32:43 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 792251BB; Tue, 12 Sep 2023 03:32:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1694514725; x=1726050725; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=4BlH1ToEViWEi7TBexF+DYIn8UyrjkQ51cUoPtyEsyw=; b=jjY74tA5wSy9s5gjkqrL2/i7EDLOrVSgCBHTnTz0ZDlrfOUZEZCddrYv g4zqQ3swFrOmUkEvhwjppe30zjtyyuXuFeeHG++NCJJfkuJVQ07By//2L 3U1WMC9MXdwGo88Dcji4kWRcG8WogxHhzGhU8zhu3ODJHu9uK5h5IrrDp Kd59fDkGBcVXzXbRRKoxBUNzO5AW+m5WbbkWr85FOBY5zUZ57OLQw7ue3 BHOWMZ4ZZAHYUqn2oDNtjm5HDp8fE2Ed0C29u0GA+oK/oK7EWYqkekIA3 obDnKdFzaoYmoX7s6hccSc9EYzb8Ebs2KbW40rjjZsP+zkCc74i53KzdE A==; X-CSE-ConnectionGUID: kwgi30ztQMqo/6YhF28iNg== X-CSE-MsgGUID: ZLjOpneMQt+hlXcIou47NQ== X-ThreatScanner-Verdict: Negative X-IronPort-AV: E=Sophos;i="6.02,139,1688454000"; d="scan'208";a="4210693" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa3.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 12 Sep 2023 03:32:05 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 12 Sep 2023 03:32:04 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Tue, 12 Sep 2023 03:32:04 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WY+HWay05INjgXpK13XfWlt4x+1Se+0nMonUrpduX57evU1Sh8wrYAnDy30g9eY80WmWCTYwug+VD6r2BTFoXX4sZjuOTrYfvekF77zr3s1taMAebIeNJutYAEBkmMgm9/czgjl3kEIozWOSQUhAdEzuJfYSduk/pafuPHxEsZsZ3F2RGt5oldzHU97rRlvSYP3DeBPBPpAlCMU9srd0GhlIsyOkgUC9GPIV1rzjvBMLjl3jacS0oY1h4xDAkhn7I1TN8rdNunMu81ewybM/pZWWCfr7QGBA9YYe13JmvRe5eBbGNjBgTHfnTYJx1D3wD+MaTKfiz/v0dAXHTTNKHA== 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=4BlH1ToEViWEi7TBexF+DYIn8UyrjkQ51cUoPtyEsyw=; b=mHoALOIYAReeXb+whkXoI36jr6oAJ1sN924p+S0NP2DCf2+FZ0Kk/66m53WebPutIzMSW2Pwm9GU6P+AeDOMHdW5rqzNiiE13nhhphiTEpgRrc7VMy3LZ5ik1xvijYwUi9jmQhsk3KPzqdWRmYSt3aMKOYaMvp29hyX0uEEnGX7mAF08R02OU6WqO525X9jX/O3Ahmz+iMVoREIRlIVw5nsjf4gUXG4BBkzXhe1cA0z+cXAU1xBNPvuUBid9laA4BjHaPhzzd/Ql2nTa674ZW/EoXDLE3rQlAVULcWjECHDuRx26P/nbMy01/NXKpEuCGmUBss6MMg+SU78UhrkBWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4BlH1ToEViWEi7TBexF+DYIn8UyrjkQ51cUoPtyEsyw=; b=u1InGTzhAifGSZ01yi5KY2BAE76A270S7aBcLdhmll7FevwhGAhm3qFC4FSftHLw4CddM89tqn+K2Mns4l80qMfAoZHftO5vg1OmoRDGtE070GYrl4qmPWVjb4y/bmDQ/KPUlNeLU6G06EgjsmxEUxYhOXrIeIqbOHJa6I28U7E= Received: from DM6PR11MB3532.namprd11.prod.outlook.com (2603:10b6:5:70::25) by CY8PR11MB7947.namprd11.prod.outlook.com (2603:10b6:930:7a::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.36; Tue, 12 Sep 2023 10:32:01 +0000 Received: from DM6PR11MB3532.namprd11.prod.outlook.com ([fe80::eb5d:6623:d0cf:d5e9]) by DM6PR11MB3532.namprd11.prod.outlook.com ([fe80::eb5d:6623:d0cf:d5e9%3]) with mapi id 15.20.6768.036; Tue, 12 Sep 2023 10:32:01 +0000 From: To: CC: , , , , , , , , , , , , , , , , , , , , , Subject: Re: [RFC PATCH net-next 4/6] net: ethernet: implement data transaction interface Thread-Topic: [RFC PATCH net-next 4/6] net: ethernet: implement data transaction interface Thread-Index: AQHZ4mEwIcqRhP4AnUasVDHVhRaf3rAVmvOAgAFo+gA= Date: Tue, 12 Sep 2023 10:32:01 +0000 Message-ID: <71db82b2-3455-797b-73f0-b3b7358eb486@microchip.com> References: <20230908142919.14849-1-Parthiban.Veerasooran@microchip.com> <20230908142919.14849-5-Parthiban.Veerasooran@microchip.com> <375fa9b4-0fb8-8d4b-8cb5-d8a9240d8f16@huawei.com> In-Reply-To: <375fa9b4-0fb8-8d4b-8cb5-d8a9240d8f16@huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB3532:EE_|CY8PR11MB7947:EE_ x-ms-office365-filtering-correlation-id: 4da3cc98-c8cb-4c28-4d51-08dbb37b7fee x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ec/ps2P4KgBlgq7gbDagkqYf3NoDkraBj9v/OwptK9TpvfpFTSF2yhKtPoLsUiYun/RSyPZngEF304v2JbtA9Pe9H3XESIJAity8S9Nmcz1adBaowEQgA+8hLS5+bJomoA1JYRGjie4FMhY05ckzZF0uTHMI9X0Bvm/ZABhBqeP8exmENH+E/24YfyG8zumJ4cTxeFijRcbOsVCvrwnJTlzXSR2MdVwckuu+vbrt/wchyQDAYYXXyHW0jB+V8DIsZYcxa6gSfMMjed7h3I/vXO1yVkzCgD2ayydi64Griktxj7tr2m9mMGLGge2/iNanh5MZZr8DHBGwvh756OXb322F+PV9PcouE4kSL87TMCEMpI/HOEvYtTzh0tcfqk1+taYw6tM/v3AxbU/8aAdrXDw2LRbLNixOdAjtZ6rSLhrg4WKvo5bT+G5jobM4sAf/CCH26N7Xc4xjTL7zFaLJGnoCT/9XU9fsTTcgikSVIpcBN+NJ3STEudFAru0JR5onoVsxxHdvbtscZaVqUKTzzWBhzsEGREziO/4VF3B92p/I0YvXsqgdA1jBwr3JQVf4uhmZ5ECd9shDVwkMwefAUojcWbVijv4lEGSmc1VJ4cAldk81d1mOhjAOQaqCNtyxHYKxSjP7PgguvXs6ekN9HH/DjVGfyK0UMgf0lKcT+pgXHq6WOrbG2O2sqDTg55WU x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3532.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(376002)(396003)(366004)(136003)(451199024)(1800799009)(186009)(83380400001)(31686004)(2616005)(66446008)(64756008)(54906003)(66476007)(26005)(41300700001)(53546011)(71200400001)(122000001)(6486002)(6506007)(66556008)(91956017)(478600001)(8676002)(4326008)(66946007)(6916009)(5660300002)(316002)(76116006)(8936002)(966005)(38100700002)(38070700005)(30864003)(2906002)(86362001)(36756003)(7416002)(31696002)(6512007)(43740500002)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SXZWY01Xa0F1YVJuNy9CMUF2N2ZRSmo3MzBzYnpwWFI5dG92OEpVUmJ5NmRp?= =?utf-8?B?a3hZSndzTzRSK0tJb21SRmovNXFaVXFyK21XOWtxZVF2VDNkVVlMZmNUd2NB?= =?utf-8?B?ZmRXVlJIYjFCRHBTb0VkVEorZ1NjWi9zQ0xla3RzU0h1WjRZYVFIYU03U3lC?= =?utf-8?B?Z25RaDhrU0FNQ01HZjNCNHA5Qk1LMmZ6N2V5K05NZk40elVBSzdXS3ptUHBn?= =?utf-8?B?THpFTjFjaTBQaExCazkyK1ZvRERvVmFEZEFaaFlxbjlJdVRsb0k5ZmZFQXRo?= =?utf-8?B?UFhETXhTQkVLdGRxQTdEYUZJa3VuejZSaDdlcjBDRGNqb3dPL0M4WVh5MjZX?= =?utf-8?B?L25vOXZ0ZmI5amY0cWptbmhUTnRzemZjVGNFVEtpTzBHZ0UvUFhPbHJmc1R0?= =?utf-8?B?UFQremZJQVllVGRySkx2b1hJckM1QThNaGcyNjA0K0dLdnEwSEl0STJjRUxr?= =?utf-8?B?aTBDaldDOCtzdVhNRXAzRThqb0JsOFpRSmJCTjNkWmZjd0F6SmVlbDZYMVdP?= =?utf-8?B?MWZLaFVBb1U1dlVHbXVxV0k0YzdJVmRaN2thWlJpSG5QaDgwWnl2THNkSzND?= =?utf-8?B?MEtlRXBCS29mZGh6WVRlQ3B4Qk9jaFF3MGRYRnNRSXNTRXJxNWpqeVdCWngw?= =?utf-8?B?T0Z5djkveDMzeE1EbnFTOWtISnpPS29Mc3JFcUdlbXAwVExtZjJ5K0Rmempr?= =?utf-8?B?Y3FTbjRFU0l4UkxYTlR6NWJEWUZCSEkxWWNYeDNuZndTMW1xR2E0Y0VmNHFH?= =?utf-8?B?Tk5FTjJWcys2bWZoNUcwcHVsN3FNdjdza2NnUDQ5WXF2NmZUOTcrcXcxZ0Qy?= =?utf-8?B?U3IzakJ2UEtBQ3VKRGNLd0UyWEI3WGowMDBKeHVsb1NLcG5iWU1LRVE4eGZR?= =?utf-8?B?dytkczdLcVJIdnk2UW05RERBTkdQN2JNUWd6V2R5UFNIZjYxQVNpT1d6bjdE?= =?utf-8?B?b0RCcjQ0Y2N0dTZaRHRBbVZWbWNUb3RoNVc1OFdYR1JkZHhmOXdVVjFnWDM0?= =?utf-8?B?c0NHYXBQZGRPYjg5N3RWY3hUNjVBTWlrVDIveDhMZExYdnUrSzBITkdtaDM0?= =?utf-8?B?dm9USlo5TFUvVFpUdUNEdVd4R1BIc2FPdmJjYkJjaFJRanRuc3FiSFlLMGxG?= =?utf-8?B?eUhmRW1lc0NUSThjYUlTL3JnYUhIMno2OVc4ODVQSnltSEU2V1hnTXFYL1ZL?= =?utf-8?B?dVBKUTg5Y3MzTnVFcVRIMWhOMm1NVGZ0TGQ5U0Rpa2xMMHd1b2tWM2lNTjNS?= =?utf-8?B?MFRyTk84T1FxZUpsTE95b3NHb1ZyNjFZcmxZQmZJQjZ3U0h4SlZrMzlzbktn?= =?utf-8?B?d0Y1alNzQVJUZkRaZytHMVpWOHVtcnNYbEU4bG1VbHJPd0c0bkFGaGVEU2Rt?= =?utf-8?B?bHR2MDFtU0ZNWXl1SDdsMUdEWTJZb2x4TG1MMyt5TCtGVHdXUkpXY1ZtMDJO?= =?utf-8?B?dUpTL3EzNjlKYmcvazdQa1Q4all6WkZBNGM0aTByc2JyZGpPd1JxaHQwY01N?= =?utf-8?B?L3RWUU1tUnhiRVZ4ODV0MlViZ1k1U3hDVTl2b2tiVzdRb2czbVhyTXZReW1u?= =?utf-8?B?QldtMU1YQU1MNHhMZEdZQ1NrYURpQk5Zdy9sV1F2UStCOUhoYzdpKy90VWo3?= =?utf-8?B?bXB6eTZlVDhRM1IzL0JMUk1hWXRQYU92QVZPVlUyam02N0phbDkyUGZFL2ZW?= =?utf-8?B?b3pOUytrTlVPb0pLQjd1Ym5sNHM0MWtZSms5OGgrbzZyUDZiYSs1YW5XcEhY?= =?utf-8?B?U3BMUld1bVdGUnc0MDlQMU9wb29rdTE3RkpESzd3bUhLYWhVS0E2ZDMxRWRH?= =?utf-8?B?L0Q5QTY4dUxITm0vMUxML2poRzE5eU4wdHNvOXRiNlJESHBLejZnVDdmUjVi?= =?utf-8?B?M3hDc2VMcDVNWk1yeHpUTHhoTEFuSkdPRkNVdjgrSmhkNGhZUlBsL3NSWEkv?= =?utf-8?B?YmltR1V4dGtmV0RiZUJ1bk1UbSt3Q2l6TzhRamZSUjNzZVJNV0ljUWc4NHhT?= =?utf-8?B?d2syT1ZhZTFvSjZncWdjOTVBdjAzc0VtK3VWN05mc0tad21QVTdFRzN2aXZB?= =?utf-8?B?cmViQ3lwMnZyQXVaWnVZOGhhZHpzRlI0VjJIcWF1aEZiTmk4NGc1QmFRdUh1?= =?utf-8?B?Y1hBc2VaSDROcFhXVHBpekNDWVRuajJBUmpacldQQVRQMmZweTVkRktCM1kw?= =?utf-8?B?NXc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <3CB81FEAA9416442B6F47ED5F8120E73@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3532.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4da3cc98-c8cb-4c28-4d51-08dbb37b7fee X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Sep 2023 10:32:01.1121 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: XdqYAQRmc116uraWAxWavaQmLBDAPE0JF6Wv2EqwpNHxMRh5z8LHBiDM2eG/5z+2yDUTKGV+1mPMbrcx1QhqzyDdlPqvqf8aas2qPj51uxwE79yNgq4xW4kBQdDWWXJz X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB7947 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 12 Sep 2023 03:34:44 -0700 (PDT) SGkgV2lsbGlhbSwNCg0KVGhhbmsgeW91IGZvciByZXZpZXdpbmcgdGhlIHBhdGNoLg0KDQpPbiAx MS8wOS8yMyA2OjI5IHBtLCBaaXlhbmcgWHVhbiAoV2lsbGlhbSkgd3JvdGU6DQo+IFtTb21lIHBl b3BsZSB3aG8gcmVjZWl2ZWQgdGhpcyBtZXNzYWdlIGRvbid0IG9mdGVuIGdldCBlbWFpbCBmcm9t IHdpbGxpYW0ueHVhbnppeWFuZ0BodWF3ZWkuY29tLiBMZWFybiB3aHkgdGhpcyBpcyBpbXBvcnRh bnQgYXQgaHR0cHM6Ly9ha2EubXMvTGVhcm5BYm91dFNlbmRlcklkZW50aWZpY2F0aW9uIF0NCj4g DQo+IEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50 cyB1bmxlc3MgeW91IGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZQ0KPiANCj4+IFRoZSBldGhlcm5l dCBmcmFtZSB0byBiZSBzZW50IHRvIE1BQy1QSFkgaXMgY29udmVydGVkIGludG8gbXVsdGlwbGUN Cj4+IHRyYW5zbWl0IGRhdGEgY2h1bmtzLiBBIHRyYW5zbWl0IGRhdGEgY2h1bmsgY29uc2lzdHMg b2YgYSA0LWJ5dGUgZGF0YQ0KPj4gaGVhZGVyIGZvbGxvd2VkIGJ5IHRoZSB0cmFuc21pdCBkYXRh IGNodW5rIHBheWxvYWQuDQo+Pg0KPj4gVGhlIHJlY2VpdmVkIGV0aGVybmV0IGZyYW1lIGZyb20g dGhlIG5ldHdvcmsgaXMgY29udmVydGVkIGludG8gbXVsdGlwbGUNCj4+IHJlY2VpdmUgZGF0YSBj aHVua3MgYnkgdGhlIE1BQy1QSFkgYW5kIGEgcmVjZWl2ZSBkYXRhIGNodW5rIGNvbnNpc3RzIG9m DQo+PiB0aGUgcmVjZWl2ZSBkYXRhIGNodW5rIHBheWxvYWQgZm9sbG93ZWQgYnkgYSA0LWJ5dGUg ZGF0YSBmb290ZXIgYXQgdGhlDQo+PiBlbmQuDQo+Pg0KPj4gVGhlIE1BQy1QSFkgc2hhbGwgc3Vw cG9ydCBhIGRlZmF1bHQgZGF0YSBjaHVuayBwYXlsb2FkIHNpemUgb2YgNjQgYnl0ZXMuDQo+PiBE YXRhIGNodW5rIHBheWxvYWQgc2l6ZXMgb2YgMzIsIDE2LCBvciA4IGJ5dGVzIG1heSBhbHNvIGJl IHN1cHBvcnRlZC4gVGhlDQo+PiBkYXRhIGNodW5rIHBheWxvYWQgaXMgYWx3YXlzIGEgbXVsdGlw bGUgb2YgNCBieXRlcy4NCj4+DQo+PiBUaGUgNC1ieXRlIGRhdGEgaGVhZGVyIG9jY3VycyBhdCB0 aGUgYmVnaW5uaW5nIG9mIGVhY2ggdHJhbnNtaXQgZGF0YQ0KPj4gY2h1bmsgb24gTU9TSSBhbmQg dGhlIDQtYnl0ZSBkYXRhIGZvb3RlciBvY2N1cnMgYXQgdGhlIGVuZCBvZiBlYWNoDQo+PiByZWNl aXZlIGRhdGEgY2h1bmsgb24gTUlTTy4gVGhlIGRhdGEgaGVhZGVyIGFuZCBmb290ZXIgY29udGFp biB0aGUNCj4+IGluZm9ybWF0aW9uIG5lZWRlZCB0byBkZXRlcm1pbmUgdGhlIHZhbGlkaXR5IGFu ZCBsb2NhdGlvbiBvZiB0aGUgdHJhbnNtaXQNCj4+IGFuZCByZWNlaXZlIGZyYW1lIGRhdGEgd2l0 aGluIHRoZSBkYXRhIGNodW5rIHBheWxvYWQuIEV0aGVybmV0IGZyYW1lcw0KPj4gc2hhbGwgYmUg YWxpZ25lZCB0byBhIDMyLWJpdCBib3VuZGFyeSB3aXRoaW4gdGhlIGRhdGEgY2h1bmsgcGF5bG9h ZC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBQYXJ0aGliYW4gVmVlcmFzb29yYW4gPFBhcnRoaWJh bi5WZWVyYXNvb3JhbkBtaWNyb2NoaXAuY29tPg0KPj4gLS0tDQo+PiAgIGRyaXZlcnMvbmV0L2V0 aGVybmV0L29hX3RjNi5jIHwgNDI1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0N Cj4+ICAgaW5jbHVkZS9saW51eC9vYV90YzYuaCAgICAgICAgfCAgNjUgKysrKystDQo+PiAgIDIg ZmlsZXMgY2hhbmdlZCwgNDg1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pDQo+Pg0KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvb2FfdGM2LmMNCj4+IGluZGV4IDY1YTczMTdmNzY4ZC4uMjAxMzhiMTc4MTg1IDEw MDY0NA0KPj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMNCj4+ICsrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jDQo+PiBAQCAtNSw2ICs1LDcgQEANCj4+ICAgICog QXV0aG9yOiBQYXJ0aGliYW4gVmVlcmFzb29yYW4gPHBhcnRoaWJhbi52ZWVyYXNvb3JhbkBtaWNy b2NoaXAuY29tPg0KPj4gICAgKi8NCj4+DQo+PiArI2luY2x1ZGUgPGxpbnV4L2V0aGVyZGV2aWNl Lmg+DQo+PiAgICNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPg0KPj4gICAjaW5jbHVkZSA8bGlu dXgvaW50ZXJydXB0Lmg+DQo+PiAgICNpbmNsdWRlIDxsaW51eC9vYV90YzYuaD4NCj4+IEBAIC0x OTMsMTcgKzE5NCwyMjQgQEAgaW50IG9hX3RjNl9wZXJmb3JtX2N0cmwoc3RydWN0IG9hX3RjNiAq dGM2LCB1MzIgYWRkciwgdTMyIHZhbFtdLCB1OCBsZW4sDQo+PiAgICAgICAgcmV0dXJuIHJldDsN Cj4+ICAgfQ0KPj4NCj4+ICtzdGF0aWMgdTE2IG9hX3RjNl9wcmVwYXJlX2VtcHR5X2NodW5rKHN0 cnVjdCBvYV90YzYgKnRjNiwgdTggKmJ1ZiwgdTggY3BfY291bnQpDQo+PiArew0KPj4gKyAgICAg dTMyIGhkcjsNCj4+ICsNCj4+ICsgICAgIC8qIFByZXBhcmUgZW1wdHkgY2h1bmtzIHVzZWQgZm9y IGdldHRpbmcgaW50ZXJydXB0IGluZm9ybWF0aW9uIG9yIGlmDQo+PiArICAgICAgKiByZWNlaXZl IGRhdGEgYXZhaWxhYmxlLg0KPj4gKyAgICAgICovDQo+PiArICAgICBmb3IgKHU4IGkgPSAwOyBp IDwgY3BfY291bnQ7IGkrKykgew0KPj4gKyAgICAgICAgICAgICBoZHIgPSBGSUVMRF9QUkVQKERB VEFfSERSX0ROQywgMSk7DQo+PiArICAgICAgICAgICAgIGhkciB8PSBGSUVMRF9QUkVQKERBVEFf SERSX1AsIG9hX3RjNl9nZXRfcGFyaXR5KGhkcikpOw0KPj4gKyAgICAgICAgICAgICBoZHIgPSBj cHVfdG9fYmUzMihoZHIpOw0KPj4gKyAgICAgICAgICAgICAqKHUzMiAqKSZidWZbaSAqICh0YzYt PmNwcyArIFRDNl9IRFJfU0laRSldID0gaGRyOw0KPj4gKyAgICAgICAgICAgICBtZW1zZXQoJmJ1 ZltUQzZfSERSX1NJWkUgKyAoaSAqICh0YzYtPmNwcyArIFRDNl9IRFJfU0laRSkpXSwgMCwNCj4+ ICsgICAgICAgICAgICAgICAgICAgIHRjNi0+Y3BzKTsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ICsg ICAgIHJldHVybiBjcF9jb3VudCAqICh0YzYtPmNwcyArIFRDNl9IRFJfU0laRSk7DQo+PiArfQ0K Pj4gKw0KPj4gK3N0YXRpYyB2b2lkIG9hX3RjNl9yeF9ldGhfcmVhZHkoc3RydWN0IG9hX3RjNiAq dGM2KQ0KPj4gK3sNCj4+ICsgICAgIHN0cnVjdCBza19idWZmICpza2IgPSBOVUxMOw0KPiBVbm5l Y2Vzc2FyeSBpbml0aWFsaXphdGlvbiBmb3Igc2tiLg0KQWggeWVzLCB3aWxsIHJlbW92ZSBpdCBp biB0aGUgbmV4dCByZXZpc2lvbi4NCj4gDQo+PiArDQo+PiArICAgICAvKiBTZW5kIHRoZSByZWNl aXZlZCBldGhlcm5ldCBwYWNrZXQgdG8gbmV0d29yayBsYXllciAqLw0KPj4gKyAgICAgc2tiID0g bmV0ZGV2X2FsbG9jX3NrYih0YzYtPm5ldGRldiwgdGM2LT5yeGRfYnl0ZXMgKyBORVRfSVBfQUxJ R04pOw0KPj4gKyAgICAgaWYgKCFza2IpIHsNCj4+ICsgICAgICAgICAgICAgdGM2LT5uZXRkZXYt PnN0YXRzLnJ4X2Ryb3BwZWQrKzsNCj4+ICsgICAgICAgICAgICAgbmV0ZGV2X2Vycih0YzYtPm5l dGRldiwgIk91dCBvZiBtZW1vcnkgZm9yIHJ4J2QgZnJhbWUiKTsNCj4+ICsgICAgIH0gZWxzZSB7 DQo+PiArICAgICAgICAgICAgIHNrYl9yZXNlcnZlKHNrYiwgTkVUX0lQX0FMSUdOKTsNCj4+ICsg ICAgICAgICAgICAgbWVtY3B5KHNrYl9wdXQoc2tiLCB0YzYtPnJ4ZF9ieXRlcyksICZ0YzYtPmV0 aF9yeF9idWZbMF0sDQo+PiArICAgICAgICAgICAgICAgICAgICB0YzYtPnJ4ZF9ieXRlcyk7DQo+ PiArICAgICAgICAgICAgIHNrYi0+cHJvdG9jb2wgPSBldGhfdHlwZV90cmFucyhza2IsIHRjNi0+ bmV0ZGV2KTsNCj4+ICsgICAgICAgICAgICAgdGM2LT5uZXRkZXYtPnN0YXRzLnJ4X3BhY2tldHMr KzsNCj4+ICsgICAgICAgICAgICAgdGM2LT5uZXRkZXYtPnN0YXRzLnJ4X2J5dGVzICs9IHRjNi0+ cnhkX2J5dGVzOw0KPj4gKyAgICAgICAgICAgICBuZXRpZl9yeChza2IpOw0KPiBuZXRpZl9yeCgp IG1heSBmYWlsLCBJIHRoaW5rIGl0IGlzIGdvb2QgdG8gYWRkIGNoZWNrIGFuZCBzdGF0aXN0aWNz Lg0KU3VyZSwgd2lsbCBkbyBpdCBpbiB0aGUgbmV4dCByZXZpc2lvbi4NCg0KQmVzdCBSZWdhcmRz LA0KUGFydGhpYmFuIFYNCj4gDQo+PiArICAgICB9DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBp bnQgb2FfdGM2X3Byb2Nlc3NfZXhzdChzdHJ1Y3Qgb2FfdGM2ICp0YzYpDQo+PiArew0KPj4gKyAg ICAgdTMyIHJlZ3ZhbDsNCj4+ICsgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICByZXQgPSBv YV90YzZfcmVhZF9yZWdpc3Rlcih0YzYsIE9BX1RDNl9TVFMwLCAmcmVndmFsLCAxKTsNCj4+ICsg ICAgIGlmIChyZXQpIHsNCj4+ICsgICAgICAgICAgICAgbmV0ZGV2X2Vycih0YzYtPm5ldGRldiwg IlNUUzAgcmVnaXN0ZXIgcmVhZCBmYWlsZWQuXG4iKTsNCj4+ICsgICAgICAgICAgICAgcmV0dXJu IHJldDsNCj4+ICsgICAgIH0NCj4+ICsgICAgIGlmIChyZWd2YWwgJiBUWFBFKQ0KPj4gKyAgICAg ICAgICAgICBuZXRkZXZfZXJyKHRjNi0+bmV0ZGV2LCAiVHJhbnNtaXQgcHJvdG9jb2wgZXJyb3Jc biIpOw0KPj4gKyAgICAgaWYgKHJlZ3ZhbCAmIFRYQk9FKQ0KPj4gKyAgICAgICAgICAgICBuZXRk ZXZfZXJyKHRjNi0+bmV0ZGV2LCAiVHJhbnNtaXQgYnVmZmVyIG92ZXJmbG93XG4iKTsNCj4+ICsg ICAgIGlmIChyZWd2YWwgJiBUWEJVRSkNCj4+ICsgICAgICAgICAgICAgbmV0ZGV2X2Vycih0YzYt Pm5ldGRldiwgIlRyYW5zbWl0IGJ1ZmZlciB1bmRlcmZsb3dcbiIpOw0KPj4gKyAgICAgaWYgKHJl Z3ZhbCAmIFJYQk9FKQ0KPj4gKyAgICAgICAgICAgICBuZXRkZXZfZXJyKHRjNi0+bmV0ZGV2LCAi UmVjZWl2ZSBidWZmZXIgb3ZlcmZsb3dcbiIpOw0KPj4gKyAgICAgaWYgKHJlZ3ZhbCAmIExPRkUp DQo+PiArICAgICAgICAgICAgIG5ldGRldl9lcnIodGM2LT5uZXRkZXYsICJMb3NzIG9mIGZyYW1l XG4iKTsNCj4+ICsgICAgIGlmIChyZWd2YWwgJiBIRFJFKQ0KPj4gKyAgICAgICAgICAgICBuZXRk ZXZfZXJyKHRjNi0+bmV0ZGV2LCAiSGVhZGVyIGVycm9yXG4iKTsNCj4+ICsgICAgIGlmIChyZWd2 YWwgJiBUWEZDU0UpDQo+PiArICAgICAgICAgICAgIG5ldGRldl9lcnIodGM2LT5uZXRkZXYsICJU cmFuc21pdCBGcmFtZSBDaGVjayBTZXF1ZW5jZSBFcnJvclxuIik7DQo+PiArICAgICByZXQgPSBv YV90YzZfd3JpdGVfcmVnaXN0ZXIodGM2LCBPQV9UQzZfU1RTMCwgJnJlZ3ZhbCwgMSk7DQo+PiAr ICAgICBpZiAocmV0KQ0KPj4gKyAgICAgICAgICAgICBuZXRkZXZfZXJyKHRjNi0+bmV0ZGV2LCAi U1RTMCByZWdpc3RlciB3cml0ZSBmYWlsZWQuXG4iKTsNCj4+ICsgICAgIHJldHVybiByZXQ7DQo+ PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgb2FfdGM2X3Byb2Nlc3NfcnhfY2h1bmtzKHN0cnVj dCBvYV90YzYgKnRjNiwgdTggKmJ1ZiwgdTE2IGxlbikNCj4+ICt7DQo+PiArICAgICB1OCBjcF9j b3VudDsNCj4+ICsgICAgIHU4ICpwYXlsb2FkOw0KPj4gKyAgICAgdTMyIGZ0cjsNCj4+ICsgICAg IHUxNiBlYm87DQo+PiArICAgICB1MTYgc2JvOw0KPj4gKw0KPj4gKyAgICAgLyogQ2FsY3VsYXRl IHRoZSBudW1iZXIgb2YgY2h1bmtzIHJlY2VpdmVkICovDQo+PiArICAgICBjcF9jb3VudCA9IGxl biAvICh0YzYtPmNwcyArIFRDNl9GVFJfU0laRSk7DQo+PiArDQo+PiArICAgICBmb3IgKHU4IGkg PSAwOyBpIDwgY3BfY291bnQ7IGkrKykgew0KPj4gKyAgICAgICAgICAgICAvKiBHZXQgdGhlIGZv b3RlciBhbmQgcGF5bG9hZCAqLw0KPj4gKyAgICAgICAgICAgICBmdHIgPSAqKHUzMiAqKSZidWZb dGM2LT5jcHMgKyAoaSAqICh0YzYtPmNwcyArIFRDNl9GVFJfU0laRSkpXTsNCj4+ICsgICAgICAg ICAgICAgZnRyID0gYmUzMl90b19jcHUoZnRyKTsNCj4+ICsgICAgICAgICAgICAgcGF5bG9hZCA9 ICZidWZbKGkgKiAodGM2LT5jcHMgKyBUQzZfRlRSX1NJWkUpKV07DQo+PiArICAgICAgICAgICAg IC8qIENoZWNrIGZvciBmb290ZXIgcGFyaXR5IGVycm9yICovDQo+PiArICAgICAgICAgICAgIGlm IChvYV90YzZfZ2V0X3Bhcml0eShmdHIpKSB7DQo+PiArICAgICAgICAgICAgICAgICAgICAgbmV0 ZGV2X2Vycih0YzYtPm5ldGRldiwgIkZvb3RlcjogUGFyaXR5IGVycm9yXG4iKTsNCj4+ICsgICAg ICAgICAgICAgICAgICAgICBnb3RvIGVycl9leGl0Ow0KPj4gKyAgICAgICAgICAgICB9DQo+PiAr ICAgICAgICAgICAgIC8qIElmIEVYU1Qgc2V0IGluIHRoZSBmb290ZXIgdGhlbiByZWFkIFNUUzAg cmVnaXN0ZXIgdG8gZ2V0IHRoZQ0KPj4gKyAgICAgICAgICAgICAgKiBzdGF0dXMgaW5mb3JtYXRp b24uDQo+PiArICAgICAgICAgICAgICAqLw0KPj4gKyAgICAgICAgICAgICBpZiAoRklFTERfR0VU KERBVEFfRlRSX0VYU1QsIGZ0cikpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAob2Ff dGM2X3Byb2Nlc3NfZXhzdCh0YzYpKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmV0ZGV2X2Vycih0YzYtPm5ldGRldiwgIkZhaWxlZCB0byBwcm9jZXNzIEVYU1RcbiIpOw0KPj4g KyAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX2V4aXQ7DQo+PiArICAgICAgICAgICAgIH0N Cj4+ICsgICAgICAgICAgICAgaWYgKEZJRUxEX0dFVChEQVRBX0ZUUl9IRFJCLCBmdHIpKSB7DQo+ PiArICAgICAgICAgICAgICAgICAgICAgbmV0ZGV2X2Vycih0YzYtPm5ldGRldiwgIkZvb3Rlcjog UmVjZWl2ZWQgaGVhZGVyIGJhZFxuIik7DQo+PiArICAgICAgICAgICAgICAgICAgICAgZ290byBl cnJfZXhpdDsNCj4+ICsgICAgICAgICAgICAgfQ0KPj4gKyAgICAgICAgICAgICBpZiAoIUZJRUxE X0dFVChEQVRBX0ZUUl9TWU5DLCBmdHIpKSB7DQo+PiArICAgICAgICAgICAgICAgICAgICAgbmV0 ZGV2X2Vycih0YzYtPm5ldGRldiwgIkZvb3RlcjogQ29uZmlndXJhdGlvbiB1bnN5bmNcbiIpOw0K Pj4gKyAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX2V4aXQ7DQo+PiArICAgICAgICAgICAg IH0NCj4+ICsgICAgICAgICAgICAgLyogSWYgRnJhbWUgRHJvcCBpcyBzZXQsIGluZGljYXRlcyB0 aGF0IHRoZSBNQUMgaGFzIGRldGVjdGVkIGENCj4+ICsgICAgICAgICAgICAgICogY29uZGl0aW9u IGZvciB3aGljaCB0aGUgU1BJIGhvc3Qgc2hvdWxkIGRyb3AgdGhlIHJlY2VpdmVkDQo+PiArICAg ICAgICAgICAgICAqIGV0aGVybmV0IGZyYW1lLg0KPj4gKyAgICAgICAgICAgICAgKi8NCj4+ICsg ICAgICAgICAgICAgaWYgKEZJRUxEX0dFVChEQVRBX0ZUUl9GRCwgZnRyKSAmJiBGSUVMRF9HRVQo REFUQV9GVFJfRVYsIGZ0cikpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICBuZXRkZXZfd2Fy bih0YzYtPm5ldGRldiwgIkZvb3RlcjogRnJhbWUgZHJvcFxuIik7DQo+PiArICAgICAgICAgICAg ICAgICAgICAgaWYgKEZJRUxEX0dFVChEQVRBX0ZUUl9TViwgZnRyKSkgew0KPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ290byBzdGFydF9uZXdfZnJhbWU7DQo+PiArICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICh0YzYtPnJ4X2V0aF9zdGFydGVkKSB7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRjNi0+cnhkX2J5dGVzID0gMDsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGM2LT5yeF9ldGhfc3RhcnRlZCA9IGZhbHNlOw0KPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YzYtPm5ldGRldi0+c3RhdHMucnhfZHJvcHBl ZCsrOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+PiArICAgICAgICAgICAgICAgICAgICAgfQ0K Pj4gKyAgICAgICAgICAgICB9DQo+PiArICAgICAgICAgICAgIC8qIENoZWNrIGZvciBkYXRhIHZh bGlkICovDQo+PiArICAgICAgICAgICAgIGlmIChGSUVMRF9HRVQoREFUQV9GVFJfRFYsIGZ0cikp IHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAvKiBDaGVjayB3aGV0aGVyIGJvdGggc3RhcnQg dmFsaWQgYW5kIGVuZCB2YWxpZCBhcmUgaW4gYQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAq IHNpbmdsZSBjaHVuayBwYXlsb2FkIG1lYW5zIGEgc2luZ2xlIGNodW5rIHBheWxvYWQgbWF5DQo+ PiArICAgICAgICAgICAgICAgICAgICAgICogY29udGFpbiBhbiBlbnRpcmUgZXRoZXJuZXQgZnJh bWUuDQo+PiArICAgICAgICAgICAgICAgICAgICAgICovDQo+PiArICAgICAgICAgICAgICAgICAg ICAgaWYgKEZJRUxEX0dFVChEQVRBX0ZUUl9TViwgZnRyKSAmJg0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICBGSUVMRF9HRVQoREFUQV9GVFJfRVYsIGZ0cikpIHsNCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNibyA9IEZJRUxEX0dFVChEQVRBX0ZUUl9TV08sIGZ0cikgKiA0 Ow0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWJvID0gRklFTERfR0VUKERBVEFf RlRSX0VCTywgZnRyKSArIDE7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo ZWJvIDw9IHNibykgew0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt ZW1jcHkoJnRjNi0+ZXRoX3J4X2J1Zlt0YzYtPnJ4ZF9ieXRlc10sDQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGF5bG9hZFswXSwgZWJvKTsNCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGM2LT5yeGRfYnl0ZXMgKz0gZWJv Ow0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYV90YzZfcnhfZXRo X3JlYWR5KHRjNik7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRj Ni0+cnhkX2J5dGVzID0gMDsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWVtY3B5KCZ0YzYtPmV0aF9yeF9idWZbdGM2LT5yeGRfYnl0ZXNdLA0KPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBheWxvYWRbc2JvXSwgdGM2LT5j cHMgLSBzYm8pOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YzYt PnJ4ZF9ieXRlcyArPSAodGM2LT5jcHMgLSBzYm8pOw0KPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9IGVsc2Ugew0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt ZW1jcHkoJnRjNi0+ZXRoX3J4X2J1Zlt0YzYtPnJ4ZF9ieXRlc10sDQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGF5bG9hZFtzYm9dLCBlYm8gLSBzYm8p Ow0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YzYtPnJ4ZF9ieXRl cyArPSAoZWJvIC0gc2JvKTsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2FfdGM2X3J4X2V0aF9yZWFkeSh0YzYpOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0YzYtPnJ4ZF9ieXRlcyA9IDA7DQo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0NCj4+ICsgICAgICAgICAgICAgICAgICAgICB9DQo+PiArc3RhcnRfbmV3X2ZyYW1l Og0KPj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIENoZWNrIGZvciBzdGFydCB2YWxpZCB0byBz dGFydCBjYXB0dXJpbmcgdGhlIGluY29taW5nDQo+PiArICAgICAgICAgICAgICAgICAgICAgICog ZXRoZXJuZXQgZnJhbWUuDQo+PiArICAgICAgICAgICAgICAgICAgICAgICovDQo+PiArICAgICAg ICAgICAgICAgICAgICAgaWYgKEZJRUxEX0dFVChEQVRBX0ZUUl9TViwgZnRyKSAmJiAhdGM2LT5y eF9ldGhfc3RhcnRlZCkgew0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGM2LT5y eGRfYnl0ZXMgPSAwOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGM2LT5yeF9l dGhfc3RhcnRlZCA9IHRydWU7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYm8g PSBGSUVMRF9HRVQoREFUQV9GVFJfU1dPLCBmdHIpICogNDsNCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1lbWNweSgmdGM2LT5ldGhfcnhfYnVmW3RjNi0+cnhkX2J5dGVzXSwNCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGF5bG9hZFtzYm9dLCB0YzYt PmNwcyAtIHNibyk7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YzYtPnJ4ZF9i eXRlcyArPSAodGM2LT5jcHMgLSBzYm8pOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ290byBleGl0Ow0KPj4gKyAgICAgICAgICAgICAgICAgICAgIH0NCj4+ICsNCj4+ICsgICAg ICAgICAgICAgICAgICAgICAvKiBDaGVjayBmb3IgZW5kIHZhbGlkIGFuZCBjYWxjdWxhdGUgdGhl IGNvcHkgbGVuZ3RoICovDQo+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKHRjNi0+cnhfZXRo X3N0YXJ0ZWQpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChGSUVMRF9H RVQoREFUQV9GVFJfRVYsIGZ0cikpDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVibyA9IEZJRUxEX0dFVChEQVRBX0ZUUl9FQk8sIGZ0cikgKyAxOw0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBlYm8gPSB0YzYtPmNwczsNCj4+ICsNCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1lbWNweSgmdGM2LT5ldGhfcnhfYnVmW3RjNi0+cnhkX2J5dGVzXSwNCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGF5bG9hZFswXSwgZWJvKTsN Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjNi0+cnhkX2J5dGVzICs9IGVibzsN Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChGSUVMRF9HRVQoREFUQV9GVFJf RVYsIGZ0cikpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog SWYgRW5kIFZhbGlkIHNldCB0aGVuIHNlbmQgdGhlDQo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqIHJlY2VpdmVkIGV0aGVybmV0IGZyYW1lIHRvIG4vdy4NCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9hX3RjNl9yeF9ldGhfcmVhZHkodGM2KTsNCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGM2LT5yeGRfYnl0ZXMgPSAwOw0K Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YzYtPnJ4X2V0aF9zdGFy dGVkID0gZmFsc2U7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+PiArICAg ICAgICAgICAgICAgICAgICAgfQ0KPj4gKyAgICAgICAgICAgICB9DQo+PiArDQo+PiArZXhpdDoN Cj4+ICsgICAgICAgICAgICAgdGM2LT50eGMgPSBGSUVMRF9HRVQoREFUQV9GVFJfVFhDLCBmdHIp Ow0KPj4gKyAgICAgICAgICAgICB0YzYtPnJjYSA9IEZJRUxEX0dFVChEQVRBX0ZUUl9SQ0EsIGZ0 cik7DQo+PiArICAgICB9DQo+PiArICAgICByZXR1cm4gRlRSX09LOw0KPj4gKw0KPj4gK2Vycl9l eGl0Og0KPj4gKyAgICAgaWYgKHRjNi0+cnhfZXRoX3N0YXJ0ZWQpIHsNCj4+ICsgICAgICAgICAg ICAgdGM2LT5yeGRfYnl0ZXMgPSAwOw0KPj4gKyAgICAgICAgICAgICB0YzYtPnJ4X2V0aF9zdGFy dGVkID0gZmFsc2U7DQo+PiArICAgICAgICAgICAgIHRjNi0+bmV0ZGV2LT5zdGF0cy5yeF9kcm9w cGVkKys7DQo+PiArICAgICB9DQo+PiArICAgICByZXR1cm4gRlRSX0VSUjsNCj4+ICt9DQo+PiAr DQo+PiAgIHN0YXRpYyBpbnQgb2FfdGM2X2hhbmRsZXIodm9pZCAqZGF0YSkNCj4+ICAgew0KPj4g ICAgICAgIHN0cnVjdCBvYV90YzYgKnRjNiA9IGRhdGE7DQo+PiArICAgICBib29sIHR4Y193YWl0 ID0gZmFsc2U7DQo+PiArICAgICB1MTYgdHhfcG9zID0gMDsNCj4+ICAgICAgICB1MzIgcmVndmFs Ow0KPj4gKyAgICAgdTE2IGxlbjsNCj4+ICAgICAgICBpbnQgcmV0Ow0KPj4NCj4+ICAgICAgICB3 aGlsZSAobGlrZWx5KCFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpKSB7DQo+PiAtICAgICAgICAgICAg IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZSh0YzYtPnRjNl93cSwgdGM2LT5pbnRfZmxhZyB8fA0K Pj4gKyAgICAgICAgICAgICB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUodGM2LT50YzZfd3EsIHRj Ni0+dHhfZmxhZyB8fA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGM2LT5pbnRfZmxhZyB8fCB0YzYtPnJjYSB8fA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGt0aHJlYWRfc2hvdWxkX3N0b3AoKSk7DQo+PiAtICAgICAgICAgICAg IGlmICh0YzYtPmludF9mbGFnKSB7DQo+PiArICAgICAgICAgICAgIGlmICh0YzYtPmludF9mbGFn ICYmICF0YzYtPnJlc2V0KSB7DQo+PiAgICAgICAgICAgICAgICAgICAgICAgIHRjNi0+aW50X2Zs YWcgPSBmYWxzZTsNCj4+ICsgICAgICAgICAgICAgICAgICAgICB0YzYtPnJlc2V0ID0gdHJ1ZTsN Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gb2FfdGM2X3BlcmZvcm1fY3RybCh0YzYs IE9BX1RDNl9TVFMwLCAmcmVndmFsLCAxLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBmYWxzZSk7DQo+PiAgICAgICAgICAgICAgICAg ICAgICAgIGlmIChyZXQpIHsNCj4+IEBAIC0yMjcsMTAgKzQzNSwxNzAgQEAgc3RhdGljIGludCBv YV90YzZfaGFuZGxlcih2b2lkICpkYXRhKQ0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbXBsZXRlKCZ0YzYtPnJzdF9jb21wbGV0ZSk7DQo+PiAgICAgICAgICAgICAgICAgICAg ICAgIH0NCj4+ICAgICAgICAgICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgICAgICAgaWYgKHRj Ni0+aW50X2ZsYWcgfHwgdGM2LT5yY2EpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAvKiBJ ZiByY2EgaXMgdXBkYXRlZCBmcm9tIHRoZSBwcmV2aW91cyBmb290ZXIgdGhlbg0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAqIHByZXBhcmUgdGhlIGVtcHR5IGNodW5rcyBlcXVhbCB0byByY2Eg YW5kIHBlcmZvcm0NCj4+ICsgICAgICAgICAgICAgICAgICAgICAgKiBTUEkgdHJhbnNmZXIgdG8g cmVjZWl2ZSB0aGUgZXRoZXJuZXQgZnJhbWUuDQo+PiArICAgICAgICAgICAgICAgICAgICAgICov DQo+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKHRjNi0+cmNhKSB7DQo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSBvYV90YzZfcHJlcGFyZV9lbXB0eV9jaHVuayh0YzYs DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0YzYtPnNwaV90eF9idWYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YzYtPnJjYSk7DQo+PiArICAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIElmIHRoZXJlIGlzIGFuIGludGVycnVwdCB0aGVuIHBlcmZvcm0gYSBTUEkNCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRyYW5zZmVyIHdpdGggYSBlbXB0eSBjaHVu ayB0byBnZXQgdGhlDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBkZXRhaWxz Lg0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0YzYtPmludF9mbGFnID0gZmFsc2U7DQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZW4gPSBvYV90YzZfcHJlcGFyZV9lbXB0eV9jaHVuayh0YzYsDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0YzYtPnNwaV90eF9idWYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsNCj4+ICsgICAgICAgICAgICAg ICAgICAgICB9DQo+PiArICAgICAgICAgICAgICAgICAgICAgLyogUGVyZm9ybSBTUEkgdHJhbnNm ZXIgKi8NCj4+ICsgICAgICAgICAgICAgICAgICAgICByZXQgPSBvYV90YzZfc3BpX3RyYW5zZmVy KHRjNi0+c3BpLCB0YzYtPnNwaV90eF9idWYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0YzYtPnNwaV9yeF9idWYsIGxlbik7DQo+PiArICAgICAg ICAgICAgICAgICAgICAgaWYgKHJldCkgew0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmV0ZGV2X2Vycih0YzYtPm5ldGRldiwgIlNQSSB0cmFuc2ZlciBmYWlsZWRcbiIpOw0KPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+PiArICAgICAgICAgICAg ICAgICAgICAgfQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIFByb2Nlc3MgdGhlIHJlY2Vp dmVkIGNodW5rcyB0byBnZXQgdGhlIGV0aGVybmV0IGZyYW1lDQo+PiArICAgICAgICAgICAgICAg ICAgICAgICogb3IgaW50ZXJydXB0IGRldGFpbHMuDQo+PiArICAgICAgICAgICAgICAgICAgICAg ICovDQo+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKG9hX3RjNl9wcm9jZXNzX3J4X2NodW5r cyh0YzYsIHRjNi0+c3BpX3J4X2J1ZiwgbGVuKSkNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOw0KPj4gKyAgICAgICAgICAgICB9DQo+PiArDQo+PiArICAgICAgICAg ICAgIC8qIElmIHRoZXJlIGlzIGEgdHggZXRoZXJuZXQgZnJhbWUgYXZhaWxhYmxlICovDQo+PiAr ICAgICAgICAgICAgIGlmICh0YzYtPnR4X2ZsYWcgfHwgdHhjX3dhaXQpIHsNCj4+ICsgICAgICAg ICAgICAgICAgICAgICB0YzYtPnR4X2ZsYWcgPSBmYWxzZTsNCj4+ICsgICAgICAgICAgICAgICAg ICAgICB0eGNfd2FpdCA9IGZhbHNlOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgIGxlbiA9IDA7 DQo+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKCF0YzYtPnR4Yykgew0KPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogSWYgdGhlcmUgaXMgbm8gdHhjIGF2YWlsYWJsZSB0byB0 cmFuc3BvcnQgdGhlDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0eCBldGhl cm5ldCBmcmFtZXMgdGhlbiB3YWl0IGZvciB0aGUgTUFDLVBIWQ0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICogaW50ZXJydXB0IHRvIGdldCB0aGUgdHhjIGF2YWlsYWJpbGl0eS4N Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdHhjX3dhaXQgPSB0cnVlOw0KPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7DQo+PiArICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0 YzYtPnR4YyA+PSB0YzYtPnR4Y19uZWVkZWQpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxlbiA9IHRjNi0+dHhjX25lZWRlZCAqICh0YzYtPmNwcyArIFRDNl9IRFJfU0laRSk7 DQo+PiArICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbiA9IHRjNi0+dHhjICogKHRjNi0+Y3BzICsgVEM2X0hEUl9TSVpFKTsN Cj4+ICsgICAgICAgICAgICAgICAgICAgICB9DQo+PiArICAgICAgICAgICAgICAgICAgICAgbWVt Y3B5KCZ0YzYtPnNwaV90eF9idWZbMF0sICZ0YzYtPmV0aF90eF9idWZbdHhfcG9zXSwNCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKTsNCj4+ICsgICAgICAgICAgICAgICAgICAg ICByZXQgPSBvYV90YzZfc3BpX3RyYW5zZmVyKHRjNi0+c3BpLCB0YzYtPnNwaV90eF9idWYsDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YzYtPnNw aV9yeF9idWYsIGxlbik7DQo+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKHJldCkgew0KPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0ZGV2X2Vycih0YzYtPm5ldGRldiwgIlNQ SSB0cmFuc2ZlciBmYWlsZWRcbiIpOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29udGludWU7DQo+PiArICAgICAgICAgICAgICAgICAgICAgfQ0KPj4gKyAgICAgICAgICAgICAg ICAgICAgIC8qIFByb2Nlc3MgdGhlIHJlY2VpdmVkIGNodW5rcyB0byBnZXQgdGhlIGV0aGVybmV0 IGZyYW1lDQo+PiArICAgICAgICAgICAgICAgICAgICAgICogb3Igc3RhdHVzLg0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAqLw0KPj4gKyAgICAgICAgICAgICAgICAgICAgIGlmIChvYV90YzZf cHJvY2Vzc19yeF9jaHVua3ModGM2LCB0YzYtPnNwaV9yeF9idWYsDQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4pKSB7DQo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiBJbiBjYXNlIG9mIGVycm9yIHdoaWxlIHByb2Nlc3Np bmcgcnggY2h1bmtzDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBkaXNjYXJk IHRoZSBpbmNvbXBsZXRlIHR4IGV0aGVybmV0IGZyYW1lIGFuZA0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICogcmVzZW5kIGl0Lg0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICovDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eF9wb3MgPSAwOw0K Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGM2LT50eGNfbmVlZGVkID0gdGM2LT50 b3RhbF90eGNfbmVlZGVkOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eF9wb3MgKz0gbGVuOw0KPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGM2LT50eGNfbmVlZGVkID0gdGM2LT50eGNfbmVlZGVkIC0N Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW4g LyAodGM2LT5jcHMgKyBUQzZfSERSX1NJWkUpKTsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIElmIHRoZSBjb21wbGV0ZSBldGhlcm5ldCBmcmFtZSBpcyB0cmFuc21pdHRlZA0K Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlbiByZXR1cm4gdGhlIHNrYiBh bmQgdXBkYXRlIHRoZSBkZXRhaWxzIHRvDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKiBuL3cgbGF5ZXIuDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGM2LT50eGNfbmVlZGVkKSB7DQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjNi0+bmV0ZGV2LT5zdGF0 cy50eF9wYWNrZXRzKys7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRjNi0+bmV0ZGV2LT5zdGF0cy50eF9ieXRlcyArPSB0YzYtPnR4X3NrYi0+bGVuOw0KPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfa2ZyZWVfc2tiKHRjNi0+dHhf c2tiKTsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhfcG9zID0g MDsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGM2LT50eF9za2Ig PSBOVUxMOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV0 aWZfcXVldWVfc3RvcHBlZCh0YzYtPm5ldGRldikpDQo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmV0aWZfd2FrZV9xdWV1ZSh0YzYtPm5ldGRldik7DQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRjNi0+dHhjKSB7DQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHR4YyBpcyBhdmFp bGFibGUgYWdhaW4gYW5kIHVwZGF0ZWQNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICogZnJvbSB0aGUgcHJldmlvdXMgZm9vdGVyIHRoZW4gcGVyZm9ybQ0KPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0eCBhZ2Fpbi4NCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRjNi0+dHhfZmxhZyA9IHRydWU7DQo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBJZiB0aGVyZSBpcyBubyB0eGMgdGhlbiB3YWl0IGZvciB0aGUNCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaW50ZXJydXB0IHRvIGlu ZGljYXRlIHR4Yw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBh dmFpbGFiaWxpdHkuDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq Lw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eGNfd2FpdCA9IHRy dWU7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+PiArICAgICAgICAgICAg ICAgICAgICAgfQ0KPj4gKyAgICAgICAgICAgICB9DQo+PiAgICAgICAgfQ0KPj4gICAgICAgIHJl dHVybiAwOw0KPj4gICB9DQo+Pg0KPj4gK3N0YXRpYyB2b2lkIG9hX3RjNl9wcmVwYXJlX3R4X2No dW5rcyhzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpidWYsDQo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBza19idWZmICpza2IpDQo+PiArew0KPj4gKyAgICAgYm9v bCBmcmFtZV9zdGFydGVkID0gZmFsc2U7DQo+PiArICAgICB1MTYgY29waWVkX2J5dGVzID0gMDsN Cj4+ICsgICAgIHUxNiBjb3B5X2xlbjsNCj4+ICsgICAgIHUzMiBoZHI7DQo+PiArDQo+PiArICAg ICAvKiBDYWxjdWxhdGUgdGhlIG51bWJlciB0eCBjcmVkaXQgY291bnRzIG5lZWRlZCB0byB0cmFu c3BvcnQgdGhlIHR4DQo+PiArICAgICAgKiBldGhlcm5ldCBmcmFtZS4NCj4+ICsgICAgICAqLw0K Pj4gKyAgICAgdGM2LT50eGNfbmVlZGVkID0gKHNrYi0+bGVuIC8gdGM2LT5jcHMpICsgKChza2It PmxlbiAlIHRjNi0+Y3BzKSA/IDEgOiAwKTsNCj4+ICsgICAgIHRjNi0+dG90YWxfdHhjX25lZWRl ZCA9IHRjNi0+dHhjX25lZWRlZDsNCj4+ICsNCj4+ICsgICAgIGZvciAodTggaSA9IDA7IGkgPCB0 YzYtPnR4Y19uZWVkZWQ7IGkrKykgew0KPj4gKyAgICAgICAgICAgICAvKiBQcmVwYXJlIHRoZSBo ZWFkZXIgZm9yIGVhY2ggY2h1bmtzIHRvIGJlIHRyYW5zbWl0dGVkICovDQo+PiArICAgICAgICAg ICAgIGhkciA9IEZJRUxEX1BSRVAoREFUQV9IRFJfRE5DLCAxKSB8DQo+PiArICAgICAgICAgICAg ICAgICAgIEZJRUxEX1BSRVAoREFUQV9IRFJfRFYsIDEpOw0KPj4gKyAgICAgICAgICAgICBpZiAo IWZyYW1lX3N0YXJ0ZWQpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICBoZHIgfD0gRklFTERf UFJFUChEQVRBX0hEUl9TViwgMSkgfA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBG SUVMRF9QUkVQKERBVEFfSERSX1NXTywgMCk7DQo+PiArICAgICAgICAgICAgICAgICAgICAgZnJh bWVfc3RhcnRlZCA9IHRydWU7DQo+PiArICAgICAgICAgICAgIH0NCj4+ICsgICAgICAgICAgICAg aWYgKCh0YzYtPmNwcyArIGNvcGllZF9ieXRlcykgPj0gc2tiLT5sZW4pIHsNCj4+ICsgICAgICAg ICAgICAgICAgICAgICBjb3B5X2xlbiA9IHNrYi0+bGVuIC0gY29waWVkX2J5dGVzOw0KPj4gKyAg ICAgICAgICAgICAgICAgICAgIGhkciB8PSBGSUVMRF9QUkVQKERBVEFfSERSX0VCTywgY29weV9s ZW4gLSAxKSB8DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJRUxEX1BSRVAoREFU QV9IRFJfRVYsIDEpOw0KPj4gKyAgICAgICAgICAgICB9IGVsc2Ugew0KPj4gKyAgICAgICAgICAg ICAgICAgICAgIGNvcHlfbGVuID0gdGM2LT5jcHM7DQo+PiArICAgICAgICAgICAgIH0NCj4+ICsg ICAgICAgICAgICAgY29waWVkX2J5dGVzICs9IGNvcHlfbGVuOw0KPj4gKyAgICAgICAgICAgICBo ZHIgfD0gRklFTERfUFJFUChEQVRBX0hEUl9QLCBvYV90YzZfZ2V0X3Bhcml0eShoZHIpKTsNCj4+ ICsgICAgICAgICAgICAgaGRyID0gY3B1X3RvX2JlMzIoaGRyKTsNCj4+ICsgICAgICAgICAgICAg Kih1MzIgKikmYnVmW2kgKiAodGM2LT5jcHMgKyBUQzZfSERSX1NJWkUpXSA9IGhkcjsNCj4+ICsg ICAgICAgICAgICAgLyogQ29weSB0aGUgZXRoZXJuZXQgZnJhbWUgaW4gdGhlIGNodW5rIHBheWxv YWQgc2VjdGlvbiAqLw0KPj4gKyAgICAgICAgICAgICBtZW1jcHkoJmJ1ZltUQzZfSERSX1NJWkUg KyAoaSAqICh0YzYtPmNwcyArIFRDNl9IRFJfU0laRSkpXSwNCj4+ICsgICAgICAgICAgICAgICAg ICAgICZza2ItPmRhdGFbY29waWVkX2J5dGVzIC0gY29weV9sZW5dLCBjb3B5X2xlbik7DQo+PiAr ICAgICB9DQo+PiArfQ0KPj4gKw0KPj4gK25ldGRldl90eF90IG9hX3RjNl9zZW5kX2V0aF9wa3Qo c3RydWN0IG9hX3RjNiAqdGM2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPj4gK3sNCj4+ICsgICAg IGlmICh0YzYtPnR4X3NrYikgew0KPj4gKyAgICAgICAgICAgICBuZXRpZl9zdG9wX3F1ZXVlKHRj Ni0+bmV0ZGV2KTsNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIE5FVERFVl9UWF9CVVNZOw0KPj4g KyAgICAgfQ0KPj4gKw0KPj4gKyAgICAgdGM2LT50eF9za2IgPSBza2I7DQo+PiArICAgICAvKiBQ cmVwYXJlIHR4IGNodW5rcyB1c2luZyB0aGUgdHggZXRoZXJuZXQgZnJhbWUgKi8NCj4+ICsgICAg IG9hX3RjNl9wcmVwYXJlX3R4X2NodW5rcyh0YzYsIHRjNi0+ZXRoX3R4X2J1Ziwgc2tiKTsNCj4+ ICsNCj4+ICsgICAgIC8qIFdha2UgdGM2IHRhc2sgdG8gcGVyZm9ybSB0eCB0cmFuc2ZlciAqLw0K Pj4gKyAgICAgdGM2LT50eF9mbGFnID0gdHJ1ZTsNCj4+ICsgICAgIHdha2VfdXBfaW50ZXJydXB0 aWJsZSgmdGM2LT50YzZfd3EpOw0KPj4gKw0KPj4gKyAgICAgcmV0dXJuIE5FVERFVl9UWF9PSzsN Cj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTF9HUEwob2FfdGM2X3NlbmRfZXRoX3BrdCk7DQo+PiAr DQo+PiAgIHN0YXRpYyBpcnFyZXR1cm5fdCBtYWNwaHlfaXJxKGludCBpcnEsIHZvaWQgKmRldl9p ZCkNCj4+ICAgew0KPj4gICAgICAgIHN0cnVjdCBvYV90YzYgKnRjNiA9IGRldl9pZDsNCj4+IEBA IC0yOTMsNiArNjYxLDE0IEBAIGludCBvYV90YzZfY29uZmlndXJlKHN0cnVjdCBvYV90YzYgKnRj NiwgdTggY3BzLCBib29sIGN0cmxfcHJvdCwgYm9vbCB0eF9jdXRfdGhyDQo+PiAgICAgICAgdTMy IHJlZ3ZhbDsNCj4+ICAgICAgICBpbnQgcmV0Ow0KPj4NCj4+ICsgICAgIC8qIFJlYWQgQlVGU1RT IHJlZ2lzdGVyIHRvIGdldCB0aGUgY3VycmVudCB0eGMgYW5kIHJjYS4gKi8NCj4+ICsgICAgIHJl dCA9IG9hX3RjNl9yZWFkX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X0JVRlNUUywgJnJlZ3ZhbCwgMSk7 DQo+PiArICAgICBpZiAocmV0KQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKw0K Pj4gKyAgICAgdGM2LT50eGMgPSBGSUVMRF9HRVQoVFhDLCByZWd2YWwpOw0KPj4gKyAgICAgdGM2 LT5yY2EgPSBGSUVMRF9HRVQoUkNBLCByZWd2YWwpOw0KPj4gKw0KPj4gICAgICAgIC8qIFJlYWQg YW5kIGNvbmZpZ3VyZSB0aGUgSU1BU0swIHJlZ2lzdGVyIGZvciB1bm1hc2tpbmcgdGhlIGludGVy cnVwdHMgKi8NCj4+ICAgICAgICByZXQgPSBvYV90YzZfcmVhZF9yZWdpc3Rlcih0YzYsIE9BX1RD Nl9JTUFTSzAsICZyZWd2YWwsIDEpOw0KPj4gICAgICAgIGlmIChyZXQpDQo+PiBAQCAtMzI2LDcg KzcwMiw3IEBAIGludCBvYV90YzZfY29uZmlndXJlKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggY3Bz LCBib29sIGN0cmxfcHJvdCwgYm9vbCB0eF9jdXRfdGhyDQo+PiAgIH0NCj4+ICAgRVhQT1JUX1NZ TUJPTF9HUEwob2FfdGM2X2NvbmZpZ3VyZSk7DQo+Pg0KPj4gLXN0cnVjdCBvYV90YzYgKm9hX3Rj Nl9pbml0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpDQo+PiArc3RydWN0IG9hX3RjNiAqb2FfdGM2 X2luaXQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikN Cj4+ICAgew0KPj4gICAgICAgIHN0cnVjdCBvYV90YzYgKnRjNjsNCj4+ICAgICAgICBpbnQgcmV0 Ow0KPj4gQEAgLTMzNCwxMSArNzEwLDM5IEBAIHN0cnVjdCBvYV90YzYgKm9hX3RjNl9pbml0KHN0 cnVjdCBzcGlfZGV2aWNlICpzcGkpDQo+PiAgICAgICAgaWYgKCFzcGkpDQo+PiAgICAgICAgICAg ICAgICByZXR1cm4gTlVMTDsNCj4+DQo+PiArICAgICBpZiAoIW5ldGRldikNCj4+ICsgICAgICAg ICAgICAgcmV0dXJuIE5VTEw7DQo+PiArDQo+PiAgICAgICAgdGM2ID0ga3phbGxvYyhzaXplb2Yo KnRjNiksIEdGUF9LRVJORUwpOw0KPj4gICAgICAgIGlmICghdGM2KQ0KPj4gICAgICAgICAgICAg ICAgcmV0dXJuIE5VTEw7DQo+Pg0KPj4gICAgICAgIHRjNi0+c3BpID0gc3BpOw0KPj4gKyAgICAg dGM2LT5uZXRkZXYgPSBuZXRkZXY7DQo+PiArDQo+PiArICAgICAvKiBBbGxvY2F0ZSBtZW1vcnkg Zm9yIHRoZSB0eCBidWZmZXIgdXNlZCBmb3IgU1BJIHRyYW5zZmVyLiAqLw0KPj4gKyAgICAgdGM2 LT5zcGlfdHhfYnVmID0ga3phbGxvYyhNQVhfRVRIX0xFTiArIChPQV9UQzZfTUFYX0NQUyAqIFRD Nl9IRFJfU0laRSksDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdGUF9LRVJO RUwpOw0KPj4gKyAgICAgaWYgKCF0YzYtPnNwaV90eF9idWYpDQo+PiArICAgICAgICAgICAgIGdv dG8gZXJyX3NwaV90eF9idWZfYWxsb2M7DQo+PiArDQo+PiArICAgICAvKiBBbGxvY2F0ZSBtZW1v cnkgZm9yIHRoZSByeCBidWZmZXIgdXNlZCBmb3IgU1BJIHRyYW5zZmVyLiAqLw0KPj4gKyAgICAg dGM2LT5zcGlfcnhfYnVmID0ga3phbGxvYyhNQVhfRVRIX0xFTiArIChPQV9UQzZfTUFYX0NQUyAq IFRDNl9GVFJfU0laRSksDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdGUF9L RVJORUwpOw0KPj4gKyAgICAgaWYgKCF0YzYtPnNwaV9yeF9idWYpDQo+PiArICAgICAgICAgICAg IGdvdG8gZXJyX3NwaV9yeF9idWZfYWxsb2M7DQo+PiArDQo+PiArICAgICAvKiBBbGxvY2F0ZSBt ZW1vcnkgZm9yIHRoZSB0eCBldGhlcm5ldCBjaHVua3MgdG8gdHJhbnNmZXIgb24gU1BJLiAqLw0K Pj4gKyAgICAgdGM2LT5ldGhfdHhfYnVmID0ga3phbGxvYyhNQVhfRVRIX0xFTiArIChPQV9UQzZf TUFYX0NQUyAqIFRDNl9IRFJfU0laRSksDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdGUF9LRVJORUwpOw0KPj4gKyAgICAgaWYgKCF0YzYtPmV0aF90eF9idWYpDQo+PiArICAg ICAgICAgICAgIGdvdG8gZXJyX2V0aF90eF9idWZfYWxsb2M7DQo+PiArDQo+PiArICAgICAvKiBB bGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSByeCBldGhlcm5ldCBwYWNrZXQuICovDQo+PiArICAgICB0 YzYtPmV0aF9yeF9idWYgPSBremFsbG9jKE1BWF9FVEhfTEVOICsgKE9BX1RDNl9NQVhfQ1BTICog VEM2X0ZUUl9TSVpFKSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ZQX0tF Uk5FTCk7DQo+PiArICAgICBpZiAoIXRjNi0+ZXRoX3J4X2J1ZikNCj4+ICsgICAgICAgICAgICAg Z290byBlcnJfZXRoX3J4X2J1Zl9hbGxvYzsNCj4+DQo+PiAgICAgICAgLyogVXNlZCBmb3IgdHJp Z2dlcmluZyB0aGUgT0EgVEM2IHRhc2sgKi8NCj4+ICAgICAgICBpbml0X3dhaXRxdWV1ZV9oZWFk KCZ0YzYtPnRjNl93cSk7DQo+PiBAQCAtMzcyLDYgKzc3NiwxNCBAQCBzdHJ1Y3Qgb2FfdGM2ICpv YV90YzZfaW5pdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQ0KPj4gICBlcnJfbWFjcGh5X2lycToN Cj4+ICAgICAgICBrdGhyZWFkX3N0b3AodGM2LT50YzZfdGFzayk7DQo+PiAgIGVycl90YzZfdGFz azoNCj4+ICsgICAgIGtmcmVlKHRjNi0+ZXRoX3J4X2J1Zik7DQo+PiArZXJyX2V0aF9yeF9idWZf YWxsb2M6DQo+PiArICAgICBrZnJlZSh0YzYtPmV0aF90eF9idWYpOw0KPj4gK2Vycl9ldGhfdHhf YnVmX2FsbG9jOg0KPj4gKyAgICAga2ZyZWUodGM2LT5zcGlfcnhfYnVmKTsNCj4+ICtlcnJfc3Bp X3J4X2J1Zl9hbGxvYzoNCj4+ICsgICAgIGtmcmVlKHRjNi0+c3BpX3R4X2J1Zik7DQo+PiArZXJy X3NwaV90eF9idWZfYWxsb2M6DQo+PiAgICAgICAga2ZyZWUodGM2KTsNCj4+ICAgICAgICByZXR1 cm4gTlVMTDsNCj4+ICAgfQ0KPj4gQEAgLTM4Myw4ICs3OTUsMTMgQEAgaW50IG9hX3RjNl9kZWlu aXQoc3RydWN0IG9hX3RjNiAqdGM2KQ0KPj4NCj4+ICAgICAgICBkZXZtX2ZyZWVfaXJxKCZ0YzYt PnNwaS0+ZGV2LCB0YzYtPnNwaS0+aXJxLCB0YzYpOw0KPj4gICAgICAgIHJldCA9IGt0aHJlYWRf c3RvcCh0YzYtPnRjNl90YXNrKTsNCj4+IC0gICAgIGlmICghcmV0KQ0KPj4gKyAgICAgaWYgKCFy ZXQpIHsNCj4+ICsgICAgICAgICAgICAga2ZyZWUodGM2LT5ldGhfcnhfYnVmKTsNCj4+ICsgICAg ICAgICAgICAga2ZyZWUodGM2LT5ldGhfdHhfYnVmKTsNCj4+ICsgICAgICAgICAgICAga2ZyZWUo dGM2LT5zcGlfcnhfYnVmKTsNCj4+ICsgICAgICAgICAgICAga2ZyZWUodGM2LT5zcGlfdHhfYnVm KTsNCj4+ICAgICAgICAgICAgICAgIGtmcmVlKHRjNik7DQo+PiArICAgICB9DQo+PiAgICAgICAg cmV0dXJuIHJldDsNCj4+ICAgfQ0KPj4gICBFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfZGVpbml0 KTsNCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L29hX3RjNi5oIGIvaW5jbHVkZS9saW51 eC9vYV90YzYuaA0KPj4gaW5kZXggZmEyOWM0ZTA5NzIwLi42MWFjMWNkZmE3ZDYgMTAwNjQ0DQo+ PiAtLS0gYS9pbmNsdWRlL2xpbnV4L29hX3RjNi5oDQo+PiArKysgYi9pbmNsdWRlL2xpbnV4L29h X3RjNi5oDQo+PiBAQCAtNiw2ICs2LDcgQEANCj4+ICAgICovDQo+Pg0KPj4gICAjaW5jbHVkZSA8 bGludXgvc3BpL3NwaS5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2UuaD4NCj4+DQo+ PiAgIC8qIENvbnRyb2wgaGVhZGVyICovDQo+PiAgICNkZWZpbmUgQ1RSTF9IRFJfRE5DIEJJVCgz MSkgICAgICAgICAvKiBEYXRhLU5vdC1Db250cm9sICovDQo+PiBAQCAtMTcsMTAgKzE4LDM2IEBA DQo+PiAgICNkZWZpbmUgQ1RSTF9IRFJfTEVOIEdFTk1BU0soNywgMSkgICAvKiBMZW5ndGggKi8N Cj4+ICAgI2RlZmluZSBDVFJMX0hEUl9QICAgQklUKDApICAgICAgICAgIC8qIFBhcml0eSBCaXQg Ki8NCj4+DQo+PiArLyogRGF0YSBoZWFkZXIgKi8NCj4+ICsjZGVmaW5lIERBVEFfSERSX0ROQyBC SVQoMzEpICAgICAgICAgLyogRGF0YS1Ob3QtQ29udHJvbCAqLw0KPj4gKyNkZWZpbmUgREFUQV9I RFJfU0VRIEJJVCgzMCkgICAgICAgICAvKiBEYXRhIENodW5rIFNlcXVlbmNlICovDQo+PiArI2Rl ZmluZSBEQVRBX0hEUl9OT1JYICAgICAgICBCSVQoMjkpICAgICAgICAgLyogTm8gUmVjZWl2ZSAq Lw0KPj4gKyNkZWZpbmUgREFUQV9IRFJfRFYgIEJJVCgyMSkgICAgICAgICAvKiBEYXRhIFZhbGlk ICovDQo+PiArI2RlZmluZSBEQVRBX0hEUl9TViAgQklUKDIwKSAgICAgICAgIC8qIFN0YXJ0IFZh bGlkICovDQo+PiArI2RlZmluZSBEQVRBX0hEUl9TV08gR0VOTUFTSygxOSwgMTYpIC8qIFN0YXJ0 IFdvcmQgT2Zmc2V0ICovDQo+PiArI2RlZmluZSBEQVRBX0hEUl9FViAgQklUKDE0KSAgICAgICAg IC8qIEVuZCBWYWxpZCAqLw0KPj4gKyNkZWZpbmUgREFUQV9IRFJfRUJPIEdFTk1BU0soMTMsIDgp ICAvKiBFbmQgQnl0ZSBPZmZzZXQgKi8NCj4+ICsjZGVmaW5lIERBVEFfSERSX1AgICBCSVQoMCkg ICAgICAgICAgLyogSGVhZGVyIFBhcml0eSBCaXQgKi8NCj4+ICsNCj4+ICsvKiBEYXRhIGZvb3Rl ciAqLw0KPj4gKyNkZWZpbmUgREFUQV9GVFJfRVhTVCAgICAgICAgQklUKDMxKSAgICAgICAgIC8q IEV4dGVuZGVkIFN0YXR1cyAqLw0KPj4gKyNkZWZpbmUgREFUQV9GVFJfSERSQiAgICAgICAgQklU KDMwKSAgICAgICAgIC8qIFJlY2VpdmVkIEhlYWRlciBCYWQgKi8NCj4+ICsjZGVmaW5lIERBVEFf RlRSX1NZTkMgICAgICAgIEJJVCgyOSkgICAgICAgICAvKiBDb25maWd1cmF0aW9uIFN5bmNocm9u aXplZCAqLw0KPj4gKyNkZWZpbmUgREFUQV9GVFJfUkNBIEdFTk1BU0soMjgsIDI0KSAvKiBSZWNl aXZlIENodW5rcyBBdmFpbGFibGUgKi8NCj4+ICsjZGVmaW5lIERBVEFfRlRSX0RWICBCSVQoMjEp ICAgICAgICAgLyogRGF0YSBWYWxpZCAqLw0KPj4gKyNkZWZpbmUgREFUQV9GVFJfU1YgIEJJVCgy MCkgICAgICAgICAvKiBTdGFydCBWYWxpZCAqLw0KPj4gKyNkZWZpbmUgREFUQV9GVFJfU1dPIEdF Tk1BU0soMTksIDE2KSAvKiBTdGFydCBXb3JkIE9mZnNldCAqLw0KPj4gKyNkZWZpbmUgREFUQV9G VFJfRkQgIEJJVCgxNSkgICAgICAgICAvKiBGcmFtZSBEcm9wICovDQo+PiArI2RlZmluZSBEQVRB X0ZUUl9FViAgQklUKDE0KSAgICAgICAgIC8qIEVuZCBWYWxpZCAqLw0KPj4gKyNkZWZpbmUgREFU QV9GVFJfRUJPIEdFTk1BU0soMTMsIDgpICAvKiBFbmQgQnl0ZSBPZmZzZXQgKi8NCj4+ICsjZGVm aW5lIERBVEFfRlRSX1RYQyBHRU5NQVNLKDUsIDEpICAgLyogVHJhbnNtaXQgQ3JlZGl0cyAqLw0K Pj4gKyNkZWZpbmUgREFUQV9GVFJfUCAgIEJJVCgwKSAgICAgICAgICAvKiBGb290ZXIgUGFyaXR5 IEJpdCAqLw0KPj4gKw0KPj4gICAvKiBPcGVuIEFsbGlhbmNlIFRDNiBTdGFuZGFyZCBDb250cm9s IGFuZCBTdGF0dXMgUmVnaXN0ZXJzICovDQo+PiAgICNkZWZpbmUgT0FfVEM2X1JFU0VUIDB4MDAw MyAgICAgICAgICAvKiBSZXNldCBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXIgKi8NCj4+ICAg I2RlZmluZSBPQV9UQzZfQ09ORklHMCAgICAgICAweDAwMDQgICAgICAgICAgLyogQ29uZmlndXJh dGlvbiBSZWdpc3RlciAjMCAqLw0KPj4gICAjZGVmaW5lIE9BX1RDNl9TVFMwICAweDAwMDggICAg ICAgICAgLyogU3RhdHVzIFJlZ2lzdGVyICMwICovDQo+PiArI2RlZmluZSBPQV9UQzZfQlVGU1RT ICAgICAgICAweDAwMEIgICAgICAgICAgLyogQnVmZmVyIFN0YXR1cyBSZWdpc3RlciAqLw0KPj4g ICAjZGVmaW5lIE9BX1RDNl9JTUFTSzAgICAgICAgIDB4MDAwQyAgICAgICAgICAvKiBJbnRlcnJ1 cHQgTWFzayBSZWdpc3RlciAjMCAqLw0KPj4NCj4+ICAgLyogUkVTRVQgcmVnaXN0ZXIgZmllbGQg Ki8NCj4+IEBAIC0zMyw2ICs2MCwxNyBAQA0KPj4gICAjZGVmaW5lIFBST1RFICAgICAgICAgICAg ICAgIEJJVCg1KSAgICAgICAgICAvKiBDdHJsIHJlYWQvd3JpdGUgUHJvdGVjdGlvbiBFbmFibGUg Ki8NCj4+ICAgI2RlZmluZSBDUFMgICAgICAgICAgR0VOTUFTSygyLCAwKSAgIC8qIENodW5rIFBh eWxvYWQgU2l6ZSAqLw0KPj4NCj4+ICsvKiBTVEFUVVMwIHJlZ2lzdGVyIGZpZWxkcyAqLw0KPj4g KyNkZWZpbmUgQ0RQRSAgICAgICAgIEJJVCgxMikgICAgICAgICAvKiBDb250cm9sIERhdGEgUHJv dGVjdGlvbiBFcnJvciAqLw0KPj4gKyNkZWZpbmUgVFhGQ1NFICAgICAgICAgICAgICAgQklUKDEx KSAgICAgICAgIC8qIFRyYW5zbWl0IEZyYW1lIENoZWNrIFNlcXVlbmNlIEVycm9yICovDQo+PiAr I2RlZmluZSBSRVNFVEMgICAgICAgICAgICAgICBCSVQoNikgICAgICAgICAgLyogUmVzZXQgQ29t cGxldGUgKi8NCj4+ICsjZGVmaW5lIEhEUkUgICAgICAgICBCSVQoNSkgICAgICAgICAgLyogSGVh ZGVyIEVycm9yICovDQo+PiArI2RlZmluZSBMT0ZFICAgICAgICAgQklUKDQpICAgICAgICAgIC8q IExvc3Mgb2YgRnJhbWluZyBFcnJvciAqLw0KPj4gKyNkZWZpbmUgUlhCT0UgICAgICAgICAgICAg ICAgQklUKDMpICAgICAgICAgIC8qIFJlY2VpdmUgQnVmZmVyIE92ZXJmbG93IEVycm9yICovDQo+ PiArI2RlZmluZSBUWEJVRSAgICAgICAgICAgICAgICBCSVQoMikgICAgICAgICAgLyogVHJhbnNt aXQgQnVmZmVyIFVuZGVyZmxvdyBFcnJvciAqLw0KPj4gKyNkZWZpbmUgVFhCT0UgICAgICAgICAg ICAgICAgQklUKDEpICAgICAgICAgIC8qIFRyYW5zbWl0IEJ1ZmZlciBPdmVyZmxvdyBFcnJvciAq Lw0KPj4gKyNkZWZpbmUgVFhQRSAgICAgICAgIEJJVCgwKSAgICAgICAgICAvKiBUcmFuc21pdCBQ cm90b2NvbCBFcnJvciAqLw0KPj4gKw0KPj4gICAvKiBVbm1hc2tpbmcgaW50ZXJydXB0IGZpZWxk cyBpbiBJTUFTSzAgKi8NCj4+ICAgI2RlZmluZSBIRFJFTSAgICAgICAgICAgICAgICB+QklUKDUp ICAgICAgICAgLyogSGVhZGVyIEVycm9yIE1hc2sgKi8NCj4+ICAgI2RlZmluZSBMT0ZFTSAgICAg ICAgICAgICAgICB+QklUKDQpICAgICAgICAgLyogTG9zcyBvZiBGcmFtaW5nIEVycm9yIE1hc2sg Ki8NCj4+IEBAIC00NCwyNCArODIsNDkgQEANCj4+ICAgLyogU1RBVFVTMCByZWdpc3RlciBmaWVs ZCAqLw0KPj4gICAjZGVmaW5lIFJFU0VUQyAgICAgICAgICAgICAgIEJJVCg2KSAgICAgICAgICAv KiBSZXNldCBDb21wbGV0ZSAqLw0KPj4NCj4+ICsvKiBCVUZTVFMgcmVnaXN0ZXIgZmllbGRzICov DQo+PiArI2RlZmluZSBUWEMgICAgICAgICAgR0VOTUFTSygxNSwgOCkgIC8qIFRyYW5zbWl0IENy ZWRpdHMgQXZhaWxhYmxlICovDQo+PiArI2RlZmluZSBSQ0EgICAgICAgICAgR0VOTUFTSyg3LCAw KSAgIC8qIFJlY2VpdmUgQ2h1bmtzIEF2YWlsYWJsZSAqLw0KPj4gKw0KPj4gICAjZGVmaW5lIFRD Nl9IRFJfU0laRSA0ICAgICAgICAgICAgICAgLyogQ3RybCBjb21tYW5kIGhlYWRlciBzaXplIGFz IHBlciBPQSAqLw0KPj4gICAjZGVmaW5lIFRDNl9GVFJfU0laRSA0ICAgICAgICAgICAgICAgLyog Q3RybCBjb21tYW5kIGZvb3RlciBzaXplIHNzIHBlciBPQSAqLw0KPj4NCj4+ICsjZGVmaW5lIEZU Ul9PSyAgICAgICAgICAgICAgIDANCj4+ICsjZGVmaW5lIEZUUl9FUlIgICAgICAgICAgICAgIDEN Cj4+ICsNCj4+ICsjZGVmaW5lIE1BWF9FVEhfTEVOICAxNTM2DQo+PiArI2RlZmluZSBPQV9UQzZf TUFYX0NQUyAgICAgICA2NA0KPj4gKw0KPj4gICBzdHJ1Y3Qgb2FfdGM2IHsNCj4+ICAgICAgICBz dHJ1Y3QgY29tcGxldGlvbiByc3RfY29tcGxldGU7DQo+PiAgICAgICAgc3RydWN0IHRhc2tfc3Ry dWN0ICp0YzZfdGFzazsNCj4+ICsgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7DQo+PiAg ICAgICAgd2FpdF9xdWV1ZV9oZWFkX3QgdGM2X3dxOw0KPj4gICAgICAgIHN0cnVjdCBzcGlfZGV2 aWNlICpzcGk7DQo+PiArICAgICBzdHJ1Y3Qgc2tfYnVmZiAqdHhfc2tiOw0KPj4gKyAgICAgdTgg dG90YWxfdHhjX25lZWRlZDsNCj4+ICsgICAgIGJvb2wgcnhfZXRoX3N0YXJ0ZWQ7DQo+PiAgICAg ICAgYm9vbCB0eF9jdXRfdGhyOw0KPj4gICAgICAgIGJvb2wgcnhfY3V0X3RocjsNCj4+ICAgICAg ICBib29sIGN0cmxfcHJvdDsNCj4+ICsgICAgIHU4ICpzcGlfdHhfYnVmOw0KPj4gKyAgICAgdTgg KnNwaV9yeF9idWY7DQo+PiArICAgICB1OCAqZXRoX3R4X2J1ZjsNCj4+ICsgICAgIHU4ICpldGhf cnhfYnVmOw0KPj4gICAgICAgIGJvb2wgaW50X2ZsYWc7DQo+PiArICAgICB1MTYgcnhkX2J5dGVz Ow0KPj4gKyAgICAgdTggdHhjX25lZWRlZDsNCj4+ICsgICAgIGJvb2wgdHhfZmxhZzsNCj4+ICsg ICAgIGJvb2wgcmVzZXQ7DQo+PiAgICAgICAgdTggY3BzOw0KPj4gKyAgICAgdTggdHhjOw0KPj4g KyAgICAgdTggcmNhOw0KPj4gICB9Ow0KPj4NCj4+IC1zdHJ1Y3Qgb2FfdGM2ICpvYV90YzZfaW5p dChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKTsNCj4+ICtzdHJ1Y3Qgb2FfdGM2ICpvYV90YzZfaW5p dChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTsNCj4+ ICAgaW50IG9hX3RjNl9kZWluaXQoc3RydWN0IG9hX3RjNiAqdGM2KTsNCj4+ICAgaW50IG9hX3Rj Nl93cml0ZV9yZWdpc3RlcihzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiBhZGRyLCB1MzIgdmFsdWVb XSwgdTggbGVuKTsNCj4+ICAgaW50IG9hX3RjNl9yZWFkX3JlZ2lzdGVyKHN0cnVjdCBvYV90YzYg KnRjNiwgdTMyIGFkZHIsIHUzMiB2YWx1ZVtdLCB1OCBsZW4pOw0KPj4gICBpbnQgb2FfdGM2X2Nv bmZpZ3VyZShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4IGNwcywgYm9vbCBjdHJsX3Byb3QsIGJvb2wg dHhfY3V0X3RociwNCj4+ICAgICAgICAgICAgICAgICAgICAgYm9vbCByeF9jdXRfdGhyKTsNCj4+ ICtuZXRkZXZfdHhfdCBvYV90YzZfc2VuZF9ldGhfcGt0KHN0cnVjdCBvYV90YzYgKnRjNiwgc3Ry dWN0IHNrX2J1ZmYgKnNrYik7DQo+Pg0KDQo=