PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPHRpdGxlPkFyY2hpdmEgUmVwb3NpdG9yeSBJbnRlcmZhY2UgTGF5ZXIgLSBUZWFtIGxpc3Q8L3RpdGxlPg0KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCI+DQogICAgICBAaW1wb3J0IHVybCgiLi9jc3MvbWF2ZW4tYmFzZS5jc3MiKTsNCiAgICAgIEBpbXBvcnQgdXJsKCIuL2Nzcy9tYXZlbi10aGVtZS5jc3MiKTsNCiAgICAgIEBpbXBvcnQgdXJsKCIuL2Nzcy9zaXRlLmNzcyIpOw0KICAgIDwvc3R5bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuL2Nzcy9wcmludC5jc3MiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0icHJpbnQiIC8+DQogICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDovL3d3dy4iKTsKZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoIiUzQ3NjcmlwdCBzcmM9JyIgKyBnYUpzSG9zdCArICJnb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcycgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyUzRSUzQy9zY3JpcHQlM0UiKSk7PC9zY3JpcHQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgcGFnZVRyYWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKCJVQS0xNDA4NzktNSIpOwpwYWdlVHJhY2tlci5faW5pdERhdGEoKTsKcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTs8L3NjcmlwdD4NCiAgICAgICAgICAgICAgICAgICAgPC9oZWFkPg0KICA8Ym9keSBjbGFzcz0iY29tcG9zaXRlIj4NCiAgICA8ZGl2IGlkPSJiYW5uZXIiPg0KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vLi4vIiBpZD0iYmFubmVyTGVmdCI+DQogICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvYXJjaGl2YS5wbmciIGFsdD0iIiAvPg0KICAgIA0KICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyIgaWQ9ImJhbm5lclJpZ2h0Ij4NCiAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvaW1hZ2VzL2FzZl9sb2dvX3dpZGUucG5nIiBhbHQ9IiIgLz4NCiAgICANCiAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsZWFyIj4NCiAgICAgICAgPGhyLz4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgaWQ9ImJyZWFkY3J1bWJzIj4NCiAgICAgICAgICANCiAgDQoNCiAgDQogICAgDQogIA0KICANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InhsZWZ0Ij4NCiAgICAgICAgICANCiAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+DQogICAgICAgICAgICAgICZndDsNCiAgICAgIA0KICAgICAgICAgIDxhIGhyZWY9Ii4uLy4uLyI+QXJjaGl2YTwvYT4NCiAgICAgICAgICAgICAgJmd0Ow0KICAgICAgDQogICAgICAgICAgPGEgaHJlZj0iLi4vLi4vIj5BcmNoaXZhIDo6IE1vZHVsZXM8L2E+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ4cmlnaHQiPiAgICAgIA0KICANCg0KICANCiAgICANCiAgDQogIA0KICAgICAgICAgICAgJm5ic3A7fCBMYXN0IFB1Ymxpc2hlZDogMjcgTWF5IDIwMTENCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0iY2xlYXIiPg0KICAgICAgICA8aHIvPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogICAgPGRpdiBpZD0ibGVmdENvbHVtbiI+DQogICAgICA8ZGl2IGlkPSJuYXZjb2x1bW4iPg0KICAgICAgICAgICANCiAgDQoNCiAgDQogICAgDQogIA0KICANCiAgICAgICAgICAgICAgICAgICA8aDU+UHJvamVjdCBEb2N1bWVudGF0aW9uPC9oNT4NCiAgICAgICAgPHVsPg0KICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgICAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8bGkgY2xhc3M9ImV4cGFuZGVkIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0icHJvamVjdC1pbmZvLmh0bWwiPlByb2plY3QgSW5mb3JtYXRpb248L2E+DQogICAgICAgICAgICAgICAgPHVsPg0KICAgICAgICAgICAgICAgICAgDQogICAgPGxpIGNsYXNzPSJub25lIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0iaW5kZXguaHRtbCI+QWJvdXQ8L2E+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJpbnRlZ3JhdGlvbi5odG1sIj5Db250aW51b3VzIEludGVncmF0aW9uPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgDQogICAgPGxpIGNsYXNzPSJub25lIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0iZGVwZW5kZW5jaWVzLmh0bWwiPkRlcGVuZGVuY2llczwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxhIGhyZWY9ImRlcGVuZGVuY3ktY29udmVyZ2VuY2UuaHRtbCI+RGVwZW5kZW5jeSBDb252ZXJnZW5jZTwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxhIGhyZWY9ImRlcGVuZGVuY3ktbWFuYWdlbWVudC5odG1sIj5EZXBlbmRlbmN5IE1hbmFnZW1lbnQ8L2E+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJpc3N1ZS10cmFja2luZy5odG1sIj5Jc3N1ZSBUcmFja2luZzwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxhIGhyZWY9Im1haWwtbGlzdHMuaHRtbCI+TWFpbGluZyBMaXN0czwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxhIGhyZWY9InBsdWdpbi1tYW5hZ2VtZW50Lmh0bWwiPlBsdWdpbiBNYW5hZ2VtZW50PC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgDQogICAgPGxpIGNsYXNzPSJub25lIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0ibGljZW5zZS5odG1sIj5Qcm9qZWN0IExpY2Vuc2U8L2E+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJwbHVnaW5zLmh0bWwiPlByb2plY3QgUGx1Z2luczwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxhIGhyZWY9InByb2plY3Qtc3VtbWFyeS5odG1sIj5Qcm9qZWN0IFN1bW1hcnk8L2E+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8c3Ryb25nPlByb2plY3QgVGVhbTwvc3Ryb25nPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgDQogICAgPGxpIGNsYXNzPSJub25lIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0ic291cmNlLXJlcG9zaXRvcnkuaHRtbCI+U291cmNlIFJlcG9zaXRvcnk8L2E+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgIDwvdWw+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgICANCiAgICAgICAgPGxpIGNsYXNzPSJjb2xsYXBzZWQiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJwcm9qZWN0LXJlcG9ydHMuaHRtbCI+UHJvamVjdCBSZXBvcnRzPC9hPg0KICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy8iIHRpdGxlPSJCdWlsdCBieSBNYXZlbiIgaWQ9InBvd2VyZWRCeSI+DQogICAgICAgICAgICA8aW1nIGFsdD0iQnVpbHQgYnkgTWF2ZW4iIHNyYz0iLi9pbWFnZXMvbG9nb3MvbWF2ZW4tZmVhdGhlci5wbmciPjwvaW1nPg0KICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgDQogIA0KDQogIA0KICAgIA0KICANCiAgDQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgaWQ9ImJvZHlDb2x1bW4iPg0KICAgICAgPGRpdiBpZD0iY29udGVudEJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj5UaGUgVGVhbTwvaDI+PHA+QSBzdWNjZXNzZnVsIHByb2plY3QgcmVxdWlyZXMgbWFueSBwZW9wbGUgdG8gcGxheSBtYW55IHJvbGVzLiBTb21lIG1lbWJlcnMgd3JpdGUgY29kZSBvciBkb2N1bWVudGF0aW9uLCB3aGlsZSBvdGhlcnMgYXJlIHZhbHVhYmxlIGFzIHRlc3RlcnMsIHN1Ym1pdHRpbmcgcGF0Y2hlcyBhbmQgc3VnZ2VzdGlvbnMuPC9wPjxwPlRoZSB0ZWFtIGlzIGNvbXByaXNlZCBvZiBNZW1iZXJzIGFuZCBDb250cmlidXRvcnMuIE1lbWJlcnMgaGF2ZSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBzb3VyY2Ugb2YgYSBwcm9qZWN0IGFuZCBhY3RpdmVseSBldm9sdmUgdGhlIGNvZGUtYmFzZS4gQ29udHJpYnV0b3JzIGltcHJvdmUgdGhlIHByb2plY3QgdGhyb3VnaCBzdWJtaXNzaW9uIG9mIHBhdGNoZXMgYW5kIHN1Z2dlc3Rpb25zIHRvIHRoZSBNZW1iZXJzLiBUaGUgbnVtYmVyIG9mIENvbnRyaWJ1dG9ycyB0byB0aGUgcHJvamVjdCBpcyB1bmJvdW5kZWQuIEdldCBpbnZvbHZlZCB0b2RheS4gQWxsIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHByb2plY3QgYXJlIGdyZWF0bHkgYXBwcmVjaWF0ZWQuPC9wPjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMz5NZW1iZXJzPC9oMz48cD5UaGUgZm9sbG93aW5nIGlzIGEgbGlzdCBvZiBkZXZlbG9wZXJzIHdpdGggY29tbWl0IHByaXZpbGVnZXMgdGhhdCBoYXZlIGRpcmVjdGx5IGNvbnRyaWJ1dGVkIHRvIHRoZSBwcm9qZWN0IGluIG9uZSB3YXkgb3IgYW5vdGhlci48L3A+PHRhYmxlIGNsYXNzPSJib2R5VGFibGUiPjx0ciBjbGFzcz0iYSI+PHRoPklkPC90aD48dGg+TmFtZTwvdGg+PHRoPkVtYWlsPC90aD48dGg+T3JnYW5pemF0aW9uPC90aD48dGg+T3JnYW5pemF0aW9uIFVSTDwvdGg+PHRoPlJvbGVzPC90aD48dGg+VGltZSBab25lPC90aD48dGg+QWN0dWFsIFRpbWUgKEdNVCk8L3RoPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0ib2NoaW5nIj48L2E+b2NoaW5nPC90ZD48dGQ+TWFyaWEgT2RlYSBCLiBDaGluZzwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzpvY2hpbmdAYXBhY2hlLm9yZyI+b2NoaW5nQGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+LTwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgQ2hhaXI8L3RkPjx0ZD4rODwvdGQ+PHRkPjxzcGFuIGlkPSJkZXZlbG9wZXItMCI+Kzg8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9ImFoZXJpdGllciI+PC9hPmFoZXJpdGllcjwvdGQ+PHRkPkFybmF1ZCBIZXJpdGllcjwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzphaGVyaXRpZXJAYXBhY2hlLm9yZyI+YWhlcml0aWVyQGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+T0NUTyBUZWNobm9sb2d5PC90ZD48dGQ+PGEgaHJlZj0iaHR0cDovL3d3dy5vY3RvLmNvbSI+aHR0cDovL3d3dy5vY3RvLmNvbTwvYT48L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+KzE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTEiPisxPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD48YSBuYW1lPSJiZWxsaW5nYXJkIj48L2E+YmVsbGluZ2FyZDwvdGQ+PHRkPkZhYnJpY2UgQmVsbGluZ2FyZDwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+LTwvdGQ+PHRkPlBNQyBNZW1iZXI8L3RkPjx0ZD4tPC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0yIj4tPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJicmV0dCI+PC9hPmJyZXR0PC90ZD48dGQ+QnJldHQgUG9ydGVyPC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOmJyZXR0QGFwYWNoZS5vcmciPmJyZXR0QGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+QVNGPC90ZD48dGQ+LTwvdGQ+PHRkPlBNQyBNZW1iZXI8L3RkPjx0ZD4rMTA8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTMiPisxMDwvc3Bhbj48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0iY2FybG9zIj48L2E+Y2FybG9zPC90ZD48dGQ+Q2FybG9zIFNhbmNoZXo8L3RkPjx0ZD48YSBocmVmPSJtYWlsdG86Y2FybG9zQGFwYWNoZS5vcmciPmNhcmxvc0BhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkFTRjwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+KzE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTQiPisxPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJlcHVuemFsYW4iPjwvYT5lcHVuemFsYW48L3RkPjx0ZD5FZHdpbiBQdW56YWxhbjwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzplcHVuemFsYW5AYXBhY2hlLm9yZyI+ZXB1bnphbGFuQGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+LTwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+LTg8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTUiPi04PC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD48YSBuYW1lPSJldmVuaXNzZSI+PC9hPmV2ZW5pc3NlPC90ZD48dGQ+RW1tYW51ZWwgVmVuaXNzZTwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzpldmVuaXNzZUBhcGFjaGUub3JnIj5ldmVuaXNzZUBhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkFTRjwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+KzE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTYiPisxPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJqZHVtYXkiPjwvYT5qZHVtYXk8L3RkPjx0ZD5KYW1lcyBXaWxsaWFtIER1bWF5PC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOmphbWVzQGF0bGFzc2lhbi5jb20iPmphbWVzQGF0bGFzc2lhbi5jb208L2E+PC90ZD48dGQ+QXRsYXNzaWFuPC90ZD48dGQ+LTwvdGQ+PHRkPlBNQyBNZW1iZXI8L3RkPjx0ZD4rMTE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTciPisxMTwvc3Bhbj48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0iam9ha2ltZSI+PC9hPmpvYWtpbWU8L3RkPjx0ZD5Kb2FraW0gRXJkZmVsdDwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzpqb2FraW1lQGFwYWNoZS5vcmciPmpvYWtpbWVAYXBhY2hlLm9yZzwvYT48L3RkPjx0ZD5BU0Y8L3RkPjx0ZD4tPC90ZD48dGQ+RW1lcml0dXM8L3RkPjx0ZD4tNTwvdGQ+PHRkPjxzcGFuIGlkPSJkZXZlbG9wZXItOCI+LTU8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9Imp0b2xlbnRpbm8iPjwvYT5qdG9sZW50aW5vPC90ZD48dGQ+RXJuZXN0byBUb2xlbnRpbm8gSnIuPC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOmp0b2xlbnRpbm9AYXBhY2hlLm9yZyI+anRvbGVudGlub0BhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkFTRjwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+Kzg8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTkiPis4PC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD48YSBuYW1lPSJqbWNjb25uZWxsIj48L2E+am1jY29ubmVsbDwvdGQ+PHRkPkplc3NlIE1jQ29ubmVsbDwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzpqbWNjb25uZWxsQGFwYWNoZS5vcmciPmptY2Nvbm5lbGxAYXBhY2hlLm9yZzwvYT48L3RkPjx0ZD5BU0Y8L3RkPjx0ZD4tPC90ZD48dGQ+UE1DIE1lbWJlcjwvdGQ+PHRkPi02PC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0xMCI+LTY8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9Im5pY29sYXMiPjwvYT5uaWNvbGFzPC90ZD48dGQ+Tmljb2xhcyBEZSBMb29mPC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOm5pY29sYXNAYXBhY2hlLm9yZyI+bmljb2xhc0BhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkNhcGdlbWluaTwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+KzE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTExIj4rMTwvc3Bhbj48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0id3Ntb2FrIj48L2E+d3Ntb2FrPC90ZD48dGQ+V2VuZHkgU21vYWs8L3RkPjx0ZD48YSBocmVmPSJtYWlsdG86d3Ntb2FrQGFwYWNoZS5vcmciPndzbW9ha0BhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+UE1DIE1lbWJlcjwvdGQ+PHRkPi03PC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0xMiI+LTc8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9ImRlbm5pc2wiPjwvYT5kZW5uaXNsPC90ZD48dGQ+RGVubmlzIEx1bmRiZXJnPC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOmRlbm5pc2xAYXBhY2hlLm9yZyI+ZGVubmlzbEBhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkFTRjwvdGQ+PHRkPi08L3RkPjx0ZD5Db21taXR0ZXI8L3RkPjx0ZD4rMTwvdGQ+PHRkPjxzcGFuIGlkPSJkZXZlbG9wZXItMTMiPisxPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD48YSBuYW1lPSJtYXJ0aW5jIj48L2E+bWFydGluYzwvdGQ+PHRkPk1hcnRpbiBDb29wZXI8L3RkPjx0ZD48YSBocmVmPSJtYWlsdG86bWFydGluY0BhcGFjaGUub3JnIj5tYXJ0aW5jQGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+QVNGPC90ZD48dGQ+LTwvdGQ+PHRkPkNvbW1pdHRlcjwvdGQ+PHRkPi08L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTE0Ij4tPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJtYmFjbGF5Ij48L2E+bWJhY2xheTwvdGQ+PHRkPk1hcmVjb3IgTS4gQmFjbGF5PC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOm1iYWNsYXlAYXBhY2hlLm9yZyI+bWJhY2xheUBhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+Q29tbWl0dGVyPC90ZD48dGQ+Kzg8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTE1Ij4rODwvc3Bhbj48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0ianp1cmJhbm8iPjwvYT5qenVyYmFubzwvdGQ+PHRkPkpldmljYSBBcmlhbm5lIEIuIFp1cmJhbm88L3RkPjx0ZD48YSBocmVmPSJtYWlsdG86anp1cmJhbm9AYXBhY2hlLm9yZyI+anp1cmJhbm9AYXBhY2hlLm9yZzwvYT48L3RkPjx0ZD4tPC90ZD48dGQ+LTwvdGQ+PHRkPkNvbW1pdHRlcjwvdGQ+PHRkPis4PC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0xNiI+Kzg8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9Imp2YW56eWwiPjwvYT5qdmFuenlsPC90ZD48dGQ+SmFzb24gdmFuIFp5bDwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+LTwvdGQ+PHRkPkVtZXJpdHVzPC90ZD48dGQ+LTwvdGQ+PHRkPjxzcGFuIGlkPSJkZXZlbG9wZXItMTciPi08L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPjxhIG5hbWU9ImJheWFyZCI+PC9hPmJheWFyZDwvdGQ+PHRkPkhlbnJpIFlhbmRlbGw8L3RkPjx0ZD4tPC90ZD48dGQ+LTwvdGQ+PHRkPi08L3RkPjx0ZD5FbWVyaXR1czwvdGQ+PHRkPi08L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTE4Ij4tPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJrZW5uZXkiPjwvYT5rZW5uZXk8L3RkPjx0ZD5LZW5uZXkgV2VzdGVyaG9mPC90ZD48dGQ+LTwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+RW1lcml0dXM8L3RkPjx0ZD4tPC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0xOSI+LTwvc3Bhbj48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDM+Q29udHJpYnV0b3JzPC9oMz48cD5UaGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQgdG8gdGhpcyBwcm9qZWN0IHRocm91Z2ggdGhlIHdheSBvZiBzdWdnZXN0aW9ucywgcGF0Y2hlcyBvciBkb2N1bWVudGF0aW9uLjwvcD48dGFibGUgY2xhc3M9ImJvZHlUYWJsZSI+PHRyIGNsYXNzPSJiIj48dGg+TmFtZTwvdGg+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5TdGVmZmVuIEdydW53YWxkPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPlN0ZWZhbiBQcmFuZ2U8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+Sm9obiBNaWNoYWVsIEx1eTwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5NYXJ0aW4gSPZsbGVyPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPlN0ZXBoZW4gR2FyZ2FuPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPkRhcmlvIE9saXZlcm9zPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPmphbWVzIGFobGJvcm48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+SmltIEphY2tzb248L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+RGFuaWVsIEhhcnZleTwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5BbGVrc2FuZHIgVGFydXRpbjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5UZW9kb3JvIEN1ZSBKci48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+SmFuIEFuY2FqYXM8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+SmVucyBN/GhsZW5ob2ZmPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPkRhd24gQW5nZWxpdG88L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+TmFwIFJhbWlyZXo8L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+SGVucnkgSXNpZHJvPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPkFudG9pbmUgVmVyZXQ8L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+Q2hyaXN0aWFuIEdydWJlcjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5BbGxhbiBSYW1pcmV6PC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPlBldGUgTWFydmluIEtpbmc8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+Sm9lbCBTdWRpYWNhbDwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5NaWxvcyBLbGVpbnQ8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+TmljayBHb256YWxlejwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5NYXJpYSBDYXRoZXJpbmUgVGFuPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPkRhbiBUcmFuPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPkd3ZW4gSGFyb2xkIEF1dGVuY2lvPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPk1hcmsgSmVmZmVyeTwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5GYWJyaWNlIERhdWdhbjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5Eb3JvbiBTb2xvbW9uPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPk1pY2hhbCBTdG9jaG1pYWxlazwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5KdWxpZW4gSGVucnk8L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+QW5kcmVhcyBCYXVtYW5uPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPkFkZWxpdGEgTC4gUGFkaWxsYTwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5EYW5pZWwgVHJpcGhhdXM8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+UGF0dGkgQXJhY2hjaGlnZSBFc2hhbiBTdWRoYXJha2E8L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+U2hpbnN1a2UgU3VnYXlhPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPk1hcmN1cyBEaW1hbmQ8L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIG9mZnNldERhdGUoaWQsIG9mZnNldCkgewogICAgdmFyIG5vdyA9IG5ldyBEYXRlKCk7CiAgICB2YXIgbm93VGltZSA9IG5vdy5nZXRUaW1lKCk7CiAgICB2YXIgbG9jYWxPZmZzZXQgPSBub3cuZ2V0VGltZXpvbmVPZmZzZXQoKTsKICAgIHZhciBkZXZlbG9wZXJUaW1lID0gbm93VGltZSArICggb2Zmc2V0ICogNjAgKiA2MCAqIDEwMDAgKSsgKCBsb2NhbE9mZnNldCAqIDYwICogMTAwMCApOwogICAgdmFyIGRldmVsb3BlckRhdGUgPSBuZXcgRGF0ZShkZXZlbG9wZXJUaW1lKTsKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuaW5uZXJIVE1MID0gZGV2ZWxvcGVyRGF0ZTsKfQoKZnVuY3Rpb24gaW5pdCgpewogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTAnLCAnKzgnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci0xJywgJysxJyk7CiAgICBvZmZzZXREYXRlKCdkZXZlbG9wZXItMycsICcrMTAnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci00JywgJysxJyk7CiAgICBvZmZzZXREYXRlKCdkZXZlbG9wZXItNScsICctOCcpOwogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTYnLCAnKzEnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci03JywgJysxMScpOwogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTgnLCAnLTUnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci05JywgJys4Jyk7CiAgICBvZmZzZXREYXRlKCdkZXZlbG9wZXItMTAnLCAnLTYnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci0xMScsICcrMScpOwogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTEyJywgJy03Jyk7CiAgICBvZmZzZXREYXRlKCdkZXZlbG9wZXItMTMnLCAnKzEnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci0xNScsICcrOCcpOwogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTE2JywgJys4Jyk7Cn0KCndpbmRvdy5vbkxvYWQgPSBpbml0KCk7Cjwvc2NyaXB0Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iY2xlYXIiPg0KICAgICAgPGhyLz4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGlkPSJmb290ZXIiPg0KICAgICAgPGRpdiBjbGFzcz0ieHJpZ2h0Ij4mIzE2OTsgIA0KICAgICAgICAgIDIwMDYtMjAxMQ0KICAgIA0KICAgICAgICAgIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbg0KICAgICAgICAgIA0KICANCg0KICANCiAgICANCiAgDQogIA0KICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNsZWFyIj4NCiAgICAgICAgPGhyLz4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2JvZHk+DQo8L2h0bWw+DQo=