PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KCjxodG1sPgoKPGhlYWQ+CgogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPgoKICAgPG1ldGEgbmFtZT0iQXV0aG9yIiBjb250ZW50PSJFY2xpcHNlIFByb2plY3QgUE1DIj4KCiAgIDxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iTWljcm9zb2Z0IEZyb250UGFnZSA0LjAiPgoKICAgPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250ZW50PSJGcm9udFBhZ2UuRWRpdG9yLkRvY3VtZW50Ij4KCiAgIDx0aXRsZT5FY2xpcHNlIFByb2plY3QgRHJhZnQgMi4xIFBsYW4gKERyYWZ0IG9mIE9jdC4gMTEsIDIwMDIpPC90aXRsZT4KCiAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZGVmYXVsdF9zdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIj4KCjwvaGVhZD4KCjxib2R5PgoKCgo8aDE+CgpFY2xpcHNlIFByb2plY3Q8YnI+CgpEUkFGVCAyLjEgUGxhbjwvaDE+Cgo8cD5MYXN0IHJldmlzZWQgRnJpZGF5LCBPY3RvYmVyIDExLCAyMDAyICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPgptYXJrcyBpbnRlcmVzdGluZyBjaGFuZ2VzIHNpbmNlIHRoZSA8YSBocmVmPSJlY2xpcHNlX3Byb2plY3RfcGxhbl8yXzFfMjAwMjA5MTAuaHRtbCI+cHJldmlvdXMgZHJhZnQgb2YKU2VwdC4gMTA8L2E+KTxicj4KPGJyPgo8aT4mbmJzcDsmbmJzcDsmbmJzcDsgUGxlYXNlIHNlbmQgY29tbWVudHMgYWJvdXQgdGhpcyBkcmFmdCBwbGFuIHRvIHRoZSA8L2k+PGEgaHJlZj0ibWFpbHRvOmVjbGlwc2UtZGV2QGVjbGlwc2Uub3JnIj5lY2xpcHNlLWRldkBlY2xpcHNlLm9yZzwvYT4KPGk+ZGV2ZWxvcGVyIG1haWxpbmcgbGlzdC48L2k+IDwvcD4KCjxwPlRoaXMgZG9jdW1lbnQgbGF5cyBvdXQgdGhlIGZlYXR1cmUgYW5kIEFQSSBzZXQgZm9yIHRoZSBuZXh0IGZlYXR1cmUgcmVsZWFzZSAKICBvZiBFY2xpcHNlLCBkZXNpZ25hdGVkIHJlbGVhc2UgMi4xLiAKPHA+UGxhbnMgZG8gbm90IG1hdGVyaWFsaXplIG91dCBvZiBub3doZXJlLCBub3IgYXJlIHRoZXkgZW50aXJlbHkgc3RhdGljLiBUbyBtYWtlIAogIHRoZSBwbGFubmluZyBwcm9jZXNzIG1vcmUgdHJhbnNwYXJlbnQgYW5kIG9wZW4gdG8gdGhlIEVjbGlwc2UgY29tbXVuaXR5LCB3ZSAKICAodGhlIEVjbGlwc2UgUEFDKSBhcmUgcG9zdGluZyB0aGUgcGxhbiBpbiBhbiBlbWJyeW9uaWMgZm9ybSBhbmQgYXJlIHJldmlzaW5nIAogIGl0IHRocm91Z2hvdXQgdGhlIHJlbGVhc2UgY3ljbGUuJm5ic3A7CjxwPlRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBwbGFuCmRlYWxzIHdpdGggdGhlIGltcG9ydGFudCBtYXR0ZXJzIG9mIHJlbGVhc2UgZGVsaXZlcmFibGVzLCByZWxlYXNlIG1pbGVzdG9uZXMsCnRhcmdldCBvcGVyYXRpbmcgZW52aXJvbm1lbnRzLCBhbmQgcmVsZWFzZS10by1yZWxlYXNlIGNvbXBhdGliaWxpdHkuIFRoZXNlIGFyZQphbGwgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSBjbGVhciBmb3IgYW55IHJlbGVhc2UsIGV2ZW4gaWYgbm8gZmVhdHVyZXMgd2VyZSB0bwpjaGFuZ2UuJm5ic3A7PHA+VGhlIHJlbWFpbmRlciBvZiB0aGUgcGxhbiBjb25zaXN0cyBvZiBwbGFuIGl0ZW1zIGZvciB0aGUgdmFyaW91cwpFY2xpcHNlIHN1YnByb2plY3RzLiBFYWNoIHBsYW4gaXRlbSBjb3ZlcnMgYSBmZWF0dXJlIG9yIEFQSSB0aGF0IGlzIHRvIGJlIGFkZGVkCnRvIEVjbGlwc2UsIG9yIHNvbWUgYXNwZWN0IG9mIEVjbGlwc2UgdGhhdCBpcyB0byBiZSBpbXByb3ZlZC4gRWFjaCBwbGFuIGl0ZW0gaGFzCmEgdGl0bGUgYW5kIGEgY29uY2lzZSBzdW1tYXJ5ICh1c3VhbGx5IGEgc2luZ2xlIHBhcmFncmFwaCkgdGhhdCBleHBsYWlucyB0aGUKd29yayBpdGVtIGF0IGEgc3VpdGFibHkgaGlnaCBlbm91Z2ggbGV2ZWwgc28gdGhhdCBldmVyeW9uZSBjYW4gcmVhZGlseQp1bmRlcnN0YW5kIHdoYXQgdGhlIHdvcmsgaXRlbSBpcyB3aXRob3V0IGhhdmluZyB0byB1bmRlcnN0YW5kIHRoZSBuaXR0eS1ncml0dHkKZGV0YWlscyAod2hpY2ggY2FuIGJlIGhhc2hlZCBvdXQgZWxzZXdoZXJlKS4mbmJzcDsKPHA+Tm90IGFsbCBwbGFuIGl0ZW1zIHJlcHJlc2VudCB0aGUgc2FtZSBhbW91bnQgb2Ygd29yazsgc29tZSBtYXkgYmUgcXVpdGUgbGFyZ2UsIAogIG90aGVycywgcXVpdGUgc21hbGwuIFNvbWUgcGxhbiBpdGVtcyBtYXkgaW52b2x2ZSB3b3JrIHRoYXQgaXMgbG9jYWxpemVkIHRvIGEgCiAgc2luZ2xlIFBsYXRmb3JtIGNvbXBvbmVudDsgb3RoZXJzIG1heSBpbnZvbHZlIGNvb3JkaW5hdGVkIGNoYW5nZXMgdG8gc2V2ZXJhbCAKICBjb21wb25lbnRzOyBvdGhlciBtYXkgcGVydmFkZSB0aGUgZW50aXJlIFBsYXRmb3JtLgo8cD5XaXRoIHRoZSBwcmV2aW91cyByZWxlYXNlIGFzIHRoZSBzdGFydGluZyBwb2ludCwgdGhpcyBpcyB0aGUgcGxhbiBmb3IgaG93IHdlIAogIHdpbGwgZW5oYW5jZSBhbmQgaW1wcm92ZSBpdC4gRml4aW5nIGJ1Z3MsIGltcHJvdmluZyB0ZXN0IGNvdmVyYWdlLCBkb2N1bWVudGF0aW9uLCAKICBleGFtcGxlcywgZXRjLiBhcmUgY29uc2lkZXJlZCByb3V0aW5lIG9uZ29pbmcgbWFpbnRlbmFuY2UgYWN0aXZpdGllcyBhbmQgYXJlIAogIG5vdCBpbmNsdWRlZCBpbiB0aGlzIHBsYW4gdW5sZXNzIHRoZXkgd291bGQgYWxzbyBpbnZvbHZlIGEgc2lnbmlmaWNhbnQgY2hhbmdlIAogIHRvIHRoZSBBUEkgb3IgZmVhdHVyZSBzZXQsIG9yIGludm9sdmUgYSBzaWduaWZpY2FudCBhbW91bnQgb2Ygd29yay4gQWxsIGludGVyZXN0aW5nIAogIGZlYXR1cmUgd29yayBpcyBhY2NvdW50ZWQgZm9yIGluIHRoaXMgcGxhbi4KPHA+VGhlIGN1cnJlbnQgc3RhdHVzIG9mIGVhY2ggcGxhbiBpdGVtIGlzCm5vdGVkOgo8dWw+CiAgPGxpPjxiPlByb3Bvc2VkPC9iPiBwbGFuIGl0ZW0gLSBBIHByb3Bvc2FsIGZvciBhbiBhc3BlY3QgdG8gd29yayBvbiBmb3IgdGhlCiAgICByZWxlYXNlLiBBZnRlciBkdWUgY29uc2lkZXJhdGlvbiwgYSBwcm9wb3NhbCB3aWxsIGVpdGhlciBiZSBjb21taXR0ZWQsCiAgICByZWplY3RlZCwgb3IgZGVmZXJyZWQuPC9saT4KICA8bGk+PGI+Q29tbWl0dGVkPC9iPiBwbGFuIGl0ZW0gLSBBIGNvbW1pdHRlZCBwbGFuIGl0ZW0gaXMgb25lIHRoYXQgd2UgaGF2ZSBkZWNpZGVkIAogICAgdG8gYWRkcmVzcyBmb3IgdGhlIHJlbGVhc2UuPC9saT4KICA8bGk+PGI+RGVmZXJyZWQ8L2I+IHBsYW4gaXRlbSAtIEEgcmVhc29uYWJsZSBwcm9wb3NhbCB0aGF0IGRpZCBub3QgbWFrZSBpdCBpbiAKICAgIHRvIHRoaXMgcmVsZWFzZSBmb3Igc29tZSByZWFzb24gaXMgbWFya2VkIGFzIGRlZmVycmVkIHdpdGggYSBicmllZiBub3RlIGFzIAogICAgdG8gd2h5IHRoZXkgd2VyZSBkZWZlcnJlZC4gRGVmZXJyZWQgcGxhbiBpdGVtcyBtYXkgcmVzdXJmYWNlIGFzIHByb3Bvc2VkIHBsYW4gCiAgICBpdGVtcyBhdCBhIGxhdGVyIHBvaW50LjwvbGk+CiAgPGxpPjxiPlJlamVjdGVkPC9iPiBwbGFuIGl0ZW0gLSBQbGFuIGl0ZW1zIHRoYXQgd2VyZSBwcm9wb3NlZCBidXQganVkZ2VkIHVud29ya2FibGUgCiAgICBhcmUgbWFya2VkIGFzIHJlamVjdGVkIHBsYW4gaXRlbXMsIHdpdGggYW4gYWNjb21wYW55aW5nIHN1bW1hcnkgb2Ygd2h5IHRoZXkgCiAgICB3ZXJlIGRpc21pc3NlZC4gS2VlcGluZyB0cmFjayBvZiByZWplY3RlZCBpdGVtcyBhdm9pZHMgcmVwZWF0aW5nIHRoZSBkaXNjdXNzaW9uLjwvbGk+CjwvdWw+CjxoMj5SZWxlYXNlIGRlbGl2ZXJhYmxlczwvaDI+Cgo8cD5UaGUgcmVsZWFzZSBkZWxpdmVyYWJsZXMgaGF2ZSB0aGUgc2FtZSBmb3JtIGFzIHByZXZpb3VzIHJlbGVhc2VzLCBuYW1lbHk6Cgo8dWw+CgogIDxsaT5Tb3VyY2UgY29kZSByZWxlYXNlIGZvciBFY2xpcHNlIFByb2plY3QsIGF2YWlsYWJsZSBhcyB2ZXJzaW9ucyB0YWdnZWQgJnF1b3Q7UjJfMSZxdW90OyAKICAgIGluIHRoZSBFY2xpcHNlIFByb2plY3QgPGEgaHJlZj0iaHR0cDovL2Rldi5lY2xpcHNlLm9yZy92aWV3Y3ZzLyI+Q1ZTIHJlcG9zaXRvcnk8L2E+LjwvbGk+CgogIDxsaT5FY2xpcHNlIFByb2plY3QgU0RLIChpbmNsdWRlcyBQbGF0Zm9ybSwgSkRULCBhbmQgUERFIHNvdXJjZSB6aXBzKQoKICAgIChkb3dubG9hZGFibGUpLjwvbGk+CgogIDxsaT5FY2xpcHNlIFBsYXRmb3JtIHJ1bnRpbWUgYmluYXJ5IGRpc3RyaWJ1dGlvbiAoZG93bmxvYWRhYmxlKS48L2xpPgoKICA8bGk+SkRUIHJ1bnRpbWUgYmluYXJ5IGRpc3RyaWJ1dGlvbiAoZG93bmxvYWRhYmxlKS48L2xpPgoKICA8bGk+RWNsaXBzZSBTREsgRXhhbXBsZXMgKGRvd25sb2FkYWJsZSkuPC9saT4KCjwvdWw+Cgo8aDI+PGEgbmFtZT0iTWlsZXN0b25lcyI+PC9hPlJlbGVhc2UgbWlsZXN0b25lczwvaDI+Cgo8cD5SZWxlYXNlIG1pbGVzdG9uZSBvY2N1cnJpbmcgYXQgcm91Z2hseSBtb250aGx5IGludGVydmFscyBleGlzdCB0byBmYWNpbGl0YXRlCmNvYXJzZS1ncmFpbmVkIHBsYW5uaW5nIGFuZCBzdGFnaW5nLiBUaGUgbWlsZXN0b25lcyBmb3IgdGhlIHJlbWFpbmRlciBvZiB0aGlzCnllYXIgYXJlOjwvcD4KCjx1bD4KICA8bGk+U2VwdGVtYmVyIDIwLCAyMDAyIC0gTWlsZXN0b25lIDEgLSAoMi4xIE0xKSAtIHN0YWJsZSBidWlsZCByZWZsZWN0aW5nIHByb2dyZXNzPC9saT4KICA8bGk+T2N0b2JlciAxOCwgMjAwMiAtIE1pbGVzdG9uZSAyIC0gKDIuMSBNMikgLSBzdGFibGUgYnVpbGQgcmVmbGVjdGluZyBwcm9ncmVzczwvbGk+CiAgPGxpPk5vdmVtYmVyIDE1LCAyMDAyIC0gTWlsZXN0b25lIDMgLSAoMi4xIE0zKSAtIHN0YWJsZSBidWlsZCByZWZsZWN0aW5nCiAgICBwcm9ncmVzczwvbGk+CiAgPGxpPkRlY2VtYmVyIDEzLCZuYnNwOyAyMDAyIC0gTWlsZXN0b25lIDQgLSAoMi4xIE00KSAtIHN0YWJsZSBidWlsZCByZWZsZWN0aW5nCiAgICBwcm9ncmVzczwvbGk+CjwvdWw+Cgo8cD4gQWRkaXRpb25hbCAyMDAzIG1pbGVzdG9uZXMgd2lsbCBiZSBhZGRlZCBsYXRlci4gT3VyIHRhcmdldAppcyB0byBjb21wbGV0ZSAyLjEgbGF0ZSBpbiAxUTIwMDMuIEFsbCByZWxlYXNlIGRlbGl2ZXJhYmxlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgYXMgCiAgc29vbiBhcyB0aGUgcmVsZWFzZSBoYXMgYmVlbiB0ZXN0ZWQgYW5kIHZhbGlkYXRlZCBpbiB0aGUgdGFyZ2V0IG9wZXJhdGluZyBjb25maWd1cmF0aW9ucyAKICBsaXN0ZWQgYmVsb3cuPC9wPgoKPGgyPlRhcmdldCBPcGVyYXRpbmcgRW52aXJvbm1lbnRzPC9oMj4KCgoKPHA+SW4gb3JkZXIgdG8gcmVtYWluIGN1cnJlbnQsIGVhY2ggRWNsaXBzZSByZWxlYXNlIHRhcmdldHMgcmVhc29uYWJseSBjdXJyZW50CnZlcnNpb25zIG9mIHRoZSB1bmRlcmx5aW5nIG9wZXJhdGluZyBlbnZpcm9ubWVudHMuPC9wPgoKPHA+TW9zdCBvZiB0aGUgRWNsaXBzZSBTREsgaXMgJnF1b3Q7cHVyZSZxdW90OyBKYXZhmSBjb2RlIGFuZCBoYXMgbm8gZGlyZWN0CmRlcGVuZGVuY2Ugb24gdGhlIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbS4gVGhlIGNoaWVmIGRlcGVuZGVuY2UgaXMgdGhlcmVmb3JlCm9uIHRoZSBKYXZhIDIgUGxhdGZvcm0gaXRzZWxmLiBUaGUgMi4wIHJlbGVhc2Ugb2YgdGhlIEVjbGlwc2UgUHJvamVjdCBpcyB3cml0dGVuCmFuZCBjb21waWxlZCBhZ2FpbnN0IHZlcnNpb24gMS4zIG9mIHRoZSBKYXZhIDIgUGxhdGZvcm0gQVBJcywgYW5kIHRhcmdldGVkIHRvCnJ1biBvbiBlaXRoZXIgdmVyc2lvbiAxLjMgb3IgMS40IG9mIHRoZSBKYXZhIDIgUnVudGltZSBFbnZpcm9ubWVudCwgU3RhbmRhcmQKRWRpdGlvbi48L3A+CjxwPkVjbGlwc2UgU0RLIDIuMCBoYXMgYmVlbiB0ZXN0ZWQgYW5kIHZhbGlkYXRlZCBvbiB0aGUgZm9sbG93aW5nIEphdmEgMgpQbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbnM6PC9wPgo8dGFibGUgd2lkdGg9IjkxJSIgYm9yZGVyPSIxIj4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0ZCB3aWR0aD0iMTklIj48Yj5PcGVyYXRpbmcgc3lzdGVtPC9iPjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMTglIj48Yj5Qcm9jZXNzb3IgYXJjaGl0ZWN0dXJlPC9iPjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iNzMlIj48Yj5KYXZhIDIgUGxhdGZvcm1zPC9iPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9IjE5JSIgcm93U3Bhbj0iNCI+TWljcm9zb2Z0rjxicj4KICAgICAgICBXaW5kb3dzrjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMTglIiByb3dTcGFuPSI0Ij5JbnRlbCB4ODY8L3RkPgogICAgICA8dGQgd2lkdGg9IjczJSI+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4KICAgICAgICBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjMuMV8wNCBmb3IKICAgICAgICBNaWNyb3NvZnQgV2luZG93czwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9IjczJSI+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4KICAgICAgICBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjQuMSBmb3IKICAgICAgICBNaWNyb3NvZnQgV2luZG93czwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9IjczJSI+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4KICAgICAgICBJQk0gRGV2ZWxvcGVyIEtpdCBmb3IgV2luZG93cywgSmF2YSAyIFRlY2hub2xvZ3kgRWRpdGlvbiwgdmVyc2lvbiAxLjMuMQogICAgICAgIFNSLTE8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSI3MyUiPjxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+CiAgICAgICAgSUJNIDMyLWJpdCBTREsgZm9yIFdpbmRvd3MsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24sIHZlcnNpb24gMS40LjA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSIxOSUiIHJvd1NwYW49IjMiPkxpbnV4PC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOCUiIHJvd1NwYW49IjMiPkludGVsIHg4NjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iNzMlIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPgogICAgICAgIFN1biBKYXZhIDIgU0RLLCBTdGFuZGFyZCBFZGl0aW9uLCB2ZXJzaW9uIDEuMy4xXzA0IGZvciBMaW51eAogICAgICAgIHg4NjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9IjczJSI+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4KICAgICAgICBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjQuMSBmb3IgTGludXgKICAgICAgICB4ODY8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSI3MyUiPjxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+CiAgICAgICAgSUJNIERldmVsb3BlciBLaXQgZm9yIExpbnV4LCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uLAogICAgICAgIHZlcnNpb24gMS4zLjEgU1ItMTwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9IjE5JSIgcm93U3Bhbj0iMiI+U3VuIFNvbGFyaXM8L3RkPgogICAgICA8dGQgd2lkdGg9IjE4JSIgcm93U3Bhbj0iMiI+U1BBUkM8L3RkPgogICAgICA8dGQgd2lkdGg9IjczJSI+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4KICAgICAgICBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjMuMV8wNCBmb3IKICAgICAgICBTb2xhcmlzIFNQQVJDPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCB3aWR0aD0iNzMlIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPgogICAgICAgIFN1biBKYXZhIDIgU0RLLCBTdGFuZGFyZCBFZGl0aW9uLCB2ZXJzaW9uIDEuNC4xIGZvciBTb2xhcmlzCiAgICAgICAgU1BBUkM8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSIxOSUiPkhQIEhQLVVYPC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOCUiPmhwOTAwMCBQQS1SSVNDPC90ZD4KICAgICAgPHRkIHdpZHRoPSI3MyUiPjxzcGFuIGNsYXNzPSJoZWFkZXIiPkhQLVVYIFNESyBmb3IgdGhlIEphdmEgMiBwbGF0Zm9ybSwKICAgICAgICB2ZXJzaW9uIDEuMy4xIGZvciBocDkwMDAgUEEtUklTQzwvc3Bhbj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSIxOSUiPklCTa4gQUlYPC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOCUiPlBvd2VyUEM8L3RkPgogICAgICA8dGQgd2lkdGg9IjczJSI+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4KICAgICAgICBJQk0gRGV2ZWxvcGVyIEtpdCBmb3IgQUlYLCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uLAogICAgICAgIHZlcnNpb24gMS4zLjE8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSIxOSUiPkFwcGxlriBNYWOuIE9TPC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOCUiPlBvd2VyUEM8L3RkPgogICAgICA8dGQgd2lkdGg9IjczJSI+SmF2YSAyIFN0YW5kYXJkIEVkaXRpb24gMS4zLjEgZm9yIE1hYyBPUyBYIDEwLjI8L3RkPgogICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgo8cD48c3BhbiBjbGFzcz0iaGVhZGVyIj5UaGUgZm9sbG93aW5nIHRhYmxlIGRlc2NyaWJlcyB0aGUgY29tYmluYXRpb25zIG9mCm9wZXJhdGluZyBzeXN0ZW0gYW5kIEphdmEgMiBQbGF0Zm9ybSB1c2VkIHdoZW4gdGVzdGluZyB0aGUgRWNsaXBzZSBTREsKY29uZmlndXJhdGlvbnMuIFRoZSBzdGF0dXMgY29sdW1uIGluZGljYXRlcyB0aGUgbGV2ZWwgb2YgdGVzdGluZzoKJnF1b3Q7UHJpbWFyeSZxdW90OyBtZWFucyBhIGZ1bGwgdGVzdGVkIGNvbmZpZ3VyYXRpb247ICZxdW90Ozwvc3Bhbj5TZWNvbmRhcnkmcXVvdDsKbWVhbnMgYSBjb25maWd1cmF0aW9uIHdoaWNoIGlzIG9ubHkgbGlnaHRseSB0ZXN0ZWQ7ICZxdW90O1VudGVzdGVkJnF1b3Q7IG1lYW5zIGEKY29uZmlndXJhdGlvbiB0aGF0IGhhcyByZWNlaXZlZCBubyB0ZXN0aW5nLCBidXQgd2hpY2ggc2hvdWxkIHdvcmsuPC9wPgo8dGFibGUgd2lkdGg9IjkxJSIgYm9yZGVyPSIxIj4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0ZCB3aWR0aD0iMTElIj48Yj5XaW5kb3cgc3lzdGVtPC9iPjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMjglIj48Yj5KYXZhIDIgUGxhdGZvcm08YnI+CiAgICAgICAgKHNlZSBhYm92ZSB0YWJsZSk8L2I+PC90ZD4KICAgICAgPHRkIHdpZHRoPSI0MiUiPjxiPk9wZXJhdGluZyBFbnZpcm9ubWVudDwvYj48L3RkPgogICAgICA8dGQgd2lkdGg9IjE5JSI+PGI+VGVzdGluZyBTdGF0dXM8L2I+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCB3aWR0aD0iMTElIiByb3dTcGFuPSI1Ij5XaW4zMjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMjglIiByb3dTcGFuPSI1Ij5XaW5kb3dzIG9uIEludGVsIHg4NjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iNDIlIj5XaW5kb3dzIFhQPC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOSUiPlByaW1hcnk8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSI0MiUiPldpbmRvd3MgMjAwMDwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMTklIj5QcmltYXJ5PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCB3aWR0aD0iNDIlIj5XaW5kb3dzIE1FPC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOSUiPlNlY29uZGFyeTwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9IjQyJSI+V2luZG93cyA5OFNFPC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOSUiPlNlY29uZGFyeTwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9IjQyJSI+V2luZG93cyBOVDwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMTklIj5TZWNvbmRhcnk8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSIxMSUiIHJvd1NwYW49IjYiPk1vdGlmPC90ZD4KICAgICAgPHRkIHdpZHRoPSIyOCUiIHJvd1NwYW49IjMiPiZuYnNwOwogICAgICAgIDxwPkxpbnV4IG9uIEludGVsIHg4NjwvcD4KICAgICAgICA8cD4mbmJzcDs8L3A+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iNDIlIj5SZWRIYXQgTGludXggNy4yIHg4NjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMTklIj5QcmltYXJ5PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCB3aWR0aD0iNDIlIj5TdVNFIExpbnV4IDcuMyB4ODY8L3RkPgogICAgICA8dGQgd2lkdGg9IjE5JSI+UHJpbWFyeTwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9IjQyJSI+T3RoZXIgTGludXg7IGtlcm5lbCB2ZXJzaW9uIDIuNC43LCBhbmQgWEZyZWU4NiB2ZXJzaW9uCiAgICAgICAgNC4xLjA8L3RkPgogICAgICA8dGQgd2lkdGg9IjE5JSI+VW50ZXN0ZWQ8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSIyOCUiPlNvbGFyaXMgb24gU1BBUkMmbmJzcDs8L3RkPgogICAgICA8dGQgd2lkdGg9IjQyJSI+U3VuIFNvbGFyaXMgOCBTUEFSQzwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMTklIj5QcmltYXJ5PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCB3aWR0aD0iMjglIj5IUC1VWCBvbiBocDkwMDAgUEEtUklTQzwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iNDIlIj5IUC1VWCAxMWkgaHA5MDAwPC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOSUiPlByaW1hcnk8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSIyOCUiPkFJWCBvbiBQb3dlclBDPC90ZD4KICAgICAgPHRkIHdpZHRoPSI0MiUiPklCTSBBSVggNS4xIG9uIFBvd2VyUEM8L3RkPgogICAgICA8dGQgd2lkdGg9IjE5JSI+UHJpbWFyeTwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9IjExJSIgcm93U3Bhbj0iMyI+R1RLPC90ZD4KICAgICAgPHRkIHdpZHRoPSIyOCUiIHJvd1NwYW49IjMiPkxpbnV4IG9uIEludGVsIHg4NjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iNDIlIj5SZWRIYXQgTGludXggNy4yIHg4NiBHVEsgMi4wPC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOSUiPlByaW1hcnk8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSI0MiUiPlN1U0UgTGludXggNy4zIHg4NiBHVEsgMi4wPC90ZD4KICAgICAgPHRkIHdpZHRoPSIxOSUiPlByaW1hcnk8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSI0MiUiPk90aGVyIExpbnV4OyBrZXJuZWwgdmVyc2lvbiAyLjQuNywgYW5kIEdUSyAyLjA8L3RkPgogICAgICA8dGQgd2lkdGg9IjE5JSI+VW50ZXN0ZWQ8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSIxMSUiPkNhcmJvbjwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMjglIj5NYWMgT1MgWCBvbiBQb3dlclBDPC90ZD4KICAgICAgPHRkIHdpZHRoPSI0MiUiPk1hYyBPUyBYIDEwLjI8L3RkPgogICAgICA8dGQgd2lkdGg9IjE5JSI+PGk+RWFybHkgYWNjZXNzPC9pPjwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CjxoND5JbnRlcm5hdGlvbmFsaXphdGlvbjwvaDQ+CjxwPlRoZSBFY2xpcHNlIFBsYXRmb3JtIGlzIGRlc2lnbmVkIGFzIHRoZSBiYXNpcyBmb3IgaW50ZXJuYXRpb25hbGl6ZWQgcHJvZHVjdHMuClRoZSB1c2VyIGludGVyZmFjZSBlbGVtZW50cyBwcm92aWRlZCBieSB0aGUgRWNsaXBzZSBTREsgY29tcG9uZW50cywgaW5jbHVkaW5nCmRpYWxvZ3MgYW5kIGVycm9yIG1lc3NhZ2VzLCBhcmUgZXh0ZXJuYWxpemVkLiBUaGUgRW5nbGlzaCBzdHJpbmdzIGFyZSBwcm92aWRlZAphcyB0aGUgZGVmYXVsdCByZXNvdXJjZSBidW5kbGVzLjwvcD4KPHA+TGF0aW4tMSBsb2NhbGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIEVjbGlwc2UgU0RLIG9uIGFsbCBvZiB0aGUgYWJvdmUKb3BlcmF0aW5nIGVudmlyb25tZW50czsgREJDUyBsb2NhbGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIEVjbGlwc2UgU0RLIG9uCnRoZSBXaW5kb3dzLCBHVEssIGFuZCBNb3RpZiB3aW5kb3cgc3lzdGVtczsgQklESSBsb2NhbGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIEVjbGlwc2UgU0RLCm9ubHkgb24gV2luZG93cyBvcGVyYXRpbmcgZW52aXJvbm1lbnRzLgo8cD5UaGUgRWNsaXBzZSBTREsgc3VwcG9ydHMgR0IgMTgwMzAsIHRoZSBuZXcgQ2hpbmVzZSBjb2RlIHBhZ2Ugc3RhbmRhcmQsIG9uCldpbmRvd3MgMjAwMCBhbmQgWFAgb25seS4gTm90ZSB0aGF0IEdCIDE4MDMwIGFsc28gcmVxdWlyZXMgbG9jYWxlIGFuZCBjaGFyYWN0ZXIKZW5jb2Rpbmcgc3VwcG9ydCBmcm9tIHRoZSBKYXZhIDIgUnVudGltZSBFbnZpcm9ubWVudDsgdGhpcyBzdXBwb3J0IGlzIHN0YW5kYXJkCmluIHZlcnNpb24gMS40LCBhbmQgYWxzbyBhdmFpbGFibGUgaW4gc29tZSAxLjMgSlJFcy4KPHA+R2VybWFuIGFuZCBKYXBhbmVzZSBsb2NhbGVzIGhhdmUgYmVlbiB0ZXN0ZWQuCjxoND5CSURJIHN1cHBvcnQ8L2g0Pgo8cD5UaGUgRWNsaXBzZSBTREsgaXMgYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB0YXJnZXRlZCBhdCB0ZWNobmljYWwKcHJvZmVzc2lvbmFscyAtIG5vdCBhbiBlbmQgdXNlciBhcHBsaWNhdGlvbi4gSG93ZXZlciwgdGhlIEVjbGlwc2UgU0RLIHRvb2xzIHdpbGwKcGVybWl0IHRlY2huaWNhbCBwcm9mZXNzaW9uYWxzIHdobyBhcmUgd29ya2luZyBpbiBFbmdsaXNoIHRvIGJ1aWxkIEhlYnJldy9BcmFiaWMKZW5kIHVzZXIgSmF2YSBwcm9ncmFtcyB3aGljaCBhcmUgdGhlbXNlbHZlcyBub3QgYmFzZWQgb24gdGhlIEVjbGlwc2UgU0RLLiBUaGUKQklESSBzdXBwb3J0IGluIHRoZSBFY2xpcHNlIFNESyBhbGxvd3MgYSBKYXZhIHByb2dyYW1tZXIgdG8gd29yayB3aXRoIEJJREkKc3RyaW5ncywgY29kZSBjb21tZW50cywgZXRjLiBidXQgdGhlIEVjbGlwc2UgU0RLIGl0c2VsZiBpcyBub3QgZGVzaWduZWQgdG8gYmUKbG9jYWxpemVkIGZvciBCSURJIGxvY2FsZXMgYW5kIGl0cyB3aWRnZXQgb3JpZW50YXRpb24gY2FuIG5vdCBiZSBjaGFuZ2VkLjwvcD4KPHA+PGk+SU1QT1JUQU5UOiBUaGUgYWJvdmUgQklESSBzdXBwb3J0IGlzIGF2YWlsYWJsZSBvbmx5IG9uIFdpbmRvd3MgcGxhdGZvcm1zLjwvaT48L3A+Cgo8aDI+CgpDb21wYXRpYmlsaXR5IHdpdGggUHJldmlvdXMgUmVsZWFzZXM8L2gyPgoKPHA+CgpJdCBpcyBhIGdpdmVuIHRoYXQgRWNsaXBzZSAyLjEgd2lsbCBiZSB1cHdhcmRzIGNvbXBhdGlibGUgd2l0aCBFY2xpcHNlIDIuMC4gQW5kCmluY29tcGF0aWJsZSBicmVhayB3aXRoIHRoZSBwYXN0IHRoaXMgZWFybHkgb24gd291bGQgYmUgYm90aCB1bndlbGNvbWUgYW5kCnVud2FycmFudGVkLjwvcD4KCjxoMz4KCkNvbXBhdGliaWxpdHkgb2YgUmVsZWFzZSAyLjEgd2l0aCAyLjA8L2gzPgoKVGhlIEVjbGlwc2UgU0RLIDIuMSB3aWxsIGJlIHVwd2FyZHMgY29tcGF0aWJsZSB3aXRoIHRoZSBFY2xpcHNlIFNESyAyLjAgdG8gdGhlIApncmVhdGVzdCBleHRlbnQgcG9zc2libGUuIFdlIGFudGljaXBhdGUgYSBzbWFsbCBudW1iZXIgb2YgYXJlYXMgd2hlcmUgc2xhdmlzaGx5IAptYWludGFpbmluZyBjb21wYXRpYmlsaXR5IHdvdWxkIG5vdCBiZSBpbiB0aGUgYmVzdCBpbnRlcmVzdHMgb2YgdGhlIFBsYXRmb3JtIG9yIAppdHMgY2xpZW50cy4gQWxsIHN1Y2ggZXhjZXB0aW9ucyB3aWxsIGJlIG5vdGVkIGluIHRoZSAyLjEgcmVsZWFzZSBub3RlcyBzbyB0aGF0IApjbGllbnRzIGNhbiBhc3Nlc3MgdGhlIGltcGFjdCBvZiB0aGVzZSBjaGFuZ2VzIG9uIHRoZWlyIHBsdWctaW5zIGFuZCBwcm9kdWN0cy4KCjxwPjxiPkFQSSBDb250cmFjdCBDb21wYXRpYmlsaXR5OjwvYj4gVGhlIEVjbGlwc2UgU0RLIDIuMSB3aWxsIGJlIHVwd2FyZHMgY29udHJhY3QtY29tcGF0aWJsZSAKICB3aXRoIHRoZSBFY2xpcHNlIFNESyAyLjAgdW5sZXNzIG5vdGVkLiBUaGlzIG1lYW5zIHRoYXQgcHJvZ3JhbXMgaW4gZnVsbCBjb21wbGlhbmNlIAogIHdpdGggY29udHJhY3RzIHNwZWNpZmllZCBpbiB0aGUgRWNsaXBzZSBTREsgMi4wIEFQSXMgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGluIAogIGZ1bGwgY29tcGxpYW5jZSB3aXRoIHRoZSBFY2xpcHNlIFNESyAyLjEgQVBJcy4gKEFQSSBpcyBjb25zdHJ1ZWQgYnJvYWRseSB0byAKICBpbmNsdWRlIHN1Y2ggdGhpbmdzIGFzIHBsdWctaW4gZXh0ZW5zaW9uIHBvaW50cy4pIERvd253YXJkIGNvbnRyYWN0IGNvbXBhdGliaWxpdHkgCiAgaXMgbm90IHN1cHBvcnRlZC4gVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgY29tcGxpYW5jZSB3aXRoIHRoZSBFY2xpcHNlIFNESyAKICAyLjEgQVBJcyB3b3VsZCBlbnN1cmUgY29tcGxpYW5jZSB3aXRoIHRoZSBFY2xpcHNlIFNESyAyLjAgQVBJcy4gCjxwPjxiPkJpbmFyeSAocGx1Zy1pbikgQ29tcGF0aWJpbGl0eTo8L2I+IFRoZSBFY2xpcHNlIFNESyAyLjEgd2lsbCBiZSB1cHdhcmRzIAogIGJpbmFyeS1jb21wYXRpYmxlIHdpdGggdGhlIEVjbGlwc2UgU0RLIDIuMCB1bmxlc3Mgbm90ZWQuIFRoaXMgbWVhbnMgdGhhdCBwbHVnLWlucyAKICBidWlsdCBmb3IgdGhlIEVjbGlwc2UgU0RLIDIuMCB3aWxsIGNvbnRpbnVlIHRvIHdvcmsgY29ycmVjdGx5IGluIHRoZSBFY2xpcHNlIAogIFNESyAyLjEgd2l0aG91dCBjaGFuZ2UuIERvd253YXJkIHBsdWctaW4gY29tcGF0aWJpbGl0eSBpcyBub3Qgc3VwcG9ydGVkLiBQbHVnLWlucyAKICBmb3IgdGhlIEVjbGlwc2UgU0RLIDIuMSBhcmUgdW5saWtlbHkgdG8gYmUgdXNhYmxlIGluIHRoZSBFY2xpcHNlIFNESyAyLjAuIFBsdWctaW5zIAogIHdpdGggaGFyZC1jb2RlZCByZWZlcmVuY2VzIGluIHRoZWlyIHBsdWctaW4gbWFuaWZlc3QgZmlsZSB0byAyLjAgdmVyc2lvbnMgb2YgCiAgcHJlcmVxdWlzaXRlIEVjbGlwc2UgUHJvamVjdCBwbHVnLWlucyB3aWxsIHdvcmsgaW4gMi4xIHByb3ZpZGVkIHRoZSB2ZXJzaW9uIG1hdGNoCnJ1bGUgaXMgJnF1b3Q7Z3JlYXRlck9yRXF1YWwmcXVvdDsKb3IgJnF1b3Q7Y29tcGF0aWJsZSZxdW90OyAodGhlIGRlZmF1bHQpOyByZWZlcmVuY2VzCnVzaW5nICZxdW90O3BlcmZlY3QmcXVvdDsgb3IgJnF1b3Q7ZXF1aXZhbGVudCZxdW90OyBtYXRjaCBydWxlcyB3aWxsIGJlIGJyb2tlbi4gCjxwPjxiPlNvdXJjZSBDb21wYXRpYmlsaXR5OjwvYj4gVGhlIEVjbGlwc2UgU0RLIDIuMSB3aWxsIGJlIHVwd2FyZHMgc291cmNlLWNvbXBhdGlibGUgCiAgd2l0aCB0aGUgRWNsaXBzZSBTREsgMi4wIHVubGVzcyBub3RlZC4gVGhpcyBtZWFucyB0aGF0IHNvdXJjZSBmaWxlcyB3cml0dGVuIAogIHRvIHVzZSB0aGUgRWNsaXBzZSBTREsgMi4wIEFQSXMgY2FuIGJlIHN1Y2Nlc3NmdWxseSBjb21waWxlZCBhbmQgcnVuIGFnYWluc3QgCiAgdGhlIEVjbGlwc2UgU0RLIDIuMSBBUElzLiBTaW5jZSBzb3VyY2UgaW5jb21wYXRpYmlsaXRpZXMgYXJlIGVhc3kgdG8gZGVhbCB3aXRoLCAKICBtYWludGFpbmluZyBzb3VyY2UgY29tcGF0aWJpbGl0eSBpcyBjb25zaWRlcmVkIG11Y2ggbGVzcyBpbXBvcnRhbnQgdGhhbiBtYWludGFpbmluZyAKICBjb250cmFjdCBhbmQgYmluYXJ5IGNvbXBhdGliaWxpdHkuIERvd253YXJkIHNvdXJjZSBjb21wYXRpYmlsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuIAogIElmIHNvdXJjZSBmaWxlcyB1c2UgbmV3IEVjbGlwc2UgU0RLIEFQSXMsIHRoZXkgd2lsbCBub3QgYmUgdXNhYmxlIHdpdGggYW4gZWFybGllciAKICB2ZXJzaW9uIG9mIHRoZSBFY2xpcHNlIFNESy4gCjxwPjxiPldvcmtzcGFjZSBDb21wYXRpYmlsaXR5OjwvYj4gRWNsaXBzZSBTREsgMi4xIHdpbGwgYmUgdXB3YXJkcwoKd29ya3NwYWNlLWNvbXBhdGlibGUgd2l0aCBFY2xpcHNlIFNESyAyLjAgdW5sZXNzIG5vdGVkLiBUaGlzIG1lYW5zIHRoYXQKCndvcmtzcGFjZXMgYW5kIHByb2plY3RzIGNyZWF0ZWQgd2l0aCBFY2xpcHNlIFNESyAyLjAgY2FuIGJlIHN1Y2Nlc3NmdWxseSBvcGVuZWQgYnkgRWNsaXBzZSBTREsKMi4xIGFuZCB1cGdyYWRlZCB0byBhIDIuMSB3b3Jrc3BhY2UuJm5ic3A7IEluZGl2aWR1YWwgcGx1Zy1pbnMgZGV2ZWxvcGVkIGZvcgoKRWNsaXBzZSBTREsgMi4wIHNob3VsZCBwcm92aWRlIHNpbWlsYXIgdXB3YXJkcyBjb21wYXRpYmlsaXR5IGZvciB0aGVpciB3b3Jrc3BhY2UKCm1ldGFkYXRhOyBwbHVnLWluIGRldmVsb3BlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyB0aGF0IHRoZWlyIHBsdWctaW5zCgpyZWNvZ25pemUgMi4wIG1ldGFkYXRhIGFuZCBwcm9jZXNzIGl0IGFwcHJvcHJpYXRlbHkuIFVzZXIgaW50ZXJmYWNlIHNlc3Npb24gc3RhdGUgbWF5IGJlIGRpc2NhcmRlZAp3aGVuIGEgd29ya3NwYWNlIGlzIHVwZ3JhZGVkLiZuYnNwOyBEb3dud2FyZCB3b3Jrc3BhY2UgY29tcGF0aWJpbGl0eSBpcyBub3Qgc3VwcG9ydGVkLiBBIHdvcmtzcGFjZSBjcmVhdGVkCgoob3Igb3BlbmVkKSBieSBFY2xpcHNlIFNESyAyLjEgd2lsbCBiZSB1bnVzYWJsZSB3aXRoIGFuIGVhcmxpZXIgdmVyc2lvbgoKb2YgRWNsaXBzZSBTREsuJm5ic3A7Jm5ic3A7Cgo8cD48Yj5Ob24tY29tcGxpYW50IHVzYWdlIG9mIEFQSSdzPC9iPjogQWxsIG5vbi1BUEkgbWV0aG9kcyBhbmQgY2xhc3NlcywgYW5kIGNlcnRhaW5seSAKICBldmVyeXRoaW5nIGluIGEgcGFja2FnZSB3aXRoICZxdW90O2ludGVybmFsJnF1b3Q7IGluIGl0cyBuYW1lLCBhcmUgY29uc2lkZXJlZCAKICBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHdoaWNoIG1heSB2YXJ5IGJldHdlZW4gb3BlcmF0aW5nIGVudmlyb25tZW50IGFuZCBhcmUgCiAgc3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuIENsaWVudCBwbHVnLWlucyB0aGF0IGRpcmVjdGx5IGRlcGVuZCBvbiBhbnl0aGluZyAKICBvdGhlciB0aGFuIHdoYXQgaXMgc3BlY2lmaWVkIGluIHRoZSBFY2xpcHNlIFNESyBBUEkgYXJlIGluaGVyZW50bHkgdW5zdXBwb3J0YWJsZSAKICBhbmQgcmVjZWl2ZSBubyBndWFyYW50ZWVzIGFib3V0IGNvbXBhdGliaWxpdHkgd2l0aGluIGEgc2luZ2xlIHJlbGVhc2UgbXVjaCBsZXNzIAogIHdpdGggYW4gZWFybGllciByZWxlYXNlLiBSZWZlciB0byA8aT48YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FydGljbGVzL0FydGljbGUtQVBJJTIwdXNlL2VjbGlwc2UtYXBpLXVzYWdlLXJ1bGVzLmh0bWwiPkhvdyAKICB0byBVc2UgdGhlIEVjbGlwc2UgQVBJPC9hPjwvaT4gZm9yIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0byB3cml0ZSBjb21wbGlhbnQgCiAgcGx1Zy1pbnMuIAoKPGgyPiBFY2xpcHNlIFByb2plY3QgU3VicHJvamVjdHM8L2gyPgoKVGhlIEVjbGlwc2UgUHJvamVjdCBjb25zaXN0cyBvZiAzIHN1YnByb2plY3RzLiBFYWNoIHN1YnByb2plY3QKCmlzIGNvdmVyZWQgaW4gaXRzIG93biBzZWN0aW9uOgoKPGJsb2NrcXVvdGU+PGEgaHJlZj0iI0VjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdCI+RWNsaXBzZSBQbGF0Zm9ybTwvYT4KCjxicj48YSBocmVmPSIjSmF2YSBkZXZlbG9wbWVudCB0b29saW5nIChKRFQpIHN1YnByb2plY3QiPkpEVCAtIEphdmEgZGV2ZWxvcG1lbnQgdG9vbGluZzwvYT4KCjxicj48YSBocmVmPSIjUGx1Zy1pbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCAoUERFKSBzdWJwcm9qZWN0Ij5QREUgLSBQbHVnLWluIGRldmVsb3BtZW50IGVudmlyb25tZW50PC9hPjwvYmxvY2txdW90ZT4KCjxwPkZvciBlYWNoIHN1YnByb2plY3QsIHRoZSBpdGVtcyBsaXN0ZWQgcmVmbGVjdCBuZXcgZmVhdHVyZXMgb2YgdGhlIEVjbGlwc2UgUGxhdGZvcm0sIAogIG9yIGFyZWFzIHdoZXJlIGV4aXN0aW5nIGZlYXR1cmVzIHdpbGwgYmUgc2lnbmlmaWNhbnRseSByZXdvcmtlZC4gRWFjaCBpdGVtIGluZGljYXRlcyAKICB0aGUgY29tcG9uZW50cyBhZmZlY3RlZCBieSB0aGF0IHdvcmsgaXRlbSAobWFueSBpdGVtcyBpbnZvbHZlIGNvb3JkaW5hdGVkIGNoYW5nZXMgCiAgdG8gc2V2ZXJhbCBjb21wb25lbnRzKS4KCjxoMz4KCjxhIG5hbWU9IkVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdCI+RWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0PC9hPjwvaDM+CgpUaGUgRWNsaXBzZSBQbGF0Zm9ybSBwcm92aWRlcyB0aGUgbW9zdCBmdW5kYW1lbnRhbCBidWlsZGluZyBibG9ja3MuIFRoZSBmb2xsb3dpbmcgaXRlbXMgcmVmbGVjdCBuZXcgZmVhdHVyZXMgb2YgdGhlIEVjbGlwc2UgUGxhdGZvcm0sIG9yIGFyZWFzCgp3aGVyZSBleGlzdGluZyBmZWF0dXJlcyB3aWxsIGJlIHNpZ25pZmljYW50bHkgcmV3b3JrZWQuCjxoND5Db21taXR0ZWQgSXRlbXMgKEVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdCk8L2g0Pgo8YmxvY2txdW90ZT4KPHA+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gKHJlY2VudGx5IGNvbW1pdHRlZCkgPGI+SW1wcm92ZSBzdGFydHVwIHRpbWU8L2I+LiZuYnNwOyBQcm9ncmVzcyB3YXMgbWFkZQphdCBpbXByb3Zpbmcgc3RhcnR1cCB0aW1lcyBpbiAyLjA7IGhvd2V2ZXIsIGFkZGl0aW9uYWwgaW1wcm92ZW1lbnRzIGFyZSBuZWVkZWQuIEluIGFkZGl0aW9uLCB3ZSBuZWVkIHRvIGludmVzdGlnYXRlIGRlZmVycmluZyAob3IgcGFydGlhbGx5IG9taXR0aW5nKSB0aGUKcmVjb3Zlcnkgb2YgdGhlIFVJIHN0YXRlLiBbUGxhdGZvcm0gQ29yZSwgUGxhdGZvcm0gVUldPC9wPgo8cD48aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiAocmVjZW50bHkgY29tbWl0dGVkKQo8Yj5BbGxvdyB1c2VyIGN1c3RvbWl6YWJsZQprZXkgYmluZGluZ3MuPC9iPiZuYnNwOyBFY2xpcHNlIDIuMCBzdXBwb3J0cyBjb25maWd1cmFibGUga2V5IGJpbmRpbmdzLCBidXQgb25seQpmb3IgZWRpdG9yIGtleSBiaW5kaW5ncywgYW5kIG9ubHkgY29uZmlndXJlZCBieSBhIHBsdWctaW4uIFRoZSB1c2VyIHNob3VsZCBiZQphYmxlIHRvIGludGVyYWN0aXZlbHkgY3VzdG9taXplIHRoZQprZXkgYmluZGluZ3MgZm9yIGFsbCB3b3JrYmVuY2ggYWN0aW9ucy4gVGhlcmUgYXJlIGFkZGl0aW9uYWwgY3VzdG9taXphdGlvbiBwb3NzaWJpbGl0aWVzIGluY2x1ZGluZyB2aXNpYmxlIGFjdGlvbnMgYW5kIHBlcnNwZWN0aXZlIGxheW91dC4KW1BsYXRmb3JtIFVJLCBTV1QsIFRleHQsIEpEVCBVSV08L3A+CjxwPiA8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiAgKHJldmlzZWQ7IHJlY2VudGx5IGNvbW1pdHRlZCkgPGI+SW1wcm92ZSB1cGRhdGUKbWFuYWdlci48L2I+IE1ha2UgY29udGludWluZyBpbXByb3ZlbWVudHMgdG8gdGhlIEVjbGlwc2UgaW5zdGFsbCBhbmQgdXBkYXRlCm1lY2hhbmlzbXMuIEltcHJvdmUgc3VwcG9ydCBmb3IgaW5zdGFsbGluZyBhbmQgdXBkYXRpbmcgbGFyZ2UgcHJvZHVjdHMgbWFraW5nCnVzZSBvZiBuZXN0ZWQgZmVhdHVyZXMuIE1ha2UgcmVtb3RlIGNvbm5lY3Rpb25zIG1vcmUgY29uZmlndXJhYmxlICggY29ubmVjdGlvbiB1c2luZyBhIHByb3h5IHNlcnZlcgpiZWhpbmQgZmlyZXdhbGwgYW5kIGF1dGhlbnRpY2F0aW9uKSBhbmQgbW9yZSByb2J1c3QgKHRpbWUgb3V0cykuIFtQbGF0Zm9ybSBDb3JlLCBQbGF0Zm9ybSBJbnN0YWxsL1VwZGF0ZV08L3A+CjxwPiA8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiAocmVjZW50bHkgY29tbWl0dGVkKSA8Yj5FbmFibGUgREJDUyBvbiBMaW51eC48L2I+ClN1cHBvcnQgZG91YmxlLWJ5dGUgY2hhcmFjdGVycyBvbiB0aGUgR1RLIGFuZCBNb3RpZiB3aW5kb3cgc3lzdGVtcy4gW1NXVF08L3A+CjxwPiA8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiAgKHJldmlzZWQ7IHJlY2VudGx5IGNvbW1pdHRlZCkgPGI+QWRkIHdvcmtiZW5jaAplZGl0b3IgbmF2aWdhdGlvbgpoaXN0b3J5LjwvYj4gVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gbmF2aWdhdGUgYmV0d2VlbiB3b3JrYmVuY2ggZWRpdG9ycyB3aXRoIHdlYiBzdHlsZSBiYWNrL2ZvcndhcmQgYWN0aW9ucy4KKFJlZjogPGEgaHJlZj0iaHR0cDovL2Rldi5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD01NzAwIj5idWcgNTcwMDwvYT4pJm5ic3A7CltQbGF0Zm9ybSBVSV08L3A+CjwvYmxvY2txdW90ZT4KPGg0PlByb3Bvc2VkIEl0ZW1zIChFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QpPC9oND4KPGJsb2NrcXVvdGU+CjxwPjxiPkltcHJvdmUKc2VydmljZWFiaWxpdHkuIDwvYj4gUHJvZ3Jlc3Mgd2FzIG1hZGUgYXQgaW1wcm92aW5nIHNlcnZpY2VhYmlsaXR5IGluIDIuMDsgaG93ZXZlciwgYWRkaXRpb25hbCBpbXByb3ZlbWVudHMgYXJlCm5lZWRlZCwgcGFydGljdWxhcmx5IGluIGRlYWxpbmcgd2l0aCBlcnJvciBjb25kaXRpb25zIGFuZCByZXBvcnRpbmcgdGhlbSBpbiBhbgphcHByb3ByaWF0ZSBtYW5uZXIuIFtQbGF0Zm9ybSBDb3JlLCBTV1QsIFBsYXRmb3JtIFVJXTxicj4KPGJyPgo8Yj5BZGQgY2hlYXQgc2hlZXRzPC9iPi4mbmJzcDsgQSBjaGVhdCBzaGVldCBpcyBhbiBpbnN0YW5jZSAKICAgIG9mIGEgc2ltcGxlIGtpbmQgb2Ygd29ya2Zsb3cgc3VwcG9ydCB1c2VkIHRvIGhlbHAgdGhlIHVzZXIgY2Fycnkgb3V0IGEKICBzZXF1ZW5jZSBvZiBzdGVwcy4gRm9yIGV4YW1wbGUsICZxdW90O2NyZWF0ZSBhbmQgZGVwbG95IGEgcGx1Zy1pbiIgaXMgYSBtdWx0aS1zdGVwIHByb2Nlc3MgdGhhdCBjb3VsZCBiZSBtYWRlIGVhc2llciB0byBmb2xsb3cgaWYgdGhlcmUgd2FzIGEgZ3VpZGUsIHNpbWlsYXIgdG8gYSByZWNpcGUgdGhhdCB3b3VsZCB0cmFjayB0aGUgdXNlcidzIHByb2dyZXNzIGFuZCBwcm92aWRlIGJvdGggZGVzY3JpcHRpdmUgdGV4dCB0aGF0IGV4cGxhaW5zIHRoZSBzdGVwcyBpbnZvbHZlZCBhbmQgaW50ZWdyYXRpb24gd2l0aCBFY2xpcHNlIHRvIGF1dG9tYXRlIHRoZSBwcm9jZXNzLiBUaGUgV2VsY29tZSBQYWdlIGVkaXRvciBpcyBhIHNpbXBsZSAKICAgIGV4YW1wbGUgb2YgYSBjaGVhdCBzaGVldC4gUHJvdmlkZSBhIHN0YW5kYXJkIEFQSSBmb3IgY3JlYXRpbmcgY2hlYXQgCiAgICBzaGVldHMuIFtQbGF0Zm9ybSBVSV08L3A+CjxwPgogPGI+SW1wcm92ZSBBbnQgc3VwcG9ydC48L2I+CkFkZCBzdXBwb3J0IHRvIG5hdmlnYXRlIGZyb20gQW50IGVycm9yIG91dHB1dCB0byB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UuCltQbGF0Zm9ybSBVSSwgQW50IENvcmVdPC9wPgo8cD48Yj5JbXByb3ZlIGZpbGUgZW5jb2Rpbmcgc3VwcG9ydC48L2I+CkVjbGlwc2UgMi4wIHVzZXMgYSBzaW5nbGUgZ2xvYmFsIGZpbGUgZW5jb2Rpbmcgc2V0dGluZyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBmaWxlcwppbiB0aGUgd29ya3NwYWNlLiBUaGlzIGlzIHByb2JsZW1hdGljOyBmb3IgZXhhbXBsZSwgd2hlbiBKYXZhIHNvdXJjZSBmaWxlcyBpbgp0aGUgd29ya3NwYWNlIHVzZSBPUyBkZWZhdWx0IGZpbGUgZW5jb2Rpbmcgd2hpbGUgWE1MIGZpbGVzIGluIHRoZSB3b3Jrc3BhY2UgdXNlClVURi04IGZpbGUgZW5jb2RpbmcuIFRoZSBQbGF0Zm9ybSBzaG91bGQgc3VwcG9ydCBub24tdW5pZm9ybSBmaWxlIGVuY29kaW5ncy4KKFJlZjogPGEgaHJlZj0iaHR0cDovL2Rldi5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD01Mzk5Ij5idWcgNTM5OTwvYT4pIFtQbGF0Zm9ybQpDb3JlLCBQbGF0Zm9ybSBVSSwgVGV4dCwgU2VhcmNoLCBDb21wYXJlLCBKRFQgVUksIEpEVCBDb3JlXTwvcD4KPHA+IDxiPkFkZCA8L2I+PGI+dGFibGUgb2YKY29udGVudHMgc3VwcG9ydCB0byA8L2I+PGI+d2k8L2I+PGI+emFyZHMuPC9iPiBFeHRlbmQgdGhlIHdvcmtiZW5jaCB3aXphcmQKZnJhbWV3b3JrIHRvIGFsbG93IEVjbGlwc2Ugd2l6YXJkIGRldmVsb3BlcnMgdG8gcHJvdmlkZSBtdWNoIG1vcmUgc3Vic3RhbnRpYWwKYW5kIHNpZ25pZmljYW50IHVzZXIgZmVlZGJhY2suIFtQbGF0Zm9ybSBVSV08L3A+CjxwPiA8Yj5TdXBwb3J0IGZsb2F0aW5nCnRvb2xiYXJzIGFuZCB2aWV3cy48L2I+IEFsbG93IHRoZSB1c2VyIHRvIGN1c3RvbWl6ZSB0aGUgd29ya2JlbmNoIGJ5IGNyZWF0aW5nIGZsb2F0aW5nCnRvb2xiYXJzIGFuZCB2aWV3cy4gW1BsYXRmb3JtIFVJXTwvcD4KPHA+IDxiPkFsbG93IGVkaXRvcnMgdG8Kb3BlbiBmaWxlcyBvdXRzaWRlIHdvcmtzcGFjZS48L2I+IEEgY29tbW9uIHJlcXVlc3QgaXMgdG8gYmUgYWJsZSB0byBvcGVuIGEgZmlsZSB0aGF0IGlzIG5vdCBwYXJ0IG9mIHRoZSB3b3Jrc3BhY2UKdXNpbmcgRWNsaXBzZS4gSW4gYWRkaXRpb24sIGFwcGxpY2F0aW9ucyB3b3VsZCBsaWtlIHRvIHByb3ZpZGUgZmlsZSBleHRlbnNpb24gYXNzb2NpYXRpb25zIHNvCnRoYXQgZG91YmxlLWNsaWNraW5nIG9uIGEgZmlsZSBpbiB0aGUgT1MgZGVza3RvcCB3b3VsZCBvcGVuIHRoZSBhc3NvY2lhdGVkIEVjbGlwc2UgZWRpdG9yLgpUaGUgb3BlcmF0aW9ucyBhbmQgY2FwYWJpbGl0aWVzIGF2YWlsYWJsZSBvbiB0aGVzZSAib3V0c2lkZSBvZiB0aGUgd29ya3NwYWNlIiBmaWxlcwp3b3VsZCBuZWVkIHRvIGJlIGRlZmluZWQuIFtQbGF0Zm9ybSBVSV08L3A+CjxwPjxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+ICAobmV3KSA8Yj5JbXByb3ZlIFNXVApzdXBwb3J0IGZvciByaWdodC10by1sZWZ0IGxhbmd1YWdlczwvYj4uJm5ic3A7QWxsb3cgdGhlIGFwcHJvcHJpYXRlIHdpZGdldCBvcmllbnRhdGlvbgpmb3IgcmlnaHQtdG8tbGVmdCBsYW5ndWFnZXMuIFtTV1RdPC9wPgo8L2Jsb2NrcXVvdGU+CjxoND5EZWZlcnJlZCBJdGVtcyAoRWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0KTwvaDQ+CjxibG9ja3F1b3RlPgogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+CjwvYmxvY2txdW90ZT4KPGg0PlJlamVjdGVkIEl0ZW1zIChFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QpPC9oND4KPGJsb2NrcXVvdGU+CiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4KPC9ibG9ja3F1b3RlPgoKCgo8cD4oRW5kIG9mIGl0ZW1zIGZvciBFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QuKQoKCgo8aDM+Cgo8YSBuYW1lPSJKYXZhIGRldmVsb3BtZW50IHRvb2xpbmcgKEpEVCkgc3VicHJvamVjdCI+SmF2YSBkZXZlbG9wbWVudCB0b29saW5nIChKRFQpIHN1YnByb2plY3Q8L2E+PC9oMz4KCjxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvamR0L2luZGV4Lmh0bWwiPgoKSmF2YSBkZXZlbG9wbWVudCB0b29saW5nPC9hPiAoSkRUKSBpbXBsZW1lbnRzIGEgSmF2YSBJREUgYmFzZWQgb24gdGhlIEVjbGlwc2UKClBsYXRmb3JtLgoKVGhlIGZvbGxvd2luZyB3b3JrIGl0ZW1zIHJlZmxlY3QgbmV3IGZlYXR1cmVzIG9mIEpEVCwgb3IgYXJlYXMgd2hlcmUgZXhpc3RpbmcKCmZlYXR1cmVzIHdpbGwgYmUgc2lnbmlmaWNhbnRseSByZXdvcmtlZC4KPGg0PkNvbW1pdHRlZCBJdGVtcyAoRWNsaXBzZSBKRFQgc3VicHJvamVjdCk8L2g0Pgo8YmxvY2txdW90ZT4KPHA+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gKHJlY2VudGx5IGNvbW1pdHRlZCkgPGI+U3VwcG9ydCBidWlsZGluZyBwcm9qZWN0cyB3aXRoIGNpcmN1bGFyIGRlcGVuZGVuY2llcy48L2I+Jm5ic3A7IFNvbWUgdXNlcnMgYXJlCmV4cGVyaWVuY2luZyBkaWZmaWN1bHR5IHBhcnRpdGlvbmluZyB0aGVpciB3b3JrIGludG8gaW5kZXBlbmRlbnRseS1idWlsZGFibGUgcHJvamVjdHMuIFdlIHdhbnQgdG8gYWRkIGEgbWVjaGFuaXNtIHRvIGFsbG93IG11dHVhbGx5IGRlcGVuZGVudCBwcm9qZWN0cyB0byBiZQpidWlsdApzdWNjZXNzZnVsbHksIHdoaWxlIHByZXNlcnZpbmcgY3VycmVudCBwcm9qZWN0IGJ1aWxkIG9yZGVyIGJlaGF2aW9yLiAoUmVmOiA8YSBocmVmPSJodHRwOi8vZGV2LmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTEwMjYyIj5idWcKMTAyNjI8L2E+KSBbSkRUIENvcmUsIFBsYXRmb3JtIENvcmVdPC9wPgogIDxwPiA8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiAgKHJldmlzZWQ7IHJlY2VudGx5IGNvbW1pdHRlZCkgPGI+TW9yZSBmbGV4aWJsZSBwcm9qZWN0IGxheW91dC4mbmJzcDsKICA8L2I+U3VwcG9ydCBzb3VyY2UgYW5kIG91dHB1dCBmb2xkZXJzIHRoYXQgYXJlIG91dHNpZGUgb2YgdGhlCiAgd29ya3NwYWNlLiBUaGlzIGxpa2VseSByZXF1aXJlcyBQbGF0Zm9ybSBDb3JlIHN1cHBvcnQgc28gdGhhdCBjaGFuZ2VzIHRvIHRoZXNlCiAgZm9sZGVycyBjYW4gYmUgcmVmbGVjdGVkIGluIHJlc291cmNlIGRlbHRhcy4gW0pEVCBDb3JlLCBKRFQgVUksIFBsYXRmb3JtCiAgQ29yZSwgUGxhdGZvcm0gVUksIFRlYW1dPC9wPgo8cD4gPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gIChyZWNlbnRseSBjb21taXR0ZWQpIDxiPlN1cHBvcnQgbXVsdGktSkFSCnN5c3RlbSBsaWJyYXJpZXMuPC9iPiBTb21lIEpSRXMgKGluY2x1ZGluZyBNYWMgT1MgWCBhbmQgSUJNIDEuNCkgcGFja2FnZSZuYnNwOwp0aGUgSmF2YSBzeXN0ZW0gY2xhc3MgbGlicmFyaWVzIGluIHNldmVyYWwgSkFSIGZpbGVzLiBJbXByb3ZlIHN1cHBvcnQgZm9yIHN5c3RlbQpjbGFzcyBsaWJyYXJpZXMgc28gdGhhdCBpdCBpcyBtb3JlIGNvbnZlbmllbnQgdG8gZGV2ZWxvcCBhbmQgcnVuIGFnYWluc3QgdGhlbS4gW0pEVApDb3JlLCBKRFQgVUldPC9wPgo8cD4gPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gKHJlY2VudGx5IGNvbW1pdHRlZCkgPGI+QWRkIG5ldyByZWZhY3RvcmluZ3M8L2I+LiBTdXBwb3J0IGFkZGl0aW9uYWwKcmVmYWN0b3JpbmcgYWN0aW9ucywgaW5jbHVkaW5nIGV4dHJhY3QgaW50ZXJmYWNlLCBhbmQgZXh0cmFjdCBjb25zdGFudC4gW0pEVApDb3JlLCBKRFQgVUldPC9wPgo8L2Jsb2NrcXVvdGU+CjxoND5Qcm9wb3NlZCBJdGVtcyAoRWNsaXBzZSBKRFQgc3VicHJvamVjdCk8L2g0Pgo8YmxvY2txdW90ZT4KPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4KPC9ibG9ja3F1b3RlPgo8aDQ+RGVmZXJyZWQgSXRlbXMgKEVjbGlwc2UgSkRUIHN1YnByb2plY3QpPC9oND4KPGJsb2NrcXVvdGU+CiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4KPC9ibG9ja3F1b3RlPgo8aDQ+UmVqZWN0ZWQgSXRlbXMgKEVjbGlwc2UgSkRUIHN1YnByb2plY3QpPC9oND4KPGJsb2NrcXVvdGU+CiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4KPC9ibG9ja3F1b3RlPgoKCgo8cD4oRW5kIG9mIGl0ZW1zIGZvciBFY2xpcHNlIEpEVCBzdWJwcm9qZWN0LikKCgoKPGgzPgoKPGEgbmFtZT0iUGx1Zy1pbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCAoUERFKSBzdWJwcm9qZWN0Ij5QbHVnLWluIGRldmVsb3BtZW50IGVudmlyb25tZW50IChQREUpIHN1YnByb2plY3Q8L2E+PC9oMz4KClRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3BkZS9pbmRleC5odG1sIj4gcGx1Zy1pbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudDwvYT4gCihQREUpIGNvbnNpc3RzIG9mJm5ic3A7dG9vbHMgZm9yIGRldmVsb3BpbmcgcGx1Zy1pbnMgZm9yIHRoZSBFY2xpcHNlIFBsYXRmb3JtLgoKVGhlIGZvbGxvd2luZyB3b3JrIGl0ZW1zIHJlZmxlY3QgbmV3IGZlYXR1cmVzIG9mIFBERSwgb3IgYXJlYXMgd2hlcmUgZXhpc3RpbmcKCmZlYXR1cmVzIHdpbGwgYmUgc2lnbmlmaWNhbnRseSByZXdvcmtlZC4KPGg0PkNvbW1pdHRlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pgo8YmxvY2txdW90ZT4KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPgo8L2Jsb2NrcXVvdGU+CjxoND5Qcm9wb3NlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pgo8YmxvY2txdW90ZT4KICA8cD48aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiAgKG5ldykgPGI+SW1wcm92ZSB1c2FiaWxpdHkuPC9iPgogIEYxIGhlbHAgZm9yIGFsbCBQREUgZGlhbG9nczsgaW1wcm92ZWQgUERFIGZvcm0gZWRpdG9yczsgaW1wcm92ZWQgcGx1Zy1pbgogIG1hbmlmZXN0IGVkaXRvciBFeHRlbnNpb25zIHBhZ2U7IG1vcmUgdXNlci1mcmllbmRseSBzdXBwb3J0IGZvciBidWlsZGluZyBwbHVnLWlucyBhbmQKICBmZWF0dXJlcy48L3A+CiAgPHA+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gIChuZXcpIDxiPkFkZCB0PC9iPjxiPmVtcGxhdGUKICBBUEkuPC9iPiBBUEkgZm9yIFBERSB0ZW1wbGF0ZSB3aXphcmRzIHdpbGwgYmUgZGVmaW5lZCwgYWxsb3dpbmcgb3RoZXIgcGx1Zy1pbnMKICB0byBjb250cmlidXRlIHRlbXBsYXRlcyBmb3IgdGhlaXIgZXh0ZW5zaW9uIHBvaW50cy48L3A+CiAgPHA+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gIChuZXcpIDxiPkltcHJvdmUKICBidWlsZCBjbGFzcyBwYXRoIGZvciBwbHVnLWluIHByb2plY3RzLjwvYj4gUGx1Zy1pbnMgdGhhdCBtYWtlIGRpcmVjdCByZWZlcmVuY2UKICB0byBKQVIgbGlicmFyaWVzIG9mIHByZXJlcXVpc2l0ZSBwbHVnLWlucyBhcmUgdnVsbmVyYWJsZSB0byB2ZXJzaW9uIGlkcyBpbgogIHBsdWctaW4gZW1iZWRkZWQgaW4gZGlyZWN0b3J5IG5hbWVzLiBUaGUgYWx0ZXJuYXRpdmUsIHVzaW5nIGJpbmFyeSBsaWJyYXJ5CiAgcGx1Zy1pbnMgZm9yIGVhY2ggcHJlcmVxdWlzaXRlIHBsdWctaW4sIGxlYWRzIHRvIGEgcHJvZnVzaW9uIG9mIHByb2plY3RzIGluCiAgdGhlIHdvcmtzcGFjZS4gUERFIHdpbGwgb2ZmZXIgYSB0aGlyZCBhbHRlcm5hdGl2ZSBiYXNlZCBvbiBKRFQgY2xhc3MgcGF0aCBjb250YWluZXJzCiAgdGhhdCBhdm9pZHMgdGhlc2Ugc2hvcnRjb21pbmdzIGFuZCBpbnRlcm9wZXJhdGVzIHdpdGggZXhpc3RpbmcgcGx1Zy1pbgogIHByb2plY3RzLjwvcD4KICA8cD48aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiAgKG5ldykgPGI+QWRkIHN1cHBvcnQKICBmb3IgdTwvYj48Yj5wZGF0ZSBzaXRlcy48L2I+IFNldHRpbmcgdXAgYW4gRWNsaXBzZSB1cGRhdGUgc2l0ZSBhbmQgYnVpbGRpbmcKICBpdHMgcGx1Zy1pbnMgYW5kIGZlYXR1cmVzIGlzIG5vdCBzdHJhaWdodGZvcndhcmQuIFBERSB3aWxsIG1ha2UgaXQgY29udmVuaWVudAogIHRvIGRlZmluZSB0aGUgbGF5b3V0IG9mIGFuIHVwZGF0ZSBzaXRlIGFuZCBjcmVhdGUgdGhlIHVwZGF0ZSBzaXRlJ3MgY29udGVudHMuPC9wPgo8L2Jsb2NrcXVvdGU+CjxoND5EZWZlcnJlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pgo8YmxvY2txdW90ZT4KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPgo8L2Jsb2NrcXVvdGU+CjxoND5SZWplY3RlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pgo8YmxvY2txdW90ZT4KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPgo8L2Jsb2NrcXVvdGU+CgoKCjxwPihFbmQgb2YgaXRlbXMgZm9yIEVjbGlwc2UgUERFIHN1YnByb2plY3QuKQoKPC9ib2R5PgoKPC9odG1sPgoK