From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 D997AC4338F for ; Mon, 9 Aug 2021 18:06:52 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 8523A61004 for ; Mon, 9 Aug 2021 18:06:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 8523A61004 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=y2BuKxQzdEVwjS5hvxwzj3RozHGrkxFOjczoadKR7zA=; b=pTQ6brXxxb9zom fLjCkEj44y8wOWKx96z7/BusDHORd5tCIZoNSWGw8Vyd/NQenABz8NPSIbz4dmpj2wgqzoVIoTg9Y sVd/DjFMTzhtcxsjk96ynN3M2yx4BmEGce8SeE/M3QqEhXkvgTmqThDj46IIAjT+KzepljGnBVOcZ 9FWVVKsIP8M6GB73u2auvBZ/kuoDBt8l/CofA0LohDcg0TcFsLFolRjIr0lqoyhHhNbtdqRqbymmU jjuS0P4tMrJPVDYyY+MHjSjz/rL8G5k/JrtEOhJb0S0HHKumoEA4Rua5jWp7K5t1EoMQWmpPu0qLQ 0M+1YFLGHvR0fgrUkClg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mD9dL-001dl2-J1; Mon, 09 Aug 2021 18:04:19 +0000 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mD9dF-001djL-Tw; Mon, 09 Aug 2021 18:04:17 +0000 Received: by mail-wr1-x42e.google.com with SMTP id l18so22600977wrv.5; Mon, 09 Aug 2021 11:04:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QtQqwt3VI+trnMEx32LMLIe8V5MgPCsexLq/UHW/lps=; b=GlMehTIt3clj/opou7/HNpCqR8E7xoRAnzRjV0F096VOLDGNY9Z6AW3P+DplXaIDz+ 6WH2yU6AtDoE0lBsNmJDPgSFOGL89BHxGIS9jbSVAZh3qLH7Hcchr1PlS4zqjC1fXRvG LRw/0w0R1QInmHmlc4p/QWzYH0TCiYfWWBxotZRyM3KPm1zqf7Avva9OkfDe4pSgCg8E 72jdVHx3H6vGpvKnYZymzr4jXMdn+oLC/e5OxfruCfG0vrYZsUGUpIzhzZ92ml/Utthb ByLrtgW4ERnd4B/bKiH5z8C4yqZx8BR+ePUnX7HTI+rFiWuqUgngarXnR6T1b7ew3IAZ VRhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QtQqwt3VI+trnMEx32LMLIe8V5MgPCsexLq/UHW/lps=; b=HsfdadQ9XOPnsC0UoOVlQe+/wtWc+1eZpJpCFoRcGYPyrh7ep1dw/ebEBd/BrjeE9F ce9R8/MVhU2yZe4rmxosh2gkuj+fRAi7WbvmWgQlp8bo8h7XfDr1RtAS8/2s4RoATDkF HinKBisw7v+uCUOXpiUnAT97IqrtA5/LJzAy6n0Rdte3TNwIFbujnN5pGzyqRhRVssFj BkIx25EYiIolIpCPIQXh4rXDahcQAYywHYgbfYqikq2wOVO1ORq9FgK/XRRTKLteQZbB J2ZDAkE17cS1F4fdsuhy/1VEse0N0RZyw37tHY3b9GpGT0SI/gbv4NbL+uJ4DobJCgL7 H5jw== X-Gm-Message-State: AOAM531o1TwsuOjml/tC778pQgMMSamL9N4qzWY8rtZJ6w+ZQ9DEOfzk y/QWCHgm+k2Ll49ramY2UBI= X-Google-Smtp-Source: ABdhPJxPG8cvzM8MDr2R5bsDfeI9wG/Eo1v9ODMH3nlO48uHgQ/ic0QcHaH4kOr2o6bMLd3LMDn35w== X-Received: by 2002:a5d:4e8f:: with SMTP id e15mr26545217wru.313.1628532251963; Mon, 09 Aug 2021 11:04:11 -0700 (PDT) Received: from kista.localnet (cpe-86-58-46-198.static.triera.net. [86.58.46.198]) by smtp.gmail.com with ESMTPSA id b20sm19508185wmj.48.2021.08.09.11.04.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 11:04:11 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, Andrzej Pietrasiewicz Cc: Andrzej Pietrasiewicz , Benjamin Gaignard , Boris Brezillon , Ezequiel Garcia , Fabio Estevam , Greg Kroah-Hartman , Hans Verkuil , Heiko Stuebner , Mauro Carvalho Chehab , Nicolas Dufresne , NXP Linux Team , Pengutronix Kernel Team , Philipp Zabel , Sascha Hauer , Shawn Guo , kernel@collabora.com, Ezequiel Garcia , Adrian Ratiu , Daniel Almeida Subject: Re: [PATCH v3 05/10] media: uapi: Add VP9 stateless decoder controls Date: Mon, 09 Aug 2021 20:04:09 +0200 Message-ID: <5154683.x8GX3iSW2O@kista> In-Reply-To: <20210805144246.11998-6-andrzej.p@collabora.com> References: <20210805144246.11998-1-andrzej.p@collabora.com> <20210805144246.11998-6-andrzej.p@collabora.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210809_110414_057737_FB4CB968 X-CRM114-Status: GOOD ( 31.07 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQW5kcnplaiEKCkRuZSDEjWV0cnRlaywgMDUuIGF2Z3VzdCAyMDIxIG9iIDE2OjQyOjQxIENF U1QgamUgQW5kcnplaiBQaWV0cmFzaWV3aWN6IApuYXBpc2FsKGEpOgo+IEFkZCB0aGUgVlA5IHN0 YXRlbGVzcyBkZWNvZGVyIGNvbnRyb2xzIHBsdXMgdGhlIGRvY3VtZW50YXRpb24gdGhhdCBnb2Vz Cj4gd2l0aCBpdC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBCb3JpcyBCcmV6aWxsb24gPGJvcmlzLmJy ZXppbGxvbkBjb2xsYWJvcmEuY29tPgo+IENvLWRldmVsb3BlZC1ieTogRXplcXVpZWwgR2FyY2lh IDxlemVxdWllbEBjb2xsYWJvcmEuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEV6ZXF1aWVsIEdhcmNp YSA8ZXplcXVpZWxAY29sbGFib3JhLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBZHJpYW4gUmF0aXUg PGFkcmlhbi5yYXRpdUBjb2xsYWJvcmEuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEFuZHJ6ZWogUGll dHJhc2lld2ljeiA8YW5kcnplai5wQGNvbGxhYm9yYS5jb20+Cj4gQ28tZGV2ZWxvcGVkLWJ5OiBE YW5pZWwgQWxtZWlkYSA8ZGFuaWVsLmFsbWVpZGFAY29sbGFib3JhLmNvbT4KPiBTaWduZWQtb2Zm LWJ5OiBEYW5pZWwgQWxtZWlkYSA8ZGFuaWVsLmFsbWVpZGFAY29sbGFib3JhLmNvbT4KPiAtLS0K PiAgLi4uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL2JpYmxpby5yc3QgICAgICAgIHwgIDEwICsK PiAgLi4uL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMtc3RhdGVsZXNzLnJzdCAgIHwgNTQ1ICsr KysrKysrKysrKysrKysrKwo+ICAuLi4vbWVkaWEvdjRsL3BpeGZtdC1jb21wcmVzc2VkLnJzdCAg ICAgICAgICAgfCAgMTUgKwo+ICAuLi4vbWVkaWEvdjRsL3ZpZGlvYy1nLWV4dC1jdHJscy5yc3Qg ICAgICAgICAgfCAgIDggKwo+ICAuLi4vbWVkaWEvdjRsL3ZpZGlvYy1xdWVyeWN0cmwucnN0ICAg ICAgICAgICAgfCAgMTIgKwo+ICAuLi4vbWVkaWEvdmlkZW9kZXYyLmgucnN0LmV4Y2VwdGlvbnMg ICAgICAgICAgfCAgIDIgKwo+ICBkcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLWNv cmUuYyAgICAgfCAxNzQgKysrKysrCj4gIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3Ry bHMtZGVmcy5jICAgICB8ICAgOCArCj4gIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9j dGwuYyAgICAgICAgICB8ICAgMSArCj4gIGluY2x1ZGUvbWVkaWEvdjRsMi1jdHJscy5oICAgICAg ICAgICAgICAgICAgICB8ICAgNCArCj4gIGluY2x1ZGUvdWFwaS9saW51eC92NGwyLWNvbnRyb2xz LmggICAgICAgICAgICB8IDQzMyArKysrKysrKysrKysrKwo+ICBpbmNsdWRlL3VhcGkvbGludXgv dmlkZW9kZXYyLmggICAgICAgICAgICAgICAgfCAgIDYgKwo+ICAxMiBmaWxlcyBjaGFuZ2VkLCAx MjE4IGluc2VydGlvbnMoKykKPiAKCjxzbmlwPgoKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2xpbnV4L3Y0bDItY29udHJvbHMuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92NGwyLQpjb250cm9s cy5oCj4gaW5kZXggNTUzMmI1ZjY4NDkzLi44ZjhjM2MxYWQ4ODUgMTAwNjQ0Cj4gLS0tIGEvaW5j bHVkZS91YXBpL2xpbnV4L3Y0bDItY29udHJvbHMuaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC92NGwyLWNvbnRyb2xzLmgKPiBAQCAtMjAxMCw2ICsyMDEwLDQzOSBAQCBzdHJ1Y3QgdjRsMl9j dHJsX2hkcjEwX21hc3RlcmluZ19kaXNwbGF5IHsKPiAgCV9fdTMyIG1pbl9kaXNwbGF5X21hc3Rl cmluZ19sdW1pbmFuY2U7Cj4gIH07Cj4gIAo+ICsvKiBTdGF0ZWxlc3MgVlA5IGNvbnRyb2xzICov Cj4gKwo+ICsvKioKPiArICogZW51bSB2NGwyX3ZwOV9sb29wX2ZpbHRlcl9mbGFncyAtIFZQOSBs b29wIGZpbHRlciBmbGFncwo+ICsgKgo+ICsgKiBAVjRMMl9WUDlfTE9PUF9GSUxURVJfRkxBR19E RUxUQV9FTkFCTEVEOiB0aGUgZmlsdGVyIGxldmVsIGRlcGVuZHMgb24KPiArICoJdGhlIG1vZGUg YW5kIHJlZmVyZW5jZSBmcmFtZSB1c2VkIHRvIHByZWRpY3QgYSBibG9jawo+ICsgKiBAVjRMMl9W UDlfTE9PUF9GSUxURVJfRkxBR19ERUxUQV9VUERBVEU6IHRoZSBiaXRzdHJlYW0gY29udGFpbnMg CmFkZGl0aW9uYWwKPiArICoJc3ludGF4IGVsZW1lbnRzIHRoYXQgc3BlY2lmeSB3aGljaCBtb2Rl IGFuZCByZWZlcmVuY2UgZnJhbWUgZGVsdGFzIAphcmUgdG8gYmUgdXBkYXRlZAo+ICsgKgo+ICsg KiBUaG9zZSBhcmUgdGhlIGZsYWdzIHRoYXQgbWF5IGJlIHBhc3NlZCB0byAmdjRsMl92cDlfbG9v cF9maWx0ZXIuZmxhZ3MuIFNlZQo+ICsgKiBzZWN0aW9uICc3LjIuOCBMb29wIGZpbHRlciBzZW1h bnRpY3MnIG9mIHRoZSBWUDkgc3BlY2lmaWNhdGlvbiBmb3IgbW9yZQo+ICsgKiBkZXRhaWxzLgo+ ICsgKi8KPiArZW51bSB2NGwyX3ZwOV9sb29wX2ZpbHRlcl9mbGFncyB7Cj4gKwlWNEwyX1ZQOV9M T09QX0ZJTFRFUl9GTEFHX0RFTFRBX0VOQUJMRUQgPSAxIDw8IDAsCj4gKwlWNEwyX1ZQOV9MT09Q X0ZJTFRFUl9GTEFHX0RFTFRBX1VQREFURSA9IDEgPDwgMSwKPiArfTsKPiArCj4gKy8qKgo+ICsg KiBzdHJ1Y3QgdjRsMl92cDlfbG9vcF9maWx0ZXIgLSBWUDkgbG9vcCBmaWx0ZXIgcGFyYW1ldGVy cwo+ICsgKgo+ICsgKiBAcmVmX2RlbHRhczogY29udGFpbnMgdGhlIGFkanVzdG1lbnQgbmVlZGVk IGZvciB0aGUgZmlsdGVyIGxldmVsIGJhc2VkIG9uIAp0aGUgY2hvc2VuCj4gKyAqCXJlZmVyZW5j ZSBmcmFtZS4gSWYgdGhpcyBzeW50YXggZWxlbWVudCBpcyBub3QgcHJlc2VudCBpbiB0aGUgCmJp dHN0cmVhbSwgdXNlcnMKPiArICoJc2hvdWxkIHBhc3MgaXRzIGxhc3QgdmFsdWUuCj4gKyAqIEBt b2RlX2RlbHRhczogY29udGFpbnMgdGhlIGFkanVzdG1lbnQgbmVlZGVkIGZvciB0aGUgZmlsdGVy IGxldmVsIGJhc2VkIApvbiB0aGUgY2hvc2VuIG1vZGUuCj4gKyAqCUlmIHRoaXMgc3ludGF4IGVs ZW1lbnQgaXMgbm90IHByZXNlbnQgaW4gdGhlIGJpdHN0cmVhbSwgdXNlcnMKPiArICoJc2hvdWxk IHBhc3MgaXRzIGxhc3QgdmFsdWUuCj4gKyAqIEBsZXZlbDogaW5kaWNhdGVzIHRoZSBsb29wIGZp bHRlciBzdHJlbmd0aAo+ICsgKiBAc2hhcnBuZXNzOiBpbmRpY2F0ZXMgdGhlIHNoYXJwbmVzcyBs ZXZlbAo+ICsgKiBAZmxhZ3M6IGNvbWJpbmF0aW9uIG9mIFY0TDJfVlA5X0xPT1BfRklMVEVSX0ZM QUdfKiBmbGFncwo+ICsgKiBAcmVzZXJ2ZWQ6IHBhZGRpbmcgZmllbGQuIFNob3VsZCBiZSB6ZXJv ZWQgYnkgYXBwbGljYXRpb25zLgo+ICsgKgo+ICsgKiBUaGlzIHN0cnVjdHVyZSBjb250YWlucyBh bGwgbG9vcCBmaWx0ZXIgcmVsYXRlZCBwYXJhbWV0ZXJzLiBTZWUgc2VjdGlvbnMKPiArICogJzcu Mi44IExvb3AgZmlsdGVyIHNlbWFudGljcycgb2YgdGhlIFZQOSBzcGVjaWZpY2F0aW9uIGZvciBt b3JlIGRldGFpbHMuCj4gKyAqLwo+ICtzdHJ1Y3QgdjRsMl92cDlfbG9vcF9maWx0ZXIgewo+ICsJ X19zOCByZWZfZGVsdGFzWzRdOwo+ICsJX19zOCBtb2RlX2RlbHRhc1syXTsKPiArCV9fdTggbGV2 ZWw7Cj4gKwlfX3U4IHNoYXJwbmVzczsKPiArCV9fdTggZmxhZ3M7Cj4gKwlfX3U4IHJlc2VydmVk WzddOwo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCB2NGwyX3ZwOV9xdWFudGl6YXRpb24g LSBWUDkgcXVhbnRpemF0aW9uIHBhcmFtZXRlcnMKPiArICoKPiArICogQGJhc2VfcV9pZHg6IGlu ZGljYXRlcyB0aGUgYmFzZSBmcmFtZSBxaW5kZXgKPiArICogQGRlbHRhX3FfeV9kYzogaW5kaWNh dGVzIHRoZSBZIERDIHF1YW50aXplciByZWxhdGl2ZSB0byBiYXNlX3FfaWR4Cj4gKyAqIEBkZWx0 YV9xX3V2X2RjOiBpbmRpY2F0ZXMgdGhlIFVWIERDIHF1YW50aXplciByZWxhdGl2ZSB0byBiYXNl X3FfaWR4Cj4gKyAqIEBkZWx0YV9xX3V2X2FjOiBpbmRpY2F0ZXMgdGhlIFVWIEFDIHF1YW50aXpl ciByZWxhdGl2ZSB0byBiYXNlX3FfaWR4Cj4gKyAqIEByZXNlcnZlZDogcGFkZGluZyBmaWVsZC4g U2hvdWxkIGJlIHplcm9lZCBieSBhcHBsaWNhdGlvbnMuCj4gKyAqCj4gKyAqIEVuY29kZXMgdGhl IHF1YW50aXphdGlvbiBwYXJhbWV0ZXJzLiBTZWUgc2VjdGlvbiAnNy4yLjkgUXVhbnRpemF0aW9u IApwYXJhbXMKPiArICogc3ludGF4JyBvZiB0aGUgVlA5IHNwZWNpZmljYXRpb24gZm9yIG1vcmUg ZGV0YWlscy4KPiArICovCj4gK3N0cnVjdCB2NGwyX3ZwOV9xdWFudGl6YXRpb24gewo+ICsJX191 OCBiYXNlX3FfaWR4Owo+ICsJX19zOCBkZWx0YV9xX3lfZGM7Cj4gKwlfX3M4IGRlbHRhX3FfdXZf ZGM7Cj4gKwlfX3M4IGRlbHRhX3FfdXZfYWM7Cj4gKwlfX3U4IHJlc2VydmVkWzRdOwo+ICt9Owo+ ICsKPiArLyoqCj4gKyAqIGVudW0gdjRsMl92cDlfc2VnbWVudGF0aW9uX2ZsYWdzIC0gVlA5IHNl Z21lbnRhdGlvbiBmbGFncwo+ICsgKgo+ICsgKiBAVjRMMl9WUDlfU0VHTUVOVEFUSU9OX0ZMQUdf RU5BQkxFRDogaW5kaWNhdGVzIHRoYXQgdGhpcyBmcmFtZSBtYWtlcyB1c2UgCm9mCj4gKyAqCXRo ZSBzZWdtZW50YXRpb24gdG9vbAo+ICsgKiBAVjRMMl9WUDlfU0VHTUVOVEFUSU9OX0ZMQUdfVVBE QVRFX01BUDogaW5kaWNhdGVzIHRoYXQgdGhlIHNlZ21lbnRhdGlvbiAKbWFwCj4gKyAqCXNob3Vs ZCBiZSB1cGRhdGVkIGR1cmluZyB0aGUgZGVjb2Rpbmcgb2YgdGhpcyBmcmFtZQo+ICsgKiBAVjRM Ml9WUDlfU0VHTUVOVEFUSU9OX0ZMQUdfVEVNUE9SQUxfVVBEQVRFOiBpbmRpY2F0ZXMgdGhhdCB0 aGUgdXBkYXRlcyAKdG8KPiArICoJdGhlIHNlZ21lbnRhdGlvbiBtYXAgYXJlIGNvZGVkIHJlbGF0 aXZlIHRvIHRoZSBleGlzdGluZyAKc2VnbWVudGF0aW9uIG1hcAo+ICsgKiBAVjRMMl9WUDlfU0VH TUVOVEFUSU9OX0ZMQUdfVVBEQVRFX0RBVEE6IGluZGljYXRlcyB0aGF0IG5ldyBwYXJhbWV0ZXJz IAphcmUKPiArICoJYWJvdXQgdG8gYmUgc3BlY2lmaWVkIGZvciBlYWNoIHNlZ21lbnQKPiArICog QFY0TDJfVlA5X1NFR01FTlRBVElPTl9GTEFHX0FCU19PUl9ERUxUQV9VUERBVEU6IGluZGljYXRl cyB0aGF0IHRoZQo+ICsgKglzZWdtZW50YXRpb24gcGFyYW1ldGVycyByZXByZXNlbnQgdGhlIGFj dHVhbCB2YWx1ZXMgdG8gYmUgdXNlZAo+ICsgKgo+ICsgKiBUaG9zZSBhcmUgdGhlIGZsYWdzIHRo YXQgbWF5IGJlIHBhc3NlZCB0byAmdjRsMl92cDlfc2VnbWVudGF0aW9uLmZsYWdzLiAKU2VlCj4g KyAqIHNlY3Rpb24gJzcuMi4xMCBTZWdtZW50YXRpb24gcGFyYW1zIHN5bnRheCcgb2YgdGhlIFZQ OSBzcGVjaWZpY2F0aW9uIGZvcgo+ICsgKiBtb3JlIGRldGFpbHMuCj4gKyAqLwo+ICtlbnVtIHY0 bDJfdnA5X3NlZ21lbnRhdGlvbl9mbGFncyB7Cj4gKwlWNEwyX1ZQOV9TRUdNRU5UQVRJT05fRkxB R19FTkFCTEVEID0gMSA8PCAwLAo+ICsJVjRMMl9WUDlfU0VHTUVOVEFUSU9OX0ZMQUdfVVBEQVRF X01BUCA9IDEgPDwgMSwKPiArCVY0TDJfVlA5X1NFR01FTlRBVElPTl9GTEFHX1RFTVBPUkFMX1VQ REFURSA9IDEgPDwgMiwKPiArCVY0TDJfVlA5X1NFR01FTlRBVElPTl9GTEFHX1VQREFURV9EQVRB ID0gMSA8PCAzLAo+ICsJVjRMMl9WUDlfU0VHTUVOVEFUSU9OX0ZMQUdfQUJTX09SX0RFTFRBX1VQ REFURSA9IDEgPDwgNCwKPiArfTsKPiArCj4gKyNkZWZpbmUgVjRMMl9WUDlfU0VHTUVOVF9GRUFU VVJFX0VOQUJMRUQoaWQpCSgxIDw8IChpZCkpCj4gKyNkZWZpbmUgVjRMMl9WUDlfU0VHTUVOVF9G RUFUVVJFX0VOQUJMRURfTUFTSwkweGYKPiArCj4gKy8qKgo+ICsgKiBlbnVtIHY0bDJfdnA5X3Nl Z21lbnRfZmVhdHVyZSAtIFZQOSBzZWdtZW50IGZlYXR1cmUgSURzCj4gKyAqCj4gKyAqIEBWNEwy X1ZQOV9TRUdfTFZMX0FMVF9ROiBxdWFudGl6ZXIgc2VnbWVudCBmZWF0dXJlCj4gKyAqIEBWNEwy X1ZQOV9TRUdfTFZMX0FMVF9MOiBsb29wIGZpbHRlciBzZWdtZW50IGZlYXR1cmUKPiArICogQFY0 TDJfVlA5X1NFR19MVkxfUkVGX0ZSQU1FIHJlZmVyZW5jZSBmcmFtZSBzZWdtZW50IGZlYXR1cmUK PiArICogQFY0TDJfVlA5X1NFR19MVkxfU0tJUDogc2tpcCBzZWdtZW50IGZlYXR1cmUKPiArICog QFY0TDJfVlA5X1NFR19MVlZfTUFYOiBudW1iZXIgb2Ygc2VnbWVudCBmZWF0dXJlcwo+ICsgKgo+ ICsgKiBTZWdtZW50IGZlYXR1cmUgSURzLiBTZWUgc2VjdGlvbiAnNy4yLjEwIFNlZ21lbnRhdGlv biBwYXJhbXMgc3ludGF4JyBvZiAKdGhlCj4gKyAqIFZQOSBzcGVjaWZpY2F0aW9uIGZvciBtb3Jl IGRldGFpbHMuCj4gKyAqLwo+ICtlbnVtIHY0bDJfdnA5X3NlZ21lbnRfZmVhdHVyZSB7Cj4gKwlW NEwyX1ZQOV9TRUdfTFZMX0FMVF9RLAo+ICsJVjRMMl9WUDlfU0VHX0xWTF9BTFRfTCwKPiArCVY0 TDJfVlA5X1NFR19MVkxfUkVGX0ZSQU1FLAo+ICsJVjRMMl9WUDlfU0VHX0xWTF9TS0lQLAo+ICsJ VjRMMl9WUDlfU0VHX0xWTF9NQVgsCj4gK307CgpXaGF0IGlzIHRoZSByZWFzb24gbm90IHRvIGFz c2lnbiB2YWx1ZXMgbGlrZSAxIDw8IDAsIDEgPDwgMSwgZXRjLiBhbmQgaW5zdGVhZCAKcHJvdmlk ZSBzZXBhcmF0ZSBtYWNybyBWNEwyX1ZQOV9TRUdNRU5UX0ZFQVRVUkVfRU5BQkxFRCgpPyBUaGlz IGlzIGEgZGVwYXJ0dXJlIApmcm9tIGN1cnJlbnQgcHJhY3RpY2UuCgo+ICsKPiArLyoqCj4gKyAq IHN0cnVjdCB2NGwyX3ZwOV9zZWdtZW50YXRpb24gLSBWUDkgc2VnbWVudGF0aW9uIHBhcmFtZXRl cnMKPiArICoKPiArICogQGZlYXR1cmVfZGF0YTogZGF0YSBhdHRhY2hlZCB0byBlYWNoIGZlYXR1 cmUuIERhdGEgZW50cnkgaXMgb25seSB2YWxpZCAKaWYgdGhlIGZlYXR1cmUgaXMgZW5hYmxlZAo+ ICsgKiBAZmVhdHVyZV9lbmFibGVkOiBiaXRtYXNrIGRlZmluaW5nIHdoaWNoIGZlYXR1cmVzIGFy ZSBlbmFibGVkIGluIGVhY2ggCnNlZ21lbnQKPiArICogQHRyZWVfcHJvYnM6IHNwZWNpZmllcyB0 aGUgcHJvYmFiaWxpdHkgdmFsdWVzIHRvIGJlIHVzZWQgd2hlbgo+ICsgKglkZWNvZGluZyBhIFNl Z21lbnQtSUQuIFNlZSAnNS4xNS4gU2VnbWVudGF0aW9uIG1hcCcgc2VjdGlvbiBvZiB0aGUgClZQ OSBzcGVjaWZpY2F0aW9uCj4gKyAqCWZvciBtb3JlIGRldGFpbHMuCj4gKyAqIEBwcmVkX3Byb2Jz OiBzcGVjaWZpZXMgdGhlIHByb2JhYmlsaXR5IHZhbHVlcyB0byBiZSB1c2VkIHdoZW4gZGVjb2Rp bmcgYQo+ICsgKglQcmVkaWN0ZWQtU2VnbWVudC1JRC4gU2VlICc2LjQuMTQuIEdldCBzZWdtZW50 IGlkIHN5bnRheCcgc2VjdGlvbiAKb2YgOnJlZjpgdnA5YAo+ICsgKglmb3IgbW9yZSBkZXRhaWxz Lgo+ICsgKiBAZmxhZ3M6IGNvbWJpbmF0aW9uIG9mIFY0TDJfVlA5X1NFR01FTlRBVElPTl9GTEFH XyogZmxhZ3MKPiArICogQHJlc2VydmVkOiBwYWRkaW5nIGZpZWxkLiBTaG91bGQgYmUgemVyb2Vk IGJ5IGFwcGxpY2F0aW9ucy4KPiArICoKPiArICogRW5jb2RlcyB0aGUgcXVhbnRpemF0aW9uIHBh cmFtZXRlcnMuIFNlZSBzZWN0aW9uICc3LjIuMTAgU2VnbWVudGF0aW9uIApwYXJhbXMgc3ludGF4 JyBvZgo+ICsgKiB0aGUgVlA5IHNwZWNpZmljYXRpb24gZm9yIG1vcmUgZGV0YWlscy4KPiArICov Cj4gK3N0cnVjdCB2NGwyX3ZwOV9zZWdtZW50YXRpb24gewo+ICsJX19zMTYgZmVhdHVyZV9kYXRh WzhdWzRdOwo+ICsJX191OCBmZWF0dXJlX2VuYWJsZWRbOF07Cj4gKwlfX3U4IHRyZWVfcHJvYnNb N107Cj4gKwlfX3U4IHByZWRfcHJvYnNbM107Cj4gKwlfX3U4IGZsYWdzOwo+ICsJX191OCByZXNl cnZlZFs1XTsKPiArfTsKPiArCj4gKy8qKgo+ICsgKiBlbnVtIHY0bDJfdnA5X2ludHJhX3ByZWRp Y3Rpb25fbW9kZSAtIFZQOSBJbnRyYSBwcmVkaWN0aW9uIG1vZGVzCj4gKyAqCj4gKyAqIEBWNEwy X1ZQOV9JTlRSQV9QUkVEX01PREVfRENfUFJFRDogREMgaW50cmEgcHJlZGljdGlvbgo+ICsgKiBA VjRMMl9WUDlfSU5UUkFfUFJFRF9NT0RFX1ZfUFJFRDogdmVydGljYWwgaW50cmEgcHJlZGljdGlv bgo+ICsgKiBAVjRMMl9WUDlfSU5UUkFfUFJFRF9NT0RFX0hfUFJFRDogaG9yaXpvbnRhbCBpbnRy YSBwcmVkaWN0aW9uCj4gKyAqIEBWNEwyX1ZQOV9JTlRSQV9QUkVEX01PREVfRDQ1X1BSRUQ6IEQ0 NSBpbnRyYSBwcmVkaWN0aW9uCj4gKyAqIEBWNEwyX1ZQOV9JTlRSQV9QUkVEX01PREVfRDEzNV9Q UkVEOiBEMTM1IGludHJhIHByZWRpY3Rpb24KPiArICogQFY0TDJfVlA5X0lOVFJBX1BSRURfTU9E RV9EMTE3X1BSRUQ6IEQxMTcgaW50cmEgcHJlZGljdGlvbgo+ICsgKiBAVjRMMl9WUDlfSU5UUkFf UFJFRF9NT0RFX0QxNTNfUFJFRDogRDE1MyBpbnRyYSBwcmVkaWN0aW9uCj4gKyAqIEBWNEwyX1ZQ OV9JTlRSQV9QUkVEX01PREVfRDIwN19QUkVEOiBEMjA3IGludHJhIHByZWRpY3Rpb24KPiArICog QFY0TDJfVlA5X0lOVFJBX1BSRURfTU9ERV9ENjNfUFJFRDogRDYzIGludHJhIHByZWRpY3Rpb24K PiArICogQFY0TDJfVlA5X0lOVFJBX1BSRURfTU9ERV9UTV9QUkVEOiBUcnVlIE1vdGlvbiBpbnRy YSBwcmVkaWN0aW9uCj4gKyAqCj4gKyAqIFNlZSBzZWN0aW9uICc3LjQuNSBJbnRyYSBmcmFtZSBt b2RlIGluZm8gc2VtYW50aWNzJyBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKi8KPiArZW51bSB2NGwy X3ZwOV9pbnRyYV9wcmVkaWN0aW9uX21vZGUgewo+ICsJVjRMMl9WUDlfSU5UUkFfUFJFRF9NT0RF X0RDX1BSRUQsCj4gKwlWNEwyX1ZQOV9JTlRSQV9QUkVEX01PREVfVl9QUkVELAo+ICsJVjRMMl9W UDlfSU5UUkFfUFJFRF9NT0RFX0hfUFJFRCwKPiArCVY0TDJfVlA5X0lOVFJBX1BSRURfTU9ERV9E NDVfUFJFRCwKPiArCVY0TDJfVlA5X0lOVFJBX1BSRURfTU9ERV9EMTM1X1BSRUQsCj4gKwlWNEwy X1ZQOV9JTlRSQV9QUkVEX01PREVfRDExN19QUkVELAo+ICsJVjRMMl9WUDlfSU5UUkFfUFJFRF9N T0RFX0QxNTNfUFJFRCwKPiArCVY0TDJfVlA5X0lOVFJBX1BSRURfTU9ERV9EMjA3X1BSRUQsCj4g KwlWNEwyX1ZQOV9JTlRSQV9QUkVEX01PREVfRDYzX1BSRUQsCj4gKwlWNEwyX1ZQOV9JTlRSQV9Q UkVEX01PREVfVE1fUFJFRCwKPiArfTsKCkkgZGlzbGlrZSB1c2luZyBlbnVtcyB3aXRob3V0IGFz c2lnbmluZyB2YWx1ZXMuIEkgc2VlIHRoYXQgaGlzdG9yaWNhbGx5IChhdCAKdGhlIGJlZ2lubmlu ZyBvZiB0aGlzIGZpbGUpLCB2YWx1ZXMgd2VyZSBhbHdheXMgYXNzaWduZWQuIEhvd2V2ZXIsIGlm IAptYWludGFpbmVycyBhZ3JlZSB3aXRoIHlvdSwgdGhhdCdzIGZpbmUgYnkgbWUuCgo+ICsKPiAr LyoqCj4gKyAqIGVudW0gdjRsMl92cDlfcmVzZXRfZnJhbWVfY29udGV4dCAtIFZhbGlkIHZhbHVl cyBmb3IKPiArICoJCQkmdjRsMl9jdHJsX3ZwOV9mcmFtZS0+cmVzZXRfZnJhbWVfY29udGV4dAo+ ICsgKgo+ICsgKiBAVjRMMl9WUDlfUkVTRVRfRlJBTUVfQ1RYX05PTkU6IGRvbid0IHJlc2V0IGFu eSBmcmFtZSBjb250ZXh0Cj4gKyAqIEBWNEwyX1ZQOV9SRVNFVF9GUkFNRV9DVFhfU1BFQzogcmVz ZXQgdGhlIGZyYW1lIGNvbnRleHQgcG9pbnRlZCBieQo+ICsgKgkmdjRsMl9jdHJsX3ZwOV9mcmFt ZS5mcmFtZV9jb250ZXh0X2lkeAo+ICsgKiBAVjRMMl9WUDlfUkVTRVRfRlJBTUVfQ1RYX0FMTDog cmVzZXQgYWxsIGZyYW1lIGNvbnRleHRzCj4gKyAqCj4gKyAqIFNlZSBzZWN0aW9uICc3LjIgVW5j b21wcmVzc2VkIGhlYWRlciBzZW1hbnRpY3MnIG9mIHRoZSBWUDkgc3BlY2lmaWNhdGlvbiAKZm9y IG1vcmUgZGV0YWlscy4KPiArICovCj4gK2VudW0gdjRsMl92cDlfcmVzZXRfZnJhbWVfY29udGV4 dCB7Cj4gKwlWNEwyX1ZQOV9SRVNFVF9GUkFNRV9DVFhfTk9ORSwKPiArCVY0TDJfVlA5X1JFU0VU X0ZSQU1FX0NUWF9TUEVDLAo+ICsJVjRMMl9WUDlfUkVTRVRfRlJBTUVfQ1RYX0FMTCwKPiArfTsK PiArCj4gKy8qKgo+ICsgKiBlbnVtIHY0bDJfdnA5X2ludGVycG9sYXRpb25fZmlsdGVyIC0gVlA5 IGludGVycG9sYXRpb24gZmlsdGVyIHR5cGVzCj4gKyAqCj4gKyAqIEBWNEwyX1ZQOV9JTlRFUlBf RklMVEVSX0VJR0hUVEFQOiBlaWdodCB0YXAgZmlsdGVyCj4gKyAqIEBWNEwyX1ZQOV9JTlRFUlBf RklMVEVSX0VJR0hUVEFQX1NNT09USDogZWlnaHQgdGFwIHNtb290aCBmaWx0ZXIKPiArICogQFY0 TDJfVlA5X0lOVEVSUF9GSUxURVJfRUlHSFRUQVBfU0hBUlA6IGVpZ2h0IHRhcCBzaGFycCBmaWx0 ZXIKPiArICogQFY0TDJfVlA5X0lOVEVSUF9GSUxURVJfQklMSU5FQVI6IGJpbGluZWFyIGZpbHRl cgo+ICsgKiBAVjRMMl9WUDlfSU5URVJQX0ZJTFRFUl9TV0lUQ0hBQkxFOiBmaWx0ZXIgc2VsZWN0 aW9uIGlzIHNpZ25hbGVkIGF0IHRoZSAKYmxvY2sgbGV2ZWwKPiArICoKPiArICogU2VlIHNlY3Rp b24gJzcuMi43IEludGVycG9sYXRpb24gZmlsdGVyIHNlbWFudGljcycgb2YgdGhlIFZQOSAKc3Bl Y2lmaWNhdGlvbgo+ICsgKiBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKi8KPiArZW51bSB2NGwyX3Zw OV9pbnRlcnBvbGF0aW9uX2ZpbHRlciB7Cj4gKwlWNEwyX1ZQOV9JTlRFUlBfRklMVEVSX0VJR0hU VEFQLAo+ICsJVjRMMl9WUDlfSU5URVJQX0ZJTFRFUl9FSUdIVFRBUF9TTU9PVEgsCj4gKwlWNEwy X1ZQOV9JTlRFUlBfRklMVEVSX0VJR0hUVEFQX1NIQVJQLAo+ICsJVjRMMl9WUDlfSU5URVJQX0ZJ TFRFUl9CSUxJTkVBUiwKPiArCVY0TDJfVlA5X0lOVEVSUF9GSUxURVJfU1dJVENIQUJMRSwKPiAr fTsKPiArCj4gKy8qKgo+ICsgKiBlbnVtIHY0bDJfdnA5X3JlZmVyZW5jZV9tb2RlIC0gVlA5IHJl ZmVyZW5jZSBtb2Rlcwo+ICsgKgo+ICsgKiBAVjRMMl9WUDlfUkVGRVJFTkNFX01PREVfU0lOR0xF X1JFRkVSRU5DRTogaW5kaWNhdGVzIHRoYXQgYWxsIHRoZSBpbnRlciAKYmxvY2tzIHVzZSBvbmx5 IGEKPiArICoJc2luZ2xlIHJlZmVyZW5jZSBmcmFtZSB0byBnZW5lcmF0ZSBtb3Rpb24gY29tcGVu c2F0ZWQgcHJlZGljdGlvbgo+ICsgKiBAVjRMMl9WUDlfUkVGRVJFTkNFX01PREVfQ09NUE9VTkRf UkVGRVJFTkNFOiByZXF1aXJlcyBhbGwgdGhlIGludGVyIApibG9ja3MgdG8gdXNlIGNvbXBvdW5k IG1vZGUuCj4gKyAqCVNpbmdsZSByZWZlcmVuY2UgZnJhbWUgcHJlZGljdGlvbiBpcyBub3QgYWxs b3dlZAo+ICsgKiBAVjRMMl9WUDlfUkVGRVJFTkNFX01PREVfU0VMRUNUOiBhbGxvd3MgZWFjaCBp bmRpdmlkdWFsIGludGVyIGJsb2NrIHRvIApzZWxlY3QgYmV0d2VlbiBzaW5nbGUKPiArICoJYW5k IGNvbXBvdW5kIHByZWRpY3Rpb24gbW9kZXMKPiArICoKPiArICogU2VlIHNlY3Rpb24gJzcuMy42 IEZyYW1lIHJlZmVyZW5jZSBtb2RlIHNlbWFudGljcycgb2YgdGhlIFZQOSAKc3BlY2lmaWNhdGlv bgo+ICsgKiBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKi8KPiArZW51bSB2NGwyX3ZwOV9yZWZlcmVu Y2VfbW9kZSB7Cj4gKwlWNEwyX1ZQOV9SRUZFUkVOQ0VfTU9ERV9TSU5HTEVfUkVGRVJFTkNFLAo+ ICsJVjRMMl9WUDlfUkVGRVJFTkNFX01PREVfQ09NUE9VTkRfUkVGRVJFTkNFLAo+ICsJVjRMMl9W UDlfUkVGRVJFTkNFX01PREVfU0VMRUNULAo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIGVudW0gdjRs Ml92cDlfdHhfbW9kZSAtIFZQOSBUWCBtb2Rlcwo+ICsgKgo+ICsgKiBAVjRMMl9WUDlfVFhfTU9E RV9PTkxZXzRYNDogdHJhbnNmb3JtIHNpemUgaXMgNHg0Cj4gKyAqIEBWNEwyX1ZQOV9UWF9NT0RF X0FMTE9XXzhYODogdHJhbnNmb3JtIHNpemUgY2FuIGJlIHVwIHRvIDh4OAo+ICsgKiBAVjRMMl9W UDlfVFhfTU9ERV9BTExPV18xNlgxNjogdHJhbnNmb3JtIHNpemUgY2FuIGJlIHVwIHRvIDE2eDE2 Cj4gKyAqIEBWNEwyX1ZQOV9UWF9NT0RFX0FMTE9XXzMyWDMyOiB0cmFuc2Zvcm0gc2l6ZSBjYW4g YmUgdXAgdG8gMzJ4MzIKPiArICogQFY0TDJfVlA5X1RYX01PREVfU0VMRUNUOiBiaXRzdHJlYW0g Y29udGFpbnMgdGhlIHRyYW5zZm9ybSBzaXplIGZvciBlYWNoIApibG9jawo+ICsgKgo+ICsgKiBT ZWUgc2VjdGlvbiAnNy4zLjEgVHggbW9kZSBzZW1hbnRpY3MnIG9mIHRoZSBWUDkgc3BlY2lmaWNh dGlvbiBmb3IgbW9yZSAKZGV0YWlscy4KPiArICovCj4gK2VudW0gdjRsMl92cDlfdHhfbW9kZSB7 Cj4gKwlWNEwyX1ZQOV9UWF9NT0RFX09OTFlfNFg0LAo+ICsJVjRMMl9WUDlfVFhfTU9ERV9BTExP V184WDgsCj4gKwlWNEwyX1ZQOV9UWF9NT0RFX0FMTE9XXzE2WDE2LAo+ICsJVjRMMl9WUDlfVFhf TU9ERV9BTExPV18zMlgzMiwKPiArCVY0TDJfVlA5X1RYX01PREVfU0VMRUNULAo+ICt9Owo+ICsK PiArLyoqCj4gKyAqIGVudW0gdjRsMl92cDlfZnJhbWVfZmxhZ3MgLSBWUDkgZnJhbWUgZmxhZ3MK PiArICogQFY0TDJfVlA5X0ZSQU1FX0ZMQUdfS0VZX0ZSQU1FOiB0aGUgZnJhbWUgaXMgYSBrZXkg ZnJhbWUKPiArICogQFY0TDJfVlA5X0ZSQU1FX0ZMQUdfU0hPV19GUkFNRTogdGhlIGZyYW1lIHNo b3VsZCBiZSBkaXNwbGF5ZWQKPiArICogQFY0TDJfVlA5X0ZSQU1FX0ZMQUdfRVJST1JfUkVTSUxJ RU5UOiB0aGUgZGVjb2Rpbmcgc2hvdWxkIGJlIGVycm9yIApyZXNpbGllbnQKPiArICogQFY0TDJf VlA5X0ZSQU1FX0ZMQUdfSU5UUkFfT05MWTogdGhlIGZyYW1lIGRvZXMgbm90IHJlZmVyZW5jZSBv dGhlciAKZnJhbWVzCj4gKyAqIEBWNEwyX1ZQOV9GUkFNRV9GTEFHX0FMTE9XX0hJR0hfUFJFQ19N VjogdGhlIGZyYW1lIGNhbiB1c2UgaGlnaCAKcHJlY2lzaW9uIG1vdGlvbiB2ZWN0b3JzCj4gKyAq IEBWNEwyX1ZQOV9GUkFNRV9GTEFHX1JFRlJFU0hfRlJBTUVfQ1RYOiBmcmFtZSBjb250ZXh0IHNo b3VsZCBiZSB1cGRhdGVkIAphZnRlciBkZWNvZGluZwo+ICsgKiBAVjRMMl9WUDlfRlJBTUVfRkxB R19QQVJBTExFTF9ERUNfTU9ERTogcGFyYWxsZWwgZGVjb2RpbmcgaXMgdXNlZAo+ICsgKiBAVjRM Ml9WUDlfRlJBTUVfRkxBR19YX1NVQlNBTVBMSU5HOiB2ZXJ0aWNhbCBzdWJzYW1wbGluZyBpcyBl bmFibGVkCj4gKyAqIEBWNEwyX1ZQOV9GUkFNRV9GTEFHX1lfU1VCU0FNUExJTkc6IGhvcml6b250 YWwgc3Vic2FtcGxpbmcgaXMgZW5hYmxlZAo+ICsgKiBAVjRMMl9WUDlfRlJBTUVfRkxBR19DT0xP Ul9SQU5HRV9GVUxMX1NXSU5HOiBmdWxsIFVWIHJhbmdlIGlzIHVzZWQKPiArICoKPiArICogQ2hl Y2sgdGhlIFZQOSBzcGVjaWZpY2F0aW9uIGZvciBtb3JlIGRldGFpbHMuCj4gKyAqLwo+ICtlbnVt IHY0bDJfdnA5X2ZyYW1lX2ZsYWdzIHsKPiArCVY0TDJfVlA5X0ZSQU1FX0ZMQUdfS0VZX0ZSQU1F ID0gMSA8PCAwLAo+ICsJVjRMMl9WUDlfRlJBTUVfRkxBR19TSE9XX0ZSQU1FID0gMSA8PCAxLAo+ ICsJVjRMMl9WUDlfRlJBTUVfRkxBR19FUlJPUl9SRVNJTElFTlQgPSAxIDw8IDIsCj4gKwlWNEwy X1ZQOV9GUkFNRV9GTEFHX0lOVFJBX09OTFkgPSAxIDw8IDMsCj4gKwlWNEwyX1ZQOV9GUkFNRV9G TEFHX0FMTE9XX0hJR0hfUFJFQ19NViA9IDEgPDwgNCwKPiArCVY0TDJfVlA5X0ZSQU1FX0ZMQUdf UkVGUkVTSF9GUkFNRV9DVFggPSAxIDw8IDUsCj4gKwlWNEwyX1ZQOV9GUkFNRV9GTEFHX1BBUkFM TEVMX0RFQ19NT0RFID0gMSA8PCA2LAo+ICsJVjRMMl9WUDlfRlJBTUVfRkxBR19YX1NVQlNBTVBM SU5HID0gMSA8PCA3LAo+ICsJVjRMMl9WUDlfRlJBTUVfRkxBR19ZX1NVQlNBTVBMSU5HID0gMSA8 PCA4LAo+ICsJVjRMMl9WUDlfRlJBTUVfRkxBR19DT0xPUl9SQU5HRV9GVUxMX1NXSU5HID0gMSA8 PCA5LAo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIGVudW0gdjRsMl92cDlfcmVmX2ZyYW1lX3NpZ25f YmlhcyAtIFdoZXRoZXIgcmVmX2ZyYW1lX3NpZ25fYmlhcyBpcyAxIGZvciAKYSBnaXZlbiByZWZl cmVuY2UgZnJhbWUKPiArICogQFY0TDJfVlA5X1NJR05fQklBU19MQVNUOiByZWZfZnJhbWVfc2ln bl9iaWFzIGlzIDEgZm9yIHRoZSAibGFzdCIgCnJlZmVyZW5jZSBmcmFtZQo+ICsgKiBAVjRMMl9W UDlfU0lHTl9CSUFTX0dPTERFTjogcmVmX2ZyYW1lX3NpZ25fYmlhcyBpcyAxIGZvciB0aGUgImdv bGRlbiIgCnJlZmVyZW5jZSBmcmFtZQo+ICsgKiBAVjRMMl9WUDlfU0lHTl9CSUFTX0FMVDogcmVm X2ZyYW1lX3NpZ25fYmlhcyBpcyAxIGZvciB0aGUgImFsdCIgCnJlZmVyZW5jZSBmcmFtZQo+ICsg Ki8KPiArCj4gK2VudW0gdjRsMl92cDlfcmVmX2ZyYW1lX3NpZ25fYmlhcyB7Cj4gKwlWNEwyX1ZQ OV9TSUdOX0JJQVNfTEFTVCwKPiArCVY0TDJfVlA5X1NJR05fQklBU19HT0xERU4sCj4gKwlWNEwy X1ZQOV9TSUdOX0JJQVNfQUxULAo+ICt9OwoKQXMgSSBtZW50aW9uZWQgYmVmb3JlLCB5b3UgcHJv YmFibHkgd2FudCB0byBhc3NpZ24gdmFsdWVzIGhlcmUsIHNpbmNlIHZhbHVlcyAKYXJlIHVzZWQg YXMgYml0bWFwLgoKPiArCj4gKyNkZWZpbmUgVjRMMl9WUDlfUFJPRklMRV9NQVgJCTMKPiArCj4g KyNkZWZpbmUgVjRMMl9DSURfU1RBVEVMRVNTX1ZQOV9GUkFNRQkoVjRMMl9DSURfQ09ERUNfU1RB VEVMRVNTX0JBU0UgKyAKMzAwKQo+ICsvKioKPiArICogc3RydWN0IHY0bDJfY3RybF92cDlfZnJh bWUgLSBWUDkgZnJhbWUgZGVjb2RpbmcgY29udHJvbAo+ICsgKgo+ICsgKiBAbGY6IGxvb3AgZmls dGVyIHBhcmFtZXRlcnMuIFNlZSAmdjRsMl92cDlfbG9vcF9maWx0ZXIgZm9yIG1vcmUgZGV0YWls cwo+ICsgKiBAcXVhbnQ6IHF1YW50aXphdGlvbiBwYXJhbWV0ZXJzLiBTZWUgJnY0bDJfdnA5X3F1 YW50aXphdGlvbiBmb3IgbW9yZSAKZGV0YWlscwo+ICsgKiBAc2VnOiBzZWdtZW50YXRpb24gcGFy YW1ldGVycy4gU2VlICZ2NGwyX3ZwOV9zZWdtZW50YXRpb24gZm9yIG1vcmUgCmRldGFpbHMKPiAr ICogQGZsYWdzOiBjb21iaW5hdGlvbiBvZiBWNEwyX1ZQOV9GUkFNRV9GTEFHXyogZmxhZ3MKPiAr ICogQGNvbXByZXNzZWRfaGVhZGVyX3NpemU6IGNvbXByZXNzZWQgaGVhZGVyIHNpemUgaW4gYnl0 ZXMKPiArICogQHVuY29tcHJlc3NlZF9oZWFkZXJfc2l6ZTogdW5jb21wcmVzc2VkIGhlYWRlciBz aXplIGluIGJ5dGVzCj4gKyAqIEBmcmFtZV93aWR0aF9taW51c18xOiBhZGQgMSB0byBpdCBhbmQg eW91J2xsIGdldCB0aGUgZnJhbWUgd2lkdGggCmV4cHJlc3NlZCBpbiBwaXhlbHMKPiArICogQGZy YW1lX2hlaWdodF9taW51c18xOiBhZGQgMSB0byBpdCBhbmQgeW91J2xsIGdldCB0aGUgZnJhbWUg aGVpZ2h0IApleHByZXNzZWQgaW4gcGl4ZWxzCj4gKyAqIEByZW5kZXJfd2lkdGhfbWludXNfMTog YWRkIDEgdG8gaXQgYW5kIHlvdSdsbCBnZXQgdGhlIGV4cGVjdGVkIHJlbmRlciAKd2lkdGggZXhw cmVzc2VkIGluCj4gKyAqCXBpeGVscy4gVGhpcyBpcyBub3QgdXNlZCBkdXJpbmcgdGhlIGRlY29k aW5nIHByb2Nlc3MgYnV0IG1pZ2h0IGJlIAp1c2VkIGJ5IEhXIHNjYWxlcnMKPiArICoJdG8gcHJl cGFyZSBhIGZyYW1lIHRoYXQncyByZWFkeSBmb3Igc2Nhbm91dAo+ICsgKiBAcmVuZGVyX2hlaWdo dF9taW51c18xOiBhZGQgMSB0byBpdCBhbmQgeW91J2xsIGdldCB0aGUgZXhwZWN0ZWQgcmVuZGVy IApoZWlnaHQgZXhwcmVzc2VkIGluCj4gKyAqCXBpeGVscy4gVGhpcyBpcyBub3QgdXNlZCBkdXJp bmcgdGhlIGRlY29kaW5nIHByb2Nlc3MgYnV0IG1pZ2h0IGJlIAp1c2VkIGJ5IEhXIHNjYWxlcnMK PiArICoJdG8gcHJlcGFyZSBhIGZyYW1lIHRoYXQncyByZWFkeSBmb3Igc2Nhbm91dAo+ICsgKiBA bGFzdF9mcmFtZV90czogImxhc3QiIHJlZmVyZW5jZSBidWZmZXIgdGltZXN0YW1wLgo+ICsgKiBU aGUgdGltZXN0YW1wIHJlZmVycyB0byB0aGUgdGltZXN0YW1wIGZpZWxkIGluIHN0cnVjdCB2NGwy X2J1ZmZlci4KPiArICogVXNlIHY0bDJfdGltZXZhbF90b19ucygpIHRvIGNvbnZlcnQgdGhlIHN0 cnVjdCB0aW1ldmFsIHRvIGEgX191NjQuCj4gKyAqIEBnb2xkZW5fZnJhbWVfdHM6ICJnb2xkZW4i IHJlZmVyZW5jZSBidWZmZXIgdGltZXN0YW1wLgo+ICsgKiBUaGUgdGltZXN0YW1wIHJlZmVycyB0 byB0aGUgdGltZXN0YW1wIGZpZWxkIGluIHN0cnVjdCB2NGwyX2J1ZmZlci4KPiArICogVXNlIHY0 bDJfdGltZXZhbF90b19ucygpIHRvIGNvbnZlcnQgdGhlIHN0cnVjdCB0aW1ldmFsIHRvIGEgX191 NjQuCj4gKyAqIEBhbHRfZnJhbWVfdHM6ICJhbHQiIHJlZmVyZW5jZSBidWZmZXIgdGltZXN0YW1w Lgo+ICsgKiBUaGUgdGltZXN0YW1wIHJlZmVycyB0byB0aGUgdGltZXN0YW1wIGZpZWxkIGluIHN0 cnVjdCB2NGwyX2J1ZmZlci4KPiArICogVXNlIHY0bDJfdGltZXZhbF90b19ucygpIHRvIGNvbnZl cnQgdGhlIHN0cnVjdCB0aW1ldmFsIHRvIGEgX191NjQuCj4gKyAqIEByZWZfZnJhbWVfc2lnbl9i aWFzOiBhIGJpdGZpZWxkIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgc2lnbiBiaWFzIGlzIHNldCAK Zm9yIGEgZ2l2ZW4KPiArICoJcmVmZXJlbmNlIGZyYW1lLiBTZWUgJnY0bDJfdnA5X3JlZl9mcmFt ZV9zaWduX2JpYXMgZm9yIG1vcmUgCmRldGFpbHMuCj4gKyAqIEByZXNldF9mcmFtZV9jb250ZXh0 OiBzcGVjaWZpZXMgd2hldGhlciB0aGUgZnJhbWUgY29udGV4dCBzaG91bGQgYmUgcmVzZXQgCnRv IGRlZmF1bHQgdmFsdWVzLgo+ICsgKglTZWUgJnY0bDJfdnA5X3Jlc2V0X2ZyYW1lX2NvbnRleHQg Zm9yIG1vcmUgZGV0YWlscwo+ICsgKiBAZnJhbWVfY29udGV4dF9pZHg6IGZyYW1lIGNvbnRleHQg dGhhdCBzaG91bGQgYmUgdXNlZC91cGRhdGVkCj4gKyAqIEBwcm9maWxlOiBWUDkgcHJvZmlsZS4g Q2FuIGJlIDAsIDEsIDIgb3IgMwo+ICsgKiBAYml0X2RlcHRoOiBiaXRzIHBlciBjb21wb25lbnRz LiBDYW4gYmUgOCwgMTAgb3IgMTIuIE5vdGUgdGhhdCBub3QgYWxsIApwcm9maWxlcyBzdXBwb3J0 Cj4gKyAqCTEwIGFuZC9vciAxMiBiaXRzIGRlcHRocwo+ICsgKiBAaW50ZXJwb2xhdGlvbl9maWx0 ZXI6IHNwZWNpZmllcyB0aGUgZmlsdGVyIHNlbGVjdGlvbiB1c2VkIGZvciBwZXJmb3JtaW5nIApp bnRlciBwcmVkaWN0aW9uLgo+ICsgKglTZWUgJnY0bDJfdnA5X2ludGVycG9sYXRpb25fZmlsdGVy IGZvciBtb3JlIGRldGFpbHMKPiArICogQHRpbGVfY29sc19sb2cyOiBzcGVjaWZpZXMgdGhlIGJh c2UgMiBsb2dhcml0aG0gb2YgdGhlIHdpZHRoIG9mIGVhY2ggdGlsZSAKKHdoZXJlIHRoZSB3aWR0 aAo+ICsgKglpcyBtZWFzdXJlZCBpbiB1bml0cyBvZiA4eDggYmxvY2tzKS4gU2hhbGwgYmUgbGVz cyB0aGFuIG9yIGVxdWFsIAp0byA2Cj4gKyAqIEB0aWxlX3Jvd3NfbG9nMjogc3BlY2lmaWVzIHRo ZSBiYXNlIDIgbG9nYXJpdGhtIG9mIHRoZSBoZWlnaHQgb2YgZWFjaCAKdGlsZSAod2hlcmUgdGhl IGhlaWdodAo+ICsgKglpcyBtZWFzdXJlZCBpbiB1bml0cyBvZiA4eDggYmxvY2tzKQo+ICsgKiBA dHhfbW9kZTogc3BlY2lmaWVzIHRoZSBUWCBtb2RlLiBTZWUgJnY0bDJfdnA5X3R4X21vZGUgZm9y IG1vcmUgZGV0YWlscwo+ICsgKiBAcmVmZXJlbmNlX21vZGU6IHNwZWNpZmllcyB0aGUgdHlwZSBv ZiBpbnRlciBwcmVkaWN0aW9uIHRvIGJlIHVzZWQuIFNlZQo+ICsgKgkmdjRsMl92cDlfcmVmZXJl bmNlX21vZGUgZm9yIG1vcmUgZGV0YWlscwo+ICsgKiBAcmVzZXJ2ZWQ6IHBhZGRpbmcgZmllbGQu IFNob3VsZCBiZSB6ZXJvZWQgYnkgYXBwbGljYXRpb25zLgo+ICsgKi8KPiArc3RydWN0IHY0bDJf Y3RybF92cDlfZnJhbWUgewo+ICsJc3RydWN0IHY0bDJfdnA5X2xvb3BfZmlsdGVyIGxmOwo+ICsJ c3RydWN0IHY0bDJfdnA5X3F1YW50aXphdGlvbiBxdWFudDsKPiArCXN0cnVjdCB2NGwyX3ZwOV9z ZWdtZW50YXRpb24gc2VnOwo+ICsJX191MzIgZmxhZ3M7Cj4gKwlfX3UxNiBjb21wcmVzc2VkX2hl YWRlcl9zaXplOwo+ICsJX191MTYgdW5jb21wcmVzc2VkX2hlYWRlcl9zaXplOwo+ICsJX191MTYg ZnJhbWVfd2lkdGhfbWludXNfMTsKPiArCV9fdTE2IGZyYW1lX2hlaWdodF9taW51c18xOwo+ICsJ X191MTYgcmVuZGVyX3dpZHRoX21pbnVzXzE7Cj4gKwlfX3UxNiByZW5kZXJfaGVpZ2h0X21pbnVz XzE7Cj4gKwlfX3U2NCBsYXN0X2ZyYW1lX3RzOwo+ICsJX191NjQgZ29sZGVuX2ZyYW1lX3RzOwo+ ICsJX191NjQgYWx0X2ZyYW1lX3RzOwo+ICsJX191OCByZWZfZnJhbWVfc2lnbl9iaWFzOwo+ICsJ X191OCByZXNldF9mcmFtZV9jb250ZXh0Owo+ICsJX191OCBmcmFtZV9jb250ZXh0X2lkeDsKPiAr CV9fdTggcHJvZmlsZTsKPiArCV9fdTggYml0X2RlcHRoOwo+ICsJX191OCBpbnRlcnBvbGF0aW9u X2ZpbHRlcjsKPiArCV9fdTggdGlsZV9jb2xzX2xvZzI7Cj4gKwlfX3U4IHRpbGVfcm93c19sb2cy Owo+ICsJX191OCB0eF9tb2RlOwoKQUZBSUNTLCBUWCBtb2RlIGlzIHBhcnQgb2YgY29tcHJlc3Nl ZCBoZWFkZXIgaW4gY2hhcHRlciA2LjMuMS4gQW55IHJlYXNvbiBpdCdzIApoZXJlIGFuZCBub3Qg aW4gIHY0bDJfY3RybF92cDlfY29tcHJlc3NlZF9oZHJfcHJvYnM/Cgo+ICsJX191OCByZWZlcmVu Y2VfbW9kZTsKPiArCV9fdTggcmVzZXJ2ZWRbNl07Cj4gK307Cj4gKwo+ICsjZGVmaW5lIFY0TDJf VlA5X05VTV9GUkFNRV9DVFgJNAo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCB2NGwyX3ZwOV9tdl9j b21wcmVzc2VkX2hkcl9wcm9icyAtIFZQOSBNb3Rpb24gdmVjdG9yIHByb2JhYmlsaXR5IAp1cGRh dGVzCj4gKyAqIEBqb2ludDogbW90aW9uIHZlY3RvciBqb2ludCBwcm9iYWJpbGl0eSB1cGRhdGVz Cj4gKyAqIEBzaWduOiBtb3Rpb24gdmVjdG9yIHNpZ24gcHJvYmFiaWxpdHkgdXBkYXRlcwo+ICsg KiBAY2xhc3NlczogbW90aW9uIHZlY3RvciBjbGFzcyBwcm9iYWJpbGl0eSB1cGRhdGVzCj4gKyAq IEBjbGFzczBfYml0OiBtb3Rpb24gdmVjdG9yIGNsYXNzMCBiaXQgcHJvYmFiaWxpdHkgdXBkYXRl cwo+ICsgKiBAYml0czogbW90aW9uIHZlY3RvciBiaXRzIHByb2JhYmlsaXR5IHVwZGF0ZXMKPiAr ICogQGNsYXNzMF9mcjogbW90aW9uIHZlY3RvciBjbGFzczAgZnJhY3Rpb25hbCBiaXQgcHJvYmFi aWxpdHkgdXBkYXRlcwo+ICsgKiBAZnI6IG1vdGlvbiB2ZWN0b3IgZnJhY3Rpb25hbCBiaXQgcHJv YmFiaWxpdHkgdXBkYXRlcwo+ICsgKiBAY2xhc3MwX2hwOiBtb3Rpb24gdmVjdG9yIGNsYXNzMCBo aWdoIHByZWNpc2lvbiBmcmFjdGlvbmFsIGJpdCAKcHJvYmFiaWxpdHkgdXBkYXRlcwo+ICsgKiBA aHA6IG1vdGlvbiB2ZWN0b3IgaGlnaCBwcmVjaXNpb24gZnJhY3Rpb25hbCBiaXQgcHJvYmFiaWxp dHkgdXBkYXRlcwo+ICsgKgo+ICsgKiBUaGlzIHN0cnVjdHVyZSBjb250YWlucyBuZXcgdmFsdWVz IG9mIG1vdGlvbiB2ZWN0b3IgcHJvYmFiaWxpdGllcy4KPiArICogQSB2YWx1ZSBvZiB6ZXJvIGlu IGFuIGFycmF5IGVsZW1lbnQgbWVhbnMgdGhlcmUgaXMgbm8gdXBkYXRlIG9mIHRoZSAKcmVsZXZh bnQgcHJvYmFiaWxpdHkuCj4gKyAqIFNlZSBgc3RydWN0IHY0bDJfdnA5X3Byb2JfdXBkYXRlc2Ag Zm9yIGRldGFpbHMuCj4gKyAqLwo+ICtzdHJ1Y3QgdjRsMl92cDlfbXZfY29tcHJlc3NlZF9oZHJf cHJvYnMgewo+ICsJX191OCBqb2ludFszXTsKPiArCV9fdTggc2lnblsyXTsKPiArCV9fdTggY2xh c3Nlc1syXVsxMF07Cj4gKwlfX3U4IGNsYXNzMF9iaXRbMl07Cj4gKwlfX3U4IGJpdHNbMl1bMTBd Owo+ICsJX191OCBjbGFzczBfZnJbMl1bMl1bM107Cj4gKwlfX3U4IGZyWzJdWzNdOwo+ICsJX191 OCBjbGFzczBfaHBbMl07Cj4gKwlfX3U4IGhwWzJdOwo+ICt9Owo+ICsKPiArI2RlZmluZSBWNEwy X0NJRF9TVEFURUxFU1NfVlA5X0NPTVBSRVNTRURfSERSX1BST0JTCQooVjRMMl9DSURfQ09ERUNf U1RBVEVMRVNTX0JBU0UgKyAzMDEpCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgdjRsMl9jdHJsX3ZwOV9j b21wcmVzc2VkX2hkcl9wcm9icyAtIFZQOSBwcm9iYWJpbGl0eSB1cGRhdGVzIApjb250cm9sCj4g KyAqIEB0eDg6IFRYIDh4OCBwcm9iYWJpbGl0eSB1cGRhdGVzCj4gKyAqIEB0eDE2OiBUWCAxNngx NiBwcm9iYWJpbGl0eSB1cGRhdGVzCj4gKyAqIEB0eDMyOiBUWCAzMngzMiBwcm9iYWJpbGl0eSB1 cGRhdGVzCj4gKyAqIEBjb2VmOiBjb2VmZmljaWVudCBwcm9iYWJpbGl0eSB1cGRhdGVzCj4gKyAq IEBza2lwOiBza2lwIHByb2JhYmlsaXR5IHVwZGF0ZXMKPiArICogQGludGVyX21vZGU6IGludGVy IG1vZGUgcHJvYmFiaWxpdHkgdXBkYXRlcwo+ICsgKiBAaW50ZXJwX2ZpbHRlcjogaW50ZXJwb2xh dGlvbiBmaWx0ZXIgcHJvYmFiaWxpdHkgdXBkYXRlcwo+ICsgKiBAaXNfaW50ZXI6IGlzIGludGVy LWJsb2NrIHByb2JhYmlsaXR5IHVwZGF0ZXMKPiArICogQGNvbXBfbW9kZTogY29tcG91bmQgcHJl ZGljdGlvbiBtb2RlIHByb2JhYmlsaXR5IHVwZGF0ZXMKPiArICogQHNpbmdsZV9yZWY6IHNpbmds ZSByZWYgcHJvYmFiaWxpdHkgdXBkYXRlcwo+ICsgKiBAY29tcF9yZWY6IGNvbXBvdW5kIHJlZiBw cm9iYWJpbGl0eSB1cGRhdGVzCj4gKyAqIEB5X21vZGU6IFkgcHJlZGljdGlvbiBtb2RlIHByb2Jh YmlsaXR5IHVwZGF0ZXMKPiArICogQHV2X21vZGU6IFVWIHByZWRpY3Rpb24gbW9kZSBwcm9iYWJp bGl0eSB1cGRhdGVzCj4gKyAqIEBwYXJ0aXRpb246IHBhcnRpdGlvbiBwcm9iYWJpbGl0eSB1cGRh dGVzCj4gKyAqIEBtdjogbW90aW9uIHZlY3RvciBwcm9iYWJpbGl0eSB1cGRhdGVzCj4gKyAqCj4g KyAqIFRoaXMgc3RydWN0dXJlIGhvbGRzIHRoZSBwcm9iYWJpbGl0aWVzIHVwZGF0ZSBhcyBwYXJz ZWQgaW4gdGhlIApjb21wcmVzc2VkCj4gKyAqIGhlYWRlciAoU3BlYyA2LjMpLiBUaGVzZSB2YWx1 ZXMgcmVwcmVzZW50IHRoZSB2YWx1ZSBvZiBwcm9iYWJpbGl0eSAKdXBkYXRlIGFmdGVyCj4gKyAq IGJlaW5nIHRyYW5zbGF0ZWQgd2l0aCBpbnZfbWFwX3RhYmxlW10gKHNlZSA2LjMuNSkuIEEgdmFs dWUgb2YgemVybyBpbiBhbiAKYXJyYXkgZWxlbWVudAo+ICsgKiBtZWFucyB0aGF0IHRoZXJlIGlz IG5vIHVwZGF0ZSBvZiB0aGUgcmVsZXZhbnQgcHJvYmFiaWxpdHkuCj4gKyAqLwo+ICtzdHJ1Y3Qg djRsMl9jdHJsX3ZwOV9jb21wcmVzc2VkX2hkcl9wcm9icyB7Cj4gKwlfX3U4IHR4OFsyXVsxXTsK PiArCV9fdTggdHgxNlsyXVsyXTsKPiArCV9fdTggdHgzMlsyXVszXTsKPiArCV9fdTggY29lZls0 XVsyXVsyXVs2XVs2XVszXTsKPiArCV9fdTggc2tpcFszXTsKPiArCV9fdTggaW50ZXJfbW9kZVs3 XVszXTsKPiArCV9fdTggaW50ZXJwX2ZpbHRlcls0XVsyXTsKPiArCV9fdTggaXNfaW50ZXJbNF07 Cj4gKwlfX3U4IGNvbXBfbW9kZVs1XTsKPiArCV9fdTggc2luZ2xlX3JlZls1XVsyXTsKPiArCV9f dTggY29tcF9yZWZbNV07Cj4gKwlfX3U4IHlfbW9kZVs0XVs5XTsKPiArCV9fdTggdXZfbW9kZVsx MF1bOV07Cj4gKwlfX3U4IHBhcnRpdGlvblsxNl1bM107Cj4gKwo+ICsJc3RydWN0IHY0bDJfdnA5 X212X2NvbXByZXNzZWRfaGRyX3Byb2JzIG12OwoKdjRsMl9jdHJsX3ZwOV9jb21wcmVzc2VkX2hk cl9wcm9icyBhbmQgdjRsMl92cDlfbXZfY29tcHJlc3NlZF9oZHJfcHJvYnMgYXJlIHNvIApjb25m dXNpbmdseSBzaW1pbGFyLCBpdCdzIGVhc3kgdG8gbWVzcyB1cCBxdWlja2x5LiBDYW4gd2UgZmlu ZCBtb3JlIGRpc3RpbmN0IApuYW1lcz8KCk5vdGUsIEkganVzdCBza2ltbWVkIHRoaXMgcGF0Y2gs IG1heWJlIEknbGwgaGF2ZSBzb21lIG1vcmUgcXVlc3Rpb25zIGxhdGVyLiAKR3JlYXQgd29yayEK CkJlc3QgcmVnYXJkcywKSmVybmVqCgo+ICt9Owo+ICsKPiAgLyogTVBFRy1jb21wcmVzc2lvbiBk ZWZpbml0aW9ucyBrZXB0IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLwo+ICAjaWZuZGVm IF9fS0VSTkVMX18KPiAgI2RlZmluZSBWNEwyX0NUUkxfQ0xBU1NfTVBFRyAgICAgICAgICAgIFY0 TDJfQ1RSTF9DTEFTU19DT0RFQwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvdmlk ZW9kZXYyLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdmlkZW9kZXYyLmgKPiBpbmRleCA1ODM5MmRj ZDNiZjUuLjRhYmU0MzYyNTE5ZSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdmlk ZW9kZXYyLmgKPiArKysgYi9pbmNsdWRlL3VhcGkvbGludXgvdmlkZW9kZXYyLmgKPiBAQCAtNzAz LDYgKzcwMyw3IEBAIHN0cnVjdCB2NGwyX3BpeF9mb3JtYXQgewo+ICAjZGVmaW5lIFY0TDJfUElY X0ZNVF9WUDggICAgICB2NGwyX2ZvdXJjYygnVicsICdQJywgJzgnLCAnMCcpIC8qIFZQOCAqLwo+ ICAjZGVmaW5lIFY0TDJfUElYX0ZNVF9WUDhfRlJBTUUgdjRsMl9mb3VyY2MoJ1YnLCAnUCcsICc4 JywgJ0YnKSAvKiBWUDggcGFyc2VkIApmcmFtZSAqLwo+ICAjZGVmaW5lIFY0TDJfUElYX0ZNVF9W UDkgICAgICB2NGwyX2ZvdXJjYygnVicsICdQJywgJzknLCAnMCcpIC8qIFZQOSAqLwo+ICsjZGVm aW5lIFY0TDJfUElYX0ZNVF9WUDlfRlJBTUUgdjRsMl9mb3VyY2MoJ1YnLCAnUCcsICc5JywgJ0Yn KSAvKiBWUDkgcGFyc2VkIApmcmFtZSAqLwo+ICAjZGVmaW5lIFY0TDJfUElYX0ZNVF9IRVZDICAg ICB2NGwyX2ZvdXJjYygnSCcsICdFJywgJ1YnLCAnQycpIC8qIEhFVkMgYWthIEguCjI2NSAqLwo+ ICAjZGVmaW5lIFY0TDJfUElYX0ZNVF9GV0hUICAgICB2NGwyX2ZvdXJjYygnRicsICdXJywgJ0gn LCAnVCcpIC8qIEZhc3QgV2Fsc2ggCkhhZGFtYXJkIFRyYW5zZm9ybSAodmljb2RlYykgKi8KPiAg I2RlZmluZSBWNEwyX1BJWF9GTVRfRldIVF9TVEFURUxFU1MgICAgIHY0bDJfZm91cmNjKCdTJywg J0YnLCAnVycsICdIJykgLyogClN0YXRlbGVzcyBGV0hUICh2aWNvZGVjKSAqLwo+IEBAIC0xNzU1 LDYgKzE3NTYsOCBAQCBzdHJ1Y3QgdjRsMl9leHRfY29udHJvbCB7Cj4gIAkJc3RydWN0IHY0bDJf Y3RybF9tcGVnMl9zZXF1ZW5jZSBfX3VzZXIgCipwX21wZWcyX3NlcXVlbmNlOwo+ICAJCXN0cnVj dCB2NGwyX2N0cmxfbXBlZzJfcGljdHVyZSBfX3VzZXIgKnBfbXBlZzJfcGljdHVyZTsKPiAgCQlz dHJ1Y3QgdjRsMl9jdHJsX21wZWcyX3F1YW50aXNhdGlvbiBfX3VzZXIgCipwX21wZWcyX3F1YW50 aXNhdGlvbjsKPiArCQlzdHJ1Y3QgdjRsMl9jdHJsX3ZwOV9jb21wcmVzc2VkX2hkcl9wcm9icyBf X3VzZXIgCipwX3ZwOV9jb21wcmVzc2VkX2hkcl9wcm9iczsKPiArCQlzdHJ1Y3QgdjRsMl9jdHJs X3ZwOV9mcmFtZSBfX3VzZXIgKnBfdnA5X2ZyYW1lOwo+ICAJCXZvaWQgX191c2VyICpwdHI7Cj4g IAl9Owo+ICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKPiBAQCAtMTgxOSw2ICsxODIyLDkg QEAgZW51bSB2NGwyX2N0cmxfdHlwZSB7Cj4gIAlWNEwyX0NUUkxfVFlQRV9NUEVHMl9RVUFOVElT QVRJT04gICA9IDB4MDI1MCwKPiAgCVY0TDJfQ1RSTF9UWVBFX01QRUcyX1NFUVVFTkNFICAgICAg ID0gMHgwMjUxLAo+ICAJVjRMMl9DVFJMX1RZUEVfTVBFRzJfUElDVFVSRSAgICAgICAgPSAweDAy NTIsCj4gKwo+ICsJVjRMMl9DVFJMX1RZUEVfVlA5X0NPTVBSRVNTRURfSERSX1BST0JTCT0gMHgw MjYwLAo+ICsJVjRMMl9DVFJMX1RZUEVfVlA5X0ZSQU1FCQk9IDB4MDI2MSwKPiAgfTsKPiAgCj4g IC8qICBVc2VkIGluIHRoZSBWSURJT0NfUVVFUllDVFJMIGlvY3RsIGZvciBxdWVyeWluZyBjb250 cm9scyAqLwo+IC0tIAo+IDIuMTcuMQo+IAo+IAoKCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=