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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 26A1DCCF9E0 for ; Tue, 28 Oct 2025 11:09:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=f77g6PvHcqakkOYqtdyB3yQIo00XervvBs4ARTyHn0w=; b=Am+IwFA0o/VjP34XHzu/7SwmGc eOx7kvOikqqnZCaPRRs+YTq5xgnvfXIUZgI+taKXpBSmHN1xKvPqQvzBw6s+O7wItxHvBuWmbAiwB 8cVMgrL5usUOoZKWka88N95xlMOVfMEqgmB0pUWKoVSPFbefDWkaOeJGVQrXsBFKck7OvLaYdMkEW ESZdsu3L5DfYyDQBrnedwuOFkRjCHQohFZAsmJ6T9l9JR0viu75gwn6SAznCWdut9QWTH50DGmp9F rhVflgo5jGvEzvbbu37Qqxbr2REeU9zsudWlkYvuaoBSTwPnO2Gp3xXQV1PeYQtdap7BaxxPWGjx0 QwmdIsVg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vDhZa-0000000For5-0cOl; Tue, 28 Oct 2025 11:09:06 +0000 Received: from mail-japaneastazon11023074.outbound.protection.outlook.com ([52.101.127.74] helo=TYDPR03CU002.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vDhZW-0000000Fopr-1gf9; Tue, 28 Oct 2025 11:09:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=md0nfG9Z2pstprDdkQyU70gEFsY/39aL+YeTIUtKXGhferHEs8zqjxv484yC7dVbB/k9vD4NOi+oBYp5pZ5XDHvDN8ta6y27uytGP0n61jJ6U9QhPa+VajVdp+XRHxlTwD8jxU1eJp0YITQodPkQLV0ZvO+gx+juJWAMA+iaELth+uVVeaXesPOx00yS37CXpyObaLTwctKoflNgrRFcfeC17LTmUdY3UjbNolecEc6scL1R9ozo0AesEfNPow5o5w5S1eDvYrkptWZnyD75x8tsMgXz09q738wFIYaEuyB5vz4G/l87aUnBYgLBKKilK71qXIjrLC3OTMpafByt7g== 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=ecz4QcHmBk9R3vmdo08l4T3nIBmaP+Mk2764KHp81F8=; b=DgkogLdy5cem3sZLz9RJMHr0y1Xr8PDccAIeHpx7PDH7b6Vm9gtK6Q2CiMJK4958+Gdd1BVEf52gsGCmY/wOoEwA+AMPftL2zimOtjdclEZNv785CHjKYqFdwdFzH7JmtNK+a7JKEVP/VwxzPAcTXGXgSNVY6Awo9RYkRA0t8/ntLbn2R+O6AsUO4KkgbdhE6cZUCl+FduTvT6qdfD5c7eA7EUE1SL8pmMtkkQFJcd8IDxwKNM7izyjvmn7es6dxQ8yD3DFpTIHrI5oPba7SUrrm0L43+D5zwTVaphEG9oKCmdKIIc4vy5tUSy9peMYfiBIxqzRe0rwS0Pt7APCPag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amlogic.com; dmarc=pass action=none header.from=amlogic.com; dkim=pass header.d=amlogic.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amlogic.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ecz4QcHmBk9R3vmdo08l4T3nIBmaP+Mk2764KHp81F8=; b=pSaRmzU+vhhCi2Dq1UDozbBbyTfTs1F6uKEEfVQRAahuWquikHd7SSbg+SOWTWmdibJg4NoximnFdneM57jtBh9SDqDJmQuHOa5eYmMRTTu37MMF3lg9nKm9G/9tUpWsxTb8oQDzp20qiokr1+IfYF9+UmVICK21T1nx4sXs/ZPAXz4BOvh5HF/7y/fXqC7nwqDbXg9Abd3OH8aqfXNvxVukq5bm67+sMn13c1xI5+pT/L+4uMqE61XFRcRfG1wLkfHCEoVPTMIHrhNAAd08t6GBDjXlhW94sBPdebsUj/l4Keam0uKwzurJXLcewZPodq5zk990Y2wpn41sP4J/fw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amlogic.com; Received: from TYZPR03MB5536.apcprd03.prod.outlook.com (2603:1096:400:5e::9) by TYZPR03MB7130.apcprd03.prod.outlook.com (2603:1096:400:339::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.18; Tue, 28 Oct 2025 11:08:54 +0000 Received: from TYZPR03MB5536.apcprd03.prod.outlook.com ([fe80::9a50:1a8:fa6a:579e]) by TYZPR03MB5536.apcprd03.prod.outlook.com ([fe80::9a50:1a8:fa6a:579e%7]) with mapi id 15.20.9253.017; Tue, 28 Oct 2025 11:08:54 +0000 Message-ID: <9a8e0391-c73f-4913-88e1-0a278d99f90d@amlogic.com> Date: Tue, 28 Oct 2025 19:08:50 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 0/3] Add Amlogic stateless H.264 video decoder for S4 To: Christian Hewitt Cc: Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org References: <20251027-b4-s4-vdec-upstream-v1-0-620401813b5d@amlogic.com> From: Zhentao Guo In-Reply-To: X-ClientProxiedBy: SG2PR02CA0138.apcprd02.prod.outlook.com (2603:1096:4:188::12) To TYZPR03MB5536.apcprd03.prod.outlook.com (2603:1096:400:5e::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR03MB5536:EE_|TYZPR03MB7130:EE_ X-MS-Office365-Filtering-Correlation-Id: fe21672c-f9f6-48ac-32af-08de161261d5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RlA4WXFYYmxwVVVxaUpDTDYxb24yemRDNHZTSnBzK1dPcnRhOE1NMVJYSHRa?= =?utf-8?B?L2ROb1YyZkZNQTN0VzZqaHkraHdBVW9ULytJaTljM0doT3JkaHlaVElRSnZt?= =?utf-8?B?dDRZMTlITElNY05KRFJiajc5dmRmcjJwK2Nld0V2Qkc2WElvVTJRbUFGSGtx?= =?utf-8?B?Y3Y0WUZnbUZZcUFPV1hzTTdrbXRrRFd0cE5mbnNiMGVGYkhnKzQzMHRaNkNF?= =?utf-8?B?V1N3dkJ6cktNM1hqQkdSbEVOTkJ5UFVQTC9wdzBwKzhXcStheStRdjFRWHEx?= =?utf-8?B?VTI3VnpJK2h6dmsyZzhqb3d5Sy9UK3VGN3kzMFByVlhuVityaGhYazBMWHZN?= =?utf-8?B?L2dNSUwzcWxPK25KQ0xwYVlISVBCQm0xUXN4MGhRU1ByTS9XUnNhNWswTXYv?= =?utf-8?B?Z2FXK1Q4Zkx0NlEyRlp2UHJNSEtrYUdPZEZWbFh5S2NRaDlaSjQ1T1pXR2JJ?= =?utf-8?B?bVdVWXdVWmdIbW1HZEFkOHN0NHpsSjlwVlhKQTl2S0VndGRaMGc5U2R5WUdi?= =?utf-8?B?WjNpdmMxQUtpTSttZnJyTmlYS0pXTllCUzNkdXJubDJqeGhwenhjTS9NUEox?= =?utf-8?B?ZDBaNXFlSkdNZEVteXdBalBtdnp6K0NYQkFHTEs4TW5lMUZTYk53UDgwSVpU?= =?utf-8?B?UkoraCs3RVZiMEJLNUswTlFEamhnSWlwMkdxWTJyRzRZcHNNYzArNE4wKzBp?= =?utf-8?B?SjJicWkxNURiZXZmOFJybGtzaThvSUVsSlBaQzc5ZmIvTzhZZ3p4T2NXRWR0?= =?utf-8?B?UEVCdzNlZHRkbnZiVlNOVk15NVNsbVNFc1JoWXZMNXJka3B4bUtqdGVCMDhq?= =?utf-8?B?MDFkaEQ5ck1KeUFJbGY3UWZmZHdmbkZuSlRaY08wb2Q3SnN0aW54QW9nVEhB?= =?utf-8?B?dnlKWitKVEE4dnV0M3BEUk1kR21Mek9NMXVOYUI3SERyQ2s4NGsrOUIzNFhT?= =?utf-8?B?Y2NLY3R3NGdkOFhNZWw3NVJVbmJXTEs5OUlDdmorOEZ1Nmx6akdHL2ZFY2lI?= =?utf-8?B?Rk1YRTcxN0E4ZVlzVU04R1l1dnlSbmRyM0V6aEtMdm8wVVhNM2p2TWhmZDNJ?= =?utf-8?B?bVNyMmF0MXVmclI0KzZVMmgvbG9OalJLQnYzNG9oaHF4UTRTUUNPN1lHNG1V?= =?utf-8?B?ZXdpOWI4T1dreTJVbmVpWTFYeU9Cd3F6blNQd3RzVGM0QmZFZ0JxMmtGZURE?= =?utf-8?B?RDBNZm44V29CQ2haY3FacllIUlRlWEg4NTVuTFU2WmNXRDdpbUNoMURQbTY1?= =?utf-8?B?RU9kNHkyU0xlVWpTTHBERFJlRC85SWxYM1RLMk5HdENrZS9ldW4zSExxZS9h?= =?utf-8?B?azhUUnNxZmk2Q1hnQzBicXo2YU9XeURLUVJPajEvYUFKUkkwWmpaS2RPSmJV?= =?utf-8?B?N1pHUWE5cEpxUjZxL1FWVVhKNklpKzFISWtOTlFHL1g4OWNQVGtxaytPeVpJ?= =?utf-8?B?SEp1UjMxOWNYWTM4NW1zSy9qa1E4bVFoOUJNVFo4bk1FQ0JRMlpOYjl0anl5?= =?utf-8?B?L2ZHdHpYRzNQblRpQ3lWNTFYY2xXclhway9RU3V6VnQzd3dHQlJSaFpBNHEx?= =?utf-8?B?c2RsQ2RYR21DSFNBQkE4aWpzbjlpbzBhaUlRQjZJZ0NMWGNVVklnWUIwbHlX?= =?utf-8?B?TjRwWEVHS0lqeDUveWlxZjkyNWkxSmh1TUhTemJ3Ulo3ck5JS05HNjFsWVZR?= =?utf-8?B?b0dQcXQ0bTFmQ3Z2ZkVCdXNvWEN6Z1FXTytqNkxIY2ROUU5sZ3h5dFVZZUdB?= =?utf-8?B?NldKK2FCZXBMSlJqQ28yUGFDUytmQWt1WW9NNWNwSjhxWUJ2ZVVTOTB0d1N3?= =?utf-8?B?VHp3citmcXFwb1hFV0V5amtRV1dxOHc3ZzRjTlhseFZCMVVmK3dVVGwvamF4?= =?utf-8?B?YVQ2OTA1bDkrUmlVaENTNEdoUW1LU1psWnlxQ1JNUlgyeUE9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB5536.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M0g1akE1cE1aNjJNaFVJc1BYRmJaaWo4NUE4T3JQT0IxM3FSWDkwNnBUYk42?= =?utf-8?B?cnU1bGZkWjRHb09RU0IwcTY5RDBWYnpOR3RrMjFmOXBGUEw3M242L2pGTnl6?= =?utf-8?B?M2szYW02eGlja3g4aVkyRWJjTlpTT3lhR09EbzVJRHFIUnN3ekw1WWp5R0Zz?= =?utf-8?B?UXBxQnpFVzhLY3B1N0JQeDN6TGlRTlZwOXJGZS9QTWZlU1RJMU1YVjdWRmlk?= =?utf-8?B?WFEwYWJTanBXeEQ3ZU9TM1g2U1d4RmZwR1F5dGppSzNiNEtUUlAzb2ozYS9T?= =?utf-8?B?QjRibDVNcTFoRXh5WFUrYnZoQ0lUeWpBV1lQTlJtaWozOVdjOTZSeTl4c0s0?= =?utf-8?B?S2R6cVBGdFI1RzZpVlQ4cjduZmtGS284dFVuRitnbitSck0wdWpIZWVuemx0?= =?utf-8?B?d1c2RkF1c0gyNW5RMk8yQ1FlUjRhYjJzUGtDODhjbFhnUnIzWTBvTlhXajZ2?= =?utf-8?B?M1lKdVpHV3p5aitpTkt4NHQ2c01tWnlibHNNQlp5bDRWM2dqZWZXVjZNazhQ?= =?utf-8?B?VzV5NjNhWXI5NjVIckZoRWdFM1ZycUduOVNpWmh1QWlaNC9DQjJlVktyOElU?= =?utf-8?B?QWJtbERFTnhuUDNmRzgvMUFrdGpGeXZGeFNOVTI4Z2czNVVuVU9zWDRReWEz?= =?utf-8?B?VklQcGQ0bnhrTU1CTUZTNUxmRDkwZndIMmF6aEhibEJRT3hqaEp3OUJYa1BM?= =?utf-8?B?NmxJeFRyQ1BIRDJ5N0l1UlJ0M1Y0M1ViWlFQaCt2a0d0UXFMTUNlZUFiWkpi?= =?utf-8?B?bWpmM1BQWWRDUldUUU14djhaVzlYY1lKZXFhNzN0TmJIamJpZ1o4UzVYM3Nh?= =?utf-8?B?SStuUHN6dzFnMDJLOEl0YmtGaWQ4VkY4N0RXOW1qVXNmQWFWWVEyTm5JSEUw?= =?utf-8?B?UEtkWXhlcmh4emt1RUY4YmRrTGdUSUhDVHFFc1BmbkhxM05Ccnd2WDdrdXpB?= =?utf-8?B?SnBHQi9MZ0pNTFE0ZENJKzJpY2xtMHdsZEwyK2huQWZ6QklxTWJpZEVISWxO?= =?utf-8?B?b24yMjVULzVDazg1WlkrcHZRZXFXTzZ5c3d0T3hkOHRPUDk5Uy9hcGk2cHgw?= =?utf-8?B?RG1hSTlBaEIrcXJWaW4ycXBkRFhKNzllcnpQZUZJM1RtZXAzbk5Wa1dHMlhL?= =?utf-8?B?TFFBNmZjU3N3MHJOYnhUemxCOWtlZVdJbHdrTTJtWnhLUkV3WEozc1ZVMlM0?= =?utf-8?B?dmFrRWYxSHQrUVBDYzZPekgrak8xZm9RL0FSWVl4MjlaRzN4MTd3YXFUQjNx?= =?utf-8?B?eHdIUWVUQ2MydlpjdUxZUFdRVm0zbU9vLzJGQmlnS0ZYbWZ5WUhVejlBUDNp?= =?utf-8?B?NWFPVis5Q1VhOXQyUzJ4akVvUmxGVllNbCt4ZTRIbjhrQU5hNTFLVlRmMGV4?= =?utf-8?B?TGtOWnNxTW8zQVJ4SUlWdHhVTUtvUllGVUxpV3hvY3hqbFB2ZVl0Qmdhbm1m?= =?utf-8?B?TCtQY2Y3dWlPWFc5QXB5N1d4QUVNbVVwWEhibkw5RjZtN3hHSld3NGpZa1Uy?= =?utf-8?B?V3pMYkJYeStPVVdTUCt1WUZ1SFUrVnc1YjViS2IyYjZTK3dPMXdiUjNISStq?= =?utf-8?B?WG9IMlNTREF0czNqNFBMR2hZODIrVnZVQ3pOUExXaFJlWTBvWWRjSlBXS01I?= =?utf-8?B?TWFuN1dxK01IQlR1cEp2TlhpZ283dVhUWVFubWZ5UkxKZStSeXJUTlc2NmxF?= =?utf-8?B?cVNjZnVIU3NadHNzWmluZlV4a3kzdWc4QVZlWUdOQXplVU13ZzQwMFY3cGFi?= =?utf-8?B?OC9jTGFRMmQrZTVpN2pqb3dxYUFybng5VmJGQXo5SUt0Tm8vRW5ZeHFHa0ZU?= =?utf-8?B?TkUrSkEwdlltUnZScmM3Y3VCYTVVREFxU3J4Q2IyYzE2Q0ZrSGNGY0xIRC9y?= =?utf-8?B?dTdRSzg4cGMveHpjS2lBb2p3YVlDbU5EY3UwQ0hkK2RpcG4rWnEweXhVcmdk?= =?utf-8?B?c0hlcXZtWlNOSHNIc24xMWtrZnJoTXJtVGhUeUQ1NVlaRGpvVUpwNUtSbndz?= =?utf-8?B?VEd1UmozR0wreXdYdHNHb05taWZVR0srTWlNMURldFBFUUZDYXROMHZMZGNt?= =?utf-8?B?TG1lQjlXVFpiZnN2bTNtNFNIZ3l6KzhZMWFDcEhMdDhmUWpUMkMwVlhiUUE5?= =?utf-8?B?Z0IxZ29tdmhUNDIzZmRyREpDRDdhWUNNNk1YQW9FVWt5aUp0VG4zZ1Fpc243?= =?utf-8?B?RUE9PQ==?= X-OriginatorOrg: amlogic.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe21672c-f9f6-48ac-32af-08de161261d5 X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB5536.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2025 11:08:54.6541 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0df2add9-25ca-4b3a-acb4-c99ddf0b1114 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PptvYWID1QuFWq6n/PQnMCx3xyCBx1mJamvUK0UOEnel67C39sW93BddHWHzCvN7efaBp+PXIX8rJBKhOQDLYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR03MB7130 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251028_040902_618839_2742F420 X-CRM114-Status: GOOD ( 34.23 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org CuWcqCAyMDI1LzEwLzI3IDIwOjU3LCBDaHJpc3RpYW4gSGV3aXR0IOWGmemBkzoKPiBbY2hyaXN0 aWFuc2hld2l0dEBnbWFpbC5jb20gYXBwZWFycyBzaW1pbGFyIHRvIHNvbWVvbmUgd2hvIHByZXZp b3VzbHkgc2VudCB5b3UgZW1haWwsIGJ1dCBtYXkgbm90IGJlIHRoYXQgcGVyc29uLiBMZWFybiB3 aHkgdGhpcyBjb3VsZCBiZSBhIHJpc2sgYXQgaHR0cHM6Ly9ha2EubXMvTGVhcm5BYm91dFNlbmRl cklkZW50aWZpY2F0aW9uIF0KPgo+IFsgRVhURVJOQUwgRU1BSUwgXQo+Cj4+IE9uIDI3IE9jdCAy MDI1LCBhdCA5OjQy4oCvYW0sIFpoZW50YW8gR3VvIHZpYSBCNCBSZWxheSA8ZGV2bnVsbCt6aGVu dGFvLmd1by5hbWxvZ2ljLmNvbUBrZXJuZWwub3JnPiB3cm90ZToKPj4KPj4gSW50cm9kdWNlIGlu aXRpYWwgZHJpdmVyIHN1cHBvcnQgZm9yIEFtbG9naWMncyBuZXcgdmlkZW8gYWNjZWxlcmF0aW9u Cj4+IGhhcmR3YXJlIGFyY2hpdGVjdHVyZSwgZGVzaWduZWQgZm9yIHZpZGVvIHN0cmVhbSBkZWNv ZGluZy4KPj4KPj4gQ29tcGFyZWQgdG8gdGhlIGN1cnJlbnQgQW1sb2dpYyB2aWRlbyBkZWNvZGVy IGhhcmR3YXJlIGFyY2hpdGVjdHVyZSwKPj4gdGhpcyBuZXcgaW1wbGVtZW50YXRpb24gZWxpbWlu YXRlcyB0aGUgRXNwYXJzZXIgaGFyZHdhcmUgY29tcG9uZW50LAo+PiBlbmFibGluZyBkaXJlY3Qg dmIyIGJ1ZmZlciBpbnB1dC4gVGhlIGRyaXZlciBpcyBkZXNpZ25lZCB0byBzdXBwb3J0Cj4+IHRo ZSBWNEwyIE0yTSBzdGF0ZWxlc3MgZGVjb2RlciBBUEkuIFRoZSBpbml0aWFsIHBoYXNlIGluY2x1 ZGVzIHN1cHBvcnQKPj4gZm9yIEguMjY0IGRlY29kaW5nIG9uIEFtbG9naWMgUzgwNVgyIHBsYXRm b3JtLgo+IEl0IHdvdWxkIGJlIG5pY2UgaWYgeW91IGNhbiBvdXRsaW5lIHRoZSBhZGRpdGlvbmFs IGhhcmR3YXJlIHRoZSBkcml2ZXIKPiBwbGFucyB0byBzdXBwb3J0IHNvIHJldmlld2VycyBoYXZl IHBlcnNwZWN0aXZlIG9uIHdoZXJlIHdlIGFyZSBub3csIGFuZAo+IHdoYXQgbW9yZSBiZSBjb21p bmc/IC0gdGhlIGNvbW11bml0eSB3b3VsZCBhbHNvIGxpa2UgdG8gdW5kZXJzdGFuZCBpZgo+IHRo aXMgZHJpdmVyIHdpbGwgc3VwZXJzZWRlIHRoZSBzdGFsbGVkIGRyaXZlciBhdHRlbXB0IGluIHN0 YWdpbmcuClllcywgd2Ugd2lsbCBmb2xsb3cgQW1sb2dpYydzIG92ZXJhbGwgdXBzdHJlYW0gcHJv Z3Jlc3MgdG8gc3VwcG9ydCBtb3JlIApoYXJkd2FyZQpwbGF0Zm9ybXMgaW4gdGhlIGZ1dHVyZS4g VGhlIG5leHQgc3RlcCB3aWxsIGJlIGFkZGluZyBzdXBwb3J0IGZvciAKQTMxMUQyKFQ3KSBwbGF0 Zm9ybS4KV2UgYWxzbyBwbGFuIHRvIHJlcGxhY2UgdGhlIHN0YWxsZWQgZHJpdmVyIHdpdGggdGhl IG5ldyBzdGF0ZWxlc3MgCmRlY29kZXIgZHJpdmVyLgpUaGUgbmV3IHN0YXRlbGVzcyBkcml2ZXIg aXMgZnVsbHkgY29tcGF0aWJsZSB3aXRoIHRoZSBvbGQgRzEyL1NNMSAKcGxhdGZvcm1zLCBtYWtp bmcKdGhpcyB0cmFuc2l0aW9uIGZlYXNpYmxlLgo+IE5COiBJIGNhbiBvbmx5IGZpbmQgdHdvIFM4 MDVYMiBkZXZpY2VzIHRvIHB1cmNoYXNlIGZvciB0ZXN0aW5nLiBUaGUKPiBmaXJzdCBpcyBhIE1l Y29vbCBLRDUgSERNSSBzdGljaywgYnV0IHRoaXMgaGFzIFdpZGV2aW5lIEwxIGNlcnRzIHNvCj4g d2lsbCBiZSB1bnVzYWJsZSBkdWUgdG8gdmVyaWZpZWQgYm9vdC4gVGhlIHNlY29uZCBpcyBhIG5v LW5hbWUgVFYgYm94Cj4gb24gQWxpZXhwcmVzcyB3aGVyZSB0aGUgYWR2ZXJ0IGNsYWltcyBTODA1 WDIgaW5zaWRlIGJ1dCBhbHNvIHNob3dzIGEKPiBwcm9taW5lbnQgUm9ja2NoaXAgUkszMjI4IGxv Z28gOikgLi4gcGxlYXNlIGFkdmlzZSBvbiBzb21lIGFjY2Vzc2libGUKPiBoYXJkd2FyZSB0aGF0 IGNhbiBiZSB1c2VkIGZvciB2YWxpZGF0aW5nIHRoZSBkcml2ZXIuCkknbSBub3QgZmFtaWxpYXIg d2l0aCB0aGUgdHdvIFM4MDVYMiBkZXZpY2VzIHlvdSBtZW50aW9uZWQuIE1heWJlIHdlIGNhbgpw b3N0IHlvdSBhIFM4MDVYMiByZWZlcmVuY2UgYm9hcmQgZm9yIHRlc3RpbmcuIEkgd2lsbCB0YWxr IHRvIG15IGNvbGxlYWd1ZXMKYWJvdXQgaXQgYW5kIGZvbGxvdyB1cC4KPj4gVGhlIGRyaXZlciBp cyBjYXBhYmxlIG9mOgo+PiAtIFN1cHBvcnRpbmcgc3RhdGVsZXNzIEguMjY0IGRlY29kaW5nIHVw IHRvIGEgcmVzb2x1dGlvbiAxOTIweDEwODgob24gdGhlIFM4MDVYMiBwbGF0Zm9ybSkuCj4gSXQg d291bGQgYmUgZ29vZCB0byBwcm92aWRlIGd1aWRhbmNlIHRvIHJldmlld2VycyBhYm91dCBvdGhl ciBjb2RlY3MKPiB0aGUgZHJpdmVyIHBsYW5zIHRvIHN1cHBvcnQgYW5kIGhvdyAoYXJjaGl0ZWN0 dXJhbGx5KSB0aGUgZHJpdmVyIHdpbGwKPiBiZSBleHBhbmRlZC4gSeKAmW0gYXdhcmUgZHVlIHRv IG9mZi1saXN0IGRpc2N1c3Npb25zLCBidXQgb3RoZXJzIGFyZQo+IG5vdCBhbmQgd2lsbCB3YW50 IHRvIGtub3cuClRoYW5rcyBmb3IgdGhlIHN1Z2dlc3Rpb24uIE91ciByb2FkbWFwIGlzIHRvIGlt cGxlbWVudCBzdXBwb3J0IGZvciBmaXZlCmNvZGVjc+KAlUguMjY0LCBILjI2NSwgVlA5LCBBVjEs IGFuZCBNUEVHLTLigJVpbiBwaGFzZXMuIFRoaXMgcGF0Y2ggaXMgdGhlCmluaXRpYWwgcGhhc2Ug b2YgZGV2ZWxvcG1lbnQsIGluY2x1ZGluZyB0aGUgVjRMMiBpbnRlcmZhY2UgbGF5ZXIgYW5kCnRo ZSBILjI2NCBkcml2ZXIgY29kZS4gVGhlIEguMjY1IGRlY29kZXIgaXMgYWxzbyBpbiBkZXZlbG9w bWVudC4KSSdsbCBhZGQgb3VyIHBsYW4gaW4gdGhlIGNvdmVyLWxldHRlciBvZiB0aGUgbmV4dCB2 ZXJzaW9uICh2MikgcGF0Y2gKc2VyaWVzIHRvIG1ha2UgaXQgY2xlYXIgZm9yIHRoZSBrZXJuZWwg cmV2aWV3ZXJzLgo+PiAtIFN1cHBvcnRpbmcgSS9QL0IgZnJhbWUgaGFuZGxpbmcuCj4+IC0gU3Vw cG9ydGluZyB2YjIgbW1hcCBhbmQgZG1hLWJ1ZiBtb2Rlcy4KPj4gLSBTdXBwb3J0aW5nIGZyYW1l LWJhc2VkIGRlY29kZSBtb2RlLiAoTm90ZSB0aGF0IHNvbWUgSC4yNjQgYml0c3RyZWFtcyByZXF1 aXJlCj4+ICAgRFBCIHJlb3JkZXJpbmcgdG8gZ2VuZXJhdGUgcmVmZXJlbmNlIGxpc3RzLCB0aGUg c3RhdGVsZXNzIGRlY29kZXIgZHJpdmVyCj4+ICAgY2Fubm90IGFjY2VzcyByZW9yZGVyZWQgcmVm ZXJlbmNlIGxpc3RzIGluIHRoaXMgbW9kZSwgcmVxdWlyaW5nIHRoZSBkcml2ZXIKPj4gICB0byBw ZXJmb3JtIHJlZmVyZW5jZSBsaXN0IHJlb3JkZXJpbmcgaXRzZWxmKQo+PiAtIFN1cHBvcnRpbmcg TlYxMi9OVjIxIG91dHB1dC4KPj4gLSBTdXBwb3J0aW5nIEFubmV4IEIgc3RhcnQgY29kZXMuCj4+ Cj4+IFRoaXMgZHJpdmVyIGlzIHRlc3RlZCB3aXRoIEdzdHJlYW1lci4KPj4gRXhhbXBsZToKPj4g Z3N0LWxhdW5jaC0xLjAgZmlsZXNyYyBsb2NhdGlvbj0vdG1wL3ZpZGVvXzY0MHgzNjBfbXA0X2hl dmNfNDUwa2Jwc19ub19iLm1wNCAhCj4+IHBhcnNlYmluICEgdjRsMnNsaDI2NGRlYyAhIGZpbGVz aW5rIGxvY2F0aW9uPS90bXAvb3V0cHV0Lnl1dgo+IElzIHRoaXMgdXBzdHJlYW0gZ3N0cmVhbWVy PyBpZiB5ZXMgd2hpY2ggdmVyc2lvbj8gSWYgbm8sIHdoZXJlIGNhbgo+IHdlIG9idGFpbiBzb3Vy Y2VzIGZvciB0ZXN0aW5nLiBIYXMgZmZtcGVnIGJlZW4gdGVzdGVkPyAtIHRoZSBzYW1lCj4gcXVl c3Rpb25zIGFwcGx5LgpUaGUgdmVyc2lvbiBpcyBHc3RyZWFtZXIgMS4yNCwgSSBkb3dubG9hZGVk IHRoZSBzb3VyY2UgY29kZSBmcm9tIHRoZSAKb2ZmaWNpYWwKd2Vic2l0ZTogaHR0cHM6Ly9nc3Ry ZWFtZXIuZnJlZWRlc2t0b3Aub3JnLy4KRkZtcGVnIGhhc24ndCBiZWVuIHRlc3RlZCB5ZXQuIFdl IHdpbGwgYWxzbyB0cnkgdG8gdGVzdCB0aGUgZHJpdmVyIHdpdGggCmZmbXBlZy4KPj4gVGhlIGRy aXZlciBwYXNzZXMgdjRsMiBjb21wbGlhbmNlIHRlc3QsIHRlc3QgcmVwb3J0cyA6Cj4+IHY0bDIt Y29tcGxpYW5jZSAxLjMwLjEsIDY0IGJpdHMsIDY0LWJpdCB0aW1lX3QKPj4KPj4gQ29tcGxpYW5j ZSB0ZXN0IGZvciBhbWwtdmRlYy1kcnYgZGV2aWNlIC9kZXYvdmlkZW8wOgo+Pgo+PiBEcml2ZXIg SW5mbzoKPj4gICAgICAgICBEcml2ZXIgbmFtZSAgICAgIDogYW1sLXZkZWMtZHJ2Cj4+ICAgICAg ICAgQ2FyZCB0eXBlICAgICAgICA6IHBsYXRmb3JtOmFtbC12ZGVjLWRydgo+PiAgICAgICAgIEJ1 cyBpbmZvICAgICAgICAgOiBwbGF0Zm9ybTpmZTMyMDAwMC52aWRlby1jb2RlYwo+PiAgICAgICAg IERyaXZlciB2ZXJzaW9uICAgOiA2LjE2LjAKPiBJdCB3b3VsZCBiZSBwcmVmZXJhYmxlIHRvIHRl c3QgdGhlIG5leHQgaXRlcmF0aW9uIG9mIHBhdGNoZXMgb24KPiB0aGUgbGF0ZXN0IGtlcm5lbCBy ZWxlYXNlLCBlLmcuIDYuMTgtcmMsIG9yIHJlY2VudCBtZWRpYSB0cmVlIG9yCj4gcGVyaGFwcyBk cm0tdGlwIHNvdXJjZS4KVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbiwgd2Ugd2lsbCBkbyB0aGUg Y29tcGxpYW5jZSB0ZXN0IG9uIGtlcm5lbAo2LjE4IGFuZCBwb3N0IHRoZSByZXN1bHQgb2YgdGhl IG5leHQgdmVyc2lvbih2MikgcGF0Y2ggc2VyaWVzLgo+PiAgICAgICAgIENhcGFiaWxpdGllcyAg ICAgOiAweDg0MjA0MDAwCj4+ICAgICAgICAgICAgICAgICBWaWRlbyBNZW1vcnktdG8tTWVtb3J5 IE11bHRpcGxhbmFyCj4+ICAgICAgICAgICAgICAgICBTdHJlYW1pbmcKPj4gICAgICAgICAgICAg ICAgIEV4dGVuZGVkIFBpeCBGb3JtYXQKPj4gICAgICAgICAgICAgICAgIERldmljZSBDYXBhYmls aXRpZXMKPj4gICAgICAgICBEZXZpY2UgQ2FwcyAgICAgIDogMHgwNDIwNDAwMAo+PiAgICAgICAg ICAgICAgICAgVmlkZW8gTWVtb3J5LXRvLU1lbW9yeSBNdWx0aXBsYW5hcgo+PiAgICAgICAgICAg ICAgICAgU3RyZWFtaW5nCj4+ICAgICAgICAgICAgICAgICBFeHRlbmRlZCBQaXggRm9ybWF0Cj4+ ICAgICAgICAgRGV0ZWN0ZWQgU3RhdGVsZXNzIERlY29kZXIKPj4gTWVkaWEgRHJpdmVyIEluZm86 Cj4+ICAgICAgICAgRHJpdmVyIG5hbWUgICAgICA6IGFtbC12ZGVjLWRydgo+PiAgICAgICAgIE1v ZGVsICAgICAgICAgICAgOiBhbWwtdmRlYy1kcnYKPj4gICAgICAgICBTZXJpYWwgICAgICAgICAg IDoKPj4gICAgICAgICBCdXMgaW5mbyAgICAgICAgIDogcGxhdGZvcm06ZmUzMjAwMDAudmlkZW8t Y29kZWMKPj4gICAgICAgICBNZWRpYSB2ZXJzaW9uICAgIDogNi4xNi4wCj4+ICAgICAgICAgSGFy ZHdhcmUgcmV2aXNpb246IDB4MDAwMDAwMDAgKDApCj4+ICAgICAgICAgRHJpdmVyIHZlcnNpb24g ICA6IDYuMTYuMAo+PiBJbnRlcmZhY2UgSW5mbzoKPj4gICAgICAgICBJRCAgICAgICAgICAgICAg IDogMHgwMzAwMDAwYwo+PiAgICAgICAgIFR5cGUgICAgICAgICAgICAgOiBWNEwgVmlkZW8KPj4g RW50aXR5IEluZm86Cj4+ICAgICAgICAgSUQgICAgICAgICAgICAgICA6IDB4MDAwMDAwMDEgKDEp Cj4+ICAgICAgICAgTmFtZSAgICAgICAgICAgICA6IGFtbF9kZXZfZHJ2LXNvdXJjZQo+PiAgICAg ICAgIEZ1bmN0aW9uICAgICAgICAgOiBWNEwyIEkvTwo+PiAgICAgICAgIFBhZCAweDAxMDAwMDAy ICAgOiAwOiBTb3VyY2UKPj4gICAgICAgICAgIExpbmsgMHgwMjAwMDAwODogdG8gcmVtb3RlIHBh ZCAweDEwMDAwMDQgb2YgZW50aXR5ICdhbWxfZGV2X2Rydi1wcm9jJyAoVmlkZW8gRGVjb2Rlcik6 IERhdGEsIEVuYWJsZWQsIEltbXV0YWJsZQo+Pgo+PiBSZXF1aXJlZCBpb2N0bHM6Cj4+ICAgICAg ICAgdGVzdCBNQyBpbmZvcm1hdGlvbiAoc2VlICdNZWRpYSBEcml2ZXIgSW5mbycgYWJvdmUpOiBP Swo+PiAgICAgICAgIHRlc3QgVklESU9DX1FVRVJZQ0FQOiBPSwo+PiAgICAgICAgIHRlc3QgaW52 YWxpZCBpb2N0bHM6IE9LCj4+Cj4+IEFsbG93IGZvciBtdWx0aXBsZSBvcGVuczoKPj4gICAgICAg ICB0ZXN0IHNlY29uZCAvZGV2L3ZpZGVvMCBvcGVuOiBPSwo+PiAgICAgICAgIHRlc3QgVklESU9D X1FVRVJZQ0FQOiBPSwo+PiAgICAgICAgIHRlc3QgVklESU9DX0cvU19QUklPUklUWTogT0sKPj4g ICAgICAgICB0ZXN0IGZvciB1bmxpbWl0ZWQgb3BlbnM6IE9LCj4+Cj4+IERlYnVnIGlvY3RsczoK Pj4gICAgICAgICB0ZXN0IFZJRElPQ19EQkdfRy9TX1JFR0lTVEVSOiBPSyAoTm90IFN1cHBvcnRl ZCkKPj4gICAgICAgICB0ZXN0IFZJRElPQ19MT0dfU1RBVFVTOiBPSyAoTm90IFN1cHBvcnRlZCkK Pj4KPj4gSW5wdXQgaW9jdGxzOgo+PiAgICAgICAgIHRlc3QgVklESU9DX0cvU19UVU5FUi9FTlVN X0ZSRVFfQkFORFM6IE9LIChOb3QgU3VwcG9ydGVkKQo+PiAgICAgICAgIHRlc3QgVklESU9DX0cv U19GUkVRVUVOQ1k6IE9LIChOb3QgU3VwcG9ydGVkKQo+PiAgICAgICAgIHRlc3QgVklESU9DX1Nf SFdfRlJFUV9TRUVLOiBPSyAoTm90IFN1cHBvcnRlZCkKPj4gICAgICAgICB0ZXN0IFZJRElPQ19F TlVNQVVESU86IE9LIChOb3QgU3VwcG9ydGVkKQo+PiAgICAgICAgIHRlc3QgVklESU9DX0cvUy9F TlVNSU5QVVQ6IE9LIChOb3QgU3VwcG9ydGVkKQo+PiAgICAgICAgIHRlc3QgVklESU9DX0cvU19B VURJTzogT0sgKE5vdCBTdXBwb3J0ZWQpCj4+ICAgICAgICAgSW5wdXRzOiAwIEF1ZGlvIElucHV0 czogMCBUdW5lcnM6IDAKPj4KPj4gT3V0cHV0IGlvY3RsczoKPj4gICAgICAgICB0ZXN0IFZJRElP Q19HL1NfTU9EVUxBVE9SOiBPSyAoTm90IFN1cHBvcnRlZCkKPj4gICAgICAgICB0ZXN0IFZJRElP Q19HL1NfRlJFUVVFTkNZOiBPSyAoTm90IFN1cHBvcnRlZCkKPj4gICAgICAgICB0ZXN0IFZJRElP Q19FTlVNQVVET1VUOiBPSyAoTm90IFN1cHBvcnRlZCkKPj4gICAgICAgICB0ZXN0IFZJRElPQ19H L1MvRU5VTU9VVFBVVDogT0sgKE5vdCBTdXBwb3J0ZWQpCj4+ICAgICAgICAgdGVzdCBWSURJT0Nf Ry9TX0FVRE9VVDogT0sgKE5vdCBTdXBwb3J0ZWQpCj4+ICAgICAgICAgT3V0cHV0czogMCBBdWRp byBPdXRwdXRzOiAwIE1vZHVsYXRvcnM6IDAKPj4KPj4gSW5wdXQvT3V0cHV0IGNvbmZpZ3VyYXRp b24gaW9jdGxzOgo+PiAgICAgICAgIHRlc3QgVklESU9DX0VOVU0vRy9TL1FVRVJZX1NURDogT0sg KE5vdCBTdXBwb3J0ZWQpCj4+ICAgICAgICAgdGVzdCBWSURJT0NfRU5VTS9HL1MvUVVFUllfRFZf VElNSU5HUzogT0sgKE5vdCBTdXBwb3J0ZWQpCj4+ICAgICAgICAgdGVzdCBWSURJT0NfRFZfVElN SU5HU19DQVA6IE9LIChOb3QgU3VwcG9ydGVkKQo+PiAgICAgICAgIHRlc3QgVklESU9DX0cvU19F RElEOiBPSyAoTm90IFN1cHBvcnRlZCkKPj4KPj4gQ29udHJvbCBpb2N0bHM6Cj4+ICAgICAgICAg dGVzdCBWSURJT0NfUVVFUllfRVhUX0NUUkwvUVVFUllNRU5VOiBPSwo+PiAgICAgICAgIHRlc3Qg VklESU9DX1FVRVJZQ1RSTDogT0sKPj4gICAgICAgICB0ZXN0IFZJRElPQ19HL1NfQ1RSTDogT0sK Pj4gICAgICAgICB0ZXN0IFZJRElPQ19HL1MvVFJZX0VYVF9DVFJMUzogT0sKPj4gICAgICAgICB0 ZXN0IFZJRElPQ18oVU4pU1VCU0NSSUJFX0VWRU5UL0RRRVZFTlQ6IE9LCj4+ICAgICAgICAgdGVz dCBWSURJT0NfRy9TX0pQRUdDT01QOiBPSyAoTm90IFN1cHBvcnRlZCkKPj4gICAgICAgICBTdGFu ZGFyZCBDb250cm9sczogNiBQcml2YXRlIENvbnRyb2xzOiAwCj4+ICAgICAgICAgU3RhbmRhcmQg Q29tcG91bmQgQ29udHJvbHM6IDQgUHJpdmF0ZSBDb21wb3VuZCBDb250cm9sczogMAo+Pgo+PiBG b3JtYXQgaW9jdGxzOgo+PiAgICAgICAgIHRlc3QgVklESU9DX0VOVU1fRk1UL0ZSQU1FU0laRVMv RlJBTUVJTlRFUlZBTFM6IE9LCj4+ICAgICAgICAgdGVzdCBWSURJT0NfRy9TX1BBUk06IE9LIChO b3QgU3VwcG9ydGVkKQo+PiAgICAgICAgIHRlc3QgVklESU9DX0dfRkJVRjogT0sgKE5vdCBTdXBw b3J0ZWQpCj4+ICAgICAgICAgdGVzdCBWSURJT0NfR19GTVQ6IE9LCj4+ICAgICAgICAgdGVzdCBW SURJT0NfVFJZX0ZNVDogT0sKPj4gICAgICAgICB0ZXN0IFZJRElPQ19TX0ZNVDogT0sKPj4gICAg ICAgICB0ZXN0IFZJRElPQ19HX1NMSUNFRF9WQklfQ0FQOiBPSyAoTm90IFN1cHBvcnRlZCkKPj4g ICAgICAgICB0ZXN0IENyb3BwaW5nOiBPSyAoTm90IFN1cHBvcnRlZCkKPj4gICAgICAgICB0ZXN0 IENvbXBvc2luZzogT0sgKE5vdCBTdXBwb3J0ZWQpCj4+ICAgICAgICAgdGVzdCBTY2FsaW5nOiBP SyAoTm90IFN1cHBvcnRlZCkKPj4KPj4gQ29kZWMgaW9jdGxzOgo+PiAgICAgICAgIHRlc3QgVklE SU9DXyhUUllfKUVOQ09ERVJfQ01EOiBPSyAoTm90IFN1cHBvcnRlZCkKPj4gICAgICAgICB0ZXN0 IFZJRElPQ19HX0VOQ19JTkRFWDogT0sgKE5vdCBTdXBwb3J0ZWQpCj4+ICAgICAgICAgdGVzdCBW SURJT0NfKFRSWV8pREVDT0RFUl9DTUQ6IE9LCj4+Cj4+IEJ1ZmZlciBpb2N0bHM6Cj4+ICAgICAg ICAgdGVzdCBWSURJT0NfUkVRQlVGUy9DUkVBVEVfQlVGUy9RVUVSWUJVRjogT0sKPj4gICAgICAg ICB0ZXN0IENSRUFURV9CVUZTIG1heGltdW0gYnVmZmVyczogT0sKPj4gICAgICAgICB0ZXN0IFZJ RElPQ19SRU1PVkVfQlVGUzogT0sKPj4gICAgICAgICB0ZXN0IFZJRElPQ19FWFBCVUY6IE9LCj4+ ICAgICAgICAgdGVzdCBSZXF1ZXN0czogT0sKPj4gICAgICAgICB0ZXN0IGJsb2NraW5nIHdhaXQ6 IE9LCj4+Cj4+IFRvdGFsIGZvciBhbWwtdmRlYy1kcnYgZGV2aWNlIC9kZXYvdmlkZW8wOiA0OSwg U3VjY2VlZGVkOiA0OSwgRmFpbGVkOiAwLCBXYXJuaW5nczogMAo+Pgo+PiBTb21lIEZsdXN0ZXIg dGVzdCBjYXNlcyBhcmUgc3RpbGwgZmFpbGluZy4gV2Ugd2lsbCBwdWJsaXNoIHRoZSBmaW5hbCBy ZXN1bHRzCj4+IG9uY2UgYWxsIHRoZXNlIEZsdXN0ZXIgdGVzdCBmYWlsdXJlcyBoYXZlIGJlZW4g cmVzb2x2ZWQuCj4gSU1ITyBnb29kIGRyaXZlcnMgdGhhdCBtZXJnZSBxdWlja2x5IGhhdmUgbW9y ZSBtZXJpdCB0aGFuIHBlcmZlY3QKPiBkcml2ZXJzIHRoYXQgdGFrZSBmb3JldmVyLiBObyBkcml2 ZXIgcGFzc2VzIGFsbCBmbHVzdGVyIHRlc3RzLiBJZgo+IHlvdSBzaGFyZSB0aGUgcmVzdWx0cywg cGVvcGxlIGNhbiBhZHZpc2Ugd2hldGhlciB0aGUgZmFpbHVyZXMgYXJlCj4gbm9ybWFsLCBzb21l dGhpbmcgdGhhdCBtdXN0IGJlIGltcHJvdmVkLCBvciBzb21ldGhpbmcgdGhhdCBjYW4gYmUKPiBp bXByb3ZlZCB3aXRoIHRpbWUuClRoYW5rcy4gV2UgaGF2ZSBub3cgdGVzdGVkIHRoZSBKVlQtQVZD X1YxLgpSZXN1bHQ6ClJhbiA1NC8xMzUgdGVzdHMgc3VjY2Vzc2Z1bGx5CgotIDUyIHRlc3QgdmVj dG9ycyBmYWlsZWQgZHVlIHRvIGludGVybGFjZWQgb3IgbWJhZmYgY2xpcHM6IFRoZSBBbWxvZ2lj IApzdGF0ZWxlc3MKIMKgIGRlY29kZXIgZHJpdmVyIG9ubHkgc3VwcG9ydCBiaXRzdHJlYW1zIHdp dGggZnJhbWVfbWJzX29ubHlfZmxhZ3MgPT0gMS4KIMKgIFRlc3QgVmVjdG9yczoKIMKgIMKgIMKg IMKgIGNhYmFjX21vdF9mbGQwX2Z1bGwKIMKgIMKgIMKgIMKgIGNhYmFjX21vdF9tYmFmZjBfZnVs bAogwqAgwqAgwqAgwqAgY2FiYWNfbW90X3BpY2FmZjBfZnVsbAogwqAgwqAgwqAgwqAgQ0FCUkVG M19TYW5kX0QKIMKgIMKgIMKgIMKgIENBRkkxX1NWQV9DCiDCoCDCoCDCoCDCoCBDQU1BMV9Tb255 X0MKIMKgIMKgIMKgIMKgIENBTUExX1RPU0hJQkFfQgogwqAgwqAgwqAgwqAgY2FtYTFfdnRjX2MK IMKgIMKgIMKgIMKgIGNhbWEyX3Z0Y19iCiDCoCDCoCDCoCDCoCBDQU1BM19TYW5kX0UKIMKgIMKg IMKgIMKgIGNhbWEzX3Z0Y19iCiDCoCDCoCDCoCDCoCBDQU1BQ0kzX1NvbnlfQwogwqAgwqAgwqAg wqAgQ0FNQU5MMV9UT1NISUJBX0IKIMKgIMKgIMKgIMKgIENBTUFOTDJfVE9TSElCQV9CCiDCoCDC oCDCoCDCoCBDQU1BTkwzX1NhbmRfRQogwqAgwqAgwqAgwqAgQ0FNQVNMM19Tb255X0IKIMKgIMKg IMKgIMKgIENBTVBfTU9UX01CQUZGX0wzMAogwqAgwqAgwqAgwqAgQ0FNUF9NT1RfTUJBRkZfTDMx CiDCoCDCoCDCoCDCoCBDQU5MTUEyX1NvbnlfQwogwqAgwqAgwqAgwqAgQ0FOTE1BM19Tb255X0MK IMKgIMKgIMKgIMKgIENBUEExX1RPU0hJQkFfQgogwqAgwqAgwqAgwqAgQ0FQQU1BM19TYW5kX0YK IMKgIMKgIMKgIMKgIGNhdmxjX21vdF9mbGQwX2Z1bGxfQgogwqAgwqAgwqAgwqAgY2F2bGNfbW90 X21iYWZmMF9mdWxsX0IKIMKgIMKgIMKgIMKgIGNhdmxjX21vdF9waWNhZmYwX2Z1bGxfQgogwqAg wqAgwqAgwqAgQ1ZDQU5MTUEyX1NvbnlfQwogwqAgwqAgwqAgwqAgQ1ZGSTFfU29ueV9ECiDCoCDC oCDCoCDCoCBDVkZJMV9TVkFfQwogwqAgwqAgwqAgwqAgQ1ZGSTJfU29ueV9ICiDCoCDCoCDCoCDC oCBDVkZJMl9TVkFfQwogwqAgwqAgwqAgwqAgQ1ZNQTFfU29ueV9ECiDCoCDCoCDCoCDCoCBDVk1B MV9UT1NISUJBX0IKIMKgIMKgIMKgIMKgIENWTUFOTDFfVE9TSElCQV9CCiDCoCDCoCDCoCDCoCBD Vk1BTkwyX1RPU0hJQkFfQgogwqAgwqAgwqAgwqAgQ1ZNQVBBUVAzX1NvbnlfRQogwqAgwqAgwqAg wqAgQ1ZNQVFQMl9Tb255X0cKIMKgIMKgIMKgIMKgIENWTUFRUDNfU29ueV9ECiDCoCDCoCDCoCDC oCBDVk1QX01PVF9GTERfTDMwX0IKIMKgIMKgIMKgIMKgIENWTkxGSTFfU29ueV9DCiDCoCDCoCDC oCDCoCBDVk5MRkkyX1NvbnlfSAogwqAgwqAgwqAgwqAgQ1ZQQTFfVE9TSElCQV9CCiDCoCDCoCDC oCDCoCBGSTFfU29ueV9FCiDCoCDCoCDCoCDCoCBNUjZfQlRfQgogwqAgwqAgwqAgwqAgTVI3X0JU X0IKIMKgIMKgIMKgIMKgIE1SOF9CVF9CCiDCoCDCoCDCoCDCoCBNUjlfQlRfQgogwqAgwqAgwqAg wqAgU2hhcnBfTVBfRmllbGRfMV9CCiDCoCDCoCDCoCDCoCBTaGFycF9NUF9GaWVsZF8yX0IKIMKg IMKgIMKgIMKgIFNoYXJwX01QX0ZpZWxkXzNfQgogwqAgwqAgwqAgwqAgU2hhcnBfTVBfUEFGRl8x cjIKIMKgIMKgIMKgIMKgIFNoYXJwX01QX1BBRkZfMnIKIMKgIMKgIMKgIMKgIENWTVBfTU9UX0ZS TV9MMzFfQgotIDMgdGVzdCB2ZWN0b3JzIGZhaWxlZCBkdWUgdG8gdW5zdXBwb3J0ZWQgYml0c3Ry ZWFtLgogwqAgbnVtX3NsaWNlX2dyb3VwX21pbnVzMSBncmVhdGVyIHRoYW4gemVybyBpcyBub3Qg c3VwcG9ydGVkIGJ5IHRoZQogwqAgaGFyZHdhcmUuCiDCoCBUZXN0IFZlY3RvcnM6CiDCoCDCoCDC oCDCoCBGTTFfQlRfQgogwqAgwqAgwqAgwqAgRk0xX0ZUX0UKIMKgIMKgIMKgIMKgIEZNMl9TVkFf QwotIDIgdGVzdCB2ZWN0b3JzIGZhaWxlZCBiZWNhdXNlIFNQX1NMSUNFIHR5cGUgaXMgbm90IHN1 cHBvcnRlZCBieSB0aGUKIMKgIGhhcmR3YXJlLgogwqAgVGVzdCBWZWN0b3JzOgogwqAgwqAgwqAg wqAgU1AxX0JUX0EKIMKgIMKgIMKgIMKgIHNwMl9idF9iCldlIGFyZSB3b3JraW5nIHdpdGggdGhl IHJlbWFpbiBmYWlsdXJlcywgd2UgdGhpbmsgdGhhdCB0aGVzZSBmYWlsIGNhc2VzCm11c3QgYmUg cmVzb2x2ZWQuCj4+IFNpZ25lZC1vZmYtYnk6IFpoZW50YW8gR3VvIDx6aGVudGFvLmd1b0BhbWxv Z2ljLmNvbT4KPj4gLS0tCj4+IFpoZW50YW8gR3VvICgzKToKPj4gICAgICAgZHQtYmluZGluZ3M6 IHZkZWM6IEFkZCBiaW5kaW5nIGRvY3VtZW50IG9mIEFtbG9naWMgZGVjb2RlciBhY2NlbGVyYXRv cgo+PiAgICAgICBkdHM6IGRlY29kZXI6IFN1cHBvcnQgVjRMMiBzdGF0ZWxlc3MgZGVjb2RlciBk dCBub2RlIGZvciBTNAo+PiAgICAgICBkZWNvZGVyOiBBZGQgVjRMMiBzdGF0ZWxlc3MgSC4yNjQg ZGVjb2RlciBkcml2ZXIKPiBOb25lIG9mIHRoZSBwYXRjaCBzdWJqZWN0IGxpbmVzIGFyZSBmb2xs b3dpbmcgdGhlIG5hbWluZyBmb3JtYXRzCj4gdXNlZCBmb3IgdGhlIHN1YnN5c3RlbXMuIFBhdGNo IG9yZGVyIGlzIGFsc28gaW1wb3J0YW50LiBCaW5kaW5ncwo+IGdvIGZpcnN0LCBkZXZpY2UtdHJl ZSBjaGFuZ2VzIHRvIGV4cG9zZSBzdXBwb3J0IG5vcm1hbGx5IGdvIGxhc3QuCj4gRXhwZWN0IG1h aW50YWluZXIgY29tcGxhaW50cyBhYm91dCBub3QgcmVhZGluZyBrZXJuZWwgZXRpcXVldHRlCj4g cnVsZXMgYmVmb3JlIHN1Ym1pdHRpbmcuClRoYW5rcyBmb3IgdGhlIHJlbWluZGVyLiBJIHdpbGwg cmViYXNlIHRoZSBwYXRjaGVzIGluIGNvcnJlY3Qgb3JkZXIKYW5kIHJldmlzZSB0aGUgc3ViamVj dCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmljYXRpb25zLgo+PiAuLi4vYmluZGluZ3MvbWVkaWEv YW1sb2dpYyx2Y29kZWMtZGVjLnlhbWwgICAgICAgICB8ICAgOTYgKysKPj4gTUFJTlRBSU5FUlMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsKPj4gYXJjaC9h cm02NC9ib290L2R0cy9hbWxvZ2ljL21lc29uLXM0LmR0c2kgICAgICAgICAgfCAgIDI0ICsKPj4g ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL0tjb25maWcgICAgICAgICAgICAgfCAgICAy ICsKPj4gZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL01ha2VmaWxlICAgICAgICAgICAg fCAgICAxICsKPj4gZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL3ZkZWMvS2NvbmZpZyAg ICAgICAgfCAgIDE1ICsKPj4gZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL3ZkZWMvTWFr ZWZpbGUgICAgICAgfCAgICA0ICsKPj4gZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL3Zk ZWMvYW1sX3ZkZWMuYyAgICAgfCAgNzU5ICsrKysrKysrKwo+PiBkcml2ZXJzL21lZGlhL3BsYXRm b3JtL2FtbG9naWMvdmRlYy9hbWxfdmRlYy5oICAgICB8ICAgMzEgKwo+PiAuLi4vcGxhdGZvcm0v YW1sb2dpYy92ZGVjL2FtbF92ZGVjX2NhbnZhc191dGlscy5jICB8ICAxNTQgKysKPj4gLi4uL3Bs YXRmb3JtL2FtbG9naWMvdmRlYy9hbWxfdmRlY19jYW52YXNfdXRpbHMuaCAgfCAgIDIyICsKPj4g ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL3ZkZWMvYW1sX3ZkZWNfZHJ2LmMgfCAgMjYz ICsrKwo+PiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9naWMvdmRlYy9hbWxfdmRlY19kcnYu aCB8ICAxOTQgKysrCj4+IGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1sb2dpYy92ZGVjL2FtbF92 ZGVjX2h3LmMgIHwgIDY1MiArKysrKysrCj4+IGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1sb2dp Yy92ZGVjL2FtbF92ZGVjX2h3LmggIHwgIDE4MiArKwo+PiAuLi4vcGxhdGZvcm0vYW1sb2dpYy92 ZGVjL2FtbF92ZGVjX3BsYXRmb3JtLmMgICAgICB8ICAgMzcgKwo+PiAuLi4vcGxhdGZvcm0vYW1s b2dpYy92ZGVjL2FtbF92ZGVjX3BsYXRmb3JtLmggICAgICB8ICAgNjIgKwo+PiBkcml2ZXJzL21l ZGlhL3BsYXRmb3JtL2FtbG9naWMvdmRlYy9oMjY0LmMgICAgICAgICB8IDE3OTAgKysrKysrKysr KysrKysrKysrKysKPj4gZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL3ZkZWMvaDI2NC5o ICAgICAgICAgfCAgMzAwICsrKysKPj4gZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL3Zk ZWMvcmVnX2RlZmluZXMuaCAgfCAgMTc1ICsrCj4+IDIwIGZpbGVzIGNoYW5nZWQsIDQ3NzAgaW5z ZXJ0aW9ucygrKQo+IFRoZSBkcml2ZXIgcmVxdWlyZXMgY2xvc2VkLXNvdXJjZSBmaXJtd2FyZSBi bG9icyAoc2FkbHkpIGZvciBlYWNoCj4gY29kZWMgYW5kIGhhcmR3YXJlIHRhcmdldC4gV2lsbCB0 aGF0IGNoYW5nZSBpbiBmdXR1cmUgaXRlcmF0aW9ucz8KPiBJZiBub3QsIHRoZSBmaXJtd2FyZSBi bG9icyBhcmUgbm90IHByb3ZpZGVkIGhlcmUgc28gaXQgd291bGQgYmUKPiB1c2VmdWwgaWYgeW91 IGNvdWxkIHByb3ZpZGUgYSBwdWJsaWMgc291cmNlIGZvciB0aGVtLiBUaGVyZSBhcmUKPiBrbm93 biBGT1NTIHRvb2xzIGZvciBleHRyYWN0aW5nIGZpbGVzIGZyb20gdGhlIEFuZHJvaWQgdWNvZGUg YmxvYgo+IGJ1dCB0ZXN0aW5nIHByZXN1bWFibHkgbmVlZHMgYSBzcGVjaWZpYyBibG9iIHZlcnNp b24/Clllcywgd2UgcGxhbiB0byBhZGRyZXNzIHRoaXMgaW4gZnV0dXJlIGl0ZXJhdGlvbnMuIFdl IGludGVuZMKgIHRvIHBhY2sKdGhlIGZpcm13YXJlIGJsb2JzIGZvciBhbGwgY29kZWNzIHRvZ2V0 aGVyIGJ1dCB0aGV5IHdpbGwgc3RpbGwgcmVtYWluCmNhdGVnb3JpemVkIGJ5IGRpZmZlcmVudCBo YXJkd2FyZSBwbGF0Zm9ybXMgc2luZSB3ZSB3YW50IHRvIGF2b2lkIG1ha2luZwp0aGUgZmlybXdh cmUgcGFja2FnZSBleGNlc3NpdmVseSBsYXJnZS4gVGhlIGNsb3NlZC1zb3VyY2UgZmlybXdhcmUg d2lsbCBiZQp1cGxvYWRlZCB0byB0aGUgZmlybXdhcmUgcmVwbzoKaHR0cHM6Ly9naXQua2VybmVs Lm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZmlybXdhcmUvbGludXgtZmlybXdhcmUuZ2l0 LgpJIHdpbGwgc2hhcmUgdGhlIGNvbW1pdCBsaW5rIG9uY2UgdGhlIHVwbG9hZCBpcyBjb21wbGV0 ZWQuCj4gTW9zdCBtYWludGFpbmVycyBhbHNvIHByZWZlciBhIGNvbXBsZXggZHJpdmVyIHRvIGJl IHN1Ym1pdHRlZCBpbiBhCj4gc2VyaWVzIG9mIHBhdGNoZXMgdGhhdCBicmVhayB0aGUgZHJpdmVy IHVwIGludG8gbG9naWNhbCBhbmQgZWFzaWVyCj4gdG8tcmV2aWV3IHBpZWNlcy4gTGFyZ2UgdWJl ci1wYXRjaGVzIGFyZSBoYXJkZXIgdG8gZGlnZXN0IGFuZCBhcmUKPiBsaWtlbHkgdG8gdGFrZSBt dWNoIGxvbmdlciB0byByZXZpZXcsIGFuZCBtb3JlIGVmZm9ydCBmb3IgZXZlcnlvbmUKPiB0byB0 cmFjayBmZWVkYmFjayBvbiBvdmVyIHRpbWUuClRoYW5rcyBmb3IgcmVtaW5kZXIuIEkgYWRtaXR0 ZWRseSBvdmVybG9va2VkIHRoZXNlIGNvbnNpZGVyYXRpb25zLgpUaGUgbmV4dCB2ZXJzaW9uIG9m IHRoZSBwYXRjaCBzZXJpZXMgd2lsbCBiZSBpbXByb3ZlZCBhY2NvcmRpbmdseS4KPiAqKioKPgo+ IE5COiBUaGUgZmFjdCB0aGlzIGRyaXZlciBpcyBiZWluZyBzdWJtaXR0ZWQsIGlzIHN0aWxsIGEg cG9zaXRpdmUKPiBhbmQgd2VsY29tZWQgc3RlcCB0b3dhcmRzIGJldHRlciB1cHN0cmVhbSBBbWxv Z2ljIHN1cHBvcnQgYW5kIGl04oCZcwo+IGdyZWF0IHRvIHNlZSEgSSB3b3VsZCBlbmNvdXJhZ2Ug eW91IGFuZCBjb2xsZWFndWVzIHRvIGVzdGFibGlzaCBhCj4gcHVibGljIHdvcmtpbmcgc3BhY2Ug dG8gc2hhcmUgY29kZSBhbmQgdG9vbHMgc28gdGhlIGNvbW11bml0eSBjYW4KPiBkaXJlY3RseSBl bmdhZ2UgYW5kIHN1cHBvcnQgZHJpdmVyIHRlc3RpbmcgYW5kIGRldmVsb3BtZW50LgpZZXMsIHdl IHdpbGwgdGFrZSB0aGlzIGludG8gY29uc2lkZXJhdGlvbi4gVGhhbmtzIGFnYWluIGZvciBhbGwg eW91cgpzdWdnZXN0aW9ucyBhYm92ZSwgd2UgbG9vayBmb3J3YXJkIHRvIGNvb3BlcmF0ZSB3aXRo IGNvbW11bml0eS4KPgo+IENocmlzdGlhbgpCZXN0IFJlZ3JhZHMKWmhlbnRhbwoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFtbG9naWMgbWFp bGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFtbG9naWMK