From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x342.google.com (mail-ot1-x342.google.com [IPv6:2607:f8b0:4864:20::342]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2E5796E11C for ; Thu, 11 Jul 2019 17:15:32 +0000 (UTC) Received: by mail-ot1-x342.google.com with SMTP id q20so6626403otl.0 for ; Thu, 11 Jul 2019 10:15:32 -0700 (PDT) MIME-Version: 1.0 References: <20190527171924.19493-1-nicholas.kazlauskas@amd.com> <933a82fd-730a-70f3-6d70-01053bf696a4@amd.com> In-Reply-To: <933a82fd-730a-70f3-6d70-01053bf696a4@amd.com> From: Daniel Vetter Date: Thu, 11 Jul 2019 19:15:18 +0200 Message-ID: Subject: Re: [igt-dev] [PATCH i-g-t] tests/amdgpu: Add color tests for amdgpu 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: "Li, Sun peng (Leo)" , "Wentland, Harry" Cc: "igt-dev@lists.freedesktop.org" List-ID: T24gV2VkLCBNYXkgMjksIDIwMTkgYXQgODo0MyBQTSBMaSwgU3VuIHBlbmcgKExlbykgPFN1bnBl bmcuTGlAYW1kLmNvbT4gd3JvdGU6Cj4KPgo+Cj4gT24gMjAxOS0wNS0yNyAxOjE5IHAubS4sIE5p Y2hvbGFzIEthemxhdXNrYXMgd3JvdGU6Cj4gPiBUaGUgRFJNIGNvbG9yIG1hbmFnZW1lbnQgcGlw ZWxpbmUgZG9lc24ndCBkaXJlY3RseSBtYXAgdG8gQU1EIGhhcmR3YXJlCj4gPiBzbyBjcmVhdGl2 ZSBzb2x1dGlvbnMgdG8gaW1wbGVtZW50aW5nIENSVEMgcmVnYW1tYSwgQ1RNIGFuZCBnYW1tYSB3 ZXJlCj4gPiBuZWVkZWQgZm9yIGJvdGggRENFIGFuZCBEQ04uIEEgZmV3IG1pc3Rha2VzIHdlcmUg bWFkZSBpbiB0aGUgcHJvY2Vzcwo+ID4gdGhhdCB3ZXJlbid0IGNhdWdodCBieSBrbXNfY29sb3JA IHRlc3RzOgo+ID4KPiA+IC0gQ2FuJ3QgZ2V0IGxpbmVhciBkZWdhbW1hIG91dHB1dCB3aXRob3V0 IHNldHRpbmcgYSBjdXN0b20gZGVnYW1tYQo+ID4gLSBDYW4ndCBzcGVjaWZ5IGEgbm9uLWxpbmVh ciBkZWdhbW1hIHRoYXQgcHJvZHVjZXMgY29ycmVjdCBvdXRwdXQKPiA+IC0gQ2FuJ3Qgc3BlY2lm eSBhIGNvcnJlY3QgZ2FtbWEgd2hlbiBhIGxpbmVhciBkZWdhbW1hIGlzIHVzZWQKPiA+Cj4gPiBU aGVzZSBhcmUgY2F1c2VkIGJ5IHVzaW5nIGltcGxpY2l0IHNSR0IgZGVnYW1tYSB0aGVuIHNSR0Ig Z2FtbWEgd2hlbiBubwo+ID4gbWF0cmljZXMgYXJlIHNldC4gVGhpcyBwcm9kdWNlcyB2aXN1YWxs eSBjb3JyZWN0IG91dHB1dCB3aGVuIHVzaW5nIGEKPiA+IENUTSB3aXRoIG5vIG1hdHJpY2VzIHNl dCwgYnV0IGl0J3MgYWxzbyB0ZWNobmljYWxseSB0aGUgaW5jb3JyZWN0Cj4gPiBvdXRwdXQgYWNj b3JkaW5nIHRvIHRoZSBEUk0gQVBJIGRvY3VtZW50YXRpb24uCj4gPgo+ID4gVGhlc2UgdGVzdHMg aGVscCB2ZXJpZnkgdGhhdCBBTURHUFUgZm9sbG93cyB0aGUgRFJNIHNwZWMgd2hlbiBpdCBjb21l cwo+ID4gdG8gc2V0dGluZyBsaW5lYXIvYnlwYXNzIGdhbW1hIGFuZCByZWdhbW1hIExVVC4KPiA+ Cj4gPiBUaGUgZXhpc3Rpbmcga21zX2NvbG9yQCB0ZXN0cyBhcmUgd3JpdHRlbiBjb3JyZWN0bHkg YWxyZWFkeSwgc28KPiA+IGFueXRoaW5nIHRoYXQgbG9va3Mgc2hhcmVkIGluIHRoZXNlIGlzIHJl YWxseSBqdXN0IHRvIHZlcmlmeSB0aGF0IHdlJ3JlCj4gPiBubyBsb25nZXIgZG9pbmcgYW55IHN0 cmFuZ2UgdGVzdCBzcGVjaWZpYyB3b3JrYXJvdW5kcyBvdXRzaWRlIG9mIHRoZQo+ID4gc3BlYyBv ciBkb2N1bWVudGF0aW9uLgo+ID4KPiA+IENjOiBMZW8gTGkgPHN1bnBlbmcubGlAYW1kLmNvbT4K PiA+IENjOiBIYXJyeSBXZW50bGFuZCA8aGFycnkud2VudGxhbmRAYW1kLmNvbT4KPiA+IFNpZ25l ZC1vZmYtYnk6IE5pY2hvbGFzIEthemxhdXNrYXMgPG5pY2hvbGFzLmthemxhdXNrYXNAYW1kLmNv bT4KPgo+IExHVE0sIHRoYW5rcyBmb3IgdGhlIHRlc3QhCj4KPiBSZXZpZXdlZC1ieTogTGVvIExp IDxzdW5wZW5nLmxpQGFtZC5jb20+CgpidHcgd2h5IGlzIHRoaXMgbm90IGEgbmV3IHN1YnRlc3Qg Zm9yIGttc19jb2xvcj8gRnJvbSBhIHF1aWNrIGxvb2sKaXQncyBhbGwgZ2VuZXJpYy4gVGhlIHNw ZWNpZmljIHRlc3RzY2FzZSBmb3IgYW1kcGdwdSAobGlrZQphbWRfYnlwYXNzLmMpIGFsbCBtYWtl IHNlbnNlLCBzaW5jZSB0aGV5IHVzZSBzcGVjaWZpYyBjcmMgdGFwIHBvaW50cwphbmQgY2hlY2sg aHcgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gQnV0IHRoaXMgbG9va3MgbGlrZSBhIGdlbmVyaWMK aXNzdWUgd2l0aCB0aGUgY29sb3IgY29ycmVjdGlvbiBrbXMgc3BlYyAuLi4gQWxzbyBhZGRpbmcg SGFycnkuCi1EYW5pZWwKCj4KPiA+IC0tLQo+ID4gICB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzICAg fCAgIDEgKwo+ID4gICB0ZXN0cy9hbWRncHUvYW1kX2NvbG9yLmMgfCA0MDUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgIHRlc3RzL2FtZGdwdS9tZXNvbi5idWls ZCB8ICAgMSArCj4gPiAgIDMgZmlsZXMgY2hhbmdlZCwgNDA3IGluc2VydGlvbnMoKykKPiA+ICAg Y3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2FtZGdwdS9hbWRfY29sb3IuYwo+ID4KPiA+IGRpZmYg LS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ ID4gaW5kZXggMmQ1YzkyOWUuLmVmM2MwM2YyIDEwMDY0NAo+ID4gLS0tIGEvdGVzdHMvTWFrZWZp bGUuc291cmNlcwo+ID4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ID4gQEAgLTYsNiAr Niw3IEBAIE5PVVZFQVVfVEVTVFMgPSBcCj4gPgo+ID4gICBBTURHUFVfVEVTVFMgPSBcCj4gPiAg ICAgICBhbWRncHUvYW1kX2Jhc2ljIFwKPiA+ICsgICAgIGFtZGdwdS9hbWRfY29sb3IgXAo+ID4g ICAgICAgYW1kZ3B1L2FtZF9jc19ub3AgXAo+ID4gICAgICAgYW1kZ3B1L2FtZF9wcmltZSBcCj4g PiAgICAgICBhbWRncHUvYW1kX2FibSBcCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2Ft ZF9jb2xvci5jIGIvdGVzdHMvYW1kZ3B1L2FtZF9jb2xvci5jCj4gPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+ID4gaW5kZXggMDAwMDAwMDAuLjBiYmVlNDNkCj4gPiAtLS0gL2Rldi9udWxsCj4gPiAr KysgYi90ZXN0cy9hbWRncHUvYW1kX2NvbG9yLmMKPiA+IEBAIC0wLDAgKzEsNDA1IEBACj4gPiAr LyoKPiA+ICsgKiBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCj4g PiArICoKPiA+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ID4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4g PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ID4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ID4gKyAqIGFu ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZQo+ID4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gPiArICoKPiA+ICsgKiBUaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs dWRlZCBpbgo+ID4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl IFNvZnR3YXJlLgo+ID4gKyAqCj4gPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiA+ICsgKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSwKPiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiA+ICsgKiBUSEUgQ09QWVJJR0hU IEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg T1IKPiA+ICsgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiA+ICsgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKPiA+ICsgKiBPVEhF UiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gPiArICovCj4gPiArCj4gPiArI2luY2x1ZGUg ImlndC5oIgo+ID4gKwo+ID4gKy8qIChEZSlnYW1tYSBMVVQuICovCj4gPiArdHlwZWRlZiBzdHJ1 Y3QgbHV0IHsKPiA+ICsgICAgIHN0cnVjdCBkcm1fY29sb3JfbHV0ICpkYXRhOwo+ID4gKyAgICAg dWludDMyX3Qgc2l6ZTsKPiA+ICt9IGx1dF90Owo+ID4gKwo+ID4gKy8qIFJHQiBjb2xvci4gKi8K PiA+ICt0eXBlZGVmIHN0cnVjdCBjb2xvciB7Cj4gPiArICAgICBkb3VibGUgcjsKPiA+ICsgICAg IGRvdWJsZSBnOwo+ID4gKyAgICAgZG91YmxlIGI7Cj4gPiArfSBjb2xvcl90Owo+ID4gKwo+ID4g Ky8qIENvbW1vbiB0ZXN0IGRhdGEuICovCj4gPiArdHlwZWRlZiBzdHJ1Y3QgZGF0YSB7Cj4gPiAr ICAgICBpZ3RfZGlzcGxheV90IGRpc3BsYXk7Cj4gPiArICAgICBpZ3RfcGxhbmVfdCAqcHJpbWFy eTsKPiA+ICsgICAgIGlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ID4gKyAgICAgaWd0X3BpcGVfdCAq cGlwZTsKPiA+ICsgICAgIGlndF9waXBlX2NyY190ICpwaXBlX2NyYzsKPiA+ICsgICAgIGRybU1v ZGVNb2RlSW5mbyAqbW9kZTsKPiA+ICsgICAgIGVudW0gcGlwZSBwaXBlX2lkOwo+ID4gKyAgICAg aW50IGZkOwo+ID4gKyAgICAgaW50IHc7Cj4gPiArICAgICBpbnQgaDsKPiA+ICsgICAgIHVpbnQz Ml90IHJlZ2FtbWFfbHV0X3NpemU7Cj4gPiArICAgICB1aW50MzJfdCBkZWdhbW1hX2x1dF9zaXpl Owo+ID4gK30gZGF0YV90Owo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGx1dF9pbml0KGx1dF90ICps dXQsIHVpbnQzMl90IHNpemUpCj4gPiArewo+ID4gKyAgICAgaWd0X2Fzc2VydChzaXplID4gMCk7 Cj4gPiArCj4gPiArICAgICBsdXQtPnNpemUgPSBzaXplOwo+ID4gKyAgICAgbHV0LT5kYXRhID0g bWFsbG9jKHNpemUgKiBzaXplb2Yoc3RydWN0IGRybV9jb2xvcl9sdXQpKTsKPiA+ICsgICAgIGln dF9hc3NlcnQobHV0KTsKPiA+ICt9Cj4gPiArCj4gPiArLyogR2VuZXJhdGVzIHRoZSBsaW5lYXIg Z2FtbWEgTFVULiAqLwo+ID4gK3N0YXRpYyB2b2lkIGx1dF9nZW5fbGluZWFyKGx1dF90ICpsdXQs IHVpbnQxNl90IG1hc2spCj4gPiArewo+ID4gKyAgICAgdWludDMyX3QgbiA9IGx1dC0+c2l6ZSAt IDE7Cj4gPiArICAgICB1aW50MzJfdCBpOwo+ID4gKwo+ID4gKyAgICAgZm9yIChpID0gMDsgaSA8 IGx1dC0+c2l6ZTsgKytpKSB7Cj4gPiArICAgICAgICAgICAgIHVpbnQzMl90IHYgPSAoaSAqIDB4 ZmZmZiAvIG4pICYgbWFzazsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgbHV0LT5kYXRhW2ldLnJl ZCA9IHY7Cj4gPiArICAgICAgICAgICAgIGx1dC0+ZGF0YVtpXS5ibHVlID0gdjsKPiA+ICsgICAg ICAgICAgICAgbHV0LT5kYXRhW2ldLmdyZWVuID0gdjsKPiA+ICsgICAgIH0KPiA+ICt9Cj4gPiAr Cj4gPiArLyogR2VuZXJhdGVzIHRoZSBzUkdCIGRlZ2FtbWEgTFVULiAqLwo+ID4gK3N0YXRpYyB2 b2lkIGx1dF9nZW5fZGVnYW1tYV9zcmdiKGx1dF90ICpsdXQsIHVpbnQxNl90IG1hc2spCj4gPiAr ewo+ID4gKyAgICAgZG91YmxlIHJhbmdlID0gbHV0LT5zaXplIC0gMTsKPiA+ICsgICAgIHVpbnQz Ml90IGk7Cj4gPiArCj4gPiArICAgICBmb3IgKGkgPSAwOyBpIDwgbHV0LT5zaXplOyArK2kpIHsK PiA+ICsgICAgICAgICAgICAgZG91YmxlIHUsIGNvZWZmOwo+ID4gKyAgICAgICAgICAgICB1aW50 MzJfdCB2Owo+ID4gKwo+ID4gKyAgICAgICAgICAgICB1ID0gaSAvIHJhbmdlOwo+ID4gKyAgICAg ICAgICAgICBjb2VmZiA9IHUgPD0gMC4wNDA0NDk5MzYgPyAodSAvIDEyLjkyKQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAocG93KCh1ICsgMC4wNTUpIC8gMS4w NTUsIDIuNCkpOwo+ID4gKyAgICAgICAgICAgICB2ID0gKHVpbnQzMl90KShjb2VmZiAqIDB4ZmZm ZikgJiBtYXNrOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICBsdXQtPmRhdGFbaV0ucmVkID0gdjsK PiA+ICsgICAgICAgICAgICAgbHV0LT5kYXRhW2ldLmJsdWUgPSB2Owo+ID4gKyAgICAgICAgICAg ICBsdXQtPmRhdGFbaV0uZ3JlZW4gPSB2Owo+ID4gKyAgICAgfQo+ID4gK30KPiA+ICsKPiA+ICsv KiBHZW5lcmF0ZXMgdGhlIHNSR0IgZ2FtbWEgTFVULiAqLwo+ID4gK3N0YXRpYyB2b2lkIGx1dF9n ZW5fcmVnYW1tYV9zcmdiKGx1dF90ICpsdXQsIHVpbnQxNl90IG1hc2spCj4gPiArewo+ID4gKyAg ICAgZG91YmxlIHJhbmdlID0gbHV0LT5zaXplIC0gMTsKPiA+ICsgICAgIHVpbnQzMl90IGk7Cj4g PiArCj4gPiArICAgICBmb3IgKGkgPSAwOyBpIDwgbHV0LT5zaXplOyArK2kpIHsKPiA+ICsgICAg ICAgICAgICAgZG91YmxlIHUsIGNvZWZmOwo+ID4gKyAgICAgICAgICAgICB1aW50MzJfdCB2Owo+ ID4gKwo+ID4gKyAgICAgICAgICAgICB1ID0gaSAvIHJhbmdlOwo+ID4gKyAgICAgICAgICAgICBj b2VmZiA9IHUgPD0gMC4wMDMxMzA4MCA/ICgxMi45MiAqIHUpCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogKDEuMDU1ICogcG93KHUsIDEuMCAvIDIuNCkgLSAwLjA1 NSk7Cj4gPiArICAgICAgICAgICAgIHYgPSAodWludDMyX3QpKGNvZWZmICogMHhmZmZmKSAmIG1h c2s7Cj4gPiArCj4gPiArICAgICAgICAgICAgIGx1dC0+ZGF0YVtpXS5yZWQgPSB2Owo+ID4gKyAg ICAgICAgICAgICBsdXQtPmRhdGFbaV0uYmx1ZSA9IHY7Cj4gPiArICAgICAgICAgICAgIGx1dC0+ ZGF0YVtpXS5ncmVlbiA9IHY7Cj4gPiArICAgICB9Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2 b2lkIGx1dF9mcmVlKGx1dF90ICpsdXQpCj4gPiArewo+ID4gKyAgICAgaWYgKGx1dC0+ZGF0YSkg ewo+ID4gKyAgICAgICAgICAgICBmcmVlKGx1dC0+ZGF0YSk7Cj4gPiArICAgICAgICAgICAgIGx1 dC0+ZGF0YSA9IE5VTEw7Cj4gPiArICAgICB9Cj4gPiArCj4gPiArICAgICBsdXQtPnNpemUgPSAw Owo+ID4gK30KPiA+ICsKPiA+ICsvKiBGaWxscyBhIEZCIHdpdGggdGhlIHNvbGlkIGNvbG9yIGdp dmVuLiAqLwo+ID4gK3N0YXRpYyB2b2lkIGRyYXdfY29sb3IoaWd0X2ZiX3QgKmZiLCBkb3VibGUg ciwgZG91YmxlIGcsIGRvdWJsZSBiKQo+ID4gK3sKPiA+ICsgICAgIGNhaXJvX3QgKmNyID0gaWd0 X2dldF9jYWlyb19jdHgoZmItPmZkLCBmYik7Cj4gPiArCj4gPiArICAgICBjYWlyb19zZXRfb3Bl cmF0b3IoY3IsIENBSVJPX09QRVJBVE9SX1NPVVJDRSk7Cj4gPiArICAgICBpZ3RfcGFpbnRfY29s b3IoY3IsIDAsIDAsIGZiLT53aWR0aCwgZmItPmhlaWdodCwgciwgZywgYik7Cj4gPiArICAgICBp Z3RfcHV0X2NhaXJvX2N0eChmYi0+ZmQsIGZiLCBjcik7Cj4gPiArfQo+ID4gKwo+ID4gKy8qIEdl bmVyYXRlcyB0aGUgZ2FtbWEgdGVzdCBwYXR0ZXJuLiAqLwo+ID4gK3N0YXRpYyB2b2lkIGRyYXdf Z2FtbWFfdGVzdChpZ3RfZmJfdCAqZmIpCj4gPiArewo+ID4gKyAgICAgY2Fpcm9fdCAqY3IgPSBp Z3RfZ2V0X2NhaXJvX2N0eChmYi0+ZmQsIGZiKTsKPiA+ICsgICAgIGludCBnaCA9IGZiLT5oZWln aHQgLyA0Owo+ID4gKwo+ID4gKyAgICAgaWd0X3BhaW50X2NvbG9yX2dyYWRpZW50KGNyLCAwLCAw LCBmYi0+d2lkdGgsIGdoLCAxLCAxLCAxKTsKPiA+ICsgICAgIGlndF9wYWludF9jb2xvcl9ncmFk aWVudChjciwgMCwgZ2gsIGZiLT53aWR0aCwgZ2gsIDEsIDAsIDApOwo+ID4gKyAgICAgaWd0X3Bh aW50X2NvbG9yX2dyYWRpZW50KGNyLCAwLCBnaCAqIDIsIGZiLT53aWR0aCwgZ2gsIDAsIDEsIDAp Owo+ID4gKyAgICAgaWd0X3BhaW50X2NvbG9yX2dyYWRpZW50KGNyLCAwLCBnaCAqIDMsIGZiLT53 aWR0aCwgZ2gsIDAsIDAsIDEpOwo+ID4gKwo+ID4gKyAgICAgaWd0X3B1dF9jYWlyb19jdHgoZmIt PmZkLCBmYiwgY3IpOwo+ID4gK30KPiA+ICsKPiA+ICsvKiBTZXRzIHRoZSBkZWdhbW1hIExVVC4g Ki8KPiA+ICtzdGF0aWMgdm9pZCBzZXRfZGVnYW1tYV9sdXQoZGF0YV90ICpkYXRhLCBsdXRfdCBj b25zdCAqbHV0KQo+ID4gK3sKPiA+ICsgICAgIHNpemVfdCBzaXplID0gbHV0ID8gc2l6ZW9mKGx1 dC0+ZGF0YVswXSkgKiBsdXQtPnNpemUgOiAwOwo+ID4gKyAgICAgY29uc3Qgdm9pZCAqcHRyID0g bHV0ID8gbHV0LT5kYXRhIDogTlVMTDsKPiA+ICsKPiA+ICsgICAgIGlndF9waXBlX29ial9yZXBs YWNlX3Byb3BfYmxvYihkYXRhLT5waXBlLCBJR1RfQ1JUQ19ERUdBTU1BX0xVVCwgcHRyLAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUpOwo+ID4gK30KPiA+ICsK PiA+ICsvKiBTZXRzIHRoZSByZWdhbW1hIExVVC4gKi8KPiA+ICtzdGF0aWMgdm9pZCBzZXRfcmVn YW1tYV9sdXQoZGF0YV90ICpkYXRhLCBsdXRfdCBjb25zdCAqbHV0KQo+ID4gK3sKPiA+ICsgICAg IHNpemVfdCBzaXplID0gbHV0ID8gc2l6ZW9mKGx1dC0+ZGF0YVswXSkgKiBsdXQtPnNpemUgOiAw Owo+ID4gKyAgICAgY29uc3Qgdm9pZCAqcHRyID0gbHV0ID8gbHV0LT5kYXRhIDogTlVMTDsKPiA+ ICsKPiA+ICsgICAgIGlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihkYXRhLT5waXBlLCBJ R1RfQ1JUQ19HQU1NQV9MVVQsIHB0ciwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplKTsKPiA+ICt9Cj4gPiArCj4gPiArLyogQ29tbW9uIHRlc3Qgc2V0dXAuICov Cj4gPiArc3RhdGljIHZvaWQgdGVzdF9pbml0KGRhdGFfdCAqZGF0YSkKPiA+ICt7Cj4gPiArICAg ICBpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7Cj4gPiArCj4gPiArICAg ICAvKiBJdCBkb2Vzbid0IG1hdHRlciB3aGljaCBwaXBlIHdlIGNob29zZSBvbiBhbWRwZ3UuICov Cj4gPiArICAgICBkYXRhLT5waXBlX2lkID0gUElQRV9BOwo+ID4gKyAgICAgZGF0YS0+cGlwZSA9 ICZkYXRhLT5kaXNwbGF5LnBpcGVzW2RhdGEtPnBpcGVfaWRdOwo+ID4gKwo+ID4gKyAgICAgaWd0 X2Rpc3BsYXlfcmVzZXQoZGlzcGxheSk7Cj4gPiArCj4gPiArICAgICBkYXRhLT5vdXRwdXQgPSBp Z3RfZ2V0X3NpbmdsZV9vdXRwdXRfZm9yX3BpcGUoZGlzcGxheSwgZGF0YS0+cGlwZV9pZCk7Cj4g PiArICAgICBpZ3RfcmVxdWlyZShkYXRhLT5vdXRwdXQpOwo+ID4gKwo+ID4gKyAgICAgZGF0YS0+ bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUoZGF0YS0+b3V0cHV0KTsKPiA+ICsgICAgIGlndF9h c3NlcnQoZGF0YS0+bW9kZSk7Cj4gPiArCj4gPiArICAgICBkYXRhLT5wcmltYXJ5ID0KPiA+ICsg ICAgICAgICAgICAgaWd0X3BpcGVfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+cGlwZSwgRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSk7Cj4gPiArCj4gPiArICAgICBkYXRhLT5waXBlX2NyYyA9IGlndF9waXBl X2NyY19uZXcoZGF0YS0+ZmQsIGRhdGEtPnBpcGVfaWQsCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSU5URUxfUElQRV9DUkNfU09VUkNFX0FVVE8pOwo+ID4gKwo+ ID4gKyAgICAgaWd0X291dHB1dF9zZXRfcGlwZShkYXRhLT5vdXRwdXQsIGRhdGEtPnBpcGVfaWQp Owo+ID4gKwo+ID4gKyAgICAgZGF0YS0+ZGVnYW1tYV9sdXRfc2l6ZSA9Cj4gPiArICAgICAgICAg ICAgIGlndF9waXBlX29ial9nZXRfcHJvcChkYXRhLT5waXBlLCBJR1RfQ1JUQ19ERUdBTU1BX0xV VF9TSVpFKTsKPiA+ICsgICAgIGlndF9hc3NlcnRfbHQoMCwgZGF0YS0+ZGVnYW1tYV9sdXRfc2l6 ZSk7Cj4gPiArCj4gPiArICAgICBkYXRhLT5yZWdhbW1hX2x1dF9zaXplID0KPiA+ICsgICAgICAg ICAgICAgaWd0X3BpcGVfb2JqX2dldF9wcm9wKGRhdGEtPnBpcGUsIElHVF9DUlRDX0dBTU1BX0xV VF9TSVpFKTsKPiA+ICsgICAgIGlndF9hc3NlcnRfbHQoMCwgZGF0YS0+cmVnYW1tYV9sdXRfc2l6 ZSk7Cj4gPiArCj4gPiArICAgICBkYXRhLT53ID0gZGF0YS0+bW9kZS0+aGRpc3BsYXk7Cj4gPiAr ICAgICBkYXRhLT5oID0gZGF0YS0+bW9kZS0+dmRpc3BsYXk7Cj4gPiArfQo+ID4gKwo+ID4gKy8q IENvbW1vbiB0ZXN0IGNsZWFudXAuICovCj4gPiArc3RhdGljIHZvaWQgdGVzdF9maW5pKGRhdGFf dCAqZGF0YSkKPiA+ICt7Cj4gPiArICAgICBpZ3RfcGlwZV9jcmNfZnJlZShkYXRhLT5waXBlX2Ny Yyk7Cj4gPiArICAgICBpZ3RfZGlzcGxheV9yZXNldCgmZGF0YS0+ZGlzcGxheSk7Cj4gPiArfQo+ ID4gKwo+ID4gKy8qCj4gPiArICogT2xkZXIgdmVyc2lvbnMgb2YgYW1kZ3B1IHdvdWxkIHB1dCB0 aGUgcGlwZSBpbnRvIGJ5cGFzcyBtb2RlIGZvciBkZWdhbW1hCj4gPiArICogd2hlbiBwYXNzZWQg YSBsaW5lYXIgc1JHQiBtYXRyaXggYnV0IHdvdWxkIHN0aWxsIHVzZSBhbiBzUkdCIHJlZ2FtbWEK PiA+ICsgKiBtYXRyaXggaWYgbm90IHBhc3NlZCBhbnkuIFRoZSB3aG9sZSBwaXBlIHNob3VsZCBi ZSBpbiBsaW5lYXIgYnlwYXNzIG1vZGUKPiA+ICsgKiB3aGVuIGFsbCB0aGUgbWF0cmljZXMgYXJl IE5VTEwgLSBDUkNzIGZvciBhIGxpbmVhciBkZWdhbW1hIG1hdHJpeCBhbmQKPiA+ICsgKiBhIE5V TEwgb25lIHNob3VsZCBtYXRjaC4KPiA+ICsgKi8KPiA+ICtzdGF0aWMgdm9pZCB0ZXN0X2NydGNf bGluZWFyX2RlZ2FtbWEoZGF0YV90ICpkYXRhKQo+ID4gK3sKPiA+ICsgICAgIGlndF9kaXNwbGF5 X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiA+ICsgICAgIGlndF9jcmNfdCByZWZfY3Jj LCBuZXdfY3JjOwo+ID4gKyAgICAgaWd0X2ZiX3QgYWZiOwo+ID4gKyAgICAgbHV0X3QgbHV0X2xp bmVhcjsKPiA+ICsKPiA+ICsgICAgIHRlc3RfaW5pdChkYXRhKTsKPiA+ICsKPiA+ICsgICAgIGx1 dF9pbml0KCZsdXRfbGluZWFyLCBkYXRhLT5kZWdhbW1hX2x1dF9zaXplKTsKPiA+ICsgICAgIGx1 dF9nZW5fbGluZWFyKCZsdXRfbGluZWFyLCAweGZmZmYpOwo+ID4gKwo+ID4gKyAgICAgaWd0X2Ny ZWF0ZV9mYihkYXRhLT5mZCwgZGF0YS0+dywgZGF0YS0+aCwgRFJNX0ZPUk1BVF9YUkdCODg4OCwg MCwgJmFmYik7Cj4gPiArICAgICBkcmF3X2dhbW1hX3Rlc3QoJmFmYik7Cj4gPiArCj4gPiArICAg ICAvKiBEcmF3IHRoZSByZWZlcmVuY2UgaW1hZ2UuICovCj4gPiArICAgICBpZ3RfcGxhbmVfc2V0 X2ZiKGRhdGEtPnByaW1hcnksICZhZmIpOwo+ID4gKyAgICAgc2V0X3JlZ2FtbWFfbHV0KGRhdGEs IE5VTEwpOwo+ID4gKyAgICAgc2V0X2RlZ2FtbWFfbHV0KGRhdGEsIE5VTEwpOwo+ID4gKyAgICAg aWd0X2Rpc3BsYXlfY29tbWl0X2F0b21pYyhkaXNwbGF5LCBEUk1fTU9ERV9BVE9NSUNfQUxMT1df TU9ERVNFVCwgTlVMTCk7Cj4gPiArCj4gPiArICAgICBpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMo ZGF0YS0+cGlwZV9jcmMsICZyZWZfY3JjKTsKPiA+ICsKPiA+ICsgICAgIC8qIEFwcGx5IGEgbGlu ZWFyIGRlZ2FtbWEuIFRoZSByZXN1bHQgc2hvdWxkIHJlbWFpbiB0aGUgc2FtZS4gKi8KPiA+ICsg ICAgIHNldF9kZWdhbW1hX2x1dChkYXRhLCAmbHV0X2xpbmVhcik7Cj4gPiArICAgICBpZ3RfZGlz cGxheV9jb21taXRfYXRvbWljKGRpc3BsYXksIDAsIE5VTEwpOwo+ID4gKwo+ID4gKyAgICAgaWd0 X3BpcGVfY3JjX2NvbGxlY3RfY3JjKGRhdGEtPnBpcGVfY3JjLCAmbmV3X2NyYyk7Cj4gPiArICAg ICBpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmcmVmX2NyYywgJm5ld19jcmMpOwo+ID4gKwo+ID4gKyAg ICAgdGVzdF9maW5pKGRhdGEpOwo+ID4gKyAgICAgaWd0X3JlbW92ZV9mYihkYXRhLT5mZCwgJmFm Yik7Cj4gPiArICAgICBsdXRfZnJlZSgmbHV0X2xpbmVhcik7Cj4gPiArfQo+ID4gKwo+ID4gKy8q Cj4gPiArICogT2xkZXIgdmVyc2lvbnMgb2YgYW1kZ3B1IHdvdWxkIGFwcGx5IHRoZSBDUlRDIHJl Z2FtbWEgb24gdG9wIG9mIGEgY3VzdG9tCj4gPiArICogc1JHQiByZWdhbW1hIG1hdHJpeCB3aXRo IGluY29ycmVjdCBjYWxjdWxhdGlvbnMgb3Igcm91bmRpbmcgZXJyb3JzLgo+ID4gKyAqIElmIHdl IHB1dCB0aGUgcGlwZSBpbnRvIGJ5cGFzcyBvciB1c2UgdGhlIGhhcmR3YXJlIGRlZmluZWQgc1JH QiByZWdhbW1hCj4gPiArICogb24gdGhlIHBsYW5lIHRoZW4gd2UgY2FuIGFuZCBzaG91bGQgZ2V0 IHRoZSBjb3JyZWN0IENSVEMgd2hlbiBwYXNzaW5nIGEKPiA+ICsgKiBsaW5lciByZWdhbW1hIG1h dHJpeCB0byBEUk0uCj4gPiArICovCj4gPiArc3RhdGljIHZvaWQgdGVzdF9jcnRjX2xpbmVhcl9y ZWdhbW1hKGRhdGFfdCAqZGF0YSkKPiA+ICt7Cj4gPiArICAgICBpZ3RfZGlzcGxheV90ICpkaXNw bGF5ID0gJmRhdGEtPmRpc3BsYXk7Cj4gPiArICAgICBpZ3RfY3JjX3QgcmVmX2NyYywgbmV3X2Ny YzsKPiA+ICsgICAgIGlndF9mYl90IGFmYjsKPiA+ICsgICAgIGx1dF90IGx1dF9saW5lYXI7Cj4g PiArCj4gPiArICAgICB0ZXN0X2luaXQoZGF0YSk7Cj4gPiArCj4gPiArICAgICBsdXRfaW5pdCgm bHV0X2xpbmVhciwgZGF0YS0+cmVnYW1tYV9sdXRfc2l6ZSk7Cj4gPiArICAgICBsdXRfZ2VuX2xp bmVhcigmbHV0X2xpbmVhciwgMHhmZmZmKTsKPiA+ICsKPiA+ICsgICAgIGlndF9jcmVhdGVfZmIo ZGF0YS0+ZmQsIGRhdGEtPncsIGRhdGEtPmgsIERSTV9GT1JNQVRfWFJHQjg4ODgsIDAsICZhZmIp Owo+ID4gKyAgICAgZHJhd19nYW1tYV90ZXN0KCZhZmIpOwo+ID4gKwo+ID4gKyAgICAgLyogRHJh dyB0aGUgcmVmZXJlbmNlIGltYWdlLiAqLwo+ID4gKyAgICAgaWd0X3BsYW5lX3NldF9mYihkYXRh LT5wcmltYXJ5LCAmYWZiKTsKPiA+ICsgICAgIHNldF9yZWdhbW1hX2x1dChkYXRhLCBOVUxMKTsK PiA+ICsgICAgIHNldF9kZWdhbW1hX2x1dChkYXRhLCBOVUxMKTsKPiA+ICsgICAgIGlndF9kaXNw bGF5X2NvbW1pdF9hdG9taWMoZGlzcGxheSwgRFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQs IE5VTEwpOwo+ID4gKwo+ID4gKyAgICAgaWd0X3BpcGVfY3JjX2NvbGxlY3RfY3JjKGRhdGEtPnBp cGVfY3JjLCAmcmVmX2NyYyk7Cj4gPiArCj4gPiArICAgICAvKiBBcHBseSBhIGxpbmVhciBkZWdh bW1hLiBUaGUgcmVzdWx0IHNob3VsZCByZW1haW4gdGhlIHNhbWUuICovCj4gPiArICAgICBzZXRf cmVnYW1tYV9sdXQoZGF0YSwgJmx1dF9saW5lYXIpOwo+ID4gKyAgICAgaWd0X2Rpc3BsYXlfY29t bWl0X2F0b21pYyhkaXNwbGF5LCAwLCBOVUxMKTsKPiA+ICsKPiA+ICsgICAgIGlndF9waXBlX2Ny Y19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywgJm5ld19jcmMpOwo+ID4gKyAgICAgaWd0X2Fz c2VydF9jcmNfZXF1YWwoJnJlZl9jcmMsICZuZXdfY3JjKTsKPiA+ICsKPiA+ICsgICAgIHRlc3Rf ZmluaShkYXRhKTsKPiA+ICsgICAgIGlndF9yZW1vdmVfZmIoZGF0YS0+ZmQsICZhZmIpOwo+ID4g KyAgICAgbHV0X2ZyZWUoJmx1dF9saW5lYXIpOwo+ID4gK30KPiA+ICsKPiA+ICsvKgo+ID4gKyAq IFRlc3RzIExVVCBhY2N1cmFjeS4gQ1JUQyByZWdhbW1hIGFuZCBDUlRDIGRlZ2FtbWEgc2hvdWxk IHByb2R1Y2UgYSB2aXN1YWxseQo+ID4gKyAqIGNvcnJlY3QgaW1hZ2Ugd2hlbiB1c2VkLiBIYXJk d2FyZSBsaW1pdGF0aW9ucyBvbiBkZWdhbW1hIHByZXZlbnQgdGhpcyBmcm9tCj4gPiArICogYmVp bmcgQ1JDIGxldmVsIGFjY3VyYXRlIGFjcm9zcyBhIGZ1bGwgdGVzdCBncmFkaWVudCBidXQgbW9z dCB2YWx1ZXMgc2hvdWxkCj4gPiArICogc3RpbGwgbWF0Y2guCj4gPiArICoKPiA+ICsgKiBUaGlz IHRlc3QgY2FuJ3QgcGFzcyBvbiBEQ0UgYmVjYXVzZSBpdCBkb2Vzbid0IHN1cHBvcnQgbm9uLWxp bmVhciBkZWdhbW1hLgo+ID4gKyAqLwo+ID4gK3N0YXRpYyB2b2lkIHRlc3RfY3J0Y19sdXRfYWNj dXJhY3koZGF0YV90ICpkYXRhKQo+ID4gK3sKPiA+ICsgICAgIC8qCj4gPiArICAgICAgKiBDaGFu bmVscyBhcmUgaW5kZXBlbmRlbnQsIHNvIHdlIGNhbiB2ZXJpZnkgbXVsdGlwbGUgY29sb3JzIGF0 IHRoZQo+ID4gKyAgICAgICogc2FtZSB0aW1lIGZvciBpbXByb3ZlZCBwZXJmb3JtYW5jZS4KPiA+ ICsgICAgICAqLwo+ID4gKyAgICAgc3RhdGljIGNvbnN0IGNvbG9yX3QgY29sb3JzW10gPSB7Cj4g PiArICAgICAgICAgICAgIHsgMS4wMCwgMS4wMCwgMS4wMCB9LAo+ID4gKyAgICAgICAgICAgICB7 IDAuOTAsIDAuODUsIDAuNzUgfSwgLyogMC45NSBmYWlscyAqLwo+ID4gKyAgICAgICAgICAgICB7 IDAuNzAsIDAuNjUsIDAuNjAgfSwKPiA+ICsgICAgICAgICAgICAgeyAwLjU1LCAwLjUwLCAwLjQ1 IH0sCj4gPiArICAgICAgICAgICAgIHsgMC40MCwgMC4zNSwgMC4zMCB9LAo+ID4gKyAgICAgICAg ICAgICB7IDAuMjUsIDAuMjAsIDAuMTUgfSwKPiA+ICsgICAgICAgICAgICAgeyAwLjEwLCAwLjA0 LCAwLjAyIH0sIC8qIDAuMDUgZmFpbHMgKi8KPiA+ICsgICAgICAgICAgICAgeyAwLjAwLCAwLjAw LCAwLjAwIH0sCj4gPiArICAgICB9Owo+ID4gKyAgICAgaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9 ICZkYXRhLT5kaXNwbGF5Owo+ID4gKyAgICAgaWd0X2NyY190IHJlZl9jcmMsIG5ld19jcmM7Cj4g PiArICAgICBpZ3RfZmJfdCBhZmI7Cj4gPiArICAgICBsdXRfdCBsdXRfZGVnYW1tYSwgbHV0X3Jl Z2FtbWE7Cj4gPiArICAgICBpbnQgaSwgdywgaDsKPiA+ICsKPiA+ICsgICAgIHRlc3RfaW5pdChk YXRhKTsKPiA+ICsKPiA+ICsgICAgIGx1dF9pbml0KCZsdXRfZGVnYW1tYSwgZGF0YS0+ZGVnYW1t YV9sdXRfc2l6ZSk7Cj4gPiArICAgICBsdXRfZ2VuX2RlZ2FtbWFfc3JnYigmbHV0X2RlZ2FtbWEs IDB4ZmZmZik7Cj4gPiArCj4gPiArICAgICBsdXRfaW5pdCgmbHV0X3JlZ2FtbWEsIGRhdGEtPnJl Z2FtbWFfbHV0X3NpemUpOwo+ID4gKyAgICAgbHV0X2dlbl9yZWdhbW1hX3NyZ2IoJmx1dF9yZWdh bW1hLCAweGZmZmYpOwo+ID4gKwo+ID4gKyAgICAgLyogRG9uJ3QgZHJhdyBhY3Jvc3MgdGhlIHdo b2xlIHNjcmVlbiB0byBpbXByb3ZlIHBlcmYuICovCj4gPiArICAgICB3ID0gNjQ7Cj4gPiArICAg ICBoID0gNjQ7Cj4gPiArCj4gPiArICAgICBpZ3RfY3JlYXRlX2ZiKGRhdGEtPmZkLCB3LCBoLCBE Uk1fRk9STUFUX1hSR0I4ODg4LCAwLCAmYWZiKTsKPiA+ICsgICAgIGlndF9wbGFuZV9zZXRfZmIo ZGF0YS0+cHJpbWFyeSwgJmFmYik7Cj4gPiArICAgICBpZ3RfZGlzcGxheV9jb21taXRfYXRvbWlj KGRpc3BsYXksIERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VULCBOVUxMKTsKPiA+ICsKPiA+ ICsgICAgIC8qIFRlc3QgY29sb3JzLiAqLwo+ID4gKyAgICAgZm9yIChpID0gMDsgaSA8IEFSUkFZ X1NJWkUoY29sb3JzKTsgKytpKSB7Cj4gPiArICAgICAgICAgICAgIGNvbG9yX3QgY29sID0gY29s b3JzW2ldOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICBpZ3RfaW5mbygiVGVzdGluZyBjb2xvciAo JS4yZiwgJS4yZiwgJS4yZikgLi4uXG4iLCBjb2wuciwgY29sLmcsCj4gPiArICAgICAgICAgICAg ICAgICAgICAgIGNvbC5iKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgZHJhd19jb2xvcigmYWZi LCBjb2wuciwgY29sLmcsIGNvbC5iKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgc2V0X3JlZ2Ft bWFfbHV0KGRhdGEsIE5VTEwpOwo+ID4gKyAgICAgICAgICAgICBzZXRfZGVnYW1tYV9sdXQoZGF0 YSwgTlVMTCk7Cj4gPiArICAgICAgICAgICAgIGlndF9kaXNwbGF5X2NvbW1pdF9hdG9taWMoZGlz cGxheSwgMCwgTlVMTCk7Cj4gPiArCj4gPiArICAgICAgICAgICAgIGlndF9waXBlX2NyY19jb2xs ZWN0X2NyYyhkYXRhLT5waXBlX2NyYywgJnJlZl9jcmMpOwo+ID4gKwo+ID4gKyAgICAgICAgICAg ICBzZXRfZGVnYW1tYV9sdXQoZGF0YSwgJmx1dF9kZWdhbW1hKTsKPiA+ICsgICAgICAgICAgICAg c2V0X3JlZ2FtbWFfbHV0KGRhdGEsICZsdXRfcmVnYW1tYSk7Cj4gPiArICAgICAgICAgICAgIGln dF9kaXNwbGF5X2NvbW1pdF9hdG9taWMoZGlzcGxheSwgMCwgTlVMTCk7Cj4gPiArCj4gPiArICAg ICAgICAgICAgIGlndF9waXBlX2NyY19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywgJm5ld19j cmMpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICBpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmcmVmX2Ny YywgJm5ld19jcmMpOwo+ID4gKyAgICAgfQo+ID4gKwo+ID4gKyAgICAgdGVzdF9maW5pKGRhdGEp Owo+ID4gKyAgICAgaWd0X3JlbW92ZV9mYihkYXRhLT5mZCwgJmFmYik7Cj4gPiArICAgICBsdXRf ZnJlZSgmbHV0X3JlZ2FtbWEpOwo+ID4gKyAgICAgbHV0X2ZyZWUoJmx1dF9kZWdhbW1hKTsKPiA+ ICt9Cj4gPiArCj4gPiAraWd0X21haW4KPiA+ICt7Cj4gPiArICAgICBkYXRhX3QgZGF0YTsKPiA+ ICsKPiA+ICsgICAgIGlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiA+ICsKPiA+ICsgICAgIG1l bXNldCgmZGF0YSwgMCwgc2l6ZW9mKGRhdGEpKTsKPiA+ICsKPiA+ICsgICAgIGlndF9maXh0dXJl Cj4gPiArICAgICB7Cj4gPiArICAgICAgICAgICAgIGRhdGEuZmQgPSBkcm1fb3Blbl9kcml2ZXJf bWFzdGVyKERSSVZFUl9BTURHUFUpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICBrbXN0ZXN0X3Nl dF92dF9ncmFwaGljc19tb2RlKCk7Cj4gPiArCj4gPiArICAgICAgICAgICAgIGlndF9kaXNwbGF5 X3JlcXVpcmUoJmRhdGEuZGlzcGxheSwgZGF0YS5mZCk7Cj4gPiArICAgICAgICAgICAgIGlndF9y ZXF1aXJlKGRhdGEuZGlzcGxheS5pc19hdG9taWMpOwo+ID4gKyAgICAgICAgICAgICBpZ3RfZGlz cGxheV9yZXF1aXJlX291dHB1dCgmZGF0YS5kaXNwbGF5KTsKPiA+ICsgICAgIH0KPiA+ICsKPiA+ ICsgICAgIGlndF9zdWJ0ZXN0KCJjcnRjLWxpbmVhci1kZWdhbW1hIikgdGVzdF9jcnRjX2xpbmVh cl9kZWdhbW1hKCZkYXRhKTsKPiA+ICsgICAgIGlndF9zdWJ0ZXN0KCJjcnRjLWxpbmVhci1yZWdh bW1hIikgdGVzdF9jcnRjX2xpbmVhcl9yZWdhbW1hKCZkYXRhKTsKPiA+ICsgICAgIGlndF9zdWJ0 ZXN0KCJjcnRjLWx1dC1hY2N1cmFjeSIpIHRlc3RfY3J0Y19sdXRfYWNjdXJhY3koJmRhdGEpOwo+ ID4gKwo+ID4gKyAgICAgaWd0X2ZpeHR1cmUKPiA+ICsgICAgIHsKPiA+ICsgICAgICAgICAgICAg aWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKPiA+ICsgICAgIH0KPiA+ICt9Cj4gPiBk aWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkIGIvdGVzdHMvYW1kZ3B1L21lc29u LmJ1aWxkCj4gPiBpbmRleCAxYWZlY2U4Ni4uNDIwODYzNzQgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0 cy9hbWRncHUvbWVzb24uYnVpbGQKPiA+ICsrKyBiL3Rlc3RzL2FtZGdwdS9tZXNvbi5idWlsZAo+ ID4gQEAgLTQsNiArNCw3IEBAIGFtZGdwdV9kZXBzID0gdGVzdF9kZXBzCj4gPiAgIGlmIGxpYmRy bV9hbWRncHUuZm91bmQoKQo+ID4gICAgICAgYW1kZ3B1X3Byb2dzICs9IFsgJ2FtZF9hYm0nLAo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgJ2FtZF9iYXNpYycsCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAnYW1kX2NvbG9yJywKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICdhbWRf Y3Nfbm9wJywKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICdhbWRfcHJpbWUnLAo+ID4gICAg ICAgICAgICAgICAgICAgICAgIF0KPiA+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBpZ3QtZGV2IG1haWxpbmcgbGlzdAo+IGlndC1kZXZAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2CgoKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJ bnRlbCBDb3Jwb3JhdGlvbgorNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xs LmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1k ZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==