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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 CEC25C63793 for ; Thu, 22 Jul 2021 12:20:12 +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 4237C6135A for ; Thu, 22 Jul 2021 12:20:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4237C6135A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C90C26EA65; Thu, 22 Jul 2021 12:20:11 +0000 (UTC) Received: from mail-ot1-x32f.google.com (mail-ot1-x32f.google.com [IPv6:2607:f8b0:4864:20::32f]) by gabe.freedesktop.org (Postfix) with ESMTPS id E24CF6E8F0 for ; Thu, 22 Jul 2021 12:20:09 +0000 (UTC) Received: by mail-ot1-x32f.google.com with SMTP id 59-20020a9d0ac10000b0290462f0ab0800so5050052otq.11 for ; Thu, 22 Jul 2021 05:20:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=3ZylT/ABhtuWXTECdK430A5+jrLweO1cTplxo8JP2vk=; b=GT4X94IQi1hGlMXx4hnUm+9BT9qOiSuW/4zkMCoGJqx84K/qL7zreBULwOXjmTbjCD TiSmugeLM2JufjuVN2T0RA63+csLmn0AVTHNbK49ugmfKRajq7LvdqlYx7OzxDVyzV1U epHdz9ZuNKQ0mqT69oH6Uy1lkIKrTainPT80o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=3ZylT/ABhtuWXTECdK430A5+jrLweO1cTplxo8JP2vk=; b=DtKiCCjZonqnItXTW7Zobs0ygHCyNASuT+Y0G1lqKX80Rr7GjEEINowwwJdfMh7gtu C3ua+YlVEehw5U2TJk7ckq/X8TUGUNVtKpnaUPKHqGxpVD8vZn9WgdMZr9NVBqMdk30T 41o/lt4XPNLfjUyd2Xb9qKmNF5iMHruKsmWA3121CRd68iVnysMpkA7tY5foBk5zlB7q vVvKkd5KDbrXju57xX9vhpDUT7N2y9wDT/IMiI1aKI9WpsqvqDO9TsFGG3gdGozYZmxW 8aJ3GibvmSFOiL09zTxKG1GWjgI/TyKcNcusjlGXILs4vKBRDV5M9ZT1Wrm/nZ/32rVf uDSA== X-Gm-Message-State: AOAM533KtW3CvBGjxew5bJjVuVjuSz011jv80XagPimJ8R6TO8tgO2wD hZBFuh7ZcX8uTOIXsfqOHhVMV9BlM/ylthx6psf/Hg== X-Google-Smtp-Source: ABdhPJx54XFuA4wsBwI8nH6YYXFceqQdrNWGTtjjDwyW3RD/EwlojYSbRKzmd+zFkUEMeyGgMqq/pxDhgAqVr9HSdRg= X-Received: by 2002:a05:6830:2802:: with SMTP id w2mr27813304otu.303.1626956409191; Thu, 22 Jul 2021 05:20:09 -0700 (PDT) MIME-Version: 1.0 References: <20210104205654.238928-1-jose.souza@intel.com> <20210104205654.238928-2-jose.souza@intel.com> <86a08842f511542c761454ea5ea5c26a199e1558.camel@intel.com> In-Reply-To: <86a08842f511542c761454ea5ea5c26a199e1558.camel@intel.com> From: Daniel Vetter Date: Thu, 22 Jul 2021 14:19:58 +0200 Message-ID: To: "Souza, Jose" Subject: Re: [Intel-gfx] [PATCH CI 2/4] drm/i915/display/psr: Use plane damage clips to calculate damaged area X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "pankaj.laxminarayan.bharadiya@intel.com" , "intel-gfx@lists.freedesktop.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCBKdWwgMjEsIDIwMjEgYXQgOTo0MiBQTSBTb3V6YSwgSm9zZSA8am9zZS5zb3V6YUBp bnRlbC5jb20+IHdyb3RlOgo+IE9uIFdlZCwgMjAyMS0wNy0yMSBhdCAwOTo1NiArMDIwMCwgRGFu aWVsIFZldHRlciB3cm90ZToKPiA+IE9uIFdlZCwgSnVsIDIxLCAyMDIxIGF0IDk6NTAgQU0gRGFu aWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+ID4gT24gVHVlLCBKdWwgMjAs IDIwMjEgYXQgNjo1NSBQTSBTb3V6YSwgSm9zZSA8am9zZS5zb3V6YUBpbnRlbC5jb20+IHdyb3Rl Ogo+ID4gPiA+IE9uIFR1ZSwgMjAyMS0wNy0yMCBhdCAxNzozMSArMDIwMCwgRGFuaWVsIFZldHRl ciB3cm90ZToKPiA+ID4gPiA+IE9uIFR1ZSwgSnVsIDIwLCAyMDIxIGF0IDU6MTYgUE0gRGFuaWVs IFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+ID4gPiA+ID4gT24gVHVlLCBKdWwg MjAsIDIwMjEgYXQgNTowOSBQTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3Rl Ogo+ID4gPiA+ID4gPiA+IE9uIE1vbiwgSmFuIDQsIDIwMjEgYXQgOTo1NiBQTSBKb3PDqSBSb2Jl cnRvIGRlIFNvdXphCj4gPiA+ID4gPiA+ID4gPGpvc2Uuc291emFAaW50ZWwuY29tPiB3cm90ZToK PiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBOb3cgdXNpbmcgcGxhbmUgZGFtYWdlIGNs aXBzIHByb3BlcnR5IHRvIGNhbGN1YWx0ZSB0aGUgZGFtYWdlZCBhcmVhLgo+ID4gPiA+ID4gPiA+ ID4gU2VsZWN0aXZlIGZldGNoIG9ubHkgc3VwcG9ydHMgb25lIHJlZ2lvbiB0byBiZSBmZXRjaGVk IHNvIHNvZnR3YXJlCj4gPiA+ID4gPiA+ID4gPiBuZWVkcyB0byBjYWxjdWxhdGUgYSBib3VuZGlu ZyBib3ggYXJvdW5kIGFsbCBkYW1hZ2UgY2xpcHMuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4g PiA+ID4gTm93IHRoYXQgd2UgYXJlIG5vdCBjb21wbGV0ZSBmZXRjaGluZyBlYWNoIHBsYW5lLCB0 aGVyZSBpcyBhbm90aGVyCj4gPiA+ID4gPiA+ID4gPiBsb29wIG5lZWRlZCBhcyBhbGwgdGhlIHBs YW5lIGFyZWFzIHRoYXQgaW50ZXJzZWN0IHdpdGggdGhlIHBpcGUKPiA+ID4gPiA+ID4gPiA+IGRh bWFnZWQgYXJlYSBuZWVkcyB0byBiZSBmZXRjaGVkIGZyb20gbWVtb3J5IHNvIHRoZSBjb21wbGV0 ZSBibGVuZGluZwo+ID4gPiA+ID4gPiA+ID4gb2YgYWxsIHBsYW5lcyBjYW4gaGFwcGVuLgo+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IHYyOgo+ID4gPiA+ID4gPiA+ID4gLSBkbyBub3Qg c2hpZnRpbmcgbmV3X3BsYW5lX3N0YXRlLT51YXBpLmRzdCBvbmx5IHNyYyBpcyBpbiAxNi4xNiBm b3JtYXQKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiB2NDoKPiA+ID4gPiA+ID4gPiA+ IC0gc2V0dGluZyBwbGFuZSBzZWxlY3RpdmUgZmV0Y2ggYXJlYSB1c2luZyB0aGUgd2hvbGUgcGlw ZSBkYW1hZ2UgYXJlYQo+ID4gPiA+ID4gPiA+ID4gLSBtYXJrIHRoZSB3aG9sZSBwbGFuZSBhcmVh IGRhbWFnZWQgaWYgcGxhbmUgdmlzaWJpbGl0eSBvciBhbHBoYQo+ID4gPiA+ID4gPiA+ID4gY2hh bmdlZAo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IHY1Ogo+ID4gPiA+ID4gPiA+ID4g LSB0YWtpbmcgaW4gY29uc2lkZXJhdGlvbiBzcmMueTEgaW4gdGhlIGRhbWFnZSBjb29yZGluYXRl cwo+ID4gPiA+ID4gPiA+ID4gLSBhZGRpbmcgdG8gdGhlIHBpcGUgZGFtYWdlZCBhcmVhIHBsYW5l cyB0aGF0IHdlcmUgdmlzaWJsZSBidXQgYXJlCj4gPiA+ID4gPiA+ID4gPiBpbnZpc2libGUgaW4g dGhlIG5ldyBzdGF0ZQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IHY2Ogo+ID4gPiA+ ID4gPiA+ID4gLSBjb25zaWRlciBvbGQgc3RhdGUgcGxhbmUgY29vcmRpbmF0ZXMgd2hlbiB2aXNp YmlsaXR5IGNoYW5nZXMgb3IgaXQKPiA+ID4gPiA+ID4gPiA+IG1vdmVkIHRvIGNhbGN1bGF0ZSBk YW1hZ2VkIGFyZWEKPiA+ID4gPiA+ID4gPiA+IC0gcmVtb3ZlIGZyb20gZGFtYWdlZCBhcmVhIHRo ZSBwb3J0aW9uIG5vdCBpbiBzcmMgY2xpcAo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ IHY3Ogo+ID4gPiA+ID4gPiA+ID4gLSBpbnRlcnNlYyBldmVyeSBkYW1hZ2UgY2xpcCB3aXRoIHNy YyB0byBtaW5pbWl6ZSBkYW1hZ2VkIGFyZWEKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4g PiB2ODoKPiA+ID4gPiA+ID4gPiA+IC0gYWRqdXN0IHBpcGVfZGFtYWdlZCBhcmVhIHRvIDQgbGlu ZXMgZ3JvdXBpbmcKPiA+ID4gPiA+ID4gPiA+IC0gYWRqdXN0IGNhbGN1bGF0aW9uIG5vdyB0aGF0 IGlzIHVuZGVyc3Rvb2QgdGhhdCB1YXBpLnNyYyBpcyB0aGUKPiA+ID4gPiA+ID4gPiA+IGZyYW1l YnVmZmVyIGNvb3JkaW5hdGVzIHRoYXQgcGxhbmUgd2lsbCBzdGFydCB0byBmZXRjaCBmcm9tCj4g PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gdjk6Cj4gPiA+ID4gPiA+ID4gPiAtIE9ubHkg YWRkIHBsYW5lIGRzdCBvciBzcmMgdG8gZGFtYWdlZF9hcmVhIGlmIHZpc2libGUKPiA+ID4gPiA+ ID4gPiA+IC0gRWFybHkgc2tpcCBwbGFuZSBkYW1hZ2UgY2FsY3VsYXRpb24gaWYgaXQgd2FzIG5v dCB2aXNpYmxlIGluIG9sZCBhbmQKPiA+ID4gPiA+ID4gPiA+IG5ldyBzdGF0ZQo+ID4gPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+ID4gQ2M6IEd3YW4tZ3llb25nIE11biA8Z3dh bi1neWVvbmcubXVuQGludGVsLmNvbT4KPiA+ID4gPiA+ID4gPiA+IFJldmlld2VkLWJ5OiBHd2Fu LWd5ZW9uZyBNdW4gPGd3YW4tZ3llb25nLm11bkBpbnRlbC5jb20+Cj4gPiA+ID4gPiA+ID4gPiBT aWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNv bT4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFdoeSBpcyB0aGlzIG5vdCB1c2luZyBkcm1f YXRvbWljX2hlbHBlcl9kYW1hZ2VfbWVyZ2VkPyBJIGp1c3Qgc3R1bWJsZWQKPiA+ID4gPiA+ID4g PiBvdmVyIHRoaXMsIGFuZCB0aGlzIGlzIG9uZSBvZiB0aGUgb25seSB0d28gZHJpdmVycyB0aGF0 IGRpcmVjdGx5IGRpZ3MKPiA+ID4gPiA+ID4gPiBhcm91bmQgaW4gdGhlIGRhbWFnZSBhcmVhLCBh bmQgc2VlbXMgdG8gcmVpbnZlbnQgYSBidW5jaCBvZiB0aGUgc3R1ZmYKPiA+ID4gPiA+ID4gPiBo ZXJlLgo+ID4gPiA+Cj4gPiA+ID4gV2UgY2FuIHVzZSBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2Vf bWVyZ2VkKCkgYnV0IGl0IHdvdWxkIG9ubHkgc2F2ZSB1cyBvbmUgZm9yIGxvb3AuCj4gPiA+Cj4g PiA+IFllcyBwbGVhc2UuIFRoZSB0cm91YmxlIHdpdGggcm9sbGluZyBvdXIgb3duIGNvcGllcyBm b3IgZXZlcnl0aGluZyBpcwo+ID4gPiB0aGF0IGl0IGRvZXMgYWRkIHVwLgo+ID4gPgo+ID4gPiA+ ID4gPiBBbHNvLCBkaWQgd2UgbWVyZ2UgdGhlIGlndHMgZm9yIHRoaXMgc3R1ZmY/IFRoZXkgdW5m b3J0dW5hdGVseSBuZXZlcgo+ID4gPiA+ID4gPiBsYW5kZWQsIHdoZW4gdm13Z2Z4IHRlYW0gZGlk IGFsbCB0aGlzIHdvcmssIGJ1dCBmb3IgaTkxNSB3ZSByZWFsbHkKPiA+ID4gPiA+ID4gc2hvdWxk bid0IGV2ZW4gbGFuZCBuZXcgc3VwcG9ydCB3aXRob3V0IHRlc3RzLgo+ID4gPiA+ID4KPiA+ID4g PiA+IExvIGFuZCBiZWhvbGQsIHdlIG1lcmdlIHRoZSB1YXBpIGVuYWJsaW5nIHdheSBlYXJsaWVy IHRoYW4gdGhpcyBwYXRjaCBoZXJlOgo+ID4gPiA+ID4KPiA+ID4gPiA+IGNvbW1pdCAwOTNhM2Ez MDAwMDkyNmI4YmRhOWVlZjc3M2U0ZWQ1MDc5MDUzMzUwCj4gPiA+ID4gPiBBdXRob3I6IEpvc8Op IFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+ID4gPiA+ID4gRGF0ZTog ICBUaHUgSnVuIDI1IDE4OjAxOjQ3IDIwMjAgLTA3MDAKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgICBk cm0vaTkxNTogQWRkIHBsYW5lIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eQo+ID4gPiA+ID4KPiA+ID4g PiA+IEFuZCB0aGUgaWd0cyBhcmUgbm93aGVyZSBuZWFyIHRvIGJlIHNlZW4sIGF0IGxlYXN0IHRo ZSBzdHVmZiBmcm9tCj4gPiA+ID4gPiB2bXdnZnggZGlkbid0IGxhbmQuIFBsZWFzZSBmaWxlIGEg SklSQSBpbnRlcm5hbGx5IGFuZCBwaW5nIG1lIG9uIHRoYXQKPiA+ID4gPiA+IHNvIHRoaXMgZ2V0 cyBzb3J0ZWQgb3V0IGFzYXAuCj4gPiA+ID4KPiA+ID4gPiBIZXJlIHRoZSBJR1Q6IGh0dHBzOi8v Z2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9kcm0vaWd0LWdwdS10b29scy8tL2Jsb2IvbWFzdGVyL3Rl c3RzL2ttc19wc3IyX3NmLmMKPiA+ID4KPiA+ID4gVGhlcmUgd2FzIHNvbWUgaWd0cyB0aGF0IHdl cmUgY3Jvc3MtZHJpdmVyLCBub3QgaW50ZWwgc3BlY2lmaWMuIFRoZQo+ID4gPiB0aGluZyBoZXJl IGlzIHN1cHBvc2VkIHRvIGJlIGEgY3Jvc3MtdmVuZG9yIGludGVyZmFjZSwgc28gd291bGQgYmUK PiA+ID4gcmVhbGx5IGdvb2QgaWYgeW91IHJlc3VycmVjdCB0aG9zZSBmcm9tIHZtd2dmeCBmb2xr cyBhbmQgbGFuZCB0aGVtCj4gPiA+IHRvbzoKPiA+ID4KPiA+ID4gaHR0cHM6Ly9wYXRjaHdvcmsu ZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy81MTA4Ny8KPiA+Cj4gPiBBbHNvIGZyb20gYSB2ZXJ5IHF1 aWNrIGxvb2sgYXQgdGhlIGttc19wc3IyX3NmIHRlc3RzIHRoZXJlJ3MgcmVhbGx5Cj4gPiBub3Qg YSB3aG9sZSBsb3Qgc3BlY2lmaWMgYWJvdXQgb3VyIHBzcjIgaW1wbGVtZW50YXRpb24gaW4gdGhl cmUuIFRoZQo+ID4gdGVzdCBzaG91bGQgd29yayBvbiBhbnkgcGxhbmUgd2l0aCBhIEZCX0RBTUFH RV9DTElQUyByZWN0IGF2YWlsYWJsZSwKPiA+IHNvIHRoZXJlJ3Mgbm8gcmVhc29uIHRvIG1ha2Ug dGhpcyBzcGVjaWZpYyB0byBpbnRlbCwgbXVjaCBsZXNzIHRvCj4gPiBwc3IyLiBJIHRoaW5rIHdl IG5lZWQgdG86Cj4gPiAtIG1ha2UgdGhpcyBhIGdlbmVyaWMga21zIHRlc3QsIGl0IHNob3VsZCB3 b3JrCj4gPiAtIG1lcmdlIHdpdGggdGhlIHRlc3RjYXNlcyBmcm9tIHRoZSBmb2xrcyB3aG8gbWVy Z2VkIEZCX0RBTUFHRV9DTElQUwo+ID4gb3JpZ2luYWxseSB0byBtYWtlIHN1cmUgYWxsIGRyaXZl cnMgZm9sbG93IHRoZSBzYW1lIGNvbnRyYWN0Lgo+ID4KPiA+IEtNUyBwcm9wZXJ0aWVzIGFyZSBn ZW5lcmljLCBpbnRlbC1zcGVjaWZpYyB0ZXN0cyBmb3Igd2hlbiB0aGVyZSdzCj4gPiBub3RoaW5n IGludGVsLXNwZWNpZmljIGlzbid0IGdvb2QuIEFsc28gYWRkaW5nIFBhbmthai4KPgo+IEZvciBJ bnRlbCB0aGUgb25seSB1c2UgdGhhdCB3ZSBoYXZlIGZvciBkYW1hZ2UgY2xpcHMgaXMgUFNSMiBz ZWxlY3RpdmUgZmV0Y2gsIHdlIG5lZWRlZCB0aGlzIHRlc3QgdG8gYmUgc3BlY2lmaWMgUFNSMiB0 byBjaGVjayBpZiBpOTE1IGlzIHByb3Blcmx5Cj4gaGFuZGxpbmcgaXQgYnkgY2hlY2tpbmcgdGhl IHVwZGF0ZXMgaW4gdGhlIFBTUjIgc3RhdHVzIHJlZ2lzdGVycyBhbmQgYWxzbyBwcm9wZXJseSBy ZW5kZXJpbmcgdGhlIGltYWdlIG9uIHRoZSBlRFAgcGFuZWwuCgpJIGhhdmVuJ3Qgc2VlbiB0aGUg cHJvcGVybHkgcmVuZGVyaW5nIGNoZWNrIChpdCdzIGFsbCBtYW51YWwpLCBzbwp0aGF0J3Mgbm90 IHZlcnkgaW50ZWwgc3BlY2lmaWMuCgpUaGUgcHNyMiBzdGF0dXMgcmVnaXN0ZXJzIGNoZWNrIHdl IGNhbiBkbyBpbiBzb21lIGludGVsIHNwZWNpZmljCnN1YnRlc3QgSSB0aGluaywgb3IgYXMgYWRk aXRpb25hbCBjaGVja3MuCgo+IE1ha2luZyB0aGlzIGdlbmVyaWMgd2lsbCBvbmx5IHJlbW92ZSB0 aGUgdGVzdCBjb3ZlcmFnZSB0aGF0IHdlIGhhdmUgZm9yIHRoaXMgZmVhdHVyZSh0aGF0IGlzIG5v dCBldmVuIGVuYWJsZSBieSBkZWZhdWx0IHlldCkuCgpMb29rIHRoZXJlJ3MgcHJldHR5IGNsZWFy IGNvbnNlbnN1cyB0aGF0IGttcyBwcm9wZXJ0aWVzIGFyZSBjcm9zcwp2ZW5kb3IgYW5kIHRoZXJl IHNob3VsZCBiZSB0ZXN0cyBhY3Jvc3MgdmVuZG9ycyBpbiBpZ3QgZm9yIHRoaXMuIE5vdwp2bXdn Znggc2xhY2tlZCBhIGJpdCBhbmQgbmV2ZXIgcHVzaGVkIHRoZWlycyBmdWxseSB1cHN0cmVhbSwg d2hpY2gKanVzdCBtZWFucyB0aGUgYnVja2V0IHBhc3NlcyB0byB0aGUgbmV4dCBwZXJzb24gdHJ5 aW5nIHRvIHVzZSB0aGlzLgoKSSdsbCBmaWxlIGEgamlyYSBoZXJlLgotRGFuaWVsCgo+Cj4gPgo+ ID4gQ2hlZXJzLCBEYW5pZWwKPiA+Cj4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGFua3Ms IERhbmllbAo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiA+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMgfCAxMTMgKysrKysrKysrKysr KysrKysrKystLS0KPiA+ID4gPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgOTkgaW5zZXJ0aW9u cygrKSwgMTQgZGVsZXRpb25zKC0pCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCj4gPiA+ID4gPiA+ID4gPiBpbmRl eCBkOWEzOTVjNDg2ZDMuLmY1Yjk1MTliMzc1NiAxMDA2NDQKPiA+ID4gPiA+ID4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKPiA+ID4gPiA+ID4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKPiA+ID4gPiA+ ID4gPiA+IEBAIC0xMjQyLDkgKzEyNDIsMTEgQEAgc3RhdGljIHZvaWQgcHNyMl9tYW5fdHJrX2N0 bF9jYWxjKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gPiA+ID4gPiA+ ID4gICAgICAgICBpZiAoY2xpcC0+eTEgPT0gLTEpCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAg ICAgICAgZ290byBleGl0Owo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ICsgICAgICAg ZHJtX1dBUk5fT04oY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYsIGNsaXAtPnkxICUgNCB8fCBj bGlwLT55MiAlIDQpOwo+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gICAgICAgICB2 YWwgfD0gUFNSMl9NQU5fVFJLX0NUTF9TRl9QQVJUSUFMX0ZSQU1FX1VQREFURTsKPiA+ID4gPiA+ ID4gPiA+ICAgICAgICAgdmFsIHw9IFBTUjJfTUFOX1RSS19DVExfU1VfUkVHSU9OX1NUQVJUX0FE RFIoY2xpcC0+eTEgLyA0ICsgMSk7Cj4gPiA+ID4gPiA+ID4gPiAtICAgICAgIHZhbCB8PSBQU1Iy X01BTl9UUktfQ1RMX1NVX1JFR0lPTl9FTkRfQUREUihESVZfUk9VTkRfVVAoY2xpcC0+eTIsIDQp ICsgMSk7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgIHZhbCB8PSBQU1IyX01BTl9UUktfQ1RMX1NV X1JFR0lPTl9FTkRfQUREUihjbGlwLT55MiAvIDQgKyAxKTsKPiA+ID4gPiA+ID4gPiA+ICBleGl0 Ogo+ID4gPiA+ID4gPiA+ID4gICAgICAgICBjcnRjX3N0YXRlLT5wc3IyX21hbl90cmFja19jdGwg PSB2YWw7Cj4gPiA+ID4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gPiA+ID4gQEAgLTEyNjksOCArMTI3 MSw4IEBAIGludCBpbnRlbF9wc3IyX3NlbF9mZXRjaF91cGRhdGUoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4gPiA+ID4gPiA+ID4gIHsKPiA+ID4g PiA+ID4gPiA+ICAgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBp bnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiA+ID4gPiA+ID4g PiA+ICsgICAgICAgc3RydWN0IGRybV9yZWN0IHBpcGVfY2xpcCA9IHsgLngxID0gMCwgLnkxID0g LTEsIC54MiA9IElOVF9NQVgsIC55MiA9IC0xIH07Cj4gPiA+ID4gPiA+ID4gPiAgICAgICAgIHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlLCAqb2xkX3BsYW5lX3N0YXRl Owo+ID4gPiA+ID4gPiA+ID4gLSAgICAgICBzdHJ1Y3QgZHJtX3JlY3QgcGlwZV9jbGlwID0geyAu eTEgPSAtMSB9Owo+ID4gPiA+ID4gPiA+ID4gICAgICAgICBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lOwo+ID4gPiA+ID4gPiA+ID4gICAgICAgICBib29sIGZ1bGxfdXBkYXRlID0gZmFsc2U7Cj4g PiA+ID4gPiA+ID4gPiAgICAgICAgIGludCBpLCByZXQ7Cj4gPiA+ID4gPiA+ID4gPiBAQCAtMTI4 MiwxMyArMTI4NCwyNSBAQCBpbnQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRlKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gPiA+ID4gPiA+ID4gICAgICAgICBpZiAocmV0 KQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAvKgo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAg KiBDYWxjdWxhdGUgbWluaW1hbCBzZWxlY3RpdmUgZmV0Y2ggYXJlYSBvZiBlYWNoIHBsYW5lIGFu ZCBjYWxjdWxhdGUKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICogdGhlIHBpcGUgZGFtYWdlZCBh cmVhLgo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgKiBJbiB0aGUgbmV4dCBsb29wIHRoZSBwbGFu ZSBzZWxlY3RpdmUgZmV0Y2ggYXJlYSB3aWxsIGFjdHVhbGx5IGJlIHNldAo+ID4gPiA+ID4gPiA+ ID4gKyAgICAgICAgKiB1c2luZyB3aG9sZSBwaXBlIGRhbWFnZWQgYXJlYS4KPiA+ID4gPiA+ID4g PiA+ICsgICAgICAgICovCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgIGZvcl9lYWNoX29sZG5ld19p bnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwKPiA+ID4g PiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5l d19wbGFuZV9zdGF0ZSwgaSkgewo+ID4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgIHN0cnVj dCBkcm1fcmVjdCAqc2VsX2ZldGNoX2FyZWEsIHRlbXA7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgc3RydWN0IGRybV9yZWN0IHNyYywgZGFtYWdlZF9hcmVhID0geyAueTEgPSAtMSB9 Owo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fbW9kZV9yZWN0ICpk YW1hZ2VkX2NsaXBzOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHUzMiBudW1fY2xp cHMsIGo7Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIGlm IChuZXdfcGxhbmVfc3RhdGUtPnVhcGkuY3J0YyAhPSBjcnRjX3N0YXRlLT51YXBpLmNydGMpCj4g PiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+ID4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgaWYgKCFuZXdfcGxhbmVfc3Rh dGUtPnVhcGkudmlzaWJsZSAmJgo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAh b2xkX3BsYW5lX3N0YXRlLT51YXBpLnZpc2libGUpCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZTsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ ICAgICAgICAgICAgICAgICAvKgo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAqIFRP RE86IE5vdCBjbGVhciBob3cgdG8gaGFuZGxlIHBsYW5lcyB3aXRoIG5lZ2F0aXZlIHBvc2l0aW9u LAo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAqIGFsc28gcGxhbmVzIGFyZSBub3Qg dXBkYXRlZCBpZiB0aGV5IGhhdmUgYSBuZWdhdGl2ZSBYCj4gPiA+ID4gPiA+ID4gPiBAQCAtMTMw MCwyMyArMTMxNCw5NCBAQCBpbnQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRlKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7Cj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgfQo+ID4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICBpZiAoIW5ld19wbGFuZV9z dGF0ZS0+dWFwaS52aXNpYmxlKQo+ID4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgY29udGludWU7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgbnVtX2NsaXBzID0g ZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHNfY291bnQoJm5ld19wbGFuZV9zdGF0ZS0+dWFwaSk7 Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIC8qCj4gPiA+ ID4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICogRm9yIG5vdyBkb2luZyBhIHNlbGVjdGl2ZSBm ZXRjaCBpbiB0aGUgd2hvbGUgcGxhbmUgYXJlYSwKPiA+ID4gPiA+ID4gPiA+IC0gICAgICAgICAg ICAgICAgKiBvcHRpbWl6YXRpb25zIHdpbGwgY29tZSBpbiB0aGUgZnV0dXJlLgo+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAqIElmIHZpc2liaWxpdHkgb3IgcGxhbmUgbW92ZWQsIG1h cmsgdGhlIHdob2xlIHBsYW5lIGFyZWEgYXMKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAgKiBkYW1hZ2VkIGFzIGl0IG5lZWRzIHRvIGJlIGNvbXBsZXRlIHJlZHJhdyBpbiB0aGUgbmV3 IGFuZCBvbGQKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgKiBwb3NpdGlvbi4KPiA+ ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgKi8KPiA+ID4gPiA+ID4gPiA+IC0gICAgICAg ICAgICAgICBzZWxfZmV0Y2hfYXJlYSA9ICZuZXdfcGxhbmVfc3RhdGUtPnBzcjJfc2VsX2ZldGNo X2FyZWE7Cj4gPiA+ID4gPiA+ID4gPiAtICAgICAgICAgICAgICAgc2VsX2ZldGNoX2FyZWEtPnkx ID0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLnNyYy55MSA+PiAxNjsKPiA+ID4gPiA+ID4gPiA+IC0g ICAgICAgICAgICAgICBzZWxfZmV0Y2hfYXJlYS0+eTIgPSBuZXdfcGxhbmVfc3RhdGUtPnVhcGku c3JjLnkyID4+IDE2Owo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGlmIChuZXdfcGxh bmVfc3RhdGUtPnVhcGkudmlzaWJsZSAhPSBvbGRfcGxhbmVfc3RhdGUtPnVhcGkudmlzaWJsZSB8 fAo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAhZHJtX3JlY3RfZXF1YWxzKCZu ZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LAo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZvbGRfcGxhbmVfc3RhdGUtPnVhcGkuZHN0KSkgewo+ID4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZF9wbGFuZV9zdGF0ZS0+ dWFwaS52aXNpYmxlKSB7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRhbWFnZWRfYXJlYS55MSA9IG9sZF9wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTE7Cj4g PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbWFnZWRfYXJl YS55MiA9IG9sZF9wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTI7Cj4gPiA+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfYXJlYV91cGRhdGUoJnBpcGVfY2xpcCwg JmRhbWFnZWRfYXJlYSk7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICB9 Cj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICBpZiAobmV3X3BsYW5lX3N0YXRlLT51YXBpLnZpc2libGUpIHsKPiA+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFtYWdlZF9hcmVhLnkxID0gbmV3X3BsYW5l X3N0YXRlLT51YXBpLmRzdC55MTsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGFtYWdlZF9hcmVhLnkyID0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLmRzdC55 MjsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcF9h cmVhX3VwZGF0ZSgmcGlwZV9jbGlwLCAmZGFtYWdlZF9hcmVhKTsKPiA+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIH0KPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIH0gZWxzZSBp ZiAobmV3X3BsYW5lX3N0YXRlLT51YXBpLmFscGhhICE9IG9sZF9wbGFuZV9zdGF0ZS0+dWFwaS5h bHBoYSB8fAo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCFudW1f Y2xpcHMgJiYKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdf cGxhbmVfc3RhdGUtPnVhcGkuZmIgIT0gb2xkX3BsYW5lX3N0YXRlLT51YXBpLmZiKSkgewo+ID4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgLyoKPiA+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAqIElmIHRoZSBwbGFuZSBkb24ndCBoYXZlIGRhbWFnZWQg YXJlYXMgYnV0IHRoZQo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICog ZnJhbWVidWZmZXIgY2hhbmdlZCBvciBhbHBoYSBjaGFuZ2VkLCBtYXJrIHRoZSB3aG9sZQo+ID4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICogcGxhbmUgYXJlYSBhcyBkYW1h Z2VkLgo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICovCj4gPiA+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBkYW1hZ2VkX2FyZWEueTEgPSBuZXdfcGxh bmVfc3RhdGUtPnVhcGkuZHN0LnkxOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgZGFtYWdlZF9hcmVhLnkyID0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLmRzdC55MjsKPiA+ ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfYXJlYV91cGRhdGUoJnBp cGVfY2xpcCwgJmRhbWFnZWRfYXJlYSk7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICB9Cj4gPiA+ ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgZHJtX3JlY3RfZnBf dG9faW50KCZzcmMsICZuZXdfcGxhbmVfc3RhdGUtPnVhcGkuc3JjKTsKPiA+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICBkYW1hZ2VkX2NsaXBzID0gZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xp cHMoJm5ld19wbGFuZV9zdGF0ZS0+dWFwaSk7Cj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IG51bV9jbGlwczsgaisrKSB7Cj4g PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3JlY3QgY2xp cDsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIGNsaXAueDEgPSBkYW1hZ2VkX2NsaXBzW2pdLngxOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgY2xpcC55MSA9IGRhbWFnZWRfY2xpcHNbal0ueTE7Cj4gPiA+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBjbGlwLngyID0gZGFtYWdlZF9jbGlwc1tq XS54MjsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNsaXAueTIgPSBk YW1hZ2VkX2NsaXBzW2pdLnkyOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgaWYgKGRybV9yZWN0X2ludGVyc2VjdCgmY2xpcCwgJnNyYykpCj4gPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfYXJlYV91cGRhdGUoJmRhbWFnZWRf YXJlYSwgJmNsaXApOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ID4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiAtICAgICAgICAgICAgICAgdGVtcCA9ICpzZWxfZmV0Y2hf YXJlYTsKPiA+ID4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICB0ZW1wLnkxICs9IG5ld19wbGFu ZV9zdGF0ZS0+dWFwaS5kc3QueTE7Cj4gPiA+ID4gPiA+ID4gPiAtICAgICAgICAgICAgICAgdGVt cC55MiArPSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkyOwo+ID4gPiA+ID4gPiA+ID4gLSAg ICAgICAgICAgICAgIGNsaXBfYXJlYV91cGRhdGUoJnBpcGVfY2xpcCwgJnRlbXApOwo+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGlmIChkYW1hZ2VkX2FyZWEueTEgPT0gLTEpCj4gPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+ID4gPiA+ID4g PiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBkYW1hZ2VkX2FyZWEueTEgKz0g bmV3X3BsYW5lX3N0YXRlLT51YXBpLmRzdC55MSAtIHNyYy55MTsKPiA+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICBkYW1hZ2VkX2FyZWEueTIgKz0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLmRz dC55MSAtIHNyYy55MTsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBjbGlwX2FyZWFf dXBkYXRlKCZwaXBlX2NsaXAsICZkYW1hZ2VkX2FyZWEpOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAg ICB9Cj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiArICAgICAgIGlmIChmdWxsX3Vw ZGF0ZSkKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBnb3RvIHNraXBfc2VsX2ZldGNo X3NldF9sb29wOwo+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAvKiBJ dCBtdXN0IGJlIGFsaWduZWQgdG8gNCBsaW5lcyAqLwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICBw aXBlX2NsaXAueTEgLT0gcGlwZV9jbGlwLnkxICUgNDsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAg aWYgKHBpcGVfY2xpcC55MiAlIDQpCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgcGlw ZV9jbGlwLnkyID0gKChwaXBlX2NsaXAueTIgLyA0KSArIDEpICogNDsKPiA+ID4gPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgLyoKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICog Tm93IHRoYXQgd2UgaGF2ZSB0aGUgcGlwZSBkYW1hZ2VkIGFyZWEgY2hlY2sgaWYgaXQgaW50ZXJz ZWN0IHdpdGgKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICogZXZlcnkgcGxhbmUsIGlmIGl0IGRv ZXMgc2V0IHRoZSBwbGFuZSBzZWxlY3RpdmUgZmV0Y2ggYXJlYS4KPiA+ID4gPiA+ID4gPiA+ICsg ICAgICAgICovCj4gPiA+ID4gPiA+ID4gPiArICAgICAgIGZvcl9lYWNoX29sZG5ld19pbnRlbF9w bGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwKPiA+ID4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19wbGFu ZV9zdGF0ZSwgaSkgewo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCBkcm1f cmVjdCAqc2VsX2ZldGNoX2FyZWEsIGludGVyOwo+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgIGlmIChuZXdfcGxhbmVfc3RhdGUtPnVhcGkuY3J0YyAhPSBj cnRjX3N0YXRlLT51YXBpLmNydGMgfHwKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgIW5ld19wbGFuZV9zdGF0ZS0+dWFwaS52aXNpYmxlKQo+ID4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgaW50ZXIgPSBwaXBlX2NsaXA7Cj4gPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgaWYgKCFkcm1fcmVjdF9pbnRlcnNlY3QoJmludGVyLCAmbmV3X3BsYW5l X3N0YXRlLT51YXBpLmRzdCkpCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICBjb250aW51ZTsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICBzZWxfZmV0Y2hfYXJlYSA9ICZuZXdfcGxhbmVfc3RhdGUtPnBzcjJfc2VsX2ZldGNoX2Fy ZWE7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgc2VsX2ZldGNoX2FyZWEtPnkxID0g aW50ZXIueTEgLSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkxOwo+ID4gPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgIHNlbF9mZXRjaF9hcmVhLT55MiA9IGludGVyLnkyIC0gbmV3X3BsYW5l X3N0YXRlLT51YXBpLmRzdC55MTsKPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgfQo+ID4gPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gPiA+ICtza2lwX3NlbF9mZXRjaF9zZXRfbG9vcDoKPiA+ID4gPiA+ ID4gPiA+ICAgICAgICAgcHNyMl9tYW5fdHJrX2N0bF9jYWxjKGNydGNfc3RhdGUsICZwaXBlX2Ns aXAsIGZ1bGxfdXBkYXRlKTsKPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgcmV0dXJuIDA7Cj4gPiA+ ID4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gPiA+IDIuMzAuMAo+ ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPiA+ID4gPiA+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBs aXN0Cj4gPiA+ID4gPiA+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ ID4gPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+ID4gRGFuaWVsIFZldHRlcgo+ID4gPiA+ID4gPiA+IFNv ZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiA+ID4gPiA+IGh0dHA6Ly9i bG9nLmZmd2xsLmNoCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+IC0tCj4gPiA+ID4gPiA+IERhbmllbCBWZXR0ZXIKPiA+ID4gPiA+ID4gU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gPiA+ID4gPiA+IGh0dHA6Ly9ibG9nLmZmd2xsLmNo Cj4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4KPiA+ID4KPiA+ID4g LS0KPiA+ID4gRGFuaWVsIFZldHRlcgo+ID4gPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29y cG9yYXRpb24KPiA+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiA+Cj4gPgo+ID4KPgoKCi0tIApE YW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8v YmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK