TXkgZnJpZW5kIEtlbiBoYXMgdXNlZnVsIGV4cGVyaWVuY2UgaW4gdGhlIGludGVyZmFjZSBhc3Bl Y3RzIG9mIGdyaWQgdGllCmludmVydGVycy4KSSBzZW50IGhpbSBhIHBvcnRpb24gb2YgdGhlIGRp c2N1c3Npb25zIGhlcmUgYW5kIGhlIHByb3ZpZGVkIHRoZSBmb2xsb3dpbmcKY29tbWVudHM6CgoK UnVzc2VsbCwKCk5vbmUgb2YgdGhpcyBpcyBsaWtlbHkgdG8gYmUgIm5ld3MiIHRvIHlvdSwgYnV0 IHNvbWUgb2YgeW91ciBhdWRpZW5jZSBtYXkKZmluZCBpdCBoZWxwZnVsLgoKVGhlIHByaW5jaXBs ZSBhdCB0aGUgY29yZSBvZiBhbnkgZ3JpZC10aWVkIGludmVydGVyIGlzIHRoYXQgaXQgYWN0cyBh cyBhbgpBQyBjdXJyZW50IHNvdXJjZSB3aXRoIGEgdm9sdGFnZSBjb21wbGlhbmNlIHRoYXQgZXhj ZWVkcyB0aGUgcGVhayB2b2x0YWdlCm9mIHRoZSBBQyBtYWlucy4KCk9uY2UgeW91IGhhdmUgdGhh dCwgYW5kIGEgbWVhbnMgdG8gc3luY2hyb25pc2UgdGhlIGN1cnJlbnQgaW5qZWN0aW9uCndhdmVm b3JtIGZyb20gdGhlIGludmVydGVyIHdpdGggdGhlIEFDIG1haW5zIHZvbHRhZ2UsIHlvdSBjYW4g aGFwcGlseQpkZWxpdmVyIGN1cnJlbnQgKGluIGFueSBwaGFzZSByZWxhdGlvbnNoaXAgdG8gdGhl IHZvbHRhZ2UpIGludG8K4oCL4oCLCnRoZSBncmlkIHN1cHBseS4KClRoZSBmYWN0IHRoYXQgdGhl IGdyaWQgaGFzIGEgdmVyeSBsb3cgaW1wZWRhbmNlIG1ha2VzIHRoZSBqb2IgZWFzaWVyCmJlY2F1 c2UgdGhlIHByb2Nlc3Mgb2YgaW5qZWN0aW5nIGN1cnJlbnQgZG9lcyBub3Qgc2lnbmlmaWNhbnRs eSBwZXJ0dXJiIHRoZQp2b2x0YWdlIHdhdmVmb3JtICAtIHRodXMgbWFraW5nIGNvbnRpbnVlZCBz eW5jaHJvbmlzYXRpb24gcmVsaWFibGUuICBEZXRlY3Rpb24Kb2YgYW55IHN1Y2ggdm9sdGFnZSBw ZXJ0dXJiYXRpb24gc2hvdWxkIGl0IG9jY3VyIGlzIG9uZSBtZWFucyBieQp3aGljaCBncmlkLXRp ZWQgaW52ZXJ0ZXJzIGRldGVjdCBpc2xhbmRpbmcuCgpXZWxsLWRlc2lnbmVkIGdyaWQtdGllZCBp bnZlcnRlcnMgY2FuIGFsc28gYmUgc2V0IHVwIHRvIHdvcmsgd2l0aCBhCnJlbGF0aXZlbHkgInNv ZnQiIEFDIHN1cHBseS4gIEZvciBpbnN0YW5jZSB5b3UgY2FuIHVzZSBhbiBTTUEgU3VubnkgSXNs YW5kCmludmVydGVyIHRvIGVzdGFibGlzaCBhICJsb2NhbCIgZ3JpZCBhbmQgdGhlbiBhZGQgU3Vu bnkgQm95IChvciBXaW5keSBCb3kpCmdyaWQtdGllZCBpbnZlcnRlcnMgdG8gaW5qZWN0IGZ1cnRo ZXIgcG93ZXIgaW4gb3JkZXIgdG8gc3VwcGxlbWVudCB0aGF0CmdyaWQgc3VwcGx5LgoKVGhlIGJh c2ljIHByaW5jaXBsZSBoYXMgYmVlbiBhcm91bmQgbW9yZSBvciBsZXNzIHNpbmNlIHRoZSBiZWdp bm5pbmcgb2YgQUMKcG93ZXIgZGlzdHJpYnV0aW9uICAtIGJ1dCBpbiBlYXJseSB0aW1lcyB0b29r IHRoZSBmb3JtIG9mIHN5bmNocm9ub3VzCnJvdGFyeSBtYWNoaW5lcyB0aGF0IGRlbGl2ZXJlZCBy ZWFjdGl2ZSBwb3dlciAoY3VycmVudCBvdXQgb2YgcGhhc2Ugd2l0aAp0aGUgdm9sdGFnZSkgdG8g dGhlIHN1cHBseSBpbiBvcmRlciB0byBlZmZlY3QgcG93ZXIgZmFjdG9yIGNvcnJlY3Rpb24uCgpO b3RlIHRoYXQgZm9yIHRoZSBwdXJwb3NlcyBvZiBtYW55IGdyaWQtdGllZCBpbnZlcnRlcnMgYW4g QUMgY3VycmVudCBzb3VyY2UKaXMganVzdCBhIERDIGN1cnJlbnQgc291cmNlICh1c3VhbGx5IGlt cGxlbWVudGVkIGFzIGEgaGlnaC1mcmVxdWVuY3kKc3dpdGNoLW1vZGUgcG93ZXIgY29udmVydGVy ICAtIG9mdGVuIGluIGJvb3N0IHRvcG9sb2d5KSBwbHVzIGEgbWVhbnMgb2YKY29tbXV0YXRpb24g KG9mdGVuIGEgZnVsbCBicmlkZ2Ugb3BlcmF0aW5nIGF0IHRoZSBzdXBwbHkgZnJlcXVlbmN5IG9m IDUwIG9yCjYwIEh6KSB0byBkZWFsIHdpdGggdGhlIHZvbHRhZ2UgcmV2ZXJzYWxzIG9mIHRoZSBB QyBncmlkIHN1cHBseS4gIEluIGVmZmVjdAp0aGUgY29tbXV0YXRpb24gcHJvY2VzcyB0YWtlcyBh IGhhbGYtd2F2ZSAicmVjdGlmaWVkIiBvdXRwdXQgZ2VuZXJhdGVkIGJ5CnRoZSBjdXJyZW50IHNv dXJjZSBhbmQgY29udmVydHMgaXQgdG8gYSBmdWxsLXdhdmUgQUMgb3V0cHV0IGNvbXBhdGlibGUg d2l0aAp0aGUgKHNpbnVzb2lkYWwpIGdyaWQgc3VwcGx5LgoKVGhlIGlzc3VlIG9mIGRyYXdpbmcg Y3VycmVudCBmcm9tIHRoZSBncmlkIHdoaWxlIHNpbXVsdGFuZW91c2x5IGluamVjdGluZwpjdXJy ZW50IGludG8gdGhlIGdyaWQgaXMgZWFzaWVzdCB0byB1bmRlcnN0YW5kIGlmIHlvdSBqdXN0IHJl Z2FyZCB0aGUgZ3JpZAphcyBhbiBBQyBidXMgY2FwYWJsZSBvZiBhYnNvcmJpbmcgb3IgZGVsaXZl cmluZyBhbnkgYW1vdW50IG9mIHBvd2VyIHlvdQpsaWtlLiAgSWdub3JpbmcgdGhlIGFkZGVkIGNv bXBsZXhpdHkgb2YgcmVhY3RpdmUgcG93ZXIgKHdoZW4gdGhlIGN1cnJlbnQKYW5kIHZvbHRhZ2Ug YXJlIG5vdCBpbiBwaGFzZSksIGlmIHlvdSBkcmF3IG1vcmUgY3VycmVudCB0aGFuIHlvdSBpbmpl Y3QgbmV0CnBvd2VyIGlzIGRlbGl2ZXJlZCB0byB5b3UsIGFuZCBpZiB5b3UgZHJhdyBsZXNzIGN1 cnJlbnQgdGhhbiB5b3UgaW5qZWN0IG5ldApwb3dlciBpcyBkZWxpdmVyZWQgdG8gdGhlIGdyaWQu CgpJbiB0aGUgcmVhbCB3b3JsZCB0aGluZ3MgZ2V0IGEgYml0IG1vcmUgaGF6eSBiZWNhdXNlIChp biB0aGlzIHBhcnQgb2YgdGhlCndvcmxkIGF0IGxlYXN0KSB1dGlsaXR5IGNvbXBhbmllcyBwYXkg YSBsb3QgbGVzcyBmb3IgZW5lcmd5IChrV2hycykgeW91CmluamVjdCBpbnRvIHRoZSBncmlkIHRo YW4gdGhleSBjaGFyZ2UgZm9yIGVuZXJneSB0aGF0IHlvdSB0YWtlIGZyb20gdGhlCmdyaWQuICBU aGV5IHdpbGwgb2Z0ZW4gdXNlIHNlcGFyYXRlIGVuZXJneSBtZXRlcnMgIC0gb25lIG9wZXJhdGlu Zwpjb252ZW50aW9uYWxseSB0byByZWNvcmQgdGhlIGVuZXJneSBjb25zdW1lZCBieSB5b3VyIGVs ZWN0cmljYWwgbG9hZCBhbmQKdGhlIG90aGVyIGNvbm5lY3RlZCAiYmFja3dhcmRzIiBiZXR3ZWVu IHlvdXIgb3duIHNvdXJjZSBvZiBlbGVjdHJpY2FsCmVuZXJneSAoUFYgcGFuZWxzLCB3aW5kIHR1 cmJpbmUsIG1pY3JvLWh5ZHJvLCBldGMuKSBhbmQgdGhlIGluY29taW5nIGdyaWQKc3VwcGx5LiAg VGhlIEFDIGJ1cyBzdGlsbCBleGlzdHMgKG9uIHRoZSBncmlkIHNpZGUgb2YgdGhlIHR3byBtZXRl cnMpLApidXQgeW91ciBlbGVjdHJpY2FsIGxvYWQgYW5kIHlvdXIgb3duIGVsZWN0cmljYWwgZW5l cmd5IHNvdXJjZSBhcmUgbm90CmRpcmVjdGx5IGNvbm5lY3RlZC4gIE1hbnkgbW9kZXJuIGRpZ2l0 YWwgZW5lcmd5IG1ldGVycyBjYW4gY29tYmluZSB0aGUKc2VwYXJhdGUgbWVhc3VyZW1lbnQgZnVu Y3Rpb25zIGludG8gb25lIGRldmljZSAgLSBpbiB3aGljaCBjYXNlIHRoZSBncmlkCmNvbm5lY3Rz IHRvIG9uZSBwb3J0IG9mIHRoZSBtZXRlciwgYW5kIGJvdGggeW91ciBsb2FkIGFuZCB5b3VyIG93 biBlbmVyZ3kKc291cmNlIChjb25uZWN0ZWQgaW4gcGFyYWxsZWwpIGNvbm5lY3QgdG8gdGhlIG90 aGVyLiAgVGhlbiwgYnkgbW9uaXRvcmluZwp0aGUgcGhhc2UgcmVsYXRpb25zaGlwIGJldHdlZW4g dGhlIHZvbHRhZ2UgYW5kIHRoZSBjdXJyZW50IGZsb3dpbmcgdGhyb3VnaAp0aGUgbWV0ZXIsIGVu ZXJneSBjb25zdW1lZCBhbmQgZW5lcmd5IGRlbGl2ZXJlZCBjYW4gYmUgc2VwYXJhdGVseSBtZXRl cmVkLgoKQXMgYW4gaW50ZXJlc3RpbmcgZXhwZXJpbWVudCB0aGF0IHdpbGwgYWxtb3N0IGNlcnRh aW5seSBsZWFkIHRvIGFuCmVwaXBoYW55LCB0YWtlIHR3byBzdWl0YWJsZSBpZGVudGljYWwgaXJv bi1jb3JlZCB0cmFuc2Zvcm1lcnMuICBTdXBwbHkgb25lCnByaW1hcnkgZGlyZWN0bHkgZnJvbSB0 aGUgbWFpbnMgYW5kIHRoZSBvdGhlciBwcmltYXJ5IHZpYSBhIFZhcmlhYy4gIFNldAp0aGUgVmFy aWFjIG91dHB1dCB0byBtYXRjaCB0aGUgbWFpbnMgdm9sdGFnZS4gIENvbm5lY3QgdGhlIHR3byBz ZWNvbmRhcmllcwp0b2dldGhlciB2aWEgYSBsb3ctcmVzaXN0YW5jZSBjdXJyZW50IHNodW50ICAt IHRha2luZyBjYXJlIHRvIGdldCB0aGUKcGhhc2luZyB0aGUgc2FtZS4gIFVzZSBhbiBvc2NpbGxv c2NvcGUgdG8gZGlzcGxheSB0aGUgc2Vjb25kYXJ5IHZvbHRhZ2Ugb24KdGhlIHRyYW5zZm9ybWVy IGZlZCBmcm9tIHRoZSBWYXJpYWMsIGFuZCB0aGUgdm9sdGFnZSBhY3Jvc3MgdGhlIGN1cnJlbnQK c2h1bnQuICBBZGp1c3QgdGhlIFZhcmlhYyB2b2x0YWdlIHVwIGFuZCBkb3duIHNsb3dseSB3aGls ZSB3YXRjaGluZyB0aGUKd2F2ZWZvcm1zLiAgWW91IGNhbiBhbHRlcm5hdGl2ZWx5IGNvbmR1Y3Qg dGhlIGV4cGVyaW1lbnQgaW4gc2ltdWxhdGlvbiAgLQp1c2luZyBMVFNQSUNFIG9yIHNpbWlsYXIu CgpUaGVyZSBpcyBhIHdpZGVzcHJlYWQgbWlzYXBwcmVoZW5zaW9uIHRoYXQgbG9zcyBvZiBzeW5j aHJvbmlzYXRpb24gYmV0d2VlbgphIGdyaWQgdGllZCBpbnZlcnRlciBhbmQgdGhlIGdyaWQgc3Vw cGx5IHdpbGwgbmVjZXNzYXJpbHkgcmVzdWx0IGluCmRlc3RydWN0aW9uIG9mIHRoZSBpbnZlcnRl ci4gIFdoaWxlIHRoYXQgbWF5IGJlIHRoZSBjYXNlIGZvciBhCnBvb3JseS1leGVjdXRlZCBkZXNp Z24sIHRoZSBmYWN0IHRoYXQgdGhlIGludmVydGVyIGlzIGEgY3VycmVudCBzb3VyY2UKbWVhbnMg dGhhdCBpdCBpcyBwb3RlbnRpYWxseSBjYXBhYmxlIG9mIGRyaXZpbmcgYSBjb250cm9sbGVkIGN1 cnJlbnQgaW50bwp0aGUgZ3JpZCBzdXBwbHkgcmVnYXJkbGVzcyBvZiB0aGUgaW5zdGFudGFuZW91 cyB2b2x0YWdlIG9mIHRoYXQgc3VwcGx5Cih3aXRoaW4gdGhlIG5vcm1hbCBsaW1pdHMgb2YgdGhl IHBlYWsgQUMgdm9sdGFnZSkuICBTbyBmb3IgaW5zdGFuY2UgaWYgdGhlCmludmVydGVyIGhhcyBh biBpbnRlcm5hbCBEQyBidXMgKG9mdGVuIGNhbGxlZCBhIERDIGxpbmspIG9mIHNheSA2MDBWLCBp dApjYW4gZGVsaXZlciBjdXJyZW50IGludG8gYSAyMzBWQUMgKHJtcykgc3VwcGx5IHdoZW4gdGhl IHN1cHBseSB2b2x0YWdlIGlzCmF0IGl0cyBwb3NpdGl2ZSBwZWFrICgrMzI1VikgYW5kIHRoZSB2 b2x0YWdlIGRpZmZlcmVuY2UgaXMgMjc1Viwgb3Igd2hlbgp0aGUgc3VwcGx5IHZvbHRhZ2UgaXMg YXQgaXRzIG5lZ2F0aXZlIHBlYWsgKC0zMjVWKSBhbmQgdGhlIHZvbHRhZ2UKZGlmZmVyZW5jZSBp cyA5MjVWLiAgTm90IGFsbCBpbnZlcnRlcnMgYXJlIGRlc2lnbmVkIHRvIGRlbGl2ZXIgY3VycmVu dCBvdmVyCnRoZSBmdWxsIHJhbmdlIG9mIHZvbHRhZ2UgZGlmZmVyZW5jZSAoYmVjYXVzZSB0aGF0 J3Mgbm90IHR5cGljYWxseQpuZWNlc3NhcnkgZm9yIG1vc3QgYXBwbGljYXRpb25zKSAgLSBidXQg aXQgaXMgY2VydGFpbmx5IHRlY2huaWNhbGx5CnBvc3NpYmxlLgoKSW4gdGhlIHBhc3QsIG1vc3Qg Z3JpZC10aWVkIGludmVydGVycyBoYXZlIGJlZW4gdW5hYmxlIHRvIGFjY2VwdApzaWduaWZpY2Fu dCBwb3dlciBmcm9tIHRoZSBncmlkIChpLmUuIGFueXRoaW5nIGdyZWF0ZXIgdGhhdCB3aGF0IHRo ZXkgbmVlZApmb3IgdGhlaXIgb3duIGludGVybmFsICJob3VzZWtlZXBpbmciKSwgYnV0IHRoZXJl IGlzIGEgY2xhc3Mgb2YgZ3JpZC10aWVkCmludmVydGVycyB0aGF0IGNhbiBoYXZlIGFuIGFzc29j aWF0ZWQgYmF0dGVyeSBiYW5rICAtIGFuZCB0aGVzZSAob2Z0ZW4KcmVmZXJyZWQgdG8gYXMgaW52 ZXJ0ZXItY2hhcmdlcnMpIGNhbiB0YWtlIHNpZ25pZmljYW50IGVuZXJneSBmcm9tIHRoZSBncmlk CmFuZCBkZWxpdmVyIGl0IGluIG9yZGVyIHRvIGNoYXJnZSB0aGUgc3RvcmFnZSBiYXR0ZXJpZXMu CkludmVydGVyLWNoYXJnZXJzIHdpbGwgYmVjb21lIGluY3JlYXNpbmdseSBjb21tb24gYXMgYmF0 dGVyeSB0ZWNobm9sb2d5CmltcHJvdmVzIGFuZCBiZWNvbWVzIG1vcmUgY29zdC1lZmZlY3RpdmUg YW5kIHN5c3RlbXMgbGlrZSBUZXNsYSdzCiJQb3dlcldhbGwiIHdoaWNoIHN1cHBvcnQgdGVtcG9y YWwgImxvYWQtc2hpZnRpbmciIGJlY29tZSBwb3B1bGFyLgoKClJlZ2FyZHMsCgpLZW4KLS0gCmh0 dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFy Y2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxt YW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .