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=-12.0 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable 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 0FC25C433C1 for ; Tue, 30 Mar 2021 06:59:22 +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 B60A260C3E for ; Tue, 30 Mar 2021 06:59:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B60A260C3E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4C4796E858; Tue, 30 Mar 2021 06:59:19 +0000 (UTC) Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE9A36E856; Tue, 30 Mar 2021 06:59:17 +0000 (UTC) Received: by mail-ed1-x52a.google.com with SMTP id dm8so16921157edb.2; Mon, 29 Mar 2021 23:59:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=9mIasoQq+T0zws0UHVlgh8R2WuXjHxwtevgy71aYhoQ=; b=cQdvu2wxq0IZj6gcd+G8tLdIOuIrDpQdT2f81uGH6MVDhYZNTrmP0OYSL4kVmOoJjK JdxenKzGLwFUplOo4guU6Gk+WzvvGZZg/IFlnV4SZHAMoWiFmUNSWsfFIVhPivaPMxby ltEZ89HBGDSPYd+NARHXk+ly7NrHsC/H5LwByYm6Rs0OdasZljQPjtI6mB5KDTA+Ve10 2RrerG6WB9HesDX3B+B6ZEjz2HA9wHYmyEXMSLYc3mf0lcMdMAegAA9ivbfG5M/Od+Iz l/dxEHwuuU4D6HO3i10IlD7adD83NnkaWqF3b+RyJQEXcz+Ef0G8rRLE1qrGgnMK+/QM 7CUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=9mIasoQq+T0zws0UHVlgh8R2WuXjHxwtevgy71aYhoQ=; b=coi/ENrWjby5wVH/zrjtDtad9lU0IA1/Evieb+ZbMUzzpG8nKbXuAOa1OYUzaRum18 wDs2Ei7jiLGgyVLohNcGg8Ib2z9+/l71Oo/KkWA8CRGjsdgoDD6yyWsO+XZKw2Cx5sWN VI4/b9MIJVkRcDP2iloHl9elSQPza7N7EbnKYaZ1PrIz4csOU3vo6JmJWWTgxH1/jjGc I3kh2i+d42Aa21QwS3QX7Sd/git4O3IMzBQm2sU9bVfjemaBeEo0nu/xn2gbTv3phBm1 tsD2l3xmjWfbgyOXQsXGCA/j7+Z1x89078+88kptl3WR4zSLMADYzxVA7vMt2JnL6RAz q/sQ== X-Gm-Message-State: AOAM531Mqqt4FSDM9aw6pcdXb/sE7RaYnY3jgnUmlOBOl7JSRDCtn3CZ dE7X7X9d4SbjHOt56cnvMYQ= X-Google-Smtp-Source: ABdhPJxdyIu/eZk/nLeeNHM6c2bCZaSLoDcWnzQ1zQ8rSY9loQUZOZTrNYgIOnIRDtsIezqoNW93AQ== X-Received: by 2002:aa7:c903:: with SMTP id b3mr32128868edt.156.1617087556276; Mon, 29 Mar 2021 23:59:16 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:8ca4:a46e:6aa7:208c? ([2a02:908:1252:fb60:8ca4:a46e:6aa7:208c]) by smtp.gmail.com with ESMTPSA id g20sm10200305edb.7.2021.03.29.23.59.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 29 Mar 2021 23:59:15 -0700 (PDT) Subject: =?UTF-8?B?UmU6IOWbnuWkjTogW1BBVENIIHYzXSBkcm0vc2NoZWR1bGVyIHJlLWlu?= =?UTF-8?Q?sert_Bailing_job_to_avoid_memleak?= To: "Liu, Monk" , "Koenig, Christian" , "Zhang, Jack (Jian)" , "Grodzovsky, Andrey" , "dri-devel@lists.freedesktop.org" , "amd-gfx@lists.freedesktop.org" , "Deng, Emily" , Rob Herring , Tomeu Vizoso , Steven Price References: <20210315052036.1113638-1-Jack.Zhang1@amd.com> <9b48b715-52dd-e435-2873-2472427dffda@gmail.com> <64583ef0-d19c-1906-91f2-70fd649fa46e@amd.com> <3a81ffab-5ace-a50a-c34d-956f23709eba@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <6c0436ef-f9cb-ca77-58fb-ecded99f834a@gmail.com> Date: Tue, 30 Mar 2021 08:59:14 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Zhang, Andy" , "Jiang, Jerry \(SW\)" Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgTW9uaywKCnllYWgsIHRoYXQncyB3aGF0IEkgY2FuIGNlcnRhaW5seSBhZ3JlZSBvbi4KCk15 IHByaW1hcnkgY29uY2VybiBpcyB0aGF0IEknbSBub3QgY29udmluY2VkIHRoYXQgd2UgZG9uJ3Qg Z2V0IHByb2JsZW1zIAphdCBvdGhlciBwbGFjZXMgaWYgd2UganVzdCBhZGQgYW5vdGhlciBiYW5k IGFpZC4KCldlIGFscmVhZHkgaGFkIHRoaXMgYmFjayBhbmQgZm9ydGggbXVsdGlwbGUgdGltZXMg bm93IGFuZCB3aGlsZSB3ZSBhcmUgCmN1cnJlbnRseSB1bmRlciB0aW1lIHByZXNzdXJlIHdlIHdp bGwgYmUgdW5kZXIgZXZlbiBtb3JlIHRpbWUgcHJlc3N1cmUgCndoZW4gYSBjdXN0b21lciBpcyBy dW5uaW5nIGludG8gb3RoZXIgaXNzdWVzIGFuZCB3ZSBhcmUgc3RpbGwgY2lyY2xpbmcgCmFyb3Vu ZCB0aGUgc2FtZSBmdW5kYW1lbnRhbCBwcm9ibGVtLgoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKQW0g MzAuMDMuMjEgdW0gMDU6MTAgc2NocmllYiBMaXUsIE1vbms6Cj4gW0FNRCBPZmZpY2lhbCBVc2Ug T25seSAtIEludGVybmFsIERpc3RyaWJ1dGlvbiBPbmx5XQo+Cj4gSGkgQ2hyaXN0aWFuLAo+Cj4g V2UgZG9uJ3QgbmVlZCB0byBkZWJhdGUgb24gdGhlIGRlc2lnbidzIHRvcGljLCBlYWNoIG9mIHVz IGhhdmUgb3VyIG93biBvcGluaW9uLCBpdCBpcyBoYXJkIHRvIHBlcnN1YWRlIG90aGVycyBzb21l dGltZXMsIGFnYWluIHdpdGggbW9yZSBhbmQgbW9yZSBmZWF0dXJlcyBhbmQgcmVxdWlyZW1lbnRz IGl0IGlzIHByZXR0eSBub3JtYWwgdGhhdCBhbiBvbGQgZGVzaWduIG5lZWQgdG8KPiBSZWZpbmUg YW5kIG9yIGV2ZW4gcmV3b3JrIHRvIHNhdGlzZnkgYWxsIHRob3NlIG5lZWRzLCBzbyBJJ20gbm90 IHRyeWluZyB0byBhcmd1ZSB3aXRoIHlvdSB0aGF0IHdlIGRvbid0IG5lZWQgYSBiZXR0ZXIgcmV3 b3JrLCB0aGF0J3MgYWxzbyBwbGVhc3VyZSBtZSAuCj4KPiBJbiB0aGUgbW9tZW50LCB0aGUgbW9y ZSBpbXBvcnRhbnQgdGhpbmcgSSBjYXJlIGlzIHRoZSBzb2x1dGlvbiBiZWNhdXNlIFNSSU9WIHBy b2plY3Qgc3RpbGwgdHJ5IGJlc3QgdG8gcHV0IGFsbCBjaGFuZ2VzIGludG8gdXBzdHJlYW1pbmcg dHJlZSwgd2UgZG9uJ3Qgd2FudCB0byBmb3JrIGFub3RoZXIgdHJlZSB1bmxlc3Mgbm8gY2hvaWNl IC4uLgo+Cj4gTGV0J3MgaGF2ZSBhIHN5bmMgaW4gYW5vdGhlciB0aHJlYWQKPgo+IFRoYW5rcyBm b3IgeW91IGhlbHAgb24gdGhpcwo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gTW9uayBMaXUgfCBDbG91ZC1HUFUgQ29yZSB0ZWFtCj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQo+IEZyb206IEtvZW5pZywgQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+ Cj4gU2VudDogRnJpZGF5LCBNYXJjaCAyNiwgMjAyMSAxMDo1MSBQTQo+IFRvOiBMaXUsIE1vbmsg PE1vbmsuTGl1QGFtZC5jb20+OyBaaGFuZywgSmFjayAoSmlhbikgPEphY2suWmhhbmcxQGFtZC5j b20+OyBHcm9kem92c2t5LCBBbmRyZXkgPEFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20+OyBDaHJp c3RpYW4gS8O2bmlnIDxja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT47IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBE ZW5nLCBFbWlseSA8RW1pbHkuRGVuZ0BhbWQuY29tPjsgUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVs Lm9yZz47IFRvbWV1IFZpem9zbyA8dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+OyBTdGV2ZW4g UHJpY2UgPHN0ZXZlbi5wcmljZUBhcm0uY29tPgo+IENjOiBaaGFuZywgQW5keSA8QW5keS5aaGFu Z0BhbWQuY29tPjsgSmlhbmcsIEplcnJ5IChTVykgPEplcnJ5LkppYW5nQGFtZC5jb20+Cj4gU3Vi amVjdDogUmU6IOWbnuWkjTogW1BBVENIIHYzXSBkcm0vc2NoZWR1bGVyIHJlLWluc2VydCBCYWls aW5nIGpvYiB0byBhdm9pZCBtZW1sZWFrCj4KPiBIaSBNb25rLAo+Cj4gSSBjYW4ndCBkaXNhZ3Jl ZSBtb3JlLgo+Cj4gVGhlIGZ1bmRhbWVudGFsIHByb2JsZW0gaGVyZSBpcyB0aGF0IHdlIGhhdmUg cHVzaGVkIGEgZGVzaWduIHdpdGhvdXQgdmFsaWRhdGluZyBpZiBpdCByZWFsbHkgZml0cyBpbnRv IHRoZSBjb25jZXB0cyB0aGUgTGludXgga2VybmVsIG1hbmRhdGVzIGhlcmUuCj4KPiBNeSBtaXN0 YWtlIHdhcyB0aGF0IEkgaGF2ZW4ndCBwdXNoZWQgYmFjayBoYXJkIGVub3VnaCBvbiB0aGUgaW5p dGlhbCBkZXNpZ24gcmVzdWx0aW5nIGluIG51bWVyb3VzIGN5Y2xlcyBvZiB0cnlpbmcgdG8gc2F2 ZSB0aGUgZGVzaWduIHdoaWxlIGJhbmQgYWlkaW5nIHRoZSBmbGF3cyB3aGljaCBiZWNhbWUgb2J2 aW91cyBhZnRlciBhIHdoaWxlLgo+Cj4gSSBoYXZlbid0IGNvdW50ZWQgdGhlbSBidXQgSSB0aGlu ayB3ZSBhcmUgbm93IGFscmVhZHkgaGFkIG92ZXIgMTAgcGF0Y2hlcyB3aGljaCB0cnkgdG8gd29y ayBhcm91bmQgbGlmZXRpbWUgaXNzdWVzIG9mIHRoZSBqb2Igb2JqZWN0IGJlY2F1c2UgSSB3YXNu J3QgYWJsZSB0byBwcm9wZXJseSBleHBsYWluIHdoeSB0aGlzIGlzbid0IGdvaW5nIHRvIHdvcmsg bGlrZSB0aGlzLgo+Cj4gQmVjYXVzZSBvZiB0aGlzIEkgd2lsbCBoYXJkIHJlamVjdCBhbnkgYXR0 ZW1wdCB0byBiYW5kIGFpZCB0aGlzIGlzc3VlIGV2ZW4gbW9yZSB3aGljaCBpc24ndCBzdGFydGlu ZyBvdmVyIGFnYWluIHdpdGggYSBkZXNpZ24gd2hpY2ggbG9va3MgbGlrZSBpdCBpcyBnb2luZyB0 byB3b3JrLgo+Cj4gUmVnYXJkcywKPiBDaHJpc3RpYW4uCj4KPiBBbSAyNi4wMy4yMSB1bSAxMjoy MSBzY2hyaWViIExpdSwgTW9uazoKPj4gW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFs IERpc3RyaWJ1dGlvbiBPbmx5XQo+Pgo+PiBIaSBDaHJpc3RpYW4KPj4KPj4gVGhpcyBpcyBub3Qg Y29ycmVjdCBvciBjb3JyZWN0IHBlcnNwZWN0aXZlLCBhbnkgZGVzaWduIGNvbWVzIHdpdGggaXRz Cj4+IHByb3MgYW5kIGNvbnMsIG90aGVyd2lzZSBpdCB3b3VsZG4ndCBjb21lcyB0byBrZXJuZWwg dHJlZSBpbiB0aGUgdmVyeQo+PiBiZWdpbm5pbmcgLCBpdCBpcyBqdXN0IHdpdGggdGltZSBwYXNz ZWQgd2UgaGF2ZSBtb3JlIGFuZCBtb3JlCj4+IHJlcXVpcmVtZW50IGFuZCBmZWF0dXJlIG5lZWQg dG8gaW1wbGVtZW50IEFuZCB0aG9zZSBuZXcgcmVxdWlyZW1lbnQKPj4gZHJhZ3MgbWFueSBuZXcg c29sdXRpb24gb3IgaWRlYSwgYW5kIHNvbWUgaWRlYSB5b3UgcHJlZmVyIG5lZWQgdG8KPj4gYmFz ZWQgb24gYSBuZXcgaW5mcmFzdHJ1Y3R1cmUsIHRoYXQncyBhbGwKPj4KPj4gSSBkb24ndCB3aHkg dGhlIGpvYiAic2hvdWxkIGJlIiBvciBub3QgInNob3VsZCBiZSIgaW4gdGhlIHNjaGVkdWxlciwK Pj4gaG9uZXN0bHkgc3BlYWtpbmcgSSBjYW4gYXJndWUgd2l0aCB5b3UgdGhhdCB0aGUgInNjaGVk dWxlciIgYW5kIHRoZSBURFIgZmVhdHVyZSB3aGljaCBpbnZlbnRlZCBieSBBTUQgZGV2ZWxvcGVy ICJzaG91bGQiIG5ldmVyIGVzY2FsYXRlIHRvIGRybSBsYXllciBhdCBhbGwgYW5kIGJ5IHRoYXQg YXNzdW1wdGlvbiBUaG9zZSB2ZW5kb3IncyBjb21wYXRpYmlsaXRpZXMgaGVhZGFjaGUgcmlnaHQg bm93IHdvbid0IGhhcHBlbiBhdCBhbGwuCj4+Cj4+IExldCdzIGp1c3QgZm9jdXMgb24gdGhlIGlz c3VlIHNvIGZhci4KPj4KPj4gVGhlIHNvbHV0aW9uIEFuZHJleSBhbmQgSmFjayBkb2luZyByaWdo dCBub3cgbG9va3MgZ29vZCB0byBtZSwgYW5kIGl0Cj4+IGNhbiBzb2x2ZSBvdXIgcHJvYmxlbXMg d2l0aG91dCBpbnRyb2R1Y2luZyByZWdyZXNzaW9uIGZyb20gYSBzdXJmYWNlCj4+IGxvb2ssIGJ1 dCBpdCBpcyBmaW5lIGlmIHlvdSBuZWVkIGEgbmVhdCBzb2x1dGlvbiwgIHNpbmNlIHdlIGhhdmUg b3VyCj4+IHByb2plY3QgcHJlc3N1cmUgKHdoaWNoIHdlIGFsd2F5cyBoYXZlKSBFaXRoZXIgd2Ug aW1wbGVtZW50IHRoZSBmaXJzdAo+PiB2ZXJzaW9uIHdpdGggSmFjaydzIHBhdGNoIGFuZCBkbyB0 aGUgcmV2aXNlIGluIGFub3RoZXIgc2VyaWVzIG9mCj4+IHBhdGNoZXMgKHRoYXQgYWxzbyBteSBp bml0aWFsIHN1Z2dlc3Rpb24pIG9yIHdlIHJld29yayBhbnl0aGluZyB5b3UKPj4gbWVudGlvbmVk LCBidXQgc2luY2UgbG9va3MgdG8gbWUgeW91IGFyZSBmcm9tIHRpbWUgdG8gdGltZSBhc2tpbmcK Pj4gcGVvcGxlIHRvIHJld29yayBTb21ldGhpbmcgaW4gdGhlIHN0YWdlIHRoYXQgcGVvcGxlIGFs cmVhZHkgaGF2ZSBhCj4+IHNvbHV0aW9uLCB3aGljaCBmcnVzdHJhdGVkIHBlb3BsZSBhIGxvdCwK Pj4KPj4gSSB3b3VsZCBsaWtlIHlvdSBkbyBwcmVwYXJlIGEgc29sdXRpb24gZm9yIHVzLCB3aGlj aCBzb2x2ZXMgb3VyCj4+IGhlYWRhY2hlcyAuLi4gIEkgcmVhbGx5IGRvbid0IHdhbnQgdG8gc2Vl IHlvdSBhc2tlZCBKYWNrIHRvIHJld29yayBhZ2FpbiBhbmQgYWdhaW4gSWYgeW91IGFyZSBvdXQg b2YgYmFuZHdpZHRoIG9yIG5vIGludGVyZXN0IGluIGRvaW5nIHRoaXMgLHBsZWFzZSBhdCBsZWFz dCBtYWtlIHlvdXIgc29sdXRpb24vcHJvcG9zYWwgdmVyeSBkZXRhaWwgYW5kIGNsZWFyLCBqYWNr IHRvbGQgbWUgaGUgY291bGRuJ3QgdW5kZXJzdGFuZCB5b3VyIHBvaW50IGhlcmUuCj4+Cj4+IFRo YW5rcyB2ZXJ5IG11Y2gsIGFuZCBwbGVhc2UgdW5kZXJzdGFuZCBvdXIgcGFpbmZ1bCBoZXJlCj4+ Cj4+IC9Nb25rCj4+Cj4+Cj4+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0KPj4g5Y+R5Lu25Lq6OiBL b2VuaWcsIENocmlzdGlhbiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPgo+PiDlj5HpgIHml7bp l7Q6IDIwMjHlubQz5pyIMjbml6UgMTc6MDYKPj4g5pS25Lu25Lq6OiBaaGFuZywgSmFjayAoSmlh bikgPEphY2suWmhhbmcxQGFtZC5jb20+OyBHcm9kem92c2t5LCBBbmRyZXkKPj4gPEFuZHJleS5H cm9kem92c2t5QGFtZC5jb20+OyBDaHJpc3RpYW4gS8O2bmlnCj4+IDxja29lbmlnLmxlaWNodHp1 bWVya2VuQGdtYWlsLmNvbT47IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7Cj4+IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBMaXUsIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20+ OyBEZW5nLAo+PiBFbWlseSA8RW1pbHkuRGVuZ0BhbWQuY29tPjsgUm9iIEhlcnJpbmcgPHJvYmhA a2VybmVsLm9yZz47IFRvbWV1Cj4+IFZpem9zbyA8dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+ OyBTdGV2ZW4gUHJpY2UKPj4gPHN0ZXZlbi5wcmljZUBhcm0uY29tPgo+PiDkuLvpopg6IFJlOiBb UEFUQ0ggdjNdIGRybS9zY2hlZHVsZXIgcmUtaW5zZXJ0IEJhaWxpbmcgam9iIHRvIGF2b2lkCj4+ IG1lbWxlYWsKPj4KPj4gSGkgZ3V5cywKPj4KPj4gQW0gMjYuMDMuMjEgdW0gMDM6MjMgc2Nocmll YiBaaGFuZywgSmFjayAoSmlhbik6Cj4+PiBbQU1EIE9mZmljaWFsIFVzZSBPbmx5IC0gSW50ZXJu YWwgRGlzdHJpYnV0aW9uIE9ubHldCj4+Pgo+Pj4gSGksIEFuZHJleSwKPj4+Cj4+Pj4+IGhvdyB1 IGhhbmRsZSBub24gZ3VpbHR5IHNpbmduYWxlZCBqb2JzIGluIGRybV9zY2hlZF9zdG9wLCBjdXJy ZW50bHkKPj4+Pj4gbG9va3MgbGlrZSB5b3UgZG9uJ3QgY2FsbCBwdXQgZm9yIHRoZW0gYW5kIGp1 c3QgZXhwbGljaXRseSBmcmVlCj4+Pj4+IHRoZW0gYXMgYmVmb3JlCj4+PiBHb29kIHBvaW50LCBJ IG1pc3NlZCB0aGF0IHBsYWNlLiBXaWxsIGNvdmVyIHRoYXQgaW4gbXkgbmV4dCBwYXRjaC4KPj4+ Cj4+Pj4+IEFsc28gc2NoZWQtPmZyZWVfZ3VpbHR5IHNlZW1zIHVzZWxlc3Mgd2l0aCB0aGUgbmV3 IGFwcHJvYWNoLgo+Pj4gWWVzLCBJIGFncmVlLgo+Pj4KPj4+Pj4gRG8gd2UgZXZlbiBuZWVkIHRo ZSBjbGVhbnVwIG1lY2hhbmlzbSBhdCBkcm1fc2NoZWRfZ2V0X2NsZWFudXBfam9iIHdpdGggdGhp cyBhcHByb2FjaC4uLgo+Pj4gSSBhbSBub3QgcXVpdGUgc3VyZSBhYm91dCB0aGF0IGZvciBub3cs IGxldCBtZSB0aGluayBhYm91dCB0aGlzIHRvcGljIHRvZGF5Lgo+Pj4KPj4+IEhpLCBDaHJpc3Rp YW4sCj4+PiBzaG91bGQgSSBhZGQgYSBmZW5jZSBhbmQgZ2V0L3B1dCB0byB0aGF0IGZlbmNlIHJh dGhlciB0aGFuIHVzaW5nIGFuIGV4cGxpY2l0IHJlZmNvdW50Pwo+Pj4gQW5kIGFub3RoZXIgY29u Y2VybnM/Cj4+IHdlbGwgbGV0IG1lIHJlLWl0ZXJhdGU6Cj4+Cj4+IEZvciB0aGUgc2NoZWR1bGVy IHRoZSBqb2IgaXMganVzdCBhIHRlbXBvcmFyeSBkYXRhIHN0cnVjdHVyZSB1c2VkIGZvciBzY2hl ZHVsaW5nIHRoZSBJQnMgdG8gdGhlIGhhcmR3YXJlLgo+Pgo+PiBXaGlsZSBwdXNoaW5nIHRoZSBq b2IgdG8gdGhlIGhhcmR3YXJlIHdlIGdldCBhIGZlbmNlIHN0cnVjdHVyZSBpbiByZXR1cm4gd2hp Y2ggcmVwcmVzZW50cyB0aGUgSUJzIGV4ZWN1dGluZyBvbiB0aGUgaGFyZHdhcmUuCj4+Cj4+IFVu Zm9ydHVuYXRlbHkgd2UgaGF2ZSBhcHBsaWVkIGEgZGVzaWduIHdoZXJlIHRoZSBqb2Igc3RydWN0 dXJlIGlzIHJhdGhlciB1c2VkIGZvciByZS1zdWJtaXR0aW5nIHRoZSBqb2JzIHRvIHRoZSBoYXJk d2FyZSBhZnRlciBhIEdQVSByZXNldCBhbmQga2FybWEgaGFuZGxpbmcgZXRjIGV0Yy4uLgo+Pgo+ PiBBbGwgdGhhdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIHB1c2hlZCBpbnRvIHRoZSBzY2hlZHVsZXIg aW50byB0aGUgZmlyc3QgcGxhY2UgYW5kIHdlIHNob3VsZCBub3cgd29yayBvbiBnZXR0aW5nIHRo aXMgY2xlYW5lZCB1cCByYXRoZXIgdGhhbiBtYWtpbmcgaXQgYW4gZXZlbiBiaWdnZXIgbWVzcyBi eSBhcHBseWluZyBoYWx2ZSBiYWNrZWQgc29sdXRpb25zLgo+Pgo+PiBTbyBpbiBteSBvcGluaW9u IGFkZGluZyBhIHJlZmVyZW5jZSBjb3VudCB0byB0aGUgam9iIGlzIGdvaW5nIGludG8gdGhlIGNv bXBsZXRlbHkgd3JvbmcgZGlyZWN0bHkuIFdoYXQgd2Ugc2hvdWxkIHJhdGhlciBkbyBpcyB0byBm aXggdGhlIGluY29ycmVjdCBkZXNpZ24gZGVjaXNpb24gdG8gdXNlIGpvYnMgYXMgdmVoaWNsZSBp biB0aGUgc2NoZWR1bGVyIGZvciByZXNldCBoYW5kbGluZy4KPj4KPj4gVG8gZml4IHRoaXMgSSBz dWdnZXN0IHRoZSBmb2xsb3dpbmcgYXBwcm9hY2g6Cj4+IDEuIFdlIGFkZCBhIHBvaW50ZXIgZnJv bSB0aGUgZHJtX3NjaGVkX2ZlbmNlIGJhY2sgdG8gdGhlIGRybV9zY2hlZF9qb2IuCj4+IDIuIElu c3RlYWQgb2Yga2VlcGluZyB0aGUgam9iIGFyb3VuZCBpbiB0aGUgc2NoZWR1bGVyIHdlIGtlZXAg dGhlIGZlbmNlIGFyb3VuZC4gRm9yIHRoaXMgSSBzdWdnZXN0IHRvIHJlcGxhY2UgdGhlIHBlbmRp bmdfbGlzdCB3aXRoIGEgcmluZyBidWZmZXIuCj4+IDMuIFRoZSB0aW1lZG91dF9qb2IgY2FsbGJh Y2sgaXMgcmVwbGFjZWQgd2l0aCBhIHRpbWVvdXRfZmVuY2UgY2FsbGJhY2suCj4+IDQuIFRoZSBm cmVlX2pvYiBjYWxsYmFjayBpcyBjb21wbGV0ZWQgZHJvcHBlZC4gSm9iIGxpZmV0aW1lIGlzIG5v dyBoYW5kbGVkIGluIHRoZSBkcml2ZXIsIG5vdCB0aGUgc2NoZWR1bGVyLgo+Pgo+PiBSZWdhcmRz LAo+PiBDaHJpc3RpYW4uCj4+Cj4+PiBUaGFua3MsCj4+PiBKYWNrCj4+Pgo+Pj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0KPj4+IEZyb206IEdyb2R6b3Zza3ksIEFuZHJleSA8QW5kcmV5Lkdy b2R6b3Zza3lAYW1kLmNvbT4KPj4+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjYsIDIwMjEgMTI6MzIg QU0KPj4+IFRvOiBaaGFuZywgSmFjayAoSmlhbikgPEphY2suWmhhbmcxQGFtZC5jb20+OyBDaHJp c3RpYW4gS8O2bmlnCj4+PiA8Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+OyBkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOwo+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmc7IEtvZW5pZywgQ2hyaXN0aWFuCj4+PiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPjsg TGl1LCBNb25rIDxNb25rLkxpdUBhbWQuY29tPjsgRGVuZywgRW1pbHkKPj4+IDxFbWlseS5EZW5n QGFtZC5jb20+OyBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPjsgVG9tZXUgVml6b3NvCj4+ PiA8dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+OyBTdGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmlj ZUBhcm0uY29tPgo+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCB2M10gZHJtL3NjaGVkdWxlciByZS1p bnNlcnQgQmFpbGluZyBqb2IgdG8gYXZvaWQKPj4+IG1lbWxlYWsKPj4+Cj4+PiBUaGVyZSBhcmUg YSBmZXcgaXNzdWVzIGhlcmUgbGlrZSAtIGhvdyB1IGhhbmRsZSBub24gZ3VpbHR5IHNpbmduYWxl ZCBqb2JzIGluIGRybV9zY2hlZF9zdG9wLCBjdXJyZW50bHkgbG9va3MgbGlrZSB5b3UgZG9uJ3Qg Y2FsbCBwdXQgZm9yIHRoZW0gYW5kIGp1c3QgZXhwbGljaXRseSBmcmVlIHRoZW0gYXMgYmVmb3Jl LiBBbHNvIHNjaGVkLT5mcmVlX2d1aWx0eSBzZWVtcyB1c2VsZXNzIHdpdGggdGhlIG5ldyBhcHBy b2FjaC4gRG8gd2UgZXZlbiBuZWVkIHRoZSBjbGVhbnVwIG1lY2hhbmlzbSBhdCBkcm1fc2NoZWRf Z2V0X2NsZWFudXBfam9iIHdpdGggdGhpcyBhcHByb2FjaC4uLgo+Pj4KPj4+IEJ1dCBmaXJzdCAt IFdlIG5lZWQgQ2hyaXN0aWFuIHRvIGV4cHJlc3MgaGlzIG9waW5pb24gb24gdGhpcyBzaW5jZSBJ IHRoaW5rIGhlIG9wcG9zZWQgcmVmY291bnRpbmcgam9icyBhbmQgdGhhdCB3ZSBzaG91bGQgY29u Y2VudHJhdGUgb24gZmVuY2VzIGluc3RlYWQuCj4+Pgo+Pj4gQ2hyaXN0aWFuIC0gY2FuIHlvdSBj aGltZSBpbiBoZXJlID8KPj4+Cj4+PiBBbmRyZXkKPj4+Cj4+PiBPbiAyMDIxLTAzLTI1IDU6NTEg YS5tLiwgWmhhbmcsIEphY2sgKEppYW4pIHdyb3RlOgo+Pj4+IFtBTUQgT2ZmaWNpYWwgVXNlIE9u bHkgLSBJbnRlcm5hbCBEaXN0cmlidXRpb24gT25seV0KPj4+Pgo+Pj4+Cj4+Pj4gSGksIEFuZHJl eQo+Pj4+Cj4+Pj4gVGhhbmsgeW91IGZvciB5b3VyIGdvb2Qgb3BpbmlvbnMuCj4+Pj4KPj4+PiBJ IGxpdGVyYWxseSBhZ3JlZSB3aXRoIHlvdSB0aGF0IHRoZSByZWZjb3VudCBjb3VsZCBzb2x2ZSB0 aGUKPj4+PiBnZXRfY2xlYW5fdXBfdXAgY29jdXJyZW50IGpvYiBncmFjZWZ1bGx5LCBhbmQgbm8g bmVlZCB0byByZS1pbnNlcnQKPj4+PiB0aGUKPj4+Pgo+Pj4+IGpvYiBiYWNrIGFueW1vcmUuCj4+ Pj4KPj4+PiBJIHF1aWNrbHkgbWFkZSBhIGRyYWZ0IGZvciB0aGlzIGlkZWEgYXMgZm9sbG93czoK Pj4+Pgo+Pj4+IEhvdyBkbyB5b3UgbGlrZSBpdD8gSSB3aWxsIHN0YXJ0IGltcGxlbWVudCB0byBp dCBhZnRlciBJIGdvdCB5b3VyCj4+Pj4gYWNrbm93bGVkZ2UuCj4+Pj4KPj4+PiBUaGFua3MsCj4+ Pj4KPj4+PiBKYWNrCj4+Pj4KPj4+PiArdm9pZCBkcm1fam9iX2dldChzdHJ1Y3QgZHJtX3NjaGVk X2pvYiAqc19qb2IpCj4+Pj4KPj4+PiArewo+Pj4+Cj4+Pj4gKyAgICAgICBrcmVmX2dldCgmc19q b2ItPnJlZmNvdW50KTsKPj4+Pgo+Pj4+ICt9Cj4+Pj4KPj4+PiArCj4+Pj4KPj4+PiArdm9pZCBk cm1fam9iX2RvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKnJlZikKPj4+Pgo+Pj4+ICt7Cj4+Pj4KPj4+ PiArICAgICAgIHN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYjsKPj4+Pgo+Pj4+ICsgICAgICAg c3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZDsKPj4+Pgo+Pj4+ICsKPj4+Pgo+Pj4+ICsg ICAgICAgc19qb2IgPSBjb250YWluZXJfb2YocmVmLCBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiwgcmVm Y291bnQpOwo+Pj4+Cj4+Pj4gKyAgICAgICBzY2hlZCA9IHNfam9iLT5zY2hlZDsKPj4+Pgo+Pj4+ ICsgICAgICAgc2NoZWQtPm9wcy0+ZnJlZV9qb2Ioc19qb2IpOwo+Pj4+Cj4+Pj4gK30KPj4+Pgo+ Pj4+ICsKPj4+Pgo+Pj4+ICt2b2lkIGRybV9qb2JfcHV0KHN0cnVjdCBkcm1fc2NoZWRfam9iICpz X2pvYikKPj4+Pgo+Pj4+ICt7Cj4+Pj4KPj4+PiArICAgICAgIGtyZWZfcHV0KCZzX2pvYi0+cmVm Y291bnQsIGRybV9qb2JfZG9fcmVsZWFzZSk7Cj4+Pj4KPj4+PiArfQo+Pj4+Cj4+Pj4gKwo+Pj4+ Cj4+Pj4gc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl9iZWdpbihzdHJ1Y3QgZHJtX3NjaGVkX2pv YiAqc19qb2IpCj4+Pj4KPj4+PiB7Cj4+Pj4KPj4+PiAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2dw dV9zY2hlZHVsZXIgKnNjaGVkID0gc19qb2ItPnNjaGVkOwo+Pj4+Cj4+Pj4gKyAgICAgICBrcmVm X2luaXQoJnNfam9iLT5yZWZjb3VudCk7Cj4+Pj4KPj4+PiArICAgICAgIGRybV9qb2JfZ2V0KHNf am9iKTsKPj4+Pgo+Pj4+ICAgICAgICAgICAgIHNwaW5fbG9jaygmc2NoZWQtPmpvYl9saXN0X2xv Y2spOwo+Pj4+Cj4+Pj4gICAgICAgICAgICAgbGlzdF9hZGRfdGFpbCgmc19qb2ItPm5vZGUsICZz Y2hlZC0+cmluZ19taXJyb3JfbGlzdCk7Cj4+Pj4KPj4+PiAgICAgICAgICAgICBkcm1fc2NoZWRf c3RhcnRfdGltZW91dChzY2hlZCk7Cj4+Pj4KPj4+PiBAQCAtMjk0LDE3ICszMTYsMTYgQEAgc3Rh dGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1Y3QKPj4+PiB3b3JrX3N0cnVjdCAq d29yaykKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICogZHJtX3NjaGVkX2NsZWFudXBf am9icy4gSXQgd2lsbCBiZSByZWluc2VydGVkCj4+Pj4gYmFjayBhZnRlciBzY2hlZC0+dGhyZWFk Cj4+Pj4KPj4+PiAgICAgICAgICAgICAgICAgICAgICAqIGlzIHBhcmtlZCBhdCB3aGljaCBwb2lu dCBpdCdzIHNhZmUuCj4+Pj4KPj4+PiAgICAgICAgICAgICAgICAgICAgICAqLwo+Pj4+Cj4+Pj4g LSAgICAgICAgICAgICAgIGxpc3RfZGVsX2luaXQoJmpvYi0+bm9kZSk7Cj4+Pj4KPj4+PiArICAg ICAgICAgICAgICAgZHJtX2pvYl9nZXQoam9iKTsKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAgICAg ICAgc3Bpbl91bmxvY2soJnNjaGVkLT5qb2JfbGlzdF9sb2NrKTsKPj4+Pgo+Pj4+ICAgICAgICAg ICAgICAgICAgICAgam9iLT5zY2hlZC0+b3BzLT50aW1lZG91dF9qb2Ioam9iKTsKPj4+Pgo+Pj4+ IC0KPj4+Pgo+Pj4+ICsgICAgICAgICAgICAgICBkcm1fam9iX3B1dChqb2IpOwo+Pj4+Cj4+Pj4g ICAgICAgICAgICAgICAgICAgICAvKgo+Pj4+Cj4+Pj4gICAgICAgICAgICAgICAgICAgICAgKiBH dWlsdHkgam9iIGRpZCBjb21wbGV0ZSBhbmQgaGVuY2UgbmVlZHMgdG8gYmUKPj4+PiBtYW51YWxs eSByZW1vdmVkCj4+Pj4KPj4+PiAgICAgICAgICAgICAgICAgICAgICAqIFNlZSBkcm1fc2NoZWRf c3RvcCBkb2MuCj4+Pj4KPj4+PiAgICAgICAgICAgICAgICAgICAgICAqLwo+Pj4+Cj4+Pj4gICAg ICAgICAgICAgICAgICAgICBpZiAoc2NoZWQtPmZyZWVfZ3VpbHR5KSB7Cj4+Pj4KPj4+PiAtICAg ICAgICAgICAgICAgICAgICAgICBqb2ItPnNjaGVkLT5vcHMtPmZyZWVfam9iKGpvYik7Cj4+Pj4K Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZWQtPmZyZWVfZ3VpbHR5ID0gZmFs c2U7Cj4+Pj4KPj4+PiAgICAgICAgICAgICAgICAgICAgIH0KPj4+Pgo+Pj4+ICAgICAgICAgICAg IH0gZWxzZSB7Cj4+Pj4KPj4+PiBAQCAtMzU1LDIwICszNzYsNiBAQCB2b2lkIGRybV9zY2hlZF9z dG9wKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlcgo+Pj4+ICpzY2hlZCwgc3RydWN0IGRybV9zY2hl ZF9qb2IgKmJhZCkKPj4+Pgo+Pj4+IC0gICAgICAgLyoKPj4+Pgo+Pj4+IC0gICAgICAgICogUmVp bnNlcnQgYmFjayB0aGUgYmFkIGpvYiBoZXJlIC0gbm93IGl0J3Mgc2FmZSBhcwo+Pj4+Cj4+Pj4g LSAgICAgICAgKiBkcm1fc2NoZWRfZ2V0X2NsZWFudXBfam9iIGNhbm5vdCByYWNlIGFnYWluc3Qg dXMgYW5kCj4+Pj4gcmVsZWFzZSB0aGUKPj4+Pgo+Pj4+IC0gICAgICAgICogYmFkIGpvYiBhdCB0 aGlzIHBvaW50IC0gd2UgcGFya2VkICh3YWl0ZWQgZm9yKSBhbnkgaW4KPj4+PiBwcm9ncmVzcwo+ Pj4+Cj4+Pj4gLSAgICAgICAgKiAoZWFybGllcikgY2xlYW51cHMgYW5kIGRybV9zY2hlZF9nZXRf Y2xlYW51cF9qb2Igd2lsbCBub3QKPj4+PiBiZSBjYWxsZWQKPj4+Pgo+Pj4+IC0gICAgICAgICog bm93IHVudGlsIHRoZSBzY2hlZHVsZXIgdGhyZWFkIGlzIHVucGFya2VkLgo+Pj4+Cj4+Pj4gLSAg ICAgICAgKi8KPj4+Pgo+Pj4+IC0gICAgICAgaWYgKGJhZCAmJiBiYWQtPnNjaGVkID09IHNjaGVk KQo+Pj4+Cj4+Pj4gLSAgICAgICAgICAgICAgIC8qCj4+Pj4KPj4+PiAtICAgICAgICAgICAgICAg ICogQWRkIGF0IHRoZSBoZWFkIG9mIHRoZSBxdWV1ZSB0byByZWZsZWN0IGl0IHdhcyB0aGUKPj4+ PiBlYXJsaWVzdAo+Pj4+Cj4+Pj4gLSAgICAgICAgICAgICAgICAqIGpvYiBleHRyYWN0ZWQuCj4+ Pj4KPj4+PiAtICAgICAgICAgICAgICAgICovCj4+Pj4KPj4+PiAtICAgICAgICAgICAgICAgbGlz dF9hZGQoJmJhZC0+bm9kZSwgJnNjaGVkLT5yaW5nX21pcnJvcl9saXN0KTsKPj4+Pgo+Pj4+IC0K Pj4+Pgo+Pj4+ICAgICAgICAgICAgIC8qCj4+Pj4KPj4+PiAgICAgICAgICAgICAgKiBJdGVyYXRl IHRoZSBqb2IgbGlzdCBmcm9tIGxhdGVyIHRvICBlYXJsaWVyIG9uZSBhbmQKPj4+PiBlaXRoZXIg ZGVhY3RpdmUKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAqIHRoZWlyIEhXIGNhbGxiYWNrcyBvciBy ZW1vdmUgdGhlbSBmcm9tIG1pcnJvciBsaXN0IGlmCj4+Pj4gdGhleSBhbHJlYWR5Cj4+Pj4KPj4+ PiBAQCAtNzc0LDcgKzc4MSw3IEBAIHN0YXRpYyBpbnQgZHJtX3NjaGVkX21haW4odm9pZCAqcGFy YW0pCj4+Pj4KPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBrdGhyZWFkX3Nob3VsZF9zdG9wKCkpOwo+Pj4+Cj4+Pj4gICAgICAgICAgICAgICAgICAgICBp ZiAoY2xlYW51cF9qb2IpIHsKPj4+Pgo+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHNjaGVk LT5vcHMtPmZyZWVfam9iKGNsZWFudXBfam9iKTsKPj4+Pgo+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgIGRybV9qb2JfcHV0KGNsZWFudXBfam9iKTsKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBxdWV1ZSB0aW1lb3V0IGZvciBuZXh0IGpvYiAqLwo+Pj4+Cj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRybV9zY2hlZF9zdGFydF90aW1lb3V0KHNjaGVk KTsKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAgICAgICAgfQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaAo+Pj4+IGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVk dWxlci5oCj4+Pj4KPj4+PiBpbmRleCA1YTFmMDY4YWYxYzIuLmI4MDUxM2VlYzkwZiAxMDA2NDQK Pj4+Pgo+Pj4+IC0tLSBhL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaAo+Pj4+Cj4+Pj4gKysr IGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCj4+Pj4KPj4+PiBAQCAtMTg4LDYgKzE4OCw3 IEBAIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2UKPj4+PiAqdG9fZHJtX3NjaGVkX2ZlbmNlKHN0cnVj dCBkbWFfZmVuY2UgKmYpOwo+Pj4+Cj4+Pj4gICAgICAgKiB0byBzY2hlZHVsZSB0aGUgam9iLgo+ Pj4+Cj4+Pj4gICAgICAgKi8KPj4+Pgo+Pj4+IHN0cnVjdCBkcm1fc2NoZWRfam9iIHsKPj4+Pgo+ Pj4+ICsgICAgICAgc3RydWN0IGtyZWYgICAgICAgICAgICAgICAgICAgICByZWZjb3VudDsKPj4+ Pgo+Pj4+ICAgICAgICAgICAgIHN0cnVjdCBzcHNjX25vZGUgICAgICAgICAgICAgICAgcXVldWVf bm9kZTsKPj4+Pgo+Pj4+ICAgICAgICAgICAgIHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAgICAg ICAgKnNjaGVkOwo+Pj4+Cj4+Pj4gICAgICAgICAgICAgc3RydWN0IGRybV9zY2hlZF9mZW5jZSAg ICAgICAgICAqc19mZW5jZTsKPj4+Pgo+Pj4+IEBAIC0xOTgsNiArMTk5LDcgQEAgc3RydWN0IGRy bV9zY2hlZF9qb2Igewo+Pj4+Cj4+Pj4gICAgICAgICAgICAgZW51bSBkcm1fc2NoZWRfcHJpb3Jp dHkgICAgICAgICBzX3ByaW9yaXR5Owo+Pj4+Cj4+Pj4gICAgICAgICAgICAgc3RydWN0IGRybV9z Y2hlZF9lbnRpdHkgICplbnRpdHk7Cj4+Pj4KPj4+PiAgICAgICAgICAgICBzdHJ1Y3QgZG1hX2Zl bmNlX2NiICAgICAgICAgICAgIGNiOwo+Pj4+Cj4+Pj4gKwo+Pj4+Cj4+Pj4gfTsKPj4+Pgo+Pj4+ ICpGcm9tOiogR3JvZHpvdnNreSwgQW5kcmV5IDxBbmRyZXkuR3JvZHpvdnNreUBhbWQuY29tPgo+ Pj4+ICpTZW50OiogRnJpZGF5LCBNYXJjaCAxOSwgMjAyMSAxMjoxNyBBTQo+Pj4+ICpUbzoqIFpo YW5nLCBKYWNrIChKaWFuKSA8SmFjay5aaGFuZzFAYW1kLmNvbT47IENocmlzdGlhbiBLw7ZuaWcK Pj4+PiA8Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+OyBkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnOwo+Pj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBLb2Vu aWcsIENocmlzdGlhbgo+Pj4+IDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+OyBMaXUsIE1vbmsg PE1vbmsuTGl1QGFtZC5jb20+OyBEZW5nLAo+Pj4+IEVtaWx5IDxFbWlseS5EZW5nQGFtZC5jb20+ OyBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPjsgVG9tZXUKPj4+PiBWaXpvc28gPHRvbWV1 LnZpem9zb0Bjb2xsYWJvcmEuY29tPjsgU3RldmVuIFByaWNlCj4+Pj4gPHN0ZXZlbi5wcmljZUBh cm0uY29tPgo+Pj4+ICpTdWJqZWN0OiogUmU6IFtQQVRDSCB2M10gZHJtL3NjaGVkdWxlciByZS1p bnNlcnQgQmFpbGluZyBqb2IgdG8KPj4+PiBhdm9pZCBtZW1sZWFrCj4+Pj4KPj4+PiBPbiAyMDIx LTAzLTE4IDY6NDEgYS5tLiwgWmhhbmcsIEphY2sgKEppYW4pIHdyb3RlOgo+Pj4+Cj4+Pj4gICAg ICAgIFtBTUQgT2ZmaWNpYWwgVXNlIE9ubHkgLSBJbnRlcm5hbCBEaXN0cmlidXRpb24gT25seV0K Pj4+Pgo+Pj4+ICAgICAgICBIaSwgQW5kcmV5Cj4+Pj4KPj4+PiAgICAgICAgTGV0IG1lIHN1bW1h cml6ZSB0aGUgYmFja2dyb3VuZCBvZiB0aGlzIHBhdGNoOgo+Pj4+Cj4+Pj4gICAgICAgIEluIFRE UiByZXN1Ym1pdCBzdGVwIOKAnGFtZGdwdV9kZXZpY2VfcmVjaGVja19ndWlsdHlfam9icywKPj4+ Pgo+Pj4+ICAgICAgICBJdCB3aWxsIHN1Ym1pdCBmaXJzdCBqb2JzIG9mIGVhY2ggcmluZyBhbmQg ZG8gZ3VpbHR5IGpvYiByZS1jaGVjay4KPj4+Pgo+Pj4+ICAgICAgICBBdCB0aGF0IHBvaW50LCBX ZSBoYWQgdG8gbWFrZSBzdXJlIGVhY2ggam9iIGlzIGluIHRoZSBtaXJyb3IgbGlzdChvcgo+Pj4+ ICAgICAgICByZS1pbnNlcnRlZCBiYWNrIGFscmVhZHkpLgo+Pj4+Cj4+Pj4gICAgICAgIEJ1dCB3 ZSBmb3VuZCB0aGUgY3VycmVudCBjb2RlIG5ldmVyIHJlLWluc2VydCB0aGUgam9iIHRvIG1pcnJv ciBsaXN0Cj4+Pj4gICAgICAgIGluIHRoZSAyXm5kICwgM15yZCBqb2JfdGltZW91dCB0aHJlYWQo QmFpbGluZyBURFIgdGhyZWFkKS4KPj4+Pgo+Pj4+ICAgICAgICBUaGlzIG5vdCBvbmx5IHdpbGwg Y2F1c2UgbWVtbGVhayBvZiB0aGUgYmFpbGluZyBqb2JzLiBXaGF04oCZcyBtb3JlCj4+Pj4gICAg ICAgIGltcG9ydGFudCwgdGhlIDFec3QgdGRyIHRocmVhZCBjYW4gbmV2ZXIgaXRlcmF0ZSB0aGUg YmFpbGluZyBqb2IgYW5kCj4+Pj4gICAgICAgIHNldCBpdHMgZ3VpbHR5IHN0YXR1cyB0byBhIGNv cnJlY3Qgc3RhdHVzLgo+Pj4+Cj4+Pj4gICAgICAgIFRoZXJlZm9yZSwgd2UgaGFkIHRvIHJlLWlu c2VydCB0aGUgam9iKG9yIGV2ZW4gbm90IGRlbGV0ZSBub2RlKSBmb3IKPj4+PiAgICAgICAgYmFp bGluZyBqb2IuCj4+Pj4KPj4+PiAgICAgICAgRm9yIHRoZSBhYm92ZSBWMyBwYXRjaCwgdGhlIHJh Y2luZyBjb25kaXRpb24gaW4gbXkgbWluZCBpczoKPj4+Pgo+Pj4+ICAgICAgICB3ZSBjYW5ub3Qg bWFrZSBzdXJlIGFsbCBiYWlsaW5nIGpvYnMgYXJlIGZpbmlzaGVkIGJlZm9yZSB3ZSBkbwo+Pj4+ ICAgICAgICBhbWRncHVfZGV2aWNlX3JlY2hlY2tfZ3VpbHR5X2pvYnMuCj4+Pj4KPj4+PiBZZXMs dGhhdCByYWNlIGkgbWlzc2VkIC0gc28geW91IHNheSB0aGF0IGZvciAybmQsIGJhbGluZyB0aHJl YWQgd2hvCj4+Pj4gZXh0cmFjdGVkIHRoZSBqb2IsIGV2ZW4gaWYgaGUgcmVpbnNlcnQgaXQgcmln aHQgYXdheSBiYWNrIGFmdGVyCj4+Pj4gZHJpdmVyIGNhbGxiYWNrIHJldHVybiBEUk1fR1BVX1ND SEVEX1NUQVRfQkFJTElORywgdGhlcmUgaXMgc21hbGwKPj4+PiB0aW1lIHNsb3Qgd2hlcmUgdGhl IGpvYiBpcyBub3QgaW4gbWlycm9yIGxpc3QgYW5kIHNvIHRoZSAxc3QgVERSCj4+Pj4gbWlnaHQg bWlzcyBpdCBhbmQgbm90IGZpbmQgdGhhdCAgMm5kIGpvYiBpcyB0aGUgYWN0dWFsIGd1aWx0eSBq b2IsCj4+Pj4gcmlnaHQgPyBCdXQsIHN0aWxsIHRoaXMgam9iIHdpbGwgZ2V0IGJhY2sgaW50byBt aXJyb3IgbGlzdCwgYW5kCj4+Pj4gc2luY2UgaXQncyByZWFsbHkgdGhlIGJhZCBqb2IsIGl0IHdp bGwgbmV2ZXIgc2lnbmFsIGNvbXBsZXRpb24gYW5kCj4+Pj4gc28gb24gdGhlIG5leHQgdGltZW91 dCBjeWNsZSBpdCB3aWxsIGJlIGNhdWdodCAob2YgY291cnNlIHRoZXJlIGlzIGEKPj4+PiBzdGFy dmF0aW9uIHNjZW5hcmlvIGhlcmUgaWYgbW9yZSBURFJzIGtpY2sgaW4gYW5kIGl0IGJhaWxzIG91 dCBhZ2FpbiBidXQgdGhpcyBpcyByZWFsbHkgdW5saWtlbHkpLgo+Pj4+Cj4+Pj4gICAgICAgIEJh c2VkIG9uIHRoaXMgaW5zaWdodCwgSSB0aGluayB3ZSBoYXZlIHR3byBvcHRpb25zIHRvIHNvbHZl IHRoaXMgaXNzdWU6Cj4+Pj4KPj4+PiAgICAgICAgIDEuIFNraXAgZGVsZXRlIG5vZGUgaW4gdGRy IHRocmVhZDIsIHRocmVhZDMsIDQg4oCmICh1c2luZyBtdXRleCBvcgo+Pj4+ICAgICAgICAgICAg YXRvbWljIHZhcmlhYmxlKQo+Pj4+ICAgICAgICAgMi4gUmUtaW5zZXJ0IGJhY2sgYmFpbGluZyBq b2IsIGFuZCBtZWFud2hpbGUgdXNlIHNlbWFwaG9yZSBpbiBlYWNoCj4+Pj4gICAgICAgICAgICB0 ZHIgdGhyZWFkIHRvIGtlZXAgdGhlIHNlcXVlbmNlIGFzIGV4cGVjdGVkIGFuZCBlbnN1cmUgZWFj aCBqb2IKPj4+PiAgICAgICAgICAgIGlzIGluIHRoZSBtaXJyb3IgbGlzdCB3aGVuIGRvIHJlc3Vi bWl0IHN0ZXAuCj4+Pj4KPj4+PiAgICAgICAgRm9yIE9wdGlvbjEsIGxvZ2ljIGlzIHNpbXBsZXIg YW5kIHdlIG5lZWQgb25seSBvbmUgZ2xvYmFsIGF0b21pYwo+Pj4+ICAgICAgICB2YXJpYWJsZToK Pj4+Pgo+Pj4+ICAgICAgICBXaGF0IGRvIHlvdSB0aGluayBhYm91dCB0aGlzIHBsYW4/Cj4+Pj4K Pj4+PiAgICAgICAgT3B0aW9uMSBzaG91bGQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmcgbG9naWM6 Cj4+Pj4KPj4+PiAgICAgICAgK3N0YXRpYyBhdG9taWNfdCBpbl9yZXNldDsgICAgICAgICAgICAg Ly9hIGdsb2JhbCBhdG9taWMgdmFyIGZvcgo+Pj4+ICAgICAgICBzeW5jaHJvbml6YXRpb24KPj4+ Pgo+Pj4+ICAgICAgICBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfcHJvY2Vzc19qb2Ioc3RydWN0IGRt YV9mZW5jZSAqZiwgc3RydWN0Cj4+Pj4gICAgICAgIGRtYV9mZW5jZV9jYiAqY2IpOwo+Pj4+Cj4+ Pj4gICAgICAgICAgLyoqCj4+Pj4KPj4+PiAgICAgICAgQEAgLTI5NSw2ICsyOTYsMTIgQEAgc3Rh dGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1Y3QKPj4+PiAgICAgICAgd29ya19z dHJ1Y3QgKndvcmspCj4+Pj4KPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgKiBkcm1fc2No ZWRfY2xlYW51cF9qb2JzLiBJdCB3aWxsIGJlIHJlaW5zZXJ0ZWQKPj4+PiAgICAgICAgYmFjayBh ZnRlciBzY2hlZC0+dGhyZWFkCj4+Pj4KPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgKiBp cyBwYXJrZWQgYXQgd2hpY2ggcG9pbnQgaXQncyBzYWZlLgo+Pj4+Cj4+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgICovCj4+Pj4KPj4+PiAgICAgICAgKyAgICAgICAgICAgICAgIGlmIChhdG9t aWNfY21weGNoZygmaW5fcmVzZXQsIDAsIDEpICE9IDApIHsgIC8vc2tpcAo+Pj4+ICAgICAgICBk ZWxldGUgbm9kZSBpZiBpdOKAmXMgdGhlYWQxLDIsMyzigKYuCj4+Pj4KPj4+PiAgICAgICAgKyAg ICAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnNjaGVkLT5qb2JfbGlzdF9sb2NrKTsK Pj4+Pgo+Pj4+ICAgICAgICArICAgICAgICAgICAgICAgICAgICAgICBkcm1fc2NoZWRfc3RhcnRf dGltZW91dChzY2hlZCk7Cj4+Pj4KPj4+PiAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuOwo+Pj4+Cj4+Pj4gICAgICAgICsgICAgICAgICAgICAgICB9Cj4+Pj4KPj4+PiAgICAg ICAgKwo+Pj4+Cj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgbGlzdF9kZWxfaW5pdCgmam9i LT5ub2RlKTsKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZz Y2hlZC0+am9iX2xpc3RfbG9jayk7Cj4+Pj4KPj4+PiAgICAgICAgQEAgLTMyMCw2ICszMjcsNyBA QCBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfam9iX3RpbWVkb3V0KHN0cnVjdAo+Pj4+ICAgICAgICB3 b3JrX3N0cnVjdCAqd29yaykKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAgICBzcGluX2xvY2soJnNj aGVkLT5qb2JfbGlzdF9sb2NrKTsKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAgICBkcm1fc2NoZWRf c3RhcnRfdGltZW91dChzY2hlZCk7Cj4+Pj4KPj4+PiAgICAgICAgICAgICAgICAgc3Bpbl91bmxv Y2soJnNjaGVkLT5qb2JfbGlzdF9sb2NrKTsKPj4+Pgo+Pj4+ICAgICAgICArICAgICAgIGF0b21p Y19zZXQoJmluX3Jlc2V0LCAwKTsgLy9yZXNldCBpbl9yZXNldCB3aGVuIHRoZSBmaXJzdAo+Pj4+ ICAgICAgICB0aHJlYWQgZmluaXNoZWQgdGRyCj4+Pj4KPj4+PiAgICAgICAgfQo+Pj4+Cj4+Pj4g VGVjaG5pY2FsbHkgbG9va3MgbGlrZSBpdCBzaG91bGQgd29yayBhcyB5b3UgZG9uJ3QgYWNjZXNz IHRoZSBqb2IKPj4+PiBwb2ludGVyIGFueSBsb25nZXIgYW5kIHNvIG5vIHJpc2sgdGhhdCBpZiBz aWduYWxlZCBpdCB3aWxsIGJlIGZyZWVkCj4+Pj4gYnkgZHJtX3NjaGVkX2dldF9jbGVhbnVwX2pv YiBidXQseW91IGNhbid0IGp1c3QgdXNlIG9uZSBnbG9iYWwKPj4+PiB2YXJpYWJsZSBhbiBieSB0 aGlzIGJhaWxpbmcgZnJvbSBURFIgd2hlbiBkaWZmZXJlbnQgZHJpdmVycyBydW4KPj4+PiB0aGVp ciBURFIgdGhyZWFkcyBpbiBwYXJhbGxlbCwgYW5kIGV2ZW4gZm9yIGFtZGdwdSwgaWYgZGV2aWNl cyBpbgo+Pj4+IGRpZmZlcmVudCBYR01JIGhpdmVzIG9yIDIgaW5kZXBlbmRlbnQgZGV2aWNlcyBp biBub24gWEdNSSBzZXR1cC4KPj4+PiBUaGVyZSBzaG91bGQgYmUgZGVmaW5lZCBzb21lIGtpbmQg b2YgR1BVIHJlc2V0IGdyb3VwIHN0cnVjdHVyZSBvbgo+Pj4+IGRybV9zY2hlZHVsZXIgbGV2ZWwg Zm9yIHdoaWNoIHRoaXMgdmFyaWFibGUgd291bGQgYmUgdXNlZC4KPj4+Pgo+Pj4+IFAuUyBJIHdv bmRlciB3aHkgd2UgY2FuJ3QganVzdCByZWYtY291bnQgdGhlIGpvYiBzbyB0aGF0IGV2ZW4gaWYK Pj4+PiBkcm1fc2NoZWRfZ2V0X2NsZWFudXBfam9iIHdvdWxkIGRlbGV0ZSBpdCBiZWZvcmUgd2Ug aGFkIGEgY2hhbmNlIHRvCj4+Pj4gc3RvcCB0aGUgc2NoZWR1bGVyIHRocmVhZCwgd2Ugd291bGRu J3QgY3Jhc2guIFRoaXMgd291bGQgYXZvaWQgYWxsCj4+Pj4gdGhlIGRhbmNlIHdpdGggZGVsZXRp b24gYW5kIHJlaW5zZXJ0aW9uLgo+Pj4+Cj4+Pj4gQW5kcmV5Cj4+Pj4KPj4+PiAgICAgICAgVGhh bmtzLAo+Pj4+Cj4+Pj4gICAgICAgIEphY2sKPj4+Pgo+Pj4+ICAgICAgICAqRnJvbToqIGFtZC1n ZnggPGFtZC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmc+Cj4+Pj4gICAgICAgIDxt YWlsdG86YW1kLWdmeC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gKk9uIEJlaGFsZiBP ZiAqWmhhbmcsCj4+Pj4gICAgICAgIEphY2sgKEppYW4pCj4+Pj4gICAgICAgICpTZW50OiogV2Vk bmVzZGF5LCBNYXJjaCAxNywgMjAyMSAxMToxMSBQTQo+Pj4+ICAgICAgICAqVG86KiBDaHJpc3Rp YW4gS8O2bmlnIDxja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4KPj4+PiAgICAgICAg PG1haWx0bzpja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT47Cj4+Pj4gICAgICAgIGRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+PiAgICAgICAgPG1haWx0bzpkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsKPj4+PiAgICAgICAgYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPj4+PiAgICAgICAgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZz47IEtvZW5pZywgQ2hyaXN0aWFuCj4+Pj4gICAgICAgIDxDaHJpc3RpYW4uS29lbmlnQGFt ZC5jb20+IDxtYWlsdG86Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPjsgTGl1LAo+Pj4+ICAgICAg ICBNb25rIDxNb25rLkxpdUBhbWQuY29tPiA8bWFpbHRvOk1vbmsuTGl1QGFtZC5jb20+OyBEZW5n LCBFbWlseQo+Pj4+ICAgICAgICA8RW1pbHkuRGVuZ0BhbWQuY29tPiA8bWFpbHRvOkVtaWx5LkRl bmdAYW1kLmNvbT47IFJvYiBIZXJyaW5nCj4+Pj4gICAgICAgIDxyb2JoQGtlcm5lbC5vcmc+IDxt YWlsdG86cm9iaEBrZXJuZWwub3JnPjsgVG9tZXUgVml6b3NvCj4+Pj4gICAgICAgIDx0b21ldS52 aXpvc29AY29sbGFib3JhLmNvbT4gPG1haWx0bzp0b21ldS52aXpvc29AY29sbGFib3JhLmNvbT47 Cj4+Pj4gICAgICAgIFN0ZXZlbiBQcmljZSA8c3RldmVuLnByaWNlQGFybS5jb20+IDxtYWlsdG86 c3RldmVuLnByaWNlQGFybS5jb20+Owo+Pj4+ICAgICAgICBHcm9kem92c2t5LCBBbmRyZXkgPEFu ZHJleS5Hcm9kem92c2t5QGFtZC5jb20+Cj4+Pj4gICAgICAgIDxtYWlsdG86QW5kcmV5Lkdyb2R6 b3Zza3lAYW1kLmNvbT4KPj4+PiAgICAgICAgKlN1YmplY3Q6KiBSZTogW1BBVENIIHYzXSBkcm0v c2NoZWR1bGVyIHJlLWluc2VydCBCYWlsaW5nIGpvYiB0bwo+Pj4+ICAgICAgICBhdm9pZCBtZW1s ZWFrCj4+Pj4KPj4+PiAgICAgICAgW0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEludGVybmFsIERp c3RyaWJ1dGlvbiBPbmx5XQo+Pj4+Cj4+Pj4gICAgICAgIFtBTUQgT2ZmaWNpYWwgVXNlIE9ubHkg LSBJbnRlcm5hbCBEaXN0cmlidXRpb24gT25seV0KPj4+Pgo+Pj4+ICAgICAgICBIae+8jEFuZHJl ee+8jAo+Pj4+Cj4+Pj4gICAgICAgIEdvb2QgY2F0Y2jvvIxJIHdpbGwgZXhwb3JlIHRoaXMgY29y bmVyIGNhc2UgYW5kIGdpdmUgZmVlZGJhY2sKPj4+PiBzb29u772eCj4+Pj4KPj4+PiAgICAgICAg QmVzdO+8jAo+Pj4+Cj4+Pj4gICAgICAgIEphY2sKPj4+Pgo+Pj4+Cj4+Pj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pj4+PiAtCj4+Pj4gLQo+Pj4+IC0tCj4+Pj4KPj4+PiAgICAgICAgKkZyb206Kkdyb2R6b3Zza3ks IEFuZHJleSA8QW5kcmV5Lkdyb2R6b3Zza3lAYW1kLmNvbQo+Pj4+ICAgICAgICA8bWFpbHRvOkFu ZHJleS5Hcm9kem92c2t5QGFtZC5jb20+Pgo+Pj4+ICAgICAgICAqU2VudDoqIFdlZG5lc2RheSwg TWFyY2ggMTcsIDIwMjEgMTA6NTA6NTkgUE0KPj4+PiAgICAgICAgKlRvOiogQ2hyaXN0aWFuIEvD tm5pZyA8Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20KPj4+PiAgICAgICAgPG1haWx0 bzpja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4+OyBaaGFuZywgSmFjayAoSmlhbikK Pj4+PiAgICAgICAgPEphY2suWmhhbmcxQGFtZC5jb20gPG1haWx0bzpKYWNrLlpoYW5nMUBhbWQu Y29tPj47Cj4+Pj4gICAgICAgIGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+PiAg ICAgICAgPG1haWx0bzpkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPgo+Pj4+ICAgICAg ICA8ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+ICAgICAgICA8bWFpbHRvOmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+PjsKPj4+PiAgICAgICAgYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcgPG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4K Pj4+PiAgICAgICAgPGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4gICAgICAgIDxt YWlsdG86YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+PjsgS29lbmlnLCBDaHJpc3RpYW4K Pj4+PiAgICAgICAgPENocmlzdGlhbi5Lb2VuaWdAYW1kLmNvbSA8bWFpbHRvOkNocmlzdGlhbi5L b2VuaWdAYW1kLmNvbT4+OyBMaXUsCj4+Pj4gICAgICAgIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20g PG1haWx0bzpNb25rLkxpdUBhbWQuY29tPj47IERlbmcsIEVtaWx5Cj4+Pj4gICAgICAgIDxFbWls eS5EZW5nQGFtZC5jb20gPG1haWx0bzpFbWlseS5EZW5nQGFtZC5jb20+PjsgUm9iIEhlcnJpbmcK Pj4+PiAgICAgICAgPHJvYmhAa2VybmVsLm9yZyA8bWFpbHRvOnJvYmhAa2VybmVsLm9yZz4+OyBU b21ldSBWaXpvc28KPj4+PiAgICAgICAgPHRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29tIDxtYWls dG86dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+PjsKPj4+PiAgICAgICAgU3RldmVuIFByaWNl IDxzdGV2ZW4ucHJpY2VAYXJtLmNvbSA8bWFpbHRvOnN0ZXZlbi5wcmljZUBhcm0uY29tPj4KPj4+ PiAgICAgICAgKlN1YmplY3Q6KiBSZTogW1BBVENIIHYzXSBkcm0vc2NoZWR1bGVyIHJlLWluc2Vy dCBCYWlsaW5nIGpvYiB0bwo+Pj4+ICAgICAgICBhdm9pZCBtZW1sZWFrCj4+Pj4KPj4+PiAgICAg ICAgSSBhY3R1YWxseSBoYXZlIGEgcmFjZSBjb25kaXRpb24gY29uY2VybiBoZXJlIC0gc2VlIGJl bGxvdyAtCj4+Pj4KPj4+PiAgICAgICAgT24gMjAyMS0wMy0xNyAzOjQzIGEubS4sIENocmlzdGlh biBLw7ZuaWcgd3JvdGU6Cj4+Pj4gICAgICAgICA+IEkgd2FzIGhvcGluZyBBbmRyZXkgd291bGQg dGFrZSBhIGxvb2sgc2luY2UgSSdtIHJlYWxseSBidXN5IHdpdGgKPj4+PiAgICAgICAgb3RoZXIK Pj4+PiAgICAgICAgID4gd29yayByaWdodCBub3cuCj4+Pj4gICAgICAgICA+Cj4+Pj4gICAgICAg ICA+IFJlZ2FyZHMsCj4+Pj4gICAgICAgICA+IENocmlzdGlhbi4KPj4+PiAgICAgICAgID4KPj4+ PiAgICAgICAgID4gQW0gMTcuMDMuMjEgdW0gMDc6NDYgc2NocmllYiBaaGFuZywgSmFjayAoSmlh bik6Cj4+Pj4gICAgICAgICA+PiBIaSwgQW5kcmV5L0NyaGlzdGlhbiBhbmQgVGVhbSwKPj4+PiAg ICAgICAgID4+Cj4+Pj4gICAgICAgICA+PiBJIGRpZG4ndCByZWNlaXZlIHRoZSByZXZpZXdlcidz IG1lc3NhZ2UgZnJvbSBtYWludGFpbmVycyBvbgo+Pj4+ICAgICAgICBwYW5mcm9zdAo+Pj4+ICAg ICAgICAgPj4gZHJpdmVyIGZvciBzZXZlcmFsIGRheXMuCj4+Pj4gICAgICAgICA+PiBEdWUgdG8g dGhpcyBwYXRjaCBpcyB1cmdlbnQgZm9yIG15IGN1cnJlbnQgd29ya2luZyBwcm9qZWN0Lgo+Pj4+ ICAgICAgICAgPj4gV291bGQgeW91IHBsZWFzZSBoZWxwIHRvIGdpdmUgc29tZSByZXZpZXcgaWRl YXM/Cj4+Pj4gICAgICAgICA+Pgo+Pj4+ICAgICAgICAgPj4gTWFueSBUaGFua3MsCj4+Pj4gICAg ICAgICA+PiBKYWNrCj4+Pj4gICAgICAgICA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ Pj4+ICAgICAgICAgPj4gRnJvbTogWmhhbmcsIEphY2sgKEppYW4pCj4+Pj4gICAgICAgICA+PiBT ZW50OiBUdWVzZGF5LCBNYXJjaCAxNiwgMjAyMSAzOjIwIFBNCj4+Pj4gICAgICAgICA+PiBUbzog ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+ICAgICAgICA8bWFpbHRvOmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+Owo+Pj4+ICAgICAgICBhbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZyA8bWFpbHRvOmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsKPj4+ PiAgICAgICAgID4+IEtvZW5pZywgQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20K Pj4+PiAgICAgICAgPG1haWx0bzpDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+PjsgR3JvZHpvdnNr eSwgQW5kcmV5Cj4+Pj4gICAgICAgICA+PiA8QW5kcmV5Lkdyb2R6b3Zza3lAYW1kLmNvbSA8bWFp bHRvOkFuZHJleS5Hcm9kem92c2t5QGFtZC5jb20+PjsKPj4+PiAgICAgICAgTGl1LCBNb25rIDxN b25rLkxpdUBhbWQuY29tIDxtYWlsdG86TW9uay5MaXVAYW1kLmNvbT4+OyBEZW5nLAo+Pj4+ICAg ICAgICAgPj4gRW1pbHkgPEVtaWx5LkRlbmdAYW1kLmNvbSA8bWFpbHRvOkVtaWx5LkRlbmdAYW1k LmNvbT4+OyBSb2IKPj4+PiAgICAgICAgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnIDxtYWlsdG86 cm9iaEBrZXJuZWwub3JnPj47IFRvbWV1Cj4+Pj4gICAgICAgICA+PiBWaXpvc28gPHRvbWV1LnZp em9zb0Bjb2xsYWJvcmEuY29tCj4+Pj4gICAgICAgIDxtYWlsdG86dG9tZXUudml6b3NvQGNvbGxh Ym9yYS5jb20+PjsgU3RldmVuIFByaWNlCj4+Pj4gICAgICAgIDxzdGV2ZW4ucHJpY2VAYXJtLmNv bSA8bWFpbHRvOnN0ZXZlbi5wcmljZUBhcm0uY29tPj4KPj4+PiAgICAgICAgID4+IFN1YmplY3Q6 IFJFOiBbUEFUQ0ggdjNdIGRybS9zY2hlZHVsZXIgcmUtaW5zZXJ0IEJhaWxpbmcgam9iIHRvCj4+ Pj4gICAgICAgIGF2b2lkCj4+Pj4gICAgICAgICA+PiBtZW1sZWFrCj4+Pj4gICAgICAgICA+Pgo+ Pj4+ICAgICAgICAgPj4gW0FNRCBQdWJsaWMgVXNlXQo+Pj4+ICAgICAgICAgPj4KPj4+PiAgICAg ICAgID4+IFBpbmcKPj4+PiAgICAgICAgID4+Cj4+Pj4gICAgICAgICA+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQo+Pj4+ICAgICAgICAgPj4gRnJvbTogWmhhbmcsIEphY2sgKEppYW4pCj4+ Pj4gICAgICAgICA+PiBTZW50OiBNb25kYXksIE1hcmNoIDE1LCAyMDIxIDE6MjQgUE0KPj4+PiAg ICAgICAgID4+IFRvOiBKYWNrIFpoYW5nIDxKYWNrLlpoYW5nMUBhbWQuY29tIDxtYWlsdG86SmFj ay5aaGFuZzFAYW1kLmNvbT4+Owo+Pj4+ICAgICAgICAgPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+Pj4+ICAgICAgICA8bWFpbHRvOmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmc+Owo+Pj4+ICAgICAgICBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZyA8bWFpbHRv OmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsKPj4+PiAgICAgICAgID4+IEtvZW5pZywg Q2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20KPj4+PiAgICAgICAgPG1haWx0bzpD aHJpc3RpYW4uS29lbmlnQGFtZC5jb20+PjsgR3JvZHpvdnNreSwgQW5kcmV5Cj4+Pj4gICAgICAg ICA+PiA8QW5kcmV5Lkdyb2R6b3Zza3lAYW1kLmNvbSA8bWFpbHRvOkFuZHJleS5Hcm9kem92c2t5 QGFtZC5jb20+PjsKPj4+PiAgICAgICAgTGl1LCBNb25rIDxNb25rLkxpdUBhbWQuY29tIDxtYWls dG86TW9uay5MaXVAYW1kLmNvbT4+OyBEZW5nLAo+Pj4+ICAgICAgICAgPj4gRW1pbHkgPEVtaWx5 LkRlbmdAYW1kLmNvbSA8bWFpbHRvOkVtaWx5LkRlbmdAYW1kLmNvbT4+OyBSb2IKPj4+PiAgICAg ICAgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnIDxtYWlsdG86cm9iaEBrZXJuZWwub3JnPj47IFRv bWV1Cj4+Pj4gICAgICAgICA+PiBWaXpvc28gPHRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29tCj4+ Pj4gICAgICAgIDxtYWlsdG86dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+PjsgU3RldmVuIFBy aWNlCj4+Pj4gICAgICAgIDxzdGV2ZW4ucHJpY2VAYXJtLmNvbSA8bWFpbHRvOnN0ZXZlbi5wcmlj ZUBhcm0uY29tPj4KPj4+PiAgICAgICAgID4+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjNdIGRybS9z Y2hlZHVsZXIgcmUtaW5zZXJ0IEJhaWxpbmcgam9iIHRvCj4+Pj4gICAgICAgIGF2b2lkCj4+Pj4g ICAgICAgICA+PiBtZW1sZWFrCj4+Pj4gICAgICAgICA+Pgo+Pj4+ICAgICAgICAgPj4gW0FNRCBQ dWJsaWMgVXNlXQo+Pj4+ICAgICAgICAgPj4KPj4+PiAgICAgICAgID4+IEhpLCBSb2IvVG9tZXUv U3RldmVuLAo+Pj4+ICAgICAgICAgPj4KPj4+PiAgICAgICAgID4+IFdvdWxkIHlvdSBwbGVhc2Ug aGVscCB0byByZXZpZXcgdGhpcyBwYXRjaCBmb3IgcGFuZnJvc3QgZHJpdmVyPwo+Pj4+ICAgICAg ICAgPj4KPj4+PiAgICAgICAgID4+IFRoYW5rcywKPj4+PiAgICAgICAgID4+IEphY2sgWmhhbmcK Pj4+PiAgICAgICAgID4+Cj4+Pj4gICAgICAgICA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQo+Pj4+ICAgICAgICAgPj4gRnJvbTogSmFjayBaaGFuZyA8SmFjay5aaGFuZzFAYW1kLmNvbSA8 bWFpbHRvOkphY2suWmhhbmcxQGFtZC5jb20+Pgo+Pj4+ICAgICAgICAgPj4gU2VudDogTW9uZGF5 LCBNYXJjaCAxNSwgMjAyMSAxOjIxIFBNCj4+Pj4gICAgICAgICA+PiBUbzogZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+ICAgICAgICA8bWFpbHRvOmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmc+Owo+Pj4+ICAgICAgICBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZyA8bWFpbHRvOmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsKPj4+PiAgICAgICAgID4+ IEtvZW5pZywgQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20KPj4+PiAgICAgICAg PG1haWx0bzpDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+PjsgR3JvZHpvdnNreSwgQW5kcmV5Cj4+ Pj4gICAgICAgICA+PiA8QW5kcmV5Lkdyb2R6b3Zza3lAYW1kLmNvbSA8bWFpbHRvOkFuZHJleS5H cm9kem92c2t5QGFtZC5jb20+PjsKPj4+PiAgICAgICAgTGl1LCBNb25rIDxNb25rLkxpdUBhbWQu Y29tIDxtYWlsdG86TW9uay5MaXVAYW1kLmNvbT4+OyBEZW5nLAo+Pj4+ICAgICAgICAgPj4gRW1p bHkgPEVtaWx5LkRlbmdAYW1kLmNvbSA8bWFpbHRvOkVtaWx5LkRlbmdAYW1kLmNvbT4+Cj4+Pj4g ICAgICAgICA+PiBDYzogWmhhbmcsIEphY2sgKEppYW4pIDxKYWNrLlpoYW5nMUBhbWQuY29tCj4+ Pj4gICAgICAgIDxtYWlsdG86SmFjay5aaGFuZzFAYW1kLmNvbT4+Cj4+Pj4gICAgICAgICA+PiBT dWJqZWN0OiBbUEFUQ0ggdjNdIGRybS9zY2hlZHVsZXIgcmUtaW5zZXJ0IEJhaWxpbmcgam9iIHRv IGF2b2lkCj4+Pj4gICAgICAgIG1lbWxlYWsKPj4+PiAgICAgICAgID4+Cj4+Pj4gICAgICAgICA+ PiByZS1pbnNlcnQgQmFpbGluZyBqb2JzIHRvIGF2b2lkIG1lbW9yeSBsZWFrLgo+Pj4+ICAgICAg ICAgPj4KPj4+PiAgICAgICAgID4+IFYyOiBtb3ZlIHJlLWluc2VydCBzdGVwIHRvIGRybS9zY2hl ZHVsZXIgbG9naWMKPj4+PiAgICAgICAgID4+IFYzOiBhZGQgcGFuZnJvc3QncyByZXR1cm4gdmFs dWUgZm9yIGJhaWxpbmcgam9icyBpbiBjYXNlIGl0IGhpdHMKPj4+PiAgICAgICAgdGhlCj4+Pj4g ICAgICAgICA+PiBtZW1sZWFrIGlzc3VlLgo+Pj4+ICAgICAgICAgPj4KPj4+PiAgICAgICAgID4+ IFNpZ25lZC1vZmYtYnk6IEphY2sgWmhhbmcgPEphY2suWmhhbmcxQGFtZC5jb20KPj4+PiAgICAg ICAgPG1haWx0bzpKYWNrLlpoYW5nMUBhbWQuY29tPj4KPj4+PiAgICAgICAgID4+IC0tLQo+Pj4+ ICAgICAgICAgPj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMg fCA0ICsrKy0KPj4+PiAgICAgICAgID4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2pvYi5jICAgIHwgOCArKysrKystLQo+Pj4+ICAgICAgICAgPj4gICBkcml2ZXJzL2dwdS9k cm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmMgICAgfCA0ICsrLS0KPj4+PiAgICAgICAgID4+ICAg ZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMgICAgIHwgOCArKysrKysrLQo+ Pj4+ICAgICAgICAgPj4gICBpbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmggICAgICAgICAgICAg ICAgfCAxICsKPj4+PiAgICAgICAgID4+ICAgNSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQo+Pj4+ICAgICAgICAgPj4KPj4+PiAgICAgICAgID4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPj4+PiAg ICAgICAgID4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4+ Pj4gICAgICAgICA+PiBpbmRleCA3OWI5Y2M3Mzc2M2YuLjg2NDYzYjBmOTM2ZSAxMDA2NDQKPj4+ PiAgICAgICAgID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZp Y2UuYwo+Pj4+ICAgICAgICAgPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2RldmljZS5jCj4+Pj4gICAgICAgICA+PiBAQCAtNDgxNSw4ICs0ODE1LDEwIEBAIGludCBh bWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVjdAo+Pj4+ICAgICAgICAgPj4gYW1kZ3B1X2Rl dmljZSAqYWRldiwKPj4+PiAgICAgICAgID4+ICAgICAgICAgICAgICAgICAgICAgICBqb2IgPyBq b2ItPmJhc2UuaWQgOiAtMSk7Cj4+Pj4gICAgICAgICA+PiAgICAgICAgICAgICAvKiBldmVuIHdl IHNraXBwZWQgdGhpcyByZXNldCwgc3RpbGwgbmVlZCB0byBzZXQgdGhlCj4+Pj4gICAgICAgIGpv Ygo+Pj4+ICAgICAgICAgPj4gdG8gZ3VpbHR5ICovCj4+Pj4gICAgICAgICA+PiAtICAgICAgICBp ZiAoam9iKQo+Pj4+ICAgICAgICAgPj4gKyAgICAgICAgaWYgKGpvYikgewo+Pj4+ICAgICAgICAg Pj4gICAgICAgICAgICAgICBkcm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoJmpvYi0+YmFzZSk7Cj4+ Pj4gICAgICAgICA+PiArICAgICAgICAgICAgciA9IERSTV9HUFVfU0NIRURfU1RBVF9CQUlMSU5H Owo+Pj4+ICAgICAgICAgPj4gKyAgICAgICAgfQo+Pj4+ICAgICAgICAgPj4gICAgICAgICAgIGdv dG8gc2tpcF9yZWNvdmVyeTsKPj4+PiAgICAgICAgID4+ICAgICAgIH0KPj4+PiAgICAgICAgID4+ ICAgZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYwo+ Pj4+ICAgICAgICAgPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfam9iLmMK Pj4+PiAgICAgICAgID4+IGluZGV4IDc1OWIzNDc5OTIyMS4uNDEzOTBiZGFjZDllIDEwMDY0NAo+ Pj4+ICAgICAgICAgPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2pv Yi5jCj4+Pj4gICAgICAgICA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfam9iLmMKPj4+PiAgICAgICAgID4+IEBAIC0zNCw2ICszNCw3IEBAIHN0YXRpYyBlbnVtIGRy bV9ncHVfc2NoZWRfc3RhdAo+Pj4+ICAgICAgICAgPj4gYW1kZ3B1X2pvYl90aW1lZG91dChzdHJ1 Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IpCj4+Pj4gICAgICAgICA+PiAgICAgICBzdHJ1Y3QgYW1k Z3B1X2pvYiAqam9iID0gdG9fYW1kZ3B1X2pvYihzX2pvYik7Cj4+Pj4gICAgICAgICA+PiAgICAg ICBzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5mbyB0aTsKPj4+PiAgICAgICAgID4+ICAgICAgIHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKPj4+PiAgICAgICAgID4+ICsgICAg aW50IHJldDsKPj4+PiAgICAgICAgID4+ICAgICAgICAgbWVtc2V0KCZ0aSwgMCwgc2l6ZW9mKHN0 cnVjdCBhbWRncHVfdGFza19pbmZvKSk7Cj4+Pj4gICAgICAgICA+PiAgIEBAIC01Miw4ICs1Mywx MSBAQCBzdGF0aWMgZW51bSBkcm1fZ3B1X3NjaGVkX3N0YXQKPj4+PiAgICAgICAgID4+IGFtZGdw dV9qb2JfdGltZWRvdXQoc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iKQo+Pj4+ICAgICAgICAg Pj4gICAgICAgICAgICAgdGkucHJvY2Vzc19uYW1lLCB0aS50Z2lkLCB0aS50YXNrX25hbWUsIHRp LnBpZCk7Cj4+Pj4gICAgICAgICA+PiAgICAgICAgIGlmIChhbWRncHVfZGV2aWNlX3Nob3VsZF9y ZWNvdmVyX2dwdShyaW5nLT5hZGV2KSkgewo+Pj4+ICAgICAgICAgPj4gLSAgICAgICAgYW1kZ3B1 X2RldmljZV9ncHVfcmVjb3ZlcihyaW5nLT5hZGV2LCBqb2IpOwo+Pj4+ICAgICAgICAgPj4gLSAg ICAgICAgcmV0dXJuIERSTV9HUFVfU0NIRURfU1RBVF9OT01JTkFMOwo+Pj4+ICAgICAgICAgPj4g KyAgICAgICAgcmV0ID0gYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihyaW5nLT5hZGV2LCBqb2Ip Owo+Pj4+ICAgICAgICAgPj4gKyAgICAgICAgaWYgKHJldCA9PSBEUk1fR1BVX1NDSEVEX1NUQVRf QkFJTElORykKPj4+PiAgICAgICAgID4+ICsgICAgICAgICAgICByZXR1cm4gRFJNX0dQVV9TQ0hF RF9TVEFUX0JBSUxJTkc7Cj4+Pj4gICAgICAgICA+PiArICAgICAgICBlbHNlCj4+Pj4gICAgICAg ICA+PiArICAgICAgICAgICAgcmV0dXJuIERSTV9HUFVfU0NIRURfU1RBVF9OT01JTkFMOwo+Pj4+ ICAgICAgICAgPj4gICAgICAgfSBlbHNlIHsKPj4+PiAgICAgICAgID4+ICAgICAgICAgICBkcm1f c2NoZWRfc3VzcGVuZF90aW1lb3V0KCZyaW5nLT5zY2hlZCk7Cj4+Pj4gICAgICAgICA+PiAgICAg ICAgICAgaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkKPj4+PiAgICAgICAgID4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmMKPj4+PiAgICAgICAg ID4+IGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jCj4+Pj4gICAgICAg ICA+PiBpbmRleCA2MDAzY2ZlYjEzMjIuLmUyY2I0ZjMyZGFlMSAxMDA2NDQKPj4+PiAgICAgICAg ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYwo+Pj4+ICAg ICAgICAgPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jCj4+ Pj4gICAgICAgICA+PiBAQCAtNDQ0LDcgKzQ0NCw3IEBAIHN0YXRpYyBlbnVtIGRybV9ncHVfc2No ZWRfc3RhdAo+Pj4+ICAgICAgICAgPj4gcGFuZnJvc3Rfam9iX3RpbWVkb3V0KHN0cnVjdCBkcm1f c2NoZWRfam9iCj4+Pj4gICAgICAgICA+PiAgICAgICAgKiBzcHVyaW91cy4gQmFpbCBvdXQuCj4+ Pj4gICAgICAgICA+PiAgICAgICAgKi8KPj4+PiAgICAgICAgID4+ICAgICAgIGlmIChkbWFfZmVu Y2VfaXNfc2lnbmFsZWQoam9iLT5kb25lX2ZlbmNlKSkKPj4+PiAgICAgICAgID4+IC0gICAgICAg IHJldHVybiBEUk1fR1BVX1NDSEVEX1NUQVRfTk9NSU5BTDsKPj4+PiAgICAgICAgID4+ICsgICAg ICAgIHJldHVybiBEUk1fR1BVX1NDSEVEX1NUQVRfQkFJTElORzsKPj4+PiAgICAgICAgID4+ICAg ICAgICAgZGV2X2VycihwZmRldi0+ZGV2LCAiZ3B1IHNjaGVkIHRpbWVvdXQsIGpzPSVkLCBjb25m aWc9MHgleCwKPj4+PiAgICAgICAgID4+IHN0YXR1cz0weCV4LCBoZWFkPTB4JXgsIHRhaWw9MHgl eCwgc2NoZWRfam9iPSVwIiwKPj4+PiAgICAgICAgID4+ICAgICAgICAgICBqcywKPj4+PiAgICAg ICAgID4+IEBAIC00NTYsNyArNDU2LDcgQEAgc3RhdGljIGVudW0gZHJtX2dwdV9zY2hlZF9zdGF0 Cj4+Pj4gICAgICAgICA+PiBwYW5mcm9zdF9qb2JfdGltZWRvdXQoc3RydWN0IGRybV9zY2hlZF9q b2IKPj4+PiAgICAgICAgID4+ICAgICAgICAgLyogU2NoZWR1bGVyIGlzIGFscmVhZHkgc3RvcHBl ZCwgbm90aGluZyB0byBkby4gKi8KPj4+PiAgICAgICAgID4+ICAgICAgIGlmICghcGFuZnJvc3Rf c2NoZWR1bGVyX3N0b3AoJnBmZGV2LT5qcy0+cXVldWVbanNdLAo+Pj4+ICAgICAgICBzY2hlZF9q b2IpKQo+Pj4+ICAgICAgICAgPj4gLSAgICAgICAgcmV0dXJuIERSTV9HUFVfU0NIRURfU1RBVF9O T01JTkFMOwo+Pj4+ICAgICAgICAgPj4gKyAgICAgICAgcmV0dXJuIERSTV9HUFVfU0NIRURfU1RB VF9CQUlMSU5HOwo+Pj4+ICAgICAgICAgPj4gICAgICAgICAvKiBTY2hlZHVsZSBhIHJlc2V0IGlm IHRoZXJlJ3Mgbm8gcmVzZXQgaW4gcHJvZ3Jlc3MuICovCj4+Pj4gICAgICAgICA+PiAgICAgICBp ZiAoIWF0b21pY194Y2hnKCZwZmRldi0+cmVzZXQucGVuZGluZywgMSkpIGRpZmYgLS1naXQKPj4+ PiAgICAgICAgID4+IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMKPj4+ PiAgICAgICAgID4+IGIvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMKPj4+ PiAgICAgICAgID4+IGluZGV4IDkyZDhkZTI0ZDBhMS4uYTQ0ZjYyMWZiNWM0IDEwMDY0NAo+Pj4+ ICAgICAgICAgPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMK Pj4+PiAgICAgICAgID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFp bi5jCj4+Pj4gICAgICAgICA+PiBAQCAtMzE0LDYgKzMxNCw3IEBAIHN0YXRpYyB2b2lkIGRybV9z Y2hlZF9qb2JfdGltZWRvdXQoc3RydWN0Cj4+Pj4gICAgICAgICA+PiB3b3JrX3N0cnVjdCAqd29y aykgIHsKPj4+PiAgICAgICAgID4+ICAgICAgIHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2No ZWQ7Cj4+Pj4gICAgICAgICA+PiAgICAgICBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqam9iOwo+Pj4+ ICAgICAgICAgPj4gKyAgICBpbnQgcmV0Owo+Pj4+ICAgICAgICAgPj4gICAgICAgICBzY2hlZCA9 IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIsCj4+Pj4gICAgICAg ICA+PiB3b3JrX3Rkci53b3JrKTsKPj4+PiAgICAgICAgID4+ICAgQEAgLTMzMSw4ICszMzIsMTMg QEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1Y3QKPj4+PiAgICAgICAg ID4+IHdvcmtfc3RydWN0ICp3b3JrKQo+Pj4+ICAgICAgICAgPj4gICAgICAgICAgIGxpc3RfZGVs X2luaXQoJmpvYi0+bGlzdCk7Cj4+Pj4gICAgICAgICA+PiAgICAgICAgICAgc3Bpbl91bmxvY2so JnNjaGVkLT5qb2JfbGlzdF9sb2NrKTsKPj4+PiAgICAgICAgID4+ICAgLSAgICAgICAgam9iLT5z Y2hlZC0+b3BzLT50aW1lZG91dF9qb2Ioam9iKTsKPj4+PiAgICAgICAgID4+ICsgICAgICAgIHJl dCA9IGpvYi0+c2NoZWQtPm9wcy0+dGltZWRvdXRfam9iKGpvYik7Cj4+Pj4gICAgICAgICA+PiAg ICsgICAgICAgIGlmIChyZXQgPT0gRFJNX0dQVV9TQ0hFRF9TVEFUX0JBSUxJTkcpIHsKPj4+PiAg ICAgICAgID4+ICsgICAgICAgICAgICBzcGluX2xvY2soJnNjaGVkLT5qb2JfbGlzdF9sb2NrKTsK Pj4+PiAgICAgICAgID4+ICsgICAgICAgICAgICBsaXN0X2FkZCgmam9iLT5ub2RlLCAmc2NoZWQt PnJpbmdfbWlycm9yX2xpc3QpOwo+Pj4+ICAgICAgICAgPj4gKyAgICAgICAgICAgIHNwaW5fdW5s b2NrKCZzY2hlZC0+am9iX2xpc3RfbG9jayk7Cj4+Pj4gICAgICAgICA+PiArICAgICAgICB9Cj4+ Pj4KPj4+Pgo+Pj4+ICAgICAgICBBdCB0aGlzIHBvaW50IHdlIGRvbid0IGhvbGQgR1BVIHJlc2V0 IGxvY2tzIGFueW1vcmUsIGFuZCBzbyB3ZSBjb3VsZAo+Pj4+ICAgICAgICBiZSByYWNpbmcgYWdh aW5zdCBhbm90aGVyIFREUiB0aHJlYWQgZnJvbSBhbm90aGVyIHNjaGVkdWxlciByaW5nIG9mCj4+ Pj4gICAgICAgIHNhbWUKPj4+PiAgICAgICAgZGV2aWNlCj4+Pj4gICAgICAgIG9yIGFub3RoZXIg WEdNSSBoaXZlIG1lbWJlci4gVGhlIG90aGVyIHRocmVhZCBtaWdodCBiZSBpbiB0aGUgbWlkZGxl IG9mCj4+Pj4gICAgICAgIGx1Y2tsZXNzCj4+Pj4gICAgICAgIGl0ZXJhdGlvbiBvZiBtaXJyb3Ig bGlzdCAoZHJtX3NjaGVkX3N0b3AsIGRybV9zY2hlZF9zdGFydCBhbmQKPj4+PiAgICAgICAgZHJt X3NjaGVkX3Jlc3VibWl0KQo+Pj4+ICAgICAgICBhbmQgc28gbG9ja2luZyBqb2JfbGlzdF9sb2Nr IHdpbGwgbm90IGhlbHAuIExvb2tzIGxpa2UgaXQncyByZXF1aXJlZCB0bwo+Pj4+ICAgICAgICB0 YWtlIGFsbCBHUFUgcmVzdCBsb2Nrcwo+Pj4+ICAgICAgICBoZXJlLgo+Pj4+Cj4+Pj4gICAgICAg IEFuZHJleQo+Pj4+Cj4+Pj4KPj4+PiAgICAgICAgID4+ICAgICAgICAgICAvKgo+Pj4+ICAgICAg ICAgPj4gICAgICAgICAgICAqIEd1aWx0eSBqb2IgZGlkIGNvbXBsZXRlIGFuZCBoZW5jZSBuZWVk cyB0byBiZSBtYW51YWxseQo+Pj4+ICAgICAgICAgPj4gcmVtb3ZlZAo+Pj4+ICAgICAgICAgPj4g ICAgICAgICAgICAqIFNlZSBkcm1fc2NoZWRfc3RvcCBkb2MuCj4+Pj4gICAgICAgICA+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCj4+Pj4gICAgICAgICA+PiBiL2lu Y2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaCBpbmRleCA0ZWE4NjA2ZDkxZmUuLjgwOTNhYzI0Mjdl Zgo+Pj4+ICAgICAgICAxMDA2NDQKPj4+PiAgICAgICAgID4+IC0tLSBhL2luY2x1ZGUvZHJtL2dw dV9zY2hlZHVsZXIuaAo+Pj4+ICAgICAgICAgPj4gKysrIGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVk dWxlci5oCj4+Pj4gICAgICAgICA+PiBAQCAtMjEwLDYgKzIxMCw3IEBAIGVudW0gZHJtX2dwdV9z Y2hlZF9zdGF0IHsKPj4+PiAgICAgICAgID4+ICAgICAgIERSTV9HUFVfU0NIRURfU1RBVF9OT05F LCAvKiBSZXNlcnZlIDAgKi8KPj4+PiAgICAgICAgID4+ICAgICAgIERSTV9HUFVfU0NIRURfU1RB VF9OT01JTkFMLAo+Pj4+ICAgICAgICAgPj4gICAgICAgRFJNX0dQVV9TQ0hFRF9TVEFUX0VOT0RF ViwKPj4+PiAgICAgICAgID4+ICsgICAgRFJNX0dQVV9TQ0hFRF9TVEFUX0JBSUxJTkcsCj4+Pj4g ICAgICAgICA+PiAgIH07Cj4+Pj4gICAgICAgICA+PiAgICAgLyoqCj4+Pj4gICAgICAgICA+PiAt LQo+Pj4+ICAgICAgICAgPj4gMi4yNS4xCj4+Pj4gICAgICAgICA+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+ICAgICAgICAgPj4gYW1kLWdmeCBt YWlsaW5nIGxpc3QKPj4+PiAgICAgICAgID4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn IDxtYWlsdG86YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+Cj4+Pj4gICAgICAgICA+Pgo+ Pj4+Cj4+Pj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/ dXJsPWh0dHBzJTNBJTJGJTJGbGkKPj4+PiBzCj4+Pj4gdHMuZnJlZWRlc2t0b3Aub3JnJTJGbWFp bG1hbiUyRmxpc3RpbmZvJTJGYW1kLWdmeCZhbXA7ZGF0YT0wNCU3QzAxJTcKPj4+PiBDCj4+Pj4g QW5kcmV5Lkdyb2R6b3Zza3klNDBhbWQuY29tJTdDZTkwZjMwYWYwZjQzNDQ0YzZhZWEwOGQ4ZTkx ODYwYzQlN0MzZGQKPj4+PiA4Cj4+Pj4gOTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAl N0MwJTdDNjM3NTE1NjM4MjEzMTgwNDEzJTdDVW5rbm93biUKPj4+PiA3Cj4+Pj4gQ1RXRnBiR1pz YjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lM Q0oKPj4+PiBYCj4+Pj4gVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPU5uTHF0eiUyQlo4JTJC d2VZd0NxUmlucmZrcW1oemliTkFGNkNZU2QKPj4+PiBWCj4+Pj4gcUw2eGkwJTNEJmFtcDtyZXNl cnZlZD0wCj4+Pj4KPj4+PiA8aHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRs b29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbAo+Pj4+IGkKPj4+PiBzCj4+Pj4gdHMuZnJlZWRl c2t0b3Aub3JnJTJGbWFpbG1hbiUyRmxpc3RpbmZvJTJGYW1kLWdmeCZkYXRhPTA0JTdDMDElN0NK YWNrLgo+Pj4+IFpoYW5nMSU0MGFtZC5jb20lN0M5NWIyZmYyMDZlZTc0YmJlNTIwYTA4ZDhlOTU2 ZjVkZCU3QzNkZDg5NjFmZTQ4ODRlCj4+Pj4gNgo+Pj4+IDAKPj4+PiA4ZTExYTgyZDk5NGUxODNk JTdDMCU3QzAlN0M2Mzc1MTU5MDcwMDA4ODg5MzklN0NVbmtub3duJTdDVFdGcGJHWnNiMwo+Pj4+ IGQKPj4+PiA4Cj4+Pj4gZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRp STZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTcKPj4+PiBDCj4+Pj4gMgo+Pj4+IDAwMCZzZGF0YT1C R29TZk9ZaURhcjhTcnBNeCUyQnNPTVdwYU1yODdieEIlMkY5eWN1MEZoaGlwQSUzRCZyZXNlcnZl Cj4+Pj4gZAo+Pj4+ID0KPj4+PiAwPgo+Pj4+Cj4+Pj4gICAgICAgICA+Pgo+Pj4+ICAgICAgICAg Pgo+Pj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK