PCFET0NUWVBFIGh0bWwgDQogICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iDQogICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4NCjxodG1sPg0KPGhlYWQ+DQogIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiIC8+DQo8dGl0bGU+R3VpZGVsaW5lcyBmb3IgWE1MIFF1ZXJ5IFRlc3QgU3VpdGUgU3VibWlzc2lvbnM8L3RpdGxlPg0KPC9oZWFkPg0KPGJvZHk+DQo8cD48aW1nIGFsdD0iVzNDIiBzcmM9Imh0dHA6Ly93d3cudzMub3JnL0ljb25zL1dXVy93M2NfaG9tZS5naWYiIC8+PC9wPg0KPGgxIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5HdWlkZWxpbmVzIGZvciBYTUwgUXVlcnkgVGVzdCBTdWl0ZSBTdWJtaXNzaW9uczwvaDE+DQo8aDI+TGljZW5zaW5nIElzc3VlcyBhbmQgQWNjZXB0YW5jZTwvaDI+DQo8dWwgdHlwZT0iZGlzYyI+DQo8bGk+VGVzdHMgc3VibWlzc2lvbnMgbXVzdCB1c2UgdGhlIDxhIGhyZWY9DQoiaHR0cDovL3d3dy53My5vcmcvMjAwMi8wOS93YnMvMS90ZXN0Z3JhbnRzMi0yMDA0MDkvIj5HcmFudCBJSToNCkdyYW50IG9mIExpY2Vuc2UgZm9yIENvbnRyaWJ1dGVkIHRlc3QgQ2FzZXMgUHVibGlzaGVkIE91dHNpZGUgYSBXM0MNClJlY29tbWVuZGF0aW9uPC9hPi4gVGhpcyBsaWNlbnNlIGdyYW50LCBmb3Igbm9uLXBhcnRpY2lwYW50DQp0ZXN0IGNhc2UgQ29udHJpYnV0b3JzLCBpcyBkZXNjcmliZWQgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvMjAwNC8xMC8yNy10ZXN0Y2FzZXMuaHRtbCI+UG9saWNpZXMgZm9yIENvbnRyaWJ1dGlvbiBvZiBUZXN0IENhc2VzIHRvIFczQzwvYT4uPC9saT4NCjxsaT5UaGUgWE1MIFF1ZXJ5IFdvcmtpbmcgR3JvdXAgYW5kIFhTTCBXb3JraW5nIEdyb3VwIHdpbGwsIGF0IHRoZWlyIHNvbGUgZGlzY3JldGlvbiwgZGV0ZXJtaW5lDQp3aGF0IHRlc3RzIGFyZSBpbmNvcnBvcmF0ZWQgaW4gdGhlIHRlc3Qgc3VpdGUuPC9saT4NCjwvdWw+DQo8aDI+PGI+Q29uZm9ybWFuY2UgdG8gU2NoZW1hcyBhbmQgRmlsZSBGb3JtYXQ8L2I+PC9oMj4NCjx1bCB0eXBlPSJkaXNjIj4NCjxsaT5TdWJtaXNzaW9ucyBtdXN0IGJlIHZhbGlkIHdpdGggcmVzcGVjdCB0byAiWFFUU0NhdGFsb2cueHNkIiBzY2hlbWEgZmlsZS48L2xpPg0KPGxpPkFsbCBzdWJtaXNzaW9ucyBtdXN0IGJlIGluIGEgWklQLCB0YXIgb3IgZ3ppcCBmaWxlIGZvcm1hdHMuPC9saT4NCjxsaT5QbGVhc2UgYWRkIHlvdXIgdGVzdCBjYXNlcyB0byB0aGUgIlhRVFNDYXRhbG9nU3VibWlzc2lvbi54bWwiIGRvY3VtZW50IHRoYXQgd2UgaGF2ZSBwcm92aWRlZC48L2xpPg0KPC91bD4NCjxoMj48Yj5UZXN0IFN0cnVjdHVyZTwvYj48L2gyPg0KPHVsIHR5cGU9ImRpc2MiPg0KPGxpPkVudHJpZXMgaW4gdGhlIGNhdGFsb2d1ZSBmaWxlIHNob3VsZCBjb250YWluIGNpdGF0aW9ucyBvZiBkb2N1bWVudCBzZWN0aW9ucywgdXNpbmcgYm90aCB0aGUgc2VjdGlvbiBudW1iZXIgYW5kIHNlY3Rpb24gbmFtZSwNCndoZW5ldmVyIHBvc3NpYmxlLiBUaGlzIHByYWN0aWNlIGlzIGhpZ2hseSByZWNvbW1lbmRlZC4gIEEgdHlwaWNhbCB0ZXN0IGNhdGFsb2d1ZSBlbnRyeSBpcyBpbGx1c3RyYXRlZCBiZWxvdy48L2xpPg0KPC91bD4NCjx0YWJsZSBzdHlsZSA9ICJzb2xpZCIgYm9yZGVyID0gIjEiICBhbGlnbj0iY2VudGVyIj4NCjx0cj4NCjx0ZD4mbHQ7dGVzdC1jYXNlIG5hbWU9InRlc3QwMDEiIEZpbGVQYXRoPSJBeGVzIiAuLi4gJmd0Ozxici8+DQogIC4uLjxici8+DQogICZsdDtxdWVyeSBuYW1lPSJ0ZXN0MDAxLnhxIiBkYXRlPSIyMDAzLTAyLTI1IiZndDs8YnIvPg0KICAgJmx0O2Rlc2NyaXB0aW9uJmd0O0NoaWxkIEVsZW1lbnQgVGVzdCZsdDsvZGVzY3JpcHRpb24mZ3Q7PGJyLz4NCiAgJmx0Oy9xdWVyeSZndDs8YnIvPg0KICAmbHQ7aW5wdXQtZmlsZSByb2xlPSJwcmluY2lwYWwtZGF0YSIgY29udGV4dD0iZGVmYXVsdCIgdmFyaWFibGU9ImlucHV0LWNvbnRleHQiJmd0O1RyZWVDb21wYXNzJmx0Oy9pbnB1dC1maWxlJmd0Ozxici8+DQogICZsdDtvdXRwdXQtZmlsZSByb2xlPSJwcmluY2lwYWwiIGNvbXBhcmU9IlhNTCImZ3Q7dGVzdDAwMS54bWwmbHQ7L291dHB1dC1maWxlJmd0Ozxici8+DQogJmx0Oy90ZXN0LWNhc2UmZ3Q7PGJyLz4NCjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjx1bCB0eXBlPSJkaXNjIj4NCjxsaT5UZXN0cyBmb3Igd2hpY2ggdGhlICZsdDtpbnB1dC1maWxlJmd0OyBlbGVtZW50IGluIHRoZSBjYXRhbG9nIGZpbGUgcmVmZXJlbmNlcyB0aGUgImVtcHR5ZG9jIiBmaWxlIGFyZSBub3QgcmVxdWlyZWQNCnRvIG1ha2UgYW55IHZhcmlhYmxlIG1hcHBpbmcgYmFjayB0byB0aGUgJmx0O2lucHV0LWZpbGUmZ3Q7IGVsZW1lbnQuICBJbiBvdGhlciB3b3JkcyB0aGUgZm9sbG93aW5nIGRlY2xhcmF0aW9uIGlzIG5vdA0KcmVxdWlyZWQgdG8gYmUgcHJlc2VudCBpbiB0aGUgdGVzdCBjYXNlOg0KPHA+PC9wPg0KPHRhYmxlIHN0eWxlID0gInNvbGlkIiAgYm9yZGVyPSAiMSIgYWxpZ249ImNlbnRlciI+DQo8dHI+DQo8dGQ+DQooOiBpbnNlcnQtc3RhcnQgOik8YnIvPg0KZGVjbGFyZSB2YXJpYWJsZSAkaW5wdXQtY29udGV4dCBleHRlcm5hbDs8YnIvPg0KKDogaW5zZXJ0LWVuZCA6KTxici8+DQo8L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8cD48L3A+DQo8L2xpPg0KPGxpPlN1Ym1pdHRlcnMgc2hvdWxkIGluZGljYXRlIGFueSBwb3RlbnRpYWwgcHJvYmxlbXMgd2l0aCB0aGUNCnRlc3RzLjwvbGk+DQo8bGk+TmVnYXRpdmVzIHRlc3RzIHdpbGwgYmUgYWNjZXB0ZWQuIEhvd2V2ZXIsIHRoZXkgbXVzdCBiZQ0KaWRlbnRpZmllZCBhcyBzdWNoIGluIHRoZSBjYXRhbG9nIGZpbGUuICBQbGVhc2Ugc2VlIHRoZSA8YSBocmVmPSIjRXJyb3ItVGVzdHMiPkVycm9yIFRlc3RzPC9hPiBTZWN0aW9uIGJlbG93IGZvciBmdXRoZXINCmluZm9ybWF0aW9uLiAgQSB0eXBpY2FsIG5lZ2F0aXZlIHRlc3QgaXMgaWxsdXN0cmF0ZWQgYmVsb3c6PC9saT4NCjwvdWw+DQo8cD48L3A+DQo8dGFibGUgc3R5bGUgPSAic29saWQiICBib3JkZXI9ICIxIiBhbGlnbj0iY2VudGVyIj4NCjx0cj4NCjx0ZD4NCig6ICBOYW1lOiAgdGVzdDAwMSA6KTxici8+DQooOiBUZXN0IERlc2NyaXB0aW9uOiAgY291bnQgZnVuY3Rpb24gd2l0aCBtaXNzaW5nIGFyZ3VtZW50IDopPGJyLz4NCiAgICAgIGZuOmNvdW50KCk8YnIvPg0KPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPHVsIHR5cGU9ImRpc2MiPg0KPGxpPlZhcmlhYmxlIG5hbWVzLCBmdW5jdGlvbiBuYW1lcywgZXRjLiwgc2hvdWxkIG5vdCBjb250YWluIGFueQ0KY29weXJpZ2h0ZWQgaW5mb3JtYXRpb24gb3IgYW55IGNvbXBhbnkgbmFtZSBvciBhbnkgb3RoZXIgdGV4dA0KaWRlbnRpZnlpbmcgYSBjb21wYW55LiAgSG93ZXZlciB0ZXN0IHN1Ym1pdHRlcnMgYXJlIGFsbG93ZWQgdG8gdXNlIGEgY29tcGFueSBuYW1lIGFzDQp0aGUgdmFsdWUgb2YgdGhlICJmZWF0dXJlT3duZXIiIGF0dHJpYnV0ZSBvZiB0aGUgJmx0O3Rlc3QtZ3JvdXAmZ3Q7IGVsZW1lbnQuPC9saT4NCjxsaT5TdWJtaXR0ZWQgdGVzdHMgc2hvdWxkIGJlIG1pbmltYWwgaW4gbmF0dXJlIGFuZCBpbmRlcGVuZGVudCBvZg0Kb25lIGFub3RoZXIuPC9saT4NCjxsaT5TdWJtaXR0ZWQgdGVzdHMgbXVzdCBhdCBsZWFzdCBpbmNsdWRlIGEgJmxkcXVvO05hbWUmcmRxdW87DQpjb21tZW50IGFuZCBhICZsZHF1bztEZXNjcmlwdGlvbiZyZHF1bzsgY29tbWVudC4gVGhlc2UNCmNvbW1lbnRzIG11c3QgYXBwZWFyIGFzIHRoZSBmaXJzdCB0d28gbGluZXMgb2YgdGhlIGZpbGUuPC9saT4NCjxsaT5TdWJtaXR0ZXJzIHNob3VsZCByZXVzZSBleGlzdGluZyBpbnB1dCBmaWxlcyB3aGVuZXZlcg0KcG9zc2libGUuPC9saT4NCjxsaT5UZXN0cyBpbnZvbHZpbmcgZGF0ZXMsIHRpbWVzIGFuZCBkYXRlVGltZSBzaG91bGQgdXNlIGFuIGV4cGxpY2l0IHRpbWV6b25lICh3aGV0aGVyIG9wdGlvbmFsIG9yIHJlcXVpcmVkKS4gIFRoZXNlIHRlc3RzIHNob3VsZCB1c2UgdGhlICJaIg0Kd2hlbmV2ZXIgcG9zc2libGUuICBUZXN0cyBkZXNpZ25lZCB0byBldmFsdWF0ZSBpbXBsaWNpdCB0aW1lem9uZSBzaG91bGQgb21pdCB0aGUgdGltZXpvbmUgY29tcG9uZW50LjwvbGk+DQo8bGk+U3VibWl0dGVkIHRlc3RzIHNob3VsZCBiZSBpbnNlbnNpdGl2ZSB0byBib3VuZGFyeS1zcGFjZSwgdGhhdCBpcywgaW4gZGlyZWN0IA0KZWxlbWVudCBjb25zdHJ1Y3RvcnMgdGhlcmUgc2hvdWxkIGJlIG5vIGJvdW5kYXJ5IHNwYWNlIGJldHdlZW4gb3Blbi9jbG9zZSB0YWdzIGFuZCBlbmNsb3NlZCANCmV4cHJlc3Npb24uPC9saT4NCjxsaT5UZXN0cyBpbnZvbHZpbmcgdGhlIGRlY2ltYWwgYW5kIGludGVnZXIgZGF0YSB0eXBlcyBzaG91bGQgdXNlIG5vIG1vcmUgdGhhbiAxOCBkaWdpdHMuPC9saT4NCjxsaT5UZXN0IGludm9sdmluZyB0aGUgZGF0YSB0eXBlcyB4czpkYXRlLCB4czp0aW1lLCB4czpkYXRlVGltZSwgeHM6Z1llYXIsIHhzOmdZZWFyTW9udGgsDQp0aGUgbWF4aW11bSB2YWx1ZSBvZiB0aGUgeWVhciBjb21wb25lbnQgc2hvdWxkIGJlIG5vIG1vcmUgdGhhbiA0IGRpZ2l0cywgYW5kIHRoZSBtYXhpbXVtIG51bWJlciBvZg0KZnJhY3Rpb25hbCBzZWNvbmQgZGlnaXRzIG11c3QgYmUgbm8gbW9yZSB0aGFuIDMuPC9saT4NCjxsaT5Gb3IgdGVzdHMgaW52b2x2aW5nIHRoZSBpbnQsIGxvbmcsIHNob3J0IGFuZCBieXRlIGRhdGEgdHlwZXMsIHBsZWFzZSBzZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0yLyI+U2NoZW1hPC9hPiBzcGVjaWZpY2F0aW9ucyBmb3IgbGltaXRzIA0Kb24gdGhvc2UgZGF0YSB0eXBlcy48L2xpPiANCjxsaT5Gb3IgdGVzdHMgY2FzZXMgdGhhdCBhcmUgc2Vuc2l0aXZlIHRvIHR5cGVkIHZhbHVlcywgc3VibWl0dG9ycyB3aWxsIHByb3ZpZGUgYSByZXN1bHQgZm9yIA0KYm90aCB0aGUgdHlwZWQgYW5kIHVudHlwZWQgZGF0YS48L2xpPg0KPGxpPkZvciB0ZXN0IGNhc2VzIHdoZXJlIHR5cGVkIGRhdGEgaXMgaW1wZXJhdGl2ZSwgc3VibWl0dG9ycyB3aWxsIG5lZWQgdG8gdXNlIA0KY29uc3RydWN0b3IgZnVuY3Rpb25zIGluc3RlYWQgb2YgcmVseWluZyBvbiB0eXBlZCBkYXRhLjwvbGk+DQo8bGk+U3VibWl0dGVkIHRlc3RzIGZvciBhIHBhcnRpY3VsYXIgc2VjdGlvbiBtdXN0IGluY2x1ZGUgb25seQ0KZnVuY3Rpb25hbGl0eSBkZWZpbmVkIGJ5IHRoYXQgc2VjdGlvbiBhbmQgYnkgdGhlIHByb3ZpZGVkDQpmb3VuZGF0aW9uIGZlYXR1cmVzLiBUaGUgWE1MIFF1ZXJ5IFdvcmtpbmcgR3JvdXAgZGVmaW5lcyB0aGUNCmZvbGxvd2luZyBmZWF0dXJlcyBhcyBmb3VuZGF0aW9uIGZlYXR1cmVzOjwvbGk+DQo8L3VsPg0KPHRhYmxlIGZyYW1lID0gImJvcmRlciIgc3R5bGU9InNvbGlkIiBib3JkZXIgPSAiMSIgd2lkdGggPSAiNTUwIiBhbGlnbj0iY2VudGVyIj4NCjx0cj4NCjx0ZD48aDQ+RmVhdHVyZSBOYW1lPC9oND48L3RkPg0KPHRkPjxoND5Db21tZW50czwvaDQ+PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+c3RyaW5nIGxpdGVyYWxzIChxdW90ZWQgc3RyaW5ncyk8L3RkPg0KPHRkPiZuYnNwOzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPmludGVnZXIgbGl0ZXJhbHM8L3RkPg0KPHRkPiZuYnNwOzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPlVSSSBsaXRlcmFsczwvdGQ+DQo8dGQ+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+UGFyZW50aGVzZXM8L3RkPg0KPHRkPiZuYnNwOzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPmVtcHR5LXNlcXVlbmNlIGNvbnN0cnVjdG9yICgpPC90ZD4NCjx0ZD4mbmJzcDs8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD5jb25jYXRlbmF0aW9uIChjb21tYSBvcGVyYXRvcikgZm9yIHNlcXVlbmNlPC90ZD4NCjx0ZD4mbmJzcDs8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD5leHByZXNzaW9uIGNvbW1lbnRzPC90ZD4NCjx0ZD4mbmJzcDs8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD4vIGFuZCAvLzwvdGQ+DQo8dGQ+Zm9yIHBhdGggc3RlcHM8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD4vIGFsb25lPC90ZD4NCjx0ZD5mb3Igcm9vdCBub2RlPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+YWxsIGF4ZXM8L3RkPg0KPHRkPmZvciBib3RoIGV4cGFuZGVkIGFuZCBhYmJyZXZpYXRlZCBmb3JtczwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPm5vZGUgdGVzdHMgKGUuZy4sIHRleHQoKSApPC90ZD4NCjx0ZD4mbmJzcDs8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD5QcmVkaWNhdGVzPC90ZD4NCjx0ZD4mbmJzcDs8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD5lbGVtZW50IGNvbnN0cnVjdG9yczwvdGQ+DQo8dGQ+aW5jbHVkaW5nIHRleHQtbm9kZSBjb250ZW50IGZvciB0aG9zZSBlbGVtZW50czwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPk5hbWVzcGFjZSBkZWNsYXJhdGlvbiBpbiBwcm9sb2c8L3RkPg0KPHRkPkluY2x1ZGluZyBkZWZhdWx0PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+KywgLSB3aXRoIHR3byBvcGVyYW5kczwvdGQ+DQo8dGQ+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+Zm46dHJ1ZSgpLCBmbjpmYWxzZSgpPC90ZD4NCjx0ZD4mbmJzcDs8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD5mbjpub3QoKTwvdGQ+DQo8dGQ+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+YW5kLCBvcjwvdGQ+DQo8dGQ+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+c3RyaW5nIGVxdWFsaXR5IHdpdGggWFBhdGggMS4wIHNlbWFudGljczwvdGQ+DQo8dGQ+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+bnVtZXJpYyBlcXVhbGl0eSBhbmQgaW5lcXVhbGl0eTwvdGQ+DQo8dGQ+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+bm9kZSBjb21wYXJlICh0aGVzZSBvcGVyYXRvcnMgPT0gYW5kICE9IGJhY2tpbmcgdXAgJmxzcXVvO25vZGUtZXF1YWwmcnNxdW87KTwvdGQ+DQo8dGQ+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+YWNjZXNzb3IgZnVuY3Rpb25zOiBmbjpkYXRhLCBmbjpub2RlLWtpbmQ8L3RkPg0KPHRkPiZuYnNwOzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPmZuOmVtcHR5PC90ZD4NCjx0ZD4mbmJzcDs8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD5mbjpjb3VudDwvdGQ+DQo8dGQ+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+Zm46cG9zaXRpb24sIGZuOmxhc3Q8L3RkPg0KPHRkPiZuYnNwOzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPmZuOnN0cmluZy1sZW5ndGg8L3RkPg0KPHRkPiZuYnNwOzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPmZuOnN0cmluZy10by1jb2RlcG9pbnRzPC90ZD4NCjx0ZD4mbmJzcDs8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD4mbGRxdW87aXMmcmRxdW87IHByZWRpY2F0ZTwvdGQ+DQo8dGQ+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+VGhlIENvbnN0cnVjdG9yczogeHM6c3RyaW5nLCB4czphbnlVUkksIHhzOmludGVnZXIsIHhzOmRlY2ltYWwsIHhzOmZsb2F0LCB4czpkb3VibGUsIHhzOmJvb2xlYW4sIHhzOmRhdGUsIHhzOmRhdGVUaW1lLCB4czp0aW1lPC90ZD4NCjx0ZD4mbmJzcDs8L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8aDI+Q29sbGF0aW9ucyBhbmQgVVJJJnJzcXVvO3M8L2gyPg0KPHVsIHR5cGU9ImRpc2MiPg0KPGxpPldoZW4gbm8gY29sbGF0aW9uIGlzIHNwZWNpZmllZCwgdGhlIFVuaWNvZGUtQ29kZXBvaW50IGNvbGxhdGlvbg0KaXMgYXNzdW1lZC4gVGVzdHMgc2hvdWxkIGJlIHdyaXR0ZW4gd2l0aCB0aGF0IGluIG1pbmQuPC9saT4NCjxsaT5VUkkmcnNxdW87cyBtdXN0IGJlIGJhc2VkIG9uIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI+d3d3LmV4YW1wbGUuY29tPC9hPiBkb21haW4uPC9saT4NCjwvdWw+DQo8aDI+U3RhdGljIFR5cGluZzwvaDI+DQo8dWwgdHlwZT0iZGlzYyI+DQo8bGk+U3VibWl0dGVkIHRlc3RzIHNob3VsZCBvYmV5IHRoZSBTdGF0aWMgVHlwaW5nIHJ1bGVzLCBleGNlcHQgZm9yDQp0ZXN0cyBpbnRlbmRlZCB0byBldmFsdWF0ZSB2aW9sYXRpb25zIG9mIHRoZSBTdGF0aWMgVHlwaW5nDQpydWxlcy48L2xpPg0KPGxpPlN1Ym1pdHRlZCB0ZXN0cyBtdXN0IG5vdCByZWx5IG9uIGFueSBzdGF0aWMgdHlwaW5nDQpleHRlbnNpb25zLjwvbGk+DQo8L3VsPg0KPGgyPk9wdGlvbmFsIEZlYXR1cmVzIGFuZCB2ZW5kb3IgU3BlY2lmaWMgRmVhdHVyZXM8L2gyPg0KPHVsIHR5cGU9ImRpc2MiPg0KPGxpPlN1Ym1pdHRlZCB0ZXN0cyB0aGF0IGV2YWx1YXRlIG5vbi1vcHRpb25hbCBmZWF0dXJlcyBzaG91bGQgbm90DQp1c2Ugb3B0aW9uYWwgZmVhdHVyZXMuPC9saT4NCjxsaT5TdWJtaXR0ZWQgdGVzdHMgc2hvdWxkIG5vdCBpbmNsdWRlIGFueSB2ZW5kb3Igc3BlY2lmaWMNCmV4dGVuc2lvbnMgKHByYWdtYXMpLjwvbGk+DQo8L3VsPg0KPGgyPjxhIGlkID0iRXJyb3ItVGVzdHMiIG5hbWUgPSAiRXJyb3ItVGVzdHMiPjwvYT5FcnJvciBUZXN0czwvaDI+DQo8cD5FcnJvciBjb25kaXRpb25zIHRoYXQgY2FuIGJlIG1hcHBlZCB0byB0aGUgY29uZGl0aW9ucyBzcGVjaWZpZWQNCmluIHRoZSBhcHBlbmRpY2VzIG9mIHRoZSBYTUwgUXVlcnkgc3BlY2lmaWNhdGlvbnMgc2hvdWxkIGluY2x1ZGUgdGhlDQplcnJvciBjb2RlIHN0YXRlZCBmb3IgdGhhdCBjb25kaXRpb24uIFRoZSBmb2xsb3dpbmcgZXhhbXBsZQ0KZnJvbSB0aGUgY2F0YWxvZyBmaWxlIGlsbHVzdHJhdGVzIG9uZSBvZiBzdWNoIGNvbmRpdGlvbnM6PC9wPg0KPHRhYmxlIHN0eWxlPSJzb2xpZCIgYm9yZGVyID0gIjEiIHdpZHRoID0gIjcwMCIgYWxpZ249ImNlbnRlciI+DQo8dHI+DQo8dGQgYWxpZ24gPSAibGVmdCI+Jmx0O3Rlc3QtY2FzZSBuYW1lPSZxdW90O0xpdGVyYWxzMDM2JnF1b3Q7IEZpbGVQYXRoPSZxdW90O0V4cHJlc3Npb25zL1ByaW1hcnlFeHByL0xpdGVyYWxzLyZxdW90OyBzY2VuYXJpbz0mcXVvdDtwYXJzZS1lcnJvciZxdW90OyBDcmVhdG9yPSZxdW90O0pvaG4gRG9lJnF1b3Q7Jmd0Ozxici8+DQombHQ7ZGVzY3JpcHRpb24mZ3Q7VGVzdCBmb3IgaW52YWxpZCBkZWNpbWFsIGxpdGVyYWwmbHQ7L2Rlc2NyaXB0aW9uJmd0Ozxici8+DQombHQ7c3BlYy1jaXRhdGlvbiBzcGVjPSZxdW90O1hRdWVyeSZxdW90OyBzZWN0aW9uLW51bWJlcj0mcXVvdDszLjEuMSZxdW90OyBzZWN0aW9uLXRpdGxlPSZxdW90O0xpdGVyYWxzJnF1b3Q7IHNlY3Rpb24tcG9pbnRlcj0mcXVvdDtpZC1saXRlcmFscyZxdW90Oy8mZ3Q7PGJyLz4NCiZsdDtxdWVyeSBuYW1lPSZxdW90O0xpdGVyYWxzMDM2LnhxJnF1b3Q7IGRhdGU9JnF1b3Q7MjAwNS0wMi0wMyZxdW90Oy8mZ3Q7PGJyLz4NCiZsdDtpbnB1dC1maWxlIHJvbGU9JnF1b3Q7cHJpbmNpcGFsLWRhdGEmcXVvdDsgdmFyaWFibGU9JnF1b3Q7aW5wdXQtY29udGV4dCZxdW90OyZndDtlbXB0eWRvYyZsdDsvaW5wdXQtZmlsZSZndDs8YnIvPg0KJmx0O2V4cGVjdGVkLWVycm9yJmd0O1hQU1QwMDAzJmx0Oy9leHBlY3RlZC1lcnJvciZndDs8YnIvPg0KJmx0Oy90ZXN0LWNhc2UmZ3Q7PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkFueSBlcnJvciBjb25kaXRpb24gZm9yIHdoaWNoIHRoZXJlIGlzIG5vdCBhIHByZWRlZmluZWQgY29kZSwgdGhlICIqIiBzeW1ib2wgc2hvdWxkIGJlIHVzZWQuPC9wPg0KDQo8aDI+PGEgaWQgPSJFeHRlcm5hbC1WYXJpYWJsZXMtVGVzdHMiIG5hbWUgPSAiRXh0ZXJuYWwtVmFyaWFibGVzLVRlc3RzIj48L2E+RXh0ZXJuYWwgVmFyaWFibGUgVGVzdHM8L2gyPg0KPHA+RXh0ZXJuYWwgdmFyaWFibGUgdGVzdHMgYXJlIGRlc2lnbmVkIHRvIHJ1biBxdWVyaWVzLCB3aG9zZSBleHRlcm5hbCB2YXJpYWJsZSB2YWx1ZXMgYXJlIGRlZmluZWQgYnkgb3V0c2l0ZQ0KYWdlbnRzLiAgVGhlIG1haW4gY2F0YWxvZyB3aWxsIGRlZmluZSBhbiAmbHQ7aW5wdXQtcXVlcnkmZ3Q7IGVsZW1lbnQuICBUaGUgcmVzdWx0cyBvZiB0aGUgaW5wdXQgcXVlcnkgKHMpIGFyZSBiaW5kIHRvDQpleHRlcm5hbCB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgbWFpbiBxdWVyeS4gIFRoZSAmbHQ7aW5wdXQtcXVlcnkmZ3Q7IGVsZW1lbnQgcmVxdWlyZSB0aHJlZSBhdHRyaWJ1dGVzLA0KbmFtZWx5OjwvcD4NCjxvbD4NCjxsaT5uYW1lIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBpbnB1dCBxdWVyeSAobm8gZXh0ZW5zaW9uIHJlcXVpcmVkKS48L2xpPg0KPGxpPnZhcmlhYmxlIC0gdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlIHRvIHdoaWNoIHRoZSByZXN1bHRzIG9mIHRoZSBxdWVyeSBzaG91bGQgYmUgYmluZGVkLjwvbGk+DQo8bGk+ZGF0ZSAtIHRoZSBkYXRlIHRoZSBxdWVyeSB3YXMgd3JpdHRlbi48L2xpPg0KPC9vbD4NCjxwPlRoZSBmb2xsb3dpbmcgdGFibGUgaWxsdXN0cmF0ZXMgYSB0eXBpY2FsIGVudHJ5IGZvciBhbiBleHRlcm5hbCB2YXJpYWJsZSB0ZXN0IGNhc2U6PC9wPg0KPHRhYmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogNzUwcHg7IGhlaWdodDogNDdweDsiIGJvcmRlcj0iMiINCiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyI+PHNwYW4NCiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogQ291cmllcjsgY29sb3I6IGJsYWNrOyI+DQombmJzcDsmbmJzcDsmbHQ7dGVzdC1jYXNlIGlzLVhQYXRoMj0iZmFsc2UiIG5hbWU9ImV4dHZhcmRlY2x3aXRodHlwZS0xNyIgLi4uJmd0Ozxici8+DQombmJzcDsmbmJzcDsmbmJzcDsmbHQ7ZGVzY3JpcHRpb24+RXh0ZXJuYWwgVmFyaWFibGUgdXNlZCB0byBldmFsdWF0ZSBhIGJvb2xlYW4gZXhwcmVzc2lvbiAuLi4gLiZsdDsvZGVzY3JpcHRpb24mZ3Q7PGJyLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyZsdDtzcGVjLWNpdGF0aW9uIHNwZWM9IlhRdWVyeSIgc2VjdGlvbi1udW1iZXI9IjQuMTQiIC4uLiAvJmd0Ozxici8+DQombmJzcDsmbmJzcDsmbmJzcDsmbHQ7cXVlcnkgbmFtZT0iZXh0dmFyZGVjbHdpdGh0eXBlLTE3IiBkYXRlPSIyMDA2LTAyLTA5Ii8mZ3Q7PGJyLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyZsdDtpbnB1dC1maWxlIHJvbGU9InByaW5jaXBhbC1kYXRhIiB2YXJpYWJsZT0iaW5wdXQtY29udGV4dCImZ3Q7ZW1wdHlkb2MmbHQ7L2lucHV0LWZpbGUmZ3Q7PGJyLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyZsdDtpbnB1dC1xdWVyeSB2YXJpYWJsZT0ieCIgbmFtZT0iZXh0dmFyZGVjbHdpdGh0eXBldG9iaW5kLTE3IiBkYXRlPSIyMDA2LTAyLTA5Ii8mZ3Q7PGJyLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyZsdDtvdXRwdXQtZmlsZSByb2xlPSJwcmluY2lwYWwiIGNvbXBhcmU9IlRleHQiJmd0O2V4dHZhcmRlY2x3aXRodHlwZS0xNy50eHQmbHQ7L291dHB1dC1maWxlJmd0Ozxici8+DQombmJzcDsmbmJzcDsmbHQ7L3Rlc3QtY2FzZSZndDsNCiAgICAgIDwvc3Bhbj48L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KPHA+VGhlIGZvbGxvd2luZyBhcmUgdGhlIGlucHV0IHF1ZXJ5IGFuZCB0aGUgbWFpbiBxdWVyeSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBlbnRyeSBhYm92ZTo8L3A+DQo8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiA3NTBweDsgaGVpZ2h0OiA0N3B4OyIgYm9yZGVyPSIyIg0KIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7Ij48c3Bhbg0KIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBDb3VyaWVyOyBjb2xvcjogYmxhY2s7Ij5JbnB1dCBRdWVyeTxici8+PGJyLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyg6IE5hbWU6IGV4dHZhcmRlY2x3aXRodHlwZXRvYmluZC0xNyA6KTxici8+DQombmJzcDsmbmJzcDsmbmJzcDsoOiBEZXNjcmlwdGlvbjogQmluZGluZyBib29sZWFuIGV4cHJlc3Npb24gZm9yIGV4dHZhcmRlY2x3aXRodHlwZS0xNy46KTxici8+PGJyLz4NCiZuYnNwOyZuYnNwOyZuYnNwO2xldCAkdmFyIDo9IGZuOnRydWUoKSBvciBmbjp0cnVlKCk8YnIvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuICR2YXI8YnIvPjxici8+DQpNYWluIFF1ZXJ5PGJyLz48YnIvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KDogTmFtZTogZXh0dmFyZGVjbHdpdGh0eXBlLTE3IDopPGJyLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyg6IERlc2NyaXB0aW9uOiBFdmFsdWF0ZXMgYW4gZXh0ZXJuYWwgdmFyaWFibGUgdXNlZCBpbiBhIGJvb2xlYW4gZXhwcmVzc2lvbjopPGJyLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyg6IEJvdGggcXVlcmllcyBwZXJmb3JtIHRoZSBvcGVyYXRpb24uIDopPGJyLz48YnIvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZGVjbGFyZSB2YXJpYWJsZSAkeCBhcyB4czpib29sZWFuIGV4dGVybmFsOzxici8+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDskeCBvciBmbjpmYWxzZSgpPGJyLz4NCiAgICAgICA8L3NwYW4+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCjxwPk5vdGUgdGhlIG5hbWUocykgb2YgdGhlIGV4dGVybmFsIHZhcmlhYmxlKHMpIGRlZmluZWQgaW4gdGhlIG1haW4gcXVlcnkgbXVzdCBtYXRjaCB0aGUgbmFtZXMgb2YgdGhlIA0KdmFyaWFibGUocykgZGVmaW5lZCBpbiB0aGUgaW5wdXQgcXVlcmllcyAoIngiIGluIHRoaXMgY2FzZSkuICBUaGUgbWFpbiBxdWVyeSBtdXN0IGJlIGEgc3RhbmQgYWxvbmUgcXVlcnksDQppdCBzaG91bGQgaGF2ZSBubyBpbnB1dCBpbmZvc2V0cy48L3A+DQo8aDI+PGEgaWQgPSJNb2R1bGUtSW1wb3J0LVRlc3RzIiBuYW1lID0gIk1vZHVsZS1JbXBvcnQtVGVzdHMiPjwvYT5Nb2R1bGUgSW1wb3J0IFRlc3RzPC9oMj4NCjxwPk1vZHVsZSBJbXBvcnQgdGVzdHMgYXJlIGFjY2VwdGVkIGFzIG9wdGlvbmFsIGZlYXR1cmVzIG9mIHRoZSBYTUwgUXVlcnkgU3BlY2lmaWNhdGlvbnMNCmFzIG91dGxpbmVkIGluIHNlY3Rpb25zIDQuMiBhbmQgNS4yLjUuICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgZnJvbSB0aGUgY2F0YWxvZyBmaWxlDQppbGx1c3RyYXRlcyBhIHR5cGljYWwgZW50cnkgZm9yIGEgbW9kdWxlIGltcG9ydCB0ZXN0LjwvcD4NCjx0YWJsZSBzdHlsZT0ic29saWQiIGJvcmRlciA9ICIxIiB3aWR0aCA9ICI3MDAiIGFsaWduPSJjZW50ZXIiPg0KPHRyPg0KPHRkIGFsaWduID0gImxlZnQiPg0KJmx0O3Rlc3QtY2FzZSBuYW1lPSZxdW90O21vZHVsZXMtc2ltcGxlJnF1b3Q7IEZpbGVQYXRoPSZxdW90O01vZHVsZXMvTW9kdWxlSW1wb3J0LyZxdW90OyBzY2VuYXJpbz0mcXVvdDtzdGFuZGFyZCZxdW90OyBDcmVhdG9yPSZxdW90O0phbmUgRG9lJnF1b3Q7Jmd0Ozxici8+DQombHQ7ZGVzY3JpcHRpb24mZ3Q7SW1wb3J0IHNpbXBsZSBsaWJyYXJ5IG1vZHVsZSZsdDsvZGVzY3JpcHRpb24mZ3Q7PGJyLz4NCiZsdDtzcGVjLWNpdGF0aW9uIHNwZWM9JnF1b3Q7WFF1ZXJ5JnF1b3Q7IHNlY3Rpb24tbnVtYmVyPSZxdW90OzQuMTEmcXVvdDsgc2VjdGlvbi10aXRsZT0mcXVvdDtNb2R1bGUgSW1wb3J0JnF1b3Q7IHNlY3Rpb24tcG9pbnRlcj0mcXVvdDtpZC1tb2R1bGUtaW1wb3J0cyZxdW90Oy8mZ3Q7PGJyLz4NCiZsdDtzcGVjLWNpdGF0aW9uIHNwZWM9JnF1b3Q7WFF1ZXJ5JnF1b3Q7IHNlY3Rpb24tbnVtYmVyPSZxdW90OzQuMiZxdW90OyBzZWN0aW9uLXRpdGxlPSZxdW90O01vZHVsZSBEZWNsYXJhdGlvbiZxdW90OyBzZWN0aW9uLXBvaW50ZXI9JnF1b3Q7aWQtbW9kdWxlLWRlY2xhcmF0aW9uJnF1b3Q7LyZndDs8YnIvPiAgICAgICAgICAgICAgICAgICANCiZsdDtxdWVyeSBuYW1lPSZxdW90O21vZHVsZXMtc2ltcGxlJnF1b3Q7IGRhdGU9JnF1b3Q7MjAwNS0xMi0wNSZxdW90Oy8mZ3Q7PGJyLz4NCiZsdDttb2R1bGUgbmFtZXNwYWNlPSZxdW90O2h0dHA6Ly93d3cudzMub3JnL1Rlc3RNb2R1bGVzL3Rlc3QxJnF1b3Q7Jmd0O3Rlc3QxLWxpYiZsdDsvbW9kdWxlJmd0Ozxici8+DQombHQ7aW5wdXQtZmlsZSByb2xlPSZxdW90O3ByaW5jaXBhbC1kYXRhJnF1b3Q7IHZhcmlhYmxlPSZxdW90O2lucHV0LWNvbnRleHQmcXVvdDsmZ3Q7ZW1wdHlkb2MmbHQ7L2lucHV0LWZpbGUmZ3Q7PGJyLz4NCiZsdDtvdXRwdXQtZmlsZSByb2xlPSZxdW90O3ByaW5jaXBhbCZxdW90OyBjb21wYXJlPSZxdW90O1hNTCZxdW90OyZndDttb2R1bGVzLXNpbXBsZS54bWwmbHQ7L291dHB1dC1maWxlJmd0Ozxici8+DQombHQ7L3Rlc3QtY2FzZSZndDsNCjwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5Ob3RlIHRoZSBwcmVzZW5jZSBvZiBhIHJlcXVpcmVkICZsdDttb2R1bGUmZ3Q7IGVsZW1lbnQgYW5kIHRoZSByZXF1aXJlZCBuYW1lc3BhY2UgYXR0cmlidXRlLiAgDQpUaGVyZSBtdXN0IGJlIG9uZSAmbHQ7bW9kdWxlJmd0OyBlbGVtZW50IGZvciBldmVyeSBtb2R1bGUgdGhhdCBpcyBpbXBvcnRlZCBieSANCnRoZSBtYWluIHF1ZXJ5LiAgVGhlcmUgYWxzbyBtdXN0IGJlIG9uZSAmbHQ7bW9kdWxlJmd0OyBlbGVtZW50IGZvciBlYWNoIGxpYnJhcnkgbW9kdWxlIHRoYXQgdGhlIGltcG9ydGVkIG1vZHVsZQ0KbWF5IGluIHR1cm4gaGF2ZS4gVGhlIGNvbnRlbnQgb2YgdGhlICZsdDttb2R1bGUmZ3Q7IGVsZW1lbnQgaXMgYW4gSURSRUYgdHlwZSB0aGF0IG11c3QNCm1hdGNoIGFuIElEIGF0dHJpYnV0ZSBmcm9tIGEgJmx0O21vZHVsZSZndDsgZWxlbWVudCBkZWZpbmVkIGluIHRoZSBzZWN0aW9ucyBhcmVhIG9mIHRoZSBjYXRhbG9nIGZpbGUNCmFzIGEgY2hpbGQgb2YgdGhlICZsdDtzZWN0aW9ucyZndDsgZWxlbWVudC4NClRoZSBmb2xsb3dpbmcgZXhhbXBsZSBpbGx1c3RyYXRlcyB0aGUgbWF0Y2hpbmcgSUQgZGVmaW5pdGlvbiBmb3IgdGhlIGV4YW1wbGUgYWJvdmUuPC9wPg0KPHRhYmxlIHN0eWxlPSJzb2xpZCIgYm9yZGVyID0gIjEiIHdpZHRoID0gIjcwMCIgYWxpZ249ImNlbnRlciI+DQo8dHI+DQo8dGQgYWxpZ24gPSAibGVmdCI+DQombHQ7bW9kdWxlIElEPSZxdW90O3Rlc3QxLWxpYiZxdW90OyBGaWxlTmFtZT0mcXVvdDtUZXN0U291cmNlcy90ZXN0MS1saWImcXVvdDsgQ3JlYXRvcj0mcXVvdDtKYW5lIERvZSZxdW90OyZndDs8YnIvPg0KJmx0O2Rlc2NyaXB0aW9uIGxhc3QtbW9kPSZxdW90OzIwMDUtMTItMDUmcXVvdDsmZ3Q7U2ltcGxlIGxpYnJhcnkgbW9kdWxlJmx0Oy9kZXNjcmlwdGlvbiZndDs8YnIvPg0KJmx0Oy9tb2R1bGUmZ3Q7PGJyLz4NCjwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5Ob3RlIHRoYXQgdGhlIGZpbGUgIlRlc3RTb3VyY2VzL3Rlc3QxLWxpYiIgZG9lcyBub3QgaGF2ZSBhbiBleHRlbnNpb24uICBUaGUgZXh0ZW5zaW9uIGZvciB0aGlzIGZpbGUgaXMgZGVmaW5lZCAgDQphdCAidGVzdC1zdWl0ZS9AWFF1ZXJ5RmlsZUV4dGVuc2lvbiIuPC9wPg0KPHA+VGhlIG1haW4gcXVlcnkgKGFuZCBhbnkgaW1wb3J0ZWQgbGlicmFyeSBtb2R1bGUgd2l0aCBzdWJzZXF1ZW50IGltcG9ydHMpIG11c3QgaGF2ZSBhbiBpbXBvcnQgc3RhdGVtZW50IHdpdGggYQ0KcHJlZml4IGFuZCBhIG5hbWVzcGFjZSBVUkkuICBUaGUgbmFtZXNwYWNlIFVSSSBtdXN0IG1hdGNoIHRoZSBuYW1lc3BhY2UgVVJJIGRlZmluZWQgaW4gdGhlIGNhdGFsb2cgZmlsZS4gIFRoZSBtb2R1bGUgaW1wb3J0IA0Kc3RhdGVtZW50cyBtdXN0IGJlIGJldHdlZW4gdGhlICIoOiBpbnNlcnQtc3RhcnQgOikiIGFuZCB0aGUgIig6IGluc2VydC1lbmQgOikiIGNvbW1lbnRzLiAgUGxlYXNlIHJlZmVyIHRvIHRoZSANCiJHdWlkZWxpbmVzIGZvciBSdW5uaW5nIFRoZSBYTUwgUXVlcnkgVGVzdCBTdWl0ZSIgZm9yIGZ1cnRoZXIgdXNhZ2Ugb2YgdGhlc2UgY29tbWVudHMuICBUaGUgZm9sbG93aW5nIGV4YW1wbGUNCnNob3dzIHRoZSBxdWVyeSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBleGFtcGxlIGFib3ZlLjwvcD4NCjx0YWJsZSBzdHlsZT0ic29saWQiIGJvcmRlciA9ICIxIiB3aWR0aCA9ICI3MDAiIGFsaWduPSJjZW50ZXIiPg0KPHRyPg0KPHRkIGFsaWduID0gImxlZnQiPg0KKDogaW5zZXJ0LXN0YXJ0IDopPGJyLz4NCmltcG9ydCBtb2R1bGUgbmFtZXNwYWNlIHRlc3QxPSZxdW90O2h0dHA6Ly93d3cudzMub3JnL1Rlc3RNb2R1bGVzL3Rlc3QxJnF1b3Q7PGJyLz4NCmRlY2xhcmUgdmFyaWFibGUgJGlucHV0LWNvbnRleHQgZXh0ZXJuYWw7PGJyLz4NCig6IGluc2VydC1lbmQgOik8YnIvPg0KPC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkFuZCB0aGUgY29ycmVzcG9uZGluZyByZWxldmFudCBzZWN0aW9uIGZyb20gdGhlIGxpYnJhcnkgbW9kdWxlLjwvcD4NCjx0YWJsZSBzdHlsZT0ic29saWQiIGJvcmRlciA9ICIxIiB3aWR0aCA9ICI3MDAiIGFsaWduPSJjZW50ZXIiPg0KPHRyPg0KPHRkIGFsaWduID0gImxlZnQiPg0KbW9kdWxlIG5hbWVzcGFjZSB0ZXN0MT0iaHR0cDovL3d3dy53My5vcmcvVGVzdE1vZHVsZXMvdGVzdDEiOzxici8+DQo8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+SXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIChidXQgbm90IHJlcXVpcmVkKSB0aGF0IGFueSBsaWJyYXJ5IG1vZHVsZSBjb250YWluIHRoZSAibGliIiBzdHJpbmcgYXMNCnBhcnQgb2YgaXRzIG5hbWUuPC9wPg0KPGgyPlhNTCBhbmQgTmFtZXNwYWNlczwvaDI+DQo8dWwgdHlwZT0iZGlzYyI+DQo8bGk+U3VibWl0dGVkIHRlc3RzIHNob3VsZCBiZSBpbmRlcGVuZGVudCBvZiBYTUwgdmVyc2lvbnMNCiZsZHF1bzsxLjAmcmRxdW87IGFuZCAmbGRxdW87MS4xJnJkcXVvOyBhbmQgWE1MIE5hbWVzcGFjZXMgdmVyc2lvbnMNCiZsZHF1bzsxLjAmcmRxdW87IGFuZCAmbGRxdW87MS4xJnJkcXVvOyBmZWF0dXJlcyB1bmxlc3MgdGhlIHB1cnBvc2UNCmlzIHRvIGV2YWx1YXRlIHRob3NlIGZlYXR1cmVzLjwvbGk+DQo8L3VsPg0KPGgyPlhNTCBFbmNvZGluZzwvaDI+DQo8dWwgdHlwZT0iZGlzYyI+DQo8bGk+U3VibWl0dGVkIHRlc3RzIHNob3VsZCB1c2UgVVRGLTggZW5jb2RpbmcuPC9saT4NCjwvdWw+DQo8aDI+UmVsYXRlZCBTcGVjaWZpY2F0aW9uczwvaDI+DQo8dWwgdHlwZT0iZGlzYyI+DQo8bGk+U3VibWl0dGVkIHRlc3RzIHNob3VsZCBiZSBiYXNlZCBleGNsdXNpdmVseSBvbiB0aGUgWFF1ZXJ5DQpzcGVjaWZpY2F0aW9ucyBhbmQgdGhlIEZ1bmN0aW9ucyBhbmQgT3BlcmF0b3JzDQpzcGVjaWZpY2F0aW9ucy4gU29tZSB0ZXN0cyBtYXkgcmVseSBvbiB0aGUgRm9ybWFsIFNlbWFudGljcywNCkRhdGEgTW9kZWwgYW5kIFNlcmlhbGl6YXRpb24gZG9jdW1lbnRzLCBob3dldmVyIHRob3NlDQpzcGVjaWZpY2F0aW9ucyBhcmUgbm90IGJlaW5nIGRpcmVjdGx5IHRlc3RlZC48L2xpPg0KPC91bD4NCjxoMj5YUGF0aCBDb21wYXRpYmlsaXR5PC9oMj4NCjx1bCB0eXBlPSJkaXNjIj4NCjxsaT5UaGUgdGVzdC1ncm91cCBlbGVtZW50IGluIHRoZSBjYXRhbG9nIG1heSBoYXZlIHRoZSBvcHRpb25hbA0KYXR0cmlidXRlIGlzLVhQYXRoMj0ibm8iLiBJZiB0aGlzIGF0dHJpYnV0ZSBpcyBub3QgcHJlc2VudCwNCndoZW4gaXQgaXMgYXNzdW1lZCB0aGF0IGFsbCBkZXNjZW5kZW50IHRlc3QgY2FzZXMgbWF5IG9yIG1heSBub3QgYmUNClhQYXRoIDIuMCB0ZXN0cy48L2xpPg0KPGxpPlRoZSB0ZXN0LWNhc2UgZWxlbWVudCBpbiB0aGUgY2F0YWxvZyBtYXkgaGF2ZSB0aGUgb3B0aW9uYWwNCmF0dHJpYnV0ZSBpcy1YUGF0aDI9Inllc3xubyIuIElmIHRoaXMgYXR0cmlidXRlIGlzIG5vdA0KcHJlc2VudCwgdGhlbiBpdCBpcyBhc3N1bWVkIHRoYXQgdGhpcyB0ZXN0IGNhc2UgbWF5IG9yIG1heSBub3QgYmUNCmFuIFhQYXRoIDIuMCB0ZXN0LiBJZiBhbnkgdGVzdC1ncm91cCBhbmNlc3RlciBvZiB0aGlzIGVsZW1lbnQNCmhhcyBpcy1YUGF0aDI9Im5vIiwgdGhlbiB0aGlzIHRlc3QtY2FzZSBlbGVtZW50IGNhbm5vdCBoYXZlDQppcy1YUGF0aDI9InllcyIuIE92ZXIgdGltZSwgYWxsIHRlc3QtY2FzZSBlbGVtZW50cyB3aWxsIGhhdmUNCnRoaXMgYXR0cmlidXRlIGRlZmluZWQuPC9saT4NCjwvdWw+DQo8aDI+UmVzdWx0cyBhbmQgU2VyaWFsaXphdGlvbjwvaDI+DQo8dWwgdHlwZT0iZGlzYyI+DQo8bGk+VGVzdHMgaW4gdGhlIFhRVFRGIHRlc3Qgc3VpdGUgcmVseSBvbiB0aGUgc2VyaWFsaXplZCBmb3JtIG9mIHRoZSB0ZXN0DQpyZXN1bHQgaW4gb3JkZXIgdG8gY2hlY2sgY29ycmVjdG5lc3MuIFRodXMsIGFueSBmZWF0dXJlIHdob3NlIGVmZmVjdCBpcw0Kbm90IGNhcHR1cmVkIGFzIHBhcnQgb2YgdGhlIHNlcmlhbGl6ZWQgcmVzdWx0IG9mIGEgcXVlcnksIHNob3VsZCBiZQ0KZXhwbGljaXRseSBjaGVja2VkIGFzIHBhcnQgb2YgdGhlIHRlc3QgcXVlcnkgaXRzZWxmLiBGb3IgZXhhbXBsZSwgdHlwaW5nDQppbmZvcm1hdGlvbiBpcyBub3QgcHJlc2VudCBpbiB0aGUgc2VyaWFsaXplZCByZXN1bHRzIG9mIGFuIFhRdWVyeQ0KZXhwcmVzc2lvbi48L2xpPg0KPC91bD4NCjxoMj5FeHBlY3RlZCBSZXN1bHRzPC9oMj4NCjx1bCB0eXBlPSJkaXNjIj4NCjxsaT5TdWJtaXR0ZXJzIG11c3QgcHJvdmlkZSBleHBlY3RlZCByZXN1bHRzIGZvciBhbGwgc3VibWl0dGVkDQp0ZXN0cy48L2xpPg0KPGxpPldoZW4gc2VyaWFsaXppbmcgY29udGVudCBvZiBhIHR5cGVkIGVsZW1lbnQgd2hlcmUgdGhlIHR5cGUgaXMNCmF0b21pYywgYW55IGxleGljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlIG1heSBiZSBzZXJpYWxpemVkLg0KVG8gbWluaW1pemUgdGhlIG51bWJlciBvZiBleHBlY3RlZCByZXN1bHRzIHBlciB0ZXN0IGNhc2UsIHRoZQ0KaW5wdXQgdmFsdWUgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIHR5cGVkIGVsZW1lbnQgc2hvdWxkIGJlIGlkZW50aWNhbA0KdG8gdGhlIHJlc3VsdCBpZiB0aGlzIGlucHV0IHZhbHVlIHdhcyBjYXN0IHRvIHhzOnN0cmluZy4gSWYNCnRoaXMgaXMgdHJ1ZSwgdGhlbiBvbmx5IG9uZSBleHBlY3RlZCByZXN1bHQgd2l0aCB0aGUgc2VyaWFsaXplZA0KdmFsdWUgaW4gaXRzIG9yaWdpbmFsIGxleGljYWwgZm9ybSBpcyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0IGNhc2UuDQpIb3dldmVyLCBpZiB0aGUgaW50ZW50IG9mIHRoZSB0ZXN0Y2FzZSBpcyB0byB0ZXN0IG90aGVyDQpsZXhpY2FsIHJlcHJlc2VudGF0aW9ucywgdGhlbiB0d28gZXhwZWN0ZWQgcmVzdWx0cyBtdXN0IGJlIGNyZWF0ZWQNCndoZXJlIG9uZSByZXN1bHQgd291bGQgY29udGFpbiB0aGUgdmFsdWUgaWYgaXQgd2FzIGNhc3QgdG8NCnhzOnN0cmluZywgYW5kIHRoZSBvdGhlciBpbiBpdHMgb3JpZ2luYWwgbGV4aWNhbCBmb3JtLjwvbGk+DQo8bGk+TWFueSB0ZXN0cyBpbnZvbHZlIG9wZXJhdGlvbnMgb24gZmxvYXRzL2RvdWJsZXMgYW5kIGNvdmVydGluZyB0aG9zZSByZXN1bHRzIHRvDQpzdHJpbmdzLiBFdmVuIGFzIG9uZSBleHBsaWNpdCB2YWx1ZSBpcyBnaXZlbiwgdGhlIHRhc2sgZm9yY2UgcmVhbGl6ZXMgdGhhdA0Kb3RoZXIgdmFsdWVzIG1heSBhbHNvIGJlIGFjY2VwdGFibGUuIEluIHN1Y2ggY2FzZXMgc3VibWl0dGVycyBhcmUgZW5jb3VyYWdlZA0KdG8gc3VtYml0IHZhbHVlcyB0aGF0IG1heSBkaWZmZXIuICBUaGUgdGFzayBmb3JjZSB3aWxsIGV2ZW50dWFsbHkgZGV0ZXJtaW5lDQppZiBzdWNoIHZhbHVlcyBhcmUgd2l0aGluIHRoZSBhY2NlcHRhYmxlIHJhbmdlLjwvbGk+DQo8L3VsPg0KPGhyIC8+IA0KPGFkZHJlc3M+IA0KICA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9IZWxwL1dlYm1hc3RlciI+V2VibWFzdGVyPC9hPiC3IExhc3QgbW9kaWZpZWQ6IA0KICAkRGF0ZTogMjAwOS8xMS8wOCAwMDowNTozMiAkIGJ5ICRBdXRob3I6IGRhY2FydmVyICQgDQo8L2FkZHJlc3M+IA0KPHA+PGEgcmVsPSJDb3B5cmlnaHQiIA0KaHJlZj0iaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC9pcHItbm90aWNlI0NvcHlyaWdodCI+Q29weXJpZ2h0PC9hPiANCqkgMTk5NC0yMDA1IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnLyI+PGFjcm9ueW0gDQp0aXRsZT0iV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSI+VzNDPC9hY3JvbnltPjwvYT48c3VwPq48L3N1cD4gKDxhIA0KaHJlZj0iaHR0cDovL3d3dy5jc2FpbC5taXQuZWR1LyI+PGFjcm9ueW0gDQp0aXRsZT0iTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSI+TUlUPC9hY3JvbnltPjwvYT4sIDxhIA0KaHJlZj0iaHR0cDovL3d3dy5lcmNpbS5vcmcvIj48YWNyb255bSANCnRpdGxlPSJFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIGZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MiPkVSQ0lNPC9hY3JvbnltPjwvYT4sIA0KPGEgaHJlZj0iaHR0cDovL3d3dy5rZWlvLmFjLmpwLyI+S2VpbzwvYT4pLCBBbGwgUmlnaHRzIFJlc2VydmVkLiBXM0MgPGEgDQpocmVmPSJodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2lwci1ub3RpY2UjTGVnYWxfRGlzY2xhaW1lciI+bGlhYmlsaXR5PC9hPiwgDQo8YSANCmhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvaXByLW5vdGljZSNXM0NfVHJhZGVtYXJrcyI+dHJhZGVtYXJrPC9hPiwgDQo8YSByZWw9IkNvcHlyaWdodCIgDQpocmVmPSJodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1kb2N1bWVudHMiPmRvY3VtZW50IA0KdXNlPC9hPiBhbmQgPGEgcmVsPSJDb3B5cmlnaHQiIA0KaHJlZj0iaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC9jb3B5cmlnaHQtc29mdHdhcmUiPnNvZnR3YXJlIA0KbGljZW5zaW5nPC9hPiBydWxlcyBhcHBseS4gWW91ciBpbnRlcmFjdGlvbnMgd2l0aCB0aGlzIHNpdGUgYXJlIGluIGFjY29yZGFuY2UgDQp3aXRoIG91ciA8YSANCmhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvcHJpdmFjeS1zdGF0ZW1lbnQjUHVibGljIj5wdWJsaWM8L2E+IA0KYW5kIDxhIA0KaHJlZj0iaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC9wcml2YWN5LXN0YXRlbWVudCNNZW1iZXJzIj5NZW1iZXI8L2E+IA0KcHJpdmFjeSBzdGF0ZW1lbnRzLjwvcD4gDQo8L2JvZHk+DQo8L2h0bWw+DQo=