PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+CjwhLS1OZXdQYWdlLS0+CjxIVE1MPgo8SEVBRD4KPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA5IEVEVCAyMDAzIC0tPgo8VElUTEU+Ck1vZHVsZUNvbmZpZ0ltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCjwvVElUTEU+CjxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsLE1vZHVsZUNvbmZpZ0ltcGwgY2xhc3MiPgo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+CjwvSEVBRD4KPFNDUklQVD4KZnVuY3Rpb24gYXNkKCkKewpwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1vZHVsZUNvbmZpZ0ltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKfQo8L1NDUklQVD4KPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgo8VFI+CjxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPC9UUj4KPC9UQUJMRT4KPC9URD4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+CjwvRU0+CjwvVEQ+CjwvVFI+Cgo8VFI+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOwombmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CiZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZ0ltcGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CiZuYnNwOwo8U0NSSVBUPgogIDwhLS0KICBpZih3aW5kb3c9PXRvcCkgewogICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CiAgfQogIC8vLS0+CjwvU0NSSVBUPgo8Tk9TQ1JJUFQ+CjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgo8L05PU0NSSVBUPgo8L0ZPTlQ+PC9URD4KPC9UUj4KPFRSPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgogIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CkRFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+Cgo8SFI+CjwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KPEgyPgo8Rk9OVCBTSVpFPSItMSI+Cm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9GT05UPgo8QlI+CkNsYXNzIE1vZHVsZUNvbmZpZ0ltcGw8L0gyPgo8UFJFPgpqYXZhLmxhbmcuT2JqZWN0CiAgfAogICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGw8L0I+CjwvUFJFPgo8REw+CjxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KPC9ETD4KPERMPgo8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPjwvREQ+CjwvREw+CjxIUj4KPERMPgo8RFQ+cHVibGljIGNsYXNzIDxCPk1vZHVsZUNvbmZpZ0ltcGw8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0RMPgoKPFA+CjxwPlRoZSBjb2xsZWN0aW9uIG9mIHN0YXRpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIGEKIFN0cnV0cy1iYXNlZCBtb2R1bGUuICBNdWx0aXBsZSBtb2R1bGVzIGFyZSBpZGVudGlmaWVkIGJ5CiBhIDxlbT5wcmVmaXg8L2VtPiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb250ZXh0CiByZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSS4gIElmIG5vIG1vZHVsZSBwcmVmaXggY2FuIGJlCiBtYXRjaGVkLCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uICh3aXRoIGEgcHJlZml4IGVxdWFsIHRvIGEgemVyby1sZW5ndGgKIHN0cmluZykgaXMgc2VsZWN0ZWQsIHdoaWNoIGlzIGVsZWdhbnRseSBiYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoIHRoZQogcHJldmlvdXMgU3RydXRzIGJlaGF2aW9yIHRoYXQgb25seSBzdXBwb3J0ZWQgb25lIG1vZHVsZS48L3A+CjxQPgoKPFA+CjxETD4KPERUPjxCPlNpbmNlOjwvQj48L0RUPgogIDxERD5TdHJ1dHMgMS4xPC9ERD4KPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CiAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+CjxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGwiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgo8SFI+Cgo8UD4KPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KCgo8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FjdGlvbkNvbmZpZ3MiPmFjdGlvbkNvbmZpZ3M8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBhY3Rpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLCBpZiBhbnksCiBrZXllZCBieSB0aGUgPGNvZGU+cGF0aDwvY29kZT4gcHJvcGVydHkuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWN0aW9uTWFwcGluZ0NsYXNzIj5hY3Rpb25NYXBwaW5nQ2xhc3M8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGRlZmF1bHQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYWN0aW9uIG1hcHBpbmcKIGluc3RhbmNlcy48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNjb25maWd1cmVkIj5jb25maWd1cmVkPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0hhcyB0aGlzIG1vZHVsZSBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZCB5ZXQuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2NvbnRyb2xsZXJDb25maWciPmNvbnRyb2xsZXJDb25maWc8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNkYXRhU291cmNlcyI+ZGF0YVNvdXJjZXM8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBKREJDIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzCiBtb2R1bGUsIGlmIGFueSwga2V5ZWQgYnkgdGhlIDxjb2RlPmtleTwvY29kZT4gcHJvcGVydHkuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2V4Y2VwdGlvbnMiPmV4Y2VwdGlvbnM8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBleGNlcHRpb24gaGFuZGxpbmcgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMKIG1vZHVsZSwgaWYgYW55LCBrZXllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gcHJvcGVydHkuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2Zvcm1CZWFucyI+Zm9ybUJlYW5zPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZSwgaWYgYW55LAoga2V5ZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmb3J3YXJkcyI+Zm9yd2FyZHM8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBnbG9iYWwgZm9yd2FyZCBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUsIGlmIGFueSwKIGtleWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBwcm9wZXJ0eS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjbWVzc2FnZVJlc291cmNlcyI+bWVzc2FnZVJlc291cmNlczwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzCiBtb2R1bGUsIGlmIGFueSwga2V5ZWQgYnkgdGhlIDxjb2RlPmtleTwvY29kZT4gcHJvcGVydHkuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5BcnJheUxpc3Q8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcGx1Z0lucyI+cGx1Z0luczwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIGNvbmZpZ3VyZWQgcGx1Zy1pbiBBY3Rpb25zIGZvciB0aGlzIG1vZHVsZSwKIGlmIGFueSwgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBkZWNsYXJlZCBhbmQgY29uZmlndXJlZC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNwcmVmaXgiPnByZWZpeDwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLCB1c2VkIHRvCiBzZWxlY3QgdGhpcyBjb25maWd1cmF0aW9uIHZlcnN1cyBvdGhlcnMgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVyCiBzZXJ2bGV0LjwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOwo8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+Cgo8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjTW9kdWxlQ29uZmlnSW1wbChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsKSI+TW9kdWxlQ29uZmlnSW1wbDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Pbmx5IHVzZWQgd2hpbGUgd2UgYXJlIGRlcHJlY2F0aW5nIEFwcGxpY2F0aW9uQ29uZmlnIHRvIGluc3VyZSBtYXhpbXVtIGNvbXBhdGFiaWxpdHkuPC9JPjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI01vZHVsZUNvbmZpZ0ltcGwoamF2YS5sYW5nLlN0cmluZykiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIE1vZHVsZUNvbmZpZ0ltcGwgb2JqZWN0IGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkCiBwYXJhbWV0ZXIgdmFsdWVzLjwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOwo8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CjxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZEFjdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnKSI+YWRkQWN0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkFjdGlvbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCiB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWRkRGF0YVNvdXJjZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZykiPmFkZERhdGFTb3VyY2VDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5EYXRhU291cmNlQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPmFkZEV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5FeGNlcHRpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAogd2l0aCB0aGlzIG1vZHVsZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZEZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPmFkZEZvcm1CZWFuQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5Gb3JtQmVhbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCiB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWRkRm9yd2FyZENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPmFkZEZvcndhcmRDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5Gb3J3YXJkQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mIGdsb2JhbAogZm9yd2FyZHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZykiPmFkZE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0CiBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRQbHVnSW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJbkNvbmZpZykiPmFkZFBsdWdJbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPiZuYnNwO3BsdWdJbkNvbmZpZyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ld2x5IGNvbmZpZ3VyZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Q09ERT5QbHVnSW5Db25maWc8L0NPREU+PC9BPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mCiBwbHVnLWluIEFjdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kQWN0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kQWN0aW9uQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGFjdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHBhdGgsIGlmIGFueTsKIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEFjdGlvbkNvbmZpZ3MoKSI+ZmluZEFjdGlvbkNvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGFjdGlvbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZERhdGFTb3VyY2VDb25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmREYXRhU291cmNlQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kRGF0YVNvdXJjZUNvbmZpZ3MoKSI+ZmluZERhdGFTb3VyY2VDb25maWdzPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRFeGNlcHRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRFeGNlcHRpb25Db25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdHlwZSwgaWYgYW55Owogb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlncygpIj5maW5kRXhjZXB0aW9uQ29uZmlnczwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRGb3JtQmVhbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcm1CZWFuQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55Owogb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEZvcm1CZWFuQ29uZmlncygpIj5maW5kRm9ybUJlYW5Db25maWdzPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRGb3J3YXJkQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9yd2FyZENvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7CiBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEZvcndhcmRDb25maWdzKCkiPmZpbmRGb3J3YXJkQ29uZmlnczwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwKIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlncygpIj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kUGx1Z0luQ29uZmlncygpIj5maW5kUGx1Z0luQ29uZmlnczwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY29uZmlndXJlZCBwbHVnLWluIGFjdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZnJlZXplKCkiPmZyZWV6ZTwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIG1vZHVsZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2dldEFjdGlvbk1hcHBpbmdDbGFzcygpIj5nZXRBY3Rpb25NYXBwaW5nQ2xhc3M8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhY3Rpb24gbWFwcGluZwogaW5zdGFuY2VzLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZ2V0Q29uZmlndXJlZCgpIj5nZXRDb25maWd1cmVkPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgbW9kdWxlIGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkIHlldC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNnZXRDb250cm9sbGVyQ29uZmlnKCkiPmdldENvbnRyb2xsZXJDb25maWc8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udHJvbGxlciBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBtb2R1bGUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNnZXRQcmVmaXgoKSI+Z2V0UHJlZml4PC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByZWZpeCBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSwgdXNlZCB0bwogc2VsZWN0IHRoaXMgY29uZmlndXJhdGlvbiB2ZXJzdXMgb3RoZXJzIHN1cHBvcnRlZCBieSB0aGUgY29udHJvbGxlcgogc2VydmxldC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3JlbW92ZUFjdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnKSI+cmVtb3ZlQWN0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgYWN0aW9uIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVEYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+cmVtb3ZlRGF0YVNvdXJjZUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3JlbW92ZUV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+cmVtb3ZlRXhjZXB0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVGb3JtQmVhbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj5yZW1vdmVGb3JtQmVhbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgdGhlIHNwZWNpZmllZCBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3JlbW92ZUZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj5yZW1vdmVGb3J3YXJkQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgdGhlIHNwZWNpZmllZCBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+cmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSByZXNvdXJjZXMgY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3NldEFjdGlvbk1hcHBpbmdDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWN0aW9uTWFwcGluZ0NsYXNzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjdGlvbk1hcHBpbmdDbGFzcyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCiBpbnN0YW5jZXMuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNzZXRDb250cm9sbGVyQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnKSI+c2V0Q29udHJvbGxlckNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Jm5ic3A7Y2MpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udHJvbGxlciBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBtb2R1bGUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFByZWZpeDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLCB1c2VkIHRvCiBzZWxlY3QgdGhpcyBjb25maWd1cmF0aW9uIHZlcnN1cyBvdGhlcnMgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVyCiBzZXJ2bGV0LjwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDsKPFA+Cgo8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+Cgo8QSBOQU1FPSJhY3Rpb25Db25maWdzIj48IS0tIC0tPjwvQT48SDM+CmFjdGlvbkNvbmZpZ3M8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+YWN0aW9uQ29uZmlnczwvQj48L1BSRT4KPERMPgo8REQ+VGhlIHNldCBvZiBhY3Rpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLCBpZiBhbnksCiBrZXllZCBieSB0aGUgPGNvZGU+cGF0aDwvY29kZT4gcHJvcGVydHkuCjxQPgo8REw+CjwvREw+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImRhdGFTb3VyY2VzIj48IS0tIC0tPjwvQT48SDM+CmRhdGFTb3VyY2VzPC9IMz4KPFBSRT4KcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPmRhdGFTb3VyY2VzPC9CPjwvUFJFPgo8REw+CjxERD5UaGUgc2V0IG9mIEpEQkMgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMKIG1vZHVsZSwgaWYgYW55LCBrZXllZCBieSB0aGUgPGNvZGU+a2V5PC9jb2RlPiBwcm9wZXJ0eS4KPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZXhjZXB0aW9ucyI+PCEtLSAtLT48L0E+PEgzPgpleGNlcHRpb25zPC9IMz4KPFBSRT4KcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPmV4Y2VwdGlvbnM8L0I+PC9QUkU+CjxETD4KPEREPlRoZSBzZXQgb2YgZXhjZXB0aW9uIGhhbmRsaW5nIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzCiBtb2R1bGUsIGlmIGFueSwga2V5ZWQgYnkgdGhlIDxjb2RlPnR5cGU8L2NvZGU+IHByb3BlcnR5Lgo8UD4KPERMPgo8L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJmb3JtQmVhbnMiPjwhLS0gLS0+PC9BPjxIMz4KZm9ybUJlYW5zPC9IMz4KPFBSRT4KcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPmZvcm1CZWFuczwvQj48L1BSRT4KPERMPgo8REQ+VGhlIHNldCBvZiBmb3JtIGJlYW4gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLCBpZiBhbnksCiBrZXllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHkuCjxQPgo8REw+CjwvREw+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImZvcndhcmRzIj48IS0tIC0tPjwvQT48SDM+CmZvcndhcmRzPC9IMz4KPFBSRT4KcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPmZvcndhcmRzPC9CPjwvUFJFPgo8REw+CjxERD5UaGUgc2V0IG9mIGdsb2JhbCBmb3J3YXJkIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZSwgaWYgYW55LAoga2V5ZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5Lgo8UD4KPERMPgo8L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJtZXNzYWdlUmVzb3VyY2VzIj48IS0tIC0tPjwvQT48SDM+Cm1lc3NhZ2VSZXNvdXJjZXM8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+bWVzc2FnZVJlc291cmNlczwvQj48L1BSRT4KPERMPgo8REQ+VGhlIHNldCBvZiBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9ucyBmb3IgdGhpcwogbW9kdWxlLCBpZiBhbnksIGtleWVkIGJ5IHRoZSA8Y29kZT5rZXk8L2NvZGU+IHByb3BlcnR5Lgo8UD4KPERMPgo8L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJwbHVnSW5zIj48IS0tIC0tPjwvQT48SDM+CnBsdWdJbnM8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgamF2YS51dGlsLkFycmF5TGlzdCA8Qj5wbHVnSW5zPC9CPjwvUFJFPgo8REw+CjxERD5UaGUgc2V0IG9mIGNvbmZpZ3VyZWQgcGx1Zy1pbiBBY3Rpb25zIGZvciB0aGlzIG1vZHVsZSwKIGlmIGFueSwgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBkZWNsYXJlZCBhbmQgY29uZmlndXJlZC4KPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iY29uZmlndXJlZCI+PCEtLSAtLT48L0E+PEgzPgpjb25maWd1cmVkPC9IMz4KPFBSRT4KcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZmlndXJlZDwvQj48L1BSRT4KPERMPgo8REQ+SGFzIHRoaXMgbW9kdWxlIGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkIHlldC4gIE9uY2UgdGhpcyBmbGFnCiBoYXMgYmVlbiBzZXQsIGFueSBhdHRlbXB0IHRvIG1vZGlmeSB0aGUgY29uZmlndXJhdGlvbiB3aWxsIHJldHVybiBhbgogSWxsZWdhbFN0YXRlRXhjZXB0aW9uLgo8UD4KPERMPgo8L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJjb250cm9sbGVyQ29uZmlnIj48IS0tIC0tPjwvQT48SDM+CmNvbnRyb2xsZXJDb25maWc8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4gPEI+Y29udHJvbGxlckNvbmZpZzwvQj48L1BSRT4KPERMPgo8REQ+VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLgo8UD4KPERMPgo8L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJwcmVmaXgiPjwhLS0gLS0+PC9BPjxIMz4KcHJlZml4PC9IMz4KPFBSRT4KcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJlZml4PC9CPjwvUFJFPgo8REw+CjxERD5UaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLCB1c2VkIHRvCiBzZWxlY3QgdGhpcyBjb25maWd1cmF0aW9uIHZlcnN1cyBvdGhlcnMgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVyCiBzZXJ2bGV0LiAgQSBjb25maWd1cmF0aW9uIHdpdGggYSBwcmVmaXggb2YgYSB6ZXJvLWxlbmd0aCBTdHJpbmcgaXMgdGhlCiBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgd2ViIG1vZHVsZS4KPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYWN0aW9uTWFwcGluZ0NsYXNzIj48IS0tIC0tPjwvQT48SDM+CmFjdGlvbk1hcHBpbmdDbGFzczwvSDM+CjxQUkU+CnByb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFjdGlvbk1hcHBpbmdDbGFzczwvQj48L1BSRT4KPERMPgo8REQ+VGhlIGRlZmF1bHQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYWN0aW9uIG1hcHBpbmcKIGluc3RhbmNlcy4KPFA+CjxETD4KPC9ETD4KPC9ETD4KCjwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KCjxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+CjxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPC9UQUJMRT4KCjxBIE5BTUU9Ik1vZHVsZUNvbmZpZ0ltcGwoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KTW9kdWxlQ29uZmlnSW1wbDwvSDM+CjxQUkU+CnB1YmxpYyA8Qj5Nb2R1bGVDb25maWdJbXBsPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvUFJFPgo8REw+CjxERD5Db25zdHJ1Y3QgYW4gTW9kdWxlQ29uZmlnSW1wbCBvYmplY3QgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQKIHBhcmFtZXRlciB2YWx1ZXMuCjxQPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByZWZpeDwvQ09ERT4gLSBDb250ZXh0LXJlbGF0aXZlIFVSSSBwcmVmaXggZm9yIHRoaXMgbW9kdWxlPC9ETD4KPEhSPgoKPEEgTkFNRT0iTW9kdWxlQ29uZmlnSW1wbChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsKSI+PCEtLSAtLT48L0E+PEgzPgpNb2R1bGVDb25maWdJbXBsPC9IMz4KPFBSRT4KcHVibGljIDxCPk1vZHVsZUNvbmZpZ0ltcGw8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9QUkU+CjxETD4KPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk9ubHkgdXNlZCB3aGlsZSB3ZSBhcmUgZGVwcmVjYXRpbmcgQXBwbGljYXRpb25Db25maWcgdG8gaW5zdXJlIG1heGltdW0gY29tcGF0YWJpbGl0eS48L0k+CjxQPgo8REQ+T25seSB1c2VkIHdoaWxlIHdlIGFyZSBkZXByZWNhdGluZyBBcHBsaWNhdGlvbkNvbmZpZy4KIHBlcmZvcm1zIGEgc2hhbGxvdyBjb3B5IHRvIGVuc3VyZSB0aGF0IGFueSBvcGVyYXRpb25zCiBwZXJmb3JtZWQgb24gYW4gQXBwbGljYXRpb25Db25maWcgb2JqZWN0IGlzCiBwZXJmb3JtZWQgb24gdGhlIHNhbWUgdW5kZXJseWluZwogTW9kdWxlQ29uZmlnSW1wbCBzdWIgb2JqZWN0cwo8UD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tb2R1bGVDb25maWc8L0NPREU+IC0gPC9ETD4KCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KCjxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0iZ2V0Q29uZmlndXJlZCgpIj48IS0tIC0tPjwvQT48SDM+CmdldENvbmZpZ3VyZWQ8L0gzPgo8UFJFPgpwdWJsaWMgYm9vbGVhbiA8Qj5nZXRDb25maWd1cmVkPC9CPigpPC9QUkU+CjxETD4KPEREPkhhcyB0aGlzIG1vZHVsZSBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZCB5ZXQuICBPbmNlIHRoaXMgZmxhZwogaGFzIGJlZW4gc2V0LCBhbnkgYXR0ZW1wdCB0byBtb2RpZnkgdGhlIGNvbmZpZ3VyYXRpb24gd2lsbCByZXR1cm4gYW4KIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbi4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZ2V0Q29uZmlndXJlZCgpIj5nZXRDb25maWd1cmVkPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRDb250cm9sbGVyQ29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0Q29udHJvbGxlckNvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPiA8Qj5nZXRDb250cm9sbGVyQ29uZmlnPC9CPigpPC9QUkU+CjxETD4KPEREPlRoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZ2V0Q29udHJvbGxlckNvbmZpZygpIj5nZXRDb250cm9sbGVyQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJzZXRDb250cm9sbGVyQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgpzZXRDb250cm9sbGVyQ29uZmlnPC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+c2V0Q29udHJvbGxlckNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4mbmJzcDtjYyk8L1BSRT4KPERMPgo8REQ+VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNzZXRDb250cm9sbGVyQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnKSI+c2V0Q29udHJvbGxlckNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jYzwvQ09ERT4gLSBUaGUgY29udHJvbGxlciBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBtb2R1bGUuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0UHJlZml4KCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0UHJlZml4PC9IMz4KPFBSRT4KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJlZml4PC9CPigpPC9QUkU+CjxETD4KPEREPlRoZSBwcmVmaXggb2YgdGhlIGNvbnRleHQtcmVsYXRpdmUgcG9ydGlvbiBvZiB0aGUgcmVxdWVzdCBVUkksIHVzZWQgdG8KIHNlbGVjdCB0aGlzIGNvbmZpZ3VyYXRpb24gdmVyc3VzIG90aGVycyBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKIHNlcnZsZXQuICBBIGNvbmZpZ3VyYXRpb24gd2l0aCBhIHByZWZpeCBvZiBhIHplcm8tbGVuZ3RoIFN0cmluZyBpcyB0aGUKIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhpcyB3ZWIgbW9kdWxlLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNnZXRQcmVmaXgoKSI+Z2V0UHJlZml4PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4Kc2V0UHJlZml4PC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+c2V0UHJlZml4PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvUFJFPgo8REw+CjxERD5UaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLCB1c2VkIHRvCiBzZWxlY3QgdGhpcyBjb25maWd1cmF0aW9uIHZlcnN1cyBvdGhlcnMgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVyCiBzZXJ2bGV0LiAgQSBjb25maWd1cmF0aW9uIHdpdGggYSBwcmVmaXggb2YgYSB6ZXJvLWxlbmd0aCBTdHJpbmcgaXMgdGhlCiBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgd2ViIG1vZHVsZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjc2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcmVmaXg8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJlZml4PC9DT0RFPiAtIFRoZSBwcmVmaXggb2YgdGhlIGNvbnRleHQtcmVsYXRpdmUgcG9ydGlvbiBvZiB0aGUgcmVxdWVzdCBVUkkuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0QWN0aW9uTWFwcGluZ0NsYXNzKCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0QWN0aW9uTWFwcGluZ0NsYXNzPC9IMz4KPFBSRT4KcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWN0aW9uTWFwcGluZ0NsYXNzPC9CPigpPC9QUkU+CjxETD4KPEREPlRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCiBpbnN0YW5jZXMuCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2dldEFjdGlvbk1hcHBpbmdDbGFzcygpIj5nZXRBY3Rpb25NYXBwaW5nQ2xhc3M8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9InNldEFjdGlvbk1hcHBpbmdDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgpzZXRBY3Rpb25NYXBwaW5nQ2xhc3M8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5zZXRBY3Rpb25NYXBwaW5nQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb25NYXBwaW5nQ2xhc3MpPC9QUkU+CjxETD4KPEREPlRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCiBpbnN0YW5jZXMuCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI3NldEFjdGlvbk1hcHBpbmdDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWN0aW9uTWFwcGluZ0NsYXNzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFjdGlvbk1hcHBpbmdDbGFzczwvQ09ERT4gLSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCiBpbnN0YW5jZXMuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYWRkQWN0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CmFkZEFjdGlvbkNvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPmFkZEFjdGlvbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgo8REw+CjxERD5BZGQgYSBuZXcgPGNvZGU+QWN0aW9uQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKIHdpdGggdGhpcyBtb2R1bGUuCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZEFjdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnKSI+YWRkQWN0aW9uQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKPERUPjxCPlRocm93czo8L0I+CjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KICBoYXMgYmVlbiBmcm96ZW48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJhZGREYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgphZGREYXRhU291cmNlQ29uZmlnPC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+YWRkRGF0YVNvdXJjZUNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+CjxETD4KPEREPkFkZCBhIG5ldyA8Y29kZT5EYXRhU291cmNlQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKIHdpdGggdGhpcyBtb2R1bGUuCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZERhdGFTb3VyY2VDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWcpIj5hZGREYXRhU291cmNlQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKPERUPjxCPlRocm93czo8L0I+CjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KICBoYXMgYmVlbiBmcm96ZW48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJhZGRFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KYWRkRXhjZXB0aW9uQ29uZmlnPC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+YWRkRXhjZXB0aW9uQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+CjxETD4KPEREPkFkZCBhIG5ldyA8Y29kZT5FeGNlcHRpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAogd2l0aCB0aGlzIG1vZHVsZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjYWRkRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj5hZGRFeGNlcHRpb25Db25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBuZXcgY29uZmlndXJhdGlvbiBpbnN0YW5jZSB0byBiZSBhZGRlZAo8RFQ+PEI+VGhyb3dzOjwvQj4KPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgogIGhhcyBiZWVuIGZyb3plbjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImFkZEZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KYWRkRm9ybUJlYW5Db25maWc8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5hZGRGb3JtQmVhbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KPERMPgo8REQ+QWRkIGEgbmV3IDxjb2RlPkZvcm1CZWFuQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKIHdpdGggdGhpcyBtb2R1bGUuCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZEZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPmFkZEZvcm1CZWFuQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKPERUPjxCPlRocm93czo8L0I+CjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KICBoYXMgYmVlbiBmcm96ZW48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJhZGRGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgphZGRGb3J3YXJkQ29uZmlnPC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+YWRkRm9yd2FyZENvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+CjxETD4KPEREPkFkZCBhIG5ldyA8Y29kZT5Gb3J3YXJkQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mIGdsb2JhbAogZm9yd2FyZHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+YWRkRm9yd2FyZENvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIG5ldyBjb25maWd1cmF0aW9uIGluc3RhbmNlIHRvIGJlIGFkZGVkCjxEVD48Qj5UaHJvd3M6PC9CPgo8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCiAgaGFzIGJlZW4gZnJvemVuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KYWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPmFkZE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgo8REw+CjxERD5BZGQgYSBuZXcgPGNvZGU+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldAogYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+YWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIG5ldyBjb25maWd1cmF0aW9uIGluc3RhbmNlIHRvIGJlIGFkZGVkCjxEVD48Qj5UaHJvd3M6PC9CPgo8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCiAgaGFzIGJlZW4gZnJvemVuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYWRkUGx1Z0luQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CmFkZFBsdWdJbkNvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPmFkZFBsdWdJbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+Jm5ic3A7cGx1Z0luQ29uZmlnKTwvUFJFPgo8REw+CjxERD5BZGQgYSBuZXdseSBjb25maWd1cmVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+PENPREU+UGx1Z0luQ29uZmlnPC9DT0RFPjwvQT4gaW5zdGFuY2UgdG8gdGhlIHNldCBvZgogcGx1Zy1pbiBBY3Rpb25zIGZvciB0aGlzIG1vZHVsZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjYWRkUGx1Z0luQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5Db25maWcpIj5hZGRQbHVnSW5Db25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGx1Z0luQ29uZmlnPC9DT0RFPiAtIFRoZSBuZXcgY29uZmlndXJhdGlvbiBpbnN0YW5jZSB0byBiZSBhZGRlZDwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImZpbmRBY3Rpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KZmluZEFjdGlvbkNvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4gPEI+ZmluZEFjdGlvbkNvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+CjxETD4KPEREPlJldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgcGF0aCwgaWYgYW55Owogb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZEFjdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEFjdGlvbkNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFBhdGggb2YgdGhlIGFjdGlvbiBjb25maWd1cmF0aW9uIHRvIHJldHVybjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImZpbmRBY3Rpb25Db25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KZmluZEFjdGlvbkNvbmZpZ3M8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+W10gPEI+ZmluZEFjdGlvbkNvbmZpZ3M8L0I+KCk8L1BSRT4KPERMPgo8REQ+UmV0dXJuIHRoZSBhY3Rpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLiAgSWYgdGhlcmUgYXJlCiBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kQWN0aW9uQ29uZmlncygpIj5maW5kQWN0aW9uQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZmluZERhdGFTb3VyY2VDb25maWcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KZmluZERhdGFTb3VyY2VDb25maWc8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4gPEI+ZmluZERhdGFTb3VyY2VDb25maWc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+CjxETD4KPEREPlJldHVybiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmREYXRhU291cmNlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRGF0YVNvdXJjZUNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gS2V5IG9mIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9uIHRvIHJldHVybjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImZpbmREYXRhU291cmNlQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CmZpbmREYXRhU291cmNlQ29uZmlnczwvSDM+CjxQUkU+CnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPltdIDxCPmZpbmREYXRhU291cmNlQ29uZmlnczwvQj4oKTwvUFJFPgo8REw+CjxERD5SZXR1cm4gdGhlIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4gIElmIHRoZXJlCiBhcmUgbm9uZSwgYSB6ZXJvLWxlbmd0aCBhcnJheSBpcyByZXR1cm5lZC4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZERhdGFTb3VyY2VDb25maWdzKCkiPmZpbmREYXRhU291cmNlQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZmluZEV4Y2VwdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgpmaW5kRXhjZXB0aW9uQ29uZmlnPC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiA8Qj5maW5kRXhjZXB0aW9uQ29uZmlnPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L1BSRT4KPERMPgo8REQ+UmV0dXJuIHRoZSBleGNlcHRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0eXBlLCBpZiBhbnk7CiBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+Lgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRXhjZXB0aW9uQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnR5cGU8L0NPREU+IC0gRXhjZXB0aW9uIGNsYXNzIG5hbWUgdG8gZmluZCBhIGNvbmZpZ3VyYXRpb24gZm9yPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKSI+PCEtLSAtLT48L0E+PEgzPgpmaW5kRXhjZXB0aW9uQ29uZmlnczwvSDM+CjxQUkU+CnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT5bXSA8Qj5maW5kRXhjZXB0aW9uQ29uZmlnczwvQj4oKTwvUFJFPgo8REw+CjxERD5SZXR1cm4gdGhlIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuICBJZiB0aGVyZQogYXJlIG5vbmUsIGEgemVyby1sZW5ndGggYXJyYXkgaXMgcmV0dXJuZWQuCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRFeGNlcHRpb25Db25maWdzKCkiPmZpbmRFeGNlcHRpb25Db25maWdzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJmaW5kRm9ybUJlYW5Db25maWcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KZmluZEZvcm1CZWFuQ29uZmlnPC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4gPEI+ZmluZEZvcm1CZWFuQ29uZmlnPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KPERMPgo8REQ+UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRGb3JtQmVhbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcm1CZWFuQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gdG8gcmV0dXJuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZmluZEZvcm1CZWFuQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CmZpbmRGb3JtQmVhbkNvbmZpZ3M8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPltdIDxCPmZpbmRGb3JtQmVhbkNvbmZpZ3M8L0I+KCk8L1BSRT4KPERMPgo8REQ+UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLiAgSWYgdGhlcmUKIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRm9ybUJlYW5Db25maWdzKCkiPmZpbmRGb3JtQmVhbkNvbmZpZ3M8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImZpbmRGb3J3YXJkQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CmZpbmRGb3J3YXJkQ29uZmlnPC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+IDxCPmZpbmRGb3J3YXJkQ29uZmlnPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KPERMPgo8REQ+UmV0dXJuIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7CiBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+Lgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmRDb25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gdG8gcmV0dXJuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZmluZEZvcndhcmRDb25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KZmluZEZvcndhcmRDb25maWdzPC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+W10gPEI+ZmluZEZvcndhcmRDb25maWdzPC9CPigpPC9QUkU+CjxETD4KPEREPlJldHVybiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4gIElmIHRoZXJlCiBhcmUgbm9uZSwgYSB6ZXJvLWxlbmd0aCBhcnJheSBpcyByZXR1cm5lZC4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZEZvcndhcmRDb25maWdzKCkiPmZpbmRGb3J3YXJkQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4gPEI+ZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+CjxETD4KPEREPlJldHVybiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksCiBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gS2V5IG9mIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9uIHRvIHJldHVybjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CmZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnczwvSDM+CjxQUkU+CnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPltdIDxCPmZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnczwvQj4oKTwvUFJFPgo8REw+CjxERD5SZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KIElmIHRoZXJlIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3MoKSI+ZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWdzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJmaW5kUGx1Z0luQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CmZpbmRQbHVnSW5Db25maWdzPC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPltdIDxCPmZpbmRQbHVnSW5Db25maWdzPC9CPigpPC9QUkU+CjxETD4KPEREPlJldHVybiB0aGUgY29uZmlndXJlZCBwbHVnLWluIGFjdGlvbnMgZm9yIHRoaXMgbW9kdWxlLiAgSWYgdGhlcmUKIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kUGx1Z0luQ29uZmlncygpIj5maW5kUGx1Z0luQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZnJlZXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KZnJlZXplPC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+ZnJlZXplPC9CPigpPC9QUkU+CjxETD4KPEREPkZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIG1vZHVsZS4gIEFmdGVyIHRoaXMgbWV0aG9kCiByZXR1cm5zLCBhbnkgYXR0ZW1wdCB0byBtb2RpZnkgdGhlIGNvbmZpZ3VyYXRpb24gd2lsbCByZXR1cm4KIGFuIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbi4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZnJlZXplKCkiPmZyZWV6ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icmVtb3ZlQWN0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CnJlbW92ZUFjdGlvbkNvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPnJlbW92ZUFjdGlvbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgo8REw+CjxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBhY3Rpb24gY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlQWN0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcpIj5yZW1vdmVBY3Rpb25Db25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIEFjdGlvbkNvbmZpZyBpbnN0YW5jZSB0byBiZSByZW1vdmVkCjxEVD48Qj5UaHJvd3M6PC9CPgo8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCiAgaGFzIGJlZW4gZnJvemVuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icmVtb3ZlRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CnJlbW92ZUV4Y2VwdGlvbkNvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPnJlbW92ZUV4Y2VwdGlvbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgo8REw+CjxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj5yZW1vdmVFeGNlcHRpb25Db25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIEFjdGlvbkNvbmZpZyBpbnN0YW5jZSB0byBiZSByZW1vdmVkCjxEVD48Qj5UaHJvd3M6PC9CPgo8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCiAgaGFzIGJlZW4gZnJvemVuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icmVtb3ZlRGF0YVNvdXJjZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KcmVtb3ZlRGF0YVNvdXJjZUNvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPnJlbW92ZURhdGFTb3VyY2VDb25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgo8REw+CjxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9uIGluc3RhbmNlLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVEYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+cmVtb3ZlRGF0YVNvdXJjZUNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gRGF0YVNvdXJjZUNvbmZpZyBpbnN0YW5jZSB0byBiZSByZW1vdmVkCjxEVD48Qj5UaHJvd3M6PC9CPgo8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCiAgaGFzIGJlZW4gZnJvemVuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icmVtb3ZlRm9ybUJlYW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgpyZW1vdmVGb3JtQmVhbkNvbmZpZzwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPnJlbW92ZUZvcm1CZWFuQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgo8REw+CjxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlRm9ybUJlYW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+cmVtb3ZlRm9ybUJlYW5Db25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIEZvcm1CZWFuQ29uZmlnIGluc3RhbmNlIHRvIGJlIHJlbW92ZWQKPERUPjxCPlRocm93czo8L0I+CjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KICBoYXMgYmVlbiBmcm96ZW48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJyZW1vdmVGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgpyZW1vdmVGb3J3YXJkQ29uZmlnPC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+cmVtb3ZlRm9yd2FyZENvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+CjxETD4KPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcndhcmQgY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlRm9yd2FyZENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPnJlbW92ZUZvcndhcmRDb25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIEZvcndhcmRDb25maWcgaW5zdGFuY2UgdG8gYmUgcmVtb3ZlZAo8RFQ+PEI+VGhyb3dzOjwvQj4KPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgogIGhhcyBiZWVuIGZyb3plbjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9InJlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CnJlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5yZW1vdmVNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KPERMPgo8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSByZXNvdXJjZXMgY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZykiPnJlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIE1lc3NhZ2VSZXNvdXJjZXNDb25maWcgaW5zdGFuY2UgdG8gYmUgcmVtb3ZlZAo8RFQ+PEI+VGhyb3dzOjwvQj4KPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgogIGhhcyBiZWVuIGZyb3plbjwvREw+CjwvREQ+CjwvREw+CjwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KPEhSPgoKPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgo8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+CjxUUj4KPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgo8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8L1RSPgo8L1RBQkxFPgo8L1REPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KPC9FTT4KPC9URD4KPC9UUj4KCjxUUj4KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CiZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKJm5ic3A7PEEgSFJFRj0iTW9kdWxlQ29uZmlnSW1wbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKJm5ic3A7CjxTQ1JJUFQ+CiAgPCEtLQogIGlmKHdpbmRvdz09dG9wKSB7CiAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKICB9CiAgLy8tLT4KPC9TQ1JJUFQ+CjxOT1NDUklQVD4KPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+CjwvTk9TQ1JJUFQ+CjwvRk9OVD48L1REPgo8L1RSPgo8VFI+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CiAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KCjxIUj4KQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KPC9CT0RZPgo8L0hUTUw+Cg==