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=-2.0 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 EAF5BC433E0 for ; Sun, 28 Feb 2021 19:24:53 +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 6559064DDC for ; Sun, 28 Feb 2021 19:24:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6559064DDC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=nouveau-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C379E6E2E3; Sun, 28 Feb 2021 19:24:52 +0000 (UTC) Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [IPv6:2a00:1450:4864:20::62f]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A30B6E2E3 for ; Sun, 28 Feb 2021 19:24:51 +0000 (UTC) Received: by mail-ej1-x62f.google.com with SMTP id jt13so24273834ejb.0 for ; Sun, 28 Feb 2021 11:24:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=reply-to:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=jIaqdRF9+G4yV4wZ4pzKcCcaSIOqGR2isnFjgkfLYzM=; b=EAh3LRz5bvlPxbIAEBsi5gscHChFyKl8Niv8dGFiji43Cmj2gPCCL8FBPQcG8FHutb 075N8t1en20GPmQI/9M81+PnVThnyxjVkl9tn2NhqsfCqQw4tLvGgaJ6HAqy5H0uFyTV ZQEP3Cwgj2xiNfNyuVtRtBxFeRK57QpbcxcFCFHfBtL9l/NN4766lPKIg8xx24XgfSDX Lu2T+sCkfSpWl2B7fdG5bSeySe9vFVC0t5qvJjhIcQeJO+y1uqDymP8aNV/jNX47M6Vo YYIWKo8YjAgvYIesH07WGCJsGjvJpOgEmwf23hgZ9KW3sgreidaiUaK9PMUjsPpYUoXw /8/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:cc:references:from :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=jIaqdRF9+G4yV4wZ4pzKcCcaSIOqGR2isnFjgkfLYzM=; b=q97OyS6I4+GPvix5Q1x/iPXlksHFyLRDkXga7fDw7eu1bWREECF82J6krQD85p2zQw WlzlFKOm/9kecKe0I6+CtyWv1rEAPo6Fv29ayFtrE/tK+zJDSxUuEGb6k89FWLIaJ7Yb Cylq6FhvDe7B5y/UcMUtEl8Qq6MCkZr44xEYpmhZJnxrTi+ErtTNEmSLOLawvzuBsxse Gx3wvsxImxNwOv3c0A+XpGO3VyPHDFnNBzOChkSGlnhQElyg0Frz+O+QPmR7mMUIoHjK GDVOShO66jc28Vg5czHjev8t66Ymge2pazr6C9VrXT6OMxA6fFK+WdJUpGLigUxUqgRW qYkg== X-Gm-Message-State: AOAM530vkMKJjnt2UlzJ33OfKrtnnBN7mQCr+BfLXVuJpUiUfrRUq6qM aPd5LSV7TR4jchLgPS4uw0M= X-Google-Smtp-Source: ABdhPJwJrw0zg+YI8Vt8XzqTXz9XK5R4kzCqVWwSB5y/yddF8vtI5h9s6jywrV6TyU4r3aJUbr4dQA== X-Received: by 2002:a17:906:6047:: with SMTP id p7mr12840593ejj.400.1614540289759; Sun, 28 Feb 2021 11:24:49 -0800 (PST) Received: from ?IPv6:2a02:8070:a396:f000:42be:1b84:875b:eaf? ([2a02:8070:a396:f000:42be:1b84:875b:eaf]) by smtp.googlemail.com with ESMTPSA id y11sm10964954ejd.72.2021.02.28.11.24.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 28 Feb 2021 11:24:49 -0800 (PST) To: Ilia Mirkin References: <91687a59-dae6-199e-ca4a-35b49b6959ea@gmail.com> <56b77cbe-6ace-6850-b26a-a762ae94dbcd@gmail.com> From: Uwe Sauter Message-ID: Date: Sun, 28 Feb 2021 20:24:47 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: Content-Language: de-DE Subject: Re: [Nouveau] [PATCH 2/3] drm/nouveau/kms/nv50-: Report max cursor size to userspace X-BeenThere: nouveau@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Nouveau development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: uwe.sauter.de@gmail.com Cc: Alex Riesen , nouveau , Simon Ser Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: nouveau-bounces@lists.freedesktop.org Sender: "Nouveau" CgpBbSAyOC4wMi4yMSB1bSAyMDoxMCBzY2hyaWViIElsaWEgTWlya2luOgo+IE9uIFN1biwgRmVi IDI4LCAyMDIxIGF0IDEyOjU5IFBNIFV3ZSBTYXV0ZXIgPHV3ZS5zYXV0ZXIuZGVAZ21haWwuY29t PiB3cm90ZToKPj4KPj4KPj4KPj4gQW0gMjguMDIuMjEgdW0gMTg6MDIgc2NocmllYiBJbGlhIE1p cmtpbjoKPj4+IE9uIFN1biwgRmViIDI4LCAyMDIxIGF0IDEwOjEwIEFNIFV3ZSBTYXV0ZXIgPHV3 ZS5zYXV0ZXIuZGVAZ21haWwuY29tPiB3cm90ZToKPj4+Pgo+Pj4+Cj4+Pj4KPj4+PiBBbSAyNy4w Mi4yMSB1bSAyMjoyNiBzY2hyaWViIElsaWEgTWlya2luOgo+Pj4+PiBPbiBTYXQsIEZlYiAyNywg MjAyMSBhdCA3OjI4IEFNIFV3ZSBTYXV0ZXIgPHV3ZS5zYXV0ZXIuZGVAZ21haWwuY29tPiB3cm90 ZToKPj4+Pj4+Cj4+Pj4+PiBJIGNhbiBhbHNvIHJlcG9ydCB0aGF0IHRoZSBtb2Rlc2V0dGluZyBk ZHggdGhhdCBjb21lcyB3aXRoIHhvcmctc2VydmVyIDEuMjAuMTAtMyAoQXJjaCBMaW51eCBwYWNr YWdlKSBzaG93cyB0aGlzIGtpbmQgb2YKPj4+Pj4+IGN1cnNvci1jdXQtaW50by1ob3Jpem9udGFs LXN0cmlwZXMgYmVoYXZpb3IuIENoYW5naW5nIHRvIHhmODYtdmlkZW8tbm91dmVhdSAxLjAuMTct MSBzb2x2ZXMgdGhpcyBpc3N1ZS4gQnV0IG5vdXZlYXUgaGFzCj4+Pj4+PiBpc3N1ZXMgd2l0aCBN YXRlIDEuMjQgKGFzIGRpc2N1c3NlZCBlYXJsaWVyIHRoaXMgbW9udGgpLgo+Pj4+Pj4KPj4+Pj4+ IE15IGhhcmR3YXJlOgo+Pj4+Pj4gIyBsc3BjaSAtcyAzOjAuMCAtdgo+Pj4+Pj4gMDM6MDAuMCBW R0EgY29tcGF0aWJsZSBjb250cm9sbGVyOiBOVklESUEgQ29ycG9yYXRpb24gR0syMDhCIFtHZUZv cmNlIEdUIDcxMF0gKHJldiBhMSkgKHByb2ctaWYgMDAgW1ZHQSBjb250cm9sbGVyXSkKPj4+Pj4+ ICAgICAgICAgICAgU3Vic3lzdGVtOiBBU1VTVGVLIENvbXB1dGVyIEluYy4gR1Q3MTAtNEgtU0wt MkdENQo+Pj4+Pj4gICAgICAgICAgICBGbGFnczogYnVzIG1hc3RlciwgZmFzdCBkZXZzZWwsIGxh dGVuY3kgMCwgSVJRIDM2LCBJT01NVSBncm91cCAxMgo+Pj4+Pj4gICAgICAgICAgICBNZW1vcnkg YXQgZmIwMDAwMDAgKDMyLWJpdCwgbm9uLXByZWZldGNoYWJsZSkgW3NpemU9MTZNXQo+Pj4+Pj4g ICAgICAgICAgICBNZW1vcnkgYXQgZmZmMDAwMDAwMCAoNjQtYml0LCBwcmVmZXRjaGFibGUpIFtz aXplPTEyOE1dCj4+Pj4+PiAgICAgICAgICAgIE1lbW9yeSBhdCBmZmY4MDAwMDAwICg2NC1iaXQs IHByZWZldGNoYWJsZSkgW3NpemU9MzJNXQo+Pj4+Pj4gICAgICAgICAgICBJL08gcG9ydHMgYXQg ZjAwMCBbc2l6ZT0xMjhdCj4+Pj4+PiAgICAgICAgICAgIEV4cGFuc2lvbiBST00gYXQgZmMwMDAw MDAgW2Rpc2FibGVkXSBbc2l6ZT01MTJLXQo+Pj4+Pj4gICAgICAgICAgICBDYXBhYmlsaXRpZXM6 IFs2MF0gUG93ZXIgTWFuYWdlbWVudCB2ZXJzaW9uIDMKPj4+Pj4+ICAgICAgICAgICAgQ2FwYWJp bGl0aWVzOiBbNjhdIE1TSTogRW5hYmxlKyBDb3VudD0xLzEgTWFza2FibGUtIDY0Yml0Kwo+Pj4+ Pj4gICAgICAgICAgICBDYXBhYmlsaXRpZXM6IFs3OF0gRXhwcmVzcyBMZWdhY3kgRW5kcG9pbnQs IE1TSSAwMAo+Pj4+Pj4gICAgICAgICAgICBDYXBhYmlsaXRpZXM6IFsxMDBdIFZpcnR1YWwgQ2hh bm5lbAo+Pj4+Pj4gICAgICAgICAgICBDYXBhYmlsaXRpZXM6IFsxMjhdIFBvd2VyIEJ1ZGdldGlu ZyA8Pz4KPj4+Pj4+ICAgICAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNjAwXSBWZW5kb3IgU3BlY2lm aWMgSW5mb3JtYXRpb246IElEPTAwMDEgUmV2PTEgTGVuPTAyNCA8Pz4KPj4+Pj4+ICAgICAgICAg ICAgQ2FwYWJpbGl0aWVzOiBbOTAwXSBTZWNvbmRhcnkgUENJIEV4cHJlc3MKPj4+Pj4+ICAgICAg ICAgICAgS2VybmVsIGRyaXZlciBpbiB1c2U6IG5vdXZlYXUKPj4+Pj4+ICAgICAgICAgICAgS2Vy bmVsIG1vZHVsZXM6IG5vdXZlYXUKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gSWYgSSBjYW4gaGVscCBp biBhbnkgd2F5IHBsZWFzZSBsZXQgbWUga25vdy4KPj4+Pj4KPj4+Pj4gVGhhbmtzLCB0aGF0J3Mg Z29vZCBpbmZvLiBTaW1vbiAtIHlvdSBvcmlnaW5hbGx5IHNhaWQgdGhhdCBldmVyeXRoaW5nCj4+ Pj4+IGxvb2tlZCBnb29kIG9uIHlvdXIgR0syMDgsIHNvIGEgcmV0ZXN0IHdvdWxkIGJlIHN1cGVy Lgo+Pj4+Pgo+Pj4+PiBJIGp1c3QgZG91YmxlLWNoZWNrZWQgb24gYSBHUDEwOCAod2l0aCBhbiBv bGRlciBrZXJuZWwsIGJ1dCBzYW1lIGlkZWEKPj4+Pj4gc2hvdWxkIGFwcGx5KSwgYW5kIGl0IHNl ZW1zIGxpa2UgMjU2eDI1NiBjdXJzb3JzIGFyZSBmaW5lIHRoZXJlLgo+Pj4+PiBIb3dldmVyIHRo ZSBkaXNwbGF5IGxvZ2ljIGhhcyBnb25lIHRocm91Z2ggc29tZSBpZGVhbGx5IG5vLW9wIHVwZGF0 ZXMKPj4+Pj4gc2luY2UgdGhhdCBrZXJuZWwgdmVyc2lvbiwgYnV0IHRoZXJlIGNvdWxkIHZlcnkg ZWFzaWx5IGJlIGlzc3Vlcy4KPj4+Pj4KPj4+Pj4gQ2FuIHlvdSB0cnkgQWxleCdzIHBhdGNoIHRv IG1vZGV0ZXN0IGFuZCBjb25maXJtIHRoYXQgeW91IHNlZSBpc3N1ZXMKPj4+Pj4gd2l0aCBtb2Rl dGVzdD8gSWYgc28sIGNhbiB5b3UgKGFuZCBtYXliZSBBbGV4IGFzIHdlbGwpIHRyeSBhbiBvbGRl cgo+Pj4+PiBrZXJuZWwgKEknbSBvbiA1LjYpIGFuZCBzZWUgaWYgbW9kZXRlc3QgYmVoYXZlcyB3 ZWxsIHRoZXJlLiBbVGhlIHBhdGNoCj4+Pj4+IGluIHF1ZXN0aW9uIHdhcyB0byBleHBvc2UgMjU2 eDI1NiBhcyB0aGUgJ3ByZWZlcnJlZCcgc2l6ZSwgYnV0IHN1cHBvcnQKPj4+Pj4gZm9yIHRoZSBs YXJnZXIgY3Vyc29ycyBoYXMgYmVlbiBhcm91bmQgZm9yIGEgd2hpbGUuXSBBbGV4IC0gaWYgeW91 Cj4+Pj4+IGhhdmUgdGltZSwgc2FtZSBxdWVzdGlvbiB0byB5b3UuCj4+Pj4+Cj4+Pj4+IFlvdSBj YW4gZmluZCB0aGUgcGF0Y2ggaGVyZToKPj4+Pj4gaHR0cHM6Ly9saXN0cy54Lm9yZy9hcmNoaXZl cy9ub3V2ZWF1LzIwMjEtRmVicnVhcnkvMDM3OTkyLmh0bWwKPj4+Pgo+Pj4+IEkgaGFkIHRvIGlu c3RhbGwgYSBwYXJhbGxlbCBBcmNoIExpbnV4IHRvIG15IGV4aXN0aW5nIHByb2R1Y3Rpb24gc3lz dGVtIGluIG9yZGVyIHRvIGtlZXAgaXQgY2xlYW4gZnJvbSBhbGwgdGhlCj4+Pj4gZGV2ZWxvcG1l bnQgc3R1ZmYuCj4+Pj4KPj4+PiBTeXN0ZW0gc3VtbWFyeSAobW9zdCByZWNlbnQpOgo+Pj4+IEFN RCBSeXplbiAzIDMxMDAKPj4+PiBHaWdhYnl0ZSBCNTUwTSBTMkggd2l0aCBCSU9TIEYxM2MKPj4+ PiBBc3VzIEdUNzEwLTRILVNMLTJHRDUgKEdLMjA4QiBbR2VGb3JjZSBHVCA3MTBdIChyZXYgYTEp KSB1c2luZyBub3V2ZWF1IGtlcm5lbCBtb2R1bGUKPj4+PiAzMkdCIEREUjQtMzIwME1IeiBFQ0MK Pj4+Pgo+Pj4+IGxpYmRybSAyLjQuMTA0LTEKPj4+PiBsaW51eCA1LjExLjIuYXJjaDEtMQo+Pj4+ IG1lc2EgMjAuMy40LTMKPj4+PiB4Zjg2LXZpZGVvLW5vdXZlYXUgMS4wLjE3LTEKPj4+Pgo+Pj4+ Cj4+Pj4KPj4+PiBJIGJ1aWx0IGxpYmRybSAyLjQuMTA0LnIxNi5nYTliYjMyY2YgaW4gb3JkZXIg dG8gZ2V0IG1vZGV0ZXN0Lgo+Pj4+Cj4+Pj4gV2l0aCB1bm1vZGlmaWVkIGtlcm5lbCAvIG1vZGV0 ZXN0IChjdz02NCwgY2g9NjQpIEkgY2FsbDoKPj4+Pgo+Pj4+ICQgLi9tb2RldGVzdCAtYyB8Z3Jl cCAnXlswLTldXHxwcmVmZXJyZWQnCj4+Pj4gODUgIDg2ICBjb25uZWN0ZWQgSERNSS1BLTEgICAg ICAgIDUzMHgzMDAgICA0MCAgODYKPj4+PiAgICAgICMwIDE5MjB4MTA4MCA2MC4wMCAxOTIwIDIw MDggMjA1MiAyMjAwIDEwODAgMTA4NCAxMDg5IDExMjUgMTQ4NTAwIGZsYWdzOiBwaHN5bmMsIHB2 c3luYzsgdHlwZTogcHJlZmVycmVkLCBkcml2ZXIKPj4+PiA4NyAgMCBkaXNjb25uZWN0ZWQgIEhE TUktQS0yICAgICAgICAweDAgICAwIDg4Cj4+Pj4gODkgIDAgZGlzY29ubmVjdGVkICBIRE1JLUEt MyAgICAgICAgMHgwICAgMCA5MAo+Pj4+IDkxICAwIGRpc2Nvbm5lY3RlZCAgSERNSS1BLTQgICAg ICAgIDB4MCAgIDAgOTIKPj4+Pgo+Pj4+IC4vbW9kZXRlc3QgLXMgODU6MTkyMHgxMDgwIC1DCj4+ Pj4gdHJ5aW5nIHRvIG9wZW4gZGV2aWNlICdpOTE1Jy4uLmZhaWxlZAo+Pj4+IHRyeWluZyB0byBv cGVuIGRldmljZSAnYW1kZ3B1Jy4uLmZhaWxlZAo+Pj4+IHRyeWluZyB0byBvcGVuIGRldmljZSAn cmFkZW9uJy4uLmZhaWxlZAo+Pj4+IHRyeWluZyB0byBvcGVuIGRldmljZSAnbm91dmVhdScuLi5k b25lCj4+Pj4gc2V0dGluZyBtb2RlIDE5MjB4MTA4MC02MC4wMEh6IG9uIGNvbm5lY3RvcnMgODUs IGNydGMgNTAKPj4+PiBzdGFydGluZyBjdXJzb3IKPj4+PiBeQwo+Pj4+Cj4+Pj4gVGhpcyBzaG93 cyBzZXZlcmFsIHRoaW5nczoKPj4+PiAqIFRoZXJlIGlzIGEgbW92aW5nIGdyYXksIGhhbGYgdHJh bnNwYXJlbnQgc3F1YXJlIGJvdW5jaW5nIGFyb3VuZC4gSSBiZWxpZXZlIHRoYXQgdGhpcyBpcwo+ Pj4+ICAgICAgdGhlIG1lbnRpb25lZCBjdXJzb3IuCj4+Pj4KPj4+PiAqIFRoZSBjdXJzb3IgbW92 ZW1lbnQgaGFwcGVucyBhdCB2YXJpb3VzIHNwZWVkcywgc29tZXRpbWVzIHN0YXlpbmcgaGFsZiBh IHNlY29uZCBvbiB0aGUKPj4+PiAgICAgIHNhbWUgcG9zaXRpb24gdG8gdGhlbiBtb3ZlIHF1aXRl IGZhc3QgdG8gYW5vdGhlciwgdGhlbiBzbG93aW5nIGRvd24uCj4+Pj4KPj4+PiAqIFRoZSBjdXJz b3IgaXMgZmxpY2tlcmluZy4KPj4+Pgo+Pj4+ICogV2hlbiAoZm9yY2VmdWxseSkgZW5kaW5nIHRo ZSB0ZXN0IHRoZSBzY3JlZW4gaXMgbm90IHByb3Blcmx5IHJlc2V0LCBsZWF2aW5nIHRoZQo+Pj4+ ICAgICAgcHJldmlvdXMgY29udGVudCBpbiBhIHN0YXRlIHNpbWlsYXIgdG8gdGhlIHBoZW5vbWVu b24gd2l0aCB0aGUgbW91c2UgY3Vyc29yIHRoYXQgc3RhdGVkCj4+Pj4gICAgICB0aGlzIGRpc2N1 c3Npb24uIE9uIG15IEZ1bGxIRCBkaXNwbGF5IHRoZSBjb25zb2xlIG91dHB1dCBpcyBzbGljZWQg aG9yaXpvbnRhbGx5IGFuZAo+Pj4+ICAgICAgb2Zmc2V0IHdpdGggYWJvdXQgMS81dGggb2YgdGhl IHNjcmVlbiB3aWR0aC4KPj4+Pgo+Pj4+IFRoaXMgYWxzbyBoYXBwZW5zIG9uIG15IG90aGVyIG1h Y2hpbmUgd2l0aCBhIFhlb24gRTMtMTI0NSB2MyB3aXRoIGludGVncmF0ZWQgZ3JhcGhpY3Mgb24g YSBBU1JvY2sgQzIyNiBXUywgdXNpbmcgdGhlCj4+Pj4gaTkxNSBrZXJuZWwgbW9kdWxlIGFuZCBz YW1lIHNvZnR3YXJlIHZlcnNpb25zIGFzIGFib3ZlLgo+Pj4+Cj4+Pj4gQXBwbHlpbmcgQWxleCcg cGF0Y2ggd2l0aCAoY3c9MTI4LCBjaD0xMjgpIHNob3dzIGEgY3Vyc29yIHRoYXQgY29udGFpbnMg dGhlIHNhbWUgdGVzdCBwYXR0ZXJuIGFzIGlzIHNob3duIGluIHRoZQo+Pj4+IGJhY2tncm91bmQu IFRoZSBiZWhhdmlvciBpcyBhcyBqdW1weSBhbmQgZmxpY2tlcnkgYXMgaXQgd2FzIHdpdGggc2l6 ZSA2NC4KPj4+PiBXaGVuIGtpbGxpbmcgdGhlIHRlc3QgdGhlIGxhc3QgcG9zaXRpb24gb2YgdGhl IGN1cnNvciBzdGlsbCBzaG93cyB0aGUgdGVzdCBwYXR0ZXJuIHdoaWxlIHRoZSBiYWNrZ3JvdW5k IGlzIGFnYWluIHNsaWNlZAo+Pj4+IGFuZCBzaHVmZmxlZCBob3Jpem9udGFsbHkuCj4+Pj4KPj4+ PiBTZXR0aW5nIHRoZSBzaXplIHRvIDI1NiBzaG93cyBhbiBldmVuIGxhcmdlciBjdXJzb3IuIEl0 IHNob3dzIHRoZSBzYW1lIGp1bXB5IGFuZCBmbGlja2VyeSBiZWhhdmlvciBhcyB0aGUgb3RoZXIg dHdvLiBUaGUKPj4+PiBjdXJzb3IgaXRzZWxmIGFsc28gc2hvd3MgYSBob3Jpem9udGFsIHNsaWNl ZCBpbiB0aGUgbG93ZXIgaGFsZi4gQWZ0ZXIga2lsbGluZyB0aGUgdGVzdCB0aGUgY3Vyc29yJ3Mg bGFzdCBwb3NpdGlvbiBzdGlsbAo+Pj4+IHNob3dzIHRoZSB0ZXN0IHBhdHRlcm4gd2hpbGUgdGhl IGJhY2tncm91bmQgaXMgc2xpY2VkLgo+Pj4+Cj4+Pj4gVGhpcyB0ZXN0aW5nIHdhcyBhbGwgY29u ZHVjdGVkIHdpdGggcGFja2FnZXMgZnJvbSB0aGUgQXJjaCBMaW51eCBkaXN0cmlidXRpb24gKGJ1 dCBmb3IgbW9kZXRlc3QpLgo+Pj4+Cj4+Pj4gUXVlc3Rpb25zOgo+Pj4+Cj4+Pj4gMSkgSXMgdGhp cyBqdW1weSBhbmQgZmxpY2tlcnkgYmVoYXZpb3IgZXhwZWN0ZWQgb3Igc2hvdWxkIHRoZSBjdXJz b3IgbW92ZSBzbW9vdGhseT8KPj4+Cj4+PiBHb29kIHF1ZXN0aW9uLiBJdCdzIGRlZmluaXRlbHkg anVtcHkvZmxpY2tlcnkgZm9yIG1lIHRvby4gSSBoYXZlbid0Cj4+PiBsb29rZWQgYXQgd2h5LCBi dXQgSSB3b3VsZG4ndCB3b3JyeSBhYm91dCBpdC4gSSBzdXNwZWN0IGl0IGhhcyB0byBkbwo+Pj4g d2l0aCB0aGUgbWVjaGFuaWNzIG9mIGhvdyBpdCBjYXVzZXMgdGhlIGN1cnNvciB0byBiZSBtb3Zl ZC4KPj4+Cj4+Pj4KPj4+PiAyKSBXaXRoIHVubW9kaWZpZWQgbW9kZXRlc3QsIHdoYXQgc2hvdWxk IHRoZSBjdXJzb3IgbG9vayBsaWtlPyBXaXRob3V0IGZ1cnRoZXIgaW5zcGVjdGlvbgo+Pj4+ICAg ICAgIG9mIHRoZSBjb2RlIEkgc3VzcGVjdCB0aGF0IHRoZSBjaGFuZ2UgZnJvbSBVVElMX1BBVFRF Uk5fUExBSU4gdG8gVVRJTF9QQVRURVJOX1NNUFRFCj4+Pj4gICAgICAgY2hhbmdlZCB0aGUgY3Vy c29yJ3MgYXBwZWFyYW5jZS4KPj4+Cj4+PiBUaGUgUExBSU4gcGF0dGVybiBpcyBqdXN0IGdyYXks IHdoaWNoIGlzbid0IG5lY2Vzc2FyaWx5IGEgZ3JlYXQgdGVzdAo+Pj4gdG8gc2VlIHZpc3VhbCBj b3JydXB0aW9uLgo+Pj4KPj4+Pgo+Pj4+IDQpIEhvdyBsb25nIGlzIG1vZGV0ZXN0IGV4cGVjdGVk IHRvIHJ1bj8gT24gdGhlIGZpcnN0IHJ1biBJIGxldCBpdCB0ZXN0IGZvciBvdmVyIDEwbWluCj4+ Pj4gICAgICAgYmVmb3JlIGRlY2lkaW5nIHRvIGtpbGwgaXQuCj4+Pgo+Pj4gVW50aWwgeW91IGhp dCBlbnRlciAob3IgZXNjYXBlIG9yIG1heWJlIGFueSBrZXksIEkgZm9yZ2V0KS4KPj4+Cj4+Pj4K Pj4+PiA1KSBJcyBtb2RldGVzdCBleHBlY3RlZCB0byByZXNldCB0aGUgZGlzcGxheSB0byB0aGUg c3RhdGUgaXQgd2FzIGJlZm9yZT8gV2h5IGRvZXNuJ3QgaXQKPj4+PiAgICAgICBkbyB0aGF0IHdo ZW4gYmVpbmcga2lsbGVkPwo+Pj4KPj4+IE5vLiBZb3UgY2FuIHN3aXRjaCB2dCdzIGJhY2sgYW5k IGZvcnRoIHRvIHJlc3RvcmUuIEl0J3MganVzdCBhIHRlc3QKPj4+IGFwcGxpY2F0aW9uLiBJdCdz IHVuZm9ydHVuYXRlbHkgbm90IGFuIGVudGlyZWx5IHRyaXZpYWwgdGhpbmcgdG8gZG8uCj4+Pgo+ Pj4+Cj4+Pj4gNikgV2hlcmUgZG8geW91IGV4cGVjdCB0aGlzIGJ1ZyB0byBjb21lIGZyb20/IEtl cm5lbCBub3V2ZWF1IGRyaXZlciwgbW9kZXNldHRpbmcgZGR4LAo+Pj4+ICAgICAgIG5vdXZlYXUg ZGR4Pwo+Pj4KPj4+IG1vZGV0ZXN0IGludGVyYWN0cyB3aXRoIHRoZSBrZXJuZWwgZGlyZWN0bHku IFRoZSBidWcgaXMgbW9zdCBsaWtlbHkgaW4KPj4+IHRoZSBoYXJkd2FyZSwgYW5kIHdlIHNob3Vs ZCBqdXN0IG5vdCB1c2UgdGhlIDI1NngyNTYgc2l6ZSBldmVuIHRob3VnaAo+Pj4gYWxsZWdlZGx5 IHRoZSBodyBzdXBwb3J0cyBpdC4gQnV0IHBlcmhhcHMgdGhlIGtlcm5lbCBzY3Jld3Mgc29tZXRo aW5nCj4+PiB1cC4KPj4+Cj4+Pj4KPj4+PiA3KSBBbnkgcHJvcG9zYWwgd2hhdCBrZXJuZWwgdG8g dGVzdCBuZXh0Pwo+Pj4KPj4+IElmIHlvdSBjb3VsZCB0ZXN0IG1vZGV0ZXN0IHdpdGggMjU2eDI1 NiBjdXJzb3Igb24gYSBwcmUtNS45IGtlcm5lbCBhbmQKPj4+IGVuc3VyZSB0aGF0IHlvdSBzZWUg dGhlIHNhbWUgY29ycnVwdGlvbiBpbiB0aGUgY3Vyc29yIGltYWdlLCB0aGF0J2QKPj4+IGNvbmZp cm0gdGhhdCB3ZSBkaWRuJ3QganVzdCBzY3JldyBzb21ldGhpbmcgdXAgaW4gdGhlIG1hY3JvIHJl d29yawo+Pj4gd2hpY2ggbGFuZGVkIGluIDUuOSwgdnMgYSBodyBpc3N1ZS4KPj4KPj4KPj4gT2ss IHR3byBtb3JlIGtlcm5lbHMgdGVzdGVkLgo+Pgo+PiA1LjEwLjE5Ogo+PiAqIG1vZGV0ZXN0IHNh bWUgYXMgNS4xMS4yCj4+ICogbW91c2UgcG9pbnRlciBpbiBYIHNlc3Npb24gaXMgb2sgKGJvdGgg bW9kZXNldHRpbmcgZGR4IGFuZCBub3V2ZWF1IGRkeCkKPj4gKiAoTWF0ZSBpc3N1ZSBkb2VzIGFw cGVhciB3aXRoIG5vdXZlYXUgZGR4IGJ1dCBub3Qgd2l0aCBtb2Rlc2V0dGluZyBkZHgpCj4+Cj4+ IDUuNC4xMDE6Cj4+ICogbW9kZXRlc3QgY29ubmVjdG9yIElEIGNoYW5nZWQgZnJvbSA4NSB0byA2 OQo+PiAqIG90aGVyIHRoYW4gdGhhdCBzYW1lIGFzIDUuMTEuMgo+PiAqIG1vdXNlIHBvaW50ZXIg aW4gWCBzZXNzaW9uIGlzIG9rIChib3RoIG1vZGVzZXR0aW5nIGRkeCBhbmQgbm91dmVhdSBkZHgp Cj4+ICogKE1hdGUgaXNzdWUgZG9lcyBhcHBlYXIgd2l0aCBub3V2ZWF1IGRkeCBidXQgbm90IHdp dGggbW9kZXNldHRpbmcgZGR4KQo+Pgo+Pgo+PiBTdW1tYXJ5Ogo+PiAgICAgICAgICAgICAgICAg ICAgIDUuNC4xMDEgIHwgNS4xMC4xOSAgfCA1LjExLjIKPj4gbW9kZXRlc3QtNjQgICAgICAgc2Vl bXMgb2sgfCBzZWVtcyBvayB8IHNlZW1zIG9rCj4+IG1vZGV0ZXN0LTEyOCAgICAgIHNlZW1zIG9r IHwgc2VlbXMgb2sgfCBzZWVtcyBvawo+PiBtb2RldGVzdC0yNTYgICAgICBzbGljZWQgICB8IHNs aWNlZCAgIHwgc2xpY2VkCj4+IFggbW91c2UgcG9pbnRlciAgIG9rICAgICAgIHwgb2sgICAgICAg fCBzbGljZWQKPj4gKG1vZGVzZXR0aW5nIGRkeCkKPj4gWCBtb3VzZSBwb2ludGVyICAgb2sgICAg ICAgfCBvayAgICAgICB8IG9rCj4+IChub3V2ZWF1IGRkeCkKCk9uZSBtb3JlIGRhdGEgcG9pbnQ6 CkxpbnVzJyB2YW5pbGxhIGtlcm5lbCBjb21taXQgNTY5NWU1MTYxOTc0NWQ0ZmUzZWMyNTA2YTJm MGNkOTgyYzVlMjdhNCAoU2F0IEZlYiAyNyAwODoyOTowMiAyMDIxIC0wODAwKSBzaG93cyB0aGUg c2FtZSAKYmVoYXZpb3IuCgpJIGNvdWxkIHRyeSB0byBiaXNlY3TigKYKClJlZ2FyZHMsCgoJVXdl CgoKCj4+Cj4+IFJlYWxseSBzdHJhbmdlIHRoYXQgdGhlIGlzc3VlIG9ubHkgYXBwZWFycyBvbiA1 LjExIG9uIG15IGhhcmR3YXJlLgo+Pgo+Pgo+Pj4KPj4+IFByZXN1bWFibHkgdGhlIGNvcnJ1cHRp b24geW91IHJlZmVyIHRvIGluIHRoZSBjdXJzb3IgaW1hZ2UgYXQgMjU2eDI1Ngo+Pj4gaXMgc2lt aWxhciB0byB3aGF0IHlvdSBzZWUgd2l0aCBYb3JnICsgbW9kZXNldHRpbmc/Cj4+Cj4+IEluIFgg dGhlIG1vdXNlIHBvaW50ZXIgaXMgc2xpY2VkIGFuZCBzb21laG93IHdyYXBzIGluIHZlcnRpY2Fs IGRpcmVjdGlvbiBzbyB0aGF0Cj4+IHRoZSB0aXAgb2YgdGhlIGFycm93IGlzIGFib3V0IDEvMyBm cm9tIHRoZSB0b3AuCj4+Cj4+IFRoZSBzY2xpY2luZyBpbiB0aGUgbW9kZXRlc3QgY3Vyc29yIGFw cGVhcnMgaW4gdGhlIGFyZWEgZnJvbSBhYm91dCAxLzIgdG8gMy80IGZyb20KPj4gdGhlIHRvcCBv ZiB0aGUgY3Vyc29yLgo+IAo+IEl0J3MgcHJvYmFibHkgdGhlIHNhbWUgY29ycnVwdGlvbiwganVz dCBsb29rcyBzbGlnaHRseSBkaWZmZXJlbnQgYmFzZWQKPiBvbiB0aGUgaW1hZ2UuIEtlcm5lbCA1 LjExIG1hZGUgMjU2eDI1NiBjdXJzb3JzIHRoZSBkZWZhdWx0ICh3aGljaCBpcwo+IHdoYXQgeGY4 Ni12aWRlby1tb2Rlc2V0dGluZyB1c2VzIHRvIGRldGVybWluZSBjdXJzb3Igc2l6ZSksIGhlbmNl IHRoZQo+IGNoYW5nZSBpbiBiZWhhdmlvci4KPiAKPiBUaGFua3MgYWdhaW4gZm9yIGNvbmZpcm1p bmcuCj4gCj4gU28gaXQgc291bmRzIGxpa2UgYWxsIEtlcGxlciBoYXJkd2FyZSBoYXMgaXNzdWVz IHdpdGggMjU2eDI1Ni4gSSd2ZQo+IHRlc3RlZCBvbiBncDEwOCBhbmQgZGlkIG5vdCBvYnNlcnZl IGFueSBvYnZpb3VzIGlzc3Vlcy4gUHJvYmFibHkgZ29vZAo+IHRvIGZpbmQgYSBHTTEwNyBhbmQg R00yMDAgdG8gdGVzdCBvbiBhcyB3ZWxsLgo+IAo+IENoZWVycywKPiAKPiAgICAtaWxpYQo+IApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOb3V2ZWF1IG1h aWxpbmcgbGlzdApOb3V2ZWF1QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25vdXZlYXUK