From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [PATCH 1/2] drm/fb_helper: Add drm_fb_helper_output_poll_changed_with_rpm() Date: Thu, 19 Jul 2018 20:08:15 -0400 Message-ID: References: <20180718205645.25924-1-lyude@redhat.com> <20180718205645.25924-2-lyude@redhat.com> <20180719074926.GA14303@wunner.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180719074926.GA14303@wunner.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lukas Wunner Cc: David Airlie , nouveau@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Daniel Vetter , Ben Skeggs List-Id: nouveau.vger.kernel.org T24gVGh1LCAyMDE4LTA3LTE5IGF0IDA5OjQ5ICswMjAwLCBMdWthcyBXdW5uZXIgd3JvdGU6Cj4g T24gV2VkLCBKdWwgMTgsIDIwMTggYXQgMDQ6NTY6MzlQTSAtMDQwMCwgTHl1ZGUgUGF1bCB3cm90 ZToKPiA+IFdoZW4gRFAgTVNUIGh1YnMgZ2V0IGNvbmZ1c2VkLCB0aGV5IGNhbiBvY2Nhc2lvbmFs bHkgc3RvcCByZXNwb25kaW5nIGZvcgo+ID4gYSBnb29kIGJpdCBvZiB0aW1lIHVwIHVudGlsIHRo ZSBwb2ludCB3aGVyZSB0aGUgRFJNIGRyaXZlciBtYW5hZ2VzIHRvCj4gPiBkbyB0aGUgcmlnaHQg RFBDRCBhY2Nlc3NlcyB0byBnZXQgaXQgdG8gc3RhcnQgcmVzcG9uZGluZyBhZ2Fpbi4gSW4gYQo+ ID4gd29yc3QgY2FzZSBzY2VuYXJpbyBob3dldmVyLCB0aGlzIHByb2Nlc3MgY2FuIHRha2UgdXB3 YXJkcyBvZiAxMCsKPiA+IHNlY29uZHMuCj4gPiAKPiA+IEN1cnJlbnRseSB3ZSB1c2UgdGhlIGRl ZmF1bHQgb3V0cHV0X3BvbGxfY2hhbmdlZCBoYW5kbGVyCj4gPiBkcm1fZmJfaGVscGVyX291dHB1 dF9wb2xsX2NoYW5nZWQoKSB0byBoYW5kbGUgb3V0cHV0IHBvbGxpbmcsIHdoaWNoCj4gPiBkb2Vz bid0IGhhcHBlbiB0byBncmFiIGFueSBwb3dlciByZWZlcmVuY2VzIG9uIHRoZSBkZXZpY2Ugd2hl biBwb2xsaW5nLgo+ID4gSWYgd2UncmUgdW5sdWNreSBlbm91Z2ggdG8gaGF2ZSBhIGh1YiAoc3Vj aCBhcyBMZW5vdm8ncyBpbmZhbW91cyBsYXB0b3AKPiA+IGRvY2tzIGZvciB0aGUgUDV4L1A3eCBz ZXJpZXMpIHRoYXQncyBlYXNpbHkgc3RhcnRsZWQgYW5kIGNvbmZ1c2VkLCB0aGlzCj4gPiBjYW4g bGVhZCB0byBhIHByZXR0eSBuYXN0eSBkZWFkbG9jayBzaXR1YXRpb24gdGhhdCBsb29rcyBsaWtl IHRoaXM6Cj4gPiAKPiA+IC0gSG90cGx1ZyBldmVudCBmcm9tIGh1YiBoYXBwZW5zLCB3ZSBlbnRl cgo+ID4gICBkcm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWQoKSBhbmQgc3RhcnQgY29t bXVuaWNhdGluZyB3aXRoIHRoZQo+ID4gICBodWIKPiA+IC0gV2hpbGUgd2UncmUgaW4gZHJtX2Zi X2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkKCkgYW5kIGF0dGVtcHRpbmcgdG8KPiA+ICAgY29t bXVuaWNhdGUgd2l0aCB0aGUgaHViLCB3ZSBlbmQgdXAgY29uZnVzaW5nIGl0IGFuZCBjYXVzZSBp dCB0byBzdG9wCj4gPiAgIHJlc3BvbmRpbmcgZm9yIGF0IGxlYXN0IDEwIHNlY29uZHMKPiA+IC0g QWZ0ZXIgNSBzZWNvbmRzIG9mIGJlaW5nIGluIGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hh bmdlZCgpLCB0aGUKPiA+ICAgcG0gY29yZSBhdHRlbXB0cyB0byBwdXQgdGhlIEdQVSBpbnRvIGF1 dG9zdXNwZW5kLCB3aGljaCBlbmRzIHVwCj4gPiAgIGNhbGxpbmcgZHJtX2ttc19oZWxwZXJfcG9s bF9kaXNhYmxlKCkKPiA+IC0gV2hpbGUgdGhlIHJ1bnRpbWUgUE0gY29yZSBpcyB3YWl0aW5nIGlu IGRybV9rbXNfaGVscGVyX3BvbGxfZGlzYWJsZSgpCj4gPiAgIGZvciB0aGUgb3V0cHV0IHBvbGwg dG8gZmluaXNoLCB3ZSBlbmQgdXAgZmluYWxseSBkZXRlY3RpbmcgYW4gTVNUCj4gPiAgIGRpc3Bs YXkKPiA+IC0gV2Ugbm90aWNlIHRoZSBuZXcgZGlzcGxheSBhbmQgdHJpZXMgdG8gZW5hYmxlIGl0 LCB3aGljaCB0cmlnZ2Vycwo+ID4gICBhbiBhdG9taWMgY29tbWl0IHdoaWNoIHRyaWdnZXJzIGEg Y2FsbCB0byBwbV9ydW50aW1lX2dldF9zeW5jKCkKPiA+IC0gdGhlIG91dHB1dCBwb2xsIHRocmVh ZCBkZWFkbG9ja3MgdGhlIHBtIGNvcmUgd2FpdGluZyBmb3IgdGhlIHBtIGNvcmUKPiA+ICAgdG8g ZmluaXNoIHRoZSBhdXRvc3VzcGVuZCByZXF1ZXN0IHdoaWxlIHRoZSBwbSBjb3JlIHdhaXRzIGZv ciB0aGUKPiA+ICAgb3V0cHV0IHBvbGwgdGhyZWFkIHRvIGZpbmlzaAo+IAo+IFRoaXMgd2lsbCBz dGlsbCBkZWFkbG9jayBpZiAtPnJ1bnRpbWVfc3VzcGVuZCBjb21tZW5jZXMgYmVmb3JlIHRoZQo+ IGhvdHBsdWcgZXZlbnQgYW5kIHRoZSBob3RwbHVnIGV2ZW50IG9jY3VycyBiZWZvcmUgcG9sbGlu ZyBoYXMgYmVlbgo+IGRpc2FibGVkIGJ5IC0+cnVudGltZV9zdXNwZW5kLgo+IAo+IFRoZSBjb3Jy ZWN0IGZpeCBpcyB0byBjYWxsIHBtX3J1bnRpbWVfZ2V0X3N5bmMoKSAqY29uZGl0aW9uYWxseSog aW4KPiB0aGUgYXRvbWljIGNvbW1pdCB3aGljaCBlbmFibGVzIHRoZSBkaXNwbGF5LCB1c2luZyB0 aGUgc2FtZSBjb25kaXRpb25hbAo+IGFzIGQ2MWE1YzEwNjM1MSwgaS5lLiBpZiAoIWRybV9rbXNf aGVscGVyX2lzX3BvbGxfd29ya2VyKCkpLgo+IAo+IE5vdyBJIHJlYWxpemUgSSBzZW50IHlvdSBk b3duIHRoZSB3cm9uZyBwYXRoIHdoZW4gSSBzdWdnZXN0ZWQgdG8KPiBpbnRyb2R1Y2UgYSBEUk0g aGVscGVyIGhlcmUuICBNeSBhcG9sb2dpZXMsIEkgZGlkbid0IGZ1bGx5IGFwcHJlY2lhdGUKPiB3 aGF0IGlzIGdvaW5nIGF3cnkgaGVyZSEKPiAKPiBBbnl0aGluZyB0aGF0IGhhcHBlbnMgaW4gbm91 dmVhdSdzIHBvbGwgd29ya2VyIG5ldmVyIG5lZWRzIHRvIGFjcXVpcmUKPiBhIHJ1bnRpbWUgUE0g cmVmIGJlY2F1c2UgcG9sbGluZyBpcyBvbmx5IGVuYWJsZWQgd2hpbGUgcnVudGltZSBhY3RpdmUs Cj4gYW5kIC0+cnVudGltZV9zdXNwZW5kIHdhaXRzIGZvciBhbiBvbmdvaW5nIHBvbGwgdG8gZmlu aXNoLgoKSG9wZWZ1bGx5IEknbSBub3QgbWlzc2luZyBhbnl0aGluZyBoZXJlLCBidXQgdGhpcyBk b2Vzbid0IHJlYWxseSBtYWtlIGFueQpzZW5zZS4gSSdtIG5vdCBzdXJlIEkgZXhwbGFpbmVkIG15 c2VsZiBhcyB3ZWxsIGFzIEkgdGhvdWdodCBJIGRpZC4gVG8gYmUKaG9uZXN0LCBJIGhhZCB0byBk b3VibGUgY2hlY2sgdGhpcyBhYm91dCBsaXRlcmFsbHkgMjAgdGltZXMgdG8gbWFrZSBzdXJlIEkg d2FzCmFjdHVhbGx5IHVuZGVyc3RhbmRpbmcgdGhpcyBpc3N1ZSBjb3JyZWN0bHkuIFR1cm5zIG91 dCBJIHdhcyBtaXNzaW5nIGEgY291cGxlCm9mIHBhcnRzLCBzbyBJJ20gZ29pbmcgdG8gdHJ5IGFn YWluIGF0IGV4cGxhaW5pbmcgdGhpcyB1c2luZyBhIGRpYWdyYW0gdGhhdApzaG93cyB0aGUgdmFy aW91cyB0aHJlYWRzIHJ1bm5pbmcgY29uY3VycmVudGx5CgpTVEFSVDogRHJpdmVyIGxvYWQKICAg ICAgIHwKICAgICAgIHwKICAgICAgIHwgICAgICAgICAgIFRocmVhZCAxCiAgICAgICAgLS0tLS0g b3V0cHV0X3BvbGxfZXhlY3V0ZSgpCiAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAg IGRybV9oZWxwZXJfaHBkX2lycV9ldmVudCgpCiAgICAgICAgICAgICAgICAgICAgICAgfAogICAg ICAgICAgICAgICAgICAgICAgIHwgIFNjaGVkdWxlcyDihpIgICAgICAgICAgICBUaHJlYWQgMgog ICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tIG5vdXZlYXVfZGlzcGxheV9o cGRfd29yaygpCiAgICAgICAgICAgICAgICAgICAgRmluaXNoICAgICAgICAgICAgICAgICAgICAg ICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbV9ydW50 aW1lX2dldF9zeW5jKCkgPC0tLSBrZWVwcyBHUFUgYWxpdmUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICA8c3RpbGwgVGhyZWFkIDI+ CiAgICAgICAgICAgICBkcm1faGVscGVyX2hwZF9pcnFfZXZlbnQoKQogICAgICAgICAgICAgICAg ICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgU2NoZWR1bGVzIOKGkgog ICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkIDMKRHJv cCBsYXN0IFJQTSByZWYgLXYgICB8ICAgICAgICAgICAgICAgICAgIG91dHB1dF9wb2xsX2V4ZWN1 dGUoKQogICAgICAgICAgICAgcG1fcnVudGltZV9wdXRfc3luYygpICAgICAgICAgICAgICAgICAg fAogICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3Jfc2V0X21zdCgpCiAgICAgICAgICAgICAgICAgICAgRmluaXNoICAgICAgICAgICAgICAg ICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpAgU2NoZWR1bGVzICAg ICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLXwKICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKICAgICAgICAgICAgICAgICAgICBUaHJlYWQgNCAgICAgICAgICAgICAgICAgICAgICAgIHwK ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAg ICAgICAgIGRybV9kcF9tc3RfbGlua19wcm9iZV93b3JrKCkgIGRybV9kcF9tc3Rfd2FpdF90eF9y ZXBseSgpIDwtLSB0aGVzZSB3YWl0IG9uIGVhY2hvdGhlcgogICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHRoaXMg aXMgbm9ybWFsCiAgICAgICAgICAgICAgICAgICAgICAgfCAgICBTaWRlYmFuZCB0cmFuc2FjdGlv bnMgICB8CiAgICAgICAgICAgICAgICAgICAgICAgfCAgICBoYXBwZW4gaGVyZSwgdGhpcyBpcyAg ICB8CiAgICAgICAgICAgICAgICAgICAgICAgfCAgICB3aGVyZSB0aW1lb3V0cyBoYXBwZW4gICB8 CiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgIDUgc2Vjb25kcyBsYXRlci4uLiAgICB8IGF1dG9z dXNwZW5kIGRlbGF5IGtpY2tzIGluCiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg IC4uLiAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIFRocmVhZCA1CiAgICAgICAgICAgICAgICAgICAgICAgfCAgQ29tbXVuaWNhdGlvbiArIHRp bWVvdXRzICB8ICAgICAgICAgICAgICAgICBwbV9ydW50aW1lX3dvcmsKICAgICAgICAgICAgICAg ICAgICAgICB8ICBhcmUgc3RpbGwgaGFwcGVuaW5nIGhlcmUgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICBub3V2ZWF1X3Btb3BzX3J1bnRpbWVfc3VzcGVuZCgpCiAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgfAogICAgICAgICAgICAgICAgICAgICAgIHwgIFN1Y2Nlc3MhIFdlIGNhbiBlbmFi bGUgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICBkaXNwbGF5cyBub3chICAgICAgIHwgICAgICAgICAgICBkcm1fa21zX2hlbHBlcl9w b2xsX2Rpc2FibGUoKQogICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAqQXRvbWljIGNvbW1pdCBiZWdpbnMqICAgICAgICAgICAgICB8 CiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICA8LS0tLS0tLS0tLS0tLSAgICAgfAogICAgICAgICAgICAgICAgICAgICAgIHwgTW9yZSBzaWRl YmFuZCB0cmFuc2FjdGlvbnMgfCAgICAgICBXYWl0aW5nIG9uICAgICAgIHwKICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgIC4uLi4uLiAgICAgICAgICAgIHwgIG91dHB1dF9wb2xsX2V4 ZWN1dGUoKSB8CiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICA8LS0tLS0tLS0tLS0tLSAgICAgfAogICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICBwbV9ydW50aW1lX2dldF9zeW5jKCkgICAgICAgICAgICAgIHwKICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgfCAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tPiAgICB8ICAgICAtLS0tLS0tLS0tLS0tPiAgICAgfAogICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgIFdhaXRpbmcgb24gICAgICAgICAgfCAgICAgICBXYWl0aW5nIG9uICAg ICAgIHwKICAgICAgICAgICAgICAgICAgICAgICB8ICAgICBvdXRwdXRfcG9sbF9leGVjKCkgICAg IHwgICAgc3VzcGVuZCByZXF1ZXN0cyAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgfCAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tPiAgICB8ICAgICAtLS0tLS0tLS0tLS0tPiAgICAgfAogICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT58CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERUFE TE9DSwoKcGhldy4gdGhhdCB0b29rIGEgTE9ORyB0aW1lIHRvIGNvbWUgdXAgd2l0aC4KCkFueXdh eS10aGF0J3Mgd2h5IHlvdXIgZXhwbGFuYXRpb24gZG9lc24ndCBtYWtlIHNlbnNlOiB0aGUgZGVh ZGxvY2sgaXMKaGFwcGVuaW5nIGJlY2F1c2Ugd2UncmUgY2FsbGluZyBwbV9ydW50aW1lX2dldF9z eW5jKCkuIElmIHdlIHdlcmUgdG8gbWFrZSB0aGF0CmNhbGwgY29uZGl0aW9uYWwgKGUuZy4gZHJt X2ttc19oZWxwZXJfaXNfcG9sbF93b3JrZXIoKSksIGFsbCB0aGF0IHdvdWxkIG1lYW4KaXMgdGhh dCB3ZSB3b3VsZG4ndCBncmFiIGFueSBydW50aW1lIHBvd2VyIHJlZmVyZW5jZSBhbmQgdGhlIEdQ VSB3b3VsZAppbW1lZGlhdGVseSBzdXNwZW5kIG9uY2UgdGhlIGF0b21pYyBjb21taXQgZmluaXNo ZWQsIGFzIHRoZSBzdXNwZW5kIHJlcXVlc3QgaW4KVGhyZWFkIDUgd291bGQgZmluYWxseSBnZXQg dW5ibG9ja2VkIGFuZCB0aHVzLS0tLXN1c3BlbmQuCgpIb3BlZnVsbHkgSSBleHBsYWluZWQgdGhh dCBiZXR0ZXIgdGhpcyB0aW1lLCBJJ2xsIGRlZmluaXRlbHkgbWFrZSBzdXJlIHRvCmFjdHVhbGx5 IGluY2x1ZGUgdGhhdCBkaWFncmFtIGluIHRoZSBwYXRjaC4gQXMgZm9yIHdoZXRoZXIgb3Igbm90 IHRoaXMgcGF0Y2gKaXMgZXZlbiB0aGUgcmlnaHQgc29sdXRpb24sIEkgd2lsbCBuZWVkIHRvIGNv bmZpcm0gdGhhdCB0b21tb3Jyb3cgKGlmIHlvdQpkb24ndCB0aGluayBpdCBpcyBzdGlsbCwgcGxl YXNlIGZlZWwgZnJlZSB0byBzYXkgc28hKSBiZWNhdXNlIGl0J3MgZ2V0dGluZwpsYXRlIGhlcmUu CgpDaGVlcnMhCglMeXVkZQoKPiAKPiBUaGlua2luZyBhIGJpdCBtb3JlIGFib3V0IHRoaXMsIG91 ciBtaXN0YWtlIGlzIHRvIGFjcXVpcmUgcnVudGltZSBQTQo+IHJlZnMgdG9vIGZhciBkb3duIGlu IHRoZSBjYWxsIHN0YWNrLiAgQXMgYSBmaXggdGhhdCBjYW4gYmUgYmFja3BvcnRlZAo+IHRvIHN0 YWJsZSwgYWRkaW5nIGlmICghZHJtX2ttc19oZWxwZXJfaXNfcG9sbF93b3JrZXIoKSkgY29uZGl0 aW9uYWxzCj4gc2VlbXMgZmluZSB0byBtZSwgYnV0IHRoZSBsb25nIHRlcm0gZml4IGlzIHRvIHB1 c2ggYWNxdWlzaXRpb24gb2YgcmVmcwo+IGZ1cnRoZXIgdXAgaW4gdGhlIGNhbGwgc3RhY2suCj4g Cj4gRS5nLiwgaWYgdGhlIHVzZXIgZm9yY2VzIGNvbm5lY3RvciBwcm9iaW5nIHZpYSBzeXNmcywg YSBydW50aW1lIFBNIHJlZgo+IHNob3VsZCBiZSBhY3F1aXJlZCBpbiBzdGF0dXNfc3RvcmUoKSBp biBkcm1fc3lzZnMuYyBiZWZvcmUgaW52b2tpbmcKPiBjb25uZWN0b3ItPmZ1bmNzLT5maWxsX21v ZGVzKCkuICBUaGF0IHdheSwgaWYgdGhlIHVzZXIgZm9yY2VzIGNvbm5lY3Rvcgo+IHByb2Jpbmcg d2hpbGUgdGhlIEdQVSBpcyBwb3dlcmluZyBkb3duLCBycG1fcmVzdW1lKCkgd2lsbCBjb3JyZWN0 bHkgd2FpdAo+IGZvciBycG1fc3VzcGVuZCgpIHRvIGZpbmlzaCBiZWZvcmUgcmVzdW1pbmcgdGhl IGNhcmQuICBTbyBpZiB3ZSBhcmNoaXRlY3QKPiBpdCBsaWtlIHRoaXMsIHdlJ3JlIGFjdHVhbGx5 IHVzaW5nIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZQo+IFBNIGNvcmUgaW4gdGhl IHdheSB0aGF0IGl0J3Mgc3VwcG9zZWQgdG8gYmUgdXNlZC4KPiAKPiBUaGUgcHJvYmxlbSBpcyB0 aGF0IGFkZGluZyBwbV9ydW50aW1lX2dldF9zeW5jKCkgdG8gc3RhdHVzX3N0b3JlKCkKPiBjb25m bGljdHMgd2l0aCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBsaWJyYXJ5IG9mIGdlbmVyaWMgRFJNIGZ1 bmN0aW9uczoKPiBTb21lIEdQVXMgbWF5IGJlIGFibGUgdG8gcHJvYmUgY29ubmVjdG9ycyB3aXRo b3V0IHJlc3VtaW5nIHRvIHJ1bnRpbWUKPiBhY3RpdmUgc3RhdGUsIG90aGVycyBkb24ndCB1c2Ug cnVudGltZSBQTSBhdCBhbGwuICBPbmUgc29sdXRpb24gdGhhdAo+IGNvbWVzIHRvIG1pbmQgaXMg YSBkcml2ZXJfZmVhdHVyZXMgZmxhZyB3aGljaCB0ZWxscyB0aGUgRFJNIGNvcmUgd2hldGhlcgo+ IHRvIGFjcXVpcmUgYSBydW50aW1lIFBNIHJlZiBpbiB2YXJpb3VzIHBsYWNlcy4KPiAKPiBJbiB5 b3VyIG9yaWdpbmFsIHBhdGNoZXMgNCBhbmQgNSwgd2hhdCBleGFjdGx5IHdhcyB0aGUgY2FsbCBz dGFjayB3aGljaAo+IGxlZCB0byBpMmMgYmVpbmcgYWNjZXNzZWQgd2hpbGUgcnVudGltZSBzdXNw ZW5kZWQ/ICBXYXMgaXQgc3lzZnMgYWNjZXNzCj4gdmlhIC9zeXMvY2xhc3MvaTJjLWFkYXB0ZXIv KiA/ICBJZiBzbywgYWNxdWlzaXRpb24gb2YgdGhlIHJ1bnRpbWUgUE0gcmVmCj4gbmVlZHMgdG8g bGlrZXdpc2UgaGFwcGVuIGluIHRoYXQgc3lzZnMgZW50cnkgcG9pbnQsIHJhdGhlciB0aGFuIGRl ZXAgZG93bgo+IGluIHRoZSBjYWxsIHN0YWNrIHVwb24gYWNjZXNzaW5nIHRoZSBpMmMgYnVzLgo+ IAo+IFRoYW5rcywKPiAKPiBMdWthcwo+IAo+ID4gCj4gPiBTYW1wbGU6Cj4gPiBbICAyNDYuNjY5 NjI1XSBJTkZPOiB0YXNrIGt3b3JrZXIvNDowOjM3IGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAxMjAK PiA+IHNlY29uZHMuCj4gPiBbICAyNDYuNjczMzk4XSAgICAgICBOb3QgdGFpbnRlZCA0LjE4LjAt cmM1THl1ZGUtVGVzdCsgIzIKPiA+IFsgIDI0Ni42NzUyNzFdICJlY2hvIDAgPiAvcHJvYy9zeXMv a2VybmVsL2h1bmdfdGFza190aW1lb3V0X3NlY3MiIGRpc2FibGVzCj4gPiB0aGlzIG1lc3NhZ2Uu Cj4gPiBbICAyNDYuNjc2NTI3XSBrd29ya2VyLzQ6MCAgICAgRCAgICAwICAgIDM3ICAgICAgMiAw eDgwMDAwMDAwCj4gPiBbICAyNDYuNjc3NTgwXSBXb3JrcXVldWU6IGV2ZW50cyBvdXRwdXRfcG9s bF9leGVjdXRlIFtkcm1fa21zX2hlbHBlcl0KPiA+IFsgIDI0Ni42Nzg3MDRdIENhbGwgVHJhY2U6 Cj4gPiBbICAyNDYuNjc5NzUzXSAgX19zY2hlZHVsZSsweDMyMi8weGFmMAo+ID4gWyAgMjQ2LjY4 MDkxNl0gIHNjaGVkdWxlKzB4MzMvMHg5MAo+ID4gWyAgMjQ2LjY4MTkyNF0gIHNjaGVkdWxlX3By ZWVtcHRfZGlzYWJsZWQrMHgxNS8weDIwCj4gPiBbICAyNDYuNjgzMDIzXSAgX19tdXRleF9sb2Nr KzB4NTY5LzB4OWEwCj4gPiBbICAyNDYuNjg0MDM1XSAgPyBrb2JqZWN0X3VldmVudF9lbnYrMHgx MTcvMHg3YjAKPiA+IFsgIDI0Ni42ODUxMzJdICA/IGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVu dC5wYXJ0LjI4KzB4MjAvMHhiMAo+ID4gW2RybV9rbXNfaGVscGVyXQo+ID4gWyAgMjQ2LjY4NjE3 OV0gIG11dGV4X2xvY2tfbmVzdGVkKzB4MWIvMHgyMAo+ID4gWyAgMjQ2LjY4NzI3OF0gID8gbXV0 ZXhfbG9ja19uZXN0ZWQrMHgxYi8weDIwCj4gPiBbICAyNDYuNjg4MzA3XSAgZHJtX2ZiX2hlbHBl cl9ob3RwbHVnX2V2ZW50LnBhcnQuMjgrMHgyMC8weGIwCj4gPiBbZHJtX2ttc19oZWxwZXJdCj4g PiBbICAyNDYuNjg5NDIwXSAgZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkKzB4MjMv MHgzMAo+ID4gW2RybV9rbXNfaGVscGVyXQo+ID4gWyAgMjQ2LjY5MDQ2Ml0gIGRybV9rbXNfaGVs cGVyX2hvdHBsdWdfZXZlbnQrMHgyYS8weDMwIFtkcm1fa21zX2hlbHBlcl0KPiA+IFsgIDI0Ni42 OTE1NzBdICBvdXRwdXRfcG9sbF9leGVjdXRlKzB4MTk4LzB4MWMwIFtkcm1fa21zX2hlbHBlcl0K PiA+IFsgIDI0Ni42OTI2MTFdICBwcm9jZXNzX29uZV93b3JrKzB4MjMxLzB4NjIwCj4gPiBbICAy NDYuNjkzNzI1XSAgd29ya2VyX3RocmVhZCsweDIxNC8weDNhMAo+ID4gWyAgMjQ2LjY5NDc1Nl0g IGt0aHJlYWQrMHgxMmIvMHgxNTAKPiA+IFsgIDI0Ni42OTU4NTZdICA/IHdxX3Bvb2xfaWRzX3No b3crMHgxNDAvMHgxNDAKPiA+IFsgIDI0Ni42OTY4ODhdICA/IGt0aHJlYWRfY3JlYXRlX3dvcmtl cl9vbl9jcHUrMHg3MC8weDcwCj4gPiBbICAyNDYuNjk3OTk4XSAgcmV0X2Zyb21fZm9yaysweDNh LzB4NTAKPiA+IFsgIDI0Ni42OTkwMzRdIElORk86IHRhc2sga3dvcmtlci8wOjE6NjAgYmxvY2tl ZCBmb3IgbW9yZSB0aGFuIDEyMAo+ID4gc2Vjb25kcy4KPiA+IFsgIDI0Ni43MDAxNTNdICAgICAg IE5vdCB0YWludGVkIDQuMTguMC1yYzVMeXVkZS1UZXN0KyAjMgo+ID4gWyAgMjQ2LjcwMTE4Ml0g ImVjaG8gMCA+IC9wcm9jL3N5cy9rZXJuZWwvaHVuZ190YXNrX3RpbWVvdXRfc2VjcyIgZGlzYWJs ZXMKPiA+IHRoaXMgbWVzc2FnZS4KPiA+IFsgIDI0Ni43MDIyNzhdIGt3b3JrZXIvMDoxICAgICBE ICAgIDAgICAgNjAgICAgICAyIDB4ODAwMDAwMDAKPiA+IFsgIDI0Ni43MDMyOTNdIFdvcmtxdWV1 ZTogcG0gcG1fcnVudGltZV93b3JrCj4gPiBbICAyNDYuNzA0MzkzXSBDYWxsIFRyYWNlOgo+ID4g WyAgMjQ2LjcwNTQwM10gIF9fc2NoZWR1bGUrMHgzMjIvMHhhZjAKPiA+IFsgIDI0Ni43MDY0Mzld ICA/IHdhaXRfZm9yX2NvbXBsZXRpb24rMHgxMDQvMHgxOTAKPiA+IFsgIDI0Ni43MDczOTNdICBz Y2hlZHVsZSsweDMzLzB4OTAKPiA+IFsgIDI0Ni43MDgzNzVdICBzY2hlZHVsZV90aW1lb3V0KzB4 M2E1LzB4NTkwCj4gPiBbICAyNDYuNzA5Mjg5XSAgPyBtYXJrX2hlbGRfbG9ja3MrMHg1OC8weDgw Cj4gPiBbICAyNDYuNzEwMjA4XSAgPyBfcmF3X3NwaW5fdW5sb2NrX2lycSsweDJjLzB4NDAKPiA+ IFsgIDI0Ni43MTEyMjJdICA/IHdhaXRfZm9yX2NvbXBsZXRpb24rMHgxMDQvMHgxOTAKPiA+IFsg IDI0Ni43MTIxMzRdICA/IHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcisweGY0LzB4MTkwCj4gPiBb ICAyNDYuNzEzMDk0XSAgPyB3YWl0X2Zvcl9jb21wbGV0aW9uKzB4MTA0LzB4MTkwCj4gPiBbICAy NDYuNzEzOTY0XSAgd2FpdF9mb3JfY29tcGxldGlvbisweDEyYy8weDE5MAo+ID4gWyAgMjQ2Ljcx NDg5NV0gID8gd2FrZV91cF9xKzB4ODAvMHg4MAo+ID4gWyAgMjQ2LjcxNTcyN10gID8gZ2V0X3dv cmtfcG9vbCsweDkwLzB4OTAKPiA+IFsgIDI0Ni43MTY2NDldICBmbHVzaF93b3JrKzB4MWM5LzB4 MjgwCj4gPiBbICAyNDYuNzE3NDgzXSAgPyBmbHVzaF93b3JrcXVldWVfcHJlcF9wd3FzKzB4MWIw LzB4MWIwCj4gPiBbICAyNDYuNzE4NDQyXSAgX19jYW5jZWxfd29ya190aW1lcisweDE0Ni8weDFk MAo+ID4gWyAgMjQ2LjcxOTI0N10gIGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYysweDEzLzB4MjAK PiA+IFsgIDI0Ni43MjAwNDNdICBkcm1fa21zX2hlbHBlcl9wb2xsX2Rpc2FibGUrMHgxZi8weDMw IFtkcm1fa21zX2hlbHBlcl0KPiA+IFsgIDI0Ni43MjExMjNdICBub3V2ZWF1X3Btb3BzX3J1bnRp bWVfc3VzcGVuZCsweDNkLzB4YjAgW25vdXZlYXVdCj4gPiBbICAyNDYuNzIxODk3XSAgcGNpX3Bt X3J1bnRpbWVfc3VzcGVuZCsweDZiLzB4MTkwCj4gPiBbICAyNDYuNzIyODI1XSAgPyBwY2lfaGFz X2xlZ2FjeV9wbV9zdXBwb3J0KzB4NzAvMHg3MAo+ID4gWyAgMjQ2LjcyMzczN10gIF9fcnBtX2Nh bGxiYWNrKzB4N2EvMHgxZDAKPiA+IFsgIDI0Ni43MjQ3MjFdICA/IHBjaV9oYXNfbGVnYWN5X3Bt X3N1cHBvcnQrMHg3MC8weDcwCj4gPiBbICAyNDYuNzI1NjA3XSAgcnBtX2NhbGxiYWNrKzB4MjQv MHg4MAo+ID4gWyAgMjQ2LjcyNjU1M10gID8gcGNpX2hhc19sZWdhY3lfcG1fc3VwcG9ydCsweDcw LzB4NzAKPiA+IFsgIDI0Ni43MjczNzZdICBycG1fc3VzcGVuZCsweDE0Mi8weDZiMAo+ID4gWyAg MjQ2LjcyODE4NV0gIHBtX3J1bnRpbWVfd29yaysweDk3LzB4YzAKPiA+IFsgIDI0Ni43Mjg5Mzhd ICBwcm9jZXNzX29uZV93b3JrKzB4MjMxLzB4NjIwCj4gPiBbICAyNDYuNzI5Nzk2XSAgd29ya2Vy X3RocmVhZCsweDQ0LzB4M2EwCj4gPiBbICAyNDYuNzMwNjE0XSAga3RocmVhZCsweDEyYi8weDE1 MAo+ID4gWyAgMjQ2LjczMTM5NV0gID8gd3FfcG9vbF9pZHNfc2hvdysweDE0MC8weDE0MAo+ID4g WyAgMjQ2LjczMjIwMl0gID8ga3RocmVhZF9jcmVhdGVfd29ya2VyX29uX2NwdSsweDcwLzB4NzAK PiA+IFsgIDI0Ni43MzI4NzhdICByZXRfZnJvbV9mb3JrKzB4M2EvMHg1MAo+ID4gWyAgMjQ2Ljcz Mzc2OF0gSU5GTzogdGFzayBrd29ya2VyLzQ6Mjo0MjIgYmxvY2tlZCBmb3IgbW9yZSB0aGFuIDEy MAo+ID4gc2Vjb25kcy4KPiA+IFsgIDI0Ni43MzQ1ODddICAgICAgIE5vdCB0YWludGVkIDQuMTgu MC1yYzVMeXVkZS1UZXN0KyAjMgo+ID4gWyAgMjQ2LjczNTM5M10gImVjaG8gMCA+IC9wcm9jL3N5 cy9rZXJuZWwvaHVuZ190YXNrX3RpbWVvdXRfc2VjcyIgZGlzYWJsZXMKPiA+IHRoaXMgbWVzc2Fn ZS4KPiA+IFsgIDI0Ni43MzYxMTNdIGt3b3JrZXIvNDoyICAgICBEICAgIDAgICA0MjIgICAgICAy IDB4ODAwMDAwODAKPiA+IFsgIDI0Ni43MzY3ODldIFdvcmtxdWV1ZTogZXZlbnRzX2xvbmcgZHJt X2RwX21zdF9saW5rX3Byb2JlX3dvcmsKPiA+IFtkcm1fa21zX2hlbHBlcl0KPiA+IFsgIDI0Ni43 Mzc2NjVdIENhbGwgVHJhY2U6Cj4gPiBbICAyNDYuNzM4NDkwXSAgX19zY2hlZHVsZSsweDMyMi8w eGFmMAo+ID4gWyAgMjQ2LjczOTI1MF0gIHNjaGVkdWxlKzB4MzMvMHg5MAo+ID4gWyAgMjQ2Ljcz OTkwOF0gIHJwbV9yZXN1bWUrMHgxOWMvMHg4NTAKPiA+IFsgIDI0Ni43NDA3NTBdICA/IGZpbmlz aF93YWl0KzB4OTAvMHg5MAo+ID4gWyAgMjQ2Ljc0MTU0MV0gIF9fcG1fcnVudGltZV9yZXN1bWUr MHg0ZS8weDkwCj4gPiBbICAyNDYuNzQyMzcwXSAgbnY1MF9kaXNwX2F0b21pY19jb21taXQrMHgz MS8weDIxMCBbbm91dmVhdV0KPiA+IFsgIDI0Ni43NDMxMjRdICBkcm1fYXRvbWljX2NvbW1pdCsw eDRhLzB4NTAgW2RybV0KPiA+IFsgIDI0Ni43NDM3NzVdICByZXN0b3JlX2ZiZGV2X21vZGVfYXRv bWljKzB4MWM4LzB4MjQwIFtkcm1fa21zX2hlbHBlcl0KPiA+IFsgIDI0Ni43NDQ2MDNdICByZXN0 b3JlX2ZiZGV2X21vZGUrMHgzMS8weDE0MCBbZHJtX2ttc19oZWxwZXJdCj4gPiBbICAyNDYuNzQ1 MzczXSAgZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQrMHg1NC8weGIw Cj4gPiBbZHJtX2ttc19oZWxwZXJdCj4gPiBbICAyNDYuNzQ2MjIwXSAgZHJtX2ZiX2hlbHBlcl9z ZXRfcGFyKzB4MmQvMHg1MCBbZHJtX2ttc19oZWxwZXJdCj4gPiBbICAyNDYuNzQ2ODg0XSAgZHJt X2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50LnBhcnQuMjgrMHg5Ni8weGIwCj4gPiBbZHJtX2ttc19o ZWxwZXJdCj4gPiBbICAyNDYuNzQ3Njc1XSAgZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFu Z2VkKzB4MjMvMHgzMAo+ID4gW2RybV9rbXNfaGVscGVyXQo+ID4gWyAgMjQ2Ljc0ODU0NF0gIGRy bV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQrMHgyYS8weDMwIFtkcm1fa21zX2hlbHBlcl0KPiA+ IFsgIDI0Ni43NDk0MzldICBudjUwX21zdG1faG90cGx1ZysweDE1LzB4MjAgW25vdXZlYXVdCj4g PiBbICAyNDYuNzUwMTExXSAgZHJtX2RwX3NlbmRfbGlua19hZGRyZXNzKzB4MTc3LzB4MWMwIFtk cm1fa21zX2hlbHBlcl0KPiA+IFsgIDI0Ni43NTA3NjRdICBkcm1fZHBfY2hlY2tfYW5kX3NlbmRf bGlua19hZGRyZXNzKzB4YTgvMHhkMAo+ID4gW2RybV9rbXNfaGVscGVyXQo+ID4gWyAgMjQ2Ljc1 MTYwMl0gIGRybV9kcF9tc3RfbGlua19wcm9iZV93b3JrKzB4NTEvMHg5MCBbZHJtX2ttc19oZWxw ZXJdCj4gPiBbICAyNDYuNzUyMzE0XSAgcHJvY2Vzc19vbmVfd29yaysweDIzMS8weDYyMAo+ID4g WyAgMjQ2Ljc1Mjk3OV0gIHdvcmtlcl90aHJlYWQrMHg0NC8weDNhMAo+ID4gWyAgMjQ2Ljc1Mzgz OF0gIGt0aHJlYWQrMHgxMmIvMHgxNTAKPiA+IFsgIDI0Ni43NTQ2MTldICA/IHdxX3Bvb2xfaWRz X3Nob3crMHgxNDAvMHgxNDAKPiA+IFsgIDI0Ni43NTUzODZdICA/IGt0aHJlYWRfY3JlYXRlX3dv cmtlcl9vbl9jcHUrMHg3MC8weDcwCj4gPiBbICAyNDYuNzU2MTYyXSAgcmV0X2Zyb21fZm9yaysw eDNhLzB4NTAKPiA+IFsgIDI0Ni43NTY4NDddCj4gPiAgICAgICAgICAgICAgICBTaG93aW5nIGFs bCBsb2NrcyBoZWxkIGluIHRoZSBzeXN0ZW06Cj4gPiBbICAyNDYuNzU4MjYxXSAzIGxvY2tzIGhl bGQgYnkga3dvcmtlci80OjAvMzc6Cj4gPiBbICAyNDYuNzU5MDE2XSAgIzA6IDAwMDAwMDAwZjhk ZjRkMmQgKCh3cV9jb21wbGV0aW9uKSJldmVudHMiKXsrLisufSwgYXQ6Cj4gPiBwcm9jZXNzX29u ZV93b3JrKzB4MWIzLzB4NjIwCj4gPiBbICAyNDYuNzU5ODU2XSAgIzE6IDAwMDAwMDAwZTYwNjU0 NjEgKCh3b3JrX2NvbXBsZXRpb24pKCYoJmRldi0KPiA+ID5tb2RlX2NvbmZpZy5vdXRwdXRfcG9s bF93b3JrKS0+d29yaykpeysuKy59LCBhdDoKPiA+IHByb2Nlc3Nfb25lX3dvcmsrMHgxYjMvMHg2 MjAKPiA+IFsgIDI0Ni43NjA2NzBdICAjMjogMDAwMDAwMDBjYjY2NzM1ZiAoJmhlbHBlci0+bG9j ayl7Ky4rLn0sIGF0Ogo+ID4gZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50LnBhcnQuMjgrMHgy MC8weGIwIFtkcm1fa21zX2hlbHBlcl0KPiA+IFsgIDI0Ni43NjE1MTZdIDIgbG9ja3MgaGVsZCBi eSBrd29ya2VyLzA6MS82MDoKPiA+IFsgIDI0Ni43NjIyNzRdICAjMDogMDAwMDAwMDBmZmY2YmUw ZiAoKHdxX2NvbXBsZXRpb24pInBtIil7Ky4rLn0sIGF0Ogo+ID4gcHJvY2Vzc19vbmVfd29yaysw eDFiMy8weDYyMAo+ID4gWyAgMjQ2Ljc2Mjk4Ml0gICMxOiAwMDAwMDAwMDVhYjQ0ZmI0ICgod29y a19jb21wbGV0aW9uKSgmZGV2LQo+ID4gPnBvd2VyLndvcmspKXsrLisufSwgYXQ6IHByb2Nlc3Nf b25lX3dvcmsrMHgxYjMvMHg2MjAKPiA+IFsgIDI0Ni43NjM4OTBdIDEgbG9jayBoZWxkIGJ5IGto dW5ndGFza2QvNjQ6Cj4gPiBbICAyNDYuNzY0NjY0XSAgIzA6IDAwMDAwMDAwOGNiOGI1YzMgKHJj dV9yZWFkX2xvY2spey4uLi59LCBhdDoKPiA+IGRlYnVnX3Nob3dfYWxsX2xvY2tzKzB4MjMvMHgx ODUKPiA+IFsgIDI0Ni43NjU1ODhdIDUgbG9ja3MgaGVsZCBieSBrd29ya2VyLzQ6Mi80MjI6Cj4g PiBbICAyNDYuNzY2NDQwXSAgIzA6IDAwMDAwMDAwMjMyZjA5NTkgKCh3cV9jb21wbGV0aW9uKSJl dmVudHNfbG9uZyIpeysuKy59LAo+ID4gYXQ6IHByb2Nlc3Nfb25lX3dvcmsrMHgxYjMvMHg2MjAK PiA+IFsgIDI0Ni43NjczOTBdICAjMTogMDAwMDAwMDBiYjU5YjEzNCAoKHdvcmtfY29tcGxldGlv bikoJm1nci0KPiA+ID53b3JrKSl7Ky4rLn0sIGF0OiBwcm9jZXNzX29uZV93b3JrKzB4MWIzLzB4 NjIwCj4gPiBbICAyNDYuNzY4MTU0XSAgIzI6IDAwMDAwMDAwY2I2NjczNWYgKCZoZWxwZXItPmxv Y2speysuKy59LCBhdDoKPiA+IGRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9j a2VkKzB4NGMvMHhiMCBbZHJtX2ttc19oZWxwZXJdCj4gPiBbICAyNDYuNzY4OTY2XSAgIzM6IDAw MDAwMDAwNGM4ZjBiNmIgKGNydGNfd3dfY2xhc3NfYWNxdWlyZSl7Ky4rLn0sIGF0Ogo+ID4gcmVz dG9yZV9mYmRldl9tb2RlX2F0b21pYysweDRiLzB4MjQwIFtkcm1fa21zX2hlbHBlcl0KPiA+IFsg IDI0Ni43Njk5MjFdICAjNDogMDAwMDAwMDA0YzM0YTI5NiAoY3J0Y193d19jbGFzc19tdXRleCl7 Ky4rLn0sIGF0Ogo+ID4gZHJtX21vZGVzZXRfYmFja29mZisweDhhLzB4MWIwIFtkcm1dCj4gPiBb ICAyNDYuNzcwODM5XSAxIGxvY2sgaGVsZCBieSBkbWVzZy8xMDM4Ogo+ID4gWyAgMjQ2Ljc3MTcz OV0gMiBsb2NrcyBoZWxkIGJ5IHpzaC8xMTcyOgo+ID4gWyAgMjQ2Ljc3MjY1MF0gICMwOiAwMDAw MDAwMDgzNmQwNDM4ICgmdHR5LT5sZGlzY19zZW0peysrKyt9LCBhdDoKPiA+IGxkc2VtX2Rvd25f cmVhZCsweDM3LzB4NDAKPiA+IFsgIDI0Ni43NzM2ODBdICAjMTogMDAwMDAwMDAxZjRmNGQ0OCAo JmxkYXRhLT5hdG9taWNfcmVhZF9sb2NrKXsrLisufSwgYXQ6Cj4gPiBuX3R0eV9yZWFkKzB4YzEv MHg4NzAKPiA+IAo+ID4gWyAgMjQ2Ljc3NTUyMl0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4gPiAKPiA+IFNvLCB0byBmaXggdGhpcyAoYW5kIGFueSBvdGhl ciBwb3NzaWJsZSBkZWFkbG9jayBpc3N1ZXMgbGlrZSB0aGlzIHRoYXQKPiA+IGNvdWxkIG9jY3Vy IGluIHRoZSBvdXRwdXRfcG9sbF9jaGFuZ2VkIHBhdGNoKSB3ZSBtYWtlIHN1cmUgdGhhdAo+ID4g bm91dmVhdSdzIG91dHB1dF9wb2xsX2NoYW5nZWQgZnVuY3Rpb25zIGdyYWIgYSBydW50aW1lIHBv d2VyIHJlZiBiZWZvcmUKPiA+IHNlbmRpbmcgYW55IGhvdHBsdWcgZXZlbnRzLCBhbmQgaG9sZCBp dCB1bnRpbCB3ZSdyZSBmaW5pc2hlZC4gV2UKPiA+IGludHJvZHVjZSB0aGlzIHRocm91Z2ggYWRk aW5nIGEgZ2VuZXJpYyBEUk0gaGVscGVyIHdoaWNoIG90aGVyIGRyaXZlcnMKPiA+IG1heSByZXVz ZS4KPiA+IAo+ID4gVGhpcyBmaXhlcyBkZWFkbG9jayBpc3N1ZXMgd2hlbiBpbiBmYmNvbiB3aXRo IG5vdXZlYXUgb24gbXkgUDUwLCBhbmQKPiA+IHNob3VsZCBmaXggaXQgZm9yIGV2ZXJ5b25lIGVs c2UncyBhcyB3ZWxsIQo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBMeXVkZSBQYXVsIDxseXVkZUBy ZWRoYXQuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IEthcm9sIEhlcmJzdCA8a2Fyb2xoZXJic3RAZ21h aWwuY29tPgo+ID4gQ2M6IEx1a2FzIFd1bm5lciA8bHVrYXNAd3VubmVyLmRlPgo+ID4gQ2M6IHN0 YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiA+IC0tLQo+ID4gQ2hhbmdlcyBzaW5jZSB2MToKPiA+ICAt IEFkZCBhIGdlbmVyaWMgaGVscGVyIGZvciBEUk0gdG8gaGFuZGxlIHRoaXMKPiA+IAo+ID4gIGRy aXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgICAgICAgICB8IDIzICsrKysrKysrKysrKysr KysrKysrKysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jIHwg IDIgKy0KPiA+ICBpbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmggICAgICAgICAgICAgfCAgNSAr KysrKwo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gPiBpbmRleCAyZWUxZWFhNjYx ODguLjFhYjJmMzY0NjUyNiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJf aGVscGVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiA+IEBA IC0zNCw2ICszNCw3IEBACj4gPiAgI2luY2x1ZGUgPGxpbnV4L3N5c3JxLmg+Cj4gPiAgI2luY2x1 ZGUgPGxpbnV4L3NsYWIuaD4KPiA+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gPiArI2lu Y2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KPiA+ICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiA+ ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Cj4gPiAgI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVs cGVyLmg+Cj4gPiBAQCAtMjkyOCw2ICsyOTI5LDI4IEBAIHZvaWQgZHJtX2ZiX2hlbHBlcl9vdXRw dXRfcG9sbF9jaGFuZ2VkKHN0cnVjdAo+ID4gZHJtX2RldmljZSAqZGV2KQo+ID4gIH0KPiA+ICBF WFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZCk7Cj4gPiAgCj4g PiArLyoqCj4gPiArICogZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkX3dpdGhfcnBt IC0gRFJNIG1vZGUKPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25maWcKPiA+IFwub3V0cHV0X3BvbGxfY2hhbmdlZAo+ID4gKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlciBmb3IgZmJkZXYKPiA+ IGVtdWxhdGlvbgo+ID4gKyAqIEBkZXY6IERSTSBkZXZpY2UKPiA+ICsgKgo+ID4gKyAqIFNhbWUg YXMgZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkLCBleGNlcHQgdGhhdCBpdCBtYWtl cyBzdXJlCj4gPiB0aGF0Cj4gPiArICogdGhlIGRldmljZSBpcyBhY3RpdmUgYnkgc3luY2hyb25v dXNseSBncmFiYmluZyBhIHJ1bnRpbWUgcG93ZXIKPiA+IHJlZmVyZW5jZQo+ID4gKyAqIHdoaWxl IHByb2JpbmcuCj4gPiArICovCj4gPiArdm9pZCBkcm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2No YW5nZWRfd2l0aF9ycG0oc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICt7Cj4gPiArCWludCBy ZXQ7Cj4gPiArCj4gPiArCXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOwo+ID4g KwlpZiAoV0FSTl9PTihyZXQgPCAwICYmIHJldCAhPSAtRUFDQ0VTKSkKPiA+ICsJCXJldHVybjsK PiA+ICsJZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGRldi0+ZmJfaGVscGVyKTsKPiA+ICsJ cG1fcnVudGltZV9wdXQoZGV2LT5kZXYpOwo+ID4gK30KPiA+ICtFWFBPUlRfU1lNQk9MKGRybV9m Yl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZF93aXRoX3JwbSk7Cj4gPiArCj4gPiAgLyogVGhl IEtjb25maWcgRFJNX0tNU19IRUxQRVIgc2VsZWN0cyBGUkFNRUJVRkZFUl9DT05TT0xFIChpZiAh RVhQRVJUKQo+ID4gICAqIGJ1dCB0aGUgbW9kdWxlIGRvZXNuJ3QgZGVwZW5kIG9uIGFueSBmYiBj b25zb2xlIHN5bWJvbHMuICBBdCBsZWFzdAo+ID4gICAqIGF0dGVtcHQgdG8gbG9hZCBmYmNvbiB0 byBhdm9pZCBsZWF2aW5nIHRoZSBzeXN0ZW0gd2l0aG91dCBhIHVzYWJsZQo+ID4gY29uc29sZS4K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNwLmMK PiA+IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jCj4gPiBpbmRleCBl YjNlNDFhNzg4MDYuLmZhM2FiNjE4YTBmOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L2Rpc3BudjUwL2Rpc3AuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvZGlzcG52NTAvZGlzcC5jCj4gPiBAQCAtMjAxNSw3ICsyMDE1LDcgQEAgbnY1MF9kaXNwX2F0 b21pY19zdGF0ZV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzCj4gPiAgbnY1MF9kaXNwX2Z1bmMgPSB7Cj4g PiAgCS5mYl9jcmVhdGUgPSBub3V2ZWF1X3VzZXJfZnJhbWVidWZmZXJfY3JlYXRlLAo+ID4gLQku b3V0cHV0X3BvbGxfY2hhbmdlZCA9IGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZCwK PiA+ICsJLm91dHB1dF9wb2xsX2NoYW5nZWQgPQo+ID4gZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9s bF9jaGFuZ2VkX3dpdGhfcnBtLAo+ID4gIAkuYXRvbWljX2NoZWNrID0gbnY1MF9kaXNwX2F0b21p Y19jaGVjaywKPiA+ICAJLmF0b21pY19jb21taXQgPSBudjUwX2Rpc3BfYXRvbWljX2NvbW1pdCwK PiA+ICAJLmF0b21pY19zdGF0ZV9hbGxvYyA9IG52NTBfZGlzcF9hdG9taWNfc3RhdGVfYWxsb2Ms Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oIGIvaW5jbHVkZS9k cm0vZHJtX2ZiX2hlbHBlci5oCj4gPiBpbmRleCBiMDY5NDMzZTdmYzEuLmNhODA5YmZiYWViYiAx MDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAo+ID4gKysrIGIvaW5j bHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCj4gPiBAQCAtMzMwLDYgKzMzMCw3IEBAIHZvaWQgZHJt X2ZiX2hlbHBlcl9mYmRldl90ZWFyZG93bihzdHJ1Y3QgZHJtX2RldmljZQo+ID4gKmRldik7Cj4g PiAgCj4gPiAgdm9pZCBkcm1fZmJfaGVscGVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPiA+ICB2b2lkIGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKPiA+ICt2b2lkIGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hh bmdlZF93aXRoX3JwbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ICAjZWxzZQo+ID4gIHN0 YXRpYyBpbmxpbmUgdm9pZCBkcm1fZmJfaGVscGVyX3ByZXBhcmUoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiA+ICAJCQkJCXN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gPiBAQCAtNTY0 LDYgKzU2NSwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQKPiA+IGRybV9mYl9oZWxwZXJfb3V0cHV0 X3BvbGxfY2hhbmdlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIHsKPiA+ICB9Cj4gPiAg Cj4gPiArc3RhdGljIGlubGluZSB2b2lkIGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdl ZF93aXRoX3JwbShzdHJ1Y3QKPiA+IGRybV9kZXZpY2UgKmRldikKPiA+ICt7Cj4gPiArfQo+ID4g Kwo+ID4gICNlbmRpZgo+ID4gIAo+ID4gIHN0YXRpYyBpbmxpbmUgaW50Cj4gPiAtLSAKPiA+IDIu MTcuMQo+ID4gCi0tIApDaGVlcnMsCglMeXVkZSBQYXVsCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=