PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+CjwhLS1OZXdQYWdlLS0+CjxIVE1MPgo8SEVBRD4KPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgo8VElUTEU+CkRlZmluaXRpb25zRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKPC9USVRMRT4KPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSxEZWZpbml0aW9uc0ZhY3RvcnkgaW50ZXJmYWNlIj4KPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgo8L0hFQUQ+CjxTQ1JJUFQ+CmZ1bmN0aW9uIGFzZCgpCnsKcGFyZW50LmRvY3VtZW50LnRpdGxlPSJEZWZpbml0aW9uc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKfQo8L1NDUklQVD4KPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgo8VFI+CjxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8L1RSPgo8L1RBQkxFPgo8L1REPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KPC9FTT4KPC9URD4KPC9UUj4KCjxUUj4KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOwombmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CiZuYnNwOwo8U0NSSVBUPgogIDwhLS0KICBpZih3aW5kb3c9PXRvcCkgewogICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CiAgfQogIC8vLS0+CjwvU0NSSVBUPgo8Tk9TQ1JJUFQ+CjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgo8L05PU0NSSVBUPgo8L0ZPTlQ+PC9URD4KPC9UUj4KPFRSPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgogIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+Cgo8SFI+CjwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KPEgyPgo8Rk9OVCBTSVpFPSItMSI+Cm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9GT05UPgo8QlI+CkludGVyZmFjZSBEZWZpbml0aW9uc0ZhY3Rvcnk8L0gyPgo8REw+CjxEVD48Qj5BbGwgU3VwZXJpbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KPC9ETD4KPERMPgo8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9BPjwvREQ+CjwvREw+CjxIUj4KPERMPgo8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PERUPmV4dGVuZHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgoKPFA+ClRpbGVzIERlZmluaXRpb24gZmFjdG9yeS4KIFRoaXMgaW50ZXJmYWNlIHJlcGxhY2Ugb2xkIENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS4KIE1haW4gbWV0aG9kIGdldERlZmluaXRpb24oKSBpcyBleGFjdGx5IHRoZSBzYW1lLiBJbml0aWFsaXphdGlvbiBtZXRob2QgY2hhbmdlLgogVGhpcyBpbnRlcmZhY2UgYWxsb3dzIHRvIHJldHJpZXZlIGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZSwgaW5kZXBlbmRlbnRseSBvZgogdGhlIGZhY3RvcnkgaW1wbGVtZW50YXRpb24uCiBPYmplY3QgbGlmZSBjeWNsZSBpcyBhcyBmb2xsb3c6CiA8dWw+CiA8bGk+Q29uc3RydWN0b3I6IGNyZWF0ZSBvYmplY3Q8L2xpPgogPGxpPnNldENvbmZpZzogc2V0IGNvbmZpZyBhbmQgaW5pdGlhbGl6ZSBmYWN0b3J5LiBBZnRlciBmaXJzdCBjYWxsIHRvIHRoaXMKIG1ldGhvZCwgZmFjdG9yeSBpcyBvcGVyYXRpb25hbC48L2xpPgogPGxpPmRlc3Ryb3k6IGZhY3RvcnkgaXMgYmVpbmcgc2h1dGRvd24uPC9saT4KIDwvdWw+CiBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIFNlcmlhbGl6YWJsZSwgaW4gb3JkZXIgdG8gYmUgY29tcGxpYW50IHdpdGggd2ViIENvbnRhaW5lcgogaGF2aW5nIHRoaXMgY29uc3RyYWludCAoV2VibG9naWMgNi54KS4KPFA+Cgo8UD4KPEhSPgoKPFA+CjwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CgoKPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgoKCjwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KCgo8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CjxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgZmFjdG9yeSBpcyBiZWluZwogc2h1dCBkb3duLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0Q29uZmlnKCkiPmdldENvbmZpZzwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZywgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmluaXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZywKICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0IGRlZmluaXRpb24gZmFjdG9yeS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjc2V0Q29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZywgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPnNldENvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Jm5ic3A7Y29uZmlnLAogICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGZhY3RvcnkgY29uZmlndXJhdGlvbi48L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDsKPFA+Cgo8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CgoKPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgoKCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KCjxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgpnZXREZWZpbml0aW9uPC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4gPEI+Z2V0RGVmaW5pdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KPERMPgo8REQ+R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS4KPFA+CjxERD48REw+CjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmVsZXQgcmVxdWVzdDxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBjdXJyZW50IHNlcnZsZXQgY29udGV4dAo8RFQ+PEI+VGhyb3dzOjwvQj4KPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIEFuIGVycm9yIG9jY3VyIHdoaWxlIGdldHRpbmcgZGVmaW5pdGlvbi4KPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L0NPREU+IC0gTm8gZGVmaW5pdGlvbiBmb3VuZCBmb3Igc3BlY2lmaWVkIG5hbWUKIEltcGxlbWVudGF0aW9uIGNhbiB0aHJvdyBtb3JlIGFjY3VyYXRlIGV4Y2VwdGlvbiBhcyBhIHN1YmNsYXNzIG9mIHRoaXMgZXhjZXB0aW9uPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iaW5pdChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CmluaXQ8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZywKICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpCiAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KPERMPgo8REQ+SW5pdCBkZWZpbml0aW9uIGZhY3RvcnkuCiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgZmFjdG9yeSBjcmVhdGlvbiwgYW5kIHByaW9yIGFueSBjYWxsCiB0byBzZXRDb25maWcoKS4KPFA+CjxERD48REw+CjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIENvbmZpZ3VyYXRpb24gb2JqZWN0IHVzZWQgdG8gc2V0IGZhY3RvcnkgY29uZmlndXJhdGlvbi48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBmYWN0b3J5Lgo8RFQ+PEI+VGhyb3dzOjwvQj4KPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIEFuIGVycm9yIG9jY3VyIGR1cmluZyBpbml0aWFsaXphdGlvbi48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJkZXN0cm95KCkiPjwhLS0gLS0+PC9BPjxIMz4KZGVzdHJveTwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPmRlc3Ryb3k8L0I+KCk8L1BSRT4KPERMPgo8REQ+PHA+UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgZmFjdG9yeSBpcyBiZWluZwogc2h1dCBkb3duLjwvcD4KPFA+CjxERD48REw+CjwvREw+CjwvREQ+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9InNldENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CnNldENvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPnNldENvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCiAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpCiAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgo8REw+CjxERD5TZXQgZmFjdG9yeSBjb25maWd1cmF0aW9uLgogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBjaGFuZ2UgZmFjdG9yeSBjb25maWd1cmF0aW9uLgogVGhpcyBtZXRob2QgaXMgb3B0aW9uYWwsIGFuZCBjYW4gc2VuZCBhbiBleGNlcHRpb24gaWYgaW1wbGVtZW50YXRpb24KIGRvZXNuJ3QgYWxsb3cgY2hhbmdlIGluIGNvbmZpZ3VyYXRpb24uCjxQPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBDb25maWd1cmF0aW9uIG9iamVjdCB1c2VkIHRvIHNldCBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIFNlcnZsZXQgQ29udGV4dCBwYXNzZWQgdG8gZmFjdG9yeS4KPERUPjxCPlRocm93czo8L0I+CjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBBbiBlcnJvciBvY2N1ciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0Q29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0Q29uZmlnPC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+IDxCPmdldENvbmZpZzwvQj4oKTwvUFJFPgo8REw+CjxERD5HZXQgZmFjdG9yeSBjb25maWd1cmF0aW9uLgo8UD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPEREPjxETD4KCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGlsZXNDb25maWc8L0RMPgo8L0REPgo8L0RMPgo8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+CjxIUj4KCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgo8VFI+CjxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8L1RSPgo8L1RBQkxFPgo8L1REPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KPC9FTT4KPC9URD4KPC9UUj4KCjxUUj4KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOwombmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CiZuYnNwOwo8U0NSSVBUPgogIDwhLS0KICBpZih3aW5kb3c9PXRvcCkgewogICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CiAgfQogIC8vLS0+CjwvU0NSSVBUPgo8Tk9TQ1JJUFQ+CjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgo8L05PU0NSSVBUPgo8L0ZPTlQ+PC9URD4KPC9UUj4KPFRSPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgogIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+Cgo8SFI+CkNvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCjwvQk9EWT4KPC9IVE1MPgo=