PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgIAogICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPiAgCjxodG1sID4gCjxoZWFkPjx0aXRsZT5UaGUgVkltYWdlIGNsYXNzPC90aXRsZT4gCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPiAKPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJUZVg0aHQgKGh0dHA6Ly93d3cuY3NlLm9oaW8tc3RhdGUuZWR1L35ndXJhcmkvVGVYNGh0LykiPiAKPG1ldGEgbmFtZT0ib3JpZ2luYXRvciIgY29udGVudD0iVGVYNGh0IChodHRwOi8vd3d3LmNzZS5vaGlvLXN0YXRlLmVkdS9+Z3VyYXJpL1RlWDRodC8pIj4gCjwhLS0gMyxodG1sIC0tPiAKPG1ldGEgbmFtZT0ic3JjIiBjb250ZW50PSJ2aXBzbWFudWFsLnRleCI+IAo8bWV0YSBuYW1lPSJkYXRlIiBjb250ZW50PSIyMDEwLTA2LTA5IDIxOjM5OjAwIj4gCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZpcHNtYW51YWwuY3NzIj4gCjwvaGVhZD48Ym9keSAKPgogIDwhLS1sLiAxLS0+PGRpdiBjbGFzcz0iY3Jvc3NsaW5rcyI+PHAgY2xhc3M9Im5vaW5kZW50Ij5bPGEgCmhyZWY9InZpcHNtYW51YWxzZTQuaHRtbCIgPm5leHQ8L2E+XSBbPGEgCmhyZWY9InZpcHNtYW51YWxzZTIuaHRtbCIgPnByZXY8L2E+XSBbPGEgCmhyZWY9InZpcHNtYW51YWxzZTIuaHRtbCN0YWlsdmlwc21hbnVhbHNlMi5odG1sIiA+cHJldi10YWlsPC9hPl0gWzxhIApocmVmPSIjdGFpbHZpcHNtYW51YWxzZTMuaHRtbCI+dGFpbDwvYT5dIFs8YSAKaHJlZj0idmlwc21hbnVhbGNoMS5odG1sI3ZpcHNtYW51YWxzZTMuaHRtbCIgPnVwPC9hPl0gPC9wPjwvZGl2PgogIDxoMyBjbGFzcz0ic2VjdGlvbkhlYWQiPjxzcGFuIGNsYXNzPSJ0aXRsZW1hcmsiPjEuMyAgICA8L3NwYW4+IDxhIAogaWQ9Ing4LTExMDAwMS4zIj48L2E+VGhlIDxzcGFuIApjbGFzcz0icGNycjd0LSI+VkltYWdlIDwvc3Bhbj5jbGFzczwvaDM+CjwhLS1sLiAzLS0+PHAgY2xhc3M9Im5vaW5kZW50IiA+VGhlIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+VkltYWdlPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGNsYXNzIGlzIGEgbGF5ZXIgb3ZlciB0aGUgVklQUyA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPklNQUdFPC9zcGFuPjwvc3Bhbj48L3NwYW4+CnR5cGUuIEl0IGF1dG9tYXRlcyBhbG1vc3QgYWxsIG9mIHRoZSBpbWFnZSBjcmVhdGlvbiBhbmQKZGVzdHJ1Y3Rpb24gaXNzdWVzIHRoYXQgY29tcGxpY2F0ZSB0aGUgQyBBUEksIGl0IGF1dG9tYXRlcwplcnJvciBoYW5kbGluZywgYW5kIGl0IHByb3ZpZGVzIGEgY29udmVuaWVudCBzeXN0ZW0gZm9yCmNvbXBvc2luZyBvcGVyYXRpb25zLgo8IS0tbC4gOC0tPjxwIGNsYXNzPSJub2luZGVudCIgPgogIDxoNCBjbGFzcz0ic3Vic2VjdGlvbkhlYWQiPjxzcGFuIGNsYXNzPSJ0aXRsZW1hcmsiPjEuMy4xICAgIDwvc3Bhbj4gPGEgCiBpZD0ieDgtMTIwMDAxLjMuMSI+PC9hPkNvbnN0cnVjdG9yczwvaDQ+CjwhLS1sLiAxMC0tPjxwIGNsYXNzPSJub2luZGVudCIgPlRoZXJlIGFyZSB0d28gcHJpbmNpcGFsIGNvbnN0cnVjdG9ycyBmb3IgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5WSW1hZ2U8L3NwYW4+PC9zcGFuPjwvc3Bhbj46CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJiYXRpbSIgaWQ9InZlcmJhdGltLTUiPgogIFZJbWFnZTo6VkltYWdlKCYjeDAwQTA7Y29uc3QmI3gwMEEwO2NoYXImI3gwMEEwOyYjeDIyQzY7bmFtZSwKICYjeDAwQTA7PGJyIC8+JiN4MDBBMDsmI3gwMEEwO2NvbnN0JiN4MDBBMDtjaGFyJiN4MDBBMDsmI3gyMkM2O21vZGUmI3gwMEEwOz0mI3gwMEEwOyJyIiYjeDAwQTA7KTsKICYjeDAwQTA7PGJyIC8+VkltYWdlOjpWSW1hZ2UoKTsgCjwvZGl2Pgo8IS0tbC4gMTYtLT48cCBjbGFzcz0ibm9wYXIiID4KPCEtLWwuIDE4LS0+PHAgY2xhc3M9ImluZGVudCIgPiAgVGhlIGZpcnN0IGZvcm0gY3JlYXRlcyBhIG5ldyA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPiwgbGlua2luZyBpdCB0byB0aGUKbmFtZWQgZmlsZS4gPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5tb2RlPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHNldHMgdGhlIG1vZGUgZm9yIHRoZSBmaWxlOiBpdCBjYW4gdGFrZSB0aGUKZm9sbG93aW5nIHZhbHVlczoKICAgICAgICA8ZGwgY2xhc3M9ImRlc2NyaXB0aW9uIj48ZHQgY2xhc3M9ImRlc2NyaXB0aW9uIj4KPHNwYW4gCmNsYXNzPSJwY3JiN3QtIj4iciI8L3NwYW4+IDwvZHQ+PGRkIApjbGFzcz0iZGVzY3JpcHRpb24iPlRoZSBuYW1lZCBpbWFnZSBmaWxlIGlzIG9wZW5lZCByZWFkLW9ubHkuIFRoaXMgaXMKICAgICAgICB0aGUgZGVmYXVsdCBtb2RlLgogICAgICAgIDwvZGQ+PGR0IGNsYXNzPSJkZXNjcmlwdGlvbiI+CjxzcGFuIApjbGFzcz0icGNyYjd0LSI+InciPC9zcGFuPiA8L2R0PjxkZCAKY2xhc3M9ImRlc2NyaXB0aW9uIj5BICA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBpcyAgY3JlYXRlZCAgd2hpY2gsICB3aGVuICB3cml0dGVuICB0bywKICAgICAgICB3aWxsIHdyaXRlIHBpeGVscyB0byBkaXNjIGluIHRoZSBzcGVjaWZpZWQgZmlsZS4gQW55CiAgICAgICAgZXhpc3RpbmcgZmlsZSBvZiB0aGlzIG5hbWUgaXMgZGVsZXRlZC4KICAgICAgICA8L2RkPjxkdCBjbGFzcz0iZGVzY3JpcHRpb24iPgo8c3BhbiAKY2xhc3M9InBjcmI3dC0iPiJ0Ijwvc3Bhbj4gPC9kdD48ZGQgCmNsYXNzPSJkZXNjcmlwdGlvbiI+QXMgIHRoZSAgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj4idyI8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gbW9kZSwgIGJ1dCAgcGl4ZWxzICB3cml0dGVuICB0byAgdGhlCiAgICAgICAgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5WSW1hZ2U8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gd2lsbCAgYmUgIHNhdmVkICBpbiAgYSAgdGVtcG9yYXJ5ICBtZW1vcnkKICAgICAgICBidWZmZXIuCiAgICAgICAgPC9kZD48ZHQgY2xhc3M9ImRlc2NyaXB0aW9uIj4KPHNwYW4gCmNsYXNzPSJwY3JiN3QtIj4icCI8L3NwYW4+IDwvZHQ+PGRkIApjbGFzcz0iZGVzY3JpcHRpb24iPlRoaXMgIGNyZWF0ZXMgIGEgIHNwZWNpYWwgICYjODIxNjtwYXJ0aWFsJiM4MjE3OyAgaW1hZ2UuICBQYXJ0aWFsCiAgICAgICAgaW1hZ2VzIHJlcHJlc2VudCBpbnRlcm1lZGlhdGUgcmVzdWx0cywgYW5kIGFyZSB1c2VkCiAgICAgICAgdG8gam9pbiBWSVBTIG9wZXJhdGlvbnMgdG9nZXRoZXIsIHNlZSYjeDAwQTA7PHNwYW4gCmNsYXNzPSJjbXN5LTEwIj6nPC9zcGFuPjxhIApocmVmPSIjeDgtMTYwMDAxLjMuNSI+MS4zLjU8IS0tdGV4NGh0OnJlZjogc2VjOmNvbXB1dGUgLS0+PC9hPi4KICAgICAgICA8L2RkPjxkdCBjbGFzcz0iZGVzY3JpcHRpb24iPgo8c3BhbiAKY2xhc3M9InBjcmI3dC0iPiJydyI8L3NwYW4+IDwvZHQ+PGRkIApjbGFzcz0iZGVzY3JpcHRpb24iPkFzICB0aGUgIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+InIiPC9zcGFuPjwvc3Bhbj48L3NwYW4+IG1vZGUsICBidXQgIHRoZSAgaW1hZ2UgIGlzICBtYXBwZWQKICAgICAgICBpbnRvIHlvdXIgYWRkcmVzcyBzcGFjZSByZWFkLXdyaXRlLiBUaGlzIG1vZGUgaXMKICAgICAgICB1c2VmdWwgZm9yIHBhaW50Ym94LXN0eWxlIGFwcGxpY2F0aW9ucyB3aGljaCBuZWVkCiAgICAgICAgdG8gZGlyZWN0bHkgbW9kaWZ5IGFuIGltYWdlLiBTZWUgPHNwYW4gCmNsYXNzPSJjbXN5LTEwIj6nPC9zcGFuPjxhIApocmVmPSJ2aXBzbWFudWFsc2UxOC5odG1sI3gyNi0xMTQwMDA0LjIuOCI+NC4yLjg8IS0tdGV4NGh0OnJlZjogc2VjOmlucGxhY2UgLS0+PC9hPi4KICAgICAgICA8L2RkPjwvZGw+CjwhLS1sLiA0Ni0tPjxwIGNsYXNzPSJpbmRlbnQiID4gICAgVGhlIHNlY29uZCBmb3JtIG9mIGNvbnN0cnVjdG9yIGlzIHNob3J0aGFuZCBmb3I6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgPGRpdiBjbGFzcz0idmVyYmF0aW0iIGlkPSJ2ZXJiYXRpbS02Ij4KVkltYWdlKCYjeDAwQTA7IlZJbWFnZToxIiwmI3gwMEEwOyJwIiYjeDAwQTA7KQo8L2Rpdj4KPCEtLWwuIDUwLS0+PHAgY2xhc3M9Im5vcGFyIiA+CjwhLS1sLiA1Mi0tPjxwIGNsYXNzPSJub2luZGVudCIgPkl0IGlzIHVzZWQgZm9yIHJlcHJlc2VudGluZyBpbnRlcm1lZGlhdGUgcmVzdWx0cyBvZgpjb21wdXRhdGlvbnMuCjwhLS1sLiA1NS0tPjxwIGNsYXNzPSJpbmRlbnQiID4gIFR3byBmdXJ0aGVyIGNvbnN0cnVjdG9ycyBhcmUgaGFuZHkgZm9yIHdyYXBwaW5nCjxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+VkltYWdlPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGFyb3VuZCBleGlzdGluZyBpbWFnZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJiYXRpbSIgaWQ9InZlcmJhdGltLTciPgogIFZJbWFnZSgmI3gwMEEwO3ZvaWQmI3gwMEEwOyYjeDIyQzY7YnVmZmVyLAogJiN4MDBBMDs8YnIgLz4mI3gwMEEwOyYjeDAwQTA7aW50JiN4MDBBMDt3aWR0aCwmI3gwMEEwO2ludCYjeDAwQTA7aGVpZ2h0LCYjeDAwQTA7aW50JiN4MDBBMDtiYW5kcywKICYjeDAwQTA7PGJyIC8+JiN4MDBBMDsmI3gwMEEwO1RCYW5kRm10JiN4MDBBMDtmb3JtYXQmI3gwMEEwOyk7CiAmI3gwMEEwOzxiciAvPlZJbWFnZSgmI3gwMEEwO3ZvaWQmI3gwMEEwOyYjeDIyQzY7aW1hZ2UmI3gwMEEwOyk7IAo8L2Rpdj4KPCEtLWwuIDYzLS0+PHAgY2xhc3M9Im5vcGFyIiA+CjwhLS1sLiA2NS0tPjxwIGNsYXNzPSJub2luZGVudCIgPlRoZSBmaXJzdCBjb25zdHJ1Y3RvciBtYWtlcyBhIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+VkltYWdlPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGZyb20gYW4gYXJlYQpvZiBtZW1vcnkgKHBlcmhhcHMgZnJvbSBhbm90aGVyIGltYWdlIHByb2Nlc3NpbmcKc3lzdGVtKSwgYW5kIHRoZSBzZWNvbmQgbWFrZXMgYSA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBmcm9tIGFuCjxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+SU1BR0U8L3NwYW4+PC9zcGFuPjwvc3Bhbj4uCjwhLS1sLiA3MC0tPjxwIGNsYXNzPSJpbmRlbnQiID4gICAgSW4gYm90aCB0aGVzZSB0d28gY2FzZXMsIHRoZSBWSVBTIEMrKyBBUEkgZG9lcyBub3QKYXNzdW1lIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUgcmVzb3VyY2VzOiBpdCYjODIxNztzIHVwIHRvIHlvdSB0bwptYWtlIHN1cmUgdGhlIGJ1ZmZlciBpcyBmcmVlZC4KPCEtLWwuIDczLS0+PHAgY2xhc3M9ImluZGVudCIgPiAgICBUaGUgUHl0aG9uIGludGVyZmFjZSBhZGRzIHRoZSB1c3VhbCA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmZyb21idWZmZXI8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gYW5kCjxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+ZnJvbXN0cmluZzwvc3Bhbj48L3NwYW4+PC9zcGFuPiBtZXRob2RzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIDxkaXYgY2xhc3M9InZlcmJhdGltIiBpZD0idmVyYmF0aW0tOCI+ClZJbWFnZS5mcm9tc3RyaW5nJiN4MDBBMDsoc3RyaW5nLAomI3gwMEEwOzxiciAvPiYjeDAwQTA7JiN4MDBBMDt3aWR0aCwmI3gwMEEwO2hlaWdodCwmI3gwMEEwO2JhbmRzLCYjeDAwQTA7Zm9ybWF0KSYjeDAwQTA7LSYjeDAwM0U7CiYjeDAwQTA7PGJyIC8+JiN4MDBBMDsmI3gwMEEwO1ZJbWFnZQo8L2Rpdj4KPCEtLWwuIDgwLS0+PHAgY2xhc3M9Im5vcGFyIiA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJiYXRpbSIgaWQ9InZlcmJhdGltLTkiPgogVkltYWdlLmZyb21idWZmZXImI3gwMEEwOyhidWZmZXIsCiAmI3gwMEEwOzxiciAvPiYjeDAwQTA7JiN4MDBBMDt3aWR0aCwmI3gwMEEwO2hlaWdodCwmI3gwMEEwO2JhbmRzLCYjeDAwQTA7Zm9ybWF0KSYjeDAwQTA7LSYjeDAwM0U7CiAmI3gwMEEwOzxiciAvPiYjeDAwQTA7JiN4MDBBMDtWSW1hZ2UgCjwvZGl2Pgo8IS0tbC4gODYtLT48cCBjbGFzcz0ibm9wYXIiID4KPCEtLWwuIDg4LS0+PHAgY2xhc3M9Im5vaW5kZW50IiA+VXNlIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+ZnJvbXN0cmluZzwvc3Bhbj48L3NwYW4+PC9zcGFuPiB0byBhdm9pZCB3b3JyaWVzIGFib3V0IG9iamVjdCBsaWZldGltZSwKYnV0IHlvdSYjODIxNztsbCBzZWUgYSBsb3Qgb2YgY29waWVzIGFuZCBoaWdoIG1lbW9yeSB1c2UuIFVzZQo8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmZyb21idWZmZXI8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gZm9yIHNwZWVkLCBidXQgeW91IGhhdmUgdG8gbWFuYWdlIG9iamVjdApsaWZldGltZSB5b3Vyc2VsZi4KPCEtLWwuIDkzLS0+PHAgY2xhc3M9ImluZGVudCIgPiAgICBUaGV5IGFyZSB1c2VmdWwgZm9yIG1vdmluZyBpbWFnZXMgaW50byBWSVBTIGZyb20gb3RoZXIKaW1hZ2UgcHJvY2Vzc2luZyBsaWJyYXJpZXMuIFRoZXJlJiM4MjE3O3MgYWxzbyBhIHV0aWxpdHkgZnVuY3Rpb24sCjxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+dmlwc19mcm9tX1BJTF9tb2RlPC9zcGFuPjwvc3Bhbj48L3NwYW4+LCB3aGljaCB0dXJucyBhIFBJTCBtb2RlIGludG8gYQpWSVBTIGJhbmQsIGZvcm1hdCwgdHlwZSB0cmlwbGUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgPGRpdiBjbGFzcz0idmVyYmF0aW0iIGlkPSJ2ZXJiYXRpbS0xMCI+ClZJbWFnZS52aXBzX2Zyb21fUElMX21vZGUmI3gwMEEwOyhtb2RlKSYjeDAwQTA7LSYjeDAwM0U7CiYjeDAwQTA7PGJyIC8+JiN4MDBBMDsmI3gwMEEwOyhiYW5kcywmI3gwMEEwO2Zvcm1hdCwmI3gwMEEwO3R5cGUpCjwvZGl2Pgo8IS0tbC4gMTAwLS0+PHAgY2xhc3M9Im5vcGFyIiA+CjwhLS1sLiAxMDItLT48cCBjbGFzcz0iaW5kZW50IiA+ICBTZWUgYWxzbyA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPnRvYnVmZmVyPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPnRvc3RyaW5nPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGJlbG93Lgo8IS0tbC4gMTA0LS0+PHAgY2xhc3M9Im5vaW5kZW50IiA+CiAgPGg0IGNsYXNzPSJzdWJzZWN0aW9uSGVhZCI+PHNwYW4gY2xhc3M9InRpdGxlbWFyayI+MS4zLjIgICAgPC9zcGFuPiA8YSAKIGlkPSJ4OC0xMzAwMDEuMy4yIj48L2E+RmlsZSBjb252ZXJzaW9uPC9oND4KPCEtLWwuIDEwNi0tPjxwIGNsYXNzPSJub2luZGVudCIgPlZJUFMgY2FuIHJlYWQgYW5kIHdyaXRlIGEgbnVtYmVyIG9mIGRpZmZlcmVudCBmaWxlIGZvcm1hdHMuCkluZm9ybWF0aW9uIGFib3V0IGZpbGUgZm9ybWF0IGNvbnZlcnNpb24gaXMgdGFrZW4gZnJvbSB0aGUKZmlsZW5hbWUuIEZvciBleGFtcGxlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVyYmF0aW0iIGlkPSJ2ZXJiYXRpbS0xMSI+CiAgVkltYWdlJiN4MDBBMDtqaW0oJiN4MDBBMDsiZnJlZC5qcGciJiN4MDBBMDspOyAKPC9kaXY+CjwhLS1sLiAxMTEtLT48cCBjbGFzcz0ibm9wYXIiID4KPCEtLWwuIDExMy0tPjxwIGNsYXNzPSJub2luZGVudCIgPlRoaXMgd2lsbCBkZWNvbXByZXNzIHRoZSBmaWxlIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+ZnJlZC5qcGc8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gdG8gYSBtZW1vcnkKYnVmZmVyLCB3cmFwIGEgVklQUyBpbWFnZSBhcm91bmQgdGhlIGJ1ZmZlciBhbmQgYnVpbGQgYQpyZWZlcmVuY2UgdG8gaXQgY2FsbGVkIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+amltPC9zcGFuPjwvc3Bhbj48L3NwYW4+Lgo8IS0tbC4gMTE3LS0+PHAgY2xhc3M9ImluZGVudCIgPiAgICBPcHRpb25zIGFyZSBwYXNzZWQgdG8gdGhlIGZpbGUgZm9ybWF0IGNvbnZlcnRlcnMgZW1iZWRkZWQKaW4gdGhlIGZpbGVuYW1lLiBGb3IgZXhhbXBsZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICA8ZGl2IGNsYXNzPSJ2ZXJiYXRpbSIgaWQ9InZlcmJhdGltLTEyIj4KVkltYWdlJiN4MDBBMDtvdXQoJiN4MDBBMDsiamVuLnRpZjpkZWZsYXRlIiwmI3gwMEEwOyJ3IiYjeDAwQTA7KTsKPC9kaXY+CjwhLS1sLiAxMjItLT48cCBjbGFzcz0ibm9wYXIiID4KPCEtLWwuIDEyNC0tPjxwIGNsYXNzPSJub2luZGVudCIgPldyaXRpbmcgdG8gdGhlIGRlc2NyaXB0b3IgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5vdXQ8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gd2lsbCBjYXVzZSBhIFRJRkYgaW1hZ2UgdG8gYmUKd3JpdHRlbiB0byBkaXNjIHdpdGggZGVmbGF0ZSBjb21wcmVzc2lvbi4KPCEtLWwuIDEyOC0tPjxwIGNsYXNzPSJpbmRlbnQiID4gIFNlZSB0aGUgbWFudWFsIHBhZ2UgZm9yIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+aW1fb3BlbigzKTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBmb3IgZGV0YWlscyBvZiBhbGwKdGhlIGZpbGUgZm9ybWF0cyBhbmQgY29udmVyc2lvbnMgYXZhaWxhYmxlLiBTZWUgdGhlIG1hbiBwYWdlCmZvciA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZpcHNGb3JtYXQoMyk8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gZm9yIGEgbG93ZXItbGV2ZWwgQVBJIHdoaWNoIGxldHMgeW91CmNvbnRyb2wgbW9yZSBvZiB0aGUgZGV0YWlsIG9mIHJlYWRpbmcgYW5kIHdyaXRpbmcgZGF0YSBhbmQgaXMKbW9yZSBzdWl0YWJsZSBmb3IgbGFyZ2UgZmlsZXMuCjwhLS1sLiAxMzMtLT48cCBjbGFzcz0ibm9pbmRlbnQiID4KICA8aDQgY2xhc3M9InN1YnNlY3Rpb25IZWFkIj48c3BhbiBjbGFzcz0idGl0bGVtYXJrIj4xLjMuMyAgICA8L3NwYW4+IDxhIAogaWQ9Ing4LTE0MDAwMS4zLjMiPjwvYT5Qcm9qZWN0aW9uIGZ1bmN0aW9uczwvaDQ+CjwhLS1sLiAxMzUtLT48cCBjbGFzcz0ibm9pbmRlbnQiID5BIHNldCBvZiBtZW1iZXIgZnVuY3Rpb25zIG9mIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+VkltYWdlPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHByb3ZpZGUgYWNjZXNzIHRvIHRoZQpmaWVsZHMgaW4gdGhlIGhlYWRlcjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcmJhdGltIiBpZD0idmVyYmF0aW0tMTMiPgogIGludCYjeDAwQTA7WHNpemUoKTsKICYjeDAwQTA7PGJyIC8+aW50JiN4MDBBMDtZc2l6ZSgpOwogJiN4MDBBMDs8YnIgLz5pbnQmI3gwMEEwO0JhbmRzKCk7CiAmI3gwMEEwOzxiciAvPlRCYW5kRm10JiN4MDBBMDtCYW5kRm10KCk7CiAmI3gwMEEwOzxiciAvPlRDb2RpbmcmI3gwMEEwO0NvZGluZygpOwogJiN4MDBBMDs8YnIgLz5UVHlwZSYjeDAwQTA7VHlwZSgpOwogJiN4MDBBMDs8YnIgLz5mbG9hdCYjeDAwQTA7WHJlcygpOwogJiN4MDBBMDs8YnIgLz5mbG9hdCYjeDAwQTA7WXJlcygpOwogJiN4MDBBMDs8YnIgLz5pbnQmI3gwMEEwO0xlbmd0aCgpOwogJiN4MDBBMDs8YnIgLz5UQ29tcHJlc3Npb24mI3gwMEEwO0NvbXByZXNzaW9uKCk7CiAmI3gwMEEwOzxiciAvPnNob3J0JiN4MDBBMDtMZXZlbCgpOwogJiN4MDBBMDs8YnIgLz5pbnQmI3gwMEEwO1hvZmZzZXQoKTsKICYjeDAwQTA7PGJyIC8+aW50JiN4MDBBMDtZb2Zmc2V0KCk7IAo8L2Rpdj4KPCEtLWwuIDE1Mi0tPjxwIGNsYXNzPSJub3BhciIgPgo8IS0tbC4gMTU0LS0+PHAgY2xhc3M9Im5vaW5kZW50IiA+V2hlcmUgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5UQmFuZEZtdDwvc3Bhbj48L3NwYW4+PC9zcGFuPiwgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5UQ29kaW5nPC9zcGFuPjwvc3Bhbj48L3NwYW4+LCA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlRUeXBlPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlRDb21wcmVzc2lvbjwvc3Bhbj48L3NwYW4+PC9zcGFuPgphcmUgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5lbnVtPC9zcGFuPjwvc3Bhbj48L3NwYW4+cyBmb3IgdGhlIHR5cGVzIGluIHRoZSBWSVBTIGZpbGUgaGVhZGVyLiBTZWUKc2VjdGlvbiYjeDAwQTA7PHNwYW4gCmNsYXNzPSJjbXN5LTEwIj6nPC9zcGFuPjxhIApocmVmPSJ2aXBzbWFudWFsc2UyLmh0bWwjeDctODAwMDEuMi4xIj4xLjIuMTwhLS10ZXg0aHQ6cmVmOiBzZWM6aGVhZGVyIC0tPjwvYT4gZm9yIGFuIGV4cGxhbmF0aW9uIG9mIGFsbCBvZiB0aGVzZSBmaWVsZHMuCjwhLS1sLiAxNTktLT48cCBjbGFzcz0iaW5kZW50IiA+ICAgIFR3byBmdW5jdGlvbnMgZ2l2ZSBhY2Nlc3MgdG8gdGhlIGZpbGVuYW1lIGFuZCBoaXN0b3J5CmZpZWxkcyBtYWludGFpbmVkIGJ5IHRoZSBWSVBTIElPIHN5c3RlbS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICA8ZGl2IGNsYXNzPSJ2ZXJiYXRpbSIgaWQ9InZlcmJhdGltLTE0Ij4KY2hhciYjeDAwQTA7JiN4MjJDNjtmaWxlbmFtZSgpOwomI3gwMEEwOzxiciAvPmNoYXImI3gwMEEwOyYjeDIyQzY7SGlzdCgpOwo8L2Rpdj4KPCEtLWwuIDE2NS0tPjxwIGNsYXNzPSJub3BhciIgPgo8IS0tbC4gMTY3LS0+PHAgY2xhc3M9ImluZGVudCIgPiAgWW91IGNhbiBnZXQgYW5kIHNldCBleHRyYSBtZXRhZGF0YSBmaWVsZHMgd2l0aAo8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPm1ldGFfZ2V0KCk8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+bWV0YV9zZXQoKTwvc3Bhbj48L3NwYW4+PC9zcGFuPi4gVGhleSByZWFkIGFuZCB3cml0ZQo8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPkdWYWx1ZTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBvYmplY3RzLCBzZWUgPHNwYW4gCmNsYXNzPSJjbXN5LTEwIj6nPC9zcGFuPjxhIApocmVmPSJ2aXBzbWFudWFsc2U4Lmh0bWwjeDE0LTQzMDAwMi4yLjYiPjIuMi42PCEtLXRleDRodDpyZWY6IHNlYzptZXRhIC0tPjwvYT4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJiYXRpbSIgaWQ9InZlcmJhdGltLTE1Ij4KICB2b2lkJiN4MDBBMDttZXRhX3NldCgmI3gwMEEwO2NvbnN0JiN4MDBBMDtjaGFyJiN4MDBBMDsmI3gyMkM2O2ZpZWxkLCYjeDAwQTA7R1ZhbHVlJiN4MDBBMDsmI3gyMkM2O3ZhbHVlJiN4MDBBMDspOwogJiN4MDBBMDs8YnIgLz52b2lkJiN4MDBBMDttZXRhX2dldCgmI3gwMEEwO2NvbnN0JiN4MDBBMDtjaGFyJiN4MDBBMDsmI3gyMkM2O2ZpZWxkLCYjeDAwQTA7R1ZhbHVlJiN4MDBBMDsmI3gyMkM2O3ZhbHVlX2NvcHkmI3gwMEEwOyk7CiAmI3gwMEEwOzxiciAvPkdUeXBlJiN4MDBBMDttZXRhX2dldF90eXBlKCYjeDAwQTA7Y29uc3QmI3gwMEEwO2NoYXImI3gwMEEwOyYjeDIyQzY7ZmllbGQmI3gwMEEwOyk7IAo8L2Rpdj4KPCEtLWwuIDE3NS0tPjxwIGNsYXNzPSJub3BhciIgPgo8IS0tbC4gMTc3LS0+PHAgY2xhc3M9ImluZGVudCIgPiAgQSBzZXQgb2YgY29udmVuaWVuY2UgZnVuY3Rpb25zIGJ1aWxkIG9uIHRoZXNlIHR3byB0bwpwcm92aWRlIGFjY2Vzc29ycyBmb3IgY29tbW9uIHR5cGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIDxkaXYgY2xhc3M9InZlcmJhdGltIiBpZD0idmVyYmF0aW0tMTYiPgppbnQmI3gwMEEwO21ldGFfZ2V0X2ludCgmI3gwMEEwO2NvbnN0JiN4MDBBMDtjaGFyJiN4MDBBMDsmI3gyMkM2O2ZpZWxkJiN4MDBBMDspCiYjeDAwQTA7PGJyIC8+ZG91YmxlJiN4MDBBMDttZXRhX2dldF9kb3VibGUoJiN4MDBBMDtjb25zdCYjeDAwQTA7Y2hhciYjeDAwQTA7JiN4MjJDNjtmaWVsZCYjeDAwQTA7KQomI3gwMEEwOzxiciAvPmNvbnN0JiN4MDBBMDtjaGFyJiN4MDBBMDsmI3gyMkM2O21ldGFfZ2V0X3N0cmluZygmI3gwMEEwO2NvbnN0JiN4MDBBMDtjaGFyJiN4MDBBMDsmI3gyMkM2O2ZpZWxkJiN4MDBBMDspCiYjeDAwQTA7PGJyIC8+dm9pZCYjeDAwQTA7JiN4MjJDNjttZXRhX2dldF9hcmVhKCYjeDAwQTA7Y29uc3QmI3gwMEEwO2NoYXImI3gwMEEwOyYjeDIyQzY7ZmllbGQmI3gwMEEwOykKJiN4MDBBMDs8YnIgLz52b2lkJiN4MDBBMDsmI3gyMkM2O21ldGFfZ2V0X2Jsb2IoJiN4MDBBMDtjb25zdCYjeDAwQTA7Y2hhciYjeDAwQTA7JiN4MjJDNjtmaWVsZCwmI3gwMEEwO3NpemVfdCYjeDAwQTA7JiN4MjJDNjtsZW5ndGgmI3gwMEEwOykKJiN4MDBBMDs8YnIgLz4KJiN4MDBBMDs8YnIgLz52b2lkJiN4MDBBMDttZXRhX3NldCgmI3gwMEEwO2NvbnN0JiN4MDBBMDtjaGFyJiN4MDBBMDsmI3gyMkM2O2ZpZWxkLCYjeDAwQTA7aW50JiN4MDBBMDt2YWx1ZSYjeDAwQTA7KQomI3gwMEEwOzxiciAvPnZvaWQmI3gwMEEwO21ldGFfc2V0KCYjeDAwQTA7Y29uc3QmI3gwMEEwO2NoYXImI3gwMEEwOyYjeDIyQzY7ZmllbGQsJiN4MDBBMDtkb3VibGUmI3gwMEEwO3ZhbHVlJiN4MDBBMDspCiYjeDAwQTA7PGJyIC8+dm9pZCYjeDAwQTA7bWV0YV9zZXQoJiN4MDBBMDtjb25zdCYjeDAwQTA7Y2hhciYjeDAwQTA7JiN4MjJDNjtmaWVsZCwmI3gwMEEwO2NvbnN0JiN4MDBBMDtjaGFyJiN4MDBBMDsmI3gyMkM2O3ZhbHVlJiN4MDBBMDspCiYjeDAwQTA7PGJyIC8+dm9pZCYjeDAwQTA7bWV0YV9zZXQoJiN4MDBBMDtjb25zdCYjeDAwQTA7Y2hhciYjeDAwQTA7JiN4MjJDNjtmaWVsZCwKJiN4MDBBMDs8YnIgLz5WQ2FsbGJhY2smI3gwMEEwO2ZyZWVfZm4sJiN4MDBBMDt2b2lkJiN4MDBBMDsmI3gyMkM2O3ZhbHVlJiN4MDBBMDspCiYjeDAwQTA7PGJyIC8+dm9pZCYjeDAwQTA7bWV0YV9zZXQoJiN4MDBBMDtjb25zdCYjeDAwQTA7Y2hhciYjeDAwQTA7JiN4MjJDNjtmaWVsZCwKJiN4MDBBMDs8YnIgLz5WQ2FsbGJhY2smI3gwMEEwO2ZyZWVfZm4sJiN4MDBBMDt2b2lkJiN4MDBBMDsmI3gyMkM2O3ZhbHVlLCYjeDAwQTA7c2l6ZV90JiN4MDBBMDtsZW5ndGgmI3gwMEEwOykKPC9kaXY+CjwhLS1sLiAxOTQtLT48cCBjbGFzcz0ibm9wYXIiID4KPCEtLWwuIDE5Ni0tPjxwIGNsYXNzPSJpbmRlbnQiID4gIFRoZSA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmltYWdlKCk8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gbWVtYmVyIGZ1bmN0aW9uIHByb3ZpZGVzIGFjY2VzcyB0byB0aGUKPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5JTUFHRTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBkZXNjcmlwdG9yIHVuZGVybHlpbmcgdGhlIEMrKyBBUEkuIFNlZSB0aGUgPHNwYW4gCmNsYXNzPSJjbXN5LTEwIj6nPC9zcGFuPjxhIApocmVmPSJ2aXBzbWFudWFsc2U3Lmh0bWwjeDEzLTM2MDAwMi4xIj4yLjE8IS0tdGV4NGh0OnJlZjogc2VjOmFwcGwgLS0+PC9hPiBmb3IKZGV0YWlscy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcmJhdGltIiBpZD0idmVyYmF0aW0tMTciPgogIHZvaWQmI3gwMEEwOyYjeDIyQzY7aW1hZ2UoKTsgCjwvZGl2Pgo8IS0tbC4gMjAxLS0+PHAgY2xhc3M9Im5vcGFyIiA+CjwhLS1sLiAyMDMtLT48cCBjbGFzcz0iaW5kZW50IiA+ICBUaGUgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5kYXRhKCk8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gbWVtYmVyIGZ1bmN0aW9uIHJldHVybnMgYSBwb2ludGVyIHRvIGFuCmFycmF5IG9mIHBpeGVsIGRhdGEgZm9yIHRoZSBpbWFnZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICA8ZGl2IGNsYXNzPSJ2ZXJiYXRpbSIgaWQ9InZlcmJhdGltLTE4Ij4Kdm9pZCYjeDAwQTA7JiN4MjJDNjtkYXRhKCkmI3gwMEEwO2NvbnN0Owo8L2Rpdj4KPCEtLWwuIDIwOC0tPjxwIGNsYXNzPSJub3BhciIgPgo8IS0tbC4gMjEwLS0+PHAgY2xhc3M9Im5vaW5kZW50IiA+VGhpcyBjYW4gYmUgdmVyeSBzbG93IGFuZCB1c2UgaHVnZSBhbW91bnRzIG9mIFJBTS4KPCEtLWwuIDIxMy0tPjxwIGNsYXNzPSJpbmRlbnQiID4gIFRoZSBQeXRob24gaW50ZXJmYWNlIGFkZHMgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj50b2J1ZmZlcjwvc3Bhbj48L3NwYW4+PC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj50b3N0cmluZzwvc3Bhbj48L3NwYW4+PC9zcGFuPi4KVGhlc2Ugb3BlcmF0aW9ucyBjYWxsIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+ZGF0YSgpPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHRvIGdlbmVyYXRlIHRoZSBpbWFnZSBwaXhlbHMKYW5kIHRoZW4gZWl0aGVyIGNvcHkgaXQgYW5kIHJldHVybiB0aGUgY29weSBhcyBhIHN0cmluZywgb3IKd3JhcCB0aGUgcGl4ZWxzIHVwIGFzIGEgUHl0aG9uIGJ1ZmZlciBvYmplY3QuCjwhLS1sLiAyMTgtLT48cCBjbGFzcz0iaW5kZW50IiA+ICBVc2UgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj50b3N0cmluZzwvc3Bhbj48L3NwYW4+PC9zcGFuPiB0byBhdm9pZCB3b3JyaWVzIGFib3V0IG9iamVjdCBsaWZldGltZSwKYnV0IHlvdSYjODIxNztsbCBzZWUgYSBsb3Qgb2YgY29waWVzIGFuZCBoaWdoIG1lbW9yeSB1c2UuIFVzZQo8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPnRvYnVmZmVyPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGZvciBzcGVlZCwgYnV0IHlvdSBoYXZlIHRvIG1hbmFnZSBvYmplY3QKbGlmZXRpbWUgeW91cnNlbGYuCjwhLS1sLiAyMjItLT48cCBjbGFzcz0iaW5kZW50IiA+ICBUaGV5IGFyZSB1c2VmdWwgZm9yIG1vdmluZyBpbWFnZXMgZnJvbSBWSVBTIGludG8gb3RoZXIKaW1hZ2UgcHJvY2Vzc2luZyBsaWJyYXJpZXMuIFRoZXJlJiM4MjE3O3MgYWxzbyBhIHV0aWxpdHkgZnVuY3Rpb24sCjxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+UElMX21vZGVfZnJvbV92aXBzPC9zcGFuPjwvc3Bhbj48L3NwYW4+LCB3aGljaCBtYWtlcyBhIFBJTCBtb2RlIGZyb20KYSBWSVBTIGltYWdlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVyYmF0aW0iIGlkPSJ2ZXJiYXRpbS0xOSI+CiAgVkltYWdlLlBJTF9tb2RlX2Zyb21fdmlwcyYjeDAwQTA7KHZpcHMtaW1hZ2UpJiN4MDBBMDstJiN4MDAzRTsKICYjeDAwQTA7PGJyIC8+JiN4MDBBMDsmI3gwMEEwO21vZGUgCjwvZGl2Pgo8IS0tbC4gMjI5LS0+PHAgY2xhc3M9Im5vcGFyIiA+CjwhLS1sLiAyMzEtLT48cCBjbGFzcz0iaW5kZW50IiA+ICBTZWUgYWxzbyA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmZyb21idWZmZXI8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+ZnJvbXN0cmluZzwvc3Bhbj48L3NwYW4+PC9zcGFuPiBhYm92ZS4KPCEtLWwuIDIzMy0tPjxwIGNsYXNzPSJub2luZGVudCIgPgogICAgPGg0IGNsYXNzPSJzdWJzZWN0aW9uSGVhZCI+PHNwYW4gY2xhc3M9InRpdGxlbWFyayI+MS4zLjQgICAgPC9zcGFuPiA8YSAKIGlkPSJ4OC0xNTAwMDEuMy40Ij48L2E+QXNzaWdubWVudDwvaDQ+CjwhLS1sLiAyMzUtLT48cCBjbGFzcz0ibm9pbmRlbnQiID48c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBkZWZpbmVzIGNvcHkgYW5kIGFzc2lnbm1lbnQsIHdpdGggcmVmZXJlbmNlLWNvdW50ZWQsCnBvaW50ZXItc3R5bGUgc2VtYW50aWNzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHdyaXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIDxkaXYgY2xhc3M9InZlcmJhdGltIiBpZD0idmVyYmF0aW0tMjAiPgpWSW1hZ2UmI3gwMEEwO2ZyZWQoJiN4MDBBMDsiZnJlZC52IiYjeDAwQTA7KTsKJiN4MDBBMDs8YnIgLz5WSW1hZ2UmI3gwMEEwO2ppbSgmI3gwMEEwOyJqaW0udiImI3gwMEEwOyk7CiYjeDAwQTA7PGJyIC8+CiYjeDAwQTA7PGJyIC8+ZnJlZCYjeDAwQTA7PSYjeDAwQTA7amltOwo8L2Rpdj4KPCEtLWwuIDI0My0tPjxwIGNsYXNzPSJub3BhciIgPgo8IS0tbC4gMjQ1LS0+PHAgY2xhc3M9ImluZGVudCIgPiAgVGhpcyB3aWxsIGF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIGZpbGUgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5mcmVkLnY8L3NwYW4+PC9zcGFuPjwvc3Bhbj4sIGFuZCBtYWtlCnRoZSB2YXJpYWJsZSA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmZyZWQ8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gcG9pbnQgdG8gdGhlIGltYWdlIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+amltLnY8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gaW5zdGVhZC4gQm90aAo8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmppbTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5mcmVkPC9zcGFuPjwvc3Bhbj48L3NwYW4+IG5vdyBwb2ludCB0byB0aGUgc2FtZSB1bmRlcmx5aW5nIGltYWdlCm9iamVjdC4KPCEtLWwuIDI0OS0tPjxwIGNsYXNzPSJpbmRlbnQiID4gIEludGVybmFsbHksIGEgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5WSW1hZ2U8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gb2JqZWN0IGlzIGp1c3QgYSBwb2ludGVyIHRvIGEKcmVmZXJlbmNlLWNvdW50aW5nIGJsb2NrLCB3aGljaCBpbiB0dXJuIGhvbGRzIGEgcG9pbnRlciB0bwp0aGUgdW5kZXJseWluZyBWSVBTIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+SU1BR0U8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gdHlwZS4gWW91IGNhbiB0aGVyZWZvcmUKZWZmaWNpZW50bHkgcGFzcyA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBvYmplY3RzIHRvIGZ1bmN0aW9ucyBieSB2YWx1ZSwgYW5kCnJldHVybiA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBvYmplY3RzIGFzIGZ1bmN0aW9uIHJlc3VsdHMuCjwhLS1sLiAyNTQtLT48cCBjbGFzcz0ibm9pbmRlbnQiID4KICA8aDQgY2xhc3M9InN1YnNlY3Rpb25IZWFkIj48c3BhbiBjbGFzcz0idGl0bGVtYXJrIj4xLjMuNSAgICA8L3NwYW4+IDxhIAogaWQ9Ing4LTE2MDAwMS4zLjUiPjwvYT5Db21wdXRpbmcgd2l0aCA8c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj5zPC9oND4KPCEtLWwuIDI1Ny0tPjxwIGNsYXNzPSJub2luZGVudCIgPkFsbCBWSVBTIGltYWdlIHByb2Nlc3Npbmcgb3BlcmF0aW9ucyBhcmUgbWVtYmVyCmZ1bmN0aW9ucyBvZiB0aGUgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5WSW1hZ2U8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gY2xhc3MuIEZvciBleGFtcGxlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVyYmF0aW0iIGlkPSJ2ZXJiYXRpbS0yMSI+CiAgVkltYWdlJiN4MDBBMDtmcmVkKCYjeDAwQTA7ImZyZWQudiImI3gwMEEwOyk7CiAmI3gwMEEwOzxiciAvPlZJbWFnZSYjeDAwQTA7amltKCYjeDAwQTA7ImppbS52IiYjeDAwQTA7KTsKICYjeDAwQTA7PGJyIC8+CiAmI3gwMEEwOzxiciAvPlZJbWFnZSYjeDAwQTA7cmVzdWx0JiN4MDBBMDs9JiN4MDBBMDtmcmVkLmNvcygpJiN4MDBBMDsrJiN4MDBBMDtqaW07IAo8L2Rpdj4KPCEtLWwuIDI2NS0tPjxwIGNsYXNzPSJub3BhciIgPgo8IS0tbC4gMjY3LS0+PHAgY2xhc3M9ImluZGVudCIgPiAgV2lsbCBhcHBseSA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmltX2Nvc3RyYSgpPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHRvIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+ZnJlZC52PC9zcGFuPjwvc3Bhbj48L3NwYW4+LCBtYWtpbmcgYW4KaW1hZ2Ugd2hlcmUgZWFjaCBwaXhlbCBpcyB0aGUgY29zaW5lIG9mIHRoZSBjb3JyZXNwb25kaW5nCnBpeGVsIGluIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+ZnJlZC52PC9zcGFuPjwvc3Bhbj48L3NwYW4+OyB0aGVuIGFkZCB0aGF0IGltYWdlIHRvIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+amltLnY8L3NwYW4+PC9zcGFuPjwvc3Bhbj4uIEZpbmFsbHksCnRoZSByZXN1bHQgd2lsbCBiZSBoZWxkIGluIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+cmVzdWx0PC9zcGFuPjwvc3Bhbj48L3NwYW4+Lgo8IS0tbC4gMjcxLS0+PHAgY2xhc3M9ImluZGVudCIgPiAgICBWSVBTIGlzIGEgZGVtYW5kLWRyaXZlbiBpbWFnZSBwcm9jZXNzaW5nIHN5c3RlbToKd2hlbiBpdCBjb21wdXRlcyBleHByZXNzaW9ucyBsaWtlIHRoaXMsIG5vIGFjdHVhbCBwaXhlbHMKYXJlIGNhbGN1bGF0ZWQgKGFsdGhvdWdoIHlvdSBjYW4gdXNlIHRoZSBwcm9qZWN0aW9uCmZ1bmN0aW9ucyBvbiBpbWFnZXMgJiM4MjEyOyA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPnJlc3VsdC5CYW5kRm10KCk8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gZm9yCmV4YW1wbGUpLiBXaGVuIHlvdSBmaW5hbGx5IHdyaXRlIHRoZSByZXN1bHQgdG8gYSBmaWxlIChvcgp1c2Ugc29tZSBvcGVyYXRpb24gdGhhdCBuZWVkcyBwaXhlbCB2YWx1ZXMsIHN1Y2ggYXMKPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5taW4oKTwvc3Bhbj48L3NwYW4+PC9zcGFuPiwgZmluZCBtaW5pbXVtIHZhbHVlKSwgVklQUyBldmFsdWF0ZXMgYWxsIG9mIHRoZQpvcGVyYXRpb25zIHlvdSBoYXZlIGNhbGxlZCB0byB0aGF0IHBvaW50IGluIHBhcmFsbGVsLiBJZiB5b3UKaGF2ZSBtb3JlIHRoYW4gb25lIENQVSBpbiB5b3VyIG1hY2hpbmUsIHRoZSBsb2FkCmlzIHNwcmVhZCBvdmVyIHRoZSBhdmFpbGFibGUgcHJvY2Vzc29ycy4gVGhpcyBtZWFucwp0aGF0IHRoZXJlIGlzIG5vIGxpbWl0IHRvIHRoZSBzaXplIG9mIHRoZSBpbWFnZXMgeW91IGNhbgpwcm9jZXNzLgo8IS0tbC4gMjgwLS0+PHAgY2xhc3M9ImluZGVudCIgPiAgICA8c3BhbiAKY2xhc3M9ImNtc3ktMTAiPqc8L3NwYW4+PGEgCmhyZWY9InZpcHNtYW51YWxzZTE4Lmh0bWwjeDI2LTEwNjAwMDQuMiI+NC4yPCEtLXRleDRodDpyZWY6IHNlYzpwYWNrYWdlcyAtLT48L2E+IGxpc3RzIGFsbCBvZiB0aGUgVklQUyBwYWNrYWdlcy4gVGhlc2UgZ2VuZXJhbCBydWxlcwphcHBseToKICAgICAgICA8dWwgY2xhc3M9Iml0ZW1pemUxIj4KICAgICAgICA8bGkgY2xhc3M9Iml0ZW1pemUiPlZJUFMgICBvcGVyYXRpb24gICBuYW1lcyAgIGJlY29tZSAgIEMrKyAgIG1lbWJlcgogICAgICAgIGZ1bmN0aW9uICBuYW1lcyAgYnkgIGRyb3BwaW5nICB0aGUgIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+aW1fPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHByZWZpeCwgIGFuZAogICAgICAgIGlmIHByZXNlbnQsIHRoZSA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPnRyYTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBwb3N0Zml4LCB0aGUgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5jb25zdDwvc3Bhbj48L3NwYW4+PC9zcGFuPiBwb3N0Zml4IGFuZAogICAgICAgIHRoZSA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPl92ZWM8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gcG9zdGZpeC4gRm9yIGV4YW1wbGUsIHRoZSBWSVBTIG9wZXJhdGlvbgogICAgICAgIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+aW1fZXh0cmFjdCgpPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGJlY29tZXMgICA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmV4dHJhY3QoKTwvc3Bhbj48L3NwYW4+PC9zcGFuPiwgICBhbmQKICAgICAgICA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmltX2Nvc3RyYSgpPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGJlY29tZXMgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5jb3MoKTwvc3Bhbj48L3NwYW4+PC9zcGFuPi4KICAgICAgICA8L2xpPgogICAgICAgIDxsaSBjbGFzcz0iaXRlbWl6ZSI+VGhlICAgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5WSW1hZ2U8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gb2JqZWN0ICAgdG8gICB3aGljaCAgIHlvdSAgIGFwcGx5ICAgdGhlCiAgICAgICAgbWVtYmVyICBmdW5jdGlvbiAgaXMgIHRoZSAgZmlyc3QgIGlucHV0ICBpbWFnZSwgIHRoZQogICAgICAgIG1lbWJlciBmdW5jdGlvbiByZXR1cm5zIHRoZSBmaXJzdCBvdXRwdXQuIElmIHRoZXJlIGlzCiAgICAgICAgbm8gaW1hZ2UgaW5wdXQsIHRoZSBtZW1iZXIgaXMgZGVjbGFyZWQgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5zdGF0aWM8L3NwYW4+PC9zcGFuPjwvc3Bhbj4uCiAgICAgICAgPCEtLWwuIDI5Ny0tPjxwIGNsYXNzPSJub2luZGVudCIgPkZvciAgIGV4YW1wbGUsICAgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5pbV9wcm9qZWN0KDMpPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHJldHVybnMgICB0d28KICAgICAgICBpbWFnZXMuIFlvdSBjYW4gY2FsbCBpdCBmcm9tIFB5dGhvbiBsaWtlIHRoaXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICA8ZGl2IGNsYXNzPSJ2ZXJiYXRpbSIgaWQ9InZlcmJhdGltLTIyIj4KICAgIGhvdXQmI3gwMEEwOz0mI3gwMEEwO1ZJbWFnZS5WSW1hZ2UmI3gwMEEwOygpCiAgICAmI3gwMEEwOzxiciAvPnZvdXQmI3gwMEEwOz0mI3gwMEEwO2ltLnByb2plY3QmI3gwMEEwOyhob3V0KQo8L2Rpdj4KICAgIDwhLS1sLiAzMDMtLT48cCBjbGFzcz0ibm9wYXIiID4KICAgIDwhLS1sLiAzMDUtLT48cCBjbGFzcz0ibm9pbmRlbnQiID5JbiBvdGhlciB3b3JkcywgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj4ucHJvamVjdCgpPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHdyaXRlcyB0aGUgc2Vjb25kIHJlc3VsdAogICAgdG8gdGhlIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+VkltYWdlPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHlvdSBwYXNzIGFzIGFuIGFyZ3VtZW50LgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0iaXRlbWl6ZSI+PHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5JTlRNQVNLPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPkRPVUJMRU1BU0s8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gdHlwZXMgYmVjb21lIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+Vk1hc2s8L3NwYW4+PC9zcGFuPjwvc3Bhbj4KICAgIG9iamVjdHMsIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+aW1fY29sX2Rpc3BsYXk8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gdHlwZXMgYmVjb21lIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+VkRpc3BsYXk8L3NwYW4+PC9zcGFuPjwvc3Bhbj4KICAgIG9iamVjdHMuCiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJpdGVtaXplIj5TZXZlcmFsIEMgQVBJIGZ1bmN0aW9ucyBjYW4gbWFwIHRvIHRoZSBzYW1lCiAgICBDKysgQVBJIG1lbWJlci4gRm9yIGV4YW1wbGUsIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+aW1fYW5kaW1hZ2U8L3NwYW4+PC9zcGFuPjwvc3Bhbj4sCiAgICA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPmltX2FuZGltYWdlX3ZlYzwvc3Bhbj48L3NwYW4+PC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5pbV9hbmRpbWFnZWNvbnN0PC9zcGFuPjwvc3Bhbj48L3NwYW4+IGFsbAogICAgbWFwIHRvIHRoZSBtZW1iZXIgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5hbmRpbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPi4gVGhlIEFQSSByZWxpZXMgb24KICAgIG92ZXJsb2FkaW5nIHRvIGRpc2NyaW1pbmF0ZSBiZXR3ZWVuIHRoZXNlIGZ1bmN0aW9ucy4KICAgIDwvbGk+PC91bD4KPCEtLWwuIDMyMS0tPjxwIGNsYXNzPSJpbmRlbnQiID4gIFRoaXMgcGFydCBvZiB0aGUgQysrIEFQSSBpcyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseQpmcm9tIHRoZSBWSVBTIGZ1bmN0aW9uIGRhdGFiYXNlLCBzbyBpdCBzaG91bGQgYWxsIGJlCnVwLXRvLWRhdGUuCjwhLS1sLiAzMjQtLT48cCBjbGFzcz0iaW5kZW50IiA+ICBUaGVyZSBhcmUgYSBzZXQgb2YgYXJpdGhtZXRpYyBvcGVyYXRvcnMgZGVmaW5lZCBmb3IgeW91cgpjb252ZW5pZW5jZS4gWW91IGNhbiBnZW5lcmFsbHkgd3JpdGUgYW55IGFyaXRobWV0aWMKZXhwcmVzc2lvbiBhbmQgaW5jbHVkZSA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPiBpbiB0aGVyZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcmJhdGltIiBpZD0idmVyYmF0aW0tMjMiPgogIFZJbWFnZSYjeDAwQTA7ZnJlZCgmI3gwMEEwOyJmcmVkLnYiJiN4MDBBMDspOwogJiN4MDBBMDs8YnIgLz5WSW1hZ2UmI3gwMEEwO2ppbSgmI3gwMEEwOyJqaW0udiImI3gwMEEwOyk7CiAmI3gwMEEwOzxiciAvPgogJiN4MDBBMDs8YnIgLz5WaW1hZ2UmI3gwMEEwO3YmI3gwMEEwOz0mI3gwMEEwO2ludCgoZnJlZCYjeDAwQTA7KyYjeDAwQTA7amltKSYjeDAwQTA7LyYjeDAwQTA7Mik7IAo8L2Rpdj4KPCEtLWwuIDMzMi0tPjxwIGNsYXNzPSJub3BhciIgPgo8IS0tbC4gMzM0LS0+PHAgY2xhc3M9Im5vaW5kZW50IiA+CiAgPGg0IGNsYXNzPSJzdWJzZWN0aW9uSGVhZCI+PHNwYW4gY2xhc3M9InRpdGxlbWFyayI+MS4zLjYgICAgPC9zcGFuPiA8YSAKIGlkPSJ4OC0xNzAwMDEuMy42Ij48L2E+V3JpdGluZyByZXN1bHRzPC9oND4KPCEtLWwuIDMzNi0tPjxwIGNsYXNzPSJub2luZGVudCIgPk9uY2UgeW91IGhhdmUgY29tcHV0ZWQgc29tZSByZXN1bHQsIHlvdSBjYW4gd3JpdGUgaXQgdG8gYQpmaWxlIHdpdGggdGhlIG1lbWJlciA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPndyaXRlKCk8L3NwYW4+PC9zcGFuPjwvc3Bhbj4uIEl0IHRha2VzIHRoZSBmb2xsb3dpbmcKZm9ybXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgPGRpdiBjbGFzcz0idmVyYmF0aW0iIGlkPSJ2ZXJiYXRpbS0yNCI+ClZJbWFnZSYjeDAwQTA7d3JpdGUoJiN4MDBBMDtjb25zdCYjeDAwQTA7Y2hhciYjeDAwQTA7JiN4MjJDNjtuYW1lJiN4MDBBMDspOwomI3gwMEEwOzxiciAvPlZJbWFnZSYjeDAwQTA7d3JpdGUoJiN4MDBBMDtWSW1hZ2UmI3gwMEEwO291dCYjeDAwQTA7KTsKJiN4MDBBMDs8YnIgLz5WSW1hZ2UmI3gwMEEwO3dyaXRlKCk7CjwvZGl2Pgo8IS0tbC4gMzQzLS0+PHAgY2xhc3M9Im5vcGFyIiA+CjwhLS1sLiAzNDUtLT48cCBjbGFzcz0iaW5kZW50IiA+ICBUaGUgZmlyc3QgZm9ybSBzaW1wbHkgd3JpdGVzIHRoZSBpbWFnZSB0byB0aGUgbmFtZWQgZmlsZS4KVGhlIHNlY29uZCBmb3JtIHdyaXRlcyB0aGUgaW1hZ2UgdG8gdGhlIHNwZWNpZmllZCA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPgpvYmplY3QsIGZvciBleGFtcGxlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVyYmF0aW0iIGlkPSJ2ZXJiYXRpbS0yNSI+CiAgVkltYWdlJiN4MDBBMDtmcmVkKCYjeDAwQTA7ImZyZWQudiImI3gwMEEwOyk7CiAmI3gwMEEwOzxiciAvPlZJbWFnZSYjeDAwQTA7amltKCYjeDAwQTA7ImppbSYjeDAwQTA7YnVmZmVyIiwmI3gwMEEwOyJ0IiYjeDAwQTA7KTsKICYjeDAwQTA7PGJyIC8+CiAmI3gwMEEwOzxiciAvPlZpbWFnZSYjeDAwQTA7diYjeDAwQTA7PSYjeDAwQTA7KGZyZWQmI3gwMEEwOysmI3gwMEEwOzQyKS53cml0ZSgmI3gwMEEwO2ppbSYjeDAwQTA7KTsgCjwvZGl2Pgo8IS0tbC4gMzUzLS0+PHAgY2xhc3M9Im5vcGFyIiA+CjwhLS1sLiAzNTUtLT48cCBjbGFzcz0ibm9pbmRlbnQiID5UaGlzIGNyZWF0ZXMgYSB0ZW1wb3JhcnkgbWVtb3J5IGJ1ZmZlciBjYWxsZWQgPHNwYW4gY2xhc3M9Im9iZXlsaW5lcy1oIj48c3BhbiBjbGFzcz0idmVyYiI+PHNwYW4gCmNsYXNzPSJwY3JyN3QtIj5qaW08L3NwYW4+PC9zcGFuPjwvc3Bhbj4sIGFuZApmaWxscyBpdCB3aXRoIHRoZSByZXN1bHQgb2YgYWRkaW5nIDQyIHRvIGV2ZXJ5IHBpeGVsIGluCjxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+ZnJlZC52PC9zcGFuPjwvc3Bhbj48L3NwYW4+Lgo8IS0tbC4gMzU5LS0+PHAgY2xhc3M9ImluZGVudCIgPiAgICBUaGUgZmluYWwgZm9ybSBvZiA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPndyaXRlKCk8L3NwYW4+PC9zcGFuPjwvc3Bhbj4gd3JpdGVzIHRoZSBpbWFnZSB0byBhCm1lbW9yeSBidWZmZXIsIGFuZCByZXR1cm5zIHRoYXQuCjwhLS1sLiAzNjItLT48cCBjbGFzcz0ibm9pbmRlbnQiID4KICAgIDxoNCBjbGFzcz0ic3Vic2VjdGlvbkhlYWQiPjxzcGFuIGNsYXNzPSJ0aXRsZW1hcmsiPjEuMy43ICAgIDwvc3Bhbj4gPGEgCiBpZD0ieDgtMTgwMDAxLjMuNyI+PC9hPlR5cGUgY29udmVyc2lvbnM8L2g0Pgo8IS0tbC4gMzY0LS0+PHAgY2xhc3M9Im5vaW5kZW50IiA+VHdvIHR5cGUgY29udmVyc2lvbnMgYXJlIGRlZmluZWQ6IHlvdSBjYW4gY2FzdCA8c3BhbiBjbGFzcz0ib2JleWxpbmVzLWgiPjxzcGFuIGNsYXNzPSJ2ZXJiIj48c3BhbiAKY2xhc3M9InBjcnI3dC0iPlZJbWFnZTwvc3Bhbj48L3NwYW4+PC9zcGFuPiB0bwphIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+VkRNYXNrPC9zcGFuPjwvc3Bhbj48L3NwYW4+IGFuZCB0byBhIDxzcGFuIGNsYXNzPSJvYmV5bGluZXMtaCI+PHNwYW4gY2xhc3M9InZlcmIiPjxzcGFuIApjbGFzcz0icGNycjd0LSI+VklNYXNrPC9zcGFuPjwvc3Bhbj48L3NwYW4+LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIDxkaXYgY2xhc3M9InZlcmJhdGltIiBpZD0idmVyYmF0aW0tMjYiPgpvcGVyYXRvciYjeDAwQTA7VkRNYXNrKCk7CiYjeDAwQTA7PGJyIC8+b3BlcmF0b3ImI3gwMEEwO1ZJTWFzaygpOwo8L2Rpdj4KPCEtLWwuIDM3MC0tPjxwIGNsYXNzPSJub3BhciIgPgo8IS0tbC4gMzcyLS0+PHAgY2xhc3M9ImluZGVudCIgPiAgVGhlc2Ugb3BlcmF0aW9ucyBhcmUgc2xvdyBhbmQgbmVlZCBhIGxvdCBvZiBtZW1vcnkhCkVtZXJnZW5jaWVzIG9ubHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICA8IS0tbC4gMS0tPjxkaXYgY2xhc3M9ImNyb3NzbGlua3MiPjxwIGNsYXNzPSJub2luZGVudCI+WzxhIApocmVmPSJ2aXBzbWFudWFsc2U0Lmh0bWwiID5uZXh0PC9hPl0gWzxhIApocmVmPSJ2aXBzbWFudWFsc2UyLmh0bWwiID5wcmV2PC9hPl0gWzxhIApocmVmPSJ2aXBzbWFudWFsc2UyLmh0bWwjdGFpbHZpcHNtYW51YWxzZTIuaHRtbCIgPnByZXYtdGFpbDwvYT5dIFs8YSAKaHJlZj0idmlwc21hbnVhbHNlMy5odG1sIiA+ZnJvbnQ8L2E+XSBbPGEgCmhyZWY9InZpcHNtYW51YWxjaDEuaHRtbCN2aXBzbWFudWFsc2UzLmh0bWwiID51cDwvYT5dIDwvcD48L2Rpdj4KPCEtLWwuIDEtLT48cCBjbGFzcz0iaW5kZW50IiA+ICA8YSAKIGlkPSJ0YWlsdmlwc21hbnVhbHNlMy5odG1sIj48L2E+ICAgCjwvYm9keT48L2h0bWw+IAo=