CjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCiAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgo8aGVhZD4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImNzcy9zaXRlLmNzcyI+CiAgICA8dGl0bGU+QXBhY2hlIEF4aXM8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+PGltZyBzcmM9ImltYWdlcy9hc2ZfbG9nb193aWRlLmdpZiIgYWx0PSJUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9IjAiLz48L2E+CgogICAgICAgIDxkaXYgY2xhc3M9Imxhc3QtdXBkYXRlZCI+CiAgICAgICAgICAgIExhc3QgUHVibGlzaGVkOiAyMiBEZWMgMjAxMAogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8aDE+V2VsY29tZSB0byBBcGFjaGUgQXhpczwvaDE+CgogICAgPHA+CiAgICAgICAgVGhlIHdlbGwga25vd24gQXBhY2hlIEF4aXMsIGFuZCB0aGUgdGhlIHNlY29uZCBnZW5lcmF0aW9uIG9mIGl0LCB0aGUgQXBhY2hlIEF4aXMyLCBhcmUgdHdvIFdlYiBTZXJ2aWNlCiAgICAgICAgY29udGFpbmVycyB0aGF0IGhlbHBzCiAgICAgICAgdXNlcnMgdG8gY3JlYXRlLCBkZXBsb3ksIGFuZCBydW4gV2ViIFNlcnZpY2VzLgogICAgPC9wPgoKICAgIDxwPgogICAgICAgIEF4aXMyIGlzIGF2YWlhbGJsZSBpbiBib3RoIEphdmEgYXMgd2VsbCBhcyBDLCBsYW5ndWFnZXMgYW5kIGRldGFpbHMgYWJvdXQgZWFjaCB2ZXJzaW9uIGNhbiBiZSBmb3VuZAogICAgICAgIGJlbG93LgogICAgPC9wPgoKICAgIDxoMz5BeGlzIHByb2plY3Qgc2l0ZXM8L2gzPgoKICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvamF2YS9jb3JlIiBjbGFzcz0iYmlnLWxpbmtzIj5BcGFjaGUgQXhpczIvSmF2YTwvYT4KICAgICAgICA8dGFibGU+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ibG9nby1jb2wiPjxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvamF2YS9jb3JlIiBjbGFzcz0iYmlnLWxpbmtzIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL2F4aXMyLnBuZyIgYWx0PSJBeGlzMiBKYXZhIiBib3JkZXI9IjAiLz48L2E+PC90ZD4KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jb2wiPgogICAgICAgICAgICAgICAgICAgIEF4aXMyIGlzIGEgV2ViIFNlcnZpY2VzIC8gU09BUCAvIFdTREwgZW5naW5lLCB0aGUgc3VjY2Vzc29yIHRvIHRoZSB3aWRlbHkgdXNlZCBBcGFjaGUgQXhpcyBTT0FQCiAgICAgICAgICAgICAgICAgICAgc3RhY2suIFRoZXJlIGFyZSB0d28gaW1wbGVtZW50YXRpb25zIG9mIHRoZSBBcGFjaGUgQXhpczIgV2ViIHNlcnZpY2VzIGVuZ2luZSAtIEFwYWNoZSBBeGlzMi9KYXZhCiAgICAgICAgICAgICAgICAgICAgYW5kIEFwYWNoZSBBeGlzMi9DCgogICAgICAgICAgICAgICAgICAgIFdoaWxlIHlvdSB3aWxsIGZpbmQgYWxsIHRoZSBpbmZvcm1hdGlvbiBvbiBBcGFjaGUgQXhpczIvSmF2YSBoZXJlCiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvYy9jb3JlIiBjbGFzcz0iYmlnLWxpbmtzIj5BcGFjaGUgQXhpczIvQzwvYT4KICAgICAgICA8dGFibGU+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ibG9nby1jb2wiPjxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvYy9jb3JlIiBjbGFzcz0iYmlnLWxpbmtzIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL2F4aXMyLnBuZyIgYWx0PSJBeGlzMiBDIiBib3JkZXI9IjAiLz48L2E+PC90ZD4KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jb2wiPgogICAgICAgICAgICAgICAgICAgIEFwYWNoZSBBeGlzMi9DIGlzIGEgV2ViIHNlcnZpY2VzIGVuZ2luZSBpbXBsZW1lbnRlZCBpbiB0aGUgQyBwcm9ncmFtbWluZyBsYW5ndWFnZS4gSXQgaXMgYmFzZWQgb24KICAgICAgICAgICAgICAgICAgICB0aGUgZXh0ZW5zaWJsZSBhbmQgZmxleGlibGUgQXhpczIgYXJjaGl0ZWN0dXJlLiBBcGFjaGUgQXhpczIvQyBjYW4gYmUgdXNlZCB0byBwcm92aWRlIGFuZCBjb25zdW1lCiAgICAgICAgICAgICAgICAgICAgV2ViU2VydmljZXMuIEl0IGhhcyBiZWVuIGltcGxlbWVudGVkIHdpdGggcG9ydGFiaWxpdHkgYW5kIGFiaWxpdHkgdG8gZW1iZWQgaW4gbWluZCwgaGVuY2UgY291bGQgYmUKICAgICAgICAgICAgICAgICAgICB1c2VkIGFzIGEgV2ViIHNlcnZpY2VzIGVuYWJsZXIgaW4gb3RoZXIgc29mdHdhcmUuCiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvamF2YS9yYW1wYXJ0IiBjbGFzcz0iYmlnLWxpbmtzIj5BcGFjaGUgUmFtcGFydCAoV1MtU2VjdXJpdHkvV1MtVHJ1c3QpPC9hPgogICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJsb2dvLWNvbCI+PGEgaHJlZj0iaHR0cDovL2F4aXMuYXBhY2hlLm9yZy9heGlzMi9qYXZhL3JhbXBhcnQiIGNsYXNzPSJiaWctbGlua3MiPjxpbWcgc3JjPSJpbWFnZXMvbG9nb3MvUmFtcGFydC5wbmciIGFsdD0iQXBhY2hlIFJhbXBhcnQgKFdTLVNlY3VyaXR5L1dTLVRydXN0KSIgYm9yZGVyPSIwIiAvPjwvYT4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY29sIj4KICAgICAgICAgICAgICAgICAgICBSYW1wYXJ0IGlzIHRoZSBzZWN1cml0eSBtb2R1bGUgb2YgQXhpczIuIFdpdGggUmFtcGFyeSBtb2R1bGUsIHlvdSBjYW4gc2VjdXJlIEF4aXMyIHdlYiBzZXJ2aWNlcwogICAgICAgICAgICAgICAgICAgIGZvciBhdXRoZW50aWNhdGlvbiwgaW50ZWdyaXR5LCBjb25maWRlbnRpYWxpdHkgYW5kIG5vbiAtIHJlcHVkaWF0aW9uLiBSYW1wYXJ0IHNlY3VyZXMgU09BUAogICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzIGFjY29yZGluZyB0byBzcGVjaWZpY2F0aW9ucyBpbiB0aGUgV1MtU2VjdXJpdHkgc3RhY2suCiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvYy9yYW1wYXJ0IiBjbGFzcz0iYmlnLWxpbmtzIj5BcGFjaGUgUmFtcGFydC9DPC9hPgogICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJsb2dvLWNvbCI+PGEgaHJlZj0iaHR0cDovL2F4aXMuYXBhY2hlLm9yZy9heGlzMi9jL3JhbXBhcnQiIGNsYXNzPSJiaWctbGlua3MiPjxpbWcgc3JjPSJpbWFnZXMvbG9nb3MvUmFtcGFydC5wbmciIGFsdD0iQXBhY2hlIFJhbXBhcnQvQyIgYm9yZGVyPSIwIi8+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY29sIj4KICAgICAgICAgICAgICAgICAgICBBcGFjaGUgUmFtcGFydC9DIGlzIHRoZSBzZWN1cml0eSBtb2R1bGUgZm9yIDxhIGhyZWY9Imh0dHA6Ly93cy5hcGFjaGUub3JnL2F4aXMyL2MvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImV4dGVybmFsTGluayIgdGl0bGU9IkV4dGVybmFsIExpbmsiPkFwYWNoZQogICAgICAgICAgICAgICAgICAgIEF4aXMyL0M8L2E+LiBJdCBmZWF0dXJlcyBpbiBtYW55IHdheXMgdG8gcHJvdGVjdCBTT0FQIG1lc3NhZ2VzIGV4Y2hhbmdlZC4gVGhpcyBpbmNsdWRlcyBTT0FQIG1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICBlbmNyeXB0aW9uIGFuZCBzaWduYXR1cmUgYXMgc3BlY2lmaWVkIGluIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtc29hcC1tZXNzYWdlLXNlY3VyaXR5LTEuMC5wZGYiCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJleHRlcm5hbExpbmsiIHRpdGxlPSJFeHRlcm5hbCBMaW5rIj5XUy1TZWN1cml0eSBTcGVjaWZpY2F0aW9uPC9hPi4gSW4gYWRkaXRpb24gQXBhY2hlCiAgICAgICAgICAgICAgICAgICAgUmFtcGFydC9DIGNvbmZpZ3VyYXRpb25zIGFyZSBiYXNlZCBvbiBzZWN1cml0eSBwb2xpY3kgYXNzZXJ0aW9ucyBhcyBwZXIgPGEKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cDovL3NwZWNzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDcvc2VjdXJpdHlwb2xpY3kvd3Mtc2VjdXJpdHlwb2xpY3kucGRmIgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZXh0ZXJuYWxMaW5rIiB0aXRsZT0iRXh0ZXJuYWwgTGluayI+V1MtU2VjdXJpdHkgUG9saWN5IHNwZWNpZmljYXRvaW48L2E+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvamF2YS9zYW5kZXNoYSIgY2xhc3M9ImJpZy1saW5rcyI+QXBhY2hlIFNhbmRlc2hhCiAgICAgICAgICAgIChXUy1SZWxpYWJsZU1lc3NhZ2luZyk8L2E+CiAgICAgICAgPHRhYmxlPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImxvZ28tY29sIj48YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2phdmEvc2FuZGVzaGEiIGNsYXNzPSJiaWctbGlua3MiPjxpbWcgc3JjPSJpbWFnZXMvbG9nb3MvU2FuZGVzaGEucG5nIiBhbHQ9IkFwYWNoZSBTYW5kZXNoYSAoV1MtUmVsaWFibGVNZXNzYWdpbmcpIiBib3JkZXI9IjAiLz48L2E+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNvbCI+CiAgICAgICAgICAgICAgICAgICAgU2FuZGVzaGEyIGdpdmVzIHJlbGlhYmxlIG1lc3NhZ2luZyBjYXBhYmlsaXRpZXMgdG8gQXhpczIuIEZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgdGhlIEF4aXMyCiAgICAgICAgICAgICAgICAgICAgZW5naW5lLCBTYW5kZXNoYTIgaXMgYSBtb2R1bGUuIFdoZW4gdGhpcyBtb2R1bGUgaXMgZW5nYWdlZCB0byBhIHNlcnZpY2UsIGNsaWVudHMgaGF2ZSB0aGUgb3B0aW9uCiAgICAgICAgICAgICAgICAgICAgb2YgaW52b2tpbmcgaXQgaW4gYSByZWxpYWJsZSBtYW5uZXIuIEluIHRoZSBjbGllbnQgc2lkZSBTYW5kZXNoYTIgbW9kdWxlIGNhbiBiZSB1c2VkIHRvIGludGVyYWN0CiAgICAgICAgICAgICAgICAgICAgd2l0aCBleGlzdGluZyByZWxpYWJsZSBXZWIgc2VydmljZXMuCiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvYy9zYW5kZXNoYSIgY2xhc3M9ImJpZy1saW5rcyI+QXBhY2hlIFNhbmRlc2hhMi9DPC9hPgogICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJsb2dvLWNvbCI+PGEgaHJlZj0iaHR0cDovL2F4aXMuYXBhY2hlLm9yZy9heGlzMi9jL3NhbmRlc2hhIiBjbGFzcz0iYmlnLWxpbmtzIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL1NhbmRlc2hhLnBuZyIgYWx0PSJBcGFjaGUgU2FuZGVzaGEyL0MiIGJvcmRlcj0iMCIvPjwvYT4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY29sIj4KICAgICAgICAgICAgICAgICAgICA8cD5TYW5kZXNoYTIvQyBpcyBhIEMgaW1wbGVtZW50YXRpb24gb2YgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy90Y19ob21lLnBocD93Z19hYmJyZXY9d3NybSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJleHRlcm5hbExpbmsiIHRpdGxlPSJFeHRlcm5hbCBMaW5rIj5XUy1SZWxpYWJsZU1lc3NhZ2luZwogICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY2F0aW9uPC9hPiBwdWJsaXNoZWQgYnkgSUJNLCBNaWNyb3NvZnQsIEJFQSBhbmQgVElCQ08uIFNhbmRlc2hhMi9DIGlzCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWx0IG9uIHRvcCBvZiA8YSBocmVmPSJodHRwOi8vd3MuYXBhY2hlLm9yZy9heGlzMi9jLyIgY2xhc3M9ImV4dGVybmFsTGluayIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJFeHRlcm5hbCBMaW5rIj5BcGFjaGUgQXhpczIvQyBXZWIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzIGVuZ2luZTwvYT4sIGFzIGEgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vd3MuYXBhY2hlLm9yZy9heGlzMi9jL2RvY3MvYXhpczJjX21hbnVhbC5odG1sI2VuZ2FnaW5nX21vZHVsZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZXh0ZXJuYWxMaW5rIiB0aXRsZT0iRXh0ZXJuYWwgTGluayI+bW9kdWxlPC9hPi4KICAgICAgICAgICAgICAgICAgICAgICAgVGhlcmVmb3JlIGJ5IHVzaW5nIFNhbmRlc2hhMi9DIHlvdSBjYW4gYWRkIHJlbGlhYmxlIG1lc3NhZ2luZyBjYXBhYmlsaXR5IHRvCiAgICAgICAgICAgICAgICAgICAgICAgIFdlYiBzZXJ2aWNlcyBob3N0ZWQgdXNpbmcgQXhpczIvQy4gU2FuZGVzaGEyL0MgY2FuIGFsc28gYmUgdXNlZCB3aXRoIEF4aXMyL0MKICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50IHRvIGludGVyYWN0IHdpdGggYWxyZWFkeSBob3N0ZWQgV2ViIHNlcnZpY2VzIGluIGEgcmVsaWFibGUgbWFubmVyLjwvcD4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29udGVudC1pdGVtcyI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL2F4aXMuYXBhY2hlLm9yZy9heGlzMi9qYXZhL3NhdmFuIiBjbGFzcz0iYmlnLWxpbmtzIj5BcGFjaGUgU2F2YW4gKFdTLUV2ZW50aW5nKTwvYT4KICAgICAgICA8dGFibGU+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDwhLS08dGQgY2xhc3M9ImxvZ28tY29sIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL3NhbmRlc2hhLnBuZyIgYWx0PSJBcGFjaGUgU2FuZGVzaGEgKFdTLVJlbGlhYmxlTWVzc2FnaW5nKSIvPjwvdGQ+LS0+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY29sIj4KICAgICAgICAgICAgICAgICAgICBTYXZhbi9KYXZhIGlzIGEgQyBpbXBsZW1lbnRhdGlvbiBvZiBXUy1FdmVudGluZyBzcGVjaWZpY2F0aW9uLiBTYXZhbi9KYXZhIGlzIGJ1aWx0IG9uIHRvcCBvZgogICAgICAgICAgICAgICAgICAgIEF4aXMyL0MuCiAgICAgICAgICAgICAgICAgICAgVGhlcmVmb3JlIGJ5IHVzaW5nIFNhdmFuL0phdmEgeW91IGNhbiBhZGQgV1MtRXZlbnRpbmcgY2FwYWJpbGl0eSB0byBXZWIgc2VydmljZXMgaG9zdGVkIHVzaW5nCiAgICAgICAgICAgICAgICAgICAgQXhpczIvSmF2YS4gU2F2YW4vQyB3YXMgZGVzaWduZWQgYXMgYSBnZW5lcmFsIHB1Ymxpc2hlci9zdWJzY3JpYmVyIHRvb2wuIFRoZSBhcmNpdGVjdHVyZSB3YXMKICAgICAgICAgICAgICAgICAgICBkZXNpZ25lZCB0byBhYnN0cmFjdCB0aGUgZ2VuZXJhbCBwdWJsaXNoZXIvc3Vic2NyaWJlciBmZWF0dXJlcyBzbyB0aGF0IHBlb3BsZSBjb3VsZCBzdXBwb3J0IG1vcmUKICAgICAgICAgICAgICAgICAgICB0aGFuIG9uZSBwdWJsaXNoZXIvc3Vic2NyaWJlciBtZWNoYW5pc21zIHdpdGhpbiB0aGUgc2FtZSBpbmZyYXN0cnVjdHVyZS4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29udGVudC1pdGVtcyI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL2F4aXMuYXBhY2hlLm9yZy9heGlzMi9jL3NhdmFuIiBjbGFzcz0iYmlnLWxpbmtzIj5BcGFjaGUgU2F2YW4vQzwvYT4KICAgICAgICA8dGFibGU+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDwhLS08dGQgY2xhc3M9ImxvZ28tY29sIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL3NhbmRlc2hhLnBuZyIgYWx0PSJBcGFjaGUgU2FuZGVzaGEgKFdTLVJlbGlhYmxlTWVzc2FnaW5nKSIvPjwvdGQ+LS0+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY29sIj4KICAgICAgICAgICAgICAgICAgICBTYXZhbi9DIGlzIGEgQyBpbXBsZW1lbnRhdGlvbiBvZiBXUy1FdmVudGluZyBzcGVjaWZpY2F0aW9uLiBTYXZhbi9DIGlzIGJ1aWx0IG9uIHRvcCBvZiBBeGlzMi9DLgogICAgICAgICAgICAgICAgICAgIFRoZXJlZm9yZSBieSB1c2luZyBTYXZhbi9DIHlvdSBjYW4gYWRkIFdTLUV2ZW50aW5nIGNhcGFiaWxpdHkgdG8gV2ViIHNlcnZpY2VzIGhvc3RlZCB1c2luZyBBeGlzMi9DLgogICAgICAgICAgICAgICAgICAgIFNhdmFuL0Mgd2FzIGRlc2lnbmVkIGFzIGEgZ2VuZXJhbCBwdWJsaXNoZXIvc3Vic2NyaWJlciB0b29sLiBUaGUgYXJjaXRlY3R1cmUgd2FzIGRlc2lnbmVkIHRvCiAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3QgdGhlIGdlbmVyYWwgcHVibGlzaGVyL3N1YnNjcmliZXIgZmVhdHVyZXMgc28gdGhhdCBwZW9wbGUgY291bGQgc3VwcG9ydCBtb3JlIHRoYW4gb25lCiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVyL3N1YnNjcmliZXIgbWVjaGFuaXNtcyB3aXRoaW4gdGhlIHNhbWUgaW5mcmFzdHJ1Y3R1cmUuCiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvamF2YS90cmFuc3BvcnRzIiBjbGFzcz0iYmlnLWxpbmtzIj5BeGlzMiBUcmFuc3BvcnRzPC9hPgogICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJsb2dvLWNvbCI+PGEgaHJlZj0iaHR0cDovL2F4aXMuYXBhY2hlLm9yZy9heGlzMi9qYXZhL3RyYW5zcG9ydHMiIGNsYXNzPSJiaWctbGlua3MiPjxpbWcgc3JjPSJpbWFnZXMvbG9nb3MvYXhpczJUcmFuc3BvcnRzTG9nby5naWYiIGFsdD0iQXhpczIgVHJhbnNwb3J0cyIgYm9yZGVyPSIwIi8+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY29sIj4KICAgICAgICAgICAgICAgICAgICBBeGlzMiBUcmFuc3BvcnRzIGFyZSBhIHNldCBvZiB0cmFuc3BvcnQgYWRhcHRvcnMgZm9yIHRoZSBBcGFjaGUgQXhpczIgcHJvamVjdCBhcyB3ZWxsIGFzIGZvciB0aGUKICAgICAgICAgICAgICAgICAgICBBcGFjaGUgU3luYXBzZSBwcm9qZWN0LgogICAgICAgICAgICAgICAgICAgIDxicj48YnI+CiAgICAgICAgICAgICAgICAgICAgVGhlc2UgdHJhbnNwb3J0cyBjb25zaXN0cyBvZiBhIHNldCBvZiBzeW5jaHJvbm91cyBhcyB3ZWxsIGFzIGNvbXBsZXRlbHkgYXN5bmNocm9ub3VzIHRyYW5zcG9ydAogICAgICAgICAgICAgICAgICAgIGFkYXByb3RzLgoKICAgICAgICAgICAgICAgICAgICBKTVMgVHJhbnNwb3J0LCBFLU1haWwgVHJhbnNwb3J0LCBUQ1AgVHJhbnNwb3J0LCBTTVMgVHJhbnNwb3J0LCBVRFAgVHJhbnNwb3J0LCBYTVBQIFRyYW5zcG9ydC4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29udGVudC1pdGVtcyI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL2F4aXMuYXBhY2hlLm9yZy9heGlzLyIgY2xhc3M9ImJpZy1saW5rcyI+QXBhY2hlIEF4aXM8L2E+CiAgICAgICAgPHRhYmxlPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImxvZ28tY29sIj48YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMvIiBjbGFzcz0iYmlnLWxpbmtzIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL2F4aXMuanBnIiBhbHQ9IkFwYWNoZSBBeGlzIiBib3JkZXI9IjAiIC8+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY29sIj4KICAgICAgICAgICAgICAgICAgICBBcGFjaGUgQXhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU09BUCAoIlNpbXBsZSBPYmplY3QgQWNjZXNzIFByb3RvY29sIikgc3VibWlzc2lvbiB0byBXM0MuCiAgICAgICAgICAgICAgICAgICAgQXhpcyBoYXMgaXQncyBpbXBsZW1lbnRhdGlvbnMgaW4gSmF2YSBhcyB3ZWxsIGFzIEMrKy4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iZm9vdGVyIj5Db3B5cmlnaHQgqSAyMDAwLTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4gCg==