PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTI6NTcgRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBDbGFzcyAgUU5hbWUNCjwvVElUTEU+DQo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+DQo8L0hFQUQ+DQo8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+DQoNCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4NCjxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4NCjxUUj4NCjxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4NCjxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPg0KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9RTmFtZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPC9UUj4NCjwvVEFCTEU+DQo8L1REPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+DQo8L0VNPg0KPC9URD4NCjwvVFI+DQoNCjxUUj4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9QcmVmaXhSZXNvbHZlckRlZmF1bHQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9TQVhTb3VyY2VMb2NhdG9yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJRTmFtZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPFRSPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCiAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQpERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4NCg0KPEhSPg0KPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPg0KPEgyPg0KPEZPTlQgU0laRT0iLTEiPg0Kb3JnLmFwYWNoZS54bWwudXRpbHM8L0ZPTlQ+DQo8QlI+DQpDbGFzcyAgUU5hbWU8L0gyPg0KPFBSRT4NCmphdmEubGFuZy5PYmplY3QNCiAgfA0KICArLS08Qj5vcmcuYXBhY2hlLnhtbC51dGlscy5RTmFtZTwvQj4NCjwvUFJFPg0KPEhSPg0KPERMPg0KPERUPnB1YmxpYyBjbGFzcyA8Qj5RTmFtZTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPg0KDQo8UD4NCkNsYXNzIHRvIHJlcHJlc2VudCBhIHF1YWxpZmllZCBuYW1lOiAiVGhlIG5hbWUgb2YgYW4gaW50ZXJuYWwgWFNMVCBvYmplY3QsCiBzcGVjaWZpY2FsbHkgYSBuYW1lZCB0ZW1wbGF0ZSAoc2VlIFs3IE5hbWVkIFRlbXBsYXRlc10pLCBhIG1vZGUgKHNlZSBbNi43IE1vZGVzXSksCiBhbiBhdHRyaWJ1dGUgc2V0IChzZWUgWzguMS40IE5hbWVkIEF0dHJpYnV0ZSBTZXRzXSksIGEga2V5IChzZWUgWzE0LjIgS2V5c10pLAogYSBsb2NhbGUgKHNlZSBbMTQuMyBOdW1iZXIgRm9ybWF0dGluZ10pLCBhIHZhcmlhYmxlIG9yIGEgcGFyYW1ldGVyIChzZWUKIFsxMiBWYXJpYWJsZXMgYW5kIFBhcmFtZXRlcnNdKSBpcyBzcGVjaWZpZWQgYXMgYSBRTmFtZS4gSWYgaXQgaGFzIGEgcHJlZml4LAogdGhlbiB0aGUgcHJlZml4IGlzIGV4cGFuZGVkIGludG8gYSBVUkkgcmVmZXJlbmNlIHVzaW5nIHRoZSBuYW1lc3BhY2UgZGVjbGFyYXRpb25zCiBpbiBlZmZlY3Qgb24gdGhlIGF0dHJpYnV0ZSBpbiB3aGljaCB0aGUgbmFtZSBvY2N1cnMuIFRoZSBleHBhbmRlZCBuYW1lCiBjb25zaXN0aW5nIG9mIHRoZSBsb2NhbCBwYXJ0IG9mIHRoZSBuYW1lIGFuZCB0aGUgcG9zc2libHkgbnVsbCBVUkkgcmVmZXJlbmNlCiBpcyB1c2VkIGFzIHRoZSBuYW1lIG9mIHRoZSBvYmplY3QuIFRoZSBkZWZhdWx0IG5hbWVzcGFjZSBpcyBub3QgdXNlZCBmb3IKIHVucHJlZml4ZWQgbmFtZXMuIg0KPFA+DQo8REw+DQo8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS54bWwudXRpbHMuUU5hbWUiPlNlcmlhbGl6ZWQgRm9ybTwvQT48RFQ+PEI+VXNhZ2U6PC9CPjxERD48L0REPg0KPC9ETD4NCjxIUj4NCg0KPFA+DQo8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPg0KDQo8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4NCjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPg0KPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNTX1hNTE5BTUVTUEFDRVVSSSI+U19YTUxOQU1FU1BBQ0VVUkk8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIFhNTCBuYW1lc3BhY2UuPC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7DQo8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+DQoNCjxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1FOYW1lLmh0bWwjUU5hbWUoKSI+UU5hbWU8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RzIGFuIGVtcHR5IFFOYW1lLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNRTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+UU5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxOYW1lKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgUU5hbWUgZnJvbSBhIHN0cmluZywgd2l0aG91dCBuYW1lc3BhY2UgcmVzb2x1dGlvbi48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1FOYW1lLmh0bWwjUU5hbWUoamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPlFOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsTmFtZSwKICAgICAgYm9vbGVhbiZuYnNwO3ZhbGlkYXRlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgUU5hbWUgZnJvbSBhIHN0cmluZywgd2l0aG91dCBuYW1lc3BhY2UgcmVzb2x1dGlvbi48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1FOYW1lLmh0bWwjUU5hbWUoamF2YS5sYW5nLlN0cmluZywgb3JnLnczYy5kb20uRWxlbWVudCwgb3JnLmFwYWNoZS54bWwudXRpbHMuUHJlZml4UmVzb2x2ZXIpIj5RTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vRWxlbWVudC5odG1sIj5FbGVtZW50PC9BPiZuYnNwO25hbWVzcGFjZUNvbnRleHQsCiAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1ByZWZpeFJlc29sdmVyLmh0bWwiPlByZWZpeFJlc29sdmVyPC9BPiZuYnNwO3Jlc29sdmVyKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgUU5hbWUgZnJvbSBhIHN0cmluZywgcmVzb2x2aW5nIHRoZSBwcmVmaXgKIHVzaW5nIHRoZSBnaXZlbiBuYW1lc3BhY2UgY29udGV4dCBhbmQgcHJlZml4IHJlc29sdmVyLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNRTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBvcmcudzNjLmRvbS5FbGVtZW50LCBvcmcuYXBhY2hlLnhtbC51dGlscy5QcmVmaXhSZXNvbHZlciwgYm9vbGVhbikiPlFOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3FuYW1lLAogICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9FbGVtZW50Lmh0bWwiPkVsZW1lbnQ8L0E+Jm5ic3A7bmFtZXNwYWNlQ29udGV4dCwKICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUHJlZml4UmVzb2x2ZXIuaHRtbCI+UHJlZml4UmVzb2x2ZXI8L0E+Jm5ic3A7cmVzb2x2ZXIsCiAgICAgIGJvb2xlYW4mbmJzcDt2YWxpZGF0ZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIFFOYW1lIGZyb20gYSBzdHJpbmcsIHJlc29sdmluZyB0aGUgcHJlZml4CiB1c2luZyB0aGUgZ2l2ZW4gbmFtZXNwYWNlIGNvbnRleHQgYW5kIHByZWZpeCByZXNvbHZlci48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1FOYW1lLmh0bWwjUU5hbWUoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS54bWwudXRpbHMuUHJlZml4UmVzb2x2ZXIpIj5RTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUHJlZml4UmVzb2x2ZXIuaHRtbCI+UHJlZml4UmVzb2x2ZXI8L0E+Jm5ic3A7cmVzb2x2ZXIpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBRTmFtZSBmcm9tIGEgc3RyaW5nLCByZXNvbHZpbmcgdGhlIHByZWZpeAogdXNpbmcgdGhlIGdpdmVuIG5hbWVzcGFjZSBzdGFjay48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1FOYW1lLmh0bWwjUU5hbWUoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS54bWwudXRpbHMuUHJlZml4UmVzb2x2ZXIsIGJvb2xlYW4pIj5RTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUHJlZml4UmVzb2x2ZXIuaHRtbCI+UHJlZml4UmVzb2x2ZXI8L0E+Jm5ic3A7cmVzb2x2ZXIsCiAgICAgIGJvb2xlYW4mbmJzcDt2YWxpZGF0ZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIFFOYW1lIGZyb20gYSBzdHJpbmcsIHJlc29sdmluZyB0aGUgcHJlZml4CiB1c2luZyB0aGUgZ2l2ZW4gbmFtZXNwYWNlIHN0YWNrLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNRTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuU3RhY2spIj5RTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgamF2YS51dGlsLlN0YWNrJm5ic3A7bmFtZXNwYWNlcyk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIFFOYW1lIGZyb20gYSBzdHJpbmcsIHJlc29sdmluZyB0aGUgcHJlZml4CiB1c2luZyB0aGUgZ2l2ZW4gbmFtZXNwYWNlIHN0YWNrLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNRTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuU3RhY2ssIGJvb2xlYW4pIj5RTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgamF2YS51dGlsLlN0YWNrJm5ic3A7bmFtZXNwYWNlcywKICAgICAgYm9vbGVhbiZuYnNwO3ZhbGlkYXRlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgUU5hbWUgZnJvbSBhIHN0cmluZywgcmVzb2x2aW5nIHRoZSBwcmVmaXgKIHVzaW5nIHRoZSBnaXZlbiBuYW1lc3BhY2Ugc3RhY2suPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9RTmFtZS5odG1sI1FOYW1lKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5RTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lc3BhY2VVUkksCiAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbE5hbWUpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RzIGEgbmV3IFFOYW1lIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lc3BhY2UgVVJJIGFuZAogbG9jYWwgbmFtZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1FOYW1lLmh0bWwjUU5hbWUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPlFOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWVzcGFjZVVSSSwKICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsTmFtZSwKICAgICAgYm9vbGVhbiZuYnNwO3ZhbGlkYXRlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0cyBhIG5ldyBRTmFtZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlIFVSSSBhbmQKIGxvY2FsIG5hbWUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9RTmFtZS5odG1sI1FOYW1lKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5RTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lc3BhY2VVUkksCiAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgsCiAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbE5hbWUpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RzIGEgbmV3IFFOYW1lIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lc3BhY2UgVVJJLCBwcmVmaXgKIGFuZCBsb2NhbCBuYW1lLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNRTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+UU5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZXNwYWNlVVJJLAogICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4LAogICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxOYW1lLAogICAgICBib29sZWFuJm5ic3A7dmFsaWRhdGUpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RzIGEgbmV3IFFOYW1lIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lc3BhY2UgVVJJLCBwcmVmaXgKIGFuZCBsb2NhbCBuYW1lLjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCiZuYnNwOw0KPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPg0KDQo8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4NCjxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9RTmFtZS5odG1sI2VxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSI+ZXF1YWxzPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO29iamVjdCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRlIGVxdWFscyBhbmQgYWdyZWUgdGhhdCB3ZSdyZSBlcXVhbCBpZgogdGhlIHBhc3NlZCBvYmplY3QgaXMgYSBRTmFtZSBhbmQgaXQgbWF0Y2hlcwogdGhlIG5hbWUgb2YgdGhlIGFyZy48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9RTmFtZS5odG1sI2VxdWFscyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+ZXF1YWxzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25zLAogICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsUGFydCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRlIGVxdWFscyBhbmQgYWdyZWUgdGhhdCB3ZSdyZSBlcXVhbCBpZgogdGhlIHBhc3NlZCBvYmplY3QgaXMgYSBzdHJpbmcgYW5kIGl0IG1hdGNoZXMKIHRoZSBuYW1lIG9mIHRoZSBhcmcuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNnZXRMb2NhbE5hbWUoKSI+Z2V0TG9jYWxOYW1lPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgbG9jYWwgcGFydCBvZiB0aGUgcXVhbGlmaWVkIG5hbWUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNnZXRMb2NhbFBhcnQoKSI+Z2V0TG9jYWxQYXJ0PC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBsb2NhbCBwYXJ0IG9mIHRoZSBxdWFsaWZpZWQgbmFtZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9RTmFtZS5odG1sI2dldExvY2FsUGFydChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0TG9jYWxQYXJ0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3FuYW1lKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZ2l2ZW4gbm9kZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9RTmFtZS5odG1sI2dldE5hbWVzcGFjZSgpIj5nZXROYW1lc3BhY2U8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIG5hbWVzcGFjZSBvZiB0aGUgcXVhbGlmaWVkIG5hbWUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNnZXROYW1lc3BhY2VVUkkoKSI+Z2V0TmFtZXNwYWNlVVJJPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgbmFtZXNwYWNlIFVSSS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9RTmFtZS5odG1sI2dldFByZWZpeCgpIj5nZXRQcmVmaXg8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBuYW1lc3BhY2UgcHJlZml4LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1FOYW1lLmh0bWwjZ2V0UHJlZml4RnJvbVhNTE5TRGVjbChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UHJlZml4RnJvbVhNTE5TRGVjbDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthdHRSYXdOYW1lKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBmdW5jdGlvbiB0ZWxscyBpZiBhIHJhdyBhdHRyaWJ1dGUgbmFtZSBpcyBhCiB4bWxucyBhdHRyaWJ1dGUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNnZXRQcmVmaXhQYXJ0KGphdmEubGFuZy5TdHJpbmcpIj5nZXRQcmVmaXhQYXJ0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3FuYW1lKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZ2l2ZW4gbm9kZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCI+UU5hbWU8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1FOYW1lLmh0bWwjZ2V0UU5hbWVGcm9tU3RyaW5nKGphdmEubGFuZy5TdHJpbmcpIj5nZXRRTmFtZUZyb21TdHJpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dpdmVuIGEgc3RyaW5nLCBjcmVhdGUgYW5kIHJldHVybiBhIFFOYW1lIG9iamVjdDwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCNoYXNoQ29kZSgpIj5oYXNoQ29kZTwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY2FjaGVkIGhhc2hjb2RlIG9mIHRoZSBxdWFsaWZpZWQgbmFtZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9RTmFtZS5odG1sI2lzWE1MTlNEZWNsKGphdmEubGFuZy5TdHJpbmcpIj5pc1hNTE5TRGVjbDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthdHRSYXdOYW1lKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBmdW5jdGlvbiB0ZWxscyBpZiBhIHJhdyBhdHRyaWJ1dGUgbmFtZSBpcyBhCiB4bWxucyBhdHRyaWJ1dGUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCN0b05hbWVzcGFjZWRTdHJpbmcoKSI+dG9OYW1lc3BhY2VkU3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHF1YWxpZmllZCBuYW1lIHVzaW5nIHRoZSAKIHRoZSAne25zfWZvbycgbm90YXRpb24uPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBxdWFsaWZpZWQgbmFtZSwgdXNpbmcgdGhlIAogcHJlZml4IGlmIGF2YWlsYWJsZSwgb3IgdGhlICd7bnN9Zm9vJyBub3RhdGlvbiBpZiBub3QuPC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4NCjxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURD48Q09ERT5nZXRDbGFzcywgDQpub3RpZnksIA0Kbm90aWZ5QWxsLCANCndhaXQsIA0Kd2FpdCwgDQp3YWl0PC9DT0RFPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCiZuYnNwOw0KPFA+DQoNCjwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4NCjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPg0KPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQoNCjxBIE5BTUU9IlNfWE1MTkFNRVNQQUNFVVJJIj48IS0tIC0tPjwvQT48SDM+DQpTX1hNTE5BTUVTUEFDRVVSSTwvSDM+DQo8UFJFPg0KcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlNfWE1MTkFNRVNQQUNFVVJJPC9CPjwvUFJFPg0KPERMPg0KPEREPlRoZSBYTUwgbmFtZXNwYWNlLjwvREw+DQoNCjwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4NCg0KPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4NCjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPg0KPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQoNCjxBIE5BTUU9IlFOYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4NClFOYW1lPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEI+UU5hbWU8L0I+KCk8L1BSRT4NCjxETD4NCjxERD5Db25zdHJ1Y3RzIGFuIGVtcHR5IFFOYW1lLgogMjAwMDEwMTk6IFRyeSBtYWtpbmcgdGhpcyBwdWJsaWMsIHRvIHN1cHBvcnQgU2VyaWFsaXphYmxlPyAtLSBKS0VTUzwvREw+DQo8SFI+DQoNCjxBIE5BTUU9IlFOYW1lKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpRTmFtZTwvSDM+DQo8UFJFPg0KcHVibGljIDxCPlFOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsTmFtZSk8L1BSRT4NCjxETD4NCjxERD5Db25zdHJ1Y3RzIGEgbmV3IFFOYW1lIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lc3BhY2UgVVJJIGFuZAogbG9jYWwgbmFtZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lc3BhY2VVUkk8L0NPREU+IC0gVGhlIG5hbWVzcGFjZSBVUkkgaWYga25vd24sIG9yIG51bGw8REQ+PENPREU+bG9jYWxOYW1lPC9DT0RFPiAtIFRoZSBsb2NhbCBuYW1lPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJRTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPg0KUU5hbWU8L0gzPg0KPFBSRT4NCnB1YmxpYyA8Qj5RTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWVzcGFjZVVSSSwKICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbE5hbWUsCiAgICAgICAgICAgICBib29sZWFuJm5ic3A7dmFsaWRhdGUpPC9QUkU+DQo8REw+DQo8REQ+Q29uc3RydWN0cyBhIG5ldyBRTmFtZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlIFVSSSBhbmQKIGxvY2FsIG5hbWUuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZXNwYWNlVVJJPC9DT0RFPiAtIFRoZSBuYW1lc3BhY2UgVVJJIGlmIGtub3duLCBvciBudWxsPEREPjxDT0RFPmxvY2FsTmFtZTwvQ09ERT4gLSBUaGUgbG9jYWwgbmFtZTxERD48Q09ERT52YWxpZGF0ZTwvQ09ERT4gLSBJZiB0cnVlIHRoZSBuZXcgUU5hbWUgd2lsbCBiZSB2YWxpZGF0ZWQgYW5kIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aWxsCiAgICAgICAgICAgICAgICAgYmUgdGhyb3duIGlmIGl0IGlzIGludmFsaWQuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJRTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KUU5hbWU8L0gzPg0KPFBSRT4NCnB1YmxpYyA8Qj5RTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWVzcGFjZVVSSSwKICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgsCiAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxOYW1lKTwvUFJFPg0KPERMPg0KPEREPkNvbnN0cnVjdHMgYSBuZXcgUU5hbWUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZSBVUkksIHByZWZpeAogYW5kIGxvY2FsIG5hbWUuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZXNwYWNlVVJJPC9DT0RFPiAtIFRoZSBuYW1lc3BhY2UgVVJJIGlmIGtub3duLCBvciBudWxsPEREPjxDT0RFPnByZWZpeDwvQ09ERT4gLSBUaGUgbmFtZXNwYWNlIHByZWZpeCBpcyBrbm93biwgb3IgbnVsbDxERD48Q09ERT5sb2NhbE5hbWU8L0NPREU+IC0gVGhlIGxvY2FsIG5hbWU8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9IlFOYW1lKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+DQpRTmFtZTwvSDM+DQo8UFJFPg0KcHVibGljIDxCPlFOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCwKICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbE5hbWUsCiAgICAgICAgICAgICBib29sZWFuJm5ic3A7dmFsaWRhdGUpPC9QUkU+DQo8REw+DQo8REQ+Q29uc3RydWN0cyBhIG5ldyBRTmFtZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlIFVSSSwgcHJlZml4CiBhbmQgbG9jYWwgbmFtZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lc3BhY2VVUkk8L0NPREU+IC0gVGhlIG5hbWVzcGFjZSBVUkkgaWYga25vd24sIG9yIG51bGw8REQ+PENPREU+cHJlZml4PC9DT0RFPiAtIFRoZSBuYW1lc3BhY2UgcHJlZml4IGlzIGtub3duLCBvciBudWxsPEREPjxDT0RFPmxvY2FsTmFtZTwvQ09ERT4gLSBUaGUgbG9jYWwgbmFtZTxERD48Q09ERT52YWxpZGF0ZTwvQ09ERT4gLSBJZiB0cnVlIHRoZSBuZXcgUU5hbWUgd2lsbCBiZSB2YWxpZGF0ZWQgYW5kIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aWxsCiAgICAgICAgICAgICAgICAgYmUgdGhyb3duIGlmIGl0IGlzIGludmFsaWQuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJRTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KUU5hbWU8L0gzPg0KPFBSRT4NCnB1YmxpYyA8Qj5RTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsTmFtZSk8L1BSRT4NCjxETD4NCjxERD5Db25zdHJ1Y3QgYSBRTmFtZSBmcm9tIGEgc3RyaW5nLCB3aXRob3V0IG5hbWVzcGFjZSByZXNvbHV0aW9uLiAgR29vZAogZm9yIGEgZmV3IG9kZCBjYXNlcy48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhbE5hbWU8L0NPREU+IC0gTG9jYWwgcGFydCBvZiBxdWFsaWZpZWQgbmFtZTwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iUU5hbWUoamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4NClFOYW1lPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEI+UU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbE5hbWUsCiAgICAgICAgICAgICBib29sZWFuJm5ic3A7dmFsaWRhdGUpPC9QUkU+DQo8REw+DQo8REQ+Q29uc3RydWN0IGEgUU5hbWUgZnJvbSBhIHN0cmluZywgd2l0aG91dCBuYW1lc3BhY2UgcmVzb2x1dGlvbi4gIEdvb2QKIGZvciBhIGZldyBvZGQgY2FzZXMuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxOYW1lPC9DT0RFPiAtIExvY2FsIHBhcnQgb2YgcXVhbGlmaWVkIG5hbWU8REQ+PENPREU+dmFsaWRhdGU8L0NPREU+IC0gSWYgdHJ1ZSB0aGUgbmV3IFFOYW1lIHdpbGwgYmUgdmFsaWRhdGVkIGFuZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2lsbAogICAgICAgICAgICAgICAgIGJlIHRocm93biBpZiBpdCBpcyBpbnZhbGlkLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iUU5hbWUoamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLlN0YWNrKSI+PCEtLSAtLT48L0E+PEgzPg0KUU5hbWU8L0gzPg0KPFBSRT4NCnB1YmxpYyA8Qj5RTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3FuYW1lLAogICAgICAgICAgICAgamF2YS51dGlsLlN0YWNrJm5ic3A7bmFtZXNwYWNlcyk8L1BSRT4NCjxETD4NCjxERD5Db25zdHJ1Y3QgYSBRTmFtZSBmcm9tIGEgc3RyaW5nLCByZXNvbHZpbmcgdGhlIHByZWZpeAogdXNpbmcgdGhlIGdpdmVuIG5hbWVzcGFjZSBzdGFjay4gVGhlIGRlZmF1bHQgbmFtZXNwYWNlIGlzCiBub3QgcmVzb2x2ZWQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cW5hbWU8L0NPREU+IC0gUXVhbGlmaWVkIG5hbWUgdG8gcmVzb2x2ZTxERD48Q09ERT5uYW1lc3BhY2VzPC9DT0RFPiAtIE5hbWVzcGFjZSBzdGFjayB0byB1c2UgdG8gcmVzb2x2ZSBuYW1lc3BhY2U8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9IlFOYW1lKGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5TdGFjaywgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4NClFOYW1lPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEI+UU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgICAgICAgIGphdmEudXRpbC5TdGFjayZuYnNwO25hbWVzcGFjZXMsCiAgICAgICAgICAgICBib29sZWFuJm5ic3A7dmFsaWRhdGUpPC9QUkU+DQo8REw+DQo8REQ+Q29uc3RydWN0IGEgUU5hbWUgZnJvbSBhIHN0cmluZywgcmVzb2x2aW5nIHRoZSBwcmVmaXgKIHVzaW5nIHRoZSBnaXZlbiBuYW1lc3BhY2Ugc3RhY2suIFRoZSBkZWZhdWx0IG5hbWVzcGFjZSBpcwogbm90IHJlc29sdmVkLjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnFuYW1lPC9DT0RFPiAtIFF1YWxpZmllZCBuYW1lIHRvIHJlc29sdmU8REQ+PENPREU+bmFtZXNwYWNlczwvQ09ERT4gLSBOYW1lc3BhY2Ugc3RhY2sgdG8gdXNlIHRvIHJlc29sdmUgbmFtZXNwYWNlPEREPjxDT0RFPnZhbGlkYXRlPC9DT0RFPiAtIElmIHRydWUgdGhlIG5ldyBRTmFtZSB3aWxsIGJlIHZhbGlkYXRlZCBhbmQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdpbGwKICAgICAgICAgICAgICAgICBiZSB0aHJvd24gaWYgaXQgaXMgaW52YWxpZC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9IlFOYW1lKGphdmEubGFuZy5TdHJpbmcsIG9yZy53M2MuZG9tLkVsZW1lbnQsIG9yZy5hcGFjaGUueG1sLnV0aWxzLlByZWZpeFJlc29sdmVyKSI+PCEtLSAtLT48L0E+PEgzPg0KUU5hbWU8L0gzPg0KPFBSRT4NCnB1YmxpYyA8Qj5RTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3FuYW1lLAogICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vRWxlbWVudC5odG1sIj5FbGVtZW50PC9BPiZuYnNwO25hbWVzcGFjZUNvbnRleHQsCiAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9QcmVmaXhSZXNvbHZlci5odG1sIj5QcmVmaXhSZXNvbHZlcjwvQT4mbmJzcDtyZXNvbHZlcik8L1BSRT4NCjxETD4NCjxERD5Db25zdHJ1Y3QgYSBRTmFtZSBmcm9tIGEgc3RyaW5nLCByZXNvbHZpbmcgdGhlIHByZWZpeAogdXNpbmcgdGhlIGdpdmVuIG5hbWVzcGFjZSBjb250ZXh0IGFuZCBwcmVmaXggcmVzb2x2ZXIuIAogVGhlIGRlZmF1bHQgbmFtZXNwYWNlIGlzIG5vdCByZXNvbHZlZC48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5xbmFtZTwvQ09ERT4gLSBRdWFsaWZpZWQgbmFtZSB0byByZXNvbHZlPEREPjxDT0RFPm5hbWVzcGFjZUNvbnRleHQ8L0NPREU+IC0gTmFtZXNwYWNlIENvbnRleHQgdG8gdXNlPEREPjxDT0RFPnJlc29sdmVyPC9DT0RFPiAtIFByZWZpeCByZXNvbHZlciBmb3IgdGhpcyBjb250ZXh0PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJRTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBvcmcudzNjLmRvbS5FbGVtZW50LCBvcmcuYXBhY2hlLnhtbC51dGlscy5QcmVmaXhSZXNvbHZlciwgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4NClFOYW1lPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEI+UU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL0VsZW1lbnQuaHRtbCI+RWxlbWVudDwvQT4mbmJzcDtuYW1lc3BhY2VDb250ZXh0LAogICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUHJlZml4UmVzb2x2ZXIuaHRtbCI+UHJlZml4UmVzb2x2ZXI8L0E+Jm5ic3A7cmVzb2x2ZXIsCiAgICAgICAgICAgICBib29sZWFuJm5ic3A7dmFsaWRhdGUpPC9QUkU+DQo8REw+DQo8REQ+Q29uc3RydWN0IGEgUU5hbWUgZnJvbSBhIHN0cmluZywgcmVzb2x2aW5nIHRoZSBwcmVmaXgKIHVzaW5nIHRoZSBnaXZlbiBuYW1lc3BhY2UgY29udGV4dCBhbmQgcHJlZml4IHJlc29sdmVyLiAKIFRoZSBkZWZhdWx0IG5hbWVzcGFjZSBpcyBub3QgcmVzb2x2ZWQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cW5hbWU8L0NPREU+IC0gUXVhbGlmaWVkIG5hbWUgdG8gcmVzb2x2ZTxERD48Q09ERT5uYW1lc3BhY2VDb250ZXh0PC9DT0RFPiAtIE5hbWVzcGFjZSBDb250ZXh0IHRvIHVzZTxERD48Q09ERT5yZXNvbHZlcjwvQ09ERT4gLSBQcmVmaXggcmVzb2x2ZXIgZm9yIHRoaXMgY29udGV4dDxERD48Q09ERT52YWxpZGF0ZTwvQ09ERT4gLSBJZiB0cnVlIHRoZSBuZXcgUU5hbWUgd2lsbCBiZSB2YWxpZGF0ZWQgYW5kIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aWxsCiAgICAgICAgICAgICAgICAgYmUgdGhyb3duIGlmIGl0IGlzIGludmFsaWQuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJRTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnhtbC51dGlscy5QcmVmaXhSZXNvbHZlcikiPjwhLS0gLS0+PC9BPjxIMz4NClFOYW1lPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEI+UU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1ByZWZpeFJlc29sdmVyLmh0bWwiPlByZWZpeFJlc29sdmVyPC9BPiZuYnNwO3Jlc29sdmVyKTwvUFJFPg0KPERMPg0KPEREPkNvbnN0cnVjdCBhIFFOYW1lIGZyb20gYSBzdHJpbmcsIHJlc29sdmluZyB0aGUgcHJlZml4CiB1c2luZyB0aGUgZ2l2ZW4gbmFtZXNwYWNlIHN0YWNrLiBUaGUgZGVmYXVsdCBuYW1lc3BhY2UgaXMKIG5vdCByZXNvbHZlZC48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5xbmFtZTwvQ09ERT4gLSBRdWFsaWZpZWQgbmFtZSB0byByZXNvbHZlPEREPjxDT0RFPnJlc29sdmVyPC9DT0RFPiAtIFByZWZpeCByZXNvbHZlciBmb3IgdGhpcyBjb250ZXh0PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJRTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnhtbC51dGlscy5QcmVmaXhSZXNvbHZlciwgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4NClFOYW1lPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEI+UU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1ByZWZpeFJlc29sdmVyLmh0bWwiPlByZWZpeFJlc29sdmVyPC9BPiZuYnNwO3Jlc29sdmVyLAogICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3ZhbGlkYXRlKTwvUFJFPg0KPERMPg0KPEREPkNvbnN0cnVjdCBhIFFOYW1lIGZyb20gYSBzdHJpbmcsIHJlc29sdmluZyB0aGUgcHJlZml4CiB1c2luZyB0aGUgZ2l2ZW4gbmFtZXNwYWNlIHN0YWNrLiBUaGUgZGVmYXVsdCBuYW1lc3BhY2UgaXMKIG5vdCByZXNvbHZlZC48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5xbmFtZTwvQ09ERT4gLSBRdWFsaWZpZWQgbmFtZSB0byByZXNvbHZlPEREPjxDT0RFPnJlc29sdmVyPC9DT0RFPiAtIFByZWZpeCByZXNvbHZlciBmb3IgdGhpcyBjb250ZXh0PEREPjxDT0RFPnZhbGlkYXRlPC9DT0RFPiAtIElmIHRydWUgdGhlIG5ldyBRTmFtZSB3aWxsIGJlIHZhbGlkYXRlZCBhbmQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdpbGwKICAgICAgICAgICAgICAgICBiZSB0aHJvd24gaWYgaXQgaXMgaW52YWxpZC48L0RMPg0KPC9ERD4NCjwvREw+DQoNCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4NCjxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCg0KPEEgTkFNRT0iZ2V0TmFtZXNwYWNlVVJJKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmdldE5hbWVzcGFjZVVSSTwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZXNwYWNlVVJJPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+UmV0dXJucyB0aGUgbmFtZXNwYWNlIFVSSS4gUmV0dXJucyBudWxsIGlmIHRoZSBuYW1lc3BhY2UgVVJJCiBpcyBub3Qga25vd24uPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIG5hbWVzcGFjZSBVUkksIG9yIG51bGw8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldFByZWZpeCgpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRQcmVmaXg8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByZWZpeDwvQj4oKTwvUFJFPg0KPERMPg0KPEREPlJldHVybnMgdGhlIG5hbWVzcGFjZSBwcmVmaXguIFJldHVybnMgbnVsbCBpZiB0aGUgbmFtZXNwYWNlCiBwcmVmaXggaXMgbm90IGtub3duLjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBuYW1lc3BhY2UgcHJlZml4LCBvciBudWxsPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRMb2NhbE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0TG9jYWxOYW1lPC9IMz4NCjxQUkU+DQpwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMb2NhbE5hbWU8L0I+KCk8L1BSRT4NCjxETD4NCjxERD5SZXR1cm5zIHRoZSBsb2NhbCBwYXJ0IG9mIHRoZSBxdWFsaWZpZWQgbmFtZS48REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgbG9jYWwgcGFydCBvZiB0aGUgcXVhbGlmaWVkIG5hbWU8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InRvU3RyaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4NCnRvU3RyaW5nPC9IMz4NCjxQUkU+DQpwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj50b1N0cmluZzwvQj4oKTwvUFJFPg0KPERMPg0KPEREPlJldHVybiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBxdWFsaWZpZWQgbmFtZSwgdXNpbmcgdGhlIAogcHJlZml4IGlmIGF2YWlsYWJsZSwgb3IgdGhlICd7bnN9Zm9vJyBub3RhdGlvbiBpZiBub3QuIFBlcmZvcm1zCiBzdHJpbmcgY29uY2F0ZW5hdGlvbiwgc28gYmV3YXJlIG9mIHBlcmZvcm1hbmNlIGlzc3Vlcy48REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBuYW1lc3BhY2U8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+dG9TdHJpbmcgaW4gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0idG9OYW1lc3BhY2VkU3RyaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4NCnRvTmFtZXNwYWNlZFN0cmluZzwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9OYW1lc3BhY2VkU3RyaW5nPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+UmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHF1YWxpZmllZCBuYW1lIHVzaW5nIHRoZSAKIHRoZSAne25zfWZvbycgbm90YXRpb24uIFBlcmZvcm1zCiBzdHJpbmcgY29uY2F0ZW5hdGlvbiwgc28gYmV3YXJlIG9mIHBlcmZvcm1hbmNlIGlzc3Vlcy48REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBuYW1lc3BhY2U8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldE5hbWVzcGFjZSgpIj48IS0tIC0tPjwvQT48SDM+DQpnZXROYW1lc3BhY2U8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWVzcGFjZTwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkdldCB0aGUgbmFtZXNwYWNlIG9mIHRoZSBxdWFsaWZpZWQgbmFtZS48REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgbmFtZXNwYWNlIFVSSSBvZiB0aGUgcXVhbGlmaWVkIG5hbWU8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldExvY2FsUGFydCgpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRMb2NhbFBhcnQ8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldExvY2FsUGFydDwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkdldCB0aGUgbG9jYWwgcGFydCBvZiB0aGUgcXVhbGlmaWVkIG5hbWUuPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dGhlIGxvY2FsIHBhcnQgb2YgdGhlIHF1YWxpZmllZCBuYW1lPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJoYXNoQ29kZSgpIj48IS0tIC0tPjwvQT48SDM+DQpoYXNoQ29kZTwvSDM+DQo8UFJFPg0KcHVibGljIGludCA8Qj5oYXNoQ29kZTwvQj4oKTwvUFJFPg0KPERMPg0KPEREPlJldHVybiB0aGUgY2FjaGVkIGhhc2hjb2RlIG9mIHRoZSBxdWFsaWZpZWQgbmFtZS48REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgY2FjaGVkIGhhc2hjb2RlIG9mIHRoZSBxdWFsaWZpZWQgbmFtZTxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD5oYXNoQ29kZSBpbiBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJlcXVhbHMoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4NCmVxdWFsczwvSDM+DQo8UFJFPg0KcHVibGljIGJvb2xlYW4gPEI+ZXF1YWxzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bnMsCiAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxQYXJ0KTwvUFJFPg0KPERMPg0KPEREPk92ZXJyaWRlIGVxdWFscyBhbmQgYWdyZWUgdGhhdCB3ZSdyZSBlcXVhbCBpZgogdGhlIHBhc3NlZCBvYmplY3QgaXMgYSBzdHJpbmcgYW5kIGl0IG1hdGNoZXMKIHRoZSBuYW1lIG9mIHRoZSBhcmcuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bnM8L0NPREU+IC0gTmFtZXNwYWNlIFVSSSB0byBjb21wYXJlIHRvPEREPjxDT0RFPmxvY2FsUGFydDwvQ09ERT4gLSBMb2NhbCBwYXJ0IG9mIHF1YWxpZmllZCBuYW1lIHRvIGNvbXBhcmUgdG88RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRydWUgaWYgdGhlIGxvY2FsIG5hbWUgYW5kIHVyaSBtYXRjaDwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZXF1YWxzKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+DQplcXVhbHM8L0gzPg0KPFBSRT4NCnB1YmxpYyBib29sZWFuIDxCPmVxdWFsczwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO29iamVjdCk8L1BSRT4NCjxETD4NCjxERD5PdmVycmlkZSBlcXVhbHMgYW5kIGFncmVlIHRoYXQgd2UncmUgZXF1YWwgaWYKIHRoZSBwYXNzZWQgb2JqZWN0IGlzIGEgUU5hbWUgYW5kIGl0IG1hdGNoZXMKIHRoZSBuYW1lIG9mIHRoZSBhcmcuPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VHJ1ZSBpZiB0aGUgcXVhbGlmaWVkIG5hbWVzIGFyZSBlcXVhbDxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD5lcXVhbHMgaW4gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0UU5hbWVGcm9tU3RyaW5nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRRTmFtZUZyb21TdHJpbmc8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvUU5hbWUuaHRtbCI+UU5hbWU8L0E+IDxCPmdldFFOYW1lRnJvbVN0cmluZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+DQo8REw+DQo8REQ+R2l2ZW4gYSBzdHJpbmcsIGNyZWF0ZSBhbmQgcmV0dXJuIGEgUU5hbWUgb2JqZWN0PEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBTdHJpbmcgdG8gdXNlIHRvIGNyZWF0ZSBRTmFtZTxEVD48Qj5SZXR1cm5zOjwvQj48REQ+YSBRTmFtZSBvYmplY3Q8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImlzWE1MTlNEZWNsKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQppc1hNTE5TRGVjbDwvSDM+DQo8UFJFPg0KcHVibGljIHN0YXRpYyBib29sZWFuIDxCPmlzWE1MTlNEZWNsPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXR0UmF3TmFtZSk8L1BSRT4NCjxETD4NCjxERD5UaGlzIGZ1bmN0aW9uIHRlbGxzIGlmIGEgcmF3IGF0dHJpYnV0ZSBuYW1lIGlzIGEKIHhtbG5zIGF0dHJpYnV0ZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hdHRSYXdOYW1lPC9DT0RFPiAtIFJhdyBuYW1lIG9mIGF0dHJpYnV0ZTxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VHJ1ZSBpZiB0aGUgYXR0cmlidXRlIHN0YXJ0cyB3aXRoIG9yIGlzIGVxdWFsIHRvIHhtbG5zPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRQcmVmaXhGcm9tWE1MTlNEZWNsKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRQcmVmaXhGcm9tWE1MTlNEZWNsPC9IMz4NCjxQUkU+DQpwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJlZml4RnJvbVhNTE5TRGVjbDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2F0dFJhd05hbWUpPC9QUkU+DQo8REw+DQo8REQ+VGhpcyBmdW5jdGlvbiB0ZWxscyBpZiBhIHJhdyBhdHRyaWJ1dGUgbmFtZSBpcyBhCiB4bWxucyBhdHRyaWJ1dGUuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YXR0UmF3TmFtZTwvQ09ERT4gLSBSYXcgbmFtZSBvZiBhdHRyaWJ1dGU8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlByZWZpeCBvZiBhdHRyaWJ1dGU8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldExvY2FsUGFydChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0TG9jYWxQYXJ0PC9IMz4NCjxQUkU+DQpwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9jYWxQYXJ0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cW5hbWUpPC9QUkU+DQo8REw+DQo8REQ+UmV0dXJucyB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZ2l2ZW4gbm9kZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5xbmFtZTwvQ09ERT4gLSBJbnB1dCBuYW1lPERUPjxCPlJldHVybnM6PC9CPjxERD5Mb2NhbCBwYXJ0IG9mIHRoZSBuYW1lIGlmIHByZWZpeGVkLCBvciB0aGUgZ2l2ZW4gbmFtZSBpZiBub3Q8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldFByZWZpeFBhcnQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4NCmdldFByZWZpeFBhcnQ8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcmVmaXhQYXJ0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cW5hbWUpPC9QUkU+DQo8REw+DQo8REQ+UmV0dXJucyB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZ2l2ZW4gbm9kZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5xbmFtZTwvQ09ERT4gLSBJbnB1dCBuYW1lPERUPjxCPlJldHVybnM6PC9CPjxERD5QcmVmaXggb2YgbmFtZSBvciBlbXB0eSBzdHJpbmcgaWYgbm9uZSB0aGVyZTwvREw+DQo8L0REPg0KPC9ETD4NCjwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4NCjxIUj4NCg0KPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPg0KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPg0KPFRSPg0KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPg0KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+DQogIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1FOYW1lLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8L1RSPg0KPC9UQUJMRT4NCjwvVEQ+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4NCjwvRU0+DQo8L1REPg0KPC9UUj4NCg0KPFRSPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1ByZWZpeFJlc29sdmVyRGVmYXVsdC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsNCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL1NBWFNvdXJjZUxvY2F0b3IuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsNCiZuYnNwOzxBIEhSRUY9IlFOYW1lLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFI+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCkRFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPg0KDQo8SFI+DQpDb3B5cmlnaHQgqSAyMDA2IEFwYWNoZSBYTUwgUHJvamVjdC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCjwvQk9EWT4NCjwvSFRNTD4NCg==