Re: EPICS ioc with RTEMS on Raspberry Pi
Gedare Bloom <[email protected]> Tue, 19 May 2026 16:17:55 -0600
| Newsgroups | gmane.os.rtems.user |
|---|---|
| Message-ID | <CAC82fA3kFp2kokbgYBvjA7UVD1rELv_3wJXTPOmbdHJH43=SEg@mail.gmail.com> |
SnVzdCBhIHF1aWNrIG5vdGUgdGhhdCB0aGUgcHJlZmVycmVkIHZlbnVlIGZvciBjb21tdW5pdHkg ZW5nYWdlbWVudCBpcwpzaGlmdGluZyB0b3dhcmQgaHR0cHM6Ly91c2Vycy5ydGVtcy5vcmcKCkkg dGhpbmsgdGhlIFJQaTQgaXMgbWF0dXJpbmcgcXVpdGUgcmFwaWRseS4gV2UgaGF2ZSBhIEdTb0Mg cHJvamVjdApmb2N1c2VkIG9uIGl0IGFzIHdlbGwuCgpsd0lQIG1pZ2h0IGFsc28gYmUgYW4gb3B0 aW9uIHRvIGNvbnNpZGVyLgoKT24gRnJpLCBNYXkgOCwgMjAyNiBhdCA0OjAw4oCvUE0gTWlyb3Ns YXcgRGFjaCA8bWlyb3NsYXcuZGFjaEBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gSGkgSm9obiwKPgo+ IE1hbnkgVGhhbmtzIGZvciB5b3VyIHJlcGx5IGFuZCBhbGwgb2YgdGhlIGhpbnRzLiBJdCBsb29r cyBsaWtlIHRoYXQgYXQgcHJlc2VudCB0aGVyZSBpcyBubyBnb29kIHNvbHV0aW9uIHRvIHVzZSBS VEVNUyBvbiBSUGkgMyBiKyBkdWUgdG8gdGhlIGlzc3VlIHdpdGggdGhlCj4gdXNiLU5ldHdvcmsg YnJpZGdlLiBUaGUgbW9zdCBwcm9taXNpbmcgYXBwcm9hY2ggd291bGQgYmUgdG8gdXNlIHRoZSBQ UmkgdjQgb3IgdjUgIHNpbmNlIHRoZSBuZXR3b3JrIGNoaXAgaXMgZGlyZWN0bHkgY29ubmVjdGVk IHRvIHRoZSBzeXN0ZW0gYnV0IHRoZSBCU1AgaXMgbm90IHlldCBjb21wbGV0ZSBmb3IgUlRFTVMg c28gbWF5YmUgaW4gdGhlIGZ1dHVyZS4KPgo+IEJlc3QgUmVnYXJkcwo+IE1pcmVrCj4KPiBzb2Iu LCAyNSBrd2kgMjAyNiBvIDEwOjM3IEpvaG4gSG93YXJkIDxlY2hvc29mdC5sbGNAZ21haWwuY29t PiBuYXBpc2HFgihhKToKPj4KPj4gSGkgTWlyZWssCj4+Cj4+IEkgZG9uJ3Qga25vdyB3aGF0IHRv IHRlbGwgeW91IGFib3V0IHRoaXMgaXNzdWUuIFlvdSBrbm93IG1vcmUgYWJvdXQgdGhlIGRldGFp bHMgdGhhbiBJIGRvLgo+Pgo+PiAoSSBkb24ndCBrbm93IHdoYXQgRVBJQ1MgSU9DIGRvZXMuKQo+ Pgo+PiBJIGtuZXcgUlRFTVMgZGlkbid0IHVzZSBGSVEsIGJ1dCBJIGFzc3VtZWQgYSAzMi82NC1i aXQgRnJlZUJTRCBmb3IgUmFzcGJlcnJ5IFBpIGRpZG4ndCBlaXRoZXIuIFdoeSBub3QgYSBjb250 aW51aW5nIEZJUSBpc3N1ZSBvbiB0aGVpciBtYWlsaW5nIGxpc3QgYWZ0ZXIgYWxsIHRoaXMgdGlt ZT8gSSBoYXZlbid0IHVzZWQgRnJlZUJTRCBmb3IgUlBpICh0b28gbWFueSBzZWN1cml0eSBob2xl cyB0byBtZSkuIEkgdXNlIERlYmlhbiBCdWxsc2V5ZSBmb3IgbXkgM0IrIGFuZCBJIGFtIG5vdCBo YXBweSB3aXRoIExpbnV4Lgo+Pgo+PiBJIGRvbid0IGV4cGVjdCB0aGlzIHRvIG9jY3VyIG9uIFJQ aSBaZXJvIDIgVyBiZWNhdXNlIGl0IGxhY2tzIHRoZSBFdGhlcm5ldCBzdWJzeXN0ZW0gYW5kIGhh cyBhIG5ld2VyIHJldmlzaW9uIG9mIHRoZSAzQisgc3Vic3lzdGVtLiAoSSB3aWxsIGRlYWwgd2l0 aCBpdCBsYXRlciBkdXJpbmcgbXkgYXBwIHRlc3RpbmcgcGhhc2UuKQo+Pgo+PiBJIGFtIG5vdCB0 aGUgQ09ERU9XTkVSIGF0IFJURU1TLm9yZyBmb3IgdGhhdCBEeW5hd2FyZS9TeW5vcHNpcyBkcml2 ZXIuCj4+Cj4+IEkgZG8ga25vdyB0aGF0IFN5bm9wc2lzIHJlbGVhc2VkIGl0IHVubGljZW5zZWQg QVMgSVMgYnV0IGlzIHdpbGxpbmcgdG8gbGljZW5zZSBpdCB1bmRlciBvYmxpZ2F0aW9uIGZvciB0 aGVpciBjdXN0b21lcnMuCj4+Cj4+IEkgcmVjZW50bHkgbG9va2VkIGF0IGFuIGFsdGVybmF0aXZl IGtlcm5lbCBtZW1vcnkgbWFwIGRvY3VtZW50IHdoZXJlIEZJUSBzdGFja3MgYXJlIHByZXNlbnQg Zm9yIFJQaSAzQisgd2hlbiBBYXJjaDMyLCBidXQgSSBjYW4ndCBmaW5kIHRoZW0gd2hlbiBBYXJj aDY0IHdoaWNoIHN0YW5kYXJkaXplZCBjYWxsaW5nIGNvbnZlbnRpb25zLgo+Pgo+PiBTb3JyeSBJ IGNvdWxkbid0IGJlIG9mIG11Y2ggaGVscCB0byB5b3Ugb24gdGhpcyBpc3N1ZS4gRGVhbGluZyB3 aXRoIEZJUSBoYW5kbGluZyBpcyBhcyBpZGlvc3luY3JhdGljIGFzIGl0IGdldHMgb24gUmFzcGJl cnJ5IFBpIGFuZCBpcyBhIGRlYWwtYnJlYWtlciB0byBtZS4KPj4KPj4gLS0gSm9obgo+Pgo+PiBP biBBcHIgMjIsIDIwMjYsIGF0IDEwOjI44oCvUE0sIE1pcm9zbGF3IERhY2ggPG1pcm9zbGF3LmRh Y2hAZ21haWwuY29tPiB3cm90ZToKPj4KPj4g77u/Cj4+IEhpIEpvaG4sCj4+Cj4+IFRoYW5rcyBm b3IgeW91ciBlLW1haWwgYW5kIHlvdXIgc3VnZ2VzdGlvbi4KPj4KPj4gRm9sbG93LXVwIHRvIG15 IGVhcmxpZXIgcmVwb3J0IGFib3V0IHRoZSBEV0MgT1RHIFVTQiBoYW5nIG9uIFJQaSAzQisKPj4g d2l0aCBSVEVNUyA2LiBJJ3ZlIGRvbmUgZXh0ZW5zaXZlIGluc3RydW1lbnRhdGlvbiBhbmQgYXBw bGllZCBCQ00yODM1LQo+PiBzcGVjaWZpYyBlcnJhdGEgd29ya2Fyb3VuZHMgZnJvbSB0aGUgTGlu dXggZHdjMiBkcml2ZXIuIEhlcmUgYXJlIHRoZQo+PiBjb21wbGV0ZSBmaW5kaW5nczoKPj4KPj4g SSBhZGRlZCBkaWFnbm9zdGljIGNvdW50ZXJzICgjaWZkZWYgX19ydGVtc19fKSB0byB0aGUgRnJl ZUJTRCBkd2Nfb3RnCj4+IGRyaXZlciwgcHJpbnRlZCBldmVyeSAxIHNlY29uZCBmcm9tIHRoZSAx MG1zIHRpbWVyIGNhbGxiYWNrOgo+Pgo+PiAtIHlsZDogICB0aW1lcyBkd2Nfb3RnX2ludGVycnVw dF9wb2xsX2xvY2tlZCgpIGhpdCBpdHMgMTYtaXRlcmF0aW9uIGNhcAo+PiAtIGFmYWlsOiB0aW1l cyBkd2Nfb3RnX2hvc3RfY2hhbm5lbF9hbGxvYygpIGZhaWxlZCAobm8gZnJlZSBjaGFubmVscykK Pj4gLSBob2s6ICAgc3VjY2Vzc2Z1bCBoYWx0IGNvbXBsZXRpb25zIHByb2Nlc3NlZAo+PiAtIHJ4 ZDogICBSWCBkYXRhIGRpc2NhcmRlZCAobm8gYWN0aXZlIGVuZHBvaW50IGxpc3RlbmluZykKPj4g LSBzdHVjazogY2hhbm5lbHMgd2l0aCB3YWl0X2hhbHRlZD0xIGJ1dCBhbGxvY2F0ZWQ9MCAobGVh a2VkIGNoYW5uZWxzKQo+PiAtIGZpbHQ6ICBmaWx0ZXIgSVNSIGVudHJ5L2V4aXQgY291bnQgKHRv IGRldGVjdCBzdHVjayBJU1IpCj4+IC0gdGhyOiAgIHRocmVhZCBoYW5kbGVyIGVudHJ5L2V4aXQg Y291bnQKPj4gLSBnaTogICAgbGFzdCBHSU5UU1RTIHJlZ2lzdGVyIHZhbHVlCj4+Cj4+IFJlc3Vs dHM6IGNoYW5uZWwgZXhoYXVzdGlvbiB0aGVvcnkgRElTUFJPVkVECj4+IEFjcm9zcyBhbGwgdGVz dHMsIGV2ZXJ5IGNvdW50ZXIgcmVtYWluZWQgcGVyZmVjdGx5IGhlYWx0aHkgcmlnaHQgdXAgdG8K Pj4gdGhlIGluc3RhbnQgb2YgdGhlIGZyZWV6ZToKPj4KPj4gICBEV0NfT1RHIHQ9MTc1MDA6IHls ZD0wIGFmYWlsPTAgaG9rPTE4MDAzOCByeGQ9MCBjaD04LzE2Cj4+ICAgICAgIGFsbG9jPTAgd2g9 MCBzdHVjaz0wIGZpbHQ9NzM4MTc4LzczODE3OCB0aHI9NzI4MC83MjgwCj4+ICAgICAgIGdpPTB4 MDQwMDAwMzEKPj4KPj4gLSB5bGQ9MDogICAgIHRoZSAxNi1pdGVyYXRpb24gcG9sbCBsb29wIGNh cCB3YXMgTkVWRVIgaGl0Cj4+IC0gYWZhaWw9MDogICBjaGFubmVsIGFsbG9jYXRpb24gTkVWRVIg ZmFpbGVkCj4+IC0gc3R1Y2s9MDogICBOTyBjaGFubmVscyBldmVyIGxlYWtlZCAod2FpdF9oYWx0 ZWQgd2FzIGFsd2F5cyBjbGVhcmVkKQo+PiAtIGZpbHQgYmFsYW5jZWQ6IGZpbHRlciBJU1IgZW50 ZXJlZCBhbmQgZXhpdGVkIHRoZSBzYW1lIG51bWJlciBvZiB0aW1lcwo+PiAtIHRociBiYWxhbmNl ZDogIHRocmVhZCBoYW5kbGVyIGVudGVyZWQgYW5kIGV4aXRlZCB0aGUgc2FtZSBudW1iZXIgb2Yg dGltZXMKPj4gLSBnaT0weDA0MDAwMDMxOiBiZW5pZ24gKGhvc3QgbW9kZSArIFRYIEZJRk9zIGVt cHR5ICsgUlggRklGTyBub24tZW1wdHkpCj4+Cj4+IFRoZSB+MTA1NCBoYWx0IGNvbXBsZXRpb25z L3NlY29uZCB3ZXJlIHN0ZWFkeSB3aXRoIG5vIGRlZ3JhZGF0aW9uLgo+Pgo+PiBSZXN1bHRzOiB0 b3RhbCBDUFUgZnJlZXplLCBub3Qgc29mdHdhcmUgZGVhZGxvY2sKPj4KPj4gSSBhbHNvIHRyaWVk IGFuIGluZGVwZW5kZW50IFJURU1TIHRpbWVyIChydGVtc190aW1lcl9maXJlX2FmdGVyKSBhcyBh Cj4+IGhlYXJ0YmVhdCwgZmlyaW5nIG91dHNpZGUgdGhlIFVTQiBidXMgbG9jay4gQm90aCB0aGUg VVNCIHRpbWVyIGFuZCB0aGUKPj4gaW5kZXBlbmRlbnQgaGVhcnRiZWF0IHN0b3BwZWQgc2ltdWx0 YW5lb3VzbHksIGNvbmZpcm1pbmcgdGhlIGVudGlyZSBBUk0KPj4gY29yZSBmcmVlemVzIOKAlCBu b3QganVzdCB0aGUgVVNCIHN1YnN5c3RlbS4KPj4KPj4gTm8gUlRFTVMgZmF0YWwgZXJyb3IgaGFu ZGxlciB3YXMgdHJpZ2dlcmVkIChJIGluc3RhbGxlZCBvbmUgdmlhCj4+IENPTkZJR1VSRV9JTklU SUFMX0VYVEVOU0lPTlMpLiBUaGlzIG1lYW5zIGl0IGlzIE5PVCBhIHN0YW5kYXJkIEFSTQo+PiBk YXRhIGFib3J0IOKAlCB0aGUgQ1BVIHNpbXBseSBzdG9wcyBleGVjdXRpbmcsIGxpa2VseSBkdWUg dG8gYW4gQUhCIGJ1cwo+PiBsb2NrdXAgY2F1c2VkIGJ5IHRoZSBEV0MgT1RHIGNvbnRyb2xsZXIg aGFyZHdhcmUuCj4+Cj4+IEJDTTI4MzUgZXJyYXRhIHdvcmthcm91bmRzIGFwcGxpZWQKPj4KPj4g QmFzZWQgb24gdGhlIExpbnV4IGR3YzIgZHJpdmVyIChwYXJhbXMuYywgY29yZS5jKSBhbmQgdGhl IFVsdGlibwo+PiBwcm9qZWN0IGRvY3VtZW50YXRpb24sIEkgYXBwbGllZCB0aHJlZSB3b3JrYXJv dW5kczoKPj4KPj4gMS4gRklGTyBzaXplIGNhcDogQkNNMjgzNSBoYXJkd2FyZSByZXBvcnRzIDQw OTYgd29yZHMgYnV0IG9ubHkgNDA4MAo+PiAgICBleGlzdC4gQ2FwIHNjX2ZpZm9fc2l6ZSB0byA0 MDgwKjQgYnl0ZXMgdG8gcHJldmVudCBGSUZPIG92ZXJydW4uCj4+ICAgIChJbiBwcmFjdGljZSwg dGhlIGhhcmR3YXJlIG9uIG15IGJvYXJkIHJlcG9ydGVkIDw9IDQwODAsIHNvIHRoaXMKPj4gICAg Y2FwIHdhcyBOT1QgdHJpZ2dlcmVkLikKPj4KPj4gMi4gR0FIQkNGRyBBSEIgYnVyc3QgY29uZmln dXJhdGlvbjogQnJvYWRjb20gcmVkZWZpbmVkIGJpdHMgWzQ6MV0gb2YKPj4gICAgR0FIQkNGRyBm b3IgQVhJIGJ1cnN0IGNvbnRyb2wuIExpbnV4IGR3YzIgc2V0cyBhaGJjZmc9MHgxMCBmb3IKPj4g ICAgQkNNMjgzNS4gQ2hhbmdlZCBmcm9tIEdBSEJDRkdfR0xCTElOVFJNU0sgKDB4MDEpIHRvIDB4 MTEuCj4+Cj4+IDMuIEFIQiBpZGxlIHdhaXQgYWZ0ZXIgY29yZSByZXNldDogQWRkZWQgYSBsb29w IHdhaXRpbmcgZm9yCj4+ICAgIEdSU1RDVExfQUhCSURMRSBhZnRlciBHUlNUQ1RMX0NTRlRSU1Qs IHBsdXMgMjUwbXMgc2V0dGxpbmcgZGVsYXkKPj4gICAgKExpbnV4IGR3YzIgdXNlcyAxMDArIG1z KS4KPj4KPj4gUmVzdWx0cyB3aXRoIHdvcmthcm91bmRzOgo+PiAtIEJlZm9yZTogaGFuZ3MgYWZ0 ZXIgfjg2IHNlY29uZHMgKDIga0h6IHRpY2spCj4+IC0gQWZ0ZXI6ICBoYW5ncyBhZnRlciB+MTc1 IHNlY29uZHMgKDIga0h6IHRpY2spCj4+Cj4+IFRoZSB3b3JrYXJvdW5kcyBhcHByb3hpbWF0ZWx5 IGRvdWJsZWQgdGhlIHRpbWUtdG8taGFuZyBidXQgZGlkIE5PVAo+PiBlbGltaW5hdGUgaXQuIEFs bCBzb2Z0d2FyZSBjb3VudGVycyByZW1haW5lZCBoZWFsdGh5IHRocm91Z2hvdXQuCj4+Cj4+IFRo ZSBoYW5nIGlzIGNhdXNlZCBtb3N0IHByb2JhYmx5IGJ5IGEgY29tYmluYXRpb24gb2YgZmFjdG9y czoKPj4KPj4gMS4gVGhlIERXQyBPVEcgY29udHJvbGxlciBvbiBCQ00yODM1L0JDTTI4MzcgcmVx dWlyZXMgc3ViLTEyNcK1cwo+PiAgICBpbnRlcnJ1cHQgcmVzcG9uc2UgdGltZXMgZm9yIFVTQiBz cGxpdCB0cmFuc2FjdGlvbiBwaGFzZXMgKFN0YXJ0Cj4+ICAgIFNwbGl0IOKGkiBDb21wbGV0ZSBT cGxpdCB0aHJvdWdoIHRoZSBVU0IgaHViKS4gVGhlIFJQaSAzQisgRXRoZXJuZXQKPj4gICAgZ29l cyB0aHJvdWdoIGEgVVNCIGh1YiAoTEFONzUxNSksIG1ha2luZyBldmVyeSBwYWNrZXQgYSBzcGxp dAo+PiAgICB0cmFuc2FjdGlvbi4KPj4KPj4gMi4gVGhlIExpbnV4IGtlcm5lbCBhZGRyZXNzZXMg dGhpcyB3aXRoIGEgZGVkaWNhdGVkIEZJUSAoRmFzdCBJbnRlcnJ1cHQKPj4gICAgUmVxdWVzdCkg aGFuZGxlciAoZHdjX290Z19maXFfZnNtLmMpIHRoYXQgZXhlY3V0ZXMgY29tcGxldGUgc3BsaXQK Pj4gICAgdHJhbnNhY3Rpb25zIGluIEZJUSBjb250ZXh0LCBieXBhc3NpbmcgdGhlIG5vcm1hbCBp bnRlcnJ1cHQgc3RhY2suCj4+ICAgIFdpdGhvdXQgRklRLCAiY2VydGFpbiBVU0IgZGV2aWNlcyBi ZWNvbWUgY29tcGxldGVseSB1bnVzYWJsZS4iCj4+Cj4+IDMgVGhlIEZyZWVCU0QgZHdjX290ZyBk cml2ZXIgdXNlZCBieSBSVEVNUyBoYW5kbGVzIGFsbCBzcGxpdAo+PiAgICB0cmFuc2FjdGlvbnMg aW4gbm9ybWFsIGludGVycnVwdCBjb250ZXh0LiBPbiBSVEVNUywgdGhlIGludGVycnVwdAo+PiAg ICBmaWx0ZXIgYW5kIHRocmVhZCBoYW5kbGVyIHJ1biBiYWNrLXRvLWJhY2sgaW4gdGhlIGludGVy cnVwdCBzZXJ2ZXIKPj4gICAgdGFzayAobmV4dXNfaW50cl93aXRoX2ZpbHRlciBpbiBydGVtcy1r ZXJuZWwtbmV4dXMuYyksIHdpdGggbm8KPj4gICAgcHJlZW1wdGlvbiBwb2ludCBiZXR3ZWVuIHRo ZW0uCj4+Cj4+IDQgV2hlbiB0aGUgY29udHJvbGxlcidzIHNwbGl0IHRyYW5zYWN0aW9uIHRpbWlu ZyBpcyB2aW9sYXRlZCwgaXQKPj4gICAgZW50ZXJzIGFuIHVucmVjb3ZlcmFibGUgc3RhdGUgdGhh dCBsb2NrcyB0aGUgQUhCIGJ1cywgZnJlZXppbmcgdGhlCj4+ICAgIGVudGlyZSBBUk0gY29yZSBp bmNsdWRpbmcgVUFSVCBhbmQgc3lzdGVtIHRpbWVycy4KPj4KPj4gVGhlIHRpbWluZyBjb3JyZWxh dGlvbiB3aXRoIHRpY2sgcmF0ZSBjb25maXJtcyB0aGlzOiBoaWdoZXIgdGljayByYXRlCj4+ID0g bW9yZSBmcmVxdWVudCBzY2hlZHVsaW5nID0gbW9yZSBpbnRlcnJ1cHQgbGF0ZW5jeSBqaXR0ZXIg PSBmYXN0ZXIKPj4gdGltaW5nIHZpb2xhdGlvbi4KPj4KPj4gQSBwcm9wZXIgZml4IHJlcXVpcmVz IG1vc3QgcHJvYmFibHkgaW1wbGVtZW50aW5nIEZJUS1iYXNlZCBzcGxpdCB0cmFuc2FjdGlvbiBo YW5kbGluZwo+PiBpbiB0aGUgUlRFTVMgQlNQIGZvciBCQ00yODM1L0JDTTI4MzcsIHNpbWlsYXIg dG8gd2hhdCBMaW51eCBkb2VzIGluCj4+IGR3Y19vdGdfZmlxX2ZzbS5jLiBUaGlzIGlzIGEgc2ln bmlmaWNhbnQgdW5kZXJ0YWtpbmcgYnV0IGlzIGVzc2VudGlhbAo+PiBmb3IgcmVsaWFibGUgVVNC IG9wZXJhdGlvbiBvbiBSUGkgM0IrIChhbmQgUlBpIFplcm8gMiBXLCB3aGljaCB1c2VzCj4+IHRo ZSBzYW1lIFNvQykuCj4+Cj4+IFRoZSBHQUhCQ0ZHIGFuZCByZXNldCBzZXF1ZW5jZSB3b3JrYXJv dW5kcyBzaG91bGQgYWxzbyBiZSBhcHBsaWVkIGFzCj4+IHRoZXkgaW1wcm92ZSBzdGFiaWxpdHku Cj4+Cj4+IFBsZWFzZSBnaXZlIG1lIHlvdXIgdGhvdWdodHMgb24gdGhhdC4gTWF5YmUgaXQgaXMg ZWFzaWVyIHRvIGZpbmFsaXNlIHRoZSBCU1AgZm9yIFJQaSA0IGFuZCA1Pwo+Pgo+PiBCZXN0IFJl Z2FyZHMKPj4gTWlyZWsKPj4KPj4gxZtyLiwgMjIga3dpIDIwMjYgbyAxMzoxNyBKb2huIEhvd2Fy ZCA8ZWNob3NvZnQubGxjQGdtYWlsLmNvbT4gbmFwaXNhxYIoYSk6Cj4+Pgo+Pj4gRmFzY2luYXRp bmcuIFRoYW5rcyBmb3IgdGhhdCBkZXRhaWxlZCByZXBvcnQuCj4+Pgo+Pj4gWW91IGluZGljYXRl ZCBVU0IgZW51bWVyYXRpbmcgY29udGludWVzIHJ1bm5pbmcgaW4gdGhlIGJhY2tncm91bmQuCj4+ Pgo+Pj4gSSBhbSBlZHVjYXRlZC1ndWVzc2luZyB0aGF0IGEgY291bnRlciBtYXhpbXVtIGlzIHJl YWNoZWQsIGFuZCB0aGVuIG1pc3Rha2VubHkgYnJlYWNoZWQuIEkgd291bGQgbG9vayBmb3IgYSB0 ZXN0IG9mIHRoYXQgY291bnRlciBhbmQgY29ycmVjdCBpdCBmcm9tIGFsbG93aW5nIGdyZWF0ZXIt dGhhbiBjb21wYXJpbmcuCj4+Pgo+Pj4gTGV0IHVzIGtub3cgaG93IGl0IHR1cm5zIG91dC4KPj4+ Cj4+PiBJIGFtIGRldmVsb3BpbmcgYW4gYXBwIGZvciBSYXNwYmVycnkgUGkgWmVybyAyIFcgKHN0 cmlwcGVkLWRvd24gM0IrKS4gSSB3YXNuJ3QgZXhwZWN0aW5nIGFueSBwb3RlbnRpYWwgcHJvYmxl bSBsaWtlIHRoaXMuCj4+Pgo+Pj4gLS0gSm9obgo+Pj4KPj4+ID4gT24gQXByIDIyLCAyMDI2LCBh dCAxOjI14oCvUE0sIE1pcm9zbGF3IERhY2ggPG1pcm9zbGF3LmRhY2hAZ21haWwuY29tPiB3cm90 ZToKPj4+ID4KPj4+ID4g77u/Cj4+PiA+IEhpIEFsbCwKPj4+ID4KPj4+ID4gSSdtIHJ1bm5pbmcg YW4gRVBJQ1MgaW9jIHNlcnZlciAoRVBJQ1MgNy4wLjEwKSAgd2l0aCBSVEVNUyA2LjIgb24gYSBS YXNwYmVycnkgUGkgM0IrIHdpdGggcnRlbXMtbGliYnNkICAoNi1mcmVlYnNkLTE0KSBhbmQKPj4+ ID4gZW5jb3VudGVyaW5nIGEgcmVwcm9kdWNpYmxlIHN5c3RlbSBoYW5nIGFmdGVyIHNldmVyYWwg bWludXRlcyBvZiBvcGVyYXRpb24uCj4+PiA+IFRocm91Z2ggc3lzdGVtYXRpYyBlbGltaW5hdGlv biB0ZXN0aW5nIEkndmUgbmFycm93ZWQgdGhlIHJvb3QgY2F1c2UgdG8gdGhlCj4+PiA+IERXQyBP VEcgVVNCIGNvbnRyb2xsZXIgZHJpdmVyLiBJJ2QgYXBwcmVjaWF0ZSBhbnkgcmVjb21tZW5kYXRp b25zIG9uIGhvdwo+Pj4gPiB0byBhZGRyZXNzIHRoaXMuIEkgY2FuIG9mIGNvdXJzZSB1c2UgdGhl IEVQSUNTIGlvYyBzZXJ2ZXIgdW5kZXIgbGludXggb24gUlBpIGJ1dCBqdXN0IHRyaWVkIHRvIGhh dmUgdGhlIFJURU1TIC0gSGFyZCByZWFsIHRpbWUgc3lzdGVtIHdoaWNoIGlzIG11Y2ggbW9yZSBk ZXRlcm1pbmlzdGljLgo+Pj4gPiBUaGUgYm9vdCB0aW1lIGZvciB0aGUgUlBpIHdpdGggRVBJQ1Mv UlRFTVMgaXMgYXJvdW5kIDcgc2VjIHdoaWNoIGlzIGV4dHJlbWVseSBmYXN0IQo+Pj4gPgo+Pj4g PiBFbnZpcm9ubWVudAo+Pj4gPiAtLS0tLS0tLS0tLQo+Pj4gPiAtIEJvYXJkOiBSYXNwYmVycnkg UGkgM0IrIChCQ00yODM3LCBib2FyZHJldiBhMDIwZDMpCj4+PiA+IC0gUlRFTVM6IHJ0ZW1zLTYu MiAoQVJNL0FSTXY0L3Jhc3BiZXJyeXBpMikKPj4+ID4gLSBOZXR3b3JrIHN0YWNrOiBydGVtcy1s aWJic2QgKFJURU1TX0JTRF9DT05GSUdfQlNQX0NPTkZJRyArIFJURU1TX0JTRF9DT05GSUdfSU5J VCkKPj4+ID4gLSBFdGhlcm5ldDogTEFONzUxNSBVU0IgRXRoZXJuZXQgKG11Z2UgZHJpdmVyLCB2 aWEgRFdDIE9URykKPj4+ID4gLSBBcHBsaWNhdGlvbjogRVBJQ1MgSU9DIChidXQgaGFuZyBvY2N1 cnMgd2l0aCBtaW5pbWFsL2VtcHR5IElPQyBhcyB3ZWxsKQo+Pj4gPiAtIENvbnNvbGU6IFVBUlQg c2VyaWFsICgvZGV2L3R0eVMwKQo+Pj4gPgo+Pj4gPiBTeW1wdG9tCj4+PiA+IC0tLS0tLS0KPj4+ ID4gVGhlIHN5c3RlbSBib290cyBhbmQgcnVucyBub3JtYWxseSwgdGhlbiB0aGUgZW50aXJlIHN5 c3RlbSBmcmVlemVzIOKAlAo+Pj4gPiBpbmNsdWRpbmcgdGhlIFVBUlQgc2VyaWFsIGNvbnNvbGUg KHdoaWNoIGlzIG5vdCBVU0ItZGVwZW5kZW50KS4gTm8gY3Jhc2gKPj4+ID4gbWVzc2FnZSwgbm8g c3RhY2sgZHVtcCDigJQgYSBoYXJkIGhhbmcgcmVxdWlyaW5nIHBvd2VyIGN5Y2xlLgo+Pj4gPgo+ Pj4gPiBUaGUgdGltZS10by1oYW5nIGRlcGVuZHMgb24gdGhlIHN5c3RlbSB0aWNrIHJhdGU6Cj4+ PiA+IC0gQ09ORklHVVJFX01JQ1JPU0VDT05EU19QRVJfVElDSz01MDAgICgyIGtIeik6IGhhbmdz IGFmdGVyIH4yIG1pbnV0ZXMKPj4+ID4gLSBDT05GSUdVUkVfTUlDUk9TRUNPTkRTX1BFUl9USUNL PTEwMDAwICgxMDAgSHopOiBoYW5ncyBhZnRlciB+NS02IG1pbnV0ZXMKPj4+ID4KPj4+ID4gRHVy aW5nIHRoZSBoYW5nLCB0aGUgVUFSVCBiZWNvbWVzIGNvbXBsZXRlbHkgdW5yZXNwb25zaXZlLCBz dWdnZXN0aW5nIGEKPj4+ID4ga2VybmVsLWxldmVsIGRlYWRsb2NrIG9yIGludGVycnVwdCBoYW5k bGVyIGlzc3VlIHJhdGhlciB0aGFuIGFuCj4+PiA+IGFwcGxpY2F0aW9uLWxldmVsIHByb2JsZW0u Cj4+PiA+Cj4+PiA+IEVsaW1pbmF0aW9uIHRlc3RpbmcgcGVyZm9ybWVkCj4+PiA+IC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiA+IEkgc3lzdGVtYXRpY2FsbHkgZGlzYWJsZWQgY29t cG9uZW50cyB0byBpc29sYXRlIHRoZSBjYXVzZS4gQWxsIHRlc3RzIGJlbG93Cj4+PiA+IHVzZWQg Q09ORklHVVJFX01JQ1JPU0VDT05EU19QRVJfVElDSz0xMDAwMCAoMTAwIEh6KToKPj4+ID4KPj4+ ID4gMS4gRGlzYWJsZWQgYWxsIEVQSUNTIGRhdGFiYXNlIHJlY29yZHMgKG5vIHJlY29yZCBwcm9j ZXNzaW5nKSAtPiBzdGlsbCBoYW5ncwo+Pj4gPiAyLiBEaXNhYmxlZCBwZXJpb2RpYyBOVFAgc3lu YyAobm8gc29ja2V0IG9wZXJhdGlvbnMpIC0+IHN0aWxsIGhhbmdzCj4+PiA+IDMuIERpc2FibGVk IElQIGNvbmZpZ3VyYXRpb24gKG5vIGlmY29uZmlnLCBubyByb3V0ZSwgbm8gbmV0d29yayB0cmFm ZmljLAo+Pj4gPiAgICBidXQgVVNCL0RXQyBPVEcgc3RpbGwgaW5pdGlhbGlzZWQgdmlhIFJURU1T X0JTRF9DT05GSUdfQlNQX0NPTkZJRykKPj4+ID4gICAgLT4gc3RpbGwgaGFuZ3MgKH41LTYgbWlu KSwgVVNCIGh1YiBlbnVtZXJhdGlvbiBjb250aW51ZXMgaW4gYmFja2dyb3VuZDoKPj4+ID4gICAg ICAgdWdlbjEuMjogPHZlbmRvciAweDA0MjQgcHJvZHVjdCAweDI1MTQ+IGF0IHVzYnVzMQo+Pj4g PiAgICAgICB1aHViMSBvbiB1aHViMAo+Pj4gPiAgICAgICAuLi4KPj4+ID4gICAgQ29uc29sZSBv dXRwdXQgaXMgZ2FyYmxlZCBieSBjb25jdXJyZW50IFVTQiBlbnVtZXJhdGlvbiBtZXNzYWdlcywK Pj4+ID4gICAgc3VnZ2VzdGluZyBpbnRlcnJ1cHQgY29udGVudGlvbi4KPj4+ID4gNC4gQ29tbWVu dGVkIG91dCBSVEVNU19CU0RfQ09ORklHX0JTUF9DT05GSUcgYW5kIHRoZQo+Pj4gPiAgICAjaW5j bHVkZSA8YnNwL25leHVzLWRldmljZXMuaD4gdG8gcHJldmVudCBEV0MgT1RHIGluaXRpYWxpc2F0 aW9uCj4+PiA+ICAgIC0+IFNUQUJMRSwgcmFuIGZvciAxNCsgbWludXRlcyB3aXRoIG5vIGhhbmcg KHRlc3Qgc3RvcHBlZCBtYW51YWxseSkKPj4+ID4KPj4+ID4gVGhlIGxpYmJzZCBzb2Z0d2FyZSBz dGFjayAobG9vcGJhY2ssIHNvY2tldHMsIHRlbG5ldGQpIGNvbnRpbnVlcyB0bwo+Pj4gPiBmdW5j dGlvbiBpbiB0ZXN0IDQg4oCUIG9ubHkgdGhlIGhhcmR3YXJlIEJTUCBkZXZpY2VzIChEV0MgT1RH LCBtdWdlLAo+Pj4gPiB1aHViLCB1a3BoeSkgYXJlIGV4Y2x1ZGVkLgo+Pj4gPgo+Pj4gPiBNaW5p bWFsIHJlcHJvZHVjdGlvbgo+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gPiBCdWlsZCBh biBSVEVNUyA2LjIgYXBwbGljYXRpb24gZm9yIHJhc3BiZXJyeXBpMiBCU1Agd2l0aDoKPj4+ID4K Pj4+ID4gICAjZGVmaW5lIFJURU1TX0JTRF9DT05GSUdfQlNQX0NPTkZJRwo+Pj4gPiAgICNkZWZp bmUgUlRFTVNfQlNEX0NPTkZJR19JTklUCj4+PiA+ICAgI2luY2x1ZGUgPG1hY2hpbmUvcnRlbXMt YnNkLWNvbmZpZy5oPgo+Pj4gPiAgICNpbmNsdWRlIDxic3AvbmV4dXMtZGV2aWNlcy5oPiAgICAg LyogaW4gb25lIHRyYW5zbGF0aW9uIHVuaXQgKi8KPj4+ID4KPj4+ID4gICAjZGVmaW5lIENPTkZJ R1VSRV9NSUNST1NFQ09ORFNfUEVSX1RJQ0sgMTAwMDAKPj4+ID4KPj4+ID4gVGhlIGFwcGxpY2F0 aW9uIGRvZXMgbm90IG5lZWQgdG8gY29uZmlndXJlIGFueSBuZXR3b3JrIGludGVyZmFjZSBvcgo+ Pj4gPiBwZXJmb3JtIGFueSBVU0IgdHJhbnNmZXJzIOKAlCB0aGUgRFdDIE9URyBodWIgcG9sbGlu ZyBhbG9uZSB0cmlnZ2Vycwo+Pj4gPiB0aGUgaGFuZyBhZnRlciB+NS02IG1pbnV0ZXMuCj4+PiA+ Cj4+PiA+IENvbW1lbnRpbmcgb3V0IFJURU1TX0JTRF9DT05GSUdfQlNQX0NPTkZJRyBhbmQgdGhl IG5leHVzLWRldmljZXMuaAo+Pj4gPiBpbmNsdWRlIGVsaW1pbmF0ZXMgdGhlIGhhbmcuCj4+PiA+ Cj4+PiA+IEJvb3QgbG9nIChhYmJyZXZpYXRlZCwgZnJvbSBoYW5naW5nIGNvbmZpZ3VyYXRpb24p Cj4+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4+PiA+IFJURU1TIFJQaSAzQisgMS4zICgxR0IpIFswMGEwMjBkM10KPj4+ID4gbmV4dXMwOiA8 UlRFTVMgTmV4dXMgZGV2aWNlPgo+Pj4gPiBkd2NvdGcwOiA8RFdDIE9URyAyLjAgaW50ZWdyYXRl ZCBVU0IgY29udHJvbGxlcj4gb24gbmV4dXMwCj4+PiA+IHVzYnVzMSBvbiBkd2NvdGcwCj4+PiA+ IHVzYnVzMTogNDgwTWJwcyBIaWdoIFNwZWVkIFVTQiB2Mi4wCj4+PiA+IHVnZW4xLjE6IDxEV0NP VEcgT1RHIFJvb3QgSFVCPiBhdCB1c2J1czEKPj4+ID4gdWh1YjAgb24gdXNidXMxCj4+PiA+IHVo dWIwOiA8RFdDT1RHIE9URyBSb290IEhVQiwgY2xhc3MgOS8wLCByZXYgMi4wMC8xLjAwLCBhZGRy IDE+IG9uIHVzYnVzMQo+Pj4gPiB1aHViMDogMSBwb3J0IHdpdGggMSByZW1vdmFibGUsIHNlbGYg cG93ZXJlZAo+Pj4gPiB1Z2VuMS4yOiA8dmVuZG9yIDB4MDQyNCBwcm9kdWN0IDB4MjUxND4gYXQg dXNidXMxCj4+PiA+IHVodWIxIG9uIHVodWIwCj4+PiA+IHVodWIxOiA8dmVuZG9yIDB4MDQyNCBw cm9kdWN0IDB4MjUxNCwgY2xhc3MgOS8wLCByZXYgMi4wMC9iLmIzLCBhZGRyIDI+IG9uIHVzYnVz MQo+Pj4gPiB1aHViMTogNCBwb3J0cyB3aXRoIDMgcmVtb3ZhYmxlLCBzZWxmIHBvd2VyZWQKPj4+ ID4gdWdlbjEuMzogPHZlbmRvciAweDA0MjQgcHJvZHVjdCAweDI1MTQ+IGF0IHVzYnVzMQo+Pj4g PiB1aHViMiBvbiB1aHViMQo+Pj4gPiB1aHViMjogPHZlbmRvciAweDA0MjQgcHJvZHVjdCAweDI1 MTQsIGNsYXNzIDkvMCwgcmV2IDIuMDAvYi5iMywgYWRkciAzPiBvbiB1c2J1czEKPj4+ID4gdWh1 YjI6IDMgcG9ydHMgd2l0aCAyIHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkCj4+PiA+IHVnZW4xLjQ6 IDx2ZW5kb3IgMHgwNDI0IHByb2R1Y3QgMHg3ODAwPiBhdCB1c2J1czEKPj4+ID4gbXVnZTA6IDx2 ZW5kb3IgMHgwNDI0IHByb2R1Y3QgMHg3ODAwLCByZXYgMi4xMC8zLjAwLCBhZGRyIDQ+IG9uIHVz YnVzMQo+Pj4gPiBtdWdlMDogQ2hpcCBJRCAweDc4MDAgcmV2IDAwMDIKPj4+ID4gbWlpYnVzMDog PE1JSSBidXM+IG9uIG11Z2UwCj4+PiA+IHVrcGh5MDogPEdlbmVyaWMgSUVFRSA4MDIuM3UgbWVk aWEgaW50ZXJmYWNlPiBQSFkgMSBvbiBtaWlidXMwCj4+PiA+IGluZm86IHVlMDogPFVTQiBFdGhl cm5ldD4gb24gbXVnZTAKPj4+ID4gW3N5c3RlbSBoYW5ncyBhZnRlciB+NS02IG1pbnV0ZXMsIFVB UlQgdW5yZXNwb25zaXZlXQo+Pj4gPgo+Pj4gPiBRdWVzdGlvbnMKPj4+ID4gLS0tLS0tLS0tCj4+ PiA+IDEuIElzIHRoaXMgYSBrbm93biBpc3N1ZSB3aXRoIHRoZSBEV0MgT1RHIGRyaXZlciBvbiBS UGkgM0IrPwo+Pj4gPiAyLiBBcmUgdGhlcmUgYW55IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAoaHVi IHBvbGxpbmcgaW50ZXJ2YWwsIGludGVycnVwdAo+Pj4gPiAgICBjb2FsZXNjaW5nLCBETUEgc2V0 dGluZ3MpIHRoYXQgbWlnaHQgd29yayBhcm91bmQgdGhlIHByb2JsZW0/Cj4+PiA+IDMuIFdvdWxk IGEgbmV3ZXIgdmVyc2lvbiBvZiBydGVtcy1saWJic2QgY29udGFpbiBmaXhlcyBmb3IgdGhpcz8K Pj4+ID4gNC4gSXMgdGhlcmUgYW4gYWx0ZXJuYXRpdmUgRXRoZXJuZXQgZHJpdmVyIGFwcHJvYWNo IGZvciBSUGkgM0IrIHRoYXQKPj4+ID4gICAgYXZvaWRzIHRoZSBEV0MgT1RHIFVTQiBwYXRoPwo+ Pj4gPiA1LiBJcyB0aGVyZSBhbnkga25vd24gcHJvamVjdCB3aGljaCB1c2VzIFJQaSB3aXRoIFJU RU1TPwo+Pj4gPiAoaXQgbG9va3MgbGlrZSB0aGF0IHRoZSBvcHRpb24gdG8gcnVuIFJURU1TIG9u IFJQaTQgb3IgUlBpIDUgY2FuIG5vdCBiZSBjb25zaWRlcmVkIHNpbmNlIHRoZSBCU1AgaW4gUlRF TVMga2VybmVsICBpcyBub3QgeWV0IGZpbmFsaXNlZC4KPj4+ID4gVGhlIFJQaTQgb3IgUlBpIDUg d291bGQgYmUgbXVjaCBiZXR0ZXIgY2FuZGlkYXRlcyB2cyBSUGkgMyBCKyBzaW5jZSB0aGV5IHVz ZSBkaXJlY3QgY29ubmVjdGlvbiB0byBFdGhlcm5ldCBpbnN0ZWFkIG9mIHRoZSBVU0ItRXRoZXJu ZXQpCj4+PiA+Cj4+PiA+IFRoYW5rIHlvdSBmb3IgYW55IGd1aWRhbmNlLgo+Pj4gPgo+Pj4gPiBN aXJlawo+Pj4gPgo+Pj4gPgo+Pj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+Pj4gPiB1c2VycyBtYWlsaW5nIGxpc3QKPj4+ID4gdXNlcnNAcnRlbXMu b3JnCj4+PiA+IGh0dHA6Ly9saXN0cy5ydGVtcy5vcmcvbWFpbG1hbi9saXN0aW5mby91c2Vycwo+ Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiB1c2Vy cyBtYWlsaW5nIGxpc3QKPiB1c2Vyc0BydGVtcy5vcmcKPiBodHRwOi8vbGlzdHMucnRlbXMub3Jn L21haWxtYW4vbGlzdGluZm8vdXNlcnMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KdXNlcnMgbWFpbGluZyBsaXN0CnVzZXJzQHJ0ZW1zLm9yZwpodHRwOi8v bGlzdHMucnRlbXMub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnM=