dHJlZSA0MGQ0ZTg2OTA1NGQ3NDg1YWMyNjM4ZWY1YTJhNWU2NTVjYWRlNGNmCnBhcmVudCBmMWJhNGIzZGU1NmU4NTc4NjJmMGMyYjRkNDA1NDE0ODdhNzI0YTdjCmF1dGhvciBDeXJpbCBCb2506SA8Y3lyaWwuYm9udGVAZnJlZS5mcj4gMTI1NTU1ODU0MCArMDIwMApjb21taXR0ZXIgV2lsbHkgVGFycmVhdSA8d0Axd3QuZXU+IDEyNTU4NTk3ODYgKzAyMDAKZW5jb2RpbmcgbGF0aW4xCgpbTUVESVVNXSBhcHBzZXNzaW9uOiBhZGQgdGhlICJyZXF1ZXN0LWxlYXJuIiBvcHRpb24KClRoaXMgcGF0Y2ggaGFzIDIgZ29hbHMgOgoKMS4gSSB3YW50ZWQgdG8gdGVzdCB0aGUgYXBwc2Vzc2lvbiBmZWF0dXJlIHdpdGggYSBzbWFsbCBQSFAgY29kZSwKdXNpbmcgUEhQU0VTU0lELiBUaGUgcHJvYmxlbSBpcyB0aGF0IHdoZW4gUEhQIGdldHMgYW4gdW5rbm93biBzZXNzaW9uCmlkLCBpdCBjcmVhdGVzIGEgbmV3IG9uZSB3aXRoIHRoaXMgSUQuIFNvLCB3aGVuIHNlbmRpbmcgYW4gdW5rbm93bgpzZXNzaW9uIHRvIFBIUCwgcGVyc2lzdGFuY2UgaXMgYnJva2VuIDogaGFwcm94eSB3b24ndCBzZWUgYW55IG5ldwpjb29raWUgaW4gdGhlIHJlc3BvbnNlIGFuZCB3aWxsIG5ldmVyIGF0dGFjaCB0aGlzIHNlc3Npb24gdG8gYQpzcGVjaWZpYyBzZXJ2ZXIuCgpUaGlzIGFsc28gaGFwcGVucyB3aGVuIHlvdSByZXN0YXJ0IGhhcHJveHkgOiB0aGUgaW50ZXJuYWwgaGFzaCBiZWNvbWVzCmVtcHR5IGFuZCBhbGwgc2Vzc2lvbnMgbG9vc2UgdGhlaXIgcGVyc2lzdGFuY2UgKGxvYWQgYmFsYW5jaW5nIHRoZQpyZXF1ZXN0cyBvbiBhbGwgYmFja2VuZCBzZXJ2ZXJzLCBjcmVhdGluZyBhIG5ldyBzZXNzaW9uIG9uIGVhY2ggb25lKS4KRm9yIGEgdXNlciwgaXQncyBsaWtlIHRoZSBzZXJ2aWNlIGlzIHVudXNhYmxlLgoKVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb2RlIHRvIG1ha2UgaGFwcm94eSBhbHNvIGxlYXJuIHRoZSBwZXJzaXN0YW5jZQpmcm9tIHRoZSBjbGllbnQgOiBpZiBubyBzZXNzaW9uIGlzIHNlbnQgZnJvbSB0aGUgc2VydmVyLCB0aGVuIHRoZQpzZXNzaW9uIGlkIGZvdW5kIGluIHRoZSBjbGllbnQgcGFydCAodXNpbmcgdGhlIFVSSSBvciB0aGUgY2xpZW50IGNvb2tpZSkKaXMgdXNlZCB0byBhc3NvY2lhdGVkIHRoZSBzZXJ2ZXIgdGhhdCBnYXZlIHRoZSByZXNwb25zZS4KCkFzIGl0J3MgcHJvYmFibHkgbm90IGEgZmVhdHVyZSB1c2FibGUgaW4gYWxsIGNhc2VzLCBJIGFkZGVkIGFuIG9wdGlvbgp0byBlbmFibGUgaXQgKGJ5IGRlZmF1bHQgaXQncyBkaXNhYmxlZCkuIFRoZSBzeW50YXggb2YgYXBwc2Vzc2lvbiBiZWNvbWVzIDoKCiAgYXBwc2Vzc2lvbiA8Y29va2llPiBsZW4gPGxlbmd0aD4gdGltZW91dCA8aG9sZHRpbWU+IFtyZXF1ZXN0LWxlYXJuXQoKVGhpcyBoZWxwcyBoYXByb3h5IHJlcGFpciB0aGUgcGVyc2lzdGFuY2UgKHdpdGggdGhlIHJpc2sgb2YgbG9zaW5nIGl0cwpzZXNzaW9uIGF0IHRoZSBuZXh0IHJlcXVlc3QsIGFzIHRoZSB1c2VyIHdpbGwgcHJvYmFibHkgbm90IGJlIGxvYWQKYmFsYW5jZWQgdG8gdGhlIHNhbWUgc2VydmVyIHRoZSBmaXJzdCB0aW1lKS4KCjIuIFRoaXMgcGF0Y2ggYWxzbyB0cmllcyB0byByZWR1Y2UgdGhlIG1lbW9yeSB1c2FnZS4KSGVyZSBpcyBhIGxpdHRsZSBleGFtcGxlIHRvIGV4cGxhaW4gdGhlIGN1cnJlbnQgYmVoYXZpb3VyIDoKLSBUYWtlIGEgVG9tY2F0IHNlcnZlciB3aGVyZSAvc2Vzc2lvbi5qc3AgaXMgdmFsaWQuCi0gU2VuZCBhIHJlcXVlc3QgdXNpbmcgYSBjb29raWUgd2l0aCBhbiB1bmtub3duIHZhbHVlIEFORCBhIHBhdGgKICBwYXJhbWV0ZXIgd2l0aCBhbm90aGVyIHVua25vd24gdmFsdWUgOgoKICBjdXJsIC1iICJKU0VTU0lPTklEPTEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIiBodHRwOi8vPGhhcHJveHk+L3Nlc3Npb24uanNwO2pzZXNzaW9uaWQ9MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKCihJIGtub3csIGl0J3MgdW5leHBlY3RlZCB0byBoYXZlIGEgcmVxdWVzdCBsaWtlIHRoYXQgb24gYSBsaXZlIHNlcnZpY2UpCkhlcmUsIGhhcHJveHkgZmluZHMgdGhlIFVSSSBzZXNzaW9uIElEIGFuZCBzdG9yZXMgaXQgaW4gaXRzIGludGVybmFsCmhhc2ggKHdpdGggbm8gc2VydmVyIGFzc29jaWF0ZWQpLiBCdXQgaXQgYWxzbyBmaW5kcyB0aGUgY29va2llIHNlc3Npb24KSUQgYW5kIHN0b3JlcyBpdCBhZ2Fpbi4KCi0gQXMgYSByZXN1bHQsIHNlc3Npb24uanNwIHNlbmRzIGEgbmV3IHNlc3Npb24gSUQgYWxzbyBzdG9yZWQgaW4gdGhlCiAgaW50ZXJuYWwgaGFzaCwgd2l0aCBhIHNlcnZlciBhc3NvY2lhdGVkLgoKPT4gRm9yIDEgcmVxdWVzdCwgaGFwcm94eSBoYXMgc3RvcmVkIDMgZW50cmllcywgd2l0aCBvbmx5IDEgd2hpY2ggd2lsbCBiZSB1c2FibGUKClRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYmVoYXZpb3VyIHRvIHN0b3JlIG9ubHkgMSBlbnRyeSAobWF4aW11bSkuCg==