PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiIgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6KG51bGwpMT0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+PCEtLQogICAgQ29weXJpZ2h0IDIwMDktMjAxMCBJbnRlbCBDb3Jwb3JhdGlvbgogICAgbGljZW5zZSBiYW5uZXIKLS0+Cjx0aXRsZT5Cb29zdCBQb2x5Z29uIExpYnJhcnk6IFBvbHlnb24gV2l0aCBIb2xlcyBDb25jZXB0PC90aXRsZT4KICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9SVNPLTg4NTktMSI+Cjx0YWJsZSBzdHlsZT0ibWFyZ2luOiAwcHQ7IHBhZGRpbmc6IDBwdDsgd2lkdGg6IDEwMCU7IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+PHRib2R5Pjx0cj4KPHRkIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM4LCAyMzgsIDIzOCk7IiBub3dyYXA9IjEiIHZhbGlnbj0idG9wIj4KICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDVweDsiIGFsaWduPSJjZW50ZXIiPgogICAgICAgIDxpbWcgYm9yZGVyPSIwIiBzcmM9ImltYWdlcy9ib29zdC5wbmciIHdpZHRoPSIyNzciIGhlaWdodD0iODYiPjxhIHRpdGxlPSJ3d3cuYm9vc3Qub3JnIGhvbWUgcGFnZSIgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvIiB0YWJpbmRleD0iMiIgc3R5bGU9ImJvcmRlcjogbWVkaXVtIG5vbmUgOyI+CiAgICAgICAgICAgIDwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBzdHlsZT0ibWFyZ2luOiA1cHg7Ij4KICAgICAgICA8aDMgY2xhc3M9Im5hdmJhciI+Q29udGVudHM8L2gzPgogICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4Lmh0bSI+Qm9vc3QuUG9seWdvbiBNYWluIFBhZ2U8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imd0bF9kZXNpZ25fb3ZlcnZpZXcuaHRtIj5EZXNpZ24gT3ZlcnZpZXc8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imd0bF9pc290cm9weS5odG0iPklzb3Ryb3B5PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJndGxfY29vcmRpbmF0ZV9jb25jZXB0Lmh0bSI+Q29vcmRpbmF0ZSBDb25jZXB0PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJndGxfaW50ZXJ2YWxfY29uY2VwdC5odG0iPkludGVydmFsIENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2ludF9jb25jZXB0Lmh0bSI+UG9pbnQgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3JlY3RhbmdsZV9jb25jZXB0Lmh0bSI+UmVjdGFuZ2xlIENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uXzkwX2NvbmNlcHQuaHRtIj5Qb2x5Z29uIDkwIENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uXzkwX3dpdGhfaG9sZXNfY29uY2VwdC5odG0iPlBvbHlnb24gOTAgV2l0aCBIb2xlcyBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl80NV9jb25jZXB0Lmh0bSI+UG9seWdvbiA0NSBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl80NV93aXRoX2hvbGVzX2NvbmNlcHQuaHRtIj5Qb2x5Z29uIDQ1IFdpdGggSG9sZXMgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fY29uY2VwdC5odG0iPlBvbHlnb24gQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+UG9seWdvbiBXaXRoIEhvbGVzIENvbmNlcHQ8L2xpPgoJCQk8bGk+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+PGgxPlBvbHlnb24gV2l0aCBIb2xlcyBDb25jZXB0PC9oMT4KCjxwPiAKPHA+VGhlIHBvbHlnb25fd2l0aF9ob2xlcyBjb25jZXB0IHRhZyBpcyA8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CnBvbHlnb25fd2l0aF9ob2xlc19jb25jZXB0PC9mb250PjwvcD4KPHA+IApUbyByZWdpc3RlciBhIHVzZXIgZGVmaW5lZCB0eXBlIGFzIGEgbW9kZWwgb2YgIAo8Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPnBvbHlnb25fd2l0aF9ob2xlcyA8L2ZvbnQ+Y29uY2VwdCwgc3BlY2lhbGl6ZSB0aGUgCmdlb21ldHJ5IGNvbmNlcHQgbWV0YS1mdW5jdGlvbiBmb3IgdGhhdCB0eXBlLiZuYnNwOyBJbiB0aGUgZXhhbXBsZSBiZWxvdyAKQ1BvbHlnb25XaXRoSG9sZXMgaXMgcmVnaXN0ZXJlZCBhcyBhIG1vZGVsIG9mIHBvbHlnb248Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPl93aXRoX2hvbGVzJm5ic3A7PC9mb250PiBjb25jZXB0LjxwPiAKPGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDsmZ3Q7PGJyPgpzdHJ1Y3QgZ2VvbWV0cnlfY29uY2VwdCZsdDtDUG9seWdvbldpdGhIb2xlcyZndDsgeyB0eXBlZGVmIHBvbHlnb25fd2l0aF9ob2xlc19jb25jZXB0IHR5cGU7IH07PC9mb250PjxwPiAKPGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj5UaGUgc2VtYW50aWMgb2YgYSBwb2x5Z29uX3dpdGhfaG9sZXMgaXMgYSBwb2x5Z29uIAp0aGF0IGl0IGNhbiBwcm92aWRlIGl0ZXJhdG9ycyBvdmVyIGhvbGVzIHRoYXQgYXJlIGFsc28gcG9seWdvbi4mbmJzcDsgQSBtdXRhYmxlIApwb2x5Z29uX3dpdGhfaG9sZXMgbXVzdCBhbHNvIGJlIGFibGUgdG8gc2V0IGl0cyBnZW9tZXRyeSBiYXNlZCBvbiBhbiBpbnRlcmF0b3IgCnJhbmdlIG92ZXIgcG9seWdvbiBob2xlcy4mbmJzcDsgVGhlcmUgaXMgbm8gY29udmVudGlvbiBvZiB3aW5kaW5nIG9mIGhvbGVzIAplbmZvcmNlZCB3aXRoaW4gdGhlIGxpYnJhcnkuIDwvZm9udD48cD4gCjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+QmVsb3cgaXMgc2hvd24gdGhlIGRlZmF1bHQgcG9seWdvbiB3aXRoIGhvbGVzIAp0cmFpdHMuJm5ic3A7IFNwZWNpYWxpemF0aW9uIG9mIHRoZXNlIHRyYWl0cyBpcyByZXF1aXJlZCBmb3IgdHlwZXMgdGhhdCBkb24ndCAKY29uZm9ybSB0byB0aGUgZGVmYXVsdCBiZWhhdmlvci4mbmJzcDsgTm90ZSwgdGhlc2UgdHJhaXRzIGFyZSB1c2VkIGJ5IGFsbCAKcG9seWdvbiB3aXRoIGhvbGVzIGNvbmNlcHRzLjwvZm9udD48cD48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIApULCB0eXBlbmFtZSBlbmFibGUgPSB2b2lkJmd0Ozxicj4Kc3RydWN0IHBvbHlnb25fd2l0aF9ob2xlc190cmFpdHMgezxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHR5cGVkZWYgdHlwZW5hbWUgVDo6aXRlcmF0b3JfaG9sZXNfdHlwZSAKaXRlcmF0b3JfaG9sZXNfdHlwZTs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0eXBlZGVmIHR5cGVuYW1lIFQ6OmhvbGVfdHlwZSBob2xlX3R5cGU7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RhdGljIGlubGluZSBpdGVyYXRvcl9ob2xlc190eXBlIGJlZ2luX2hvbGVzKGNvbnN0IFQmYW1wOyAKdCkgezxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiB0LmJlZ2luX2hvbGVzKCk7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0YXRpYyBpbmxpbmUgaXRlcmF0b3JfaG9sZXNfdHlwZSBlbmRfaG9sZXMoY29uc3QgVCZhbXA7IHQpIAp7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIHQuZW5kX2hvbGVzKCk7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHNpemVfaG9sZXMoY29uc3QgVCZhbXA7IHQpIHs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gdC5zaXplX2hvbGVzKCk7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTxicj4KfTs8L2ZvbnQ+PC9wPgo8cD48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIGVuYWJsZSA9IHZvaWQmZ3Q7PGJyPgpzdHJ1Y3QgcG9seWdvbl93aXRoX2hvbGVzX211dGFibGVfdHJhaXRzIHs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgaVQmZ3Q7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RhdGljIGlubGluZSBUJmFtcDsgc2V0X2hvbGVzKFQmYW1wOyB0LCBpVCBpbnB1dEJlZ2luLCBpVCAKaW5wdXRFbmQpIHs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0LnNldF9ob2xlcyhpbnB1dEJlZ2luLCAKaW5wdXRFbmQpOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiB0Ozxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+Cn07PC9mb250PjwvcD4KPHA+QW4gb2JqZWN0IHRoYXQgaXMgYSBtb2RlbCBvZiA8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CnBvbHlnb25fd2l0aF9ob2xlc19jb25jZXB0PC9mb250PiBjYW4gYmUgdmlld2VkIGFzIGEgbW9kZWwgb2YgYW55IG9mIGl0cyAKcmVmaW5lbWVudHMgaWYgaXQgaXMgZGV0ZXJtaW5lZCBhdCBydW50aW1lIHRvIGNvbmZvcm0gdG8gdGhlIHJlc3RyaWN0aW9uIG9mIAp0aG9zZSBjb25jZXB0cy4mbmJzcDsgVGhpcyBjb25jZXB0IGNhc3RpbmcgaXMgYWNjb21wbGlzaGVkIHRocm91Z2ggdGhlCjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij52aWV3X2FzJmx0OyZndDsoKTwvZm9udD4gZnVuY3Rpb24uPC9wPgo8cD48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dmlld19hcyZsdDtyZWN0YW5nbGVfY29uY2VwdCZndDsocG9seWdvbl93aXRoX2hvbGVzX29iamVjdCk8L2ZvbnQ+PGJyPgo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dmlld19hcyZsdDtwb2x5Z29uXzkwX2NvbmNlcHQmZ3Q7KHBvbHlnb25fd2l0aF9ob2xlc19vYmplY3QpPC9mb250Pjxicj4KPGZvbnQgZmFjZT0iQ291cmllciBOZXciPnZpZXdfYXMmbHQ7cG9seWdvbl85MF93aXRoX2hvbGVzX2NvbmNlcHQmZ3Q7KHBvbHlnb25fd2l0aF9ob2xlc19vYmplY3QpPC9mb250Pjxicj4KPGZvbnQgZmFjZT0iQ291cmllciBOZXciPnZpZXdfYXMmbHQ7cG9seWdvbl80NV9jb25jZXB0Jmd0Oyhwb2x5Z29uX3dpdGhfaG9sZXNfb2JqZWN0KTwvZm9udD48YnI+Cjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij52aWV3X2FzJmx0O3BvbHlnb25fNDVfd2l0aF9ob2xlc19jb25jZXB0Jmd0Oyhwb2x5Z29uX3dpdGhfaG9sZXNfb2JqZWN0KTwvZm9udD48YnI+Cjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij52aWV3X2FzJmx0O3BvbHlnb25fY29uY2VwdCZndDsocG9seWdvbl93aXRoX2hvbGVzX29iamVjdCk8L2ZvbnQ+PC9wPgo8cD5UaGUgcmV0dXJuIHZhbHVlIG9mIDxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij52aWV3X2FzJmx0OyZndDsoKTwvZm9udD4gY2FuIGJlIApwYXNzZWQgaW50byBhbnkgaW50ZXJmYWNlIHRoYXQgZXhwZWN0cyBhbiBvYmplY3Qgb2YgdGhlIGNvbmNlcHR1YWwgdHlwZSAKc3BlY2lmaWVkIGluIGl0cyB0ZW1wbGF0ZSBwYXJhbWV0ZXIuIDwvcD4KPGgyPkZ1bmN0aW9uczwvaDI+Cjx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIiBpZD0idGFibGUxIj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQlwb2ludF9pdGVyYXRvcl90eXBlIDxiPmJlZ2luX3BvaW50czwvYj4oY29uc3QgVCZhbXA7IHBvbHlnb24pPC9mb250PjwvdGQ+CgkJPHRkPjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+RXhwZWN0cyBhIG1vZGVsIG9mIHBvbHlnb25fd2l0aF9ob2xlcy4mbmJzcDsgCgkJUmV0dXJucyB0aGUgYmVnaW4gaXRlcmF0b3Igb3ZlciB0aGUgcmFuZ2Ugb2YgcG9pbnRzIHRoYXQgY29ycmVzcG9uZCB0byAKCQl2ZXJ0aWNlcyBvZiB0aGUgcG9seWdvbi48L2ZvbnQ+PC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJcG9pbnRfaXRlcmF0b3JfdHlwZSA8Yj5lbmRfcG9pbnRzPC9iPihjb25zdCBUJmFtcDsgcG9seWdvbik8L2ZvbnQ+PC90ZD4KCQk8dGQ+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj5FeHBlY3RzIGEgbW9kZWwgb2YgcG9seWdvbl93aXRoX2hvbGVzLiZuYnNwOyAKCQlSZXR1cm5zIHRoZSBlbmQgaXRlcmF0b3Igb3ZlciB0aGUgcmFuZ2Ugb2YgcG9pbnRzIHRoYXQgY29ycmVzcG9uZCB0byAKCQl2ZXJ0aWNlcyBvZiB0aGUgcG9seWdvbi48L2ZvbnQ+PC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJaG9sZV9pdGVyYXRvcl90eXBlIDxiPmJlZ2luX2hvbGVzPC9iPihjb25zdCBUJmFtcDsgcG9seWdvbik8L2ZvbnQ+PC90ZD4KCQk8dGQ+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj5FeHBlY3RzIGEgbW9kZWwgb2YgcG9seWdvbl93aXRoX2hvbGVzLiZuYnNwOyAKCQlSZXR1cm5zIHRoZSBiZWdpbiBpdGVyYXRvciBvdmVyIHRoZSByYW5nZSBvZiBjb29yZGluYXRlcyB0aGF0IGNvcnJlc3BvbmQgCgkJdG8gaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgZWRnZXMuPC9mb250PjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCWhvbGVfaXRlcmF0b3JfdHlwZSA8Yj5lbmRfaG9sZXM8L2I+KGNvbnN0IFQmYW1wOyBwb2x5Z29uKTwvZm9udD48L3RkPgoJCTx0ZD48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPkV4cGVjdHMgYSBtb2RlbCBvZiBwb2x5Z29uX3dpdGhfaG9sZXMuJm5ic3A7IAoJCVJldHVybnMgdGhlIGVuZCBpdGVyYXRvciBvdmVyIHRoZSByYW5nZSBvZiBjb29yZGluYXRlcyB0aGF0IGNvcnJlc3BvbmQgCgkJdG8gaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgZWRnZXMuPC9mb250PjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIAoJCWl0ZXJhdG9yJmd0Ozxicj4KCQl2b2lkIDxiPnNldF9wb2ludHM8L2I+KFQmYW1wOyBwb2x5Z29uLCBpdGVyYXRvciBiLCBpdGVyYXRvciBlKTwvZm9udD48L3RkPgoJCTx0ZD48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPkV4cGVjdHMgYSBtb2RlbCBvZiBwb2x5Z29uX3dpdGhfaG9sZXMuJm5ic3A7Jm5ic3A7IAoJCVNldHMgdGhlIHBvbHlnb24gdG8gdGhlIHBvaW50IGRhdGEgcmFuZ2UgW2IsZSkgdGhhdCBjb3JyZXNwb25kcyB0byAKCQl2ZXJ0aWNlcyBvZiBhIHBvbHlnb24uJm5ic3A7IDwvZm9udD48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBULCB0eXBlbmFtZSAKCQlpdGVyYXRvciZndDs8YnI+CgkJdm9pZCA8Yj5zZXRfaG9sZXM8L2I+KFQmYW1wOyBwb2x5Z29uLCBpdGVyYXRvciBiLCBpdGVyYXRvciBlKTwvZm9udD48L3RkPgoJCTx0ZD48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPkV4cGVjdHMgYSBtb2RlbCBvZiBwb2x5Z29uX3dpdGhfaG9sZXMuJm5ic3A7Jm5ic3A7IAoJCVNldHMgdGhlIHBvbHlnb24gaG9sZXMgdG8gdGhlIGhvbGUgZGF0YSByYW5nZSBbYixlKTwvZm9udD48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQl1bnNpZ25lZCBpbnQgPGI+c2l6ZTwvYj4oY29uc3QgVCZhbXA7IHBvbHlnb24pPC9mb250PjwvdGQ+CgkJPHRkPjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+UmV0dXJucyB0aGUgbnVtYmVyIG9mIGVkZ2VzIGluIHRoZSAKCQlvdXRlciBzaGVsbCBvZiB0aGUgcG9seWdvbl93aXRoX2hvbGVzLiZuYnNwOyBEb2VzIG5vdCBpbmNsdWRlIHNpemVzIG9mIAoJCXRoZSBob2xlcy48L2ZvbnQ+PC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSZhbXA7IDxiPmFzc2lnbjwvYj4oVDEmYW1wOyBsZWZ0LCBjb25zdCBUMiZhbXA7IHJpZ2h0KTwvZm9udD48L3RkPgoJCTx0ZD5Db3BpZXMgZGF0YSBmcm9tIHJpZ2h0IG9iamVjdCB0aGF0IG1vZGVscyBwb2x5Z29uX3dpdGhfaG9sZXMgb3Igb25lIAoJCW9mIGl0cyByZWZpbmVtZW50cyBpbnRvIGxlZnQgb2JqZWN0IAoJCXRoYXQgbW9kZWxzIHBvbHlnb25fd2l0aF9ob2xlcy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBULCAKCQl0eXBlbmFtZSBwb2ludF90eXBlJmd0Ozxicj4KCQlib29sIDxiPmNvbnRhaW5zPC9iPihjb25zdCBUJmFtcDssIGNvbnN0IHBvaW50X3R5cGUmYW1wOyBwb2ludCwgPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgCgkJYm9vbCBjb25zaWRlcl90b3VjaD10cnVlKTwvZm9udD48L3RkPgoJCTx0ZD5HaXZlbiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcG9seWdvbl93aXRoX2hvbGVzIGFuZCBhbiBvYmplY3QgdGhhdCBtb2RlbHMgCgkJcG9pbnQsIHJldHVybnMgdHJ1ZSAKCQlpZiB0aGUgcG9seWdvbiBzaGVsbCBjb250YWlucyB0aGUgcG9pbnQgYW5kIG9uZSBvZiBpdHMgaG9sZXMgZG9lcyBub3QgCgkJY29udGFpbiB0aGUgcG9pbnQuJm5ic3A7IElmIHRoZSBjb25zaWRlcl90b3VjaCAKCQlmbGFnIGlzIHRydWUgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGUgcG9pbnQgbGllcyBhbG9uZyB0aGUgYm91bmRhcnkgb2YgCgkJdGhlIHBvbHlnb24gb3Igb25lIG9mIGl0cyBob2xlcy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPi8vIGdldCB0aGUgY2VudGVyIGNvb3JkaW5hdGU8YnI+CgkJdGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIHBvaW50X3R5cGUmZ3Q7PGJyPgoJCXZvaWQgPGI+Y2VudGVyPC9iPihwb2ludF90eXBlJmFtcDsgcCwgY29uc3QgVCZhbXA7IHBvbHlnb24pPC9mb250PjwvdGQ+CgkJPHRkPlNldHMgb2JqZWN0IHRoYXQgbW9kZWxzIHBvaW50IHRvIHRoZSBjZW50ZXIgcG9pbnQgb2YgdGhlIGJvdW5kaW5nIAoJCWJveCBvZiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcG9seWdvbl93aXRoX2hvbGVzLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIAoJCXR5cGVuYW1lIHJlY3RhbmdsZV90eXBlJmd0Ozxicj4KCQlib29sIDxiPmV4dGVudHM8L2I+KHJlY3RhbmdsZV90eXBlJmFtcDsgYmJveCwgY29uc3QgVCZhbXA7IHBvbHlnb24pPC9mb250PjwvdGQ+CgkJPHRkPlNldHMgb2JqZWN0IHRoYXQgbW9kZWxzIHJlY3RhbmdsZSB0byB0aGUgYm91bmRpbmcgYm94IG9mIGFuIG9iamVjdCAKCQl0aGF0IG1vZGVscyBwb2x5Z29uX3dpdGhfaG9sZXMgYW5kIHJldHVybnMgdHJ1ZS4mbmJzcDsgUmV0dXJucyBmYWxzZSBhbmQgCgkJbGVhdmVzIGJib3ggdW5jaGFuZ2VkIGlmIHBvbHlnb24gaXMgZW1wdHkuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJbWFuaGF0dGFuX2FyZWFfdHlwZSA8Yj5hcmVhPC9iPihjb25zdCBUJmFtcDsgcG9seWdvbik8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0aGUgYXJlYSBvZiBhbiBvYmplY3QgCgkJdGhhdCBtb2RlbHMgcG9seWdvbl93aXRoX2hvbGVzIGluY2x1ZGluZyBzdWJ0cmFjdGluZyB0aGUgYXJlYSBvZiBpdHMgCgkJaG9sZXMgZnJvbSB0aGUgYXJlYSBvZiB0aGUgb3V0ZXIgc2hlbGwgcG9seWdvbi48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQlkaXJlY3Rpb25fMWQgPGI+d2luZGluZzwvYj4oY29uc3QgVCZhbXA7IHBvbHlnb24pPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIHdpbmRpbmcgZGlyZWN0aW9uIG9mIGFuIG9iamVjdCAKCQl0aGF0IG1vZGVscyBwb2x5Z29uX3dpdGhfaG9sZXMsIExPVyA9PSBDTE9DS1dJU0UsIEhJR0ggPSAKCQlDT1VOVEVSQ0xPQ0tXSVNFLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCWNvb3JkaW5hdGVfZGlmZmVyZW5jZSA8Yj5wZXJpbWV0ZXI8L2I+KGNvbnN0IFQmYW1wOyBwb2x5Z29uKTwvZm9udD48L3RkPgoJCTx0ZD5SZXR1cm5zIHRoZSBwZXJpbWV0ZXIgbGVuZ3RoIG9mIGFuIG9iamVjdCAKCQl0aGF0IG1vZGVscyBwb2x5Z29uLCBpbmNsdWRpbmcgdGhlIHBlcmltZXRlcnMgb2YgdGhlIGhvbGVzLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIAoJCXR5cGVuYW1lIHRyYW5zZm9ybV90eXBlJmd0Ozxicj4KCQlUJmFtcDsgPGI+dHJhbnNmb3JtPC9iPihUJmFtcDsgcG9seWdvbiwgY29uc3QgdHJhbnNmb3JtX3R5cGUmYW1wOyk8L2ZvbnQ+PC90ZD4KCQk8dGQ+QXBwbGllcyB0cmFuc2Zvcm0oKSBvbiB0aGUgdmVydGljZXMgb2YgcG9seWdvbiBhbmQgc2V0cyB0aGUgcG9seWdvbiB0byB0aGF0IGRlc2NyaWJlZCBieSB0aGUgcmVzdWx0IG9mIAoJCXRyYW5zZm9ybWluZyBpdHMgdmVydGljZXMuJm5ic3A7IEFsc28gYXBwbGllcyB0cmFuc2Zvcm0oKSBvbiB0aGUgaG9sZXMgCgkJb2YgdGhlIHBvbHlnb24uPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJVCZhbXA7IDxiPnNjYWxlX3VwPC9iPihUJmFtcDsgcG9seWdvbiwgdW5zaWduZWRfYXJlYV90eXBlIGZhY3Rvcik8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2NhbGVzIHVwIG91dGVyIHNoZWxsIGFuZCBob2xlcyBvZiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgCgkJcG9seWdvbiBieSB1bnNpZ25lZCBmYWN0b3IuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJVCZhbXA7IDxiPnNjYWxlX2Rvd248L2I+KFQmYW1wOyBwb2x5Z29uLCB1bnNpZ25lZF9hcmVhX3R5cGUgZmFjdG9yKTwvZm9udD48L3RkPgoJCTx0ZD5TY2FsZXMgZG93biBvdXRlciBzaGVsbCBhbmQgaG9sZXMgb2YgYW4gb2JqZWN0IHRoYXQgbW9kZWxzIAoJCXBvbHlnb24gYnkgdW5zaWduZWQgZmFjdG9yLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHNjYWxpbmdfdHlwZSZndDs8YnI+CgkJVCZhbXA7IDxiPnNjYWxlPC9iPihUJmFtcDsgcmVjdGFuZ2xlLCBkb3VibGUgc2NhbGluZykgPC9mb250PjwvdGQ+CgkJPHRkPlNjYWxlcyBvdXRlciBzaGVsbCBhbmQgaG9sZXMgb2YgYW4gb2JqZWN0IHRoYXQgbW9kZWxzIHBvbHlnb24gYnkgCgkJZmxvYXRpbmcgcG9pbnQgZmFjdG9yLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCVQmYW1wOyA8Yj5tb3ZlPC9iPihUJmFtcDsgcG9seWdvbiwgb3JpZW50YXRpb25fMmQsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29vcmRpbmF0ZV9kaWZmZXJlbmNlIGRpc3BsYWNlbWVudCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+QWRkcyBkaXNwbGFjZW1lbnQgdmFsdWUgdG8gY29vcmRpbmF0ZSBpbmRpY2F0ZWQgYnkgb3JpZW50YXRpb25fMmQgb2YgCgkJdmVydGljZXMgb2YgYW4gb2JqZWN0IHRoYXQgbW9kZWxzIHBvbHlnb24gLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIHBvbHlnb25fdHlwZSwgdHlwZW5hbWUgcG9pbnRfdHlwZSZndDs8YnI+CgkJcG9seWdvbl90eXBlJmFtcDsgPGI+Y29udm9sdmU8L2I+KHBvbHlnb25fdHlwZSZhbXA7IHBvbHlnb24sPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgCgkJY29uc3QgcG9pbnRfdHlwZSZhbXA7IHBvaW50KTwvZm9udD48L3RkPgoJCTx0ZD5Db252b2x2ZXMgY29vcmRpbmF0ZSB2YWx1ZXMgb2YgcG9pbnQgd2l0aCB0aGUgb3V0ZXIgc2hlbGwgYW5kIGhvbGVzIG9mIGFuIAoJCW9iamVjdCB0aGF0IG1vZGVscyBwb2x5Z29uX3dpdGhfaG9sZXMuPC90ZD4KCTwvdHI+Cgk8L3RhYmxlPgoJPGgxPlBvbHlnb24gV2l0aCBIb2xlcyBEYXRhPC9oMT4KCjxwPiAKPHA+VGhlIGxpYnJhcnkgcHJvdmlkZXMgYSBtb2RlbCBvZiBwb2x5Z29uIHdpdGggaG9sZXMgY29uY2VwdCBkZWNsYXJlZAo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CnRlbXBsYXRlJmx0O3R5cGVuYW1lIFQmZ3Q7IHBvbHlnb25fd2l0aF9ob2xlc19kYXRhIDwvZm9udD53aGVyZSBUIGlzIHRoZSAKY29vcmRpbmF0ZSB0eXBlLjwvcD4KPHA+VGhpcyBkYXRhIHR5cGUgaXMgdXNlZCBpbnRlcm5hbGx5IHdoZW4gYSBwb2x5Z29uIHdpdGggaG9sZXMgaXMgCm5lZWRlZCBhbmQgaXMgYXZhaWxhYmxlIHRvIHRoZSBsaWJyYXJ5IHVzZXIgd2hvIGZpbmRzIGl0IGNvbnZlbmllbnQgdG8gdXNlIGEgCmxpYnJhcnkgcG9seWdvbiBkYXRhIHR5cGUgaW5zdGVhZCBvZiBwcm92aWRpbmcgdGhlaXIgb3duLiZuYnNwOyBUaGUgZGF0YSB0eXBlIGlzIAppbXBsZW1lbnRlZCB0byBiZSBjb252ZW5pZW50IHRvIHVzZSB3aXRoIHRoZSBsaWJyYXJ5IHRyYWl0cy48L3A+CjxoMj5NZW1iZXJzPC9oMj4KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGlkPSJ0YWJsZTIiPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Yj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+Z2VvbWV0cnlfdHlwZTwvZm9udD48L2I+PC90ZD4KCQk8dGQ+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj5wb2x5Z29uX3dpdGhfaG9sZXNfY29uY2VwdDwvZm9udD48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPmNvb3JkaW5hdGVfdHlwZTwvZm9udD48L2I+PC90ZD4KCQk8dGQ+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj5UPC9mb250PjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Yj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+aXRlcmF0b3JfdHlwZTwvZm9udD48L2I+PC90ZD4KCQk8dGQ+SXRlcmF0b3Igb3ZlciB2ZXJ0aWNlcyBwb2ludF9kYXRhJmx0O1QmZ3Q7IHZlcnRpY2VzIG9mIHBvbHlnb248L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPml0ZXJhdG9yX2hvbGVzX3R5cGU8L2ZvbnQ+PC9iPjwvdGQ+CgkJPHRkPjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+SXRlcmF0b3Igb3ZlciBob2xlIHBvbHlnb25zIG9mIHR5cGUgCgkJcG9seWdvbl9kYXRhJmx0O1QmZ3Q7LjwvZm9udD48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPjxiPnBvbHlnb25fd2l0aF9ob2xlc19kYXRhPC9iPigpPC9mb250PjwvdGQ+CgkJPHRkPjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+RGVmYXVsdCBjb25zdHJ1Y3RzIHRoZSA8L2ZvbnQ+cG9seWdvbi48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPjxiPnBvbHlnb25fd2l0aF9ob2xlc19kYXRhPC9iPihjb25zdCAKCQlwb2x5Z29uX3dpdGhfaG9sZXNfZGF0YSZhbXA7IHRoYXQpPC9mb250PjwvdGQ+CgkJPHRkPjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+Q29weSBjb25zdHJ1Y3Q8L2ZvbnQ+PC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij5wb2x5Z29uX3dpdGhfaG9sZXNfZGF0YSZhbXA7IDxiPgoJCTxicj5vcGVyYXRvcj08L2I+KGNvbnN0IHBvbHlnb25fd2l0aF9ob2xlc19kYXRhJmFtcDsgdGhhdCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+QXNzaWdubWVudCBvcGVyYXRvci48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMiZndDs8Yj4gPC9iPgoJCXBvbHlnb25fd2l0aF9ob2xlc19kYXRhJmFtcDs8Yj4mbmJzcDsgCgkJPGJyPiBvcGVyYXRvcj08L2I+KGNvbnN0IFQyJmFtcDsgdGhhdCkgY29uc3Q8L2ZvbnQ+PC90ZD4KCQk8dGQ+QXNzaWduIGZyb20gYW4gb2JqZWN0IHRoYXQgaXMgYSBtb2RlbCBvZiBwb2x5Z29uIHdpdGggaG9sZXMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij5pdGVyYXRvcl90eXBlIDxiPmJlZ2luPC9iPigpIAoJCWNvbnN0PC9mb250PjwvdGQ+CgkJPHRkPkdldCB0aGUgYmVnaW4gaXRlcmF0b3Igb3ZlciB2ZXJ0aWNlcyBvZiB0aGUgcG9seWdvbi48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPml0ZXJhdG9yX3R5cGUgPGI+ZW5kPC9iPigpIAoJCWNvbnN0PC9mb250PjwvdGQ+CgkJPHRkPkdldCB0aGUgZW5kIGl0ZXJhdG9yIG92ZXIgdmVydGljZXMgb2YgdGhlIHBvbHlnb24uPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij5pdGVyYXRvcl9ob2xlX3R5cGUgPGI+YmVnaW5faG9sZXM8L2I+KCkgCgkJY29uc3Q8L2ZvbnQ+PC90ZD4KCQk8dGQ+R2V0IHRoZSBiZWdpbiBjb21wYWN0IGl0ZXJhdG9yIG92ZXIgbm9uLXJlZHVuZGFudCBjb29yZGluYXRlcyBvZiB0aGUgCgkJcG9seWdvbi48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPml0ZXJhdG9yX2hvbGVfdHlwZSA8Yj5lbmRfaG9sZXM8L2I+KCkgCgkJY29uc3Q8L2ZvbnQ+PC90ZD4KCQk8dGQ+R2V0IHRoZSBlbmQgY29tcGFjdCBpdGVyYXRvciBvdmVyIG5vbi1yZWR1bmRhbnQgY29vcmRpbmF0ZXMgb2YgdGhlIAoJCXBvbHlnb24uPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij5zdGQ6OnNpemVfdCA8Yj5zaXplPC9iPigpIGNvbnN0PC9mb250PjwvdGQ+CgkJPHRkPkdldCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBzZXF1ZW5jZSBzdG9yZWQgdG8gdGhlIHBvbHlnb24sIAoJCXVzdWFsbHkgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBlZGdlcyBvZiB0aGUgcG9seWdvbi48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnN0ZDo6c2l6ZV90IDxiPnNpemVfaG9sZXM8L2I+KCkgY29uc3Q8L2ZvbnQ+PC90ZD4KCQk8dGQ+R2V0IHRoZSBudW1iZXIgb2YgaG9sZXMgaW4gdGhlIHBvbHlnb248L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBpVCZndDs8Yj4mbmJzcDsgCgkJPGJyPiA8L2I+dm9pZCA8Yj5zZXQ8L2I+KGlUIGJlZ2luX3BvaW50cywgaVQgZW5kX3BvaW50cyk8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2V0cyB0aGUgcG9seWdvbiB0byB0aGUgaXRlcmF0b3IgcmFuZ2Ugb2YgcG9pbnRzLiA8L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBpVCZndDs8Yj4mbmJzcDsgCgkJPGJyPiA8L2I+dm9pZCA8Yj5zZXRfaG9sZXM8L2I+KGlUIGJlZ2luX2hvbGVzLCBpVCBlbmRfY2hvbGVzcyk8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2V0cyB0aGUgcG9seWdvbiBob2xlcyB0aGUgaXRlcmF0b3IgcmFuZ2Ugb2YgaG9sZSBwb2x5Z29ucy4mbmJzcDsgVGhlc2UgCgkJcG9seWdvbnMgaW4gdGhlIGlucHV0IHJhbmdlIG1heSBiZSBlaXRoZXIgcG9seWdvbl9kYXRhIG9yIAoJCXBvbHlnb25fd2l0aF9ob2xlc19kYXRhIG9yIGFueSB0eXBlIHRoYXQgcHJvdmlkZXMgYmVnaW4gYW5kIGVuZCBtZW1iZXIgCgkJZnVuY3Rpb25zIHRvIGl0ZXJhdGUgb3ZlciBwb2ludF9kYXRhJmx0O1QmZ3Q7LjwvdGQ+Cgk8L3RyPgo8L3RhYmxlPgoJPHRyPgo8dGQgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsIDIzOCwgMjM4KTsiIG5vd3JhcD0iMSIgdmFsaWduPSJ0b3AiPgogICAgJm5ic3A7PC90ZD4KPHRkIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IHBhZGRpbmctYm90dG9tOiAxMHB4OyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxMDAlIj4KCgo8dGFibGUgY2xhc3M9ImRvY2luZm8iIHJ1bGVzPSJub25lIiBmcmFtZT0idm9pZCIgaWQ9InRhYmxlMyI+Cgk8Y29sZ3JvdXA+CgkJPGNvbCBjbGFzcz0iZG9jaW5mby1uYW1lIj48Y29sIGNsYXNzPSJkb2NpbmZvLWNvbnRlbnQiPgoJPC9jb2xncm91cD4KCTx0Ym9keSB2QWxpZ249InRvcCI+CgkJPHRyPgoJCQk8dGggY2xhc3M9ImRvY2luZm8tbmFtZSI+Q29weXJpZ2h0OjwvdGg+CgkJCTx0ZD5Db3B5cmlnaHQgqSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDA4LTIwMTAuPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZmllbGQiPgoJCQk8dGggY2xhc3M9ImRvY2luZm8tbmFtZSI+TGljZW5zZTo8L3RoPgoJCQk8dGQgY2xhc3M9ImZpZWxkLWJvZHkiPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKCQkJVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgPHR0IGNsYXNzPSJsaXRlcmFsIj4KCQkJPHNwYW4gY2xhc3M9InByZSI+TElDRU5TRV8xXzAudHh0PC9zcGFuPjwvdHQ+IG9yIGNvcHkgYXQKCQkJPGEgY2xhc3M9InJlZmVyZW5jZSIgdGFyZ2V0PSJfdG9wIiBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPgoJCQlodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvdGQ+CgkJPC90cj4KPC90YWJsZT4KCjwvaHRtbD4=