PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTI6NTkgRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBJbnRlcmZhY2UgIFRleHQNCjwvVElUTEU+DQo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+DQo8L0hFQUQ+DQo8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+DQoNCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4NCjxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4NCjxUUj4NCjxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4NCjxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPg0KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9UZXh0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8L1RSPg0KPC9UQUJMRT4NCjwvVEQ+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4NCjwvRU0+DQo8L1REPg0KPC9UUj4NCg0KPFRSPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsNCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL1R5cGVJbmZvLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJUZXh0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFI+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPg0KDQo8SFI+DQo8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+DQo8SDI+DQo8Rk9OVCBTSVpFPSItMSI+DQpvcmcudzNjLmRvbTwvRk9OVD4NCjxCUj4NCkludGVyZmFjZSAgVGV4dDwvSDI+DQo8REw+DQo8RFQ+PEI+QWxsIEtub3duIFN1YmludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vQ0RBVEFTZWN0aW9uLmh0bWwiPkNEQVRBU2VjdGlvbjwvQT48L0REPg0KPC9ETD4NCjxETD4NCjxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS94bWwvZHRtL3JlZi9EVE1Ob2RlUHJveHkuaHRtbCI+RFRNTm9kZVByb3h5PC9BPjwvREQ+DQo8L0RMPg0KPEhSPg0KPERMPg0KPERUPnB1YmxpYyBpbnRlcmZhY2UgPEI+VGV4dDwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9DaGFyYWN0ZXJEYXRhLmh0bWwiPkNoYXJhY3RlckRhdGE8L0E+PC9ETD4NCg0KPFA+DQpUaGUgPGNvZGU+VGV4dDwvY29kZT4gaW50ZXJmYWNlIGluaGVyaXRzIGZyb20gPGNvZGU+Q2hhcmFjdGVyRGF0YTwvY29kZT4gCiBhbmQgcmVwcmVzZW50cyB0aGUgdGV4dHVhbCBjb250ZW50ICh0ZXJtZWQgPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMteG1sLTIwMDQwMjA0I3N5bnRheCc+Y2hhcmFjdGVyIGRhdGE8L2E+IGluIFhNTCkgb2YgYW4gPGNvZGU+RWxlbWVudDwvY29kZT4gb3IgPGNvZGU+QXR0cjwvY29kZT4uIElmIHRoZXJlIGlzIG5vIAogbWFya3VwIGluc2lkZSBhbiBlbGVtZW50J3MgY29udGVudCwgdGhlIHRleHQgaXMgY29udGFpbmVkIGluIGEgc2luZ2xlIAogb2JqZWN0IGltcGxlbWVudGluZyB0aGUgPGNvZGU+VGV4dDwvY29kZT4gaW50ZXJmYWNlIHRoYXQgaXMgdGhlIG9ubHkgCiBjaGlsZCBvZiB0aGUgZWxlbWVudC4gSWYgdGhlcmUgaXMgbWFya3VwLCBpdCBpcyBwYXJzZWQgaW50byB0aGUgCiBpbmZvcm1hdGlvbiBpdGVtcyAoZWxlbWVudHMsIGNvbW1lbnRzLCBldGMuKSBhbmQgPGNvZGU+VGV4dDwvY29kZT4gbm9kZXMgCiB0aGF0IGZvcm0gdGhlIGxpc3Qgb2YgY2hpbGRyZW4gb2YgdGhlIGVsZW1lbnQuCiA8cD5XaGVuIGEgZG9jdW1lbnQgaXMgZmlyc3QgbWFkZSBhdmFpbGFibGUgdmlhIHRoZSBET00sIHRoZXJlIGlzIG9ubHkgb25lIAogPGNvZGU+VGV4dDwvY29kZT4gbm9kZSBmb3IgZWFjaCBibG9jayBvZiB0ZXh0LiBVc2VycyBtYXkgY3JlYXRlIGFkamFjZW50IAogPGNvZGU+VGV4dDwvY29kZT4gbm9kZXMgdGhhdCByZXByZXNlbnQgdGhlIGNvbnRlbnRzIG9mIGEgZ2l2ZW4gZWxlbWVudCAKIHdpdGhvdXQgYW55IGludGVydmVuaW5nIG1hcmt1cCwgYnV0IHNob3VsZCBiZSBhd2FyZSB0aGF0IHRoZXJlIGlzIG5vIHdheSAKIHRvIHJlcHJlc2VudCB0aGUgc2VwYXJhdGlvbnMgYmV0d2VlbiB0aGVzZSBub2RlcyBpbiBYTUwgb3IgSFRNTCwgc28gdGhleSAKIHdpbGwgbm90IChpbiBnZW5lcmFsKSBwZXJzaXN0IGJldHdlZW4gRE9NIGVkaXRpbmcgc2Vzc2lvbnMuIFRoZSAKIDxjb2RlPk5vZGUubm9ybWFsaXplKCk8L2NvZGU+IG1ldGhvZCBtZXJnZXMgYW55IHN1Y2ggYWRqYWNlbnQgCiA8Y29kZT5UZXh0PC9jb2RlPiBvYmplY3RzIGludG8gYSBzaW5nbGUgbm9kZSBmb3IgZWFjaCBibG9jayBvZiB0ZXh0LgogPHA+IE5vIGxleGljYWwgY2hlY2sgaXMgZG9uZSBvbiB0aGUgY29udGVudCBvZiBhIDxjb2RlPlRleHQ8L2NvZGU+IG5vZGUgCiBhbmQsIGRlcGVuZGluZyBvbiBpdHMgcG9zaXRpb24gaW4gdGhlIGRvY3VtZW50LCBzb21lIGNoYXJhY3RlcnMgbXVzdCBiZSAKIGVzY2FwZWQgZHVyaW5nIHNlcmlhbGl6YXRpb24gdXNpbmcgY2hhcmFjdGVyIHJlZmVyZW5jZXM7IGUuZy4gdGhlIAogY2hhcmFjdGVycyAiJmx0OyZhbXA7IiBpZiB0aGUgdGV4dHVhbCBjb250ZW50IGlzIHBhcnQgb2YgYW4gZWxlbWVudCBvciBvZiAKIGFuIGF0dHJpYnV0ZSwgdGhlIGNoYXJhY3RlciBzZXF1ZW5jZSAiXV0mZ3Q7IiB3aGVuIHBhcnQgb2YgYW4gZWxlbWVudCwgCiB0aGUgcXVvdGF0aW9uIG1hcmsgY2hhcmFjdGVyICIgb3IgdGhlIGFwb3N0cm9waGUgY2hhcmFjdGVyICcgd2hlbiBwYXJ0IG9mIAogYW4gYXR0cmlidXRlLiAKIDxwPlNlZSBhbHNvIHRoZSA8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3Jz5Eb2N1bWVudCBPYmplY3QgTW9kZWwgKERPTSkgTGV2ZWwgMyBDb3JlIFNwZWNpZmljYXRpb248L2E+Lg0KPFA+DQo8SFI+DQoNCjxQPg0KPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy53M2MuZG9tLk5vZGUiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPg0KPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcudzNjLmRvbS48QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwiPk5vZGU8L0E+PC9CPjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI0FUVFJJQlVURV9OT0RFIj5BVFRSSUJVVEVfTk9ERTwvQT4sICANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNDREFUQV9TRUNUSU9OX05PREUiPkNEQVRBX1NFQ1RJT05fTk9ERTwvQT4sICANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNDT01NRU5UX05PREUiPkNPTU1FTlRfTk9ERTwvQT4sICANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNET0NVTUVOVF9GUkFHTUVOVF9OT0RFIj5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFPC9BPiwgIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI0RPQ1VNRU5UX05PREUiPkRPQ1VNRU5UX05PREU8L0E+LCAgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIj5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlk8L0E+LCAgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlMiPkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TPC9BPiwgIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI0RPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCI+RE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEPC9BPiwgIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI0RPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyI+RE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HPC9BPiwgIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI0RPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDIj5ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQzwvQT4sICANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkciPkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORzwvQT4sICANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNET0NVTUVOVF9UWVBFX05PREUiPkRPQ1VNRU5UX1RZUEVfTk9ERTwvQT4sICANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNFTEVNRU5UX05PREUiPkVMRU1FTlRfTk9ERTwvQT4sICANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNFTlRJVFlfTk9ERSI+RU5USVRZX05PREU8L0E+LCAgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjRU5USVRZX1JFRkVSRU5DRV9OT0RFIj5FTlRJVFlfUkVGRVJFTkNFX05PREU8L0E+LCAgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjTk9UQVRJT05fTk9ERSI+Tk9UQVRJT05fTk9ERTwvQT4sICANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREUiPlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERTwvQT4sICANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNURVhUX05PREUiPlRFWFRfTk9ERTwvQT48L0NPREU+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7DQo8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPg0KDQo8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4NCjxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9UZXh0Lmh0bWwjZ2V0V2hvbGVUZXh0KCkiPmdldFdob2xlVGV4dDwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYWxsIHRleHQgb2YgPGNvZGU+VGV4dDwvY29kZT4gbm9kZXMgbG9naWNhbGx5LWFkamFjZW50IHRleHQgCiBub2RlcyB0byB0aGlzIG5vZGUsIGNvbmNhdGVuYXRlZCBpbiBkb2N1bWVudCBvcmRlci48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9UZXh0Lmh0bWwjaXNFbGVtZW50Q29udGVudFdoaXRlc3BhY2UoKSI+aXNFbGVtZW50Q29udGVudFdoaXRlc3BhY2U8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHdoZXRoZXIgdGhpcyB0ZXh0IG5vZGUgY29udGFpbnMgPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMteG1sLWluZm9zZXQtMjAwNDAyMDQjaW5mb2l0ZW0uY2hhcmFjdGVyJz4KIGVsZW1lbnQgY29udGVudCB3aGl0ZXNwYWNlPC9hPiwgb2Z0ZW4gYWJ1c2l2ZWx5IGNhbGxlZCAiaWdub3JhYmxlIHdoaXRlc3BhY2UiLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9UZXh0Lmh0bWwiPlRleHQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL1RleHQuaHRtbCNyZXBsYWNlV2hvbGVUZXh0KGphdmEubGFuZy5TdHJpbmcpIj5yZXBsYWNlV2hvbGVUZXh0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnQpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXBsYWNlcyB0aGUgdGV4dCBvZiB0aGUgY3VycmVudCBub2RlIGFuZCBhbGwgbG9naWNhbGx5LWFkamFjZW50IHRleHQgCiBub2RlcyB3aXRoIHRoZSBzcGVjaWZpZWQgdGV4dC48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vVGV4dC5odG1sIj5UZXh0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9UZXh0Lmh0bWwjc3BsaXRUZXh0KGludCkiPnNwbGl0VGV4dDwvQT48L0I+KGludCZuYnNwO29mZnNldCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0JyZWFrcyB0aGlzIG5vZGUgaW50byB0d28gbm9kZXMgYXQgdGhlIHNwZWNpZmllZCA8Y29kZT5vZmZzZXQ8L2NvZGU+LCAKIGtlZXBpbmcgYm90aCBpbiB0aGUgdHJlZSBhcyBzaWJsaW5ncy48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQombmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy53M2MuZG9tLkNoYXJhY3RlckRhdGEiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPg0KPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy53M2MuZG9tLjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL0NoYXJhY3RlckRhdGEuaHRtbCI+Q2hhcmFjdGVyRGF0YTwvQT48L0I+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9DaGFyYWN0ZXJEYXRhLmh0bWwjYXBwZW5kRGF0YShqYXZhLmxhbmcuU3RyaW5nKSI+YXBwZW5kRGF0YTwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vQ2hhcmFjdGVyRGF0YS5odG1sI2RlbGV0ZURhdGEoaW50LCBpbnQpIj5kZWxldGVEYXRhPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9DaGFyYWN0ZXJEYXRhLmh0bWwjZ2V0RGF0YSgpIj5nZXREYXRhPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9DaGFyYWN0ZXJEYXRhLmh0bWwjZ2V0TGVuZ3RoKCkiPmdldExlbmd0aDwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vQ2hhcmFjdGVyRGF0YS5odG1sI2luc2VydERhdGEoaW50LCBqYXZhLmxhbmcuU3RyaW5nKSI+aW5zZXJ0RGF0YTwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vQ2hhcmFjdGVyRGF0YS5odG1sI3JlcGxhY2VEYXRhKGludCwgaW50LCBqYXZhLmxhbmcuU3RyaW5nKSI+cmVwbGFjZURhdGE8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL0NoYXJhY3RlckRhdGEuaHRtbCNzZXREYXRhKGphdmEubGFuZy5TdHJpbmcpIj5zZXREYXRhPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9DaGFyYWN0ZXJEYXRhLmh0bWwjc3Vic3RyaW5nRGF0YShpbnQsIGludCkiPnN1YnN0cmluZ0RhdGE8L0E+PC9DT0RFPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCiZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLnczYy5kb20uTm9kZSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+DQo8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLnczYy5kb20uPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sIj5Ob2RlPC9BPjwvQj48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNhcHBlbmRDaGlsZChvcmcudzNjLmRvbS5Ob2RlKSI+YXBwZW5kQ2hpbGQ8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNjbG9uZU5vZGUoYm9vbGVhbikiPmNsb25lTm9kZTwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2NvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG9yZy53M2MuZG9tLk5vZGUpIj5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2dldEF0dHJpYnV0ZXMoKSI+Z2V0QXR0cmlidXRlczwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2dldEJhc2VVUkkoKSI+Z2V0QmFzZVVSSTwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2dldENoaWxkTm9kZXMoKSI+Z2V0Q2hpbGROb2RlczwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2dldEZlYXR1cmUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmdldEZlYXR1cmU8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNnZXRGaXJzdENoaWxkKCkiPmdldEZpcnN0Q2hpbGQ8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNnZXRMYXN0Q2hpbGQoKSI+Z2V0TGFzdENoaWxkPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjZ2V0TG9jYWxOYW1lKCkiPmdldExvY2FsTmFtZTwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2dldE5hbWVzcGFjZVVSSSgpIj5nZXROYW1lc3BhY2VVUkk8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNnZXROZXh0U2libGluZygpIj5nZXROZXh0U2libGluZzwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2dldE5vZGVOYW1lKCkiPmdldE5vZGVOYW1lPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjZ2V0Tm9kZVR5cGUoKSI+Z2V0Tm9kZVR5cGU8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNnZXROb2RlVmFsdWUoKSI+Z2V0Tm9kZVZhbHVlPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjZ2V0T3duZXJEb2N1bWVudCgpIj5nZXRPd25lckRvY3VtZW50PC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjZ2V0UGFyZW50Tm9kZSgpIj5nZXRQYXJlbnROb2RlPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjZ2V0UHJlZml4KCkiPmdldFByZWZpeDwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2dldFByZXZpb3VzU2libGluZygpIj5nZXRQcmV2aW91c1NpYmxpbmc8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNnZXRUZXh0Q29udGVudCgpIj5nZXRUZXh0Q29udGVudDwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2dldFVzZXJEYXRhKGphdmEubGFuZy5TdHJpbmcpIj5nZXRVc2VyRGF0YTwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2hhc0F0dHJpYnV0ZXMoKSI+aGFzQXR0cmlidXRlczwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2hhc0NoaWxkTm9kZXMoKSI+aGFzQ2hpbGROb2RlczwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI2luc2VydEJlZm9yZShvcmcudzNjLmRvbS5Ob2RlLCBvcmcudzNjLmRvbS5Ob2RlKSI+aW5zZXJ0QmVmb3JlPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjaXNEZWZhdWx0TmFtZXNwYWNlKGphdmEubGFuZy5TdHJpbmcpIj5pc0RlZmF1bHROYW1lc3BhY2U8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNpc0VxdWFsTm9kZShvcmcudzNjLmRvbS5Ob2RlKSI+aXNFcXVhbE5vZGU8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNpc1NhbWVOb2RlKG9yZy53M2MuZG9tLk5vZGUpIj5pc1NhbWVOb2RlPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjaXNTdXBwb3J0ZWQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmlzU3VwcG9ydGVkPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjbG9va3VwTmFtZXNwYWNlVVJJKGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBOYW1lc3BhY2VVUkk8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNsb29rdXBQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPmxvb2t1cFByZWZpeDwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI25vcm1hbGl6ZSgpIj5ub3JtYWxpemU8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNyZW1vdmVDaGlsZChvcmcudzNjLmRvbS5Ob2RlKSI+cmVtb3ZlQ2hpbGQ8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNyZXBsYWNlQ2hpbGQob3JnLnczYy5kb20uTm9kZSwgb3JnLnczYy5kb20uTm9kZSkiPnJlcGxhY2VDaGlsZDwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sI3NldE5vZGVWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Tm9kZVZhbHVlPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwjc2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcmVmaXg8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNzZXRUZXh0Q29udGVudChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGV4dENvbnRlbnQ8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL05vZGUuaHRtbCNzZXRVc2VyRGF0YShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBvcmcudzNjLmRvbS5Vc2VyRGF0YUhhbmRsZXIpIj5zZXRVc2VyRGF0YTwvQT48L0NPREU+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7DQo8UD4NCg0KPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+DQoNCjxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQoNCjxBIE5BTUU9InNwbGl0VGV4dChpbnQpIj48IS0tIC0tPjwvQT48SDM+DQpzcGxpdFRleHQ8L0gzPg0KPFBSRT4NCnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9UZXh0Lmh0bWwiPlRleHQ8L0E+IDxCPnNwbGl0VGV4dDwvQj4oaW50Jm5ic3A7b2Zmc2V0KQogICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vRE9NRXhjZXB0aW9uLmh0bWwiPkRPTUV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD5CcmVha3MgdGhpcyBub2RlIGludG8gdHdvIG5vZGVzIGF0IHRoZSBzcGVjaWZpZWQgPGNvZGU+b2Zmc2V0PC9jb2RlPiwgCiBrZWVwaW5nIGJvdGggaW4gdGhlIHRyZWUgYXMgc2libGluZ3MuIEFmdGVyIGJlaW5nIHNwbGl0LCB0aGlzIG5vZGUgCiB3aWxsIGNvbnRhaW4gYWxsIHRoZSBjb250ZW50IHVwIHRvIHRoZSA8Y29kZT5vZmZzZXQ8L2NvZGU+IHBvaW50LiBBIAogbmV3IG5vZGUgb2YgdGhlIHNhbWUgdHlwZSwgd2hpY2ggY29udGFpbnMgYWxsIHRoZSBjb250ZW50IGF0IGFuZCAKIGFmdGVyIHRoZSA8Y29kZT5vZmZzZXQ8L2NvZGU+IHBvaW50LCBpcyByZXR1cm5lZC4gSWYgdGhlIG9yaWdpbmFsIAogbm9kZSBoYWQgYSBwYXJlbnQgbm9kZSwgdGhlIG5ldyBub2RlIGlzIGluc2VydGVkIGFzIHRoZSBuZXh0IHNpYmxpbmcgCiBvZiB0aGUgb3JpZ2luYWwgbm9kZS4gV2hlbiB0aGUgPGNvZGU+b2Zmc2V0PC9jb2RlPiBpcyBlcXVhbCB0byB0aGUgCiBsZW5ndGggb2YgdGhpcyBub2RlLCB0aGUgbmV3IG5vZGUgaGFzIG5vIGRhdGEuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+b2Zmc2V0PC9DT0RFPiAtIFRoZSAxNi1iaXQgdW5pdCBvZmZzZXQgYXQgd2hpY2ggdG8gc3BsaXQsIHN0YXJ0aW5nIGZyb20gCiAgIDxjb2RlPjA8L2NvZGU+LjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIG5ldyBub2RlLCBvZiB0aGUgc2FtZSB0eXBlIGFzIHRoaXMgbm9kZS48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vRE9NRXhjZXB0aW9uLmh0bWwiPkRPTUV4Y2VwdGlvbjwvQT4gLSBJTkRFWF9TSVpFX0VSUjogUmFpc2VkIGlmIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgCiAgIHRoYW4gdGhlIG51bWJlciBvZiAxNi1iaXQgdW5pdHMgaW4gPGNvZGU+ZGF0YTwvY29kZT4uCiAgIDxicj5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNlZCBpZiB0aGlzIG5vZGUgaXMgcmVhZG9ubHkuPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJpc0VsZW1lbnRDb250ZW50V2hpdGVzcGFjZSgpIj48IS0tIC0tPjwvQT48SDM+DQppc0VsZW1lbnRDb250ZW50V2hpdGVzcGFjZTwvSDM+DQo8UFJFPg0KcHVibGljIGJvb2xlYW4gPEI+aXNFbGVtZW50Q29udGVudFdoaXRlc3BhY2U8L0I+KCk8L1BSRT4NCjxETD4NCjxERD5SZXR1cm5zIHdoZXRoZXIgdGhpcyB0ZXh0IG5vZGUgY29udGFpbnMgPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMteG1sLWluZm9zZXQtMjAwNDAyMDQjaW5mb2l0ZW0uY2hhcmFjdGVyJz4KIGVsZW1lbnQgY29udGVudCB3aGl0ZXNwYWNlPC9hPiwgb2Z0ZW4gYWJ1c2l2ZWx5IGNhbGxlZCAiaWdub3JhYmxlIHdoaXRlc3BhY2UiLiBUaGUgdGV4dCBub2RlIGlzIAogZGV0ZXJtaW5lZCB0byBjb250YWluIHdoaXRlc3BhY2UgaW4gZWxlbWVudCBjb250ZW50IGR1cmluZyB0aGUgbG9hZCAKIG9mIHRoZSBkb2N1bWVudCBvciBpZiB2YWxpZGF0aW9uIG9jY3VycyB3aGlsZSB1c2luZyAKIDxjb2RlPkRvY3VtZW50Lm5vcm1hbGl6ZURvY3VtZW50KCk8L2NvZGU+LjxERD48REw+DQo8RFQ+PEI+U2luY2U6IDwvQj48REQ+RE9NIExldmVsIDM8L0REPg0KPC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRXaG9sZVRleHQoKSI+PCEtLSAtLT48L0E+PEgzPg0KZ2V0V2hvbGVUZXh0PC9IMz4NCjxQUkU+DQpwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRXaG9sZVRleHQ8L0I+KCk8L1BSRT4NCjxETD4NCjxERD5SZXR1cm5zIGFsbCB0ZXh0IG9mIDxjb2RlPlRleHQ8L2NvZGU+IG5vZGVzIGxvZ2ljYWxseS1hZGphY2VudCB0ZXh0IAogbm9kZXMgdG8gdGhpcyBub2RlLCBjb25jYXRlbmF0ZWQgaW4gZG9jdW1lbnQgb3JkZXIuCiA8YnI+Rm9yIGluc3RhbmNlLCBpbiB0aGUgZXhhbXBsZSBiZWxvdyA8Y29kZT53aG9sZVRleHQ8L2NvZGU+IG9uIHRoZSAKIDxjb2RlPlRleHQ8L2NvZGU+IG5vZGUgdGhhdCBjb250YWlucyAiYmFyIiByZXR1cm5zICJiYXJmb28iLCB3aGlsZSBvbiAKIHRoZSA8Y29kZT5UZXh0PC9jb2RlPiBub2RlIHRoYXQgY29udGFpbnMgImZvbyIgaXQgcmV0dXJucyAiYmFyZm9vIi48REQ+PERMPg0KPERUPjxCPlNpbmNlOiA8L0I+PEREPkRPTSBMZXZlbCAzPC9ERD4NCjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0icmVwbGFjZVdob2xlVGV4dChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPg0KcmVwbGFjZVdob2xlVGV4dDwvSDM+DQo8UFJFPg0KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL1RleHQuaHRtbCI+VGV4dDwvQT4gPEI+cmVwbGFjZVdob2xlVGV4dDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnQpCiAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3czYy9kb20vRE9NRXhjZXB0aW9uLmh0bWwiPkRPTUV4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD5SZXBsYWNlcyB0aGUgdGV4dCBvZiB0aGUgY3VycmVudCBub2RlIGFuZCBhbGwgbG9naWNhbGx5LWFkamFjZW50IHRleHQgCiBub2RlcyB3aXRoIHRoZSBzcGVjaWZpZWQgdGV4dC4gQWxsIGxvZ2ljYWxseS1hZGphY2VudCB0ZXh0IG5vZGVzIGFyZSAKIHJlbW92ZWQgaW5jbHVkaW5nIHRoZSBjdXJyZW50IG5vZGUgdW5sZXNzIGl0IHdhcyB0aGUgcmVjaXBpZW50IG9mIHRoZSAKIHJlcGxhY2VtZW50IHRleHQuCiA8YnI+VGhpcyBtZXRob2QgcmV0dXJucyB0aGUgbm9kZSB3aGljaCByZWNlaXZlZCB0aGUgcmVwbGFjZW1lbnQgdGV4dC4gCiBUaGUgcmV0dXJuZWQgbm9kZSBpczogCiA8dWw+CiA8bGk+PGNvZGU+bnVsbDwvY29kZT4sIHdoZW4gdGhlIHJlcGxhY2VtZW50IHRleHQgaXMgCiB0aGUgZW1wdHkgc3RyaW5nOwogPC9saT4KIDxsaT50aGUgY3VycmVudCBub2RlLCBleGNlcHQgd2hlbiB0aGUgY3VycmVudCBub2RlIGlzIAogcmVhZC1vbmx5OwogPC9saT4KIDxsaT4gYSBuZXcgPGNvZGU+VGV4dDwvY29kZT4gbm9kZSBvZiB0aGUgc2FtZSB0eXBlICgKIDxjb2RlPlRleHQ8L2NvZGU+IG9yIDxjb2RlPkNEQVRBU2VjdGlvbjwvY29kZT4pIGFzIHRoZSBjdXJyZW50IG5vZGUgCiBpbnNlcnRlZCBhdCB0aGUgbG9jYXRpb24gb2YgdGhlIHJlcGxhY2VtZW50LgogPC9saT4KIDwvdWw+CiA8YnI+Rm9yIGluc3RhbmNlLCBpbiB0aGUgYWJvdmUgZXhhbXBsZSBjYWxsaW5nIAogPGNvZGU+cmVwbGFjZVdob2xlVGV4dDwvY29kZT4gb24gdGhlIDxjb2RlPlRleHQ8L2NvZGU+IG5vZGUgdGhhdCAKIGNvbnRhaW5zICJiYXIiIHdpdGggInlvIiBpbiBhcmd1bWVudCByZXN1bHRzIGluIHRoZSBmb2xsb3dpbmc6IAogPGJyPldoZXJlIHRoZSBub2RlcyB0byBiZSByZW1vdmVkIGFyZSByZWFkLW9ubHkgZGVzY2VuZGFudHMgb2YgYW4gCiA8Y29kZT5FbnRpdHlSZWZlcmVuY2U8L2NvZGU+LCB0aGUgPGNvZGU+RW50aXR5UmVmZXJlbmNlPC9jb2RlPiBtdXN0IAogYmUgcmVtb3ZlZCBpbnN0ZWFkIG9mIHRoZSByZWFkLW9ubHkgbm9kZXMuIElmIGFueSAKIDxjb2RlPkVudGl0eVJlZmVyZW5jZTwvY29kZT4gdG8gYmUgcmVtb3ZlZCBoYXMgZGVzY2VuZGFudHMgdGhhdCBhcmUgCiBub3QgPGNvZGU+RW50aXR5UmVmZXJlbmNlPC9jb2RlPiwgPGNvZGU+VGV4dDwvY29kZT4sIG9yIAogPGNvZGU+Q0RBVEFTZWN0aW9uPC9jb2RlPiBub2RlcywgdGhlIDxjb2RlPnJlcGxhY2VXaG9sZVRleHQ8L2NvZGU+IAogbWV0aG9kIG11c3QgZmFpbCBiZWZvcmUgcGVyZm9ybWluZyBhbnkgbW9kaWZpY2F0aW9uIG9mIHRoZSBkb2N1bWVudCwgCiByYWlzaW5nIGEgPGNvZGU+RE9NRXhjZXB0aW9uPC9jb2RlPiB3aXRoIHRoZSBjb2RlIAogPGNvZGU+Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSPC9jb2RlPi4KIDxicj5Gb3IgaW5zdGFuY2UsIGluIHRoZSBleGFtcGxlIGJlbG93IGNhbGxpbmcgCiA8Y29kZT5yZXBsYWNlV2hvbGVUZXh0PC9jb2RlPiBvbiB0aGUgPGNvZGU+VGV4dDwvY29kZT4gbm9kZSB0aGF0IAogY29udGFpbnMgImJhciIgZmFpbHMsIGJlY2F1c2UgdGhlIDxjb2RlPkVudGl0eVJlZmVyZW5jZTwvY29kZT4gbm9kZSAKICJlbnQiIGNvbnRhaW5zIGFuIDxjb2RlPkVsZW1lbnQ8L2NvZGU+IG5vZGUgd2hpY2ggY2Fubm90IGJlIHJlbW92ZWQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29udGVudDwvQ09ERT4gLSBUaGUgY29udGVudCBvZiB0aGUgcmVwbGFjaW5nIDxjb2RlPlRleHQ8L2NvZGU+IG5vZGUuPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgPGNvZGU+VGV4dDwvY29kZT4gbm9kZSBjcmVhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjb250ZW50LjxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9vcmcvdzNjL2RvbS9ET01FeGNlcHRpb24uaHRtbCI+RE9NRXhjZXB0aW9uPC9BPiAtIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjogUmFpc2VkIGlmIG9uZSBvZiB0aGUgPGNvZGU+VGV4dDwvY29kZT4gCiAgIG5vZGVzIGJlaW5nIHJlcGxhY2VkIGlzIHJlYWRvbmx5LjxEVD48Qj5TaW5jZTogPC9CPjxERD5ET00gTGV2ZWwgMzwvREQ+DQo8L0RMPg0KPC9ERD4NCjwvREw+DQo8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+DQo8SFI+DQoNCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4NCjxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4NCjxUUj4NCjxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4NCjxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPg0KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9UZXh0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8L1RSPg0KPC9UQUJMRT4NCjwvVEQ+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4NCjwvRU0+DQo8L1REPg0KPC9UUj4NCg0KPFRSPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsNCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL29yZy93M2MvZG9tL1R5cGVJbmZvLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJUZXh0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFI+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPg0KDQo8SFI+DQpDb3B5cmlnaHQgqSAyMDA2IEFwYWNoZSBYTUwgUHJvamVjdC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCjwvQk9EWT4NCjwvSFRNTD4NCg==