From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by mail.toke.dk (Postfix) with ESMTPS id 972DFA7FE31 for ; Fri, 09 Aug 2024 14:20:51 +0200 (CEST) Authentication-Results: mail.toke.dk; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=Wa8iFzdh DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1723206052; x=1754742052; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=2p/JSga9kJ5lGqowDLGGETTcxsRv3SNF+VWS+gDDK5o=; b=Wa8iFzdhalLO4JrPw0WoMGTrmo/1Y0OHQ1wez+WOMXirAeKg5ci1fjEx NmUhwKTYSsYDO8xNslMu+yiiNhV4pyQm1ddE1Dn30AiUJ3ENOH1KV8y6U w++HOtF2rqC3oqvDsb62X/c485YhbX0VsjBJK9RfMO3GEt9pPYDaRrzAP 4zUW/8o5FulCLCXo+uf5PCU2QW5GISXTWR8SCAanOR5Ups1Us2H9QgRmf XQtD7F7jXJIIsihB575Wb7QTBe8r/vdLDyAD5OzZ+VAtZBqRM0+BWN8Wi 9zzvTpYkpBLMyvq5v/dsz8Q9JZ2thh1hZpSFHzWVLuWhg7X6XAU1cnFtl A==; X-CSE-ConnectionGUID: jip+mAgHQi2EHyk2ecpb1A== X-CSE-MsgGUID: BxLODMLSQqOYhfsL0RqK3A== X-IronPort-AV: E=McAfee;i="6700,10204,11158"; a="12933356" X-IronPort-AV: E=Sophos;i="6.09,276,1716274800"; d="scan'208";a="12933356" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Aug 2024 05:20:48 -0700 X-CSE-ConnectionGUID: N4BUIJIDRkiONsZR7vW7QQ== X-CSE-MsgGUID: gkxdE/QXR4m6MboAT+BJWQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.09,276,1716274800"; d="scan'208";a="61670354" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmviesa003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 09 Aug 2024 05:20:47 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 9 Aug 2024 05:20:47 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 9 Aug 2024 05:20:46 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Fri, 9 Aug 2024 05:20:46 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.47) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Fri, 9 Aug 2024 05:20:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xPyf23gc4BZ/1r6rdu7YSYSseG8wnJ803g2K8g9djSPVWh34eHb+mGOC6ZpR57PB2nB249mIADYy8V8Ui1sP51a0lWd+qoBJxwRP5Igsja2j/+RlMOpjSXpmzIxziT9lESzdW9+bhe1eE4H815TcBYRan99EwMYxM0VifLLDW1QbKz9/9D4cPKUJBqKvBNmRMOKWwArScGRpy1OvjJCpQIW4owcUp1M9WcEHzWKFNWkXxCbFewbhKZfK86uyr2fLgYSpg6tXce6wdvRteEi4jqYKf01gFflNuyvGk8881PzLI3SmE6urHDzl2FY75VCPSyECNTTWy2J7BJLCBS/TCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=b5ErDjdkddfRPC6eL/tHk9TUxh1V2Z9WF5v7Dq90kVc=; b=yNMXiw0l+2h5o+93jspM2HnT6ws9TR1mO1gcI6E06Vb3xTz1LdKiprF9ovh5Dd2TgzOM8fHl4vXgh5TTsQ4RYF8nmizZODzhUFFKERyB+bDEai378hBfn33oZyKhUp/o+Ie77V8kPq+GidnlCIHIwSU26tr+3aFRG98kM0uIgCiUTRFyooMjSHU8Ta8BEuYktBcVIouEbSPdNikKImzWtF4FFai9O6uQUbfCyqSzl2O4xeXOqHOjnJvWtvzNrHw6c6ICaVcF7crJSoUm9s4BFGbA6qGcD2/y1LEvS5h9Rdhng/3k70muU4u4/PM7xPPBEYERY9YlQMPQQzpuMvLp/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DS0PR11MB8718.namprd11.prod.outlook.com (2603:10b6:8:1b9::20) by CH3PR11MB8443.namprd11.prod.outlook.com (2603:10b6:610:1bd::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.21; Fri, 9 Aug 2024 12:20:43 +0000 Received: from DS0PR11MB8718.namprd11.prod.outlook.com ([fe80::4b3b:9dbe:f68c:d808]) by DS0PR11MB8718.namprd11.prod.outlook.com ([fe80::4b3b:9dbe:f68c:d808%5]) with mapi id 15.20.7828.023; Fri, 9 Aug 2024 12:20:43 +0000 Message-ID: <99662019-7e9b-410d-99fe-a85d04af215c@intel.com> Date: Fri, 9 Aug 2024 14:20:25 +0200 User-Agent: Mozilla Thunderbird To: Daniel Xu References: <20220628194812.1453059-1-alexandr.lobakin@intel.com> <20220628194812.1453059-33-alexandr.lobakin@intel.com> <54aab7ec-80e9-44fd-8249-fe0cabda0393@intel.com> <308fd4f1-83a9-4b74-a482-216c8211a028@app.fastmail.com> From: Alexander Lobakin Content-Language: en-US In-Reply-To: <308fd4f1-83a9-4b74-a482-216c8211a028@app.fastmail.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-ClientProxiedBy: SCYP152CA0017.LAMP152.PROD.OUTLOOK.COM (2603:10d6:300:7::7) To DS0PR11MB8718.namprd11.prod.outlook.com (2603:10b6:8:1b9::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB8718:EE_|CH3PR11MB8443:EE_ X-MS-Office365-Filtering-Correlation-Id: c09f8430-35fa-42c8-ef08-08dcb86db062 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MDhMWUw1Qyt5TnRxekVINmJWVWJlNzNzWlhPSml4ZFVhNlk5NGNLU1V5QW5s?= =?utf-8?B?bjBBR2tLRFd5dDBGRUZ3NmUrWjdWTmVYYjI0Sm4vQUYwMjBZS2N2WW1YcTdt?= =?utf-8?B?WFJuelpjK2Y5QjVNdGVIN2s2cFo2VzdKci85bjJlT0VjcGVJalZobXFnS0d6?= =?utf-8?B?MDI4NXhSNlFLaURreXFJL1Boa1ZKMU1odm1lVlNxQWV2NkEwcFlYMmdIbkhr?= =?utf-8?B?SGpSUGR2VXVOeklzaXNjak90RHRjaXRWbitDek1mMElMUGhtS2NXZUNzdlR6?= =?utf-8?B?VDFBdXF1RnN0UGtVNG5vU2RLeG5iaGUwTFF1N25Na2JTYlQ3N3hQcy9LYlNW?= =?utf-8?B?SUtmN09ZSFBFRWVJSlpKekJjdC9uNW9ZMlNNNTdYTzBQa0lwcWZJUVoyd3A5?= =?utf-8?B?UlR5Qnc5WnQybnE0RWlmSk1FV0JsVDl3YzNZTGZTN2wreWxHWGtLYkpXSzFp?= =?utf-8?B?TkpaSzhwRmV5Rm5JaGhlRGwyWEh1ZjArYytQa0dXQXc0N1kvUDNWUFB0S2lW?= =?utf-8?B?S045bWt0MEFTNUdXZnNOeXZzM2pWSGdFKzQyT3VYOGtoT3NSelRZdjN1ejNY?= =?utf-8?B?cDUrbFBjTWE2ampUWXJ5b2xiRUNvMHlvVnN3SXhZSVQzOU0wUThqT0tQYXQ0?= =?utf-8?B?SUM3VUsxczVuZFU3azhHQ3lxdmhrWnVpTVJ2ODVzaDl2N244VVU3UXBGZ2s1?= =?utf-8?B?ckFSYjNhWGVKTG5NZmc4R1JtaDFqVzhtQmFSWFhLMzF6ODc0VWtrRWZPL0cz?= =?utf-8?B?aXFleWtmUndmK0ltY3FVdHFISjFxQVRuTDEyeU1RSklxc2FOb2NlMlUyUERw?= =?utf-8?B?M1ZiQWJCZ0Z6TzBFY0kwQU93Rml0NFVXQTBrMUdlN3FnYVlsV2Mwc2NUblQ4?= =?utf-8?B?UlNBTHphVHdpQkJiL3hoZ3VWa3lnZlBpREg4Vi9YOXdBczB6VFl2QkNyZHpp?= =?utf-8?B?RVp1UzJUb0QvTFhTRU5IMkhSVUtxc3FWajJpU3d5Q0xMcU9sVzZrdElxbzF0?= =?utf-8?B?OEFmb1MyY1BIZCtGRXJucWdlSWVTQlIyck5ad3UwSzV4ZlczT1VtNEZ6RHRU?= =?utf-8?B?TlRXQmRkbDcvTFZHWkFLUFI1NkVkdWE0bWRDQkZIYXdoM2tuS3pKd2xzbWFM?= =?utf-8?B?UjV5WTFLelV3dzVLR0M3MW56K0hVbEU4a2FOWFM2QmIzdklnZHpMa2h1VWVo?= =?utf-8?B?akJoQ00vMVhvSCtjYWlQY0lUOEdIVG4zZFFZWG1sK3B4UmVtT3hldHNKM0I5?= =?utf-8?B?bjlkbzdITmpINHBzZzRsR0E4dXBwelErbjZ1Z0dEcjV4ZUxpUTk2S1BDL21x?= =?utf-8?B?R1hWUTZBWVJKOVk4NFQ2VWJLUUVac1h1Qjdzekl3ZzgzNWhkM3Z4YzNOQ2Yv?= =?utf-8?B?aklQV3h5WnRLUjArUlQzK0lvV2xXb1ZkVWhRVjczMkdQbGhLSjVwQXh6SmVI?= =?utf-8?B?ODRlQnlET0I1ZkdXUUxvWXdWZVZRU3k1QTFuL01xeThCcjhPeTRVUGhoNUJt?= =?utf-8?B?K0RGUkliYXEyU2oxTXVHakNJME5Ucy9BY3A3Tjdkd3o3YWJNV2tZdnd2c2tk?= =?utf-8?B?aDVoNm9pWFdyRHZvYngrcG8raFkxMHdNWGdIajd3ZVIyRlp2aGNXUkpFNVdX?= =?utf-8?B?TFJ3TXdScTkvMCszckloMDdWQSsvaGxxZlhkWW1MZUo3NTg3aVkwaWt5UytL?= =?utf-8?B?dk9hb1Zsa01zTHpGNVNscDZ6STBaR3BaWisvYzdsaG1YSEgxbnVObEdXMWo2?= =?utf-8?Q?6+J3AWD/DiWINvolkMyZ4saIcSp4pUb0kgJ1wdu?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB8718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RUZzeC9UajRCWlQ0UlFBRnUvWVBKQzN0R1hCNU8zUnAyWnFxQmVKVktzU1JI?= =?utf-8?B?VFFkQ25TTXFHQks2dmR6VTJQbmdZazBtMk5BTE0va3JJcUQ0ZUxDcDJXRGJI?= =?utf-8?B?OW5BcTFmKzJTWkhBN0tpL01DWm9nNnRGMUxWb3Uvb3RZd3AxdzVMK21reGhI?= =?utf-8?B?bHJiT1R4eG5BSkwyazE5MDhtbG01Y1FPTWNZaEZCdXpiZzh1T1dRTWljK0Vs?= =?utf-8?B?MjVTaHY5emROVm84clhwYTlCemZGRnJYNVp6RWFtV2tNckdEL2ZmSkg4c2xO?= =?utf-8?B?ZWRCRHBJc0cvL1M4NlpnVjluMndSM0N2Q0JsS1hxdWN4UzQxS3VPL1VpRjND?= =?utf-8?B?SkRjYVZGYWNrYk9abE9TbEZ0NTQ0YWhXMjI5U240K0ZPQ3hadmlLcEJqYm8r?= =?utf-8?B?TEROeUt3RjYweDI3ZlBFUUtiNjNZUXlsMjFPOG1HMDJrUXRHSnNkUHlYRGRD?= =?utf-8?B?TE5Fb3FObEtjNUhWcWhEMHcraVZ4VU5tdmVidWJXYWwyc1kzeXRCQk5mZ2hk?= =?utf-8?B?L2gvWW80czl6a2FGdjZ0VXgyYU9iZVdpeFJMUUFYUXJxWUp5czNGdllQaktE?= =?utf-8?B?M2lGTGZOcmRsaDhLZnl0dElLNlVlaXpUR0Q4Zm16aTQ4d1RnQmxJcjUxVGlZ?= =?utf-8?B?dUxzVFFTTFhUc3oxMWNpcVc4SDBNQjRxMk5oNlN3cnYrNWpMUFRvemFKKzZo?= =?utf-8?B?aStrdmxiS1ZXdUpiTm1iS1IwRktrdVhjb3BNNW1saHJrSjVaWmZ4SmFpRG14?= =?utf-8?B?V0xZdHl0VXVFc1dQa2ozNnJqdWpnV1VJMTY3MThhSnE3aFF4V2ErK2drR0l3?= =?utf-8?B?VWpEWDdoakh6MVk3OTBDYTdrNlV6dFhFaEI1QnpORytvVitvTC9YSUxES3B1?= =?utf-8?B?UnFPZy9XUVJweXhISFI2WlJpenJ3dnFlaUdzd0J6QURiWllObitUUTY3SEIv?= =?utf-8?B?OHBMUmpNKzE4bG14amt5K2tJZi8wVm9CZUhCZHNMSVJIT0gwa3hWem5VaUNV?= =?utf-8?B?U3JMV1V1SlN2WHdQendZNmFmemZVMWpBSDZIUWx4elZxQVMwOW5GRUpRVTJS?= =?utf-8?B?bU9RTjBsZFJOTUVsTlovdnJWSzIyK3c0OTdNaXVwUEp6MHl6M1BSMXIwWmF0?= =?utf-8?B?SWhjMjhBeGNybkozWXVLaDlRNm1iV0tGeHVhQWd4SGFHbVVUZXhmZHJ2L0ha?= =?utf-8?B?UU94TXkvWnNXRGVOaVJiYVdETTh1S1JRajN5TmEzRVI4OWphVWlJWWwvTFZr?= =?utf-8?B?bnorMTJFcmdkeGlwUHRqS25YdmVLVllKcHBuVG9FU2hoRVBYcE42eHRhZ1pz?= =?utf-8?B?aWE3S0JsdjUzMzF1UWtBQ0tDTlVGZllHdHVHWEc4bXN6UnVMMGJ0STRvQXVS?= =?utf-8?B?ZXlCNDhjMkJmaHQvNXFtOXUraG0yYUdUMTZEYkR6WFIxeTFxU1NhUjdmdmhK?= =?utf-8?B?dmdTRmIweERuNTNhV3NyTjc3V1NIbWp4ZGF2VXRvZERUc1BTRnp2UDBYRnU5?= =?utf-8?B?SitLTmFKMjExTnhhbDljU29scW5nTGdLM0x3SUs0U3JlZ0UwR09lWEZlNTJI?= =?utf-8?B?bDIvUEpFWkt5bHFCMkJyQVpZdnlDS0NLVisyN3A4ai9DQjJqVWlhWDdHbVA2?= =?utf-8?B?ZVl5RkpQbGpLRlJaRk96L1Vtc0xYZjVXYzd3Q1ljV283YVowMVk2UGhZTXEv?= =?utf-8?B?bWkxeWp4SlVCb01hc3FDc2VMWVBGZVVhRjdLZy96QVVtSmlvWkZZb3kwbUo2?= =?utf-8?B?WEl1TnI3L2FrWEdiK2RUb2UrZXhmaUMzOHpGY0tKOTRCRGN3N1NMTDBFRVM0?= =?utf-8?B?RlVkNk4xNlM4OE5MbDl3OHZJazhYalp3aUxTdTcrYkdvWmFEays4OExER3d0?= =?utf-8?B?M3AzRzQ5SDgzUlhWY0lQZ0RGbUxpYXpVZGFCdkJjc0NrL0NWdm1PWVlFY3g4?= =?utf-8?B?VmovYUZEeW1GWXR4cEJNS3VUdDFDN1RCY1RIV2ZLVUtBNEpNT3VxVDdaQ2lW?= =?utf-8?B?TVJJRjArQXF4eTQ4bTAxcEV6aDRlYVVoTytnc1dYSXFEb2ZsNjIxN0FvbTV5?= =?utf-8?B?U3lac3hRSmZBb3NRc1BRUmJaRzlOSXBPQ3lHeTBpNTN3KzVYaUw1WEtNSG12?= =?utf-8?B?aWg0NFBScnFneGZEM21NY1hWUXF4VldNOFBOWXRPazVmdWpzN3NwREVZWVJ5?= =?utf-8?B?ZHc9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: c09f8430-35fa-42c8-ef08-08dcb86db062 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB8718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2024 12:20:43.2628 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3aqntzexIKaRjvIjweiPb8FXBGQflmgdQWdRsJ8yf151cVeVPyBnQNEF4ArDwIrPDbwb/g5vkdKKjbowGODtyxbtJBV6sol/8JQcJ8A6tN4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8443 X-OriginatorOrg: intel.com Message-ID-Hash: 6ESEFU4MW6ILBYGH7F34URDRHA664VWG X-Message-ID-Hash: 6ESEFU4MW6ILBYGH7F34URDRHA664VWG X-MailFrom: aleksander.lobakin@intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Lorenzo Bianconi , Alexander Lobakin , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Larysa Zaremba , Michal Swiatkowski , Jesper Dangaard Brouer , =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= , Magnus Karlsson , Maciej Fijalkowski , Jonathan Lemon , "toke@redhat.com" , Lorenzo Bianconi , David Miller , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jesse Brandeburg , John Fastabend , Yajun Deng , Willem de Bruijn , "bpf@vger.kernel.org" , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, xdp-hints@xdp-project.net X-Mailman-Version: 3.3.9 Precedence: list Subject: [xdp-hints] Re: [PATCH RFC bpf-next 32/52] bpf, cpumap: switch to GRO from netif_receive_skb_list() List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: RnJvbTogRGFuaWVsIFh1IDxkeHVAZHh1dXUueHl6Pg0KRGF0ZTogVGh1LCAwOCBBdWcgMjAyNCAx Njo1Mjo1MSAtMDQwMA0KDQo+IEhpLA0KPiANCj4gT24gVGh1LCBBdWcgOCwgMjAyNCwgYXQgNzo1 NyBBTSwgQWxleGFuZGVyIExvYmFraW4gd3JvdGU6DQo+PiBGcm9tOiBMb3JlbnpvIEJpYW5jb25p IDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+DQo+PiBEYXRlOiBUaHUsIDggQXVnIDIwMjQg MDY6NTQ6MDYgKzAyMDANCj4+DQo+Pj4+IEhpIEFsZXhhbmRlciwNCj4+Pj4NCj4+Pj4gT24gVHVl LCBKdW4gMjgsIDIwMjIsIGF0IDEyOjQ3IFBNLCBBbGV4YW5kZXIgTG9iYWtpbiB3cm90ZToNCj4+ Pj4+IGNwdW1hcCBoYXMgaXRzIG93biBCSCBjb250ZXh0IGJhc2VkIG9uIGt0aHJlYWQuIEl0IGhh cyBhIHNhbmUgYmF0Y2gNCj4+Pj4+IHNpemUgb2YgOCBmcmFtZXMgcGVyIG9uZSBjeWNsZS4NCj4+ Pj4+IEdSTyBjYW4gYmUgdXNlZCBvbiBpdHMgb3duLCBhZGp1c3QgY3B1bWFwIGNhbGxzIHRvIHRo ZQ0KPj4+Pj4gdXBwZXIgc3RhY2sgdG8gdXNlIEdSTyBBUEkgaW5zdGVhZCBvZiBuZXRpZl9yZWNl aXZlX3NrYl9saXN0KCkgd2hpY2gNCj4+Pj4+IHByb2Nlc3NlcyBza2JzIGJ5IGJhdGNoZXMsIGJ1 dCBkb2Vzbid0IGludm9sdmUgR1JPIGxheWVyIGF0IGFsbC4NCj4+Pj4+IEl0IGlzIG1vc3QgYmVu ZWZpY2lhbCB3aGVuIGEgTklDIHdoaWNoIGZyYW1lIGNvbWUgZnJvbSBpcyBYRFANCj4+Pj4+IGdl bmVyaWMgbWV0YWRhdGEtZW5hYmxlZCwgYnV0IGluIHBsZW50eSBvZiB0ZXN0cyBHUk8gcGVyZm9y bXMgYmV0dGVyDQo+Pj4+PiB0aGFuIGxpc3RlZCByZWNlaXZpbmcgZXZlbiBnaXZlbiB0aGF0IGl0 IGhhcyB0byBjYWxjdWxhdGUgZnVsbCBmcmFtZQ0KPj4+Pj4gY2hlY2tzdW1zIG9uIENQVS4NCj4+ Pj4+IEFzIEdSTyBwYXNzZXMgdGhlIHNrYnMgdG8gdGhlIHVwcGVyIHN0YWNrIGluIHRoZSBiYXRj aGVzIG9mDQo+Pj4+PiBAZ3JvX25vcm1hbF9iYXRjaCwgaS5lLiA4IGJ5IGRlZmF1bHQsIGFuZCBA c2tiLT5kZXYgcG9pbnQgdG8gdGhlDQo+Pj4+PiBkZXZpY2Ugd2hlcmUgdGhlIGZyYW1lIGNvbWVz IGZyb20sIGl0IGlzIGVub3VnaCB0byBkaXNhYmxlIEdSTw0KPj4+Pj4gbmV0ZGV2IGZlYXR1cmUg b24gaXQgdG8gY29tcGxldGVseSByZXN0b3JlIHRoZSBvcmlnaW5hbCBiZWhhdmlvdXI6DQo+Pj4+ PiB1bnRvdWNoZWQgZnJhbWVzIHdpbGwgYmUgYmVpbmcgYnVsa2VkIGFuZCBwYXNzZWQgdG8gdGhl IHVwcGVyIHN0YWNrDQo+Pj4+PiBieSA4LCBhcyBpdCB3YXMgd2l0aCBuZXRpZl9yZWNlaXZlX3Nr Yl9saXN0KCkuDQo+Pj4+Pg0KPj4+Pj4gU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIExvYmFraW4g PGFsZXhhbmRyLmxvYmFraW5AaW50ZWwuY29tPg0KPj4+Pj4gLS0tDQo+Pj4+PiAga2VybmVsL2Jw Zi9jcHVtYXAuYyB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0NCj4+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkNCj4+Pj4+DQo+Pj4+DQo+Pj4+IEFGQUlDVCB0aGUgY3B1bWFwICsgR1JPIGlzIGEgZ29vZCBz dGFuZGFsb25lIGltcHJvdmVtZW50LiBJIHRoaW5rDQo+Pj4+IGNwdW1hcCBpcyBzdGlsbCBtaXNz aW5nIHRoaXMuDQo+Pg0KPj4gVGhlIG9ubHkgY29uY2VybiBmb3IgaGF2aW5nIEdSTyBpbiBjcHVt YXAgd2l0aG91dCBtZXRhZGF0YSBmcm9tIHRoZSBOSUMNCj4+IGRlc2NyaXB0b3Igd2FzIHRoYXQg d2hlbiB0aGUgY2hlY2tzdW0gc3RhdHVzIGlzIG1pc3NpbmcsIEdSTyBjYWxjdWxhdGVzDQo+PiB0 aGUgY2hlY2tzdW0gb24gQ1BVLCB3aGljaCBpcyBub3QgcmVhbGx5IGZhc3QuDQo+PiBCdXQgSSBy ZW1lbWJlciBzb21ldGltZXMgR1JPIHdhcyBmYXN0ZXIgZGVzcGl0ZSB0aGF0Lg0KPiANCj4gR29v ZCB0byBrbm93LCB0aGFua3MuIElJVUMgc29tZSBraW5kIG9mIFhEUCBoaW50IHN1cHBvcnQgbGFu ZGVkIGFscmVhZHk/DQo+IA0KPiBNeSB1c2UgY2FzZSBjb3VsZCBhbHNvIHVzZSBIVyBSU1MgaGFz aCB0byBhdm9pZCBhIHJlaGFzaCBpbiBYRFAgcHJvZy4NCg0KVW5mb3J0dW5hdGVseSwgZm9yIG5v dyBpdCdzIGltcG9zc2libGUgdG8gZ2V0IEhXIG1ldGFkYXRhIHN1Y2ggYXMgUlNTDQpoYXNoIGFu ZCBjaGVja3N1bSBzdGF0dXMgaW4gY3B1bWFwLiBUaGV5J3JlIGltcGxlbWVudGVkIHZpYSBrZnVu Y3MNCnNwZWNpZmljIHRvIGEgcGFydGljdWxhciBuZXRkZXZpY2UgYW5kIHRoaXMgaW5mbyBpcyBh dmFpbGFibGUgb25seSB3aGVuDQpydW5uaW5nIFhEUCBwcm9nLg0KDQpCdXQgSSB0aGluayBvbmUg c29sdXRpb24gY291bGQgYmU6DQoNCjEuIFdlIGNyZWF0ZSBzb21lIGdlbmVyaWMgc3RydWN0dXJl IGZvciBjcHVtYXAsIGxpa2UNCg0Kc3RydWN0IGNwdW1hcF9tZXRhIHsNCgl1MzIgbWFnaWM7DQoJ dTMyIGhhc2g7DQp9DQoNCjIuIFdlIGFkZCBzdWNoIGNoZWNrIGluIHRoZSBjcHVtYXAgY29kZQ0K DQoJaWYgKHhkcGYtPm1ldGFsZW4gPT0gc2l6ZW9mKHN0cnVjdCBjcHVtYXBfbWV0YSkgJiYNCgkg ICAgPGhlcmUgd2UgY2hlY2sgbWFnaWM+KQ0KCQlza2ItPmhhc2ggPSBtZXRhLT5oYXNoOw0KDQoz LiBJbiBYRFAgcHJvZywgeW91IGNhbGwgUnggaGludHMga2Z1bmNzIHdoZW4gdGhleSdyZSBhdmFp bGFibGUsIG9idGFpbg0KUlNTIGhhc2ggYW5kIHRoZW4gcHV0IGl0IGluIHRoZSBzdHJ1Y3QgY3B1 bWFwX21ldGEgYXMgWERQIGZyYW1lIG1ldGFkYXRhLg0KDQo+IEFuZCBIVyBSWCB0aW1lc3RhbXAg dG8gbm90IGJyZWFrIFNPX1RJTUVTVEFNUElORy4gVGhlc2UgdHdvDQo+IGFyZSBvbiBvbmUgb2Yg bXkgVE9ETyBsaXN0cy4gQnV0IEkgY2Fu4oCZdCBnZXQgdG8gdGhlbSBmb3IgYXQgbGVhc3QNCj4g YSBmZXcgd2Vla3MuIFNvIGZyZWUgdG8gdGFrZSBpdCBpZiB5b3XigJlkIGxpa2UuDQo+IA0KPj4N Cj4+Pj4NCj4+Pj4gSSBoYXZlIGEgcHJvZHVjdGlvbiB1c2UgY2FzZSBmb3IgdGhpcyBub3cuIFdl IHdhbnQgdG8gZG8gc29tZSBpbnRlbGxpZ2VudA0KPj4+PiBSWCBzdGVlcmluZyBhbmQgSSB0aGlu ayBHUk8gd291bGQgaGVscCBvdmVyIGxpc3QtaWZpZWQgcmVjZWl2ZSBpbiBzb21lIGNhc2VzLg0K Pj4+PiBXZSB3b3VsZCBwcmVmZXIgc3RlZXIgaW4gSFcgKGFuZCB0aHVzIGdldCBleGlzdGluZyBH Uk8gc3VwcG9ydCkgYnV0IG5vdCBhbGwNCj4+Pj4gb3VyIE5JQ3Mgc3VwcG9ydCBpdC4gU28gd2Ug bmVlZCBhIHNvZnR3YXJlIGZhbGxiYWNrLg0KPj4+Pg0KPj4+PiBBcmUgeW91IHN0aWxsIGludGVy ZXN0ZWQgaW4gbWVyZ2luZyB0aGUgY3B1bWFwICsgR1JPIHBhdGNoZXM/DQo+Pg0KPj4gRm9yIHN1 cmUgSSBjYW4gcmV2aXZlIHRoaXMgcGFydC4gSSB3YXMgcGxhbm5pbmcgdG8gZ2V0IGJhY2sgdG8g dGhpcw0KPj4gYnJhbmNoIGFuZCBwaWNrIHBhdGNoZXMgd2hpY2ggd2VyZSBub3QgcmVsYXRlZCB0 byBYRFAgaGludHMgYW5kIHNlbmQNCj4+IHRoZW0gc2VwYXJhdGVseS4NCj4+DQo+Pj4NCj4+PiBI aSBEYW5pZWwgYW5kIEFsZXgsDQo+Pj4NCj4+PiBSZWNlbnRseSBJIHdvcmtlZCBvbiBhIFBvQyB0 byBhZGQgR1JPIHN1cHBvcnQgdG8gY3B1bWFwIGNvZGViYXNlOg0KPj4+IC0gaHR0cHM6Ly9naXRo dWIuY29tL0xvcmVuem9CaWFuY29uaS9icGYtbmV4dC9jb21taXQvYTRiODI2NGQ1MDAwZWNmMDE2 ZGE1YTJkZDlhYzMwMmRlYWYzOGIzZQ0KPj4+ICAgSGVyZSBJIGFkZGVkIEdSTyBzdXBwb3J0IHRv IGNwdW1hcCB0aHJvdWdoIGdyby1jZWxscy4NCj4+PiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9Mb3Jl bnpvQmlhbmNvbmkvYnBmLW5leHQvY29tbWl0L2RhNmNiMzJhNDY3NGFhNzI0MDFjNzQxNGM5YThh MDc3NWVmNDFhNTUNCj4+PiAgIEhlcmUgSSBhZGRlZCBHUk8gc3VwcG9ydCB0byBjcHVtYXAgdHJv dWdoIG5hcGktdGhyZWFkZWQgQVBJcyAod2l0aCBhIHNvbWUNCj4+PiAgIGNoYW5nZXMgdG8gdGhl bSkuDQo+Pg0KPj4gSG1tLCB3aGVuIEkgd2FzIHRlc3RpbmcgaXQsIGFkZGluZyBhIHdob2xlIE5B UEkgdG8gY3B1bWFwIHdhcyBzb3J0YQ0KPj4gb3ZlcmtpbGwsIHRoYXQncyB3aHkgSSBzZXBhcmF0 ZWQgR1JPIHN0cnVjdHVyZSBmcm9tICZuYXBpX3N0cnVjdC4NCj4+DQo+PiBMZXQgbWUgbWF5YmUg ZmluZCBzb21lIGZyZWUgdGltZSwgSSB3b3VsZCB0aGVuIHRlc3QgYWxsIDMgc29sdXRpb25zDQo+ PiAobWluZSwgZ3JvX2NlbGxzLCB0aHJlYWRlZCBOQVBJKSBhbmQgcGljay9zZW5kIHRoZSBiZXN0 Pw0KPiANCj4gU291bmRzIGdvb2QuIFdvdWxkIGJlIGdvb2QgdG8gY29tcGFyZSByZXN1bHRzLg0K PiANCj4gW+KApl0NCj4gDQo+IFRoYW5rcywNCj4gRGFuaWVsDQoNClRoYW5rcywNCk9sZWsNCg==