I stumbled across this article posted by an american friend of mine, I found it so fascinating I had to share it. Keep in mind I am not american myself, however I can relate to all the points raised in this article, because while some are unique to america a lot of these problems are universal to humans. I'll link the article here but for those who don't want to click I'll place it in a spoiler tag.
Warning: long read.
Spoiler: Click to ViewPHA+SW1hZ2luZSB5b3UgaGF2ZSBhIGJyb3RoZXIgYW5kIGhlJ3MgYW4gYWxjb2hvbGljLiBIZSBoYXMgaGlzIG1vbWVudHMsIGJ1dCB5b3Uga2VlcCB5b3VyIGRpc3RhbmNlIGZyb20gaGltLiBZb3UgZG9uJ3QgbWluZCBoaW0gZm9yIHRoZSBvY2Nhc2lvbmFsIGZhbWlseSBnYXRoZXJpbmcgb3IgaG9saWRheS4gWW91IHN0aWxsIGxvdmUgaGltLiBCdXQgeW91IGRvbid0IHdhbnQgdG8gYmUgYXJvdW5kIGhpbS48L3A+CjxwPlRoaXMgaXMgaG93IEkgbG92aW5nbHkgZGVzY3JpYmUgbXkgY3VycmVudCByZWxhdGlvbnNoaXAgd2l0aCB0aGUgVW5pdGVkIFN0YXRlcy4gVGhlIFVuaXRlZCBTdGF0ZXMgaXMgbXkgYWxjb2hvbGljIGJyb3RoZXIuIEFuZCBhbHRob3VnaCBJIHdpbGwgYWx3YXlzIGxvdmUgaGltLCBJIGRvbid0IHdhbnQgdG8gYmUgbmVhciBoaW0gYXQgdGhlIG1vbWVudC48L3A+CjxwPkkga25vdyB0aGF0J3MgaGFyc2gsIGJ1dCBJIHJlYWxseSBmZWVsIG15IGhvbWUgY291bnRyeSBpcyBub3QgaW4gYSBnb29kIHBsYWNlIHRoZXNlIGRheXMuIFRoYXQncyBub3QgYSBzb2Npby1lY29ub21pYyBzdGF0ZW1lbnQgKGFsdGhvdWdoIHRoYXQncyBvbiB0aGUgZGVjbGluZSBhcyB3ZWxsKSwgYnV0IHJhdGhlciBhIGN1bHR1cmFsIG9uZS48L3A+CjxwPkkgcmVhbGl6ZSBpdCdzIGdvaW5nIHRvIGJlIGltcG9zc2libGUgdG8gd3JpdGUgc2VudGVuY2VzIGxpa2UgdGhlIG9uZXMgYWJvdmUgd2l0aG91dCBjb21pbmcgYWNyb3NzIGFzIGEgcmFnaW5nIHByaWNrLCBzbyBsZXQgbWUgdHJ5IHRvIHNvZnRlbiB0aGUgYmxvdyB0byBteSBBbWVyaWNhbiByZWFkZXJzIHdpdGggYW4gYW5hbG9neTo8L3A+CjxwPllvdSBrbm93IHdoZW4geW91IG1vdmUgb3V0IG9mIHlvdXIgcGFyZW50cycgaG91c2UgYW5kIGxpdmUgb24geW91ciBvd24sIGhvdyB5b3Ugc3RhcnQgaGFuZ2luZyBvdXQgd2l0aCB5b3VyIGZyaWVuZHMnIGZhbWlsaWVzIGFuZCB5b3UgcmVhbGl6ZSB0aGF0IGFjdHVhbGx5LCB5b3VyIGZhbWlseSB3YXMgYSBsaXR0bGUgc2NyZXdlZCB1cD8gU3R1ZmYgeW91IGFsd2F5cyBhc3N1bWVkIHdhcyBub3JtYWwgeW91ciBlbnRpcmUgY2hpbGRob29kLCBpdCB0dXJucyBvdXQgd2FzIHByZXR0eSB3ZWlyZCBhbmQgbWF5IGhhdmUgYWN0dWFsbHkgZnVja2VkIHlvdSB1cCBhIGxpdHRsZSBiaXQuIFlvdSBrbm93LCBkYWQgdGhpbmtpbmcgaXQgd2FzIGZ1bm55IHRvIHdlYXIgYSBTYW50YSBDbGF1cyBoYXQgaW4gaGlzIHVuZGVyd2VhciBldmVyeSBDaHJpc3RtYXMgb3IgdGhlIGZhY3QgdGhhdCB5b3UgYW5kIHlvdXIgc2lzdGVyIHNsZXB0IGluIHRoZSBzYW1lIGJlZCB1bnRpbCB5b3Ugd2VyZSAyMiwgb3IgdGhhdCB5b3VyIG1vdGhlciByb3V0aW5lbHkgY3JpZWQgb3ZlciBhIGJvdHRsZSBvZiB3aW5lIHdoaWxlIGxpc3RlbmluZyB0byBFbHRvbiBKb2huLjwvcD4KPHA+VGhlIHBvaW50IGlzIHdlIGRvbid0IHJlYWxseSBnZXQgcGVyc3BlY3RpdmUgb24gd2hhdCdzIGNsb3NlIHRvIHVzIHVudGlsIHdlIHNwZW5kIHRpbWUgYXdheSBmcm9tIGl0LiBKdXN0IGxpa2UgeW91IGRpZG4ndCByZWFsaXplIHRoZSB3ZWlyZCBxdWlya3MgYW5kIG51YW5jZXMgb2YgeW91ciBmYW1pbHkgdW50aWwgeW91IGxlZnQgYW5kIHNwZW50IHRpbWUgd2l0aCBvdGhlcnMsIHRoZSBzYW1lIGlzIHRydWUgZm9yIGNvdW50cnkgYW5kIGN1bHR1cmUuIFlvdSBvZnRlbiBkb24ndCBzZWUgd2hhdCdzIG1lc3NlZCB1cCBhYm91dCB5b3VyIGNvdW50cnkgYW5kIGN1bHR1cmUgdW50aWwgeW91IHN0ZXAgb3V0c2lkZSBvZiBpdC48L3A+CjxwPkFuZCBzbyBldmVuIHRob3VnaCB0aGlzIGFydGljbGUgaXMgZ29pbmcgdG8gY29tZSBhY3Jvc3MgYXMgZmFpcmx5IHNjYXRoaW5nLCBJIHdhbnQgbXkgQW1lcmljYW4gcmVhZGVycyB0byBrbm93OiBzb21lIG9mIHRoZSBzdHVmZiB3ZSBkbywgc29tZSBvZiB0aGUgc3R1ZmYgdGhhdCB3ZSBhbHdheXMgYXNzdW1lZCB3YXMgbm9ybWFsLCBpdCdzIGtpbmQgb2Ygc2NyZXdlZCB1cC4gQW5kIHRoYXQncyBPSy4gQmVjYXVzZSB0aGF0J3MgdHJ1ZSB3aXRoIGV2ZXJ5IGN1bHR1cmUuIEl0J3MganVzdCBlYXNpZXIgdG8gc3BvdCBpdCBpbiBvdGhlcnMgKGkuZS4sIHRoZSBGcmVuY2gpIHNvIHdlIGRvbid0IGFsd2F5cyBub3RpY2UgaXQgaW4gb3Vyc2VsdmVzLjwvcD4KPHA+U28gYXMgeW91IHJlYWQgdGhpcyBhcnRpY2xlLCBrbm93IHRoYXQgSSdtIHNheWluZyBldmVyeXRoaW5nIHdpdGggdG91Z2ggbG92ZSwgdGhlIHNhbWUgdG91Z2ggbG92ZSB3aXRoIHdoaWNoIEknZCBzaXQgZG93biBhbmQgbGVjdHVyZSBhbiBhbGNvaG9saWMgZmFtaWx5IG1lbWJlci4gSXQgZG9lc24ndCBtZWFuIEkgZG9uJ3QgbG92ZSB5b3UuIEl0IGRvZXNuJ3QgbWVhbiB0aGVyZSBhcmVuJ3Qgc29tZSBhd2Vzb21lIHRoaW5ncyBhYm91dCB5b3UgKEJSTywgVEhBVCdTIEFXRVNPTUUhISEpLiBBbmQgaXQgZG9lc24ndCBtZWFuIEknbSBzb21lIHNhaW50IGVpdGhlciwgYmVjYXVzZSBnb2Qga25vd3MgSSdtIHByZXR0eSBzY3Jld2VkIHVwIChJJ20gQW1lcmljYW4sIGFmdGVyIGFsbCkuIFRoZXJlIGFyZSBqdXN0IGEgZmV3IHRoaW5ncyB5b3UgbmVlZCB0byBoZWFyLiBBbmQgYXMgYSBmcmllbmQsIEknbSBnb2luZyB0byB0ZWxsIHRoZW0gdG8geW91LjwvcD4KPHA+QW5kIHRvIG15IGZvcmVpZ24gcmVhZGVycywgZ2V0IHlvdXIgbmVja3MgcmVhZHksIGJlY2F1c2UgdGhpcyBpcyBnb2luZyB0byBiZSBhIG5vZC1hLXRob24uPC9wPgo8cD5BIExpdHRsZSAiV2hhdCBUaGUgSGVsbCBEb2VzIFRoaXMgR3V5IEtub3c/IiBCYWNrZ3JvdW5kOiBJJ3ZlIGxpdmVkIGluIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgVVMsIGJvdGggdGhlIGRlZXAgc291dGggYW5kIHRoZSBub3J0aGVhc3QuIEkgaGF2ZSB2aXNpdGVkIG1vc3Qgb2YgdGhlIFVTJ3MgNTAgc3RhdGVzLiBJJ3ZlIHNwZW50IHRoZSBwYXN0IHRocmVlIHllYXJzIGxpdmluZyBhbG1vc3QgZW50aXJlbHkgb3V0c2lkZSBvZiB0aGUgVW5pdGVkIFN0YXRlcy4gSSd2ZSBsaXZlZCBpbiBtdWx0aXBsZSBjb3VudHJpZXMgaW4gRXVyb3BlLCBBc2lhIGFuZCBTb3V0aCBBbWVyaWNhLiBJJ3ZlIHZpc2l0ZWQgb3ZlciA0MCBjb3VudHJpZXMgaW4gYWxsIGFuZCBoYXZlIHNwZW50IGZhciBtb3JlIHRpbWUgd2l0aCBub24tQW1lcmljYW5zIHRoYW4gd2l0aCBBbWVyaWNhbnMgZHVyaW5nIHRoaXMgcGVyaW9kLiBJIHNwZWFrIG11bHRpcGxlIGxhbmd1YWdlcy4gSSdtIG5vdCBhIHRvdXJpc3QuIEkgZG9uJ3Qgc3RheSBpbiByZXNvcnRzIGFuZCByYXJlbHkgc3RheSBpbiBob3N0ZWxzLiBJIHJlbnQgYXBhcnRtZW50cyBhbmQgdHJ5IHRvIGludGVncmF0ZSBteXNlbGYgaW50byBlYWNoIGNvdW50cnkgSSB2aXNpdCBhcyBtdWNoIGFzIHBvc3NpYmxlLiBTbyB0aGVyZS48L3A+CjxwPihOb3RlOiBJIHJlYWxpemUgdGhlc2UgYXJlIGdlbmVyYWxpemF0aW9ucyBhbmQgSSByZWFsaXplIHRoZXJlIGFyZSBhbHdheXMgZXhjZXB0aW9ucy4gSSBnZXQgaXQuIFlvdSBkb24ndCBoYXZlIHRvIHBvc3QgNTUgY29tbWVudHMgdGVsbGluZyBtZSB0aGF0IHlvdSBhbmQgeW91ciBiZXN0IGZyaWVuZCBhcmUgZXhjZXB0aW9ucy4gSWYgeW91IHJlYWxseSBnZXQgdGhhdCBvZmZlbmRlZCBmcm9tIHNvbWUgZ3V5J3MgYmxvZyBwb3N0LCB5b3UgbWF5IHdhbnQgdG8gZG91YmxlLWNoZWNrIHlvdXIgbGlmZSBwcmlvcml0aWVzLik8L3A+CjxwPk9LLCB3ZSdyZSByZWFkeSBub3cuIDEwIHRoaW5ncyBBbWVyaWNhbnMgZG9uJ3Qga25vdyBhYm91dCBBbWVyaWNhLjwvcD4KPHA+MS4gRmV3IFBlb3BsZSBBcmUgSW1wcmVzc2VkIEJ5IFVzPC9wPgo8cD5Vbmxlc3MgeW91J3JlIHNwZWFraW5nIHdpdGggYSByZWFsIGVzdGF0ZSBhZ2VudCBvciBhIHByb3N0aXR1dGUsIGNoYW5jZXMgYXJlIHRoZXkncmUgbm90IGdvaW5nIHRvIGJlIGV4Y2l0ZWQgdGhhdCB5b3UncmUgQW1lcmljYW4uIEl0J3Mgbm90IHNvbWUgYmFkZ2Ugb2YgaG9ub3Igd2UgZ2V0IHRvIHBhcmFkZSBhcm91bmQuIFllcywgd2UgaGFkIFN0ZXZlIEpvYnMgYW5kIFRob21hcyBFZGlzb24sIGJ1dCB1bmxlc3MgeW91IGFjdHVhbGx5IGFyZSBTdGV2ZSBKb2JzIG9yIFRob21hcyBFZGlzb24gKHdoaWNoIGlzIHVubGlrZWx5KSB0aGVuIG1vc3QgcGVvcGxlIGFyb3VuZCB0aGUgd29ybGQgYXJlIHNpbXBseSBub3QgZ29pbmcgdG8gY2FyZS4gVGhlcmUgYXJlIGV4Y2VwdGlvbnMgb2YgY291cnNlLiBBbmQgdGhvc2UgZXhjZXB0aW9ucyBhcmUgY2FsbGVkIEVuZ2xpc2ggYW5kIEF1c3RyYWxpYW4gcGVvcGxlLiBXaG9vcGRpZS1mdWNraW5nLWRvby48L3A+CjxwPkFzIEFtZXJpY2Fucywgd2UncmUgYnJvdWdodCB1cCBvdXIgZW50aXJlIGxpdmVzIGJlaW5nIHRhdWdodCB0aGF0IHdlJ3JlIHRoZSBiZXN0LCB3ZSBkaWQgZXZlcnl0aGluZyBmaXJzdCBhbmQgdGhhdCB0aGUgcmVzdCBvZiB0aGUgd29ybGQgZm9sbG93cyBvdXIgbGVhZC4gTm90IG9ubHkgaXMgdGhpcyBub3QgdHJ1ZSwgYnV0IHBlb3BsZSBnZXQgaXJyaXRhdGVkIHdoZW4geW91IGJyaW5nIGl0IHRvIHRoZWlyIGNvdW50cnkgd2l0aCB5b3UuIFNvIGRvbid0LjwvcD4KPHA+Mi4gRmV3IFBlb3BsZSBIYXRlIFVzPC9wPgo8cD5EZXNwaXRlIHRoZSBvY2Nhc2lvbmFsIGV5ZS1yb2xsaW5nLCBhbmQgY29tcGxldGUgaW5hYmlsaXR5IHRvIHVuZGVyc3RhbmQgd2h5IGFueW9uZSB3b3VsZCB2b3RlIGZvciBHZW9yZ2UgVy4gQnVzaCwgcGVvcGxlIGZyb20gb3RoZXIgY291bnRyaWVzIGRvbid0IGhhdGUgdXMgZWl0aGVyLiBJbiBmYWN0IC0gYW5kIEkga25vdyB0aGlzIGlzIGEgcmVhbGx5IHNvYmVyaW5nIHJlYWxpemF0aW9uIGZvciB1cyAtIG1vc3QgcGVvcGxlIGluIHRoZSB3b3JsZCBkb24ndCByZWFsbHkgdGhpbmsgYWJvdXQgdXMgb3IgY2FyZSBhYm91dCB1cy4gSSBrbm93LCB0aGF0IHNvdW5kcyBhYnN1cmQsIGVzcGVjaWFsbHkgd2l0aCBDTk4gYW5kIEZveCBOZXdzIHNob3dpbmcgdGhlIHNhbWUgMjAgYW5ncnkgQXJhYiBtZW4gb24gcmVwZWF0IGZvciB0ZW4geWVhcnMgc3RyYWlnaHQuIEJ1dCB1bmxlc3Mgd2UncmUgaW52YWRpbmcgc29tZW9uZSdzIGNvdW50cnkgb3IgdGhyZWF0ZW5pbmcgdG8gaW52YWRlIHNvbWVvbmUncyBjb3VudHJ5ICh3aGljaCBpcyBsaWtlbHkpLCB0aGVuIHRoZXJlJ3MgYSA5OS45OSUgY2hhbmNlIHRoZXkgZG9uJ3QgY2FyZSBhYm91dCB1cy4gSnVzdCBsaWtlIHdlIHJhcmVseSB0aGluayBhYm91dCB0aGUgcGVvcGxlIGluIEJvbGl2aWEgb3IgTW9uZ29saWEsIG1vc3QgcGVvcGxlIGRvbid0IHRoaW5rIGFib3V0IHVzIG11Y2guIFRoZXkgaGF2ZSBqb2JzLCBraWRzLCBob3VzZSBwYXltZW50cyAtIHlvdSBrbm93LCB0aG9zZSB0aGluZ3MgY2FsbGVkIGxpdmVzIC0gdG8gd29ycnkgYWJvdXQuIEtpbmQgb2YgbGlrZSB1cy48L3A+CjxwPkFtZXJpY2FucyB0ZW5kIHRvIGFzc3VtZSB0aGF0IHRoZSByZXN0IG9mIHRoZSB3b3JsZCBlaXRoZXIgbG92ZXMgdXMgb3IgaGF0ZXMgdXMgKHRoaXMgaXMgYWN0dWFsbHkgYSBnb29kIGxpdG11cyB0ZXN0IHRvIHRlbGwgaWYgc29tZW9uZSBpcyBjb25zZXJ2YXRpdmUgb3IgbGliZXJhbCkuIFRoZSBmYWN0IGlzLCBtb3N0IHBlb3BsZSBmZWVsIG5laXRoZXIuIE1vc3QgcGVvcGxlIGRvbid0IHRoaW5rIG11Y2ggYWJvdXQgdXMuPC9wPgo8cD5SZW1lbWJlciB0aGF0IGltbWF0dXJlIGdpcmwgaW4gaGlnaCBzY2hvb2wsIHdobyBldmVyeSBsaXR0bGUgdGhpbmcgdGhhdCBoYXBwZW5lZCB0byBoZXIgbWVhbnQgdGhhdCBzb21lb25lIGVpdGhlciBoYXRlZCBoZXIgb3Igd2FzIG9ic2Vzc2VkIHdpdGggaGVyOyB3aG8gdGhvdWdodCBldmVyeSB0ZWFjaGVyIHdobyBldmVyIGdhdmUgaGVyIGEgYmFkIGdyYWRlIHdhcyBiZWluZyB0b3RhbGx5IHVuZmFpciBhbmQgZXZlcnl0aGluZyBnb29kIHRoYXQgaGFwcGVuZWQgdG8gaGVyIHdhcyBiZWNhdXNlIG9mIGhvdyBhbWF6aW5nIHNoZSB3YXM/IFllYWgsIHdlJ3JlIHRoYXQgaW1tYXR1cmUgaGlnaCBzY2hvb2wgZ2lybC48L3A+CjxwPjMuIFdlIEtub3cgTm90aGluZyBBYm91dCBUaGUgUmVzdCBPZiBUaGUgV29ybGQ8L3A+CjxwPkZvciBhbGwgb2Ygb3VyIHRhbGsgYWJvdXQgYmVpbmcgZ2xvYmFsIGxlYWRlcnMgYW5kIGhvdyBldmVyeW9uZSBmb2xsb3dzIHVzLCB3ZSBkb24ndCBzZWVtIHRvIGtub3cgbXVjaCBhYm91dCBvdXIgc3VwcG9zZWQgImZvbGxvd2Vycy4iIEhlcmUgd2VyZSBzb21lIGJyYWluLXN0dW1wZXJzIGZvciBtZTogdGhlIFZpZXRuYW1lc2UgYmVsaWV2ZSB0aGUgVmlldG5hbSBXYXIgd2FzIGFib3V0IENoaW5hIChub3QgdXMpLCBIaXRsZXIgd2FzIHByaW1hcmlseSBkZWZlYXRlZCBieSBSdXNzaWEgKG5vdCB1cyksIE5hdGl2ZSBBbWVyaWNhbnMgd2VyZSB3aXBlZCBvdXQgYnkgYSBwbGFndWUgKG5vdCB1cyksIGFuZCB0aGUgQW1lcmljYW4gUmV2b2x1dGlvbiB3YXMgIndvbiIgYmVjYXVzZSB0aGUgQnJpdGlzaCBjYXJlZCBtb3JlIGFib3V0IGJlYXRpbmcgRnJhbmNlIChub3QgdXMpLiBOb3RpY2UgYSBydW5uaW5nIHRoZW1lIGhlcmU/PC9wPgo8cD4oSGludDogSXQncyBub3QgYWxsIGFib3V0IHVzLik8L3A+CjxwPldlIGRpZCBub3QgaW52ZW50IGRlbW9jcmFjeS4gV2UgZGlkbid0IGV2ZW4gaW52ZW50IG1vZGVybiBkZW1vY3JhY3kuIFRoZXJlIHdlcmUgcGFybGlhbWVudGFyeSBzeXN0ZW1zIGluIEVuZ2xhbmQgYW5kIG90aGVyIHBhcnRzIG9mIEV1cm9wZSBvdmVyIGEgaHVuZHJlZCB5ZWFycyBiZWZvcmUgd2UgY3JlYXRlZCBnb3Zlcm5tZW50LiBJbiBhIHJlY2VudCBzdXJ2ZXkgb2YgeW91bmcgQW1lcmljYW5zLCA2MyUgY291bGQgbm90IGZpbmQgSXJhcSBvbiBhIG1hcCAoZGVzcGl0ZSBiZWluZyBhdCB3YXIgd2l0aCB0aGVtKSwgYW5kIDU0JSBkaWQgbm90IGtub3cgU3VkYW4gd2FzIGEgY291bnRyeSBpbiBBZnJpY2EuIFlldCwgc29tZWhvdyB3ZSdyZSBwb3NpdGl2ZSB0aGF0IGV2ZXJ5b25lIGVsc2UgbG9va3MgdXAgdG8gdXMuPC9wPgo8cD40LiBXZSBBcmUgUG9vciBBdCBFeHByZXNzaW5nIEdyYXRpdHVkZSBBbmQgQWZmZWN0aW9uPC9wPgo8cD5UaGVyZSdzIGEgc2F5aW5nIGFib3V0IEVuZ2xpc2gtc3BlYWtlcnMuIFdlIHNheSAiR28gZnVjayB5b3Vyc2VsZiwiIHdoZW4gd2UgcmVhbGx5IG1lYW4gIkkgbGlrZSB5b3UsIiBhbmQgd2Ugc2F5ICJJIGxpa2UgeW91LCIgd2hlbiB3ZSByZWFsbHkgbWVhbiAiR28gZnVjayB5b3Vyc2VsZi4iPC9wPgo8cD5PdXRzaWRlIG9mIGdldHRpbmcgc2hpdC1ob3VzZWQgZHJ1bmsgYW5kIHNjcmVhbWluZyAiSSBMT1ZFIFlPVSwgTUFOISIsIG9wZW4gZGlzcGxheXMgb2YgYWZmZWN0aW9uIGluIEFtZXJpY2FuIGN1bHR1cmUgYXJlIHRlcGlkIGFuZCByYXJlLiBMYXRpbiBhbmQgc29tZSBFdXJvcGVhbiBjdWx0dXJlcyBkZXNjcmliZSB1cyBhcyAiY29sZCIgYW5kICJwYXNzaW9ubGVzcyIgYW5kIGZvciBnb29kIHJlYXNvbi4gSW4gb3VyIHNvY2lhbCBsaXZlcyB3ZSBkb24ndCBzYXkgd2hhdCB3ZSBtZWFuIGFuZCB3ZSBkb24ndCBtZWFuIHdoYXQgd2Ugc2F5LjwvcD4KPHA+SW4gb3VyIGN1bHR1cmUsIGFwcHJlY2lhdGlvbiBhbmQgYWZmZWN0aW9uIGFyZSBpbXBsaWVkIHJhdGhlciB0aGFuIHNwb2tlbiBvdXRyaWdodC4gVHdvIGd1eSBmcmllbmRzIGNhbGwgZWFjaCBvdGhlciBuYW1lcyB0byByZWluZm9yY2UgdGhlaXIgZnJpZW5kc2hpcDsgbWVuIGFuZCB3b21lbiB0ZWFzZSBhbmQgbWFrZSBmdW4gb2YgZWFjaCBvdGhlciB0byBpbXBseSBpbnRlcmVzdC4gRmVlbGluZ3MgYXJlIGFsbW9zdCBuZXZlciBzaGFyZWQgb3Blbmx5IGFuZCBmcmVlbHkuIENvbnN1bWVyIGN1bHR1cmUgaGFzIGNoZWFwZW5lZCBvdXIgbGFuZ3VhZ2Ugb2YgZ3JhdGl0dWRlLiBTb21ldGhpbmcgbGlrZSwgIkl0J3Mgc28gZ29vZCB0byBzZWUgeW91IiBpcyBlbXB0eSBub3cgYmVjYXVzZSBpdCdzIGV4cGVjdGVkIGFuZCBoZWFyZCBmcm9tIGV2ZXJ5Ym9keS48L3A+CjxwPkluIGRhdGluZywgd2hlbiBJIGZpbmQgYSB3b21hbiBhdHRyYWN0aXZlLCBJIGFsbW9zdCBhbHdheXMgd2FsayByaWdodCB1cCB0byBoZXIgYW5kIHRlbGwgaGVyIHRoYXQgYSkgSSB3YW50ZWQgdG8gbWVldCBoZXIsIGFuZCBiKSBzaGUncyBiZWF1dGlmdWwuIEluIEFtZXJpY2EsIHdvbWVuIHVzdWFsbHkgZ2V0IGluY3JlZGlibHkgbmVydm91cyBhbmQgY29uZnVzZWQgd2hlbiBJIGRvIHRoaXMuIFRoZXknbGwgbWFrZSBqb2tlcyB0byBkZWZ1c2UgdGhlIHNpdHVhdGlvbiBvciBzb21ldGltZXMgYXNrIG1lIGlmIEknbSBwYXJ0IG9mIGEgVFYgc2hvdyBvciBzb21ldGhpbmcgcGxheWluZyBhIHByYW5rLiBFdmVuIHdoZW4gdGhleSdyZSBpbnRlcmVzdGVkIGFuZCBnbyBvbiBkYXRlcyB3aXRoIG1lLCB0aGV5IGdldCBhIGJpdCBkaXNvcmllbnRlZCB3aGVuIEknbSBzbyBibHVudCB3aXRoIG15IGludGVyZXN0LiBXaGVyZWFzLCBpbiBhbG1vc3QgZXZlcnkgb3RoZXIgY3VsdHVyZSBhcHByb2FjaGluZyB3b21lbiB0aGlzIHdheSBpcyBtZXQgd2l0aCBhIGNvbmZpZGVudCBzbWlsZSBhbmQgYSAiVGhhbmsgeW91LiI8L3A+CjxwPjUuIFRoZSBRdWFsaXR5IG9mIExpZmUgRm9yIFRoZSBBdmVyYWdlIEFtZXJpY2FuIElzIE5vdCBUaGF0IEdyZWF0PC9wPgo8cD5JZiB5b3UncmUgZXh0cmVtZWx5IHRhbGVudGVkIG9yIGludGVsbGlnZW50LCB0aGUgVVMgaXMgcHJvYmFibHkgdGhlIGJlc3QgcGxhY2UgaW4gdGhlIHdvcmxkIHRvIGxpdmUuIFRoZSBzeXN0ZW0gaXMgc3RhY2tlZCBoZWF2aWx5IHRvIGFsbG93IHBlb3BsZSBvZiB0YWxlbnQgYW5kIGFkdmFudGFnZSB0byByaXNlIHRvIHRoZSB0b3AgcXVpY2tseS48L3A+CjxwPlRoZSBwcm9ibGVtIHdpdGggdGhlIFVTIGlzIHRoYXQgZXZlcnlvbmUgdGhpbmtzIHRoZXkgYXJlIG9mIHRhbGVudCBhbmQgYWR2YW50YWdlLiBBcyBKb2huIFN0ZWluYmVjayBmYW1vdXNseSBzYWlkLCB0aGUgcHJvYmxlbSB3aXRoIHBvb3IgQW1lcmljYW5zIGlzIHRoYXQgInRoZXkgZG9uJ3QgYmVsaWV2ZSB0aGV5J3JlIHBvb3IsIGJ1dCByYXRoZXIgdGVtcG9yYXJpbHkgZW1iYXJyYXNzZWQgbWlsbGlvbmFpcmVzLiIgSXQncyB0aGlzIGN1bHR1cmUgb2Ygc2VsZi1kZWx1c2lvbiB0aGF0IGFsbG93cyBBbWVyaWNhIHRvIGNvbnRpbnVlIHRvIGlubm92YXRlIGFuZCBjaHVybiBvdXQgbmV3IGluZHVzdHJ5IG1vcmUgdGhhbiBhbnlvbmUgZWxzZSBpbiB0aGUgd29ybGQuIEJ1dCB0aGlzIHNoYXJlZCBkZWx1c2lvbiBhbHNvIHVuZm9ydHVuYXRlbHkga2VlcHMgcGVycGV0dWF0aW5nIGxhcmdlIHNvY2lhbCBpbmVxdWFsaXRpZXMgYW5kIHRoZSBxdWFsaXR5IG9mIGxpZmUgZm9yIHRoZSBhdmVyYWdlIGNpdGl6ZW4gbG93ZXIgdGhhbiBtb3N0IG90aGVyIGRldmVsb3BlZCBjb3VudHJpZXMuIEl0J3MgdGhlIHByaWNlIHdlIHBheSB0byBtYWludGFpbiBvdXIgZ3Jvd3RoIGFuZCBlY29ub21pYyBkb21pbmFuY2UuPC9wPgo8cD5JbiBteSBHdWlkZSB0byBXZWFsdGgsIEkgZGVmaW5lZCBiZWluZyB3ZWFsdGh5IGFzLCAiSGF2aW5nIHRoZSBmcmVlZG9tIHRvIG1heGltaXplIG9uZSdzIGxpZmUgZXhwZXJpZW5jZXMuIiBJbiB0aG9zZSB0ZXJtcywgZGVzcGl0ZSB0aGUgYXZlcmFnZSBBbWVyaWNhbiBoYXZpbmcgbW9yZSBtYXRlcmlhbCB3ZWFsdGggdGhhbiBjaXRpemVucyBvZiBtb3N0IG90aGVyIGNvdW50cmllcyAobW9yZSBjYXJzLCBiaWdnZXIgaG91c2VzLCBuaWNlciB0ZWxldmlzaW9ucyksIHRoZWlyIG92ZXJhbGwgcXVhbGl0eSBvZiBsaWZlIHN1ZmZlcnMgaW4gbXkgb3Bpbmlvbi4gQW1lcmljYW4gcGVvcGxlIG9uIGF2ZXJhZ2Ugd29yayBtb3JlIGhvdXJzIHdpdGggbGVzcyB2YWNhdGlvbiwgc3BlbmQgbW9yZSB0aW1lIGNvbW11dGluZyBldmVyeSBkYXksIGFuZCBhcmUgc2FkZGxlZCB3aXRoIG92ZXIgJDEwLDAwMCBvZiBkZWJ0LiBUaGF0J3MgYSBsb3Qgb2YgdGltZSBzcGVudCB3b3JraW5nIGFuZCBidXlpbmcgY3JhcCBhbmQgbGl0dGxlIHRpbWUgb3IgZGlzcG9zYWJsZSBpbmNvbWUgZm9yIHJlbGF0aW9uc2hpcHMsIGFjdGl2aXRpZXMgb3IgbmV3IGV4cGVyaWVuY2VzLjwvcD4KPHA+Ni4gVGhlIFJlc3QgT2YgVGhlIFdvcmxkIElzIE5vdCBBIFNsdW0tUmlkZGVuIFNoaXRob2xlIENvbXBhcmVkIFRvIFVzPC9wPgo8cD5JbiAyMDEwLCBJIGdvdCBpbnRvIGEgdGF4aSBpbiBCYW5na29rIHRvIHRha2UgbWUgdG8gYSBuZXcgc2l4LXN0b3J5IGNpbmVwbGV4LiBJdCB3YXMgYWNjZXNzaWJsZSBieSBtZXRybywgYnV0IEkgY2hvc2UgYSB0YXhpIGluc3RlYWQuIE9uIHRoZSBzZWF0IGluIGZyb250IG9mIG1lIHdhcyBhIHNpZ24gd2l0aCBhIHdpZmkgcGFzc3dvcmQuIFdhaXQsIHdoYXQ/IEkgYXNrZWQgdGhlIGRyaXZlciBpZiBoZSBoYWQgd2lmaSBpbiBoaXMgdGF4aS4gSGUgZmxhc2hlZCBhIGh1Z2Ugc21pbGUuIFRoZSBzcXVhdCBUaGFpIG1hbiwgd2l0aCBoaXMgcGlkZ2luIEVuZ2xpc2gsIGV4cGxhaW5lZCB0aGF0IGhlIGhhZCBpbnN0YWxsZWQgaXQgaGltc2VsZi4gSGUgdGhlbiB0dXJuZWQgb24gaGlzIG5ldyBzb3VuZCBzeXN0ZW0gYW5kIGRpc2NvIGxpZ2h0cy4gSGlzIHRheGkgaW5zdGFudGx5IGJlY2FtZSBhIGNoZWVzeSBuaWdodGNsdWIgb24gd2hlZWxzLi4uIHdpdGggZnJlZSB3aWZpLjwvcD4KPHA+SWYgdGhlcmUncyBvbmUgY29uc3RhbnQgaW4gbXkgdHJhdmVscyBvdmVyIHRoZSBwYXN0IHRocmVlIHllYXJzLCBpdCBoYXMgYmVlbiB0aGF0IGFsbW9zdCBldmVyeSBwbGFjZSBJJ3ZlIHZpc2l0ZWQgKGVzcGVjaWFsbHkgaW4gQXNpYSBhbmQgU291dGggQW1lcmljYSkgaXMgbXVjaCBuaWNlciBhbmQgc2FmZXIgdGhhbiBJIGV4cGVjdGVkIGl0IHRvIGJlLiBTaW5nYXBvcmUgaXMgcHJpc3RpbmUuIEhvbmcgS29uZyBtYWtlcyBNYW5oYXR0YW4gbG9vayBsaWtlIGEgc3VidXJiLiBNeSBuZWlnaGJvcmhvb2QgaW4gQ29sb21iaWEgaXMgbmljZXIgdGhhbiB0aGUgb25lIEkgbGl2ZWQgaW4gaW4gQm9zdG9uIChhbmQgY2hlYXBlcikuPC9wPgo8cD5BcyBBbWVyaWNhbnMsIHdlIGhhdmUgdGhpcyBuYe92ZSBhc3N1bXB0aW9uIHRoYXQgcGVvcGxlIGFsbCBvdmVyIHRoZSB3b3JsZCBhcmUgc3RydWdnbGluZyBhbmQgd2F5IGJlaGluZCB1cy4gVGhleSdyZSBub3QuIFN3ZWRlbiBhbmQgU291dGggS29yZWEgaGF2ZSBtb3JlIGFkdmFuY2VkIGhpZ2ggc3BlZWQgaW50ZXJuZXQgbmV0d29ya3MuIEphcGFuIGhhcyB0aGUgbW9zdCBhZHZhbmNlZCB0cmFpbnMgYW5kIHRyYW5zcG9ydGF0aW9uIHN5c3RlbXMuIE5vcndlZ2lhbnMgbWFrZSBtb3JlIG1vbmV5LiBUaGUgYmlnZ2VzdCBhbmQgbW9zdCBhZHZhbmNlZCBwbGFuZSBpbiB0aGUgd29ybGQgaXMgZmxvd24gb3V0IG9mIFNpbmdhcG9yZS4gVGhlIHRhbGxlc3QgYnVpbGRpbmdzIGluIHRoZSB3b3JsZCBhcmUgbm93IGluIER1YmFpIGFuZCBTaGFuZ2hhaS4gTWVhbndoaWxlLCB0aGUgVVMgaGFzIHRoZSBoaWdoZXN0IGluY2FyY2VyYXRpb24gcmF0ZSBpbiB0aGUgd29ybGQuPC9wPgo8cD5XaGF0J3Mgc28gc3VycHJpc2luZyBhYm91dCB0aGUgd29ybGQgaXMgaG93IHVuc3VycHJpc2luZyBtb3N0IG9mIGl0IGlzLiBJIHNwZW50IGEgd2VlayB3aXRoIHNvbWUgbG9jYWwgZ3V5cyBpbiBDYW1ib2RpYS4gWW91IGtub3cgd2hhdCB0aGVpciBiaWdnZXN0IGNvbmNlcm5zIHdlcmU/IFBheWluZyBmb3Igc2Nob29sLCBnZXR0aW5nIHRvIHdvcmsgb24gdGltZSwgYW5kIHdoYXQgdGhlaXIgZnJpZW5kcyB3ZXJlIHNheWluZyBhYm91dCB0aGVtLiBJbiBCcmF6aWwsIHBlb3BsZSBoYXZlIGRlYnQgcHJvYmxlbXMsIGhhdGUgZ2V0dGluZyBzdHVjayBpbiB0cmFmZmljIGFuZCBjb21wbGFpbiBhYm91dCB0aGVpciBvdmVyYmVhcmluZyBtb3RoZXJzLiBFdmVyeSBjb3VudHJ5IHRoaW5rcyB0aGV5IGhhdmUgdGhlIHdvcnN0IGRyaXZlcnMuIEV2ZXJ5IGNvdW50cnkgdGhpbmtzIHRoZWlyIHdlYXRoZXIgaXMgdW5wcmVkaWN0YWJsZS4gVGhlIHdvcmxkIGJlY29tZXMsIGVyci4uLiBwcmVkaWN0YWJsZS48L3A+CjxwPjcuIFdlJ3JlIFBhcmFub2lkPC9wPgo8cD5Ob3Qgb25seSBhcmUgd2UgZW1vdGlvbmFsbHkgaW5zZWN1cmUgYXMgYSBjdWx0dXJlLCBidXQgSSd2ZSBjb21lIHRvIHJlYWxpemUgaG93IHBhcmFub2lkIHdlIGFyZSBhYm91dCBvdXIgcGh5c2ljYWwgc2VjdXJpdHkuIFlvdSBkb24ndCBoYXZlIHRvIHdhdGNoIEZveCBOZXdzIG9yIENOTiBmb3IgbW9yZSB0aGFuIDEwIG1pbnV0ZXMgdG8gaGVhciBhYm91dCBob3cgb3VyIGRyaW5raW5nIHdhdGVyIGlzIGdvaW5nIHRvIGtpbGwgdXMsIG91ciBuZWlnaGJvciBpcyBnb2luZyB0byByYXBlIG91ciBjaGlsZHJlbiwgc29tZSB0ZXJyb3Jpc3QgaW4gWWVtZW4gaXMgZ29pbmcgdG8ga2lsbCB1cyBiZWNhdXNlIHdlIGRpZG4ndCB0b3J0dXJlIGhpbSwgTWV4aWNhbnMgYXJlIGdvaW5nIHRvIGtpbGwgdXMsIG9yIHNvbWUgdmlydXMgZnJvbSBhIGJpcmQgaXMgZ29pbmcgdG8ga2lsbCB1cy4gVGhlcmUncyBhIHJlYXNvbiB3ZSBoYXZlIG1vcmUgZ3VucyB0aGFuIHBlb3BsZS48L3A+CjxwPkluIHRoZSBVUywgc2VjdXJpdHkgdHJ1bXBzIGV2ZXJ5dGhpbmcsIGV2ZW4gbGliZXJ0eS4gV2UncmUgcGFyYW5vaWQuPC9wPgo8cD5JJ3ZlIHByb2JhYmx5IGJlZW4gdG8gMTAgY291bnRyaWVzIG5vdyB0aGF0IGZyaWVuZHMgYW5kIGZhbWlseSBiYWNrIGhvbWUgdG9sZCBtZSBleHBsaWNpdGx5IG5vdCB0byBnbyBiZWNhdXNlIHNvbWVvbmUgd2FzIGdvaW5nIHRvIGtpbGwgbWUsIGtpZG5hcCBtZSwgc3RhYiBtZSwgcm9iIG1lLCByYXBlIG1lLCBzZWxsIG1lIGludG8gc2V4IHRyYWRlLCBnaXZlIG1lIEhJViwgb3Igd2hhdGV2ZXIgZWxzZS4gTm9uZSBvZiB0aGF0IGhhcyBoYXBwZW5lZC4gSSd2ZSBuZXZlciBiZWVuIHJvYmJlZCBhbmQgSSd2ZSB3YWxrZWQgdGhyb3VnaCBzb21lIG9mIHRoZSBzaGl0dGllc3QgcGFydHMgb2YgQXNpYSwgTGF0aW4gQW1lcmljYSBhbmQgRWFzdGVybiBFdXJvcGUuPC9wPgo8cD5JbiBmYWN0LCB0aGUgZXhwZXJpZW5jZSBoYXMgYmVlbiB0aGUgb3Bwb3NpdGUuIEluIGNvdW50cmllcyBsaWtlIFJ1c3NpYSwgQ29sb21iaWEgb3IgR3VhdGVtYWxhLCBwZW9wbGUgd2VyZSBzbyBmcmllbmRseSBpdCBhY3R1YWxseSBzY2FyZWQgbWUuIFNvbWUgc3RyYW5nZXIgaW4gYSBiYXIgd291bGQgaW52aXRlIG1lIHRvIGhpcyBob3VzZSBmb3IgYSBiYXItYi1xdWUgd2l0aCBoaXMgZmFtaWx5LCBhIHJhbmRvbSBwZXJzb24gb24gdGhlIHN0cmVldCB3b3VsZCBvZmZlciB0byBzaG93IG1lIGFyb3VuZCBhbmQgZ2l2ZSBtZSBkaXJlY3Rpb25zIHRvIGEgc3RvcmUgSSB3YXMgdHJ5aW5nIHRvIGZpbmQuIE15IEFtZXJpY2FuIGluc3RpbmN0cyB3ZXJlIGFsd2F5cyB0aGF0LCAiV2FpdCwgdGhpcyBndXkgaXMgZ29pbmcgdG8gdHJ5IHRvIHJvYiBtZSBvciBraWxsIG1lLCIgYnV0IHRoZXkgbmV2ZXIgZGlkLiBUaGV5IHdlcmUganVzdCBpbnNhbmVseSBmcmllbmRseS48L3A+CjxwPjguIFdlJ3JlIFN0YXR1cy1PYnNlc3NlZCBBbmQgU2VlayBBdHRlbnRpb248L3A+CjxwPkkndmUgbm90aWNlZCB0aGF0IHRoZSB3YXkgd2UgQW1lcmljYW5zIGNvbW11bmljYXRlIGlzIHVzdWFsbHkgZGVzaWduZWQgdG8gY3JlYXRlIGEgbG90IG9mIGF0dGVudGlvbiBhbmQgaHlwZS4gQWdhaW4sIEkgdGhpbmsgdGhpcyBpcyBhIHByb2R1Y3Qgb2Ygb3VyIGNvbnN1bWVyIGN1bHR1cmU6IHRoZSBiZWxpZWYgdGhhdCBzb21ldGhpbmcgaXNuJ3Qgd29ydGh3aGlsZSBvciBpbXBvcnRhbnQgdW5sZXNzIGl0J3MgcGVyY2VpdmVkIHRvIGJlIHRoZSBiZXN0IChCRVNUIEVWRVIhISEpIG9yIHVubGVzcyBpdCBnZXRzIGEgbG90IG9mIGF0dGVudGlvbiAoc2VlOiBldmVyeSByZWFsaXR5LXRlbGV2aXNpb24gc2hvdyBldmVyIG1hZGUpLjwvcD4KPHA+VGhpcyBpcyB3aHkgQW1lcmljYW5zIGhhdmUgYSBwZWN1bGlhciBoYWJpdCBvZiB0aGlua2luZyBldmVyeXRoaW5nIGlzICJ0b3RhbGx5IGF3ZXNvbWUsIiBhbmQgZXZlbiB0aGUgbW9zdCBtdW5kYW5lIGFjdGl2aXRpZXMgd2VyZSAidGhlIGJlc3QgdGhpbmcgZXZlciEiIEl0J3MgdGhlIHVuY29uc2Npb3VzIGRyaXZlIHdlIHNoYXJlIGZvciBpbXBvcnRhbmNlIGFuZCBzaWduaWZpY2FuY2UsIHRoaXMgdW5tZW50aW9uZWQgYmVsaWVmLCBzb2NpYWxseSBiZWF0ZW4gaW50byB1cyBzaW5jZSBiaXJ0aCB0aGF0IGlmIHdlJ3JlIG5vdCB0aGUgYmVzdCBhdCBzb21ldGhpbmcsIHRoZW4gd2UgZG9uJ3QgbWF0dGVyLjwvcD4KPHA+V2UncmUgc3RhdHVzLW9ic2Vzc2VkLiBPdXIgY3VsdHVyZSBpcyBidWlsdCBhcm91bmQgYWNoaWV2ZW1lbnQsIHByb2R1Y3Rpb24gYW5kIGJlaW5nIGV4Y2VwdGlvbmFsLiBUaGVyZWZvcmUgY29tcGFyaW5nIG91cnNlbHZlcyBhbmQgYXR0ZW1wdGluZyB0byBvdXQtZG8gb25lIGFub3RoZXIgaGFzIGluZmlsdHJhdGVkIG91ciBzb2NpYWwgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiBXaG8gY2FuIHNsYW0gdGhlIG1vc3QgYmVlcnMgZmlyc3Q/IFdobyBjYW4gZ2V0IHJlc2VydmF0aW9ucyBhdCB0aGUgYmVzdCByZXN0YXVyYW50PyBXaG8ga25vd3MgdGhlIHByb21vdGVyIHRvIHRoZSBjbHViPyBXaG8gZGF0ZWQgYSBnaXJsIG9uIHRoZSBjaGVlcmxlYWRpbmcgc3F1YWQ/IFNvY2lhbGl6aW5nIGJlY29tZXMgb2JqZWN0aWZpZWQgYW5kIHR1cm5lZCBpbnRvIGEgY29tcGV0aXRpb24uIEFuZCBpZiB5b3UncmUgbm90IHdpbm5pbmcsIHRoZSBpbXBsaWNhdGlvbiBpcyB0aGF0IHlvdSBhcmUgbm90IGltcG9ydGFudCBhbmQgbm8gb25lIHdpbGwgbGlrZSB5b3UuPC9wPgo8cD45LiBXZSBBcmUgVmVyeSBVbmhlYWx0aHk8L3A+CjxwPlVubGVzcyB5b3UgaGF2ZSBjYW5jZXIgb3Igc29tZXRoaW5nIGVxdWFsbHkgZGlyZSwgdGhlIGhlYWx0aCBjYXJlIHN5c3RlbSBpbiB0aGUgVVMgc3Vja3MuIFRoZSBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uIHJhbmtlZCB0aGUgVVMgMzd0aCBpbiB0aGUgd29ybGQgZm9yIGhlYWx0aCBjYXJlLCBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgd2Ugc3BlbmQgdGhlIG1vc3QgcGVyIGNhcGl0YSBieSBhIGxhcmdlIG1hcmdpbi48L3A+CjxwPlRoZSBob3NwaXRhbHMgYXJlIG5pY2VyIGluIEFzaWEgKHdpdGggRXVyb3BlYW4tZWR1Y2F0ZWQgZG9jdG9ycyBhbmQgbnVyc2VzKSBhbmQgY29zdCBhIHRlbnRoIGFzIG11Y2guIFNvbWV0aGluZyBhcyByb3V0aW5lIGFzIGEgdmFjY2luYXRpb24gY29zdHMgbXVsdGlwbGUgaHVuZHJlZHMgb2YgZG9sbGFycyBpbiB0aGUgVVMgYW5kIGxlc3MgdGhhbiAkMTAgaW4gQ29sb21iaWEuIEFuZCBiZWZvcmUgeW91IG1ha2UgZnVuIG9mIENvbG9tYmlhbiBob3NwaXRhbHMsIENvbG9tYmlhIGlzIDI4dGggaW4gdGhlIHdvcmxkIG9uIHRoYXQgV0hPIGxpc3QsIG5pbmUgc3BvdHMgaGlnaGVyIHRoYW4gdXMuPC9wPgo8cD5BIHJvdXRpbmUgU1REIHRlc3QgdGhhdCBjYW4gcnVuIHlvdSBvdmVyICQyMDAgaW4gdGhlIFVTIGlzIGZyZWUgaW4gbWFueSBjb3VudHJpZXMgdG8gYW55b25lLCBjaXRpemVuIG9yIG5vdC4gTXkgaGVhbHRoIGluc3VyYW5jZSB0aGUgcGFzdCB5ZWFyPyAkNjUgYSBtb250aC4gV2h5PyBCZWNhdXNlIEkgbGl2ZSBvdXRzaWRlIG9mIHRoZSBVUy4gQW4gQW1lcmljYW4gZ3V5IEkgbWV0IGxpdmluZyBpbiBCdWVub3MgQWlyZXMgZ290IGtuZWUgc3VyZ2VyeSBvbiBoaXMgQUNMIHRoYXQgd291bGQgaGF2ZSBjb3N0ICQxMCwwMDAgaW4gdGhlIFVTLi4uIGZvciBmcmVlLjwvcD4KPHA+QnV0IHRoaXMgaXNuJ3QgcmVhbGx5IGdldHRpbmcgaW50byB0aGUgcmVhbCBwcm9ibGVtcyBvZiBvdXIgaGVhbHRoLiBPdXIgZm9vZCBpcyBraWxsaW5nIHVzLiBJJ20gbm90IGdvaW5nIHRvIGdvIGNyYXp5IHdpdGggdGhlIGRldGFpbHMsIGJ1dCB3ZSBlYXQgY2hlbWljYWxseS1sYWNlZCBjcmFwIGJlY2F1c2UgaXQncyBjaGVhcGVyIGFuZCB0YXN0ZXMgYmV0dGVyIChwcm9maXQsIHByb2ZpdCkuIE91ciBwb3J0aW9uIHNpemVzIGFyZSBhYnN1cmQgKG1vcmUgcHJvZml0KS4gQW5kIHdlJ3JlIGJ5IGZhciB0aGUgbW9zdCBwcmVzY3JpYmVkIG5hdGlvbiBpbiB0aGUgd29ybGQgQU5EIG91ciBkcnVncyBjb3N0IGZpdmUgdG8gdGVuIHRpbWVzIG1vcmUgdGhhbiB0aGV5IGRvIGV2ZW4gaW4gQ2FuYWRhIChvaGhoaGhoaCwgcHJvZml0LCB5b3Ugc2V4eSBiaXRjaCkuPC9wPgo8cD5JbiB0ZXJtcyBvZiBsaWZlIGV4cGVjdGFuY3ksIGRlc3BpdGUgYmVpbmcgdGhlIHJpY2hlc3QgY291bnRyeSBpbiB0aGUgd29ybGQsIHdlIGNvbWUgaW4gYSBwYWx0cnkgMzh0aC4gUmlnaHQgYmVoaW5kIEN1YmEsIE1hbHRhIGFuZCB0aGUgVW5pdGVkIEFyYWIgRW1pcmF0ZXMsIGFuZCBzbGlnaHRseSBhaGVhZCBvZiBTbG92ZW5pYSwgS3V3YWl0IGFuZCBVcnVndWF5LiBFbmpveSB5b3VyIEJpZyBNYWMuPC9wPgo8cD4xMC4gV2UgTWlzdGFrZSBDb21mb3J0IEZvciBIYXBwaW5lc3M8L3A+CjxwPlRoZSBVbml0ZWQgU3RhdGVzIGlzIGEgY291bnRyeSBidWlsdCBvbiB0aGUgZXhhbHRhdGlvbiBvZiBlY29ub21pYyBncm93dGggYW5kIHBlcnNvbmFsIGluZ2VudWl0eS4gU21hbGwgYnVzaW5lc3NlcyBhbmQgY29uc3RhbnQgZ3Jvd3RoIGFyZSBjZWxlYnJhdGVkIGFuZCBzdXBwb3J0ZWQgYWJvdmUgYWxsIGVsc2UgLSBhYm92ZSBhZmZvcmRhYmxlIGhlYWx0aCBjYXJlLCBhYm92ZSByZXNwZWN0YWJsZSBlZHVjYXRpb24sIGFib3ZlIGV2ZXJ5dGhpbmcuIEFtZXJpY2FucyBiZWxpZXZlIGl0J3MgeW91ciByZXNwb25zaWJpbGl0eSB0byB0YWtlIGNhcmUgb2YgeW91cnNlbGYgYW5kIG1ha2Ugc29tZXRoaW5nIG9mIHlvdXJzZWxmLCBub3QgdGhlIHN0YXRlJ3MsIG5vdCB5b3VyIGNvbW11bml0eSdzLCBub3QgZXZlbiB5b3VyIGZyaWVuZCdzIG9yIGZhbWlseSdzIGluIHNvbWUgaW5zdGFuY2VzLjwvcD4KPHA+Q29tZm9ydCBzZWxscyBlYXNpZXIgdGhhbiBoYXBwaW5lc3MuIENvbWZvcnQgaXMgZWFzeS4gSXQgcmVxdWlyZXMgbm8gZWZmb3J0IGFuZCBubyB3b3JrLiBIYXBwaW5lc3MgdGFrZXMgZWZmb3J0LiBJdCByZXF1aXJlcyBiZWluZyBwcm9hY3RpdmUsIGNvbmZyb250aW5nIGZlYXJzLCBmYWNpbmcgZGlmZmljdWx0IHNpdHVhdGlvbnMsIGFuZCBoYXZpbmcgdW5wbGVhc2FudCBjb252ZXJzYXRpb25zLjwvcD4KPHA+Q29tZm9ydCBlcXVhbHMgc2FsZXMuIFdlJ3ZlIGJlZW4gc29sZCBjb21mb3J0IGZvciBnZW5lcmF0aW9ucyBhbmQgZm9yIGdlbmVyYXRpb25zIHdlIGJvdWdodDogYmlnZ2VyIGhvdXNlcywgc2VwYXJhdGVkIGZ1cnRoZXIgYW5kIGZ1cnRoZXIgb3V0IGludG8gdGhlIHN1YnVyYnM7IGJpZ2dlciBUVidzLCBtb3JlIG1vdmllcywgYW5kIHRha2Utb3V0LiBUaGUgQW1lcmljYW4gcHVibGljIGlzIGJlY29taW5nIGRvY2lsZSBhbmQgY29tcGxhY2VudC4gV2UncmUgb2Jlc2UgYW5kIGVudGl0bGVkLiBXaGVuIHdlIHRyYXZlbCwgd2UgbG9vayBmb3IgZ2lhbnQgaG90ZWxzIHRoYXQgd2lsbCBpbnN1bGF0ZSB1cyBhbmQgcGFtcGVyIHVzIHJhdGhlciB0aGFuIGZvciBsZWdpdGltYXRlIGN1bHR1cmFsIGV4cGVyaWVuY2VzIHRoYXQgbWF5IGNoYWxsZW5nZSBvdXIgcGVyc3BlY3RpdmVzIG9yIGhlbHAgdXMgZ3JvdyBhcyBpbmRpdmlkdWFscy48L3A+CjxwPkRlcHJlc3Npb24gYW5kIGFueGlldHkgZGlzb3JkZXJzIGFyZSBzb2FyaW5nIHdpdGhpbiB0aGUgVVMuIE91ciBpbmFiaWxpdHkgdG8gY29uZnJvbnQgYW55dGhpbmcgdW5wbGVhc2FudCBhcm91bmQgdXMgaGFzIG5vdCBvbmx5IGNyZWF0ZWQgYSBuYXRpb25hbCBzZW5zZSBvZiBlbnRpdGxlbWVudCwgYnV0IGl0J3MgZGlzY29ubmVjdGVkIHVzIGZyb20gd2hhdCBhY3R1YWxseSBkcml2ZXMgaGFwcGluZXNzOiByZWxhdGlvbnNoaXBzLCB1bmlxdWUgZXhwZXJpZW5jZXMsIGZlZWxpbmcgc2VsZi12YWxpZGF0ZWQsIGFjaGlldmluZyBwZXJzb25hbCBnb2Fscy4gSXQncyBlYXNpZXIgdG8gd2F0Y2ggYSBOQVNDQVIgcmFjZSBvbiB0ZWxldmlzaW9uIGFuZCB0d2VldCBhYm91dCBpdCB0aGFuIHRvIGFjdHVhbGx5IGdldCBvdXQgYW5kIHRyeSBzb21ldGhpbmcgbmV3IHdpdGggYSBmcmllbmQuPC9wPgo8cD5VbmZvcnR1bmF0ZWx5LCBhIGJ5LXByb2R1Y3Qgb2Ygb3VyIG1hc3NpdmUgY29tbWVyY2lhbCBzdWNjZXNzIGlzIHRoYXQgd2UncmUgYWJsZSB0byBhdm9pZCB0aGUgbmVjZXNzYXJ5IGVtb3Rpb25hbCBzdHJ1Z2dsZXMgb2YgbGlmZSBpbiBsaWV1IG9mIGVhc3kgc3VwZXJmaWNpYWwgcGxlYXN1cmVzLjwvcD4KPHA+KioqKioqKioqKioqKioqKioqKioqPC9wPgo8cD5UaHJvdWdob3V0IGhpc3RvcnksIGV2ZXJ5IGRvbWluYW50IGNpdmlsaXphdGlvbiBldmVudHVhbGx5IGNvbGxhcHNlZCBiZWNhdXNlIGl0IGJlY2FtZSBUT08gc3VjY2Vzc2Z1bC4gV2hhdCBtYWRlIGl0IHBvd2VyZnVsIGFuZCB1bmlxdWUgZ3Jvd3Mgb3V0IG9mIHByb3BvcnRpb24gYW5kIGNvbnN1bWVzIGl0cyBzb2NpZXR5LiBJIHRoaW5rIHRoaXMgaXMgdHJ1ZSBmb3IgQW1lcmljYW4gc29jaWV0eS4gV2UncmUgY29tcGxhY2VudCwgZW50aXRsZWQgYW5kIHVuaGVhbHRoeS4gTXkgZ2VuZXJhdGlvbiBpcyB0aGUgZmlyc3QgZ2VuZXJhdGlvbiBvZiBBbWVyaWNhbnMgd2hvIHdpbGwgYmUgd29yc2Ugb2ZmIHRoYW4gdGhlaXIgcGFyZW50cywgZWNvbm9taWNhbGx5LCBwaHlzaWNhbGx5IGFuZCBlbW90aW9uYWxseS4gQW5kIHRoaXMgaXMgbm90IGR1ZSB0byBhIGxhY2sgb2YgcmVzb3VyY2VzLCB0byBhIGxhY2sgb2YgZWR1Y2F0aW9uIG9yIHRvIGEgbGFjayBvZiBpbmdlbnVpdHkuIEl0J3MgY29ycnVwdGlvbiBhbmQgY29tcGxhY2VuY3kuIFRoZSBjb3JydXB0aW9uIGZyb20gdGhlIG1hc3NpdmUgaW5kdXN0cmllcyB0aGF0IGNvbnRyb2wgb3VyIGdvdmVybm1lbnQncyBwb2xpY2llcywgYW5kIHRoZSBmYXQgY29tcGxhY2VuY3kgb2YgdGhlIHBlb3BsZSB0byBzaXQgYXJvdW5kIGFuZCBsZXQgaXQgaGFwcGVuLjwvcD4KPHA+VGhlcmUgYXJlIHRoaW5ncyBJIGxvdmUgYWJvdXQgbXkgY291bnRyeS4gSSBkb24ndCBoYXRlIHRoZSBVUyBhbmQgSSBzdGlsbCByZXR1cm4gdG8gaXQgYSBmZXcgdGltZXMgYSB5ZWFyLiBCdXQgSSB0aGluayB0aGUgZ3JlYXRlc3QgZmxhdyBvZiBBbWVyaWNhbiBjdWx0dXJlIGlzIG91ciBibGluZCBzZWxmLWFic29ycHRpb24uIEluIHRoZSBwYXN0IGl0IG9ubHkgaHVydCBvdGhlciBjb3VudHJpZXMuIEJ1dCBub3cgaXQncyBzdGFydGluZyB0byBodXJ0IG91cnNlbHZlcy48L3A+CjxwPlNvIHRoaXMgaXMgbXkgbGVjdHVyZSB0byBteSBhbGNvaG9saWMgYnJvdGhlciAtIG15IG93biBmbGF2b3Igb2YgYXJyb2dhbmNlIGFuZCBzZWxmLWFic29ycHRpb24sIGV2ZW4gaWYgc2xpZ2h0bHkgbW9yZSBpbmZvcm1lZCAtIGluIGhvcGVzIGhlJ2xsIGdpdmUgdXAgaGlzIHdheXdhcmQgd2F5cy4gSSBpbWFnaW5lIGl0J2xsIGZhbGwgb24gZGVhZiBlYXJzLCBidXQgaXQncyB0aGUgbW9zdCBJIGNhbiBkbyBmb3Igbm93LiBOb3cgaWYgeW91J2xsIGV4Y3VzZSBtZSwgSSBoYXZlIHNvbWUgZnVubnkgY2F0IHBpY3R1cmVzIHRvIGxvb2sgYXQuPC9wPg==