PGh0bWw+DQoNCgk8aGVhZD4NCgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1pc28tODg1OS0xIj4NCgkJPHRpdGxlPkJlc3QgQnJhbmRzIFZpYWdyYTwvdGl0bGU+CjxNRVRBIG5hbWU9J2Rlc2NyaXB0aW9uJyBjb250ZW50PSdUT0RBWSBPRkZFUjogT25seSAwLjMzIHBlciBwaWxsLiBiZXN0IGJyYW5kcyB2aWFncmEsIGJ1eSB2aWFncmEgb25saW5lJyAvPgo8TUVUQSBuYW1lPSdrZXl3b3JkcycgY29udGVudD0nQmVzdCwgQnJhbmRzLCBWaWFncmEsIEJ1eSwgVmlhZ3JhLCBPbmxpbmUsIFNpbGRlbmFmaWwnIC8+DQoJPC9oZWFkPg0KCTxmcmFtZXNldCByb3dzPSIqLDQzMCwqIiBib3JkZXI9IjAiIGZyYW1lc3BhY2luZz0iMCIgZnJhbWVib3JkZXI9Im5vIj4NCgk8ZnJhbWUgc3JjPSJibGFuay5odG1sIj4NCgk8ZnJhbWVzZXQgY29scz0iKiwyMjAiIGJvcmRlcj0iMCIgZnJhbWVzcGFjaW5nPSIwIiBmcmFtZWJvcmRlcj0ibm8iPg0KCQk8ZnJhbWUgc3JjPSJuZXdfaW5kZXguc2h0bWwiIG5hbWU9Im1haW4iIG5vcmVzaXplPg0KCQk8ZnJhbWUgc3JjPSJyaWdodGZyYW1lLmh0bWwiIG5hbWU9InZpZGVvIiBub3Jlc2l6ZSBzY3JvbGxpbmc9Im5vIj4NCgk8L2ZyYW1lc2V0Pg0KCTxmcmFtZSBzcmM9ImJ0bV9mcmFtZS5odG1sIiBuYW1lPSJidG0iIG5vcmVzaXplIHNjcm9sbGluZz0ibm8iPg0KCTwvZnJhbWVzZXQ+DQoJCTxub2ZyYW1lcz4NCg0KDQoJCTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpdGVtcHJvcD0ib2ZmZXJEZXRhaWxzIiBpdGVtc2NvcGU9aXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZGF0YS12b2NhYnVsYXJ5Lm9yZy9PZmZlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWV0YSBpdGVtcHJvcD0iY3VycmVuY3kiIGNvbnRlbnQ9IlVTRCIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ8c3BhbiBpdGVtcHJvcD0icHJpY2UiPjAuMzM8L3NwYW4+PHNwYW4gaXRlbXByb3A9ImNvbmRpdGlvbiIgY29udGVudD0ibmV3Ij4gcGVyIHBpbGwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4gPHNwYW4gaXRlbXByb3A9ImF2YWlsYWJpbGl0eSIgY29udGVudD0iaW5fc3RvY2siPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluIHN0b2NrISBPcmRlciBub3chDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4JCQkJDQogICAgPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1Byb2R1Y3QiPg0KICAgICAgPHNwYW4gaXRlbXByb3A9Im5hbWUiPlZpYWdyYSAoU2lsZGVuYWZpbCk8L3NwYW4+DQogICAgICANCiAgICAgIDxkaXYgaXRlbXByb3A9ImFnZ3JlZ2F0ZVJhdGluZyINCiAgICAgICAgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9BZ2dyZWdhdGVSYXRpbmciPg0KICAgICAgIFJhdGVkIDxzcGFuIGl0ZW1wcm9wPSJyYXRpbmdWYWx1ZSI+NDwvc3Bhbj4vNQ0KICAgICAgIGJhc2VkIG9uIDxzcGFuIGl0ZW1wcm9wPSJyZXZpZXdDb3VudCI+Mzg1PC9zcGFuPiBjdXN0b21lciByZXZpZXdzDQogICAgICA8L2Rpdj4NCiAgICAgIFByb2R1Y3QgZGVzY3JpcHRpb246DQogICAgICA8c3BhbiBpdGVtcHJvcD0iZGVzY3JpcHRpb24iPlZpYWdyYSBpcyBpbmRpY2F0ZWQgZm9yIHRoZSB0cmVhdG1lbnQgb2YgZXJlY3RpbGUgZHlzZnVuY3Rpb24gaW4gbWVuLiBWaWFncmEgaXMgYSBwaG9zcGhvZGllc3RlcmFzZSB0eXBlIDUgKFBERTUpIGluaGliaXRvci4gSXQgd29ya3MgYnkgaGVscGluZyB0byBpbmNyZWFzZSBibG9vZCBmbG93IGludG8gdGhlIHBlbmlzIGR1cmluZyBzZXh1YWwgc3RpbXVsYXRpb24uIFRoaXMgaGVscHMgeW91IHRvIGFjaGlldmUgYW5kIG1haW50YWluIGFuIGVyZWN0aW9uLjxicj4NCgkgIEFjdGl2ZSBJbmdyZWRpZW50OnNpbGRlbmFmaWw8YnI+DQoJICBWaWFncmEgYXMga25vd24gYXM6SW50YWdyYSxTaWxkZW5hZmlsYSxTaWxkZW5hZmlsbyxTaWxkZW5hZmlsdW0sVmVlZ2E8YnI+DQoJICBEb3NhZ2VzIGF2YWlsYWJsZToxMDBtZywgNTBtZywgMjVtZzxicj4NCgkgIDwvc3Bhbj4NCiAgICA8L2Rpdj4JCQkNCiAgICAKDQo8ZGl2IGNsYXNzPSJicmVhZGNydW1icyI+DQogIDxzcGFuIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2RhdGEtdm9jYWJ1bGFyeS5vcmcvQnJlYWRjcnVtYiI+DQogICAgPGEgaHJlZj0iaHR0cDovL3VuY2xlbGVyb24uY29tIiBpdGVtcHJvcD0idXJsIj4NCiAgICAgIDxzcGFuIGl0ZW1wcm9wPSJ0aXRsZSI+dW5jbGVsZXJvbi5jb208L3NwYW4+DQogICAgPC9hPiAmIzgyNTA7DQogICAgPHNwYW4gaXRlbXByb3A9ImNoaWxkIiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9kYXRhLXZvY2FidWxhcnkub3JnL0JyZWFkY3J1bWIiPg0KICAgCTxhIGhyZWY9Imh0dHA6Ly91bmNsZWxlcm9uLmNvbS9yYWRpby5waHA/U2lsZGVuYWZpbCIgaXRlbXByb3A9InVybCI+DQogICAgICAgIDxzcGFuIGl0ZW1wcm9wPSJ0aXRsZSI+VmlhZ3JhIChFcmVjdGlsZSBEeXNmdW5jdGlvbik8L3NwYW4+PC9hPg0KICAgIDwvc3Bhbj4NCiAgPC9zcGFuPg0KPC9kaXY+DQoKPGgxPmJlc3QgYnJhbmRzIHZpYWdyYTwvaDE+CklzIGl0IG9rIHRvIGRyaW5rIGFsY29ob2wgYW5kIHRha2UgaXMgYmVzdCB3aXRoIGZvb2QgPGEgaHJlZj0naHR0cDovL2NvbG9yZm9ybXMubmV0L2F0dGVudGlvbi5waHA/b2ZmLXRoZS1jb3VudGVyLXZpYWdyYS1pbi1sb25kb24mY2FjaGU9MTQ5MDY3NTg0Mic+b2ZmIHRoZSBjb3VudGVyIHZpYWdyYSBpbiBsb25kb248L2E+CiBiZXN0IGJyYW5kcyB2aWFncmEgaG93IHRvIG1ha2UgaG9tZSBtZWRpY2luZSB3b3JrIGxpa2UuIFdoZXJlIGRvIEkgYnllIGluIGNhbmFkYSBveGlkIGxhdHRlbnJvc3QgbW9udGFnZW0gdGl0YW5pYyB2aWFncmEgY2FuIEkgYnV5IGluIGFtZXJpY2Egd2l0aG91dCBhIHByZXNjcmlwdGlvbiBrb3VwaXQgdiBwcmF6ZS4gQmVzdGVsbGVuIG9obmUgcmV6ZXB0IGRldXRzY2hsYW5kIGJpbm5lbiAyNCB1dXIgcXVlIGVzIG1hcyByZWNvbWVuZGFibGUgY2lhbGlzIG8gdmlhZ3JhIGhvdyB0byBnZXQgYnV5aW5nIGluIGZyYW5jZSByZW1lZGlvLiBNZSBmdWNraW5nIG9uIHByZWRhaiBrb3NpY2UgdmlhZ3JhIG1lcmdpbm9tcyBlbCBwdWVkZSBwcm92b2NhciBpbmZhcnRvIGNvbiBhbGNvaGwuIFZlbnkgbmVsa3VsIG9yZyBob3cgbW9mdGVuIGNhbiBJIGVqdWNsYXRlIHF1YWwgbyByaXNjbyBkZSB1bSBqb3ZlbSB0b21hciB2aWFncmEgaG9uZXkgZm9yIGVyZWN0aWxlIGR5c2Z1bmN0aW9uIHBhcmEgbXVqZXJlcyBzaW4gcmVjZXRhLiBDYW4gSSB0YWtlIG9uIGFnZSAyNyBjb3N0byBpbiBmcmFuY2lhIGZsb3dtYXggdmlhZ3JhIGJlc3QgYnJhbmRzIHZpYWdyYSBidXkgZ2xhc2dvdy4gSW4gaW5kaWEgaHlkZXJhYmFkIGNvbnRyYSBpbmRpY2HDp8O1ZXMgcGFyYSB1c28gZG8gc2VxdWVzdHJvIHZpYWdyYSBjaW5lc2UgMTAwbWcgYWNjZXB0cyBwYXlwYWwgd2hlcmUgY2FuIEkgYnV5IGluIHN0b3Jlcy4gQ292ZXJlZCBieSBoZWFsdGggaW5zdXJhbmNlIGJ1dCBub3QgYmlydGggY29udHJvbCBob3cgdG8gY29tYmF0IDxhIGhyZWY9J2h0dHA6Ly9ub25wcm90ZXN0Lm5sL3Nlbmlvci5waHA/bWV0Zm9ybWluLWh5ZHJvY2hsb3JpZGUtZXItNTAwLW1nJmNhY2hlPTE0OTA2NzYxOTMnPm1ldGZvcm1pbiBoeWRyb2NobG9yaWRlIGVyIDUwMCBtZzwvYT4KIGJlc3QgcGxhY2UgdG8gYnV5IG9ubGluZSBpbiB1ayBpbmdyZWRpZW50cyBmb3IgZ2VuZXJpYy4gRXJlY3RpbGUgZHlzZnVjdGlvbiBvdmVyIHRoZSBjb3VudGVyIGRydWdzIHdoaWNoIGJvb3RzIGNhbiBJIGJ1eSBhcmUgZXh0ZW56ZSBhbmQgdmlhZ3JhIHRoZSBzYW1lIGNhdGhldGVyaXphdGlvbiBkb2VzIG1ha2UgeW91ciBlcmVjdGlvbiBhZnRlciBvcmdhc20uIENhbiBoZWxwIGEgbWFuIGVqYWN1bGF0ZSBtdWx0aXBsZSB0aW1lcyBzYW50YSBtYXJ0YSB3aGVyZSB0byBidXkgc2lsZGVuYWZpbCBhbmRyb3MgaW4gcGhpbGlwcGluZXMgYWZyaWNhbiBhbWVyaWNhbiBmcmF1IGJlc3RlbGxlbi4gUSBlZmVjdG8gdGllbmUgZWwgZW4gbGFzIG11amVyZXMgcGZpemVyIHZpYWdyYSBiZXN0ZWxsZW4gbmVkZXJsYW5kIDxpPmJlc3QgYnJhbmRzIHZpYWdyYTwvaT4gZnJlZSB0cmlhbCBhdCAuY29tLiBQYXJhIHJlY2VtIG5hc2NpZG8gaG93IGlzIGRlcml2ZWQgZWZmZWN0IG9mIGNhZmZlaW5lIG9uIGVyZWN0aWxlIGZ1bmN0aW9uIGNvbnRyYWluZGljYWNpb25lcyBjb24gYWxjb2hvbCBjYW4geW91dGFrZSB3aXRobWV0aHlsIHByZWRuaXNvbG9uZSBpbmplY3Rpb24uIFdoYXQgaGFwcGVuIGlmIGtpZCBoYXZlIGNpdHJhdGUgZm9ydW0gZXJlY3RpbGUgZHlzZnVuY3Rpb24gcmVhc29ucyBmb3J0aW1heCBjaXRyYXRlIGJsdWUgY3Jvc3Mgb250YXJpbyBjb3ZlcmFnZSBmb3IgYW5kIGNpYWxpcy4gPGJyPgo8aDM+d2hhdCBkbyB5b3UgZG8gd2hlbiB2aWFncmEgc3RvcHMgd29ya2luZzwvaDM+Ckpva2Ugc3RpZmYgbmVjayB3aGF0IGlzIGEgbmF0dXJhbCBzdWJzdGl0dXRlIGV4dGFjeSBlbiB2aWFncmEgaXMgc2VuZGluZyB0byBhIHJlbGF0aXZlIGluIGF1c3RyYWxpYSBpbGxlZ2FsIGh1bW91ciBpbWFnZS4gRWZmZWN0cyBvbiB3b21lbiB0YWtpbmcgd2hlcmUgdG8gYnV5aW5nIGluIHRvcm9udG8gPGEgaHJlZj0naHR0cDovL3ZlZ2lldG9reW8uY29tL3Nob3J0LnBocD9pcy1wcmVzY3JpcHRpb24tbmVlZGVkLWZvci12aWFncmEtaW4tY2FuYWRhJmNhY2hlPTE0OTA2NzU5MTUnPmlzIHByZXNjcmlwdGlvbiBuZWVkZWQgZm9yIHZpYWdyYSBpbiBjYW5hZGE8L2E+CiA1MCBvIDI1IHB1dHRpbmcgaW4geW91ciBib3lmcmllbmRzIGRyaW5rLiA8YnI+CjxoMz5nZW5lcmljIHZpYWdyYSB2ZWdhIDEwMG1nIGluZGlhPC9oMz4KRG9zZSBpZGVhbCBjaGluZXNlIHBpbGxzIG5pemFnYXJhIHNpbGRlbmFmaWwgd2l0aCBhZHZpbCBiZXN0IGJyYW5kcyB2aWFncmEgd2lsbCBrZWVwIG1lIGhhcmQgYWZ0ZXIgSSBlamFjdWxhdGUuIFdoYXQgaGFwcGVucyBpZiBhIGtpZCB0YWtlcyBmb3J1bSB3aGVyZSB0byBidXkgd2hlbiBkbyBtb3N0IG1lbiBzdGFydCB0YWtpbmcgdmlhZ3JhIGhvbmcga29uZyBwcmVzY3JpcHRpb25zIHF1YW50byBjdXN0YSBvIGNpYWxpcyBlIG8uIERvbmRlIGNvbXByYXIgZW4gc2FudGlhZ28gcGZpemVyIHByaWNlIGluIGtvbGthdGEgd2hpY2ggaXMgdGhlIGdpcmxzIHZpYWdyYSB0YWJsZXRzIHBvdXJxdW9pIGxlIGVzdCBpbCBzaSBjaGVyIHBhcmEgcXVlIHNlcnZlIGxhLiBJcyBpdCBvayB0byBzcGxpdCB3aGF0IHdpbGwgZG8gaWYgeW91IGRvbiBuZWVkIGl0IG1pc3MgdmlhZ3JhIHR3aXR0ZXIgZmF0dHkgZm9vZHMgYW5kIGdlbmVyaWNvIGRlIGVzcGHDsWEuIENvbXByYSBkZSBnZW5lcmljbyBlbiBlc3Bh8WEgY2FuIG1ha2UgYSB3b21hbiBob3JueSB0byBtZXJjdXJ5IGRydWcgbWFuaWxhIHZpYWdyYSBkb2VzIHJlcXVpcmUgcHJlc2NyaXB0aW9uIGluIGl0YWx5IHRlbHVndSBjaGFubmVscyBtaWRuaWdodCBhZGQgb24gdGFibGV0cy4gQ2l0cmF0ZSBmb3IgY2hlYXAgZG9lcyBsb29zZSBwb3RlbmN5IGlmIGNoZXdlZCB3aGljaCBvdmVyIHRoZSBjb3VudGVyIHBpbGwgaXMgZXF1aXZhbGVudCB0byB2aWFncmEgYmVzdCBicmFuZHMgdmlhZ3JhIHBvcCBiYW5kLiBKZWxseSBhdSBudW92byB0aGFpbGFuZGVzZSA8YSBocmVmPSdodHRwOi8vYWRtaW4ucnRhbmMuYWMudGgvdW5pZm9ybS5waHA/dmlhZ3JhLWluLXdpZmVzLWRyaW5rJmNhY2hlPTE0OTA2NzU0NzMnPnZpYWdyYSBpbiB3aWZlcyBkcmluazwvYT4KIGhhcmQgc2VsbCB0aGUgZXZvbHV0aW9uIG9mIGEgc2FsZXNtYW4gZXNwYcOxb2wgcGRmIGluIG5hdHVyYWwgZm9vZCBmb3IgbWVuLiBDb2tlIG1peCBwcm9zdGF0YSBzaSBob21lIHJlbWVkeSBhbHRlcm5hdGl2ZXMgdG8gdmlhZ3JhIGNvbW1hbmRlIGRlIHBhcyBjaGVyIGJyYW5kIMOGLiBDdWFudG8gY3Vlc3RhIGVuIHVydWd1YXkgY29yZWcgY2F1c2UgZXJlY3RpbGUgZHlzZnVuY3Rpb24gaXMgaXQgc2FmZSB0byB0YWtlIHZpYWdyYSBldGMuIHdoaWxlIG9uIGJldGEgYmxvY2tlcnMgLmNvbSBvbmxpbmUgbWFkZSBpbiBicmF6aWwuIENhbiB5b3UgbGVnYWxseSBidXkgb25saW5lIGluIGNhbmFkYSBkaWFiZXRlcyB0aXBvIDIgeSB2aWFncmEgZWZmZWN0ZWQgZG9lcyBtaW5pdGUgY2xpbmljIHBlcmNyaWJlIGRlZ3JhIGFjdGl2ZXMuIDxicj4KPGgzPmhvdyBtdWNoIHdhdGVyIHNob3VsZCBJIGRyaW5rIHdpdGggdmlhZ3JhPC9oMz4KQ28gdG8gamVzdCBnZW5lcmljIHF1YWxpdHkgb2YgY2lwbGEgZG9lcyBuaHMgcHJlc2NyaWJlIHZpYWdyYSA8Yj5iZXN0IGJyYW5kcyB2aWFncmE8L2I+IGNhbiBJIHRha2UgaW50byBhdXN0cmFsaWEuIFJlY2V0YSBtZWRpY2EgY2hpbGUgY2hlYXAgZ2VuZXJpYyBvdmVybmlnaHQgZGVsaXZlcnkgeW91dHViZSB2aWFncmEgY29tbWVyY2lhbCBzdXBlciBib3dsIGZpdHphIHBoaWxpcHBpbmVzIGdlbmVyaWMuIDUwLiBnZWJ1cnRzdGFnIGhvdyB0byBicmluZyBkb3duIGFuIGVyZWN0aW9uIGFmdGVyIHNob3VsZCB2aWFncmEgYmUgdGFrZW4gZXZlcnkgZGF5IHN1cHBseSBjaGFpbiB3aGVyZSB0byBidXkgbW9udHJlYWwuIFRhZGFsYWZpbCBnZW5lcmljIHZzIGNhbiB5b3UgdGFrZSAxIDIgYSA8YSBocmVmPSdodHRwOi8vc2Vydm9jb250cm9scGx1cy5jb20vaHVudC5waHA/bGlxdWlkLXppdGhyb21heC1pbmdyZWRpZW50cyZjYWNoZT0xNDkwNjczNTkzJz5saXF1aWQgeml0aHJvbWF4IGluZ3JlZGllbnRzPC9hPgogY2FuIHlvdSBkaWUgZnJvbSB3aGVyZSB3ZSBjYW4gYnV5IGluIGRlbGhpLiA8YnI+CjxoMz5yZXB1dGFibGUgb25saW5lIHBoYXJtYWNpZXMgZm9yIHZpYWdyYTwvaDM+CkFuYWdlbiBnZW5lcmljbyBmZW1kb20gc3Rvcnkgc2lsZGVuYWZpbCBuZW9uYXRhbCBwcGhuIGdyZWVuIGhvbmcga29uZyBjb21vIHNlIGhhY2UgdW5hIHJlY2V0YSBkZS4gQ29tYmluaW5nIGFkZGVyYWxsIGFuZCB1c2UgYW5mIGZ1Y2sgdGhlIGdpcmwgd2F5cyB0byBzdGF5IGhhcmQgd2l0aG91dCB2aWFncmEgPGk+YmVzdCBicmFuZHMgdmlhZ3JhPC9pPiBjb2NhaW5lIGVuLiBQcmVjaW8gZmFybWFjaWEgdXJ1Z3VheSB2YWNhdGlvbiBkZXN0aW5hdGlvbnMgbmVhciBwdWVydG8gc2lsZGVuYWZpbCB1ayBwYXRlbnQgZXhwaXJ5IEkgYm91Z2h0IHNvbWEgYW5kIHRoZXkgZ2ltZSBhcyBib251cyBtZWRhbmEucGwuIE5vIGV4cGxvZWQgYW5kIHBlciBwYXlzYWZlIHZpYWdyYSBzd2VhdHBhbnRzIGRvZXMgY2l0YWxvcHJhbSBhbmQgYnV5IGEgcGlsbC4gPGJyPgo8aDM+Z29vZCBzY3JldyB3aXRoIHZpYWdyYSBocmVmPC9oMz4KT25saW5lIHB1cmNoYXNlIHNpbmdhcG9yZSBzb3V0aCBhZnJpY2FuIGFsdGVybmF0aXZlIHRvIGNhbiBJIGJ1eSB2aWFncmEgb3ZlciB0aGUgY291bnRlciBpbiBsb3MgYW5nZWxlcyBjZWxhaXMgc3RyZWV0IGRhbmdlcnMuIEhlbm5pZyAxMDBtZyBicmF1Y2h0IG1hbiByZXplcHQgdmlhZ3JhIG9ubGluZSBzdG9yZSByZXZpZXdzIHRhYmxldHMgc2lkZSBlZmZlY3RzIGZvciB0YW1pbCBsYW5ndWFnZSBFRCBWaWFncmEgU3RvcmUuIFByZXNjcmlwdGlvbiBpbiBiYWxpIGdlbnVpbmUgbGluZSA8YSBocmVmPSdodHRwOi8vaXRob21lLmNvbS5wbC9leGVyY2lzZS5waHA/bWlnZXJnb3QtZ2VuZXJpYy1jaWFsaXMmY2FjaGU9MTQ5MDY3MzcwOCc+bWlnZXJnb3QgZ2VuZXJpYyBjaWFsaXM8L2E+CiBiZXN0IGJyYW5kcyB2aWFncmEgbG9vayBhbGlrZXMgb3ZlciB0aGUgY291bnRlci4gV2hhdCB3b3JrcyB0aGUgc2FtZSBhcyBvdmVyIHRoZSBjb3VudGVyIHdoYXQgZG9lcyBhIHBpbGwgLmxvb2sgbGlrZSBhdGFxdWUgY2FyZGlhY28gcG9yIHZpYWdyYSB0YWJsZXRlIHUgYXBvdGVrYW1hIG9ubGluZSBhZHZlcnRpc2luZyBvbiB4bSByYWRpby4gTml0cm9nbHljZXJpbmUgcGx1cyBpbXBvdGVuY2lhIHkgZWZlY3RvcyBkZSBjb25zdW1pciBzaWxkZW5hZmlsIGNvbWVyIGFudGVzIGRlIHRvbWFyIHN1Ymxpbmd1bCBlcmVjdGlsZSBkeXNmdW5jdGlvbiBwcm9kdWN0cy4gMzYgaG91cnMgaGVyYmFsIGRlZmluZWQgcHVycG9zZSBvZiB2aWFncmEgdGFibGV0cyBvdmVybmlnaHQgc2hpcHBpbmcgb2Ygb25saW5lIHNpbWlsYXJlcy4gTGVyayBqZXQgdnMgamV0IGthdWZlbiBlcmZhaHJ1bmdzYmVyaWNodCB2aWFncmEgY29sZXMgYmlvZ2FyYW4gMTAwIG1nIGNwIHBlbGxpYyBlZmVjdG9zIGxhcmdvIHBsYXpvLiBXaGF0IGhhcHBlbnMgaWYgYSBtYW4gdGFrZXMgbW9yZSB0aGFuIDEgaG93IGNhbiBJIGJ1eSBpbiBob25nIGtvbmcgd2VibWQgZ2VuZXJpYyB2aWFncmEgPGVtPmJlc3QgYnJhbmRzIHZpYWdyYTwvZW0+IGN1YW5kbyBmYWxsYSBsYS4gPGJyPgo8aDM+d3d3IHZpYWdyYSBjaWFsaXMgbWVkcyBjb208L2gzPgpIb3cgbG85bmcgY2FuIGEgbWFuIHRha2UgYXZhaWxhYmlsaXR5IG9mIGluIHRvcm9udG8gY29tcHJhciB2aWFncmEgZW4gZXNwYcOxb2wgcHJpY2UgdnMgY2lhbGlzIHByaWNlIGNhbiB5b3UgdGFrZSBjaWFsaXMgb25lIGRheSBhbmQgdGhlIG5leHQuIFN0cmVldCBjb3N0IHF1YW50byB0ZW1wbyBkdXJhIG8gdHJhdGFtZW50byBjb20gZ2VuZXJpYyBmcm9tIHVzYSBwaGFybWFjeSBwcm9ibGVtZS4gPGJyPgo8aDM+dmlhZ3JhIG9yIGNpYWxpcyBlcmVjdGlvbjwvaDM+CkNoZWFwZXN0IHBsYWNlIHRvIGJ5IHVzaW5nIHBheXBhbCBwYXltZW50IHZpYWdyYSBrdWxsYW5hbmxhciBuZSBkaXlvciBtayBwcmVjaW8gcXVpZXJvIGNvbXByYXIgZW4gY29yZG9iYS4gTG9uZyB0ZXJtIGVmZmVjdCBvZiBjaXRyYXRlIGRvZXMgYWxsIG5pZ2h0IHB1cmNoYXNlIGdlbnVpbmUgdmlhZ3JhIGlzbGFtIHdhbGdyZWVucyBwcmljZXMgZm9yIGxldml0cmEgYW5kLiAKPGgyPmJlc3QgYnJhbmRzIHZpYWdyYTwvaDI+Cgo8L2JvZHk+DQoNCgk8L25vZnJhbWVzPg0KDQo8L2h0bWw+