PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTI6NTcgRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBDbGFzcyAgRmFzdFN0cmluZ0J1ZmZlcg0KPC9USVRMRT4NCjxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4NCjwvSEVBRD4NCjxCT0RZIEJHQ09MT1I9IndoaXRlIj4NCg0KPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPg0KPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPg0KPFRSPg0KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPg0KPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+DQogIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDwvVFI+DQo8L1RBQkxFPg0KPC9URD4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPg0KPC9FTT4NCjwvVEQ+DQo8L1RSPg0KDQo8VFI+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRE9NSGVscGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOw0KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvSGFzaHRyZWUyTm9kZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOw0KJm5ic3A7PEEgSFJFRj0iRmFzdFN0cmluZ0J1ZmZlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPFRSPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCiAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQpERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4NCg0KPEhSPg0KPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPg0KPEgyPg0KPEZPTlQgU0laRT0iLTEiPg0Kb3JnLmFwYWNoZS54bWwudXRpbHM8L0ZPTlQ+DQo8QlI+DQpDbGFzcyAgRmFzdFN0cmluZ0J1ZmZlcjwvSDI+DQo8UFJFPg0KamF2YS5sYW5nLk9iamVjdA0KICB8DQogICstLTxCPm9yZy5hcGFjaGUueG1sLnV0aWxzLkZhc3RTdHJpbmdCdWZmZXI8L0I+DQo8L1BSRT4NCjxIUj4NCjxETD4NCjxEVD5wdWJsaWMgY2xhc3MgPEI+RmFzdFN0cmluZ0J1ZmZlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4NCg0KPFA+DQpCYXJlLWJvbmVzLCB1bnNhZmUsIGZhc3Qgc3RyaW5nIGJ1ZmZlci4gTm8gdGhyZWFkLXNhZmV0eSwgbm8KIHBhcmFtZXRlciByYW5nZSBjaGVja2luZywgZXhwb3NlZCBmaWVsZHMuIE5vdGUgdGhhdCBpbiB0eXBpY2FsCiBhcHBsaWNhdGlvbnMsIHRocmVhZC1zYWZldHkgb2YgYSBTdHJpbmdCdWZmZXIgaXMgYSBzb21ld2hhdAogZHViaW91cyBjb25jZXB0IGluIGFueSBjYXNlLgogPHA+CiBOb3RlIHRoYXQgU3RyZWUgYW5kIERUTSB1c2VkIGEgc2luZ2xlIEZhc3RTdHJpbmdCdWZmZXIgYXMgYSBzdHJpbmcgcG9vbCwKIGJ5IHJlY29yZGluZyBzdGFydCBhbmQgbGVuZ3RoIGluZGljZXMgd2l0aGluIHRoaXMgc2luZ2xlIGJ1ZmZlci4gVGhpcwogbWluaW1pemVzIGhlYXAgb3ZlcmhlYWQsIGJ1dCBvZiBjb3Vyc2UgcmVxdWlyZXMgbW9yZSB3b3JrIHdoZW4gcmV0cmlldmluZwogdGhlIGRhdGEuCiA8cD4KIEZhc3RTdHJpbmdCdWZmZXIgb3BlcmF0ZXMgYXMgYSAiY2h1bmtlZCBidWZmZXIiLiBEb2luZyBzbwogcmVkdWNlcyB0aGUgbmVlZCB0byByZWNvcHkgZXhpc3RpbmcgaW5mb3JtYXRpb24gd2hlbiBhbiBhcHBlbmQKIGV4Y2VlZHMgdGhlIHNwYWNlIGF2YWlsYWJsZTsgd2UganVzdCBhbGxvY2F0ZSBhbm90aGVyIGNodW5rIGFuZAogZmxvdyBhY3Jvc3MgdG8gaXQuIChUaGUgYXJyYXkgb2YgY2h1bmtzIG1heSBuZWVkIHRvIGdyb3csCiBhZG1pdHRlZGx5LCBidXQgdGhhdCdzIGEgbXVjaCBzbWFsbGVyIG9iamVjdC4pIFNvbWUgZXhjZXNzCiByZWNvcHlpbmcgbWF5IGFyaXNlIHdoZW4gd2UgZXh0cmFjdCBTdHJpbmdzIHdoaWNoIGNyb3NzIGNodW5rCiBib3VuZGFyaWVzOyBsYXJnZXIgY2h1bmtzIG1ha2UgdGhhdCBsZXNzIGZyZXF1ZW50LgogPHA+CiBUaGUgc2l6ZSB2YWx1ZXMgYXJlIHBhcmFtZXRlcml6ZWQsIHRvIGFsbG93IHR1bmluZyB0aGlzIGNvZGUuIEluCiB0aGVvcnksIFJlc3VsdCBUcmVlIEZyYWdtZW50cyBtaWdodCB3YW50IHRvIGJlIHR1bmVkIGRpZmZlcmVudGx5IAogZnJvbSB0aGUgbWFpbiBkb2N1bWVudCdzIHRleHQuIAogPHA+CiAlUkVWSUVXJSBBbiBleHBlcmltZW50IGluIHNlbGYtdHVuaW5nIGlzCiBpbmNsdWRlZCBpbiB0aGUgY29kZSAodXNpbmcgbmVzdGVkIEZhc3RTdHJpbmdCdWZmZXJzIHRvIGFjaGlldmUKIHZhcmlhdGlvbiBpbiBjaHVuayBzaXplcyksIGJ1dCB0aGlzIGltcGxlbWVudGF0aW9uIGhhcyBwcm92ZW4gdG8KIGJlIHByb2JsZW1hdGljIHdoZW4gZGF0YSBtYXkgYmUgYmVpbmcgY29waWVkIGZyb20gdGhlIEZTQiBpbnRvIGl0c2VsZi4KIFdlIHNob3VsZCBlaXRoZXIgcmUtYXJjaGl0ZWN0IHRoYXQgdG8gbWFrZSB0aGlzIHNhZmUgKGlmIHBvc3NpYmxlKQogb3IgcmVtb3ZlIHRoYXQgY29kZSBhbmQgY2xlYW4gdXAgZm9yIHBlcmZvcm1hbmNlL21haW50YWluYWJpbGl0eSByZWFzb25zLgogPHA+DQo8UD4NCjxIUj4NCg0KPFA+DQo8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPg0KDQo8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4NCjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPg0KPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPnN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9GYXN0U3RyaW5nQnVmZmVyLmh0bWwjU1VQUFJFU1NfQk9USCI+U1VQUFJFU1NfQk9USDwvQT48L0I+PC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNYW5pZmVzdCBjb25zdGFudDogU3VwcHJlc3MgYm90aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT5zdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRmFzdFN0cmluZ0J1ZmZlci5odG1sI1NVUFBSRVNTX0xFQURJTkdfV1MiPlNVUFBSRVNTX0xFQURJTkdfV1M8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWFuaWZlc3QgY29uc3RhbnQ6IFN1cHByZXNzIGxlYWRpbmcgd2hpdGVzcGFjZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNTVVBQUkVTU19UUkFJTElOR19XUyI+U1VQUFJFU1NfVFJBSUxJTkdfV1M8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWFuaWZlc3QgY29uc3RhbnQ6IFN1cHByZXNzIHRyYWlsaW5nIHdoaXRlc3BhY2UuPC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7DQo8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+DQoNCjxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNGYXN0U3RyaW5nQnVmZmVyKCkiPkZhc3RTdHJpbmdCdWZmZXI8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBGYXN0U3RyaW5nQnVmZmVyLCB1c2luZyBhIGRlZmF1bHQgYWxsb2NhdGlvbiBwb2xpY3kuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9GYXN0U3RyaW5nQnVmZmVyLmh0bWwjRmFzdFN0cmluZ0J1ZmZlcihpbnQpIj5GYXN0U3RyaW5nQnVmZmVyPC9BPjwvQj4oaW50Jm5ic3A7aW5pdENodW5rQml0cyk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIEZhc3RTdHJpbmdCdWZmZXIsIHVzaW5nIGRlZmF1bHQgbWF4Q2h1bmtCaXRzIGFuZAogcmVidW5kbGVCaXRzIHZhbHVlcy48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNGYXN0U3RyaW5nQnVmZmVyKGludCwgaW50KSI+RmFzdFN0cmluZ0J1ZmZlcjwvQT48L0I+KGludCZuYnNwO2luaXRDaHVua0JpdHMsCiAgICAgICAgICAgICAgICAgaW50Jm5ic3A7bWF4Q2h1bmtCaXRzKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgRmFzdFN0cmluZ0J1ZmZlciwgdXNpbmcgYSBkZWZhdWx0IHJlYnVuZGxlQml0cyB2YWx1ZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNGYXN0U3RyaW5nQnVmZmVyKGludCwgaW50LCBpbnQpIj5GYXN0U3RyaW5nQnVmZmVyPC9BPjwvQj4oaW50Jm5ic3A7aW5pdENodW5rQml0cywKICAgICAgICAgICAgICAgICBpbnQmbmJzcDttYXhDaHVua0JpdHMsCiAgICAgICAgICAgICAgICAgaW50Jm5ic3A7cmVidW5kbGVCaXRzKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgRmFzdFN0cmluZ0J1ZmZlciwgd2l0aCBhbGxvY2F0aW9uIHBvbGljeSBhcyBwZXIgcGFyYW1ldGVycy48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQombmJzcDsNCjwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRmFzdFN0cmluZ0J1ZmZlci5odG1sI2FwcGVuZChjaGFyKSI+YXBwZW5kPC9BPjwvQj4oY2hhciZuYnNwO3ZhbHVlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXBwZW5kIGEgc2luZ2xlIGNoYXJhY3RlciBvbnRvIHRoZSBGYXN0U3RyaW5nQnVmZmVyLCBncm93aW5nIHRoZQogc3RvcmFnZSBpZiBuZWNlc3NhcnkuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRmFzdFN0cmluZ0J1ZmZlci5odG1sI2FwcGVuZChjaGFyW10sIGludCwgaW50KSI+YXBwZW5kPC9BPjwvQj4oY2hhcltdJm5ic3A7Y2hhcnMsCiAgICAgICBpbnQmbmJzcDtzdGFydCwKICAgICAgIGludCZuYnNwO2xlbmd0aCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FwcGVuZCBwYXJ0IG9mIHRoZSBjb250ZW50cyBvZiBhIENoYXJhY3RlciBBcnJheSBvbnRvIHRoZQogRmFzdFN0cmluZ0J1ZmZlciwgIGdyb3dpbmcgdGhlIHN0b3JhZ2UgaWYgbmVjZXNzYXJ5LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNhcHBlbmQob3JnLmFwYWNoZS54bWwudXRpbHMuRmFzdFN0cmluZ0J1ZmZlcikiPmFwcGVuZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCI+RmFzdFN0cmluZ0J1ZmZlcjwvQT4mbmJzcDt2YWx1ZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FwcGVuZCB0aGUgY29udGVudHMgb2YgYW5vdGhlciBGYXN0U3RyaW5nQnVmZmVyIG9udG8KIHRoaXMgRmFzdFN0cmluZ0J1ZmZlciwgZ3Jvd2luZyB0aGUgc3RvcmFnZSBpZiBuZWNlc3NhcnkuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRmFzdFN0cmluZ0J1ZmZlci5odG1sI2FwcGVuZChqYXZhLmxhbmcuU3RyaW5nKSI+YXBwZW5kPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXBwZW5kIHRoZSBjb250ZW50cyBvZiBhIFN0cmluZyBvbnRvIHRoZSBGYXN0U3RyaW5nQnVmZmVyLAogZ3Jvd2luZyB0aGUgc3RvcmFnZSBpZiBuZWNlc3NhcnkuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRmFzdFN0cmluZ0J1ZmZlci5odG1sI2FwcGVuZChqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+YXBwZW5kPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO3ZhbHVlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXBwZW5kIHRoZSBjb250ZW50cyBvZiBhIFN0cmluZ0J1ZmZlciBvbnRvIHRoZSBGYXN0U3RyaW5nQnVmZmVyLAogZ3Jvd2luZyB0aGUgc3RvcmFnZSBpZiBuZWNlc3NhcnkuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2NoYXI8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRmFzdFN0cmluZ0J1ZmZlci5odG1sI2NoYXJBdChpbnQpIj5jaGFyQXQ8L0E+PC9CPihpbnQmbmJzcDtwb3MpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBzaW5nbGUgY2hhcmFjdGVyIGZyb20gdGhlIHN0cmluZyBidWZmZXIuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRmFzdFN0cmluZ0J1ZmZlci5odG1sI2dldFN0cmluZyhpbnQsIGludCkiPmdldFN0cmluZzwvQT48L0I+KGludCZuYnNwO3N0YXJ0LAogICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRmFzdFN0cmluZ0J1ZmZlci5odG1sI2lzV2hpdGVzcGFjZShpbnQsIGludCkiPmlzV2hpdGVzcGFjZTwvQT48L0I+KGludCZuYnNwO3N0YXJ0LAogICAgICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9GYXN0U3RyaW5nQnVmZmVyLmh0bWwjbGVuZ3RoKCkiPmxlbmd0aDwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNyZXNldCgpIj5yZXNldDwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Rpc2NhcmQgdGhlIGNvbnRlbnQgb2YgdGhlIEZhc3RTdHJpbmdCdWZmZXIsIGFuZCBtb3N0IG9mIHRoZSBtZW1vcnkKIHRoYXQgd2FzIGFsbG9jYXRlZCBieSBpdCwgcmVzdG9yaW5nIHRoZSBpbml0aWFsIHN0YXRlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNzZW5kTm9ybWFsaXplZFNBWGNoYXJhY3RlcnMoY2hhcltdLCBpbnQsIGludCwgb3JnLnhtbC5zYXguQ29udGVudEhhbmRsZXIpIj5zZW5kTm9ybWFsaXplZFNBWGNoYXJhY3RlcnM8L0E+PC9CPihjaGFyW10mbmJzcDtjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCI+Q29udGVudEhhbmRsZXI8L0E+Jm5ic3A7aGFuZGxlcik8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RpcmVjdGx5IG5vcm1hbGl6ZSBhbmQgZGlzcGF0Y2ggdGhlIGNoYXJhY3RlciBhcnJheS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNzZW5kTm9ybWFsaXplZFNBWGNoYXJhY3RlcnMob3JnLnhtbC5zYXguQ29udGVudEhhbmRsZXIsIGludCwgaW50KSI+c2VuZE5vcm1hbGl6ZWRTQVhjaGFyYWN0ZXJzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCI+Q29udGVudEhhbmRsZXI8L0E+Jm5ic3A7Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2xlbmd0aCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NlbmRzIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgY2hhcmFjdGVycyBhcyBvbmUgb3IgbW9yZSBTQVggY2hhcmFjdGVycygpCiBldmVudHMsIG5vcm1hbGl6aW5nIHRoZSBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byBYU0xUIHJ1bGVzLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNzZW5kU0FYY2hhcmFjdGVycyhvcmcueG1sLnNheC5Db250ZW50SGFuZGxlciwgaW50LCBpbnQpIj5zZW5kU0FYY2hhcmFjdGVyczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0NvbnRlbnRIYW5kbGVyLmh0bWwiPkNvbnRlbnRIYW5kbGVyPC9BPiZuYnNwO2NoLAogICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydCwKICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2VuZHMgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIGFzIG9uZSBvciBtb3JlIFNBWCBjaGFyYWN0ZXJzKCkKIGV2ZW50cy48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9GYXN0U3RyaW5nQnVmZmVyLmh0bWwjc2VuZFNBWENvbW1lbnQob3JnLnhtbC5zYXguZXh0LkxleGljYWxIYW5kbGVyLCBpbnQsIGludCkiPnNlbmRTQVhDb21tZW50PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvZXh0L0xleGljYWxIYW5kbGVyLmh0bWwiPkxleGljYWxIYW5kbGVyPC9BPiZuYnNwO2NoLAogICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydCwKICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2VuZHMgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIGFzIHNheCBDb21tZW50LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNzZXRMZW5ndGgoaW50KSI+c2V0TGVuZ3RoPC9BPjwvQj4oaW50Jm5ic3A7bCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RpcmVjdGx5IHNldCBob3cgbXVjaCBvZiB0aGUgRmFzdFN0cmluZ0J1ZmZlcidzIHN0b3JhZ2UgaXMgdG8gYmUKIGNvbnNpZGVyZWQgcGFydCBvZiBpdHMgY29udGVudC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3V0aWxzL0Zhc3RTdHJpbmdCdWZmZXIuaHRtbCNzaXplKCkiPnNpemU8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIGxlbmd0aCBvZiB0aGUgbGlzdC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9GYXN0U3RyaW5nQnVmZmVyLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOb3RlIHRoYXQgdGhpcyBvcGVyYXRpb24gaGFzIGJlZW4gc29tZXdoYXQgZGVvcHRpbWl6ZWQgYnkgdGhlIHNoaWZ0IHRvIGEKIGNodW5rZWQgYXJyYXksIGFzIHRoZXJlIGlzIG5vIGZhY3RvcnkgbWV0aG9kIHRvIHByb2R1Y2UgYSBTdHJpbmcgb2JqZWN0CiBkaXJlY3RseSBmcm9tIGFuIGFycmF5IG9mIGFycmF5cyBhbmQgaGVuY2UgYSBkb3VibGUgY29weSBpcyBuZWVkZWQuPC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4NCjxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURD48Q09ERT5lcXVhbHMsIA0KZ2V0Q2xhc3MsIA0KaGFzaENvZGUsIA0Kbm90aWZ5LCANCm5vdGlmeUFsbCwgDQp3YWl0LCANCndhaXQsIA0Kd2FpdDwvQ09ERT48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQombmJzcDsNCjxQPg0KDQo8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+DQoNCjxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4NCjxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KDQo8QSBOQU1FPSJTVVBQUkVTU19MRUFESU5HX1dTIj48IS0tIC0tPjwvQT48SDM+DQpTVVBQUkVTU19MRUFESU5HX1dTPC9IMz4NCjxQUkU+DQpwdWJsaWMgc3RhdGljIGZpbmFsIGludCA8Qj5TVVBQUkVTU19MRUFESU5HX1dTPC9CPjwvUFJFPg0KPERMPg0KPEREPk1hbmlmZXN0IGNvbnN0YW50OiBTdXBwcmVzcyBsZWFkaW5nIHdoaXRlc3BhY2UuCiBUaGlzIHNob3VsZCBiZSB1c2VkIHdoZW4gbm9ybWFsaXplLXRvLVNBWCBpcyBjYWxsZWQgZm9yIHRoZSBmaXJzdCBjaHVuayBvZiBhCiBtdWx0aS1jaHVuayBvdXRwdXQsIG9yIG9uZSBmb2xsb3dpbmcgdW5zdXBwcmVzc2VkIHdoaXRlc3BhY2UgaW4gYSBwcmV2aW91cwogY2h1bmsuPEREPjxETD4NCjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9GYXN0U3RyaW5nQnVmZmVyLmh0bWwjc2VuZE5vcm1hbGl6ZWRTQVhjaGFyYWN0ZXJzKG9yZy54bWwuc2F4LkNvbnRlbnRIYW5kbGVyLCBpbnQsIGludCkiPjxDT0RFPnNlbmROb3JtYWxpemVkU0FYY2hhcmFjdGVycyhvcmcueG1sLnNheC5Db250ZW50SGFuZGxlcixpbnQsaW50KTwvQ09ERT48L0E+PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJTVVBQUkVTU19UUkFJTElOR19XUyI+PCEtLSAtLT48L0E+PEgzPg0KU1VQUFJFU1NfVFJBSUxJTkdfV1M8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgZmluYWwgaW50IDxCPlNVUFBSRVNTX1RSQUlMSU5HX1dTPC9CPjwvUFJFPg0KPERMPg0KPEREPk1hbmlmZXN0IGNvbnN0YW50OiBTdXBwcmVzcyB0cmFpbGluZyB3aGl0ZXNwYWNlLgogVGhpcyBzaG91bGQgYmUgdXNlZCB3aGVuIG5vcm1hbGl6ZS10by1TQVggaXMgY2FsbGVkIGZvciB0aGUgbGFzdCBjaHVuayBvZiBhCiBtdWx0aS1jaHVuayBvdXRwdXQ7IGl0IG1heSBoYXZlIHRvIGJlIG9yJ2VkIHdpdGggU1VQUFJFU1NfTEVBRElOR19XUy48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJTVVBQUkVTU19CT1RIIj48IS0tIC0tPjwvQT48SDM+DQpTVVBQUkVTU19CT1RIPC9IMz4NCjxQUkU+DQpwdWJsaWMgc3RhdGljIGZpbmFsIGludCA8Qj5TVVBQUkVTU19CT1RIPC9CPjwvUFJFPg0KPERMPg0KPEREPk1hbmlmZXN0IGNvbnN0YW50OiBTdXBwcmVzcyBib3RoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiBUaGlzIHNob3VsZCBiZSB1c2VkIHdoZW4gbm9ybWFsaXplLXRvLVNBWCBpcyBjYWxsZWQgZm9yIGEgY29tcGxldGUgc3RyaW5nLgogKEknbSBub3Qgd2lsZCBhYm91dCB0aGUgbmFtZSBvZiB0aGlzIG9uZS4gSWRlYXMgd2VsY29tZS4pPEREPjxETD4NCjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9GYXN0U3RyaW5nQnVmZmVyLmh0bWwjc2VuZE5vcm1hbGl6ZWRTQVhjaGFyYWN0ZXJzKG9yZy54bWwuc2F4LkNvbnRlbnRIYW5kbGVyLCBpbnQsIGludCkiPjxDT0RFPnNlbmROb3JtYWxpemVkU0FYY2hhcmFjdGVycyhvcmcueG1sLnNheC5Db250ZW50SGFuZGxlcixpbnQsaW50KTwvQ09ERT48L0E+PC9ETD4NCjwvREQ+DQo8L0RMPg0KDQo8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+DQoNCjxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4NCjxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KDQo8QSBOQU1FPSJGYXN0U3RyaW5nQnVmZmVyKGludCwgaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+DQpGYXN0U3RyaW5nQnVmZmVyPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEI+RmFzdFN0cmluZ0J1ZmZlcjwvQj4oaW50Jm5ic3A7aW5pdENodW5rQml0cywKICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7bWF4Q2h1bmtCaXRzLAogICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtyZWJ1bmRsZUJpdHMpPC9QUkU+DQo8REw+DQo8REQ+Q29uc3RydWN0IGEgRmFzdFN0cmluZ0J1ZmZlciwgd2l0aCBhbGxvY2F0aW9uIHBvbGljeSBhcyBwZXIgcGFyYW1ldGVycy4KIDxwPgogRm9yIGNvZGluZyBjb252ZW5pZW5jZSwgSSd2ZSBleHByZXNzZWQgYm90aCBhbGxvY2F0aW9uIHNpemVzIGluIHRlcm1zIG9mCiBhIG51bWJlciBvZiBiaXRzLiBUaGF0J3MgbmVlZGVkIGZvciB0aGUgZmluYWwgc2l6ZSBvZiBhIGNodW5rLAogdG8gcGVybWl0IGZhc3QgYW5kIGVmZmljaWVudCBzaGlmdC1hbmQtbWFzayBhZGRyZXNzaW5nLiBJdCdzIGxlc3MgY3JpdGljYWwKIGZvciB0aGUgaW5pdGFsIHNpemUsIGFuZCBtYXkgYmUgcmVjb25zaWRlcmVkLgogPHA+CiBBbiBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBhY2NlcHQgaW50ZWdlciBzaXplcyBhbmQgcm91bmQgdG8gcG93ZXJzIG9mIHR3bzsKIHRoYXQgcmVhbGx5IGRvZXNuJ3Qgc2VlbSB0byBidXkgdXMgbXVjaCwgaWYgYW55dGhpbmcuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5pdENodW5rQml0czwvQ09ERT4gLSBMZW5ndGggaW4gY2hhcmFjdGVycyBvZiB0aGUgaW5pdGlhbCBhbGxvY2F0aW9uCiBvZiBhIGNodW5rLCBleHByZXNzZWQgaW4gbG9nLWJhc2UtMi4gKFRoYXQgaXMsIDEwIG1lYW5zIGFsbG9jYXRlIDEwMjQKIGNoYXJhY3RlcnMuKSBMYXRlciBjaHVua3Mgd2lsbCB1c2UgbGFyZ2VyIGFsbG9jYXRpb24gdW5pdHMsIHRvIHRyYWRlIG9mZgogYWxsb2NhdGlvbiBzcGVlZCBvZiBsYXJnZSBkb2N1bWVudCBhZ2FpbnN0IHN0b3JhZ2UgZWZmaWNpZW5jeSBvZiBzbWFsbAogb25lcy48REQ+PENPREU+bWF4Q2h1bmtCaXRzPC9DT0RFPiAtIE51bWJlciBvZiBjaGFyYWN0ZXItb2Zmc2V0IGJpdHMgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IKIGFkZHJlc3Npbmcgd2l0aGluIGEgY2h1bmsuIE1heGltdW0gbGVuZ3RoIG9mIGEgY2h1bmsgaXMgMl5jaHVua0JpdHMKIGNoYXJhY3RlcnMuPEREPjxDT0RFPnJlYnVuZGxlQml0czwvQ09ERT4gLSBOdW1iZXIgb2YgY2hhcmFjdGVyLW9mZnNldCBiaXRzIHRoYXQgYWRkcmVzc2luZyBzaG91bGQKIGFkdmFuY2UgYmVmb3JlIHdlIGF0dGVtcHQgdG8gdGFrZSBhIHN0ZXAgZnJvbSBpbml0Q2h1bmtCaXRzIHRvIG1heENodW5rQml0czwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iRmFzdFN0cmluZ0J1ZmZlcihpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4NCkZhc3RTdHJpbmdCdWZmZXI8L0gzPg0KPFBSRT4NCnB1YmxpYyA8Qj5GYXN0U3RyaW5nQnVmZmVyPC9CPihpbnQmbmJzcDtpbml0Q2h1bmtCaXRzLAogICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDttYXhDaHVua0JpdHMpPC9QUkU+DQo8REw+DQo8REQ+Q29uc3RydWN0IGEgRmFzdFN0cmluZ0J1ZmZlciwgdXNpbmcgYSBkZWZhdWx0IHJlYnVuZGxlQml0cyB2YWx1ZS4KCiBORUVEU0RPQyBAcGFyYW0gaW5pdENodW5rQml0cwogTkVFRFNET0MgQHBhcmFtIG1heENodW5rQml0czwvREw+DQo8SFI+DQoNCjxBIE5BTUU9IkZhc3RTdHJpbmdCdWZmZXIoaW50KSI+PCEtLSAtLT48L0E+PEgzPg0KRmFzdFN0cmluZ0J1ZmZlcjwvSDM+DQo8UFJFPg0KcHVibGljIDxCPkZhc3RTdHJpbmdCdWZmZXI8L0I+KGludCZuYnNwO2luaXRDaHVua0JpdHMpPC9QUkU+DQo8REw+DQo8REQ+Q29uc3RydWN0IGEgRmFzdFN0cmluZ0J1ZmZlciwgdXNpbmcgZGVmYXVsdCBtYXhDaHVua0JpdHMgYW5kCiByZWJ1bmRsZUJpdHMgdmFsdWVzLgogPHA+CiBJU1NVRTogU2hvdWxkIHRoaXMgY2FsbCBhc3NlcnQgaW5pdGlhbCBzaXplLCBvciBmaXhlZCBzaXplPwogTm93IGNvbmZpZ3VyZWQgYXMgaW5pdGlhbCwgd2l0aCBhIGRlZmF1bHQgZm9yIGZpeGVkLgoKIE5FRURTRE9DIEBwYXJhbSBpbml0Q2h1bmtCaXRzPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iRmFzdFN0cmluZ0J1ZmZlcigpIj48IS0tIC0tPjwvQT48SDM+DQpGYXN0U3RyaW5nQnVmZmVyPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEI+RmFzdFN0cmluZ0J1ZmZlcjwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkNvbnN0cnVjdCBhIEZhc3RTdHJpbmdCdWZmZXIsIHVzaW5nIGEgZGVmYXVsdCBhbGxvY2F0aW9uIHBvbGljeS48L0RMPg0KDQo8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+DQoNCjxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQoNCjxBIE5BTUU9InNpemUoKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2l6ZTwvSDM+DQo8UFJFPg0KcHVibGljIGZpbmFsIGludCA8Qj5zaXplPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+R2V0IHRoZSBsZW5ndGggb2YgdGhlIGxpc3QuIFN5bm9ueW0gZm9yIGxlbmd0aCgpLjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgRmFzdFN0cmluZ0J1ZmZlcidzIGNvbnRlbnQuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJsZW5ndGgoKSI+PCEtLSAtLT48L0E+PEgzPg0KbGVuZ3RoPC9IMz4NCjxQUkU+DQpwdWJsaWMgZmluYWwgaW50IDxCPmxlbmd0aDwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkdldCB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0LiBTeW5vbnltIGZvciBzaXplKCkuPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSBGYXN0U3RyaW5nQnVmZmVyJ3MgY29udGVudC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InJlc2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4NCnJlc2V0PC9IMz4NCjxQUkU+DQpwdWJsaWMgZmluYWwgdm9pZCA8Qj5yZXNldDwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkRpc2NhcmQgdGhlIGNvbnRlbnQgb2YgdGhlIEZhc3RTdHJpbmdCdWZmZXIsIGFuZCBtb3N0IG9mIHRoZSBtZW1vcnkKIHRoYXQgd2FzIGFsbG9jYXRlZCBieSBpdCwgcmVzdG9yaW5nIHRoZSBpbml0aWFsIHN0YXRlLiBOb3RlIHRoYXQgdGhpcwogbWF5IGV2ZW50dWFsbHkgYmUgZGlmZmVyZW50IGZyb20gc2V0TGVuZ3RoKDApLCB3aGljaCBzZWUuPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0TGVuZ3RoKGludCkiPjwhLS0gLS0+PC9BPjxIMz4NCnNldExlbmd0aDwvSDM+DQo8UFJFPg0KcHVibGljIGZpbmFsIHZvaWQgPEI+c2V0TGVuZ3RoPC9CPihpbnQmbmJzcDtsKTwvUFJFPg0KPERMPg0KPEREPkRpcmVjdGx5IHNldCBob3cgbXVjaCBvZiB0aGUgRmFzdFN0cmluZ0J1ZmZlcidzIHN0b3JhZ2UgaXMgdG8gYmUKIGNvbnNpZGVyZWQgcGFydCBvZiBpdHMgY29udGVudC4gVGhpcyBpcyBhIGZhc3QgYnV0IGhhemFyZG91cwogb3BlcmF0aW9uLiBJdCBpcyBub3QgcHJvdGVjdGVkIGFnYWluc3QgbmVnYXRpdmUgdmFsdWVzLCBvciB2YWx1ZXMKIGdyZWF0ZXIgdGhhbiB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgY3VycmVudGx5IGF2YWlsYWJsZS4uLiBhbmQgZXZlbgogaWYgYWRkaXRpb25hbCBzdG9yYWdlIGRvZXMgZXhpc3QsIGl0cyBjb250ZW50cyBhcmUgdW5wcmVkaWN0YWJsZS4KIFRoZSBvbmx5IHNhZmUgdXNlIGZvciBvdXIgc2V0TGVuZ3RoKCkgaXMgdG8gdHJ1bmNhdGUgdGhlIEZhc3RTdHJpbmdCdWZmZXIKIHRvIGEgc2hvcnRlciBzdHJpbmcuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bDwvQ09ERT4gLSBOZXcgbGVuZ3RoLiBJZiBsPDAgb3IgbD49Z2V0TGVuZ3RoKCksIHRoaXMgb3BlcmF0aW9uIHdpbGwKIG5vdCByZXBvcnQgYW4gZXJyb3IgYnV0IGZ1dHVyZSBvcGVyYXRpb25zIHdpbGwgYWxtb3N0IGNlcnRhaW5seSBmYWlsLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPg0KdG9TdHJpbmc8L0gzPg0KPFBSRT4NCnB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+Tm90ZSB0aGF0IHRoaXMgb3BlcmF0aW9uIGhhcyBiZWVuIHNvbWV3aGF0IGRlb3B0aW1pemVkIGJ5IHRoZSBzaGlmdCB0byBhCiBjaHVua2VkIGFycmF5LCBhcyB0aGVyZSBpcyBubyBmYWN0b3J5IG1ldGhvZCB0byBwcm9kdWNlIGEgU3RyaW5nIG9iamVjdAogZGlyZWN0bHkgZnJvbSBhbiBhcnJheSBvZiBhcnJheXMgYW5kIGhlbmNlIGEgZG91YmxlIGNvcHkgaXMgbmVlZGVkLgogQnkgdXNpbmcgZW5zdXJlQ2FwYWNpdHkgd2UgaG9wZSB0byBtaW5pbWl6ZSB0aGUgaGVhcCBvdmVyaGVhZCBvZiBidWlsZGluZwogdGhlIGludGVybWVkaWF0ZSBTdHJpbmdCdWZmZXIuCiA8cD4KIChJdCByZWFsbHkgaXMgYSBwaXR5IHRoYXQgSmF2YSBkaWRuJ3QgZGVzaWduIFN0cmluZyBhcyBhIGZpbmFsIHN1YmNsYXNzCiBvZiBNdXRhYmxlU3RyaW5nLCByYXRoZXIgdGhhbiBoYXZpbmcgU3RyaW5nQnVmZmVyIGJlIGEgc2VwYXJhdGUgaGllcmFyY2h5LgogV2UnZCBhdm9pZCBhIDxzdHJvbmc+bG90PC9zdHJvbmc+IG9mIGRvdWJsZS1idWZmZXJpbmcuKTxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBjb250ZW50cyBvZiB0aGUgRmFzdFN0cmluZ0J1ZmZlciBhcyBhIHN0YW5kYXJkIEphdmEgc3RyaW5nLjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD50b1N0cmluZyBpbiBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJhcHBlbmQoY2hhcikiPjwhLS0gLS0+PC9BPjxIMz4NCmFwcGVuZDwvSDM+DQo8UFJFPg0KcHVibGljIGZpbmFsIHZvaWQgPEI+YXBwZW5kPC9CPihjaGFyJm5ic3A7dmFsdWUpPC9QUkU+DQo8REw+DQo8REQ+QXBwZW5kIGEgc2luZ2xlIGNoYXJhY3RlciBvbnRvIHRoZSBGYXN0U3RyaW5nQnVmZmVyLCBncm93aW5nIHRoZQogc3RvcmFnZSBpZiBuZWNlc3NhcnkuCiA8cD4KIE5PVEUgVEhBVCBhZnRlciBjYWxsaW5nIGFwcGVuZCgpLCBwcmV2aW91c2x5IG9idGFpbmVkCiByZWZlcmVuY2VzIHRvIG1fYXJyYXlbXVtdIG1heSBubyBsb25nZXIgYmUgdmFsaWQuLi4uCiB0aG91Z2ggaW4gZmFjdCB0aGV5IHNob3VsZCBiZSBpbiB0aGlzIGluc3RhbmNlLjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIGNoYXJhY3RlciB0byBiZSBhcHBlbmRlZC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFwcGVuZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KYXBwZW5kPC9IMz4NCjxQUkU+DQpwdWJsaWMgZmluYWwgdm9pZCA8Qj5hcHBlbmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4NCjxETD4NCjxERD5BcHBlbmQgdGhlIGNvbnRlbnRzIG9mIGEgU3RyaW5nIG9udG8gdGhlIEZhc3RTdHJpbmdCdWZmZXIsCiBncm93aW5nIHRoZSBzdG9yYWdlIGlmIG5lY2Vzc2FyeS4KIDxwPgogTk9URSBUSEFUIGFmdGVyIGNhbGxpbmcgYXBwZW5kKCksIHByZXZpb3VzbHkgb2J0YWluZWQKIHJlZmVyZW5jZXMgdG8gbV9hcnJheVtdIG1heSBubyBsb25nZXIgYmUgdmFsaWQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gU3RyaW5nIHdob3NlIGNvbnRlbnRzIGFyZSB0byBiZSBhcHBlbmRlZC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFwcGVuZChqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+PCEtLSAtLT48L0E+PEgzPg0KYXBwZW5kPC9IMz4NCjxQUkU+DQpwdWJsaWMgZmluYWwgdm9pZCA8Qj5hcHBlbmQ8L0I+KGphdmEubGFuZy5TdHJpbmdCdWZmZXImbmJzcDt2YWx1ZSk8L1BSRT4NCjxETD4NCjxERD5BcHBlbmQgdGhlIGNvbnRlbnRzIG9mIGEgU3RyaW5nQnVmZmVyIG9udG8gdGhlIEZhc3RTdHJpbmdCdWZmZXIsCiBncm93aW5nIHRoZSBzdG9yYWdlIGlmIG5lY2Vzc2FyeS4KIDxwPgogTk9URSBUSEFUIGFmdGVyIGNhbGxpbmcgYXBwZW5kKCksIHByZXZpb3VzbHkgb2J0YWluZWQKIHJlZmVyZW5jZXMgdG8gbV9hcnJheVtdIG1heSBubyBsb25nZXIgYmUgdmFsaWQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gU3RyaW5nQnVmZmVyIHdob3NlIGNvbnRlbnRzIGFyZSB0byBiZSBhcHBlbmRlZC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFwcGVuZChjaGFyW10sIGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPg0KYXBwZW5kPC9IMz4NCjxQUkU+DQpwdWJsaWMgZmluYWwgdm9pZCA8Qj5hcHBlbmQ8L0I+KGNoYXJbXSZuYnNwO2NoYXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZW5ndGgpPC9QUkU+DQo8REw+DQo8REQ+QXBwZW5kIHBhcnQgb2YgdGhlIGNvbnRlbnRzIG9mIGEgQ2hhcmFjdGVyIEFycmF5IG9udG8gdGhlCiBGYXN0U3RyaW5nQnVmZmVyLCAgZ3Jvd2luZyB0aGUgc3RvcmFnZSBpZiBuZWNlc3NhcnkuCiA8cD4KIE5PVEUgVEhBVCBhZnRlciBjYWxsaW5nIGFwcGVuZCgpLCBwcmV2aW91c2x5IG9idGFpbmVkCiByZWZlcmVuY2VzIHRvIG1fYXJyYXlbXSBtYXkgbm8gbG9uZ2VyIGJlIHZhbGlkLjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNoYXJzPC9DT0RFPiAtIGNoYXJhY3RlciBhcnJheSBmcm9tIHdoaWNoIGRhdGEgaXMgdG8gYmUgY29waWVkPEREPjxDT0RFPnN0YXJ0PC9DT0RFPiAtIG9mZnNldCBpbiBjaGFycyBvZiBmaXJzdCBjaGFyYWN0ZXIgdG8gYmUgY29waWVkLAogemVyby1iYXNlZC48REQ+PENPREU+bGVuZ3RoPC9DT0RFPiAtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGJlIGNvcGllZDwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iYXBwZW5kKG9yZy5hcGFjaGUueG1sLnV0aWxzLkZhc3RTdHJpbmdCdWZmZXIpIj48IS0tIC0tPjwvQT48SDM+DQphcHBlbmQ8L0gzPg0KPFBSRT4NCnB1YmxpYyBmaW5hbCB2b2lkIDxCPmFwcGVuZDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvdXRpbHMvRmFzdFN0cmluZ0J1ZmZlci5odG1sIj5GYXN0U3RyaW5nQnVmZmVyPC9BPiZuYnNwO3ZhbHVlKTwvUFJFPg0KPERMPg0KPEREPkFwcGVuZCB0aGUgY29udGVudHMgb2YgYW5vdGhlciBGYXN0U3RyaW5nQnVmZmVyIG9udG8KIHRoaXMgRmFzdFN0cmluZ0J1ZmZlciwgZ3Jvd2luZyB0aGUgc3RvcmFnZSBpZiBuZWNlc3NhcnkuCiA8cD4KIE5PVEUgVEhBVCBhZnRlciBjYWxsaW5nIGFwcGVuZCgpLCBwcmV2aW91c2x5IG9idGFpbmVkCiByZWZlcmVuY2VzIHRvIG1fYXJyYXlbXSBtYXkgbm8gbG9uZ2VyIGJlIHZhbGlkLjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIEZhc3RTdHJpbmdCdWZmZXIgd2hvc2UgY29udGVudHMgYXJlCiB0byBiZSBhcHBlbmRlZC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImlzV2hpdGVzcGFjZShpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4NCmlzV2hpdGVzcGFjZTwvSDM+DQo8UFJFPg0KcHVibGljIGJvb2xlYW4gPEI+aXNXaGl0ZXNwYWNlPC9CPihpbnQmbmJzcDtzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2xlbmd0aCk8L1BSRT4NCjxETD4NCjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnN0YXJ0PC9DT0RFPiAtIE9mZnNldCBvZiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHJhbmdlLjxERD48Q09ERT5sZW5ndGg8L0NPREU+IC0gTnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gc2VuZC48RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRydWUgaWYgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIGFyZSBhbGwgd2hpdGVzcGFjZSwKIGFzIGRlZmluZWQgYnkgWE1MQ2hhcmFjdGVyUmVjb2duaXplci4KIDxwPgogQ1VSUkVOVExZIERPRVMgTk9UIENIRUNLIEZPUiBPVVQtT0YtUkFOR0UuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRTdHJpbmcoaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRTdHJpbmc8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0cmluZzwvQj4oaW50Jm5ic3A7c3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZW5ndGgpPC9QUkU+DQo8REw+DQo8REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zdGFydDwvQ09ERT4gLSBPZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSByYW5nZS48REQ+PENPREU+bGVuZ3RoPC9DT0RFPiAtIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHNlbmQuPERUPjxCPlJldHVybnM6PC9CPjxERD5hIG5ldyBTdHJpbmcgb2JqZWN0IGluaXRpYWxpemVkIGZyb20gdGhlIHNwZWNpZmllZCByYW5nZSBvZgogY2hhcmFjdGVycy48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImNoYXJBdChpbnQpIj48IS0tIC0tPjwvQT48SDM+DQpjaGFyQXQ8L0gzPg0KPFBSRT4NCnB1YmxpYyBjaGFyIDxCPmNoYXJBdDwvQj4oaW50Jm5ic3A7cG9zKTwvUFJFPg0KPERMPg0KPEREPkdldCBhIHNpbmdsZSBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RyaW5nIGJ1ZmZlci48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wb3M8L0NPREU+IC0gY2hhcmFjdGVyIHBvc2l0aW9uIHJlcXVlc3RlZC48RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgY2hhcmFjdGVyIGZyb20gdGhlIHJlcXVlc3RlZCBwb3NpdGlvbi48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InNlbmRTQVhjaGFyYWN0ZXJzKG9yZy54bWwuc2F4LkNvbnRlbnRIYW5kbGVyLCBpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4NCnNlbmRTQVhjaGFyYWN0ZXJzPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZW5kU0FYY2hhcmFjdGVyczwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCI+Q29udGVudEhhbmRsZXI8L0E+Jm5ic3A7Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+U2VuZHMgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIGFzIG9uZSBvciBtb3JlIFNBWCBjaGFyYWN0ZXJzKCkKIGV2ZW50cy4KIE5vdGUgdGhhdCB0aGUgYnVmZmVyIHJlZmVyZW5jZSBwYXNzZWQgdG8gdGhlIENvbnRlbnRIYW5kbGVyIG1heSBiZQogaW52YWxpZGF0ZWQgaWYgdGhlIEZhc3RTdHJpbmdCdWZmZXIgaXMgZWRpdGVkOyBpdCdzIHRoZSB1c2VyJ3MKIHJlc3BvbnNpYmlsaXR5IHRvIG1hbmFnZSBhY2Nlc3MgdG8gdGhlIEZhc3RTdHJpbmdCdWZmZXIgdG8gcHJldmVudCB0aGlzCiBwcm9ibGVtIGZyb20gYXJpc2luZy4KIDxwPgogTm90ZSB0b28gdGhhdCB0aGVyZSBpcyBubyBwcm9taXNlIHRoYXQgdGhlIG91dHB1dCB3aWxsIGJlIHNlbnQgYXMgYQogc2luZ2xlIGNhbGwuIEFzIGlzIGFsd2F5cyB0cnVlIGluIFNBWCwgb25lIGxvZ2ljYWwgc3RyaW5nIG1heSBiZSBzcGxpdAogYWNyb3NzIG11bHRpcGxlIGJsb2NrcyBvZiBtZW1vcnkgYW5kIGhlbmNlIGRlbGl2ZXJlZCBhcyBzZXZlcmFsCiBzdWNjZXNzaXZlIGV2ZW50cy48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jaDwvQ09ERT4gLSBTQVggQ29udGVudEhhbmRsZXIgb2JqZWN0IHRvIHJlY2VpdmUgdGhlIGV2ZW50LjxERD48Q09ERT5zdGFydDwvQ09ERT4gLSBPZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSByYW5nZS48REQ+PENPREU+bGVuZ3RoPC9DT0RFPiAtIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHNlbmQuPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+IC0gbWF5IGJlIHRocm93biBieSBoYW5kbGVyJ3MKIGNoYXJhY3RlcnMoKSBtZXRob2QuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZW5kTm9ybWFsaXplZFNBWGNoYXJhY3RlcnMob3JnLnhtbC5zYXguQ29udGVudEhhbmRsZXIsIGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPg0Kc2VuZE5vcm1hbGl6ZWRTQVhjaGFyYWN0ZXJzPC9IMz4NCjxQUkU+DQpwdWJsaWMgaW50IDxCPnNlbmROb3JtYWxpemVkU0FYY2hhcmFjdGVyczwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCI+Q29udGVudEhhbmRsZXI8L0E+Jm5ic3A7Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+U2VuZHMgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIGFzIG9uZSBvciBtb3JlIFNBWCBjaGFyYWN0ZXJzKCkKIGV2ZW50cywgbm9ybWFsaXppbmcgdGhlIGNoYXJhY3RlcnMgYWNjb3JkaW5nIHRvIFhTTFQgcnVsZXMuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2g8L0NPREU+IC0gU0FYIENvbnRlbnRIYW5kbGVyIG9iamVjdCB0byByZWNlaXZlIHRoZSBldmVudC48REQ+PENPREU+c3RhcnQ8L0NPREU+IC0gT2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgcmFuZ2UuPEREPjxDT0RFPmxlbmd0aDwvQ09ERT4gLSBOdW1iZXIgb2YgY2hhcmFjdGVycyB0byBzZW5kLjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+bm9ybWFsaXphdGlvbiBzdGF0dXMgdG8gYXBwbHkgdG8gbmV4dCBjaHVuayAoYmVjYXVzZSB3ZSBtYXkKIGhhdmUgYmVlbiBjYWxsZWQgcmVjdXJzaXZlbHkgdG8gcHJvY2VzcyBhbiBpbm5lciBGU0IpOgogPGRsPgogPGR0PjA8L2R0PgogPGRkPmlmIHRoaXMgb3V0cHV0IGRpZCBub3QgZW5kIGluIHJldGFpbmVkIHdoaXRlc3BhY2UsIGFuZCB0aHVzIHdoaXRlc3BhY2UKIGF0IHRoZSBzdGFydCBvZiB0aGUgZm9sbG93aW5nIGNodW5rIChpZiBhbnkpIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gYQogc2luZ2xlIHNwYWNlLgogPGR0PlNVUFBSRVNTX0xFQURJTkdfV1M8L2R0PgogPGRkPmlmIHRoaXMgb3V0cHV0IGVuZGVkIGluIHJldGFpbmVkIHdoaXRlc3BhY2UsIGFuZCB0aHVzIHdoaXRlc3BhY2UKIGF0IHRoZSBzdGFydCBvZiB0aGUgZm9sbG93aW5nIGNodW5rIChpZiBhbnkpIHNob3VsZCBiZSBjb21wbGV0ZWx5CiBzdXBwcmVzc2VkLjwvZGQ+CiA8L2RkPgogPC9kbD48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT4gLSBtYXkgYmUgdGhyb3duIGJ5IGhhbmRsZXIncwogY2hhcmFjdGVycygpIG1ldGhvZC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InNlbmROb3JtYWxpemVkU0FYY2hhcmFjdGVycyhjaGFyW10sIGludCwgaW50LCBvcmcueG1sLnNheC5Db250ZW50SGFuZGxlcikiPjwhLS0gLS0+PC9BPjxIMz4NCnNlbmROb3JtYWxpemVkU0FYY2hhcmFjdGVyczwvSDM+DQo8UFJFPg0KcHVibGljIHN0YXRpYyB2b2lkIDxCPnNlbmROb3JtYWxpemVkU0FYY2hhcmFjdGVyczwvQj4oY2hhcltdJm5ic3A7Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0NvbnRlbnRIYW5kbGVyLmh0bWwiPkNvbnRlbnRIYW5kbGVyPC9BPiZuYnNwO2hhbmRsZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD5EaXJlY3RseSBub3JtYWxpemUgYW5kIGRpc3BhdGNoIHRoZSBjaGFyYWN0ZXIgYXJyYXkuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2g8L0NPREU+IC0gVGhlIGNoYXJhY3RlcnMgZnJvbSB0aGUgWE1MIGRvY3VtZW50LjxERD48Q09ERT5zdGFydDwvQ09ERT4gLSBUaGUgc3RhcnQgcG9zaXRpb24gaW4gdGhlIGFycmF5LjxERD48Q09ERT5sZW5ndGg8L0NPREU+IC0gVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHJlYWQgZnJvbSB0aGUgYXJyYXkuPEREPjxDT0RFPmhhbmRsZXI8L0NPREU+IC0gU0FYIENvbnRlbnRIYW5kbGVyIG9iamVjdCB0byByZWNlaXZlIHRoZSBldmVudC48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT4gLSBBbnkgU0FYIGV4Y2VwdGlvbiwgcG9zc2libHkKICAgICAgICAgICAgd3JhcHBpbmcgYW5vdGhlciBleGNlcHRpb24uPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZW5kU0FYQ29tbWVudChvcmcueG1sLnNheC5leHQuTGV4aWNhbEhhbmRsZXIsIGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPg0Kc2VuZFNBWENvbW1lbnQ8L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPnNlbmRTQVhDb21tZW50PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9leHQvTGV4aWNhbEhhbmRsZXIuaHRtbCI+TGV4aWNhbEhhbmRsZXI8L0E+Jm5ic3A7Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+U2VuZHMgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIGFzIHNheCBDb21tZW50LgogPHA+CiBOb3RlIHRoYXQsIHVubGlrZSBzZW5kU0FYY2hhcmFjdGVycywgdGhpcyBoYXMgdG8gYmUgZG9uZSBhcyBhIHNpbmdsZSAKIGNhbGwgdG8gTGV4aWNhbEhhbmRsZXIjY29tbWVudC48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jaDwvQ09ERT4gLSBTQVggTGV4aWNhbEhhbmRsZXIgb2JqZWN0IHRvIHJlY2VpdmUgdGhlIGV2ZW50LjxERD48Q09ERT5zdGFydDwvQ09ERT4gLSBPZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSByYW5nZS48REQ+PENPREU+bGVuZ3RoPC9DT0RFPiAtIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHNlbmQuPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+IC0gbWF5IGJlIHRocm93biBieSBoYW5kbGVyJ3MKIGNoYXJhY3RlcnMoKSBtZXRob2QuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPg0KPEhSPg0KDQo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+DQo8VFI+DQo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4NCiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRmFzdFN0cmluZ0J1ZmZlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPC9UUj4NCjwvVEFCTEU+DQo8L1REPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+DQo8L0VNPg0KPC9URD4NCjwvVFI+DQoNCjxUUj4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9ET01IZWxwZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC91dGlscy9IYXNodHJlZTJOb2RlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJGYXN0U3RyaW5nQnVmZmVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFI+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCkRFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPg0KDQo8SFI+DQpDb3B5cmlnaHQgqSAyMDA2IEFwYWNoZSBYTUwgUHJvamVjdC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCjwvQk9EWT4NCjwvSFRNTD4NCg==