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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 59EC1CE8D6B for ; Mon, 17 Nov 2025 05:50:45 +0000 (UTC) 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=3d/L0n09ZjPYMA7hVBw5+4bNcdTrgXBQYRcxKxS0rDI=; b=38BLSzl6S+2Z9i Tvturx95FfEA+5B8P8k5/hODGFU8xQ04l4nCMjey2wysXxl4Pnn6LQ1Cq4MbyEvvTsmA2hfLImHIU I26X+c6fYp1/oNy3KQJeP66Cr/cw6sfauu8T51idA7cR8FMYgkcmX6twse7AMRX7wCZj/OcLZigdh MLr6fgipeW7+Cuo/4cz4vcsfsvcPHgs0P4kr01jQB4CPJXcUHpgAZYPyzLi5fWQiZdXSoGGxOyWNC +pIqWc02slYWtxdeQZ0oByycymX3wpUa/vT42ECivi0Y1/On/OkSax0ljsL+hSUPAGLRnDLseduGb YGFRPClbmRLvWn2rhZUQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vKs8I-0000000FT8M-1x5b; Mon, 17 Nov 2025 05:50:34 +0000 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vKs8F-0000000FT6v-3IE9 for opensbi@lists.infradead.org; Mon, 17 Nov 2025 05:50:33 +0000 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-7b9c17dd591so2895888b3a.3 for ; Sun, 16 Nov 2025 21:50:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763358631; x=1763963431; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ame8tvzmYWMQYPuxFAqESXUkn1tHCqoFlhIcrnKRh9o=; b=ZuqSy3XuiNIN4Xx76jlc9HqN79ptYxVCjU7UsADieUni0b4Jm9Na9cCFPqjHZWT7Ww fPTry3dY+Nf7jcK36JA45QukRXgzh04ygGCd3lBgZfhrEKqiO0ZXeCpgFTHAzG3gKY2P /KSmX/euS0maD8H9Ag5FKTjHc839sY7PlvahM2Yo5MGMXGtJUN5DPhEiL/vZpw7/EnRT OV5z3hUNOYZL7vcSznxkIR99bvH6STEmp94M21MZRPR7/v+vDdc6uGA0BwIeFnZUzZ3m o4KKQhhtXC5QyLjjyVbIn6oMg0hzpl5SXBDm+ez7Le9v+NZb565eLgscqCjSv/Ew2c48 QaSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763358631; x=1763963431; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Ame8tvzmYWMQYPuxFAqESXUkn1tHCqoFlhIcrnKRh9o=; b=Jt7pdXalZIcB+SS6oFltLrmH8Bq1c+hWiW27hUrUw4CpHWwKxYM+1nJotW+ANzn++g OGCB92OpLBB8sgROOXn+sK+WxN0OnAIH1lfKdoWHMXgfgVDP2iSdLSgLlCGtq732bMbl LwgNSb0XvlfCjNoCq2h0kypw7YF1eVAeqlYzwv+E9yy6SyiMBRGYy9cfJ/LhT8g4Sn66 iBGJDJF4buF9CuYdUPoYZ5uccmpYYCFu320/xDKDiK6fmsJ01b9S6gwIg5THuSVSLjHd MKdKgzB8BF8XwXpWlkfqfux4PzE9eN0F/vodCwLzAiyNcDpc9iCoyYxQpTxA5ebsnuVx RK+A== X-Gm-Message-State: AOJu0YyqKC+mydLGpdS/UE3+cStQBRMQfKShzxAeTlPoDb9j5rVFVRKh Ij3KzOt0HBtz3//6MHOHVzNesC5Hp19DG48oBFBatinYazdPR17Ox898S1tLBA== X-Gm-Gg: ASbGncubM6qGE5d7tZEYeeu0hXRA6I2PH3nNWsmNOdPN/gSF1+TcrmLlM5A/pspQ8bN 0adHVQeBVyYlZgjGkwlySFmBNvBA/BzQRVZIwJYAL8yXDv/bqGfe1oXsspHbXWhz6KlvIWvNjmY 7iLc/RDFZJeJp+oL+C5GpobGDpONxBaGtS/6EMa2oUeQRwK2bVp7It+yb3eSMemVi7D2Xz9w5ln 3h2Z1xhloCfU8tasdqwznLllQwYwqytxU5UGE8vjb2QXl1WevmSvAvsjvRkziJ8lEfLMgptQx4s Ty0uGxIxD9Sg/KQEd21b6AKL+Tllev4sjEag2AShrBrpkjUQDj6CLBCbG1kQLiuntj3hymu0HoI byiWBgmpnRxxBGe3oJJrAsoQ4oCCWH7zS3RfqXxBeJkIznTof6Pg4cGRoFR17lxoQf1jdJs7tLG iYo/M3Rl/mKF01 X-Google-Smtp-Source: AGHT+IHn5GEfA+qe6z+sDM6xl/RM2rzXxfqCKfTujrSuC9sHIjdsCXcg/PBlW6J2Zqbc2e1PcoZhWQ== X-Received: by 2002:a05:6a00:1a93:b0:77f:4a83:8f9 with SMTP id d2e1a72fcca58-7ba39b82607mr12944757b3a.2.1763358630429; Sun, 16 Nov 2025 21:50:30 -0800 (PST) Received: from m91p.airy.home ([172.92.174.155]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b924cd89bcsm11719856b3a.15.2025.11.16.21.50.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 21:50:29 -0800 (PST) From: Bo Gan To: opensbi@lists.infradead.org Cc: linmin@eswincomputing.com, pinkesh.vaghela@einfochips.com, gaohan@iscas.ac.cn, samuel@sholland.org, wangxiang@iscas.ac.cn Subject: [PATCH v2 5/5] platform: generic: eswin: add EIC7700 Date: Sun, 16 Nov 2025 21:48:46 -0800 Message-Id: <20251117054846.1335-6-ganboing@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251117054846.1335-1-ganboing@gmail.com> References: <20251117054846.1335-1-ganboing@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251116_215031_859257_65153986 X-CRM114-Status: GOOD ( 30.52 ) X-BeenThere: opensbi@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: "opensbi" Errors-To: opensbi-bounces+opensbi=archiver.kernel.org@lists.infradead.org SW5pdGlhbCBwbGF0Zm9ybSBzdXBwb3J0IGZvciBFU1dJTiBDb21wdXRpbmcgRUlDNzcwMCBiYXNl ZCBvbiBwdWJsaWMgU29DCmRhdGFzaGVldFsxXSBhbmQgdGVzdGVkIG9uIEhpRml2ZSBQcmVtaWVy IFA1NTAuIFZlbmRvciBVLWJvb3QvTGludXggYm9vdHMKZmluZSwgYW5kIEkndmUgdGVzdGVkIEdl ZWtiZW5jaCA2LjUuMCBQcmV2aWV3IGFuZCBnb3Qgc2NvcmVzIG9uIHBhciB3aXRoCnRoZSB2ZW5k b3IgT3BlblNCSS4gU3lzdGVtIHNodXRkb3duIGlzIG5vdCBpbXBsZW1lbnRlZCBkdWUgdG8gdGhl IGxhY2sgb2YKcHVibGljIGRvYyByZWdhcmRpbmcgdGhlIFVBUlQgY29tbXVuaWNhdGlvbiBwcm90 b2NvbCBiZXR3ZWVuIHRoZSBTb0MgYW5kCnRoZSBvbmJvYXJkIEJNQywgd2hpY2ggY29udHJvbHMg QVRYIHBvd2VyIG9uIEhpRml2ZSBQNTUwLiBbMl0KClRoZSBmaWxlcyBhbmQgZnVuY3Rpb25zIGFy ZSBpbnRlbnRpb25hbGx5IG5hbWVkIGFzIGVpYzc3MHggaW4gbWFueSBwbGFjZXMKZm9yIGZ1dHVy ZSBlbmhhbmNlbWVudHMgdG8gc3VwcG9ydCB0aGUgMiBkaWUgdmVyc2lvbiBvZiB0aGUgc2FtZSBT b0MsCm5hbWVseSBFSUM3NzAyLCBzZWVuIG9uIERDLVJPTUEgQUkgUEMgRk1MMTNWMDMgWzNdLiBU aGlzIHBhdGNoIHNldCBvbmx5CmRlYWxzIHdpdGggdGhlIHNpbmdsZSBkaWUgdmVyc2lvbiwgYW5k IHRoZSBhc3N1bXB0aW9uIGlzIHdlIGNhbiBiZSBlaXRoZXIKZGllIHdpdGggaWQ9MCBvciBpZD0x LCBidXQgdGhlcmUncyBvbmx5IGEgc2luZ2xlIGRpZSBpbiB0aGUgc3lzdGVtLCBvciB3ZQphcmUg b25seSB1c2luZyBhIHNpbmdsZSBkaWUgb3V0IG9mIDIuIEhvd2V2ZXIsIHRoZSB3YXkgdGhlIFNv QyBoYW5kbGVzIDItCmRpZSBncmVhdGx5IGFmZmVjdHMgaG93IHdlIGNvbmZpZ3VyZSBpdCBpbiBh IDEtZGllIHNldHVwLiBFSUM3NzBYIGFkZHJlc3MKbWFwIGhhcyBkaWUgMC8xIG1lbW9yeSByZWdp b25zIGludGVybGVhdmVkIChzZWUgY29tbWVudHMgaW4gZWljNzcweC5jKS4KSWYgb25seSAxIGRp ZSBpcyBjb25uZWN0ZWQgb3IgYWN0aXZlLCBpdCBjcmVhdGVzIGhvbGVzIGluIHRoZSBhZGRyZXNz IG1hcApmb3IgdGhvc2UgcmVnaW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSByZW1vdGUgZGllLiBB bHRob3VnaCBub3QgbWVudGlvbmVkCmluIHRoZSBkYXRhc2hlZXQsIGV4cGVyaW1lbnQgc2hvd3Mg c3BlY3VsYXRpdmUgb3IgSFcgcHJlZmV0Y2ggY2FuIHRyaWdnZXIKYnVzIGVycm9ycyB3aGVuIHRv dWNoaW5nIHRob3NlICJob2xlcyIuIFdlIG5lZWQgdG8gdXNlIFBNUCB0byBibG9jayB0aGUKYWNj ZXNzIHRvIHRob3NlICJob2xlcyIsIG5lY2Vzc2l0YXRpbmcgdmVyeSB0cmlja3kgUE1QIGNvbmZp Z3VyYXRpb24uCgpUbyBtYWtlIG1hdHRlcnMgd29yc2UsIEVJQzc3MFggZG9lc24ndCBoYXZlIGNh Y2hlIGNvaGVyZW50IERNQSwgYW5kIGR1ZQp0byB0aGUgZmFjdCB0aGF0IHRoZSBQNTUwIGNvcmUg bGFja3MgU3ZwYm10LCB0aGUgU29DIG1hcHMgbWFpbiBtZW1vcnkKdHdpY2UgYXMgZGlmZmVyZW50 IHJlZ2lvbnMgaW4gYWRkcmVzcyBtYXAsIHNvIGl0IGNhbiBieXBhc3MgY2FjaGUgYW5kCmZldGNo IGRhdGEgZGlyZWN0bHkgZnJvbSBtZW1vcnkuIEluIGFkZHJlc3Mgc3BhY2UsIHdlIGhhdmUgdHdv IG1lbW9yeQpyZWdpb25zLCBvbmUgYXMgY2FjaGVkLCB0aGUgb3RoZXIgYXMgdW5jYWNoZWQuIFRo dXMsIHdlIGFsc28gbmVlZCBhbgpleHRyYSBQTVAgZW50cnkgdG8gcHJvdGVjdCBPcGVuU0JJIGJs b2IgZnJvbSB0aGUgdW5jYWNoZWQgd2luZG93LiBUbyBkbwp0aGlzLCB3ZSByZXF1aXJlIEZJUk1X QVJFX1BBQ0tFRF9SWFJXLCBvdGhlcndpc2UsIHdlJ2xsIHJ1biBvdXQgb2YgUE1QCmVudHJpZXMu IEN1cnJlbnRseSB3ZSBiYXJlbHkgbWFkZSBpdCB0byBjb3ZlciBldmVyeXRoaW5nIHdpdGggdGhl IHRvdGFsCjggYXZpbGFibGUgUE1QOgoKRm9yIHJvb3QgZG9tYWluIGhhcnRzOgoKIFBNUFswXSBO QVBPVDogUHJvdGVjdCBPcGVuU0JJIGluIGNhY2hlZCBtZW1vcnkgd2luZG93CiBQTVBbMV0gTkFQ T1Q6IFByb3RlY3QgT3BlblNCSSBpbiB1bmNhY2hlZCBtZW1vcnkgd2luZG93CiBQTVBbMl0gTkFQ T1Q6IFByb3RlY3QgQ0xJTlQKIFBNUFszXSBOQVBPVDogRW5hYmxlIGNhY2hlZCBtZW1vcnkgKGRp ZSAxIG9ubHkpCiBQTVBbNF0gTkFQT1Q6IEJsb2NrIFA1NTAgaW50ZXJuYWwgb24gcmVtb3RlIGRp ZQogUE1QWzUtNl0gVE9SOiBCbG9jayBob2xlcyBpbiBtZW1vcnkgcG9ydCBvbiByZW1vdGUgZGll CiBQTVBbN10gTkFQT1Q6IEFsbG93IGV2ZXJ5dGhpbmcKCkVJQzc3MFggYWxzbyBoYXZlIHNldmVy YWwgZmVhdHVyZSBkaXNhYmxlL2VuYWJsZSBDU1JzIGFjY2Vzc2libGUgaW4gTQptb2RlLiBCeSBk ZWZhdWx0IG1hbnkgY29yZSBmZWF0dXJlcyBzdWNoIGFzIHNwZWN1bGF0aW9uIGFuZCBIVyBwcmVm ZXRjaAphcmUgZGlzYWJsZWQsIGFuZCBNIG1vZGUgc29mdHdhcmUgaXMgcmVzcG9uc2libGUgb2Yg ZW5hYmxpbmcuIEhlbmNlLAppbnRyb2R1Y2UgNCBuZXcgYnVpbGQgdGltZSB0dW5hYmxlIHBhcmFt ZXRlcnMgdG8gS2NvbmZpZywgd2hpY2ggcmVmbGVjdHMKdGhlIHZhbHVlcyBnZXQgdXBkYXRlZCB0 byB0aG9zZSBDU1JzOgogLSBFU1dJTl9FSUM3NzBYX0ZFQVQwX0NGRwogLSBFU1dJTl9FSUM3NzBY X0ZFQVQxX0NGRwogLSBFU1dJTl9FSUM3NzBYX0wxX0hXUEZfQ0ZHCiAtIEVTV0lOX0VJQzc3MFhf TDJfSFdQRl9DRkcKClRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgc29tZXdoYXQgb3B0aW1hbCBmb3Ig Z2VuZXJpYyB3b3JrbG9hZHMuIFRoZXkgYXJlCmR1bXBlZCB3aGVuIHJ1bm5pbmcgU2lGaXZlJ3Mg dmVuZG9yIE9wZW5TQkksIGFuZCBpbiBhZGRpdGlvbiwgd2l0aCBteQpvd24gdHVuaW5nIHRvIGFk ZHJlc3MgdGhlIHBlcmYgcmVncmVzc2lvbiByZXBvcnRlZCBieSBkcm1wZWcgWzRdCgpUbyBidWls ZCB0aGUgZmlybXdhcmUrdS1ib290IGJsb2IsIFVzZSB0aGUgZm9sbG93aW5nLCBhbmQgZG9jcyBb NV0gZm9yCnRlc3RpbmcgaXQgd2l0aCBVQVJUIGJvb3Qgd2l0aG91dCBmbGFzaGluZzoKCm1ha2Ug UExBVEZPUk1fREVGQ09ORklHPWVpYzc3MHhfZGVmY29uZmlnIFwKICAgICBGV19URVhUX1NUQVJU PTB4ODAwMDAwMDAgXAogICAgIEZXX1BBWUxPQURfT0ZGU0VUPTB4MjAwMDAwIFwKICAgICBGV19Q QVlMT0FEX1BBVEg9dS1ib290LW5vZHRiLmJpbiBcCiAgICAgRldfUEFZTE9BRF9GRFRfQUREUj0w eGY4MDAwMDAwIFwKICAgICBGV19GRFRfUEFUSD11LWJvb3QuZHRiCgpbMV0gaHR0cHM6Ly9naXRo dWIuY29tL2Vzd2luY29tcHV0aW5nL0VJQzc3MDBYLVNvQy1UZWNobmljYWwtUmVmZXJlbmNlLU1h bnVhbApbMl0gaHR0cHM6Ly93d3cuc2lmaXZlLmNvbS9ib2FyZHMvaGlmaXZlLXByZW1pZXItcDU1 MCNkb2N1bWVudGF0aW9uClszXSBodHRwczovL2dpdGh1Yi5jb20vZ2VlcmxpbmdndXkvc2JjLXJl dmlld3MvaXNzdWVzLzgyCls0XSBodHRwczovL2ZvcnVtcy5zaWZpdmUuY29tL3QvbG93LTEtY29y ZS1zdHJlYW0tYmFuZHdpZHRoLzcyNzQvMTUKWzVdIGh0dHBzOi8vZ2l0aHViLmNvbS9nYW5ib2lu Zy9FSUM3NzB4LURvY3MvYmxvYi9tYWluL3A1NTAvYm9vdGNoYWluL1VBUlQtQm9vdC5tZAoKU2ln bmVkLW9mZi1ieTogQm8gR2FuIDxnYW5ib2luZ0BnbWFpbC5jb20+Ci0tLQogcGxhdGZvcm0vZ2Vu ZXJpYy9LY29uZmlnICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHBsYXRmb3JtL2dlbmVyaWMv Y29uZmlncy9laWM3NzB4X2RlZmNvbmZpZyB8ICAyOCArKwogcGxhdGZvcm0vZ2VuZXJpYy9lc3dp bi9LY29uZmlnICAgICAgICAgICAgIHwgIDI5ICsrCiBwbGF0Zm9ybS9nZW5lcmljL2Vzd2luL2Vp Yzc3MHguYyAgICAgICAgICAgfCAzNjEgKysrKysrKysrKysrKysrKysrKysrCiBwbGF0Zm9ybS9n ZW5lcmljL2Vzd2luL29iamVjdHMubWsgICAgICAgICAgfCAgMTEgKwogcGxhdGZvcm0vZ2VuZXJp Yy9pbmNsdWRlL2Vzd2luL2VpYzc3MHguaCAgIHwgIDY2ICsrKysKIDYgZmlsZXMgY2hhbmdlZCwg NTAxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwbGF0Zm9ybS9nZW5lcmljL2Nv bmZpZ3MvZWljNzcweF9kZWZjb25maWcKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwbGF0Zm9ybS9nZW5l cmljL2Vzd2luL0tjb25maWcKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwbGF0Zm9ybS9nZW5lcmljL2Vz d2luL2VpYzc3MHguYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHBsYXRmb3JtL2dlbmVyaWMvZXN3aW4v b2JqZWN0cy5tawogY3JlYXRlIG1vZGUgMTAwNjQ0IHBsYXRmb3JtL2dlbmVyaWMvaW5jbHVkZS9l c3dpbi9laWM3NzB4LmgKCmRpZmYgLS1naXQgYS9wbGF0Zm9ybS9nZW5lcmljL0tjb25maWcgYi9w bGF0Zm9ybS9nZW5lcmljL0tjb25maWcKaW5kZXggYWVkYzU5YTUuLmFkZmZkNWM5IDEwMDY0NAot LS0gYS9wbGF0Zm9ybS9nZW5lcmljL0tjb25maWcKKysrIGIvcGxhdGZvcm0vZ2VuZXJpYy9LY29u ZmlnCkBAIC04OCw3ICs4OCwxMyBAQCBjb25maWcgUExBVEZPUk1fU1BBQ0VNSVRfSzEKIAlzZWxl Y3QgRkRUX0hTTV9TUEFDRU1JVAogCWRlZmF1bHQgbgogCitjb25maWcgUExBVEZPUk1fRVNXSU5f RUlDNzcwWAorCWJvb2wgIkVTV0lOIEVJQzc3MFggc3VwcG9ydCIKKwlkZXBlbmRzIG9uIEZJUk1X QVJFX1BBQ0tFRF9SWFJXCisJZGVmYXVsdCBuCisKIHNvdXJjZSAiJChPUEVOU0JJX1NSQ19ESVIp L3BsYXRmb3JtL2dlbmVyaWMvYW5kZXMvS2NvbmZpZyIKK3NvdXJjZSAiJChPUEVOU0JJX1NSQ19E SVIpL3BsYXRmb3JtL2dlbmVyaWMvZXN3aW4vS2NvbmZpZyIKIHNvdXJjZSAiJChPUEVOU0JJX1NS Q19ESVIpL3BsYXRmb3JtL2dlbmVyaWMvdGhlYWQvS2NvbmZpZyIKIAogZW5kaWYKZGlmZiAtLWdp dCBhL3BsYXRmb3JtL2dlbmVyaWMvY29uZmlncy9laWM3NzB4X2RlZmNvbmZpZyBiL3BsYXRmb3Jt L2dlbmVyaWMvY29uZmlncy9laWM3NzB4X2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMC4uZjMzNzc4YzkKLS0tIC9kZXYvbnVsbAorKysgYi9wbGF0Zm9ybS9nZW5l cmljL2NvbmZpZ3MvZWljNzcweF9kZWZjb25maWcKQEAgLTAsMCArMSwyOCBAQAorQ09ORklHX1BM QVRGT1JNX0VTV0lOX0VJQzc3MFg9eQorQ09ORklHX0ZJUk1XQVJFX1BBQ0tFRF9SWFJXPXkKK0NP TkZJR19GRFRfQ0FDSEU9eQorQ09ORklHX0ZEVF9DQUNIRV9TSUZJVkVfQ0NBQ0hFPXkKK0NPTkZJ R19GRFRfQ1BQQz15CitDT05GSUdfRkRUX0NQUENfUlBNST15CitDT05GSUdfRkRUX0hTTT15CitD T05GSUdfRkRUX0hTTV9SUE1JPXkKK0NPTkZJR19GRFRfSVBJPXkKK0NPTkZJR19GRFRfSVBJX01T V0k9eQorQ09ORklHX0ZEVF9JUlFDSElQPXkKK0NPTkZJR19GRFRfSVJRQ0hJUF9QTElDPXkKK0NP TkZJR19GRFRfTUFJTEJPWD15CitDT05GSUdfUlBNSV9NQUlMQk9YPXkKK0NPTkZJR19GRFRfTUFJ TEJPWF9SUE1JX1NITUVNPXkKK0NPTkZJR19GRFRfU0VSSUFMPXkKK0NPTkZJR19GRFRfU0VSSUFM X1VBUlQ4MjUwPXkKK0NPTkZJR19GRFRfU1VTUEVORD15CitDT05GSUdfRkRUX1NVU1BFTkRfUlBN ST15CitDT05GSUdfRkRUX1RJTUVSPXkKK0NPTkZJR19GRFRfVElNRVJfTVRJTUVSPXkKK0NPTkZJ R19GRFRfTVBYWT15CitDT05GSUdfRkRUX01QWFlfUlBNSV9NQk9YPXkKK0NPTkZJR19GRFRfTVBY WV9SUE1JX0NMT0NLPXkKK0NPTkZJR19GRFRfTVBYWV9SUE1JX1ZPTFRBR0U9eQorQ09ORklHX0ZE VF9NUFhZX1JQTUlfREVWSUNFX1BPV0VSPXkKK0NPTkZJR19GRFRfTVBYWV9SUE1JX1BFUkZPUk1B TkNFPXkKK0NPTkZJR19GRFRfTVBYWV9SUE1JX1NZU01TST15CmRpZmYgLS1naXQgYS9wbGF0Zm9y bS9nZW5lcmljL2Vzd2luL0tjb25maWcgYi9wbGF0Zm9ybS9nZW5lcmljL2Vzd2luL0tjb25maWcK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjg0ZDBmNDNhCi0tLSAvZGV2L251 bGwKKysrIGIvcGxhdGZvcm0vZ2VuZXJpYy9lc3dpbi9LY29uZmlnCkBAIC0wLDAgKzEsMjkgQEAK KyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZQorCitjb25maWcgRVNXSU5f RUlDNzcwWF9GRUFUMF9DRkcKKwlpbnQgIkVTV0lOIEVJQzc3MDBYIEZlYXR1cmUgRGlzYWJsZSAw IENTUiBDb25maWd1cmF0aW9uIgorCWRlZmF1bHQgMHg0MDAwCisJaGVscAorCSBDU1IgVmFsdWUg dG8gaW5pdGlhbGl6ZSBFSUM3NzBYX0ZFQVQwICgweDdjMSkgd2l0aC4KKwkgUmVmZXIgdG8gRUlD NzcwWCBTb0MgVFJNIGZvciByZWNvbW1lbmRhdGlvbnMuCisKK2NvbmZpZyBFU1dJTl9FSUM3NzBY X0ZFQVQxX0NGRworCWludCAiRVNXSU4gRUlDNzcwMFggRmVhdHVyZSBEaXNhYmxlIDEgQ1NSIENv bmZpZ3VyYXRpb24iCisJZGVmYXVsdCAweDgwCisJaGVscAorCSBDU1IgVmFsdWUgdG8gaW5pdGlh bGl6ZSBFSUM3NzBYX0ZFQVQxICgweDdjMikgd2l0aC4KKwkgUmVmZXIgdG8gRUlDNzcwWCBTb0Mg VFJNIGZvciByZWNvbW1lbmRhdGlvbnMuCisKK2NvbmZpZyBFU1dJTl9FSUM3NzBYX0wxX0hXUEZf Q0ZHCisJaW50ICJFU1dJTiBFSUM3NzAwWCBMMSBIVyBQcmVmZXRjaGVyIENTUiBDb25maWd1cmF0 aW9uIgorCWRlZmF1bHQgMHgxMDA1YzFiZTY0OQorCWhlbHAKKwkgQ1NSIFZhbHVlIHRvIGluaXRp YWxpemUgRUlDNzcwWF9MMV9IV1BGICgweDdjMykgd2l0aC4KKwkgUmVmZXIgdG8gRUlDNzcwWCBT b0MgVFJNIGZvciByZWNvbW1lbmRhdGlvbnMuCisKK2NvbmZpZyBFU1dJTl9FSUM3NzBYX0wyX0hX UEZfQ0ZHCisJaW50ICJFU1dJTiBFSUM3NzAwWCBMMiBIVyBQcmVmZXRjaGVyIENTUiBDb25maWd1 cmF0aW9uIgorCWRlZmF1bHQgMHg5MjlmCisJaGVscAorCSBDU1IgVmFsdWUgdG8gaW5pdGlhbGl6 ZSBFSUM3NzBYX0wyX0hXUEYgKDB4N2M0KSB3aXRoLgorCSBSZWZlciB0byBFSUM3NzBYIFNvQyBU Uk0gZm9yIHJlY29tbWVuZGF0aW9ucy4KZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvZXN3 aW4vZWljNzcweC5jIGIvcGxhdGZvcm0vZ2VuZXJpYy9lc3dpbi9laWM3NzB4LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmJlODg5NGFkCi0tLSAvZGV2L251bGwKKysrIGIv cGxhdGZvcm0vZ2VuZXJpYy9lc3dpbi9laWM3NzB4LmMKQEAgLTAsMCArMSwzNjEgQEAKKy8qCisg KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlCisgKgorICogQXV0aG9yczoK KyAqICAgQm8gR2FuIDxnYW5ib2luZ0BnbWFpbC5jb20+CisgKgorICovCisKKyNpbmNsdWRlIDxw bGF0Zm9ybV9vdmVycmlkZS5oPgorI2luY2x1ZGUgPHNiaS9yaXNjdl9pby5oPgorI2luY2x1ZGUg PHNiaS9zYmlfY29uc29sZS5oPgorI2luY2x1ZGUgPHNiaS9zYmlfc3lzdGVtLmg+CisjaW5jbHVk ZSA8c2JpL3NiaV9tYXRoLmg+CisjaW5jbHVkZSA8ZXN3aW4vZWljNzcweC5oPgorCitzdGF0aWMg aW50IGVpYzc3MHhfc3lzdGVtX3Jlc2V0X2NoZWNrKHUzMiB0eXBlLCB1MzIgcmVhc29uKQorewor CXN3aXRjaCAodHlwZSkgeworCWNhc2UgU0JJX1NSU1RfUkVTRVRfVFlQRV9DT0xEX1JFQk9PVDoK KwljYXNlIFNCSV9TUlNUX1JFU0VUX1RZUEVfV0FSTV9SRUJPT1Q6CisJCXJldHVybiAxOworCWRl ZmF1bHQ6CisJCXJldHVybiAwOworCX0KK30KKworc3RhdGljIHZvaWQgZWljNzcweF9zeXN0ZW1f cmVzZXQodTMyIHR5cGUsIHUzMiByZWFzb24pCit7CisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBT QklfU1JTVF9SRVNFVF9UWVBFX0NPTERfUkVCT09UOgorCWNhc2UgU0JJX1NSU1RfUkVTRVRfVFlQ RV9XQVJNX1JFQk9PVDoKKwkJd3JpdGVsKEVJQzc3MFhfU1lTQ1JHX1JTVF9WQUwsICh2b2lkICop RUlDNzcwWF9TWVNDUkdfUlNUKTsKKwl9CisKKwlzYmlfcHJpbnRmKCIlczogVW5hYmxlIHRvIHJl c2V0IHN5c3RlbVxuIiwgX19mdW5jX18pOworCXNiaV9oYXJ0X2hhbmcoKTsKK30KKworc3RhdGlj IHN0cnVjdCBzYmlfc3lzdGVtX3Jlc2V0X2RldmljZSBlaWM3NzB4X3Jlc2V0ID0geworCS5uYW1l ID0gImVpYzc3MHhfcmVzZXQiLAorCS5zeXN0ZW1fcmVzZXRfY2hlY2sgPSBlaWM3NzB4X3N5c3Rl bV9yZXNldF9jaGVjaywKKwkuc3lzdGVtX3Jlc2V0ID0gZWljNzcweF9zeXN0ZW1fcmVzZXQKK307 CisKK3N0YXRpYyBpbnQgZXN3aW5fZWljNzcwMF9lYXJseV9pbml0KGJvb2wgY29sZF9ib290KQor eworCWlmICghY29sZF9ib290KQorCQlyZXR1cm4gZ2VuZXJpY19lYXJseV9pbml0KGNvbGRfYm9v dCk7CisKKwkvKiBFbmFibGUgYnVzIGJsb2NrZXIgKi8KKwl3cml0ZWwoMSwgKHZvaWQqKUVJQzc3 MFhfVEw2NEQyRF9PVVQpOworCXdyaXRlbCgxLCAodm9pZCopRUlDNzcwWF9UTDI1NkQyRF9PVVQp OworCXdyaXRlbCgxLCAodm9pZCopRUlDNzcwWF9UTDI1NkQyRF9JTik7CisJYXNtIHZvbGF0aWxl ICgiZmVuY2UgbywgcnciKTsKKworCXJldHVybiBnZW5lcmljX2Vhcmx5X2luaXQoY29sZF9ib290 KTsKK30KKworLyoqCisgKiBFSUM3NzAwIHNwZWNpYWwgYXJyYW5nZW1lbnQgb2YgUE1QIGVudHJp ZXM6CisgKgorICogV2UgaGF2ZSB0byB1c2UgZXh0cmEgUE1QcyB0byBibG9jayBNZW1vcnkgUG9y dCByZWdpb25zIHRoYXQgZG9lc24ndAorICogYmVsb25nIHRvIHRoZSBjdXJyZW50IGhhcnQncyBk aWUgaW4gb3JkZXIgdG8gcHJldmVudCBzcGVjdWxhdGl2ZQorICogYWNjZXNzZXMgb3IgSFcgcHJl ZmV0Y2hlciAocGVyaGFwcz8pIGZyb20gZ2VuZXJhdGluZyBidXMgZXJyb3I6CisgKgorICogCWJ1 cyBlcnJvciBvZiBjYXVzZSBldmVudDogOSwgYWNjcnVlZDogMHgyMjAsCisgKglwaHlzaWNhbCBh ZGRyZXNzOiAweDI0ZmZmZmZmYTAKKyAqCisgKiBUaGUgZXh0cmEgUE1QcyBuZWVkIExPQ0sgYml0 IHRvIGJlIHNldCBpbiBvcmRlciB0byBiZSBlZmZlY3RpdmUKKyAqIGluIE0gbW9kZSBhcyB3ZWxs LgorICoKKyAqIFdlIGFsc28gaGF2ZSB0byB0byB1c2UgMSBleHRyYSBQTVAgdG8gcHJvdGVjdCBP cGVuU0JJIGluIHVuY2FjaGVkCisgKiBtZW1vcnkuIEVJQzc3MFggbWFwcyBtYWluIG1lbW9yeSAo RFJBTSkgdHdpY2UgLS0gb25lIGluIG1lbW9yeQorICogcG9ydCAoY2FjaGVkKSwgdGhlIG90aGVy IGluIHN5c3RlbSBwb3J0ICh1bmNhY2hlZCkuIFA1NTAgZG9lc24ndAorICogc3VwcG9ydCBTdnBi bXQsIHNvIEVJQzc3MFggdXNlIHRoZSB1bmNhY2hlZCB3aW5kb3cgdG8gaGFuZGxlIERNQQorICog dGhhdCBhcmUgY2FjaGUgaW5jb2hlcmVudCAtLSBwcmV0dHkgbXVjaCBhbGwgcGVyaXBoZXJhbHMK KyAqCisgKiBFSUM3NzBYIG1lbW9yeSBwb3J0IG1hcDoKKyAqIFA1NTAgSW50ZXJuYWwKKyAqICAg 4pSc4pSAIDB4MDBfMDAwMF8wMDAwIC0gMHgwMF8yMDAwXzAwMDAgZGllIDAgaW50ZXJuYWwKKyAq ICAg4pSU4pSAIDB4MDBfMjAwMF8wMDAwIC0gMHgwMF80MDAwXzAwMDAgZGllIDEgaW50ZXJuYWwK KyAqIFN5c3RlbSBQb3J0IDAKKyAqICAg4pSc4pSAIDB4MDBfNDAwMF8wMDAwIC0gMHgwMF82MDAw XzAwMDAgZGllIDAgbG93IE1NSU8KKyAqICAg4pSU4pSAIDB4MDBfNjAwMF8wMDAwIC0gMHgwMF84 MDAwXzAwMDAgZGllIDEgbG93IE1NSU8KKyAqIE1lbW9yeSBQb3J0CisgKiAgIOKUnOKUgCAweDAw XzgwMDBfMDAwMCAtIDB4MTBfODAwMF8wMDAwIGRpZSAwIG1lbW9yeSAoY2FjaGVkKQorICogICDi lJzilIAgMHgyMF8wMDAwXzAwMDAgLSAweDMwXzAwMDBfMDAwMCBkaWUgMSBtZW1vcnkgKGNhY2hl ZCkKKyAqICAg4pSU4pSAIDB4NDBfMDAwMF8wMDAwIC0gMHg2MF8wMDAwXzAwMDAgaW50ZXJsZWF2 ZWQgbWVtb3J5IChjYWNoZWQpCisgKiBTeXN0ZW0gUG9ydCAxCisgKiAgIOKUnOKUgCAweDgwXzAw MDBfMDAwMCAtIDB4YTBfMDAwMF8wMDAwIGRpZSAwIGhpZ2ggTU1JTworICogICDilJzilIAgMHhh MF8wMDAwXzAwMDAgLSAweGMwXzAwMDBfMDAwMCBkaWUgMSBoaWdoIE1NSU8KKyAqICAg4pSc4pSA IDB4YzBfMDAwMF8wMDAwIC0gMHhkMF8wMDAwXzAwMDAgZGllIDAgbWVtb3J5ICh1bmNhY2hlZCkK KyAqICAg4pSc4pSAIDB4ZTBfMDAwMF8wMDAwIC0gMHhmMF8wMDAwXzAwMDAgZGllIDEgbWVtb3J5 ICh1bmNhY2hlZCkKKyAqICAg4pSc4pSAIDB4MTAwXzAwMDBfMDAwMCAtIDB4MTIwXzAwMDBfMDAw MCBpbnRlcmxlYXZlZCBtZW1vcnkgKHVuY2FjaGVkKQorICogICDilJTilIAgLi4uCisgKgorICog UmVmZXIgdG8gY29tbWVudCBiZWxvdyBmb3IgUE1QIGVudHJpZXMgc2V0dXAgaW4gZGlmZmVyZW50 IHNjZW5hcmlvczoKKyAqLworc3RhdGljIGludCBlc3dpbl9laWM3NzAwX2ZpbmFsX2luaXQoYm9v bCBjb2xkX2Jvb3QpCit7CisJc3RydWN0IHNiaV9zY3JhdGNoICpzY3JhdGNoID0gc2JpX3NjcmF0 Y2hfdGhpc2hhcnRfcHRyKCk7CisJc3RydWN0IHNiaV9kb21haW5fbWVtcmVnaW9uIGZ3X21lbXJl ZzsKKwlpbnQgcmM7CisKKwlpZiAoY29sZF9ib290KQorCQlzYmlfc3lzdGVtX3Jlc2V0X2FkZF9k ZXZpY2UoJmVpYzc3MHhfcmVzZXQpOworCisJLyoqCisJICogRG8gZ2VuZXJpY19maW5hbF9pbml0 IHN0dWZmIGZpcnN0LCBiZWNhdXNlIGl0IHRvdWNocyBGRFQuCisJICogVGhlIFBNUHMgYmxvY2tp bmcgbWVtb3J5IHJlZ2lvbnMgaGF2ZSBMT0NLIGJpdCBzZXQsIHNvCisJICogYmVmb3JlIHBtcF9j b25maWd1cmUsIHdlIGNhbid0IGFjY2VzcyBtZW1vcnkgb3V0c2lkZSBvZgorCSAqIFtmd19zdGFy dCwgZndfc3RhcnQgKyBmd19zaXplKS4gVGhlIEZEVCBjb3VsZCB2ZXJ5IHdlbGwKKwkgKiByZXNp ZGUgb3V0c2lkZSBvZiBmaXJtd2FyZSByZWdpb24uCisJICovCisJcmMgPSBnZW5lcmljX2ZpbmFs X2luaXQoY29sZF9ib290KTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKKworCXNiaV9kb21haW5f bWVtcmVnaW9uX2luaXQoc2NyYXRjaC0+Zndfc3RhcnQsIHNjcmF0Y2gtPmZ3X3NpemUsCisJCQkJ ICAoU0JJX0RPTUFJTl9NRU1SRUdJT05fTV9SRUFEQUJMRSB8CisJCQkJICAgU0JJX0RPTUFJTl9N RU1SRUdJT05fTV9XUklUQUJMRSB8CisJCQkJICAgU0JJX0RPTUFJTl9NRU1SRUdJT05fTV9FWEVD VVRBQkxFIHwKKwkJCQkgICBTQklfRE9NQUlOX01FTVJFR0lPTl9GVyksICZmd19tZW1yZWcpOwor CisJcG1wX3NldCgwLCAwLCBmd19tZW1yZWcuYmFzZSwgZndfbWVtcmVnLm9yZGVyKTsKKwlwbXBf c2V0KDEsIDAsIEVJQzc3MFhfVE9fVU5DQUNIRUQoZndfbWVtcmVnLmJhc2UpLCBmd19tZW1yZWcu b3JkZXIpOworCisjZGVmaW5lIFBNUF9GUkVFX1NUQVJUIDIKKyNkZWZpbmUgUE1QX0ZSRUVfQ09V TlQgMgorI2RlZmluZSBQTVBfTEFTVCA3CisJaWYgKGN1cnJlbnRfaGFydF9kaWUoKSkgeworCQkv KioKKwkJICogRGllIDE6CisJCSAqCisJCSAqICBQTVBbMF0gTkFQT1Q6IFByb3RlY3QgT3BlblNC SSBpbiBjYWNoZWQgbWVtb3J5CisJCSAqICBQTVBbMV0gTkFQT1Q6IFByb3RlY3QgT3BlblNCSSBp biB1bmNhY2hlZCBtZW1vcnkKKwkJICogIFBNUFsyLTNdICAgIDogRnJlZQorCQkgKiAgUE1QWzRd IE5BUE9UOiBEaXNhbGxvdyBkaWUgMCBQNTUwIGludGVybmFsCisJCSAqICBQTVBbNS02XSBUT1I6 IERpc2FsbG93IG1lbW9yeSBwb3J0CisJCSAqICBQTVBbN10gTkFQT1Q6IE1hdGNoIGFsbCAob3B0 aW9uYWwpCisJCSAqLworCQlwbXBfc2V0KDQsIFBNUF9MLCBFSUM3NzBYX1A1NTBJTlRfQkFTRSgw KSwKKwkJICAgICAgbG9nMnJvdW5kdXAoRUlDNzcwWF9QNTUwSU5UX1NJWkUpKTsKKwkJX19wbXBf c2V0X3Rvcig2LCBQTVBfTCwgRUlDNzcwWF9NRU1QT1JUX0JBU0UsCisJCQkJCUVJQzc3MFhfTUVN UE9SVF9TSVpFKTsKKwl9IGVsc2UgeworCQkvKioKKwkJICogRGllIDA6CisJCSAqCisJCSAqICBQ TVBbMF0gTkFQT1Q6IFByb3RlY3QgT3BlblNCSSBpbiBjYWNoZWQgbWVtb3J5CisJCSAqICBQTVBb MV0gTkFQT1Q6IFByb3RlY3QgT3BlblNCSSBpbiB1bmNhY2hlZCBtZW1vcnkKKwkJICogIFBNUFsy LTNdICAgIDogRnJlZQorCQkgKiAgUE1QWzRdIE5BUE9UOiBEaXNhbGxvdyBkaWUgMSBQNTUwIGlu dGVybmFsCisJCSAqICBQTVBbNS02XSBUT1I6IERpc2FsbG93IG1lbW9yeSBwb3J0IGV4Y2VwdCBk aWUgMCBjYWNoZWQKKwkJICogIFBNUFs3XSBOQVBPVDogTWF0Y2ggYWxsIChvcHRpb25hbCkKKwkJ ICovCisJCXBtcF9zZXQoNCwgUE1QX0wsIEVJQzc3MFhfUDU1MElOVF9CQVNFKDEpLAorCQkgICAg ICBsb2cycm91bmR1cChFSUM3NzBYX1A1NTBJTlRfU0laRSkpOworCQlfX3BtcF9zZXRfdG9yKDYs IFBNUF9MLAorCQkJICAgICAgRUlDNzcwWF9EMF9NRU1fQkFTRSArIEVJQzc3MFhfRDBfTUVNX1NJ WkUsCisJCQkgICAgICBFSUM3NzBYX01FTVBPUlRfU0laRSAtIEVJQzc3MFhfRDBfTUVNX1NJWkUp OworCX0KKwkvKioKKwkgKiBUaGVzZSBtdXN0IGNvbWUgYWZ0ZXIgdGhlIHNldHVwIG9mIFBNUCwg YXMgd2UgYXJlIGFib3V0IHRvCisJICogZW5hYmxlIHNwZWN1bGF0aW9uIGFuZCBIVyBwcmVmZXRj aGVyIGJpdHMKKwkgKi8KKwljc3Jfd3JpdGUoRUlDNzcwWF9DU1JfRkVBVDAsIENPTkZJR19FU1dJ Tl9FSUM3NzBYX0ZFQVQwX0NGRyk7CisJY3NyX3dyaXRlKEVJQzc3MFhfQ1NSX0ZFQVQxLCBDT05G SUdfRVNXSU5fRUlDNzcwWF9GRUFUMV9DRkcpOworCWNzcl93cml0ZShFSUM3NzBYX0NTUl9MMV9I V1BGLCBDT05GSUdfRVNXSU5fRUlDNzcwWF9MMV9IV1BGX0NGRyk7CisJY3NyX3dyaXRlKEVJQzc3 MFhfQ1NSX0wyX0hXUEYsIENPTkZJR19FU1dJTl9FSUM3NzBYX0wyX0hXUEZfQ0ZHKTsKKworCXJl dHVybiAwOworfQorCisvKioKKyAqIENoZWNrIGlmIG1lbXJlZ2lvbiBBIHN1cGVyc2VkZXMgQiwg b3IgdmljZSB2ZXJzYS4gSXQgaGVscHMgdG8gc2F2ZQorICogcHJlY2lvdXMgUE1QIGVudHJpZXMu IFRoZSBwb2xpY3kgaXMgYXMgZm9sbG93cyAoZ2l2ZW4gQS9CIGNvbnRhaW5zCisgKiBlYWNoIG90 aGVyKS4gSWYgQSBpcyBzdXBlcnNldCBvZiBCLCB0aGVuIEIgaXMgdXNlbGVzcyAoUE1QIEEgd2ls bAorICogbWF0Y2ggYmVmb3JlIEIpIEVsc2UsIEIgaXMgYSBzdHJpY3Qgc3VwZXIgc2V0IG9mIEE6 CisgKgorICogIEZpcnN0IG5vcm1hbGl6ZSBwZXJtaXNzaW9ucyBvbiBNL1NVIGJhc2VkIG9uIEVO Rl9QRVJNSVNTSU9OUywgdGhlbgorICogIGNoZWNrIGlmIGJvdGggTSBhbmQgU1UgcGVybWlzc2lv biBhcmUgZXhhY3RseSB0aGUgc2FtZS4gT25seSB0aGVuCisgKiAgY2FuIHdlIHNheSBCIHN1cGVy c2VkZXMgQS4gV2UgbWFrZSBvbmUgcmVsYXhhdGlvbiB0aGF0IHdlIHRyZWF0IEEKKyAqICBhcyBo YXZpbmcgU1UgRXhlY3V0YWJsZSAoWCkgaWYgQSBoYXMgU1VSVyBhbmQgQiBoYXMgU1VSV1guIFdl CisgKiAgYXNzdW1lIFMtbW9kZSBPUyBkb2VzIGl0cyBqb2IgYnkgZW5mb3JjaW5nIHdpdGggcGFn ZS10YWJsZXMuCisgKiAgVGhpcydsbCBnZXQgdXMgbW9yZSBzYXZpbmdzLgorICoKKyAqIFJldHVy bnM6ID4wOiBBIHN1cGVyc2VkZXMgQiwgPDA6IEIgc3VwZXJzZWRlcyBBLCA9PTA6IG5laXRoZXIK KyAqLworc3RhdGljIGludCBlc3dpbl9laWM3NzB4X21lbXJlZ19zdXBlcnNlZGVkKHN0cnVjdCBz YmlfZG9tYWluX21lbXJlZ2lvbiAqYSwKKwkJCQkJICAgIHN0cnVjdCBzYmlfZG9tYWluX21lbXJl Z2lvbiAqYikKK3sKKwl1bnNpZ25lZCBsb25nCisJCW1mbGFnc19hID0gKGEtPmZsYWdzICYgU0JJ X0RPTUFJTl9NRU1SRUdJT05fRU5GX1BFUk1JU1NJT05TKSA/CisJCQkgICAgYS0+ZmxhZ3MgJiBT QklfRE9NQUlOX01FTVJFR0lPTl9NX0FDQ0VTU19NQVNLIDoKKwkJCSAgICBTQklfRE9NQUlOX01F TVJFR0lPTl9NX1JXWCwKKwkJbWZsYWdzX2IgPSAoYi0+ZmxhZ3MgJiBTQklfRE9NQUlOX01FTVJF R0lPTl9FTkZfUEVSTUlTU0lPTlMpID8KKwkJCSAgICBiLT5mbGFncyAmIFNCSV9ET01BSU5fTUVN UkVHSU9OX01fQUNDRVNTX01BU0sgOgorCQkJICAgIFNCSV9ET01BSU5fTUVNUkVHSU9OX01fUldY LAorCQlzdWZsYWdzX2EgPSBhLT5mbGFncyAmIFNCSV9ET01BSU5fTUVNUkVHSU9OX1NVX0FDQ0VT U19NQVNLLAorCQlzdWZsYWdzX2IgPSBiLT5mbGFncyAmIFNCSV9ET01BSU5fTUVNUkVHSU9OX1NV X0FDQ0VTU19NQVNLOworCisJaWYgKGEtPm9yZGVyID49IGItPm9yZGVyKQorCQlyZXR1cm4gMTsK KworCWlmIChtZmxhZ3NfYSAhPSBtZmxhZ3NfYikKKwkJcmV0dXJuIDA7CisKKwlpZiAoc3VmbGFn c19hID09IHN1ZmxhZ3NfYiB8fAorCSAgIChzdWZsYWdzX2EgfCBTQklfRE9NQUlOX01FTVJFR0lP Tl9TVV9FWEVDVVRBQkxFKSA9PSBzdWZsYWdzX2IpCisJCXJldHVybiAtMTsKKworCXJldHVybiAw OworfQorCisvKiBSZXR1cm5zIGEgYml0bWFzayBvZiBtZW1yZWdpb25zIHN1cGVyc2VkZWQgYW5k IHNraXBwZWQgKi8KK3N0YXRpYyB1aW50NjRfdCBlc3dpbl9laWM3NzB4X21lbXJlZ19jb25zb2xp ZGF0ZShzdHJ1Y3Qgc2JpX2RvbWFpbiAqZG9tKQoreworCXN0cnVjdCBzYmlfZG9tYWluX21lbXJl Z2lvbiAqcmVnYSwgKnJlZ2I7CisJdWludDY0X3Qgc2tpcHBlZCA9IDA7CisJdW5zaWduZWQgaSwg ajsKKwlpbnQgcmM7CisKKwkvKiBJZ25vcmUgYWxsIEZJUk1XQVJFIHJlZ2lvbnMgKGhhbmRsZWQg c2VwYXJhdGVseSkgKi8KKwlzYmlfZG9tYWluX2Zvcl9lYWNoX21lbXJlZ2lvbl9pZHgoZG9tLCBy ZWdhLCBpKSB7CisJCWlmIChTQklfRE9NQUlOX01FTVJFR0lPTl9JU19GSVJNV0FSRShyZWdhLT5m bGFncykpCisJCQlza2lwcGVkIHw9IEJJVChpKTsKKwl9CisKKwlzYmlfZG9tYWluX2Zvcl9lYWNo X21lbXJlZ2lvbl9pZHgoZG9tLCByZWdhLCBpKSB7CisJCWlmIChza2lwcGVkICYgQklUKGkpKQor CQkJY29udGludWU7CisKKwkJc2JpX2RvbWFpbl9mb3JfZWFjaF9tZW1yZWdpb25faWR4KGRvbSwg cmVnYiwgaikgeworCQkJaWYgKGogPD0gaSB8fCAoc2tpcHBlZCAmIEJJVChqKSkpCisJCQkJY29u dGludWU7CisKKwkJCWlmIChzYmlfZG9tYWluX21lbXJlZ2lvbl9kaXNqb2ludChyZWdhLCByZWdi KSkKKwkJCQljb250aW51ZTsKKwkJCS8qKgorCQkJICogTm93IEEgYW5kIEIgbXVzdCBmdWxseSBj b250YWluIGVhY2ggb3RoZXIKKwkJCSAqIG9yIHRoZXkgYXJlIGV4YWN0bHkgdGhlIHNhbWUgcmFu Z2UuIENoZWNrCisJCQkgKiBpZiBvbmUgY2FuIHN1cGVyc2VkZSB0aGUgb3RoZXIuIElmIG5vdCwK KwkJCSAqIHdlIG11c3QgYnJlYWsgZnV0aGVyIHByb2Nlc3NpbmcuIEluIGVzc2Vuc2UKKwkJCSAq IGl0J3MgbG9naWNhbGx5IHdyb25nIHRvIGNvbXBhcmUgdHdvIHJlZ2lvbnMKKwkJCSAqIHdoZW4g dGhlcmUncyBhIHRoaXJkIHJlZ2lvbiBpbiBiZXR3ZWVuIHRoYXQKKwkJCSAqIGFsc28gY292ZXJz IHBhcnQgb3IgYWxsIG9mIGVpdGhlciBvZiB0aGVtLgorCQkJICovCisJCQlyYyA9IGVzd2luX2Vp Yzc3MHhfbWVtcmVnX3N1cGVyc2VkZWQocmVnYSwgcmVnYik7CisJCQlpZiAoIXJjKQorCQkJCWJy ZWFrOworCisJCQlpZiAocmMgPiAwKSB7CisJCQkJc2tpcHBlZCB8PSBCSVQoaik7CisJCQkJY29u dGludWU7CisJCQl9CisJCQlza2lwcGVkIHw9IEJJVChpKTsKKwkJCWJyZWFrOworCQl9CisJfQor CisJcmV0dXJuIHNraXBwZWQ7Cit9CisKK3N0YXRpYyBpbnQgZXN3aW5fZWljNzcwMF9wbXBfY29u ZmlndXJlKHVuc2lnbmVkIGludCBwbXBfY291bnQsCisJCQkJCXVuc2lnbmVkIGludCBwbXBfbG9n MmdyYW4sCisJCQkJCXVuc2lnbmVkIGxvbmcgcG1wX2FkZHJfbWF4KQoreworCXN0cnVjdCBzYmlf c2NyYXRjaCAqc2NyYXRjaCA9IHNiaV9zY3JhdGNoX3RoaXNoYXJ0X3B0cigpOworCXN0cnVjdCBz YmlfZG9tYWluICpkb20gPSBzYmlfZG9tYWluX3RoaXNoYXJ0X3B0cigpOworCXN0cnVjdCBzYmlf ZG9tYWluX21lbXJlZ2lvbiB0ZW1wLCAqcmVnOworCXVuc2lnbmVkIGludCBwbXBfaWR4ID0gUE1Q X0ZSRUVfU1RBUlQsCisJCSAgICAgcG1wX21heCA9IHBtcF9pZHggKyBQTVBfRlJFRV9DT1VOVDsK Kwl1bnNpZ25lZCBpbnQgaTsKKwl1aW50NjRfdCBtZW1yZWdfc2tpcHBlZDsKKworCS8qIENoZWNr IGlmIHNvbWUgbWVtcmVnIGNhbiBiZSBzYWZlbHkgaWdub3JlZCAqLworCW1lbXJlZ19za2lwcGVk ID0gZXN3aW5fZWljNzcweF9tZW1yZWdfY29uc29saWRhdGUoZG9tKTsKKworCS8qIFNwZWNpYWwg aGFuZGxpbmcgb2YgbWF0Y2ggYWxsIHJlZ2lvbiBbMCwgLTFdIGlmIHByZXNlbnQgKi8KKwlzYmlf ZG9tYWluX2Zvcl9lYWNoX21lbXJlZ2lvbl9pZHgoZG9tLCByZWcsIGkpIHsKKwkJaWYgKG1lbXJl Z19za2lwcGVkICYgQklUKGkpKQorCQkJY29udGludWU7CisKKwkJaWYgKHJlZy0+b3JkZXIgPj0g X19yaXNjdl94bGVuKSB7CisJCQkvKioKKwkJCSAqIEZvciBkaWUgMSwgd2hlbiB0aGVyZSBpcyBh IG1hdGNoIGFsbCByZWdpb24sCisJCQkgKiBzdWNoIGFzIHRoZSBbMCwgLTFdIGluIHJvb3QgZG9t YWluLCB3ZSBuZWVkCisJCQkgKiB0byB1c2UgUE1QWzNdIHdpdGggTkFQT1QgdG8gcmVlbmFibGUg ZGllIDEKKwkJCSAqIGNhY2hlZCBtZW1vcnkgZnJvbSB0aGUgbWVtb3J5IHBvcnQgcmVnaW9uIHdl CisJCQkgKiBibG9ja2VkIGVhcmxpZXIuIFRoaXMgaXMgbm90IHJlcXVpcmVkIGZvciBkaWUKKwkJ CSAqIDAsIGFzIHdlIGRpZG4ndCBibG9jayBkaWUgMCBjYWNoZWQgbWVtb3J5LCBhcworCQkJICog aXQgaGFwcGVucyB0byBiZSBhdCB0aGUgYm90dG9tIG9mIG1lbW9yeSBwb3J0LAorCQkJICogdGh1 cyBleGNsdWRlZC4KKwkJCSAqLworCQkJaWYgKGN1cnJlbnRfaGFydF9kaWUoKSkKKwkJCQlwbXBf bWF4LS07CisJCQlicmVhazsKKwkJfQorCX0KKworCS8qIEFjdHVhbGx5IHNldCBQTVBzICovCisJ c2JpX2RvbWFpbl9mb3JfZWFjaF9tZW1yZWdpb25faWR4KGRvbSwgcmVnLCBpKSB7CisJCWlmICht ZW1yZWdfc2tpcHBlZCAmIEJJVChpKSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChyZWctPm9yZGVy IDwgX19yaXNjdl94bGVuKSB7CisJCQlpZiAocG1wX2lkeCA+PSBwbXBfbWF4KQorCQkJCWdvdG8g bm9fbW9yZV9wbXA7CisKKwkJCXNiaV9oYXJ0X29sZHBtcF9zZXQoc2NyYXRjaCwgZG9tLCByZWcs IHBtcF9pZHgrKywKKwkJCQkJICAgIHBtcF9sb2cyZ3JhbiwgcG1wX2FkZHJfbWF4KTsKKwkJCWNv bnRpbnVlOworCQl9CisKKwkJaWYgKGN1cnJlbnRfaGFydF9kaWUoKSkgeworCQkJc2JpX2RvbWFp bl9tZW1yZWdpb25faW5pdChFSUM3NzBYX0QxX01FTV9CQVNFLAorCQkJCQkJICBFSUM3NzBYX0Qx X01FTV9TSVpFLAorCQkJCQkJICByZWctPmZsYWdzLCAmdGVtcCk7CisJCQlzYmlfaGFydF9vbGRw bXBfc2V0KHNjcmF0Y2gsIGRvbSwgJnRlbXAsIHBtcF9tYXgsCisJCQkJCSAgICBwbXBfbG9nMmdy YW4sIHBtcF9hZGRyX21heCk7CisJCX0KKwkJc2JpX2hhcnRfb2xkcG1wX3NldChzY3JhdGNoLCBk b20sIHJlZywgUE1QX0xBU1QsCisJCQkJICAgIHBtcF9sb2cyZ3JhbiwgcG1wX2FkZHJfbWF4KTsK KwkJYnJlYWs7CisJfQorCisJcmV0dXJuIDA7Citub19tb3JlX3BtcDoKKwlzYmlfcHJpbnRmKCIl czogaW5zdWZmaWNpZW50IFBNUCBlbnRyaWVzXG4iLCBfX2Z1bmNfXyk7CisJcmV0dXJuIFNCSV9F RkFJTDsKK30KKworc3RhdGljIHZvaWQgZXN3aW5fZWljNzcwMF9wbXBfdW5jb25maWd1cmUodm9p ZCkKK3sKKwlmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgUE1QX0ZSRUVfQ09VTlQ7IGkrKykKKwkJ cG1wX2Rpc2FibGUoaSArIFBNUF9GUkVFX1NUQVJUKTsKKworCXBtcF9kaXNhYmxlKFBNUF9MQVNU KTsKK30KKworc3RhdGljIGludCBlc3dpbl9laWM3NzAwX3BsYXRmb3JtX2luaXQoY29uc3Qgdm9p ZCAqZmR0LCBpbnQgbm9kZW9mZiwKKwkJCQkJY29uc3Qgc3RydWN0IGZkdF9tYXRjaCAqbWF0Y2gp Cit7CisJZ2VuZXJpY19wbGF0Zm9ybV9vcHMuZWFybHlfaW5pdCA9IGVzd2luX2VpYzc3MDBfZWFy bHlfaW5pdDsKKwlnZW5lcmljX3BsYXRmb3JtX29wcy5maW5hbF9pbml0ID0gZXN3aW5fZWljNzcw MF9maW5hbF9pbml0OworCWdlbmVyaWNfcGxhdGZvcm1fb3BzLnBtcF9jb25maWd1cmUgPSBlc3dp bl9laWM3NzAwX3BtcF9jb25maWd1cmU7CisJZ2VuZXJpY19wbGF0Zm9ybV9vcHMucG1wX3VuY29u ZmlndXJlID0gZXN3aW5fZWljNzcwMF9wbXBfdW5jb25maWd1cmU7CisKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBmZHRfbWF0Y2ggZXN3aW5fZWljNzcwMF9tYXRjaFtdID0g eworCXsgLmNvbXBhdGlibGUgPSAiZXN3aW4sZWljNzcwMCIgfSwKKwl7IH0sCit9OworCitjb25z dCBzdHJ1Y3QgZmR0X2RyaXZlciBlc3dpbl9laWM3NzAwID0geworCS5tYXRjaF90YWJsZSA9IGVz d2luX2VpYzc3MDBfbWF0Y2gsCisJLmluaXQgPSBlc3dpbl9laWM3NzAwX3BsYXRmb3JtX2luaXQs Cit9OwpkaWZmIC0tZ2l0IGEvcGxhdGZvcm0vZ2VuZXJpYy9lc3dpbi9vYmplY3RzLm1rIGIvcGxh dGZvcm0vZ2VuZXJpYy9lc3dpbi9vYmplY3RzLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwLi42OTQyYTEwNwotLS0gL2Rldi9udWxsCisrKyBiL3BsYXRmb3JtL2dlbmVyaWMv ZXN3aW4vb2JqZWN0cy5tawpAQCAtMCwwICsxLDExIEBACisjCisjIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDI1IEJvIEdhbiA8Z2Fu Ym9pbmdAZ21haWwuY29tPgorIworCitjYXJyYXktcGxhdGZvcm1fb3ZlcnJpZGVfbW9kdWxlcy0k KENPTkZJR19QTEFURk9STV9FU1dJTl9FSUM3NzBYKSArPSBlc3dpbl9laWM3NzAwCitwbGF0Zm9y bS1vYmpzLSQoQ09ORklHX1BMQVRGT1JNX0VTV0lOX0VJQzc3MFgpICs9IGVzd2luL2VpYzc3MHgu bworCitGV19QQVlMT0FEPXkKK0ZXX1BBWUxPQURfT0ZGU0VUPTB4MjAwMDAwCmRpZmYgLS1naXQg YS9wbGF0Zm9ybS9nZW5lcmljL2luY2x1ZGUvZXN3aW4vZWljNzcweC5oIGIvcGxhdGZvcm0vZ2Vu ZXJpYy9pbmNsdWRlL2Vzd2luL2VpYzc3MHguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMC4uNGViNjE1NDYKLS0tIC9kZXYvbnVsbAorKysgYi9wbGF0Zm9ybS9nZW5lcmljL2lu Y2x1ZGUvZXN3aW4vZWljNzcweC5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI1IEJv IEdhbiA8Z2FuYm9pbmdAZ21haWwuY29tPgorICoKKyAqLworCisjaWZuZGVmIF9fRUlDNzcwWF9I X18KKyNkZWZpbmUgX19FSUM3NzBYX0hfXworCisvKiBDU1JzICovCisjZGVmaW5lIEVJQzc3MFhf Q1NSX0JSUFJFRElDVAkweDdjMAorI2RlZmluZSBFSUM3NzBYX0NTUl9GRUFUMAkweDdjMQorI2Rl ZmluZSBFSUM3NzBYX0NTUl9GRUFUMQkweDdjMgorI2RlZmluZSBFSUM3NzBYX0NTUl9MMV9IV1BG CTB4N2MzCisjZGVmaW5lIEVJQzc3MFhfQ1NSX0wyX0hXUEYJMHg3YzQKKworLyogSGFydCBJRCB0 byBjb3JlL2RpZSBjb252ZXJzaW9uICovCisjZGVmaW5lIENQVV9DT1JFX0JJVFMJCTIKKyNkZWZp bmUgQ1BVX0NPUkVfTUFTSwkJKCgxIDw8IENQVV9DT1JFX0JJVFMpIC0gMSkKKyNkZWZpbmUgQ1BV X0RJRV9TSElGVAkJQ1BVX0NPUkVfQklUUworI2RlZmluZSBDUFVfRElFX0JJVFMJCTEKKyNkZWZp bmUgQ1BVX0RJRV9NQVNLCQkoKDEgPDwgQ1BVX0RJRV9TSElGVCkgLSAxKQorCisjZGVmaW5lIGhh cnRfY29yZShpKQkJKChpKSAmIENQVV9DT1JFX01BU0spCisjZGVmaW5lIGhhcnRfZGllKGkpCQko KChpKSA+PiBDUFVfRElFX1NISUZUKSAmIENQVV9ESUVfTUFTSykKKyNkZWZpbmUgY3VycmVudF9o YXJ0X2NvcmUoKQloYXJ0X2NvcmUoY3VycmVudF9oYXJ0aWQoKSkKKyNkZWZpbmUgY3VycmVudF9o YXJ0X2RpZSgpCWhhcnRfZGllKGN1cnJlbnRfaGFydGlkKCkpCisKKy8qIFA1NTAgSW50ZXJuYWwg YW5kIFN5c3RlbSBQb3J0IDAgKi8KKyNkZWZpbmUgRUlDNzcwWF9QNTUwSU5UX1NJWkUJMHgyMDAw MDAwMFVMCisjZGVmaW5lIEVJQzc3MFhfUDU1MElOVF9CQVNFKGQpCSgwVUwgKyBFSUM3NzBYX1A1 NTBJTlRfU0laRSAqIChkKSkKKyNkZWZpbmUgRUlDNzcwWF9QNTUwSU5UX0xPQ0FMCUVJQzc3MFhf UDU1MElOVF9CQVNFKGN1cnJlbnRfaGFydF9kaWUoKSkKKyNkZWZpbmUgRUlDNzcwWF9UTDY0RDJE X09VVAkoRUlDNzcwWF9QNTUwSU5UX0xPQ0FMICsgMHgyMDAwMDApCisjZGVmaW5lIEVJQzc3MFhf VEwyNTZEMkRfT1VUCShFSUM3NzBYX1A1NTBJTlRfTE9DQUwgKyAweDIwMjAwMCkKKyNkZWZpbmUg RUlDNzcwWF9UTDI1NkQyRF9JTgkoRUlDNzcwWF9QNTUwSU5UX0xPQ0FMICsgMHgyMDQwMDApCisK KyNkZWZpbmUgRUlDNzcwWF9TWVNQT1JUX1NJWkUJMHgyMDAwMDAwMFVMCisjZGVmaW5lIEVJQzc3 MFhfU1lTUE9SVF9CQVNFKGQpCSgweDQwMDAwMDAwVUwgKyBFSUM3NzBYX1NZU1BPUlRfU0laRSAq IChkKSkKKyNkZWZpbmUgRUlDNzcwWF9TWVNQT1JUX0xPQ0FMCUVJQzc3MFhfU1lTUE9SVF9CQVNF KGN1cnJlbnRfaGFydF9kaWUoKSkKKyNkZWZpbmUgRUlDNzcwWF9TWVNDUkcJCShFSUM3NzBYX1NZ U1BPUlRfTE9DQUwgKyAweDExODI4MDAwVUwpCisjZGVmaW5lIEVJQzc3MFhfU1lTQ1JHX1JTVAko RUlDNzcwWF9TWVNDUkcgKyAweDMwMFVMKQorI2RlZmluZSBFSUM3NzBYX1NZU0NSR19SU1RfVkFM CTB4MUFDMEZGRTZVTAorCisvKiBNZW1vcnkgUG9ydHMgKi8KKyNkZWZpbmUgRUlDNzcwWF9NRU1Q T1JUX0JBU0UJMHgwMDgwMDAwMDAwVUwgLy8gMkcKKyNkZWZpbmUgRUlDNzcwWF9NRU1QT1JUX1NJ WkUJMHg3ZjgwMDAwMDAwVUwgLy8gKzUxMEcKKyNkZWZpbmUgRUlDNzcwWF9EMF9NRU1fQkFTRQkw eDAwODAwMDAwMDBVTCAvLyAyRworI2RlZmluZSBFSUM3NzBYX0QwX01FTV9TSVpFCTB4MGY4MDAw MDAwMFVMIC8vICs2MkcKKyNkZWZpbmUgRUlDNzcwWF9EMV9NRU1fQkFTRQkweDIwMDAwMDAwMDBV TCAvLyAxMjhHCisjZGVmaW5lIEVJQzc3MFhfRDFfTUVNX1NJWkUJMHgxMDAwMDAwMDAwVUwgLy8g KzY0RworI2RlZmluZSBFSUM3NzBYX0NBQ0hFRF9CQVNFCShjdXJyZW50X2hhcnRfZGllKCkgPyBc CisJCQkJRUlDNzcwWF9EMV9NRU1fQkFTRSA6IFwKKwkJCQlFSUM3NzBYX0QwX01FTV9CQVNFKQor CisvKiBVbmNhY2hlZCBtZW1vcnkgbWFwcGVkIGluIFN5c3RlbSBQb3J0IDEgKi8KKyNkZWZpbmUg RUlDNzcwWF9EMF9VQ19CQVNFCTB4YzAwMDAwMDAwMFVMCisjZGVmaW5lIEVJQzc3MFhfRDFfVUNf QkFTRQkweGUwMDAwMDAwMDBVTAorI2RlZmluZSBFSUM3NzBYX1VOQ0FDSEVEX0JBU0UJKGN1cnJl bnRfaGFydF9kaWUoKSA/IFwKKwkJCQlFSUM3NzBYX0QxX1VDX0JBU0UgOiBcCisJCQkJRUlDNzcw WF9EMF9VQ19CQVNFKQorCisjZGVmaW5lIEVJQzc3MFhfVE9fVU5DQUNIRUQoeCkJKCh4KSAtIEVJ Qzc3MFhfQ0FDSEVEX0JBU0UgKyBcCisJCQkJRUlDNzcwWF9VTkNBQ0hFRF9CQVNFKQorCisjZW5k aWYKLS0gCjIuMzQuMQoKCi0tIApvcGVuc2JpIG1haWxpbmcgbGlzdApvcGVuc2JpQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9v cGVuc2JpCg==