Received: by 10.223.185.116 with SMTP id b49csp1451330wrg; Fri, 23 Feb 2018 19:37:54 -0800 (PST) X-Google-Smtp-Source: AH8x226pOC5d0DJdGj3KFwXyaMWR+XhQOFuqcmUDVDnwRI+Oy9/xHMvFvJIa3FkPAY1LRQfQJqA5 X-Received: by 10.99.97.86 with SMTP id v83mr3033291pgb.138.1519443473969; Fri, 23 Feb 2018 19:37:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519443473; cv=none; d=google.com; s=arc-20160816; b=peg6mcsPNDEf5iv/Bvdh0ipZn3fHy3VYrnwgbLEBtqGYEaZMQPrHa2BPqncKidVBP1 gp+zfznwZcmvWk4dfrALBU7H6L9vm6A8HkmKO/S2wMxhNAQI4ejaqIxziUbPtGxMAjvG +F5J7FRJZMmkhL/w0VJ0z0N+amqQaOUD91ZHXmyzO3untdNatmhMF2equG2SAPbaUo0d 1xlYDqZFdsDfGmwcIujgor8F9GECRvxOYipMFZcvE+V2s+fnFeLrOjBUpjVuuyb9UxEb i8mfmnCslIdfhIr8KzyalZTM3VdQo3NEQAQCtmHHOJXvQ8CO8AYIYAeaqMcEwTfBa7eI lafw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:to:from:dkim-signature :arc-authentication-results; bh=zrJNBKdzEC1SmAOHkIEoe355qPBb7eWlZ5uGqpsXdVU=; b=cM1atpWiilts9WfMox84lU6z/Fs0kjsCtMRR/uhZ3YQOkcdanLvSNKbTfdkxxT3S1n Rsqk5LfmNpHmvcfoMYUgYZ0f6ljLvacbtFj66ONZVcvvEZ1tqqgKR2ffQFoD65FopF2e 3VpMMDIPtPk+1FqkQOf9fxUK2aJMCwd+oJxgRLtF1Dr3D4wq9jep+SEkIHgtc78io6Pg f7Xmdsb5PbgAyrr+w7tm0ytT8W5JG7UVBgE1WNbdSYwf2EZd8T5x41zmQJbRh0kOvyFT VDhv65pKLY3IPfFUwJ3hSpSb+mI2SVJ8yXbzvh8Y6cELTOvWrRqFZEeG74h9YQTmeiqr DjMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=QnWB5BSW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d10-v6si2858290plm.539.2018.02.23.19.37.39; Fri, 23 Feb 2018 19:37:53 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=QnWB5BSW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752839AbeBXDhA (ORCPT + 99 others); Fri, 23 Feb 2018 22:37:00 -0500 Received: from mail-sn1nam01on0073.outbound.protection.outlook.com ([104.47.32.73]:53376 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752445AbeBXDg7 (ORCPT ); Fri, 23 Feb 2018 22:36:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=zrJNBKdzEC1SmAOHkIEoe355qPBb7eWlZ5uGqpsXdVU=; b=QnWB5BSWd3+7RqDrWPYSEvJrt0LW98rbQsCuL1d3LRvmVN+uqEdeWn/xDcLGVNOuQHk7lC271ZOxHS0KyXlof42+zSH1krryEDYzuMdmAXOIdlEjIwYOWkjs3/PxCf/MB/0czZm9ceC+1J1++G4ZgHfUgVaflVsxQcnwFe7Z7+M= Received: from MWHPR1201MB0127.namprd12.prod.outlook.com (10.174.98.142) by MWHPR1201MB0253.namprd12.prod.outlook.com (10.174.99.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Sat, 24 Feb 2018 03:36:56 +0000 Received: from MWHPR1201MB0127.namprd12.prod.outlook.com ([10.174.98.142]) by MWHPR1201MB0127.namprd12.prod.outlook.com ([10.174.98.142]) with mapi id 15.20.0485.022; Sat, 24 Feb 2018 03:36:44 +0000 From: "He, Roger" To: "Koenig, Christian" , "amd-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH 3/4] drm/ttm: handle already locked BOs during eviction and swapout. Thread-Topic: [PATCH 3/4] drm/ttm: handle already locked BOs during eviction and swapout. Thread-Index: AQHTqkqJL6PPebjhZ0OJvNgAm33lDqOxvPeggAArsYCAAP95YA== Date: Sat, 24 Feb 2018 03:36:43 +0000 Message-ID: References: <20180220125829.27060-1-christian.koenig@amd.com> <20180220125829.27060-3-christian.koenig@amd.com> <6eadbbea-8eca-a1ab-93bb-d37ae6e5f29d@gmail.com> In-Reply-To: <6eadbbea-8eca-a1ab-93bb-d37ae6e5f29d@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Hongbo.He@amd.com; x-originating-ip: [116.228.147.241] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MWHPR1201MB0253;7:ghy0UqeRdLX4uYSeAdC3koqFXqtvL29oLKRVWuKo4t87ShJONvDDPty0DF8AQ/4NpOBiJUwuGkDXdqSIudWJ/GKWtnO3xr4AMczkut2L5kbszx7OF1plboL+ip/+Gmzg7keCi94Ao02usyHoPEtlxqiQWnGd2zdqh+goRQqwrJOJe2mlTujb+HeSjtIubt0GFosfUqQ0Oa4KDNPoZNMi82X77BaW1D9YScowbsPEa5B/9yCGHwu/xncIJRJEFMvA;20:7DEXhn8Yf/UOCNZ3TFhWInxx6BNguQTMKnncy0S8gjdRnnyOdY4ht2bOPmOSzWtfEpnLe1R1v8Jdbkz7kN7ApCQXTNBx4JUFekjn2cousz8bf8eCgzjpO2WIIZ9ECQA510DyKP+mwquATNLC2o5IASMvwQvTtICTcHnM0BQNvmZPPGLlLlEnkda+IGvO30SxcJlJHoN/bp0YagcEwAMsKKPKjvpelYFFwQEIR8TwHnBldoirViE72AALe9HygG8G x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-forefront-antispam-report: SFV:SKI;SCL:-1;SFV:NSPM;SFS:(10009020)(376002)(39860400002)(39380400002)(346002)(396003)(366004)(13464003)(189003)(199004)(74316002)(76176011)(2900100001)(5660300001)(53936002)(478600001)(110136005)(25786009)(2501003)(7736002)(99286004)(77096007)(26005)(6116002)(305945005)(3846002)(2201001)(66066001)(86362001)(2906002)(55016002)(6506007)(6436002)(8936002)(6246003)(53546011)(102836004)(97736004)(68736007)(966005)(105586002)(93886005)(3660700001)(3280700002)(106356001)(72206003)(9686003)(6306002)(14454004)(316002)(8676002)(59450400001)(81156014)(33656002)(229853002)(81166006)(7696005)(2950100002);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR1201MB0253;H:MWHPR1201MB0127.namprd12.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 787f9257-cc00-4a69-d941-08d57b37d354 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020);SRVR:MWHPR1201MB0253; x-ms-traffictypediagnostic: MWHPR1201MB0253: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(9452136761055)(85827821059158)(767451399110)(217544274631240); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040501)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(3231209)(944501161)(52105095)(6055026)(6041288)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:MWHPR1201MB0253;BCL:0;PCL:0;RULEID:;SRVR:MWHPR1201MB0253; x-forefront-prvs: 0593E261C4 received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: Brjbk0c+cpxRiGTSBnOrum43ESnwG79db5SuwOcpChMBvt3t8C79WPNkSdp2PVC1UvyOGrciPEUwYrT99i7sjbvzLIlFGBGjKS1GdeiMU3A1Pjg/YR7uGOS2esv4KS7ChUDfhZe2hyoiifI/kkAtvcizxKsTsnKHBgJe3NkifM8= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 787f9257-cc00-4a69-d941-08d57b37d354 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2018 03:36:44.0201 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1201MB0253 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBDaHJpc3RpYW4gS8O2bmlnIFtt YWlsdG86Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb21dIA0KU2VudDogRnJpZGF5LCBG ZWJydWFyeSAyMywgMjAxOCA4OjA2IFBNDQpUbzogSGUsIFJvZ2VyIDxIb25nYm8uSGVAYW1kLmNv bT47IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQpTdWJqZWN0OiBSZTogW1BB VENIIDMvNF0gZHJtL3R0bTogaGFuZGxlIGFscmVhZHkgbG9ja2VkIEJPcyBkdXJpbmcgZXZpY3Rp b24gYW5kIHN3YXBvdXQuDQoNCkFtIDIzLjAyLjIwMTggdW0gMTA6NDYgc2NocmllYiBIZSwgUm9n ZXI6DQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRyaS1kZXZlbCBb bWFpbHRvOmRyaS1kZXZlbC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZ10gT24gDQo+IEJl aGFsZiBPZiBDaHJpc3RpYW4gSz9uaWcNCj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkgMjAsIDIw MTggODo1OCBQTQ0KPiBUbzogYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IA0KPiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3Jn DQo+IFN1YmplY3Q6IFtQQVRDSCAzLzRdIGRybS90dG06IGhhbmRsZSBhbHJlYWR5IGxvY2tlZCBC T3MgZHVyaW5nIGV2aWN0aW9uIGFuZCBzd2Fwb3V0Lg0KPg0KPiBUaGlzIHNvbHZlcyB0aGUgcHJv YmxlbSB0aGF0IHdoZW4gd2Ugc3dhcG91dCBhIEJPIGZyb20gYSBkb21haW4gd2Ugc29tZXRpbWVz IGNvdWxkbid0IG1ha2Ugcm9vbSBmb3IgaXQgYmVjYXVzZSBob2xkaW5nIHRoZSBsb2NrIGJsb2Nr cyBhbGwgb3RoZXIgQk9zIHdpdGggdGhpcyByZXNlcnZhdGlvbiBvYmplY3QuDQo+DQo+IFNpZ25l ZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4NCj4g LS0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyB8IDMzICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLQ0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCsp LCAxNyBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvLmMgDQo+IGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBpbmRleCBkOTBiMWNm MTBiMjcuLjNhNDRjMmVlNDE1NSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fYm8uYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jDQo+IEBAIC03MTMs MzEgKzcxMywzMCBAQCBib29sIHR0bV9ib19ldmljdGlvbl92YWx1YWJsZShzdHJ1Y3QgDQo+IHR0 bV9idWZmZXJfb2JqZWN0ICpibywgIEVYUE9SVF9TWU1CT0wodHRtX2JvX2V2aWN0aW9uX3ZhbHVh YmxlKTsNCj4gICANCj4gICAvKioNCj4gLSAqIENoZWNrIHRoZSB0YXJnZXQgYm8gaXMgYWxsb3dh YmxlIHRvIGJlIGV2aWN0ZWQgb3Igc3dhcG91dCwgaW5jbHVkaW5nIGNhc2VzOg0KPiAtICoNCj4g LSAqIGEuIGlmIHNoYXJlIHNhbWUgcmVzZXJ2YXRpb24gb2JqZWN0IHdpdGggY3R4LT5yZXN2LCBo YXZlIA0KPiBhc3N1bXB0aW9uDQo+IC0gKiByZXNlcnZhdGlvbiBvYmplY3RzIHNob3VsZCBhbHJl YWR5IGJlIGxvY2tlZCwgc28gbm90IGxvY2sgYWdhaW4gDQo+IGFuZA0KPiAtICogcmV0dXJuIHRy dWUgZGlyZWN0bHkgd2hlbiBlaXRoZXIgdGhlIG9wcmVhdGlvbiANCj4gYWxsb3dfcmVzZXJ2ZWRf ZXZpY3Rpb24NCj4gLSAqIG9yIHRoZSB0YXJnZXQgYm8gYWxyZWFkeSBpcyBpbiBkZWxheWVkIGZy ZWUgbGlzdDsNCj4gLSAqDQo+IC0gKiBiLiBPdGhlcndpc2UsIHRyeWxvY2sgaXQuDQo+ICsgKiBD aGVjayBpZiB0aGUgdGFyZ2V0IGJvIGlzIGFsbG93ZWQgdG8gYmUgZXZpY3RlZCBvciBzd2FwZWRv dXQuDQo+ICAgICovDQo+ICAgc3RhdGljIGJvb2wgdHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dh YmxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sDQo+IC0JCQlzdHJ1Y3QgdHRtX29wZXJh dGlvbl9jdHggKmN0eCwgYm9vbCAqbG9ja2VkKQ0KPiArCQkJCQkgICBzdHJ1Y3QgdHRtX29wZXJh dGlvbl9jdHggKmN0eCwNCj4gKwkJCQkJICAgYm9vbCAqbG9ja2VkKQ0KPiAgIHsNCj4gLQlib29s IHJldCA9IGZhbHNlOw0KPiArCS8qIEZpcnN0IGNoZWNrIGlmIHdlIGNhbiBsb2NrIGl0ICovDQo+ ICsJKmxvY2tlZCA9IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGJvLT5yZXN2KTsNCj4gKwlp ZiAoKmxvY2tlZCkNCj4gKwkJcmV0dXJuIHRydWU7DQo+ICAgDQo+IC0JKmxvY2tlZCA9IGZhbHNl Ow0KPiArCS8qIENoZWNrIGlmIGl0J3MgbG9ja2VkIGJlY2F1c2UgaXQgaXMgcGFydCBvZiB0aGUg Y3VycmVudCBvcGVyYXRpb24gDQo+ICsqLw0KPiAgIAlpZiAoYm8tPnJlc3YgPT0gY3R4LT5yZXN2 KSB7DQo+ICAgCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYm8tPnJlc3YpOw0KPiAt CQlpZiAoY3R4LT5hbGxvd19yZXNlcnZlZF9ldmljdGlvbiB8fCAhbGlzdF9lbXB0eSgmYm8tPmRk ZXN0cm95KSkNCj4gLQkJCXJldCA9IHRydWU7DQo+IC0JfSBlbHNlIHsNCj4gLQkJKmxvY2tlZCA9 IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGJvLT5yZXN2KTsNCj4gLQkJcmV0ID0gKmxvY2tl ZDsNCj4gKwkJcmV0dXJuIGN0eC0+YWxsb3dfcmVzZXJ2ZWRfZXZpY3Rpb24gfHwNCj4gKwkJCSFs aXN0X2VtcHR5KCZiby0+ZGRlc3Ryb3kpOw0KPiAgIAl9DQo+ICAgDQo+IC0JcmV0dXJuIHJldDsN Cj4gKwkvKiBDaGVjayBpZiBpdCdzIGxvY2tlZCBiZWNhdXNlIGl0IHdhcyBhbHJlYWR5IGV2aWN0 ZWQgKi8NCj4gKwlpZiAod3dfbXV0ZXhfaXNfb3duZWRfYnkoJmJvLT5yZXN2LT5sb2NrLCBOVUxM KSkNCj4gKwkJcmV0dXJuIHRydWU7DQo+DQo+IEZvciB0aGUgc3BlY2lhbCBjYXNlOiB3aGVuIGNv bW1hbmQgc3VibWlzc2lvbiB3aXRoIFBlci1WTS1CTyBlbmFibGVkLCANCj4gQWxsIEJPcyAgYS9i L2MgYXJlIGFsd2F5cyB2YWxpZCBCTy4gQWZ0ZXIgdGhlIHZhbGlkYXRpb24gb2YgQk9zIGEgYW5k IA0KPiBiLCB3aGVuIHZhbGlkYXRpb24gb2YgQk8gYywgaXMgaXQgcG9zc2libGUgdG8gcmV0dXJu IHRydWUgYW5kIHRoZW4gZXZpY3QgQk8gYSBhbmQgYiBieSBtaXN0YWtlID8NCj4gQmVjYXVzZSBh L2IvYyBzaGFyZSBzYW1lIHRhc2tfc3RydWN0Lg0KDQoJTm8sIHRoYXQncyB3aHkgSSBjaGVjayB0 aGUgY29udGV4dCBhcyB3ZWxsLiBCT3MgZXhwbGljaXRseSByZXNlcnZlZCBoYXZlIGEgbm9uIE5V TEwgY29udGV4dCB3aGlsZSBCT3MgdHJ5bG9ja2VkIGZvciBzd2Fwb3V0IGhhdmUgYSBOVUxMIGNv bnRleHQuDQoNCldoZW4gQk9zIGhhdmUgYSBub24gTlVMTCBjb250ZXh0IG9ubHkgd2hlbiBjb21t YW5kIHN1Ym1pc3Npb24gYW5kIHJlc2VydmVkIGJ5IHR0bV9ldV9yZTZzZXJ2ZV9idWZmZXJzICAu DQpCdXQgZm9yIFBlci1WTS1CTyBhL2IvYyB0aGV5IGFsd2F5cyBhcmUgbm90IGluIEJPIGxpc3Qs IHNvIHRoZXkgd2lsbCBiZSBub3QgcmVzZXJ2ZWQgYW5kIGhhdmUgYWx3YXlzIE5VTEwgY29udGV4 dC4NClNvIGFib3ZlIGNhc2UgYWxzbyBjYW4gaGFwcGVuLiBBbnl0aGluZyBtaXNzaW5nIGhlcmU/ ICANCg0KVGhhbmtzDQpSb2dlcihIb25nYm8uSGUpDQo+DQo+ICsJLyogU29tZSBvdGhlciB0aHJl YWQgaXMgdXNpbmcgaXQsIGRvbid0IHRvdWNoIGl0ICovDQo+ICsJcmV0dXJuIGZhbHNlOw0KPiAg IH0NCj4gICANCj4gICBzdGF0aWMgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXYsDQo+IC0tDQo+IDIuMTQuMQ0KPg0KPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0DQo+ IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwNCg0K