ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmIvZnJhbWVidWZmZXIudHh0IGIvRG9jdW1lbnRhdGlvbi9mYi9mcmFtZWJ1ZmZlci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjEwZTc4MAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZmIvZnJhbWVidWZmZXIudHh0CkBAIC0wLDAgKzEsMzQ1IEBACisJCQlUaGUgRnJhbWUgQnVmZmVyIERldmljZQorCQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworTWFpbnRhaW5lZCBieSBHZWVydCBVeXR0ZXJob2V2ZW4gPGdlZXJ0QGxpbnV4LW02OGsub3JnPgorTGFzdCByZXZpc2VkOiBNYXkgMTAsIDIwMDEKKworCiswLiBJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLS0tLQorCitUaGUgZnJhbWUgYnVmZmVyIGRldmljZSBwcm92aWRlcyBhbiBhYnN0cmFjdGlvbiBmb3IgdGhlIGdyYXBoaWNzIGhhcmR3YXJlLiBJdAorcmVwcmVzZW50cyB0aGUgZnJhbWUgYnVmZmVyIG9mIHNvbWUgdmlkZW8gaGFyZHdhcmUgYW5kIGFsbG93cyBhcHBsaWNhdGlvbgorc29mdHdhcmUgdG8gYWNjZXNzIHRoZSBncmFwaGljcyBoYXJkd2FyZSB0aHJvdWdoIGEgd2VsbC1kZWZpbmVkIGludGVyZmFjZSwgc28KK3RoZSBzb2Z0d2FyZSBkb2Vzbid0IG5lZWQgdG8ga25vdyBhbnl0aGluZyBhYm91dCB0aGUgbG93LWxldmVsIChoYXJkd2FyZQorcmVnaXN0ZXIpIHN0dWZmLgorCitUaGUgZGV2aWNlIGlzIGFjY2Vzc2VkIHRocm91Z2ggc3BlY2lhbCBkZXZpY2Ugbm9kZXMsIHVzdWFsbHkgbG9jYXRlZCBpbiB0aGUKKy9kZXYgZGlyZWN0b3J5LCBpLmUuIC9kZXYvZmIqLgorCisKKzEuIFVzZXIncyBWaWV3IG9mIC9kZXYvZmIqCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGcm9tIHRoZSB1c2VyJ3MgcG9pbnQgb2YgdmlldywgdGhlIGZyYW1lIGJ1ZmZlciBkZXZpY2UgbG9va3MganVzdCBsaWtlIGFueQorb3RoZXIgZGV2aWNlIGluIC9kZXYuIEl0J3MgYSBjaGFyYWN0ZXIgZGV2aWNlIHVzaW5nIG1ham9yIDI5OyB0aGUgbWlub3IKK3NwZWNpZmllcyB0aGUgZnJhbWUgYnVmZmVyIG51bWJlci4KKworQnkgY29udmVudGlvbiwgdGhlIGZvbGxvd2luZyBkZXZpY2Ugbm9kZXMgYXJlIHVzZWQgKG51bWJlcnMgaW5kaWNhdGUgdGhlIGRldmljZQorbWlub3IgbnVtYmVycyk6CisKKyAgICAgIDAgPSAvZGV2L2ZiMAlGaXJzdCBmcmFtZSBidWZmZXIKKyAgICAgIDEgPSAvZGV2L2ZiMQlTZWNvbmQgZnJhbWUgYnVmZmVyCisJICAuLi4KKyAgICAgMzEgPSAvZGV2L2ZiMzEJMzJuZCBmcmFtZSBidWZmZXIKKworRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB5b3UgbWF5IHdhbnQgdG8gY3JlYXRlIHRoZSBmb2xsb3dpbmcgc3ltYm9saWMKK2xpbmtzOgorCisgICAgL2Rldi9mYjBjdXJyZW50IC0+IGZiMAorICAgIC9kZXYvZmIxY3VycmVudCAtPiBmYjEKKworYW5kIHNvIG9uLi4uCisKK1RoZSBmcmFtZSBidWZmZXIgZGV2aWNlcyBhcmUgYWxzbyBgbm9ybWFsJyBtZW1vcnkgZGV2aWNlcywgdGhpcyBtZWFucywgeW91IGNhbgorcmVhZCBhbmQgd3JpdGUgdGhlaXIgY29udGVudHMuIFlvdSBjYW4sIGZvciBleGFtcGxlLCBtYWtlIGEgc2NyZWVuIHNuYXBzaG90IGJ5CisKKyAgY3AgL2Rldi9mYjAgbXlmaWxlCisKK1RoZXJlIGFsc28gY2FuIGJlIG1vcmUgdGhhbiBvbmUgZnJhbWUgYnVmZmVyIGF0IGEgdGltZSwgZS5nLiBpZiB5b3UgaGF2ZSBhCitncmFwaGljcyBjYXJkIGluIGFkZGl0aW9uIHRvIHRoZSBidWlsdC1pbiBoYXJkd2FyZS4gVGhlIGNvcnJlc3BvbmRpbmcgZnJhbWUKK2J1ZmZlciBkZXZpY2VzICgvZGV2L2ZiMCBhbmQgL2Rldi9mYjEgZXRjLikgd29yayBpbmRlcGVuZGVudGx5LgorCitBcHBsaWNhdGlvbiBzb2Z0d2FyZSB0aGF0IHVzZXMgdGhlIGZyYW1lIGJ1ZmZlciBkZXZpY2UgKGUuZy4gdGhlIFggc2VydmVyKSB3aWxsCit1c2UgL2Rldi9mYjAgYnkgZGVmYXVsdCAob2xkZXIgc29mdHdhcmUgdXNlcyAvZGV2L2ZiMGN1cnJlbnQpLiBZb3UgY2FuIHNwZWNpZnkKK2FuIGFsdGVybmF0aXZlIGZyYW1lIGJ1ZmZlciBkZXZpY2UgYnkgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKyRGUkFNRUJVRkZFUiB0byB0aGUgcGF0aCBuYW1lIG9mIGEgZnJhbWUgYnVmZmVyIGRldmljZSwgZS5nLiAoZm9yIHNoL2Jhc2gKK3VzZXJzKToKKworICAgIGV4cG9ydCBGUkFNRUJVRkZFUj0vZGV2L2ZiMQorCitvciAoZm9yIGNzaCB1c2Vycyk6CisKKyAgICBzZXRlbnYgRlJBTUVCVUZGRVIgL2Rldi9mYjEKKworQWZ0ZXIgdGhpcyB0aGUgWCBzZXJ2ZXIgd2lsbCB1c2UgdGhlIHNlY29uZCBmcmFtZSBidWZmZXIuCisKKworMi4gUHJvZ3JhbW1lcidzIFZpZXcgb2YgL2Rldi9mYioKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0FzIHlvdSBhbHJlYWR5IGtub3csIGEgZnJhbWUgYnVmZmVyIGRldmljZSBpcyBhIG1lbW9yeSBkZXZpY2UgbGlrZSAvZGV2L21lbSBhbmQKK2l0IGhhcyB0aGUgc2FtZSBmZWF0dXJlcy4gWW91IGNhbiByZWFkIGl0LCB3cml0ZSBpdCwgc2VlayB0byBzb21lIGxvY2F0aW9uIGluCitpdCBhbmQgbW1hcCgpIGl0ICh0aGUgbWFpbiB1c2FnZSkuIFRoZSBkaWZmZXJlbmNlIGlzIGp1c3QgdGhhdCB0aGUgbWVtb3J5IHRoYXQKK2FwcGVhcnMgaW4gdGhlIHNwZWNpYWwgZmlsZSBpcyBub3QgdGhlIHdob2xlIG1lbW9yeSwgYnV0IHRoZSBmcmFtZSBidWZmZXIgb2YKK3NvbWUgdmlkZW8gaGFyZHdhcmUuCisKKy9kZXYvZmIqIGFsc28gYWxsb3dzIHNldmVyYWwgaW9jdGxzIG9uIGl0LCBieSB3aGljaCBsb3RzIG9mIGluZm9ybWF0aW9uIGFib3V0Cit0aGUgaGFyZHdhcmUgY2FuIGJlIHF1ZXJpZWQgYW5kIHNldC4gVGhlIGNvbG9yIG1hcCBoYW5kbGluZyB3b3JrcyB2aWEgaW9jdGxzLAordG9vLiBMb29rIGludG8gPGxpbnV4L2ZiLmg+IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHdoYXQgaW9jdGxzIGV4aXN0IGFuZCBvbgord2hpY2ggZGF0YSBzdHJ1Y3R1cmVzIHRoZXkgd29yay4gSGVyZSdzIGp1c3QgYSBicmllZiBvdmVydmlldzoKKworICAtIFlvdSBjYW4gcmVxdWVzdCB1bmNoYW5nZWFibGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGhhcmR3YXJlLCBsaWtlIG5hbWUsCisgICAgb3JnYW5pemF0aW9uIG9mIHRoZSBzY3JlZW4gbWVtb3J5IChwbGFuZXMsIHBhY2tlZCBwaXhlbHMsIC4uLikgYW5kIGFkZHJlc3MKKyAgICBhbmQgbGVuZ3RoIG9mIHRoZSBzY3JlZW4gbWVtb3J5LgorCisgIC0gWW91IGNhbiByZXF1ZXN0IGFuZCBjaGFuZ2UgdmFyaWFibGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGhhcmR3YXJlLCBsaWtlCisgICAgdmlzaWJsZSBhbmQgdmlydHVhbCBnZW9tZXRyeSwgZGVwdGgsIGNvbG9yIG1hcCBmb3JtYXQsIHRpbWluZywgYW5kIHNvIG9uLgorICAgIElmIHlvdSB0cnkgdG8gY2hhbmdlIHRoYXQgaW5mb3JtYXRpb24sIHRoZSBkcml2ZXIgbWF5YmUgd2lsbCByb3VuZCB1cCBzb21lCisgICAgdmFsdWVzIHRvIG1lZXQgdGhlIGhhcmR3YXJlJ3MgY2FwYWJpbGl0aWVzIChvciByZXR1cm4gRUlOVkFMIGlmIHRoYXQgaXNuJ3QKKyAgICBwb3NzaWJsZSkuCisKKyAgLSBZb3UgY2FuIGdldCBhbmQgc2V0IHBhcnRzIG9mIHRoZSBjb2xvciBtYXAuIENvbW11bmljYXRpb24gaXMgZG9uZSB3aXRoIDE2CisgICAgYml0cyBwZXIgY29sb3IgcGFydCAocmVkLCBncmVlbiwgYmx1ZSwgdHJhbnNwYXJlbmN5KSB0byBzdXBwb3J0IGFsbCAKKyAgICBleGlzdGluZyBoYXJkd2FyZS4gVGhlIGRyaXZlciBkb2VzIGFsbCB0aGUgY29tcHV0YXRpb25zIG5lZWRlZCB0byBhcHBseSAKKyAgICBpdCB0byB0aGUgaGFyZHdhcmUgKHJvdW5kIGl0IGRvd24gdG8gbGVzcyBiaXRzLCBtYXliZSB0aHJvdyBhd2F5IAorICAgIHRyYW5zcGFyZW5jeSkuCisKK0FsbCB0aGlzIGhhcmR3YXJlIGFic3RyYWN0aW9uIG1ha2VzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhcHBsaWNhdGlvbiBwcm9ncmFtcworZWFzaWVyIGFuZCBtb3JlIHBvcnRhYmxlLiBFLmcuIHRoZSBYIHNlcnZlciB3b3JrcyBjb21wbGV0ZWx5IG9uIC9kZXYvZmIqIGFuZAordGh1cyBkb2Vzbid0IG5lZWQgdG8ga25vdywgZm9yIGV4YW1wbGUsIGhvdyB0aGUgY29sb3IgcmVnaXN0ZXJzIG9mIHRoZSBjb25jcmV0ZQoraGFyZHdhcmUgYXJlIG9yZ2FuaXplZC4gWEY2OF9GQkRldiBpcyBhIGdlbmVyYWwgWCBzZXJ2ZXIgZm9yIGJpdG1hcHBlZCwKK3VuYWNjZWxlcmF0ZWQgdmlkZW8gaGFyZHdhcmUuIFRoZSBvbmx5IHRoaW5nIHRoYXQgaGFzIHRvIGJlIGJ1aWx0IGludG8KK2FwcGxpY2F0aW9uIHByb2dyYW1zIGlzIHRoZSBzY3JlZW4gb3JnYW5pemF0aW9uIChiaXRwbGFuZXMgb3IgY2h1bmt5IHBpeGVscworZXRjLiksIGJlY2F1c2UgaXQgd29ya3Mgb24gdGhlIGZyYW1lIGJ1ZmZlciBpbWFnZSBkYXRhIGRpcmVjdGx5LgorCitGb3IgdGhlIGZ1dHVyZSBpdCBpcyBwbGFubmVkIHRoYXQgZnJhbWUgYnVmZmVyIGRyaXZlcnMgZm9yIGdyYXBoaWNzIGNhcmRzIGFuZAordGhlIGxpa2UgY2FuIGJlIGltcGxlbWVudGVkIGFzIGtlcm5lbCBtb2R1bGVzIHRoYXQgYXJlIGxvYWRlZCBhdCBydW50aW1lLiBTdWNoCithIGRyaXZlciBqdXN0IGhhcyB0byBjYWxsIHJlZ2lzdGVyX2ZyYW1lYnVmZmVyKCkgYW5kIHN1cHBseSBzb21lIGZ1bmN0aW9ucy4KK1dyaXRpbmcgYW5kIGRpc3RyaWJ1dGluZyBzdWNoIGRyaXZlcnMgaW5kZXBlbmRlbnRseSBmcm9tIHRoZSBrZXJuZWwgd2lsbCBzYXZlCittdWNoIHRyb3VibGUuLi4KKworCiszLiBGcmFtZSBCdWZmZXIgUmVzb2x1dGlvbiBNYWludGVuYW5jZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRnJhbWUgYnVmZmVyIHJlc29sdXRpb25zIGFyZSBtYWludGFpbmVkIHVzaW5nIHRoZSB1dGlsaXR5IGBmYnNldCcuIEl0IGNhbgorY2hhbmdlIHRoZSB2aWRlbyBtb2RlIHByb3BlcnRpZXMgb2YgYSBmcmFtZSBidWZmZXIgZGV2aWNlLiBJdHMgbWFpbiB1c2FnZSBpcwordG8gY2hhbmdlIHRoZSBjdXJyZW50IHZpZGVvIG1vZGUsIGUuZy4gZHVyaW5nIGJvb3QgdXAgaW4gb25lIG9mIHlvdXIgL2V0Yy9yYy4qCitvciAvZXRjL2luaXQuZC8qIGZpbGVzLgorCitGYnNldCB1c2VzIGEgdmlkZW8gbW9kZSBkYXRhYmFzZSBzdG9yZWQgaW4gYSBjb25maWd1cmF0aW9uIGZpbGUsIHNvIHlvdSBjYW4KK2Vhc2lseSBhZGQgeW91ciBvd24gbW9kZXMgYW5kIHJlZmVyIHRvIHRoZW0gd2l0aCBhIHNpbXBsZSBpZGVudGlmaWVyLgorCisKKzQuIFRoZSBYIFNlcnZlcgorLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBYIHNlcnZlciAoWEY2OF9GQkRldikgaXMgdGhlIG1vc3Qgbm90YWJsZSBhcHBsaWNhdGlvbiBwcm9ncmFtIGZvciB0aGUgZnJhbWUKK2J1ZmZlciBkZXZpY2UuIFN0YXJ0aW5nIHdpdGggWEZyZWU4NiByZWxlYXNlIDMuMiwgdGhlIFggc2VydmVyIGlzIHBhcnQgb2YKK1hGcmVlODYgYW5kIGhhcyAyIG1vZGVzOgorCisgIC0gSWYgdGhlIGBEaXNwbGF5JyBzdWJzZWN0aW9uIGZvciB0aGUgYGZiZGV2JyBkcml2ZXIgaW4gdGhlIC9ldGMvWEY4NkNvbmZpZworICAgIGZpbGUgY29udGFpbnMgYQorCisJTW9kZXMgImRlZmF1bHQiCisKKyAgICBsaW5lLCB0aGUgWCBzZXJ2ZXIgd2lsbCB1c2UgdGhlIHNjaGVtZSBkaXNjdXNzZWQgYWJvdmUsIGkuZS4gaXQgd2lsbCBzdGFydAorICAgIHVwIGluIHRoZSByZXNvbHV0aW9uIGRldGVybWluZWQgYnkgL2Rldi9mYjAgKG9yICRGUkFNRUJVRkZFUiwgaWYgc2V0KS4gWW91CisgICAgc3RpbGwgaGF2ZSB0byBzcGVjaWZ5IHRoZSBjb2xvciBkZXB0aCAodXNpbmcgdGhlIERlcHRoIGtleXdvcmQpIGFuZCB2aXJ0dWFsCisgICAgcmVzb2x1dGlvbiAodXNpbmcgdGhlIFZpcnR1YWwga2V5d29yZCkgdGhvdWdoLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGZvciB0aGUKKyAgICBjb25maWd1cmF0aW9uIGZpbGUgc3VwcGxpZWQgd2l0aCBYRnJlZTg2LiBJdCdzIHRoZSBtb3N0IHNpbXBsZQorICAgIGNvbmZpZ3VyYXRpb24sIGJ1dCBpdCBoYXMgc29tZSBsaW1pdGF0aW9ucy4KKworICAtIFRoZXJlZm9yZSBpdCdzIGFsc28gcG9zc2libGUgdG8gc3BlY2lmeSByZXNvbHV0aW9ucyBpbiB0aGUgL2V0Yy9YRjg2Q29uZmlnCisgICAgZmlsZS4gVGhpcyBhbGxvd3MgZm9yIG9uLXRoZS1mbHkgcmVzb2x1dGlvbiBzd2l0Y2hpbmcgd2hpbGUgcmV0YWluaW5nIHRoZQorICAgIHNhbWUgdmlydHVhbCBkZXNrdG9wIHNpemUuIFRoZSBmcmFtZSBidWZmZXIgZGV2aWNlIHRoYXQncyB1c2VkIGlzIHN0aWxsCisgICAgL2Rldi9mYjBjdXJyZW50IChvciAkRlJBTUVCVUZGRVIpLCBidXQgdGhlIGF2YWlsYWJsZSByZXNvbHV0aW9ucyBhcmUKKyAgICBkZWZpbmVkIGJ5IC9ldGMvWEY4NkNvbmZpZyBub3cuIFRoZSBkaXNhZHZhbnRhZ2UgaXMgdGhhdCB5b3UgaGF2ZSB0bworICAgIHNwZWNpZnkgdGhlIHRpbWluZ3MgaW4gYSBkaWZmZXJlbnQgZm9ybWF0IChidXQgYGZic2V0IC14JyBtYXkgaGVscCkuCisKK1RvIHR1bmUgYSB2aWRlbyBtb2RlLCB5b3UgY2FuIHVzZSBmYnNldCBvciB4dmlkdHVuZS4gTm90ZSB0aGF0IHh2aWR0dW5lIGRvZXNuJ3QKK3dvcmsgMTAwJSB3aXRoIFhGNjhfRkJEZXY6IHRoZSByZXBvcnRlZCBjbG9jayB2YWx1ZXMgYXJlIGFsd2F5cyBpbmNvcnJlY3QuCisKKworNS4gVmlkZW8gTW9kZSBUaW1pbmdzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQSBtb25pdG9yIGRyYXdzIGFuIGltYWdlIG9uIHRoZSBzY3JlZW4gYnkgdXNpbmcgYW4gZWxlY3Ryb24gYmVhbSAoMyBlbGVjdHJvbgorYmVhbXMgZm9yIGNvbG9yIG1vZGVscywgMSBlbGVjdHJvbiBiZWFtIGZvciBtb25vY2hyb21lIG1vbml0b3JzKS4gVGhlIGZyb250IG9mCit0aGUgc2NyZWVuIGlzIGNvdmVyZWQgYnkgYSBwYXR0ZXJuIG9mIGNvbG9yZWQgcGhvc3Bob3JzIChwaXhlbHMpLiBJZiBhIHBob3NwaG9yCitpcyBoaXQgYnkgYW4gZWxlY3Ryb24sIGl0IGVtaXRzIGEgcGhvdG9uIGFuZCB0aHVzIGJlY29tZXMgdmlzaWJsZS4KKworVGhlIGVsZWN0cm9uIGJlYW0gZHJhd3MgaG9yaXpvbnRhbCBsaW5lcyAoc2NhbmxpbmVzKSBmcm9tIGxlZnQgdG8gcmlnaHQsIGFuZAorZnJvbSB0aGUgdG9wIHRvIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbi4gQnkgbW9kaWZ5aW5nIHRoZSBpbnRlbnNpdHkgb2YgdGhlCitlbGVjdHJvbiBiZWFtLCBwaXhlbHMgd2l0aCB2YXJpb3VzIGNvbG9ycyBhbmQgaW50ZW5zaXRpZXMgY2FuIGJlIHNob3duLgorCitBZnRlciBlYWNoIHNjYW5saW5lIHRoZSBlbGVjdHJvbiBiZWFtIGhhcyB0byBtb3ZlIGJhY2sgdG8gdGhlIGxlZnQgc2lkZSBvZiB0aGUKK3NjcmVlbiBhbmQgdG8gdGhlIG5leHQgbGluZTogdGhpcyBpcyBjYWxsZWQgdGhlIGhvcml6b250YWwgcmV0cmFjZS4gQWZ0ZXIgdGhlCit3aG9sZSBzY3JlZW4gKGZyYW1lKSB3YXMgcGFpbnRlZCwgdGhlIGJlYW0gbW92ZXMgYmFjayB0byB0aGUgdXBwZXIgbGVmdCBjb3JuZXI6Cit0aGlzIGlzIGNhbGxlZCB0aGUgdmVydGljYWwgcmV0cmFjZS4gRHVyaW5nIGJvdGggdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsCityZXRyYWNlLCB0aGUgZWxlY3Ryb24gYmVhbSBpcyB0dXJuZWQgb2ZmIChibGFua2VkKS4KKworVGhlIHNwZWVkIGF0IHdoaWNoIHRoZSBlbGVjdHJvbiBiZWFtIHBhaW50cyB0aGUgcGl4ZWxzIGlzIGRldGVybWluZWQgYnkgdGhlCitkb3RjbG9jayBpbiB0aGUgZ3JhcGhpY3MgYm9hcmQuIEZvciBhIGRvdGNsb2NrIG9mIGUuZy4gMjguMzc1MTYgTUh6IChtaWxsaW9ucworb2YgY3ljbGVzIHBlciBzZWNvbmQpLCBlYWNoIHBpeGVsIGlzIDM1MjQyIHBzIChwaWNvc2Vjb25kcykgbG9uZzoKKworICAgIDEvKDI4LjM3NTE2RTYgSHopID0gMzUuMjQyRS05IHMKKworSWYgdGhlIHNjcmVlbiByZXNvbHV0aW9uIGlzIDY0MHg0ODAsIGl0IHdpbGwgdGFrZQorCisgICAgNjQwKjM1LjI0MkUtOSBzID0gMjIuNTU1RS02IHMKKwordG8gcGFpbnQgdGhlIDY0MCAoeHJlcykgcGl4ZWxzIG9uIG9uZSBzY2FubGluZS4gQnV0IHRoZSBob3Jpem9udGFsIHJldHJhY2UKK2Fsc28gdGFrZXMgdGltZSAoZS5nLiAyNzIgYHBpeGVscycpLCBzbyBhIGZ1bGwgc2NhbmxpbmUgdGFrZXMKKworICAgICg2NDArMjcyKSozNS4yNDJFLTkgcyA9IDMyLjE0MUUtNiBzCisKK1dlJ2xsIHNheSB0aGF0IHRoZSBob3Jpem9udGFsIHNjYW5yYXRlIGlzIGFib3V0IDMxIGtIejoKKworICAgIDEvKDMyLjE0MUUtNiBzKSA9IDMxLjExM0UzIEh6CisKK0EgZnVsbCBzY3JlZW4gY291bnRzIDQ4MCAoeXJlcykgbGluZXMsIGJ1dCB3ZSBoYXZlIHRvIGNvbnNpZGVyIHRoZSB2ZXJ0aWNhbAorcmV0cmFjZSB0b28gKGUuZy4gNDkgYGxpbmVzJykuIFNvIGEgZnVsbCBzY3JlZW4gd2lsbCB0YWtlCisKKyAgICAoNDgwKzQ5KSozMi4xNDFFLTYgcyA9IDE3LjAwMkUtMyBzCisKK1RoZSB2ZXJ0aWNhbCBzY2FucmF0ZSBpcyBhYm91dCA1OSBIejoKKworICAgIDEvKDE3LjAwMkUtMyBzKSA9IDU4LjgxNSBIegorCitUaGlzIG1lYW5zIHRoZSBzY3JlZW4gZGF0YSBpcyByZWZyZXNoZWQgYWJvdXQgNTkgdGltZXMgcGVyIHNlY29uZC4gVG8gaGF2ZSBhCitzdGFibGUgcGljdHVyZSB3aXRob3V0IHZpc2libGUgZmxpY2tlciwgVkVTQSByZWNvbW1lbmRzIGEgdmVydGljYWwgc2NhbnJhdGUgb2YKK2F0IGxlYXN0IDcyIEh6LiBCdXQgdGhlIHBlcmNlaXZlZCBmbGlja2VyIGlzIHZlcnkgaHVtYW4gZGVwZW5kZW50OiBzb21lIHBlb3BsZQorY2FuIHVzZSA1MCBIeiB3aXRob3V0IGFueSB0cm91YmxlLCB3aGlsZSBJJ2xsIG5vdGljZSBpZiBpdCdzIGxlc3MgdGhhbiA4MCBIei4KKworU2luY2UgdGhlIG1vbml0b3IgZG9lc24ndCBrbm93IHdoZW4gYSBuZXcgc2NhbmxpbmUgc3RhcnRzLCB0aGUgZ3JhcGhpY3MgYm9hcmQKK3dpbGwgc3VwcGx5IGEgc3luY2hyb25pemF0aW9uIHB1bHNlIChob3Jpem9udGFsIHN5bmMgb3IgaHN5bmMpIGZvciBlYWNoCitzY2FubGluZS4gIFNpbWlsYXJseSBpdCBzdXBwbGllcyBhIHN5bmNocm9uaXphdGlvbiBwdWxzZSAodmVydGljYWwgc3luYyBvcgordnN5bmMpIGZvciBlYWNoIG5ldyBmcmFtZS4gVGhlIHBvc2l0aW9uIG9mIHRoZSBpbWFnZSBvbiB0aGUgc2NyZWVuIGlzCitpbmZsdWVuY2VkIGJ5IHRoZSBtb21lbnRzIGF0IHdoaWNoIHRoZSBzeW5jaHJvbml6YXRpb24gcHVsc2VzIG9jY3VyLgorCitUaGUgZm9sbG93aW5nIHBpY3R1cmUgc3VtbWFyaXplcyBhbGwgdGltaW5ncy4gVGhlIGhvcml6b250YWwgcmV0cmFjZSB0aW1lIGlzCit0aGUgc3VtIG9mIHRoZSBsZWZ0IG1hcmdpbiwgdGhlIHJpZ2h0IG1hcmdpbiBhbmQgdGhlIGhzeW5jIGxlbmd0aCwgd2hpbGUgdGhlCit2ZXJ0aWNhbCByZXRyYWNlIHRpbWUgaXMgdGhlIHN1bSBvZiB0aGUgdXBwZXIgbWFyZ2luLCB0aGUgbG93ZXIgbWFyZ2luIGFuZCB0aGUKK3ZzeW5jIGxlbmd0aC4KKworICArLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tKworICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfHVwcGVyX21hcmdpbiAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgpSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgfAorICArLS0tLS0tLS0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjLS0tLS0tLS0tLSstLS0tLS0tKworICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgbGVmdCAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICByaWdodCAgIHwgaHN5bmMgfAorICB8ICBtYXJnaW4gICMgICAgICAgICAgICAgICAgfCAgICAgICB4cmVzICAgICAgICAgICAgICAgICAjICBtYXJnaW4gIHwgIGxlbiAgfAorICB8PC0tLS0tLS0tPiM8LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4jPC0tLS0tLS0tPnw8LS0tLS0+fAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfHlyZXMgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgpSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfAorICArLS0tLS0tLS0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjLS0tLS0tLS0tLSstLS0tLS0tKworICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfGxvd2VyX21hcmdpbiAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgpSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgfAorICArLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tKworICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfHZzeW5jX2xlbiAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgfAorICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgpSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgfAorICArLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tKworCitUaGUgZnJhbWUgYnVmZmVyIGRldmljZSBleHBlY3RzIGFsbCBob3Jpem9udGFsIHRpbWluZ3MgaW4gbnVtYmVyIG9mIGRvdGNsb2NrcworKGluIHBpY29zZWNvbmRzLCAxRS0xMiBzKSwgYW5kIHZlcnRpY2FsIHRpbWluZ3MgaW4gbnVtYmVyIG9mIHNjYW5saW5lcy4KKworCis2LiBDb252ZXJ0aW5nIFhGcmVlODYgdGltaW5nIHZhbHVlcyBpbmZvIGZyYW1lIGJ1ZmZlciBkZXZpY2UgdGltaW5ncworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQW4gWEZyZWU4NiBtb2RlIGxpbmUgY29uc2lzdHMgb2YgdGhlIGZvbGxvd2luZyBmaWVsZHM6CisgIjgwMHg2MDAiICAgICA1MCAgICAgIDgwMCAgODU2ICA5NzYgMTA0MCAgICA2MDAgIDYzNyAgNjQzICA2NjYKKyA8IG5hbWUgPiAgICAgRENGICAgICAgIEhSICBTSDEgIFNIMiAgSEZMICAgICBWUiAgU1YxICBTVjIgIFZGTAorCitUaGUgZnJhbWUgYnVmZmVyIGRldmljZSB1c2VzIHRoZSBmb2xsb3dpbmcgZmllbGRzOgorCisgIC0gcGl4Y2xvY2s6IHBpeGVsIGNsb2NrIGluIHBzIChwaWNvIHNlY29uZHMpCisgIC0gbGVmdF9tYXJnaW46IHRpbWUgZnJvbSBzeW5jIHRvIHBpY3R1cmUKKyAgLSByaWdodF9tYXJnaW46IHRpbWUgZnJvbSBwaWN0dXJlIHRvIHN5bmMKKyAgLSB1cHBlcl9tYXJnaW46IHRpbWUgZnJvbSBzeW5jIHRvIHBpY3R1cmUKKyAgLSBsb3dlcl9tYXJnaW46IHRpbWUgZnJvbSBwaWN0dXJlIHRvIHN5bmMKKyAgLSBoc3luY19sZW46IGxlbmd0aCBvZiBob3Jpem9udGFsIHN5bmMKKyAgLSB2c3luY19sZW46IGxlbmd0aCBvZiB2ZXJ0aWNhbCBzeW5jCisKKzEpIFBpeGVsY2xvY2s6CisgICB4ZnJlZTogaW4gTUh6CisgICBmYjogaW4gcGljb3NlY29uZHMgKHBzKQorCisgICBwaXhjbG9jayA9IDEwMDAwMDAgLyBEQ0YKKworMikgaG9yaXpvbnRhbCB0aW1pbmdzOgorICAgbGVmdF9tYXJnaW4gPSBIRkwgLSBTSDIKKyAgIHJpZ2h0X21hcmdpbiA9IFNIMSAtIEhSCisgICBoc3luY19sZW4gPSBTSDIgLSBTSDEKKworMykgdmVydGljYWwgdGltaW5nczoKKyAgIHVwcGVyX21hcmdpbiA9IFZGTCAtIFNWMgorICAgbG93ZXJfbWFyZ2luID0gU1YxIC0gVlIKKyAgIHZzeW5jX2xlbiA9IFNWMiAtIFNWMQorCitHb29kIGV4YW1wbGVzIGZvciBWRVNBIHRpbWluZ3MgY2FuIGJlIGZvdW5kIGluIHRoZSBYRnJlZTg2IHNvdXJjZSB0cmVlLAordW5kZXIgInhjL3Byb2dyYW1zL1hzZXJ2ZXIvaHcveGZyZWU4Ni9kb2MvbW9kZURCLnR4dCIuCisKKworNy4gUmVmZXJlbmNlcworLS0tLS0tLS0tLS0tLQorCitGb3IgbW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZnJhbWUgYnVmZmVyIGRldmljZSBhbmQgaXRzCithcHBsaWNhdGlvbnMsIHBsZWFzZSByZWZlciB0byB0aGUgTGludXgtZmJkZXYgd2Vic2l0ZToKKworICAgIGh0dHA6Ly9saW51eC1mYmRldi5zb3VyY2Vmb3JnZS5uZXQvCisKK2FuZCB0byB0aGUgZm9sbG93aW5nIGRvY3VtZW50YXRpb246CisKKyAgLSBUaGUgbWFudWFsIHBhZ2VzIGZvciBmYnNldDogZmJzZXQoOCksIGZiLm1vZGVzKDUpCisgIC0gVGhlIG1hbnVhbCBwYWdlcyBmb3IgWEZyZWU4NjogWEY2OF9GQkRldigxKSwgWEY4NkNvbmZpZyg0LzUpCisgIC0gVGhlIG1pZ2h0eSBrZXJuZWwgc291cmNlczoKKyAgICAgIG8gbGludXgvZHJpdmVycy92aWRlby8KKyAgICAgIG8gbGludXgvaW5jbHVkZS9saW51eC9mYi5oCisgICAgICBvIGxpbnV4L2luY2x1ZGUvdmlkZW8vCisKKworCis4LiBNYWlsaW5nIGxpc3QKKy0tLS0tLS0tLS0tLS0tLQorCitUaGVyZSBhcmUgc2V2ZXJhbCBmcmFtZSBidWZmZXIgZGV2aWNlIHJlbGF0ZWQgbWFpbGluZyBsaXN0cyBhdCBTb3VyY2VGb3JnZToKKyAgLSBsaW51eC1mYmRldi1hbm5vdW5jZUBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQsIGZvciBhbm5vdW5jZW1lbnRzLAorICAtIGxpbnV4LWZiZGV2LXVzZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0LCBmb3IgZ2VuZXJpYyB1c2VyIHN1cHBvcnQsCisgIC0gbGludXgtZmJkZXYtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0LCBmb3IgcHJvamVjdCBkZXZlbG9wZXJzLgorCitQb2ludCB5b3VyIHdlYiBicm93c2VyIHRvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGludXgtZmJkZXYvIGZvcgorc3Vic2NyaXB0aW9uIGluZm9ybWF0aW9uIGFuZCBhcmNoaXZlIGJyb3dzaW5nLgorCisKKzkuIERvd25sb2FkaW5nCistLS0tLS0tLS0tLS0tLQorCitBbGwgbmVjZXNzYXJ5IGZpbGVzIGNhbiBiZSBmb3VuZCBhdAorCisgICAgZnRwOi8vZnRwLnVuaS1lcmxhbmdlbi5kZS9wdWIvTGludXgvTE9DQUwvNjgweDAvCisKK2FuZCBvbiBpdHMgbWlycm9ycy4KKworVGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGZic2V0IGNhbiBiZSBmb3VuZCBhdAorCisgICAgaHR0cDovL2hvbWUudHZkLmJlL2NyMjY4NjQvTGludXgvZmJkZXYvCisKKyAgCisxMC4gQ3JlZGl0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCitUaGlzIHJlYWRtZSB3YXMgd3JpdHRlbiBieSBHZWVydCBVeXR0ZXJob2V2ZW4sIHBhcnRseSBiYXNlZCBvbiB0aGUgb3JpZ2luYWwKK2BYLWZyYW1lYnVmZmVyLlJFQURNRScgYnkgUm9tYW4gSG9kZWsgYW5kIE1hcnRpbiBTY2hhbGxlci4gU2VjdGlvbiA2IHdhcworcHJvdmlkZWQgYnkgRnJhbmsgTmV1bWFubi4KKworVGhlIGZyYW1lIGJ1ZmZlciBkZXZpY2UgYWJzdHJhY3Rpb24gd2FzIGRlc2lnbmVkIGJ5IE1hcnRpbiBTY2hhbGxlci4K