PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiIgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6KG51bGwpMT0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+PCEtLQogICAgQ29weXJpZ2h0IDIwMDktMjAxMCBJbnRlbCBDb3Jwb3JhdGlvbgogICAgbGljZW5zZSBiYW5uZXIKLS0+Cjx0aXRsZT5Cb29zdCBQb2x5Z29uIExpYnJhcnk6IENvb3JkaW5hdGUgQ29uY2VwdDwvdGl0bGU+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PUlTTy04ODU5LTEiPgo8dGFibGUgc3R5bGU9Im1hcmdpbjogMHB0OyBwYWRkaW5nOiAwcHQ7IHdpZHRoOiAxMDAlOyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPjx0Ym9keT48dHI+Cjx0ZCBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwgMjM4LCAyMzgpOyIgbm93cmFwPSIxIiB2YWxpZ249InRvcCI+CiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiA1cHg7IiBhbGlnbj0iY2VudGVyIj4KICAgICAgICA8aW1nIGJvcmRlcj0iMCIgc3JjPSJpbWFnZXMvYm9vc3QucG5nIiB3aWR0aD0iMjc3IiBoZWlnaHQ9Ijg2Ij48YSB0aXRsZT0id3d3LmJvb3N0Lm9yZyBob21lIHBhZ2UiIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnLyIgdGFiaW5kZXg9IjIiIHN0eWxlPSJib3JkZXI6IG1lZGl1bSBub25lIDsiPgogICAgICAgICAgICA8L2E+CiAgICA8L2Rpdj4KICAgIDxkaXYgc3R5bGU9Im1hcmdpbjogNXB4OyI+CiAgICAgICAgPGgzIGNsYXNzPSJuYXZiYXIiPkNvbnRlbnRzPC9oMz4KICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbmRleC5odG0iPkJvb3N0LlBvbHlnb24gTWFpbiBQYWdlPC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJndGxfZGVzaWduX292ZXJ2aWV3Lmh0bSI+RGVzaWduIE92ZXJ2aWV3PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJndGxfaXNvdHJvcHkuaHRtIj5Jc290cm9weTwvYT48L2xpPgoJCQk8bGk+Q29vcmRpbmF0ZSBDb25jZXB0PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imd0bF9pbnRlcnZhbF9jb25jZXB0Lmh0bSI+SW50ZXJ2YWwgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvaW50X2NvbmNlcHQuaHRtIj5Qb2ludCBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcmVjdGFuZ2xlX2NvbmNlcHQuaHRtIj5SZWN0YW5nbGUgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fOTBfY29uY2VwdC5odG0iPlBvbHlnb24gOTAgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fOTBfd2l0aF9ob2xlc19jb25jZXB0Lmh0bSI+UG9seWdvbiA5MCBXaXRoIEhvbGVzIENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uXzQ1X2NvbmNlcHQuaHRtIj5Qb2x5Z29uIDQ1IENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uXzQ1X3dpdGhfaG9sZXNfY29uY2VwdC5odG0iPlBvbHlnb24gNDUgV2l0aCBIb2xlcyBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl9jb25jZXB0Lmh0bSI+UG9seWdvbiBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl93aXRoX2hvbGVzX2NvbmNlcHQuaHRtIj5Qb2x5Z29uIFdpdGggSG9sZXMgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fOTBfc2V0X2NvbmNlcHQuaHRtIj5Qb2x5Z29uIDkwIFNldCBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl80NV9zZXRfY29uY2VwdC5odG0iPlBvbHlnb24gNDUgU2V0IENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uX3NldF9jb25jZXB0Lmh0bSI+UG9seWdvbiBTZXQgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX2Nvbm5lY3Rpdml0eV9leHRyYWN0aW9uXzkwLmh0bSI+Q29ubmVjdGl2aXR5IEV4dHJhY3Rpb24gOTA8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9jb25uZWN0aXZpdHlfZXh0cmFjdGlvbl80NS5odG0iPkNvbm5lY3Rpdml0eSBFeHRyYWN0aW9uIDQ1PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfY29ubmVjdGl2aXR5X2V4dHJhY3Rpb24uaHRtIj5Db25uZWN0aXZpdHkgRXh0cmFjdGlvbjwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3Byb3BlcnR5X21lcmdlXzkwLmh0bSI+UHJvcGVydHkgTWVyZ2UgOTA8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wcm9wZXJ0eV9tZXJnZV80NS5odG0iPlByb3BlcnR5IE1lcmdlIDQ1PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcHJvcGVydHlfbWVyZ2UuaHRtIj5Qcm9wZXJ0eSBNZXJnZTwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGgzIGNsYXNzPSJuYXZiYXIiPk90aGVyIFJlc291cmNlczwvaDM+CiAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iR1RMX2Jvb3N0Y29uMjAwOS5wZGYiPkdUTCBCb29zdGNvbiAyMDA5IFBhcGVyPC9hPjwvbGk+CiAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iR1RMX2Jvb3N0Y29uX2RyYWZ0MDMucGRmIj5HVEwgQm9vc3Rjb24gMjAwOSAKCQkJCVByZXNlbnRhdGlvbjwvYT48L2xpPgogICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImFuYWx5c2lzLmh0bSI+UGVyZm9ybWFuY2UgQW5hbHlzaXM8L2E+PC9saT4KICAgICAgICAJPGxpPjxhIGhyZWY9Imd0bF90dXRvcmlhbC5odG0iPkxheW91dCBWZXJzdXMgU2NoZW1hdGljIFR1dG9yaWFsPC9hPjwvbGk+CiAgICAgICAgCTxsaT48YSBocmVmPSJndGxfbWlua293c2tpX3R1dG9yaWFsLmh0bSI+TWlua293c2tpIFN1bSBUdXRvcmlhbDwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2Rpdj4KICAgICAgICA8aDMgY2xhc3M9Im5hdmJhciI+UG9seWdvbiBTcG9uc29yPC9oMz4KICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDVweDsiIGFsaWduPSJjZW50ZXIiPgogICAgICAgIDxpbWcgYm9yZGVyPSIwIiBzcmM9ImltYWdlcy9pbnRsb2dvLmdpZiIgd2lkdGg9IjEyNyIgaGVpZ2h0PSI1MSI+CiAgICA8L2Rpdj4gICAgCjwvdGQ+Cjx0ZCBzdHlsZT0icGFkZGluZy1sZWZ0OiAxMHB4OyBwYWRkaW5nLXJpZ2h0OiAxMHB4OyBwYWRkaW5nLWJvdHRvbTogMTBweDsiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTAwJSI+Cgo8IS0tIEVuZCBIZWFkZXIgLS0+Cgo8YnI+CjxwPgo8L3A+PGgxPkNvb3JkaW5hdGUgQ29uY2VwdDwvaDE+Cgo8cD4gClRoZSBjb29yZGluYXRlIGNvbmNlcHQgdGFnIGlzIDxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KY29vcmRpbmF0ZV9jb25jZXB0PC9mb250PjxwPiAKVG8gcmVnaXN0ZXIgYSB1c2VyIGRlZmluZWQgdHlwZSBhcyBhIG1vZGVsIG9mIGNvb3JkaW5hdGUgY29uY2VwdCwgc3BlY2lhbGl6ZSB0aGUgCmdlb21ldHJ5IGNvbmNlcHQgbWV0YS1mdW5jdGlvbiBmb3IgdGhhdCB0eXBlLiZuYnNwOyBJbiB0aGUgZXhhbXBsZSBiZWxvdyAKQ0Nvb3JkaW5hdGUgaXMgcmVnaXN0ZXJlZCBhcyBhIG1vZGVsIG9mIGNvb3JkaW5hdGUgY29uY2VwdC48cD4gCjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7Jmd0Ozxicj4Kc3RydWN0IGdlb21ldHJ5X2NvbmNlcHQmbHQ7Q0Nvb3JkaW5hdGUmZ3Q7IHsgdHlwZWRlZiBjb29yZGluYXRlX2NvbmNlcHQgdHlwZTsgfTs8L2ZvbnQ+PHA+IApUaGUgY29vcmRpbmF0ZSB0eXBlIGlzIGV4cGVjdGVkIHRvIGJlIGludGVncmFsIGFuZCBidWlsdC1pbiBudW1lcmljYWwgZGF0YSB0eXBlcyAKc3VjaCBhcyBmbG9hdCBhbmQgaW50IGFscmVhZHkgaGF2ZSBjb25jZXB0IHR5cGUgdHJhaXRzIHNwZWNpYWxpemF0aW9ucyBpbiB0aGUgCmxpYnJhcnkuJm5ic3A7IEluIHRoZSBjb29yZGluYXRlIHRyYWl0cyBhcmUgdHlwZSBkZWZpbml0aW9ucyBmb3IgcmVsYXRlZCB0eXBlcyAKYXJlIHByb3ZpZGVkIHRvIGFsbG93IHRoZSBsaWJyYXJ5IHRvIGNob29zZSB0aGUgYmVzdCB0eXBlIHRvIGNhc3QgdG8gdW5kZXIgCnZhcmlvdXMgY2lyY3Vtc3RhbmNlcy4mbmJzcDsgVGhlIGRlZmluaXRpb24gb2YgY29vcmRpbmF0ZV90cmFpdHMgYW5kIGl0cyAKc3BlY2lhbGl6YXRpb24gZm9yIGludCBhcmUgc2hvd24gYmVsb3cuPHA+IAo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgpzdHJ1Y3QgY29vcmRpbmF0ZV90cmFpdHMge307PGJyPgo8YnI+CnRlbXBsYXRlICZsdDsmZ3Q7PGJyPgpzdHJ1Y3QgY29vcmRpbmF0ZV90cmFpdHMmbHQ7aW50Jmd0OyB7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdHlwZWRlZiBpbnQgY29vcmRpbmF0ZV90eXBlOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHR5cGVkZWYgbG9uZyBkb3VibGUgYXJlYV90eXBlOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHR5cGVkZWYgbG9uZyBsb25nIG1hbmhhdHRhbl9hcmVhX3R5cGU7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdW5zaWduZWRfYXJlYV90eXBlOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHR5cGVkZWYgbG9uZyBsb25nIGNvb3JkaW5hdGVfZGlmZmVyZW5jZTs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0eXBlZGVmIGxvbmcgZG91YmxlIGNvb3JkaW5hdGVfZGlzdGFuY2U7PGJyPgp9OzwvZm9udD48cD4gCkJ5IG1ha2luZyB1c2Ugb2YgdGhlIGNvb3JkaW5hdGUgdHJhaXRzIG9mIGludCB0aGUgbGlicmFyeSBpcyBhYmxlIHRvIGF2b2lkIApvdmVyZmxvdyBhbmQgaGFuZGxlIHRoZSBub3JtYWwgaXNzdWVzIGVuY291bnRlcmVkIHdoZW4gcHJvZ3JhbW1pbmcgaW50ZWdlciAKZ2VvbWV0cnkuJm5ic3A7IEZvciB0aGUgb3V0IG9mIHRoZSBvcmRpbmFyeSBpc3N1ZXMgdGhlcmUgaXMgYSBzcGVjaWFsIAptZXRhLWZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgdGhlIGxpYnJhcnkgd2l0aCBhIG51bWVyaWNhbCB0eXBlIHN1aXRhYmxlIGZvciBleGFjdCAKbnVtZXJpY2FsIGNhbGN1bGF0aW9ucy4mbmJzcDsgSXQgZGVmYXVsdHMgdG8gdGhlIGhpZ2hlc3QgcHJlY2lzaW9uIGRhdGEgdHlwZSAKYXZhaWxhYmxlIGluIG1vc3QgY29tcGlsZXJzLCBsb25nIGRvdWJsZSwgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IHNwZWNpYWxpemluZyAKZm9yIGEgcGFydGljdWxhciBjb29yZGluYXRlIHR5cGUuJm5ic3A7IFVzZSBvZiBnbXAgbXVsdGktcHJlY2lzaW9uIHJhdGlvbmFsIG9yIApzaW1pbGFyIGRhdGEgdHlwZSBpcyByZWNvbW1lbmRlZCBmb3IgbnVtZXJpY2FsbHkgcm9idXN0IGNhbGN1bGF0aW9ucyBpbiB0aGUgCmdlbmVyYWwgcG9seWdvbiBhbGdvcml0aG1zLjxwPiAKPGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4Kc3RydWN0IGhpZ2hfcHJlY2lzaW9uX3R5cGUgezxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHR5cGVkZWYgbG9uZyBkb3VibGUgdHlwZTs8YnI+Cn07PC9mb250PjxwPiAKVGhlcmUgaXMgb25seSBvbmUgZ2VuZXJpYyBmdW5jdGlvbiBvbiBjb29yZGluYXRlIGNvbmNlcHRzLCBFdWNsaWRlYW4gZGlzdGFuY2UuPHA+IAo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIGNvb3JkaW5hdGVfdHlwZV8xLCB0eXBlbmFtZSAKY29vcmRpbmF0ZV90eXBlXzImZ3Q7PGJyPgpjb29yZGluYXRlX2RpZmZlcmVuY2UgZXVjbGlkZWFuX2Rpc3RhbmNlKGNvb3JkaW5hdGVfdHlwZV8xLCBjb29yZGluYXRlX3R5cGVfMik8L2ZvbnQ+PHA+IApUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFic29sdXRpb24gdmFsdWUgb2YgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIApjb29yZGluYXRlcy48cD4gCk5vdGU6IG9sZGVyIHZlcnNpb25zIG9mIHRoZSBzdGwgZGVmaW5lIGEgZnVsbHkgZ2VuZXJpYyBkaXN0YW5jZShULCBUKSBmdW5jdGlvbiAKZm9yIGNvbXB1dGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBpdGVyYXRvcnMuJm5ic3A7IFdlIHdlcmUgZm9yY2VkIHRvIG5hbWUgCm91ciBkaXN0YW5jZSBmdW5jdGlvbiBldWNsaWRlYW5fZGlzdGFuY2UgdG8gYXZvaWQgbmFtZSBjb2xsaXNpb24uPHA+IApUaGUKPGEgaHJlZj0iaHR0cDovL3d3dy5tZW50b3IuY29tL3Byb2R1Y3RzL2VzbC9oaWdoX2xldmVsX3N5bnRoZXNpcy9hY19kYXRhdHlwZXMiPiAKQWxnb3JpdGhtaWMgQzwvYT4gYWNfaW50Jmx0OzEyOCZndDsgaXMgYW4gZXhhbXBsZSBvZiBhIHVzZXIgZGVmaW5lZCBjb29yZGluYXRlIGRhdGEgCnR5cGUgdGhhdCBzYXRpc2ZpZXMgdGhlIGNvb3JkaW5hdGUgY29uY2VwdC4mbmJzcDsgSW4gZ2VuZXJhbCBhIGRhdGEgdHlwZSBzaG91bGQgCmRlZmluZSBzdGQ6Om51bWVyaWNfbGltaXRzIGFuZCBiZSBpbnRlZ2VyLWxpa2UuJm5ic3A7IEZsb2F0aW5nIHBvaW50IGNvb3JkaW5hdGUgCnR5cGVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGFsbCB0aGUgYWxnb3JpdGhtcyBhbmQgZ2VuZXJhbGx5IG5vdCBzdWl0YWJsZSBmb3IgdXNlIAp3aXRoIHRoZSBsaWJyYXJ5IGF0IHByZXNlbnQuPHRyPgo8dGQgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsIDIzOCwgMjM4KTsiIG5vd3JhcD0iMSIgdmFsaWduPSJ0b3AiPgogICAgJm5ic3A7PC90ZD4KPHRkIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IHBhZGRpbmctYm90dG9tOiAxMHB4OyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxMDAlIj4KCgo8dGFibGUgY2xhc3M9ImRvY2luZm8iIHJ1bGVzPSJub25lIiBmcmFtZT0idm9pZCIgaWQ9InRhYmxlMSI+Cgk8Y29sZ3JvdXA+CgkJPGNvbCBjbGFzcz0iZG9jaW5mby1uYW1lIj48Y29sIGNsYXNzPSJkb2NpbmZvLWNvbnRlbnQiPgoJPC9jb2xncm91cD4KCTx0Ym9keSB2QWxpZ249InRvcCI+CgkJPHRyPgoJCQk8dGggY2xhc3M9ImRvY2luZm8tbmFtZSI+Q29weXJpZ2h0OjwvdGg+CgkJCTx0ZD5Db3B5cmlnaHQgqSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDA4LTIwMTAuPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZmllbGQiPgoJCQk8dGggY2xhc3M9ImRvY2luZm8tbmFtZSI+TGljZW5zZTo8L3RoPgoJCQk8dGQgY2xhc3M9ImZpZWxkLWJvZHkiPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKCQkJVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgPHR0IGNsYXNzPSJsaXRlcmFsIj4KCQkJPHNwYW4gY2xhc3M9InByZSI+TElDRU5TRV8xXzAudHh0PC9zcGFuPjwvdHQ+IG9yIGNvcHkgYXQKCQkJPGEgY2xhc3M9InJlZmVyZW5jZSIgdGFyZ2V0PSJfdG9wIiBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPgoJCQlodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvdGQ+CgkJPC90cj4KPC90YWJsZT4KCjwvaHRtbD4=