VGhpcyBpcyBhbiBlZHVjYXRlZCBndWVzcyBidXQgSSdtIHRoaW5raW5nIHlvdXIgc3Ryb2JlcyBk cmF3IHVwd2FyZHMgb2YgNQpvciA2QSBlYWNoIHdoaWxlIHRoZWlyIGNhcHMgY2hhcmdlLCBmb3Ig YXQgbGVhc3QgYSBmdWxsIHNlY29uZC4gSWYgeW91J3ZlCmdvdCBhIGNvdXBsZSBvZiB0aG9zZSBw bHVnZ2VkIGludG8geW91ciBqdW1wIHBhY2sgYW5kIGl0J3MgaW52ZXJ0ZXIgaXMgb25seQpjYXBh YmxlIG9mIHByb3ZpZGluZyA3MDBWQSAobWF5YmUgNTAwVyBtYXg/KSB0aGVuIHlvdSBhcmUgZGVm aW5pdGVseSBnb2luZwp0byBhdCB0aGUgbGVhc3QgcG9wIGEgZnVzZSBvciBicmVha2VyIG9uIHRo ZSBpbnZlcnRlci4gWW91ciAxMzUwVkEgaW52ZXJ0ZXIKeW91IGp1c3Qgb3JkZXJlZCB3aWxsIHBy b2JhYmx5IG5vdCBoYW5kbGUgaXQgZWl0aGVyLCBhdCBsZWFzdCBub3QgMiBzdHJvYmVzCmF0IHRo ZSBzYW1lIHRpbWUuIEkgZG91YnQgeW91ciBzdHJvYmUgcG93ZXIgc3VwcGxpZXMgY2FyZSBpZiB0 aGV5IHNlZSBhCnB1cmUgc2luZSBvciBub3QuCgpOb3cgaG93IG1hbnkgZmxhc2hlcyB5b3UgZ2V0 IGlzIGRlcGVuZGFudCBvbiB0aGUgY2FwYWNpdHkgb2YgdGhlIGJhdHRlcnkgaW4KaXQuIEEgY29t bW9uIHNpemUgZm9yIGEganVtcCBwYWNrIGFuZCBtb3N0IHBvcnRhYmxlIGludmVydGVycyBpcyA3 IG9yIDEyCkFIci4gSSdkIGJlIHN1cnByaXNlZCBpZiB0aGUgdGhpbmcgZGlkbid0IGxhc3QgeW91 IGEgZnVsbCBhZnRlcm5vb24sIGF0CmxlYXN0IGEgY291cGxlIGh1bmRyZWQgZmxhc2hlcy4KCgpP biBGZWIgMTAsIDIwMTcgNToyNyBQTSwgIkFsbGVuIE11bHZleSIgPGFsbGVuQGFtdWx2ZXkuY29t PiB3cm90ZToKCldvdyEgVGhhdCB3YXMgYSBmYXN0IHJlcGx5LiBUaGFua3MuCgpIZXJlIGlzIHdo ZXJlIEkgYW0gY29taW5nIGZyb20uIEkgaGF2ZSBoYWxmIGEgZG96ZW4gb2YKdGhlc2UsIHdpdGhv dXQgcHVyZSBzaW5lIHdhdmUgb3V0cHV0IHJhbmdpbmcgZnJvbSA0NTAgdG8KMTUwMCBWQS4gVGhl eSBwb3dlciBteSBjb21wdXRlcnMsIGRvb3IgbG9ja3MsIGhvbWUgdGhlYXRlciwKZXRjLiBkdXJp bmcgcG93ZXIgb3V0YWdlcy4gSSBoYXZlIHVucGx1Z2dlZCB0aGVtIGFuZAphdHRhY2hlZCBhIGxh bXAgZm9yIGVtZXJnZW5jeSBob21lIGxpZ2h0aW5nIGR1cmluZyBpY2UKc3Rvcm1zLCBldGMuIHdo ZW4gcG93ZXIgd2FzIGRvd24uCgpPYnZpb3VzbHkgQXV0b21hdGljIFZvbHRhZ2UgUmVndWxhdGlv biAoQVZSKSByZXF1aXJlcyBhCnZvbHRhZ2UgdG8gcmVndWxhdGUgYW5kIGJhdHRlcnkgY2hhcmdp bmcgcmVxdWlyZXMgYSBzb3VyY2UKYXMgd2VsbCBidXQgSSB3YW50IHRvIHVzZSB0aGUgVVBTIGZl YXR1cmUgdG8gcHJvdmlkZSBwb3dlcgp3aGVuIHRoZSBsaW5lIGlzIGRpc2Nvbm5lY3RlZC4gSSBr bm93IHRoZXkgY2FuIGRvIGl0IGJlY2F1c2UKSSBoYXZlIGFscmVhZHkgZG9uZSBpdC4gTXkgcXVl c3Rpb24gaXMgYWJvdXQgdGhlIHBlY3VsaWFyCnJlcXVpcmVtZW50cyBvZiBhIHNldCBvZiBwaG90 b2dyYXBoaWMgc3Ryb2Jlcy4gVGhleSBkcmF3CnNldmVyYWwgYW1wcyBmb3IgYSBmcmFjdGlvbiBv ZiBhIHNlY29uZCB0aGVuIGRyb3AgdG8gYSBsb3cKcmF0ZS4gSSBkb24ndCBoYXZlIHRoZSByZWFs IG51bWJlcnMgaGVyZSBub3cuCgpBbGxlbgoKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ IEZyb206IHBpY2xpc3QtYm91bmNlc0BNSVQuRURVIFttYWlsdG86cGljbGlzdC0KPiBib3VuY2Vz QE1JVC5FRFVdIE9uIEJlaGFsZiBPZiBKYW1lcyBDYW1lcm9uCj4gU2VudDogRnJpZGF5LCBGZWJy dWFyeSAxMCwgMjAxNyA1OjU5IFBNCj4gVG86IE1pY3JvY29udHJvbGxlciBkaXNjdXNzaW9uIGxp c3QgLSBQdWJsaWMuCj4gU3ViamVjdDogUmU6IFtFRV0gUXVlc3Rpb25zIG9uIEludmVydGVycwo+ Cj4gWWVzLCBwcm9ibGVtczsgdGhlIHVzZXIgbWFudWFsIGhhcyBhIHRyb3VibGVzaG9vdGluZwpz ZWN0aW9uCj4gd2hpY2gKPiBzdWdnZXN0cyB0aGF0IGl0IHdvbid0IHR1cm4gb24gdW5sZXNzIGl0 IGhhcyBleHRlcm5hbCBBQwpwb3dlcgo+IGlucHV0Lgo+ICJUaGUgdW5pdCBtdXN0IGJlIGNvbm5l Y3RlZCB0byBhIDExMC8xMjBWIDYwSHogb3V0bGV0LiIKPgo+IE9wZXJhdGluZyB0ZW1wZXJhdHVy ZSByYW5nZSBpcyBxdWl0ZSByZXN0cmljdGVkIGdpdmVuIHlvdXIKPiBpbnRlbmRlZAo+IGZpZWxk IHVzZTsgMMKwQyB0byA0MMKwQywgd2l0aCBSSCAwIHRvIDkwJS4KPgo+IFJ1biB0aW1lIGlzIHZl cnkgc2hvcnQ7IGVmZmljaWVuY3kgaXNuJ3Qgc3BlY2lmaWVkLCBzbyBpZgppdCBjYW4gYmUKPiBj b252aW5jZWQgdG8gcG93ZXIgb24gd2l0aG91dCBleHRlcm5hbCBBQywgSSdkIGV4cGVjdCBpdAp0 bwo+IHJ1biB5b3VyCj4gcmlnIG9uY2Ugb3IgdHdpY2UgYmVmb3JlIHlvdSdkIG5lZWQgbmV3IGJh dHRlcmllcy4KPgo+IFNvdW5kcyBsaWtlIGZ1biEKPgo+IFJlZmVyZW5jZXM6Cj4KPiBodHRwczov L2RsNGp6M3JicnNmdW0uY2xvdWRmcm9udC5uZXQvZG9jdW1lbnRzL0N5YmVyUG93ZQo+IHJfVU1f Q1AxMzUwUEZDTENELnBkZgo+IGh0dHBzOi8vZGw0anozcmJyc2Z1bS5jbG91ZGZyb250Lm5ldC9k b2N1bWVudHMvQ3liZXJQb3dlCj4gcl9EU19DUDEzNTBQRkNMQ0QucGRmCj4KPiBPbiBGcmksIEZl YiAxMCwgMjAxNyBhdCAwNTozODo0MlBNIC0wNTAwLCBBbGxlbiBNdWx2ZXkKPiB3cm90ZToKPiA+ IFNldmVyYWwgeWVhcnMgYWdvIEkgYm91Z2h0IGFuIGF1dG9tb3RpdmUganVtcCBzdGFydCB1bml0 Cj4gPiB3aXRoIGEgYnVpbHQgaW4gaW52ZXJ0ZXIsIGEgUEVBSyBwb3dlciBTdGF0aW9uIDcwMC4g TXkKPiA+IGludGVudCB3YXMgdG8gYWxzbyB1c2UgaXQgYXMgYSBmaWVsZCBwb3dlciBzb3VyY2Ug Zm9yCj4gPiBwaG90b2dyYXBoaWMgbGlnaHRzLiBVbmZvcnR1bmF0ZWx5IHdoZW4gSSBwbHVnZ2Vk IGluIHR3bwo+IDMwMAo+ID4gV3Mgc3Ryb2JlcyB0aGUgdGhpbmcgZGllZCBhZnRlciBhYm91dCB0 d28gZmxhc2hlcy4gSQpoYXZlCj4gPiBzaW5jZSBvcmRlcmVkIGEgMTM1MCBWQSBwdXJlIHNpbmUg d2F2ZSBiYXR0ZXJ5IGJhY2t1cApmb3IKPiA+IHRoYXQgdXNlLgo+ID4KPiA+Cj4gaHR0cHM6Ly93 d3cubmV3ZWdnLmNvbS9Qcm9kdWN0L1Byb2R1Y3QuYXNweD9JdGVtPU44MkUKPiAxNjg0MjEwCj4g PiAyMTMzCj4gPgo+ID4gKCQxMjQuOTUgVVMgd2l0aCBwcm9tbyBjb2RlIEVNQ1JDUkszOS4pCj4g Pgo+ID4gU2hvdWxkIEkgZXhwZWN0IGFueSBwcm9ibGVtcyB1c2luZyB0aGlzIGRldmljZSB3aXRo IHRoZQo+ID4gc3Ryb2Jlcz8gSSB1c3VhbGx5IHVzZSB0aHJlZSBvciBmb3VyIGF0IGEgdGltZS4K PiA+Cj4gPgo+ID4KPiA+IEkgaGF2ZSBhbm90aGVyIGhpZ2hlciBjYXBhY2l0eSBzdGFuZGFsb25l IGludmVydGVyIGJ1dCBJCmFtCj4gPiBhZnJhaWQgdG8gdHJ5IGl0IGFzIGl0IGlzIG5vdCBwdXJl IHNpbmUgd2F2ZS4KPiA+Cj4gPgo+ID4KPiA+IElmIEkgZXZlciBnZXQgdGltZSB0byBhdHRlbXB0 IGEgcmVwYWlyIG9mIHRoZSBQRUFLIHVuaXQKSQo+ID4gd2lsbCBwcm9iYWJseSBzZWVrIGFkdmlj ZSBmcm9tIHRoaXMgbGlzdCBvbiB0aGF0IGFsc28gYXMKSQo+ID4gaGF2ZSBubyBleHBlcmllbmNl IHdpdGggaW52ZXJ0ZXJzLgo+ID4KPiA+Cj4gPgo+ID4gVGhhbmtzLAo+ID4KPiA+IEFsbGVuCj4g Pgo+ID4gLS0KPiA+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9T WCBGQVEgJiBsaXN0Cj4gYXJjaGl2ZQo+ID4gVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9w dGlvbnMgYXQKPiA+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNs aXN0Cj4KPiAtLQo+IEphbWVzIENhbWVyb24KPiBodHRwOi8vcXVvemwubmV0cmVrLm9yZy8KPgo+ IC0tCj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAm IGxpc3QKPiBhcmNoaXZlCj4gVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQK PiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAoKCi0tCmh0 dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFy Y2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxt YW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKLS0gCmh0dHA6Ly93d3cucGljbGlz dC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFu Z2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWls bWFuL2xpc3RpbmZvL3BpY2xpc3QK .