PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTI6NTMgRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBDbGFzcyAgU0FYUGFyc2VyRmFjdG9yeQ0KPC9USVRMRT4NCjxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4NCjwvSEVBRD4NCjxCT0RZIEJHQ09MT1I9IndoaXRlIj4NCg0KPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPg0KPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPg0KPFRSPg0KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPg0KPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+DQogIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1NBWFBhcnNlckZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDwvVFI+DQo8L1RBQkxFPg0KPC9URD4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPg0KPC9FTT4NCjwvVEQ+DQo8L1RSPg0KDQo8VFI+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3BhcnNlcnMvU0FYUGFyc2VyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOw0KJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJTQVhQYXJzZXJGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFI+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPg0KDQo8SFI+DQo8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+DQo8SDI+DQo8Rk9OVCBTSVpFPSItMSI+DQpqYXZheC54bWwucGFyc2VyczwvRk9OVD4NCjxCUj4NCkNsYXNzICBTQVhQYXJzZXJGYWN0b3J5PC9IMj4NCjxQUkU+DQpqYXZhLmxhbmcuT2JqZWN0DQogIHwNCiAgKy0tPEI+amF2YXgueG1sLnBhcnNlcnMuU0FYUGFyc2VyRmFjdG9yeTwvQj4NCjwvUFJFPg0KPEhSPg0KPERMPg0KPERUPnB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8Qj5TQVhQYXJzZXJGYWN0b3J5PC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPg0KDQo8UD4NCkRlZmluZXMgYSBmYWN0b3J5IEFQSSB0aGF0IGVuYWJsZXMgYXBwbGljYXRpb25zIHRvIGNvbmZpZ3VyZSBhbmQKIG9idGFpbiBhIFNBWCBiYXNlZCBwYXJzZXIgdG8gcGFyc2UgWE1MIGRvY3VtZW50cy4NCjxQPg0KPEhSPg0KDQo8UD4NCjwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPmFic3RyYWN0ICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3BhcnNlcnMvU0FYUGFyc2VyRmFjdG9yeS5odG1sI2dldEZlYXR1cmUoamF2YS5sYW5nLlN0cmluZykiPmdldEZlYXR1cmU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHBhcnRpY3VsYXIgcHJvcGVydHkgcmVxdWVzdGVkIGZvciBpbiB0aGUgdW5kZXJseWluZwogaW1wbGVtZW50YXRpb24gb2Ygb3JnLnhtbC5zYXguWE1MUmVhZGVyLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvdmFsaWRhdGlvbi9TY2hlbWEuaHRtbCI+U2NoZW1hPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXJGYWN0b3J5Lmh0bWwjZ2V0U2NoZW1hKCkiPmdldFNjaGVtYTwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC92YWxpZGF0aW9uL1NjaGVtYS5odG1sIj48Q09ERT5TY2hlbWE8L0NPREU+PC9BPiBvYmplY3Qgc3BlY2lmaWVkIHRocm91Z2gKIHRoZSA8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXJGYWN0b3J5Lmh0bWwjc2V0U2NoZW1hKGphdmF4LnhtbC52YWxpZGF0aW9uLlNjaGVtYSkiPjxDT0RFPnNldFNjaGVtYShTY2hlbWEgc2NoZW1hKTwvQ09ERT48L0E+IG1ldGhvZC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXJGYWN0b3J5Lmh0bWwjaXNOYW1lc3BhY2VBd2FyZSgpIj5pc05hbWVzcGFjZUF3YXJlPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBmYWN0b3J5IGlzIGNvbmZpZ3VyZWQgdG8gcHJvZHVjZQogcGFyc2VycyB3aGljaCBhcmUgbmFtZXNwYWNlIGF3YXJlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlckZhY3RvcnkuaHRtbCNpc1ZhbGlkYXRpbmcoKSI+aXNWYWxpZGF0aW5nPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBmYWN0b3J5IGlzIGNvbmZpZ3VyZWQgdG8gcHJvZHVjZQogcGFyc2VycyB3aGljaCB2YWxpZGF0ZSB0aGUgWE1MIGNvbnRlbnQgZHVyaW5nIHBhcnNlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlckZhY3RvcnkuaHRtbCNpc1hJbmNsdWRlQXdhcmUoKSI+aXNYSW5jbHVkZUF3YXJlPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHN0YXRlIG9mIFhJbmNsdWRlIHByb2Nlc3NpbmcuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlckZhY3RvcnkuaHRtbCI+U0FYUGFyc2VyRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3BhcnNlcnMvU0FYUGFyc2VyRmFjdG9yeS5odG1sI25ld0luc3RhbmNlKCkiPm5ld0luc3RhbmNlPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T2J0YWluIGEgbmV3IGluc3RhbmNlIG9mIGEgPGNvZGU+U0FYUGFyc2VyRmFjdG9yeTwvY29kZT4uPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPmFic3RyYWN0ICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlci5odG1sIj5TQVhQYXJzZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlckZhY3RvcnkuaHRtbCNuZXdTQVhQYXJzZXIoKSI+bmV3U0FYUGFyc2VyPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBhIFNBWFBhcnNlciB1c2luZyB0aGUgY3VycmVudGx5CiBjb25maWd1cmVkIGZhY3RvcnkgcGFyYW1ldGVycy48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+YWJzdHJhY3QgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXJGYWN0b3J5Lmh0bWwjc2V0RmVhdHVyZShqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+c2V0RmVhdHVyZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAogICAgICAgICAgIGJvb2xlYW4mbmJzcDt2YWx1ZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHBhcnRpY3VsYXIgZmVhdHVyZSBpbiB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBvZgogb3JnLnhtbC5zYXguWE1MUmVhZGVyLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlckZhY3RvcnkuaHRtbCNzZXROYW1lc3BhY2VBd2FyZShib29sZWFuKSI+c2V0TmFtZXNwYWNlQXdhcmU8L0E+PC9CPihib29sZWFuJm5ic3A7YXdhcmVuZXNzKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3BlY2lmaWVzIHRoYXQgdGhlIHBhcnNlciBwcm9kdWNlZCBieSB0aGlzIGNvZGUgd2lsbAogcHJvdmlkZSBzdXBwb3J0IGZvciBYTUwgbmFtZXNwYWNlcy48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXJGYWN0b3J5Lmh0bWwjc2V0U2NoZW1hKGphdmF4LnhtbC52YWxpZGF0aW9uLlNjaGVtYSkiPnNldFNjaGVtYTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC92YWxpZGF0aW9uL1NjaGVtYS5odG1sIj5TY2hlbWE8L0E+Jm5ic3A7c2NoZW1hKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSA8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvdmFsaWRhdGlvbi9TY2hlbWEuaHRtbCI+PENPREU+U2NoZW1hPC9DT0RFPjwvQT4gdG8gYmUgdXNlZCBieSBwYXJzZXJzIGNyZWF0ZWQKIGZyb20gdGhpcyBmYWN0b3J5LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlckZhY3RvcnkuaHRtbCNzZXRWYWxpZGF0aW5nKGJvb2xlYW4pIj5zZXRWYWxpZGF0aW5nPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3ZhbGlkYXRpbmcpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTcGVjaWZpZXMgdGhhdCB0aGUgcGFyc2VyIHByb2R1Y2VkIGJ5IHRoaXMgY29kZSB3aWxsCiB2YWxpZGF0ZSBkb2N1bWVudHMgYXMgdGhleSBhcmUgcGFyc2VkLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlckZhY3RvcnkuaHRtbCNzZXRYSW5jbHVkZUF3YXJlKGJvb2xlYW4pIj5zZXRYSW5jbHVkZUF3YXJlPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3N0YXRlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHN0YXRlIG9mIFhJbmNsdWRlIHByb2Nlc3NpbmcuPC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4NCjxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURD48Q09ERT5lcXVhbHMsIA0KZ2V0Q2xhc3MsIA0KaGFzaENvZGUsIA0Kbm90aWZ5LCANCm5vdGlmeUFsbCwgDQp0b1N0cmluZywgDQp3YWl0LCANCndhaXQsIA0Kd2FpdDwvQ09ERT48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQombmJzcDsNCjxQPg0KDQo8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4NCjxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCg0KPEEgTkFNRT0ibmV3SW5zdGFuY2UoKSI+PCEtLSAtLT48L0E+PEgzPg0KbmV3SW5zdGFuY2U8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3BhcnNlcnMvU0FYUGFyc2VyRmFjdG9yeS5odG1sIj5TQVhQYXJzZXJGYWN0b3J5PC9BPiA8Qj5uZXdJbnN0YW5jZTwvQj4oKTwvUFJFPg0KPERMPg0KPEREPk9idGFpbiBhIG5ldyBpbnN0YW5jZSBvZiBhIDxjb2RlPlNBWFBhcnNlckZhY3Rvcnk8L2NvZGU+LiBUaGlzCiBzdGF0aWMgbWV0aG9kIGNyZWF0ZXMgYSBuZXcgZmFjdG9yeSBpbnN0YW5jZQogVGhpcyBtZXRob2QgdXNlcyB0aGUgZm9sbG93aW5nIG9yZGVyZWQgbG9va3VwIHByb2NlZHVyZSB0byBkZXRlcm1pbmUKIHRoZSA8Y29kZT5TQVhQYXJzZXJGYWN0b3J5PC9jb2RlPiBpbXBsZW1lbnRhdGlvbiBjbGFzcyB0bwogbG9hZDoKIDx1bD4KIDxsaT4KIFVzZSB0aGUgPGNvZGU+amF2YXgueG1sLnBhcnNlcnMuU0FYUGFyc2VyRmFjdG9yeTwvY29kZT4gc3lzdGVtCiBwcm9wZXJ0eS4KIDwvbGk+CiA8bGk+CiBVc2UgdGhlIHByb3BlcnRpZXMgZmlsZSAibGliL2pheHAucHJvcGVydGllcyIgaW4gdGhlIEpSRSBkaXJlY3RvcnkuCiBUaGlzIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBpbiBzdGFuZGFyZCA8Y29kZT5qYXZhLnV0aWwuUHJvcGVydGllcwogPC9jb2RlPiBmb3JtYXQgYW5kIGNvbnRhaW5zIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUKIGltcGxlbWVudGF0aW9uIGNsYXNzIHdpdGggdGhlIGtleSBiZWluZyB0aGUgc3lzdGVtIHByb3BlcnR5IGRlZmluZWQKIGFib3ZlLgogCiBUaGUgamF4cC5wcm9wZXJ0aWVzIGZpbGUgaXMgcmVhZCBvbmx5IG9uY2UgYnkgdGhlIEpBWFAgaW1wbGVtZW50YXRpb24KIGFuZCBpdCdzIHZhbHVlcyBhcmUgdGhlbiBjYWNoZWQgZm9yIGZ1dHVyZSB1c2UuICBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdAogd2hlbiB0aGUgZmlyc3QgYXR0ZW1wdCBpcyBtYWRlIHRvIHJlYWQgZnJvbSBpdCwgbm8gZnVydGhlciBhdHRlbXB0cyBhcmUKIG1hZGUgdG8gY2hlY2sgZm9yIGl0cyBleGlzdGVuY2UuICBJdCBpcyBub3QgcG9zc2libGUgdG8gY2hhbmdlIHRoZSB2YWx1ZQogb2YgYW55IHByb3BlcnR5IGluIGpheHAucHJvcGVydGllcyBhZnRlciBpdCBoYXMgYmVlbiByZWFkIGZvciB0aGUgZmlyc3QgdGltZS4KIDwvbGk+CiA8bGk+CiBVc2UgdGhlIFNlcnZpY2VzIEFQSSAoYXMgZGV0YWlsZWQgaW4gdGhlIEpBUiBzcGVjaWZpY2F0aW9uKSwgaWYKIGF2YWlsYWJsZSwgdG8gZGV0ZXJtaW5lIHRoZSBjbGFzc25hbWUuIFRoZSBTZXJ2aWNlcyBBUEkgd2lsbCBsb29rCiBmb3IgYSBjbGFzc25hbWUgaW4gdGhlIGZpbGUKIDxjb2RlPk1FVEEtSU5GL3NlcnZpY2VzL2phdmF4LnhtbC5wYXJzZXJzLlNBWFBhcnNlckZhY3Rvcnk8L2NvZGU+CiBpbiBqYXJzIGF2YWlsYWJsZSB0byB0aGUgcnVudGltZS4KIDwvbGk+CiA8bGk+CiBQbGF0Zm9ybSBkZWZhdWx0IDxjb2RlPlNBWFBhcnNlckZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlLgogPC9saT4KIDwvdWw+CgogT25jZSBhbiBhcHBsaWNhdGlvbiBoYXMgb2J0YWluZWQgYSByZWZlcmVuY2UgdG8gYQogPGNvZGU+U0FYUGFyc2VyRmFjdG9yeTwvY29kZT4gaXQgY2FuIHVzZSB0aGUgZmFjdG9yeSB0bwogY29uZmlndXJlIGFuZCBvYnRhaW4gcGFyc2VyIGluc3RhbmNlcy4KIAogCiAKIDxoMj5UaXAgZm9yIFRyb3VibGUtc2hvb3Rpbmc8L2gyPgogPHA+U2V0dGluZyB0aGUgPGNvZGU+amF4cC5kZWJ1ZzwvY29kZT4gc3lzdGVtIHByb3BlcnR5IHdpbGwgY2F1c2UKIHRoaXMgbWV0aG9kIHRvIHByaW50IGEgbG90IG9mIGRlYnVnIG1lc3NhZ2VzCiB0byA8dHQ+U3lzdGVtLmVycjwvdHQ+IGFib3V0IHdoYXQgaXQgaXMgZG9pbmcgYW5kIHdoZXJlIGl0IGlzIGxvb2tpbmcgYXQuPC9wPgogCiA8cD4gSWYgeW91IGhhdmUgcHJvYmxlbXMgbG9hZGluZyA8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9Eb2N1bWVudEJ1aWxkZXIuaHRtbCI+PENPREU+RG9jdW1lbnRCdWlsZGVyPC9DT0RFPjwvQT5zLCB0cnk6PC9wPgogPHByZT4KIGphdmEgLURqYXhwLmRlYnVnPTEgWW91clByb2dyYW0gLi4uLgogPC9wcmU+PEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBuZXcgaW5zdGFuY2Ugb2YgYSBTQVhQYXJzZXJGYWN0b3J5LjxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9GYWN0b3J5Q29uZmlndXJhdGlvbkVycm9yLmh0bWwiPkZhY3RvcnlDb25maWd1cmF0aW9uRXJyb3I8L0E+IC0gaWYgdGhlIGltcGxlbWVudGF0aW9uIGlzCiBub3QgYXZhaWxhYmxlIG9yIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJuZXdTQVhQYXJzZXIoKSI+PCEtLSAtLT48L0E+PEgzPg0KbmV3U0FYUGFyc2VyPC9IMz4NCjxQUkU+DQpwdWJsaWMgYWJzdHJhY3QgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3BhcnNlcnMvU0FYUGFyc2VyLmh0bWwiPlNBWFBhcnNlcjwvQT4gPEI+bmV3U0FYUGFyc2VyPC9CPigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1BhcnNlckNvbmZpZ3VyYXRpb25FeGNlcHRpb24uaHRtbCI+UGFyc2VyQ29uZmlndXJhdGlvbkV4Y2VwdGlvbjwvQT4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+PHA+Q3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBhIFNBWFBhcnNlciB1c2luZyB0aGUgY3VycmVudGx5CiBjb25maWd1cmVkIGZhY3RvcnkgcGFyYW1ldGVycy48L3A+PEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBuZXcgaW5zdGFuY2Ugb2YgYSBTQVhQYXJzZXIuPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1BhcnNlckNvbmZpZ3VyYXRpb25FeGNlcHRpb24uaHRtbCI+UGFyc2VyQ29uZmlndXJhdGlvbkV4Y2VwdGlvbjwvQT4gLSBpZiBhIHBhcnNlciBjYW5ub3QKICAgYmUgY3JlYXRlZCB3aGljaCBzYXRpc2ZpZXMgdGhlIHJlcXVlc3RlZCBjb25maWd1cmF0aW9uLjxERD48QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9TQVhFeGNlcHRpb24uaHRtbCI+U0FYRXhjZXB0aW9uPC9BPiAtIGZvciBTQVggZXJyb3JzLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0TmFtZXNwYWNlQXdhcmUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4NCnNldE5hbWVzcGFjZUF3YXJlPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXROYW1lc3BhY2VBd2FyZTwvQj4oYm9vbGVhbiZuYnNwO2F3YXJlbmVzcyk8L1BSRT4NCjxETD4NCjxERD5TcGVjaWZpZXMgdGhhdCB0aGUgcGFyc2VyIHByb2R1Y2VkIGJ5IHRoaXMgY29kZSB3aWxsCiBwcm92aWRlIHN1cHBvcnQgZm9yIFhNTCBuYW1lc3BhY2VzLiBCeSBkZWZhdWx0IHRoZSB2YWx1ZSBvZiB0aGlzIGlzIHNldAogdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmF3YXJlbmVzczwvQ09ERT4gLSB0cnVlIGlmIHRoZSBwYXJzZXIgcHJvZHVjZWQgYnkgdGhpcyBjb2RlIHdpbGwKICAgICAgICAgICAgICAgICAgcHJvdmlkZSBzdXBwb3J0IGZvciBYTUwgbmFtZXNwYWNlczsgZmFsc2Ugb3RoZXJ3aXNlLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0VmFsaWRhdGluZyhib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0VmFsaWRhdGluZzwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+c2V0VmFsaWRhdGluZzwvQj4oYm9vbGVhbiZuYnNwO3ZhbGlkYXRpbmcpPC9QUkU+DQo8REw+DQo8REQ+U3BlY2lmaWVzIHRoYXQgdGhlIHBhcnNlciBwcm9kdWNlZCBieSB0aGlzIGNvZGUgd2lsbAogdmFsaWRhdGUgZG9jdW1lbnRzIGFzIHRoZXkgYXJlIHBhcnNlZC4gQnkgZGVmYXVsdCB0aGUgdmFsdWUgb2YgdGhpcyBpcwogc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPi4KIAogPHA+CiBOb3RlIHRoYXQgInRoZSB2YWxpZGF0aW9uIiBoZXJlIG1lYW5zCiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI3Byb2MtdHlwZXMiPmEgdmFsaWRhdGluZwogcGFyc2VyPC9hPiBhcyBkZWZpbmVkIGluIHRoZSBYTUwgcmVjb21tZW5kYXRpb24uCiBJbiBvdGhlciB3b3JkcywgaXQgZXNzZW50aWFsbHkganVzdCBjb250cm9scyB0aGUgRFREIHZhbGlkYXRpb24uCiAoZXhjZXB0IHRoZSBsZWdhY3kgdHdvIHByb3BlcnRpZXMgZGVmaW5lZCBpbiBKQVhQIDEuMi4KIFNlZSA8YSBocmVmPSIjdmFsaWRhdGlvbkNvbXBhdGliaWxpdHkiPmhlcmU8L2E+IGZvciBtb3JlIGRldGFpbHMuKQogPC9wPgogCiA8cD4KIFRvIHVzZSBtb2Rlcm4gc2NoZW1hIGxhbmd1YWdlcyBzdWNoIGFzIFczQyBYTUwgU2NoZW1hIG9yCiBSRUxBWCBORyBpbnN0ZWFkIG9mIERURCwgeW91IGNhbiBjb25maWd1cmUgeW91ciBwYXJzZXIgdG8gYmUKIGEgbm9uLXZhbGlkYXRpbmcgcGFyc2VyIGJ5IGxlYXZpbmcgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlckZhY3RvcnkuaHRtbCNzZXRWYWxpZGF0aW5nKGJvb2xlYW4pIj48Q09ERT5zZXRWYWxpZGF0aW5nKGJvb2xlYW4pPC9DT0RFPjwvQT4KIG1ldGhvZCA8dHQ+ZmFsc2U8L3R0PiwgdGhlbiB1c2UgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1NBWFBhcnNlckZhY3RvcnkuaHRtbCNzZXRTY2hlbWEoamF2YXgueG1sLnZhbGlkYXRpb24uU2NoZW1hKSI+PENPREU+c2V0U2NoZW1hKFNjaGVtYSk8L0NPREU+PC9BPgogbWV0aG9kIHRvIGFzc29jaWF0ZSBhIHNjaGVtYSB0byBhIHBhcnNlci4KIDwvcD48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWxpZGF0aW5nPC9DT0RFPiAtIHRydWUgaWYgdGhlIHBhcnNlciBwcm9kdWNlZCBieSB0aGlzIGNvZGUgd2lsbAogICAgICAgICAgICAgICAgICAgdmFsaWRhdGUgZG9jdW1lbnRzIGFzIHRoZXkgYXJlIHBhcnNlZDsgZmFsc2Ugb3RoZXJ3aXNlLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iaXNOYW1lc3BhY2VBd2FyZSgpIj48IS0tIC0tPjwvQT48SDM+DQppc05hbWVzcGFjZUF3YXJlPC9IMz4NCjxQUkU+DQpwdWJsaWMgYm9vbGVhbiA8Qj5pc05hbWVzcGFjZUF3YXJlPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+SW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBmYWN0b3J5IGlzIGNvbmZpZ3VyZWQgdG8gcHJvZHVjZQogcGFyc2VycyB3aGljaCBhcmUgbmFtZXNwYWNlIGF3YXJlLjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRydWUgaWYgdGhlIGZhY3RvcnkgaXMgY29uZmlndXJlZCB0byBwcm9kdWNlCiAgICAgICAgIHBhcnNlcnMgd2hpY2ggYXJlIG5hbWVzcGFjZSBhd2FyZTsgZmFsc2Ugb3RoZXJ3aXNlLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iaXNWYWxpZGF0aW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmlzVmFsaWRhdGluZzwvSDM+DQo8UFJFPg0KcHVibGljIGJvb2xlYW4gPEI+aXNWYWxpZGF0aW5nPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+SW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBmYWN0b3J5IGlzIGNvbmZpZ3VyZWQgdG8gcHJvZHVjZQogcGFyc2VycyB3aGljaCB2YWxpZGF0ZSB0aGUgWE1MIGNvbnRlbnQgZHVyaW5nIHBhcnNlLjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRydWUgaWYgdGhlIGZhY3RvcnkgaXMgY29uZmlndXJlZCB0byBwcm9kdWNlIHBhcnNlcnMgd2hpY2ggdmFsaWRhdGUKICAgICAgICAgdGhlIFhNTCBjb250ZW50IGR1cmluZyBwYXJzZTsgZmFsc2Ugb3RoZXJ3aXNlLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0RmVhdHVyZShqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0RmVhdHVyZTwvSDM+DQo8UFJFPg0KcHVibGljIGFic3RyYWN0IHZvaWQgPEI+c2V0RmVhdHVyZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3ZhbHVlKQogICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1BhcnNlckNvbmZpZ3VyYXRpb25FeGNlcHRpb24uaHRtbCI+UGFyc2VyQ29uZmlndXJhdGlvbkV4Y2VwdGlvbjwvQT4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYTm90UmVjb2duaXplZEV4Y2VwdGlvbi5odG1sIj5TQVhOb3RSZWNvZ25pemVkRXhjZXB0aW9uPC9BPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9TQVhOb3RTdXBwb3J0ZWRFeGNlcHRpb24uaHRtbCI+U0FYTm90U3VwcG9ydGVkRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPjxwPlNldHMgdGhlIHBhcnRpY3VsYXIgZmVhdHVyZSBpbiB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBvZgogb3JnLnhtbC5zYXguWE1MUmVhZGVyLgogQSBsaXN0IG9mIHRoZSBjb3JlIGZlYXR1cmVzIGFuZCBwcm9wZXJ0aWVzIGNhbiBiZSBmb3VuZCBhdAogPGEgaHJlZj0iaHR0cDovL3d3dy5zYXhwcm9qZWN0Lm9yZy8iPmh0dHA6Ly93d3cuc2F4cHJvamVjdC5vcmcvPC9hPjwvcD4KCiA8cD5BbGwgaW1wbGVtZW50YXRpb25zIGFyZSByZXF1aXJlZCB0byBzdXBwb3J0IHRoZSA8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvWE1MQ29uc3RhbnRzLmh0bWwjRkVBVFVSRV9TRUNVUkVfUFJPQ0VTU0lORyI+PENPREU+WE1MQ29uc3RhbnRzLkZFQVRVUkVfU0VDVVJFX1BST0NFU1NJTkc8L0NPREU+PC9BPiBmZWF0dXJlLgogV2hlbiB0aGUgZmVhdHVyZSBpczwvcD4KIDx1bD4KICAgPGxpPgogICAgIDxjb2RlPnRydWU8L2NvZGU+OiB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCBsaW1pdCBYTUwgcHJvY2Vzc2luZyB0byBjb25mb3JtIHRvIGltcGxlbWVudGF0aW9uIGxpbWl0cy4KICAgICBFeGFtcGxlcyBpbmNsdWRlIGVuaXR5IGV4cGFuc2lvbiBsaW1pdHMgYW5kIFhNTCBTY2hlbWEgY29uc3RydWN0cyB0aGF0IHdvdWxkIGNvbnN1bWUgbGFyZ2UgYW1vdW50cyBvZiByZXNvdXJjZXMuCiAgICAgSWYgWE1MIHByb2Nlc3NpbmcgaXMgbGltaXRlZCBmb3Igc2VjdXJpdHkgcmVhc29ucywgaXQgd2lsbCBiZSByZXBvcnRlZCB2aWEgYSBjYWxsIHRvIHRoZSByZWdpc3RlcmVkCiAgICAgPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvRXJyb3JIYW5kbGVyLmh0bWwjZmF0YWxFcnJvcihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPjxDT0RFPkVycm9ySGFuZGxlci5mYXRhbEVycm9yKFNBWFBhcnNlRXhjZXB0aW9uIGV4Y2VwdGlvbik8L0NPREU+PC9BPi4KICAgICBTZWUgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3BhcnNlcnMvU0FYUGFyc2VyLmh0bWwiPjxDT0RFPlNBWFBhcnNlcjwvQ09ERT48L0E+IDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzIGZvciBoYW5kbGVyIHNwZWNpZmljYXRpb24uCiAgIDwvbGk+CiAgIDxsaT4KICAgICBXaGVuIHRoZSBmZWF0dXJlIGlzIDxjb2RlPmZhbHNlPC9jb2RlPiwgdGhlIGltcGxlbWVudGF0aW9uIHdpbGwgcHJvY2Vzc2luZyBYTUwgYWNjb3JkaW5nIHRvIHRoZSBYTUwgc3BlY2lmaWNhdGlvbnMgd2l0aG91dAogICAgIHJlZ2FyZCB0byBwb3NzaWJsZSBpbXBsZW1lbnRhdGlvbiBsaW1pdHMuCiAgIDwvbGk+CiA8L3VsPjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIG5hbWUgb2YgdGhlIGZlYXR1cmUgdG8gYmUgc2V0LjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgdmFsdWUgb2YgdGhlIGZlYXR1cmUgdG8gYmUgc2V0LjxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9QYXJzZXJDb25maWd1cmF0aW9uRXhjZXB0aW9uLmh0bWwiPlBhcnNlckNvbmZpZ3VyYXRpb25FeGNlcHRpb248L0E+IC0gaWYgYSBwYXJzZXIgY2Fubm90CiAgICAgYmUgY3JlYXRlZCB3aGljaCBzYXRpc2ZpZXMgdGhlIHJlcXVlc3RlZCBjb25maWd1cmF0aW9uLjxERD48QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9TQVhOb3RSZWNvZ25pemVkRXhjZXB0aW9uLmh0bWwiPlNBWE5vdFJlY29nbml6ZWRFeGNlcHRpb248L0E+IC0gV2hlbiB0aGUgdW5kZXJseWluZyBYTUxSZWFkZXIgZG9lcwogICAgICAgICAgICBub3QgcmVjb2duaXplIHRoZSBwcm9wZXJ0eSBuYW1lLjxERD48QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9TQVhOb3RTdXBwb3J0ZWRFeGNlcHRpb24uaHRtbCI+U0FYTm90U3VwcG9ydGVkRXhjZXB0aW9uPC9BPiAtIFdoZW4gdGhlIHVuZGVybHlpbmcgWE1MUmVhZGVyCiAgICAgICAgICAgIHJlY29nbml6ZXMgdGhlIHByb3BlcnR5IG5hbWUgYnV0IGRvZXNuJ3Qgc3VwcG9ydCB0aGUKICAgICAgICAgICAgcHJvcGVydHkuPEREPmphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAtIElmIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBwYXJhbWV0ZXIgaXMgbnVsbC48RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvWE1MUmVhZGVyLmh0bWwjc2V0RmVhdHVyZShqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PENPREU+WE1MUmVhZGVyLnNldEZlYXR1cmUoamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbik8L0NPREU+PC9BPjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0RmVhdHVyZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0RmVhdHVyZTwvSDM+DQo8UFJFPg0KcHVibGljIGFic3RyYWN0IGJvb2xlYW4gPEI+Z2V0RmVhdHVyZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3BhcnNlcnMvUGFyc2VyQ29uZmlndXJhdGlvbkV4Y2VwdGlvbi5odG1sIj5QYXJzZXJDb25maWd1cmF0aW9uRXhjZXB0aW9uPC9BPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9TQVhOb3RSZWNvZ25pemVkRXhjZXB0aW9uLmh0bWwiPlNBWE5vdFJlY29nbml6ZWRFeGNlcHRpb248L0E+LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L1NBWE5vdFN1cHBvcnRlZEV4Y2VwdGlvbi5odG1sIj5TQVhOb3RTdXBwb3J0ZWRFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+PHA+UmV0dXJucyB0aGUgcGFydGljdWxhciBwcm9wZXJ0eSByZXF1ZXN0ZWQgZm9yIGluIHRoZSB1bmRlcmx5aW5nCiBpbXBsZW1lbnRhdGlvbiBvZiBvcmcueG1sLnNheC5YTUxSZWFkZXIuPC9wPjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC48RFQ+PEI+UmV0dXJuczo8L0I+PEREPlZhbHVlIG9mIHRoZSByZXF1ZXN0ZWQgcHJvcGVydHkuPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC9wYXJzZXJzL1BhcnNlckNvbmZpZ3VyYXRpb25FeGNlcHRpb24uaHRtbCI+UGFyc2VyQ29uZmlndXJhdGlvbkV4Y2VwdGlvbjwvQT4gLSBpZiBhIHBhcnNlciBjYW5ub3QgYmUgY3JlYXRlZCB3aGljaCBzYXRpc2ZpZXMgdGhlIHJlcXVlc3RlZCBjb25maWd1cmF0aW9uLjxERD48QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9TQVhOb3RSZWNvZ25pemVkRXhjZXB0aW9uLmh0bWwiPlNBWE5vdFJlY29nbml6ZWRFeGNlcHRpb248L0E+IC0gV2hlbiB0aGUgdW5kZXJseWluZyBYTUxSZWFkZXIgZG9lcyBub3QgcmVjb2duaXplIHRoZSBwcm9wZXJ0eSBuYW1lLjxERD48QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9TQVhOb3RTdXBwb3J0ZWRFeGNlcHRpb24uaHRtbCI+U0FYTm90U3VwcG9ydGVkRXhjZXB0aW9uPC9BPiAtIFdoZW4gdGhlIHVuZGVybHlpbmcgWE1MUmVhZGVyIHJlY29nbml6ZXMgdGhlIHByb3BlcnR5IG5hbWUgYnV0IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgcHJvcGVydHkuPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L1hNTFJlYWRlci5odG1sI2dldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Q09ERT5YTUxSZWFkZXIuZ2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZyk8L0NPREU+PC9BPjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0U2NoZW1hKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmdldFNjaGVtYTwvSDM+DQo8UFJFPg0KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC92YWxpZGF0aW9uL1NjaGVtYS5odG1sIj5TY2hlbWE8L0E+IDxCPmdldFNjaGVtYTwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkdldHMgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC92YWxpZGF0aW9uL1NjaGVtYS5odG1sIj48Q09ERT5TY2hlbWE8L0NPREU+PC9BPiBvYmplY3Qgc3BlY2lmaWVkIHRocm91Z2gKIHRoZSA8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXJGYWN0b3J5Lmh0bWwjc2V0U2NoZW1hKGphdmF4LnhtbC52YWxpZGF0aW9uLlNjaGVtYSkiPjxDT0RFPnNldFNjaGVtYShTY2hlbWEgc2NoZW1hKTwvQ09ERT48L0E+IG1ldGhvZC48REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3ZhbGlkYXRpb24vU2NoZW1hLmh0bWwiPjxDT0RFPlNjaGVtYTwvQ09ERT48L0E+IG9iamVjdCB0aGF0IHdhcyBsYXN0IHNldCB0aHJvdWdoCiAgICAgIHRoZSA8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXJGYWN0b3J5Lmh0bWwjc2V0U2NoZW1hKGphdmF4LnhtbC52YWxpZGF0aW9uLlNjaGVtYSkiPjxDT0RFPnNldFNjaGVtYShTY2hlbWEpPC9DT0RFPjwvQT4gbWV0aG9kLCBvciBudWxsCiAgICAgIGlmIHRoZSBtZXRob2Qgd2FzIG5vdCBpbnZva2VkIHNpbmNlIGEgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3BhcnNlcnMvU0FYUGFyc2VyRmFjdG9yeS5odG1sIj48Q09ERT5TQVhQYXJzZXJGYWN0b3J5PC9DT0RFPjwvQT4KICAgICAgaXMgY3JlYXRlZC48RFQ+PEI+VGhyb3dzOjwvQj48REQ+VW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gLSBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgd2hlbiBpbXBsZW1lbnRhdGlvbnMgZm9yCiAgICAgIGVhcmxpZXIgdmVyc2lvbnMgb2YgSkFYUCBpcyB1c2VkLCB0aGlzIGV4Y2VwdGlvbiB3aWxsIGJlCiAgICAgIHRocm93bi48RFQ+PEI+U2luY2U6IDwvQj48REQ+MS41PC9ERD4NCjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0U2NoZW1hKGphdmF4LnhtbC52YWxpZGF0aW9uLlNjaGVtYSkiPjwhLS0gLS0+PC9BPjxIMz4NCnNldFNjaGVtYTwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+c2V0U2NoZW1hPC9CPig8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvdmFsaWRhdGlvbi9TY2hlbWEuaHRtbCI+U2NoZW1hPC9BPiZuYnNwO3NjaGVtYSk8L1BSRT4NCjxETD4NCjxERD48cD5TZXQgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uL2phdmF4L3htbC92YWxpZGF0aW9uL1NjaGVtYS5odG1sIj48Q09ERT5TY2hlbWE8L0NPREU+PC9BPiB0byBiZSB1c2VkIGJ5IHBhcnNlcnMgY3JlYXRlZAogZnJvbSB0aGlzIGZhY3RvcnkuPC9wPgogCiA8cD5XaGVuIGEgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3ZhbGlkYXRpb24vU2NoZW1hLmh0bWwiPjxDT0RFPlNjaGVtYTwvQ09ERT48L0E+IGlzIG5vbi1udWxsLCBhIHBhcnNlciB3aWxsIHVzZSBhIHZhbGlkYXRvcgogY3JlYXRlZCBmcm9tIGl0IHRvIHZhbGlkYXRlIGRvY3VtZW50cyBiZWZvcmUgaXQgcGFzc2VzIGluZm9ybWF0aW9uCiBkb3duIHRvIHRoZSBhcHBsaWNhdGlvbi48L3A+CiAKIDxwPldoZW4gd2FybmluZ3MvZXJyb3JzL2ZhdGFsIGVycm9ycyBhcmUgZm91bmQgYnkgdGhlIHZhbGlkYXRvciwgdGhlIHBhcnNlciBtdXN0CiBoYW5kbGUgdGhlbSBhcyBpZiB0aG9zZSBlcnJvcnMgd2VyZSBmb3VuZCBieSB0aGUgcGFyc2VyIGl0c2VsZi4gCiBJbiBvdGhlciB3b3JkcywgaWYgdGhlIHVzZXItc3BlY2lmaWVkIDxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L0Vycm9ySGFuZGxlci5odG1sIj48Q09ERT5FcnJvckhhbmRsZXI8L0NPREU+PC9BPgogaXMgc2V0LCBpdCBtdXN0IHJlY2VpdmUgdGhvc2UgZXJyb3JzLCBhbmQgaWYgbm90LCB0aGV5IG11c3QgYmUKIHRyZWF0ZWQgYWNjb3JkaW5nIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYwogZGVmYXVsdCBlcnJvciBoYW5kbGluZyBydWxlcy4KIAogPHA+QSB2YWxpZGF0b3IgbWF5IG1vZGlmeSB0aGUgU0FYIGV2ZW50IHN0cmVhbSAoZm9yIGV4YW1wbGUgYnkKIGFkZGluZyBkZWZhdWx0IHZhbHVlcyB0aGF0IHdlcmUgbWlzc2luZyBpbiBkb2N1bWVudHMpLCBhbmQgYSBwYXJzZXIKIGlzIHJlc3BvbnNpYmxlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlY2VpdmUKIHRob3NlIG1vZGlmaWVkIGV2ZW50IHN0cmVhbS48L3A+ICAKIAogPHA+SW5pdGlhbHksIDxjb2RlPm51bGw8L2NvZGU+IGlzIHNldCBhcyB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3ZhbGlkYXRpb24vU2NoZW1hLmh0bWwiPjxDT0RFPlNjaGVtYTwvQ09ERT48L0E+LjwvcD4gCiAKIDxwPlRoaXMgcHJvY2Vzc2luZyB3aWxsIHRha2UgZWZmZWN0IGV2ZW4gaWYKIHRoZSA8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXJGYWN0b3J5Lmh0bWwjaXNWYWxpZGF0aW5nKCkiPjxDT0RFPmlzVmFsaWRhdGluZygpPC9DT0RFPjwvQT4gbWV0aG9kIHJldHVybnMgPGNvZGU+ZmFsc2U8L2NvZGU+LgogCiA8cD5JdCBpcyBhbiBlcnJvciB0byB1c2UKIHRoZSA8Y29kZT5odHRwOi8vamF2YS5zdW4uY29tL3htbC9qYXhwL3Byb3BlcnRpZXMvc2NoZW1hU291cmNlPC9jb2RlPgogcHJvcGVydHkgYW5kL29yIHRoZSA8Y29kZT5odHRwOi8vamF2YS5zdW4uY29tL3htbC9qYXhwL3Byb3BlcnRpZXMvc2NoZW1hTGFuZ3VhZ2U8L2NvZGU+CiBwcm9wZXJ0eSBpbiBjb25qdW5jdGlvbiB3aXRoIGEgbm9uLW51bGwgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3ZhbGlkYXRpb24vU2NoZW1hLmh0bWwiPjxDT0RFPlNjaGVtYTwvQ09ERT48L0E+IG9iamVjdC4KIFN1Y2ggY29uZmlndXJhdGlvbiB3aWxsIGNhdXNlIGEgPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPjxDT0RFPlNBWEV4Y2VwdGlvbjwvQ09ERT48L0E+CiBleGNlcHRpb24gd2hlbiB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBzZXQgb24gYSA8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXIuaHRtbCI+PENPREU+U0FYUGFyc2VyPC9DT0RFPjwvQT4uPC9wPgogCiA8aDQ+Tm90ZSBmb3IgaW1wbG1lbnRvcnM8L2g0PgogPHA+CiBBIHBhcnNlciBtdXN0IGJlIGFibGUgdG8gd29yayB3aXRoIGFueSA8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvdmFsaWRhdGlvbi9TY2hlbWEuaHRtbCI+PENPREU+U2NoZW1hPC9DT0RFPjwvQT4KIGltcGxlbWVudGF0aW9uLiBIb3dldmVyLCBwYXJzZXJzIGFuZCBzY2hlbWFzIGFyZSBhbGxvd2VkCiB0byB1c2UgaW1wbGVtZW50YXRpb24tc3BlY2lmaWMgY3VzdG9tIG1lY2hhbmlzbXMKIGFzIGxvbmcgYXMgdGhleSB5aWVsZCB0aGUgcmVzdWx0IGRlc2NyaWJlZCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4KIDwvcD48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zY2hlbWE8L0NPREU+IC0gPGNvZGU+U2NoZW1hPC9jb2RlPiB0byB1c2UsIDxjb2RlPm51bGw8L2NvZGU+IHRvIHJlbW92ZSBhIHNjaGVtYS48RFQ+PEI+VGhyb3dzOjwvQj48REQ+VW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gLSBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgd2hlbiBpbXBsZW1lbnRhdGlvbnMgZm9yCiAgICAgIGVhcmxpZXIgdmVyc2lvbnMgb2YgSkFYUCBpcyB1c2VkLCB0aGlzIGV4Y2VwdGlvbiB3aWxsIGJlCiAgICAgIHRocm93bi48RFQ+PEI+U2luY2U6IDwvQj48REQ+MS41PC9ERD4NCjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0WEluY2x1ZGVBd2FyZShib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0WEluY2x1ZGVBd2FyZTwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+c2V0WEluY2x1ZGVBd2FyZTwvQj4oYm9vbGVhbiZuYnNwO3N0YXRlKTwvUFJFPg0KPERMPg0KPEREPjxwPlNldCBzdGF0ZSBvZiBYSW5jbHVkZSBwcm9jZXNzaW5nLjwvcD4KIAogPHA+SWYgWEluY2x1ZGUgbWFya3VwIGlzIGZvdW5kIGluIHRoZSBkb2N1bWVudCBpbnN0YW5jZSwgc2hvdWxkIGl0IGJlCiBwcm9jZXNzZWQgYXMgc3BlY2lmaWVkIGluIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hpbmNsdWRlLyI+CiBYTUwgSW5jbHVzaW9ucyAoWEluY2x1ZGUpIFZlcnNpb24gMS4wPC9hPi48L3A+CiAKIDxwPlhJbmNsdWRlIHByb2Nlc3NpbmcgZGVmYXVsdHMgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LjwvcD48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zdGF0ZTwvQ09ERT4gLSBTZXQgWEluY2x1ZGUgcHJvY2Vzc2luZyB0byA8Y29kZT50cnVlPC9jb2RlPiBvcgogICA8Y29kZT5mYWxzZTwvY29kZT48RFQ+PEI+VGhyb3dzOjwvQj48REQ+VW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gLSBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgd2hlbiBpbXBsZW1lbnRhdGlvbnMgZm9yCiAgICAgIGVhcmxpZXIgdmVyc2lvbnMgb2YgSkFYUCBpcyB1c2VkLCB0aGlzIGV4Y2VwdGlvbiB3aWxsIGJlCiAgICAgIHRocm93bi48RFQ+PEI+U2luY2U6IDwvQj48REQ+MS41PC9ERD4NCjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iaXNYSW5jbHVkZUF3YXJlKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmlzWEluY2x1ZGVBd2FyZTwvSDM+DQo8UFJFPg0KcHVibGljIGJvb2xlYW4gPEI+aXNYSW5jbHVkZUF3YXJlPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+PHA+R2V0IHN0YXRlIG9mIFhJbmNsdWRlIHByb2Nlc3NpbmcuPC9wPjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmN1cnJlbnQgc3RhdGUgb2YgWEluY2x1ZGUgcHJvY2Vzc2luZzxEVD48Qj5UaHJvd3M6PC9CPjxERD5VbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiAtIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB3aGVuIGltcGxlbWVudGF0aW9ucyBmb3IKICAgICAgZWFybGllciB2ZXJzaW9ucyBvZiBKQVhQIGlzIHVzZWQsIHRoaXMgZXhjZXB0aW9uIHdpbGwgYmUKICAgICAgdGhyb3duLjxEVD48Qj5TaW5jZTogPC9CPjxERD4xLjU8L0REPg0KPC9ETD4NCjwvREQ+DQo8L0RMPg0KPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPg0KPEhSPg0KDQo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+DQo8VFI+DQo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4NCiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvU0FYUGFyc2VyRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPC9UUj4NCjwvVEFCTEU+DQo8L1REPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+DQo8L0VNPg0KPC9URD4NCjwvVFI+DQoNCjxUUj4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi9qYXZheC94bWwvcGFyc2Vycy9TQVhQYXJzZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7DQombmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KICA8QSBIUkVGPSIuLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsNCiZuYnNwOzxBIEhSRUY9IlNBWFBhcnNlckZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUj4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQpERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+DQoNCjxIUj4NCkNvcHlyaWdodCCpIDIwMDYgQXBhY2hlIFhNTCBQcm9qZWN0LiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KPC9CT0RZPg0KPC9IVE1MPg0K