T24gMjMgTWF5IDIwMTUgYXQgMTI6NTQsIERhbmllbCBTZXJwZWxsIDxkYW5pZWwuc2VycGVsbEBn bWFpbC5jb20+IHdyb3RlOgoKPiBJIHRoaW5rIHRoYXQgQVZScyBhcmUgYSBsaXR0bGUgb3ZlcnJh dGVkLCBub3dhZGF5cyBJIHByZWZlciB1c2luZyBjaGVhcCBBUk0KPiBtaWNyby1jb250cm9sbGVy cy4KPgo+IOKAi09ubHkgaWYgb25lIHJhdGVzIHRoZW0uIEFuZCB0aGVuLCBpdCBkZWVwIGVuZHMg b24geW91ciByYXRpbmcgc3lzdGVtLgpJdCBkZXBlbmRzLCBhbW9uZyBvdGhlciB0aGluZ3MgIG9u IHdoYXQgeW91IHdhbnQsIHdoYXQgeW91IHdhbnQgdG8gZG8gYW5kCndoYXQgeW91IGtub3cgYW5k IHdoYXQgeW91IGFscmVhZHkgaGF2ZS4gQSBiaXQgbGlrZSBhIGxvdCBvZiBsaWZlLgoKCj4gRm9y IGEgbGl0dGxlIG1vcmUsIEkgY2FuIGZpbmQgdGhpczoKPgo+IGh0dHA6Ly93d3cuYWxpZXhwcmVz cy5jb20vaXRlbS9TVE0zMkYxMDNDOFQ2LUFSTS1TVE0zMi1NaW5pbXVtLVN5c3RlbS1EZXZlbG9w bWVudC1Cb2FyZC1Nb2R1bGUtRm9yLUFyZHVpbm8vMzIyNzcwMzczODAuaHRtbAo+Cj4gSXQgaGFz IGEgZmFzdGVyIG1pY3JvLCB3aXRoIG5hdGl2ZSBVU0IgYW5kIG1hbnkgcGVyaXBoZXJhbHMuIE5v dGUgdGhhdCB0aGUKPiBib2FyZCBjYW4gYmUgcHJvZ3JhbW1lZCB2aWEgc2VyaWFsIGJvb3QtbG9h ZGVyLCB1c2luZyBhIHN0YW5kYXJkIHVzYiB0bwo+IHNlcmlhbCBhZGFwdGVyIG9yIHZpYSBhIFNX RCBjYXBhYmxlIGRlYnVnZ2VyLCBzdWNoIGFzIHRoZSBzdGxpbmstdjIsIHRoYXQKPiBhbHNvIGFs bG93cyBpbi1jaXJjdWl0LWRlYnVnZ2luZy4KPgo+IOKAi0J1dCwgdGhlbiwgeW91J2QgaGF2ZSB0 byBlYXQgaXQuCklmIHlvdSBhcmUgYWNjdXN0b21lZCB0byB0aGUgZGV2aWNlLCBoYXZlIHByb2dy YW1taW5nIGNhcGFiaWxpdHkgYW5kCnJlbGV2YW50IGNvbXBpbGVyKHMpIG9yIGFzc2VtYmxlciwg aXQgbWF5IHdlbGwg4oCLCgrigItiZSBzdXBlcmlvciBpbiBtYW55IG9yIG1vc3QgcmVzcGVjdHMg 4oCLCgrigItJZiB5b3UgdmFsdWUgdGhlIHJlbGF0aXZlbHkgc2VhbWxlc3MsIHJlbGF0aXZlbHkg ZWFzeSwgcmVsYXRpdmVseQpmb29scHJvb2YgKFt0bV3igIteMykgQXJkdWlubyBleHBlcmllbmNl IGFzIGEgbGFyZ2UgbnVtYmVyIG9mIGxlc3Mgc2tpbGxlZApsZXNzIGtub3dsZWRnZWFibGUgcGVv cGxlLCBhbmQgYSBmZXcgb3RoZXJzIGFzIHdlbGwsIGRvLCB0aGVuIGJlaW5nIGFibGUgdG8KYnV5 IGEgbW9kdWxlIHRoYXQgKG9uY2UgeW91IGhhdmUgbmF2aWdhdGVkIEZEVEkncyBhdHRlbXB0cyB0 byBzY3VwcGVyIHlvdSkKYWxsb3dzIHlvdSB0byBkb3dubG9hZCBhIHN0YW5kYXJkIGNvbXBpbGVy IGFuZCBHVUkgKG9mIHNvcnRzKSwgcGx1ZyBpdCBpbgp2aWEgYSBVU0IgY2FibGUgYW5kIGhhdmUg aXQgcnVubmluZyBkb2luZyBzdGFuZGFyZCB0aGluZ3MgYWJvdXQgaW5zdGFudGx5LAp0aGVuIHRo ZSBzb21ld2hhdCBvbGRlIHNsb3dlciBsZXNzIHBlcmlwaGVyYWxsZWQgb3IgSS9PJ2QgQVRNZWdh Li4uIG1heQpzdGlsbCBoYXZlIGl0J3MgcGxhY2UuCkl0J3Mgbm90IHRoYXQgaXQncyBhbiBBVlIg cGVyIHNlIGJ1dCB0aGF0IGl0J3MgYW4gb3BlbiBzdGFuZGFyZCBbdG1dIGFuZAptb3JlIG9yIGxl c3MganVzdCB3b3Jrcy4gSWYgdGhlcmUgaXMgYW4gIkFyZHVpbm8gbGlicmFyeSIgYXZhaWxhYmxl IHRoYXQKZG9lcyBzb21ldGhpbmcgeW91IHZhbHVlIHRoZW4gZ2V0dGluZyBpdCBydW5uaW5nIG9u IHlvdXIgc3lzdGVtIG1heSBiZSAnbm90CnRvbyBoYXJkJyBpbiBtYW55IGNhc2VzLiBXaGV0aGVy IHRoZSBzYW1lIGxpYnJhcnkgY2FuIGJlIHVzZWQgb24gYW4gQVJNCnByb2Nlc3NvciBkZXBlbmRz IG9uIGEgcmFuZ2Ugb2YgdGhpbmdzIHlvdSdsbCBuZWVkIHRvIGNoZWNrIHVwIG9uIC0gYW5kIGlm CnRoZSBhbnN3ZXIgaXNuJ3QgJ25vJywgdGhlbiB0aGUgYW1vdW50IG9mIHdvcmsgdmFyaWVzIGFu ZCBtYXkgYmUgdW5rbm93YWJsZQp1bnRpbCB5b3UndmUgc3BlbnQgdG9vIGxvbmcgdG8gZ2l2ZSB1 cCBidXQgd2lzaCB5b3UnZCBuZXZlciBzdGFydGVkLiBOb25lCm9mIHRoaXMgaGFzIG11Y2ggYXQg YWxsIHRvIGRvIHdpdGggdGhlIGhhcmR3YXJlIHVzZWQgLSBpdCdzIGp1c3QgdGhlCmZyYW1ld29y ayB0aGF0IHRoZSB0cnVlIHZhbHVlLWJhc2UgaGFzIGJlZW4gYnVpbHQgb24uCgplZyBvbmx5OiDi gItIb3cgbWFueSBBREMncyBvbiB0aGUgQVJNLCBob3cgbWFueSBiaXRzLCBob3cgZG8gSSBhY2Nl c3MgdGhlbSAsCmhvdyBkbyBJIGNoYW5nZSB0aGUgcmVmZXJlbmNlIHZvbHRhZ2UsIGhvdyAuLi4/ IFRoZXJlIG1heSBiZSBtb3JlIEFEQ3Mgd2l0aAptb3JlIGJpdHMgb2YgcmVzb2x1dGlvbiBhbmQg ZmFzdGVyIGNvbnZlcnNpb24gcmF0ZSB0aGFuIG9uIGEgdHlwaWNhbApBcmR1aW5vIEF0bWVsIHBy b2Nlc3Nvci4gQnV0IGlmIHlvdSBqdXN0IHdhbnQgdG8gZG8gb25lIG9mIHRoZSB2YXN0CnByb3Bv cnRpb24gb2YgdGFza3MgdGhhdCDigIthIENPVFMgQXJkdWlubyBpcyBvdmVyLW92ZXItb3Zlci1r aWxsIGZvciB0aGVuCnlvdSBtYXkgaW4gbWFueSBjYXNlcyBiZSBiZXR0ZXIgc2VydmVkIHVzaW5n IG9uZS4KCj4gTm90ZSB0aGF0IEkgZG9uJ3Qga25vdyB0aGUgc2VsbGVyLCBsaW5rIGlzIG9ubHkg YSBwcmljZSByZWZlcmVuY2UuCgpVc2VmdWwuIFRoYW5rcy4KCj4gSSBoYXZlIHVzZWQgdGhlIHN0 bTMyZjEwMyBhbmQgdGhlIG5ld2VyIHN0bTMyZjAzMCwgbGF0ZXIgb25lIGlzIHJlYWxseQoKPiBj aGVhcC4gVGhlcmUgYXJlIGFsc28gbmV3ZXIgbW9kZWxzIHdpdGggVVNCIGJvb3Rsb2FkZXJzLCB0 aG9zZSBhcmUKPiB2ZXJ5IGVhc3kgdG8gcHJvZ3JhbSB3aXRob3V0IGFueSBvdGhlciBoYXJkd2Fy ZS4KPgoK4oCLR2l2ZSB0aGVtIGVub3VnaCB0aW1lIGFuZCB0aGV5IG1heSBnZXQgdG8gQVZSLUFy ZHVpbm8gbGV2ZWwgOi0pLgoKCgrigIsgICAgICAgICAgIFLigIsKLS0gCmh0dHA6Ly93d3cucGlj bGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9j aGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9t YWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .