PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjwhLS0gCiAgICBDb3B5cmlnaHQgKGMpIDIwMDUsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAogICAgQ29udHJpYnV0b3JzOgogICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgotLT4KCjxodG1sPgo8aGVhZD4KPHRpdGxlPlVudGl0bGVkIERvY3VtZW50PC90aXRsZT4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+CjwvaGVhZD4KCjxib2R5Pgo8aDI+PGE+PC9hPjxhPkV4ZXJjaXNlIDM6IENyZWF0ZSBSb2xlcyA8L2E+PC9oMj4KPHA+VG8gY3JlYXRlIGEgUm9sZSBpbiBNeSBDb250ZW50IFBhY2thZ2U6IDwvcD4KPG9sPgogIDxsaT4KICAgIDxwPiBNYWtlIHN1cmUgeW91IGFyZSBpbiB0aGUgPHN0cm9uZz5BdXRob3JpbmcgPC9zdHJvbmc+IHBlcnNwZWN0aXZlLiA8L3A+CiAgPC9saT4KICA8bGk+CiAgICA8cD5XaXRoaW4gTXkgQ29udGVudCBQYWNrYWdlIHJpZ2h0LWNsaWNrIG9uIHRoZSA8c3Ryb25nPlJvbGVzIDwvc3Ryb25nPiBmb2xkZXIuIDwvcD4KICA8L2xpPgogIDxsaT4KICAgIDxwPkhpZ2hsaWdodCA8c3Ryb25nPk5ldyA8L3N0cm9uZz4gYW5kIHRoZW4gY2xpY2sgPHN0cm9uZz5Sb2xlPC9zdHJvbmc+LiA8L3A+CiAgPC9saT4KICA8bGk+CiAgICA8cD5JbiB0aGUgPHN0cm9uZz5OYW1lIGZpZWxkIDwvc3Ryb25nPiB0eXBlOiBteV9ydXBfdXNlcl9pbnRlcmZhY2VfZGVzaWduZXIuIDwvcD4KICA8L2xpPgogIDxsaT4KICAgIDxwPkluIHRoZSA8c3Ryb25nPlByZXNlbnRhdGlvbiBOYW1lPC9zdHJvbmc+IGZpZWxkIHR5cGU6IE15IFVJIERlc2lnbmVyLiA8L3A+CiAgPC9saT4KICA8bGk+SW4gdGhlIDxzdHJvbmc+QnJpZWYgRGVzY3JpcHRpb24gPC9zdHJvbmc+IGZpZWxkIHR5cGU6IDwvbGk+CiAgPGJsb2NrcXVvdGU+CiAgICA8cD5UaGUgdXNlci1pbnRlcmZhY2UgZGVzaWduZXIgY29vcmRpbmF0ZXMgdGhlIGRlc2lnbiBvZiB0aGUgdXNlciBpbnRlcmZhY2UuIFVzZXItaW50ZXJmYWNlIGRlc2lnbmVycyBhcmUgYWxzbyBpbnZvbHZlZCBpbiBnYXRoZXJpbmcgdXNhYmlsaXR5IHJlcXVpcmVtZW50cyBhbmQgcHJvdG90eXBpbmcgY2FuZGlkYXRlIHVzZXItaW50ZXJmYWNlIGRlc2lnbnMgdG8gbWVldCB0aG9zZSByZXF1aXJlbWVudHMuIDwvcD4KICAgIDxwPjxzdHJvbmc+VGlwIDwvc3Ryb25nPiAtIHRoZXJlIGFyZSBkaWZmZXJlbnQgd2F5cyB0aGF0IHlvdSBjYW4gY3JlYXRlIHRoZSB0ZXh0IGFib3ZlIGZvciB0aGUgbmV3IHJvbGU6IDwvcD4KICAgIDxibG9ja3F1b3RlPgogICAgICA8cD4mIzE0OTsmbmJzcDsgRGlyZWN0bHksIGJ5IHR5cGluZyBpdCBtYW51YWxseSBpbiB0aGUgRVBGIENvbXBvc2VyIGVkaXRvci4gPC9wPgogICAgICA8cD4mIzE0OTsmbmJzcDsgQnkgY29weWluZyBmcm9tIGFub3RoZXIgc2ltaWxhciByb2xlIGFuZCB0aGVuIG1vZGlmeSB1c2luZyB0aGUgZWRpdG9ycyAoZS5nLiBydXBfdXNlcl9pbnRlcmZhY2VfZGVzaWduZXIpLiA8L3A+CiAgICAmIzE0OTsmbmJzcDtCeSBjb3B5aW5nIGZyb20gYW4gaHRtbCBzb3VyY2Ugc3VjaCBhcyB0aGUgdHV0b3JpYWwgeW91IGFyZSByZWFkaW5nLiA8L2Jsb2NrcXVvdGU+CiAgPC9ibG9ja3F1b3RlPgogIDxsaT4gICAgVHJ5IHRoZSA8c3Ryb25nPlJpY2ggVGV4dCBFZGl0b3IgPC9zdHJvbmc+IGZvciBlZGl0aW5nIHRoZSA8c3Ryb25nPk1haW4gRGVzY3JpcHRpb24uIDwvc3Ryb25nPllvdSBjYW4gb3BlbiB0aGUgUmljaCBUZXh0IEVkaXRvciBmb3IgYW55IGl0ZW0gdGhhdCBoYXMgYSCRdHdpc3R5JyA8aW1nIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgc3JjPSJ0dXRvcmlhbF8yX2V4XzNfY2xpcF9pbWFnZTAwMi5naWYiPnN5bWJvbCAKICAgIDxibG9ja3F1b3RlPgogICAgICA8cD4mIzE0OTsmbmJzcDsgVGhlIHVzZXItaW50ZXJmYWNlIGRlc2lnbmVyIHJvbGUgaXMgbm90IHJlc3BvbnNpYmxlIGZvciBpbXBsZW1lbnRpbmcgdGhlIHVzZXIgaW50ZXJmYWNlLiBJbnN0ZWFkLCB0aGlzIHJvbGUgZm9jdXNlcyBvbiB0aGUgZGVzaWduIGFuZCB0aGUgJnF1b3Q7dmlzdWFsIHNoYXBpbmcmcXVvdDsgb2YgdGhlIHVzZXIgaW50ZXJmYWNlLCBieTogPC9wPgogICAgPC9ibG9ja3F1b3RlPgogIDwvbGk+CiAgPG9sPgogICAgPGJsb2NrcXVvdGU+CiAgICAgIDxwPiAtIENhcHR1cmluZyByZXF1aXJlbWVudHMgb24gdGhlIHVzZXIgaW50ZXJmYWNlLCBpbmNsdWRpbmcgdXNhYmlsaXR5IHJlcXVpcmVtZW50cy4gPC9wPgogICAgICA8cD4tIEJ1aWxkaW5nIHVzZXItaW50ZXJmYWNlIHByb3RvdHlwZXMuPC9wPgogICAgICA8cD4tIEludm9sdmluZyBvdGhlciBzdGFrZWhvbGRlcnMgb2YgdGhlIHVzZXIgaW50ZXJmYWNlLCBzdWNoIGFzIGVuZC11c2VycywgaW4gdXNhYmlsaXR5IHJldmlld3MgYW5kIHVzZSB0ZXN0aW5nIHNlc3Npb25zLiA8L3A+CiAgICAgIDxwPi0gUmV2aWV3aW5nIGFuZCBwcm92aWRpbmcgdGhlIGFwcHJvcHJpYXRlIGZlZWRiYWNrIG9uIHRoZSBmaW5hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdXNlciBpbnRlcmZhY2UsIGFzIGNyZWF0ZWQgYnkgb3RoZXIgZGV2ZWxvcGVyczsgdGhhdCBpcywgZGVzaWduZXJzIGFuZCBpbXBsZW1lbnRlcnMuIDwvcD4KICAgIDwvYmxvY2txdW90ZT4KICA8L29sPgogIDxibG9ja3F1b3RlPgogICAgPHA+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+IJYgaWYgeW91IGNvcHkgdGV4dCBmcm9tIGEgTWljcm9zb2Z0IFdvcmQgZG9jdW1lbnQgeW91IHdpbGwgZ2V0IGEgbG90IG9mIGZvcm1hdHRpbmcgaW5mb3JtYXRpb24gdGhhdCBpcyBub3QgbmVlZGVkIGluIEVjbGlwc2UgUHJvY2VzcyBGcmFtZXdvcmsgQ29tcG9zZXIuIFlvdSBjYW4gc2VlIHRoaXMgaWYgeW91IG9wZW4gdGhlIEhUTUwgZWRpdG9yIGluIHRoZSBSaWNoIFRleHQgRWRpdG9yLiA8L3A+CiAgPC9ibG9ja3F1b3RlPgogIDxsaT4KICAgIDxwPkNsaWNrIHRoZSA8c3Ryb25nPldvcmtQcm9kdWN0cyA8L3N0cm9uZz4gdGFiOyBtYWtlIHRoaXMgbmV3IHJvbGUgcmVzcG9uc2libGUgZm9yIHRoZSBteV9ydXBfbmF2bWFwIGFuZCBteV9ydXBfdXNlcl9pbnRlcmZhY2VfcHJvdG90eXBlIGFydGlmYWN0cyB0aGF0IHlvdSBwcmV2aW91c2x5IGNyZWF0ZWQuIDwvcD4KICA8L2xpPgogIDxsaT4KICAgIDxwPkNsaWNrIHRoZSA8c3Ryb25nPkFkZCA8L3N0cm9uZz4gYnV0dG9uLiBUaGlzIGRpc3BsYXlzIGEgc2VsZWN0aW9uIGRpYWxvZyB3aGVyZSB5b3UgY2FuIHNlbGVjdCB0aGUgV29yayBQcm9kdWN0cyB0byBhZGQuIDwvcD4KICA8L2xpPgogIDxsaT5PbmNlIHlvdSBoYXZlIHNlbGVjdGVkIHRoZSBhcHByb3ByaWF0ZSBXb3JrIFByb2R1Y3RzLCBjbGljayA8c3Ryb25nPk9LPC9zdHJvbmc+LiBUaGUgd29yayBwcm9kdWN0cyB5b3Ugc2VsZWN0ZWQgYXBwZWFyIGluIHRoZSA8c3Ryb25nPlJlc3BvbnNpYmxlIGZvcjogPC9zdHJvbmc+IHBhbmVsLiAKICAgIDxibG9ja3F1b3RlPgogICAgICA8cD5Ob3RlIHRoYXQgc2VsZWN0ZWQgZWxlbWVudHMgaW4gYW4gQWRkL1JlbW92ZSBzZWN0aW9uIGRpc3BsYXkgYm90aCB0aGUgZWxlbWVudCBuYW1lIGFuZCB0aGUgkXBhdGgnIHRvIHRoYXQgZWxlbWVudCCWIHRoZSBQbHVnaW4gbmFtZSBhbmQgcGFja2FnZSBuYW1lLiA8L3A+CiAgICA8L2Jsb2NrcXVvdGU+CiAgPC9saT4KICA8bGk+Q2xpY2sgdGhlIDxzdHJvbmc+UHJldmlldyA8L3N0cm9uZz4gdGFiIHRvIHZpZXcgdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZSBhbmQgdGhlbiBzYXZlIGJ5IGNsb3NpbmcgdGhlIGVkaXRvci4gPC9saT4KPC9vbD4KPGgyPiZuYnNwOzwvaDI+CjxoMT4mbmJzcDs8L2gxPgo8L2JvZHk+CjwvaHRtbD4K