PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiIgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6KG51bGwpMT0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+PCEtLQogICAgQ29weXJpZ2h0IDIwMDktMjAxMCBJbnRlbCBDb3Jwb3JhdGlvbgogICAgbGljZW5zZSBiYW5uZXIKLS0+Cjx0aXRsZT5Cb29zdCBQb2x5Z29uIExpYnJhcnk6IFBvbHlnb24gNDUgU2V0IENvbmNlcHQ8L3RpdGxlPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1JU08tODg1OS0xIj4KPHRhYmxlIHN0eWxlPSJtYXJnaW46IDBwdDsgcGFkZGluZzogMHB0OyB3aWR0aDogMTAwJTsiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dGJvZHk+PHRyPgo8dGQgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsIDIzOCwgMjM4KTsiIG5vd3JhcD0iMSIgdmFsaWduPSJ0b3AiPgogICAgPGRpdiBzdHlsZT0icGFkZGluZzogNXB4OyIgYWxpZ249ImNlbnRlciI+CiAgICAgICAgPGltZyBib3JkZXI9IjAiIHNyYz0iaW1hZ2VzL2Jvb3N0LnBuZyIgd2lkdGg9IjI3NyIgaGVpZ2h0PSI4NiI+PGEgdGl0bGU9Ind3dy5ib29zdC5vcmcgaG9tZSBwYWdlIiBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy8iIHRhYmluZGV4PSIyIiBzdHlsZT0iYm9yZGVyOiBtZWRpdW0gbm9uZSA7Ij4KICAgICAgICAgICAgPC9hPgogICAgPC9kaXY+CiAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IDVweDsiPgogICAgICAgIDxoMyBjbGFzcz0ibmF2YmFyIj5Db250ZW50czwvaDM+CiAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iaW5kZXguaHRtIj5Cb29zdC5Qb2x5Z29uIE1haW4gUGFnZTwvYT48L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iZ3RsX2Rlc2lnbl9vdmVydmlldy5odG0iPkRlc2lnbiBPdmVydmlldzwvYT48L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iZ3RsX2lzb3Ryb3B5Lmh0bSI+SXNvdHJvcHk8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imd0bF9jb29yZGluYXRlX2NvbmNlcHQuaHRtIj5Db29yZGluYXRlIENvbmNlcHQ8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imd0bF9pbnRlcnZhbF9jb25jZXB0Lmh0bSI+SW50ZXJ2YWwgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvaW50X2NvbmNlcHQuaHRtIj5Qb2ludCBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcmVjdGFuZ2xlX2NvbmNlcHQuaHRtIj5SZWN0YW5nbGUgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fOTBfY29uY2VwdC5odG0iPlBvbHlnb24gOTAgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fOTBfd2l0aF9ob2xlc19jb25jZXB0Lmh0bSI+UG9seWdvbiA5MCBXaXRoIEhvbGVzIENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uXzQ1X2NvbmNlcHQuaHRtIj5Qb2x5Z29uIDQ1IENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uXzQ1X3dpdGhfaG9sZXNfY29uY2VwdC5odG0iPlBvbHlnb24gNDUgV2l0aCBIb2xlcyBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl9jb25jZXB0Lmh0bSI+UG9seWdvbiBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl93aXRoX2hvbGVzX2NvbmNlcHQuaHRtIj5Qb2x5Z29uIFdpdGggSG9sZXMgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fOTBfc2V0X2NvbmNlcHQuaHRtIj5Qb2x5Z29uIDkwIFNldCBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT5Qb2x5Z29uIDQ1IFNldCBDb25jZXB0PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uX3NldF9jb25jZXB0Lmh0bSI+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+PGgxPlBvbHlnb24gNDUgU2V0IENvbmNlcHQ8L2gxPgoKPHA+IAo8cD5UaGUgcG9seWdvbl80NV9zZXQgY29uY2VwdCB0YWcgaXMgPGZvbnQgZmFjZT0iQ291cmllciBOZXciPgpwb2x5Z29uXzQ1X3NldF9jb25jZXB0PC9mb250PjwvcD4KPHA+IAo8Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPlRoZSBzZW1hbnRpYyBvZiBhIHBvbHlnb25fNDVfc2V0IGlzIHplcm8gb3IgbW9yZSAKZ2VvbWV0cnkgcmVnaW9ucyB3aGljaCBoYXZlIGFuZ2xlcyBhdCB0aGUgdmVydGljZXMgdGhhdCBhcmUgbXVsdGlwbGVzIG9mIAo0NS1kZWdyZWVzIHJlbGF0aXZlIHRvIHRoZSBjb29yZGluYXRlIGF4aXMuJm5ic3A7IEEgUG9seWdvbiA0NSBTZXQgQ29uY2VwdCBtYWtlcyAKbm8gc2Vuc2UgaW4gZmxvYXRpbmcgcG9pbnQsIGJ1dCBjdXJyZW50bHkgZG9lcyBub3QgcHJvdmlkZSBhIHN0YXRpYyBhc3NlcnQgdG8gCnByZXZlbnQgaXQgZnJvbSBiZWluZyB1c2VkIHdpdGggZmxvYXRpbmcgcG9pbnQgY29vcmRpbmF0ZXMuJm5ic3A7IFRoZSByZXN1bHQgb2YgCnN1Y2ggdXNlIGlzIHVuZGVmaW5lZC4mbmJzcDsgV2hlbiB0aGUgaW50ZXJzZWN0aW9uIG9mIHR3byA0NSBkZWdyZWUgZWRnZXMgCnJlc3VsdHMgaW4gYSB2ZXJ0ZXggdGhhdCBpcyBvZmYgdGhlIGludGVnZXIgZ3JpZCB0aGF0IGNhc2UgaXMgaGFuZGxlZCBieSAKaW5zZXJ0aW5nIGEgdW5pdCBsZW5ndGggZWRnZSBiZXR3ZWVuIHRoZSB0d28gNDUgZGVncmVlIGVkZ2VzIG5lYXIgdGhlIG9mZiBncmlkIAppbnRlcnNlY3Rpb24gcG9pbnQuJm5ic3A7IEluIHRoZSBjYXNlIHRoYXQgZGF0YSByZXByZXNlbnRlZCBjb250YWlucyBubyAKNDUtZGVncmVlIGFuZ2xlcyBhbmQgaXMgTWFuaGF0dGFuIGEgcnVudGltZSBjaGVjayB3aWxsIGRlZmF1bHQgdG8gdGhlIE1hbmhhdHRhbiAKYWxnb3JpdGhtLiZuYnNwOyBUaGUgcmVzdWx0cyBvZiB3aGljaCBhcmUgaWRlbnRpY2FsIHRvIHdoYXQgdGhlIDQ1LWRlZ3JlZSAKYWxnb3JpdGhtIHdvdWxkIGRvLCBidXQgb2J0YWluZWQgbW9yZSBlZmZpY2llbnRseS48L2ZvbnQ+PHA+IAo8Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPlRoZSBtb3RpdmF0aW9uIGZvciBwcm92aWRpbmcgdGhlIHBvbHlnb25fNDVfc2V0IGlzIAp0byBleHRlbmQgdGhlIHNwZWNpYWwgY2FzZSBvZiBNYW5oYXR0YW4gZ2VvbWV0cnkgY2FwYWJpbGl0eSBvZiB0aGUgbGlicmFyeSB0byAKZW5jb21wYXNzIHRoZSBzbGlnaHRseSBsZXNzIGNvbW1vbiwgYnV0IHN0aWxsIGltcG9ydGFudCBzcGVjaWFsIGNhc2Ugb2YgZ2VvbWV0cnkgCnRoYXQgaXMgZGVzY3JpYmVkIGJ5IGFuZ2xlcyB0aGF0IGFyZSBtdWx0aXBsZXMgb2YgNDUtZGVncmVzcyB3aXRoIHJlc3BlY3QgdG8gdGhlIApjb29yZGluYXRlIGF4aXMuJm5ic3A7IFRoaXMgc2ltcGxpZmllcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgZ2VvbWV0cnkgYWxnb3JpdGhtcyAKYW5kIGFmZm9yZHMgbWFueSBvcHBvcnR1bml0aWVzIGZvciBvcHRpbWl6YXRpb24uJm5ic3A7IDQ1LWRlZ3JlZSBhbGdvcml0aG1zIGNhbiAKYmUgNTBYIGZhc3RlciB0aGFuIGFyYml0cmFyeSBhbmdsZSBhbGdvcml0aG1zIGFuZCBhcmUgcmVxdWlyZWQgdG8gcHJvdmlkZSBhIApjb21wbGV0ZSBmZWF0dXJlIHNldCB0aGF0IG1lZXRzIHRoZSBwZXJmb3JtYW5jZSByZXF1aXJlbWVudHMgb2YgYXBwbGljYXRpb24gCmRvbWFpbnMgaW4gd2hpY2ggTWFuaGF0dGFuIGFuZCA0NS1kZWdyZWUgZ2VvbWV0cnkgYXJlIGEgY29tbW9uIHNwZWNpYWwgY2FzZS48L2ZvbnQ+PHA+VXNlcnMgYXJlIHJlY29tbWVuZGVkIHRvIHVzZSBzdGQ6OnZlY3RvciBhbmQgc3RkOjpsaXN0IG9mIHVzZXIgZGVmaW5lZCBwb2x5Z29ucyAKb3IgbGlicmFyeSBwcm92aWRlZCBwb2x5Z29uXzQ1X3NldF9kYXRhJmx0O2Nvb3JkaW5hdGVfdHlwZSZndDsgb2JqZWN0cy4mbmJzcDsgTGlzdHMgCmFuZCB2ZWN0b3JzIG9mIG1vZGVscyBvZiBwb2x5Z29uXzQ1X2NvbmNlcHQgb3IgcG9seWdvbl80NV93aXRoX2hvbGVzX2NvbmNlcHQgYXJlIGF1dG9tYXRpY2FsbHkgbW9kZWxzIG9mIHBvbHlnb25fNDVfc2V0X2NvbmNlcHQuPC9wPgo8cD5BbiBvYmplY3QgdGhhdCBpcyBhIG1vZGVsIG9mIDxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KcG9seWdvbl80NV9zZXRfY29uY2VwdDwvZm9udD4gY2FuIGJlIHZpZXdlZCBhcyBhIG1vZGVsIG9mIDxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KcG9seWdvbl85MF9zZXRfY29uY2VwdDwvZm9udD4gaWYgaXQgaXMgZGV0ZXJtaW5lZCBhdCBydW50aW1lIHRvIGNvbmZvcm0gdG8gdGhlIApyZXN0cmljdGlvbiB0aGF0IGFsbCBlZGdlcyBhcmUgYXhpcy1wYXJhbGxlbC4mbmJzcDsgVGhpcyBjb25jZXB0IGNhc3RpbmcgaXMgCmFjY29tcGxpc2hlZCB0aHJvdWdoIHRoZSA8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dmlld19hcyZsdDsmZ3Q7KCk8L2ZvbnQ+IGZ1bmN0aW9uLjwvcD4KPHA+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnZpZXdfYXMmbHQ7cG9seWdvbl85MF9zZXRfY29uY2VwdCZndDsocG9seWdvbl9zZXRfb2JqZWN0KTwvZm9udD48L3A+CjxwPlRoZSByZXR1cm4gdmFsdWUgb2YgPGZvbnQgZmFjZT0iQ291cmllciBOZXciPnZpZXdfYXMmbHQ7Jmd0OygpPC9mb250PiBjYW4gYmUgcGFzc2VkIAppbnRvIGFueSBpbnRlcmZhY2UgdGhhdCBleHBlY3RzIGFuIG9iamVjdCBvZiB0aGUgY29uY2VwdHVhbCB0eXBlIHNwZWNpZmllZCBpbiAKaXRzIHRlbXBsYXRlIHBhcmFtZXRlci4mbmJzcDsgUG9seWdvbiBzZXRzIGNhbm5vdCBiZSB2aWV3ZWQgYXMgc2luZ2xlIHBvbHlnb25zIApvciByZWN0YW5nbGVzIHNpbmNlIGl0IGdlbmVyYWxseSBjYW5ub3QgYmUga25vd24gd2hldGhlciBhIHBvbHlnb24gc2V0IGNvbnRhaW5zIApvbmx5IGEgc2luZ2xlIHBvbHlnb24gd2l0aG91dCBjb252ZXJ0aW5nIHRvIHBvbHlnb25zLjwvcD4KPGgyPk9wZXJhdG9yczwvaDI+CjxwPlRoZSByZXR1cm4gdHlwZSBvZiBzb21lIG9wZXJhdG9ycyBpcyB0aGUgPGZvbnQgZmFjZT0iQ291cmllciBOZXciPnBvbHlnb25fNDVfc2V0X3ZpZXc8L2ZvbnQ+IApvcGVyYXRvciB0ZW1wbGF0ZSB0eXBlLiZuYnNwOyBUaGlzIHR5cGUgaXMgaXRzZWxmIGEgbW9kZWwgb2YgdGhlIHBvbHlnb24gOTAgc2V0IApjb25jZXB0LCBidXQgZnVydGhlcm1vcmUgY2FuIGJlIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gdGhlIDxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij5wb2x5Z29uXzQ1X3NldF9kYXRhPC9mb250PiAKY29uc3RydWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3IuJm5ic3A7IFRoZSBvcGVyYXRvciB0ZW1wbGF0ZSBleGlzdHMgdG8gCmVsaW1pbmF0ZSB0ZW1wIGNvcGllcyBvZiBpbnRlcm1lZGlhdGUgcmVzdWx0cyB3aGVuIEJvb2xlYW4gb3BlcmF0b3JzIGFyZSBjaGFpbmVkIAp0b2dldGhlci48L3A+CjxwPk9wZXJhdG9ycyBhcmUgZGVjbGFyZWQgaW5zaWRlIHRoZSBuYW1lc3BhY2UgPGZvbnQgZmFjZT0iQ291cmllciBOZXciPmJvb3N0Ojpwb2x5Z29uOjpvcGVyYXRvcnM8L2ZvbnQ+LjwvcD4KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGlkPSJ0YWJsZTUiPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJcG9seWdvbl80NV9zZXRfdmlldyA8Yj5vcGVyYXRvcjwvYj58KGNvbnN0IFQxJmFtcDsgbCwgY29uc3QgVDImYW1wOyByKTwvZm9udD48L3RkPgoJCTx0ZD5Cb29sZWFuIE9SIG9wZXJhdGlvbiAocG9seWdvbiBzZXQgdW5pb24pLiZuYnNwOyBBY2NlcHRzIHR3byBvYmplY3RzIAoJCXRoYXQgbW9kZWwgcG9seWdvbl80NV9zZXQgb3Igb25lIG9mIGl0cyByZWZpbmVtZW50cy4mbmJzcDsgUmV0dXJucyBhbiAKCQlvcGVyYXRvciB0ZW1wbGF0ZSB0aGF0IHBlcmZvcm1zIHRoZSBvcGVyYXRpb24gb24gZGVtYW5kIHdoZW4gY2hhaW5lZCBvciAKCQlvciBuZXN0ZWQgaW4gYSBsaWJyYXJ5IGZ1bmN0aW9uIGNhbGwgc3VjaCBhcyBhc3NpZ24oKS4mbmJzcDsgTyggbiBsb2cgbikgCgkJcnVudGltZSBjb21wbGV4aXR5IGFuZCBPKG4pIG1lbW9yeSB3cnQgdmVydGljZXMgKyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJcG9seWdvbl80NV9zZXRfdmlldyA8Yj5vcGVyYXRvcjwvYj4rKGNvbnN0IFQxJmFtcDsgbCwgY29uc3QgVDImYW1wOyByKTwvZm9udD48L3RkPgoJCTx0ZD5TYW1lIGFzIG9wZXJhdG9yfC4mbmJzcDsgVGhlIHBsdXMgc2lnbiBpcyBhbHNvIHVzZWQgZm9yIE9SIAoJCW9wZXJhdGlvbnMgaW4gQm9vbGVhbiBsb2dpYyBleHByZXNzaW9ucy4mbmJzcDsgTyggbiBsb2cgbikgcnVudGltZSAKCQljb21wbGV4aXR5IGFuZCBPKG4pIG1lbW9yeSB3cnQgdmVydGljZXMgKyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJcG9seWdvbl80NV9zZXRfdmlldyA8Yj5vcGVyYXRvcjwvYj4mYW1wOyhjb25zdCBUMSZhbXA7IGwsIGNvbnN0IFQyJmFtcDsgcik8L2ZvbnQ+PC90ZD4KCQk8dGQ+Qm9vbGVhbiBBTkQgb3BlcmF0aW9uIChwb2x5Z29uIHNldCBpbnRlcnNlY3Rpb24pLiZuYnNwOyBBY2NlcHRzIHR3byAKCQlvYmplY3RzIHRoYXQgbW9kZWwgcG9seWdvbl80NV9zZXQgb3Igb25lIG9mIGl0cyByZWZpbmVtZW50cy4mbmJzcDsgTyggbiAKCQlsb2cgbikgcnVudGltZSBjb21wbGV4aXR5IGFuZCBPKG4pIG1lbW9yeSB3cnQgdmVydGljZXMgKyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJcG9seWdvbl80NV9zZXRfdmlldyA8Yj5vcGVyYXRvcjwvYj4qKGNvbnN0IFQxJmFtcDsgbCwgY29uc3QgVDImYW1wOyByKTwvZm9udD48L3RkPgoJCTx0ZD5TYW1lIGFzIG9wZXJhdG9yJmFtcDsuJm5ic3A7IFRoZSBtdWx0aXBsaWNhdGlvbiBzeW1ib2wgaXMgYWxzbyB1c2VkIGZvciAKCQlBTkQgb3BlcmF0aW9ucyBpbiBCb29sZWFuIGxvZ2ljIGV4cHJlc3Npb25zLiZuYnNwOyBPKCBuIGxvZyBuKSBydW50aW1lIAoJCWNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCB2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlwb2x5Z29uXzQ1X3NldF92aWV3IDxiPm9wZXJhdG9yPC9iPl4oY29uc3QgVDEmYW1wOyBsLCBjb25zdCBUMiZhbXA7IHIpPC9mb250PjwvdGQ+CgkJPHRkPkJvb2xlYW4gWE9SIG9wZXJhdGlvbiAocG9seWdvbiBzZXQgZGlzam9pbnQtdW5pb24pLiZuYnNwOyBBY2NlcHRzIAoJCXR3byBvYmplY3RzIHRoYXQgbW9kZWwgcG9seWdvbl80NV9zZXQgb3Igb25lIG9mIGl0cyByZWZpbmVtZW50cy4mbmJzcDsgCgkJTyggbiBsb2cgbikgcnVudGltZSBjb21wbGV4aXR5IGFuZCBPKG4pIG1lbW9yeSB3cnQgdmVydGljZXMgKyAKCQlpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJcG9seWdvbl80NV9zZXRfdmlldyA8Yj5vcGVyYXRvcjwvYj4tKGNvbnN0IFQxJmFtcDsgbCwgY29uc3QgVDImYW1wOyByKTwvZm9udD48L3RkPgoJCTx0ZD5Cb29sZWFuIFNVQlRSQUNUIG9wZXJhdGlvbiAocG9seWdvbiBzZXQgZGlmZmVyZW5jZSkuJm5ic3A7IEFjY2VwdHMgCgkJdHdvIG9iamVjdHMgdGhhdCBtb2RlbCBwb2x5Z29uXzQ1X3NldCBvciBvbmUgb2YgaXRzIHJlZmluZW1lbnRzLiZuYnNwOyAKCQlPKCBuIGxvZyBuKSBydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCB2ZXJ0aWNlcyArIAoJCWludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSZhbXA7IDxiPm9wZXJhdG9yPC9iPnw9KGNvbnN0IFQxJmFtcDsgbCwgY29uc3QgVDImYW1wOyByKTwvZm9udD48L3RkPgoJCTx0ZD5TYW1lIGFzIG9wZXJhdG9yfCwgYnV0IHdpdGggc2VsZiBhc3NpZ25tZW50LCBsZWZ0IG9wZXJhbmQgbXVzdCBtb2RlbCAKCQlwb2x5Z29uXzQ1X3NldCBhbmQgbm90IG9uZSBvZiBpdCdzIHJlZmluZW1lbnRzLiZuYnNwOyBPKCBuIGxvZyBuKSAKCQlydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCB2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSZhbXA7IDxiPm9wZXJhdG9yPC9iPis9KFQxJmFtcDsgbCwgY29uc3QgVDImYW1wOyByKTwvZm9udD48L3RkPgoJCTx0ZD5TYW1lIGFzIG9wZXJhdG9yKywgYnV0IHdpdGggc2VsZiBhc3NpZ25tZW50LCBsZWZ0IG9wZXJhbmQgbXVzdCBtb2RlbCAKCQlwb2x5Z29uXzQ1X3NldCBhbmQgbm90IG9uZSBvZiBpdCdzIHJlZmluZW1lbnRzLiZuYnNwOyBPKCBuIGxvZyBuKSAKCQlydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCB2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSZhbXA7IDxiPm9wZXJhdG9yPC9iPiZhbXA7PShjb25zdCBUMSZhbXA7IGwsIGNvbnN0IFQyJmFtcDsgcik8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2FtZSBhcyBvcGVyYXRvciZhbXA7LCBidXQgd2l0aCBzZWxmIGFzc2lnbm1lbnQsIGxlZnQgb3BlcmFuZCBtdXN0IG1vZGVsIAoJCXBvbHlnb25fNDVfc2V0IGFuZCBub3Qgb25lIG9mIGl0J3MgcmVmaW5lbWVudHMuJm5ic3A7IE8oIG4gbG9nIG4pIAoJCXJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCVQxJmFtcDsgPGI+b3BlcmF0b3I8L2I+Kj0oVDEmYW1wOyBsLCBjb25zdCBUMiZhbXA7IHIpPC9mb250PjwvdGQ+CgkJPHRkPlNhbWUgYXMgb3BlcmF0b3IqLCBidXQgd2l0aCBzZWxmIGFzc2lnbm1lbnQsIGxlZnQgb3BlcmFuZCBtdXN0IG1vZGVsIAoJCXBvbHlnb25fNDVfc2V0IGFuZCBub3Qgb25lIG9mIGl0J3MgcmVmaW5lbWVudHMuJm5ic3A7IE8oIG4gbG9nIG4pIAoJCXJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCVQxJmFtcDsgPGI+b3BlcmF0b3I8L2I+Xj0oY29uc3QgVDEmYW1wOyBsLCBjb25zdCBUMiZhbXA7IHIpPC9mb250PjwvdGQ+CgkJPHRkPlNhbWUgYXMgb3BlcmF0b3JeLCBidXQgd2l0aCBzZWxmIGFzc2lnbm1lbnQsIGxlZnQgb3BlcmFuZCBtdXN0IG1vZGVsIAoJCXBvbHlnb25fNDVfc2V0IGFuZCBub3Qgb25lIG9mIGl0J3MgcmVmaW5lbWVudHMuJm5ic3A7IE8oIG4gbG9nIG4pIAoJCXJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCVQxJmFtcDsgPGI+b3BlcmF0b3I8L2I+LT0oVDEmYW1wOyBsLCBjb25zdCBUMiZhbXA7IHIpPC9mb250PjwvdGQ+CgkJPHRkPlNhbWUgYXMgb3BlcmF0b3ItLCBidXQgd2l0aCBzZWxmIGFzc2lnbm1lbnQsIGxlZnQgb3BlcmFuZCBtdXN0IG1vZGVsIAoJCXBvbHlnb25fNDVfc2V0IGFuZCBub3Qgb25lIG9mIGl0J3MgcmVmaW5lbWVudHMuJm5ic3A7IE8oIG4gbG9nIG4pIAoJCXJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSZndDs8YnI+CgkJVDEgPGI+b3BlcmF0b3I8L2I+Kyhjb25zdCBUMSZhbXA7LCBjb29yZGluYXRlX3R5cGUgYmxvYXRpbmcpPC9mb250PjwvdGQ+CgkJPHRkPlBlcmZvcm1zIHJlc2l6ZSBvcGVyYXRpb24sIGluZmxhdGluZyBieSBibG9hdGluZyBhbW1vdW50LiZuYnNwOyBJZiAKCQluZWdhdGl2ZSB0aGUgcmVzdWx0IGlzIGEgc2hyaW5rIGluc3RlYWQgb2YgYmxvYXQuJm5ic3A7IE5vdGU6IHJldHVybnMgCgkJcmVzdWx0IGJ5IHZhbHVlLiZuYnNwOyBPKCBuIGxvZyBuKSBydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IAoJCXdydCB2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSA8Yj5vcGVyYXRvcjwvYj4tKGNvbnN0IFQxJmFtcDssIGNvb3JkaW5hdGVfdHlwZSBzaHJpbmtpbmcpPC9mb250PjwvdGQ+CgkJPHRkPlBlcmZvcm1zIHJlc2l6ZSBvcGVyYXRpb24sIGRlZmxhdGluZyBieSBibG9hdGluZyBhbW1vdW50LiZuYnNwOyBJZiAKCQluZWdhdGl2ZSB0aGUgcmVzdWx0IGlzIGEgYmxvYXQgaW5zdGVhZCBvZiBzaHJpbmsuJm5ic3A7IE5vdGU6IHJldHVybnMgCgkJcmVzdWx0IGJ5IHZhbHVlLiZuYnNwOyBPKCBuIGxvZyBuKSBydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IAoJCXdydCB2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSZhbXA7IDxiPm9wZXJhdG9yPC9iPis9KGNvbnN0IFQxJmFtcDssIGNvb3JkaW5hdGVfdHlwZSBibG9hdGluZyk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UGVyZm9ybXMgcmVzaXplIG9wZXJhdGlvbiwgaW5mbGF0aW5nIGJ5IGJsb2F0aW5nIGFtbW91bnQuJm5ic3A7IElmIAoJCW5lZ2F0aXZlIHRoZSByZXN1bHQgaXMgYSBzaHJpbmsgaW5zdGVhZCBvZiBibG9hdC4mbmJzcDsgUmV0dXJucyAKCQlyZWZlcmVuY2UgdG8gbW9kaWZpZWQgYXJndW1lbnQuJm5ic3A7IE8oIG4gbG9nIG4pIHJ1bnRpbWUgY29tcGxleGl0eSBhbmQgCgkJTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCVQxJmFtcDsgPGI+b3BlcmF0b3I8L2I+LT0oY29uc3QgVDEmYW1wOywgY29vcmRpbmF0ZV90eXBlIHNocmlua2luZyk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UGVyZm9ybXMgcmVzaXplIG9wZXJhdGlvbiwgZGVmbGF0aW5nIGJ5IGJsb2F0aW5nIGFtbW91bnQuJm5ic3A7IElmIAoJCW5lZ2F0aXZlIHRoZSByZXN1bHQgaXMgYSBibG9hdCBpbnN0ZWFkIG9mIHNocmluay4mbmJzcDsgUmV0dXJucyAKCQlyZWZlcmVuY2UgdG8gbW9kaWZpZWQgYXJndW1lbnQuJm5ic3A7IE8oIG4gbG9nIG4pIHJ1bnRpbWUgY29tcGxleGl0eSBhbmQgCgkJTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTwvdGFibGU+CjxoMj5GdW5jdGlvbnM8L2gyPgo8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSIgaWQ9InRhYmxlMyI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSZhbXA7IDxiPmFzc2lnbjwvYj4oVDEmYW1wOyBsdmFsdWUsIGNvbnN0IFQyJmFtcDsgcnZhbHVlKTwvZm9udD48L3RkPgoJCTx0ZD5FbGltaW5hdGVzIG92ZXJsYXBzIGluIGdlb21ldHJ5IGFuZCBjb3BpZXMgZnJvbSBhbiBvYmplY3QgdGhhdCAKCQltb2RlbHMgcG9seWdvbl80NV9zZXQgb3IgYW55IG9mIGl0cyByZWZpbmVtZW50cyBpbnRvIGFuIG9iamVjdCB0aGF0IAoJCW1vZGVscyBwb2x5Z29uXzQ1X3NldC4mbmJzcDsgTyggbiBsb2cgbikgcnVudGltZSBjb21wbGV4aXR5IGFuZCBPKG4pIAoJCW1lbW9yeSB3cnQgdmVydGljZXMgKyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJYm9vbCA8Yj5lcXVpdmFsZW5jZTwvYj4oY29uc3QgVDEmYW1wOyBsdmFsdWUsIGNvbnN0IFQyJmFtcDsgcnZhbHVlKSA8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0cnVlIGlmIGFuIG9iamVjdCB0aGF0IG1vZGVscyBwb2x5Z29uXzQ1X3NldCBvciBvbmUgb2YgaXRzIAoJCXJlZmluZW1lbnRzIGNvdmVycyB0aGUgZXhhY3Qgc2FtZSBnZW9tZXRyaWMgcmVnaW9ucyBhcyBhbm90aGVyIG9iamVjdCAKCQl0aGF0IG1vZGVscyBwb2x5Z29uXzQ1X3NldCBvciBvbmUgb2YgaXRzIHJlZmluZW1lbnRzLiZuYnNwOyBGb3IgZXhhbXBsZTogCgkJdHdvIG9mIHBvbHlnb25fNDUgb2JqZWN0cy4mbmJzcDsgTyggbiBsb2cgbikgcnVudGltZSBjb21wbGV4aXR5IGFuZCBPKG4pIAoJCW1lbW9yeSB3cnQgdmVydGljZXMgKyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIAoJCW91dHB1dF9jb250YWluZXJfdHlwZSwgdHlwZW5hbWUgVCZndDs8YnI+CgkJdm9pZCA8Yj5nZXRfdHJhcGV6b2lkczwvYj4ob3V0cHV0X2NvbnRhaW5lcl90eXBlJmFtcDsgb3V0cHV0LCA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKCQljb25zdCBUJmFtcDsgcG9seWdvbl9zZXQpPC9mb250PjwvdGQ+CgkJPHRkPk91dHB1dCBjb250YWluZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYSBzdGFuZGFyZCBjb250YWluZXIuJm5ic3A7IAoJCVNsaWNlcyBnZW9tZXRyeSBvZiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcG9seWdvbl80NV9zZXQgb3Igb25lIG9mIGl0cyAKCQlyZWZpbmVtZW50cyBpbnRvIG5vbiBvdmVybGFwcGluZyB0cmFwZXpvaWRzIGFsb25nIGEgdmVydGljYWwgc2xpY2luZyAKCQlvcmllbnRhdGlvbiBhbmQgYXBwZW5kcyB0aGVtIHRvIHRoZSAKCQlvdXRwdXQsIHdoaWNoIG11c3QgaGF2ZSBhIHZhbHVlIHR5cGUgdGhhdCBtb2RlbHMgcG9seWdvbl80NSwgCgkJcG9seWdvbl80NV93aXRoX2hvbGVzLCBwb2x5Z29uIG9yIHBvbHlnb25fd2l0aF9ob2xlcy4mbmJzcDsmbmJzcDsgTyggbiAKCQlsb2cgbikgcnVudGltZSBjb21wbGV4aXR5IGFuZCBPKG4pIG1lbW9yeSB3cnQgdmVydGljZXMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgCgkJb3V0cHV0X2NvbnRhaW5lcl90eXBlLCB0eXBlbmFtZSBUJmd0Ozxicj4KCQl2b2lkIDxiPmdldF90cmFwZXpvaWRzPC9iPihvdXRwdXRfY29udGFpbmVyX3R5cGUmYW1wOyBvdXRwdXQsIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IAoJCWNvbnN0IFQmYW1wOyBwb2x5Z29uX3NldCw8YnI+ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvcmllbnRhdGlvbl8yZCBvcmllbnQpPC9mb250PjwvdGQ+CgkJPHRkPk91dHB1dCBjb250YWluZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYSBzdGFuZGFyZCBjb250YWluZXIuJm5ic3A7IAoJCVNsaWNlcyBnZW9tZXRyeSBvZiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcG9seWdvbl80NV9zZXQgb3Igb25lIG9mIGl0cyAKCQlyZWZpbmVtZW50cyBpbnRvIG5vbiBvdmVybGFwcGluZyB0cmFwZXpvaWRzIGFsb25nIGEgdGhlIHNwZWNpZmllZCBzbGljaW5nIAoJCW9yaWVudGF0aW9uIGFuZCBhcHBlbmRzIHRoZW0gdG8gdGhlIAoJCW91dHB1dCwgd2hpY2ggbXVzdCBoYXZlIGEgdmFsdWUgdHlwZSB0aGF0IG1vZGVscyBwb2x5Z29uXzQ1LCAKCQlwb2x5Z29uXzQ1X3dpdGhfaG9sZXMsIHBvbHlnb24gb3IgcG9seWdvbl93aXRoX2hvbGVzLiZuYnNwOyZuYnNwOyBPKCBuIAoJCWxvZyBuKSBydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCB2ZXJ0aWNlcy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSAKCQlwb2x5Z29uX3NldF90eXBlJmd0Ozxicj4KCQl2b2lkIDxiPmNsZWFyPC9iPihwb2x5Z29uX3NldF90eXBlJmFtcDsgcG9seWdvbl9zZXQpPC9mb250PjwvdGQ+CgkJPHRkPk1ha2VzIHRoZSBvYmplY3QgZW1wdHkgb2YgZ2VvbWV0cnkuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgCgkJcG9seWdvbl9zZXRfdHlwZSZndDs8YnI+CgkJYm9vbCA8Yj5lbXB0eTwvYj4oY29uc3QgcG9seWdvbl9zZXRfdHlwZSZhbXA7IHBvbHlnb25fc2V0KTwvZm9udD48L3RkPgoJCTx0ZD5DaGVja3Mgd2hldGhlciB0aGUgb2JqZWN0IGlzIGVtcHR5IG9mIGdlb21ldHJ5LiZuYnNwOyBQb2x5Z29ucyB0aGF0IAoJCWFyZSBjb21wbGV0ZWx5IGNvdmVyZWQgYnkgaG9sZXMgd2lsbCByZXN1bHQgaW4gZW1wdHkgcmV0dXJuaW5nIHRydWUuJm5ic3A7Jm5ic3A7IAoJCU8oIG4gbG9nIG4pIHJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIAoJCXJlY3RhbmdsZV90eXBlJmd0Ozxicj4KCQlib29sIDxiPmV4dGVudHM8L2I+KHJlY3RhbmdsZV90eXBlJmFtcDsgZXh0ZW50c19yZWN0YW5nbGUsIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNvbnN0IAoJCVQmYW1wOyBwb2x5Z29uX3NldCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+Q29tcHV0ZXMgYm91bmRpbmcgYm94IG9mIGFuIG9iamVjdCB0aGF0IG1vZGVscyBwb2x5Z29uXzQ1X3NldCBhbmQgCgkJc3RvcmVzIGl0IGluIGFuIG9iamVjdCB0aGF0IG1vZGVscyByZWN0YW5nbGUuJm5ic3A7IElmIHRoZSBwb2x5Z29uIHNldCAKCQlpcyBlbXB0eSByZXR1cm5zIGZhbHNlLiZuYnNwOyBJZiB0aGVyZSBhcmUgaG9sZXMgb3V0c2lkZSBvZiBzaGVsbHMgdGhleSAKCQlkbyBub3QgY29udHJpYnV0ZSB0byB0aGUgZXh0ZW50cyBvZiB0aGUgcG9seWdvbiBzZXQuJm5ic3A7Jm5ic3A7IE8oIG4gCgkJbG9nIG4pIHJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCWFyZWFfdHlwZSA8Yj5hcmVhPC9iPihjb25zdCBUJmFtcDsgcG9seWdvbl9zZXQpPC9mb250PjwvdGQ+CgkJPHRkPkNvbXB1dGVzIHRoZSBhcmVhIGNvdmVyZWQgYnkgZ2VvbWV0cnkgaW4gYW4gb2JqZWN0IHRoYXQgbW9kZWxzIAoJCXBvbHlnb25fNDVfc2V0LiZuYnNwOyZuYnNwOyBPKCBuIGxvZyBuKSBydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgCgkJbWVtb3J5IHdydCB2ZXJ0aWNlcy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCVQxJmFtcDsgPGI+aW50ZXJhY3Q8L2I+KFQxJmFtcDsgYSwgY29uc3QgVDImYW1wOyBiKTwvZm9udD48L3RkPgoJCTx0ZD5HaXZlbiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcG9seWdvbl80NV9zZXQgYW5kIGFuIG9iamVjdCB0aGF0IG1vZGVscyAKCQlwb2x5Z29uXzQ1X3NldCBvciBvbmUgb2YgaXRzIHJlZmluZW1lbnRzLCBtb2RpZmllcyBhIHRvIHJldGFpbiBvbmx5IAoJCXJlZ2lvbnMgdGhhdCBvdmVybGFwIG9yIHRvdWNoIHJlZ2lvbnMgaW4gYi4mbmJzcDsmbmJzcDsgTyggbiBsb2cgbikgCgkJcnVudGltZSBjb21wbGV4aXR5IGFuZCBPKG4pIG1lbW9yeSB3cnQgdmVydGljZXMgcGx1cyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCVQmYW1wOyA8Yj5zZWxmX2ludGVyc2VjdDwvYj4oVCZhbXA7IHBvbHlnb25fc2V0KTwvZm9udD48L3RkPgoJCTx0ZD5HaXZlbiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcG9seWdvbl80NV9zZXQgdGhhdCBoYXMgc2VsZiBvdmVybGFwcGluZyAKCQlyZWdpb25zLCBtb2RpZmllcyB0aGUgYXJndW1lbnQgdG8gY29udGFpbiBvbmx5IHRoZSByZWdpb25zIG9mIG92ZXJsYXAuJm5ic3A7IAoJCU8oIG4gbG9nIG4pIHJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzICsgCgkJaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQlUJmFtcDsgPGI+c2VsZl94b3I8L2I+KFQmYW1wOyBwb2x5Z29uX3NldCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+R2l2ZW4gYW4gb2JqZWN0IHRoYXQgbW9kZWxzIHBvbHlnb25fNDVfc2V0IHRoYXQgaGFzIHNlbGYgb3ZlcmxhcHBpbmcgCgkJcmVnaW9ucywgbW9kaWZpZXMgdGhlIGFyZ3VtZW50IHRvIGNvbnRhaW4gb25seSB0aGUgcmVnaW9ucyB0aGF0IGRvIG5vdCAKCQlvdmVybGFwLiZuYnNwOyBPKCBuIGxvZyBuKSBydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCAKCQl2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJVCZhbXA7IDxiPmJsb2F0PC9iPihUJmFtcDsgcG9seWdvbl9zZXQsIHVuc2lnbmVkX2FyZWFfdHlwZSBibG9hdGluZyk8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2FtZSBhcyBnZXR0aW5nIGFsbCB0aGUgcG9seWdvbnMsIGJsb2F0aW5nIHRoZW0gYW5kIHB1dHRpbmcgdGhlbSAKCQliYWNrLiZuYnNwOyBPKCBuIGxvZyBuKSBydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCB2ZXJ0aWNlcyAKCQkrIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJVCZhbXA7IDxiPnNocmluazwvYj4oVCZhbXA7IHBvbHlnb25fc2V0LCB1bnNpZ25lZF9hcmVhX3R5cGUgc2hyaW5raW5nKTwvZm9udD48L3RkPgoJCTx0ZD5TYW1lIGFzIGdldHRpbmcgYWxsIHRoZSBwb2x5Z29ucywgc2hyaW5raW5nIHRoZW0gYW5kIG92ZXJ3cml0aW5nIAoJCXRoZSBwb2x5Z29uIHNldCB3aXRoIHRoZSByZXN1bHRpbmcgcmVnaW9ucy4mbmJzcDsgTyggbiBsb2cgbikgcnVudGltZSAKCQljb21wbGV4aXR5IGFuZCBPKG4pIG1lbW9yeSB3cnQgdmVydGljZXMgKyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIAoJCWNvb3JkX3R5cGUmZ3Q7PGJyPgoJCVQmYW1wOyA8Yj5yZXNpemU8L2I+KFQmYW1wOyBwb2x5Z29uX3NldCwgY29vcmRfdHlwZSByZXNpemluZyw8YnI+IAoJCSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKCQlSb3VuZGluZ09wdGlvbiByb3VuZGluZyA9IENMT1NFU1QsIDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgQ29ybmVyT3B0aW9uIGNvcm5lciA9IElOVEVSU0VDVElPTik8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2FtZSBhcyBibG9hdCBpZiByZXNpemluZyBpcyBwb3NpdGl2ZSwgc2FtZSBhcyBzaHJpbmsgaWYgcmVzaXppbmcgaXMgCgkJbmVnYXRpdmUuJm5ic3A7IFJvdW5kaW5nT3B0aW9uIGlzIGFuIGVudW0gdGhhdCBjb250cm9scyBzbmFwcGluZyBvZiAKCQlub24taW50ZWdlciByZXN1bHRzIG9mIHJlc2l6aW5nIDQ1IGRlZ3JlZSBlZGdlcy4mbmJzcDsgQ29ybmVyT3B0aW9uIGlzIAoJCWFuIGVudW0gdGhhdCBjb250cm9scyBob3cgY29ybmVyIGZpbGxpbmcgaXMgcGVyZm9ybWVkLiZuYnNwOyAKCQlwb2x5Z29uXzQ1X3NldF9kYXRhLmhwcCBkZWZpbmVzIHRoZXNlIGVudW1zLiZuYnNwOyBPKCBuIGxvZyBuKSBydW50aW1lIAoJCWNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCB2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+ClQmYW1wOyA8Yj5ncm93X2FuZDwvYj4oVCZhbXA7IHBvbHlnb25fc2V0LCB1bnNpZ25lZF9hcmVhX3R5cGUgYmxvYXRpbmcpPC9mb250PjwvdGQ+CgkJPHRkPlNhbWUgYXMgYmxvYXRpbmcgbm9uLW92ZXJsYXBwaW5nIHJlZ2lvbnMgYW5kIHRoZW4gYXBwbHlpbmcgc2VsZiAKCQlpbnRlcnNlY3QgdG8gcmV0YWluIG9ubHkgdGhlIG92ZXJsYXBzIGludHJvZHVjZWQgYnkgdGhlIGJsb2F0LiZuYnNwOyBPKCAKCQluIGxvZyBuKSBydW50aW1lIGNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCB2ZXJ0aWNlcyArIAoJCWludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+ClQmYW1wOyA8Yj5zY2FsZV91cDwvYj4oVCZhbXA7IHBvbHlnb25fc2V0LCB1bnNpZ25lZF9hcmVhX3R5cGUgZmFjdG9yKTwvZm9udD48L3RkPgoJCTx0ZD5TY2FsZXMgZ2VvbWV0cnkgdXAgYnkgdW5zaWduZWQgZmFjdG9yLiZuYnNwOyBPKCBuIGxvZyBuKSBydW50aW1lIAoJCWNvbXBsZXhpdHkgYW5kIE8obikgbWVtb3J5IHdydCB2ZXJ0aWNlcy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KVCZhbXA7IDxiPnNjYWxlX2Rvd248L2I+KFQmYW1wOyBwb2x5Z29uX3NldCwgdW5zaWduZWRfYXJlYV90eXBlIGZhY3Rvcik8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2NhbGVzIGdlb21ldHJ5IGRvd24gYnkgdW5zaWduZWQgZmFjdG9yLiZuYnNwOyBTbmFwcyA0NSBkZWdyZWUgZWRnZXMgCgkJYmFjayB0byA0NSBkZWdyZWVzIGFmdGVyIGRpdmlzaW9uIHRydW5jYXRpb24gbGVhZHMgdG8gc21hbGwgY2hhbmdlcyBpbiAKCQlhbmdsZS4mbmJzcDsgTyggbiBsb2cgbikgcnVudGltZSBjb21wbGV4aXR5IGFuZCBPKG4pIG1lbW9yeSB3cnQgCgkJdmVydGljZXMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCwgdHlwZW5hbWUgc2NhbGluZ190eXBlJmd0Ozxicj4KVCZhbXA7IDxiPnNjYWxlPC9iPihwb2x5Z29uX3NldF90eXBlJmFtcDsgcG9seWdvbl9zZXQsIGRvdWJsZSBzY2FsaW5nKTwvZm9udD48L3RkPgoJCTx0ZD5TY2FsZXMgZ2VvbWV0cnkgYnkgbXVsdGlwbHlpbmcgYnkgZmxvYXRpbmcgcG9pbnQgZmFjdG9yLiZuYnNwOyZuYnNwOyAKCQlTbmFwcyA0NSBkZWdyZWUgZWRnZXMgYmFjayB0byA0NSBkZWdyZWVzIGFmdGVyIHRydW5jYXRpb24gb2YgZnJhY3Rpb25hbCAKCQlyZXN1bHRzIG9mIG11bHRpcGx5IGxlYWRzIHRvIHNtYWxsIGNoYW5nZXMgaW4gYW5nbGUuJm5ic3A7IE8oIG4gbG9nIG4pIAoJCXJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIHRyYW5zZm9ybWF0aW9uX3R5cGUmZ3Q7PGJyPgpUJmFtcDsgPGI+dHJhbnNmb3JtPC9iPihUJmFtcDsgcG9seWdvbl9zZXQsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29uc3QgCnRyYW5zZm9ybWF0aW9uX3R5cGUmYW1wOyB0cmFuc2Zvcm1hdGlvbik8L2ZvbnQ+PC90ZD4KCQk8dGQ+QXBwbGllcyB0cmFuc2Zvcm1hdGlvbi50cmFuc2Zvcm0oKSBvbiBhbGwgdmVydGljZXMuJm5ic3A7IE8oIG4gbG9nIAoJCW4pIHJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IHZlcnRpY2VzLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgpUJmFtcDsgPGI+a2VlcDwvYj4oVCZhbXA7IHBvbHlnb25fc2V0LCA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1bnNpZ25lZF9hcmVhX3R5cGUgbWluX2FyZWEsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdW5zaWduZWRfYXJlYV90eXBlIG1heF9hcmVhLDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVuc2lnbmVkX2FyZWFfdHlwZSBtaW5fd2lkdGgsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdW5zaWduZWRfYXJlYV90eXBlIG1heF93aWR0aCw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1bnNpZ25lZF9hcmVhX3R5cGUgbWluX2hlaWdodCw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1bnNpZ25lZF9hcmVhX3R5cGUgbWF4X2hlaWdodCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0YWlucyBvbmx5IHJlZ2lvbnMgdGhhdCBzYXRpc2Z5IHRoZSBtaW4vbWF4IGNyaXRlcmlhIGluIHRoZSAKCQlhcmd1bWVudCBsaXN0LiZuYnNwOyBOb3RlOiB1c2VmdWwgZm9yIHZpc3VhbGl6YXRpb24gdG8gY3VsbCB0b28gc21hbGwgCgkJcG9seWdvbnMuJm5ic3A7IE8oIG4gbG9nIG4pIHJ1bnRpbWUgY29tcGxleGl0eSBhbmQgTyhuKSBtZW1vcnkgd3J0IAoJCXZlcnRpY2VzLjwvdGQ+Cgk8L3RyPgoJPC90YWJsZT4KCTxoMT5Qb2x5Z29uIDQ1IFNldCBEYXRhIE9iamVjdDwvaDE+Cgo8cD4gCjxwPlRoZSBwb2x5Z29uIDQ1IHNldCBkYXRhIHR5cGUgZW5jYXBzdWxhdGVzIHRoZSBpbnRlcm5hbCBkYXRhIGZvcm1hdCB0aGF0IApzZXJ2ZXMgYXMgdGhlIGlucHV0IHRvIHRoZSBzd2VlcC1saW5lIGFsZ29yaXRobSB0aGF0IGltcGxlbWVudHMgcG9seWdvbi1jbGlwcGluZyAKQm9vbGVhbiBvcGVyYXRpb25zLiZuYnNwOyBJdCBhbHNvIGludGVybmFsbHkga2VlcHMgdHJhY2sgb2Ygd2hldGhlciB0aGF0IGRhdGEgCmhhcyBiZWVuIHNvcnRlZCBvciBzY2FubmVkIGFuZCBtYWludGFpbnMgdGhlIGludmFyaWFudCB0aGF0IHdoZW4gaXRzIGZsYWdzIAppbmRpY2F0ZSB0aGF0IHRoZSBkYXRhIGlzIHNvcnRlZCBvciBzY2FubmVkIHRoZSBkYXRhIGhhcyBub3QgYmVlbiBjaGFuZ2VkIHRvIAp2aW9sYXRlIHRoYXQgYXNzdW1wdGlvbi4mbmJzcDsgVXNpbmcgdGhlIFBvbHlnb24gNDUgU2V0IERhdGEgdHlwZSBkaXJlY3RseSBjYW4gCmJlIG1vcmUgZWZmaWNpZW50IHRoYW4gdXNpbmcgbGlzdHMgYW5kIHZlY3RvcnMgb2YgcG9seWdvbnMgaW4gdGhlIGZ1bmN0aW9ucyAKYWJvdmUgYmVjYXVzZSBvZiB0aGUgaW52YXJpYW50cyBpdCBjYW4gZW5mb3JjZSB3aGljaCBwcm92aWRlIHRoZSBvcHBvcnR1bml0eSB0byAKbWFpbnRhaW4gdGhlIGRhdGEgaXMgc29ydGVkIGZvcm0gcmF0aGVyIHRoYW4gZ29pbmcgYWxsIHRoZSB3YXkgb3V0IHRvIHBvbHlnb25zIAp0aGVuIHJlc29ydGluZyB0aG9zZSB2ZXJ0aWNlcyBmb3IgYSBzdWJzZXF1ZW50IG9wZXJhdGlvbi48L3A+CjxwPlRoZSBkZWNsYXJhdGlvbiBvZiBQb2x5Z29uIDQ1IFNldCBEYXRhIGlzIHRoZSBmb2xsb3dpbmc6PC9wPgo8cD48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgpjbGFzcyBwb2x5Z29uXzQ1X3NldF9kYXRhOzwvZm9udD48L3A+CjxwPlRoZSBjbGFzcyBpcyBwYXJhbWV0ZXJpemVkIG9uIHRoZSBjb29yZGluYXRlIGRhdGEgdHlwZS4mbmJzcDsgQWxnb3JpdGhtcyB0aGF0IApiZW5lZml0IGZyb20ga25vd2xlZGdlIG9mIHRoZSBpbnZhcmlhbnRzIGVuZm9yY2VkIGJ5IHRoZSBjbGFzcyBhcmUgaW1wbGVtZW50ZWQgCmFzIG1lbWJlciBmdW5jdGlvbnMgdG8gcHJvdmlkZSB0aGVtIGFjY2VzcyB0byBpbmZvcm1hdGlvbiBhYm91dCB0aG9zZSAKaW52YXJpYW50cy4mbmJzcDsgPC9wPgo8aDI+TWVtYmVyIEZ1bmN0aW9uczwvaDI+Cjx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIiBpZD0idGFibGU0Ij4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPjxiPnBvbHlnb25fNDVfc2V0X2RhdGE8L2I+KCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+RGVmYXVsdCBjb25zdHJ1Y3Rvci4gPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgaVQmZ3Q7PGJyPgoJPGI+cG9seWdvbl80NV9zZXRfZGF0YTwvYj4oaVQgaW5wdXRfYmVnaW4sIGlUIAoJaW5wdXRfZW5kKTwvZm9udD48L3RkPgoJCTx0ZD5Db25zdHJ1Y3QgZnJvbSBhbiBpdGVyYXRvciByYW5nZSBvZiAKCQlpbnNlcnRhYmxlIG9iamVjdHMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KCTxiPnBvbHlnb25fNDVfc2V0X2RhdGE8L2I+KGNvbnN0IHBvbHlnb25fNDVfc2V0X2RhdGEmYW1wOyB0aGF0KTwvZm9udD48L3RkPgoJCTx0ZD5Db3B5IGNvbnN0cnVjdC48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+Cjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgbCwgdHlwZW5hbWUgciwgdHlwZW5hbWUgb3AmZ3Q7PGJyPgo8Yj5wb2x5Z29uXzQ1X3NldF9kYXRhPC9iPihjb25zdCBwb2x5Z29uXzQ1X3NldF92aWV3Jmx0O2wscixvcCZndDsmYW1wOyAKdCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+Q29weSBjb25zdHJ1Y3QgZnJvbSBhIEJvb2xlYW4gb3BlcmF0b3IgdGVtcGxhdGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPgo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+cG9seWdvbl80NV9zZXRfZGF0YSZhbXA7IDxicj48Yj5vcGVyYXRvcj08L2I+KGNvbnN0IHBvbHlnb25fNDVfc2V0X2RhdGEmYW1wOyB0aGF0KTwvZm9udD48L3RkPgoJCTx0ZD5Bc3NpZ25tZW50IGZyb20gYW5vdGhlciBwb2x5Z29uIHNldCwgbWF5IGNoYW5nZSBzY2FubmluZyAKCQlvcmllbnRhdGlvbi48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+Cjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgbCwgdHlwZW5hbWUgciwgdHlwZW5hbWUgb3AmZ3Q7PGJyPgpwb2x5Z29uXzQ1X3NldF9kYXRhJmFtcDsgPGJyPjxiPm9wZXJhdG9yPTwvYj4oY29uc3QgcG9seWdvbl80NV9zZXRfdmlldyZsdDtsLCByLCAKb3AmZ3Q7JmFtcDsgdGhhdCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+QXNzaWdubWVudCBmcm9tIGEgQm9vbGVhbiBvcGVyYXRvciB0ZW1wbGF0ZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBnZW9tZXRyeV9vYmplY3QmZ3Q7PGJyPgpwb2x5Z29uXzQ1X3NldF9kYXRhJmFtcDsgPGI+b3BlcmF0b3I9PC9iPihjb25zdCBnZW9tZXRyeV9vYmplY3QmYW1wOyBnZW8pPC9mb250PjwvdGQ+CgkJPHRkPkFzc2lnbm1lbnQgZnJvbSBhbiBpbnNlcnRhYmxlIG9iamVjdC48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+Cjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KdGVtcGxhdGUgJmx0O3R5cGVuYW1lIGlUJmd0Ozxicj4Kdm9pZCA8Yj5pbnNlcnQ8L2I+KGlUIGlucHV0X2JlZ2luLCBpVCBpbnB1dF9lbmQsIDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYm9vbCBpc19ob2xlID0gZmFsc2UpPC9mb250PjwvdGQ+CgkJPHRkPkluc2VydCBvYmplY3RzIG9mIGFuIGl0ZXJhdG9yIHJhbmdlLiZuYnNwOyBJZiBpc19ob2xlIGlzIHRydWUgCgkJaW5zZXJ0cyBzdWJ0cmFjdGl2ZSByZWdpb25zLiZuYnNwOyBMaW5lYXIgd3J0IHRoZSBudW1iZXIgb2YgdmVydGljZXMgCgkJYWRkZWQuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPgo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CnZvaWQgPGI+aW5zZXJ0PC9iPihjb25zdCBwb2x5Z29uXzQ1X3NldF9kYXRhJmFtcDsgcG9seWdvbl9zZXQsIDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYm9vbCBpc19ob2xlIAo9IGZhbHNlKTwvZm9udD48L3RkPgoJCTx0ZD5JbnNlcnQgYSBwb2x5Z29uIHNldC4mbmJzcDsgTGluZWFyIHdydCB0aGUgbnVtYmVyIG9mIHZlcnRpY2VzIGFkZGVkLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij4KPGZvbnQgZmFjZT0iQ291cmllciBOZXciPgp0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgZ2VvbWV0cnlfdHlwZSZndDs8YnI+CnZvaWQgPGI+aW5zZXJ0PC9iPihjb25zdCBnZW9tZXRyeV90eXBlJmFtcDsgZ2VvbWV0cnlfb2JqZWN0LCA8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJvb2wgaXNfaG9sZSAKPSBmYWxzZSk8L2ZvbnQ+PC90ZD4KCQk8dGQ+SW5zZXJ0IGEgZ2VvbWV0cnkgb2JqZWN0LCBpZiBpc19ob2xlIGlzIHRydWUgdGhlbiB0aGUgaW5zZXJ0ZWQgCgkJcmVnaW9uIGlzIHN1YnRyYWN0aXZlIHJhdGhlciB0aGFuIGFkZGl0aXZlLiZuYnNwOyBMaW5lYXIgd3J0IHRoZSBudW1iZXIgCgkJb2YgdmVydGljZXMgYWRkZWQuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KdGVtcGxhdGUgJmx0O3R5cGVuYW1lIG91dHB1dF9jb250YWluZXImZ3Q7PGJyPgp2b2lkIDxiPmdldDwvYj4ob3V0cHV0X2NvbnRhaW5lciZhbXA7IG91dHB1dCkgY29uc3Q8L2ZvbnQ+PC90ZD4KCQk8dGQ+RXhwZWN0cyBhIHN0YW5kYXJkIGNvbnRhaW5lciBvZiBnZW9tZXRyeSBvYmplY3RzLiZuYnNwOyBXaWxsIHNjYW4gCgkJYW5kIGVsaW1pbmF0ZSBvdmVybGFwcy4mbmJzcDsgQ29udmVydHMgcG9seWdvbiBzZXQgZ2VvbWV0cnkgdG8gb2JqZWN0cyAKCQlvZiB0aGF0IHR5cGUgYW5kIGFwcGVuZHMgdGhlbSB0byB0aGUgY29udGFpbmVyLiZuYnNwOyBQb2x5Z29ucyB3aWxsIGJlIAoJCW91dHB1dCB3aXRoIGNvdW50ZXJjbG9ja3dpc2Ugd2luZGluZywgaG9sZSBwb2x5Z29ucyB3aWxsIGJlIG91dHB1dCB3aXRoIAoJCWNsb2Nrd2lzZSB3aW5kaW5nLiZuYnNwOyBUaGUgbGFzdCB2ZXJ0ZXggb2YgYW4gb3V0cHV0IHBvbHlnb24gaXMgbm90IHRoZSAKCQlkdXBsaWNhdGUgb2YgdGhlIGZpcnN0LCBhbmQgdGhlIG51bWJlciBvZiBwb2ludHMgaXMgZXF1YWwgdG8gdGhlIG51bWJlciAKCQlvZiBlZGdlcy4mbmJzcDsgTyhuIGxvZyBuKSBydW50aW1lIGFuZCBPKG4pIG1lbW9yeSB3cnQuIHZlcnRpY2VzICsgCgkJaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPgp0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgb3V0cHV0X2NvbnRhaW5lciZndDs8YnI+CnZvaWQgPGI+Z2V0X3BvbHlnb25zPC9iPihvdXRwdXRfY29udGFpbmVyJmFtcDsgb3V0cHV0KSBjb25zdDwvZm9udD48L3RkPgoJCTx0ZD5FeHBlY3RzIGEgc3RhbmRhcmQgY29udGFpbmVyIG9mIHBvbHlnb24gb2JqZWN0cy4mbmJzcDsgV2lsbCBzY2FuIGFuZCAKCQllbGltaW5hdGUgb3ZlcmxhcHMuJm5ic3A7IENvbnZlcnRzIHBvbHlnb24gc2V0IGdlb21ldHJ5IHRvIHBvbHlnb25zIGFuZCAKCQlhcHBlbmRzIHRoZW0gdG8gdGhlIGNvbnRhaW5lci4mbmJzcDsgUG9seWdvbnMgd2lsbCBoYXZlIGhvbGVzIGZyYWN0dXJlZCAKCQlvdXQgdG8gdGhlIG91dGVyIGJvdW5kYXJ5IGFsb25nIHRoZSBwb3NpdGl2ZSB5IGRpcmVjdGlvbi4mbmJzcDsgTyhuIGxvZyAKCQluKSBydW50aW1lIGFuZCBPKG4pIG1lbW9yeSB3cnQuIHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPgp0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgb3V0cHV0X2NvbnRhaW5lciZndDs8YnI+CnZvaWQgPGI+Z2V0X3BvbHlnb25zX3dpdGhfaG9sZXM8L2I+KG91dHB1dF9jb250YWluZXImYW1wOyBvKSBjb25zdDwvZm9udD48L3RkPgoJCTx0ZD5FeHBlY3RzIGEgc3RhbmRhcmQgY29udGFpbmVyIG9mIHBvbHlnb24gd2l0aCBob2xlcyBvYmplY3RzLiZuYnNwOyBXaWxsIHNjYW4gYW5kIAoJCWVsaW1pbmF0ZSBvdmVybGFwcy4mbmJzcDsgQ29udmVydHMgcG9seWdvbiBzZXQgZ2VvbWV0cnkgdG8gcG9seWdvbnMgYW5kIAoJCWFwcGVuZHMgdGhlbSB0byB0aGUgY29udGFpbmVyLiZuYnNwOyBPKG4gbG9nIG4pIHJ1bnRpbWUgYW5kIE8obikgbWVtb3J5IAoJCXdydC4gdmVydGljZXMgKyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CnRlbXBsYXRlICZsdDt0eXBlbmFtZSBvdXRwdXRfY29udGFpbmVyJmd0Ozxicj4Kdm9pZCA8Yj5nZXRfdHJhcGV6b2lkczwvYj4ob3V0cHV0X2NvbnRhaW5lciZhbXA7IG91dHB1dCkgY29uc3Q8L2ZvbnQ+PC90ZD4KCQk8dGQ+RXhwZWN0cyBhIHN0YW5kYXJkIGNvbnRhaW5lciBvZiBwb2x5Z29uIG9iamVjdHMuJm5ic3A7IFdpbGwgc2NhbiAKCQlhbmQgZWxpbWluYXRlIG92ZXJsYXBzLiZuYnNwOyBTbGljZXMgcG9seWdvbiBzZXQgZ2VvbWV0cnkgdG8gdHJhcGV6b2lkcyAKCQl2ZXJ0aWNhbGx5IGFuZCBhcHBlbmRzIHRoZW0gdG8gdGhlIGNvbnRhaW5lci4mbmJzcDsgTyhuIGxvZyBuKSBydW50aW1lIAoJCWFuZCBPKG4pIG1lbW9yeSB3cnQuIHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+Cjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KdGVtcGxhdGUgJmx0O3R5cGVuYW1lIG91dHB1dF9jb250YWluZXImZ3Q7PGJyPgp2b2lkIDxiPmdldF90cmFwZXpvaWRzPC9iPihvdXRwdXRfY29udGFpbmVyJmFtcDsgb3V0cHV0LCA8YnI+Jm5ic3A7IG9yaWVudGF0aW9uXzJkIApzbGljaW5nX29yaWVudGF0aW9uKSBjb25zdCA8L2ZvbnQ+CgkJPC90ZD4KCQk8dGQ+RXhwZWN0cyBhIHN0YW5kYXJkIGNvbnRhaW5lciBvZiBwb2x5Z29uIG9iamVjdHMuJm5ic3A7IFdpbGwgc2NhbiAKCQlhbmQgZWxpbWluYXRlIG92ZXJsYXBzLiZuYnNwOyBTbGljZXMgcG9seWdvbiBzZXQgZ2VvbWV0cnkgdG8gdHJhcGV6b2lkcyAKCQlhbG9uZyB0aGUgZ2l2ZW4gb3JpZW50YXRpb24gYW5kIGFwcGVuZHMgdGhlbSB0byB0aGUgY29udGFpbmVyLiZuYnNwOyBPKG4gCgkJbG9nIG4pIHJ1bnRpbWUgYW5kIE8obikgbWVtb3J5IHdydC4gdmVydGljZXMgKyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij4KPGZvbnQgZmFjZT0iQ291cmllciBOZXciPgpib29sIDxiPm9wZXJhdG9yPT08L2I+KGNvbnN0IHBvbHlnb25fNDVfc2V0X2RhdGEmYW1wOyBwKSBjb25zdDwvZm9udD48L3RkPgoJCTx0ZD5PbmNlIHNjYW5uZWQgdGhlIGRhdGEgcmVwcmVzZW50YXRpb24gb2YgZ2VvbWV0cnkgd2l0aGluIGEgcG9seWdvbiAKCQlzZXQgaXMgaW4gYSBtYXRoZW1hdGljYWxseSBjYW5vbmljYWwgZm9ybS4mbmJzcDsgQ29tcGFyaXNvbiBiZXR3ZWVuIHR3byAKCQlzZXRzIGlzIHRoZXJlZm9yZSBhIGxpbmVhciB0aW1lIG9wZXJhdGlvbiBvbmNlIHRoZXkgYXJlIGluIHRoZSBzY2FubmVkIAoJCXN0YXRlLiBXaWxsIHNjYW4gYW5kIGVsaW1pbmF0ZSBvdmVybGFwcyBpbiBib3RoIHBvbHlnb24gc2V0cy4mbmJzcDsgTyhuIAoJCWxvZyBuKSBydW50aW1lIGFuZCBPKG4pIG1lbW9yeSB3cnQuIHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucyB0aGUgZmlyc3QgCgkJdGltZSBhbmQgbGluZWFyIHJ1bnRpbWUgYW5kIGNvbnN0YW50IG1lbW9yeSBzdWJzZXF1ZW50bHkuJm5ic3A7IDwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CmJvb2wgPGI+b3BlcmF0b3IhPTwvYj4oY29uc3QgcG9seWdvbl80NV9zZXRfZGF0YSZhbXA7IHApIGNvbnN0PC9mb250PjwvdGQ+CgkJPHRkPkludmVyc2UgbG9naWMgb2YgZXF1aXZhbGVuY2Ugb3BlcmF0b3IuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij52b2lkIDxiPmNsZWFyPC9iPigpPC9mb250PjwvdGQ+CgkJPHRkPk1ha2UgdGhlIHBvbHlnb24gc2V0IGVtcHR5LiZuYnNwOyBOb3RlOiBkb2VzIG5vdCBkZS1hbGxvY2F0ZSBtZW1vcnkuJm5ic3A7IAoJCVVzZSBzaHJpbmsgdG8gZml0IGlkaW9tIGFuZCBhc3NpZ24gZGVmYXVsdCBjb25zdHJ1Y3RlZCBwb2x5Z29uIHNldCB0byAKCQlkZS1hbGxvY2F0ZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPmJvb2wgPGI+ZW1wdHk8L2I+KCkgY29uc3QgPC9mb250PgoJCTwvdGQ+CgkJPHRkPkNoZWNrIHdoZXRoZXIgdGhlIHBvbHlnb24gc2V0IGNvbnRhaW5zIG5vIGdlb21ldHJ5LiZuYnNwOyBXaWxsIHNjYW4gCgkJYW5kIGVsaW1pbmF0ZSBvdmVybGFwcyBiZWNhdXNlIHN1YnRyYWN0aXZlIHJlZ2lvbnMgbWlnaHQgbWFrZSB0aGUgCgkJcG9seWdvbiBzZXQgZW1wdHkuJm5ic3A7IE8obiBsb2cgbikgcnVudGltZSBhbmQgTyhuKSBtZW1vcnkgd3J0LiAKCQl2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMgdGhlIGZpcnN0IHRpbWUgYW5kIGxpbmVhciBydW50aW1lIGFuZCBjb25zdGFudCAKCQltZW1vcnkgc3Vic2VxdWVudGx5LiZuYnNwOyA8L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPmJvb2wgPGI+aXNfbWFuaGF0dGFuPC9iPigpIAoJCWNvbnN0PC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgaW4gY29uc3RhbnQgdGltZSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciB0aGUgZ2VvbWV0cnkgCgkJY29udGFpbnMgb25seSBNYW5oYXR0YW4gKGF4aXMtcGFyYWxsZWwgcmVjdGlsaW5lYXIpIGVkZ2VzLiZuYnNwOyAKCQlDb25zdGFudCB0aW1lLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dm9pZCA8Yj5jbGVhbjwvYj4oKSBjb25zdDwvZm9udD48L3RkPgoJCTx0ZD5TY2FuIGFuZCBlbGltaW5hdGUgb3ZlcmxhcHMuJm5ic3A7IE8obiBsb2cgbikgcnVudGltZSBhbmQgTyhuKSAKCQltZW1vcnkgd3J0LiB2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMgdGhlIGZpcnN0IHRpbWUgYW5kIGxpbmVhciBydW50aW1lIAoJCWFuZCBjb25zdGFudCBtZW1vcnkgc3Vic2VxdWVudGx5LiZuYnNwOyA8L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPgp0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgaW5wdXRfaXRlcmF0b3JfdHlwZSZndDs8YnI+CnZvaWQgPGI+c2V0PC9iPihpbnB1dF9pdGVyYXRvcl90eXBlIGlucHV0X2JlZ2luLCA8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlucHV0X2l0ZXJhdG9yX3R5cGUgaW5wdXRfZW5kKSA8L2ZvbnQ+CgkJPC90ZD4KCQk8dGQ+T3ZlcndyaXRlIGdlb21ldHJ5IGluIHBvbHlnb24gc2V0IHdpdGggaW5zZXJ0YWJsZSBvYmplY3RzIGluIHRoZSAKCQlpdGVyYXRvciByYW5nZS4mbmJzcDsgPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KdGVtcGxhdGUgJmx0O3R5cGVuYW1lIHJlY3RhbmdsZV90eXBlJmd0Ozxicj4KYm9vbCA8Yj5leHRlbnRzPC9iPihyZWN0YW5nbGVfdHlwZSZhbXA7IGV4dGVudHNfcmVjdGFuZ2xlKSBjb25zdDwvZm9udD48L3RkPgoJCTx0ZD5HaXZlbiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlLCBzY2FucyBhbmQgZWxpbWluYXRlcyBvdmVybGFwcyAKCQlpbiB0aGUgcG9seWdvbiBzZXQgYmVjYXVzZSBzdWJ0cmFjdGl2ZSByZWdpb25zIG1heSBhbHRlciBpdHMgZXh0ZW50cyAKCQl0aGVuIGNvbXB1dGVzIHRoZSBib3VuZGluZyBib3ggYW5kIGFzc2lnbnMgaXQgdG8gZXh0ZW50c19yZWN0YW5nbGUuJm5ic3A7IAoJCU8obiBsb2cgbikgcnVudGltZSBhbmQgTyhuKSBtZW1vcnkgd3J0LiB2ZXJ0aWNlcyB0aGUgZmlyc3QgdGltZSBhbmQgCgkJbGluZWFyIHJ1bnRpbWUgYW5kIGNvbnN0YW50IG1lbW9yeSBzdWJzZXF1ZW50bHkuJm5ic3A7IDwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CnBvbHlnb25fNDVfc2V0X2RhdGEmYW1wOzxicj4KPGI+cmVzaXplPC9iPihjb29yZF90eXBlIHJlc2l6aW5nLDxicj4gCgkJJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFJvdW5kaW5nT3B0aW9uIHJvdW5kaW5nID0gQ0xPU0VTVCwgPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBDb3JuZXJPcHRpb24gCgkJY29ybmVyID0gSU5URVJTRUNUSU9OKTwvZm9udD48L3RkPgoJCTx0ZD5TYW1lIGFzIGJsb2F0IGlmIHJlc2l6aW5nIGlzIHBvc2l0aXZlLCBzYW1lIGFzIHNocmluayBpZiByZXNpemluZyBpcyAKCQluZWdhdGl2ZS4mbmJzcDsgUm91bmRpbmdPcHRpb24gaXMgYW4gZW51bSB0aGF0IGNvbnRyb2xzIHNuYXBwaW5nIG9mIAoJCW5vbi1pbnRlZ2VyIHJlc3VsdHMgb2YgcmVzaXppbmcgNDUgZGVncmVlIGVkZ2VzLiZuYnNwOyBDb3JuZXJPcHRpb24gaXMgCgkJYW4gZW51bSB0aGF0IGNvbnRyb2xzIGhvdyBjb3JuZXIgZmlsbGluZyBpcyBwZXJmb3JtZWQuJm5ic3A7IAoJCXBvbHlnb25fNDVfc2V0X2RhdGEuaHBwIGRlZmluZXMgdGhlc2UgZW51bXMuJm5ic3A7IE8obiBsb2cgbikgcnVudGltZSAKCQlhbmQgTyhuKSBtZW1vcnkgd3J0LiB2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KdGVtcGxhdGUgJmx0O3R5cGVuYW1lIHRyYW5zZm9ybWF0aW9uX3R5cGUmZ3Q7PGJyPgpwb2x5Z29uXzQ1X3NldF9kYXRhJmFtcDsgPGJyPjxiPnRyYW5zZm9ybTwvYj4oY29uc3QgdHJhbnNmb3JtYXRpb25fdHlwZSZhbXA7IHRyYW5zZm9ybWF0aW9uKSA8L2ZvbnQ+CgkJPC90ZD4KCQk8dGQ+QXBwbGllcyB0cmFuc2Zvcm1hdGlvbi50cmFuc2Zvcm0oKSBvbiB2ZXJ0aWNlcyBzdG9yZWQgd2l0aGluIHRoZSAKCQlwb2x5Z29uIHNldC4mbmJzcDsgTyhuIGxvZyBuKSBydW50aW1lIGFuZCBPKG4pIG1lbW9yeSB3cnQuIHZlcnRpY2VzICsgCgkJaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPgpwb2x5Z29uXzQ1X3NldF9kYXRhJmFtcDsgPGI+c2NhbGVfdXA8L2I+KHVuc2lnbmVkX2FyZWFfdHlwZSBmYWN0b3IpPC9mb250PjwvdGQ+CgkJPHRkPlNjYWxlcyB2ZXJ0aWNlcyBzdG9yZWQgd2l0aGluIHRoZSBwb2x5Z29uIHNldCB1cCBieSBmYWN0b3IuJm5ic3A7IAoJCUxpbmVhciB3cnQgdmVydGljZXMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPgo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+cG9seWdvbl80NV9zZXRfZGF0YSZhbXA7IDxiPnNjYWxlX2Rvd248L2I+KHVuc2lnbmVkX2FyZWFfdHlwZSAKZmFjdG9yKTwvZm9udD4mbmJzcDs8L3RkPgoJCTx0ZD5TY2FsZXMgdmVydGljZXMgc3RvcmVkIHdpdGhpbiB0aGUgcG9seWdvbiBzZXQgZG93biBieSBmYWN0b3IuJm5ic3A7IAoJCUxpbmVhciB3cnQgdmVydGljZXMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij5wb2x5Z29uXzQ1X3NldF9kYXRhJmFtcDsgPGI+c2NhbGU8L2I+KGRvdWJsZSBmYWN0b3IpIDwvZm9udD48L3RkPgoJCTx0ZD5TY2FsZXMgdmVydGljZXMgc3RvcmVkIHdpdGhpbiB0aGUgcG9seWdvbiBzZXQgYnkgZmxvYXRpbmcgcG9pbnQgCgkJZmFjdG9yLiZuYnNwOyBMaW5lYXIgd3J0IHZlcnRpY2VzLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+cG9seWdvbl80NV9zZXRfZGF0YSZhbXA7IDxiPnNlbGZfeG9yPC9iPigpPC9mb250PjwvdGQ+CgkJPHRkPlJldGFpbiBvbmx5IG5vbi1vdmVybGFwcGluZyByZWdpb25zIG9mIGdlb21ldHJ5IHdpdGhpbiBwb2x5Z29uIHNldC4mbmJzcDsgCgkJTyhuIGxvZyBuKSBydW50aW1lIGFuZCBPKG4pIG1lbW9yeSB3cnQuIHZlcnRpY2VzICsgaW50ZXJzZWN0aW9ucy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnBvbHlnb25fNDVfc2V0X2RhdGEmYW1wOyA8Yj5zZWxmX2ludGVyc2VjdDwvYj4oKTwvZm9udD48L3RkPgoJCTx0ZD5SZXRhaW4gb25seSBvdmVybGFwcGluZyByZWdpb25zIG9mIGdlb21ldHJ5IHdpdGhpbiBhIHBvbHlnb24gc2V0LiZuYnNwOyAKCQlPKG4gbG9nIG4pIHJ1bnRpbWUgYW5kIE8obikgbWVtb3J5IHdydC4gdmVydGljZXMgKyBpbnRlcnNlY3Rpb25zLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+Ym9vbCA8Yj5oYXNfZXJyb3JfZGF0YTwvYj4oKSAKCQljb25zdCA8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0cnVlIGlmIG5vbi1pbnRlZ2VyIGludGVyc2VjdGlvbnMgcmVzdWx0ZWQgaW4gc21hbGwgCgkJYXJ0aWZhY3RzIGluIHRoZSBvdXRwdXQgb2YgYSBib29sZWFuLiZuYnNwOyBDb25zdGFudCB0aW1lLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+c3RkOjpzaXplX3QgPGI+ZXJyb3JfY291bnQ8L2I+KCkgCgkJY29uc3Q8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0aGUgbnVtYmVyIG9mIGFydGlmYWN0cyB0aGF0IG1heSBwb3RlbnRpYWxseSBiZSBwcmVzZW50IGluIAoJCXRoZSBvdXRwdXQgZHVlIHRvIG5vbi1pbnRlZ2VyIGludGVyc2VjdGlvbnMuJm5ic3A7IENvbnN0YW50IHRpbWUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij52b2lkIDxiPmdldF9lcnJvcl9kYXRhPC9iPihwb2x5Z29uXzQ1X3NldF9kYXRhJmFtcDsgCgkJcCkgY29uc3Q8L2ZvbnQ+PC90ZD4KCQk8dGQ+UG9wdWxhdGVzIHRoZSBpbnB1dCBwb2x5Z29uIHNldCB3aXRoIDF4MSB1bml0IHNxdWFyZXMgdGhhdCBib3VuZCB0aGUgCgkJZXJyb3IgdGhhdCBtYXkgYmUgcHJlc2VudCBpbiB0aGUgb3V0cHV0IGR1ZSB0byBub24taW50ZWdlciAKCQlpbnRlcnNlY3Rpb25zLiZuYnNwOyBMaW5lYXIgd3J0LiB2ZXJ0aWNlcyBvZiBlcnJvciBkYXRhLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+cG9seWdvbl80NV9zZXRfZGF0YSZhbXA7IDxiPnNlbGZfaW50ZXJzZWN0PC9iPigpPC9mb250PjwvdGQ+CgkJPHRkPlJldGFpbiBvbmx5IG92ZXJsYXBwaW5nIHJlZ2lvbnMgb2YgZ2VvbWV0cnkgd2l0aGluIGEgcG9seWdvbiBzZXQuJm5ic3A7IAoJCU8obiBsb2cgbikgcnVudGltZSBhbmQgTyhuKSBtZW1vcnkgd3J0LiB2ZXJ0aWNlcyArIGludGVyc2VjdGlvbnMuPC90ZD4KCTwvdHI+Cgk8L3RhYmxlPgoJPHRyPgo8dGQgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsIDIzOCwgMjM4KTsiIG5vd3JhcD0iMSIgdmFsaWduPSJ0b3AiPgogICAgJm5ic3A7PC90ZD4KPHRkIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IHBhZGRpbmctYm90dG9tOiAxMHB4OyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxMDAlIj4KCgo8dGFibGUgY2xhc3M9ImRvY2luZm8iIHJ1bGVzPSJub25lIiBmcmFtZT0idm9pZCIgaWQ9InRhYmxlNiI+Cgk8Y29sZ3JvdXA+CgkJPGNvbCBjbGFzcz0iZG9jaW5mby1uYW1lIj48Y29sIGNsYXNzPSJkb2NpbmZvLWNvbnRlbnQiPgoJPC9jb2xncm91cD4KCTx0Ym9keSB2QWxpZ249InRvcCI+CgkJPHRyPgoJCQk8dGggY2xhc3M9ImRvY2luZm8tbmFtZSI+Q29weXJpZ2h0OjwvdGg+CgkJCTx0ZD5Db3B5cmlnaHQgqSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDA4LTIwMTAuPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZmllbGQiPgoJCQk8dGggY2xhc3M9ImRvY2luZm8tbmFtZSI+TGljZW5zZTo8L3RoPgoJCQk8dGQgY2xhc3M9ImZpZWxkLWJvZHkiPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKCQkJVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgPHR0IGNsYXNzPSJsaXRlcmFsIj4KCQkJPHNwYW4gY2xhc3M9InByZSI+TElDRU5TRV8xXzAudHh0PC9zcGFuPjwvdHQ+IG9yIGNvcHkgYXQKCQkJPGEgY2xhc3M9InJlZmVyZW5jZSIgdGFyZ2V0PSJfdG9wIiBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPgoJCQlodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvdGQ+CgkJPC90cj4KPC90YWJsZT4KCjwvaHRtbD4=