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=-10.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 44A66C49ED6 for ; Sat, 14 Sep 2019 08:54:56 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 1D05120717 for ; Sat, 14 Sep 2019 08:54:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1D05120717 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i93pN-0001ej-93; Sat, 14 Sep 2019 08:54:45 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i93pL-0001cB-OR for xen-devel@lists.xenproject.org; Sat, 14 Sep 2019 08:54:43 +0000 X-Inumbo-ID: 117ab549-d6cd-11e9-95c1-12813bfff9fa Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 117ab549-d6cd-11e9-95c1-12813bfff9fa; Sat, 14 Sep 2019 08:53:08 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 6D918B67B; Sat, 14 Sep 2019 08:53:07 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Sat, 14 Sep 2019 10:52:44 +0200 Message-Id: <20190914085251.18816-41-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190914085251.18816-1-jgross@suse.com> References: <20190914085251.18816-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v3 40/47] xen/sched: prepare per-cpupool scheduling granularity X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Tim Deegan , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Dario Faggioli , Julien Grall , Jan Beulich MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24tIGFuZCBvZmZsaW5pbmcgY3B1cyB3aXRoIGNvcmUgc2NoZWR1bGluZyBpcyByYXRoZXIgY29t cGxpY2F0ZWQgYXMKdGhlIGNwdXMgYXJlIHRha2VuIG9uLSBvciBvZmZsaW5lIG9uZSBieSBvbmUs IGJ1dCBzY2hlZHVsaW5nIHdhbnRzIHRoZW0KcmF0aGVyIHRvIGJlIGhhbmRsZWQgcGVyIGNvcmUu CgpBcyB0aGUgZnV0dXJlIHBsYW4gaXMgdG8gYmUgYWJsZSB0byBzZWxlY3Qgc2NoZWR1bGluZyBn cmFudWxhcml0eSBwZXIKY3B1cG9vbCBwcmVwYXJlIHRoYXQgYnkgc3RvcmluZyB0aGUgZ3JhbnVs YXJpdHkgaW4gc3RydWN0IGNwdXBvb2wgYW5kCnN0cnVjdCBzY2hlZF9yZXNvdXJjZSAod2UgbmVl ZCBpdCB0aGVyZSBmb3IgZnJlZSBjcHVzIHdoaWNoIGFyZSBub3QKYXNzb2NpYXRlZCB0byBhbnkg Y3B1cG9vbCkuIEZyZWUgY3B1cyB3aWxsIGFsd2F5cyB1c2UgZ3JhbnVsYXJpdHkgMS4KClN0b3Jl IHRoZSBzZWxlY3RlZCBncmFudWxhcml0eSBvcHRpb24gKGNwdSwgY29yZSBvciBzb2NrZXQpIGlu IHRoZQpjcHVwb29sIGFzIHdlbGwsIGFzIHdlIHdpbGwgbmVlZCBpdCB0byBzZWxlY3QgdGhlIGFw cHJvcHJpYXRlIGNwdSBtYXNrCndoZW4gcG9wdWxhdGluZyB0aGUgY3B1cG9vbCB3aXRoIGNwdXMu CgpUaGlzIHdpbGwgbWFrZSBvbi0gYW5kIG9mZmxpbmluZyBvZiBjcHVzIG11Y2ggZWFzaWVyIGFu ZCBhdm9pZHMKd3JpdGluZyBjb2RlIHdoaWNoIHdvdWxkIG5lZWRlZCB0byBiZSB0aHJvd24gYXdh eSBsYXRlci4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4K LS0tClYxOiBuZXcgcGF0Y2gKLS0tCiB4ZW4vY29tbW9uL2NwdXBvb2wuYyAgICAgICB8ICAyICsr CiB4ZW4vY29tbW9uL3NjaGVkdWxlLmMgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrLS0tLS0t LS0tLQogeGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmggfCAxMiArKysrKysrKysrKysKIDMgZmls ZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi9jcHVwb29sLmMgYi94ZW4vY29tbW9uL2NwdXBvb2wuYwppbmRleCBlMDMz M2E4NDE3Li5jN2Q4YTc0OGQ0IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2NwdXBvb2wuYworKysg Yi94ZW4vY29tbW9uL2NwdXBvb2wuYwpAQCAtMTc1LDYgKzE3NSw4IEBAIHN0YXRpYyBzdHJ1Y3Qg Y3B1cG9vbCAqY3B1cG9vbF9jcmVhdGUoCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAg ICAgfQogICAgIH0KKyAgICBjLT5ncmFudWxhcml0eSA9IHNjaGVkX2dyYW51bGFyaXR5OworICAg IGMtPm9wdF9ncmFudWxhcml0eSA9IG9wdF9zY2hlZF9ncmFudWxhcml0eTsKIAogICAgICpxID0g YzsKIApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZHVsZS5jIGIveGVuL2NvbW1vbi9zY2hl ZHVsZS5jCmluZGV4IGU1Yjc2NzhkYzAuLmIzYzFhYTA4MjEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21t b24vc2NoZWR1bGUuYworKysgYi94ZW4vY29tbW9uL3NjaGVkdWxlLmMKQEAgLTU2LDcgKzU2LDgg QEAgaW50IHNjaGVkX3JhdGVsaW1pdF91cyA9IFNDSEVEX0RFRkFVTFRfUkFURUxJTUlUX1VTOwog aW50ZWdlcl9wYXJhbSgic2NoZWRfcmF0ZWxpbWl0X3VzIiwgc2NoZWRfcmF0ZWxpbWl0X3VzKTsK IAogLyogTnVtYmVyIG9mIHZjcHVzIHBlciBzdHJ1Y3Qgc2NoZWRfdW5pdC4gKi8KLXN0YXRpYyB1 bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSBzY2hlZF9ncmFudWxhcml0eSA9IDE7CitlbnVtIHNj aGVkX2dyYW4gX19yZWFkX21vc3RseSBvcHRfc2NoZWRfZ3JhbnVsYXJpdHkgPSBTQ0hFRF9HUkFO X2NwdTsKK3Vuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHNjaGVkX2dyYW51bGFyaXR5ID0gMTsK IGJvb2wgX19yZWFkX21vc3RseSBzY2hlZF9kaXNhYmxlX3NtdF9zd2l0Y2hpbmc7CiBjb25zdCBj cHVtYXNrX3QgKnNjaGVkX3Jlc19tYXNrID0gJmNwdW1hc2tfYWxsOwogCkBAIC00MTIsMTAgKzQx MywxMCBAQCBzdGF0aWMgc3RydWN0IHNjaGVkX3VuaXQgKnNjaGVkX2FsbG9jX3VuaXQoc3RydWN0 IHZjcHUgKnYpCiB7CiAgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQsICoqcHJldl91bml0Owog ICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47CisgICAgdW5zaWduZWQgaW50IGdyYW4g PSBkLT5jcHVwb29sID8gZC0+Y3B1cG9vbC0+Z3JhbnVsYXJpdHkgOiAxOwogCiAgICAgZm9yX2Vh Y2hfc2NoZWRfdW5pdCAoIGQsIHVuaXQgKQotICAgICAgICBpZiAoIHVuaXQtPnZjcHVfbGlzdC0+ dmNwdV9pZCAvIHNjaGVkX2dyYW51bGFyaXR5ID09Ci0gICAgICAgICAgICAgdi0+dmNwdV9pZCAv IHNjaGVkX2dyYW51bGFyaXR5ICkKKyAgICAgICAgaWYgKCB1bml0LT52Y3B1X2xpc3QtPnZjcHVf aWQgLyBncmFuID09IHYtPnZjcHVfaWQgLyBncmFuICkKICAgICAgICAgICAgIGJyZWFrOwogCiAg ICAgaWYgKCB1bml0ICkKQEAgLTU4Miw3ICs1ODMsNyBAQCBpbnQgc2NoZWRfbW92ZV9kb21haW4o c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGNwdXBvb2wgKmMpCiAgICAgICAgIHJldHVybiBQVFJf RVJSKGRvbWRhdGEpOwogCiAgICAgdW5pdF9wcml2ID0geHphbGxvY19hcnJheSh2b2lkICosCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESVZfUk9VTkRfVVAoZC0+bWF4X3ZjcHVzLCBz Y2hlZF9ncmFudWxhcml0eSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElWX1JP VU5EX1VQKGQtPm1heF92Y3B1cywgYy0+Z3JhbnVsYXJpdHkpKTsKICAgICBpZiAoIHVuaXRfcHJp diA9PSBOVUxMICkKICAgICB7CiAgICAgICAgIHNjaGVkX2ZyZWVfZG9tZGF0YShjLT5zY2hlZCwg ZG9tZGF0YSk7CkBAIC0xODI1LDExICsxODI2LDExIEBAIHN0YXRpYyB2b2lkIHNjaGVkX3N3aXRj aF91bml0cyhzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnNkLAogICAgICAgICBpZiAoIGlzX2lkbGVf dW5pdChwcmV2KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHByZXYtPnJ1bnN0YXRlX2NudFtS VU5TVEFURV9ydW5uaW5nXSA9IDA7Ci0gICAgICAgICAgICBwcmV2LT5ydW5zdGF0ZV9jbnRbUlVO U1RBVEVfcnVubmFibGVdID0gc2NoZWRfZ3JhbnVsYXJpdHk7CisgICAgICAgICAgICBwcmV2LT5y dW5zdGF0ZV9jbnRbUlVOU1RBVEVfcnVubmFibGVdID0gc2QtPmdyYW51bGFyaXR5OwogICAgICAg ICB9CiAgICAgICAgIGlmICggaXNfaWRsZV91bml0KG5leHQpICkKICAgICAgICAgewotICAgICAg ICAgICAgbmV4dC0+cnVuc3RhdGVfY250W1JVTlNUQVRFX3J1bm5pbmddID0gc2NoZWRfZ3JhbnVs YXJpdHk7CisgICAgICAgICAgICBuZXh0LT5ydW5zdGF0ZV9jbnRbUlVOU1RBVEVfcnVubmluZ10g PSBzZC0+Z3JhbnVsYXJpdHk7CiAgICAgICAgICAgICBuZXh0LT5ydW5zdGF0ZV9jbnRbUlVOU1RB VEVfcnVubmFibGVdID0gMDsKICAgICAgICAgfQogICAgIH0KQEAgLTE5NzgsNyArMTk3OSw3IEBA IHZvaWQgc2NoZWRfY29udGV4dF9zd2l0Y2hlZChzdHJ1Y3QgdmNwdSAqdnByZXYsIHN0cnVjdCB2 Y3B1ICp2bmV4dCkKICAgICBlbHNlCiAgICAgewogICAgICAgICB2Y3B1X2NvbnRleHRfc2F2ZWQo dnByZXYsIHZuZXh0KTsKLSAgICAgICAgaWYgKCBzY2hlZF9ncmFudWxhcml0eSA9PSAxICkKKyAg ICAgICAgaWYgKCBzZC0+Z3JhbnVsYXJpdHkgPT0gMSApCiAgICAgICAgICAgICB1bml0X2NvbnRl eHRfc2F2ZWQoc2QpOwogICAgIH0KIApAQCAtMjA4OSwxMSArMjA5MCwxMiBAQCBzdGF0aWMgc3Ry dWN0IHNjaGVkX3VuaXQgKnNjaGVkX3dhaXRfcmVuZGV6dm91c19pbihzdHJ1Y3Qgc2NoZWRfdW5p dCAqcHJldiwKIHsKICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqbmV4dDsKICAgICBzdHJ1Y3QgdmNw dSAqdjsKKyAgICB1bnNpZ25lZCBpbnQgZ3JhbiA9IGdldF9zY2hlZF9yZXMoY3B1KS0+Z3JhbnVs YXJpdHk7CiAKICAgICBpZiAoICEtLXByZXYtPnJlbmRlenZvdXNfaW5fY250ICkKICAgICB7CiAg ICAgICAgIG5leHQgPSBkb19zY2hlZHVsZShwcmV2LCBub3csIGNwdSk7Ci0gICAgICAgIGF0b21p Y19zZXQoJm5leHQtPnJlbmRlenZvdXNfb3V0X2NudCwgc2NoZWRfZ3JhbnVsYXJpdHkgKyAxKTsK KyAgICAgICAgYXRvbWljX3NldCgmbmV4dC0+cmVuZGV6dm91c19vdXRfY250LCBncmFuICsgMSk7 CiAgICAgICAgIHJldHVybiBuZXh0OwogICAgIH0KIApAQCAtMjIxMyw2ICsyMjE1LDcgQEAgc3Rh dGljIHZvaWQgc2NoZWR1bGUodm9pZCkKICAgICBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnNkOwog ICAgIHNwaW5sb2NrX3QgICAgICAgICAgICpsb2NrOwogICAgIGludCBjcHUgPSBzbXBfcHJvY2Vz c29yX2lkKCk7CisgICAgdW5zaWduZWQgaW50ICAgICAgICAgIGdyYW4gPSBnZXRfc2NoZWRfcmVz KGNwdSktPmdyYW51bGFyaXR5OwogCiAgICAgQVNTRVJUX05PVF9JTl9BVE9NSUMoKTsKIApAQCAt MjIzOCwxMSArMjI0MSwxMSBAQCBzdGF0aWMgdm9pZCBzY2hlZHVsZSh2b2lkKQogCiAgICAgc3Rv cF90aW1lcigmc2QtPnNfdGltZXIpOwogCi0gICAgaWYgKCBzY2hlZF9ncmFudWxhcml0eSA+IDEg KQorICAgIGlmICggZ3JhbiA+IDEgKQogICAgIHsKICAgICAgICAgY3B1bWFza190IG1hc2s7CiAK LSAgICAgICAgcHJldi0+cmVuZGV6dm91c19pbl9jbnQgPSBzY2hlZF9ncmFudWxhcml0eTsKKyAg ICAgICAgcHJldi0+cmVuZGV6dm91c19pbl9jbnQgPSBncmFuOwogICAgICAgICBjcHVtYXNrX2Fu ZG5vdCgmbWFzaywgc2QtPmNwdXMsIGNwdW1hc2tfb2YoY3B1KSk7CiAgICAgICAgIGNwdW1hc2tf cmFpc2Vfc29mdGlycSgmbWFzaywgU0NIRURfU0xBVkVfU09GVElSUSk7CiAgICAgICAgIG5leHQg PSBzY2hlZF93YWl0X3JlbmRlenZvdXNfaW4ocHJldiwgJmxvY2ssIGNwdSwgbm93KTsKQEAgLTIz MDgsNiArMjMxMSw5IEBAIHN0YXRpYyBpbnQgY3B1X3NjaGVkdWxlX3VwKHVuc2lnbmVkIGludCBj cHUpCiAgICAgaW5pdF90aW1lcigmc2QtPnNfdGltZXIsIHNfdGltZXJfZm4sIE5VTEwsIGNwdSk7 CiAgICAgYXRvbWljX3NldCgmcGVyX2NwdShzY2hlZF91cmdlbnRfY291bnQsIGNwdSksIDApOwog CisgICAgLyogV2Ugc3RhcnQgd2l0aCBjcHUgZ3JhbnVsYXJpdHkuICovCisgICAgc2QtPmdyYW51 bGFyaXR5ID0gMTsKKwogICAgIC8qIEJvb3QgQ1BVIGlzIGRlYWx0IHdpdGggbGF0ZXIgaW4gc2No ZWR1bGVyX2luaXQoKS4gKi8KICAgICBpZiAoIGNwdSA9PSAwICkKICAgICAgICAgcmV0dXJuIDA7 CkBAIC0yNTk4LDYgKzI2MDQsNyBAQCBpbnQgc2NoZWR1bGVfY3B1X3N3aXRjaCh1bnNpZ25lZCBp bnQgY3B1LCBzdHJ1Y3QgY3B1cG9vbCAqYykKICAgICBzY2hlZF9mcmVlX3ZkYXRhKG9sZF9vcHMs IHZwcml2X29sZCk7CiAgICAgc2NoZWRfZnJlZV9wZGF0YShvbGRfb3BzLCBwcHJpdl9vbGQsIGNw dSk7CiAKKyAgICBnZXRfc2NoZWRfcmVzKGNwdSktPmdyYW51bGFyaXR5ID0gYyA/IGMtPmdyYW51 bGFyaXR5IDogMTsKICAgICBnZXRfc2NoZWRfcmVzKGNwdSktPmNwdXBvb2wgPSBjOwogICAgIC8q IFdoZW4gYSBjcHUgaXMgYWRkZWQgdG8gYSBwb29sLCB0cmlnZ2VyIGl0IHRvIGdvIHBpY2sgdXAg c29tZSB3b3JrICovCiAgICAgaWYgKCBjICE9IE5VTEwgKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUveGVuL3NjaGVkLWlmLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYuaAppbmRleCA1NjI1 Y2FmYjZlLi5jYjU4YmFkMGZmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYu aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYuaApAQCAtMjUsNiArMjUsMTUgQEAgZXh0 ZXJuIGludCBzY2hlZF9yYXRlbGltaXRfdXM7CiAvKiBTY2hlZHVsaW5nIHJlc291cmNlIG1hc2su ICovCiBleHRlcm4gY29uc3QgY3B1bWFza190ICpzY2hlZF9yZXNfbWFzazsKIAorLyogTnVtYmVy IG9mIHZjcHVzIHBlciBzdHJ1Y3Qgc2NoZWRfdW5pdC4gKi8KK2VudW0gc2NoZWRfZ3JhbiB7Cisg ICAgU0NIRURfR1JBTl9jcHUsCisgICAgU0NIRURfR1JBTl9jb3JlLAorICAgIFNDSEVEX0dSQU5f c29ja2V0Cit9OworZXh0ZXJuIGVudW0gc2NoZWRfZ3JhbiBvcHRfc2NoZWRfZ3JhbnVsYXJpdHk7 CitleHRlcm4gdW5zaWduZWQgaW50IHNjaGVkX2dyYW51bGFyaXR5OworCiAvKgogICogSW4gb3Jk ZXIgdG8gYWxsb3cgYSBzY2hlZHVsZXIgdG8gcmVtYXAgdGhlIGxvY2stPmNwdSBtYXBwaW5nLAog ICogd2UgaGF2ZSBhIHBlci1jcHUgcG9pbnRlciwgYWxvbmcgd2l0aCBhIHByZS1hbGxvY2F0ZWQg c2V0IG9mCkBAIC00OCw2ICs1Nyw3IEBAIHN0cnVjdCBzY2hlZF9yZXNvdXJjZSB7CiAKICAgICAv KiBDcHUgd2l0aCBsb3dlc3QgaWQgaW4gc2NoZWR1bGluZyByZXNvdXJjZS4gKi8KICAgICB1bnNp Z25lZCBpbnQgICAgICAgIG1hc3Rlcl9jcHU7CisgICAgdW5zaWduZWQgaW50ICAgICAgICBncmFu dWxhcml0eTsKICAgICBjb25zdCBjcHVtYXNrX3QgICAgKmNwdXM7ICAgICAgICAgICAvKiBjcHVz IGNvdmVyZWQgYnkgdGhpcyBzdHJ1Y3QgICAgICovCiB9OwogCkBAIC01MzIsNiArNTQyLDggQEAg c3RydWN0IGNwdXBvb2wKICAgICBzdHJ1Y3QgY3B1cG9vbCAgICpuZXh0OwogICAgIHN0cnVjdCBz Y2hlZHVsZXIgKnNjaGVkOwogICAgIGF0b21pY190ICAgICAgICAgcmVmY250OworICAgIHVuc2ln bmVkIGludCAgICAgZ3JhbnVsYXJpdHk7CisgICAgZW51bSBzY2hlZF9ncmFuICBvcHRfZ3JhbnVs YXJpdHk7CiB9OwogCiAjZGVmaW5lIGNwdXBvb2xfb25saW5lX2NwdW1hc2soX3Bvb2wpIFwKLS0g CjIuMTYuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=