From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E06F2C3F2D1 for ; Mon, 2 Mar 2020 20:47:33 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AC0AC21556 for ; Mon, 2 Mar 2020 20:47:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="v9wLVr7l" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AC0AC21556 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 568126E83E; Mon, 2 Mar 2020 20:47:33 +0000 (UTC) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2049.outbound.protection.outlook.com [40.107.220.49]) by gabe.freedesktop.org (Postfix) with ESMTPS id 601D26E83E for ; Mon, 2 Mar 2020 20:47:32 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dMxbwCmzoYFGpxd5dzrdpQ+MozqQrRQcbi4UUKlbMQNzN85DtfSOyyccfjb9o1MKadKtCq2w7+ZXY2o27gwuI1HMhjvoQsKhpQQW2CeFnZynPV5Dd/yhU29B5X5E/wu1Sdrhyt9LQ6LH7dhFYMsgpZNZXBy//GaW2gI4SSEVxKBFitAQuy5EwePu1lRun4G9mSidVW9H3bWcE5wXub98EffuvTcuBL+Y0zKUIkbLA1/qnb5Y5wB+VUI8bMgd5tS8yq9namJLyhFe8Kk7kmynhxWBcBW0bJbXbQwX1OYsOdmnbfi3kIP3uubH5BpREn0k8F73Me+xLRxWKm9LjWjIRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lQgoC3fYFWLkGiRLrDJFGNfR6OF4B9muG4SuNjVSfcI=; b=BbWcEoJK5la9O1W9ieC47J/7lDp7hzp7UpDLD2TuhP1H3gSPxeVIM0C6QnfLqV5G7rP+PBRtFMhyBCNyhssHts7PKQos+gAIohF0gN/wZ1alsr48s87Je1vPZtSm2BhqxdkN1RutfQBKNULfmB6TmRz1ImY/mr/zWqJVQxFeuYhll24oecYNEiPwWJuOXDJuhDyNpXbDihpvtalS5aPcB2iX5Mu9RhQ0tPh1bTK+z2Es2OWE5zuRmulgnOvB2HYRcAKYOSCrPGAnss2cRBWXQ5UeaPNk8ElI8MnBWSD8jgdxank322bGf9qLTiui49pQCN2cCPRDGm9EFWNWszNh6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lQgoC3fYFWLkGiRLrDJFGNfR6OF4B9muG4SuNjVSfcI=; b=v9wLVr7ljRs1BOzl/vz8sb0PmetRjKbY0A3d2e9b5mcfG8CU/iP4QG/pHNrYga4wy2AMSKX7ldjflLh+PEai/LE5B6mpl94IPuiteygcc2iB9sumFTfjhVJUHkhMzagmc0U82/gJL49Sn8c2bzWybqDBLI3fGYnvjMfJ7rT7XS0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Luben.Tuikov@amd.com; Received: from DM6PR12MB3355.namprd12.prod.outlook.com (2603:10b6:5:115::26) by DM6SPR01MB0089.namprd12.prod.outlook.com (2603:10b6:5:22c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.14; Mon, 2 Mar 2020 20:47:30 +0000 Received: from DM6PR12MB3355.namprd12.prod.outlook.com ([fe80::9505:d766:9ac9:2bfd]) by DM6PR12MB3355.namprd12.prod.outlook.com ([fe80::9505:d766:9ac9:2bfd%6]) with mapi id 15.20.2772.019; Mon, 2 Mar 2020 20:47:30 +0000 Subject: Re: [RFC PATCH 2/4] drm/scheduler: implement a function to modify sched list To: =?UTF-8?Q?Christian_K=c3=b6nig?= , Nirmoy Das , amd-gfx@lists.freedesktop.org References: <20200227214012.3383-1-nirmoy.das@amd.com> <20200227214012.3383-2-nirmoy.das@amd.com> <46106fdd-55ed-cb09-902e-a1c0cffd7b0d@amd.com> From: Luben Tuikov Message-ID: <069d5a87-9792-87e5-432a-6c6456beeed6@amd.com> Date: Mon, 2 Mar 2020 15:47:28 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 In-Reply-To: Content-Language: en-CA X-ClientProxiedBy: YTXPR0101CA0053.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:1::30) To DM6PR12MB3355.namprd12.prod.outlook.com (2603:10b6:5:115::26) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (165.204.55.250) by YTXPR0101CA0053.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:1::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.15 via Frontend Transport; Mon, 2 Mar 2020 20:47:29 +0000 X-Originating-IP: [165.204.55.250] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9539d301-9428-498f-b117-08d7beeaec8e X-MS-TrafficTypeDiagnostic: DM6SPR01MB0089:|DM6SPR01MB0089: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-Forefront-PRVS: 033054F29A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(396003)(39860400002)(366004)(346002)(136003)(189003)(199004)(36756003)(26005)(16526019)(186003)(6486002)(956004)(44832011)(2616005)(4326008)(478600001)(6512007)(66946007)(2906002)(8936002)(316002)(31686004)(53546011)(86362001)(6506007)(66574012)(66556008)(5660300002)(66476007)(52116002)(8676002)(81166006)(81156014)(31696002)(110136005); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6SPR01MB0089; H:DM6PR12MB3355.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g+yWYYunxVzSYqsIwoEgk8VxpYfsUtM3ZEh7wI3lb6Nj0zIVBR38BgcZWsqO+WB8X6GXhhzYTHN0IavqU4wyIOTFaZCTzInkXuzgV4FnRILrHsMYwByF4Quf4t2ajTQHt5INM7WXeiBZMuccAn5SvoFvTjO+rVfyY4hGi/KozhkDHaxdCnTCl5DcezSo4eC2zquyM7xQXDiWXQJ8ohyezeoF/O8DkkDEoWmjl+xuCcA+xHw8qZT49BEauCL5uP3KsAtM/sWG2BHMluSNcAVczuzl9sRTY5iVHfmzXqkjNg+nRzc1ZeEthGGCj+6FmZ4VQMoWrAgeOpyUWyxJ737muAZ+NuwB3r56yfifywku/6ZPaXvhZkFsFgbXzH2WUg/DSN5EAdGv0jVUKGt6ZJ9svylyVPDFED6G8Lb38Pz/W7xDelLRLc0FNVvrEz0KH9WJ X-MS-Exchange-AntiSpam-MessageData: U57EbDJ5Q5hu29leylnoK+XVdr0vhkHt2Y63ungsaM1l+PC7QoYbfX66ctJtsissddqPL4Q0ix6t0HgSG5Kq9hTXNJKHL1l2fBq6NzKxHpj4/Q9N3SDlWtzR1Ka7VrTENP80P442Mj4wBHQAW6wFRA== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9539d301-9428-498f-b117-08d7beeaec8e X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2020 20:47:29.8822 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B+jLlWefEEfs6s4eg+vo2NrWjsJqLTaLIn7V7f6GxyjeP1Bm3QfwxQQ3GwedS6Od X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6SPR01MB0089 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexander.deucher@amd.com, luben.tuikov@amd.com, Ray.Huang@amd.com, nirmoy.das@amd.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" T24gMjAyMC0wMi0yOCAyOjQ3IGEubS4sIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4gQW0gMjgu MDIuMjAgdW0gMDY6MDggc2NocmllYiBMdWJlbiBUdWlrb3Y6Cj4+IE9uIDIwMjAtMDItMjcgNDo0 MCBwLm0uLCBOaXJtb3kgRGFzIHdyb3RlOgo+Pj4gaW1wbGVtZW50IGRybV9zY2hlZF9lbnRpdHlf bW9kaWZ5X3NjaGVkKCkgd2hpY2ggY2FuIG1vZGlmeSBleGlzdGluZwo+Pj4gc2NoZWRfbGlzdCB3 aXRoIGEgZGlmZmVyZW50IG9uZS4gVGhpcyBpcyBnb2luZyB0byBiZSBoZWxwZnVsIHdoZW4KPj4+ IHVzZXJzcGFjZSBjaGFuZ2VzIHByaW9yaXR5IG9mIGEgY3R4L2VudGl0eSB0aGVuIGRyaXZlciBj YW4gc3dpdGNoIHRvCj4+PiBjb3JyZXNwb25kaW5nIGh3IHNoY2VkIGxpc3QgZm9yIHRoYXQgcHJp b3JpdHkKPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBOaXJtb3kgRGFzIDxuaXJtb3kuZGFzQGFtZC5j b20+Cj4+PiAtLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9lbnRpdHku YyB8IDI0ICsrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gICBpbmNsdWRlL2RybS9ncHVfc2No ZWR1bGVyLmggICAgICAgICAgICAgIHwgIDQgKysrKwo+Pj4gICAyIGZpbGVzIGNoYW5nZWQsIDI4 IGluc2VydGlvbnMoKykKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVk dWxlci9zY2hlZF9lbnRpdHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfZW50 aXR5LmMKPj4+IGluZGV4IDYzYmNjZDIwMWI5Ny4uNzExZTlkNTA0YmNiIDEwMDY0NAo+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9lbnRpdHkuYwo+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9lbnRpdHkuYwo+Pj4gQEAgLTgzLDYgKzgzLDMw IEBAIGludCBkcm1fc2NoZWRfZW50aXR5X2luaXQoc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVu dGl0eSwKPj4+ICAgfQo+Pj4gICBFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9lbnRpdHlfaW5pdCk7 Cj4+PiAgIAo+Pj4gKy8qKgo+Pj4gKyAqIGRybV9zY2hlZF9lbnRpdHlfbW9kaWZ5X3NjaGVkIC0g TW9kaWZ5IHNjaGVkIG9mIGFuIGVudGl0eQo+Pj4gKyAqCj4+PiArICogQGVudGl0eTogc2NoZWR1 bGVyIGVudGl0eSB0byBpbml0Cj4+PiArICogQHNjaGVkX2xpc3Q6IHRoZSBsaXN0IG9mIG5ldyBk cm0gc2NoZWRzIHdoaWNoIHdpbGwgcmVwbGFjZQo+Pj4gKyAqCQlleGlzdGluZyBlbnRpdHktPnNj aGVkX2xpc3QKPj4+ICsgKiBAbnVtX3NjaGVkX2xpc3Q6IG51bWJlciBvZiBkcm0gc2NoZWQgaW4g c2NoZWRfbGlzdAo+Pj4gKyAqCj4+PiArICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdh dGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+PiArICovCj4+PiAraW50IGRybV9zY2hlZF9l bnRpdHlfbW9kaWZ5X3NjaGVkKHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHksCj4+PiAr CQkJCSAgc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICoqc2NoZWRfbGlzdCwKPj4+ICsJCQkJICB1 bnNpZ25lZCBpbnQgbnVtX3NjaGVkX2xpc3QpCj4+PiArewo+Pj4gKwlpZiAoIShlbnRpdHkgJiYg c2NoZWRfbGlzdCAmJiAobnVtX3NjaGVkX2xpc3QgPT0gMCB8fCBzY2hlZF9saXN0WzBdKSkpCj4+ PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gVGhpcyBzZWVtcyB1bm1haW50YWluYWJsZS4gSSdkIHdy aXRlIGl0IGluIGl0cyBuYXR1cmFsIGZvcm06Cj4gCj4gVGhpcyBpcyBwcm9iYWJseSBqdXN0IGNv cHkgJiBwYXN0ZWQgZnJvbSB0aGUgaW5pdCBmdW5jdGlvbiBhbmQgY29tcGxldGUgCj4gb3Zlcmtp bGwgaGVyZS4KCkl0IHNob3VsZCBiZSBhbiBlYXN5IHJlamVjdGlvbiB0aGVuLiBTdGF0ZW1lbnRz IGxpa2UgdGhpcyBtYWtlCnRoZSBjb2RlIHVubWFpbnRhaW5hYmxlLiBSZWdhcmRsZXNzIG9mIHdo ZXRoZXIgaXQgd2FzIGNvcHktYW5kLXBhc3RlZApJIHdhbnRlZCB0byBlbXBoYXNpemUgdGhlIGxh Y2sgb2Ygc2ltcGxpZmljYXRpb24gb2Ygd2hhdAp3YXMgYmVpbmcgZG9uZS4KCldlIG5lZWQgdG8g cHV0IGludGVudGlvbiBhbmQgc2Vuc2UgaW50byB3aGF0IHdlJ3JlIGRvaW5nLCBzY3J1dGluaXpp bmcKZXZlcnkgbGluZSB3ZSBwdXQgaW50byBhIHBhdGNoLiBUaGlzIGlzIHdoeSBJIHN1Z2dlc3Rl ZAp0aGUgc2ltcGxpZmljYXRpb24gaGVyZToKCj4gCj4+Cj4+IGludCBkcm1fc2NoZWRfZW50aXR5 X21vZGlmeV9zY2hlZChzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LAo+PiAJCQkJICBz dHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKipzY2hlZF9saXN0LAo+PiAJCQkJICB1bnNpZ25lZCBp bnQgbnVtX3NjaGVkX2xpc3QpCj4+IHsKPj4gCWlmIChlbnRpdHkgJiYgc2NoZWRfbGlzdCAmJiAo bnVtX3NjaGVkX2xpc3QgPT0gMCB8fCBzY2hlZF9saXN0WzBdICE9IE5VTEwpKSB7Cj4+IAkJZW50 aXR5LT5zY2hlZF9saXN0ID0gbnVtX3NjaGVkX2xpc3QgPiAxID8gc2NoZWRfbGlzdCA6IE5VTEw7 Cj4+IAkJZW50aXR5LT5udW1fc2NoZWRfbGlzdCA9IG51bV9zY2hlZF9saXN0Owo+PiAJCXJldHVy biAwOwo+PiAJfSBlbHNlIHsKPj4gCQlyZXR1cm4gLUVJTlZBTDsKPj4gCX0KPj4gfQo+IAo+IEFj dHVhbGx5IHRoYXQncyBhIHJhdGhlciBiYWQgaWRlYS4gRXJyb3IgaGFuZGxpbmcgc2hvdWxkIGFs d2F5cyBiZSBpbiAKCkkgYWN0dWFsbHkgZG9uJ3QgdGhpbmsgdGhhdCBpdCBpcyBhICJyYXRoZXIg YmFkIGlkZWEiLiBBdCBhbGwuCkkgYWN0dWFsbHkgdGhpbmsgdGhhdCBpdCBtYWtlcyB0aGlzIGxl YWYgZnVuY3Rpb24gbW9yZSBjbGVhciB0bwp1bmRlcnN0YW5kIGFzIHRoZSBjb25kaXRpb25hbCB3 b3VsZCByZWFkIGxpa2UgYSBzZW50ZW5jZSBpbiBwcm9zZS4KCj4gdGhlIGZvcm0gb2Y6Cj4gCj4g aWYgKGNoZWNrX2Vycm9yIHx8IG1pc3NpbmdfcHJlcmVxdWlzaXRlKQo+ICDCoMKgwqAgcmV0dXJu X29yX2dvdG9fY2xlYW51cDsKCkkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIGdlbmVyYWxpemUgYWNy b3NzIHRoZSBib2FyZC4gV2Ugc2hvdWxkIGJlCm1vcmUgZmxleGlibGUgaW4gb3JkZXIgdG8gY3Jl YXRlIGNsZWFyIGFuZCBtYWludGFpbmFibGUgY29kZS4KCj4gCj4+IFRoYXQncyB0b28gaGVhdnku IENhbiB3ZSBpbXByb3ZlIHRoZSBhcmNoaXRlY3R1cmUKPj4gc28gd2UgZG9uJ3QgaGF2ZSB0byBj aGVjayBmb3IgdGhpcyBpbiBsZWFmIGZ1bmN0aW9ucyBsaWtlIHRoaXMgb25lPwo+PiBXZSBjYW4g anVzdCByZXR1cm4gYSBwYXJhbWV0ZXJpemF0aW9uLgo+Pgo+PiBXaHkgd291bGQgdGhpcyBiZSBj YWxsZWQgd2l0aCBlbnRpdHkgYmVpbmcgTlVMTD8KPj4gT3Igd2l0aCBzY2hlZF9saXN0IGJlaW5n IE5VTEw/IE9yIG51bV9zY2hlZF9saXN0IGJlaW5nIG5vdCB6ZXJvCj4+IHlldCBzY2hlZF9saXN0 WzBdIGJlaW5nIE5VTEw/IFdoeSBub3QgbWFrZSBzdXJlIHRoYXQgc2NoZWRfbGlzdFswXSBpcwo+ PiBuZXZlciBOVUxMIGFuZCB0aGF0IG51bV9zY2hlZF9saXN0IGlzIGdyZWF0ZXIgdGhhbiAwIGFs d2F5cz8KPj4KPj4gRG9lcyB0aGlzIG1ha2UgaXQgdG8gdXNlciBzcGFjZT8KPj4gV2h5IHdvdWxk IHRoZSBzdGF0ZSBvZiBleGVjdXRpb24gYmUgb25lIHN1Y2ggdGhhdCB0aGlzIGlzIHRydWUvZmFs c2UKPj4gZm9yIHRoZSBjb2RlIHRvIHJldHVybiAtRUlOVkFMPwo+PiAgRnJvbSBwYXRjaCAzLzQg aXQgc2VlbXMgdGhhdCBhbiBlcnJvciBpcyBwcmludGVkIGluc2lkZSBhbWRncHVfY3R4X3ByaW9y aXR5X292ZXJyaWRlKCkKPj4gYW5kIHRoZSByZXN1bHQgaXMgbm90IHByb3BhZ2F0ZWQgdXAgdGhl IHN0YWNrLgo+Pgo+PiBJIHRoaW5rIHdlIHNob3VsZCBpbXByb3ZlIHRoZSBjb2RlIHdoZXJlIGhl cmUgdGhpcyBjb25kaXRpb24gYWJvdmUKPj4gaXMgbmV2ZXIgdHJ1ZS4gVGhlbiB3ZSBjYW4gdXNl IHBhcmFtZXRlcml6YXRpb24gZm9yIHRob3NlIHR3bwo+PiBzdGF0ZW1lbnRzIGJlbG93Ogo+Pgo+ Pj4gKwo+Pj4gKwllbnRpdHktPnNjaGVkX2xpc3QgPSBudW1fc2NoZWRfbGlzdCA+IDEgPyBzY2hl ZF9saXN0IDogTlVMTDsKPj4gU28gaWYgd2UncmUgaGVyZSwgd2Uga25vdyBmcm9tIHRoZSB0b3Ag Y29uZGl0aW9uYWwgdGhhdAo+PiBlaXRoZXIgbnVtX3NjaGVkX2xpc3QgaXMgMCBvciB0aGF0IHNj aGVkX2xpc3RbMF0gbm90IE5VTEwKPj4gb3IgYm90aC4KPj4KPj4gU28gaWYgbnVtX3NjaGVkX2xp c3QgaXMgMCBvciAxIHdlIHJldHVybiBOVUxMPwo+PiBBbmQgaWYgbnVtX3NjaGVkX2xpc3QgaXMg MiBvciBncmVhdGVyIHdlIHJldHVybiBzY2hlZF9saXN0Cj4+IG9mIHdoaWNoIHNjaGVkX2xpc3Rb MF0gY291bGQgYmUgTlVMTD8KPiAKPiBUaGlzIGlzIGFsc28gY29weSZwYXN0ZWQgZnJvbSB0aGUg aW5pdCBjb2RlIGFuZCBjb21wbGV0ZWx5IHdyb25nIGhlcmUuCgpTbyBldmVuIG1vcmUgcmVhc29u cyB0byByZWplY3QgdGhpcyBwYXRjaC4KCj4gCj4gV2hhdCB3ZSBzaG91bGQgZG8gaW5zdGVhZCBp cyBqdXN0OiBXQVJOX09OKCFudW1fc2NoZWRfbGlzdCB8fCAhc2NoZWRfbGlzdCk7CgpBZ2Fpbiwg d2hhdCBkb2VzIHRoYXQgKm1lYW4qPyBXaGF0IGRvZXMgdGhlIGNoZWNrIG1lYW4gYW5kIHdoYXQK ZG9lcyB0aGUgbnVtX3NjaGVkX2xpc3QgPT0gMCBvciBzY2hlZF9saXN0ID09IE5VTEwgbWVhbj8K QW5kIGhvdyBkaWQgd2UgZ2V0IGludG8gYSBzaXR1YXRpb24gbGlrZSB0aGlzIHdoZXJlIGVpdGhl ciBvciBib3RoCmNvdWxkIGJlIG5pbD8KCldvdWxkbid0IGl0IGJlIGJldHRlciB0byBzaW1wbGlm eSBvciByZS1hcmNoaXRlY3R1cmUgdGhpcyAod2Ugb25seSByZWNlbnRseQpkZWNpZGVkIHRvIGhp ZGUgcGh5c2ljYWwgcmluZ3MgZnJvbSB1c2VyLXNwYWNlKSwgc28gdGhhdCB0aGUgY29kZQppcyBl bGVnYW50IChtZWFuaW5nIG5vIGlmLWVsc2UpIHlldCBmbGV4aWJsZSBhbmQgc3RyYWlnaHRmb3J3 YXJkPwoKPiAKPiBBbmQgdG8gdGhlIGNoZWNraW5nIGZvciBub3Qga2VlcGluZyBhcm91bmQgdGhl IHNjaGVkdWxlciBsaXN0IGluIHRoZSAKPiBpbml0IGZ1bmN0aW9uLgo+IAo+PiBXaHkgbm90IGZp eCB0aGUgYXJjaGl0ZWN0dXJlIHNvIHRoYXQgdGhpcyBpcyBzaW1wbHkgY29waWVkPwo+IAo+IFdl IGhhZCB0aGF0IGFuZCBtb3ZlZCBhd2F5IGZyb20gaXQgYmVjYXVzZSB0aGUgc2NoZWR1bGVyIGxp c3QgaXMgCj4gYWN0dWFsbHkgY29uc3QgYW5kIHNob3VsZG4ndCBiZSBhbGxvY2F0ZWQgd2l0aCBl YWNoIGVudGl0eSAod2hpY2ggd2UgY2FuIAo+IGVhc2lseSBoYXZlIHRob3VzYW5kcyBvZikuCgpJ IHRoaW5rIHRoYXQgcGVwcGVyaW5nIHRoZSBjb2RlIHdpdGggaWYtZWxzZSBjb25kaXRpb25hbHMK ZXZlcnl3aGVyZSBhcyB0aGVzZSBwYXRjaC1zZXJpZXMgaW50byB0aGUgRFJNIHNjaGVkdWxlciBo YXZlIGJlZW4sCndvdWxkIG1ha2UgdGhlIGNvZGUgdW5tYWludGFpbmFibGUgaW4gdGhlIGxvbmcg cnVuLgoKUmVnYXJkcywKTHViZW4KCj4gCj4gUmVnYXJkcywKPiBDaHJpc3RpYW4uCj4gCj4+ICAg KGluIHdoaWNoIGNhc2UKPj4gd2UgY2FuIHNpbXBseSBpbmRleC1wYXJhbWV0ZXJpemUgaXQgYW5k IHNpbXBseSBjb3B5IGl0Lgo+PiBXaHkgYXJlIHRoZXJlIHNvIG1hbnkgY2hlY2tzIGV2ZXJ5d2hl cmU/Cj4+Cj4+PiArCWVudGl0eS0+bnVtX3NjaGVkX2xpc3QgPSBudW1fc2NoZWRfbGlzdDsKPj4+ ICsKPj4gSSBtZWFuLCBhbGwgd2UncmUgZG9pbmcgaW4gdGhpcyBmdW5jdGlvbiBpcyBpbml0aWFs aXppbmcKPj4gZW50aXR5LT5zY2hlZF9saXN0IGFuZCBlbnRpdHktPm51bV9zY2hlZF9saXN0LiBX aHkgZG9lcyB0aGlzCj4+IGZ1bmN0aW9uIGhhdmUgdG8gYmUgc28gY29tcGxleCBhbmQgZG8gc28g bWFueSBjaGVja3M/Cj4+IENhbiB3ZSBpbXByb3ZlL2ZpeCB0aGUgYXJjaGl0ZWN0dXJlIGluc3Rl YWQ/Cj4+Cj4+IFJlZ2FyZHMsCj4+IEx1YmVuCj4+Cj4+Cj4+PiArCXJldHVybiAwOwo+Pj4gK30K Pj4+ICtFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9lbnRpdHlfbW9kaWZ5X3NjaGVkKTsKPj4+ICsK Pj4+ICAgLyoqCj4+PiAgICAqIGRybV9zY2hlZF9lbnRpdHlfaXNfaWRsZSAtIENoZWNrIGlmIGVu dGl0eSBpcyBpZGxlCj4+PiAgICAqCj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZ3B1X3Nj aGVkdWxlci5oIGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCj4+PiBpbmRleCA1ODliZTg1 MWY4YTEuLjBjMTY0YTk2ZDUxYiAxMDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvZHJtL2dwdV9zY2hl ZHVsZXIuaAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCj4+PiBAQCAtMjk3 LDYgKzI5NywxMCBAQCB2b2lkIGRybV9zY2hlZF9maW5pKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxl ciAqc2NoZWQpOwo+Pj4gICBpbnQgZHJtX3NjaGVkX2pvYl9pbml0KHN0cnVjdCBkcm1fc2NoZWRf am9iICpqb2IsCj4+PiAgIAkJICAgICAgIHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHks Cj4+PiAgIAkJICAgICAgIHZvaWQgKm93bmVyKTsKPj4+ICtpbnQgZHJtX3NjaGVkX2VudGl0eV9t b2RpZnlfc2NoZWQoc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSwKPj4+ICsJCQkJICBz dHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKipzY2hlZF9saXN0LAo+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX3NjaGVkX2xpc3QpOwo+Pj4gKwo+ Pj4gICB2b2lkIGRybV9zY2hlZF9qb2JfY2xlYW51cChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqam9i KTsKPj4+ICAgdm9pZCBkcm1fc2NoZWRfd2FrZXVwKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAq c2NoZWQpOwo+Pj4gICB2b2lkIGRybV9zY2hlZF9zdG9wKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxl ciAqc2NoZWQsIHN0cnVjdCBkcm1fc2NoZWRfam9iICpiYWQpOwo+Pj4KPiAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0 CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=