PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSAKICAgIENvcHlyaWdodCAoYykgMjAwNSwgMjAwNiBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCiAgICBDb250cmlidXRvcnM6CiAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCi0tPgoKPGNoZWF0c2hlZXQgdGl0bGU9Ik5hdmlnYXRlIE1ldGhvZCBDb250ZW50Ij4KCTxpbnRybyBocmVmPSIvb3JnLmVjbGlwc2UuZXBmLmhlbHAuZG9jL2h0bWwvdXNlcmludGVyZmFjZW92ZXJ2aWV3Lmh0bWwiPgoJCTxkZXNjcmlwdGlvbj5UaGVyZSBhcmUgdHdvIHdheXMgdG8gbmF2aWdhdGUgbWV0aG9kIGNvbnRlbnQ6IGJ5IHVzaW5nIHRoZSBwaHlzaWNhbCBsaWJyYXJ5IHN0cnVjdHVyZSBpbiB0aGUgbGlicmFyeSB2aWV3IG9yIGJ5IHVzaW5nIHRoZSBsb2dpY2FsIGNhdGVnb3JpemF0aW9uIG9mIG1ldGhvZCBjb250ZW50IGluIHRoZSBjb25maWd1cmF0aW9uIHZpZXcuICBUaGlzIGNoZWF0IHNoZWV0IHdhbGtzIHlvdSB0aHJvdWdoIGJvdGggc2NlbmFyaW9zLjwvZGVzY3JpcHRpb24+Cgk8L2ludHJvPgoJPGl0ZW0gaHJlZj0iL29yZy5lY2xpcHNlLmVwZi5oZWxwLmRvYy9odG1sL2F1dGhvcmluZ3BlcnNwZWN0aXZlLmh0bWwiIHRpdGxlPSJTd2l0Y2ggdG8gQXV0aG9yaW5nIFBlcnNwZWN0aXZlIiBza2lwPSJ0cnVlIj4KCQk8ZGVzY3JpcHRpb24+WW91IGNhbiB3b3JrIHdpdGggdHdvIHBlcnNwZWN0aXZlczogdGhlIGF1dGhvcmluZyBwZXJzcGVjdGl2ZSBhbmQgdGhlIGJyb3dzaW5nIHBlcnNwZWN0aXZlLiBBIHBlcnNwZWN0aXZlIGRlZmluZXMgYSBzZXQgb2Ygdmlld3MgYW5kIGZ1bmN0aW9ucyB0byBiZSBhdmFpbGFibGUgZm9yIHNwZWNpZmljIHRhc2tzLiBUaGUgYXV0aG9yaW5nIHBlcnNwZWN0aXZlIHByb3ZpZGVzIHZpZXdzIGFuZCBmdW5jdGlvbnMgdG8gbmF2aWdhdGUgYW5kIGF1dGhvciBtZXRob2QgY29udGVudCBhbmQgcHJvY2Vzc2VzLCB3aGlsZSB0aGUgYnJvd3NpbmcgcGVyc3BlY3RpdmUgYWxsb3dzIHlvdSB0byBwcmV2aWV3IGFuZCBicm93c2UgYSBtZXRob2QgY29uZmlndXJhdGlvbi4gVGhpcyBjaGVhdCBzaGVldCByZWZlcnMgdG8gdGhlIGF1dGhvcmluZyBwZXJzcGVjdGl2ZS48YnIvPjxici8+Q2xpY2sgdGhlICJPcGVuIFBlcnNwZWN0aXZlIiBidXR0b24gb3IgdGhlIFdpbmRvdy0mZ3Q7T3BlbiBQZXJzcGVjdGl2ZSBtZW51IGFuZCB0aGVuIHNlbGVjdCAiQXV0aG9yaW5nIiB0byBzd2l0Y2ggdG8gdGhlIGF1dGhvcmluZyBwZXJzcGVjdGl2ZS48L2Rlc2NyaXB0aW9uPgoJPC9pdGVtPgoJPGl0ZW0gaHJlZj0iL29yZy5lY2xpcHNlLmVwZi5oZWxwLmRvYy9odG1sL2xpYnJhcnl2aWV3Lmh0bWwiIHRpdGxlPSJPcGVuIHRoZSBMaWJyYXJ5IFZpZXciIHNraXA9InRydWUiPgoJCTxkZXNjcmlwdGlvbj5JZiB5b3UgZG8gbm90IHNlZSBhIHRyZWUtYnJvd3NlciB2aWV3IGxhYmVsZWQgIkxpYnJhcnkiIGluIHlvdXIgYXV0aG9yaW5nIHBlcnNwZWN0aXZlIGNsaWNrIHRoZSBXaW5kb3ctJmd0O1Jlc2V0IFBlcnNwZWN0aXZlIG1lbnUuPC9kZXNjcmlwdGlvbj4KCTwvaXRlbT4KCTxpdGVtIGhyZWY9Ii9vcmcuZWNsaXBzZS5lcGYuaGVscC5kb2MvaHRtbC9tZXRob2Rjb250ZW50cGFja2FnZS5odG1sIiB0aXRsZT0iRHJpbGwgaW50byBNZXRob2QgQ29udGVudCBQYWNrYWdlcyIgc2tpcD0iZmFsc2UiPgoJCTxkZXNjcmlwdGlvbj5XaXRoaW4gdGhlIGxpYnJhcnkgdmlldyB0cmVlLWJyb3dzZXIsIGV4cGFuZCBhIHBsdWctaW4gYW5kIGRyaWxsIGludG8gdGhlIHBhY2thZ2VzICJNZXRob2QgQ29udGVudCItJmd0OyJDb250ZW50IFBhY2thZ2VzIiBhbmQgaXRzIHN1Yi1wYWNrYWdlcy4gRXhhbWluZSB0aGUgY29udGVudHMuCgkJPC9kZXNjcmlwdGlvbj4KCTwvaXRlbT4KCTxpdGVtIHRpdGxlPSJSZXZpZXcgQ29udGVudCBQYWNrYWdlcyIgc2tpcD0iZmFsc2UiPgoJCTxkZXNjcmlwdGlvbj5FdmVyeSBjb250ZW50IHBhY2thZ2UgY29udGFpbnMgZGlmZmVyZW50IHR5cGVzIG9mIG1ldGhvZCBjb250ZW50IGVsZW1lbnRzIHdoaWNoIGFyZSBzb3J0ZWQgaW50byBkaWZmZXJlbnQgY2F0ZWdvcmllcy4gVGhlIGNhdGVnb3JpZXMgYXJlIHJvbGVzLCB0YXNrcywgd29yayBwcm9kdWN0cywgYW5kIGd1aWRhbmNlLjwvZGVzY3JpcHRpb24+Cgk8L2l0ZW0+Cgk8aXRlbSBocmVmPSIvb3JnLmVjbGlwc2UuZXBmLmhlbHAuZG9jL2h0bWwvbWV0aG9kY29udGVudC5odG1sIiB0aXRsZT0iT3BlbiBhIE1ldGhvZCBDb250ZW50IEVsZW1lbnQgRWRpdG9yIiBza2lwPSJmYWxzZSI+CgkJPGRlc2NyaXB0aW9uPlNlbGVjdCBhIG1ldGhvZCBlbGVtZW50LCBzdWNoIGFzIGEgdGFzaywgYW5kIGRvdWJsZSBjbGljayB0byBvcGVuIGl0cyBlZGl0b3IuPGJyLz48YnIvPlRoZSBlZGl0b3IgcHJvdmlkZXMgdGFicyBhbmQgZm9ybXMgdG8gb3JnYW5pemUgdGV4dHVhbCBkZXNjcmlwdGlvbiBmb3IgdGhlIGVsZW1lbnQuICBTZWxlY3QgdGhlIGRpZmZlcmVudCB0YWJzIGFuZCB0aGUgYm90dG9tIG9mIGV2ZXJ5IGVkaXRvciBhbmQgcmV2aWV3IHRoZSBkaWZmZXJlbnQgZm9ybXMgZGlzcGxheWVkLjwvZGVzY3JpcHRpb24+Cgk8L2l0ZW0+Cgk8aXRlbSBocmVmPSIvb3JnLmVjbGlwc2UuZXBmLmhlbHAuZG9jL2h0bWwvbWV0aG9kY29udGVudGNhdGVnb3JpZXMuaHRtbCIgdGl0bGU9IkV4YW1pbmUgQ2F0ZWdvcmllcyIgc2tpcD0iZmFsc2UiPgoJCTxkZXNjcmlwdGlvbj5XaXRoaW4gdGhlIGxpYnJhcnkgdmlldyB0cmVlLWJyb3dzZXIsIGV4cGFuZCB0aGUgcGFja2FnZXMgdG8gdGhlIHNhbWUgbGV2ZWwgYXMgY29udGVudCBwYWNrYWdlcyB1bnRpbCB5b3UgZmluZCB0aGUg4oCcQ3VzdG9tIENhdGVnb3JpZXPigD8gYW5kIOKAnFN0YW5kYXJkIENhdGVnb3JpZXPigD8gcGFja2FnZXMuIERyaWxsIGludG8gdGhlc2UgcGFja2FnZXMgYW5kIHRoZW4gZXhhbWluZSB0aGVpciBjb250ZW50cy48YnIvPjxici8+RXZlcnkgY2F0ZWdvcnkgbGlzdGVkIGhlcmUgaXMgYSBjb250ZW50IGVsZW1lbnQgYXMgd2VsbC4gIE9wZW4gdGhlIGRlc2NyaXB0aW9uIG9mIGEgY2F0ZWdvcnkgc3VjaCBhcyBhIGRpc2NpcGxpbmUgb3IgYSBkb21haW4gYnkgZG91YmxlIGNsaWNraW5nIHRoZSBjYXRlZ29yeSB3aGljaCBvcGVucyB0aGUgY2F0ZWdvcnkgZWRpdG9yLjwvZGVzY3JpcHRpb24+Cgk8L2l0ZW0+Cgk8aXRlbSBocmVmPSIvb3JnLmVjbGlwc2UuZXBmLmhlbHAuZG9jL2h0bWwvY29uZmlndXJhdGlvbnZpZXcuaHRtbCIgdGl0bGU9IlNlbGVjdCBhIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBDb25maWd1cmF0aW9uIFZpZXciIHNraXA9InRydWUiPgoJCTxkZXNjcmlwdGlvbj5CZWNhdXNlIHRoZSBtZXRob2QgbGlicmFyeSBjYW4gY29udGFpbiBsYXJnZSBudW1iZXJzIG9mIGVsZW1lbnRzLCB5b3UgbWF5IHdhbnQgdG8gbGltaXQgeW91ciB3b3JrIHRvIGEgdXNlci1kZWZpbmVkIHN1YnNldCBvZiB0aGUgbGlicmFyeSBjYWxsZWQgbWV0aG9kIGNvbmZpZ3VyYXRpb24uIEEgY29uZmlndXJhdGlvbiBkZWZpbmVzIGEgd29ya2luZyBzZXQgb2YgcGFja2FnZXMgd2l0aGluIHRoZSBtZXRob2QgbGlicmFyeSB0aGF0IGhlbHBzIHlvdSBsaW1pdCB5b3VyIHZpZXcgdG8gYSBzdWJzZXQgb2YgYWxsIGVsZW1lbnRzLiBUaGUgZWxlbWVudHMgdGhhdCBhcmUgcGFydCBvZiBhIHNlbGVjdGVkIGNvbmZpZ3VyYXRpb24gYXJlIGRpc3BsYXllZCBpbiB0aGUgY29uZmlndXJhdGlvbiB2aWV3Ljxici8+PGJyLz5UaGUgY29uZmlndXJhdGlvbiB2aWV3IGRpc3BsYXlzIGNhdGVnb3JpemVkIG1ldGhvZCBlbGVtZW50cyBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNvbmZpZ3VyYXRpb24uICBUaGlzIGlzIHRoZSBjb25maWd1cmF0aW9uIHRoYXQgaGFzIGJlZW4gc2VsZWN0ZWQgaW4gdGhlIHVubGFiZWxlZCBjb21ibyBib3ggaW4gdGhlIHRvb2wgYmFyLiAgVXNlIHRoaXMgY29tYm8gYm94IHRvIHNlbGVjdCBhIGNvbmZpZ3VyYXRpb24uPGJyLz48YnIvPkFmdGVyIHNlbGVjdGluZyBhIGNvbmZpZ3VyYXRpb24gdGhlIGNvbmZpZ3VyYXRpb24gdmlldyBpcyAocmUtKXBvcHVsYXRlZCB3aXRoIG5ldyB0cmVlcyBzaG93aW5nIGVsZW1lbnRzIGZyb20gdGhhdCBjb25maWd1cmF0aW9uLjwvZGVzY3JpcHRpb24+Cgk8L2l0ZW0+Cgk8aXRlbSB0aXRsZT0iRHJpbGwgaW50byBDYXRlZ29yaWVzIGluIENvbmZpZ3VyYXRpb24gVmlldyIgc2tpcD0iZmFsc2UiPgoJCTxkZXNjcmlwdGlvbj5EcmlsbCBpbnRvIHRoZSBjb25maWd1cmF0aW9uIHZpZXcncyBjYXRlZ29yaWVzIGZvbGRlcnMgYW5kIGV4YW1pbmUgdGhlIGVsZW1lbnRzIGxpc3RlZCB0aGVyZS48YnIvPjxici8+QXMgaW4gdGhlIGxpYnJhcnkgdmlldyB5b3UgY2FuIG9wZW4gZWxlbWVudHMgbGlzdGVkIGhlcmUgdmlhIGEgZG91YmxlLWNsaWNrLiBIb3dldmVyLCB0aGUgY29uZmlndXJhdGlvbiB2aWV3IGNvbXB1dGVzIHNvLWNhbGxlZCBjb250cmlidXRpb25zIGFuZCByZXBsYWNlbWVudHMgb2YgbWV0aG9kIGNvbnRlbnQgZWxlbWVudHMgKHNlZSAiVmFyaWFiaWxpdHkgT3ZlcnZpZXciIGluIHRoZSBvbmxpbmUgaGVscCBmb3IgbW9yZSBkZXRhaWxzKS4gSWYgYW4gZWxlbWVudCBoYXMgY29udHJpYnV0aW5nIGVsZW1lbnRzIHRoZW4gYSBkb3VibGUgY2xpY2sgd2lsbCBzaG93IHlvdSBhIGRpYWxvZyB3aXRoIGFsbCB0aGUgZWxlbWVudHMgcGFydGljaXBhdGluZyBpbiB0aGUgY29udHJpYnV0aW9uLiAgU2VsZWN0IG9uZSBlbGVtZW50IHRvIG9wZW4gaXRzIGVkaXRvci48L2Rlc2NyaXB0aW9uPgoJPC9pdGVtPgoJPGl0ZW0gdGl0bGU9IkRvbmUiPgoJCTxkZXNjcmlwdGlvbi8+Cgk8L2l0ZW0+CjwvY2hlYXRzaGVldD4K