From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_crtc_background_color: overhaul to match upstream ABI (v5.1) Date: Tue, 1 Oct 2019 15:27:41 +0300 Message-ID: <20191001122741.GI1208@intel.com> References: <20190930224707.14904-1-matthew.d.roper@intel.com> <20190930231305.16488-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Martin Peres Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBTZXAgMzAsIDIwMTkgYXQgMTA6MTg6MTdQTSAtMDQwMCwgTWFydGluIFBlcmVzIHdy b3RlOgo+IE9uIDMwLzA5LzIwMTkgMTk6MTMsIE1hdHQgUm9wZXIgd3JvdGU6Cj4gPiBDUlRDIGJh Y2tncm91bmQgY29sb3Iga2VybmVsIHBhdGNoZXMgd2VyZSB3cml0dGVuIGFib3V0IDIuNSB5ZWFy cyBhZ28KPiA+IGFuZCBmbG9hdGVkIG9uIHRoZSB1cHN0cmVhbSBtYWlsaW5nIGxpc3QsIGJ1dCBz aW5jZSBubyBvcGVuc291cmNlCj4gPiB1c2Vyc3BhY2UgbWF0ZXJpYWxpemVkLCB3ZSBuZXZlciBh Y3R1YWxseSBtZXJnZWQgdGhlbS4gIEhvd2V2ZXIgdGhlCj4gPiBjb3JyZXNwb25kaW5nIElHVCB0 ZXN0IGRpZCBnZXQgbWVyZ2VkIGFuZCBoYXMgYmFzaWNhbGx5IGJlZW4gZGVhZCBjb2RlCj4gPiBl dmVyIHNpbmNlLgo+ID4gCj4gPiBBIGNvdXBsZSB5ZWFycyBsYXRlciB3ZSBmaW5hbGx5IGhhdmUg YW4gb3BlbiBzb3VyY2UgdXNlcnNwYWNlCj4gPiAoQ2hyb21lT1MpLCBzbyBsZXRzIHVwZGF0ZSB0 aGUgSUdUIHRlc3QgdG8gbWF0Y2ggdGhlIEFCSSB0aGF0J3MgYWN0dWFsbHkKPiA+IGdvaW5nIHVw c3RyZWFtIGFuZCB0byByZW1vdmUgc29tZSBvZiB0aGUgY3J1ZnQgZnJvbSB0aGUgb3JpZ2luYWwg dGVzdAo+ID4gdGhhdCB3b3VsZG4ndCBhY3R1YWxseSB3b3JrLgo+ID4gCj4gPiBJdCdzIHdvcnRo IG5vdGluZyB0aGF0IENSQydzIGRvbid0IHNlZW0gdG8gd29yayBwcm9wZXJseSBvbiBJbnRlbCBn ZW45Lgo+ID4gVGhlIGJzcGVjIGRvZXMgdGVsbCB1cyB0aGF0IHdlIG11c3QgaGF2ZSBvbmUgcGxh bmUgZW5hYmxlZCBiZWZvcmUgdGFraW5nCj4gPiBhIHBpcGUtbGV2ZWwgKCJkbXV4IikgQ1JDLCBz byB0aGlzIHRlc3QgaXMgdmlvbGF0aW5nIHRoYXQgYnkgZGlzYWJsaW5nCj4gPiBhbGwgcGxhbmVz OyBpdCdzIHF1aXRlIHBvc3NpYmxlIHRoYXQgdGhpcyBpcyB0aGUgc291cmNlIG9mIHRoZSBDUkMK PiA+IG1pc21hdGNoLiAgSWYgcnVubmluZyBvbiBhbiBJbnRlbCBwbGF0Zm9ybSwgeW91IG1heSB3 YW50IHRvIHJ1biBpbgo+ID4gaW50ZXJhY3RpdmUgbW9kZSAoIi0taW50ZXJhY3RpdmUtZGVidWc9 Ymdjb2xvciAtLXNraXAtY3JjLWNvbXBhcmUiKSB0bwo+ID4gZW5zdXJlIHRoYXQgdGhlIGNvbG9y cyBiZWluZyBnZW5lcmF0ZWQgYWN0dWFsbHkgZG8gbWF0Y2ggdmlzdWFsbHkgc2luY2UKPiA+IHRo ZSBDUkMncyBjYW4ndCBiZSB0cnVzdGVkLgo+IAo+IEhtbSwgbGFuZGluZyBhIGZlYXR1cmUgd2l0 aG91dCBhdXRvbWF0aW5nIHRlc3RpbmcgZm9yIGl0IGlzIGEgYml0IHRvbwo+IG11Y2ggdG8gYXNr IElNTy4KPiAKPiBJIGhhdmUgdHdvIHByb3Bvc2FscyB0byBtYWtlIGl0IGhhcHBlbjoKPiAKPiAt IENvdWxkIHdlIGFkZCBhIHdvcmthcm91bmQgZm9yIHRoZSBhZmZlY3RlZCBpbnRlbCBwbGF0Zm9y bXM/IElmIHRoZQo+IHByb2JsZW0gcmVhbGx5IGlzIGJlY2F1c2Ugbm8gcGxhbmVzIGFyZSBlbmFi bGVkLCB0aGVuIHN1cmVseSBhCj4gZnVsbHktdHJhbnNwYXJlbnQgcGxhbmUgd291bGQgYmUgYSBz dWZmaWNpZW50IHdvcmthcm91bmQuCgpKdXN0IGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQgcGxhbmUg aXMgdGhlIGN1cnNvciBzaW5jZSB0aGUgYmxlbmRpbmcKZmFpbCBvbiB0aGUgdW5pdmVyc2FsIHBs YW5lcy4KCj4gCj4gLSBJZiBDUkNzIHJlYWxseSBjYW5ub3QgYmUgdXNlZCBmb3IgdGhpcywgdGhl biB3ZSBzaG91bGQgdXNlIHRoZQo+IGNoYW1lbGl1bSBmb3IgaXQuIFRoZSBpZGVhIHdvdWxkIGJl IHRvIGRldGVjdCBpZiB0aGUgY29ubmVjdG9yIGlzCj4gY29ubmVjdGVkIHRvIGEgY2hhbWVsaXVt LCBhbmQgaWYgc28gdXNlIGNoYW1lbGl1bSdzIENSQy4KClRoaXJkIG9wdGlvbiB3b3VsZCBiZSB0 byB1c2UgdGhlIHBvcnQgY3JjIGluc3RlYWQuCgo+IAo+IEhvdyBkb2VzIHRoaXMgc291bmQ/Cj4g Cj4gTWFydGluCj4gCj4gPiAKPiA+IHYyOgo+ID4gIC0gU3dhcCByZWQgYW5kIGJsdWUgb3JkZXJp bmcgaW4gcHJvcGVydHkgdmFsdWUgdG8gcmVmbGVjdCBjaGFuZ2UKPiA+ICAgIGluIHYyIG9mIGtl cm5lbCBzZXJpZXMuCj4gPiAKPiA+IHYzOgo+ID4gIC0gTWlub3IgdXBkYXRlcyB0byBwcm9wb3Nl ZCB1YXBpIGhlbHBlcnMgKHMvcmdiYS9hcmdiLykuCj4gPiAKPiA+IHY0Ogo+ID4gIC0gR2VuZXJh bCByZXN0cnVjdHVyaW5nIGludG8gcGlwZS9jb2xvciBzdWJ0ZXN0cy4KPiA+ICAtIFVzZSBSR0Iy MTAxMDEwIGZyYW1lYnVmZmVycyBmb3IgY29tcGFyaXNvbiBzbyB0aGF0IHdlIG1hdGNoIHRoZSBi aXRzCj4gPiAgICBvZiBwcmVjaXNpb24gdGhhdCBJbnRlbCBoYXJkd2FyZSBiYWNrZ3JvdW5kIGNv bG9yIGFjY2VwdHMKPiA+IAo+ID4gdjU6Cj4gPiAgLSBSZS1lbmFibGUgQ1JDIGNvbXBhcmlzb25z OyBqdXN0IGJlY2F1c2UgdGhlc2UgZG9uJ3Qgd29yayBvbiBJbnRlbAo+ID4gICAgZG9lc24ndCBt ZWFuIHdlIHNob3VsZG4ndCB1c2UgdGhlbSBvbiBvdGhlciB2ZW5kb3JzJyBwbGF0Zm9ybXMKPiA+ ICAgIChEYW5pZWwpLgo+ID4gIC0gVXNlIERSSVZFUl9BTlkgcmF0aGVyIHRoYW4gRFJJVkVSX0lO VEVMLiAoSGVpa28gU3R1ZWJuZXIpCj4gPiAKPiA+IHY1LjE6Cj4gPiAgLSBVcGRhdGUgY29tbWl0 IG1lc3NhZ2UgYm9keSBkaXNjdXNzaW9uIG9mIENSQyBpc3N1ZXMuCj4gPiAKPiA+IENjOiBpZ3Qt ZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBm ZndsbC5jaD4KPiA+IENjOiBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPgo+ID4gU2ln bmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiA+IC0t LQo+ID4gIGxpYi9pZ3Rfa21zLmMgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQo+ID4gIHRl c3RzL2ttc19jcnRjX2JhY2tncm91bmRfY29sb3IuYyB8IDI2MyArKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDEyNyBpbnNlcnRpb25zKCspLCAxMzgg ZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2ln dF9rbXMuYwo+ID4gaW5kZXggZTliODBiOWIuLjlhN2YwZTIzIDEwMDY0NAo+ID4gLS0tIGEvbGli L2lndF9rbXMuYwo+ID4gKysrIGIvbGliL2lndF9rbXMuYwo+ID4gQEAgLTM5MSw3ICszOTEsNyBA QCBjb25zdCBjaGFyICogY29uc3QgaWd0X3BsYW5lX3Byb3BfbmFtZXNbSUdUX05VTV9QTEFORV9Q Uk9QU10gPSB7Cj4gPiAgfTsKPiA+ICAKPiA+ICBjb25zdCBjaGFyICogY29uc3QgaWd0X2NydGNf cHJvcF9uYW1lc1tJR1RfTlVNX0NSVENfUFJPUFNdID0gewo+ID4gLQlbSUdUX0NSVENfQkFDS0dS T1VORF0gPSAiYmFja2dyb3VuZF9jb2xvciIsCj4gPiArCVtJR1RfQ1JUQ19CQUNLR1JPVU5EXSA9 ICJCQUNLR1JPVU5EX0NPTE9SIiwKPiA+ICAJW0lHVF9DUlRDX0NUTV0gPSAiQ1RNIiwKPiA+ICAJ W0lHVF9DUlRDX0dBTU1BX0xVVF0gPSAiR0FNTUFfTFVUIiwKPiA+ICAJW0lHVF9DUlRDX0dBTU1B X0xVVF9TSVpFXSA9ICJHQU1NQV9MVVRfU0laRSIsCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21z X2NydGNfYmFja2dyb3VuZF9jb2xvci5jIGIvdGVzdHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xv ci5jCj4gPiBpbmRleCAzZGYzNDAxZi4uNThjZGQ3YTkgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0cy9r bXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yLmMKPiA+ICsrKyBiL3Rlc3RzL2ttc19jcnRjX2JhY2tn cm91bmRfY29sb3IuYwo+ID4gQEAgLTI1LDE2NCArMjUsMTUzIEBACj4gPiAgI2luY2x1ZGUgImln dC5oIgo+ID4gICNpbmNsdWRlIDxtYXRoLmg+Cj4gPiAgCj4gPiAtCj4gPiAgSUdUX1RFU1RfREVT Q1JJUFRJT04oIlRlc3QgY3J0YyBiYWNrZ3JvdW5kIGNvbG9yIGZlYXR1cmUiKTsKPiA+ICAKPiA+ ICsvKgo+ID4gKyAqIFBhaW50cyBhIGRlc2lyZWQgY29sb3IgaW50byBhIGZ1bGwtc2NyZWVuIHBy aW1hcnkgcGxhbmUgYW5kIHRoZW4gY29tcGFyZXMKPiA+ICsgKiB0aGF0IENSQyB3aXRoIHR1cm5p bmcgb2ZmIGFsbCBwbGFuZXMgYW5kIHNldHRpbmcgdGhlIENSVEMgYmFja2dyb3VuZCB0byB0aGUK PiA+ICsgKiBzYW1lIGNvbG9yLgo+ID4gKyAqCj4gPiArICogQXQgbGVhc3Qgb24gY3VycmVudCBJ bnRlbCBwbGF0Zm9ybXMsIHRoZSBDUkMgdGVzdHMgYXBwZWFyIHRvIGFsd2F5cyBmYWlsLAo+ID4g KyAqIGV2ZW4gdGhvdWdoIHRoZSByZXN1bHRpbmcgcGlwZSBvdXRwdXQgc2VlbXMgdG8gYmUgdGhl IHNhbWUuICBUaGUgYnNwZWMgdGVsbHMKPiA+ICsgKiB1cyB0aGF0IHdlIG11c3QgaGF2ZSBhdCBs ZWFzdCBvbmUgcGxhbmUgdHVybmVkIG9uIHdoZW4gdGFraW5nIGEgcGlwZS1sZXZlbAo+ID4gKyAq IENSQywgc28gdGhlIGZhY3QgdGhhdCB3ZSdyZSB2aW9sYXRpbmcgdGhhdCBtYXkgZXhwbGFpbiB0 aGUgZmFpbHVyZXMuICBJZgo+ID4gKyAqIHlvdXIgcGxhdGZvcm0gZ2l2ZXMgZmFpbHVyZXMgZm9y IGFsbCB0ZXN0cywgeW91IG1heSB3YW50IHRvIHJ1biB3aXRoCj4gPiArICogLS1pbnRlcmFjdGl2 ZS1kZWJ1Zz1iZ2NvbG9yIC0tc2tpcC1jcmMtY29tcGFyZSB0byB2aXN1YWxseSBpbnNwZWN0IHRo YXQgdGhlCj4gPiArICogYmFja2dyb3VuZCBjb2xvciBtYXRjaGVzIHRoZSBlcXVpdmFsZW50IHNv bGlkIHBsYW5lLgo+ID4gKyAqLwo+ID4gKwo+ID4gIHR5cGVkZWYgc3RydWN0IHsKPiA+IC0JaW50 IGdmeF9mZDsKPiA+ICAJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+ID4gLQlzdHJ1Y3QgaWd0X2Zi IGZiOwo+ID4gLQlpZ3RfY3JjX3QgcmVmX2NyYzsKPiA+ICsJaW50IGdmeF9mZDsKPiA+ICsJaWd0 X291dHB1dF90ICpvdXRwdXQ7Cj4gPiAgCWlndF9waXBlX2NyY190ICpwaXBlX2NyYzsKPiA+ICsJ ZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ID4gIH0gZGF0YV90Owo+ID4gIAo+ID4gLSNkZWZpbmUg QkxBQ0sgICAgICAweDAwMDAwMCAgICAgICAgICAgLyogQkdSIDhicGMgKi8KPiA+IC0jZGVmaW5l IENZQU4gICAgICAgMHhGRkZGMDAgICAgICAgICAgIC8qIEJHUiA4YnBjICovCj4gPiAtI2RlZmlu ZSBQVVJQTEUgICAgIDB4RkYwMEZGICAgICAgICAgICAvKiBCR1IgOGJwYyAqLwo+ID4gLSNkZWZp bmUgV0hJVEUgICAgICAweEZGRkZGRiAgICAgICAgICAgLyogQkdSIDhicGMgKi8KPiA+IC0KPiA+ IC0jZGVmaW5lIEJMQUNLNjQgICAgMHgwMDAwMDAwMDAwMDAgICAgIC8qIEJHUiAxNmJwYyAqLwo+ ID4gLSNkZWZpbmUgQ1lBTjY0ICAgICAweEZGRkZGRkZGMDAwMCAgICAgLyogQkdSIDE2YnBjICov Cj4gPiAtI2RlZmluZSBQVVJQTEU2NCAgIDB4RkZGRjAwMDBGRkZGICAgICAvKiBCR1IgMTZicGMg Ki8KPiA+IC0jZGVmaW5lIFlFTExPVzY0ICAgMHgwMDAwRkZGRkZGRkYgICAgIC8qIEJHUiAxNmJw YyAqLwo+ID4gLSNkZWZpbmUgV0hJVEU2NCAgICAweEZGRkZGRkZGRkZGRiAgICAgLyogQkdSIDE2 YnBjICovCj4gPiAtI2RlZmluZSBSRUQ2NCAgICAgIDB4MDAwMDAwMDBGRkZGICAgICAvKiBCR1Ig MTZicGMgKi8KPiA+IC0jZGVmaW5lIEdSRUVONjQgICAgMHgwMDAwRkZGRjAwMDAgICAgIC8qIEJH UiAxNmJwYyAqLwo+ID4gLSNkZWZpbmUgQkxVRTY0ICAgICAweEZGRkYwMDAwMDAwMCAgICAgLyog QkdSIDE2YnBjICovCj4gPiAtCj4gPiAtc3RhdGljIHZvaWQKPiA+IC1wYWludF9iYWNrZ3JvdW5k KGRhdGFfdCAqZGF0YSwgc3RydWN0IGlndF9mYiAqZmIsIGRybU1vZGVNb2RlSW5mbyAqbW9kZSwK PiA+IC0JCXVpbnQzMl90IGJhY2tncm91bmQsIGRvdWJsZSBhbHBoYSkKPiA+ICsvKgo+ID4gKyAq IExvY2FsIGNvcHkgb2Yga2VybmVsIHVhcGkKPiA+ICsgKi8KPiA+ICtzdGF0aWMgaW5saW5lIF9f dTY0Cj4gPiArbG9jYWxfYXJnYihfX3U4IGJwYywgX191MTYgYWxwaGEsIF9fdTE2IHJlZCwgX191 MTYgZ3JlZW4sIF9fdTE2IGJsdWUpCj4gPiAgewo+ID4gLQljYWlyb190ICpjcjsKPiA+IC0JaW50 IHcsIGg7Cj4gPiAtCWRvdWJsZSByLCBnLCBiOwo+ID4gLQo+ID4gLQl3ID0gbW9kZS0+aGRpc3Bs YXk7Cj4gPiAtCWggPSBtb2RlLT52ZGlzcGxheTsKPiA+IC0KPiA+IC0JY3IgPSBpZ3RfZ2V0X2Nh aXJvX2N0eChkYXRhLT5nZnhfZmQsICZkYXRhLT5mYik7Cj4gPiArICAgICAgIGludCBtc2Jfc2hp ZnQgPSAxNiAtIGJwYzsKPiA+ICAKPiA+IC0JLyogUGFpbnQgd2l0aCBiYWNrZ3JvdW5kIGNvbG9y ICovCj4gPiAtCXIgPSAoZG91YmxlKSAoYmFja2dyb3VuZCAmIDB4RkYpIC8gMjU1LjA7Cj4gPiAt CWcgPSAoZG91YmxlKSAoKGJhY2tncm91bmQgJiAweEZGMDApID4+IDgpIC8gMjU1LjA7Cj4gPiAt CWIgPSAoZG91YmxlKSAoKGJhY2tncm91bmQgJiAweEZGMDAwMCkgPj4gMTYpIC8gMjU1LjA7Cj4g PiAtCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgdywgaCwgciwgZywgYiwgYWxwaGEp Owo+ID4gLQo+ID4gLQlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsICZkYXRhLT5mYiwg Y3IpOwo+ID4gKyAgICAgICByZXR1cm4gKF9fdTY0KWFscGhhIDw8IG1zYl9zaGlmdCA8PCA0OCB8 Cj4gPiArICAgICAgICAgICAgICAoX191NjQpcmVkICAgPDwgbXNiX3NoaWZ0IDw8IDMyIHwKPiA+ ICsgICAgICAgICAgICAgIChfX3U2NClncmVlbiA8PCBtc2Jfc2hpZnQgPDwgMTYgfAo+ID4gKyAg ICAgICAgICAgICAgKF9fdTY0KWJsdWUgIDw8IG1zYl9zaGlmdDsKPiA+ICB9Cj4gPiAgCj4gPiAt c3RhdGljIHZvaWQgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRw dXQsIGVudW0gcGlwZSBwaXBlLAo+ID4gLQkJCWlndF9wbGFuZV90ICpwbGFuZSwgaW50IG9wYXF1 ZV9idWZmZXIsIGludCBwbGFuZV9jb2xvciwKPiA+IC0JCQl1aW50NjRfdCBwaXBlX2JhY2tncm91 bmRfY29sb3IpCj4gPiArc3RhdGljIHZvaWQgdGVzdF9iYWNrZ3JvdW5kKGRhdGFfdCAqZGF0YSwg ZW51bSBwaXBlIHBpcGUsIGludCB3LCBpbnQgaCwKPiA+ICsJCQkgICAgX191NjQgciwgX191NjQg ZywgX191NjQgYikKPiA+ICB7Cj4gPiAtCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKPiA+IC0JaWd0 X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5Owo+ID4gLQlpbnQgZmJfaWQ7Cj4g PiAtCWRvdWJsZSBhbHBoYTsKPiA+IC0KPiA+IC0JaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQs IHBpcGUpOwo+ID4gLQo+ID4gLQkvKiBjcmVhdGUgdGhlIHBpcGVfY3JjIG9iamVjdCBmb3IgdGhp cyBwaXBlICovCj4gPiAtCWlndF9waXBlX2NyY19mcmVlKGRhdGEtPnBpcGVfY3JjKTsKPiA+IC0J ZGF0YS0+cGlwZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3KGRhdGEtPmdmeF9mZCwgcGlwZSwgSU5U RUxfUElQRV9DUkNfU09VUkNFX0FVVE8pOwo+ID4gLQo+ID4gLQltb2RlID0gaWd0X291dHB1dF9n ZXRfbW9kZShvdXRwdXQpOwo+ID4gLQo+ID4gLQlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZGF0YS0+ Z2Z4X2ZkLAo+ID4gLQkJCW1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKPiA+IC0JCQlE Uk1fRk9STUFUX1hSR0I4ODg4LAo+ID4gLQkJCUxPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsIC8q IHRpbGVkICovCj4gPiAtCQkJJmRhdGEtPmZiKTsKPiA+IC0JaWd0X2Fzc2VydChmYl9pZCk7Cj4g PiAtCj4gPiAtCS8qIFRvIG1ha2UgRkIgcGl4ZWwgd2luIHdpdGggYmFja2dyb3VuZCBjb2xvciwg c2V0IGFscGhhIGFzIGZ1bGwgb3BhcXVlICovCj4gPiAtCWlndF9waXBlX3NldF9wcm9wX3ZhbHVl KGRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsIHBpcGVfYmFja2dyb3VuZF9jb2xv cik7Cj4gPiAtCWlmIChvcGFxdWVfYnVmZmVyKQo+ID4gLQkJYWxwaGEgPSAxLjA7ICAgIC8qIGFs cGhhIDEgaXMgZnVsbHkgb3BxdWUgKi8KPiA+IC0JZWxzZQo+ID4gLQkJYWxwaGEgPSAwLjA7ICAg IC8qIGFscGhhIDAgaXMgZnVsbHkgdHJhbnNwYXJlbnQgKi8KPiA+IC0JcGFpbnRfYmFja2dyb3Vu ZChkYXRhLCAmZGF0YS0+ZmIsIG1vZGUsIHBsYW5lX2NvbG9yLCBhbHBoYSk7Cj4gPiAtCj4gPiAt CWlndF9wbGFuZV9zZXRfZmIocGxhbmUsICZkYXRhLT5mYik7Cj4gPiAtCWlndF9kaXNwbGF5X2Nv bW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gPiAtfQo+ID4gLQo+ID4gLXN0YXRp YyB2b2lkIGNsZWFudXBfY3J0YyhkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBp Z3RfcGxhbmVfdCAqcGxhbmUpCj4gPiAtewo+ID4gLQlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0g JmRhdGEtPmRpc3BsYXk7Cj4gPiAtCj4gPiAtCWlndF9waXBlX2NyY19mcmVlKGRhdGEtPnBpcGVf Y3JjKTsKPiA+IC0JZGF0YS0+cGlwZV9jcmMgPSBOVUxMOwo+ID4gLQo+ID4gLQlpZ3RfcmVtb3Zl X2ZiKGRhdGEtPmdmeF9mZCwgJmRhdGEtPmZiKTsKPiA+IC0KPiA+IC0JaWd0X3BpcGVfb2JqX3Nl dF9wcm9wX3ZhbHVlKHBsYW5lLT5waXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBCTEFDSzY0KTsK PiA+ICsJaWd0X2NyY190IHBsYW5lX2NyYywgYmdfY3JjOwo+ID4gKwlzdHJ1Y3QgaWd0X2ZiIGNv bG9yZmI7Cj4gPiArCWlndF9wbGFuZV90ICpwbGFuZSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5 cGUoZGF0YS0+b3V0cHV0LAo+ID4gKwkJCQkJCSAgICAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZ KTsKPiA+ICsKPiA+ICsKPiA+ICsJLyogRmlsbCB0aGUgcHJpbWFyeSBwbGFuZSBhbmQgc2V0IHRo ZSBiYWNrZ3JvdW5kIHRvIHRoZSBzYW1lIGNvbG9yICovCj4gPiArCWlndF9jcmVhdGVfY29sb3Jf ZmIoZGF0YS0+Z2Z4X2ZkLCB3LCBoLCBEUk1fRk9STUFUX1hSR0IyMTAxMDEwLAo+ID4gKwkJCSAg ICBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAo+ID4gKwkJCSAgICAoZG91YmxlKXIgLyAweEZG RkYsCj4gPiArCQkJICAgIChkb3VibGUpZyAvIDB4RkZGRiwKPiA+ICsJCQkgICAgKGRvdWJsZSli IC8gMHhGRkZGLAo+ID4gKwkJCSAgICAmY29sb3JmYik7Cj4gPiArCWlndF9wbGFuZV9zZXRfZmIo cGxhbmUsICZjb2xvcmZiKTsKPiA+ICsJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoJmRhdGEtPmRp c3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsCj4gPiArCQkJCWxvY2FsX2FyZ2IoMTYs IDB4ZmZmZiwgciwgZywgYikpOwo+ID4gKwlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNw bGF5LCBDT01NSVRfQVRPTUlDKTsKPiA+ICsJaWd0X3BpcGVfY3JjX2NvbGxlY3RfY3JjKGRhdGEt PnBpcGVfY3JjLCAmcGxhbmVfY3JjKTsKPiA+ICsJaWd0X2RlYnVnX3dhaXRfZm9yX2tleXByZXNz KCJiZ2NvbG9yIik7Cj4gPiArCj4gPiArCS8qIFR1cm4gb2ZmIHRoZSBwcmltYXJ5IHBsYW5lIHNv IG9ubHkgYmcgc2hvd3MgKi8KPiA+ICAJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgTlVMTCk7Cj4g PiAtCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7Cj4gPiAtCj4gPiAtCWln dF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gPiArCWlndF9k aXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwo+ID4gKwlpZ3Rf cGlwZV9jcmNfY29sbGVjdF9jcmMoZGF0YS0+cGlwZV9jcmMsICZiZ19jcmMpOwo+ID4gKwlpZ3Rf ZGVidWdfd2FpdF9mb3Jfa2V5cHJlc3MoImJnY29sb3IiKTsKPiA+ICsKPiA+ICsJLyoKPiA+ICsJ ICogVGhlIGZvbGxvd2luZyB0ZXN0IHJlbGllcyBvbiBoYXJkd2FyZSB0aGF0IGdlbmVyYXRlcyB2 YWxpZCBDUkNzCj4gPiArCSAqIGV2ZW4gd2hlbiBubyBwbGFuZXMgYXJlIG9uLiAgU2FkbHksIHRo aXMgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlCj4gPiArCSAqIGNhc2UgZm9yIGN1cnJlbnQgSW50 ZWwgcGxhdGZvcm1zOyBwaXBlIENSQydzIG5ldmVyIG1hdGNoIGJnY29sb3IKPiA+ICsJICogQ1JD J3MsIGxpa2VseSBiZWNhdXNlIHdlJ3JlIHZpb2xhdGluZyB0aGUgYnNwZWMncyBndWlkYW5jZSB0 aGF0IHRoZXJlCj4gPiArCSAqIG11c3QgYWx3YXlzIGJlIGF0IGxlYXN0IG9uZSByZWFsIHBsYW5l IHR1cm5lZCBvbiB3aGVuIHRha2luZyB0aGUKPiA+ICsJICogcGlwZS1sZXZlbCAoImRtdXgiKSBD UkMuCj4gPiArCSAqLwo+ID4gKwlpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmcGxhbmVfY3JjLCAmYmdf Y3JjKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgdGVzdF9jcnRjX2JhY2tncm91bmQo ZGF0YV90ICpkYXRhKQo+ID4gK2lndF9tYWluCj4gPiAgewo+ID4gLQlpZ3RfZGlzcGxheV90ICpk aXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7Cj4gPiArCWRhdGFfdCBkYXRhID0ge307Cj4gPiAgCWln dF9vdXRwdXRfdCAqb3V0cHV0Owo+ID4gKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gPiArCWlu dCB3LCBoOwo+ID4gIAllbnVtIHBpcGUgcGlwZTsKPiA+IC0JaW50IHZhbGlkX3Rlc3RzID0gMDsK PiA+IC0KPiA+IC0JZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBl LCBvdXRwdXQpIHsKPiA+IC0JCWlndF9wbGFuZV90ICpwbGFuZTsKPiA+IC0KPiA+IC0JCWlndF9v dXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPiA+IC0KPiA+IC0JCXBsYW5lID0gaWd0X291 dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4g LQkJaWd0X3JlcXVpcmUoaWd0X3BpcGVfaGFzX3Byb3AoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENf QkFDS0dST1VORCkpOwo+ID4gLQo+ID4gLQkJcHJlcGFyZV9jcnRjKGRhdGEsIG91dHB1dCwgcGlw ZSwgcGxhbmUsIDEsIFBVUlBMRSwgQkxBQ0s2NCk7Cj4gPiAtCj4gPiAtCQkvKiBOb3cgc2V0IGJh Y2tncm91bmQgd2l0aG91dCB1c2luZyBhIHBsYW5lLCBpLmUuLAo+ID4gLQkJICogRGlzYWJsZSB0 aGUgcGxhbmUgdG8gbGV0IGh3IGJhY2tncm91bmQgY29sb3Igd2luIGJsZW5kLiAqLwo+ID4gLQkJ aWd0X3BsYW5lX3NldF9mYihwbGFuZSwgTlVMTCk7Cj4gPiAtCQlpZ3RfcGlwZV9zZXRfcHJvcF92 YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBQVVJQTEU2NCk7Cj4gPiAt CQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwo+ID4gLQo+ ID4gLQkJLyogVHJ5IGZldyBvdGhlciBiYWNrZ3JvdW5kIGNvbG9ycyAqLwo+ID4gLQkJaWd0X3Bp cGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VORCwgQ1lB TjY0KTsKPiA+IC0JCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNB TCk7Cj4gPiAtCj4gPiAtCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJ R1RfQ1JUQ19CQUNLR1JPVU5ELCBZRUxMT1c2NCk7Cj4gPiAtCQlpZ3RfZGlzcGxheV9jb21taXQy KGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwo+ID4gIAo+ID4gLQkJaWd0X3BpcGVfc2V0X3By b3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VORCwgUkVENjQpOwo+ID4g LQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKPiA+ICsJ aWd0X2ZpeHR1cmUgewo+ID4gKwkJZGF0YS5nZnhfZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFzdGVy KERSSVZFUl9BTlkpOwo+ID4gKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwo+ID4g IAo+ID4gLQkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENf QkFDS0dST1VORCwgR1JFRU42NCk7Cj4gPiAtCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXks IENPTU1JVF9VTklWRVJTQUwpOwo+ID4gLQo+ID4gLQkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUo ZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VORCwgQkxVRTY0KTsKPiA+IC0JCWlndF9k aXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gPiAtCj4gPiAtCQlp Z3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5E LCBXSElURTY0KTsKPiA+IC0JCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VO SVZFUlNBTCk7Cj4gPiAtCj4gPiAtCQl2YWxpZF90ZXN0cysrOwo+ID4gLQkJY2xlYW51cF9jcnRj KGRhdGEsIG91dHB1dCwgcGxhbmUpOwo+ID4gKwkJaWd0X3JlcXVpcmVfcGlwZV9jcmMoZGF0YS5n ZnhfZmQpOwo+ID4gKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmdm eF9mZCk7Cj4gPiAgCX0KPiA+IC0JaWd0X3JlcXVpcmVfZih2YWxpZF90ZXN0cywgIm5vIHZhbGlk IGNydGMvY29ubmVjdG9yIGNvbWJpbmF0aW9ucyBmb3VuZFxuIik7Cj4gPiAtfQo+ID4gIAo+ID4g LWlndF9zaW1wbGVfbWFpbgo+ID4gLXsKPiA+IC0JZGF0YV90IGRhdGEgPSB7fTsKPiA+IC0KPiA+ IC0JaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ID4gLQo+ID4gLQlkYXRhLmdmeF9mZCA9IGRy bV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwo+ID4gLQlpZ3RfcmVxdWlyZV9waXBlX2NyYyhk YXRhLmdmeF9mZCk7Cj4gPiAtCWlndF9kaXNwbGF5X3JlcXVpcmUoJmRhdGEuZGlzcGxheSwgZGF0 YS5nZnhfZmQpOwo+ID4gLQo+ID4gLQl0ZXN0X2NydGNfYmFja2dyb3VuZCgmZGF0YSk7Cj4gPiAr CWZvcl9lYWNoX3BpcGVfc3RhdGljKHBpcGUpIGlndF9zdWJ0ZXN0X2dyb3VwIHsKPiA+ICsJCWln dF9maXh0dXJlIHsKPiA+ICsJCQlpZ3RfZGlzcGxheV9yZXF1aXJlX291dHB1dF9vbl9waXBlKCZk YXRhLmRpc3BsYXksIHBpcGUpOwo+ID4gKwkJCWlndF9yZXF1aXJlKGlndF9waXBlX2hhc19wcm9w KCZkYXRhLmRpc3BsYXksIHBpcGUsCj4gPiArCQkJCQkJICAgICAgSUdUX0NSVENfQkFDS0dST1VO RCkpOwo+ID4gKwo+ID4gKwkJCW91dHB1dCA9IGlndF9nZXRfc2luZ2xlX291dHB1dF9mb3JfcGlw ZSgmZGF0YS5kaXNwbGF5LAo+ID4gKwkJCQkJCQkJcGlwZSk7Cj4gPiArCQkJaWd0X291dHB1dF9z ZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ID4gKwkJCWRhdGEub3V0cHV0ID0gb3V0cHV0Owo+ID4g Kwo+ID4gKwkJCW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7Cj4gPiArCQkJdyA9 IG1vZGUtPmhkaXNwbGF5Owo+ID4gKwkJCWggPSBtb2RlLT52ZGlzcGxheTsKPiA+ICsKPiA+ICsJ CQlkYXRhLnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhkYXRhLmdmeF9mZCwgcGlwZSwKPiA+ ICsJCQkJCQkJICBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7Cj4gPiArCQl9Cj4gPiArCj4g PiArCQlpZ3Rfc3VidGVzdF9mKCJiYWNrZ3JvdW5kLWNvbG9yLXBpcGUtJXMtYmxhY2siLAo+ID4g KwkJCSAgICAgIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKQo+ID4gKwkJCXRlc3RfYmFja2dyb3Vu ZCgmZGF0YSwgcGlwZSwgdywgaCwKPiA+ICsJCQkJCTAsIDAsIDApOwo+ID4gKwo+ID4gKwkJaWd0 X3N1YnRlc3RfZigiYmFja2dyb3VuZC1jb2xvci1waXBlLSVzLXdoaXRlIiwKPiA+ICsJCQkgICAg ICBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSkKPiA+ICsJCQl0ZXN0X2JhY2tncm91bmQoJmRhdGEs IHBpcGUsIHcsIGgsCj4gPiArCQkJCQkweEZGRkYsIDB4RkZGRiwgMHhGRkZGKTsKPiA+ICsKPiA+ ICsJCWlndF9zdWJ0ZXN0X2YoImJhY2tncm91bmQtY29sb3ItcGlwZS0lcy1yZWQiLAo+ID4gKwkJ CSAgICAgIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKQo+ID4gKwkJCXRlc3RfYmFja2dyb3VuZCgm ZGF0YSwgcGlwZSwgdywgaCwKPiA+ICsJCQkJCTB4RkZGRiwgMCwgMCk7Cj4gPiArCj4gPiArCQlp Z3Rfc3VidGVzdF9mKCJiYWNrZ3JvdW5kLWNvbG9yLXBpcGUtJXMtZ3JlZW4iLAo+ID4gKwkJCSAg ICAgIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKQo+ID4gKwo+ID4gKwkJCXRlc3RfYmFja2dyb3Vu ZCgmZGF0YSwgcGlwZSwgdywgaCwKPiA+ICsJCQkJCTAsIDB4RkZGRiwgMCk7Cj4gPiArCj4gPiAr CQlpZ3Rfc3VidGVzdF9mKCJiYWNrZ3JvdW5kLWNvbG9yLXBpcGUtJXMtYmx1ZSIsCj4gPiArCQkJ ICAgICAga21zdGVzdF9waXBlX25hbWUocGlwZSkpCj4gPiArCQkJdGVzdF9iYWNrZ3JvdW5kKCZk YXRhLCBwaXBlLCB3LCBoLAo+ID4gKwkJCQkJMCwgMCwgMHhGRkZGKTsKPiA+ICsKPiA+ICsJCWln dF9maXh0dXJlIHsKPiA+ICsJCQlpZ3RfZGlzcGxheV9yZXNldCgmZGF0YS5kaXNwbGF5KTsKPiA+ ICsJCQlpZ3RfcGlwZV9jcmNfZnJlZShkYXRhLnBpcGVfY3JjKTsKPiA+ICsJCQlkYXRhLnBpcGVf Y3JjID0gTlVMTDsKPiA+ICsJCX0KPiA+ICsJfQo+ID4gIAo+ID4gLQlpZ3RfZGlzcGxheV9maW5p KCZkYXRhLmRpc3BsYXkpOwo+ID4gKwlpZ3RfZml4dHVyZSB7Cj4gPiArCQlpZ3RfZGlzcGxheV9m aW5pKCZkYXRhLmRpc3BsYXkpOwo+ID4gKwl9Cj4gPiAgfQo+ID4gCj4gCgpbLS0gRXJyb3I6IHVu YWJsZSB0byBjcmVhdGUgUEdQIHN1YnByb2Nlc3MhIC0tXQoKPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGlndC1kZXYgbWFpbGluZyBsaXN0Cj4gaWd0 LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYKCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==