From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Qu, Jim" Subject: =?gb2312?B?tPC4tDogW1BBVENIIHYyXSBkcm0vYW1kZ3B1OiB1cGRhdGUgZG9jdW1lbnRh?= =?gb2312?Q?tion_for_amdgpu=5Fdrv.c?= Date: Wed, 4 Jul 2018 05:14:49 +0000 Message-ID: References: <1530648395-17495-1-git-send-email-sonny.jiang@amd.com>, <5B3C539D.9020208@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5B3C539D.9020208-5C7GfCeVMHo@public.gmane.org> Content-Language: zh-CN List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Zhang, Jerry" , "Jiang, Sonny" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" SSBhbHdheXMgY29uZnVzZSBhbnkgYml0cyBkZWZpbmlhdGlvbiBhYm91dCBzb21lIGZlYXR1cmUg bWFzay4gc3VjaCBhcyBpcF9ibG9ja19tYXNrLCBwZ19tYXNrLCBjZ19tYXNrLCBwcF9mZWF0dXJl X21hc2suIEkgdGhpbmsgb3RoZXIgcGVvcGxlIHdobyBpcyBub3QgZmFtaWxpYXIgd2l0aCBhbWRn cHUgZHJpdmVyIG1heSBoYXZlIHRoZSBzYW1lIHByb2JsZW0uDQoNClNvLCBpcyBpdCBwb3NzaWJs ZSB0byBkZXRhaWwgZXZlcnkgYml0IG1hc2sgb2YgZmVhdHVyZXM/DQoNClRoYW5rcw0KSmltUXUN Cg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K5Y+R5Lu25Lq6OiBh bWQtZ2Z4IDxhbWQtZ2Z4LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPiDku6PooaggWmhh bmcsIEplcnJ5IChKdW53ZWkpIDxKZXJyeS5aaGFuZ0BhbWQuY29tPg0K5Y+R6YCB5pe26Ze0OiAy MDE45bm0N+aciDTml6UgMTI6NTc6MDENCuaUtuS7tuS6ujogSmlhbmcsIFNvbm55OyBhbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0K5Li76aKYOiBSZTogW1BBVENIIHYyXSBkcm0vYW1kZ3B1 OiB1cGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgYW1kZ3B1X2Rydi5jDQoNCk9uIDA3LzA0LzIwMTgg MDQ6MDYgQU0sIFNvbm55IEppYW5nIHdyb3RlOg0KPiBTaWduZWQtb2ZmLWJ5OiBTb25ueSBKaWFu ZyA8c29ubnkuamlhbmdAYW1kLmNvbT4NCkFja2VkLWJ5OiBKdW53ZWkgWmhhbmcgPEplcnJ5Llpo YW5nQGFtZC5jb20+DQoNCj4gLS0tDQo+ICAgRG9jdW1lbnRhdGlvbi9ncHUvYW1kZ3B1LnJzdCAg ICAgICAgICAgIHwgICA3ICsNCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf ZHJ2LmMgfCAyMjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4gICAyIGZpbGVz IGNoYW5nZWQsIDIyMiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KPg0KPiBkaWZmIC0t Z2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvYW1kZ3B1LnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2Ft ZGdwdS5yc3QNCj4gaW5kZXggNzY1YzJhMy4uYTc0MGU0OSAxMDA2NDQNCj4gLS0tIGEvRG9jdW1l bnRhdGlvbi9ncHUvYW1kZ3B1LnJzdA0KPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9hbWRncHUu cnN0DQo+IEBAIC01LDYgKzUsMTMgQEANCj4gICBUaGUgZHJtL2FtZGdwdSBkcml2ZXIgc3VwcG9y dHMgYWxsIEFNRCBSYWRlb24gR1BVcyBiYXNlZCBvbiB0aGUgR3JhcGhpY3MgQ29yZQ0KPiAgIE5l eHQgKEdDTikgYXJjaGl0ZWN0dXJlLg0KPg0KPiArTW9kdWxlIFBhcmFtZXRlcnMNCj4gKz09PT09 PT09PT09PT09PT09DQo+ICsNCj4gK1RoZSBhbWRncHUgZHJpdmVyIHN1cHBvcnRzIHRoZSBmb2xs b3dpbmcgbW9kdWxlIHBhcmFtZXRlcnM6DQo+ICsNCj4gKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMNCj4gKw0KPiAgIENvcmUgRHJpdmVyIElu ZnJhc3RydWN0dXJlDQo+ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4NCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYw0KPiBpbmRleCA5NjM1NzhjLi5jYWY4MWNl IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMN Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jDQo+IEBAIC0x LDEwICsxLDMgQEANCj4gLS8qKg0KPiAtICogXGZpbGUgYW1kZ3B1X2Rydi5jDQo+IC0gKiBBTUQg QW1kZ3B1IGRyaXZlcg0KPiAtICoNCj4gLSAqIFxhdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRo QHZhbGludXguY29tPg0KPiAtICovDQo+IC0NCj4gICAvKg0KPiAgICAqIENvcHlyaWdodCAyMDAw IFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4NCj4gICAgKiBB bGwgUmlnaHRzIFJlc2VydmVkLg0KPiBAQCAtMTM2LDEwMiArMTI5LDIzNSBAQCBpbnQgYW1kZ3B1 X2dwdV9yZWNvdmVyeSA9IC0xOyAvKiBhdXRvICovDQo+ICAgaW50IGFtZGdwdV9lbXVfbW9kZSA9 IDA7DQo+ICAgdWludCBhbWRncHVfc211X21lbW9yeV9wb29sX3NpemUgPSAwOw0KPg0KPiArLyoq DQo+ICsgKiBET0M6IHZyYW1saW1pdCAoaW50KQ0KPiArICogUmVzdHJpY3QgdGhlIHRvdGFsIGFt b3VudCBvZiBWUkFNIGluIE1pQiBmb3IgdGVzdGluZy4gIFRoZSBkZWZhdWx0IGlzIDAgKFVzZSBm dWxsIFZSQU0pLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyh2cmFtbGltaXQsICJSZXN0 cmljdCBWUkFNIGZvciB0ZXN0aW5nLCBpbiBtZWdhYnl0ZXMiKTsNCj4gICBtb2R1bGVfcGFyYW1f bmFtZWQodnJhbWxpbWl0LCBhbWRncHVfdnJhbV9saW1pdCwgaW50LCAwNjAwKTsNCj4NCj4gKy8q Kg0KPiArICogRE9DOiB2aXNfdnJhbWxpbWl0IChpbnQpDQo+ICsgKiBSZXN0cmljdCB0aGUgYW1v dW50IG9mIENQVSB2aXNpYmxlIFZSQU0gaW4gTWlCIGZvciB0ZXN0aW5nLiAgVGhlIGRlZmF1bHQg aXMgMCAoVXNlIGZ1bGwgQ1BVIHZpc2libGUgVlJBTSkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFS TV9ERVNDKHZpc192cmFtbGltaXQsICJSZXN0cmljdCB2aXNpYmxlIFZSQU0gZm9yIHRlc3Rpbmcs IGluIG1lZ2FieXRlcyIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZCh2aXNfdnJhbWxpbWl0LCBh bWRncHVfdmlzX3ZyYW1fbGltaXQsIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzog Z2FydHNpemUgKHVpbnQpDQo+ICsgKiBSZXN0cmljdCB0aGUgc2l6ZSBvZiBHQVJUIGluIE1pYiAo MzIsIDY0LCBldGMuKSBmb3IgdGVzdGluZy4gVGhlIGRlZmF1bHQgaXMgLTEgKFRoZSBzaXplIGRl cGVuZHMgb24gYXNpYykuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGdhcnRzaXplLCAi U2l6ZSBvZiBHQVJUIHRvIHNldHVwIGluIG1lZ2FieXRlcyAoMzIsIDY0LCBldGMuLCAtMT1hdXRv KSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChnYXJ0c2l6ZSwgYW1kZ3B1X2dhcnRfc2l6ZSwg dWludCwgMDYwMCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogZ3R0c2l6ZSAoaW50KQ0KPiArICog UmVzdHJpY3QgdGhlIHNpemUgb2YgR1RUIGRvbWFpbiBpbiBNaUIgZm9yIHRlc3RpbmcuIFRoZSBk ZWZhdWx0IGlzIC0xIChJdCdzIFZSQU0gc2l6ZSBpZiAzR0IgPCBWUkFNIDwgMy80IFJBTSwNCj4g KyAqIG90aGVyd2lzZSAzLzQgUkFNIHNpemUpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVT QyhndHRzaXplLCAiU2l6ZSBvZiB0aGUgR1RUIGRvbWFpbiBpbiBtZWdhYnl0ZXMgKC0xID0gYXV0 bykiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoZ3R0c2l6ZSwgYW1kZ3B1X2d0dF9zaXplLCBp bnQsIDA2MDApOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IG1vdmVyYXRlIChpbnQpDQo+ICsgKiBT ZXQgbWF4aW11bSBidWZmZXIgbWlncmF0aW9uIHJhdGUgaW4gTUIvcy4gVGhlIGRlZmF1bHQgaXMg LTEgKDggTUIvcykuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKG1vdmVyYXRlLCAiTWF4 aW11bSBidWZmZXIgbWlncmF0aW9uIHJhdGUgaW4gTUIvcy4gKDMyLCA2NCwgZXRjLiwgLTE9YXV0 bywgMD0xPWRpc2FibGVkKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChtb3ZlcmF0ZSwgYW1k Z3B1X21vdmVyYXRlLCBpbnQsIDA2MDApOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IGJlbmNobWFy ayAoaW50KQ0KPiArICogUnVuIGJlbmNobWFya3MuIFRoZSBkZWZhdWx0IGlzIDAgKFNraXAgYmVu Y2htYXJrcykuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGJlbmNobWFyaywgIlJ1biBi ZW5jaG1hcmsiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoYmVuY2htYXJrLCBhbWRncHVfYmVu Y2htYXJraW5nLCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHRlc3QgKGludCkN Cj4gKyAqIFRlc3QgQk8gR1RULT5WUkFNIGFuZCBWUkFNLT5HVFQgR1BVIGNvcGllcy4gVGhlIGRl ZmF1bHQgaXMgMCAoU2tpcCB0ZXN0LCBvbmx5IHNldCAxIHRvIHJ1biB0ZXN0KS4NCj4gKyAqLw0K PiAgIE1PRFVMRV9QQVJNX0RFU0ModGVzdCwgIlJ1biB0ZXN0cyIpOw0KPiAgIG1vZHVsZV9wYXJh bV9uYW1lZCh0ZXN0LCBhbWRncHVfdGVzdGluZywgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiAr ICogRE9DOiBhdWRpbyAoaW50KQ0KPiArICogU2V0IEF1ZGlvLiBUaGUgZGVmYXVsdCBpcyAtMSAo RW5hYmxlZCksIHNldCAwIHRvIGRpc2FibGVkIGl0Lg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1f REVTQyhhdWRpbywgIkF1ZGlvIGVuYWJsZSAoLTEgPSBhdXRvLCAwID0gZGlzYWJsZSwgMSA9IGVu YWJsZSkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoYXVkaW8sIGFtZGdwdV9hdWRpbywgaW50 LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBkaXNwX3ByaW9yaXR5IChpbnQpDQo+ICsg KiBTZXQgZGlzcGxheSBQcmlvcml0eSAoMCA9IGF1dG8sIDEgPSBub3JtYWwsIDIgPSBoaWdoKS4g VGhlIGRlZmF1bHQgaXMgMC4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MoZGlzcF9wcmlv cml0eSwgIkRpc3BsYXkgUHJpb3JpdHkgKDAgPSBhdXRvLCAxID0gbm9ybWFsLCAyID0gaGlnaCki KTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoZGlzcF9wcmlvcml0eSwgYW1kZ3B1X2Rpc3BfcHJp b3JpdHksIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogaHdfaTJjIChpbnQpDQo+ ICsgKiBUbyBlbmFibGUgaHcgaTJjIGVuZ2luZS4gVGhlIGRlZmF1bHQgaXMgMCAoRGlzYWJsZWQp Lg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhod19pMmMsICJodyBpMmMgZW5naW5lIGVu YWJsZSAoMCA9IGRpc2FibGUpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKGh3X2kyYywgYW1k Z3B1X2h3X2kyYywgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBwY2llX2dlbjIg KGludCkNCj4gKyAqIFRvIGRpc2FibGUgUENJRSBHZW4yIG1vZGUgKDAgPSBkaXNhYmxlLCAxID0g ZW5hYmxlKS4gVGhlIGRlZmF1bHQgaXMgLTEgKGF1dG8sIGVuYWJsZWQpLg0KPiArICovDQo+ICAg TU9EVUxFX1BBUk1fREVTQyhwY2llX2dlbjIsICJQQ0lFIEdlbjIgbW9kZSAoLTEgPSBhdXRvLCAw ID0gZGlzYWJsZSwgMSA9IGVuYWJsZSkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQocGNpZV9n ZW4yLCBhbWRncHVfcGNpZV9nZW4yLCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6 IG1zaSAoaW50KQ0KPiArICogVG8gZGlzYWJsZSBNU0kgZnVuY3Rpb25hbGl0eSAoMSA9IGVuYWJs ZSwgMCA9IGRpc2FibGUpLiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0bywgZW5hYmxlZCkuDQo+ICsg Ki8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKG1zaSwgIk1TSSBzdXBwb3J0ICgxID0gZW5hYmxlLCAw ID0gZGlzYWJsZSwgLTEgPSBhdXRvKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChtc2ksIGFt ZGdwdV9tc2ksIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogbG9ja3VwX3RpbWVv dXQgKGludCkNCj4gKyAqIFNldCBHUFUgc2NoZWR1bGVyIHRpbWVvdXQgdmFsdWUgaW4gbXMuIEl0 IG11c3QgYmUgPiAwLiAgVGhlIGRlZmF1bHQgaXMgMTAwMDAuDQo+ICsgKi8NCj4gICBNT0RVTEVf UEFSTV9ERVNDKGxvY2t1cF90aW1lb3V0LCAiR1BVIGxvY2t1cCB0aW1lb3V0IGluIG1zID4gMCAo ZGVmYXVsdCAxMDAwMCkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQobG9ja3VwX3RpbWVvdXQs IGFtZGdwdV9sb2NrdXBfdGltZW91dCwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9D OiBkcG0gKGludCkNCj4gKyAqIE92ZXJyaWRlIGZvciBkeW5hbWljIHBvd2VyIG1hbmFnZW1lbnQg c2V0dGluZyAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUpLiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0 bykuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGRwbSwgIkRQTSBzdXBwb3J0ICgxID0g ZW5hYmxlLCAwID0gZGlzYWJsZSwgLTEgPSBhdXRvKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1l ZChkcG0sIGFtZGdwdV9kcG0sIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogZndf bG9hZF90eXBlIChpbnQpDQo+ICsgKiBTZXQgZGlmZmVyZW50IGZpcm13YXJlIGxvYWRpbmcgdHlw ZSBmb3IgZGVidWdnaW5nICgwID0gZGlyZWN0LCAxID0gU01VLCAyID0gUFNQKS4gVGhlIGRlZmF1 bHQgaXMgLTEgKGF1dG8pLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhmd19sb2FkX3R5 cGUsICJmaXJtd2FyZSBsb2FkaW5nIHR5cGUgKDAgPSBkaXJlY3QsIDEgPSBTTVUsIDIgPSBQU1As IC0xID0gYXV0bykiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoZndfbG9hZF90eXBlLCBhbWRn cHVfZndfbG9hZF90eXBlLCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IGFzcG0g KGludCkNCj4gKyAqIFRvIGRpc2FibGUgQVNQTSAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUpLiBU aGUgZGVmYXVsdCBpcyAtMSAoYXV0bywgZW5hYmxlZCkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFS TV9ERVNDKGFzcG0sICJBU1BNIHN1cHBvcnQgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlLCAtMSA9 IGF1dG8pIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKGFzcG0sIGFtZGdwdV9hc3BtLCBpbnQs IDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHJ1bnBtIChpbnQpDQo+ICsgKiBPdmVycmlk ZSBmb3IgcnVudGltZSBwb3dlciBtYW5hZ2VtZW50IGNvbnRyb2wgZm9yIGRHUFVzIGluIFBYL0hH IGxhcHRvcHMuIFRoZSBhbWRncHUgZHJpdmVyIGNhbiBkeW5hbWljYWxseSBwb3dlciBkb3duDQo+ ICsgKiB0aGUgZEdQVSBvbiBQWC9IRyBsYXB0b3BzIHdoZW4gaXQgaXMgaWRsZS4gVGhlIGRlZmF1 bHQgaXMgLTEgKGF1dG8gZW5hYmxlKS4gU2V0dGluZyB0aGUgdmFsdWUgdG8gMCBkaXNhYmxlcyB0 aGlzIGZ1bmN0aW9uYWxpdHkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHJ1bnBtLCAi UFggcnVudGltZSBwbSAoMSA9IGZvcmNlIGVuYWJsZSwgMCA9IGRpc2FibGUsIC0xID0gUFggb25s eSBkZWZhdWx0KSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChydW5wbSwgYW1kZ3B1X3J1bnRp bWVfcG0sIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogaXBfYmxvY2tfbWFzayAo dWludCkNCj4gKyAqIE92ZXJyaWRlIHdoYXQgSVAgYmxvY2tzIGFyZSBlbmFibGVkIG9uIHRoZSBH UFUuICBFYWNoIEdQVSBpcyBhIGNvbGxlY3Rpb24gb2YgSVAgYmxvY2tzIChnZngsIGRpc3BsYXks IHZpZGVvLCBldGMuKS4NCj4gKyAqIFVzZSB0aGlzIHBhcmFtZXRlciB0byBkaXNhYmxlIHNwZWNp ZmljIGJsb2Nrcy4gTm90ZSB0aGF0IHRoZSBJUCBibG9ja3MgZG8gbm90IGhhdmUgYSBmaXhlZCBp bmRleCAoZS5nLiwgeW91IG1pZ2h0IGhhdmUgYSBkZXZpY2UNCj4gKyAqIHdpdGggbXVsdGlwbGUg aW5zdGFuY2VzIG9mIGFuIElQIGJsb2NrKSBzbyB0aGUgbWFzayBpcyBib2FyZCBzcGVjaWZpYy4g VGhlIGRlZmF1bHQgaXMgMHhmZmZmZmZmZiAoZW5hYmxlIGFsbCBibG9ja3Mgb24gYSBkZXZpY2Up Lg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhpcF9ibG9ja19tYXNrLCAiSVAgQmxvY2sg TWFzayAoYWxsIGJsb2NrcyBlbmFibGVkIChkZWZhdWx0KSkiKTsNCj4gICBtb2R1bGVfcGFyYW1f bmFtZWQoaXBfYmxvY2tfbWFzaywgYW1kZ3B1X2lwX2Jsb2NrX21hc2ssIHVpbnQsIDA0NDQpOw0K Pg0KPiArLyoqDQo+ICsgKiBET0M6IGJhcG0gKGludCkNCj4gKyAqIFRvIGRpc2FibGUgQkFQTSAo MCA9IGRpc2FibGUpLiBUaGUgZGVmYXVsdCAtMSAoYXV0bywgZW5hYmxlZCkNCj4gKyAqLw0KPiAg IE1PRFVMRV9QQVJNX0RFU0MoYmFwbSwgIkJBUE0gc3VwcG9ydCAoMSA9IGVuYWJsZSwgMCA9IGRp c2FibGUsIC0xID0gYXV0bykiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoYmFwbSwgYW1kZ3B1 X2JhcG0sIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogZGVlcF9jb2xvciAoaW50 KQ0KPiArICogU2V0IDEgdG8gZW5hYmxlIERlZXAgQ29sb3Igc3VwcG9ydC4gVGhlIGRlZmF1bHQg aXMgMCAoZGlzYWJsZWQpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhkZWVwX2NvbG9y LCAiRGVlcCBDb2xvciBzdXBwb3J0ICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSAoZGVmYXVsdCkp Iik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKGRlZXBfY29sb3IsIGFtZGdwdV9kZWVwX2NvbG9y LCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHZtX3NpemUgKGludCkNCj4gKyAq IE92ZXJyaWRlIHRoZSBzaXplIG9mIHRoZSBHUFUncyBwZXIgY2xpZW50IHZpcnR1YWwgYWRkcmVz cyBzcGFjZSBpbiBHaUIuICBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0b21hdGljIGZvciBlYWNoIGFz aWMpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyh2bV9zaXplLCAiVk0gYWRkcmVzcyBz cGFjZSBzaXplIGluIGdpZ2FieXRlcyAoZGVmYXVsdCA2NEdCKSIpOw0KPiAgIG1vZHVsZV9wYXJh bV9uYW1lZCh2bV9zaXplLCBhbWRncHVfdm1fc2l6ZSwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0K PiArICogRE9DOiB2bV9mcmFnbWVudF9zaXplIChpbnQpDQo+ICsgKiBPdmVycmlkZSBWTSBmcmFn bWVudCBzaXplIGluIGJpdHMgKDQsIDUsIGV0Yy4gNCA9IDY0SywgOSA9IDJNKS4gVGhlIGRlZmF1 bHQgaXMgLTEgKGF1dG9tYXRpYyBmb3IgZWFjaCBhc2ljKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9Q QVJNX0RFU0Modm1fZnJhZ21lbnRfc2l6ZSwgIlZNIGZyYWdtZW50IHNpemUgaW4gYml0cyAoNCwg NSwgZXRjLiA0ID0gNjRLIChkZWZhdWx0KSwgTWF4IDkgPSAyTSkiKTsNCj4gICBtb2R1bGVfcGFy YW1fbmFtZWQodm1fZnJhZ21lbnRfc2l6ZSwgYW1kZ3B1X3ZtX2ZyYWdtZW50X3NpemUsIGludCwg MDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogdm1fYmxvY2tfc2l6ZSAoaW50KQ0KPiArICog T3ZlcnJpZGUgVk0gcGFnZSB0YWJsZSBzaXplIGluIGJpdHMgKGRlZmF1bHQgZGVwZW5kaW5nIG9u IHZtX3NpemUgYW5kIGh3IHNldHVwKS4gVGhlIGRlZmF1bHQgaXMgLTEgKGF1dG9tYXRpYyBmb3Ig ZWFjaCBhc2ljKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0Modm1fYmxvY2tfc2l6ZSwg IlZNIHBhZ2UgdGFibGUgc2l6ZSBpbiBiaXRzIChkZWZhdWx0IGRlcGVuZGluZyBvbiB2bV9zaXpl KSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZCh2bV9ibG9ja19zaXplLCBhbWRncHVfdm1fYmxv Y2tfc2l6ZSwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiB2bV9mYXVsdF9zdG9w IChpbnQpDQo+ICsgKiBTdG9wIG9uIFZNIGZhdWx0IGZvciBkZWJ1Z2dpbmcgKDAgPSBuZXZlciwg MSA9IHByaW50IGZpcnN0LCAyID0gYWx3YXlzKS4gVGhlIGRlZmF1bHQgaXMgMCAoTm8gc3RvcCku DQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHZtX2ZhdWx0X3N0b3AsICJTdG9wIG9uIFZN IGZhdWx0ICgwID0gbmV2ZXIgKGRlZmF1bHQpLCAxID0gcHJpbnQgZmlyc3QsIDIgPSBhbHdheXMp Iik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHZtX2ZhdWx0X3N0b3AsIGFtZGdwdV92bV9mYXVs dF9zdG9wLCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHZtX2RlYnVnIChpbnQp DQo+ICsgKiBEZWJ1ZyBWTSBoYW5kbGluZyAoMCA9IGRpc2FibGVkLCAxID0gZW5hYmxlZCkuIFRo ZSBkZWZhdWx0IGlzIDAgKERpc2FibGVkKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0Mo dm1fZGVidWcsICJEZWJ1ZyBWTSBoYW5kbGluZyAoMCA9IGRpc2FibGVkIChkZWZhdWx0KSwgMSA9 IGVuYWJsZWQpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHZtX2RlYnVnLCBhbWRncHVfdm1f ZGVidWcsIGludCwgMDY0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogdm1fdXBkYXRlX21vZGUg KGludCkNCj4gKyAqIE92ZXJyaWRlIFZNIHVwZGF0ZSBtb2RlLiBWTSB1cGRhdGVkIGJ5IHVzaW5n IENQVSAoMCA9IG5ldmVyLCAxID0gR3JhcGhpY3Mgb25seSwgMiA9IENvbXB1dGUgb25seSwgMyA9 IEJvdGgpLiBUaGUgZGVmYXVsdA0KPiArICogaXMgLTEgKE9ubHkgaW4gbGFyZ2UgQkFSKExCKSBz eXN0ZW1zIENvbXB1dGUgVk0gdGFibGVzIHdpbGwgYmUgdXBkYXRlZCBieSBDUFUsIG90aGVyd2lz ZSAwLCBuZXZlcikuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHZtX3VwZGF0ZV9tb2Rl LCAiVk0gdXBkYXRlIHVzaW5nIENQVSAoMCA9IG5ldmVyIChkZWZhdWx0IGV4Y2VwdCBmb3IgbGFy Z2UgQkFSKExCKSksIDEgPSBHcmFwaGljcyBvbmx5LCAyID0gQ29tcHV0ZSBvbmx5IChkZWZhdWx0 IGZvciBMQiksIDMgPSBCb3RoIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHZtX3VwZGF0ZV9t b2RlLCBhbWRncHVfdm1fdXBkYXRlX21vZGUsIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAq IERPQzogdnJhbV9wYWdlX3NwbGl0IChpbnQpDQo+ICsgKiBPdmVycmlkZSB0aGUgbnVtYmVyIG9m IHBhZ2VzIGFmdGVyIHdlIHNwbGl0IFZSQU0gYWxsb2NhdGlvbnMgKGRlZmF1bHQgNTEyLCAtMSA9 IGRpc2FibGUpLiBUaGUgZGVmYXVsdCBpcyA1MTIuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9E RVNDKHZyYW1fcGFnZV9zcGxpdCwgIk51bWJlciBvZiBwYWdlcyBhZnRlciB3ZSBzcGxpdCBWUkFN IGFsbG9jYXRpb25zIChkZWZhdWx0IDUxMiwgLTEgPSBkaXNhYmxlKSIpOw0KPiAgIG1vZHVsZV9w YXJhbV9uYW1lZCh2cmFtX3BhZ2Vfc3BsaXQsIGFtZGdwdV92cmFtX3BhZ2Vfc3BsaXQsIGludCwg MDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogZXhwX2h3X3N1cHBvcnQgKGludCkNCj4gKyAq IEVuYWJsZSBleHBlcmltZW50YWwgaHcgc3VwcG9ydCAoMSA9IGVuYWJsZSkuIFRoZSBkZWZhdWx0 IGlzIDAgKGRpc2FibGVkKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MoZXhwX2h3X3N1 cHBvcnQsICJleHBlcmltZW50YWwgaHcgc3VwcG9ydCAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUg KGRlZmF1bHQpKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChleHBfaHdfc3VwcG9ydCwgYW1k Z3B1X2V4cF9od19zdXBwb3J0LCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IGRj IChpbnQpDQo+ICsgKiBEaXNhYmxlL0VuYWJsZSBEaXNwbGF5IENvcmUgZHJpdmVyIGZvciBkZWJ1 Z2dpbmcgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlKS4gVGhlIGRlZmF1bHQgaXMgLTEgKGF1dG9t YXRpYyBmb3IgZWFjaCBhc2ljKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MoZGMsICJE aXNwbGF5IENvcmUgZHJpdmVyICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSwgLTEgPSBhdXRvIChk ZWZhdWx0KSkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoZGMsIGFtZGdwdV9kYywgaW50LCAw NDQ0KTsNCj4NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGRjX2xvZywgIkRpc3BsYXkgQ29yZSBMb2cg TGV2ZWwgKDAgPSBtaW5pbWFsIChkZWZhdWx0KSwgMSA9IGNoYXR0eSIpOw0KPiAgIG1vZHVsZV9w YXJhbV9uYW1lZChkY19sb2csIGFtZGdwdV9kY19sb2csIGludCwgMDQ0NCk7DQo+DQo+ICsvKioN Cj4gKyAqIERPQzogc2NoZWRfam9icyAoaW50KQ0KPiArICogT3ZlcnJpZGUgdGhlIG1heCBudW1i ZXIgb2Ygam9icyBzdXBwb3J0ZWQgaW4gdGhlIHN3IHF1ZXVlLiBUaGUgZGVmYXVsdCBpcyAzMi4N Cj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0Moc2NoZWRfam9icywgInRoZSBtYXggbnVtYmVy IG9mIGpvYnMgc3VwcG9ydGVkIGluIHRoZSBzdyBxdWV1ZSAoZGVmYXVsdCAzMikiKTsNCj4gICBt b2R1bGVfcGFyYW1fbmFtZWQoc2NoZWRfam9icywgYW1kZ3B1X3NjaGVkX2pvYnMsIGludCwgMDQ0 NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogc2NoZWRfaHdfc3VibWlzc2lvbiAoaW50KQ0KPiAr ICogT3ZlcnJpZGUgdGhlIG1heCBudW1iZXIgb2YgSFcgc3VibWlzc2lvbnMuIFRoZSBkZWZhdWx0 IGlzIDIuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHNjaGVkX2h3X3N1Ym1pc3Npb24s ICJ0aGUgbWF4IG51bWJlciBvZiBIVyBzdWJtaXNzaW9ucyAoZGVmYXVsdCAyKSIpOw0KPiAgIG1v ZHVsZV9wYXJhbV9uYW1lZChzY2hlZF9od19zdWJtaXNzaW9uLCBhbWRncHVfc2NoZWRfaHdfc3Vi bWlzc2lvbiwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBwcGZlYXR1cmVtYXNr ICh1aW50KQ0KPiArICogT3ZlcnJpZGUgd2hhdCBwb3dlciBmZWF0dXJlcyBhcmUgZW5hYmxlZC4g VGhlIGRlZmF1bHQgaXMgMHhmZmZmM2ZmZiAoZ2Z4b2ZmKGJpdCAxNSksIG92ZXJkcml2ZXIoYml0 IDE0KSBkaXNhYmxlZCkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHBwZmVhdHVyZW1h c2ssICJhbGwgcG93ZXIgZmVhdHVyZXMgZW5hYmxlZCAoZGVmYXVsdCkpIik7DQo+ICAgbW9kdWxl X3BhcmFtX25hbWVkKHBwZmVhdHVyZW1hc2ssIGFtZGdwdV9wcF9mZWF0dXJlX21hc2ssIHVpbnQs IDA0NDQpOw0KPg0KPiBAQCAtMjQxLDU4ICszNjcsMTI5IEBAIG1vZHVsZV9wYXJhbV9uYW1lZChu b19ldmljdCwgYW1kZ3B1X25vX2V2aWN0LCBpbnQsIDA0NDQpOw0KPiAgIE1PRFVMRV9QQVJNX0RF U0MoZGlyZWN0X2dtYV9zaXplLCAiRGlyZWN0IEdNQSBzaXplIGluIG1lZ2FieXRlcyAobWF4IDk2 TUIpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKGRpcmVjdF9nbWFfc2l6ZSwgYW1kZ3B1X2Rp cmVjdF9nbWFfc2l6ZSwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBwY2llX2dl bl9jYXAgKHVpbnQpDQo+ICsgKiBPdmVycmlkZSBQQ0lFIGdlbiBzcGVlZCBjYXBhYmlsaXRpZXMu IFRoZSBkZWZhdWx0IGlzIDAgKGF1dG9tYXRpYyBmb3IgZWFjaCBhc2ljKS4NCj4gKyAqLw0KPiAg IE1PRFVMRV9QQVJNX0RFU0MocGNpZV9nZW5fY2FwLCAiUENJRSBHZW4gQ2FwcyAoMDogYXV0b2Rl dGVjdCAoZGVmYXVsdCkpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHBjaWVfZ2VuX2NhcCwg YW1kZ3B1X3BjaWVfZ2VuX2NhcCwgdWludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzog cGNpZV9sYW5lX2NhcCAodWludCkNCj4gKyAqIE92ZXJyaWRlIFBDSUUgbGFuZXMgY2FwYWJpbGl0 aWVzLiBUaGUgZGVmYXVsdCBpcyAwIChhdXRvbWF0aWMgZm9yIGVhY2ggYXNpYykuDQo+ICsgKi8N Cj4gICBNT0RVTEVfUEFSTV9ERVNDKHBjaWVfbGFuZV9jYXAsICJQQ0lFIExhbmUgQ2FwcyAoMDog YXV0b2RldGVjdCAoZGVmYXVsdCkpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHBjaWVfbGFu ZV9jYXAsIGFtZGdwdV9wY2llX2xhbmVfY2FwLCB1aW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiAr ICogRE9DOiBjZ19tYXNrICh1aW50KQ0KPiArICogT3ZlcnJpZGUgd2hhdCBDbG9ja2dhdGluZyBm ZWF0dXJlcyBhcmUgZW5hYmxlZCBvbiBHUFUgKDAgPSBkaXNhYmxlIGNsb2NrIGdhdGluZykuIFRo ZSBkZWZhdWx0IGlzIDB4ZmZmZmZmZmYgKGFsbCBlbmFibGVkKS4NCj4gKyAqLw0KPiAgIE1PRFVM RV9QQVJNX0RFU0MoY2dfbWFzaywgIkNsb2NrZ2F0aW5nIGZsYWdzIG1hc2sgKDAgPSBkaXNhYmxl IGNsb2NrIGdhdGluZykiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoY2dfbWFzaywgYW1kZ3B1 X2NnX21hc2ssIHVpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHBnX21hc2sgKHVp bnQpDQo+ICsgKiBPdmVycmlkZSB3aGF0IFBvd2VyZ2F0aW5nIGZlYXR1cmVzIGFyZSBlbmFibGVk IG9uIEdQVSAoMCA9IGRpc2FibGUgcG93ZXIgZ2F0aW5nKS4gVGhlIGRlZmF1bHQgaXMgMHhmZmZm ZmZmZiAoYWxsIGVuYWJsZWQpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhwZ19tYXNr LCAiUG93ZXJnYXRpbmcgZmxhZ3MgbWFzayAoMCA9IGRpc2FibGUgcG93ZXIgZ2F0aW5nKSIpOw0K PiAgIG1vZHVsZV9wYXJhbV9uYW1lZChwZ19tYXNrLCBhbWRncHVfcGdfbWFzaywgdWludCwgMDQ0 NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogc2RtYV9waGFzZV9xdWFudHVtICh1aW50KQ0KPiAr ICogT3ZlcnJpZGUgU0RNQSBjb250ZXh0IHN3aXRjaCBwaGFzZSBxdWFudHVtICh4IDFLIEdQVSBj bG9jayBjeWNsZXMsIDAgPSBubyBjaGFuZ2UpLiBUaGUgZGVmYXVsdCBpcyAzMi4NCj4gKyAqLw0K PiAgIE1PRFVMRV9QQVJNX0RFU0Moc2RtYV9waGFzZV9xdWFudHVtLCAiU0RNQSBjb250ZXh0IHN3 aXRjaCBwaGFzZSBxdWFudHVtICh4IDFLIEdQVSBjbG9jayBjeWNsZXMsIDAgPSBubyBjaGFuZ2Ug KGRlZmF1bHQgMzIpKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChzZG1hX3BoYXNlX3F1YW50 dW0sIGFtZGdwdV9zZG1hX3BoYXNlX3F1YW50dW0sIHVpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ ICsgKiBET0M6IGRpc2FibGVfY3UgKGNoYXJwKQ0KPiArICogU2V0IHRvIGRpc2FibGUgQ1VzIChJ dCdzIHNldCBsaWtlIHNlLnNoLmN1LC4uLikuIFRoZSBkZWZhdWx0IGlzIE5VTEwuDQo+ICsgKi8N Cj4gICBNT0RVTEVfUEFSTV9ERVNDKGRpc2FibGVfY3UsICJEaXNhYmxlIENVcyAoc2Uuc2guY3Us Li4uKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChkaXNhYmxlX2N1LCBhbWRncHVfZGlzYWJs ZV9jdSwgY2hhcnAsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHZpcnR1YWxfZGlzcGxh eSAoY2hhcnApDQo+ICsgKiBTZXQgdG8gZW5hYmxlIHZpcnR1YWwgZGlzcGxheSBmZWF0dXJlLiBU aGlzIGZlYXR1cmUgcHJvdmlkZXMgYSB2aXJ0dWFsIGRpc3BsYXkgaGFyZHdhcmUgb24gaGVhZGxl c3MgYm9hcmRzDQo+ICsgKiBvciBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEl0IHdpbGwg YmUgc2V0IGxpa2UgeHh4eDp4eDp4eC54LHg7eHh4eDp4eDp4eC54LHguIFRoZSBkZWZhdWx0IGlz IE5VTEwuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHZpcnR1YWxfZGlzcGxheSwNCj4g ICAgICAgICAgICAgICAgIkVuYWJsZSB2aXJ0dWFsIGRpc3BsYXkgZmVhdHVyZSAodGhlIHZpcnR1 YWxfZGlzcGxheSB3aWxsIGJlIHNldCBsaWtlIHh4eHg6eHg6eHgueCx4O3h4eHg6eHg6eHgueCx4 KSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZCh2aXJ0dWFsX2Rpc3BsYXksIGFtZGdwdV92aXJ0 dWFsX2Rpc3BsYXksIGNoYXJwLCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBuZ2cgKGlu dCkNCj4gKyAqIFNldCB0byBlbmFibGUgTmV4dCBHZW5lcmF0aW9uIEdyYXBoaWNzICgxID0gZW5h YmxlKS4gVGhlIGRlZmF1bHQgaXMgMCAoZGlzYWJsZWQpLg0KPiArICovDQo+ICAgTU9EVUxFX1BB Uk1fREVTQyhuZ2csICJOZXh0IEdlbmVyYXRpb24gR3JhcGhpY3MgKDEgPSBlbmFibGUsIDAgPSBk aXNhYmxlKGRlZmF1bHQgZGVwZW5kaW5nIG9uIGdmeCkpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25h bWVkKG5nZywgYW1kZ3B1X25nZywgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBw cmltX2J1Zl9wZXJfc2UgKGludCkNCj4gKyAqIE92ZXJyaWRlIHRoZSBzaXplIG9mIFByaW1pdGl2 ZSBCdWZmZXIgcGVyIFNoYWRlciBFbmdpbmUgaW4gQnl0ZS4gVGhlIGRlZmF1bHQgaXMgMCAoZGVw ZW5kaW5nIG9uIGdmeCkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHByaW1fYnVmX3Bl cl9zZSwgInRoZSBzaXplIG9mIFByaW1pdGl2ZSBCdWZmZXIgcGVyIFNoYWRlciBFbmdpbmUgKGRl ZmF1bHQgZGVwZW5kaW5nIG9uIGdmeCkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQocHJpbV9i dWZfcGVyX3NlLCBhbWRncHVfcHJpbV9idWZfcGVyX3NlLCBpbnQsIDA0NDQpOw0KPg0KPiArLyoq DQo+ICsgKiBET0M6IHBvc19idWZfcGVyX3NlIChpbnQpDQo+ICsgKiBPdmVycmlkZSB0aGUgc2l6 ZSBvZiBQb3NpdGlvbiBCdWZmZXIgcGVyIFNoYWRlciBFbmdpbmUgaW4gQnl0ZS4gVGhlIGRlZmF1 bHQgaXMgMCAoZGVwZW5kaW5nIG9uIGdmeCkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVND KHBvc19idWZfcGVyX3NlLCAidGhlIHNpemUgb2YgUG9zaXRpb24gQnVmZmVyIHBlciBTaGFkZXIg RW5naW5lIChkZWZhdWx0IGRlcGVuZGluZyBvbiBnZngpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25h bWVkKHBvc19idWZfcGVyX3NlLCBhbWRncHVfcG9zX2J1Zl9wZXJfc2UsIGludCwgMDQ0NCk7DQo+ DQo+ICsvKioNCj4gKyAqIERPQzogY250bF9zYl9idWZfcGVyX3NlIChpbnQpDQo+ICsgKiBPdmVy cmlkZSB0aGUgc2l6ZSBvZiBDb250cm9sIFNpZGViYW5kIHBlciBTaGFkZXIgRW5naW5lIGluIEJ5 dGUuIFRoZSBkZWZhdWx0IGlzIDAgKGRlcGVuZGluZyBvbiBnZngpLg0KPiArICovDQo+ICAgTU9E VUxFX1BBUk1fREVTQyhjbnRsX3NiX2J1Zl9wZXJfc2UsICJ0aGUgc2l6ZSBvZiBDb250cm9sIFNp ZGViYW5kIHBlciBTaGFkZXIgRW5naW5lIChkZWZhdWx0IGRlcGVuZGluZyBvbiBnZngpIik7DQo+ ICAgbW9kdWxlX3BhcmFtX25hbWVkKGNudGxfc2JfYnVmX3Blcl9zZSwgYW1kZ3B1X2NudGxfc2Jf YnVmX3Blcl9zZSwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBwYXJhbV9idWZf cGVyX3NlIChpbnQpDQo+ICsgKiBPdmVycmlkZSB0aGUgc2l6ZSBvZiBPZmYtQ2hpcCBQcmFtYXRl ciBDYWNoZSBwZXIgU2hhZGVyIEVuZ2luZSBpbiBCeXRlLiBUaGUgZGVmYXVsdCBpcyAwIChkZXBl bmRpbmcgb24gZ2Z4KS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MocGFyYW1fYnVmX3Bl cl9zZSwgInRoZSBzaXplIG9mIE9mZi1DaGlwIFByYW1hdGVyIENhY2hlIHBlciBTaGFkZXIgRW5n aW5lIChkZWZhdWx0IGRlcGVuZGluZyBvbiBnZngpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVk KHBhcmFtX2J1Zl9wZXJfc2UsIGFtZGdwdV9wYXJhbV9idWZfcGVyX3NlLCBpbnQsIDA0NDQpOw0K Pg0KPiArLyoqDQo+ICsgKiBET0M6IGpvYl9oYW5nX2xpbWl0IChpbnQpDQo+ICsgKiBTZXQgaG93 IG11Y2ggdGltZSBhbGxvdyBhIGpvYiBoYW5nIGFuZCBub3QgZHJvcCBpdC4gVGhlIGRlZmF1bHQg aXMgMC4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0Moam9iX2hhbmdfbGltaXQsICJob3cg bXVjaCB0aW1lIGFsbG93IGEgam9iIGhhbmcgYW5kIG5vdCBkcm9wIGl0IChkZWZhdWx0IDApIik7 DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKGpvYl9oYW5nX2xpbWl0LCBhbWRncHVfam9iX2hhbmdf bGltaXQsIGludCAsMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogbGJwdyAoaW50KQ0KPiAr ICogT3ZlcnJpZGUgTG9hZCBCYWxhbmNpbmcgUGVyIFdhdHQgKExCUFcpIHN1cHBvcnQgKDEgPSBl bmFibGUsIDAgPSBkaXNhYmxlKS4gVGhlIGRlZmF1bHQgaXMgLTEgKGF1dG8sIGVuYWJsZWQpLg0K PiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhsYnB3LCAiTG9hZCBCYWxhbmNpbmcgUGVyIFdh dHQgKExCUFcpIHN1cHBvcnQgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlLCAtMSA9IGF1dG8pIik7 DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKGxicHcsIGFtZGdwdV9sYnB3LCBpbnQsIDA0NDQpOw0K Pg0KPiAgIE1PRFVMRV9QQVJNX0RFU0MoY29tcHV0ZV9tdWx0aXBpcGUsICJGb3JjZSBjb21wdXRl IHF1ZXVlcyB0byBiZSBzcHJlYWQgYWNyb3NzIHBpcGVzICgxID0gZW5hYmxlLCAwID0gZGlzYWJs ZSwgLTEgPSBhdXRvKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChjb21wdXRlX211bHRpcGlw ZSwgYW1kZ3B1X2NvbXB1dGVfbXVsdGlwaXBlLCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsg KiBET0M6IGdwdV9yZWNvdmVyeSAoaW50KQ0KPiArICogU2V0IHRvIGVuYWJsZSBHUFUgcmVjb3Zl cnkgbWVjaGFuaXNtICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSkuIFRoZSBkZWZhdWx0IGlzIC0x IChhdXRvLCBkaXNhYmxlZCBleGNlcHQgU1JJT1YpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1f REVTQyhncHVfcmVjb3ZlcnksICJFbmFibGUgR1BVIHJlY292ZXJ5IG1lY2hhbmlzbSwgKDEgPSBl bmFibGUsIDAgPSBkaXNhYmxlLCAtMSA9IGF1dG8pIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVk KGdwdV9yZWNvdmVyeSwgYW1kZ3B1X2dwdV9yZWNvdmVyeSwgaW50LCAwNDQ0KTsNCj4NCj4gKy8q Kg0KPiArICogRE9DOiBlbXVfbW9kZSAoaW50KQ0KPiArICogU2V0IHZhbHVlIDEgdG8gZW5hYmxl IGVtdWxhdGlvbiBtb2RlLiBUaGUgZGVmYXVsdCBpcyAwIChkaXNhYmxlZCkuDQo+ICsgKi8NCj4g ICBNT0RVTEVfUEFSTV9ERVNDKGVtdV9tb2RlLCAiRW11bGF0aW9uIG1vZGUsICgxID0gZW5hYmxl LCAwID0gZGlzYWJsZSkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoZW11X21vZGUsIGFtZGdw dV9lbXVfbW9kZSwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBzaV9zdXBwb3J0 IChpbnQpDQo+ICsgKiBTZXQgU0kgc3VwcG9ydCBkcml2ZXIuIFRoaXMgcGFyYW1ldGVyIHdvcmtz IGFmdGVyIHNldCBjb25maWcgQ09ORklHX0RSTV9BTURHUFVfU0kuIEZvciBTSSBhc2ljLCB3aGVu IHJhZGVvbiBkcml2ZXIgaXMgZW5hYmxlZCwNCj4gKyAqIHNldCB2YWx1ZSAwIHRvIHVzZSByYWRl b24gZHJpdmVyLCB3aGlsZSBzZXQgdmFsdWUgMSB0byB1c2UgYW1kZ3B1IGRyaXZlci4gVGhlIGRl ZmF1bHQgaXMgdXNpbmcgcmFkZW9uIGRyaXZlciB3aGVuIGl0IGF2YWlsYWJsZSwNCj4gKyAqIG90 aGVyd2lzZSB1c2luZyBhbWRncHUgZHJpdmVyLg0KPiArICovDQo+ICAgI2lmZGVmIENPTkZJR19E Uk1fQU1ER1BVX1NJDQo+DQo+ICAgI2lmIGRlZmluZWQoQ09ORklHX0RSTV9SQURFT04pIHx8IGRl ZmluZWQoQ09ORklHX0RSTV9SQURFT05fTU9EVUxFKQ0KPiBAQCAtMzA2LDYgKzUwMywxMiBAQCBN T0RVTEVfUEFSTV9ERVNDKHNpX3N1cHBvcnQsICJTSSBzdXBwb3J0ICgxID0gZW5hYmxlZCAoZGVm YXVsdCksIDAgPSBkaXNhYmxlZCkiKQ0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChzaV9zdXBwb3J0 LCBhbWRncHVfc2lfc3VwcG9ydCwgaW50LCAwNDQ0KTsNCj4gICAjZW5kaWYNCj4NCj4gKy8qKg0K PiArICogRE9DOiBjaWtfc3VwcG9ydCAoaW50KQ0KPiArICogU2V0IENJSyBzdXBwb3J0IGRyaXZl ci4gVGhpcyBwYXJhbWV0ZXIgd29ya3MgYWZ0ZXIgc2V0IGNvbmZpZyBDT05GSUdfRFJNX0FNREdQ VV9DSUsuIEZvciBDSUsgYXNpYywgd2hlbiByYWRlb24gZHJpdmVyIGlzIGVuYWJsZWQsDQo+ICsg KiBzZXQgdmFsdWUgMCB0byB1c2UgcmFkZW9uIGRyaXZlciwgd2hpbGUgc2V0IHZhbHVlIDEgdG8g dXNlIGFtZGdwdSBkcml2ZXIuIFRoZSBkZWZhdWx0IGlzIHVzaW5nIHJhZGVvbiBkcml2ZXIgd2hl biBpdCBhdmFpbGFibGUsDQo+ICsgKiBvdGhlcndpc2UgdXNpbmcgYW1kZ3B1IGRyaXZlci4NCj4g KyAqLw0KPiAgICNpZmRlZiBDT05GSUdfRFJNX0FNREdQVV9DSUsNCj4NCj4gICAjaWYgZGVmaW5l ZChDT05GSUdfRFJNX1JBREVPTikgfHwgZGVmaW5lZChDT05GSUdfRFJNX1JBREVPTl9NT0RVTEUp DQo+IEBAIC0zMTksNiArNTIyLDExIEBAIE1PRFVMRV9QQVJNX0RFU0MoY2lrX3N1cHBvcnQsICJD SUsgc3VwcG9ydCAoMSA9IGVuYWJsZWQgKGRlZmF1bHQpLCAwID0gZGlzYWJsZWQpDQo+ICAgbW9k dWxlX3BhcmFtX25hbWVkKGNpa19zdXBwb3J0LCBhbWRncHVfY2lrX3N1cHBvcnQsIGludCwgMDQ0 NCk7DQo+ICAgI2VuZGlmDQo+DQo+ICsvKioNCj4gKyAqIERPQzogc211X21lbW9yeV9wb29sX3Np emUgKHVpbnQpDQo+ICsgKiBJdCBpcyB1c2VkIHRvIHJlc2VydmUgZ3R0IGZvciBzbXUgZGVidWcg dXNhZ2UsIHNldHRpbmcgdmFsdWUgMCB0byBkaXNhYmxlIGl0LiBUaGUgYWN0dWFsIHNpemUgaXMg dmFsdWUgKiAyNTZNaUIuDQo+ICsgKiBFLmcuIDB4MSA9IDI1Nk1ieXRlLCAweDIgPSA1MTJNYnl0 ZSwgMHg0ID0gMSBHYnl0ZSwgMHg4ID0gMkdCeXRlLiBUaGUgZGVmYXVsdCBpcyAwIChkaXNhYmxl ZCkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHNtdV9tZW1vcnlfcG9vbF9zaXplLA0K PiAgICAgICAicmVzZXJ2ZSBndHQgZm9yIHNtdSBkZWJ1ZyB1c2FnZSwgMCA9IGRpc2FibGUsIg0K PiAgICAgICAgICAgICAgICIweDEgPSAyNTZNYnl0ZSwgMHgyID0gNTEyTWJ5dGUsIDB4NCA9IDEg R2J5dGUsIDB4OCA9IDJHQnl0ZSIpOw0KPg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18NCmFtZC1nZnggbWFpbGluZyBsaXN0DQphbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZw0KaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9hbWQtZ2Z4DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK