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,URIBL_BLOCKED, 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 35BF4C2D0DB for ; Mon, 27 Jan 2020 17:37:21 +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 D25A5214D8 for ; Mon, 27 Jan 2020 17:37:20 +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="SQNNFEUr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D25A5214D8 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 8B0246E428; Mon, 27 Jan 2020 17:37:20 +0000 (UTC) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-eopbgr750087.outbound.protection.outlook.com [40.107.75.87]) by gabe.freedesktop.org (Postfix) with ESMTPS id D91E26E428 for ; Mon, 27 Jan 2020 17:37:18 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ipGkZOzOXXkiHOWCKHv/V1TxtRfOWDUUW2yBZOSnHVRSRdUZ2XVYeyKpZnboRrJBwDmAYOHQzLF0sgXIMjtb/2BadWyUNr3tgdwc1fvqAYpLZ38G2QdVoS8HNbA/jPs3kfMoz9qkIjOme8HLrVII3FVCkYikkurmpUb5Xp1cITk7FI6vG0DDZYguNOAhEU6G0iyoO3gZ3bGm5lSduOke4fzCZc+9Ya4NHpFSDhqtGnJnv3D4gxasGyblBc2dUGjTP7pxohurCskrF6v4RfNkTJxd7ezaQyGFydKWsH1Td1kCl18X6p/NYM49+H9UXxcU7xtJXKazXl6Z32FhJVXgwQ== 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=Kwz2fhTbQM53pUJESR5jCWEeilvSR+mKzFCVYt6v8a4=; b=DQ6CI9O5m2AEWwOSDEwMFMLyLruxVPJANLOrHyi/5V1mHkoO9wRJb1E6J1cP5BAogSU5Swv3WCmMGtVXCeDzTugIbg0GhzshS6mYyEmcoVowq7qbQZZs1Gpe2meHS3LhYkN4Cvz8Cz3+rZHqno0+crwEeCNqN4XtpS5l7ohj1MKVLyR6mStRI5BseDyvbeoy88nwb7o5uo4PSwDW0fX9MaEHEzPZSVRqlw1LqG7I7qIj7rrvJ8DwFpjo5xk319b9/czims6rZQDio5+2f6Mf/ObIqaqVOajJIcO4H/F+vHSUSvq2Zwlb90HO7L1xj5EJ889fhJAvBWX/qpyqMY4yDw== 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=Kwz2fhTbQM53pUJESR5jCWEeilvSR+mKzFCVYt6v8a4=; b=SQNNFEUrz1x6fVmI5YAGLr5Jo+UAEnpjtc1PIwwuNkyflbE8Wr+T5f+sNLFgrGbT+y3/H1VEYAs50jFnJTznToDTWhjxRPCY7v+FZYPl//fzaAL8OnDUS/sVBRXcekJQkuSkxUO1/Qu8NAEmL/cS4dyMiNcaOmpQZX3uhR/Pp2A= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Tom.StDenis@amd.com; Received: from MN2PR12MB3935.namprd12.prod.outlook.com (10.255.237.223) by MN2PR12MB3821.namprd12.prod.outlook.com (10.255.239.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2665.20; Mon, 27 Jan 2020 17:37:16 +0000 Received: from MN2PR12MB3935.namprd12.prod.outlook.com ([fe80::4de1:e7cb:7d68:b666]) by MN2PR12MB3935.namprd12.prod.outlook.com ([fe80::4de1:e7cb:7d68:b666%7]) with mapi id 15.20.2665.025; Mon, 27 Jan 2020 17:37:16 +0000 Subject: Re: [PATCH 2/4] drm/amdgpu: allow higher level PD invalidations From: Tom St Denis To: =?UTF-8?Q?Christian_K=c3=b6nig?= , amd-gfx@lists.freedesktop.org, Felix.Kuehling@amd.com References: <20200123142122.4084-1-christian.koenig@amd.com> <20200123142122.4084-2-christian.koenig@amd.com> Message-ID: Date: Mon, 27 Jan 2020 12:37:13 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 In-Reply-To: Content-Language: en-US X-ClientProxiedBy: BN3PR03CA0115.namprd03.prod.outlook.com (2603:10b6:400:4::33) To MN2PR12MB3935.namprd12.prod.outlook.com (2603:10b6:208:168::31) MIME-Version: 1.0 Received: from localhost.localdomain (165.204.84.11) by BN3PR03CA0115.namprd03.prod.outlook.com (2603:10b6:400:4::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2665.22 via Frontend Transport; Mon, 27 Jan 2020 17:37:15 +0000 X-Originating-IP: [165.204.84.11] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c695ec8a-e1b8-4743-352d-08d7a34f8cf4 X-MS-TrafficTypeDiagnostic: MN2PR12MB3821:|MN2PR12MB3821: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-Forefront-PRVS: 02951C14DC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(346002)(39860400002)(366004)(136003)(376002)(199004)(189003)(81156014)(6486002)(81166006)(45080400002)(6636002)(86362001)(186003)(31696002)(6506007)(26005)(8676002)(316002)(36756003)(16526019)(52116002)(53546011)(66574012)(8936002)(2616005)(956004)(2906002)(5660300002)(6512007)(31686004)(478600001)(66556008)(66476007)(66946007); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR12MB3821; H:MN2PR12MB3935.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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: BiiQMe/6rz9osgSvaIhoZSy4uAXi1K/Y+ptkmePu5pKg4pgLrnEvITt3j6Jm0EJNVUZsrh174bYnJ3VRO1k8stO9pgtS7gB0fIpwAmCnL8er/CusDn/JR+DsOnOOYbnkazKfddeyQwYU2mf0guH4pAdIG+iCP1Vr/CH3LX6zlf/tHBMi0Jqpx5SbWGvqWRob+BOYQ4sWMdT3/3Es7PmFcGOPnNMxDbWqz54j5WPHYdm4YFUfPNiufsF8Go7wkS9B9GCVsWHltrthEN6Ot6516cSsa4bk9PgGOYRD2v2VHnZFO/xOKFQoVu5JOL18+VCF6TZ5CSsEgKuqLDa0SAgVnpsVFpNR5G4izRUbDF4Mz1rrT6nZNhrgj+brmrL58U3HwkHPogi3xgSmHN6p0sKLftJPpY98vgnpzXTDwXFyhZv+Tz9PmGrqXZLw+bgiA565 X-MS-Exchange-AntiSpam-MessageData: MFbah6YmY0uuxsVfTLO4305HpbUGY51Y10jD4Q1h0Mk7FFjVbQlV8c86FhRNanYoZM7LAH41J9XscoEI7Kf8P5i/sdgXt1DmgjfBl0DN54qYCyTEvtYIkWQFDIJYJrx4dsY64zLm4T33tlTeg68Npw== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: c695ec8a-e1b8-4743-352d-08d7a34f8cf4 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2020 17:37:16.3040 (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: FgvokYsVghQIDb4rRrOUPXpb4X/cZSTyiqYfrr9jYW6CF4yFHe9wq2dsy41g8KXFoZ5/DAwH1aOs/Kn4wVHwag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3821 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: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" VGhlIG9mZmVuZGluZyBQREUgYWRkcmVzcyBpczogIjNmZmZmZWZmNjAwMDAwIgoKV2hpY2ggbG9v a3MgbGlrZSBpdCB3YXMgc2lnbiBleHRlbmRlZCBpbnRvIHRoZSAicmVzZXJ2ZWQiIHNlY3Rpb24g CmJldHdlZW4gYml0cyA0MDo1OCAoMHgzZmZmKSBoZW5jZSB0cmlnZ2VyaW5nIHRoZSBCVUcoKSBp biB0aGUgZ21jX3Y4IGRyaXZlci4KClRvbQoKT24gMjAyMC0wMS0yNyA5OjU3IGEubS4sIFRvbSBT dCBEZW5pcyB3cm90ZToKPiBSZXZlcnRpbmcgdGhpcyBwYXRjaCBhdm9pZHMgdGhlIGdtY192OCBl cnJvcnMgKEkgcHJldmlvdXNseSBzZW50IAo+IGtlcm5lbCBsb2dzLCBoZXJlJ3Mgb25lIGZvciBj b252ZW5pZW5jZSk6Cj4KPiBbwqAgMzU4LjU1NDMzNV0gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBd LS0tLS0tLS0tLS0tCj4gW8KgIDM1OC41NTQzMzhdIGtlcm5lbCBCVUcgYXQgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYzo3MjUhCj4gW8KgIDM1OC41NTQzNTFdIGludmFsaWQg b3Bjb2RlOiAwMDAwIFsjMV0gU01QIE5PUFRJCj4gW8KgIDM1OC41NTQzNTRdIENQVTogMCBQSUQ6 IDQ1NTEgQ29tbTogWHdheWxhbmQgTm90IHRhaW50ZWQgNS40LjAtcmM3KyAjMTQKPiBbwqAgMzU4 LjU1NDM1NV0gSGFyZHdhcmUgbmFtZTogU3lzdGVtIG1hbnVmYWN0dXJlciBTeXN0ZW0gUHJvZHVj dCAKPiBOYW1lL1RVRiBCMzUwTS1QTFVTIEdBTUlORywgQklPUyA1MjIwIDA5LzEyLzIwMTkKPiBb wqAgMzU4LjU1NDQ1Ml0gUklQOiAwMDEwOmdtY192OF8wX2dldF92bV9wZGUrMHgxMC8weDIwIFth bWRncHVdCj4gW8KgIDM1OC41NTQ0NTVdIENvZGU6IDMxIGY2IDQ4IDg5IGRmIGU4IDMwIGU5IGZm IGZmIGU5IDI4IGZmIGZmIGZmIGU4IAo+IDE2IGQ2IDIxIGY5IDY2IDBmIDFmIDQ0IDAwIDAwIDQ4 IGI4IGZmIDBmIDAwIDAwIDAwIGZmIGZmIGZmIDQ4IDg1IDAyIAo+IDc1IDAxIGMzIDwwZj4gMGIg NjYgNjYgMmUgMGYgMWYgODQgMDAgMDAgMDAgMDAgMDAgMGYgMWYgMDAgNTUgNDggODkgZmQgCj4g ZTggYzcKPiBbwqAgMzU4LjU1NDQ1Nl0gUlNQOiAwMDE4OmZmZmZhMjgxNDIyODdhMDAgRUZMQUdT OiAwMDAxMDIwNgo+IFvCoCAzNTguNTU0NDU4XSBSQVg6IGZmZmZmZjAwMDAwMDBmZmYgUkJYOiAw MDAwMDAwMDAwMDAwMDAwIFJDWDogCj4gZmZmZmEyODE0MjI4N2E3OAo+IFvCoCAzNTguNTU0NDU5 XSBSRFg6IGZmZmZhMjgxNDIyODdhNTAgUlNJOiAwMDAwMDAwMDAwMDAwMDAyIFJESTogCj4gZmZm ZjhiOWJlMTVlMDAwMAo+IFvCoCAzNTguNTU0NDYwXSBSQlA6IDAwMDAwMDAwMDAwMDAwMDEgUjA4 OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogCj4gMDAwMDAwMDAwMDAwMDAwMAo+IFvCoCAzNTguNTU0 NDYxXSBSMTA6IDAwMDAwMDAwMDAwMDAwMGYgUjExOiAwMDAwMDAwMDAwMDAwNDA2IFIxMjogCj4g MDAwMDAwMDAwMDAwMjAzMAo+IFvCoCAzNTguNTU0NDYyXSBSMTM6IDAwM2ZmZmZlZmVhMDAwMDAg UjE0OiAwMDAwMDAwMDAwMTAxYzAwIFIxNTogCj4gZmZmZmEyODE0MjI4N2FmMAo+IFvCoCAzNTgu NTU0NDY0XSBGUzrCoCAwMDAwN2YxODBhNDhiYTgwKDAwMDApIEdTOmZmZmY4YjliZTZjMDAwMDAo MDAwMCkgCj4ga25sR1M6MDAwMDAwMDAwMDAwMDAwMAo+IFvCoCAzNTguNTU0NDY1XSBDUzrCoCAw MDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwo+IFvCoCAzNTguNTU0 NDY2XSBDUjI6IDAwMDA3ZjNkZThmNWRjYzAgQ1IzOiAwMDAwMDAwMjE3MGM4MDAwIENSNDogCj4g MDAwMDAwMDAwMDE0MDZmMAo+IFvCoCAzNTguNTU0NDY3XSBDYWxsIFRyYWNlOgo+IFvCoCAzNTgu NTU0NTAyXcKgIGFtZGdwdV92bV91cGRhdGVfcHRlcysweDI4YS8weDdmMCBbYW1kZ3B1XQo+IFvC oCAzNTguNTU0NTM0XcKgID8gYW1kZ3B1X3N5bmNfcmVzdisweDM0LzB4MTkwIFthbWRncHVdCj4g W8KgIDM1OC41NTQ1NjVdwqAgYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBwaW5nKzB4MTJiLzB4MTYw IFthbWRncHVdCj4gW8KgIDM1OC41NTQ1OTZdwqAgYW1kZ3B1X3ZtX2JvX3VwZGF0ZSsweDMzMy8w eDZhMCBbYW1kZ3B1XQo+IFvCoCAzNTguNTU0NjI2XcKgIGFtZGdwdV9nZW1fdmFfaW9jdGwrMHgz YzEvMHgzZTAgW2FtZGdwdV0KPiBbwqAgMzU4LjU1NDY1OF3CoCA/IGFtZGdwdV9nZW1fdmFfbWFw X2ZsYWdzKzB4NjAvMHg2MCBbYW1kZ3B1XQo+IFvCoCAzNTguNTU0NjYzXcKgIGRybV9pb2N0bF9r ZXJuZWwrMHhhNS8weGYwCj4gW8KgIDM1OC41NTQ2NjVdwqAgZHJtX2lvY3RsKzB4MWRmLzB4MzY2 Cj4gW8KgIDM1OC41NTQ2OTVdwqAgPyBhbWRncHVfZ2VtX3ZhX21hcF9mbGFncysweDYwLzB4NjAg W2FtZGdwdV0KPiBbwqAgMzU4LjU1NDY5OF3CoCA/IF9fc3dpdGNoX3RvX2FzbSsweDM0LzB4NzAK PiBbwqAgMzU4LjU1NDY5OV3CoCA/IF9fc3dpdGNoX3RvX2FzbSsweDQwLzB4NzAKPiBbwqAgMzU4 LjU1NDcwMV3CoCA/IF9fc3dpdGNoX3RvX2FzbSsweDM0LzB4NzAKPiBbwqAgMzU4LjU1NDcwMl3C oCA/IF9fc3dpdGNoX3RvX2FzbSsweDQwLzB4NzAKPiBbwqAgMzU4LjU1NDcwM13CoCA/IF9fc3dp dGNoX3RvX2FzbSsweDM0LzB4NzAKPiBbwqAgMzU4LjU1NDcwNF3CoCA/IF9fc3dpdGNoX3RvX2Fz bSsweDQwLzB4NzAKPiBbwqAgMzU4LjU1NDczMV3CoCBhbWRncHVfZHJtX2lvY3RsKzB4NDQvMHg4 MCBbYW1kZ3B1XQo+IFvCoCAzNTguNTU0NzM1XcKgIGRvX3Zmc19pb2N0bCsweDNmMC8weDY1MAo+ IFvCoCAzNTguNTU0NzM3XcKgID8gX19zY2hlZHVsZSsweDI4Yy8weDVhMAo+IFvCoCAzNTguNTU0 NzM4XcKgIGtzeXNfaW9jdGwrMHg1OS8weDkwCj4gW8KgIDM1OC41NTQ3NDBdwqAgX194NjRfc3lz X2lvY3RsKzB4MTEvMHgyMAo+IFvCoCAzNTguNTU0NzQzXcKgIGRvX3N5c2NhbGxfNjQrMHg0My8w eDExMAo+IFvCoCAzNTguNTU0NzQ1XcKgIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ0LzB4YTkKPiBbwqAgMzU4LjU1NDc0N10gUklQOiAwMDMzOjB4N2YxODA5ZTY2MzhiCj4gW8Kg IDM1OC41NTQ3NDldIENvZGU6IDBmIDFlIGZhIDQ4IDhiIDA1IGZkIDlhIDBjIDAwIDY0IGM3IDAw IDI2IDAwIDAwIAo+IDAwIDQ4IGM3IGMwIGZmIGZmIGZmIGZmIGMzIDY2IDBmIDFmIDQ0IDAwIDAw IGYzIDBmIDFlIGZhIGI4IDEwIDAwIDAwIAo+IDAwIDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYg NzMgMDEgYzMgNDggOGIgMGQgY2QgOWEgMGMgMDAgZjcgZDggNjQgODkgCj4gMDEgNDgKPiBbwqAg MzU4LjU1NDc1MF0gUlNQOiAwMDJiOjAwMDA3ZmZmYWMyMGE2MzggRUZMQUdTOiAwMDAwMDI0NiBP UklHX1JBWDogCj4gMDAwMDAwMDAwMDAwMDAxMAo+IFvCoCAzNTguNTU0NzUxXSBSQVg6IGZmZmZm ZmZmZmZmZmZmZGEgUkJYOiAwMDAwN2ZmZmFjMjBhNjkwIFJDWDogCj4gMDAwMDdmMTgwOWU2NjM4 Ygo+IFvCoCAzNTguNTU0NzUyXSBSRFg6IDAwMDA3ZmZmYWMyMGE2OTAgUlNJOiAwMDAwMDAwMGMw Mjg2NDQ4IFJESTogCj4gMDAwMDAwMDAwMDAwMDAwZQo+IFvCoCAzNTguNTU0NzUzXSBSQlA6IDAw MDAwMDAwYzAyODY0NDggUjA4OiAwMDAwMDAwMTAxNjAwMDAwIFIwOTogCj4gMDAwMDAwMDAwMDAw MDAwZQo+IFvCoCAzNTguNTU0NzU0XSBSMTA6IDAwMDAwMDAwMDAwMDAwZTAgUjExOiAwMDAwMDAw MDAwMDAwMjQ2IFIxMjogCj4gMDAwMDAwMDAwMDAwMDAwMAo+IFvCoCAzNTguNTU0NzU0XSBSMTM6 IDAwMDAwMDAwMDAwMDAwMGUgUjE0OiAwMDAwMDAwMDAwMDAwMDAxIFIxNTogCj4gMDAwMDU2M2Q0 OGJmZDFmMAo+IFvCoCAzNTguNTU0NzU2XSBNb2R1bGVzIGxpbmtlZCBpbjogYW1kZ3B1IGdwdV9z Y2hlZCB0dG0gcjgxNTIgZWZpdmFyZnMKPiBbwqAgMzU4LjU1NDc5MF0gLS0tWyBlbmQgdHJhY2Ug ZTBkNTRmNmM0OTkwMjM1NiBdLS0tCj4gW8KgIDM1OC41NTQ4MjRdIFJJUDogMDAxMDpnbWNfdjhf MF9nZXRfdm1fcGRlKzB4MTAvMHgyMCBbYW1kZ3B1XQo+Cj4gKHRoZSBnbWNfdjggYnVnIHRyaWdn ZXJzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBJJ20gcnVubmluZyBwaWdsaXQgb24gCj4gbXkgaGVh ZGxlc3MgdmVnYTIwIG9yIGRpcmVjdGx5IG9uIHRoZSBjYXJyaXpvKS4KPgo+IEhvd2V2ZXIsIHdp dGggcGF0Y2ggMiBvZiA0IHJldmVydGVkIEkgdGhlbiBnZXQ6Cj4KPiBbIDE0NzEuMzM4MDg5XSBb ZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBk YXRlIEJPX1ZBICgtMikKPiBbIDE0NzEuMzM4NjQ3XSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwg W2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0NzEu MzM5ODA3XSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRu J3QgCj4gdXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0NzEuMzQxNjk5XSBbZHJtOmFtZGdwdV9nZW1f dmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgtMikK PiBbIDE0NzEuMzQyMzQ4XSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJP UiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0NzEuMzQyNDc0XSBbZHJtOmFt ZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJP X1ZBICgtMikKPiBbIDE0NzEuMzQyNTMyXSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdw dV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0NzEuMzQyNTgz XSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4g dXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0NzEuMzQyNjM2XSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9j dGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0 NzEuMzQyNjk0XSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291 bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0NzEuMzQyNzQ1XSBbZHJtOmFtZGdwdV9n ZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgt MikKPiBbIDE0NzEuMzQyNzk2XSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpF UlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0NzEuMzQzNTU1XSBbZHJt OmFtZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRl IEJPX1ZBICgtMikKPiBbIDE0NzEuMzUwMjcwXSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwgW2Ft ZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0NzEuMzUw MzUxXSBbZHJtOmFtZGdwdV9nZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3Qg Cj4gdXBkYXRlIEJPX1ZBICgtMikKPiBbIDE0NzEuMzUwMzk1XSBbZHJtOmFtZGdwdV9nZW1fdmFf aW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgtMikKPiBb IDE0NzEuMzUxODk1XSBhbWRncHUgMDAwMDowMDowMS4wOiBmYWlsZWQgdG8gY2xlYXIgcGFnZSB0 YWJsZXMgb24gR0VNIAo+IG9iamVjdCBjbG9zZSAoLTIpCj4gWyAxNDcxLjM1Mzk5NV0gYW1kZ3B1 IDAwMDA6MDA6MDEuMDogZmFpbGVkIHRvIGNsZWFyIHBhZ2UgdGFibGVzIG9uIEdFTSAKPiBvYmpl Y3QgY2xvc2UgKC0yKQo+IFsgMTQ3MS4zNTQxNzldIFtkcm06YW1kZ3B1X2dlbV92YV9pb2N0bCBb YW1kZ3B1XV0gKkVSUk9SKiBDb3VsZG4ndCAKPiB1cGRhdGUgQk9fVkEgKC0yKQo+IFsgMTQ3MS4z NTQxOTBdIGFtZGdwdSAwMDAwOjAwOjAxLjA6IGZhaWxlZCB0byBjbGVhciBwYWdlIHRhYmxlcyBv biBHRU0gCj4gb2JqZWN0IGNsb3NlICgtMikKPiBbIDE0NzEuMzU0MjUyXSBbZHJtOmFtZGdwdV9n ZW1fdmFfaW9jdGwgW2FtZGdwdV1dICpFUlJPUiogQ291bGRuJ3QgCj4gdXBkYXRlIEJPX1ZBICgt MikKPiBbIDE0NzEuMzU0MjU5XSBhbWRncHUgMDAwMDowMDowMS4wOiBmYWlsZWQgdG8gY2xlYXIg cGFnZSB0YWJsZXMgb24gR0VNIAo+IG9iamVjdCBjbG9zZSAoLTIpCj4gWyAxNDcxLjM1NDMwMl0g W2RybTphbWRncHVfZ2VtX3ZhX2lvY3RsIFthbWRncHVdXSAqRVJST1IqIENvdWxkbid0IAo+IHVw ZGF0ZSBCT19WQSAoLTIpCj4gWyAxNDcxLjM1NDMwOF0gYW1kZ3B1IDAwMDA6MDA6MDEuMDogZmFp bGVkIHRvIGNsZWFyIHBhZ2UgdGFibGVzIG9uIEdFTSAKPiBvYmplY3QgY2xvc2UgKC0yKQo+IFsg MTQ3MS4zNTQzNTFdIFtkcm06YW1kZ3B1X2dlbV92YV9pb2N0bCBbYW1kZ3B1XV0gKkVSUk9SKiBD b3VsZG4ndCAKPiB1cGRhdGUgQk9fVkEgKC0yKQo+IFsgMTQ3MS4zNTQzNTZdIGFtZGdwdSAwMDAw OjAwOjAxLjA6IGZhaWxlZCB0byBjbGVhciBwYWdlIHRhYmxlcyBvbiBHRU0gCj4gb2JqZWN0IGNs b3NlICgtMikKPgo+IFNvIGNsZWFybHkgdGhhdCdzIG5vdCB0aGUgZml4IGVpdGhlciA6LS8KPgo+ IChhbGwgb24gdG9wIG9mIHRoZSBsYXRlc3QgZHJtLW5leHQgZnJvbSB0aGlzIG1vcm5pbmcpLgo+ Cj4gVG9tCj4KPgo+IE9uIDIwMjAtMDEtMjMgOToyMSBhLm0uLCBDaHJpc3RpYW4gS8O2bmlnIHdy b3RlOgo+PiBBbGxvdyBwYXJ0aWFsIGludmFsaWRhdGlvbiBvbiB1bmFsbG9jYXRlZCBQRHMuIFRo aXMgaXMgdXNlZnVsIHdoZW4gd2UKPj4gbmVlZCB0byBzaWxlbmNlIGZhdWx0cyB0byBzdG9wIGlu dGVycnVwdCBmbG9vZHMgb24gVmVnYS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvD tm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+PiAtLS0KPj4gwqAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgfCAyMyArKysrKysrKysrKysrKysrKystLS0tLQo+ PiDCoCAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPj4K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIAo+ PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4+IGluZGV4IDgxMTlm MzJjYTk0ZC4uMGY3OWMxNzExOGJmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdm0uYwo+PiBAQCAtMTQ2Nyw5ICsxNDY3LDggQEAgc3RhdGljIGludCBhbWRncHVfdm1f dXBkYXRlX3B0ZXMoc3RydWN0IAo+PiBhbWRncHVfdm1fdXBkYXRlX3BhcmFtcyAqcGFyYW1zLAo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogc21hbGxlciB0aGFuIHRoZSBhZGRyZXNz IHNoaWZ0LiBHbyB0byB0aGUgbmV4dAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICog Y2hpbGQgZW50cnkgYW5kIHRyeSBhZ2Fpbi4KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAqLwo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWFtZGdwdV92bV9wdF9kZXNjZW5k YW50KGFkZXYsICZjdXJzb3IpKQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybiAtRU5PRU5UOwo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGFtZGdwdV92bV9wdF9kZXNjZW5kYW50KGFkZXYsICZj dXJzb3IpKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmIChmcmFnID49IHBhcmVudF9zaGlmdCkgewo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBJZiB0aGUgZnJhZ21lbnQgc2l6ZSBpcyBldmVu IGxhcmdlciB0aGFuIHRoZSBwYXJlbnQKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAq IHNoaWZ0IHdlIHNob3VsZCBnbyB1cCBvbmUgbGV2ZWwgYW5kIGNoZWNrIGl0IGFnYWluLgo+PiBA QCAtMTQ4MCw4ICsxNDc5LDE5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX3VwZGF0ZV9wdGVzKHN0 cnVjdCAKPj4gYW1kZ3B1X3ZtX3VwZGF0ZV9wYXJhbXMgKnBhcmFtcywKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIH0KPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIHB0ID0gY3Vyc29yLmVudHJ5LT5iYXNl LmJvOwo+PiAtwqDCoMKgwqDCoMKgwqAgaWYgKCFwdCkKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuIC1FTk9FTlQ7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIXB0KSB7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIC8qIFdlIG5lZWQgYWxsIFBEcyBhbmQgUFRzIGZvciBtYXBwaW5n IHNvbWV0aGluZywgKi8KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGZsYWdzICYgQU1E R1BVX1BURV9WQUxJRCkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g LUVOT0VOVDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBidXQgdW5tYXBwaW5n IHNvbWV0aGluZyBjYW4gaGFwcGVuIGF0IGEgaGlnaGVyCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKiBsZXZlbC4gKi8KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFhbWRncHVf dm1fcHRfYW5jZXN0b3IoJmN1cnNvcikpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHQgPSBj dXJzb3IuZW50cnktPmJhc2UuYm87Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNoaWZ0ID0g cGFyZW50X3NoaWZ0Owo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiDCoCDCoMKgwqDCoMKgwqDCoMKg wqAgLyogTG9va3MgZ29vZCBzbyBmYXIsIGNhbGN1bGF0ZSBwYXJhbWV0ZXJzIGZvciB0aGUgdXBk YXRlICovCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpbmNyID0gKHVpbnQ2NF90KUFNREdQVV9HUFVf UEFHRV9TSVpFIDw8IHNoaWZ0Owo+PiBAQCAtMTQ5NSw2ICsxNTA1LDkgQEAgc3RhdGljIGludCBh bWRncHVfdm1fdXBkYXRlX3B0ZXMoc3RydWN0IAo+PiBhbWRncHVfdm1fdXBkYXRlX3BhcmFtcyAq cGFyYW1zLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50NjRfdCB1cGRfZW5kID0g bWluKGVudHJ5X2VuZCwgZnJhZ19lbmQpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1 bnNpZ25lZCBucHRlcyA9ICh1cGRfZW5kIC0gZnJhZ19zdGFydCkgPj4gc2hpZnQ7Cj4+IMKgICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHdlIHNldCBoaWdo ZXIgbGV2ZWwgUERzIHRvCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBzaWxlbnQgdG8g c3RvcCBmYXVsdCBmbG9vZHMuICovCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5wdGVzID0g bWF4KG5wdGVzLCAxdSk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFtZGdwdV92bV91 cGRhdGVfZmxhZ3MocGFyYW1zLCBwdCwgY3Vyc29yLmxldmVsLAo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwZV9zdGFydCwgZHN0LCBu cHRlcywgaW5jciwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZmxhZ3MgfCBBTURHUFVfUFRFX0ZSQUcoZnJhZykpOwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlz dAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK