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 alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (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 1499EC77B72 for ; Thu, 20 Apr 2023 07:47:38 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 127DCEE0; Thu, 20 Apr 2023 09:46:46 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 127DCEE0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1681976856; bh=kx/nqK0Ha4fw5JMHBt3wdr7yj0JDUzek9mDli6GIEm8=; h=From:To:Subject:Date:References:In-Reply-To:CC:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=bSltFK+7V7m7i2Rj6EpbwGZEImHD4ftzxRAY5Ito/4pBvjy9hWUS9j1bzu9miHXDI U8qx8v/sWoVjZby84kiCWZcF/wY5y5N8/EgDqyGmoGlYyil7hU4bTi4XbkIHVxMbUC M75wm61iIv3UGak2Z6qJWDGejOfhHG0WtkEA88Yw= Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id C13DCF80155; Thu, 20 Apr 2023 09:46:20 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 855C4F80155; Thu, 20 Apr 2023 09:46:15 +0200 (CEST) Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id EBAB4F800AC for ; Thu, 20 Apr 2023 09:45:59 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz EBAB4F800AC Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 33K7jnH53008275, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36505.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 33K7jnH53008275 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK); Thu, 20 Apr 2023 15:45:49 +0800 Received: from RTEXMBS06.realtek.com.tw (172.21.6.99) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.32; Thu, 20 Apr 2023 15:45:49 +0800 Received: from RTEXMBS01.realtek.com.tw (172.21.6.94) by RTEXMBS06.realtek.com.tw (172.21.6.99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Thu, 20 Apr 2023 15:45:48 +0800 Received: from RTEXMBS01.realtek.com.tw ([fe80::4d7:e49a:674a:598]) by RTEXMBS01.realtek.com.tw ([fe80::4d7:e49a:674a:598%5]) with mapi id 15.01.2375.007; Thu, 20 Apr 2023 15:45:48 +0800 From: Jack Yu To: Pierre-Louis Bossart , "broonie@kernel.org" , "lgirdwood@gmail.com" Subject: RE: [PATCH v2] ASoC: rt722-sdca: Add RT722 SDCA driver Thread-Topic: [PATCH v2] ASoC: rt722-sdca: Add RT722 SDCA driver Thread-Index: AQHZcqfpi6nOYiJMEkaGxs9DuoA+cK8yKdWAgAGkcBA= Date: Thu, 20 Apr 2023 07:45:48 +0000 Message-ID: <9682d59fb4454b5a86a2c4b1db4abe3b@realtek.com> References: <20230419101538.30633-1-jack.yu@realtek.com> In-Reply-To: Accept-Language: zh-TW, en-US Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.22.102.102] x-kse-serverinfo: RTEXMBS06.realtek.com.tw, 9 x-kse-antispam-interceptor-info: fallback x-kse-antivirus-interceptor-info: fallback Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-ServerInfo: RTEXH36505.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback Message-ID-Hash: 3U43Q3F3OLZ3NLMLNRIBXTBVQUXAJU7Z X-Message-ID-Hash: 3U43Q3F3OLZ3NLMLNRIBXTBVQUXAJU7Z X-MailFrom: jack.yu@realtek.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: "alsa-devel@alsa-project.org" , "lars@metafoo.de" , "Flove(HsinFu)" , Oder Chiou , =?utf-8?B?U2h1bWluZyBb6IyD5pu46YqYXQ==?= , =?utf-8?B?RGVyZWsgW+aWueW+t+e+qV0=?= , Bard Liao X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFBpZXJyZS1Mb3VpcyBCb3Nz YXJ0IDxwaWVycmUtbG91aXMuYm9zc2FydEBsaW51eC5pbnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5l c2RheSwgQXByaWwgMTksIDIwMjMgMTA6MjQgUE0NCj4gVG86IEphY2sgWXUgPGphY2sueXVAcmVh bHRlay5jb20+OyBicm9vbmllQGtlcm5lbC5vcmc7DQo+IGxnaXJkd29vZEBnbWFpbC5jb20NCj4g Q2M6IGFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9yZzsgbGFyc0BtZXRhZm9vLmRlOyBGbG92ZShI c2luRnUpDQo+IDxmbG92ZUByZWFsdGVrLmNvbT47IE9kZXIgQ2hpb3UgPG9kZXJfY2hpb3VAcmVh bHRlay5jb20+OyBTaHVtaW5nIFvojIPmm7gNCj4g6YqYXSA8c2h1bWluZ2ZAcmVhbHRlay5jb20+ OyBEZXJlayBb5pa55b63576pXSA8ZGVyZWsuZmFuZ0ByZWFsdGVrLmNvbT47DQo+IEJhcmQgTGlh byA8eXVuZy1jaHVhbi5saWFvQGxpbnV4LmludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRD SCB2Ml0gQVNvQzogcnQ3MjItc2RjYTogQWRkIFJUNzIyIFNEQ0EgZHJpdmVyDQo+IA0KPiANCj4g RXh0ZXJuYWwgbWFpbC4NCj4gDQo+IA0KPiANCj4gT24gNC8xOS8yMyAwNToxNSwgSmFjayBZdSB3 cm90ZToNCj4gPiBUaGlzIGlzIHRoZSBpbml0aWFsIGNvZGVjIGRyaXZlciBmb3IgcnQ3MjItc2Rj YS4NCj4gPg0KPiA+IFBhdGNoIHYyIGlzIHRvIGZpeCB3YXJuaW5nIG1lc3NhZ2UgZnJvbSBrZXJu ZWwgdGVzdCByb2JvdC4NCj4gDQo+IHRoaXMgdmVyc2lvbiBpbmZvcm1hdGlvbiBzaG91bGQgZ28g YmVsb3cgdGhlIC0tLSBsaW5lIC4uLg0KPiA+DQoNCk9rLCBJJ2xsIGZpeCBpdC4NCg0KPiA+IFNp Z25lZC1vZmYtYnk6IEphY2sgWXUgPGphY2sueXVAcmVhbHRlay5jb20+DQo+ID4gLS0tDQo+IA0K PiAuLi4gaGVyZQ0KPiANCj4gDQo+ID4gK3N0YXRpYyBpbnQgcnQ3MjJfc2RjYV9yZWFkX3Byb3Ao c3RydWN0IHNkd19zbGF2ZSAqc2xhdmUpIHsNCj4gPiArICAgICBzdHJ1Y3Qgc2R3X3NsYXZlX3By b3AgKnByb3AgPSAmc2xhdmUtPnByb3A7DQo+ID4gKyAgICAgaW50IG52YWw7DQo+ID4gKyAgICAg aW50IGksIGo7DQo+ID4gKyAgICAgdTMyIGJpdDsNCj4gPiArICAgICB1bnNpZ25lZCBsb25nIGFk ZHI7DQo+ID4gKyAgICAgc3RydWN0IHNkd19kcG5fcHJvcCAqZHBuOw0KPiA+ICsNCj4gPiArICAg ICBwcm9wLT5zY3BfaW50MV9tYXNrID0gU0RXX1NDUF9JTlQxX0JVU19DTEFTSCB8DQo+IFNEV19T Q1BfSU5UMV9QQVJJVFk7DQo+ID4gKyAgICAgcHJvcC0+cXVpcmtzID0gU0RXX1NMQVZFX1FVSVJL U19JTlZBTElEX0lOSVRJQUxfUEFSSVRZOw0KPiA+ICsNCj4gPiArICAgICBwcm9wLT5wYWdpbmdf c3VwcG9ydCA9IHRydWU7DQo+ID4gKw0KPiA+ICsgICAgIC8qIGZpcnN0IHdlIG5lZWQgdG8gYWxs b2NhdGUgbWVtb3J5IGZvciBzZXQgYml0cyBpbiBwb3J0IGxpc3RzICovDQo+ID4gKyAgICAgcHJv cC0+c291cmNlX3BvcnRzID0gQklUKDYpIHwgQklUKDIpOyAvKiBCSVRNQVA6IDAxMDAwMTAwICov DQo+ID4gKyAgICAgcHJvcC0+c2lua19wb3J0cyA9IEJJVCgzKSB8IEJJVCgxKTsgLyogQklUTUFQ OiAgMDAwMDEwMTAgKi8NCj4gDQo+IHdoaWNoIHBvcnQgaXMgdXNlZCBmb3Igd2hhdD8NCg0KSSds bCBhZGQgc29tZSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdG8gcG9ydCBjb25maWd1cmF0aW9uLg0K DQo+IA0KPiA+ICsNCj4gPiArICAgICBudmFsID0gaHdlaWdodDMyKHByb3AtPnNvdXJjZV9wb3J0 cyk7DQo+ID4gKyAgICAgcHJvcC0+c3JjX2Rwbl9wcm9wID0gZGV2bV9rY2FsbG9jKCZzbGF2ZS0+ ZGV2LCBudmFsLA0KPiA+ICsgICAgICAgICAgICAgc2l6ZW9mKCpwcm9wLT5zcmNfZHBuX3Byb3Ap LCBHRlBfS0VSTkVMKTsNCj4gPiArICAgICBpZiAoIXByb3AtPnNyY19kcG5fcHJvcCkNCj4gPiAr ICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+ICsNCj4gPiArICAgICBpID0gMDsNCj4g PiArICAgICBkcG4gPSBwcm9wLT5zcmNfZHBuX3Byb3A7DQo+ID4gKyAgICAgYWRkciA9IHByb3At PnNvdXJjZV9wb3J0czsNCj4gPiArICAgICBmb3JfZWFjaF9zZXRfYml0KGJpdCwgJmFkZHIsIDMy KSB7DQo+ID4gKyAgICAgICAgICAgICBkcG5baV0ubnVtID0gYml0Ow0KPiA+ICsgICAgICAgICAg ICAgZHBuW2ldLnR5cGUgPSBTRFdfRFBOX0ZVTEw7DQo+ID4gKyAgICAgICAgICAgICBkcG5baV0u c2ltcGxlX2NoX3ByZXBfc20gPSB0cnVlOw0KPiA+ICsgICAgICAgICAgICAgZHBuW2ldLmNoX3By ZXBfdGltZW91dCA9IDEwOw0KPiA+ICsgICAgICAgICAgICAgaSsrOw0KPiA+ICsgICAgIH0NCj4g PiArDQo+ID4gKyAgICAgLyogZG8gdGhpcyBhZ2FpbiBmb3Igc2luayBub3cgKi8NCj4gPiArICAg ICBudmFsID0gaHdlaWdodDMyKHByb3AtPnNpbmtfcG9ydHMpOw0KPiA+ICsgICAgIHByb3AtPnNp bmtfZHBuX3Byb3AgPSBkZXZtX2tjYWxsb2MoJnNsYXZlLT5kZXYsIG52YWwsDQo+ID4gKyAgICAg ICAgICAgICBzaXplb2YoKnByb3AtPnNpbmtfZHBuX3Byb3ApLCBHRlBfS0VSTkVMKTsNCj4gPiAr ICAgICBpZiAoIXByb3AtPnNpbmtfZHBuX3Byb3ApDQo+ID4gKyAgICAgICAgICAgICByZXR1cm4g LUVOT01FTTsNCj4gPiArDQo+ID4gKyAgICAgaiA9IDA7DQo+ID4gKyAgICAgZHBuID0gcHJvcC0+ c2lua19kcG5fcHJvcDsNCj4gPiArICAgICBhZGRyID0gcHJvcC0+c2lua19wb3J0czsNCj4gPiAr ICAgICBmb3JfZWFjaF9zZXRfYml0KGJpdCwgJmFkZHIsIDMyKSB7DQo+ID4gKyAgICAgICAgICAg ICBkcG5bal0ubnVtID0gYml0Ow0KPiA+ICsgICAgICAgICAgICAgZHBuW2pdLnR5cGUgPSBTRFdf RFBOX0ZVTEw7DQo+ID4gKyAgICAgICAgICAgICBkcG5bal0uc2ltcGxlX2NoX3ByZXBfc20gPSB0 cnVlOw0KPiA+ICsgICAgICAgICAgICAgZHBuW2pdLmNoX3ByZXBfdGltZW91dCA9IDEwOw0KPiA+ ICsgICAgICAgICAgICAgaisrOw0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgLyogc2V0 IHRoZSB0aW1lb3V0IHZhbHVlcyAqLw0KPiA+ICsgICAgIHByb3AtPmNsa19zdG9wX3RpbWVvdXQg PSAyMDA7DQo+ID4gKw0KPiA+ICsgICAgIC8qIHdha2UtdXAgZXZlbnQgKi8NCj4gPiArICAgICBw cm9wLT53YWtlX2NhcGFibGUgPSAxOw0KPiA+ICsNCj4gPiArICAgICByZXR1cm4gMDsNCj4gPiAr fQ0KPiANCj4gPiArc3RhdGljIGludCBydDcyMl9zZGNhX3BjbV9od19wYXJhbXMoc3RydWN0IHNu ZF9wY21fc3Vic3RyZWFtDQo+ICpzdWJzdHJlYW0sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpIHsNCj4gPiArICAg ICBzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCA9IGRhaS0+Y29tcG9uZW50Ow0K PiA+ICsgICAgIHN0cnVjdCBydDcyMl9zZGNhX3ByaXYgKnJ0NzIyID0NCj4gc25kX3NvY19jb21w b25lbnRfZ2V0X2RydmRhdGEoY29tcG9uZW50KTsNCj4gPiArICAgICBzdHJ1Y3Qgc2R3X3N0cmVh bV9jb25maWcgc3RyZWFtX2NvbmZpZzsNCj4gPiArICAgICBzdHJ1Y3Qgc2R3X3BvcnRfY29uZmln IHBvcnRfY29uZmlnOw0KPiA+ICsgICAgIGVudW0gc2R3X2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlv bjsNCj4gPiArICAgICBzdHJ1Y3Qgc2R3X3N0cmVhbV9ydW50aW1lICpzZHdfc3RyZWFtOw0KPiA+ ICsgICAgIGludCByZXR2YWwsIHBvcnQsIG51bV9jaGFubmVsczsNCj4gPiArICAgICB1bnNpZ25l ZCBpbnQgc2FtcGxpbmdfcmF0ZTsNCj4gPiArDQo+ID4gKyAgICAgZGV2X2RiZyhkYWktPmRldiwg IiVzICVzIiwgX19mdW5jX18sIGRhaS0+bmFtZSk7DQo+ID4gKyAgICAgc2R3X3N0cmVhbSA9IHNu ZF9zb2NfZGFpX2dldF9kbWFfZGF0YShkYWksIHN1YnN0cmVhbSk7DQo+ID4gKw0KPiA+ICsgICAg IGlmICghc2R3X3N0cmVhbSkNCj4gPiArICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ ICsNCj4gPiArICAgICBpZiAoIXJ0NzIyLT5zbGF2ZSkNCj4gPiArICAgICAgICAgICAgIHJldHVy biAtRUlOVkFMOw0KPiA+ICsNCj4gPiArICAgICAvKg0KPiA+ICsgICAgICAqIFJUNzIyX0FJRjEg d2l0aCBwb3J0ID0gMSBmb3IgaGVhZHBob25lIHBsYXliYWNrDQo+ID4gKyAgICAgICogUlQ3MjJf QUlGMSB3aXRoIHBvcnQgPSAyIGZvciBoZWFkc2V0LW1pYyBjYXB0dXJlDQo+ID4gKyAgICAgICog UlQ3MjJfQUlGMiB3aXRoIHBvcnQgPSAzIGZvciBzcGVha2VyIHBsYXliYWNrDQo+ID4gKyAgICAg ICogUlQ3MjJfQUlGMiB3aXRoIHBvcnQgPSA2IGZvciBkaWdpdGFsLW1pYyBjYXB0dXJlDQo+ID4g KyAgICAgICovDQo+IA0KPiBJIGd1ZXNzIHRoZSBhbnN3ZXIgaXMgaGVyZS4uLg0KPiANCj4gSXQg d291bGRuJ3QgaHVydCB0byBoYXZlIHRoZSBpbmZvcm1hdGlvbiBhYm92ZSBhcyB3ZWxsLg0KPiAN Cj4gSXQncyBhbHNvIGFuIGludGVyZXN0aW5nIHBhcnRpdGlvbiBiZWNhdXNlIGluIHRoZW9yeSB0 aGUgYW1wbGlmaWVyIGFuZCBtaWMNCj4gJ2Z1bmN0aW9ucycgYXJlIHN1cHBvc2VkIHRvIGJlIGlu ZGVwZW5kZW50LCB5ZXQgdGhleSBhcmUgb24gdGhlIHNhbWUgREFJLg0KPg0KDQpJIGNhbiBzZXBh cmF0ZSB0aGVzZSB0d28gZnVuY3Rpb25zIChkbWljIGFuZCBzcGVha2VyKSBpbnRvIHR3byBEQUlz IGxpa2UgYmVsb3cNCg0Kc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaV9kcml2ZXIgcnQ3MjJfc2Rj YV9kYWlbXSA9IHsNCgkuLi4NCgl7DQoJCS5uYW1lID0gInJ0NzIyLXNkY2EtYWlmMiIsDQoJCS5p ZCA9IFJUNzIyX0FJRjIsDQoJCS5wbGF5YmFjayA9IHsNCgkJCS5zdHJlYW1fbmFtZSA9ICJEUDMg U3BlYWtlciBQbGF5YmFjayIsDQoJCQkuY2hhbm5lbHNfbWluID0gMSwNCgkJCS5jaGFubmVsc19t YXggPSAyLA0KCQkJLnJhdGVzID0gUlQ3MjJfU1RFUkVPX1JBVEVTLA0KCQkJLmZvcm1hdHMgPSBS VDcyMl9GT1JNQVRTLA0KCQl9LA0KCQkub3BzID0gJnJ0NzIyX3NkY2Ffb3BzLA0KCX0sDQoJew0K CQkubmFtZSA9ICJydDcyMi1zZGNhLWFpZjMiLA0KCQkuaWQgPSBSVDcyMl9BSUYzLA0KCQkuY2Fw dHVyZSA9IHsNCgkJCS5zdHJlYW1fbmFtZSA9ICJEUDYgRE1pYyBDYXB0dXJlIiwNCgkJCS5jaGFu bmVsc19taW4gPSAxLA0KCQkJLmNoYW5uZWxzX21heCA9IDIsDQoJCQkucmF0ZXMgPSBSVDcyMl9T VEVSRU9fUkFURVMsDQoJCQkuZm9ybWF0cyA9IFJUNzIyX0ZPUk1BVFMsDQoJCX0sDQoJCS5vcHMg PSAmcnQ3MjJfc2RjYV9vcHMsDQoJfQ0KLi4uDQp9Ow0KDQo+IEJhcmQsIHdvdWxkIHRoaXMgd29y ayBmb3IgdGhlIG1hY2hpbmUgZHJpdmVyIGludGVncmF0aW9uPw0KPiANCj4gPiArICAgICBpZiAo c3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykgew0KPiA+ICsg ICAgICAgICAgICAgZGlyZWN0aW9uID0gU0RXX0RBVEFfRElSX1JYOw0KPiA+ICsgICAgICAgICAg ICAgaWYgKGRhaS0+aWQgPT0gUlQ3MjJfQUlGMSkNCj4gPiArICAgICAgICAgICAgICAgICAgICAg cG9ydCA9IDE7DQo+ID4gKyAgICAgICAgICAgICBlbHNlIGlmIChkYWktPmlkID09IFJUNzIyX0FJ RjIpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHBvcnQgPSAzOw0KPiA+ICsgICAgICAgICAg ICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiAr ICAgICB9IGVsc2Ugew0KPiA+ICsgICAgICAgICAgICAgZGlyZWN0aW9uID0gU0RXX0RBVEFfRElS X1RYOw0KPiA+ICsgICAgICAgICAgICAgaWYgKGRhaS0+aWQgPT0gUlQ3MjJfQUlGMSkNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgcG9ydCA9IDI7DQo+ID4gKyAgICAgICAgICAgICBlbHNlIGlm IChkYWktPmlkID09IFJUNzIyX0FJRjIpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHBvcnQg PSA2Ow0KPiA+ICsgICAgICAgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsNCj4gPiArICAgICB9DQo+ID4gKyAgICAgc3RyZWFtX2NvbmZpZy5mcmFt ZV9yYXRlID0gcGFyYW1zX3JhdGUocGFyYW1zKTsNCj4gPiArICAgICBzdHJlYW1fY29uZmlnLmNo X2NvdW50ID0gcGFyYW1zX2NoYW5uZWxzKHBhcmFtcyk7DQo+ID4gKyAgICAgc3RyZWFtX2NvbmZp Zy5icHMgPQ0KPiBzbmRfcGNtX2Zvcm1hdF93aWR0aChwYXJhbXNfZm9ybWF0KHBhcmFtcykpOw0K PiA+ICsgICAgIHN0cmVhbV9jb25maWcuZGlyZWN0aW9uID0gZGlyZWN0aW9uOw0KPiA+ICsNCj4g PiArICAgICBudW1fY2hhbm5lbHMgPSBwYXJhbXNfY2hhbm5lbHMocGFyYW1zKTsNCj4gPiArICAg ICBwb3J0X2NvbmZpZy5jaF9tYXNrID0gR0VOTUFTSyhudW1fY2hhbm5lbHMgLSAxLCAwKTsNCj4g PiArICAgICBwb3J0X2NvbmZpZy5udW0gPSBwb3J0Ow0KPiA+ICsNCj4gPiArICAgICByZXR2YWwg PSBzZHdfc3RyZWFtX2FkZF9zbGF2ZShydDcyMi0+c2xhdmUsICZzdHJlYW1fY29uZmlnLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRfY29uZmlnLCAxLCBz ZHdfc3RyZWFtKTsNCj4gPiArICAgICBpZiAocmV0dmFsKSB7DQo+ID4gKyAgICAgICAgICAgICBk ZXZfZXJyKGRhaS0+ZGV2LCAiVW5hYmxlIHRvIGNvbmZpZ3VyZSBwb3J0XG4iKTsNCj4gPiArICAg ICAgICAgICAgIHJldHVybiByZXR2YWw7DQo+ID4gKyAgICAgfQ0KPiA+ICsNCj4gPiArICAgICBp ZiAocGFyYW1zX2NoYW5uZWxzKHBhcmFtcykgPiAxNikgew0KPiA+ICsgICAgICAgICAgICAgZGV2 X2Vycihjb21wb25lbnQtPmRldiwgIlVuc3VwcG9ydGVkIGNoYW5uZWxzICVkXG4iLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICBwYXJhbXNfY2hhbm5lbHMocGFyYW1zKSk7DQo+ID4gKyAgICAg ICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiArICAgICB9DQo+ID4gKw0KPiA+ICsgICAgIC8q IHNhbXBsaW5nIHJhdGUgY29uZmlndXJhdGlvbiAqLw0KPiA+ICsgICAgIHN3aXRjaCAocGFyYW1z X3JhdGUocGFyYW1zKSkgew0KPiA+ICsgICAgIGNhc2UgNDQxMDA6DQo+ID4gKyAgICAgICAgICAg ICBzYW1wbGluZ19yYXRlID0gUlQ3MjJfU0RDQV9SQVRFXzQ0MTAwSFo7DQo+ID4gKyAgICAgICAg ICAgICBicmVhazsNCj4gPiArICAgICBjYXNlIDQ4MDAwOg0KPiA+ICsgICAgICAgICAgICAgc2Ft cGxpbmdfcmF0ZSA9IFJUNzIyX1NEQ0FfUkFURV80ODAwMEhaOw0KPiA+ICsgICAgICAgICAgICAg YnJlYWs7DQo+ID4gKyAgICAgY2FzZSA5NjAwMDoNCj4gPiArICAgICAgICAgICAgIHNhbXBsaW5n X3JhdGUgPSBSVDcyMl9TRENBX1JBVEVfOTYwMDBIWjsNCj4gPiArICAgICAgICAgICAgIGJyZWFr Ow0KPiA+ICsgICAgIGNhc2UgMTkyMDAwOg0KPiA+ICsgICAgICAgICAgICAgc2FtcGxpbmdfcmF0 ZSA9IFJUNzIyX1NEQ0FfUkFURV8xOTIwMDBIWjsNCj4gPiArICAgICAgICAgICAgIGJyZWFrOw0K PiA+ICsgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAgICBkZXZfZXJyKGNvbXBvbmVudC0+ ZGV2LCAiUmF0ZSAlZCBpcyBub3Qgc3VwcG9ydGVkXG4iLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICBwYXJhbXNfcmF0ZShwYXJhbXMpKTsNCj4gPiArICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOw0KPiA+ICsgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgLyogc2V0IHNhbXBsaW5nIGZyZXF1 ZW5jeSAqLw0KPiA+ICsgICAgIGlmIChkYWktPmlkID09IFJUNzIyX0FJRjEpIHsNCj4gPiArICAg ICAgICAgICAgIHJlZ21hcF93cml0ZShydDcyMi0+cmVnbWFwLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICBTRFdfU0RDQV9DVEwoRlVOQ19OVU1fSkFDS19DT0RFQywNCj4gUlQ3MjJfU0RDQV9F TlRfQ1MwMSwNCj4gPiArDQo+IFJUNzIyX1NEQ0FfQ1RMX1NBTVBMRV9GUkVRX0lOREVYLCAwKSwg c2FtcGxpbmdfcmF0ZSk7DQo+ID4gKyAgICAgICAgICAgICByZWdtYXBfd3JpdGUocnQ3MjItPnJl Z21hcCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgU0RXX1NEQ0FfQ1RMKEZVTkNfTlVNX0pB Q0tfQ09ERUMsDQo+IFJUNzIyX1NEQ0FfRU5UX0NTMTEsDQo+ID4gKw0KPiBSVDcyMl9TRENBX0NU TF9TQU1QTEVfRlJFUV9JTkRFWCwgMCksIHNhbXBsaW5nX3JhdGUpOw0KPiA+ICsgICAgIH0NCj4g PiArDQo+ID4gKyAgICAgaWYgKGRhaS0+aWQgPT0gUlQ3MjJfQUlGMikgew0KPiA+ICsgICAgICAg ICAgICAgcmVnbWFwX3dyaXRlKHJ0NzIyLT5yZWdtYXAsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgIFNEV19TRENBX0NUTChGVU5DX05VTV9NSUNfQVJSQVksDQo+IFJUNzIyX1NEQ0FfRU5UX0NT MUYsDQo+ID4gKw0KPiBSVDcyMl9TRENBX0NUTF9TQU1QTEVfRlJFUV9JTkRFWCwgMCksIHNhbXBs aW5nX3JhdGUpOw0KPiA+ICsgICAgICAgICAgICAgcmVnbWFwX3dyaXRlKHJ0NzIyLT5yZWdtYXAs DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIFNEV19TRENBX0NUTChGVU5DX05VTV9BTVAsDQo+ IFJUNzIyX1NEQ0FfRU5UX0NTMzEsDQo+ID4gKw0KPiBSVDcyMl9TRENBX0NUTF9TQU1QTEVfRlJF UV9JTkRFWCwgMCksDQo+ID4gKyBzYW1wbGluZ19yYXRlKTsNCj4gDQo+IGFuZCB0aGF0J3MgcHJl Y2lzZWx5IHRoZSBzb3J0IG9mIHByb2JsZW1zIEkgaGFkIGluIG1pbmQgZWFybGllci4gV2h5IHdv dWxkIHRoZQ0KPiBzYW1wbGUtcmF0ZSBiZSBhbGlnbmVkIGZvciBib3RoIGFtcGxpZmllciBhbmQg ZG1pYz8NCj4gDQo+IEkgZG9uJ3QgdGhpbmsgdGhpcyBmb2xsb3dzIHRoZSBpbnRlbnQgb2YgdGhl IFNEQ0Egc3BlYy4gVGhlIGZ1bmN0aW9ucyBhcmUNCj4gc3VwcG9zZWQgdG8gYmUgaW5kZXBlbmRl bnQsIHNvIHdoZW4gd2Ugc2V0IGh3X3BhcmFtcyBmb3IgZS5nLg0KPiBhbXBsaWZpZXJzIHdlIGNh bid0IHRvdWNoIHRoZSBtaWNyb3Bob25lIGZ1bmN0aW9uLg0KPiANCj4gSSB3b3VsZCByZWNvbW1l bmQgc3BsaXR0aW5nIHRoZSBEQUlzIGhlcmUgdG8gaGF2ZSBzZWxmLWNvbnRhaW5lZCBvcGVyYXRp b25zDQo+IHRoYXQgcHJlc2VydmUgdGhlIGluZGVwZW5kZW5jZSBiZXR3ZWVuIGZ1bmN0aW9ucyAt IGlmIHRoZSBoYXJkd2FyZSBjYW4gZGVhbA0KPiB3aXRoIGluZGVwZW5kZW50IGZ1bmN0aW9ucyB3 ZSBoYXZlIG5vIHJlYXNvbiB0byByZWpvaW4gdGhlc2UgZnVuY3Rpb25zIGF0IHRoZQ0KPiBkcml2 ZXIgbGV2ZWwsIGRvIHdlPw0KDQpJJ2xsIHNlcGFyYXRlIHRoZSBEQUlzIGZvciBkbWljL3NwZWFr ZXIgYW5kIGh3X3BhcmFtIHNldHRpbmdzIHdpbGwgYmUgaW5kZXBlbmRlbnQgYXMgd2VsbC4NCg0K PiANCj4gPiArICAgICB9DQo+ID4gKw0KPiA+ICsgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICtzdGF0aWMgaW50IHJ0NzIyX3NkY2FfcGNtX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21f c3Vic3RyZWFtICpzdWJzdHJlYW0sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHNuZF9zb2NfZGFpICpkYWkpIHsNCj4gPiArICAgICBzdHJ1Y3Qgc25kX3NvY19jb21w b25lbnQgKmNvbXBvbmVudCA9IGRhaS0+Y29tcG9uZW50Ow0KPiA+ICsgICAgIHN0cnVjdCBydDcy Ml9zZGNhX3ByaXYgKnJ0NzIyID0NCj4gc25kX3NvY19jb21wb25lbnRfZ2V0X2RydmRhdGEoY29t cG9uZW50KTsNCj4gPiArICAgICBzdHJ1Y3Qgc2R3X3N0cmVhbV9ydW50aW1lICpzZHdfc3RyZWFt ID0NCj4gPiArICAgICAgICAgICAgIHNuZF9zb2NfZGFpX2dldF9kbWFfZGF0YShkYWksIHN1YnN0 cmVhbSk7DQo+ID4gKw0KPiA+ICsgICAgIGlmICghcnQ3MjItPnNsYXZlKQ0KPiA+ICsgICAgICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsgICAgIHNkd19zdHJlYW1fcmVtb3Zl X3NsYXZlKHJ0NzIyLT5zbGF2ZSwgc2R3X3N0cmVhbSk7DQo+ID4gKyAgICAgcmV0dXJuIDA7DQo+ ID4gK30NCj4gPiArDQo+ID4gKyNkZWZpbmUgUlQ3MjJfU1RFUkVPX1JBVEVTIChTTkRSVl9QQ01f UkFURV80NDEwMCB8DQo+IFNORFJWX1BDTV9SQVRFXzQ4MDAwIHwgXA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICBTTkRSVl9QQ01fUkFURV85NjAwMCB8DQo+IFNORFJWX1BDTV9SQVRFXzE5MjAw MCkNCj4gPiArI2RlZmluZSBSVDcyMl9GT1JNQVRTIChTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8 DQo+IFNORFJWX1BDTV9GTVRCSVRfUzIwXzNMRSB8IFwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUpDQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IHNuZF9zb2NfZGFpX29wcyBydDcyMl9zZGNhX29wcyA9IHsNCj4gPiArICAgICAuaHdfcGFy YW1zICAgICAgPSBydDcyMl9zZGNhX3BjbV9od19wYXJhbXMsDQo+ID4gKyAgICAgLmh3X2ZyZWUg ICAgICAgID0gcnQ3MjJfc2RjYV9wY21faHdfZnJlZSwNCj4gPiArICAgICAuc2V0X3N0cmVhbSAg ICAgPSBydDcyMl9zZGNhX3NldF9zZHdfc3RyZWFtLA0KPiA+ICsgICAgIC5zaHV0ZG93biAgICAg ICA9IHJ0NzIyX3NkY2Ffc2h1dGRvd24sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgc3Ry dWN0IHNuZF9zb2NfZGFpX2RyaXZlciBydDcyMl9zZGNhX2RhaVtdID0gew0KPiA+ICsgICAgIHsN Cj4gPiArICAgICAgICAgICAgIC5uYW1lID0gInJ0NzIyLXNkY2EtYWlmMSIsDQo+ID4gKyAgICAg ICAgICAgICAuaWQgPSBSVDcyMl9BSUYxLA0KPiA+ICsgICAgICAgICAgICAgLnBsYXliYWNrID0g ew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAuc3RyZWFtX25hbWUgPSAiRFAxIEhlYWRwaG9u ZSBQbGF5YmFjayIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIC5jaGFubmVsc19taW4gPSAx LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAuY2hhbm5lbHNfbWF4ID0gMiwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgLnJhdGVzID0gUlQ3MjJfU1RFUkVPX1JBVEVTLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAuZm9ybWF0cyA9IFJUNzIyX0ZPUk1BVFMsDQo+ID4gKyAgICAgICAg ICAgICB9LA0KPiA+ICsgICAgICAgICAgICAgLmNhcHR1cmUgPSB7DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgIC5zdHJlYW1fbmFtZSA9ICJEUDIgSGVhZHNldCBDYXB0dXJlIiwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgLmNoYW5uZWxzX21pbiA9IDEsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgIC5jaGFubmVsc19tYXggPSAyLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAucmF0 ZXMgPSBSVDcyMl9TVEVSRU9fUkFURVMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIC5mb3Jt YXRzID0gUlQ3MjJfRk9STUFUUywNCj4gPiArICAgICAgICAgICAgIH0sDQo+ID4gKyAgICAgICAg ICAgICAub3BzID0gJnJ0NzIyX3NkY2Ffb3BzLA0KPiA+ICsgICAgIH0sDQo+ID4gKyAgICAgew0K PiA+ICsgICAgICAgICAgICAgLm5hbWUgPSAicnQ3MjItc2RjYS1haWYyIiwNCj4gPiArICAgICAg ICAgICAgIC5pZCA9IFJUNzIyX0FJRjIsDQo+ID4gKyAgICAgICAgICAgICAucGxheWJhY2sgPSB7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIC5zdHJlYW1fbmFtZSA9ICJEUDMgU3BlYWtlciBQ bGF5YmFjayIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIC5jaGFubmVsc19taW4gPSAxLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAuY2hhbm5lbHNfbWF4ID0gMiwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgLnJhdGVzID0gUlQ3MjJfU1RFUkVPX1JBVEVTLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAuZm9ybWF0cyA9IFJUNzIyX0ZPUk1BVFMsDQo+ID4gKyAgICAgICAgICAg ICB9LA0KPiA+ICsgICAgICAgICAgICAgLmNhcHR1cmUgPSB7DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgIC5zdHJlYW1fbmFtZSA9ICJEUDYgRE1pYyBDYXB0dXJlIiwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgLmNoYW5uZWxzX21pbiA9IDEsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg IC5jaGFubmVsc19tYXggPSAyLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAucmF0ZXMgPSBS VDcyMl9TVEVSRU9fUkFURVMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIC5mb3JtYXRzID0g UlQ3MjJfRk9STUFUUywNCj4gPiArICAgICAgICAgICAgIH0sDQo+ID4gKyAgICAgICAgICAgICAu b3BzID0gJnJ0NzIyX3NkY2Ffb3BzLA0KPiA+ICsgICAgIH0NCj4gPiArfTsNCj4gDQo+IA0KPiAt LS0tLS1QbGVhc2UgY29uc2lkZXIgdGhlIGVudmlyb25tZW50IGJlZm9yZSBwcmludGluZyB0aGlz IGUtbWFpbC4NCg==