PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTI6NTcgRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBDbGFzcyAgU2VyaWFsaXplckJhc2UNCjwvVElUTEU+DQo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+DQo8L0hFQUQ+DQo8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+DQoNCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4NCjxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4NCjxUUj4NCjxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4NCjxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPg0KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9TZXJpYWxpemVyQmFzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPC9UUj4NCjwvVEFCTEU+DQo8L1REPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+DQo8L0VNPg0KPC9URD4NCjwvVFI+DQoNCjxUUj4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL091dHB1dFByb3BlcnR5VXRpbHMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJGYWN0b3J5Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJTZXJpYWxpemVyQmFzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPFRSPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCiAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4NCg0KPEhSPg0KPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPg0KPEgyPg0KPEZPTlQgU0laRT0iLTEiPg0Kb3JnLmFwYWNoZS54bWwuc2VyaWFsaXplcjwvRk9OVD4NCjxCUj4NCkNsYXNzICBTZXJpYWxpemVyQmFzZTwvSDI+DQo8UFJFPg0KamF2YS5sYW5nLk9iamVjdA0KICB8DQogICstLTxCPm9yZy5hcGFjaGUueG1sLnNlcmlhbGl6ZXIuU2VyaWFsaXplckJhc2U8L0I+DQo8L1BSRT4NCjxETD4NCjxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1RvU0FYSGFuZGxlci5odG1sIj5Ub1NBWEhhbmRsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1RvU3RyZWFtLmh0bWwiPlRvU3RyZWFtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9Ub1Vua25vd25TdHJlYW0uaHRtbCI+VG9Vbmtub3duU3RyZWFtPC9BPjwvREQ+DQo8L0RMPg0KPEhSPg0KPERMPg0KPERUPnB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8Qj5TZXJpYWxpemVyQmFzZTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemF0aW9uSGFuZGxlci5odG1sIj5TZXJpYWxpemF0aW9uSGFuZGxlcjwvQT4sIG9yZy5hcGFjaGUueG1sLnNlcmlhbGl6ZXIuU2VyaWFsaXplckNvbnN0YW50czwvREw+DQoNCjxQPg0KVGhpcyBjbGFzcyBhY3RzIGFzIGEgYmFzZSBjbGFzcyBmb3IgdGhlIFhNTCAic2VyaWFsaXplcnMiCiBhbmQgdGhlIHN0cmVhbSBzZXJpYWxpemVycy4KIEl0IGNvbnRhaW5zIGEgbnVtYmVyIG9mIGNvbW1vbiBmaWVsZHMgYW5kIG1ldGhvZHMuDQo8UD4NCjxETD4NCjxEVD48Qj5Vc2FnZTo8L0I+PEREPjxpPjxmb250IHNpemU9Ii0xIiBjb2xvcj0iI0ZGMDAwMCI+ICoqRm9yIGludGVybmFsIHVzZSBvbmx5Kio8L2ZvbnQ+PC9pPjwvREQ+CjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8UD4NCjwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+DQoNCjxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjUEtHX05BTUUiPlBLR19OQU1FPC9BPjwvQj48L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBwYWNrYWdlIHRoYXQgdGhpcyBjbGFzcyBpcyBpbi48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjUEtHX1BBVEgiPlBLR19QQVRIPC9BPjwvQj48L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzYW1lIGFzIHRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlIHRoYXQgdGhpcyBjbGFzcyBpcyBpbgogZXhjZXB0IHRoYXQgJy4nIGFyZSByZXBsYWNlZCB3aXRoICcvJy48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQombmJzcDsNCjwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+DQoNCjxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4NCjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPg0KPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNhZGRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmFkZEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAogICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkcyAgdGhlIGdpdmVuIGF0dHJpYnV0ZSB0byB0aGUgc2V0IG9mIGNvbGxlY3RlZCBhdHRyaWJ1dGVzLCAKIGJ1dCBvbmx5IGlmIHRoZXJlIGlzIGEgY3VycmVudGx5IG9wZW4gZWxlbWVudC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjYWRkQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5hZGRBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpLAogICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsTmFtZSwKICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtyYXdOYW1lLAogICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUsCiAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBhZGRzIGFuIGF0dHJpYnV0ZSB0aGUgdGhlIGN1cnJlbnQgZWxlbWVudCwKIGJ1dCBzaG91bGQgbm90IGJlIHVzZWQgZm9yIGFuIHhzbDphdHRyaWJ1dGUgY2hpbGQuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2FkZEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+YWRkQXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbE5hbWUsCiAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cmF3TmFtZSwKICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlLAogICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlLAogICAgICAgICAgICAgYm9vbGVhbiZuYnNwO1hTTEF0dHJpYnV0ZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZHMgdGhlIGdpdmVuIGF0dHJpYnV0ZSB0byB0aGUgc2V0IG9mIGNvbGxlY3RlZCBhdHRyaWJ1dGVzICwgYnV0IG9ubHkgaWYKIHRoZXJlIGlzIGEgY3VycmVudGx5IG9wZW4gZWxlbWVudC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjYWRkQXR0cmlidXRlQWx3YXlzKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj5hZGRBdHRyaWJ1dGVBbHdheXM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpLAogICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsTmFtZSwKICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtyYXdOYW1lLAogICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUsCiAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCiAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7WFNMQXR0cmlidXRlKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkcyB0aGUgZ2l2ZW4gYXR0cmlidXRlIHRvIHRoZSBzZXQgb2YgYXR0cmlidXRlcywgZXZlbiBpZiB0aGVyZSBpcwogbm8gY3VycmVudGx5IG9wZW4gZWxlbWVudC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjYWRkQXR0cmlidXRlcyhvcmcueG1sLnNheC5BdHRyaWJ1dGVzKSI+YWRkQXR0cmlidXRlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0F0dHJpYnV0ZXMuaHRtbCI+QXR0cmlidXRlczwvQT4mbmJzcDthdHRzKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIHRoZSBnaXZlbiBhdHRyaWJ1dGVzIHRvIHRoZSBjdXJyZW50bHkgY29sbGVjdGVkIG9uZXMuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2FkZFhTTEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkWFNMQXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCiAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCiAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkcyB0aGUgZ2l2ZW4geHNsOmF0dHJpYnV0ZSB0byB0aGUgc2V0IG9mIGNvbGxlY3RlZCBhdHRyaWJ1dGVzLCAKIGJ1dCBvbmx5IGlmIHRoZXJlIGlzIGEgY3VycmVudGx5IG9wZW4gZWxlbWVudC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCI+Q29udGVudEhhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNhc0NvbnRlbnRIYW5kbGVyKCkiPmFzQ29udGVudEhhbmRsZXI8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Db250ZW50SGFuZGxlci5odG1sIj48Q09ERT5Db250ZW50SGFuZGxlcjwvQ09ERT48L0E+IGludGVyZmFjZSBpbnRvIHRoaXMgc2VyaWFsaXplci48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjYXNET00zU2VyaWFsaXplcigpIj5hc0RPTTNTZXJpYWxpemVyPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGEgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9ET00zU2VyaWFsaXplci5odG1sIj48Q09ERT5ET00zU2VyaWFsaXplcjwvQ09ERT48L0E+IGludGVyZmFjZSBpbnRvIHRoaXMgc2VyaWFsaXplci48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9ET01TZXJpYWxpemVyLmh0bWwiPkRPTVNlcmlhbGl6ZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNhc0RPTVNlcmlhbGl6ZXIoKSI+YXNET01TZXJpYWxpemVyPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGEgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9ET01TZXJpYWxpemVyLmh0bWwiPjxDT0RFPkRPTVNlcmlhbGl6ZXI8L0NPREU+PC9BPiBpbnRlcmZhY2UgaW50byB0aGlzIHNlcmlhbGl6ZXIuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2NoYXJhY3RlcnMob3JnLnczYy5kb20uTm9kZSkiPmNoYXJhY3RlcnM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwiPk5vZGU8L0E+Jm5ic3A7bm9kZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGdldHMgdGhlIG5vZGVzIHZhbHVlIGFzIGEgU3RyaW5nIGFuZCB1c2VzIHRoYXQgU3RyaW5nIGFzIGlmCiBpdCB3ZXJlIGFuIGlucHV0IGNoYXJhY3RlciBub3RpZmljYXRpb24uPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2Nsb3NlKCkiPmNsb3NlPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Rmx1c2ggYW5kIGNsb3NlIHRoZSB1bmRlcmx5aW5nIGphdmEuaW8uV3JpdGVyLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNjb21tZW50KGphdmEubGFuZy5TdHJpbmcpIj5jb21tZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RhdGEpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWNlaXZlIG5vdGlmaWNhdGlvbiBvZiBhIGNvbW1lbnQuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2RvY3VtZW50SXNFbXB0eSgpIj5kb2N1bWVudElzRW1wdHk8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdHJ1ZSBpZiBub3RoaW5nIGhhcyBiZWVuIHNlbnQgdG8gdGhpcyByZXN1bHQgdHJlZSB5ZXQuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2VuZEVudGl0eShqYXZhLmxhbmcuU3RyaW5nKSI+ZW5kRW50aXR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXBvcnQgdGhlIGVuZCBvZiBhbiBlbnRpdHkuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2VudGl0eVJlZmVyZW5jZShqYXZhLmxhbmcuU3RyaW5nKSI+ZW50aXR5UmVmZXJlbmNlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFbnRpdHkgcmVmZXJlbmNlIGV2ZW50LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNlcnJvcihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPmVycm9yPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYUGFyc2VFeGNlcHRpb24uaHRtbCI+U0FYUGFyc2VFeGNlcHRpb248L0E+Jm5ic3A7ZXhjKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2ZhdGFsRXJyb3Iob3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb24pIj5mYXRhbEVycm9yPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYUGFyc2VFeGNlcHRpb24uaHRtbCI+U0FYUGFyc2VFeGNlcHRpb248L0E+Jm5ic3A7ZXhjKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2ZpcmVFbmRFbnRpdHkoamF2YS5sYW5nLlN0cmluZykiPmZpcmVFbmRFbnRpdHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RvIGZpcmUgb2ZmIGVuZCBlbnRpdHkgdHJhY2UgZXZlbnQ8L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjZ2V0RG9jdHlwZVB1YmxpYygpIj5nZXREb2N0eXBlUHVibGljPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgcHJldmlvdXNseSBzZXQgdmFsdWUgb2YgdGhlIHZhbHVlIHRvIGJlIHVzZWQgYXMgdGhlIHB1YmxpYwogaWRlbnRpZmllciBpbiB0aGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiAoRFREKS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjZ2V0RG9jdHlwZVN5c3RlbSgpIj5nZXREb2N0eXBlU3lzdGVtPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgcHJldmlvdXNseSBzZXQgdmFsdWUgb2YgdGhlIHZhbHVlIHRvIGJlIHVzZWQKIGFzIHRoZSBzeXN0ZW0gaWRlbnRpZmllciBpbiB0aGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiAoRFREKS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjZ2V0RW5jb2RpbmcoKSI+Z2V0RW5jb2Rpbmc8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gYmUgdXNlZCBpbiB0aGUgb3V0cHV0IGRvY3VtZW50LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNnZXRJbmRlbnQoKSI+Z2V0SW5kZW50PC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjZ2V0SW5kZW50QW1vdW50KCkiPmdldEluZGVudEFtb3VudDwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNnZXRNZWRpYVR5cGUoKSI+Z2V0TWVkaWFUeXBlPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgbWVkaWF0eXBlIHRoZSBtZWRpYS10eXBlIG9yIE1JTUUgdHlwZSBhc3NvY2lhdGVkIHdpdGggdGhlIG91dHB1dAogZG9jdW1lbnQuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvTmFtZXNwYWNlTWFwcGluZ3MuaHRtbCI+TmFtZXNwYWNlTWFwcGluZ3M8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNnZXROYW1lc3BhY2VNYXBwaW5ncygpIj5nZXROYW1lc3BhY2VNYXBwaW5nczwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NvbWUgdXNlcnMgb2YgdGhlIHNlcmlhbGl6ZXIgbWF5IG5lZWQgdGhlIGN1cnJlbnQgbmFtZXNwYWNlIG1hcHBpbmdzPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2dldE5hbWVzcGFjZVVSSShqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+Z2V0TmFtZXNwYWNlVVJJPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3FuYW1lLAogICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO2lzRWxlbWVudCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIFVSSSBvZiBhbiBlbGVtZW50IG9yIGF0dHJpYnV0ZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjZ2V0TmFtZXNwYWNlVVJJRnJvbVByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0TmFtZXNwYWNlVVJJRnJvbVByZWZpeDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBVUkkgb2YgcHJlZml4IChpZiBhbnkpPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2dldE9taXRYTUxEZWNsYXJhdGlvbigpIj5nZXRPbWl0WE1MRGVjbGFyYXRpb248L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjZ2V0T3V0cHV0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPmdldE91dHB1dFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIHZhbHVlIG9mIGFuIG91dHB1dCBwcm9wZXJ0eSwKIHRoZSBleHBsaWNpdCB2YWx1ZSwgaWYgYW55LCBvdGhlcndpc2UgdGhlCiBkZWZhdWx0IHZhbHVlLCBpZiBhbnksIG90aGVyd2lzZSBudWxsLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNnZXRPdXRwdXRQcm9wZXJ0eURlZmF1bHQoamF2YS5sYW5nLlN0cmluZykiPmdldE91dHB1dFByb3BlcnR5RGVmYXVsdDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBkZWZhdWx0IHZhbHVlIG9mIGFuIHhzbDpvdXRwdXQgcHJvcGVydHksCiB3aGljaCB3b3VsZCBiZSBudWxsIG9ubHkgaWYgbm8gZGVmYXVsdCB2YWx1ZSBleGlzdHMKIGZvciB0aGUgcHJvcGVydHkuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2dldE91dHB1dFByb3BlcnR5Tm9uRGVmYXVsdChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0T3V0cHV0UHJvcGVydHlOb25EZWZhdWx0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIHZhbHVlIG9mIGFuIG91dHB1dCBwcm9wZXJ0eSwgCiBub3QgdGhlIGRlZmF1bHQgdmFsdWUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI2dldFByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UHJlZml4PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWVzcGFjZVVSSSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHByZWZpeCBjdXJyZW50bHkgcG9pbnRpbmcgdG8gdGhlIGdpdmVuIFVSSSAoaWYgYW55KS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjZ2V0U3RhbmRhbG9uZSgpIj5nZXRTdGFuZGFsb25lPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgWFNMIHN0YW5kYWxvbmUgYXR0cmlidXRlPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC90cmFuc2Zvcm0vVHJhbnNmb3JtZXIuaHRtbCI+VHJhbnNmb3JtZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNnZXRUcmFuc2Zvcm1lcigpIj5nZXRUcmFuc2Zvcm1lcjwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIHRyYW5zZm9ybWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHNlcmlhbGl6ZXI8L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjZ2V0VmVyc2lvbigpIj5nZXRWZXJzaW9uPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgdmVyc2lvbiBvZiB0aGUgb3V0cHV0IGZvcm1hdC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjbmFtZXNwYWNlQWZ0ZXJTdGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm5hbWVzcGFjZUFmdGVyU3RhcnRFbGVtZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGlzIHVzZWQgd2hlbiBhIHByZWZpeC91cmkgbmFtZXNwYWNlIG1hcHBpbmcKIGlzIGluZGljYXRlZCBhZnRlciB0aGUgZWxlbWVudCB3YXMgc3RhcnRlZCB3aXRoIGEgCiBzdGFydEVsZW1lbnQoKSBhbmQgYmVmb3JlIGFuZCBlbmRFbGVtZW50KCkuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI25vdGF0aW9uRGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bm90YXRpb25EZWNsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzAsCiAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnMSwKICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmcyKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI3Jlc2V0KCkiPnJlc2V0PC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI3NldERvY3R5cGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPnNldERvY3R5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZG9jdHlwZVN5c3RlbSwKICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZG9jdHlwZVB1YmxpYyk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgdmFsdWUgY29taW5nIGZyb20gdGhlIHhzbDpvdXRwdXQgZG9jdHlwZS1wdWJsaWMgYW5kIGRvY3R5cGUtc3lzdGVtIHN0eWxlc2hlZXQgcHJvcGVydGllczwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNzZXREb2N0eXBlUHVibGljKGphdmEubGFuZy5TdHJpbmcpIj5zZXREb2N0eXBlUHVibGljPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RvY3R5cGVQdWJsaWMpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHZhbHVlIGNvbWluZyBmcm9tIHRoZSB4c2w6b3V0cHV0IGRvY3R5cGUtcHVibGljIHN0eWxlc2hlZXQgYXR0cmlidXRlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNzZXREb2N0eXBlU3lzdGVtKGphdmEubGFuZy5TdHJpbmcpIj5zZXREb2N0eXBlU3lzdGVtPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RvY3R5cGVTeXN0ZW0pPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHZhbHVlIGNvbWluZyBmcm9tIHRoZSB4c2w6b3V0cHV0IGRvY3R5cGUtc3lzdGVtIHN0eWxlc2hlZXQgYXR0cmlidXRlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNzZXREb2N1bWVudExvY2F0b3Iob3JnLnhtbC5zYXguTG9jYXRvcikiPnNldERvY3VtZW50TG9jYXRvcjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0xvY2F0b3IuaHRtbCI+TG9jYXRvcjwvQT4mbmJzcDtsb2NhdG9yKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBhbiBvYmplY3QgZm9yIGxvY2F0aW5nIHRoZSBvcmlnaW4gb2YgU0FYIGRvY3VtZW50IGV2ZW50cy48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjc2V0RFRERW50aXR5RXhwYW5zaW9uKGJvb2xlYW4pIj5zZXREVERFbnRpdHlFeHBhbnNpb248L0E+PC9CPihib29sZWFuJm5ic3A7ZXhwYW5kKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SWYgc2V0IHRvIGZhbHNlIHRoZSBzZXJpYWxpemVyIGRvZXMgbm90IGV4cGFuZCBEVEQgZW50aXRpZXMsCiBidXQgbGVhdmVzIHRoZW0gYXMgaXMsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIHRydWUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI3NldEVuY29kaW5nKGphdmEubGFuZy5TdHJpbmcpIj5zZXRFbmNvZGluZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtlbmNvZGluZyk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBjb21pbmcgZnJvbSB0aGUgeHNsOm91dHB1dCBlbmNvZGluZyBzdHlsZXNoZWV0IGF0dHJpYnV0ZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjc2V0SW5kZW50KGJvb2xlYW4pIj5zZXRJbmRlbnQ8L0E+PC9CPihib29sZWFuJm5ic3A7ZG9JbmRlbnQpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSB2YWx1ZSBjb21pbmcgZnJvbSB0aGUgeHNsOm91dHB1dCBpbmRlbnQgc3R5bGVzaGVldAogYXR0cmlidXRlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNzZXRJbmRlbnRBbW91bnQoaW50KSI+c2V0SW5kZW50QW1vdW50PC9BPjwvQj4oaW50Jm5ic3A7bV9pbmRlbnRBbW91bnQpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBpbmRlbnRhdGlvbiBhbW91bnQuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI3NldE1lZGlhVHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWVkaWFUeXBlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lZGlhVHlwZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHZhbHVlIGNvbWluZyBmcm9tIHRoZSB4c2w6b3V0cHV0IG1lZGlhLXR5cGUgc3R5bGVzaGVldCBhdHRyaWJ1dGUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI3NldE5hbWVzcGFjZU1hcHBpbmdzKG9yZy5hcGFjaGUueG1sLnNlcmlhbGl6ZXIuTmFtZXNwYWNlTWFwcGluZ3MpIj5zZXROYW1lc3BhY2VNYXBwaW5nczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvTmFtZXNwYWNlTWFwcGluZ3MuaHRtbCI+TmFtZXNwYWNlTWFwcGluZ3M8L0E+Jm5ic3A7bWFwcGluZ3MpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtVc2VkIG9ubHkgYnkgVHJhbnNmb3JtZXJTbmFwc2hvdEltcGwgdG8gcmVzdG9yZSB0aGUgc2VyaWFsaXphdGlvbiAKIHRvIGEgcHJldmlvdXMgc3RhdGUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI3NldE9taXRYTUxEZWNsYXJhdGlvbihib29sZWFuKSI+c2V0T21pdFhNTERlY2xhcmF0aW9uPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2IpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSB2YWx1ZSBjb21pbmcgZnJvbSB0aGUgeHNsOm91dHB1dCBvbWl0LXhtbC1kZWNsYXJhdGlvbiBzdHlsZXNoZWV0IGF0dHJpYnV0ZTwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNzZXRPdXRwdXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T3V0cHV0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgdmFsdWUgZm9yIHRoZSBvdXRwdXQgcHJvcGVydHksIHR5cGljYWxseSBmcm9tCiBhbiB4c2w6b3V0cHV0IGVsZW1lbnQsIGJ1dCB0aGlzIGRvZXMgbm90IGNoYW5nZSB3aGF0CiB0aGUgZGVmYXVsdCB2YWx1ZSBpcy48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjc2V0T3V0cHV0UHJvcGVydHlEZWZhdWx0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5zZXRPdXRwdXRQcm9wZXJ0eURlZmF1bHQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWwpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGFuIG91dHB1dCBwcm9wZXJ0eSwgYnV0IHRoaXMgZG9lcwogbm90IGltcGFjdCBhbnkgZXhwbGljaXRseSBzZXQgdmFsdWUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI3NldFNvdXJjZUxvY2F0b3IoamF2YXgueG1sLnRyYW5zZm9ybS5Tb3VyY2VMb2NhdG9yKSI+c2V0U291cmNlTG9jYXRvcjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC90cmFuc2Zvcm0vU291cmNlTG9jYXRvci5odG1sIj5Tb3VyY2VMb2NhdG9yPC9BPiZuYnNwO2xvY2F0b3IpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNldCB0aGUgc291cmNlIGxvY2F0b3IsIHdoaWNoIG1pZ2h0IGJlIHVzZWQgdG8KIGdlbmVyYXRlZCBhbiBlcnJvciBtZXNzYWdlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNzZXRTdGFuZGFsb25lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdGFuZGFsb25lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0YW5kYWxvbmUpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSB2YWx1ZSBjb21pbmcgZnJvbSB0aGUgeHNsOm91dHB1dCBzdGFuZGFsb25lIHN0eWxlc2hlZXQgYXR0cmlidXRlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNzZXRUcmFuc2Zvcm1lcihqYXZheC54bWwudHJhbnNmb3JtLlRyYW5zZm9ybWVyKSI+c2V0VHJhbnNmb3JtZXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwvdHJhbnNmb3JtL1RyYW5zZm9ybWVyLmh0bWwiPlRyYW5zZm9ybWVyPC9BPiZuYnNwO3QpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSB0cmFuc2Zvcm1lciBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZXJpYWxpemVyPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI3NldFZlcnNpb24oamF2YS5sYW5nLlN0cmluZykiPnNldFZlcnNpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmVyc2lvbik8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHZhbHVlIGNvbWluZyBmcm9tIHRoZSB4c2w6b3V0cHV0IHZlcnNpb24gYXR0cmlidXRlLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXplckJhc2UuaHRtbCNzdGFydERvY3VtZW50KCkiPnN0YXJ0RG9jdW1lbnQ8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWNlaXZlIG5vdGlmaWNhdGlvbiBvZiB0aGUgYmVnaW5uaW5nIG9mIGEgZG9jdW1lbnQuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyQmFzZS5odG1sI3VucGFyc2VkRW50aXR5RGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+dW5wYXJzZWRFbnRpdHlEZWNsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzAsCiAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnMSwKICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmcyLAogICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzMpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6ZXJCYXNlLmh0bWwjd2FybmluZyhvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPndhcm5pbmc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9TQVhQYXJzZUV4Y2VwdGlvbi5odG1sIj5TQVhQYXJzZUV4Y2VwdGlvbjwvQT4mbmJzcDtleGMpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPg0KPC9UUj4NCjwvVEFCTEU+DQombmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPg0KPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPmVxdWFscywgDQpnZXRDbGFzcywgDQpoYXNoQ29kZSwgDQpub3RpZnksIA0Kbm90aWZ5QWxsLCANCnRvU3RyaW5nLCANCndhaXQsIA0Kd2FpdCwgDQp3YWl0PC9DT0RFPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCiZuYnNwOw0KPFA+DQoNCjwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4NCjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPg0KPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQoNCjxBIE5BTUU9IlBLR19OQU1FIj48IS0tIC0tPjwvQT48SDM+DQpQS0dfTkFNRTwvSDM+DQo8UFJFPg0KcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlBLR19OQU1FPC9CPjwvUFJFPg0KPERMPg0KPEREPlRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlIHRoYXQgdGhpcyBjbGFzcyBpcyBpbi4KIDxwPgogTm90IGEgcHVibGljIEFQSS48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJQS0dfUEFUSCI+PCEtLSAtLT48L0E+PEgzPg0KUEtHX1BBVEg8L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5QS0dfUEFUSDwvQj48L1BSRT4NCjxETD4NCjxERD5UaGUgc2FtZSBhcyB0aGUgbmFtZSBvZiB0aGUgcGFja2FnZSB0aGF0IHRoaXMgY2xhc3MgaXMgaW4KIGV4Y2VwdCB0aGF0ICcuJyBhcmUgcmVwbGFjZWQgd2l0aCAnLycuCiA8cD4KIE5vdCBhIHB1YmxpYyBBUEkuPC9ETD4NCg0KPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4NCjxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCg0KPEEgTkFNRT0iY29tbWVudChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KY29tbWVudDwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+Y29tbWVudDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RhdGEpCiAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD5SZWNlaXZlIG5vdGlmaWNhdGlvbiBvZiBhIGNvbW1lbnQuPEREPjxETD4NCjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL0V4dGVuZGVkTGV4aWNhbEhhbmRsZXIuaHRtbCNjb21tZW50KGphdmEubGFuZy5TdHJpbmcpIj48Q09ERT5FeHRlbmRlZExleGljYWxIYW5kbGVyLmNvbW1lbnQoU3RyaW5nKTwvQ09ERT48L0E+PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZXREb2N1bWVudExvY2F0b3Iob3JnLnhtbC5zYXguTG9jYXRvcikiPjwhLS0gLS0+PC9BPjxIMz4NCnNldERvY3VtZW50TG9jYXRvcjwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+c2V0RG9jdW1lbnRMb2NhdG9yPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Mb2NhdG9yLmh0bWwiPkxvY2F0b3I8L0E+Jm5ic3A7bG9jYXRvcik8L1BSRT4NCjxETD4NCjxERD5SZWNlaXZlIGFuIG9iamVjdCBmb3IgbG9jYXRpbmcgdGhlIG9yaWdpbiBvZiBTQVggZG9jdW1lbnQgZXZlbnRzLjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmxvY2F0b3I8L0NPREU+IC0gQW4gb2JqZWN0IHRoYXQgY2FuIHJldHVybiB0aGUgbG9jYXRpb24gb2YgYW55IFNBWCBkb2N1bWVudAogZXZlbnQuCiAKIFJlY2VpdmUgYW4gb2JqZWN0IGZvciBsb2NhdGluZyB0aGUgb3JpZ2luIG9mIFNBWCBkb2N1bWVudCBldmVudHMuCgogPHA+U0FYIHBhcnNlcnMgYXJlIHN0cm9uZ2x5IGVuY291cmFnZWQgKHRob3VnaCBub3QgYWJzb2x1dGVseQogcmVxdWlyZWQpIHRvIHN1cHBseSBhIGxvY2F0b3I6IGlmIGl0IGRvZXMgc28sIGl0IG11c3Qgc3VwcGx5CiB0aGUgbG9jYXRvciB0byB0aGUgYXBwbGljYXRpb24gYnkgaW52b2tpbmcgdGhpcyBtZXRob2QgYmVmb3JlCiBpbnZva2luZyBhbnkgb2YgdGhlIG90aGVyIG1ldGhvZHMgaW4gdGhlIERvY3VtZW50SGFuZGxlcgogaW50ZXJmYWNlLjwvcD4KCiA8cD5UaGUgbG9jYXRvciBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGRldGVybWluZSB0aGUgZW5kCiBwb3NpdGlvbiBvZiBhbnkgZG9jdW1lbnQtcmVsYXRlZCBldmVudCwgZXZlbiBpZiB0aGUgcGFyc2VyIGlzCiBub3QgcmVwb3J0aW5nIGFuIGVycm9yLiAgVHlwaWNhbGx5LCB0aGUgYXBwbGljYXRpb24gd2lsbAogdXNlIHRoaXMgaW5mb3JtYXRpb24gZm9yIHJlcG9ydGluZyBpdHMgb3duIGVycm9ycyAoc3VjaCBhcwogY2hhcmFjdGVyIGNvbnRlbnQgdGhhdCBkb2VzIG5vdCBtYXRjaCBhbiBhcHBsaWNhdGlvbidzCiBidXNpbmVzcyBydWxlcykuICBUaGUgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkgdGhlIGxvY2F0b3IKIGlzIHByb2JhYmx5IG5vdCBzdWZmaWNpZW50IGZvciB1c2Ugd2l0aCBhIHNlYXJjaCBlbmdpbmUuPC9wPgoKIDxwPk5vdGUgdGhhdCB0aGUgbG9jYXRvciB3aWxsIHJldHVybiBjb3JyZWN0IGluZm9ybWF0aW9uIG9ubHkKIGR1cmluZyB0aGUgaW52b2NhdGlvbiBvZiB0aGUgZXZlbnRzIGluIHRoaXMgaW50ZXJmYWNlLiAgVGhlCiBhcHBsaWNhdGlvbiBzaG91bGQgbm90IGF0dGVtcHQgdG8gdXNlIGl0IGF0IGFueSBvdGhlciB0aW1lLjwvcD48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFkZEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPg0KYWRkQXR0cmlidXRlPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5hZGRBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCiAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Jhd05hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtYU0xBdHRyaWJ1dGUpCiAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9TQVhFeGNlcHRpb24uaHRtbCI+U0FYRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPkFkZHMgdGhlIGdpdmVuIGF0dHJpYnV0ZSB0byB0aGUgc2V0IG9mIGNvbGxlY3RlZCBhdHRyaWJ1dGVzICwgYnV0IG9ubHkgaWYKIHRoZXJlIGlzIGEgY3VycmVudGx5IG9wZW4gZWxlbWVudC4KIAogQW4gZWxlbWVudCBpcyBjdXJyZW50bHkgb3BlbiBpZiBhIHN0YXJ0RWxlbWVudCgpIG5vdGlmaWNhdGlvbiBoYXMKIG9jY3VyZWQgYnV0IHRoZSBzdGFydCBvZiB0aGUgZWxlbWVudCBoYXMgbm90IHlldCBiZWVuIHdyaXR0ZW4gdG8gdGhlCiBvdXRwdXQuICBJbiB0aGUgc3RyZWFtIGNhc2UgdGhpcyBtZWFucyB0aGF0IHdlIGhhdmUgbm90IHlldCBiZWVuIGZvcmNlZAogdG8gY2xvc2UgdGhlIGVsZW1lbnRzIG9wZW5pbmcgdGFnIGJ5IGFub3RoZXIgbm90aWZpY2F0aW9uLCBzdWNoIGFzIGEKIGNoYXJhY3RlciBub3RpZmljYXRpb24uPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJpPC9DT0RFPiAtIHRoZSBVUkkgb2YgdGhlIGF0dHJpYnV0ZTxERD48Q09ERT5sb2NhbE5hbWU8L0NPREU+IC0gdGhlIGxvY2FsIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZTxERD48Q09ERT5yYXdOYW1lPC9DT0RFPiAtIHRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgYXR0cmlidXRlPEREPjxDT0RFPnR5cGU8L0NPREU+IC0gdGhlIHR5cGUgb2YgdGhlIGF0dHJpYnV0ZSAocHJvYmFibHkgQ0RBVEEpPEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlPEREPjxDT0RFPlhTTEF0dHJpYnV0ZTwvQ09ERT4gLSB0cnVlIGlmIHRoaXMgYXR0cmlidXRlIGlzIGNvbWluZyBmcm9tIGFuIHhzbDphdHRyaXV0ZSBlbGVtZW50PERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvRXh0ZW5kZWRDb250ZW50SGFuZGxlci5odG1sI2FkZEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PENPREU+RXh0ZW5kZWRDb250ZW50SGFuZGxlci5hZGRBdHRyaWJ1dGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcpPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFkZEF0dHJpYnV0ZUFsd2F5cyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPg0KYWRkQXR0cmlidXRlQWx3YXlzPC9IMz4NCjxQUkU+DQpwdWJsaWMgYm9vbGVhbiA8Qj5hZGRBdHRyaWJ1dGVBbHdheXM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Jhd05hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtYU0xBdHRyaWJ1dGUpPC9QUkU+DQo8REw+DQo8REQ+QWRkcyB0aGUgZ2l2ZW4gYXR0cmlidXRlIHRvIHRoZSBzZXQgb2YgYXR0cmlidXRlcywgZXZlbiBpZiB0aGVyZSBpcwogbm8gY3VycmVudGx5IG9wZW4gZWxlbWVudC4gVGhpcyBpcyB1c2VmdWwgaWYgYSBTQVggc3RhcnRQcmVmaXhNYXBwaW5nKCkKIHNob3VsZCBuZWVkIHRvIGFkZCBhbiBhdHRyaWJ1dGUgYmVmb3JlIHRoZSBlbGVtZW50IG5hbWUgaXMgc2Vlbi48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gdGhlIFVSSSBvZiB0aGUgYXR0cmlidXRlPEREPjxDT0RFPmxvY2FsTmFtZTwvQ09ERT4gLSB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgYXR0cmlidXRlPEREPjxDT0RFPnJhd05hbWU8L0NPREU+IC0gdGhlIHF1YWxpZmllZCBuYW1lIG9mIHRoZSBhdHRyaWJ1dGU8REQ+PENPREU+dHlwZTwvQ09ERT4gLSB0aGUgdHlwZSBvZiB0aGUgYXR0cmlidXRlIChwcm9iYWJseSBDREFUQSk8REQ+PENPREU+dmFsdWU8L0NPREU+IC0gdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGU8REQ+PENPREU+WFNMQXR0cmlidXRlPC9DT0RFPiAtIHRydWUgaWYgdGhpcyBhdHRyaWJ1dGUgaXMgY29taW5nIGZyb20gYW4geHNsOmF0dHJpYnV0ZSBlbGVtZW50PERUPjxCPlJldHVybnM6PC9CPjxERD50cnVlIGlmIHRoZSBhdHRyaWJ1dGUgd2FzIGFkZGVkLCAKIGZhbHNlIGlmIGFuIGV4aXN0aW5nIHZhbHVlIHdhcyByZXBsYWNlZC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFkZEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KYWRkQXR0cmlidXRlPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5hZGRBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPg0KPERMPg0KPEREPkFkZHMgIHRoZSBnaXZlbiBhdHRyaWJ1dGUgdG8gdGhlIHNldCBvZiBjb2xsZWN0ZWQgYXR0cmlidXRlcywgCiBidXQgb25seSBpZiB0aGVyZSBpcyBhIGN1cnJlbnRseSBvcGVuIGVsZW1lbnQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSB0aGUgYXR0cmlidXRlJ3MgcXVhbGlmaWVkIG5hbWU8REQ+PENPREU+dmFsdWU8L0NPREU+IC0gdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGU8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFkZFhTTEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KYWRkWFNMQXR0cmlidXRlPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5hZGRYU0xBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSk8L1BSRT4NCjxETD4NCjxERD5BZGRzIHRoZSBnaXZlbiB4c2w6YXR0cmlidXRlIHRvIHRoZSBzZXQgb2YgY29sbGVjdGVkIGF0dHJpYnV0ZXMsIAogYnV0IG9ubHkgaWYgdGhlcmUgaXMgYSBjdXJyZW50bHkgb3BlbiBlbGVtZW50LjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gdGhlIGF0dHJpYnV0ZSdzIHF1YWxpZmllZCBuYW1lIChwcmVmaXg6bG9jYWxOYW1lKTxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZTxERD48Q09ERT51cmk8L0NPREU+IC0gdGhlIFVSSSB0aGF0IHRoZSBwcmVmaXggb2YgdGhlIG5hbWUgcG9pbnRzIHRvPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJhZGRBdHRyaWJ1dGVzKG9yZy54bWwuc2F4LkF0dHJpYnV0ZXMpIj48IS0tIC0tPjwvQT48SDM+DQphZGRBdHRyaWJ1dGVzPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5hZGRBdHRyaWJ1dGVzPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9BdHRyaWJ1dGVzLmh0bWwiPkF0dHJpYnV0ZXM8L0E+Jm5ic3A7YXR0cykKICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9TQVhFeGNlcHRpb24uaHRtbCI+U0FYRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPkFkZCB0aGUgZ2l2ZW4gYXR0cmlidXRlcyB0byB0aGUgY3VycmVudGx5IGNvbGxlY3RlZCBvbmVzLiBUaGVzZQogYXR0cmlidXRlcyBhcmUgYWx3YXlzIGFkZGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb24gbm90IGFuIGVsZW1lbnQKIGlzIGN1cnJlbnRseSBvcGVuLjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmF0dHM8L0NPREU+IC0gTGlzdCBvZiBhdHRyaWJ1dGVzIHRvIGFkZCB0byB0aGlzIGxpc3Q8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFzQ29udGVudEhhbmRsZXIoKSI+PCEtLSAtLT48L0E+PEgzPg0KYXNDb250ZW50SGFuZGxlcjwvSDM+DQo8UFJFPg0KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0NvbnRlbnRIYW5kbGVyLmh0bWwiPkNvbnRlbnRIYW5kbGVyPC9BPiA8Qj5hc0NvbnRlbnRIYW5kbGVyPC9CPigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4NCjxETD4NCjxERD5SZXR1cm4gYSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Db250ZW50SGFuZGxlci5odG1sIj48Q09ERT5Db250ZW50SGFuZGxlcjwvQ09ERT48L0E+IGludGVyZmFjZSBpbnRvIHRoaXMgc2VyaWFsaXplci4KIElmIHRoZSBzZXJpYWxpemVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0NvbnRlbnRIYW5kbGVyLmh0bWwiPjxDT0RFPkNvbnRlbnRIYW5kbGVyPC9DT0RFPjwvQT4KIGludGVyZmFjZSwgaXQgc2hvdWxkIHJldHVybiBudWxsLjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCI+PENPREU+Q29udGVudEhhbmRsZXI8L0NPREU+PC9BPiBpbnRlcmZhY2UgaW50byB0aGlzIHNlcmlhbGl6ZXIsCiAgb3IgbnVsbCBpZiB0aGUgc2VyaWFsaXplciBpcyBub3QgU0FYIDIgY2FwYWJsZTxEVD48Qj5UaHJvd3M6PC9CPjxERD5qYXZhLmlvLklPRXhjZXB0aW9uIC0gQW4gSS9PIGV4Y2VwdGlvbiBvY2N1cmVkPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJlbmRFbnRpdHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4NCmVuZEVudGl0eTwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+ZW5kRW50aXR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSkKICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+UmVwb3J0IHRoZSBlbmQgb2YgYW4gZW50aXR5LjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIG5hbWUgb2YgdGhlIGVudGl0eSB0aGF0IGlzIGVuZGluZy48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT4gLSBUaGUgYXBwbGljYXRpb24gbWF5IHJhaXNlIGFuIGV4Y2VwdGlvbi48RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvZXh0L0xleGljYWxIYW5kbGVyLmh0bWwjc3RhcnRFbnRpdHkoamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPkxleGljYWxIYW5kbGVyLnN0YXJ0RW50aXR5KGphdmEubGFuZy5TdHJpbmcpPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImNsb3NlKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmNsb3NlPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5jbG9zZTwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkZsdXNoIGFuZCBjbG9zZSB0aGUgdW5kZXJseWluZyBqYXZhLmlvLldyaXRlci4gVGhpcyBtZXRob2QgYXBwbGllcyB0bwogVG9TdHJlYW0gc2VyaWFsaXplcnMsIG5vdCBUb1NBWEhhbmRsZXIgc2VyaWFsaXplcnMuPEREPjxETD4NCjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemF0aW9uSGFuZGxlci5odG1sI2Nsb3NlKCkiPmNsb3NlPC9BPiBpbiBpbnRlcmZhY2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemF0aW9uSGFuZGxlci5odG1sIj5TZXJpYWxpemF0aW9uSGFuZGxlcjwvQT48RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9Ub1N0cmVhbS5odG1sIj48Q09ERT5Ub1N0cmVhbTwvQ09ERT48L0E+PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRFbmNvZGluZygpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRFbmNvZGluZzwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RW5jb2Rpbmc8L0I+KCk8L1BSRT4NCjxETD4NCjxERD5SZXR1cm5zIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gYmUgdXNlZCBpbiB0aGUgb3V0cHV0IGRvY3VtZW50LjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gYmUgdXNlZCBpbiB0aGUgb3V0cHV0IGRvY3VtZW50LjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0RW5jb2RpbmcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4NCnNldEVuY29kaW5nPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXRFbmNvZGluZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2VuY29kaW5nKTwvUFJFPg0KPERMPg0KPEREPlNldHMgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBjb21pbmcgZnJvbSB0aGUgeHNsOm91dHB1dCBlbmNvZGluZyBzdHlsZXNoZWV0IGF0dHJpYnV0ZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tX2VuY29kaW5nPC9DT0RFPiAtIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmc8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InNldE9taXRYTUxEZWNsYXJhdGlvbihib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0T21pdFhNTERlY2xhcmF0aW9uPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXRPbWl0WE1MRGVjbGFyYXRpb248L0I+KGJvb2xlYW4mbmJzcDtiKTwvUFJFPg0KPERMPg0KPEREPlNldHMgdGhlIHZhbHVlIGNvbWluZyBmcm9tIHRoZSB4c2w6b3V0cHV0IG9taXQteG1sLWRlY2xhcmF0aW9uIHN0eWxlc2hlZXQgYXR0cmlidXRlPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YjwvQ09ERT4gLSB0cnVlIGlmIHRoZSBYTUwgZGVjbGFyYXRpb24gaXMgdG8gYmUgb21pdHRlZCBmcm9tIHRoZSBvdXRwdXQKIGRvY3VtZW50LjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0T21pdFhNTERlY2xhcmF0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmdldE9taXRYTUxEZWNsYXJhdGlvbjwvSDM+DQo8UFJFPg0KcHVibGljIGJvb2xlYW4gPEI+Z2V0T21pdFhNTERlY2xhcmF0aW9uPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD50cnVlIGlmIHRoZSBYTUwgZGVjbGFyYXRpb24gaXMgdG8gYmUgb21pdHRlZCBmcm9tIHRoZSBvdXRwdXQKIGRvY3VtZW50LjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0RG9jdHlwZVB1YmxpYygpIj48IS0tIC0tPjwvQT48SDM+DQpnZXREb2N0eXBlUHVibGljPC9IMz4NCjxQUkU+DQpwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXREb2N0eXBlUHVibGljPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+UmV0dXJucyB0aGUgcHJldmlvdXNseSBzZXQgdmFsdWUgb2YgdGhlIHZhbHVlIHRvIGJlIHVzZWQgYXMgdGhlIHB1YmxpYwogaWRlbnRpZmllciBpbiB0aGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiAoRFREKS48REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgcHVibGljIGlkZW50aWZpZXIgdG8gYmUgdXNlZCBpbiB0aGUgRE9DVFlQRSBkZWNsYXJhdGlvbiBpbiB0aGUKIG91dHB1dCBkb2N1bWVudC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InNldERvY3R5cGVQdWJsaWMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4NCnNldERvY3R5cGVQdWJsaWM8L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPnNldERvY3R5cGVQdWJsaWM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtkb2N0eXBlUHVibGljKTwvUFJFPg0KPERMPg0KPEREPlNldCB0aGUgdmFsdWUgY29taW5nIGZyb20gdGhlIHhzbDpvdXRwdXQgZG9jdHlwZS1wdWJsaWMgc3R5bGVzaGVldCBhdHRyaWJ1dGUuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZG9jdHlwZVB1YmxpYzwvQ09ERT4gLSB0aGUgcHVibGljIGlkZW50aWZpZXIgdG8gYmUgdXNlZCBpbiB0aGUgRE9DVFlQRQogZGVjbGFyYXRpb24gaW4gdGhlIG91dHB1dCBkb2N1bWVudC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldERvY3R5cGVTeXN0ZW0oKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0RG9jdHlwZVN5c3RlbTwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RG9jdHlwZVN5c3RlbTwvQj4oKTwvUFJFPg0KPERMPg0KPEREPlJldHVybnMgdGhlIHByZXZpb3VzbHkgc2V0IHZhbHVlIG9mIHRoZSB2YWx1ZSB0byBiZSB1c2VkCiBhcyB0aGUgc3lzdGVtIGlkZW50aWZpZXIgaW4gdGhlIGRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb24gKERURCkuPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyIHRvIGJlIHVzZWQgaW4gdGhlIERPQ1RZUEUgZGVjbGFyYXRpb24gaW4KIHRoZSBvdXRwdXQgZG9jdW1lbnQuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZXREb2N0eXBlU3lzdGVtKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpzZXREb2N0eXBlU3lzdGVtPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXREb2N0eXBlU3lzdGVtPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZG9jdHlwZVN5c3RlbSk8L1BSRT4NCjxETD4NCjxERD5TZXQgdGhlIHZhbHVlIGNvbWluZyBmcm9tIHRoZSB4c2w6b3V0cHV0IGRvY3R5cGUtc3lzdGVtIHN0eWxlc2hlZXQgYXR0cmlidXRlLjxERD48REw+DQo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRvY3R5cGVTeXN0ZW08L0NPREU+IC0gdGhlIHN5c3RlbSBpZGVudGlmaWVyIHRvIGJlIHVzZWQgaW4gdGhlIERPQ1RZUEUKIGRlY2xhcmF0aW9uIGluIHRoZSBvdXRwdXQgZG9jdW1lbnQuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZXREb2N0eXBlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpzZXREb2N0eXBlPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXREb2N0eXBlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZG9jdHlwZVN5c3RlbSwKICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZG9jdHlwZVB1YmxpYyk8L1BSRT4NCjxETD4NCjxERD5TZXQgdGhlIHZhbHVlIGNvbWluZyBmcm9tIHRoZSB4c2w6b3V0cHV0IGRvY3R5cGUtcHVibGljIGFuZCBkb2N0eXBlLXN5c3RlbSBzdHlsZXNoZWV0IHByb3BlcnRpZXM8REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kb2N0eXBlU3lzdGVtPC9DT0RFPiAtIHRoZSBzeXN0ZW0gaWRlbnRpZmllciB0byBiZSB1c2VkIGluIHRoZSBET0NUWVBFCiBkZWNsYXJhdGlvbiBpbiB0aGUgb3V0cHV0IGRvY3VtZW50LjxERD48Q09ERT5kb2N0eXBlUHVibGljPC9DT0RFPiAtIHRoZSBwdWJsaWMgaWRlbnRpZmllciB0byBiZSB1c2VkIGluIHRoZSBET0NUWVBFCiBkZWNsYXJhdGlvbiBpbiB0aGUgb3V0cHV0IGRvY3VtZW50LjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0U3RhbmRhbG9uZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0U3RhbmRhbG9uZTwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+c2V0U3RhbmRhbG9uZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0YW5kYWxvbmUpPC9QUkU+DQo8REw+DQo8REQ+U2V0cyB0aGUgdmFsdWUgY29taW5nIGZyb20gdGhlIHhzbDpvdXRwdXQgc3RhbmRhbG9uZSBzdHlsZXNoZWV0IGF0dHJpYnV0ZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zdGFuZGFsb25lPC9DT0RFPiAtIGEgdmFsdWUgb2YgInllcyIgaW5kaWNhdGVzIHRoYXQgdGhlCiA8Y29kZT5zdGFuZGFsb25lPC9jb2RlPiBkZWxhcmF0aW9uIGlzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQKIGRvY3VtZW50LiBUaGlzIG1ldGhvZCByZW1lbWJlcnMgaWYgdGhlIHZhbHVlIHdhcyBleHBsaWNpdGx5IHNldCB1c2luZwogdGhpcyBtZXRob2QsIHZlcnNlcyBpZiB0aGUgdmFsdWUgaXMgdGhlIGRlZmF1bHQgdmFsdWUuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRTdGFuZGFsb25lKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmdldFN0YW5kYWxvbmU8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0YW5kYWxvbmU8L0I+KCk8L1BSRT4NCjxETD4NCjxERD5HZXRzIHRoZSBYU0wgc3RhbmRhbG9uZSBhdHRyaWJ1dGU8REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD5hIHZhbHVlIG9mICJ5ZXMiIGlmIHRoZSA8Y29kZT5zdGFuZGFsb25lPC9jb2RlPiBkZWxhcmF0aW9uIGlzIHRvCiBiZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0IGRvY3VtZW50LjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48Q09ERT5YU0xPdXRwdXRBdHRyaWJ1dGVzLmdldFN0YW5kYWxvbmUoKTwvQ09ERT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldEluZGVudCgpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRJbmRlbnQ8L0gzPg0KPFBSRT4NCnB1YmxpYyBib29sZWFuIDxCPmdldEluZGVudDwvQj4oKTwvUFJFPg0KPERMPg0KPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dHJ1ZSBpZiB0aGUgb3V0cHV0IGRvY3VtZW50IHNob3VsZCBiZSBpbmRlbnRlZCB0byB2aXN1YWxseQogaW5kaWNhdGUgaXRzIHN0cnVjdHVyZS48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldE1lZGlhVHlwZSgpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRNZWRpYVR5cGU8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lZGlhVHlwZTwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkdldHMgdGhlIG1lZGlhdHlwZSB0aGUgbWVkaWEtdHlwZSBvciBNSU1FIHR5cGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBvdXRwdXQKIGRvY3VtZW50LjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBtZWRpYXR5cGUgdGhlIG1lZGlhLXR5cGUgb3IgTUlNRSB0eXBlIGFzc29jaWF0ZWQgd2l0aCB0aGUKIG91dHB1dCBkb2N1bWVudC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldFZlcnNpb24oKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0VmVyc2lvbjwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmVyc2lvbjwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkdldHMgdGhlIHZlcnNpb24gb2YgdGhlIG91dHB1dCBmb3JtYXQuPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dGhlIHZlcnNpb24gb2YgdGhlIG91dHB1dCBmb3JtYXQuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZXRWZXJzaW9uKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpzZXRWZXJzaW9uPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXRWZXJzaW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmVyc2lvbik8L1BSRT4NCjxETD4NCjxERD5TZXRzIHRoZSB2YWx1ZSBjb21pbmcgZnJvbSB0aGUgeHNsOm91dHB1dCB2ZXJzaW9uIGF0dHJpYnV0ZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52ZXJzaW9uPC9DT0RFPiAtIHRoZSB2ZXJzaW9uIG9mIHRoZSBvdXRwdXQgZm9ybWF0LjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48Q09ERT5YU0xPdXRwdXRBdHRyaWJ1dGVzLnNldFZlcnNpb24oU3RyaW5nKTwvQ09ERT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InNldE1lZGlhVHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0TWVkaWFUeXBlPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXRNZWRpYVR5cGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZWRpYVR5cGUpPC9QUkU+DQo8REw+DQo8REQ+U2V0cyB0aGUgdmFsdWUgY29taW5nIGZyb20gdGhlIHhzbDpvdXRwdXQgbWVkaWEtdHlwZSBzdHlsZXNoZWV0IGF0dHJpYnV0ZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZWRpYVR5cGU8L0NPREU+IC0gdGhlIG5vbi1udWxsIG1lZGlhLXR5cGUgb3IgTUlNRSB0eXBlIGFzc29jaWF0ZWQgd2l0aCB0aGUKIG91dHB1dCBkb2N1bWVudC48RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3RyYW5zZm9ybS9PdXRwdXRLZXlzLmh0bWwjTUVESUFfVFlQRSI+PENPREU+T3V0cHV0S2V5cy5NRURJQV9UWVBFPC9DT0RFPjwvQT4sIA0KPENPREU+WFNMT3V0cHV0QXR0cmlidXRlcy5zZXRNZWRpYVR5cGUoU3RyaW5nKTwvQ09ERT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldEluZGVudEFtb3VudCgpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRJbmRlbnRBbW91bnQ8L0gzPg0KPFBSRT4NCnB1YmxpYyBpbnQgPEI+Z2V0SW5kZW50QW1vdW50PC9CPigpPC9QUkU+DQo8REw+DQo8REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgbnVtYmVyIG9mIHNwYWNlcyB0byBpbmRlbnQgZm9yIGVhY2ggaW5kZW50YXRpb24gbGV2ZWwuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZXRJbmRlbnRBbW91bnQoaW50KSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0SW5kZW50QW1vdW50PC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXRJbmRlbnRBbW91bnQ8L0I+KGludCZuYnNwO21faW5kZW50QW1vdW50KTwvUFJFPg0KPERMPg0KPEREPlNldHMgdGhlIGluZGVudGF0aW9uIGFtb3VudC48REQ+PERMPg0KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyLmh0bWwjc2V0SW5kZW50QW1vdW50KGludCkiPnNldEluZGVudEFtb3VudDwvQT4gaW4gaW50ZXJmYWNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXphdGlvbkhhbmRsZXIuaHRtbCI+U2VyaWFsaXphdGlvbkhhbmRsZXI8L0E+PERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tX2luZGVudEFtb3VudDwvQ09ERT4gLSBUaGUgbV9pbmRlbnRBbW91bnQgdG8gc2V0PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZXRJbmRlbnQoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4NCnNldEluZGVudDwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+c2V0SW5kZW50PC9CPihib29sZWFuJm5ic3A7ZG9JbmRlbnQpPC9QUkU+DQo8REw+DQo8REQ+U2V0cyB0aGUgdmFsdWUgY29taW5nIGZyb20gdGhlIHhzbDpvdXRwdXQgaW5kZW50IHN0eWxlc2hlZXQKIGF0dHJpYnV0ZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kb0luZGVudDwvQ09ERT4gLSB0cnVlIGlmIHRoZSBvdXRwdXQgZG9jdW1lbnQgc2hvdWxkIGJlIGluZGVudGVkIHRvCiB2aXN1YWxseSBpbmRpY2F0ZSBpdHMgc3RydWN0dXJlLjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48Q09ERT5YU0xPdXRwdXRBdHRyaWJ1dGVzLnNldEluZGVudChib29sZWFuKTwvQ09ERT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9Im5hbWVzcGFjZUFmdGVyU3RhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpuYW1lc3BhY2VBZnRlclN0YXJ0RWxlbWVudDwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+bmFtZXNwYWNlQWZ0ZXJTdGFydEVsZW1lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+VGhpcyBtZXRob2QgaXMgdXNlZCB3aGVuIGEgcHJlZml4L3VyaSBuYW1lc3BhY2UgbWFwcGluZwogaXMgaW5kaWNhdGVkIGFmdGVyIHRoZSBlbGVtZW50IHdhcyBzdGFydGVkIHdpdGggYSAKIHN0YXJ0RWxlbWVudCgpIGFuZCBiZWZvcmUgYW5kIGVuZEVsZW1lbnQoKS4KIHN0YXJ0UHJlZml4TWFwcGluZyhwcmVmaXgsdXJpKSB3b3VsZCBiZSB1c2VkIGJlZm9yZSB0aGUKIHN0YXJ0RWxlbWVudCgpIGNhbGwuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJpPC9DT0RFPiAtIHRoZSBVUkkgb2YgdGhlIG5hbWVzcGFjZTxERD48Q09ERT5wcmVmaXg8L0NPREU+IC0gdGhlIHByZWZpeCBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIFVSSS48RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9FeHRlbmRlZENvbnRlbnRIYW5kbGVyLmh0bWwjbmFtZXNwYWNlQWZ0ZXJTdGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPkV4dGVuZGVkQ29udGVudEhhbmRsZXIubmFtZXNwYWNlQWZ0ZXJTdGFydEVsZW1lbnQoU3RyaW5nLCBTdHJpbmcpPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFzRE9NU2VyaWFsaXplcigpIj48IS0tIC0tPjwvQT48SDM+DQphc0RPTVNlcmlhbGl6ZXI8L0gzPg0KPFBSRT4NCnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL0RPTVNlcmlhbGl6ZXIuaHRtbCI+RE9NU2VyaWFsaXplcjwvQT4gPEI+YXNET01TZXJpYWxpemVyPC9CPigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+DQo8REw+DQo8REQ+UmV0dXJuIGEgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9ET01TZXJpYWxpemVyLmh0bWwiPjxDT0RFPkRPTVNlcmlhbGl6ZXI8L0NPREU+PC9BPiBpbnRlcmZhY2UgaW50byB0aGlzIHNlcmlhbGl6ZXIuIElmIHRoZQogc2VyaWFsaXplciBkb2VzIG5vdCBzdXBwb3J0IHRoZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL0RPTVNlcmlhbGl6ZXIuaHRtbCI+PENPREU+RE9NU2VyaWFsaXplcjwvQ09ERT48L0E+IGludGVyZmFjZSwgaXQgc2hvdWxkCiByZXR1cm4gbnVsbC48REQ+PERMPg0KPERUPjxCPlJldHVybnM6PC9CPjxERD5BIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvRE9NU2VyaWFsaXplci5odG1sIj48Q09ERT5ET01TZXJpYWxpemVyPC9DT0RFPjwvQT4gaW50ZXJmYWNlIGludG8gdGhpcyBzZXJpYWxpemVyLCAgb3IgbnVsbAogaWYgdGhlIHNlcmlhbGl6ZXIgaXMgbm90IERPTSBjYXBhYmxlPERUPjxCPlRocm93czo8L0I+PEREPmphdmEuaW8uSU9FeGNlcHRpb24gLSBBbiBJL08gZXhjZXB0aW9uIG9jY3VyZWQ8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyLmh0bWwjYXNET01TZXJpYWxpemVyKCkiPjxDT0RFPlNlcmlhbGl6ZXIuYXNET01TZXJpYWxpemVyKCk8L0NPREU+PC9BPjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0TmFtZXNwYWNlTWFwcGluZ3MoKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0TmFtZXNwYWNlTWFwcGluZ3M8L0gzPg0KPFBSRT4NCnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL05hbWVzcGFjZU1hcHBpbmdzLmh0bWwiPk5hbWVzcGFjZU1hcHBpbmdzPC9BPiA8Qj5nZXROYW1lc3BhY2VNYXBwaW5nczwvQj4oKTwvUFJFPg0KPERMPg0KPEREPlNvbWUgdXNlcnMgb2YgdGhlIHNlcmlhbGl6ZXIgbWF5IG5lZWQgdGhlIGN1cnJlbnQgbmFtZXNwYWNlIG1hcHBpbmdzPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dGhlIGN1cnJlbnQgbmFtZXNwYWNlIG1hcHBpbmdzIChwcmVmaXgvdXJpKTxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL0V4dGVuZGVkQ29udGVudEhhbmRsZXIuaHRtbCNnZXROYW1lc3BhY2VNYXBwaW5ncygpIj48Q09ERT5FeHRlbmRlZENvbnRlbnRIYW5kbGVyLmdldE5hbWVzcGFjZU1hcHBpbmdzKCk8L0NPREU+PC9BPjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRQcmVmaXg8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByZWZpeDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWVzcGFjZVVSSSk8L1BSRT4NCjxETD4NCjxERD5SZXR1cm5zIHRoZSBwcmVmaXggY3VycmVudGx5IHBvaW50aW5nIHRvIHRoZSBnaXZlbiBVUkkgKGlmIGFueSkuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZXNwYWNlVVJJPC9DT0RFPiAtIHRoZSB1cmkgb2YgdGhlIG5hbWVzcGFjZSBpbiBxdWVzdGlvbjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+YSBwcmVmaXggcG9pbnRpbmcgdG8gdGhlIGdpdmVuIFVSSSAoaWYgYW55KS48RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9FeHRlbmRlZENvbnRlbnRIYW5kbGVyLmh0bWwjZ2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj48Q09ERT5FeHRlbmRlZENvbnRlbnRIYW5kbGVyLmdldFByZWZpeChTdHJpbmcpPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldE5hbWVzcGFjZVVSSShqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0TmFtZXNwYWNlVVJJPC9IMz4NCjxQUkU+DQpwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lc3BhY2VVUkk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtxbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtpc0VsZW1lbnQpPC9QUkU+DQo8REw+DQo8REQ+UmV0dXJucyB0aGUgVVJJIG9mIGFuIGVsZW1lbnQgb3IgYXR0cmlidXRlLiBOb3RlIHRoYXQgZGVmYXVsdCBuYW1lc3BhY2VzCiBkbyBub3QgYXBwbHkgZGlyZWN0bHkgdG8gYXR0cmlidXRlcy48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5xbmFtZTwvQ09ERT4gLSBhIHF1YWxpZmllZCBuYW1lPEREPjxDT0RFPmlzRWxlbWVudDwvQ09ERT4gLSB0cnVlIGlmIHRoZSBxdWFsaWZpZWQgbmFtZSBpcyB0aGUgbmFtZSBvZiAKIGFuIGVsZW1lbnQuPERUPjxCPlJldHVybnM6PC9CPjxERD5yZXR1cm5zIHRoZSBuYW1lc3BhY2UgVVJJIGFzc29jaWF0ZWQgd2l0aCB0aGUgcXVhbGlmaWVkIG5hbWUuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXROYW1lc3BhY2VVUklGcm9tUHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpnZXROYW1lc3BhY2VVUklGcm9tUHJlZml4PC9IMz4NCjxQUkU+DQpwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lc3BhY2VVUklGcm9tUHJlZml4PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvUFJFPg0KPERMPg0KPEREPlJldHVybnMgdGhlIFVSSSBvZiBwcmVmaXggKGlmIGFueSk8REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcmVmaXg8L0NPREU+IC0gdGhlIHByZWZpeCB3aG9zZSBVUkkgaXMgc2VhcmNoZWQgZm9yPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgbmFtZXNwYWNlIFVSSSBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoZQogcHJlZml4LCBudWxsIGlmIHRoZSBwcmVmaXggaXMgdW5kZWZpbmVkLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZW50aXR5UmVmZXJlbmNlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQplbnRpdHlSZWZlcmVuY2U8L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPmVudGl0eVJlZmVyZW5jZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCiAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9TQVhFeGNlcHRpb24uaHRtbCI+U0FYRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPkVudGl0eSByZWZlcmVuY2UgZXZlbnQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIGVudGl0eTxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9TQVhFeGNlcHRpb24uaHRtbCI+U0FYRXhjZXB0aW9uPC9BPiAtICZuYnNwOzwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0VHJhbnNmb3JtZXIoamF2YXgueG1sLnRyYW5zZm9ybS5UcmFuc2Zvcm1lcikiPjwhLS0gLS0+PC9BPjxIMz4NCnNldFRyYW5zZm9ybWVyPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXRUcmFuc2Zvcm1lcjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3RyYW5zZm9ybS9UcmFuc2Zvcm1lci5odG1sIj5UcmFuc2Zvcm1lcjwvQT4mbmJzcDt0KTwvUFJFPg0KPERMPg0KPEREPlNldHMgdGhlIHRyYW5zZm9ybWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHNlcmlhbGl6ZXI8REQ+PERMPg0KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyLmh0bWwjc2V0VHJhbnNmb3JtZXIoamF2YXgueG1sLnRyYW5zZm9ybS5UcmFuc2Zvcm1lcikiPnNldFRyYW5zZm9ybWVyPC9BPiBpbiBpbnRlcmZhY2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemF0aW9uSGFuZGxlci5odG1sIj5TZXJpYWxpemF0aW9uSGFuZGxlcjwvQT48RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnQ8L0NPREU+IC0gdGhlIHRyYW5zZm9ybWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHNlcmlhbGl6ZXIuPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXphdGlvbkhhbmRsZXIuaHRtbCNzZXRUcmFuc2Zvcm1lcihqYXZheC54bWwudHJhbnNmb3JtLlRyYW5zZm9ybWVyKSI+PENPREU+U2VyaWFsaXphdGlvbkhhbmRsZXIuc2V0VHJhbnNmb3JtZXIoVHJhbnNmb3JtZXIpPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldFRyYW5zZm9ybWVyKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmdldFRyYW5zZm9ybWVyPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vamF2YXgveG1sL3RyYW5zZm9ybS9UcmFuc2Zvcm1lci5odG1sIj5UcmFuc2Zvcm1lcjwvQT4gPEI+Z2V0VHJhbnNmb3JtZXI8L0I+KCk8L1BSRT4NCjxETD4NCjxERD5HZXRzIHRoZSB0cmFuc2Zvcm1lciBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZXJpYWxpemVyPEREPjxETD4NCjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemF0aW9uSGFuZGxlci5odG1sI2dldFRyYW5zZm9ybWVyKCkiPmdldFRyYW5zZm9ybWVyPC9BPiBpbiBpbnRlcmZhY2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemF0aW9uSGFuZGxlci5odG1sIj5TZXJpYWxpemF0aW9uSGFuZGxlcjwvQT48RFQ+PEI+UmV0dXJuczo8L0I+PEREPnJldHVybnMgdGhlIHRyYW5zZm9ybWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHNlcmlhbGl6ZXIuPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXphdGlvbkhhbmRsZXIuaHRtbCNnZXRUcmFuc2Zvcm1lcigpIj48Q09ERT5TZXJpYWxpemF0aW9uSGFuZGxlci5nZXRUcmFuc2Zvcm1lcigpPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImNoYXJhY3RlcnMob3JnLnczYy5kb20uTm9kZSkiPjwhLS0gLS0+PC9BPjxIMz4NCmNoYXJhY3RlcnM8L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPmNoYXJhY3RlcnM8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCI+Tm9kZTwvQT4mbmJzcDtub2RlKQogICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+VGhpcyBtZXRob2QgZ2V0cyB0aGUgbm9kZXMgdmFsdWUgYXMgYSBTdHJpbmcgYW5kIHVzZXMgdGhhdCBTdHJpbmcgYXMgaWYKIGl0IHdlcmUgYW4gaW5wdXQgY2hhcmFjdGVyIG5vdGlmaWNhdGlvbi48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5ub2RlPC9DT0RFPiAtIHRoZSBOb2RlIHRvIHNlcmlhbGl6ZTxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9TQVhFeGNlcHRpb24uaHRtbCI+U0FYRXhjZXB0aW9uPC9BPiAtICZuYnNwOzwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZXJyb3Iob3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb24pIj48IS0tIC0tPjwvQT48SDM+DQplcnJvcjwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+ZXJyb3I8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWFBhcnNlRXhjZXB0aW9uLmh0bWwiPlNBWFBhcnNlRXhjZXB0aW9uPC9BPiZuYnNwO2V4YykKICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD48REw+DQo8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvRXJyb3JIYW5kbGVyLmh0bWwjZXJyb3Iob3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb24pIj48Q09ERT5FcnJvckhhbmRsZXIuZXJyb3IoU0FYUGFyc2VFeGNlcHRpb24pPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImZhdGFsRXJyb3Iob3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb24pIj48IS0tIC0tPjwvQT48SDM+DQpmYXRhbEVycm9yPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5mYXRhbEVycm9yPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9TQVhQYXJzZUV4Y2VwdGlvbi5odG1sIj5TQVhQYXJzZUV4Y2VwdGlvbjwvQT4mbmJzcDtleGMpCiAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD48REw+DQo8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvRXJyb3JIYW5kbGVyLmh0bWwjZmF0YWxFcnJvcihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPjxDT0RFPkVycm9ySGFuZGxlci5mYXRhbEVycm9yKFNBWFBhcnNlRXhjZXB0aW9uKTwvQ09ERT48L0E+PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJ3YXJuaW5nKG9yZy54bWwuc2F4LlNBWFBhcnNlRXhjZXB0aW9uKSI+PCEtLSAtLT48L0E+PEgzPg0Kd2FybmluZzwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+d2FybmluZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYUGFyc2VFeGNlcHRpb24uaHRtbCI+U0FYUGFyc2VFeGNlcHRpb248L0E+Jm5ic3A7ZXhjKQogICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+PERMPg0KPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0Vycm9ySGFuZGxlci5odG1sI3dhcm5pbmcob3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb24pIj48Q09ERT5FcnJvckhhbmRsZXIud2FybmluZyhTQVhQYXJzZUV4Y2VwdGlvbik8L0NPREU+PC9BPjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZmlyZUVuZEVudGl0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KZmlyZUVuZEVudGl0eTwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+ZmlyZUVuZEVudGl0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCiAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD5UbyBmaXJlIG9mZiBlbmQgZW50aXR5IHRyYWNlIGV2ZW50PEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIGVudGl0eTwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic3RhcnREb2N1bWVudCgpIj48IS0tIC0tPjwvQT48SDM+DQpzdGFydERvY3VtZW50PC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zdGFydERvY3VtZW50PC9CPigpCiAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD5SZWNlaXZlIG5vdGlmaWNhdGlvbiBvZiB0aGUgYmVnaW5uaW5nIG9mIGEgZG9jdW1lbnQuCiBUaGlzIG1ldGhvZCBpcyBuZXZlciBhIHNlbGYgZ2VuZXJhdGVkIGNhbGwsIAogYnV0IG9ubHkgY2FsbGVkIGV4dGVybmFsbHkuCgogPHA+VGhlIFNBWCBwYXJzZXIgd2lsbCBpbnZva2UgdGhpcyBtZXRob2Qgb25seSBvbmNlLCBiZWZvcmUgYW55CiBvdGhlciBtZXRob2RzIGluIHRoaXMgaW50ZXJmYWNlIG9yIGluIERUREhhbmRsZXIgKGV4Y2VwdCBmb3IKIHNldERvY3VtZW50TG9jYXRvcikuPC9wPjxERD48REw+DQo8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT4gLSBBbnkgU0FYIGV4Y2VwdGlvbiwgcG9zc2libHkKICAgICAgICAgICAgd3JhcHBpbmcgYW5vdGhlciBleGNlcHRpb24uPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+IC0gJm5ic3A7PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZXRTb3VyY2VMb2NhdG9yKGphdmF4LnhtbC50cmFuc2Zvcm0uU291cmNlTG9jYXRvcikiPjwhLS0gLS0+PC9BPjxIMz4NCnNldFNvdXJjZUxvY2F0b3I8L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPnNldFNvdXJjZUxvY2F0b3I8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC90cmFuc2Zvcm0vU291cmNlTG9jYXRvci5odG1sIj5Tb3VyY2VMb2NhdG9yPC9BPiZuYnNwO2xvY2F0b3IpPC9QUkU+DQo8REw+DQo8REQ+VGhpcyBtZXRob2QgaXMgdXNlZCB0byBzZXQgdGhlIHNvdXJjZSBsb2NhdG9yLCB3aGljaCBtaWdodCBiZSB1c2VkIHRvCiBnZW5lcmF0ZWQgYW4gZXJyb3IgbWVzc2FnZS48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhdG9yPC9DT0RFPiAtIHRoZSBzb3VyY2UgbG9jYXRvcjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL0V4dGVuZGVkQ29udGVudEhhbmRsZXIuaHRtbCNzZXRTb3VyY2VMb2NhdG9yKGphdmF4LnhtbC50cmFuc2Zvcm0uU291cmNlTG9jYXRvcikiPjxDT0RFPkV4dGVuZGVkQ29udGVudEhhbmRsZXIuc2V0U291cmNlTG9jYXRvcihqYXZheC54bWwudHJhbnNmb3JtLlNvdXJjZUxvY2F0b3IpPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InNldE5hbWVzcGFjZU1hcHBpbmdzKG9yZy5hcGFjaGUueG1sLnNlcmlhbGl6ZXIuTmFtZXNwYWNlTWFwcGluZ3MpIj48IS0tIC0tPjwvQT48SDM+DQpzZXROYW1lc3BhY2VNYXBwaW5nczwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+c2V0TmFtZXNwYWNlTWFwcGluZ3M8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvTmFtZXNwYWNlTWFwcGluZ3MuaHRtbCI+TmFtZXNwYWNlTWFwcGluZ3M8L0E+Jm5ic3A7bWFwcGluZ3MpPC9QUkU+DQo8REw+DQo8REQ+VXNlZCBvbmx5IGJ5IFRyYW5zZm9ybWVyU25hcHNob3RJbXBsIHRvIHJlc3RvcmUgdGhlIHNlcmlhbGl6YXRpb24gCiB0byBhIHByZXZpb3VzIHN0YXRlLjxERD48REw+DQo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvU2VyaWFsaXphdGlvbkhhbmRsZXIuaHRtbCNzZXROYW1lc3BhY2VNYXBwaW5ncyhvcmcuYXBhY2hlLnhtbC5zZXJpYWxpemVyLk5hbWVzcGFjZU1hcHBpbmdzKSI+c2V0TmFtZXNwYWNlTWFwcGluZ3M8L0E+IGluIGludGVyZmFjZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyLmh0bWwiPlNlcmlhbGl6YXRpb25IYW5kbGVyPC9BPjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZ3M8L0NPREU+IC0gTmFtZXNwYWNlTWFwcGluZ3M8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InJlc2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4NCnJlc2V0PC9IMz4NCjxQUkU+DQpwdWJsaWMgYm9vbGVhbiA8Qj5yZXNldDwvQj4oKTwvUFJFPg0KPERMPg0KPEREPjxETD4NCjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iYWRkQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQphZGRBdHRyaWJ1dGU8L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPmFkZEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cmF3TmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKQogICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD5UaGlzIG1ldGhvZCBhZGRzIGFuIGF0dHJpYnV0ZSB0aGUgdGhlIGN1cnJlbnQgZWxlbWVudCwKIGJ1dCBzaG91bGQgbm90IGJlIHVzZWQgZm9yIGFuIHhzbDphdHRyaWJ1dGUgY2hpbGQuPEREPjxETD4NCjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL0V4dGVuZGVkQ29udGVudEhhbmRsZXIuaHRtbCNhZGRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPkV4dGVuZGVkQ29udGVudEhhbmRsZXIuYWRkQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9Im5vdGF0aW9uRGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0Kbm90YXRpb25EZWNsPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5ub3RhdGlvbkRlY2w8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmcwLAogICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnMikKICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+PERMPg0KPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0RUREhhbmRsZXIuaHRtbCNub3RhdGlvbkRlY2woamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPkRUREhhbmRsZXIubm90YXRpb25EZWNsKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9DT0RFPjwvQT48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InVucGFyc2VkRW50aXR5RGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KdW5wYXJzZWRFbnRpdHlEZWNsPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj51bnBhcnNlZEVudGl0eURlY2w8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmcwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmczKQogICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD48REw+DQo8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvRFRESGFuZGxlci5odG1sI3VucGFyc2VkRW50aXR5RGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PENPREU+RFRESGFuZGxlci51bnBhcnNlZEVudGl0eURlY2woamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L0NPREU+PC9BPjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0RFRERW50aXR5RXhwYW5zaW9uKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+DQpzZXREVERFbnRpdHlFeHBhbnNpb248L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPnNldERUREVudGl0eUV4cGFuc2lvbjwvQj4oYm9vbGVhbiZuYnNwO2V4cGFuZCk8L1BSRT4NCjxETD4NCjxERD5JZiBzZXQgdG8gZmFsc2UgdGhlIHNlcmlhbGl6ZXIgZG9lcyBub3QgZXhwYW5kIERURCBlbnRpdGllcywKIGJ1dCBsZWF2ZXMgdGhlbSBhcyBpcywgdGhlIGRlZmF1bHQgdmFsdWUgaXMgdHJ1ZS48REQ+PERMPg0KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyLmh0bWwjc2V0RFRERW50aXR5RXhwYW5zaW9uKGJvb2xlYW4pIj5zZXREVERFbnRpdHlFeHBhbnNpb248L0E+IGluIGludGVyZmFjZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyLmh0bWwiPlNlcmlhbGl6YXRpb25IYW5kbGVyPC9BPjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZG9jdW1lbnRJc0VtcHR5KCkiPjwhLS0gLS0+PC9BPjxIMz4NCmRvY3VtZW50SXNFbXB0eTwvSDM+DQo8UFJFPg0KcHVibGljIGJvb2xlYW4gPEI+ZG9jdW1lbnRJc0VtcHR5PC9CPigpPC9QUkU+DQo8REw+DQo8REQ+UmV0dXJuIHRydWUgaWYgbm90aGluZyBoYXMgYmVlbiBzZW50IHRvIHRoaXMgcmVzdWx0IHRyZWUgeWV0LgogPHA+CiBUaGlzIGlzIG5vdCBhIHB1YmxpYyBBUEkuPEREPjxETD4NCjxEVD48Qj5Vc2FnZTo8L0I+PEREPjxpPjxmb250IHNpemU9Ii0xIiBjb2xvcj0iI0ZGMDAwMCI+ICoqRm9yIGludGVybmFsIHVzZSBvbmx5Kio8L2ZvbnQ+PC9pPjwvREQ+CjwvREQ+DQo8L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldE91dHB1dFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRPdXRwdXRQcm9wZXJ0eTwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T3V0cHV0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPg0KPERMPg0KPEREPkdldCB0aGUgdmFsdWUgb2YgYW4gb3V0cHV0IHByb3BlcnR5LAogdGhlIGV4cGxpY2l0IHZhbHVlLCBpZiBhbnksIG90aGVyd2lzZSB0aGUKIGRlZmF1bHQgdmFsdWUsIGlmIGFueSwgb3RoZXJ3aXNlIG51bGwuPEREPjxETD4NCjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0T3V0cHV0UHJvcGVydHlOb25EZWZhdWx0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRPdXRwdXRQcm9wZXJ0eU5vbkRlZmF1bHQ8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE91dHB1dFByb3BlcnR5Tm9uRGVmYXVsdDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+DQo8REw+DQo8REQ+R2V0IHRoZSB2YWx1ZSBvZiBhbiBvdXRwdXQgcHJvcGVydHksIAogbm90IHRoZSBkZWZhdWx0IHZhbHVlLiBJZiB0aGVyZSBpcyBhIGRlZmF1bHQKIHZhbHVlLCBidXQgbm8gbm9uLWRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QKIHdpbGwgcmV0dXJuIG51bGwuCiA8cD48REQ+PERMPg0KPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJhc0RPTTNTZXJpYWxpemVyKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmFzRE9NM1NlcmlhbGl6ZXI8L0gzPg0KPFBSRT4NCnB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmFzRE9NM1NlcmlhbGl6ZXI8L0I+KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+DQo8REw+DQo8REQ+UmV0dXJuIGEgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9ET00zU2VyaWFsaXplci5odG1sIj48Q09ERT5ET00zU2VyaWFsaXplcjwvQ09ERT48L0E+IGludGVyZmFjZSBpbnRvIHRoaXMgc2VyaWFsaXplci4gSWYgdGhlCiBzZXJpYWxpemVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveG1sL3NlcmlhbGl6ZXIvRE9NM1NlcmlhbGl6ZXIuaHRtbCI+PENPREU+RE9NM1NlcmlhbGl6ZXI8L0NPREU+PC9BPiBpbnRlcmZhY2UsIGl0IHNob3VsZAogcmV0dXJuIG51bGwuPEREPjxETD4NCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL0RPTTNTZXJpYWxpemVyLmh0bWwiPjxDT0RFPkRPTTNTZXJpYWxpemVyPC9DT0RFPjwvQT4gaW50ZXJmYWNlIGludG8gdGhpcyBzZXJpYWxpemVyLCAgb3IgbnVsbAogaWYgdGhlIHNlcmlhbGl6ZXIgaXMgbm90IERPTSBjYXBhYmxlPERUPjxCPlRocm93czo8L0I+PEREPmphdmEuaW8uSU9FeGNlcHRpb24gLSBBbiBJL08gZXhjZXB0aW9uIG9jY3VyZWQ8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyLmh0bWwjYXNET00zU2VyaWFsaXplcigpIj48Q09ERT5TZXJpYWxpemVyLmFzRE9NM1NlcmlhbGl6ZXIoKTwvQ09ERT48L0E+PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRPdXRwdXRQcm9wZXJ0eURlZmF1bHQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4NCmdldE91dHB1dFByb3BlcnR5RGVmYXVsdDwvSDM+DQo8UFJFPg0KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T3V0cHV0UHJvcGVydHlEZWZhdWx0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4NCjxETD4NCjxERD5HZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYW4geHNsOm91dHB1dCBwcm9wZXJ0eSwKIHdoaWNoIHdvdWxkIGJlIG51bGwgb25seSBpZiBubyBkZWZhdWx0IHZhbHVlIGV4aXN0cwogZm9yIHRoZSBwcm9wZXJ0eS48REQ+PERMPg0KPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJzZXRPdXRwdXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0T3V0cHV0UHJvcGVydHk8L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPnNldE91dHB1dFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbCk8L1BSRT4NCjxETD4NCjxERD5TZXQgdGhlIHZhbHVlIGZvciB0aGUgb3V0cHV0IHByb3BlcnR5LCB0eXBpY2FsbHkgZnJvbQogYW4geHNsOm91dHB1dCBlbGVtZW50LCBidXQgdGhpcyBkb2VzIG5vdCBjaGFuZ2Ugd2hhdAogdGhlIGRlZmF1bHQgdmFsdWUgaXMuPEREPjxETD4NCjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0T3V0cHV0UHJvcGVydHlEZWZhdWx0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpzZXRPdXRwdXRQcm9wZXJ0eURlZmF1bHQ8L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPnNldE91dHB1dFByb3BlcnR5RGVmYXVsdDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsKTwvUFJFPg0KPERMPg0KPEREPlNldCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgYW4gb3V0cHV0IHByb3BlcnR5LCBidXQgdGhpcyBkb2VzCiBub3QgaW1wYWN0IGFueSBleHBsaWNpdGx5IHNldCB2YWx1ZS48REQ+PERMPg0KPC9ETD4NCjwvREQ+DQo8L0RMPg0KPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPg0KPEhSPg0KDQo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+DQo8VFI+DQo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4NCiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvU2VyaWFsaXplckJhc2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDwvVFI+DQo8L1RBQkxFPg0KPC9URD4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPg0KPC9FTT4NCjwvVEQ+DQo8L1RSPg0KDQo8VFI+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9PdXRwdXRQcm9wZXJ0eVV0aWxzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOw0KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvc2VyaWFsaXplci9TZXJpYWxpemVyRmFjdG9yeS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOw0KJm5ic3A7PEEgSFJFRj0iU2VyaWFsaXplckJhc2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUj4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCkRFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+DQoNCjxIUj4NCkNvcHlyaWdodCCpIDIwMDYgQXBhY2hlIFhNTCBQcm9qZWN0LiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KPC9CT0RZPg0KPC9IVE1MPg0K