From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id 618946E10C for ; Wed, 9 Oct 2019 15:43:15 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id h2so2477720edn.3 for ; Wed, 09 Oct 2019 08:43:15 -0700 (PDT) Date: Wed, 9 Oct 2019 17:43:10 +0200 From: Daniel Vetter Message-ID: <20191009154310.GK16989@phenom.ffwll.local> References: <20190930224707.14904-1-matthew.d.roper@intel.com> <20190930231305.16488-1-matthew.d.roper@intel.com> <20191001122741.GI1208@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191001122741.GI1208@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_crtc_background_color: overhaul to match upstream ABI (v5.1) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: igt-dev@lists.freedesktop.org, Martin Peres , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-ID: T24gVHVlLCBPY3QgMDEsIDIwMTkgYXQgMDM6Mjc6NDFQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIE1vbiwgU2VwIDMwLCAyMDE5IGF0IDEwOjE4OjE3UE0gLTA0MDAsIE1hcnRp biBQZXJlcyB3cm90ZToKPiA+IE9uIDMwLzA5LzIwMTkgMTk6MTMsIE1hdHQgUm9wZXIgd3JvdGU6 Cj4gPiA+IENSVEMgYmFja2dyb3VuZCBjb2xvciBrZXJuZWwgcGF0Y2hlcyB3ZXJlIHdyaXR0ZW4g YWJvdXQgMi41IHllYXJzIGFnbwo+ID4gPiBhbmQgZmxvYXRlZCBvbiB0aGUgdXBzdHJlYW0gbWFp bGluZyBsaXN0LCBidXQgc2luY2Ugbm8gb3BlbnNvdXJjZQo+ID4gPiB1c2Vyc3BhY2UgbWF0ZXJp YWxpemVkLCB3ZSBuZXZlciBhY3R1YWxseSBtZXJnZWQgdGhlbS4gIEhvd2V2ZXIgdGhlCj4gPiA+ IGNvcnJlc3BvbmRpbmcgSUdUIHRlc3QgZGlkIGdldCBtZXJnZWQgYW5kIGhhcyBiYXNpY2FsbHkg YmVlbiBkZWFkIGNvZGUKPiA+ID4gZXZlciBzaW5jZS4KPiA+ID4gCj4gPiA+IEEgY291cGxlIHll YXJzIGxhdGVyIHdlIGZpbmFsbHkgaGF2ZSBhbiBvcGVuIHNvdXJjZSB1c2Vyc3BhY2UKPiA+ID4g KENocm9tZU9TKSwgc28gbGV0cyB1cGRhdGUgdGhlIElHVCB0ZXN0IHRvIG1hdGNoIHRoZSBBQkkg dGhhdCdzIGFjdHVhbGx5Cj4gPiA+IGdvaW5nIHVwc3RyZWFtIGFuZCB0byByZW1vdmUgc29tZSBv ZiB0aGUgY3J1ZnQgZnJvbSB0aGUgb3JpZ2luYWwgdGVzdAo+ID4gPiB0aGF0IHdvdWxkbid0IGFj dHVhbGx5IHdvcmsuCj4gPiA+IAo+ID4gPiBJdCdzIHdvcnRoIG5vdGluZyB0aGF0IENSQydzIGRv bid0IHNlZW0gdG8gd29yayBwcm9wZXJseSBvbiBJbnRlbCBnZW45Lgo+ID4gPiBUaGUgYnNwZWMg ZG9lcyB0ZWxsIHVzIHRoYXQgd2UgbXVzdCBoYXZlIG9uZSBwbGFuZSBlbmFibGVkIGJlZm9yZSB0 YWtpbmcKPiA+ID4gYSBwaXBlLWxldmVsICgiZG11eCIpIENSQywgc28gdGhpcyB0ZXN0IGlzIHZp b2xhdGluZyB0aGF0IGJ5IGRpc2FibGluZwo+ID4gPiBhbGwgcGxhbmVzOyBpdCdzIHF1aXRlIHBv c3NpYmxlIHRoYXQgdGhpcyBpcyB0aGUgc291cmNlIG9mIHRoZSBDUkMKPiA+ID4gbWlzbWF0Y2gu ICBJZiBydW5uaW5nIG9uIGFuIEludGVsIHBsYXRmb3JtLCB5b3UgbWF5IHdhbnQgdG8gcnVuIGlu Cj4gPiA+IGludGVyYWN0aXZlIG1vZGUgKCItLWludGVyYWN0aXZlLWRlYnVnPWJnY29sb3IgLS1z a2lwLWNyYy1jb21wYXJlIikgdG8KPiA+ID4gZW5zdXJlIHRoYXQgdGhlIGNvbG9ycyBiZWluZyBn ZW5lcmF0ZWQgYWN0dWFsbHkgZG8gbWF0Y2ggdmlzdWFsbHkgc2luY2UKPiA+ID4gdGhlIENSQydz IGNhbid0IGJlIHRydXN0ZWQuCj4gPiAKPiA+IEhtbSwgbGFuZGluZyBhIGZlYXR1cmUgd2l0aG91 dCBhdXRvbWF0aW5nIHRlc3RpbmcgZm9yIGl0IGlzIGEgYml0IHRvbwo+ID4gbXVjaCB0byBhc2sg SU1PLgo+ID4gCj4gPiBJIGhhdmUgdHdvIHByb3Bvc2FscyB0byBtYWtlIGl0IGhhcHBlbjoKPiA+ IAo+ID4gLSBDb3VsZCB3ZSBhZGQgYSB3b3JrYXJvdW5kIGZvciB0aGUgYWZmZWN0ZWQgaW50ZWwg cGxhdGZvcm1zPyBJZiB0aGUKPiA+IHByb2JsZW0gcmVhbGx5IGlzIGJlY2F1c2Ugbm8gcGxhbmVz IGFyZSBlbmFibGVkLCB0aGVuIHN1cmVseSBhCj4gPiBmdWxseS10cmFuc3BhcmVudCBwbGFuZSB3 b3VsZCBiZSBhIHN1ZmZpY2llbnQgd29ya2Fyb3VuZC4KPiAKPiBKdXN0IGhhdmUgdG8gbWFrZSBz dXJlIHRoYXQgcGxhbmUgaXMgdGhlIGN1cnNvciBzaW5jZSB0aGUgYmxlbmRpbmcKPiBmYWlsIG9u IHRoZSB1bml2ZXJzYWwgcGxhbmVzLgo+IAo+ID4gCj4gPiAtIElmIENSQ3MgcmVhbGx5IGNhbm5v dCBiZSB1c2VkIGZvciB0aGlzLCB0aGVuIHdlIHNob3VsZCB1c2UgdGhlCj4gPiBjaGFtZWxpdW0g Zm9yIGl0LiBUaGUgaWRlYSB3b3VsZCBiZSB0byBkZXRlY3QgaWYgdGhlIGNvbm5lY3RvciBpcwo+ ID4gY29ubmVjdGVkIHRvIGEgY2hhbWVsaXVtLCBhbmQgaWYgc28gdXNlIGNoYW1lbGl1bSdzIENS Qy4KPiAKPiBUaGlyZCBvcHRpb24gd291bGQgYmUgdG8gdXNlIHRoZSBwb3J0IGNyYyBpbnN0ZWFk LgoKWWVhaCB0aGF0IG1pZ2h0IGJlIGEgdy9hLCB3ZSdyZSB1c2luZyB0aGF0IG9uIGdlbjQgYWxy ZWFkeSBmb3Igc29tZSBwb3J0cy4KV2UnZCBoYXZlIHRvIHVzZSB0aGVzZSBwb3J0IGNyY3MgYWx3 YXlzIHRob3VnaCwgc2luY2Ugd2UgY2FuJ3QgdGVsbAp1cGZyb250IHdoZXRoZXIgdGhlIHRlc3Rj YXNlIGlzIHRlc3RpbmcgdGhlIGJhY2tncm91bmQgY29sb3IuCi1EYW5pZWwKCj4gCj4gPiAKPiA+ IEhvdyBkb2VzIHRoaXMgc291bmQ/Cj4gPiAKPiA+IE1hcnRpbgo+ID4gCj4gPiA+IAo+ID4gPiB2 MjoKPiA+ID4gIC0gU3dhcCByZWQgYW5kIGJsdWUgb3JkZXJpbmcgaW4gcHJvcGVydHkgdmFsdWUg dG8gcmVmbGVjdCBjaGFuZ2UKPiA+ID4gICAgaW4gdjIgb2Yga2VybmVsIHNlcmllcy4KPiA+ID4g Cj4gPiA+IHYzOgo+ID4gPiAgLSBNaW5vciB1cGRhdGVzIHRvIHByb3Bvc2VkIHVhcGkgaGVscGVy cyAocy9yZ2JhL2FyZ2IvKS4KPiA+ID4gCj4gPiA+IHY0Ogo+ID4gPiAgLSBHZW5lcmFsIHJlc3Ry dWN0dXJpbmcgaW50byBwaXBlL2NvbG9yIHN1YnRlc3RzLgo+ID4gPiAgLSBVc2UgUkdCMjEwMTAx MCBmcmFtZWJ1ZmZlcnMgZm9yIGNvbXBhcmlzb24gc28gdGhhdCB3ZSBtYXRjaCB0aGUgYml0cwo+ ID4gPiAgICBvZiBwcmVjaXNpb24gdGhhdCBJbnRlbCBoYXJkd2FyZSBiYWNrZ3JvdW5kIGNvbG9y IGFjY2VwdHMKPiA+ID4gCj4gPiA+IHY1Ogo+ID4gPiAgLSBSZS1lbmFibGUgQ1JDIGNvbXBhcmlz b25zOyBqdXN0IGJlY2F1c2UgdGhlc2UgZG9uJ3Qgd29yayBvbiBJbnRlbAo+ID4gPiAgICBkb2Vz bid0IG1lYW4gd2Ugc2hvdWxkbid0IHVzZSB0aGVtIG9uIG90aGVyIHZlbmRvcnMnIHBsYXRmb3Jt cwo+ID4gPiAgICAoRGFuaWVsKS4KPiA+ID4gIC0gVXNlIERSSVZFUl9BTlkgcmF0aGVyIHRoYW4g RFJJVkVSX0lOVEVMLiAoSGVpa28gU3R1ZWJuZXIpCj4gPiA+IAo+ID4gPiB2NS4xOgo+ID4gPiAg LSBVcGRhdGUgY29tbWl0IG1lc3NhZ2UgYm9keSBkaXNjdXNzaW9uIG9mIENSQyBpc3N1ZXMuCj4g PiA+IAo+ID4gPiBDYzogaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPiA+ID4gQ2M6IEhlaWtvIFN0dWVibmVyIDxo ZWlrb0BzbnRlY2guZGU+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcu ZC5yb3BlckBpbnRlbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgbGliL2lndF9rbXMuYyAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCj4gPiA+ICB0ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5kX2Nv bG9yLmMgfCAyNjMgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gPiA+ICAyIGZpbGVz IGNoYW5nZWQsIDEyNyBpbnNlcnRpb25zKCspLCAxMzggZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4g PiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuYyBiL2xpYi9pZ3Rfa21zLmMKPiA+ID4gaW5kZXgg ZTliODBiOWIuLjlhN2YwZTIzIDEwMDY0NAo+ID4gPiAtLS0gYS9saWIvaWd0X2ttcy5jCj4gPiA+ ICsrKyBiL2xpYi9pZ3Rfa21zLmMKPiA+ID4gQEAgLTM5MSw3ICszOTEsNyBAQCBjb25zdCBjaGFy ICogY29uc3QgaWd0X3BsYW5lX3Byb3BfbmFtZXNbSUdUX05VTV9QTEFORV9QUk9QU10gPSB7Cj4g PiA+ICB9Owo+ID4gPiAgCj4gPiA+ICBjb25zdCBjaGFyICogY29uc3QgaWd0X2NydGNfcHJvcF9u YW1lc1tJR1RfTlVNX0NSVENfUFJPUFNdID0gewo+ID4gPiAtCVtJR1RfQ1JUQ19CQUNLR1JPVU5E XSA9ICJiYWNrZ3JvdW5kX2NvbG9yIiwKPiA+ID4gKwlbSUdUX0NSVENfQkFDS0dST1VORF0gPSAi QkFDS0dST1VORF9DT0xPUiIsCj4gPiA+ICAJW0lHVF9DUlRDX0NUTV0gPSAiQ1RNIiwKPiA+ID4g IAlbSUdUX0NSVENfR0FNTUFfTFVUXSA9ICJHQU1NQV9MVVQiLAo+ID4gPiAgCVtJR1RfQ1JUQ19H QU1NQV9MVVRfU0laRV0gPSAiR0FNTUFfTFVUX1NJWkUiLAo+ID4gPiBkaWZmIC0tZ2l0IGEvdGVz dHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xvci5jIGIvdGVzdHMva21zX2NydGNfYmFja2dyb3Vu ZF9jb2xvci5jCj4gPiA+IGluZGV4IDNkZjM0MDFmLi41OGNkZDdhOSAxMDA2NDQKPiA+ID4gLS0t IGEvdGVzdHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xvci5jCj4gPiA+ICsrKyBiL3Rlc3RzL2tt c19jcnRjX2JhY2tncm91bmRfY29sb3IuYwo+ID4gPiBAQCAtMjUsMTY0ICsyNSwxNTMgQEAKPiA+ ID4gICNpbmNsdWRlICJpZ3QuaCIKPiA+ID4gICNpbmNsdWRlIDxtYXRoLmg+Cj4gPiA+ICAKPiA+ ID4gLQo+ID4gPiAgSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgY3J0YyBiYWNrZ3JvdW5kIGNv bG9yIGZlYXR1cmUiKTsKPiA+ID4gIAo+ID4gPiArLyoKPiA+ID4gKyAqIFBhaW50cyBhIGRlc2ly ZWQgY29sb3IgaW50byBhIGZ1bGwtc2NyZWVuIHByaW1hcnkgcGxhbmUgYW5kIHRoZW4gY29tcGFy ZXMKPiA+ID4gKyAqIHRoYXQgQ1JDIHdpdGggdHVybmluZyBvZmYgYWxsIHBsYW5lcyBhbmQgc2V0 dGluZyB0aGUgQ1JUQyBiYWNrZ3JvdW5kIHRvIHRoZQo+ID4gPiArICogc2FtZSBjb2xvci4KPiA+ ID4gKyAqCj4gPiA+ICsgKiBBdCBsZWFzdCBvbiBjdXJyZW50IEludGVsIHBsYXRmb3JtcywgdGhl IENSQyB0ZXN0cyBhcHBlYXIgdG8gYWx3YXlzIGZhaWwsCj4gPiA+ICsgKiBldmVuIHRob3VnaCB0 aGUgcmVzdWx0aW5nIHBpcGUgb3V0cHV0IHNlZW1zIHRvIGJlIHRoZSBzYW1lLiAgVGhlIGJzcGVj IHRlbGxzCj4gPiA+ICsgKiB1cyB0aGF0IHdlIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgcGxhbmUg dHVybmVkIG9uIHdoZW4gdGFraW5nIGEgcGlwZS1sZXZlbAo+ID4gPiArICogQ1JDLCBzbyB0aGUg ZmFjdCB0aGF0IHdlJ3JlIHZpb2xhdGluZyB0aGF0IG1heSBleHBsYWluIHRoZSBmYWlsdXJlcy4g IElmCj4gPiA+ICsgKiB5b3VyIHBsYXRmb3JtIGdpdmVzIGZhaWx1cmVzIGZvciBhbGwgdGVzdHMs IHlvdSBtYXkgd2FudCB0byBydW4gd2l0aAo+ID4gPiArICogLS1pbnRlcmFjdGl2ZS1kZWJ1Zz1i Z2NvbG9yIC0tc2tpcC1jcmMtY29tcGFyZSB0byB2aXN1YWxseSBpbnNwZWN0IHRoYXQgdGhlCj4g PiA+ICsgKiBiYWNrZ3JvdW5kIGNvbG9yIG1hdGNoZXMgdGhlIGVxdWl2YWxlbnQgc29saWQgcGxh bmUuCj4gPiA+ICsgKi8KPiA+ID4gKwo+ID4gPiAgdHlwZWRlZiBzdHJ1Y3Qgewo+ID4gPiAtCWlu dCBnZnhfZmQ7Cj4gPiA+ICAJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+ID4gPiAtCXN0cnVjdCBp Z3RfZmIgZmI7Cj4gPiA+IC0JaWd0X2NyY190IHJlZl9jcmM7Cj4gPiA+ICsJaW50IGdmeF9mZDsK PiA+ID4gKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPiA+ID4gIAlpZ3RfcGlwZV9jcmNfdCAqcGlw ZV9jcmM7Cj4gPiA+ICsJZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ID4gPiAgfSBkYXRhX3Q7Cj4g PiA+ICAKPiA+ID4gLSNkZWZpbmUgQkxBQ0sgICAgICAweDAwMDAwMCAgICAgICAgICAgLyogQkdS IDhicGMgKi8KPiA+ID4gLSNkZWZpbmUgQ1lBTiAgICAgICAweEZGRkYwMCAgICAgICAgICAgLyog QkdSIDhicGMgKi8KPiA+ID4gLSNkZWZpbmUgUFVSUExFICAgICAweEZGMDBGRiAgICAgICAgICAg LyogQkdSIDhicGMgKi8KPiA+ID4gLSNkZWZpbmUgV0hJVEUgICAgICAweEZGRkZGRiAgICAgICAg ICAgLyogQkdSIDhicGMgKi8KPiA+ID4gLQo+ID4gPiAtI2RlZmluZSBCTEFDSzY0ICAgIDB4MDAw MDAwMDAwMDAwICAgICAvKiBCR1IgMTZicGMgKi8KPiA+ID4gLSNkZWZpbmUgQ1lBTjY0ICAgICAw eEZGRkZGRkZGMDAwMCAgICAgLyogQkdSIDE2YnBjICovCj4gPiA+IC0jZGVmaW5lIFBVUlBMRTY0 ICAgMHhGRkZGMDAwMEZGRkYgICAgIC8qIEJHUiAxNmJwYyAqLwo+ID4gPiAtI2RlZmluZSBZRUxM T1c2NCAgIDB4MDAwMEZGRkZGRkZGICAgICAvKiBCR1IgMTZicGMgKi8KPiA+ID4gLSNkZWZpbmUg V0hJVEU2NCAgICAweEZGRkZGRkZGRkZGRiAgICAgLyogQkdSIDE2YnBjICovCj4gPiA+IC0jZGVm aW5lIFJFRDY0ICAgICAgMHgwMDAwMDAwMEZGRkYgICAgIC8qIEJHUiAxNmJwYyAqLwo+ID4gPiAt I2RlZmluZSBHUkVFTjY0ICAgIDB4MDAwMEZGRkYwMDAwICAgICAvKiBCR1IgMTZicGMgKi8KPiA+ ID4gLSNkZWZpbmUgQkxVRTY0ICAgICAweEZGRkYwMDAwMDAwMCAgICAgLyogQkdSIDE2YnBjICov Cj4gPiA+IC0KPiA+ID4gLXN0YXRpYyB2b2lkCj4gPiA+IC1wYWludF9iYWNrZ3JvdW5kKGRhdGFf dCAqZGF0YSwgc3RydWN0IGlndF9mYiAqZmIsIGRybU1vZGVNb2RlSW5mbyAqbW9kZSwKPiA+ID4g LQkJdWludDMyX3QgYmFja2dyb3VuZCwgZG91YmxlIGFscGhhKQo+ID4gPiArLyoKPiA+ID4gKyAq IExvY2FsIGNvcHkgb2Yga2VybmVsIHVhcGkKPiA+ID4gKyAqLwo+ID4gPiArc3RhdGljIGlubGlu ZSBfX3U2NAo+ID4gPiArbG9jYWxfYXJnYihfX3U4IGJwYywgX191MTYgYWxwaGEsIF9fdTE2IHJl ZCwgX191MTYgZ3JlZW4sIF9fdTE2IGJsdWUpCj4gPiA+ICB7Cj4gPiA+IC0JY2Fpcm9fdCAqY3I7 Cj4gPiA+IC0JaW50IHcsIGg7Cj4gPiA+IC0JZG91YmxlIHIsIGcsIGI7Cj4gPiA+IC0KPiA+ID4g LQl3ID0gbW9kZS0+aGRpc3BsYXk7Cj4gPiA+IC0JaCA9IG1vZGUtPnZkaXNwbGF5Owo+ID4gPiAt Cj4gPiA+IC0JY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsICZkYXRhLT5mYik7 Cj4gPiA+ICsgICAgICAgaW50IG1zYl9zaGlmdCA9IDE2IC0gYnBjOwo+ID4gPiAgCj4gPiA+IC0J LyogUGFpbnQgd2l0aCBiYWNrZ3JvdW5kIGNvbG9yICovCj4gPiA+IC0JciA9IChkb3VibGUpIChi YWNrZ3JvdW5kICYgMHhGRikgLyAyNTUuMDsKPiA+ID4gLQlnID0gKGRvdWJsZSkgKChiYWNrZ3Jv dW5kICYgMHhGRjAwKSA+PiA4KSAvIDI1NS4wOwo+ID4gPiAtCWIgPSAoZG91YmxlKSAoKGJhY2tn cm91bmQgJiAweEZGMDAwMCkgPj4gMTYpIC8gMjU1LjA7Cj4gPiA+IC0JaWd0X3BhaW50X2NvbG9y X2FscGhhKGNyLCAwLCAwLCB3LCBoLCByLCBnLCBiLCBhbHBoYSk7Cj4gPiA+IC0KPiA+ID4gLQlp Z3RfcHV0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsICZkYXRhLT5mYiwgY3IpOwo+ID4gPiArICAg ICAgIHJldHVybiAoX191NjQpYWxwaGEgPDwgbXNiX3NoaWZ0IDw8IDQ4IHwKPiA+ID4gKyAgICAg ICAgICAgICAgKF9fdTY0KXJlZCAgIDw8IG1zYl9zaGlmdCA8PCAzMiB8Cj4gPiA+ICsgICAgICAg ICAgICAgIChfX3U2NClncmVlbiA8PCBtc2Jfc2hpZnQgPDwgMTYgfAo+ID4gPiArICAgICAgICAg ICAgICAoX191NjQpYmx1ZSAgPDwgbXNiX3NoaWZ0Owo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1z dGF0aWMgdm9pZCBwcmVwYXJlX2NydGMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1 dCwgZW51bSBwaXBlIHBpcGUsCj4gPiA+IC0JCQlpZ3RfcGxhbmVfdCAqcGxhbmUsIGludCBvcGFx dWVfYnVmZmVyLCBpbnQgcGxhbmVfY29sb3IsCj4gPiA+IC0JCQl1aW50NjRfdCBwaXBlX2JhY2tn cm91bmRfY29sb3IpCj4gPiA+ICtzdGF0aWMgdm9pZCB0ZXN0X2JhY2tncm91bmQoZGF0YV90ICpk YXRhLCBlbnVtIHBpcGUgcGlwZSwgaW50IHcsIGludCBoLAo+ID4gPiArCQkJICAgIF9fdTY0IHIs IF9fdTY0IGcsIF9fdTY0IGIpCj4gPiA+ICB7Cj4gPiA+IC0JZHJtTW9kZU1vZGVJbmZvICptb2Rl Owo+ID4gPiAtCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiA+ID4g LQlpbnQgZmJfaWQ7Cj4gPiA+IC0JZG91YmxlIGFscGhhOwo+ID4gPiAtCj4gPiA+IC0JaWd0X291 dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ID4gPiAtCj4gPiA+IC0JLyogY3JlYXRlIHRo ZSBwaXBlX2NyYyBvYmplY3QgZm9yIHRoaXMgcGlwZSAqLwo+ID4gPiAtCWlndF9waXBlX2NyY19m cmVlKGRhdGEtPnBpcGVfY3JjKTsKPiA+ID4gLQlkYXRhLT5waXBlX2NyYyA9IGlndF9waXBlX2Ny Y19uZXcoZGF0YS0+Z2Z4X2ZkLCBwaXBlLCBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7Cj4g PiA+IC0KPiA+ID4gLQltb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOwo+ID4gPiAt Cj4gPiA+IC0JZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGRhdGEtPmdmeF9mZCwKPiA+ID4gLQkJCW1v ZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKPiA+ID4gLQkJCURSTV9GT1JNQVRfWFJHQjg4 ODgsCj4gPiA+IC0JCQlMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLCAvKiB0aWxlZCAqLwo+ID4g PiAtCQkJJmRhdGEtPmZiKTsKPiA+ID4gLQlpZ3RfYXNzZXJ0KGZiX2lkKTsKPiA+ID4gLQo+ID4g PiAtCS8qIFRvIG1ha2UgRkIgcGl4ZWwgd2luIHdpdGggYmFja2dyb3VuZCBjb2xvciwgc2V0IGFs cGhhIGFzIGZ1bGwgb3BhcXVlICovCj4gPiA+IC0JaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlz cGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VORCwgcGlwZV9iYWNrZ3JvdW5kX2NvbG9yKTsK PiA+ID4gLQlpZiAob3BhcXVlX2J1ZmZlcikKPiA+ID4gLQkJYWxwaGEgPSAxLjA7ICAgIC8qIGFs cGhhIDEgaXMgZnVsbHkgb3BxdWUgKi8KPiA+ID4gLQllbHNlCj4gPiA+IC0JCWFscGhhID0gMC4w OyAgICAvKiBhbHBoYSAwIGlzIGZ1bGx5IHRyYW5zcGFyZW50ICovCj4gPiA+IC0JcGFpbnRfYmFj a2dyb3VuZChkYXRhLCAmZGF0YS0+ZmIsIG1vZGUsIHBsYW5lX2NvbG9yLCBhbHBoYSk7Cj4gPiA+ IC0KPiA+ID4gLQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAmZGF0YS0+ZmIpOwo+ID4gPiAtCWln dF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gPiA+IC19Cj4g PiA+IC0KPiA+ID4gLXN0YXRpYyB2b2lkIGNsZWFudXBfY3J0YyhkYXRhX3QgKmRhdGEsIGlndF9v dXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUpCj4gPiA+IC17Cj4gPiA+IC0JaWd0 X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5Owo+ID4gPiAtCj4gPiA+IC0JaWd0 X3BpcGVfY3JjX2ZyZWUoZGF0YS0+cGlwZV9jcmMpOwo+ID4gPiAtCWRhdGEtPnBpcGVfY3JjID0g TlVMTDsKPiA+ID4gLQo+ID4gPiAtCWlndF9yZW1vdmVfZmIoZGF0YS0+Z2Z4X2ZkLCAmZGF0YS0+ ZmIpOwo+ID4gPiAtCj4gPiA+IC0JaWd0X3BpcGVfb2JqX3NldF9wcm9wX3ZhbHVlKHBsYW5lLT5w aXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBCTEFDSzY0KTsKPiA+ID4gKwlpZ3RfY3JjX3QgcGxh bmVfY3JjLCBiZ19jcmM7Cj4gPiA+ICsJc3RydWN0IGlndF9mYiBjb2xvcmZiOwo+ID4gPiArCWln dF9wbGFuZV90ICpwbGFuZSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0 LAo+ID4gPiArCQkJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4gPiArCj4g PiA+ICsKPiA+ID4gKwkvKiBGaWxsIHRoZSBwcmltYXJ5IHBsYW5lIGFuZCBzZXQgdGhlIGJhY2tn cm91bmQgdG8gdGhlIHNhbWUgY29sb3IgKi8KPiA+ID4gKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRh dGEtPmdmeF9mZCwgdywgaCwgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMCwKPiA+ID4gKwkJCSAgICBM T0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAo+ID4gPiArCQkJICAgIChkb3VibGUpciAvIDB4RkZG RiwKPiA+ID4gKwkJCSAgICAoZG91YmxlKWcgLyAweEZGRkYsCj4gPiA+ICsJCQkgICAgKGRvdWJs ZSliIC8gMHhGRkZGLAo+ID4gPiArCQkJICAgICZjb2xvcmZiKTsKPiA+ID4gKwlpZ3RfcGxhbmVf c2V0X2ZiKHBsYW5lLCAmY29sb3JmYik7Cj4gPiA+ICsJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUo JmRhdGEtPmRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsCj4gPiA+ICsJCQkJbG9j YWxfYXJnYigxNiwgMHhmZmZmLCByLCBnLCBiKSk7Cj4gPiA+ICsJaWd0X2Rpc3BsYXlfY29tbWl0 MigmZGF0YS0+ZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7Cj4gPiA+ICsJaWd0X3BpcGVfY3JjX2Nv bGxlY3RfY3JjKGRhdGEtPnBpcGVfY3JjLCAmcGxhbmVfY3JjKTsKPiA+ID4gKwlpZ3RfZGVidWdf d2FpdF9mb3Jfa2V5cHJlc3MoImJnY29sb3IiKTsKPiA+ID4gKwo+ID4gPiArCS8qIFR1cm4gb2Zm IHRoZSBwcmltYXJ5IHBsYW5lIHNvIG9ubHkgYmcgc2hvd3MgKi8KPiA+ID4gIAlpZ3RfcGxhbmVf c2V0X2ZiKHBsYW5lLCBOVUxMKTsKPiA+ID4gLQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwg UElQRV9BTlkpOwo+ID4gPiAtCj4gPiA+IC0JaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBD T01NSVRfVU5JVkVSU0FMKTsKPiA+ID4gKwlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNw bGF5LCBDT01NSVRfQVRPTUlDKTsKPiA+ID4gKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMoZGF0 YS0+cGlwZV9jcmMsICZiZ19jcmMpOwo+ID4gPiArCWlndF9kZWJ1Z193YWl0X2Zvcl9rZXlwcmVz cygiYmdjb2xvciIpOwo+ID4gPiArCj4gPiA+ICsJLyoKPiA+ID4gKwkgKiBUaGUgZm9sbG93aW5n IHRlc3QgcmVsaWVzIG9uIGhhcmR3YXJlIHRoYXQgZ2VuZXJhdGVzIHZhbGlkIENSQ3MKPiA+ID4g KwkgKiBldmVuIHdoZW4gbm8gcGxhbmVzIGFyZSBvbi4gIFNhZGx5LCB0aGlzIGRvZXNuJ3QgYXBw ZWFyIHRvIGJlIHRoZQo+ID4gPiArCSAqIGNhc2UgZm9yIGN1cnJlbnQgSW50ZWwgcGxhdGZvcm1z OyBwaXBlIENSQydzIG5ldmVyIG1hdGNoIGJnY29sb3IKPiA+ID4gKwkgKiBDUkMncywgbGlrZWx5 IGJlY2F1c2Ugd2UncmUgdmlvbGF0aW5nIHRoZSBic3BlYydzIGd1aWRhbmNlIHRoYXQgdGhlcmUK PiA+ID4gKwkgKiBtdXN0IGFsd2F5cyBiZSBhdCBsZWFzdCBvbmUgcmVhbCBwbGFuZSB0dXJuZWQg b24gd2hlbiB0YWtpbmcgdGhlCj4gPiA+ICsJICogcGlwZS1sZXZlbCAoImRtdXgiKSBDUkMuCj4g PiA+ICsJICovCj4gPiA+ICsJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJnBsYW5lX2NyYywgJmJnX2Ny Yyk7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRpYyB2b2lkIHRlc3RfY3J0Y19iYWNrZ3Jv dW5kKGRhdGFfdCAqZGF0YSkKPiA+ID4gK2lndF9tYWluCj4gPiA+ICB7Cj4gPiA+IC0JaWd0X2Rp c3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5Owo+ID4gPiArCWRhdGFfdCBkYXRhID0g e307Cj4gPiA+ICAJaWd0X291dHB1dF90ICpvdXRwdXQ7Cj4gPiA+ICsJZHJtTW9kZU1vZGVJbmZv ICptb2RlOwo+ID4gPiArCWludCB3LCBoOwo+ID4gPiAgCWVudW0gcGlwZSBwaXBlOwo+ID4gPiAt CWludCB2YWxpZF90ZXN0cyA9IDA7Cj4gPiA+IC0KPiA+ID4gLQlmb3JfZWFjaF9waXBlX3dpdGhf dmFsaWRfb3V0cHV0KGRpc3BsYXksIHBpcGUsIG91dHB1dCkgewo+ID4gPiAtCQlpZ3RfcGxhbmVf dCAqcGxhbmU7Cj4gPiA+IC0KPiA+ID4gLQkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBp cGUpOwo+ID4gPiAtCj4gPiA+IC0JCXBsYW5lID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShv dXRwdXQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4gPiAtCQlpZ3RfcmVxdWlyZShpZ3Rf cGlwZV9oYXNfcHJvcChkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5EKSk7Cj4gPiA+ IC0KPiA+ID4gLQkJcHJlcGFyZV9jcnRjKGRhdGEsIG91dHB1dCwgcGlwZSwgcGxhbmUsIDEsIFBV UlBMRSwgQkxBQ0s2NCk7Cj4gPiA+IC0KPiA+ID4gLQkJLyogTm93IHNldCBiYWNrZ3JvdW5kIHdp dGhvdXQgdXNpbmcgYSBwbGFuZSwgaS5lLiwKPiA+ID4gLQkJICogRGlzYWJsZSB0aGUgcGxhbmUg dG8gbGV0IGh3IGJhY2tncm91bmQgY29sb3Igd2luIGJsZW5kLiAqLwo+ID4gPiAtCQlpZ3RfcGxh bmVfc2V0X2ZiKHBsYW5lLCBOVUxMKTsKPiA+ID4gLQkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUo ZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VORCwgUFVSUExFNjQpOwo+ID4gPiAtCQlp Z3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwo+ID4gPiAtCj4g PiA+IC0JCS8qIFRyeSBmZXcgb3RoZXIgYmFja2dyb3VuZCBjb2xvcnMgKi8KPiA+ID4gLQkJaWd0 X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VORCwg Q1lBTjY0KTsKPiA+ID4gLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5J VkVSU0FMKTsKPiA+ID4gLQo+ID4gPiAtCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5 LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBZRUxMT1c2NCk7Cj4gPiA+IC0JCWlndF9kaXNw bGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gPiA+ICAKPiA+ID4gLQkJ aWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VO RCwgUkVENjQpOwo+ID4gPiAtCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9V TklWRVJTQUwpOwo+ID4gPiArCWlndF9maXh0dXJlIHsKPiA+ID4gKwkJZGF0YS5nZnhfZmQgPSBk cm1fb3Blbl9kcml2ZXJfbWFzdGVyKERSSVZFUl9BTlkpOwo+ID4gPiArCQlrbXN0ZXN0X3NldF92 dF9ncmFwaGljc19tb2RlKCk7Cj4gPiA+ICAKPiA+ID4gLQkJaWd0X3BpcGVfc2V0X3Byb3BfdmFs dWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VORCwgR1JFRU42NCk7Cj4gPiA+IC0J CWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gPiA+IC0K PiA+ID4gLQkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENf QkFDS0dST1VORCwgQkxVRTY0KTsKPiA+ID4gLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5 LCBDT01NSVRfVU5JVkVSU0FMKTsKPiA+ID4gLQo+ID4gPiAtCQlpZ3RfcGlwZV9zZXRfcHJvcF92 YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBXSElURTY0KTsKPiA+ID4g LQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKPiA+ID4g LQo+ID4gPiAtCQl2YWxpZF90ZXN0cysrOwo+ID4gPiAtCQljbGVhbnVwX2NydGMoZGF0YSwgb3V0 cHV0LCBwbGFuZSk7Cj4gPiA+ICsJCWlndF9yZXF1aXJlX3BpcGVfY3JjKGRhdGEuZ2Z4X2ZkKTsK PiA+ID4gKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmdmeF9mZCk7 Cj4gPiA+ICAJfQo+ID4gPiAtCWlndF9yZXF1aXJlX2YodmFsaWRfdGVzdHMsICJubyB2YWxpZCBj cnRjL2Nvbm5lY3RvciBjb21iaW5hdGlvbnMgZm91bmRcbiIpOwo+ID4gPiAtfQo+ID4gPiAgCj4g PiA+IC1pZ3Rfc2ltcGxlX21haW4KPiA+ID4gLXsKPiA+ID4gLQlkYXRhX3QgZGF0YSA9IHt9Owo+ ID4gPiAtCj4gPiA+IC0JaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ID4gPiAtCj4gPiA+IC0J ZGF0YS5nZnhfZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKPiA+ID4gLQlpZ3Rf cmVxdWlyZV9waXBlX2NyYyhkYXRhLmdmeF9mZCk7Cj4gPiA+IC0JaWd0X2Rpc3BsYXlfcmVxdWly ZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmdmeF9mZCk7Cj4gPiA+IC0KPiA+ID4gLQl0ZXN0X2NydGNf YmFja2dyb3VuZCgmZGF0YSk7Cj4gPiA+ICsJZm9yX2VhY2hfcGlwZV9zdGF0aWMocGlwZSkgaWd0 X3N1YnRlc3RfZ3JvdXAgewo+ID4gPiArCQlpZ3RfZml4dHVyZSB7Cj4gPiA+ICsJCQlpZ3RfZGlz cGxheV9yZXF1aXJlX291dHB1dF9vbl9waXBlKCZkYXRhLmRpc3BsYXksIHBpcGUpOwo+ID4gPiAr CQkJaWd0X3JlcXVpcmUoaWd0X3BpcGVfaGFzX3Byb3AoJmRhdGEuZGlzcGxheSwgcGlwZSwKPiA+ ID4gKwkJCQkJCSAgICAgIElHVF9DUlRDX0JBQ0tHUk9VTkQpKTsKPiA+ID4gKwo+ID4gPiArCQkJ b3V0cHV0ID0gaWd0X2dldF9zaW5nbGVfb3V0cHV0X2Zvcl9waXBlKCZkYXRhLmRpc3BsYXksCj4g PiA+ICsJCQkJCQkJCXBpcGUpOwo+ID4gPiArCQkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQs IHBpcGUpOwo+ID4gPiArCQkJZGF0YS5vdXRwdXQgPSBvdXRwdXQ7Cj4gPiA+ICsKPiA+ID4gKwkJ CW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7Cj4gPiA+ICsJCQl3ID0gbW9kZS0+ aGRpc3BsYXk7Cj4gPiA+ICsJCQloID0gbW9kZS0+dmRpc3BsYXk7Cj4gPiA+ICsKPiA+ID4gKwkJ CWRhdGEucGlwZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3KGRhdGEuZ2Z4X2ZkLCBwaXBlLAo+ID4g PiArCQkJCQkJCSAgSU5URUxfUElQRV9DUkNfU09VUkNFX0FVVE8pOwo+ID4gPiArCQl9Cj4gPiA+ ICsKPiA+ID4gKwkJaWd0X3N1YnRlc3RfZigiYmFja2dyb3VuZC1jb2xvci1waXBlLSVzLWJsYWNr IiwKPiA+ID4gKwkJCSAgICAgIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKQo+ID4gPiArCQkJdGVz dF9iYWNrZ3JvdW5kKCZkYXRhLCBwaXBlLCB3LCBoLAo+ID4gPiArCQkJCQkwLCAwLCAwKTsKPiA+ ID4gKwo+ID4gPiArCQlpZ3Rfc3VidGVzdF9mKCJiYWNrZ3JvdW5kLWNvbG9yLXBpcGUtJXMtd2hp dGUiLAo+ID4gPiArCQkJICAgICAga21zdGVzdF9waXBlX25hbWUocGlwZSkpCj4gPiA+ICsJCQl0 ZXN0X2JhY2tncm91bmQoJmRhdGEsIHBpcGUsIHcsIGgsCj4gPiA+ICsJCQkJCTB4RkZGRiwgMHhG RkZGLCAweEZGRkYpOwo+ID4gPiArCj4gPiA+ICsJCWlndF9zdWJ0ZXN0X2YoImJhY2tncm91bmQt Y29sb3ItcGlwZS0lcy1yZWQiLAo+ID4gPiArCQkJICAgICAga21zdGVzdF9waXBlX25hbWUocGlw ZSkpCj4gPiA+ICsJCQl0ZXN0X2JhY2tncm91bmQoJmRhdGEsIHBpcGUsIHcsIGgsCj4gPiA+ICsJ CQkJCTB4RkZGRiwgMCwgMCk7Cj4gPiA+ICsKPiA+ID4gKwkJaWd0X3N1YnRlc3RfZigiYmFja2dy b3VuZC1jb2xvci1waXBlLSVzLWdyZWVuIiwKPiA+ID4gKwkJCSAgICAgIGttc3Rlc3RfcGlwZV9u YW1lKHBpcGUpKQo+ID4gPiArCj4gPiA+ICsJCQl0ZXN0X2JhY2tncm91bmQoJmRhdGEsIHBpcGUs IHcsIGgsCj4gPiA+ICsJCQkJCTAsIDB4RkZGRiwgMCk7Cj4gPiA+ICsKPiA+ID4gKwkJaWd0X3N1 YnRlc3RfZigiYmFja2dyb3VuZC1jb2xvci1waXBlLSVzLWJsdWUiLAo+ID4gPiArCQkJICAgICAg a21zdGVzdF9waXBlX25hbWUocGlwZSkpCj4gPiA+ICsJCQl0ZXN0X2JhY2tncm91bmQoJmRhdGEs IHBpcGUsIHcsIGgsCj4gPiA+ICsJCQkJCTAsIDAsIDB4RkZGRik7Cj4gPiA+ICsKPiA+ID4gKwkJ aWd0X2ZpeHR1cmUgewo+ID4gPiArCQkJaWd0X2Rpc3BsYXlfcmVzZXQoJmRhdGEuZGlzcGxheSk7 Cj4gPiA+ICsJCQlpZ3RfcGlwZV9jcmNfZnJlZShkYXRhLnBpcGVfY3JjKTsKPiA+ID4gKwkJCWRh dGEucGlwZV9jcmMgPSBOVUxMOwo+ID4gPiArCQl9Cj4gPiA+ICsJfQo+ID4gPiAgCj4gPiA+IC0J aWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKPiA+ID4gKwlpZ3RfZml4dHVyZSB7Cj4g PiA+ICsJCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEuZGlzcGxheSk7Cj4gPiA+ICsJfQo+ID4gPiAg fQo+ID4gPiAKPiA+IAo+IAo+IFstLSBFcnJvcjogdW5hYmxlIHRvIGNyZWF0ZSBQR1Agc3VicHJv Y2VzcyEgLS1dCj4gCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+ID4gaWd0LWRldiBtYWlsaW5nIGxpc3QKPiA+IGlndC1kZXZAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndC1kZXYKPiAKPiAKPiAtLSAKPiBWaWxsZSBTeXJqw6Rsw6QKPiBJbnRlbAo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gaWd0LWRldiBtYWls aW5nIGxpc3QKPiBpZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgoKLS0gCkRhbmllbCBWZXR0 ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xs LmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1k ZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==