Page Banner

United States Department of Agriculture

Agricultural Research Service

Related Topics

Past Key Mission Area News
headline bar
PFA+PElNRyBhbHQ9Ik5ld3MgSW1hZ2UiIHNyYz0iaHR0cDovL2Fycy51c2RhLmdvdi9zcDJ1c2VyZmlsZXMvUGxhY2UvNTQwMDAwMDAvaW1hZ2VzL0NhdGVnb3J5LU5ld3NFdmVudHMuanBnIj48QSBuYW1lPXRvcD48L0E+PC9QPiAKPFA+UGFzdCBOb3J0aGVybiBQbGFpbnMgQXJlYSBXZWVrbHkgQWN0aXZpdHkgUmVwb3J0czo8L1A+IAo8UD48U1BBTj5NYXJjaCA0LCAyMDA5PC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIFJlc2VhcmNoZXIgUGFydGljaXBhdGVzIEluIFJlZ2lvbmFsIEFDRSBGaXNoIFdpbGRsaWZlIFdvcmtzaG9wPC9TVFJPTkc+OiBPbiBNYXJjaCAzLTUsIE5QQVJMIFJlc2VhcmNoIEJvdGFuaXN0IGFuZCBQZXN0IE1hbmFnZW1lbnQgUmVzZWFyY2ggVW5pdCBMZWFkZXIgSm9obiBHYXNraW4gd2FzIGludml0ZWQgdG8gc3BlYWsgYXQgdGhlIE5vcnRod2VzdGVybiBEaXZpc2lvbiBvZiBBcm15IENvcnBzIG9mIEVuZ2luZWVycyBGaXNoIGFuZCBXaWxkbGlmZSBXb3Jrc2hvcCBoZWxkIGluIENvZXVyIETigJlBbGVuZSwgSUQuIERyLiBHYXNraW7igJlzIHByZXNlbnRhdGlvbiwgZW50aXRsZWQg4oCcVGhlIHVzZSBvZiBtb2xlY3VsYXIgZ2VuZXRpY3MgaW4gY29udHJvbGxpbmcgaW52YXNpb25zLOKAnSB3YXMgYW1vbmcgc2V2ZXJhbCBvZmZlcmVkIGF0IHRoZSBzZXNzaW9uIG9uIG9uZ29pbmcgcmVzZWFyY2ggc3Vycm91bmRpbmcgaW52YXNpdmUgcGxhbnQgYW5kIGFuaW1hbHMuIFRoZSB0aHJlZS1kYXkgZXZlbnQgaW5jbHVkZWQgcHJlc2VudGF0aW9ucyBieSByZXByZXNlbnRhdGl2ZXMgZnJvbSBzZXZlcmFsIHN0YXRlIGFuZCBmZWRlcmFsIGFnZW5jaWVzLCBvcmdhbml6YXRpb25zIGFuZCBwcml2YXRlIGJ1c2luZXNzZXMgYW5kIHRyaWJhbCBnb3Zlcm5tZW50cyBhbmQgcmVnYXJkaW5nIGZpc2ggYW5kIHdpbGRsaWZlIGhhYml0YXQgYW5kIG1hbmFnZW1lbnQgcHJvZ3JhbXMgYW5kIGlzc3VlcyBpbiB0aGUgcmVnaW9uLjwvU1BBTj48L1A+IAo8UCBhbGlnbj1yaWdodD48U1BBTj48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1NQQU4+PC9QPiAKPFA+PFNQQU4+RmVicnVhcnkgMDQsIDIwMDk8L1NQQU4+PC9QPiAKPFA+PFNQQU4+PFNUUk9ORz5BUlMgUmVwcyBIZWxwIEp1ZGdlIFJ1cmFsIFNjaWVuY2UgRmFpcjo8L1NUUk9ORz4gKFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkuIFNldmVuIE5QQVJMIHN0YWZmIG1lbWJlcnMsIGJvdGggc2NpZW50aXN0cyBhbmQgdGVjaG5pY2lhbnMsIGhlbHBlZCBqdWRnZSB0aGUgUmF1IEVsZW1lbnRhcnkgU2Nob29sIFNjaWVuY2UgRmFpciBoZWxkIEphbnVhcnkgMjkgYXQgdGhlIHJ1cmFsIFNpZG5leSwgTVQsIHNjaG9vbC4gVGhlIGp1ZGdlcyByZXZpZXdlZCBudW1lcm91cyBwcm9qZWN0cyBzdWJtaXR0ZWQgYnkgM3JkIHRocm91Z2ggNnRoIGdyYWRlIHN0dWRlbnRzIGF0IHRoZSBzY2hvb2wsIHdoaWNoIHNlcnZlcyBhcHByb3hpbWF0ZWx5IDYwIHN0dWRlbnRzIGZyb20gdGhlIHN1cnJvdW5kaW5nIGNvdW50cnlzaWRlLiBUaGUganVkZ2VzIHdvcmtlZCBpbiB0ZWFtcywgdHlwaWNhbGx5IHdpdGggYW4gQVJTIHJlcHJlc2VudGF0aXZlIHRlYW1lZCB3aXRoIGFub3RoZXIganVkZ2UgZnJvbSB0aGUgY29tbXVuaXR5LiBUaGUganVkZ2luZyBjcml0ZXJpYSBpbmNsdWRlZCB1c2Ugb2YgdGhlIHNjaWVudGlmaWMgbWV0aG9kLCBkaXNwbGF5IHF1YWxpdHksIGFkaGVyZW5jZSB0byBwcm9qZWN0IGd1aWRlbGluZXMsIGVmZm9ydCwgb3JpZ2luYWxpdHksIGFzIHdlbGwgYXMgc3R1ZGVudCB1bmRlcnN0YW5kaW5nIGFuZCBvcmFsIGNvbW11bmljYXRpb24sIHRoZSBsYXR0ZXIgZ2FybmVyZWQgdGhyb3VnaCBwZXJzb25hbCBpbnRlcnZpZXdzIHdpdGggdGhlIHN0dWRlbnQuIFRoaXMgeWVhciB0aGVyZSB3ZXJlIHNldmVyYWwgZXhwZXJpbWVudHMgd2l0aCBwbGFudHMgYW5kIGdyb3d0aCByYXRlcywgYWxvbmcgd2l0aCBmZXJ0aWxpemVyIG1ldGhvZHMuIFBhcnRpY2lwYXRpbmcgZnJvbSBOUEFSTCB3ZXJlOiB0ZWNobmljaWFucyBNYXJ5IE1heWVyLCBQYXVsIEthdWZtYW5uLCBOaWNvbGUgRGF2aWRzb24sIGFuZCBMYXVyYSBTZW5pb3IgYW5kIHNjaWVudGlzdHMgRHIuIFJvYmVydCBTcnlnbGV5LCBCaWxsIEl2ZXJzZW4gYW5kIERyLiBEYXZlIEJyYW5zb24uIE5QQVJMIHN0YWZmIG1lbWJlcnMgYWxzbyB0eXBpY2FsbHkgaGVscCB3aXRoIHByZXBhcmF0aW9ucyBmb3IgdGhlIHNjaWVuY2UgZmFpciBieSBnaXZpbmcgYSBwcmVzZW50YXRpb24gZm9yIHN0dWRlbnRzIGF0IHRoZSBzY2hvb2wgc2V2ZXJhbCB3ZWVrcyBwcmlvciB0byB0aGF0IHllYXLigJlzIGV2ZW50LCBkaXNjdXNzaW5nIHRoZSBzY2llbnRpZmljIG1ldGhvZCBhbmQgaG93IHRvIHNldCB1cCBhIHNjaWVuY2UgZXhwZXJpbWVudC4gQWxsIG9mIHRoaXMgeWVhcuKAmXMgdm9sdW50ZWVyIGp1ZGdlcyBhcmUgd2l0aCBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQsIGV4Y2VwdCBQaHlzaWNhbCBTY2llbnRpc3QgQmlsbCBJdmVyc2VuLCB3aG8gd29ya3MgaW4gdGhlIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQuPC9TUEFOPjwvUD4gCjxQIGFsaWduPXJpZ2h0PjxTUEFOPjxBIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9BPjwvU1BBTj48L1A+IAo8UD48U1BBTj5KYW51YXJ5IDI4LCAyMDA5PC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+WW91bmcgR3JhaW4gR3Jvd2VycyBUb3VyIE1vbnRhbmEgQVJTIExhYm9yYXRvcnk6IDwvU1RST05HPihVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpLiBGb3J0eS10d28geW91bmcgcHJvZHVjZXJzIHRvdXJlZCBOUEFSTCBKYW4uIDI4LCBhcyBwYXJ0IG9mIHRoZSBNb250YW5hIEdyYWluIEdyb3dlcnMgQXNzb2NpYXRpb27igJlzIDIwMDkgWW91bmcgR3JhaW4gR3Jvd2VycyBNYXJrZXRpbmcgVG91ci4gRW50aXRsZWQgdGhlIOKAnEZvbGxvdyB0aGUgTWFya2V0c+KAnSB0b3VyLCB0aGUgZ3JvdXAgaXMgdHJhdmVsaW5nIGZyb20gQ2VudHJhbCBNb250YW5hIHRvIE1pbm5lYXBvbGlzLCBNTiwgbWFraW5nIHN0b3BzIGFsb25nIHRoZSB3YXkgYXQgYWcgcmVzZWFyY2ggYW5kIHJlbGF0ZWQgZmFjaWxpdGllcyBhbmQgYnVzaW5lc3Nlcy4mbmJzcDsgQXQgTlBBUkwsIHRvdXIgcGFydGljaXBhbnRzIGhlYXJkIHR3byBwcmVzZW50YXRpb25zLCB0aGUgZmlyc3QgYW4gb3ZlcnZpZXcgb2YgdGhlIFNpZG5leSBBUlMgbGFiIGJ5IEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQgTGVhZGVyIFJvYmVydCBFdmFucywgYW5kIHRoZSBzZWNvbmQgYW4gb3ZlcnZpZXcgb2YgdGhlIHdoZWF0IHN0ZW0gc2F3Zmx5IGJpb2xvZ2ljYWwgY29udHJvbCBwcm9ncmFtIGFuZCBhIOKAnHZpcnR1YWzigJ0gdG91ciBvZiBOUEFSTOKAmXMgbmV3IGJpb2xvZ2ljYWwgY29udHJvbCBjb250YWlubWVudCBmYWNpbGl0LCBieSBCaW9sb2dpY2FsIFNjaWVuY2UgVGVjaG5pY2lhbiBEZWIgV2F0ZXJzLiBUaGUgZ3JvdXAgdGhlbiBmb2xsb3dlZCB1cCB3aXRoIHRvdXJzIG9mIHRoZSByZXN0IG9mIHRoZSBBUlMgcmVzZWFyY2ggZmFjaWxpdHkgbGVkIGJ5IEV2YW5zLCBOUEFSTCBSZXNlYXJjaCBQbGFudCBFY29sb2dpc3QgRXJpbiBFc3BlbGFuZCwgTlBBUkwgUmVzZWFyY2ggQWdyb25vbWlzdCBCcmV0dCBBbGxlbiwgYW5kIE5QQVJMIFRlY2huaWNhbCBJbmZvcm1hdGlvbiBTcGVjaWFsaXN0IEJldGggUmVkbGluLiZuYnNwOyBUaGUgZ3JvdXAgdGhlbiB2aXNpdGVkIHJlc2VhcmNoZXJzIHdpdGggTW9udGFuYSBTdGF0ZSBVbml2ZXJzaXR54oCZcyBFYXN0ZXJuIEFncmljdWx0dXJhbCBSZXNlYXJjaCBDZW50ZXIsIHdoaWNoIGlzIGNvLWxvY2F0ZWQgd2l0aCBBUlMgaW4gU2lkbmV5LCBiZWZvcmUgY29tcGxldGluZyB0aGVpciBzdGF5IHdpdGggYSBzdG9wIGF0IHRoZSBsb2NhbCBCdXNjaCBBZyBtYWx0aW5nIGJhcmxleSBzdG9yYWdlIGZhY2lsaXR5LiBEci4gQWxsZW4gaXMgYSBtZW1iZXIgb2YgTlBBUkzigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQsIHdoaWxlIFdhdGVycyBhbmQgRHIuIEVzcGVsYW5kIGFyZSBtZW1iZXJzIG9mIHRoZSBsYWLigJlzIFBlc3QgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LiZuYnNwOyZuYnNwOyZuYnNwOyA8L1A+IAo8UD48U1RST05HPk1vbnRhbmEgQVJTIFJlc2VhcmNoIEZlYXR1cmVkIEF0IFJlZ2lvbmFsIEZhcm0gU2hvd3M6PC9TVFJPTkc+IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpLiBOUEFSTCBlbXBsb3llZXMgd2lsbCBiZSBwYXJ0aWNpcGF0aW5nIGluIHR3byBhcmVhIGFncmljdWx0dXJhbCB0cmFkZSBzaG93cyBpbiBGZWJydWFyeS4gT24gRmViLiAzLTQsIE5QQVJMIGVtcGxveWVlcyB3aWxsIHN0YWZmIGEgYm9vdGggYXQgdGhlIDU2dGggTmF0aW9uYWwgSGFyZCBTcHJpbmcgV2hlYXQgU2hvdyBpbiBXaWxsaXN0b24sIE5ELiBPbiBkaXNwbGF5IHdpbGwgYmUgaW5mb3JtYXRpb24gb24gdGhlIE1vbnRhbmEgQVJTIGxhYuKAmXMgZHJ5bGFuZCBjcm9wcGluZyBzeXN0ZW1zIHJlc2VhcmNoLCB3aXRoIGEgZm9jdXMgb24gdGhlIHVzZSBvZiBhbHRlcm5hdGl2ZSBtYW5hZ2VtZW50IHN5c3RlbXMgYW5kIGRpdmVyc2Ugcm90YXRpb25zIHRvIGhlbHAgbWFuYWdlIGNyb3Agd2VlZHMuIFRoYXQgcmVzZWFyY2ggaXMgYmVpbmcgY29uZHVjdGVkIGJ5IERyLiBBbmRyZXcgTGVubnNlbiwgTlBBUkwgV2VlZCBFY29sb2dpc3Qgd2l0aCB0aGUgbGFi4oCZcyBBZ3JpY3VsdHVyYWwgU3lzdGVtcyBSZXNlYXJjaCBVbml0LiBBbHNvIGZlYXR1cmVkIGF0IHRoZSBXaWxsaXN0b24sIE5EIGxvY2FsZSB3aWxsIGJlIGluZm9ybWF0aW9uIG9uIE5QQVJM4oCZcyBiaW9sb2dpY2FsIGNvbnRyb2wgcHJvZ3JhbSBmb3Igd2hlYXQgc3RlbSBzYXdmbHkgYW5kIHRoZSBNb3Jtb24gY3JpY2tldCBpbW11bm9sb2d5IHJlc2VhcmNoIGJlaW5nIGNvbmR1Y3RlZCBieSBOUEFSTCBSZXNlYXJjaCBFY29sb2dpc3QgUm9iZXJ0IFNyeWdsZXkuIE9uIEZlYi4gMTMtMTQsIE5QQVJMIHdpbGwgaGF2ZSBhbm90aGVyIGJvb3RoIGF0IHRoZSBHbGVuZGl2ZSBBZ3JpLVRyYWRlIEV4aGliaXRpb24gaW4gR2xlbmRpdmUsIE1ULiBUaGF0IGJvb3RoIHdpbGwgZmVhdHVyZSByZXNlYXJjaCBieSBOUEFSTCBBZ3Jvbm9taXN0IEJhcnQgU3RldmVucyBsb29raW5nIGF0IG5pdHJvZ2VuIGFwcGxpY2F0aW9uIHJhdGVzIGluIHN0cmlwLXRpbGxlZCB2ZXJzdXMgY29udmVudGlvbmFsbHkgdGlsbGVkIHN1Z2FyIGJlZXQgdW5kZXIgc3ByaW5rbGVyIGlycmlnYXRpb24uIFRoYXQgcmVzZWFyY2ggaGFzIHNob3duIHRoYXQgY29udmVudGlvbmFsIGZlcnRpbGl6ZXIgcmF0ZXMgcHJvZHVjZWQgY29tcGFyYWJsZSB5aWVsZHMgYW5kIHN1Z2FyIHBlcmNlbnRhZ2VzIGluIHRoZSBzdHJpcC10aWxsZWQgdGVzdCBjcm9wLiBTdGV2ZW5zIGFuZCBvdGhlciByZXNlYXJjaGVycyB3aXRoIE5QQVJM4oCZcyBBZ3JpY3VsdHVyYWwgU3lzdGVtcyBSZXNlYXJjaCBVbml0IHByZXZpb3VzbHkgZGVtb25zdHJhdGVkIHNpZ25pZmljYW50IHRpbWUgYW5kIGVuZXJneSBzYXZpbmdzIGZvciBzdHJpcCB0aWxsZWQgc3VnYXIgYmVldCBzaW5jZSBhcyBtYW55IGFzIGZpdmUgb3Igc2l4IGZld2VyIHBhc3NlcyB3ZXJlIG5lZWRlZCBhY3Jvc3MgdGhlIGZpZWxkLCBhbG9uZyB3aXRoIHJlZHVjZWQgZW52aXJvbm1lbnRhbCBpbXBhY3RzLiBUaGVpciBmaW5kaW5ncyBhcmUgbm93IHByb21wdGluZyBwcm9kdWNlcnMgYm90aCBsb2NhbGx5IGFuZCBhY3Jvc3MgdGhlIHJlZ2lvbiB0byBjb252ZXJ0IHRob3VzYW5kcyBvZiBhY3JlcyBvZiBjb252ZW50aW9uYWxseSB0aWxsZWQgc3VnYXIgYmVldCB0byBzdHJpcCB0aWxsLjwvUD4gCjxQPjxTVFJPTkc+QVJTIE1vbGVjdWxhciBCaW9sb2dpc3QgVG8gUHJlc2VudCBQYXBlciBJbiBGbG9yaWRhPC9TVFJPTkc+OiZuYnNwOyBBUlMgTW9sZWN1bGFyIEJpb2xvZ2lzdCwgQnJlbmRhIE9wcGVydCB3aXRoIHRoZSBCaW9sb2dpY2FsIFJlc2VhcmNoIFVuaXQsIEdyYWluIE1hcmtldGluZyBhbmQgUHJvZHVjdGlvbiBSZXNlYXJjaCBDZW50ZXIsIE1hbmhhdHRhbiwgS1MsIHdpbGwgYXR0ZW5kIHRoZSBBZHZhbmNlcyBpbiBHZW5vbWUgQmlvbG9neSBhbmQgVGVjaG5vbG9neSBtZWV0aW5nIGF0IE1hcmNvIElzbGFuZCwgRmxvcmlkYSwgRmVicnVhcnkgNC03LiBTaGUgd2lsbCBwcmVzZW50IHRoZSBwYXBlciDigJxUcmFuc2NyaXB0b21lIHByb2ZpbGluZyBvZiBCYWNpbGx1cyB0aHVyaW5naWVuc2lzIENyeTNBYSBpbnRveGljYXRpb24gb2YgVGVuZWJyaW8gbW9saXRvciBsYXJ2YWUuIjwvUD4gCjxQIGFsaWduPXJpZ2h0PjxBIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9BPjwvU1BBTj48L1A+IAo8UD48U1BBTj5EZWNlbWJlciAxMCwgMjAwODwvU1BBTj48L1A+IAo8UD48U1BBTj48U1RST05HPkFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlIChBUlMpIE5vcnRoZXJuIFBsYWlucyBBcmVhIFNjaWVudGlzdHMgVG8gUHJlc2VudCBBdCBGb3Jlc3QgU2VydmljZSBTeW1wb3NpdW0gT24gQ2xpbWF0ZSBDaGFuZ2U6PC9TVFJPTkc+IE9uIERlY2VtYmVyIDExdGgsIERycy4gSmFjayBNb3JnYW4gKFJlc2VhcmNoIExlYWRlci9QbGFudCBQaHlzaW9sb2dpc3QsIEZ0LiBDb2xsaW5zLCBDTykgYW5kIE1hcmsgTGllYmlnIChSZXNlYXJjaCBTb2lsIFNjaWVudGlzdCwgTWFuZGFuLCBORCkgd2lsbCBnaXZlIHByZXNlbnRhdGlvbnMgYXQgdGhlIEN1c3RlciBOYXRpb25hbCBGb3Jlc3QgZGl2aXNpb27igJlzIFN5bXBvc2l1bSBvbiBDbGltYXRlIENoYW5nZSBpbiBCaWxsaW5ncywgTVQuJm5ic3A7IERyLiBNb3JnYW4gd2lsbCBzcGVhayBvbiDigJhWZWdldGF0aW9uIGFuZCBJbnZhc2l2ZXMgdW5kZXIgYSBDaGFuZ2luZyBDbGltYXRl4oCZIHdoaWxlIERyLiBMaWViaWcgd2lsbCBwcmVzZW50IOKAmE1hbmFnZW1lbnQgRWZmZWN0cyBvbiBTb2lsIENhcmJvbiBEeW5hbWljcyBpbiBSYW5nZWxhbmQgRWNvc3lzdGVtc+KAmS4mbmJzcDsgVGhleSBnYXZlIHNpbWlsYXIgcHJlc2VudGF0aW9ucyBhdCB0aGUgRGFrb3RhIFByYWlyaWUgR3Jhc3NsYW5kcyBkaXZpc2lvbuKAmXMgU3ltcG9zaXVtIG9uIENsaW1hdGUgQ2hhbmdlIGluIEJpc21hcmNrLCBORCBvbiBEZWNlbWJlciA1dGggdG8gYW4gYXVkaWVuY2Ugb2Ygb3ZlciA1MCBhdHRlbmRlZXMuPC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIFNjaWVudGlzdCBSZWNpcGllbnQgT2YgVGhlIFJlZCBSaXZlciBWYWxsZXkgU3VnYXJiZWV0IEdyb3dlcuKAmXMgQXNzb2NpYXRpb24gRGlzdGluZ3Vpc2hlZCBTZXJ2aWNlIEF3YXJkOjwvU1RST05HPiZuYnNwOyBLYXJlbiBGdWdhdGUgKGZvcm1lcmx5IEtsb3R6KSwgUmVzZWFyY2ggUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ2lzdCwgU3VnYXJiZWV0ICYgUG90YXRvIFJlc2VhcmNoIFVuaXQsIEZhcmdvLCBORCwgd2FzIHRoZSAyMDA4IHJlY2lwaWVudCBvZiB0aGUgUmVkIFJpdmVyIFZhbGxleSBTdWdhcmJlZXQgR3Jvd2Vy4oCZcyBBc3NvY2lhdGlvbiBEaXN0aW5ndWlzaGVkIFNlcnZpY2UgQXdhcmQuJm5ic3A7IFRoZSBhd2FyZCB3YXMgcHJlc2VudGVkIGF0IHRoZSBhbm51YWwgbWVldGluZyBvZiB0aGUgc3VnYXJiZWV0IGdyb3dlcuKAmXMgYXNzb2NpYXRpb24gaGVsZCBvbiBEZWNlbWJlciA0LiZuYnNwOyBEci4gRnVnYXRlIHdhcyByZWNvZ25pemVkIGZvciBoZXIgcmVzZWFyY2ggY29udHJpYnV0aW9ucyB0byB0aGUgc3VnYXJiZWV0IGluZHVzdHJ5IHdoaWNoIGhhdmUgZm9jdXNlZCBvbiB0aGUgZWZmZWN0cyBvZiBlbnZpcm9ubWVudCBhbmQgZGlzZWFzZSBvbiBzdWdhciByZXRlbnRpb24gYW5kIHJlY292ZXJ5IGZyb20gc3VnYXJiZWV0cy4mbmJzcDsgPC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIFJlc2VhcmNoZXIgSW52aXRlZCBTbyBTcGVhayBBdCBTb3V0aCBEYWtvdGEgU3RhdGUgVW5pdmVyc2l0eTo8L1NUUk9ORz4gKFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkmbmJzcDsgTlBBUkwgUmVzZWFyY2ggRW50b21vbG9naXN0IFN0ZWZhbiBKYXJvbnNraSB3YXMgaW52aXRlZCB0byBzcGVhayB0byB0aGUgU291dGggRGFrb3RhIFVuaXZlcnNpdHkgRGVwYXJ0bWVudCBvZiBQbGFudCBTY2llbmNlcyBhbmQgdGhlIEFSUyBOb3J0aCBDZW50cmFsIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5IChOQ0FSTCksIGluIEJyb29raW5ncywgU0QgYXMgcGFydCBvZiB0aGVpciBGYWxsIDIwMDggU2VtaW5hciBTcGVha2luZyBTZXJpZXMuIERyLiBKYXJvbnNraSwgYSBtZW1iZXIgb2YgTlBBUkzigJlzIFBlc3QgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LCBzcG9rZSBhdCBTRFNVIG9uIERlY2VtYmVyIDh0aC4gSGlzIHNlbWluYXIsIGVudGl0bGVkIOKAnE1hbmFnaW5nIE1hZ2dvdCBNYW5pYSBNeWNvbG9naWNhbGx5IHdpdGggTWV0YXJoaXp1bSzigJ0gZmVhdHVyZWQgaGlzIHJlc2VhcmNoIG9uIHRoZSBzdWdhciBiZWV0IHJvb3QgbWFnZ290IGFuZCB0aGUgdXNlIG9mIG5ldyBmdW5nYWwgYWdlbnRzIHRvIGhlbHAgbWFuYWdlIHRoaXMgaW1wb3J0YW50IHN1Z2FyIGJlZXQgcGVzdC4gVGhhdCByZXNlYXJjaCBoYXMgc2hvd24gdGhhdCBhdCBsb3cgdG8gbW9kZXJhdGUgaW5zZWN0IHByZXNzdXJlIE1ldGFyaGl6aXVtIHdvcmtzIGFzIHdlbGwgYXMgdGhlIG1vc3QgY29tbW9uIGNoZW1pY2FsIGNvbnRyb2wgdXNlZC4gRHIuIEphcm9uc2tpIGlzIGN1cnJlbnRseSBzdHVkeWluZyB0aGUgaW50ZWdyYXRpb24gb2YgTWV0YXJoaXppdW0gd2l0aCBhIHN1aXRlIG9mIG90aGVyIG1hbmFnZW1lbnQgdG9vbHMgdG8gYmV0dGVyIGNvbnRyb2wgaGlnaGVyIGluc2VjdCBwcmVzc3VyZSBzaXR1YXRpb25zLjwvU1BBTj48L1A+IAo8UD48U1BBTj48U1RST05HPkFSUyBSZXNlYXJjaGVyIEludml0ZWQgVG8gU3BlYWsgQXQgSXJyaWdhdGlvbiBXb3Jrc2hvcDo8L1NUUk9ORz4gKFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkmbmJzcDsgTlBBUkwgUmVzZWFyY2ggTGVhZGVyIGFuZCBBZ3JpY3VsdHVyYWwgRW5naW5lZXIgUm9iZXJ0IEV2YW5zIGhhcyBiZWVuIGludml0ZWQgdG8gc3BlYWsgYXQgdGhlIOKAnE1heGltaXplIHlvdXIgJCQkIElycmlnYXRpb24gV29ya3Nob3DigJ0gdG8gYmUgaGVsZCBhdCBOb3J0aCBEYWtvdGEgU3RhdGUgVW5pdmVyc2l0eeKAmXMgV2lsbGlzdG9uIFJlc2VhcmNoIEV4dGVuc2lvbiBDZW50ZXIgaW4gV2lsbGlzdG9uLCBORCwgb24gRGVjZW1iZXIgMTcuIFRoZSB3b3Jrc2hvcCB3aWxsIGZvY3VzIG9uIGhvdyBpcnJpZ2F0b3JzIGNhbiBhY2hpZXZlIGNvbnNpc3RlbmN5IGluIGNyb3AgeWllbGRzIGFuZCBxdWFsaXR5LCB3aXRoIGFuIGVtcGhhc2lzIG9uIHNwZWNpZmljIHdhdGVyIG1hbmFnZW1lbnQgdGVjaG5pcXVlcyBhbmQgY3JvcHMuIERyLiBFdmFucywgUmVzZWFyY2ggTGVhZGVyIG9mIE5QQVJMU+KAmXMgQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdCwgd2lsbCBkaXNjdXNzIHRoZSBpbm5vdmF0aXZlIHJlc2VhcmNoIGJlaW5nIGRvbmUgYXQgTlBBUkwgb24gc3RyaXAgdGlsbGFnZSBvZiBzdWdhciBiZWV0LiBUaGF0IHJlc2VhcmNoIGhhcyBzaG93biB0aGF0IHByb2R1Y3Rpdml0eSBhbmQgcXVhbGl0eSBhcmUgY29tcGFyYWJsZSBiZXR3ZWVuIHN0cmlwIHRpbGxhZ2UgYW5kIGNvbnZlbnRpb25hbCB0aWxsYWdlIHN5c3RlbXMgb3ZlciBhIGZpdmUteWVhciBwZXJpb2QuIEluIGFkZGl0aW9uLCBTaWRuZXkgQVJTIHJlc2VhcmNoIGhhcyBzaG93biB0aGF0IHN0cmlwIHRpbGxhZ2UgY2FuIHNhdmUgcHJvZHVjZXJzIHVwIHRvICQxMDAvYWNyZSBpbiBmdWVsIGNvc3RzIGFuZCB0aW1lIHNpbmNlIGl0IHJlcXVpcmVzIDUgdG8gNiBmZXdlciB0cmlwcyBhY3Jvc3MgdGhlIGZpZWxkIHRoYW4gZG9lcyBjb252ZW50aW9uYWwgdGlsbGFnZS4gSm9pbmluZyBEci4gRXZhbnMgdG8gZGlzY3VzcyBhZGRpdGlvbmFsIHN0cmlwIHRpbGxhZ2UgcmVzZWFyY2ggYW5kIGFwcGxpY2F0aW9uIGVmZm9ydHMgYXQgTm9ydGggRGFrb3RhIFN0YXRlIFVuaXZlcnNpdHkgaW4gRmFyZ28gd2lsbCBiZSBORFNVIEFnIE1hY2hpbmVzIFNwZWNpYWxpc3QgSm9obiBOb3dhdHpraSBhbmQgcHJvZHVjZXIgU2NvdHQgRmx5bm4uIE90aGVyIHRvcGljcyBhdCB0aGUgd29ya3Nob3AgaW5jbHVkZSB1cGRhdGVzIG9uIEVRSVAgcHJvZ3JhbXMsIHJlc2VhcmNoIGF0IE5lc3NvbiBWYWxsZXksIGlycmlnYXRpb24gY3JvcCBidWRnZXRzLCBpcnJpZ2F0aW9uIHdhdGVyIG1hbmFnZW1lbnQsIGlycmlnYXRpb24gc2NoZWR1bGluZyBhbmQgYW4gdXBkYXRlIGZyb20gdGhlIE5EIFN0YXRlIFdhdGVyIENvbW1pc3Npb24uPC9TUEFOPjwvUD4gCjxQIGFsaWduPXJpZ2h0PjxTUEFOPjxBIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9BPjwvU1BBTj48L1A+IAo8UD48U1BBTj5EZWNlbWJlciAzLCAyMDA4PC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIFJlc2VhcmNoZXJzIEludml0ZWQgVG8gTWVldCBXaXRoIFNjaWVudGlzdHMgQXQgSW50ZXJuYXRpb25hbCBCaW8gRmlybTo8L1NUUk9ORz4gKFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkmbmJzcDsgTlBBUkwgUmVzZWFyY2ggRW50b21vbG9naXN0IFN0ZWZhbiBKYXJvbnNraSB3YXMgaW52aXRlZCB0byBzcGVhayB0byByZXNlYXJjaGVycyBhdCBOb3ZvenltZXMgQmlvbG9naWNhbHMsIENvcnAuIGluIFNhbGVtLCBWQSBEZWMuIDMgdG8gZGlzY3VzcyBoaXMgc3VnYXJiZWV0IG1hZ2dvdCByZXNlYXJjaCB1c2luZyB0aGUgZmlybeKAmXMgTWV0YXJoaXppdW0gZnVuZ3VzIChGNTIpLiBOb3ZvenltZXMgaXMgYSBnbG9iYWwgY29tcGFueSBoZWFkcXVhcnRlcmVkIGluIERlbm1hcmsgdGhhdCBwcm9kdWNlcyBpbmR1c3RyaWFsIGVuenltZXMsIG1pY3Jvb3JnYW5pc21zIGFuZCBiaW9waGFybWFjZXV0aWNhbCBpbmdyZWRpZW50cyBmb3IgaW5kdXN0cnkuIERyLiBKYXJvbnNraeKAmXMgZmluZGluZ3MgbWF5IGxlYWQgdG8gdGhlIGV4cGFuc2lvbiBvZiBOb3ZvenltZXPigJkgZnVuZ3VzIHJlZ2lzdHJhdGlvbiB0byBzdWdhciBiZWV0cy4gQWxzbyBqb2luaW5nIERyLiBKYXJvbnNraSB3YXMgTWljcm9iaW9sb2dpc3QgTWFyayBKYWNrc29uLCBmcm9tIEFSU+KAmSBOYXRpb25hbCBDZW50ZXIgZm9yIEFncmljdWx0dXJhbCBVdGlsaXphdGlvbiBSZXNlYXJjaCBpbiBQZW9yaWEsIElMLCB3aG8gZGlzY3Vzc2VkIGZlcm1lbnRhdGlvbiBpc3N1ZXMuIERyLiBKYXJvbnNraSBpcyBhIG1lbWJlciBvZiBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQuPC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIHJlc2VhcmNoZXIgVG8gU3BlYWsgQXQgVGhlIFNvdXRoIERha290YSBBZyBIb3Jpem9ucyBDb25mZXJlbmNlOjwvU1RST05HPiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSZuYnNwOyBOUEFSTCBSZXNlYXJjaCBFY29sb2dpc3QgRHIuIEFuZHJldyBMZW5zc2VuIHdhcyBpbnZpdGVkIHRvIHNwZWFrIGF0IHRoZSAyMDA4IOKAnENyb3BzLCBDcml0dGVycyBhbmQgQ2FyYm9uc+KAnSBBZyBIb3Jpem9ucyBDb25mZXJlbmNlIGhlbGQgaW4gUGllcnJlLCBTRCBvbiBEZWNlbWJlciAyLTMuIERyLiBMZW5zc2Vu4oCZcyB0YWxrIGVudGl0bGVkIOKAnERyeWxhbmQgQ3JvcHBpbmcgU3lzdGVtcyBmb3IgSW1wcm92ZWQgQ3JvcCBQcm9kdWN0aXZpdHkgYW5kIFdlZWQgTWFuYWdlbWVudOKAnSB3YXMgc2NoZWR1bGVkIGZvciBwcmVzZW50YXRpb24gYm90aCBkYXlzLiBIaXMgcmVzZWFyY2ggYWRkcmVzc2VzIGltcHJvdmVkIHdlZWQgbWFuYWdlbWVudCBhbmQgY3JvcCBwcm9kdWN0aW9uIHByYWN0aWNlcyBpbiBpcnJpZ2F0ZWQgYW5kIGRyeWxhbmQgZW52aXJvbm1lbnRzLiBBbiBlc3RpbWF0ZWQgNDAwIHBhcnRpY2lwYW50cyBhdHRlbmRlZCB0aGlzIHllYXIncyB0d28tZGF5IGNvbmZlcmVuY2UsIHdoaWNoIGZlYXR1cmVkIDI1IHNwZWFrZXJzIG9uIGEgd2lkZSByYW5nZSBvZiB0b3BpY3MgaW5jbHVkaW5nIGNvdmVyIGNyb3BzLCBjYXJib24gY3JlZGl0cywgY3JvcCByb3RhdGlvbiwgdmFyaWV0eSByZWNvbW1lbmRhdGlvbnMsIGVudG9tb2xvZ3kgYW5kIHdlZWQgbWFuYWdlbWVudCwgZmVydGlsaXplciBjb3N0cywgYW5kIGluc3VyYW5jZSBhbmQgdGF4YXRpb24gdXBkYXRlcy4gVGhlIGV2ZW50IGlzIHBvcHVsYXIgd2l0aCBwcm9kdWNlcnMuIERyLiBMZW5uc2VuIGlzIGEgbWVtYmVyIG9mIE5QQVJM4oCZcyBBZ3JpY3VsdHVyYWwgU3lzdGVtcyBSZXNlYXJjaCBVbml0LiA8L1NQQU4+PC9QPiAKPFA+PFNQQU4+PFNUUk9ORz5BUlMgUmVzZWFyY2hlciBUbyBzcGVhayBBdCB0aGUgV0EgSG9ydGljdWx0dXJhbCBBc3NvY2lhdGlvbiBNZWV0aW5nOjwvU1RST05HPiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSZuYnNwOyBOUEFSTCBBZ3JpY3VsdHVyYWwgRW5naW5lZXIgRHIuIFJvYmVydCBFdmFucyBzcG9rZSBhdCB0aGUgMTA0dGggYW5udWFsIG1lZXRpbmcgb2YgdGhlIFdhc2hpbmd0b24gU3RhdGUgSG9ydGljdWx0dXJhbCBBc3NvY2lhdGlvbiBoZWxkIGluIFlha2ltYSwgV0EsIG9uIERlY2VtYmVyIDEtMy4gVGhlIG1lZXRpbmcg4oCcQ2VsZWJyYXRpbmcgVHJlZSBGcnVpdDogT3Bwb3J0dW5pdGllcyBmb3IgdGhlIE5leHQgR2VuZXJhdGlvbuKAnSB3YXMgYXR0ZW5kZWQgYnkgb3ZlciAxLDMwMCBwYXJ0aWNpcGFudHMgYW5kIDIwMCBleGhpYml0b3JzLiBEci4gRXZhbnMgZ2F2ZSBhIGtleW5vdGUgYWRkcmVzcyBvbiB0aGUgYmFzaWNzIG9mIHJlZHVjaW5nIGxvdyB0ZW1wZXJhdHVyZSBpbmp1cnkgdG8gb3JjaGFyZCBhbmQgdmluZSBjcm9wcyB0byBncm93ZXJzLCBpbmR1c3RyeSBhbmQgRXh0ZW5zaW9uIHBlb3BsZS4gVGhlIHNwZWFraW5nIGludml0YXRpb24gd2FzIHRoZSByZXN1bHQgb2YgcHJldmlvdXMgcmVzZWFyY2ggb24gY29sZCB0ZW1wZXJhdHVyZSBwcm90ZWN0aW9uIG9mIGNyb3BzIGNvbmR1Y3RlZCBieSBEci4gRXZhbnMgd2hpbGUgYXQgV2FzaGluZ3RvbiBTdGF0ZSBVbml2ZXJzaXR5LiBEci4gRXZhbnMgY3VycmVudGx5IHNlcnZlcyBhcyBSZXNlYXJjaCBMZWFkZXIgb2YgTlBBUkzigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQuIFRoZSBXYXNoaW5ndG9uIFN0YXRlIEhvcnRpY3VsdHVyYWwgQXNzb2NpYXRpb24gd2FzIG9yZ2FuaXplZCBpbiAxOTA0IGFuZCByZXByZXNlbnRzIGJvdGggc2hpcHBlcnMgYW5kIGdyb3dlcnMuIFRoZWlyIG1pc3Npb24gaXMgdG8gYWR2YW5jZSBhbmQgZW5oYW5jZSB0aGUgdHJlZSBmcnVpdCBpbmR1c3RyeSBpbiB0aGUgc3RhdGUgb2YgV2FzaGluZ3Rvbi48L1NQQU4+PC9QPiAKPFA+PFNQQU4+PFNUUk9ORz5BUlMgU2NpZW50aXN0IEdpdmVzIFNlbWluYXIgT24gU3RvcmVkIFByb2R1Y3QgRW50b21vbG9neSBBdCBVbml2ZXJzaXR5IE9mIE1hbml0b2JhPC9TVFJPTkc+OiZuYnNwOyBPbiBEZWNlbWJlciA0LCBGcmFuayBBcnRodXIsIFJlc2VhcmNoIEVudG9tb2xvZ2lzdCwgQVJTIEdyYWluIE1hcmtldGluZyBhbmQgUHJvZHVjdGlvbiBSZXNlYXJjaCBDZW50ZXIsIE1hbmhhdHRhbiwgS1MsIHdpbGwgcHJlc2VudCBhIHNlbWluYXIg4oCcU3RvcmVkIFByb2R1Y3QgRW50b21vbG9neTogUHJlc2VudCBTdGF0dXMgYW5kIEZ1dHVyZSBUcmVuZHPigJ0gdG8gdGhlIFVuaXZlcnNpdHkgb2YgTWFuaXRvYmEncyBEZXBhcnRtZW50IG9mIEVudG9tb2xvZ3ksIFdpbm5pcGVnLCBDYW5hZGEuPC9TUEFOPjwvUD4gCjxQIGFsaWduPXJpZ2h0PjxTUEFOPjxBIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9BPjwvU1BBTj48L1A+IAo8UD48U1BBTj5Ob3ZlbWJlciAxMywgMjAwODwvU1BBTj48L1A+IAo8UD48U1BBTj48U1RST05HPkFSUyBTY2llbnRpc3RzIFRvIEF0dGVuZCBOYXRpb25hbCBNZWV0aW5nIE9mIFRoZSBFbnRvbW9sb2dpY2FsIFNvY2lldHkgb2YgQW1lcmljYTwvU1RST05HPjogRHJzLiBGcmFuayBBcnRodXIsIEppbSBDYW1wYmVsbCwgQnJlbmRhIE9wcGVydCwgYW5kIEppbSBUaHJvbmUgd2l0aCB0aGUgQmlvbG9naWNhbCBSZXNlYXJjaCBVbml0LCBHcmFpbiBNYXJrZXRpbmcgYW5kIFByb2R1Y3Rpb24gUmVzZWFyY2ggQ2VudGVyLCBNYW5oYXR0YW4sIEtTLCB3aWxsIGF0dGVuZCB0aGUgYW5udWFsIG1lZXRpbmcgTm92ZW1iZXIgMTYtMjAuJm5ic3A7IFByZXNlbnRhdGlvbnMgdG8gYmUgZ2l2ZW4gYXJlOiBTdG9yZWQtcHJvZHVjdCBFbnRvbW9sb2d5LCBQYXN0LCBQcmVzZW50IGFuZCBGdXR1cmUgYnkgRnJhbmsgQXJ0aHVyOyBJbmZsdWVuY2Ugb2Ygc3BpbGxhZ2UgbGFuZHNjYXBlIHBhdHRlcm4gb24gcmVkIGZsb3VyIGJlZXRsZSByZXNwb25zZSB0byBwaGVyb21vbmUgdHJhcHMgYnkgSmltIENhbXBiZWxsOyBhbmQgRnVuY3Rpb25hbCBhbmFseXNpcyBvZiBCdCBpbnRveGljYXRpb24gaW4gY29sZW9wdGVyYW4gaW5zZWN0cywgRGVzaWNjYXRpb24gYW5kIGh5cG94aWMgc3RyZXNzIGluZHVjZWQgY2hhbmdlcyBpbiBnZW5lIGV4cHJlc3Npb24gaW4gdGhlIHJlZCBmbG91ciBiZWV0bGUsIFRyaWJvbGl1bSBjYXN0YW5ldW0gKEhlcmJzdCksIGFuZCBUaGUgVHJpYm9saXVtIGdlbm9tZTogVW5sb2NraW5nIHRoZSBzZWNyZXRzIG9mIHRoZSBndXQgdHJhbnNjcmlwdG9tZSBhbmQgcHJvdGVvbWUgYnkgQnJlbmRhIE9wcGVydC48L1NQQU4+PC9QPiAKPFA+PFNQQU4+PFNUUk9ORz5BUlMgU29pbCBTY2llbnRpc3QgUGFydGljaXBhdGVzIEluIEEgQ2FuYWRpYW4gV29ya3Nob3AgVG8gRGV2ZWxvcCBQcm90b2NvbHMgVG8gUmVkdWNlIE5pdHJvdXMgT3hpZGUgRW1pc3Npb25zIEZyb20gTml0cm9nZW4gQXBwbGljYXRpb24gSW4gQWdyaWN1bHR1cmFsIFN5c3RlbXM8L1NUUk9ORz46Jm5ic3A7IE9uIE9jdG9iZXIgMjctMjksIHNvaWwgc2NpZW50aXN0IEFyZGVsbCBIYWx2b3Jzb24sIEFSUyBTb2lsLVBsYW50LU51dHJpZW50IFJlc2VhcmNoIFVuaXQsIEZvcnQgQ29sbGlucywgQ08sIHdhcyBhbiBpbnZpdGVkIHBhcnRpY2lwYW50IGluIGEgTml0cm91cyBPeGlkZSBFbWlzc2lvbnMgUmVkdWN0aW9uIFByb3RvY29sIHdvcmtzaG9wIGluIENhbGdhcnksIEFsYmVydGEgdG8gZXN0YWJsaXNoIHByb3RvY29scyB0aGF0IGZhcm1lcnMgY2FuIGZvbGxvdyB0byByZWR1Y2Ugbml0cm91cyBveGlkZSBlbWlzc2lvbnMgZnJvbSB0aGVpciBsYW5kIHJlc3VsdGluZyBmcm9tIG5pdHJvZ2VuIGFwcGxpY2F0aW9uIGZvciB3aGljaCB0aGV5IHdpbGwgYmUgY29tcGVuc2F0ZWQuJm5ic3A7Jm5ic3A7IEhhbHZvcnNvbiBzZXJ2ZWQgYXMgYSBzY2llbnRpZmljIHJlc291cmNlIHBlcnNvbiBmb3IgdGhpcyBwcm9jZXNzLiZuYnNwOyBUaGUgbml0cm91cyBveGlkZSByZWR1Y3Rpb24gcHJvdG9jb2xzIGVzdGFibGlzaGVkIGZvciBBbGJlcnRhIHdpbGwgYXBwbHkgdG8gb3RoZXIgUHJhaXJpZSBQcm92aW5jZXMgYW5kIHdpbGwgaGF2ZSBhcHBsaWNhYmlsaXR5IHRocm91Z2hvdXQgQ2FuYWRhIGFuZCBwb3RlbnRpYWxseSBmb3IgdGhlIFUuUy48L1NQQU4+PC9QPiAKPFA+IAo8UD48U1BBTj48L1NQQU4+PC9QPiAKPFAgYWxpZ249cmlnaHQ+PFNQQU4+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9TUEFOPjwvUD4gCjxQPk9jdG9iZXIgMjksIDIwMDg8L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIFRvIEF0dGVuZCBGaWZ0ZWVudGggQW5udWFsIFJlc2VhcmNoIENvbmZlcmVuY2UgT24gTWV0aHlsIEJyb21pZGUgQWx0ZXJuYXRpdmVzIEFuZCBFbWlzc2lvbnMgUmVkdWN0aW9uOjwvU1RST05HPiZuYnNwOyBEcnMuIEZyYW5rIEFydGh1ciBhbmQgSmltIENhbXBiZWxsIHdpdGggdGhlIEJpb2xvZ2ljYWwgUmVzZWFyY2ggVW5pdCwgR3JhaW4gTWFya2V0aW5nIGFuZCBQcm9kdWN0aW9uIFJlc2VhcmNoIENlbnRlciwgTWFuaGF0dGFuLCBLUywgd2lsbCBhdHRlbmQgdGhlIGNvbmZlcmVuY2UgaW4gT3JsYW5kbywgRkwsIE5vdmVtYmVyIDExLTE0LiBUaGUgdGl0bGUgb2YgRHIuIEFydGh1cuKAmXMgcHJlc2VudGF0aW9uIGlzIOKAnEVzZmVudmFsZXJhdGUgcGx1cyBtZXRob3ByZW5lIGFlcm9zb2wgdG8gY29udHJvbCB0aGUgSW5kaWFubWVhbCBtb3Ro4oCdLCBhbmQgdGl0bGUgZm9yIERyLiBDYW1wYmVsbOKAmXMgdGFsayBpcyDigJxFdmFsdWF0aW5nIHRoZSBpbXBhY3Qgb2Ygc3RydWN0dXJhbCBmdW1pZ2F0aW9uIG9uIHBlc3QgcG9wdWxhdGlvbnMu4oCdJm5ic3A7IDwvUD4gCjxQPjxTVFJPTkc+QVJTIExhYm9yYXRvcnkgSG9zdHMgQ2hpbmVzZSBEZWxlZ2F0aW9uOjwvU1RST05HPiZuYnNwOyBPbiBPY3RvYmVyIDE4LTIxLCB0aGUgQVJTIFdpbmQgRXJvc2lvbiBSZXNlYXJjaCBVbml0LCBNYW5oYXR0YW4sIEtTLCBob3N0ZWQgdGhyZWUgc3BlY2lhbGlzdHMgZnJvbSB0aGUgQ29uc2VydmF0aW9uIFRpbGxhZ2UgUmVzZWFyY2ggQ2VudGVyIGFuZCBDaGluYSBBZ3JpY3VsdHVyYWwgVW5pdmVyc2l0eSwmbmJzcDsgQmVpamluZywgQ2hpbmEuJm5ic3A7Jm5ic3A7IFRoZSBkZWxlZ2F0aW9uIG1ldCB3aXRoIFdFUlUgcGVyc29ubmVsIHRvIGRpc2N1c3MgcG90ZW50aWFsIGNvbGxhYm9yYXRpdmUgcmVzZWFyY2ggaW50ZXJlc3RzIGFuZCB2aXNpdGVkIHRoZSBXaW5kIEVyb3Npb24gTGFib3JhdG9yeSBpbiBwcmVwYXJhdGlvbiBmb3IgZXhwYW5kaW5nIHRoZWlyIHdpbmQgZXJvc2lvbiByZXNlYXJjaCBwcm9ncmFtIGluIENoaW5hLiZuYnNwOyBXRVJVIHN0YWZmIGFsc28gcHJvdmlkZWQgdG91cnMgYW5kIG1lZXRpbmdzIHdpdGggYXJlYSBmYXJtZXJzIGFuZCB0aGUgQmlvbG9naWNhbCBhbmQgQWdyaWN1bHR1cmFsIEVuZ2luZWVyaW5nIERlcGFydG1lbnQgYXQgS2Fuc2FzIFN0YXRlIFVuaXZlcnNpdHkgZHVyaW5nIHRoZWlyIHN0YXkuPC9QPiAKPFA+PFNUUk9ORz5BUlMgQm90YW5pc3QgSW52aXRlZCBUbyBTcGVhayBBdCBJbnRlcm5hdGlvbmFsIEludmFzaXZlIFBsYW50IFJlc2VhcmNoIEZvcnVtOjwvU1RST05HPiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSZuYnNwOyBOUEFSTCBSZXNlYXJjaCBCb3RhbmlzdCBKb2huIEdhc2tpbiB3YXMgaW52aXRlZCB0byBzcGVhayBhdCBhbiBJbnRlcm5hdGlvbmFsIFJlc2VhcmNoIEZvcnVtIE9jdC4gMjgtMjksIGluIFJpY2htb25kLCBCcml0aXNoIENvbHVtYmlhLCBDYW5hZGEuIFRoZSBmb3J1bSwgZW50aXRsZWQg4oCcSW52YXNpdmUgUGxhbnQgUmVzZWFyY2ggaW4gQnJpdGlzaCBDb2x1bWJpYTogQ3VycmVudCBQcm9qZWN0cyBhbmQgRnV0dXJlIFRyZW5kc+KAnSwgd2FzIGhvc3RlZCBieSB0aGUgSW52YXNpdmUgUGxhbnQgQ291bmNpbCBvZiBCcml0aXNoIENvbHVtYmlhLiBUaGUgaW50ZW50IG9mIHRoaXMgZm9ydW0gd2FzIHRvIGRpc2N1c3MgKDEpIHJlc2VhcmNoIHRoYXQgaXMgY3VycmVudGx5IHVuZGVyd2F5IGluIHRoZSBDYW5hZGlhbiBQcm92aW5jZSAoYW5kIHRoZSBQYWNpZmljIE5XIHRoYXQgcmVsYXRlcyB0byB0aGUgUHJvdmluY2UpLCAoMikgcmVzZWFyY2ggdGhhdCBpcyByZXF1aXJlZCB0byBpbmZvcm0gc3VjY2Vzc2Z1bCBpbnZhc2l2ZSBwbGFudCBtYW5hZ2VtZW50IGluIEJDLCBhbmQgKDMpIG5leHQgc3RlcHMgZm9yIGludmFzaXZlIHBsYW50IHJlc2VhcmNoIGluIEJDLiBEci4gR2Fza2lu4oCZcyBwcmVzZW50YXRpb24gZm9yIHRoZSBldmVudCB3YXMgZW50aXRsZWQg4oCcRE5BIGFuZCBJbnZhc2lvbiBDb250cm9sLuKAnSZuYnNwOyBIZSBhbHNvIHBhcnRpY2lwYXRlZCBpbiBhIHBhbmVsIGRpc2N1c3Npb24gd2l0aCBvdGhlciBzcGVha2VycyBhbHNvIHBhcnRpY2lwYXRpbmcgaW4gdGhlIOKAnE5ldyBBcHByb2FjaGVzIHRvIE1hbmFnZW1lbnTigJ0gc2Vzc2lvbiBvZiB0aGUgZm9ydW0uIERyLiBHYXNraW4gaXMgdGhlIFJlc2VhcmNoIExlYWRlciBvZiBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQuPC9QPiAKPFAgYWxpZ249cmlnaHQ+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9QPiAKPFA+PFNQQU4+T2N0b2JlciA3LCAyMDA4PC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIFJlc2VhcmNoZXJzIFBhcnRpY2lwYXRlIEluIEpvaW50IE1lZXRpbmcgT2YgRml2ZSBTY2llbmNlIFNvY2lldGllczo8L1NUUk9ORz4gKFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkmbmJzcDsgTlBBUkwgcmVzZWFyY2hlcnMgSm9obiBHYXNraW4sIFcuIEJhcnQgU3RldmVucywgVXBlbmRyYSBTYWluanUsIEpheSBKYWJybywgQW5keSBMZW5zc2VuIGFuZCBCcmV0dCBBbGxlbiBhbGwgcGFydGljaXBhdGVkIGluIHRoZSAyMDA4IEpvaW50IEFubnVhbCBNZWV0aW5nIG9mIGZpdmUgc2NpZW50aWZpYyBzb2NpZXRpZXMgT2N0LiA1LTkgaW4gSG91c3RvbiwgVFguIFRoZSBtZWV0aW5nIHRoZW1lIHdhcyDigJxDZWxlYnJhdGluZyB0aGUgWWVhciBvZiB0aGUgUGxhbnTigJ0gYW5kIGJyb3VnaHQgdG9nZXRoZXIgZml2ZSBTb2NpZXRpZXMgaW4gYW4gdW5wcmVjZWRlbnRlZCBqb2ludCB0ZWNobmljYWwgcHJvZ3JhbSBmZWF0dXJpbmcgcGFwZXJzIGZyb20gYWxsIGdlb2xvZ2ljYWwgZGlzY2lwbGluZXMgYW5kIHRoZSBzb2lsLCBhZ3Jvbm9taWMsIGFuZCBjcm9wIHNjaWVuY2VzLiBUaGUgc29jaWV0aWVzIHJlcHJlc2VudGVkIGluY2x1ZGU6IFRoZSBHZW9sb2dpY2FsIFNvY2lldHkgb2YgQW1lcmljYSwgU29pbCBTY2llbmNlIFNvY2lldHkgb2YgQW1lcmljYSwgQW1lcmljYW4gU29jaWV0eSBvZiBBZ3Jvbm9teSwgQ3JvcCBTY2llbmNlIFNvY2lldHkgb2YgQW1lcmljYSBhbmQgdGhlIEd1bGYgQ29hc3QgQXNzb2NpYXRpb24gb2YgR2VvbG9naWNhbCBTdHVkaWVzLiBDb250cmlidXRpb25zIGZyb20gc2NpZW50aXN0cyBhdCB0aGUgU2lkbmV5LCBNVCBBUlMgbGFiIGluY2x1ZGVkIHRoZSBmb2xsb3dpbmcgcHJlc2VudGF0aW9uczo8L1NQQU4+PC9QPjxTUEFOPiAKPFVMPiAKPExJPk5QQVJMIEJvdGFuaXN0IGFuZCBQZXN0IE1hbmFnZW1lbnQgUmVzZWFyY2ggVW5pdCBMZWFkZXIgSm9obiBHYXNraW4gc3Bva2UgYXQgdGhlIEltcGFjdCBvZiBHbG9iYWwgQ2xpbWF0ZSBDaGFuZ2Ugb24gUGxhbnQgR2VuZXRpYyBSZXNvdXJjZXMgU3ltcG9zaXVtIG9uIHRoZSDigJxIeWJyaWRpemF0aW9uIGFuZCBQbGFudCBJbnZhc2lvbnPigJ0gZGlzY3Vzc2luZyB0aGUgaW1wbGljYXRpb25zIG9mIGluY3JlYXNlZCBwbGFudCBpbnZhc2lvbiBpbnZvbHZpbmcgaHlicmlkIGFuZCBob3cgaHlicmlkaXphdGlvbiBjYW4gZm9yY2UgdXMgdG8gYWx0ZXIgb3VyIG1ldGhvZG9sb2d5IGZvciBjb250cm9sbGluZyBwbGFudCBpbnZhc2lvbnMuICAKPExJPk5QQVJMIEFncm9ub21pc3QgVy4gQmFydCBTdGV2ZW5z4oCZIHRhbGsgd2FzIGVudGl0bGVkIOKAnFRpbGxhZ2UgYW5kIElycmlnYXRpb24gTWV0aG9kIEVmZmVjdHMgb24gWWllbGQgYW5kIFF1YWxpdHkgb2YgU3VnYXJiZWV0IGFuZCBNYWx0aW5nIEJhcmxleeKAnSBhbmQgZGlzY3Vzc2VkIHRoZSB1c2Ugb2YgcmVkdWNlZCB0aWxsYWdlIGFuZCBoaWdoLWVmZmljaWVuY3kgaXJyaWdhdGlvbiBzeXN0ZW1zIHRvIHJlZHVjZSBmdWVsIGFuZCB3YXRlciBpbnB1dHMgaW4gdGhvc2UgY3JvcHMgY29tcGFyZWQgdG8gY29udmVudGlvbmFsIHByYWN0aWNlcy48L0xJPjwvVUw+IAo8UD5TaWRuZXksIE1UIEFSUyByZXNlYXJjaGVycyBwcmVzZW50aW5nIHBvc3RlcnMgYXQgdGhlIGpvaW50IG1lZXRpbmcgd2VyZTo8L1A+IAo8VUw+IAo8TEk+TlBBUkwgU29pbCBTY2llbnRpc3QgVXBlbmRyYSBTYWluanUgcHJlc2VudGVkIHR3byBwb3N0ZXJzIGVudGl0bGVkIOKAnENyb3BwaW5nIFNlcXVlbmNlIEVmZmVjdCBvbiBEcnlsYW5kIENyb3AgUm9vdCBhbmQgU29pbCBQcm9wZXJ0aWVz4oCdIGFuZCDigJxUaWxsYWdlLCBDcm9wcGluZyBTZXF1ZW5jZSwgYW5kIE5pdHJvZ2VuIEZlcnRpbGl6YXRpb24gRWZmZWN0cyBvbiBEcnlsYW5kIFNvaWwgQ2FyYm9uIERpb3hpZGUgRW1pc3Npb24gYW5kIENhcmJvbiBDb250ZW50IChHUkFDRW5ldCBQcm9qZWN0KS7igJ0gIAo8TEk+TlBBUkwgV2VlZCBFY29sb2dpc3QgQW5kcmV3IExlbnNzZW4gcHJlc2VudGVkIGEgcG9zdGVyIGVudGl0bGVkIOKAnENyb3AgRGl2ZXJzaWZpY2F0aW9uIGFuZCBNYW5hZ2VtZW50IFN5c3RlbSBJbmZsdWVuY2UgWWllbGQgYW5kIFdlZWRzIGluIHRoZSBOb3J0aGVybiBHcmVhdCBQbGFpbnMu4oCdICAKPExJPk5QQVJMIFNvaWwgUGh5c2ljaXN0IEpheSBKYWJybyB3aG9zZSBwb3N0ZXIgd2FzIGVudGl0bGVkIOKAnFRpbGxhZ2UgRGVwdGggRWZmZWN0cyBvbiBTb2lsIFBoeXNpY2FsIFByb3BlcnRpZXMsIFN1Z2FyYmVldCBZaWVsZCBhbmQgUXVhbGl0eS7igJ0gIAo8TEk+TlBBUkwgQWdyb25vbWlzdCBCcmV0dCBBbGxlbiB3aG9zZSBwb3N0ZXIgd2FzIGVudGl0bGVkIOKAnERyeWxhbmQgQ29ybiBTZWVkaW5nIFJhdGUgYW5kIFJvdyBDb25maWd1cmF0aW9uIEltcGFjdHMgb24gQmlvbWFzcywgR3JhaW4gWWllbGQsIGFuZCBXYXRlciBVc2Uu4oCdICAKPExJPkRycy4gU3RldmVucywgU2Fpbmp1LCBMZW5zc2VuLCBKYWJybyBhbmQgQWxsZW4gYXJlIGFsbCBtZW1iZXJzIG9mIE5QQVJM4oCZcyBBZ3JpY3VsdHVyYWwgU3lzdGVtcyBSZXNlYXJjaCBVbml0LjwvU1BBTj48L0xJPjwvVUw+IAo8UD48U1BBTj48U1RST05HPk1vbnRhbmEgQVJTIGxhYiBob3N0cyBpbnRlcm5hdGlvbmFsIFdoZWF0IFN0ZW0gU2F3Zmx5IENvbmZlcmVuY2UgT2N0b2JlciAxMy0xNC48L1NUUk9ORz4gKFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkmbmJzcDsgVGhlIEZvdXJ0aCBJbnRlcm5hdGlvbmFsIFdoZWF0IFN0ZW0gU2F3Zmx5IENvbmZlcmVuY2Ugd2lsbCBiZSBoZWxkIE9jdC4gMTMtMTQgYXQgdGhlIEFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlJ3MgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5IChOUEFSTCkgaW4gU2lkbmV5LCBNVC4gVGhlIDEtMS8yLWRheSBjb25mZXJlbmNlLCBoZWxkIG9ubHkgZXZlcnkgdGhyZWUgdG8gZml2ZSB5ZWFycywgYnJpbmdzIHRvZ2V0aGVyIHNjaWVudGlzdHMgZnJvbSBhY3Jvc3MgdGhlIHJlZ2lvbiwgdGhlIFByYWlyaWUgUHJvdmluY2VzIG9mIENhbmFkYSwgYW5kIGZyb20gTW9udHBlbGxpZXIsIEZyYW5jZSwgdG8gZGlzY3VzcyBvbmdvaW5nIGFuZCBmdXR1cmUgcmVzZWFyY2ggaW50byB0aGUgYmlvbG9naWNhbCwgY3VsdHVyYWwgYW5kIGNoZW1pY2FsIGNvbnRyb2wgb2Ygd2hlYXQgc3RlbSBzYXdmbHkuIFRvcGljcyBmb3IgdGhlIGNvbmZlcmVuY2UgaW5jbHVkZSBkaXNjdXNzaW9ucyBvbiB0aGUgZ2VuZXRpY3Mgb2YgdGhlIHdoZWF0IHN0ZW0gc2F3Zmx5IGFuZCBuZXcgd2hlYXQgdmFyaWV0aWVzIGludGVuZGVkIHRvIGhlbHAgY29tYmF0IHRoZSBwZXN0LCBhcyB3ZWxsIGFzIGJpb2xvZ2ljYWwgYW5kIGN1bHR1cmFsIG1hbmFnZW1lbnQgcmVzZWFyY2ggYW5kIHN1cnZleSBpbmZvcm1hdGlvbi4gQW1vbmcgdGhlIHNjaGVkdWxlZCBwcmVzZW50ZXJzIGFyZSB3aGVhdCBicmVlZGVycyBMdXRoZXIgVGFsYmVydCBhbmQgUGhpbCBCcnVja25lciwgZW50b21vbG9naXN0cyBEYXZpZCBXZWF2ZXIgYW5kIEtldmluIERlbGFueSwgYW5kIGNoZW1pY2FsIGVjb2xvZ2lzdCBNaWNhZWxhIEJ1dGVsZXIsIGFsbCB3aXRoIE1vbnRhbmEgU3RhdGUgVW5pdmVyc2l0eeKAk0JvemVtYW47IGNlcmVhbCBhZ3Jvbm9taXN0IEJyaWFuIEJlcmVzIGFuZCBlbnRvbW9sb2dpc3QgSGVjdG9yIENhcmNhbW8gb2YgQWdyaWN1bHR1cmUgYW5kIEFncmktRm9vZCBDYW5hZGEsIExldGhicmlkZ2UsIEFsYmVydGE7IGFuZCBlbnRvbW9sb2dpc3QgV2Fsa2VyIEpvbmVzIGFuZCBtb2xlY3VsYXIgYmlvbG9naXN0IE1hcmllLUNsYXVkZSBCb24sIGJvdGggd2l0aCB0aGUgVVNEQS1BUlMgRXVyb3BlYW4gQmlvbG9naWNhbCBDb250cm9sIExhYm9yYXRvcnkgaW4gTW9udHBlbGxpZXIsIEZyYW5jZS4gVGhlIHdoZWF0IHN0ZW0gc2F3Zmx5IGlzIGEgc2VyaW91cyBwZXN0IGluIHRoZSBOb3J0aGVybiBHcmVhdCBQbGFpbnMgYW5kIENhbmFkYSwgY2F1c2luZyB5aWVsZCBsb3NzZXMgb2YgbW9yZSB0aGFuICQxMDAgbWlsbGlvbiBhIHllYXIsIHdpdGggYW5udWFsIGxvc3NlcyBpbiBNb250YW5hIGFsb25lIGV4Y2VlZGluZyAkMjUgbWlsbGlvbi48L1NQQU4+PC9QPiAKPFA+PFNQQU4+PFNUUk9ORz5BUlMgU2NpZW50aXN0IHRvIGNoYWlyIGEgRkFPL0lBRUEgY29uc3VsdGFudHMgbWVldGluZyBkZXZpY2VzIGFuZCBzeXN0ZW1zIGZvciBlYXJseSBhbmQgcmFwaWQgZGV0ZWN0aW9uIG9mIGFuaW1hbCBkaXNlYXNlczo8L1NUUk9ORz4mbmJzcDsgT24gT2N0b2JlciAxMy0xNSwgV2lsbGlhbSBXaWxzb24sIEFSUyBtaWNyb2Jpb2xvZ2lzdCwgQXJ0aHJvcG9kLUJvcm5lIEFuaW1hbCBEaXNlYXNlcyBSZXNlYXJjaCBMYWJvcmF0b3J5LCBMYXJhbWllLCBXWSwgd2lsbCBwYXJ0aWNpcGF0ZSBhbmQgYWN0IGFzIGNoYWlybWFuIGluIGEgQ29uc3VsdGFudHMgTWVldGluZyBvbiBkZXZpY2VzIGFuZCBzeXN0ZW1zIGZvciBlYXJseSBhbmQgcmFwaWQgZGV0ZWN0aW9uIG9mIGFuaW1hbCBkaXNlYXNlcywgZWFybHkgcmVzcG9uc2UgdG8gZW1lcmdpbmcgZGlzZWFzZXMuJm5ic3A7IFRoZSBtZWV0aW5nIHdpbGwgZGlzY3VzcyBhbXBsaWZpY2F0aW9uIGFuZCBub24tYW1wbGlmaWNhdGlvbiBzeXN0ZW1zLCBiaW9zZW5zb3IsIG5hbm90ZWNobm9sb2d5IGRldmlzZXMgYW5kIGVxdWlwbWVudCwgc25pZmZlciB0ZWNobm9sb2dpZXMsIHJlbW90ZSBzZW5zaW5nLCBjb21tdW5pY2F0aW9uIHRlY2hub2xvZ2llcywgYWRtaW5pc3RyYXRpdmUgYW5kIGxvZ2lzdGljYWwgc2V0LXVwcywgbmV0d29ya3MgYW5kIHBhcnRuZXJzaGlwcy4mbmJzcDsgV2lsc29uIHdpbGwgZ2l2ZSBhIHByZXNlbnRhdGlvbiBvbiB0b29scyBmb3IgZWFybHkgZGV0ZWN0aW9uIGZyb20gcGVuLXNpZGUgdG8gaGlnaC10aHJvdWdocHV0LjwvU1BBTj48L1A+IAo8UCBhbGlnbj1yaWdodD48U1BBTj48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1NQQU4+PC9QPiAKPFA+PFNQQU4+U2VwdGVtYmVyIDEwLCAyMDA4PC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIFNjaWVudGlzdCBUbyBBdHRlbmQgQ29uZmVyZW5jZSBJbiBDaGluYTo8L1NUUk9ORz4mbmJzcDsgU2VwdGVtYmVyIDIxLTI2LCBQYXVsIEZsaW5uLCBSZXNlYXJjaCBCaW9sb2dpc3Qgd2l0aCB0aGUgQmlvbG9naWNhbCBSZXNlYXJjaCBVbml0LCBHcmFpbiBNYXJrZXRpbmcgYW5kIFByb2R1Y3Rpb24gUmVzZWFyY2ggQ2VudGVyLCBNYW5oYXR0YW4sIEtTLCB3aWxsIG1ha2UgYSBwcmVzZW50YXRpb24g4oCcRWZmZWN0cyBvZiBPdXRzaWRlIEFpciBUZW1wZXJhdHVyZSBvbiBNb3ZlbWVudCBvZiBQaG9zcGhpbmUgR2FzIGluIENvbmNyZXRlIEVsZXZhdG9yIEJpbnPigJ0gYXQgdGhlIENvbnRyb2xsZWQgQXRtb3NwaGVyZSBhbmQgRnVtaWdhdGlvbiBDb25mZXJlbmNlIGluIENoZW5nZHUsIENoaW5hLjwvU1BBTj48L1A+IAo8UCBhbGlnbj1yaWdodD48U1BBTj48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1NQQU4+PC9QPiAKPFA+PFNQQU4+QXVndXN0IDI3LCAyMDA4PC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIExhYm9yYXRvcnkgSG9zdHMgRXRobm9ib3RhbnkgV2Fsay1OLVRhbGs8L1NUUk9ORz46IE9uIEF1Z3VzdCAxNXRoLCB0aGUgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnkgaG9zdGVkIExpbmRhIERpZmZlcmVudCBDbG91ZC1Kb25lcywgRXRobm9ib3RhbmlzdCBmcm9tIHRoZSBTdGFuZGluZyBSb2NrIExha290YSBOYXRpb24sIHdobyBsZWQgYSB3YWxraW5nIHRvdXIgb2YgdGhlIG5hdGl2ZSBwYXN0dXJlcyBhdCB0aGUgVVNEQS1BUlMgbGFiIGluIE1hbmRhbiwgTm9ydGggRGFrb3RhLiBDbG91ZC1Kb25lcyBzZWxlY3RlZCBuYXRpdmUgcGxhbnRzIGFuZCBzaGFyZWQgZXh0ZW5zaXZlIGluZm9ybWF0aW9uIG9uIHRoZWlyIG51dHJpdGlvbmFsIGFuZCBtZWRpY2luYWwgdXNlIGJ5IG5hdGl2ZSBwZW9wbGVzLiBUaGlydHktZml2ZSBpbmRpdmlkdWFscyBpbnRlcmVzdGVkIGluIG5hdHVyYWwgaGVhbHRoIGFuZCBuYXRpdmUgcGxhbnRzIGZyb20gYXMgZmFyIGF3YXkgYXMgTWlubmVzb3RhIGpvaW5lZCBoZXIuIFN0YWZmIGF0IHRoZSBsYWIgcHJvdmlkZWQgYSBiYXJiZWN1ZSBmb3IgdGhlaXIgZ3Vlc3RzIGZvbGxvd2luZyB0aGUgdG91ciB0byBmYWNpbGl0YXRlIGNvbnRpbnVlZCBkaXNjdXNzaW9ucy4gQ2xvdWQtSm9uZXMgaGFzIGJlZW4gYW4gYXVkaWVuY2UgZmF2b3JpdGUgYXQgdGhlIGxhYuKAmXMgYW5udWFsIOKAmEZyaWVuZHMgJiBOZWlnaGJvcnMgRGF54oCZIHdoaWNoIGF0dHJhY3RlZCBvdmVyIDEwMDAgZ3Vlc3RzIHRoaXMgcGFzdCBKdWx5LiBTaGUgYmVnaW5zIGhlciBQSEQgcHJvZ3JhbSBpbiBFdGhub2JvdGFueSBhdCBNb250YW5hIFN0YXRlIFVuaXZlcnNpdHkgaW4gQm96ZW1hbiBpbiBTZXB0ZW1iZXIuPC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIFNjaWVudGlzdCB0byBQcmVzZW50IGF0IE1ham9yIEJpb21hc3MgQmlvZnVlbHMgQ29uZmVyZW5jZTo8L1NUUk9ORz4gT24gT2N0b2JlciAxMHRoLCBEci4gRGF2aWQgQXJjaGVyLCBVU0RBLUFSUyBBZ3JpY3VsdHVyYWwgRWNvbm9taXN0IHdpbGwgcHJlc2VudCDigJxDb3JuIFN0b3ZlciBhcyBGZWVkc3RvY2sgZm9yIENlbGx1bG9zaWMgRXRoYW5vbCDigJMgQ29zdCwgQXZhaWxhYmlsaXR5LCBhbmQgU3VzdGFpbmFiaWxpdHnigJ0gYXQgdGhlIFBsYXR0cyAzcmQgQW5udWFsIENlbGx1bG9zaWMgRXRoYW5vbCBhbmQgQmlvZnVlbHMgY29uZmVyZW5jZSBpbiBDaGljYWdvLCBJbGxpbm9pcy4gT3ZlciB0d2VudHkgb2YgdGhlIG5hdGlvbuKAmXMgZm9yZW1vc3QgYmlvZnVlbCBhdXRob3JpdGllcyB3ZXJlIGludml0ZWQgdG8gcHJlc2VudCBuZXcgcmVzZWFyY2ggYW5kIGRldmVsb3BtZW50IGluZm9ybWF0aW9uIGF0IHRoaXMga2V5IGluZHVzdHJ5IGVkdWNhdGlvbmFsIHN5bXBvc2l1bS48L1NQQU4+PC9QPiAKPFA+PFNQQU4+PFNUUk9ORz5BUlMgR3JhaW4gTWFya2V0aW5nIGFuZCBQcm9kdWN0aW9uIFJlc2VhcmNoIENlbnRlciB0byBIb3N0IE1lZXRpbmcgb2YgdGhlIEZvb2QgUHJvdGVjdGlvbiBDb21taXR0ZWUgb2YgdGhlIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgT3BlcmF0aXZlIE1pbGxlcnM6PC9TVFJPTkc+IE9uIDMtNCBTZXB0ZW1iZXIsIHRoZSBBUlMgR3JhaW4gTWFya2V0aW5nIGFuZCBQcm9kdWN0aW9uIFJlc2VhcmNoIENlbnRlciwgTWFuaGF0dGFuLCBLUywgd2lsbCBob3N0IGEgbWVldGluZyBvZiB0aGUgRm9vZCBQcm90ZWN0aW9uIENvbW1pdHRlZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBBc3NvY2lhdGlvbiBvZiBPcGVyYXRpdmUgTWlsbGVycy4mbmJzcDsgVGhlIGNvbW1pdHRlZSBtZWV0cyB0aHJlZSB0aW1lcyBhIHllYXIsIGFuZCBjb25zaXN0cyBvZiBhYm91dCB0d28gZG96ZW4gbWVtYmVycyBmcm9tIG1vc3Qgb2YgdGhlIG1ham9yIFUuUy4gZ3JhaW4gcHJvY2Vzc2luZyBjb21wYW5pZXMuJm5ic3A7IEppbSBUaHJvbmUsIFJlc2VhcmNoIExlYWRlciBvZiB0aGUgQVJTIEJpb2xvZ2ljYWwgUmVzZWFyY2ggVW5pdCBpbiBNYW5oYXR0YW4sIHdpbGwgYXR0ZW5kIHRoZSBtZWV0aW5nIHRvIHJlcG9ydCBvbiByZWNlbnQgQVJTIHN0b3JlZC1wcm9kdWN0IGluc2VjdCByZXNlYXJjaCBvZiBpbnRlcmVzdCB0byB0aGUgY29tbWl0dGVlIGFuZCB0byBkaXNjdXNzIHRoZSBncmFpbiBwcm9jZXNzaW5nIGluZHVzdHJ54oCZcyByZXNlYXJjaCBuZWVkcy48L1NQQU4+PC9QPiAKPFAgYWxpZ249cmlnaHQ+PFNQQU4+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9TUEFOPjwvUD4gCjxQPjxTUEFOPkF1Z3VzdCAxMywgMjAwODwvU1BBTj48L1A+IAo8UD48U1BBTj48U1RST05HPkFSUyBFbnRvbW9sb2dpc3QgVG8gU3BlYWsgQWJvdXQgU3RvcmVkLVByb2R1Y3QgSW5zZWN0IFBlc3RzIGF0IFRoYWlsYW5kJ3MgUG9zdGhhcnZlc3QgVGVjaG5vbG9neSBJbm5vdmF0aW9uIENlbnRlciBBdCBDaGlhbmcgTWFpIFVuaXZlcnNpdHk8L1NUUk9ORz46Jm5ic3A7IE9uIEF1Z3VzdCAxNS0yNSwgSmltIFRocm9uZSwgUmVzZWFyY2ggTGVhZGVyIG9mIHRoZSBCaW9sb2dpY2FsIFJlc2VhcmNoIFVuaXQgYXQgdGhlIEdyYWluIE1hcmtldGluZyBhbmQgUHJvZHVjdGlvbiBSZXNlYXJjaCBDZW50ZXIgaW4gTWFuaGF0dGFuLCBLUywgd2lsbCBwcmVzZW50IHR3byBzZW1pbmFycyBvbiBoaXMgcmVzZWFyY2ggZW50aXRsZWQgIkNvbXB1dGVyIG1vZGVsaW5nIG9mIHRoZSBwb3B1bGF0aW9uIGR5bmFtaWNzIG9mIHN0b3JlZC1wcm9kdWN0IHBlc3RzIiBhbmQgIkVudG9tb2xvZ2ljYWwgYXBwbGljYXRpb25zIG9mIG5lYXItaW5mcmFyZWQgc3BlY3Ryb3Njb3B5IiBhdCBDaGlhbmcgTWFpIFVuaXZlcnNpdHksIFRoYWlsYW5kLiZuYnNwOyBIZSBhbHNvIHdpbGwgZGlzY3VzcyBwb3N0aGFydmVzdCBwZXN0IG1hbmFnZW1lbnQgdGVjaG5pcXVlcyBhbmQgZnV0dXJlIGNvbGxhYm9yYXRpdmUgcmVzZWFyY2ggd2l0aCBzY2llbnRpc3RzIGF0IHRoZSBQb3N0aGFydmVzdCBUZWNobm9sb2d5IElubm92YXRpb24gQ2VudGVyLjwvU1BBTj48L1A+IAo8UCBhbGlnbj1yaWdodD48U1BBTj48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1NQQU4+PC9QPiAKPFA+PFNQQU4+QXVndXN0IDcsIDIwMDg8L1NQQU4+PC9QPiAKPFA+PFNQQU4+PFNUUk9ORz5DREMgQnJhbmNoIENoaWVmIFByZXNlbnRzIEVudG9tb2xvZ3kgU2VtaW5hcjo8L1NUUk9ORz4mbmJzcDtPbiBBdWd1c3QgNCwgQ0RDIEVudG9tb2xvZ3kgQnJhbmNoIENoaWVmIERyLiBCb2IgV2lydHogcHJlc2VudGVkIGEgc2VtaW5hciDigJxBbiBPdmVydmlldyBvZiBDREMgRW50b21vbG9neSBCcmFuY2ggQWN0aXZpdGllc+KAnSBhdCB0aGUgR3JhaW4gTWFya2V0aW5nIGFuZCBQcm9kdWN0aW9uIFJlc2VhcmNoIENlbnRlciwgTWFuaGF0dGFuLCBLUy4mbmJzcDsgSGlzIHByZXNlbnRhdGlvbiBpbmNsdWRlZCBDREMgd29yayB0YXJnZXRpbmcgdmVjdG9yLWJvcm5lIGRpc2Vhc2VzIHN1Y2ggYXMgbWFsYXJpYSBhbmQgbHltcGhhaXRpYyBmaWxhcmlhc2lzLiZuYnNwOyBIZSBhbHNvIGRpc2N1c3NlZCB0aGUgam9pbnQgQ0RDLUFSUyB3b3JrIHdoZXJlIHRoZXkgYXJlIGFwcGx5aW5nIE5JUiB0ZWNobmlxdWVzIGRldmVsb3BlZCBieSB0aGUgQVJTIEVuZ2luZWVyaW5nIFJlc2VhcmNoIFVuaXQgdG8gaWRlbnRpZnkgYW5kIGFnZS1ncmFkZSBkaXNlYXNlIHZlY3RvcnMuPC9TUEFOPjwvUD4gCjxQIGFsaWduPXJpZ2h0PjxTUEFOPjxBIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9BPjwvU1BBTj48L1A+IAo8UD48U1BBTj5KdWx5IDE2LCAyMDA4PC9TUEFOPjwvUD48U1BBTj4gCjxQPjxTVFJPTkc+QVJTIExhYiBIb3N0cyBLYW5zYXMgRmFybSBCdXJlYXUgRGVsZWdhdGlvbjo8L1NUUk9ORz4mbmJzcDsgT24gSnVseSAxMHRoIGEgZGVsZWdhdGlvbiBvZiBlaWdodCBwcm9kdWNlcnMgYW5kIHN0YWZmIG1lbWJlcnMgZnJvbSB0aGUgS2Fuc2FzIEZhcm0gQnVyZWF1IHZpc2l0ZWQgdGhlIEdyYWluIE1hcmtldGluZyBhbmQgUHJvZHVjdGlvbiBSZXNlYXJjaCBDZW50ZXIgKEdNUFJDKSwgaW4gTWFuaGF0dGFuLCBLUy4gRHIgVGhvbWFzIFNoYW5vd2VyLCBEaXJlY3RvciwgZ2F2ZSB0aGUgZ3JvdXAgYW4gb3ZlcnZpZXcgb2YgdGhlIEFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlIGFuZCBHTVBSQ+KAmXMgbWlzc2lvbiBhbmQgcmVzZWFyY2guIFRoZSBncm91cCB0aGVuIG1ldCB3aXRoIHNldmVyYWwgcmVzZWFyY2hlcnMuIERyLiBCcmFkIFNlYWJvdXJuIHVwZGF0ZWQgdGhlbSBvbiBhY3Rpdml0aWVzIGluIHRoZSBIYXJkIFdpbnRlciBXaGVhdCBRdWFsaXR5IExhYm9yYXRvcnk7IERyIEZsb3lkIERvd2VsbCBkZW1vbnN0cmF0ZWQgaGlnaC1zcGVlZCBrZXJuZWwgc29ydGluZyB0ZWNobm9sb2d5IGRldmVsb3BlZCBpbiB0aGUgRW5naW5lZXJpbmcgUmVzZWFyY2ggVW5pdDsgYW5kIERyIFJpY2hhcmQgQmVlbWFuLCByZXZpZXdlZCByZXNlYXJjaCBpbiB0aGUgQmlvbG9naWNhbCBSZXNlYXJjaCBVbml0LCBpbmNsdWRpbmcgd29yayBvbiByZWQgZmxvdXIgYmVldGxlIGdlbm9taWNzLiZuYnNwOyA8L1A+IAo8UD48U1RST05HPkFSUyBSZXNlYXJjaGVycyBQYXJ0aWNpcGF0ZSBJbiBNb250YW5hIFN0YXRlIFVuaXZlcnNpdHkgUmVzZWFyY2ggQ2VudGVyIEZpZWxkIERheTo8L1NUUk9ORz4gT24gSnVseSAxNnRoLCBOUEFSTCBQbGFudCBQYXRob2xvZ2lzdCBSb2JlcnQgTGFydGV5IGFuZCBBZ3Jvbm9taXN0IEJhcnQgU3RldmVucyBib3RoIGdhdmUgaW52aXRlZCBwcmVzZW50YXRpb25zIGF0IE1vbnRhbmEgU3RhdGUgVW5pdmVyc2l0eeKAmXMgRWFzdGVybiBBZyBSZXNlYXJjaCBDZW50ZXIgRmllbGQgRGF5IGluIFNpZG5leSwgTW9udGFuYS4gRHIuIExhcnRleeKAmXMgdGFsayB3YXMgZW50aXRsZWQg4oCcQmlvbG9naWNhbCBzZWVkIHRyZWF0bWVudHMgZm9yIHN1Z2FyYmVldCBhbmQgYmFybGV5LOKAnSBhbmQgaW5jbHVkZWQgZGlzY3Vzc2lvbiBvZiBoaXMgd29yayB3aXRoIGEgbmV3IGZ1bmdhbCBiaW9jb250cm9sIGFnZW50IGZvciBDZXJjb3Nwb3JhIGxlYWYgc3BvdCBkaXNlYXNlIGluIHN1Z2FyYmVldCwgdGhhdCBpcyBhbHNvIHNob3dpbmcgcHJvbWlzZSBhZ2FpbnN0IG5ldCBibG90Y2ggaW4gbWFsdGluZyBiYXJsZXkuIEZvciBoaXMgcGFydCwgRHIuIFN0ZXZlbnMgZGlzY3Vzc2VkIOKAnE5pdHJvZ2VuIGZlcnRpbGl6ZXIgcGxhY2VtZW50IGluIHN0cmlwLXRpbGxlZCBzdWdhcmJlZXQu4oCdIEJvdGggc2NpZW50aXN0cyBhcmUgbWVtYmVycyBvZiB0aGUgU2lkbmV5IEFSUyBsYWLigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQuIDwvUD4gCjxQPjxTVFJPTkc+TW9udGFuYSBBUlMgRS1DeWNsaW5nIFByb2dyYW0gRmVhdHVyZWQgSW4gVVNEQSBFbXBsb3llZSBQdWJsaWNhdGlvbjo8L1NUUk9ORz4mbmJzcDsgVGhlIE1heS1KdW5lIDIwMDggaXNzdWUgb2Yg4oCcVVNEQSBOZXdz4oCdIGluY2x1ZGVzIGFuIGFydGljbGUgYWJvdXQgdGhlIHJ1cmFsIGUtY3ljbGluZyBwcm9ncmFtIGJlZ3VuIGJ5IGVtcGxveWVlcyBvZiB0aGUgVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5IGluIFNpZG5leSwgTVQuIFRoZSBhcnRpY2xlLCBlbnRpdGxlZCDigJxBUlMgSGVscHMgTWFrZSAnRS1SZWN5Y2xpbmcnIEEgUmVhbGl0eSBJbiBSdXJhbCBBbWVyaWNhLOKAnSBkZXNjcmliZXMgaG93IE5QQVJMIFNhZmV0eSBTcGVjaWFsaXN0IEphY2tpZSBDb3V0dXJlIGFuZCBoZXIgZmVsbG93IGVtcGxveWVlcyBoZWxwZWQgZGV2ZWxvcCBhIGNvbW11bml0eS13aWRlIGVsZWN0cm9uaWNzIHJlY3ljbGluZyBwcm9ncmFtIGluIHRoZWlyIHNtYWxsIE1vbnRhbmEgdG93biBpbiAyMDA1IHRoYXQgaXMgbm93IHNlcnZpbmcgYXMgYSBtb2RlbCBmb3Igb3RoZXJzIGluIHJ1cmFsIGFyZWFzIGFjcm9zcyB0aGUgc3RhdGUgYW5kIGVsc2V3aGVyZS4gVGhlIOKAnFVTREEgTmV3c+KAnSBpcyBhdmFpbGFibGUgb25saW5lIGF0IHRoZSBVU0RBIHdlYnNpdGUgdW5kZXIgdGhlIOKAnFVTREEgRW1wbG95ZWUgU2VydmljZXPigJ0gbGluay48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3QgS2V5bm90ZSBTcGVha2VyIEZvciBTeW1wb3NpdW0gQXQgSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIE9uIFN1c3RhaW5hYmxlIEFnIGluIEphcGFuOjwvU1RST05HPiZuYnNwOyBPbiBKdWx5IDItNiwgTlBBUkwgU29pbCBTY2llbnRpc3QgVXBlbmRyYSBTYWluanUgd2FzIGludml0ZWQgdG8gZ2l2ZSB0aGUga2V5bm90ZSBhZGRyZXNzIGF0IHRoZSBGYXJtaW5nIFN5c3RlbXMgYW5kIEFncm8tZWNvbG9neSBTeW1wb3NpdW0gYXQgdGhlIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiBTdXN0YWluYWJsZSBBZ3JpY3VsdHVyZSBhbmQgRW52aXJvbm1lbnQgaW4gU2FwcG9ybywgSmFwYW4uIERyLiBTYWluanXigJlzIHByZXNlbnRhdGlvbiB3YXMgZW50aXRsZWQg4oCcTWFuYWdlbWVudCBQcmFjdGljZXMgSW1wYWN0IG9uIFNvaWwgQ2FyYm9uIFNlcXVlc3RyYXRpb24gYW5kIEdyZWVuaG91c2UgR2FzIEVtaXNzaW9uLuKAnSBNb3JlIHRoYW4gMjAwIHNjaWVudGlzdHMgZnJvbSBhcm91bmQgdGhlIGdsb2JlIGF0dGVuZGVkIHRoZSBjb25mZXJlbmNlIHdoaWNoIGZvY3VzZWQgb24gaXNzdWVzIHN1cnJvdW5kaW5nIHN1c3RhaW5hYmxlIGNyb3AgcHJvZHVjdGlvbiBhbmQgaW1wcm92ZWQgc29pbCBhbmQgZW52aXJvbm1lbnRhbCBxdWFsaXR5LCB3aXRoIGFuIGVtcGhhc2lzIG9uIGluY3JlYXNpbmcgY2FyYm9uIHNlcXVlc3RyYXRpb24sIHJlZHVjaW5nIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYW5kIHN1c3RhaW5pbmcgY3JvcCB5aWVsZHMuJm5ic3A7IEluIGFkZGl0aW9uIHRvIGhpcyBzeW1wb3NpdW0gcHJlc2VudGF0aW9uLCBEci4gU2Fpbmp1IHdhcyBhbHNvIGludml0ZWQgdG8gc3BlYWsgdG8gdGhlIGZhY3VsdHksIHN0YWZmLCBhbmQgZmFybWVycyBvZiBIb2trYWlkbyBhbmQgSWJhcmFraSBVbml2ZXJzaXRpZXMsIHJlc3BlY3RpdmVseSwgaW4gU2FwcG9ybyBhbmQgVHN1a3ViYSBTY2llbmNlIENpdHksIEphcGFuLCBvbiBKdWx5IDR0aCBhbmQgOXRoLiZuYnNwOyBUaGUgaW52aXRhdGlvbnMgd2VyZSBleHRlbmRlZCBieSBEci4gSGFqaW1lIEFyYWtpIChIb2trYWlkbyBVbml2ZXJzaXR5KSBhbmQgRHIuIE1hc2FrYXp1IEtvbWF0c3V6YWtpIChJYmFyYWtpIFVuaXZlcnNpdHkpLiBIaXMgcHJlc2VudGF0aW9uIGF0IGJvdGggdmVudWVzIHdhcyBlbnRpdGxlZCDigJxCaWN1bHR1cmFsIENvdmVyIENyb3BzIGZvciBTdXN0YWluaW5nIENyb3AgWWllbGRzIGFuZCBJbXByb3ZpbmcgU29pbCBhbmQgV2F0ZXIgUXVhbGl0eS7igJ0gVGhlIGxlY3R1cmVzIGhhdmUgaGVscGVkIHRvIGVzdGFibGlzaCBmdXR1cmUgcmVzZWFyY2ggY29sbGFib3JhdGlvbnMgYmV0d2VlbiB0aGUgU2lkbmV5LCBNVCBBUlMgbGFiIGFuZCB0aGUgdHdvIEphcGFuZXNlIFVuaXZlcnNpdGllcywgd2hlcmUgcmVzZWFyY2ggb24gY292ZXIgY3JvcHMgaXMganVzdCBiZWdpbm5pbmcuIERyLiBTYWluanUgaXMgYSBtZW1iZXIgb2YgTlBBUkzigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQuPC9QPiAKPFAgYWxpZ249cmlnaHQ+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9TUEFOPjwvUD4gCjxQPjxTUEFOPkp1bHkgMTAsIDIwMDg8L1NQQU4+PC9QPiAKPFA+PFNQQU4+PFNUUk9ORz5BUlMgU2NpZW50aXN0cyBUbyBBdHRlbmQgVGhlIEZvdXJ0aCBJbnRlcm5hdGlvbmFsIFRyaWJvbGl1bSBNZWV0aW5nIEluIEJlbGdpdW08L1NUUk9ORz46IE9uIEp1bHkgMjgtMjksIDIwMDgsIERpY2sgQmVlbWFuIGFuZCBNYXJjZSBMb3JlbnplbiBmcm9tIHRoZSBBUlMgR3JhaW4gTWFya2V0aW5nIGFuZCBQcm9kdWN0aW9uIFJlc2VhcmNoIENlbnRlciwgTWFuaGF0dGFuLCBLUywgd2lsbCBwYXJ0aWNpcGF0ZSBpbiB0aGUgRm91cnRoIEludGVybmF0aW9uYWwgVHJpYm9saXVtIE1lZXRpbmcgaW4gR2hlbnQsIEJlbGdpdW0uIERyLiBCZWVtYW4gd2lsbCBtYWtlIGEgcHJlc2VudGF0aW9uIGFuZCBhbHNvIG1lZXQgd2l0aCBFdXJvcGVhbiBjb29wZXJhdG9ycyBvbiB0aGVpciBtdXR1YWxseSBOUkktZnVuZGVkIHByb2plY3QsIEluc2VydGlvbmFsIE11dGFnZW5lc2lzIGluIFRyaWJvbGl1bS4gRHIuIExvcmVuemVuIHdhcyBpbnZpdGVkIHRvIHByZXNlbnQgYSB0YWxrIGFib3V0IGhlciB3b3JrIHJlbGF0aW5nIHRvIHRoZSBUcmlib2xpdW0gZ2Vub21lIHByb2plY3QuIDwvU1BBTj48L1A+IAo8UD48U1BBTj48U1RST05HPkFSUyBTY2llbnRpc3QgVG8gQXR0ZW5kIFRoZSBGb3VydGggSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIEluIEFmcmljYSBGb3IgQ29tcGFyYXRpdmUgUGh5c2lvbG9neSBBbmQgQmlvY2hlbWlzdHJ5IEluIEtlbnlhPC9TVFJPTkc+OiBPbiBKdWx5IDE5LTI1LCAyMDA4LCBCcmVuZGEgT3BwZXJ0IGZyb20gdGhlIEFSUyBHcmFpbiBNYXJrZXRpbmcgYW5kIFByb2R1Y3Rpb24gUmVzZWFyY2ggQ2VudGVyLCBNYW5oYXR0YW4sIEtTLCB3aWxsIHBhcnRpY2lwYXRlIGluIHRoZSBGb3VydGggSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIGluIEFmcmljYSBmb3IgQ29tcGFyYXRpdmUgUGh5c2lvbG9neSBhbmQgQmlvY2hlbWlzdHJ5IGluIE1hYXNhaSBNYXJhLCBLZW55YS4gU2hlIGlzIGNvLW9yZ2FuaXplciBvZiB0aGUgc3ltcG9zaXVtICJJbnNlY3QgZ3V0IHBoeXNpb2xvZ3kgYW5kIG51dHJpdGlvbjogbmV3IHRhcmdldHMgZm9yIGNvbnRyb2wuIiBTaGUgaXMgYWxzbyBnaXZpbmcgYW4gaW52aXRlZCB0YWxrOiBJbmhpYml0b3Igc3RyYXRlZ2llcyB0byBjb250cm9sIGNvbGVvcHRlcmFuIHBlc3RzOiBQYXJ0IDIsIE1pY3JvYXJyYXkgYW5hbHlzaXMsIGFuZCBpcyBqdW5pb3IgYXV0aG9yIG9uIHR3byBvdGhlciBwcmVzZW50YXRpb25zLjwvU1BBTj48L1A+IAo8UCBhbGlnbj1yaWdodD48U1BBTj48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1NQQU4+PC9QPiAKPFA+PFNQQU4+SnVseSAyLCAyMDA4PC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+Tm9ydGggRGFrb3RhIFdhdGVyIFVzZXJzIEdyb3VwIFRvdXJzIE1vbnRhbmEgQVJTIExhYm9yYXRvcnk6PC9TVFJPTkc+IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpJm5ic3A7IE1vcmUgdGhhbiAxMDAgbWVtYmVycyBhdHRlbmRpbmcgdGhlIE5vcnRoIERha290YSBXYXRlciBSZXNvdXJjZSBEaXN0cmljdHMgQXNzb2NpYXRpb27igJlzIDIwMDggQW5udWFsIFN1bW1lciBtZWV0aW5nIGluIFdpbGxpc3RvbiwgTkQsIHRvdXJlZCB0aGUgVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5IChTaWRuZXksIE1UKSBhbmQgdGhlIGNvLWxvY2F0ZWQgTW9udGFuYSBTdGF0ZSBVbml2ZXJzaXR5IEVhc3Rlcm4gUGxhaW5zIEVhc3Rlcm4gQWdyaWN1bHR1cmFsIFJlc2VhcmNoIENlbnRlciBvbiBKdW5lIDMwLiBUaGUgaGFsZi1kYXkgdG91ciB3YXMgc3BvbnNvcmVkIGJ5IHRoZSBORCBXYXRlciBVc2Vy4oCZcyBBc3NvY2lhdGlvbiBhbmQgZmVhdHVyZWQgaXJyaWdhdGVkIHJlc2VhcmNoIGNvbmR1Y3RlZCBieSBBUlMgYW5kIE1TVSBvbiBoaWdoIHZhbHVlIGFuZCBhbHRlcm5hdGUgY3JvcHMgYW5kIGFsc28gc2hvd2Nhc2VkIHRoZSBuZXcgd2VlZCBhbmQgaW5zZWN0IHBlc3QgYmlvbG9naWNhbCBjb250cm9sIFF1YXJhbnRpbmUgZmFjaWxpdHkgbmVhcmluZyBjb21wbGV0aW9uIGF0IHRoZSBTaWRuZXkgQVJTIGxhYi4gSGVscGluZyBsZWFkIHRvdXJzIHdlcmUgTlBBUkwgQWdyb25vbWlzdCBCYXJ0IFN0ZXZlbnMgYW5kIFBoeXNpY2FsIFNjaWVudGlzdCBXaWxsaWFtIEl2ZXJzZW4sIGJvdGggd2l0aCB0aGUgbGFi4oCZcyBBZ3JpY3VsdHVyYWwgU3lzdGVtcyBSZXNlYXJjaCBVbml0OyBhbmQgRW50b21vbG9naXN0IERhdmUgS2F6bWVyLCB3aG/igJlzIHdpdGggdGhlIGxhYuKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQuIDwvU1BBTj48L1A+IAo8UD48U1BBTj48U1RST05HPkFSUyBTb2lsIFNjaWVudGlzdCBQYXJ0aWNpcGF0ZXMgSW4gMjAwOCBBU0FCRSBNZWV0aW5nOjwvU1RST05HPiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSBOUEFSTCBTb2lsIFNjaWVudGlzdCBKYXkgSmFicm8gcGFydGljaXBhdGVkIGluIHRoZSAyMDA4IEFubnVhbCBJbnRlcm5hdGlvbmFsIE1lZXRpbmcgb2YgdGhlIEFtZXJpY2FuIFNvY2lldHkgb2YgQWdyaWN1bHR1cmFsIGFuZCBCaW9sb2dpY2FsIEVuZ2luZWVycyBpbiBQcm92aWRlbmNlLCBSSSBKdW5lIDI5LUp1bHkgMi4gQXQgdGhlIFNlc3Npb24gRHIuIEphYnJvIHByZXNlbnRlZCBhIHBvc3RlciBlbnRpdGxlZCDigJxJbi1zaXR1IFNvaWwtV2F0ZXIgUmV0ZW50aW9uIGFuZCBGaWVsZCBXYXRlciBDYXBhY2l0eSBNZWFzdXJlbWVudHMgaW4gVHdvIENvbnRyYXN0aW5nIFNvaWwgVGV4dHVyZXMs4oCdIHdoaWNoIGRlc2NyaWJlZCBhIHN0dWR5IHNob3dpbmcgdGhhdCB0d28gZGlmZmVyZW50IHR5cGVzIG9mIHNlbnNvcnMgKFdhdGVybWFyayBhbmQgVGltZSBEb21haW4gUmVmbGVjdG9tZXRyeSkgYm90aCBwcm92aWRlZCBhY2N1cmF0ZSBpbi1zaXR1IHNvaWwgd2F0ZXIgcmV0ZW50aW9uIGRhdGEgdGhhdCBjYW4gYmUgdXNlZCBpbiBhZ3JpY3VsdHVyYWwgYW5kIGVudmlyb25tZW50YWwgYXBwbGljYXRpb25zIGluY2x1ZGluZyBpcnJpZ2F0aW9uIG1hbmFnZW1lbnQgYW5kIHNjaGVkdWxpbmcuIFRoZSBwYXBlciB3YXMgY28tYXV0aG9yZWQgYnkgZmVsbG93IE5QQVJMIHJlc2VhcmNoZXJzIFIuRy4gRXZhbnMsIFkuIEtpbSBhbmQgVy5NLiBJdmVyc2VuLCBhbGwsIGxpa2UgSmFicm8gd29ya2luZyBpbiB0aGUgU2lkbmV5IEFSUyBsYWLigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQuIFRoZSBBbWVyaWNhbiBTb2NpZXR5IG9mIEFncmljdWx0dXJhbCBhbmQgQmlvbG9naWNhbCBFbmdpbmVlcnMgaXMgYW4gZWR1Y2F0aW9uYWwgYW5kIHNjaWVudGlmaWMgb3JnYW5pemF0aW9uIGRlZGljYXRlZCB0byB0aGUgYWR2YW5jZW1lbnQgb2YgZW5naW5lZXJpbmcgYXBwbGljYWJsZSB0byBhZ3JpY3VsdHVyYWwsIGZvb2QsIGFuZCBiaW9sb2dpY2FsIHN5c3RlbXMuIEZvdW5kZWQgaW4gMTkwNyBhbmQgaGVhZHF1YXJ0ZXJlZCBpbiBTdCBKb3NlcGgsIE1pY2hpZ2FuLCBBU0FCRSBjb21wcmlzZXMgOSwwMDAgbWVtYmVycyBpbiBtb3JlIHRoYW4gMTAwIGNvdW50cmllcy48L1NQQU4+PC9QPiAKPFA+PFNQQU4+PFNUUk9ORz5BUlMgU2NpZW50aXN0IEludml0ZWQgVG8gU3BlYWsgQXQgMjNyZCBJbnRlcm5hdGlvbmFsIENvbmdyZXNzIE9mIEVudG9tb2xvZ3k6PC9TVFJPTkc+IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpIE5QQVJMIFJlc2VhcmNoIEVudG9tb2xvZ2lzdCBTdGVmYW4gSmFyb25za2kgaGFzIGJlZW4gaW52aXRlZCB0byBnaXZlIHR3byB0YWxrcyBhdCB0aGUgMjNyZCBJbnRlcm5hdGlvbmFsIENvbmdyZXNzIG9mIEVudG9tb2xvZ3kgKElDRSkgaW4gRHVyYmFuLCBTb3V0aCBBZnJpY2EsIEp1bHkgNi0xMi4gRHIuIEphcm9uc2tpIHdpbGwgYmUgZGlzY3Vzc2luZyDigJxGaWVsZCBlZmZpY2FjeSBvZiBNZXRhcmhpeml1bSBhbmlzb3BsaWFlIGFuZCBCZWF1dmVyaWEgYmFzc2lhbmEgYWdhaW5zdCBpbW1hdHVyZSBNb3Jtb24gY3JpY2tldHPigJ0gYW5kIOKAnERpZmZlcmVuY2VzIGFtb25nIHBvcHVsYXRpb25zIGluIHN1c2NlcHRpYmlsaXR5IG9mIHRoZSBncmFzc2hvcHBlciBNZWxhbm9wbHVzIHNhbmd1aW5pcGVzIHRvIGEgZ2VuZXJhbGlzdCBmdW5nYWwgcGF0aG9nZW7igJ0gZHVyaW5nIGhpcyBpbnZpdGVkIHByZXNlbnRhdGlvbnMuIERyLiBKYXJvbnNraSB3aWxsIGFsc28gYmUgY29udHJpYnV0aW5nIGEgdGhpcmQgcHJlc2VudGF0aW9uIG9uIOKAnFRoZSBjaGFsbGVuZ2VzIG9mIGNvbW1lcmNpYWxpemluZyBtaWNyb2JpYWwgcGVzdCBjb250cm9sIGFnZW50cyBpbiB0aGUgVS5TLuKAnSBJbiBhZGRpdGlvbiB0byBoaXMgSUNFIHRhbGtzLCBEci4gSmFyb25za2kgaGFzIGFsc28gYmVlbiBpbnZpdGVkIHRvIHZpc2l0IEJDUCwgTHRkLiwgYSBwcm9kdWNlciBvZiBCZWF1dmVyaWEgYW5kIE1ldGFyaGl6aXVtLCB3aGVyZSBoZSB3aWxsIGRpc2N1c3MgbWFzcyBwcm9kdWN0aW9uIG1ldGhvZHMuIERyLiBKYXJvbnNraSBpcyBhIG1lbWJlciBvZiBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQuIFRoZSBJQ0UgaXMgaGVsZCBvbmNlIGV2ZXJ5IGZvdXIgeWVhcnMgYW5kIGlzIHRoZSBvbmx5IGludGVybmF0aW9uYWwgbWVldGluZyBmb3IgZW50b21vbG9neS4gVGhlIHRoZW1lIGZvciAyMDA4IGlzIOKAnENlbGVicmF0aW5nIEVudG9tb2xvZ3k6IENvbnRyaWJ1dGlvbnMgdG8gTW9kZXJuIFNjaWVuY2Uu4oCdPC9TUEFOPjwvUD4gCjxQPjxTUEFOPjxTVFJPTkc+QVJTIE1pY3JvYmlvbG9naXN0IFRvIFByZXNlbnQgUmVzZWFyY2ggT24gQSBWZXNpY3VsYXIgU3RvbWF0aXRpcyBWaXJ1cyBUcmFuc21pc3Npb24gQ3ljbGU6PC9TVFJPTkc+Jm5ic3A7IE9uIEp1bHkgMTItMTYsIG1pY3JvYmlvbG9naXN0IEJhcmJhcmEgRHJvbGV0LCBBUlMgQXJ0aHJvcG9kLUJvcm5lIEFuaW1hbCBEaXNlYXNlcyBSZXNlYXJjaCBMYWJvcmF0b3J5LCBMYXJhbWllLCBXWSwgd2lsbCBwcmVzZW50IHJlc2VhcmNoIHRoYXQgZGVzY3JpYmVzIHRoZSB0cmFuc21pc3Npb24gb2YgVlNWIGZyb20gY29udGFtaW5hdGVkIHBhc3R1cmUgZ3Jhc3NsYW5kIHBsYW50IHNwZWNpZXMgdG8gZ3Jhc3Nob3BwZXJzIGF0IHRoZSBhbm51YWwgbWVldGluZyBvZiB0aGUgQW1lcmljYW4gU29jaWV0eSBmb3IgVmlyb2xvZ3kgaW4gSXRoYWNhLCBOWS48L1NQQU4+PC9QPiAKPFAgYWxpZ249cmlnaHQ+PFNQQU4+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9QPiAKPFA+SnVuZSA0LCAyMDA4PC9QPiAKPFA+PFNUUk9ORz5Nb250YW5hIEFSUyBSZXNlYXJjaGVycyBQYXJ0aWNpcGF0ZSBJbiBOZXcgRnJvbnRpZXJzIENvbmZlcmVuY2U6PC9TVFJPTkc+Jm5ic3A7IE9uIEp1bmUgMiwgKFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkgTlBBUkwgUmVzZWFyY2ggTGVhZGVycyBEcnMuIEpvaG4gR2Fza2luIChQZXN0IE1hbmFnZW1lbnQgUmVzZWFyY2ggVW5pdCkgYW5kIFJvYmVydCBFdmFucyAoQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdCkgcGFydGljaXBhdGVkIGluIHRoZSDigJwyMDA4IE5ldyBGcm9udGllcnMgQ29uZmVyZW5jZTogUHJvcGVsbGluZyBNb250YW5hIFJlc2VhcmNo4oCdIGhlbGQgaW4gQm96ZW1hbiwgTW9udGFuYS4gVGhlIGV2ZW50LCB3aGljaCBzaG93Y2FzZWQgdGhlIGdsb2JhbGx5IGNvbXBldGl0aXZlIHJlc2VhcmNoIGdvaW5nIG9uIGluIE1vbnRhbmEgdGhyb3VnaCBhIHNlcmllcyBvZiBwcmVzZW50YXRpb25zLCB3b3Jrc2hvcHMgYW5kIG5ldHdvcmtpbmcgb3Bwb3J0dW5pdGllcywgYXR0cmFjdGVkIG1vcmUgdGhhbiA0MDAgYnVzaW5lc3MgcGVvcGxlLCBhY2FkZW1pY3MsIHBvbGl0aWNpYW5zIGFuZCBnb3Zlcm5tZW50IG9mZmljaWFscywgaW5jbHVkaW5nIGV4ZWN1dGl2ZXMgZnJvbSBzdWNoIG1ham9yIGNvbXBhbmllcywgc3VjaCBhcyAzTSwgQWJib3R0LCBHZW5lcmFsIEVsZWN0cmljLCBFbGkgTGlsbHkgYW5kIEJvZWluZywgYWxvbmcgd2l0aCByZXByZXNlbnRhdGl2ZXMgZnJvbSByZXNlYXJjaCBlbnRpdGllcyBzdWNoIGFzIHRoZSBOYXRpb25hbCBTY2llbmNlIEZvdW5kYXRpb24gYW5kIHNtYWxsZXIgc3RhcnQtdXAgYnVzaW5lc3Nlcy4gRHIuIEdhc2tpbiBwYXJ0aWNpcGF0ZWQgaW4gdGhlIEFncmljdWx0dXJlIFBhbmVsIG9mIHRoZSBNb250YW5hIFJlc2VhcmNoIFNob3djYXNlIGFuZCBnYXZlIGEgcHJlc2VudGF0aW9uIGVudGl0bGVkIOKAnEFncmljdWx0dXJhbCBTb2x1dGlvbnMgdGhyb3VnaCBJbm5vdmF0aXZlIFNjaWVuY2Us4oCdIHdoaWNoIGluY29ycG9yYXRlZCBpbmZvcm1hdGlvbiBvbiByZXNlYXJjaCBjb25kdWN0ZWQgYXQgdGhlIFNpZG5leSBBUlMgZmFjaWxpdHksIGFzIHdlbGwgYXMgcHJvdmlkaW5nIGluZm9ybWF0aW9uIG9uIGhvdyBpbnRlcmVzdGVkIHBhcnRpZXMgY291bGQgY29sbGFib3JhdGUgd2l0aCBBUlMgaW4gZGV2ZWxvcGluZyByZWxhdGVkIHByb2R1Y3RzIG9yIHRlY2hub2xvZ2llcyBmb3IgY29tbWVyY2lhbGl6YXRpb24uIEFSUyBOb3J0aGVybiBQbGFpbnMgQXJlYSBUZWNobm9sb2d5IFRyYW5zZmVyIENvb3JkaW5hdG9yIEJyeWFuIEthcGhhbW1lciBhbHNvIHBhcnRpY2lwYXRlZCBpbiB0aGUgY29uZmVyZW5jZSwgZGlzY3Vzc2luZyBmdW5kaW5nIGFuZCBwYXJ0bmVyaW5nIG9wcG9ydHVuaXRpZXMgd2l0aCBBUlMgYXQgdGhlIHJlZ2lvbmFsIGFuZCBuYXRpb25hbCBsZXZlbHMuIFRoaXMgZmlyc3Qg4oCcUmVzZWFyY2ggU3VtbWl04oCdIGluIEJvemVtYW4gd2FzIHNwb25zb3JlZCBieSBNb250YW5hIFUuUy4gU2VuYXRvciBNYXggQmF1Y3VzLCB0aGUgTW9udGFuYSBTdGF0ZSBVbml2ZXJzaXR5IFN5c3RlbSBhbmQgVGVjaFJhbmNoIGFuZCBicm91Z2h0IHRvZ2V0aGVyIE1vbnRhbmEgcmVzZWFyY2ggYW5kIGJ1c2luZXNzIGxlYWRlcnMgdG8gcHJvbW90ZSBjb21tZXJjaWFsaXphdGlvbiBhbmQgZGV2ZWxvcG1lbnQgb2YgbmV3IHRlY2hub2xvZ3kgaW4gTW9udGFuYS48L1A+IAo8UCBhbGlnbj1yaWdodD48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1A+PC9TUEFOPiAKPFA+TWF5IDIxLCAyMDA4PC9QPiAKPFA+PFNUUk9ORz5SZXByZXNlbnRhdGl2ZXMgZnJvbSBKaWxpbiBVbml2ZXJzaXR5LCBDaGluYSwgdmlzaXQgQVJTIENlbnRlciBpbiBLYW5zYXM8L1NUUk9ORz46Jm5ic3A7IE9uIE1heSAxNCwgRGVhbiBKaW4gVG9uZyBhbmQgdGhyZWUgc2NpZW50aXN0cyBmcm9tIHRoZSBDb2xsZWdlIG9mIEJpb2xvZ2ljYWwgYW5kIEFncmljdWx0dXJhbCBFbmdpbmVlcmluZywgSmlsaW4gVW5pdmVyc2l0eSwgQ2hpbmEsIHZpc2l0ZWQgdGhlIEFSUyBHcmFpbiBNYXJrZXRpbmcgYW5kIFByb2R1Y3Rpb24gUmVzZWFyY2ggQ2VudGVyIGluIE1hbmhhdHRhbiwgS2Fuc2FzLiZuYnNwOyBEci4gVG9tIFNoYW5vd2VyLCBDZW50ZXIgRGlyZWN0b3IsIGdhdmUgdGhlIHZpc2l0b3JzIGFuIG92ZXJ2aWV3IG9mIEdNUFJDIHJlc2VhcmNoIGFuZCBBZ3JpY3VsdHVyYWwgRW5naW5lZXJzIEVsaXphYmV0aCBNYWdoaXJhbmcsIFBhdWwgQXJtc3Ryb25nIGFuZCBEYW5pZWwgQnJhYmVjLCBFbmdpbmVlcmluZyBSZXNlYXJjaCBVbml0IChFUlUpLCBkaXNjdXNzZWQgYW5kIGRlbW9uc3RyYXRlZCBvbmdvaW5nIEVSVSByZXNlYXJjaC48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3QgUHJlc2VudHMgYXQgTmF0aW9uYWwgU29pbCBTdXJ2ZXkgUGxhbm5pbmcgQ29uZmVyZW5jZTwvU1RST05HPjombmJzcDsgT24gNiBNYXksIEpvaG4gVGF0YXJrbywgQVJTIEdyYWluIE1hcmtldGluZyBhbmQgUHJvZHVjdGlvbiBSZXNlYXJjaCBDZW50ZXIgaW4gTWFuaGF0dGFuLCBLYW5zYXMsIG1hZGUgYSBwcmVzZW50YXRpb24gdGl0bGVkICJTb2lsIFdpbmQgRXJvZGliaWxpdHkiIHRvIHRoZSBOYXRpb25hbCBTb2lsIFN1cnZleSBQbGFubmluZyBDb25mZXJlbmNlIGhlbGQgYXQgdGhlIFVTREEtTmF0dXJhbCBSZXNvdXJjZXMgQ29uc2VydmF0aW9uIFNlcnZpY2UgKE5SQ1MpIFBsYW50IE1hdGVyaWFscyBDZW50ZXIgaW4gTWFuaGF0dGFuLCBLYW5zYXMuJm5ic3A7IEFwcHJveGltYXRlbHkgMTggTlJDUyBwZXJzb25uZWwgYXR0ZW5kZWQgdGhlIGNvbmZlcmVuY2UuJm5ic3A7IE9uIDcgTWF5LCB0aGUgY29uZmVyZW5jZSBhdHRlbmRlZXMgdG91cmVkIHRoZSBXaW5kIEVyb3Npb24gUmVzZWFyY2ggVW5pdCAoV0VSVSkgd2luZCB0dW5uZWwgZmFjaWxpdHkgd2hlcmUgdGhleSB2aWV3ZWQgYW5kIGRpc2N1c3NlZCBjdXJyZW50IGFuZCBkZXZlbG9waW5nIHdpbmQgZXJvc2lvbiByZXNlYXJjaCB0ZWNobm9sb2d5LjwvUD4gCjxQPjxTVFJPTkc+QVJTIFNvaWwgU2NpZW50aXN0cyBUbyBTcGVhayBBdCBJbnRlcm5hdGlvbmFsIFNvaWxzIENvbmdyZXNzPC9TVFJPTkc+OiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSZuYnNwOyBOUEFSTCBSZXNlYXJjaCBTb2lsIFNjaWVudGlzdHMgSmF5IEphYnJvIGFuZCBVcGVuZHJhIFNhaW5qdSBoYXZlIGJlZW4gaW52aXRlZCB0byBwYXJ0aWNpcGF0ZSBpbiB0aGUgMTV0aCBJbnRlcm5hdGlvbmFsIENvbmdyZXNzIG9mIHRoZSBJbnRlcm5hdGlvbmFsIFNvaWwgQ29uc2VydmF0aW9uIE9yZ2FuaXphdGlvbiAoSVNDTykgaW4gQnVkYXBlc3QgSHVuZ2FyeSBNYXkgMTgtMjMuIERyLiBKYWJybyBpcyBnaXZpbmcgdHdvIHBvc3RlciBwcmVzZW50YXRpb25zLCB0aGUgZmlyc3QgZW50aXRsZWQ6IOKAnExvbmctdGVybSB0aWxsYWdlIGZyZXF1ZW5jeSBlZmZlY3RzIG9uIGRyeWxhbmQgc29pbCBwaHlzaWNhbCBhbmQgaHlkcmF1bGljIHByb3BlcnRpZXPigJ0gYnkgSmFicm8gYW5kIGZlbGxvdyBBUlMgcmVzZWFyY2hlcnMgVS5NLiBTYWluanUsIFcuIEIuIFN0ZXZlbnMsIEEuIFcuIExlbnNzZW4sIGFuZCBSLkcuIEV2YW5zLiBIaXMgc2Vjb25kIHByZXNlbnRhdGlvbiB3aXRoIGNvYXV0aG9ycyBBLkQuIEphYnJvLCBhbmQgUi4gRG9tYWxza2kgaXMgZW50aXRsZWQg4oCcVGhlIGNvbXBsZXhpdGllcyBvZiBkaXNjdXNzaW5nIHNvaWwgdmFwb3IgZXh0cmFjdGlvbiB0ZWNobmlxdWVzIHdpdGggbm9uLVNjaWVudGlzdHMu4oCdIEZvciBoaXMgcGFydCwgRHIuIFNhaW5qdeKAmXMgcG9zdGVyIHByZXNlbnRhdGlvbiBpcyBlbnRpdGxlZCwg4oCcVGlsbGFnZSwgQ3JvcHBpbmcgU2VxdWVuY2UsIGFuZCBOaXRyb2dlbiBGZXJ0aWxpemF0aW9uIEVmZmVjdHMgb24gRHJ5bGFuZCBTb2lsIENhcmJvbiBTZXF1ZXN0cmF0aW9uIGFuZCBDYXJib24gRGlveGlkZSBFbWlzc2lvbi7igJ0gQm90aCBEcnMuIEphYnJvIGFuZCBTYWluanUgYXJlIG1lbWJlcnMgb2YgTlBBUkzigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQuIFRoZSBwdXJwb3NlIG9mIElTQ08gaXMgdG8gYWR2b2NhdGUgZm9yIHRoZSBzdXN0YWluYWJsZSwgcHJvZHVjdGl2ZSwgYW5kIGVmZmljaWVudCB1c2Ugb2Ygc29pbCBhbmQgd2F0ZXIgcmVzb3VyY2VzLiZuYnNwOyBJdCBkb2VzIHNvIHRocm91Z2ggaW1wcm92ZWQgdW5kZXJzdGFuZGluZyBvZiBuYXR1cmFsIHJlc291cmNlIG1hbmFnZW1lbnQgaXNzdWVzIGFuZCBlbmhhbmNlZCBjb21tdW5pY2F0aW9uIGFtb25nIHBhcnRpY2lwYW50cyBpbiBpdHMgbWVldGluZ3MgYW5kIHdpdGggb3RoZXJzIHdpdGggc2ltaWxhciBjb25jZXJucyBhbmQgY29tbWl0bWVudHMuIFRoZSBDb25ncmVzcyBwcm92aWRlcyBhbiBleGNlbGxlbnQgb3Bwb3J0dW5pdHkgZm9yIGludGVybmF0aW9uYWwgY29sbGFib3JhdGlvbiBiZXR3ZWVuIHRob3NlIGVudGl0aWVzLjwvUD4gCjxQPjxTVFJPTkc+QVJTIFJlcHJlc2VudGF0aXZlIEludml0ZWQgVG8gU3BlYWsgQXQgRnJlbmNoIEluc3RpdHV0ZSBmb3IgRGV2ZWxvcG1lbnQgUmVzZWFyY2g8L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpJm5ic3A7IE5QQVJMIFJlc2VhcmNoIFNvaWwgU2NpZW50aXN0IEpheSBKYWJybyBoYXMgYmVlbiBpbnZpdGVkIHRvIHNwZWFrIGFuZCBtZWV0IHdpdGggY29sbGVhZ3VlcyBhdCBUaGUgSW5zdGl0dXRlIGZvciBEZXZlbG9wbWVudCBSZXNlYXJjaCAoSVJEKSBpbiBQYXJpcyBGcmFuY2UgTWF5IDI0LTI2LiBEci4gSmFicm8sIHdpbGwgZ2l2ZSBhIHByZXNlbnRhdGlvbiBlbnRpdGxlZCDigJxJbm5vdmF0aXZlIHJlc2VhcmNoIGF0IHRoZSBOUEFSTCBpbiBTaWRuZXkgTW9udGFuYeKAnSBwcm92aWRpbmcgYW4gb3ZlcnZpZXcgb2YgdGhlIHJlc2VhcmNoIHVuZGVyd2F5IGF0IHRoZSBTaWRuZXkgQVJTIGxhYiBhbmQgdGhlbiBtZWV0IHdpdGggSW5zdGl0dXRlIERpcmVjdG9yIERyLiBDaHJpc3RpYW4gVmFsZW50aW4gYW5kIG90aGVyIElSRCBzY2llbnRpc3RzLCBhbW9uZyB0aGVtIERyLiBFcmljayBCcmF1ZGVhdSwgYSBzb2lsIHBoeXNpY2lzdCBjb2xsYWJvcmF0aW5nIHdpdGggSmFicm8gYW5kIG90aGVyIE5QQVJMIHJlc2VhcmNoZXJzIG9uIHVzaW5nIHRoZSBwZWRvc3RydWN0dXJlIGNvbmNlcHQgaW4gZGl2ZXJzZSBzb2lsIGFuZCB3YXRlciBjaGFyYWN0ZXJpemF0aW9uIGFuZCBtb2RlbGluZyBpc3N1ZXMgaW4gYWdyaWN1bHR1cmUgYW5kIGVudmlyb25tZW50YWwgcXVhbGl0eS4gSW4gYWRkaXRpb24gdG8gdG91cmluZyB0aGUgZmFjaWxpdGllcywgRHIuIEphYnJvIHdpbGwgYWxzbyBiZSBpZGVudGlmeWluZyBvdGhlciBwb3RlbnRpYWwgcmVzZWFyY2ggY29sbGFib3JhdGlvbnMgYmV0d2VlbiB0aGUgQVJTIGxhYm9yYXRvcnkgaW4gU2lkbmV5LCBNVCBhbmQgdGhlIElSRCBvbiBzb2lsLCB3YXRlciBhbmQgZW52aXJvbm1lbnRhbCBpc3N1ZXMuIFRoZSBJUkQgaXMgdGhlIHByZS1lbWluZW50IEZyZW5jaCByZXNlYXJjaCBvcmdhbml6YXRpb24gZGVkaWNhdGVkIHRvIGRldmVsb3BtZW50IGFuZCBjb25zaXN0cyBvZiA3OSByZXNlYXJjaCBsYWJvcmF0b3JpZXMsIGxvY2F0ZWQgYW5kIG9wZXJhdGluZyBqb2ludGx5IHdpdGggYWNhZGVtaWMgcGFydG5lcnMgaW4gRnJhbmNlLCBpbiB0aGUgRnJlbmNoIG92ZXJzZWFzIHRlcnJpdG9yaWVzIGFuZCBpbiAzNSBjb3VudHJpZXMgaW4gQWZyaWNhLCBBc2lhLCB0aGUgSW5kaWFuIE9jZWFuLCBMYXRpbiBBbWVyaWNhIGFuZCB0aGUgUGFjaWZpYyBhcmVhLiBJUkTigJlzIHVuaXF1ZW5lc3MgcmVsaWVzIG9uIGl0cyBleGNsdXNpdmUgZGVkaWNhdGlvbiB0byBkZXZlbG9wbWVudCByZXNlYXJjaC4gSVJEIGhhcyBtb2JpbGl6ZWQgaXRzIHJlc291cmNlcyB0byBhZGRyZXNzIHNpeCBkZXZlbG9wbWVudCBwcmlvcml0aWVzOiBjb21iYXRpbmcgcG92ZXJ0eSBhbmQgZXhjbHVzaW9uLCBpbnRlcm5hdGlvbmFsIG1pZ3JhdGlvbiwgZW1lcmdpbmcgaW5mZWN0aW91cyBkaXNlYXNlcywgY2xpbWF0ZSBjaGFuZ2UgYW5kIGVudmlyb25tZW50YWwgaGF6YXJkcywgd2F0ZXIgcmVzb3VyY2VzIGFuZCBhY2Nlc3MgdG8gd2F0ZXIsIGVjb3N5c3RlbXMuIDwvUD4gCjxQPjxTVFJPTkc+QVJTIFJlcHJlc2VudGF0aXZlIFRvIFNwZWFrIEF0IFNhbHRjZWRhciBNYW5hZ2VtZW50IFByb2plY3QgU3ByaW5nIE1lZXRpbmc8L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpIE5QQVJMIEJpb2xvZ2ljYWwgU2NpZW5jZSBUZWNobmljaWFuIEtpbWJlcmx5IE1hbm4gd2lsbCBnaXZlIGEgcHJlc2VudGF0aW9uIE1heSA2IGF0IHRoZSBNaXNzb3VyaSBSaXZlciBXYXRlcnNoZWQgQ29hbGl0aW9uIChNV1JDKSBTYWx0Y2VkYXIgTWFuYWdlbWVudCBQcm9qZWN0IHNwcmluZyBtZWV0aW5nIGluIFNjb3R0c2JsdWZmLCBORS4mbmJzcDsgTXMuIE1hbm4gaXMgcmVwcmVzZW50aW5nIE5QQVJMIEVudG9tb2xvZ2lzdCBEYXZpZCBLYXptZXIgYXQgdGhlIGV2ZW50LiBEci4gS2F6bWVyIHdvcmtzIG9uIHNhbHRjZWRhciBiaW9jb250cm9sIGluIExvdmVsbCwgV1kgYW5kIGluIHRoZSBDaGFybGVzIE0uIFJ1c3NlbGwgTmF0aW9uYWwgV2lsZGxpZmUgUmVmdWdlIG5lYXIgRnQuIFBlY2ssIGJ1dCB3YXMgdW5hYmxlIHRvIGF0dGVuZCB0aGUgc2Vzc2lvbi4gQm90aCBNYW5uIGFuZCBLYXptZXIgYXJlIG1lbWJlcnMgb2YgTlBBUkzigJlzIFBlc3QgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LiBUaGUgTWlzc291cmkgUml2ZXIgV2F0ZXJzaGVkIENvYWxpdGlvbiBpbmNsdWRlcyBmZWRlcmFsLCBzdGF0ZSwgYW5kIGxvY2FsIGFnZW5jaWVzLCBidXNpbmVzc2VzLCB1bml2ZXJzaXRpZXMsIGNvbnNlcnZhdGlvbiBncm91cHMsIGFuZCBwcml2YXRlIGxhbmRvd25lcnMuIFRvZ2V0aGVyLCB0aGUgZ3JvdXBzIGhhdmUgZHJhZnRlZCBhIFNhbHRjZWRhciBNYW5hZ2VtZW50IFBsYW4gdG8gY29vcmRpbmF0ZSBlZmZvcnRzIHRvIG1hbmFnZSBzYWx0Y2VkYXIgYW5kIHJlc3RvcmUgcmlwYXJpYW4gY29ycmlkb3JzIG9mIHRoZSBNaXNzb3VyaSBSaXZlciB3YXRlcnNoZWQuIFRoZSBnb2FsIG9mIE1XUkMgaXMgdG8gbWFpbnRhaW4gcHJvZHVjdGl2ZSwgYmlvZGl2ZXJzZSByaXBhcmlhbiBlY29zeXN0ZW1zIHRoYXQgcHJvdmlkZSBxdWFsaXR5IHdhdGVyLCBoYWJpdGF0LCByZWNyZWF0aW9uLCBhbmQgcG93ZXIgdG8gbWVldCB0aGUgZWNvbm9taWMgYW5kIGVjb2xvZ2ljYWwgbmVlZHMgb2YgdGhlIE1pc3NvdXJpIFJpdmVyIFdhdGVyc2hlZCByZWdpb24uPC9QPiAKPFAgYWxpZ249cmlnaHQ+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9QPiAKPFA+TWF5IDcsIDIwMDg8L1A+IAo8UD48U1RST05HPkFSUyBFbXBsb3llZSBSZWNlaXZlcyBBd2FyZDwvU1RST05HPjombmJzcDsgSm9Bbm5lIEdyZXNlbnMsIFNhZmV0eSBhbmQgT2NjdXBhdGlvbmFsIEhlYWx0aCBNYW5hZ2VyLCBVU0RBLUFSUyBHcmFpbiBNYXJrZXRpbmcgYW5kIFByb2R1Y3Rpb24gUmVzZWFyY2ggQ2VudGVyLCBNYW5oYXR0YW4sIEtTLCByZWNlaXZlZCBhbiBhd2FyZCBmcm9tIHRoZSBBbWVyaWNhbiBTb2NpZXR5IG9mIEFuaW1hbCBTY2llbmNlIGZvciBsZWFkZXJzaGlwIGFuZCBzY2hvbGFzdGljIGFjaGlldmVtZW50LiZuYnNwOyBHcmVzZW5zLCBhIGZ1bGwgdGltZSBzdHVkZW50IGluIGFkZGl0aW9uIHRvIGJlaW5nIGEgZnVsbCB0aW1lIGVtcGxveWVlLCB3YXMgcmVjb2duaXplZCBmb3IgaGVyIGFjYWRlbWljIGFjaGlldmVtZW50IHdoaWNoIHBsYWNlcyBoZXIgaW4gdGhlIHRvcCAxMCUgb2YgaGVyIGNsYXNzLjwvUD4gCjxQPjxTVFJPTkc+QVJTIEZvb2QgVGVjaG5vbG9naXN0IFByb3ZpZGVzIFZpc2l0b3JzIHdpdGggSGFuZHMtT24gQmFrZSBMYWIgVHJhaW5pbmc8L1NUUk9ORz46Jm5ic3A7IE9uIE1heSAyMC0yMSwgRm9vZCBUZWNobm9sb2dpc3QsIE1hcmdvIENhbGV5LCBVU0RBLUFSUyBHcmFpbiBNYXJrZXRpbmcgYW5kIFByb2R1Y3Rpb24gUmVzZWFyY2ggQ2VudGVyLCBNYW5oYXR0YW4sIEtTLCB3aWxsIHByb3ZpZGUgaGFuZHMtb24gYmFrZSBsYWIgdHJhaW5pbmcgdG8gdGhyZWUgdmlzaXRvcnM6Jm5ic3A7IEpvaG4gU3Ryb21iZXJnZXIgKENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkpLCBDb25uaWUgU2hlbHRvbiAoT2tsYWhvbWEgU3RhdGUgVW5pdmVyc2l0eSkgYW5kIFllZS1MaW5nIOKAnENhcnlu4oCdIE9uZyAoT3JlZ29uIFN0YXRlIFVuaXZlcnNpdHkpLiZuYnNwOyBUaGVzZSB2aXNpdG9ycyB3aWxsIHJlY2VpdmUgYSB0d28gZGF5IGluc3RydWN0aW9uLCB3aGlsZSBiYWtpbmcgaW4gdGhlIGV4cGVyaW1lbnRhbCBiYWtlIGxhYiwgY292ZXJpbmcgZXhwZXJpbWVudGFsIHB1cCBzdHJhaWdodCBkb3VnaCBiYWtpbmcgYW5kIG1peG9ncmFwaCB0cmFpbmluZy4mbmJzcDsgT3VyIGd1ZXN0cyByZXF1ZXN0ZWQgdGhpcyB2aXNpdCBhZnRlciBhdHRlbmRpbmcgdGhlIFBOVy1XaGVhdCBRdWFsaXR5IENvdW5jaWwgTWVldGluZyBpbiBQb3J0bGFuZCwgT1IgaW4gSmFudWFyeS4mbmJzcDsgPC9QPiAKPFA+PFNUUk9ORz5BUlMgU2NpZW50aXN0IFJldmlld3MgV2luZCBFcm9zaW9uIFByb2JsZW1zIGluIFNvdXRoZWFzdCBJZGFobzwvU1RST05HPjombmJzcDsgT24gQXByaWwgMjgtMzAsIGF0IHRoZSByZXF1ZXN0IG9mIHRoZSBOYXR1cmFsIFJlc291cmNlcyBDb25zZXJ2YXRpb24gU2VydmljZSAoTlJDUyksIEpvaG4gVGF0YXJrbyBvZiB0aGUgV2luZCBFcm9zaW9uIFJlc2VhcmNoIFVuaXQsIFVTREEtQVJTIEdyYWluIE1hcmtldGluZyBhbmQgUHJvZHVjdGlvbiBSZXNlYXJjaCBDZW50ZXIsIE1hbmhhdHRhbiwgS1MsIHZpc2l0ZWQgZmllbGQgc2l0ZXMgaW4gc291dGhlYXN0IElkYWhvIHRoYXQgd2VyZSBleHBlcmllbmNpbmcgd2luZCBlcm9zaW9uIHByb2JsZW1zLiZuYnNwOyBUaGUgc3VyZmFjZXMgb2YgZXJvZGluZyBmaWVsZHMgd2VyZSBldmFsdWF0ZWQgYW5kIG1lYXN1cmVkIHRvIGVuc3VyZSB0aGF0IHRoZSBXaW5kIEVyb3Npb24gUHJlZGljdGlvbiBTeXN0ZW0gKFdFUFMpIHdpbGwgY29ycmVjdGx5IHByZWRpY3Qgc29pbCBsb3NzIHVuZGVyIHRoZSBleGlzdGluZyBzaXRlIGNvbmRpdGlvbnMuJm5ic3A7IFN0cmF0ZWdpZXMgZm9yIGNvbnRyb2xsaW5nIHNvaWwgbG9zcyBkdXJpbmcgdGhpcyB3aW5kIGVyb3Npb24gc3VzY2VwdGlibGUgcGVyaW9kIHdlcmUgYWxzbyBkaXNjdXNzZWQgd2l0aCBsb2NhbCBOUkNTIHBlcnNvbm5lbC48L1A+IAo8UD48U1RST05HPkFSUyBSZXByZXNlbnRhdGl2ZSBUbyBTcGVhayBBdCBTYWx0Y2VkYXIgTWFuYWdlbWVudCBQcm9qZWN0IFNwcmluZyBNZWV0aW5nPC9TVFJPTkc+OiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSBOUEFSTCBCaW9sb2dpY2FsIFNjaWVuY2UgVGVjaG5pY2lhbiBLaW1iZXJseSBNYW5uIHdpbGwgZ2l2ZSBhIHByZXNlbnRhdGlvbiBNYXkgNiBhdCB0aGUgTWlzc291cmkgUml2ZXIgV2F0ZXJzaGVkIENvYWxpdGlvbiAoTVdSQykgU2FsdGNlZGFyIE1hbmFnZW1lbnQgUHJvamVjdCBzcHJpbmcgbWVldGluZyBpbiBTY290dHNibHVmZiwgTkUuJm5ic3A7IE1zLiBNYW5uIGlzIHJlcHJlc2VudGluZyBOUEFSTCBFbnRvbW9sb2dpc3QgRGF2aWQgS2F6bWVyIGF0IHRoZSBldmVudC4gRHIuIEthem1lciB3b3JrcyBvbiBzYWx0Y2VkYXIgYmlvY29udHJvbCBpbiBMb3ZlbGwsIFdZIGFuZCBpbiB0aGUgQ2hhcmxlcyBNLiBSdXNzZWxsIE5hdGlvbmFsIFdpbGRsaWZlIFJlZnVnZSBuZWFyIEZ0LiBQZWNrLCBidXQgd2FzIHVuYWJsZSB0byBhdHRlbmQgdGhlIHNlc3Npb24uIEJvdGggTWFubiBhbmQgS2F6bWVyIGFyZSBtZW1iZXJzIG9mIE5QQVJM4oCZcyBQZXN0IE1hbmFnZW1lbnQgUmVzZWFyY2ggVW5pdC4gVGhlIE1pc3NvdXJpIFJpdmVyIFdhdGVyc2hlZCBDb2FsaXRpb24gaW5jbHVkZXMgZmVkZXJhbCwgc3RhdGUsIGFuZCBsb2NhbCBhZ2VuY2llcywgYnVzaW5lc3NlcywgdW5pdmVyc2l0aWVzLCBjb25zZXJ2YXRpb24gZ3JvdXBzLCBhbmQgcHJpdmF0ZSBsYW5kb3duZXJzLiBUb2dldGhlciwgdGhlIGdyb3VwcyBoYXZlIGRyYWZ0ZWQgYSBTYWx0Y2VkYXIgTWFuYWdlbWVudCBQbGFuIHRvIGNvb3JkaW5hdGUgZWZmb3J0cyB0byBtYW5hZ2Ugc2FsdGNlZGFyIGFuZCByZXN0b3JlIHJpcGFyaWFuIGNvcnJpZG9ycyBvZiB0aGUgTWlzc291cmkgUml2ZXIgd2F0ZXJzaGVkLiBUaGUgZ29hbCBvZiBNV1JDIGlzIHRvIG1haW50YWluIHByb2R1Y3RpdmUsIGJpb2RpdmVyc2UgcmlwYXJpYW4gZWNvc3lzdGVtcyB0aGF0IHByb3ZpZGUgcXVhbGl0eSB3YXRlciwgaGFiaXRhdCwgcmVjcmVhdGlvbiwgYW5kIHBvd2VyIHRvIG1lZXQgdGhlIGVjb25vbWljIGFuZCBlY29sb2dpY2FsIG5lZWRzIG9mIHRoZSBNaXNzb3VyaSBSaXZlciBXYXRlcnNoZWQgcmVnaW9uLjwvUD4gCjxQIGFsaWduPXJpZ2h0PjxBIGhyZWY9IiN0b3AiPkJhY2sgdG8gVG9wPC9BPjwvUD4gCjxQPkFwcmlsIDIxLCAyMDA4PC9QPiAKPFA+PFNUUk9ORz5BUlMgUmVzZWFyY2ggTGVhZGVyIFRvIFBhcnRpY2lwYXRlIEluIFRoZSBSZW5ld2FibGUgRnVlbHMgQWN0aW9uIFN1bW1pdDo8L1NUUk9ORz4gT24gTWF5IDE5dGgsIE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5IFJlc2VhcmNoIExlYWRlciBKb24gSGFuc29uIHdpbGwgcHJlc2VudCDigJxGZWVkIFN0b2NrIGZvciBSZW5ld2FibGVz4oCdIGF0IGEgcmVnaW9uYWwgYmlvZnVlbHMgY29uZmVyZW5jZSBzcG9uc29yZWQgYnkgTm9ydGggRGFrb3RhIFNlbmF0b3IgQnlyb24gRG9yZ2FuIGFuZCBHb3Zlcm5vciBKb2huIEhvdmVuLiBUaGUgcHJvZ3JhbSB3aWxsIGJyaW5nIHRvZ2V0aGVyIG5hdGlvbmFsbHkgcmVub3duZWQgcmVzZWFyY2hlcnMgYW5kIGxlYWRlcnMgaW4gdGhlIHJlbmV3YWJsZSBlbmVyZ3kgZmllbGQgdG8gcHJlc2VudCBhbmQgZGlzY3VzcyBlbWVyZ2luZyByZW5ld2FibGUgZnVlbHMgb3Bwb3J0dW5pdGllcyBmb3IgdGhlIG5vcnRoZXJuIEdyZWF0IFBsYWlucyByZWdpb24uIEhhbnNvbidzIHBhcnRpY2lwYXRpb24gd2FzIHJlcXVlc3RlZCBieSBTZW5hdG9yIERvcmdhbi4gVGhlIHN1bW1pdCBpcyBhbiBpbml0aWF0aXZlIG9mIHRoZSBTZW5hdG9y4oCZcyDigJxHcmVhdCBQbGFpbnMgRW5lcmd5IENvcnJpZG9y4oCdIHByb2plY3QgYW5kIHdpbGwgYmUgaGVsZCBhdCBCaXNtYXJjayBTdGF0ZSBDb2xsZWdlIGluIEJpc21hcmNrLCBORC4gPC9QPiAKPFA+PFNUUk9ORz5BUlMgU2NpZW50aXN0IFByZXNlbnRzIGF0IExpdmVzdG9jayBhbmQgQ2xpbWF0ZSBDaGFuZ2UgU3ltcG9zaXVtIGluIFR1bmlzaWE6PC9TVFJPTkc+IE9uIE1heSAxNHRoLCBEci4gU2NvdHQgS3JvbmJlcmcsIFVTREEtQVJTIEFuaW1hbCBTY2llbnRpc3QgYXQgdGhlIE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5IGluIE1hbmRhbiwgTkQgd2lsbCBwcmVzZW50IOKAnCBBIHdpbi13aW4gc2NlbmFyaW8gd2l0aCBmbGF4c2VlZCBzdXBwbGVtZW50YXRpb24gdG8gcmVkdWNlIG1ldGhhbmUgb3V0cHV0IGFuZCBpbmNyZWFzZSB3ZWlnaHQgZ2FpbnMgb2YgZ3JhemluZyBjYXR0bGXigJ0mbmJzcDsgYXQgYW4gaW50ZXJuYXRpb25hbCBzeW1wb3NpdW0gaW4gVHVuaXNpYSBzcG9uc29yZWQgYnkgdGhlIEJyaXRpc2ggU29jaWV0eSBvZiBBbmltYWwgU2NpZW5jZSwgU2NvdHRpc2ggR292ZXJubWVudCwgRXVyb3BlYW4gU2NpZW5jZSBGb3VuZGF0aW9uLCBvdGhlciBFdXJvcGVhbiBhbmltYWwgYW5kIGFncmljdWx0dXJhbCByZXNlYXJjaCBzb2NpZXRpZXMgKElOUkEsIEVBQVAsIGV0Yy4pLCBhbmQgSUNBUkRBIGFuZCBJTFJJIGludGVybmF0aW9uYWwgcmVzZWFyY2ggb3JnYW5pemF0aW9ucy4mbmJzcDsgS3JvbmJlcmfigJlzIHJlc2VhcmNoIGZvY3VzIGlzIGluIGJvdGggaW5jcmVhc2luZyBvbWVnYS0zIGZhdHR5IGFjaWRzIGluIGJlZWYgZm9yIGNvbnN1bWVycyB0aHJvdWdoIHRoZSBmZWVkaW5nIG9mIGZsYXhzZWVkIGFuZCByZWR1Y2luZyBncmVlbmhvdXNlIGdhc2VzIGluIGJlZWYgcHJvZHVjdGlvbi48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIFRvIEF0dGVuZCBBbm51YWwgSGFyZCBXaW50ZXIgV2hlYXQgQnJlZWRlcnPigJkgRmllbGQgRGF5PC9TVFJPTkc+OiBPbiBBcHJpbCAyMiwgUm9iZXJ0IEJvd2RlbiwgUmVzZWFyY2ggTGVhZGVyLCBBUlMgUGxhbnQgU2NpZW5jZSBhbmQgRW50b21vbG9neSBSZXNlYXJjaCBVbml0IChQU0VSVSksIE1hbmhhdHRhbiwgS1MsIGFuZCBCcmFkIFNlYWJvdXJuLCBEaXJlY3RvciBvZiB0aGUgVVNEQS1BUlMgSGFyZCBXaW50ZXIgV2hlYXQgUXVhbGl0eSBMYWJvcmF0b3J5IChIV1dRTCksIGFsb25nIHdpdGggc2V2ZW4gc3RhZmYgbWVtYmVycywgd2lsbCBwYXJ0aWNpcGF0ZSBpbiB0aGUgQW5udWFsIEhhcmQgV2ludGVyIFdoZWF0IEJyZWVkZXJz4oCZIEZpZWxkIERheSBpbiBDYXN0cm92aWxsZSwgVFguJm5ic3A7IEJyZWVkZXJzIGFuZCBvdGhlciBzY2llbnRpc3RzIHdpbGwgc2hhcmUgYWdyb25vbWljIGFuZCBlbmQtdXNlIHF1YWxpdHkgaW5mb3JtYXRpb24gYWJvdXQgcHJvc3BlY3RpdmUgbmV3IHdoZWF0IHZhcmlldGllcy4mbmJzcDsgUHJpb3IgdG8gdGhlIGZpZWxkIGRheSwgUGxhbnQgR2VuZXRpY2lzdHMgR3VpaHVhIEJhaSBhbmQgUGF1bCBTdC4gQW1hbmQgKFBTRVJVKSB3aWxsIGNvbnZlbmUgYSBtZWV0aW5nIG9mIHRoZSBIYXJkIFdpbnRlciBXaGVhdCBHZW5vdHlwaW5nIExhYiBMaWFpc29uIENvbW1pdHRlZS4mbmJzcDsgVW5pdCBzY2llbnRpc3RzIGFuZCBzdGFrZWhvbGRlcnMgd2lsbCBkaXNjdXNzIHdheXMgdG8gaW5jcmVhc2UgdGhlIGVmZmljaWVuY3kgYW5kIGltcGFjdCBvZiBtYXJrZXItYXNzaXN0ZWQgc2VsZWN0aW9uIGluIHdoZWF0LjwvUD4gCjxQPjxTVFJPTkc+QVJTIFNjaWVudGlzdCBJbnRlcnZpZXdlZCBGb3IgTmF0aW9uYWwgUHVibGljIFJhZGlvPC9TVFJPTkc+OiBPbiBBcHJpbCAyMXN0LCBEci4gUmViZWNjYSBQaGlsbGlwcyB3YXMgaW50ZXJ2aWV3ZWQgYnkgRWFydGggJiBTa3kgcmVwb3J0ZXIgSm9yZ2UgU2FsYXphci4gSW4gdGhlIEpvdXJuYWwgR2xvYmFsIENoYW5nZSBCaW9sb2d5LCBQaGlsbGlwcyBhbmQgY29sbGFib3JhdG9yIE9mZXIgQmVlcmkgb2YgdGhlIFVuaXZlcnNpdHkgb2YgTm9ydGggRGFrb3RhLCByZXBvcnRlZCB0aGF0IGZpZWxkcyBwbGFudGVkIHRvIGdyYXNzZXMgYW5kIG1hbmFnZWQgdW5kZXIgdGhlIENvbnNlcnZhdGlvbiBSZXNlcnZlIFByb2dyYW0gKENSUCkgcmVtb3ZlZCBiZXR3ZWVuIDIzMDAgYW5kIDMyMDAga2cgb2YgYXRtb3NwaGVyaWMgY2FyYm9uIHBlciBhY3JlIHBlciBncm93aW5nIHNlYXNvbiwgYmFzZWQgb24gdGVuIHllYXJzIG9mIGRhdGEuIFJlc3VsdHMgd2VyZSBiYXNlZCBvbiBmaWVsZCBhbmQgc2F0ZWxsaXRlLWJhc2VkIGRhdGEgZm9yIG92ZXIgMTQwMCBpbmRpdmlkdWFsIENSUCBmaWVsZHMgaW4gY2VudHJhbCBOb3J0aCBEYWtvdGEuJm5ic3A7IFRoZSBpbnRlcnZpZXcgd2lsbCBiZSBicm9hZGNhc3Qgd2l0aGluIGEgZmV3IHdlZWtzLiBFYXJ0aCAmIFNreSBvbiBOYXRpb25hbCBQdWJsaWMgUmFkaW8gaGFzIGEgZGFpbHkgZXhwb3N1cmUgb2Ygb3ZlciB0aHJlZSBtaWxsaW9uIGxpc3RlbmVycy48L1A+IAo8UCBhbGlnbj1yaWdodD48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1A+IAo8UD5BcHJpbCA5LCAyMDA4PC9QPiAKPFA+PFNUUk9ORz5VU0RBLUFSUyBTY2llbnRpc3QgUHJlc2VudHMgYXQgNjJuZCBBbm51YWwgVVMgRmxheCBJbnN0aXR1dGU8L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSwgTWFuZGFuLCBORCkgRHIuIEVyaWMgU2Nob2xsamVnZXJkZXMsIE5HUFJMIEFuaW1hbCBTY2llbnRpc3QsIHByZXNlbnRlZCDigJxFZmZlY3RzIG9mIHN1cHBsZW1lbnRhbCBmbGF4c2VlZCBvbiBzaXRlIGFuZCBleHRlbnQgb2YgZGlnZXN0aW9uIGluIGJlZWYgaGVpZmVycyBncmF6aW5nIHN1bW1lciBwYXN0dXJlIGluIHRoZSBub3J0aGVybiBHcmVhdCBQbGFpbnPigJ0gYXQgdGhlIFVuaXRlZCBTdGF0ZXMgZmxheCBpbmR1c3RyeeKAmXMgMjAwOCByZXNlYXJjaCBmb3J1bSBoZWxkIGF0IEZhcmdvLCBOb3J0aCBEYWtvdGEgTWFyY2ggMjd0aC4gRmxheCBJbnN0aXR1dGUgcGFydGljaXBhbnRzIGluY2x1ZGUgYSBncm93aW5nIG51bWJlciBvZiBmb29kIHNjaWVudGlzdHMsIGh1bWFuIG51dHJpdGlvbmlzdHMsIGFuaW1hbCBzY2llbnRpc3RzLCBhbmQgcGh5c2ljaWFucyB0aHJvdWdob3V0IHRoZSBVbml0ZWQgU3RhdGVzLjwvUD4gCjxQPjxTVFJPTkc+VVNEQS1BUlMgU2NpZW50aXN0IFRyYWlucyBORFNVIEV4dGVuc2lvbiBFZHVjYXRvcnM8L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSwgTWFuZGFuLCBORCkgT24gTWFyY2ggMzFzdCwgRHIuIEtyaXN0aW5lIE5pY2hvbHMsIFVEQS1BUlMgU29pbCBNaWNyb2Jpb2xvZ2lzdCwgcHJlc2VudGVkIHNldmVyYWwgc29pbCBxdWFsaXR5IGRlbW9uc3RyYXRpb25zIGF0IHRoZSBOb3J0aCBEYWtvdGEgU3RhdGUgVW5pdmVyc2l0eSBFeHRlbnNpb24gRWR1Y2F0b3LigJlzIFNwcmluZyBUcmFpbmluZyBDb25mZXJlbmNlIGluIEJpc21hcmNrLCBOb3J0aCBEYWtvdGEuIFRoZXNlIGRlbW9uc3RyYXRpb25zIHdlcmUgY29uZHVjdGVkIGFzIHBhcnQgb2YgYSDigJhCdWlsZGluZyBhIDQtSCBTdXN0YWluYWJsZSBBZ3JpY3VsdHVyZSBBY3Rpdml0eSBCb3jigJkgc2Vzc2lvbiBhbmQgaW5jbHVkZWQgZGVtb25zdHJhdGlvbnMgYW5kIGFjdGl2aXRpZXMgZm9yIExhbmQgR3JhbnQgQ29sbGVnZSBDb29wZXJhdGl2ZSBFeHRlbnNpb24gcGVyc29ubmVsIGFuZCA0LUggbGVhZGVycyBmb3IgdXNlIGluIHNvaWxzIGVkdWNhdGlvbiBmb3IgeW91bmcgcGVvcGxlLjwvUD4gCjxQPjxTVFJPTkc+VVNEQS1BUlMgU2NpZW50aXN0IFByZXNlbnRzIGF0IE5EU1UvUGZpemVyIFNjaWVudGlmaWMgRm9ydW08L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSwgTWFuZGFuLCBORCkgRHIuIEVyaWMgU2Nob2xsamVnZXJkZXMsIE5HUFJMIEFuaW1hbCBTY2llbnRpc3QsIGhhcyBiZWVuIGludml0ZWQgdG8gcHJlc2VudCDigJxFZmZlY3RzIG9mIGFuIGludGVncmF0ZWQgY3JvcHMvbGl2ZXN0b2NrIHN5c3RlbSB1c2VkIGZvciBmYWxsIGZvcmFnZSBwcm9kdWN0aW9uIG9uIGNvdyBwZXJmb3JtYW5jZeKAnSBhdCBhIG1ham9yIHNjaWVudGlmaWMgZm9ydW0gaW4gSGV0dGluZ2VyLCBOb3J0aCBEYWtvdGEgb24gQXByaWwgOHRoLiBUaGlzIG11bHRpLXN0YXRlIEFuaW1hbCBTY2llbmNlIFJlc2VhcmNoIGRpc2N1c3Npb24gaXMgYW5udWFsbHkgc3BvbnNvcmVkIGJ5IE5vcnRoIERha290YSBTdGF0ZSBVbml2ZXJzaXR5IGFuZCBQZml6ZXIgQW5pbWFsIEhlYWx0aCBDb21wYW55LjwvUD4gCjxQPkFwcmlsIDIsIDIwMDg8L1A+IAo8UD48U1RST05HPkFSUyBSZXNlYXJjaGVyIEludml0ZWQgVG8gU3BlYWsgQXQgSW50ZXJuYXRpb25hbCBBbmltYWwgTWlncmF0aW9uIENvbmZlcmVuY2U6PC9TVFJPTkc+IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpIE5QQVJMIEVjb2xvZ2lzdCBSb2JlcnQgU3J5Z2xleSBoYXMgYmVlbiBpbnZpdGVkIHRvIHByZXNlbnQgYSBwYXBlciBhdCB0aGUg4oCcSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uIEFuaW1hbCBOYXZpZ2F0aW9uOiBSb3lhbCBJbnN0aXR1dGUgb2YgTmF2aWdhdGlvbiAyMDA4LCBPcmllbnRhdGlvbiBhbmQgTmF2aWdhdGlvbjogQmlyZHMsIEh1bWFucyBhbmQgb3RoZXIgQW5pbWFscyzigJ0gQXByaWwgMi00IGF0IHRoZSBVbml2ZXJzaXR5IG9mIFJlYWRpbmcsIFVuaXRlZCBLaW5nZG9tLiBUaGUgY29uZmVyZW5jZSB3aWxsIGJyaW5nIHRvZ2V0aGVyIHJlc2VhcmNoIHNjaWVudGlzdHMgZnJvbSBhIHdpZGUgcmFuZ2Ugb2YgcmVzZWFyY2ggZGlzY2lwbGluZXMgcmVsYXRpdmUgdG8gYW5pbWFsIG5hdmlnYXRpb24sIGluY2x1ZGluZyBvcmllbnRhdGlvbiwgbWlncmF0aW9uLCBuZXVyb2Jpb2xvZ3ksIGV0aG9sb2d5LCBlY29sb2d5LCBlbnRvbW9sb2d5IGFuZCBzZW5zb3J5IHBoeXNpb2xvZ3kuIERyLiBTcnlnbGV54oCZcyBwcmVzZW50YXRpb24gaXMgdGl0bGVkLCDigJxEbyBsZWFmLWN1dHRlciBhbnRzIG9yaWVudCB0aGVpciBwYXRoLWludGVncmF0ZWQsIGhvbWUgdmVjdG9yIHdpdGggYSBtYWduZXRpYyBjb21wYXNzP+KAnSBEci4gU3J5Z2xleSBpcyBhIG1lbWJlciBvZiBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQgd2hlcmUgaGUgaXMgY3VycmVudGx5IHN0dWR5aW5nIG1pZ3JhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBNb3Jtb24gY3JpY2tldHMuIEluIGFkZGl0aW9uIHRvIHBhcnRpY2lwYXRpbmcgaW4gdGhlIGNvbmZlcmVuY2UsIERyLiBTcnlnbGV5IHdpbGwgY29uZmVyIHdpdGggRHJzLiBUaW0gR3VpbGZvcmQsIEFkcmlhbiBUaG9tYXMsIEdyYWhhbSBUYXlsb3IsIEZyaXR6IFZvbGxyYXRoLCBhbmQgb3RoZXIgY29sbGVhZ3VlcyBpbiB0aGUgRGVwYXJ0bWVudCBvZiBab29sb2d5LCBVbml2ZXJzaXR5IG9mIE94Zm9yZCwgd2hlcmUgRHIgU3J5Z2xleSBpcyBhIFNlbmlvciBSZXNlYXJjaCBBc3NvY2lhdGUuPC9QPiAKPFAgYWxpZ249cmlnaHQ+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9QPiAKPFA+TWFyY2ggMjYsIDIwMDg8L1A+IAo8UD48U1RST05HPlVTREEtQVJTIEVtcGxveWVlcyBzdXBwb3J0IEFtZXJpY2FuIEluZGlhbiBIaWdoZXIgRWR1Y2F0aW9uIENvbnNvcnRpdW0gKEFJSEVDKTo8L1NUUk9ORz4mbmJzcDsgT24gTWFyY2ggMTl0aCwgRHIuIEpvbiBIYW5zb24sIFJlc2VhcmNoIExlYWRlciBhdCB0aGUgVVNEQS1BUlMgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnkgcHJvdmlkZWQgYSBzZW1pbmFyIG9uIOKAnENhcmVlciBPcHBvcnR1bml0aWVzIHdpdGggdGhlIFVTREEgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIFNlcnZpY2XigJ0gYW5kIG1vZGVyYXRlZCBhbiBlbXBsb3llZSBwYW5lbCBmcm9tIHRoZSBNYW5kYW4sIE5EIGxhYiBhbmQgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5IGluIFNpZG5leSwgTVQgYXQgdGhlIDI3dGggYW5udWFsIEFJSEVDIFN0dWRlbnQgQ29uZmVyZW5jZSBpbiBCaXNtYXJjaywgTm9ydGggRGFrb3RhLiBEci4gUmViZWNjYSBQaGlsbGlwcywgQVJTIFBsYW50IFBoeXNpb2xvZ2lzdCwgRHIuIFNjb3R0IEtyb25iZXJnLCBBUlMgQW5pbWFsIFNjaWVudGlzdCwgRHIuIE1hcmsgTGllYmlnLCBBUlMgU29pbCBTY2llbnRpc3QsIGFuZCBNcy4gSmFja2llIENvdXR1cmUsIEFSUyBTYWZldHkgT2ZmaWNlciwgc2hhcmVkIHRoZWlyIHBlcnNvbmFsIHN0b3JpZXMgdGhhdCBsZWQgdG8gd29yayB3aXRoIFVTREEsIHRoZSB3b3JrIGV4cGVyaWVuY2Ugd2l0aGluIHRoZWlyIG9yZ2FuaXphdGlvbnMsIGFuZCByZWNvbW1lbmRhdGlvbnMgdG8gc3R1ZGVudHMgaW50ZXJlc3RlZCBpbiBzY2llbmNlIGNhcmVlcnMuIEpvaW5pbmcgdGhlIFVTREEtQVJTIHByb2Zlc3Npb25hbHMgb24gdGhlIHBhbmVsIHdlcmUgc3R1ZGVudHMgQXByaWwgQmxhY2tiaXJkLCBNYXJsYSBTdHJpcGUtRmFjZSBDb2xsaW5zIGFuZCBHYWlsIFNhZ2UsIHdobyBwYXJ0aWNpcGF0ZWQgaW4gVVNEQS1BUlMgaW50ZXJuc2hpcHMgYW5kIGVtcGxveW1lbnQuIFRoZSBzdHVkZW50cyBzaGFyZWQgdGhlaXIgcG9zaXRpdmUgZmVlbGluZ3MgYWJvdXQgdGhlaXIgZXhwZXJpZW5jZXMgYW5kIHRoZSBVU0RBIEFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlLiBNcy4gQmFyYmFyYSBLaW5nLCBBUlMgTm9ydGhlcm4gUGxhaW5zIEFyZWEgRUVPL0NpdmlsIFJpZ2h0cyBNYW5hZ2VyIGFzc2lzdGVkIGluIG9yZ2FuaXppbmcgdGhlIHNlbWluYXIgYW5kIHBhbmVsLiBUaGUgQW1lcmljYW4gSW5kaWFuIEhpZ2hlciBFZHVjYXRpb24gQ29uc29ydGl1bSByZXByZXNlbnRzIDM2IFRyaWJhbCBDb2xsZWdlcyBhbmQgVW5pdmVyc2l0aWVzIChUQ1UpIGluIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBvbmUgQ2FuYWRpYW4gaW5zdGl0dXRpb24uIFRoaXMgeWVhciwgdGhlIEFJSEVDIGNvbmZlcmVuY2UgYXR0cmFjdGVkIG92ZXIgMTAwMCBzdHVkZW50cyBhbmQgZmFjdWx0eSBmcm9tIG5lYXJseSBldmVyeSBUQ1UuPC9QPiAKPFA+PFNUUk9ORz5BZ3JpY3VsdHVyYWwgUmVzZWFyY2ggU2VydmljZSAoQVJTKSBBbmltYWwgU2NpZW50aXN0IEhvc3RzIFN1cmdlb25zIGZvciBDbGVmdCBQYWxhdGUgU3R1ZHk6PC9TVFJPTkc+Jm5ic3A7IE9uIEFwcmlsIDktMTEsIEtpcCBQYW50ZXIsIEFuaW1hbCBTY2llbnRpc3QsIEFSUyBQb2lzb25vdXMgUGxhbnQgUmVzZWFyY2ggTGFib3JhdG9yeSwgTG9nYW4sIFVULCBpcyBob3N0aW5nIERyLiBKZWZmcmV5IFdlaW56d2VpZywgTS5ELiAoSGVhZCBvZiBEZXBhcnRtZW50IG9mIFBsYXN0aWMgU3VyZ2VyeSwgTGFoZXkgTWVkaWNhbCBDbGluaWMsIEJvc3RvbiwgTUEpIGFuZCBmb3VyIHJlc2lkZW50cyBpbiBwbGFzdGljIHN1cmdlcnkgdG8gcmVzZWFyY2ggdGhlIGRldmVsb3BtZW50IG9mIGltcHJvdmVkIHRyZWF0bWVudCBvZiBjbGVmdCBwYWxhdGUgaW4gY2hpbGRyZW4gdXNpbmcgYSBnb2F0IG1vZGVsIGNoYXJhY3Rlcml6ZWQgYXQgdGhlIFBvaXNvbm91cyBQbGFudCBSZXNlYXJjaCBMYWJvcmF0b3J5LiZuYnNwOyBUaGUgZ29hdCBtb2RlbCB3YXMgZGV2ZWxvcGVkIHRvIHN0dWR5IHRoZSBtZWNoYW5pc20sIHRpbWluZyBvZiBpbnN1bHQsIGFuZCBwcmV2ZW50aW9uIG9mIHNrZWxldGFsIGRlZmVjdHMgKHBhcnRpY3VsYXJseSBsdXBpbmUtaW5kdWNlZCDigJxjcm9va2VkIGNhbGYgZGlzZWFzZeKAnSkgYW5kIGNsZWZ0IHBhbGF0ZSBpbiBsaXZlc3RvY2suIEluIHV0ZXJvIHN1cmdlcnkgdG8gcmVwYWlyIGNsZWZ0IHBhbGF0ZSBsZWF2ZXMgbm8gc2NhcnM7IHN1cmdlb25zIGFyZSBjb250aW51aW5nIHRvIGRldmVsb3Agc3VjaCB0ZWNobmlxdWVzIHRvIHRyYW5zZmVyIHRvIGh1bWFuIGNsZWZ0IHBhbGF0ZSByZXBhaXIgc29tZSBkYXkuPC9QPiAKPFA+TWFyY2ggMTksIDIwMDg8L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIGZyb20gTG9nYW4sIFVUIHRvIEF0dGVuZCBJbnRlcm5hdGlvbmFsIEdyYXNzbGFuZCBDb25ncmVzcy9JbnRlcm5hdGlvbmFsIFJhbmdlbGFuZCBDb25ncmVzcyBpbiBDaGluYTo8L1NUUk9ORz4mbmJzcDsgRHVyaW5nIEp1bmUgMjktSnVseSA1LCBmb3VyIHNjaWVudGlzdHMgZnJvbSB0aGUgQVJTIEZvcmFnZSBhbmQgUmFuZ2UgUmVzZWFyY2ggTGFiIGF0IExvZ2FuLCBVVCB3aWxsIGF0dGVuZCB0aGUgZmlyc3QgY29tYmluZWQgbWVldGluZyBvZiB0aGUgSW50ZXJuYXRpb25hbCBHcmFzc2xhbmQgQ29uZ3Jlc3MgYW5kIEludGVybmF0aW9uYWwgUmFuZ2VsYW5kIENvbmdyZXNzIGhlbGQgaW4gSG9oaG90LCBJbm5lciBNb25nb2xpYSwgQ2hpbmEuJm5ic3A7IERvdWdsYXMgSm9obnNvbiAoUGxhbnQgUGh5c2lvbG9naXN0KSB3aWxsIHByZXNlbnQgYW4gaW52aXRlZCBrZXlub3RlIHByZXNlbnRhdGlvbiDigJxDb2xsZWN0aW9uIGFuZCBEb21lc3RpY2F0aW9uIG9mIFJhbmdlbGFuZCBQbGFudCBTcGVjaWVzIHdpdGggRW1waGFzaXMgb24gTW9uZ29saWEgYW5kIENoaW5hIi4mbmJzcDsgUmljaGFyZCBXYW5nIChSZXNlYXJjaCBHZW5ldGljaXN0KSB3aWxsIHByZXNlbnQgIkRldmVsb3BtZW50IG9mIGdlbm9taWMgdG9vbHMgZm9yIHdoZWF0Z3Jhc3MgYW5kIHdpbGRyeWUgaW1wcm92ZW1lbnQiLiZuYnNwOyBUb20gSm9uZXMgKFJlc2VhcmNoIEdlbmV0aWNpc3QpIHdpbGwgcHJlc2VudCAiV2lsZGxhbmQgY29sbGVjdGlvbiwgcG9wdWxhdGlvbiBkZXZlbG9wbWVudCwgYW5kIGdlbmV0aWMgbWFuaXB1bGF0aW9uIG9mIG5hdGl2ZSByYW5nZWxhbmQgZ3Jhc3NlcyBpbiB0aGUgSW50ZXJtb3VudGFpbiBXZXN0Ii4mbmJzcDsgVG9tIE1vbmFjbyAoRWNvbG9naXN0KSB3aWxsIHByZXNlbnQgIkRvZXMgZGlzdHVyYmFuY2Ugc2ltaWxhcmx5IGZhY2lsaXRhdGUgd2VlZCBpbnZhc2lvbiB3aXRoaW4gZ3Jhc3MsIGZvcmIsIGFuZCBzaHJ1YiBwbG90cz8iJm5ic3A7IEJlc2lkZXMgYXR0ZW5kaW5nIHRoZSBDb25ncmVzcywgdGhleSB3aWxsIHNlZWsgY29sbGFib3JhdGl2ZSByZXNlYXJjaCBleGNoYW5nZXMgd2l0aCBmYWN1bHR5IGFuZCBzdHVkZW50cyBhdCBJbm5lciBNb25nb2xpYSBBZ3JpY3VsdHVyYWwgVW5pdmVyc2l0eSBpbiBIb2hob3QuIEpvaG5zb24gYW5kIE1vbmFjbyB3aWxsIHRoZW4gdmlzaXQgd2l0aCBjb2xsZWFndWVzIGF0IENoaW5hIEFncmljdWx0dXJhbCBVbml2ZXJzaXR5IGluIEJlaWppbmcgdG8gZGlzY3VzcyBtdXR1YWxseSBiZW5lZmljaWFsIHNjaWVudGlmaWMgZXhjaGFuZ2VzLiBXYW5nIHdpbGwgYWxzbyB2aXNpdCB3aXRoIGNvbGxlYWd1ZXMgYXQgRnVkYW4gVW5pdmVyc2l0eSBpbiBTaGFuZ2hhaSBhbmQgdGhlIEluc3RpdHV0ZSBvZiBDcm9wIFNjaWVuY2UgaW4gQmVpamluZyB0byBkaXNjdXNzIGNvbGxhYm9yYXRpdmUgcmVzZWFyY2ggcHJvamVjdHMuPC9QPiAKPFA+TWFyY2ggNSwgMjAwODwvUD4gCjxQPjxTVFJPTkc+QVJTIEVudG9tb2xvZ2lzdCBUbyBTcGVhayBPbiBTdG9yZWQtUHJvZHVjdCBQZXN0cyBBdCBGb29kIEluZHVzdHJ5IFBlc3QgTWFuYWdlbWVudCBTZW1pbmFyOjwvU1RST05HPiZuYnNwOyBPbiBNYXJjaCAxMiwgZW50b21vbG9naXN0IEppbSBDYW1wYmVsbCwgQVJTIEdyYWluIE1hcmtldGluZyBhbmQgUHJvZHVjdGlvbiBSZXNlYXJjaCBDZW50ZXIsIE1hbmhhdHRhbiwgS1MsIHdpbGwgcHJlc2VudCAiU3RvcmVkIFByb2R1Y3QgUGVzdCBVcGRhdGUiIGF0IHRoZSBNY0Nsb3VkIEZvb2QgUGxhbnQgUGVzdCBNYW5hZ2VtZW50IFNlbWluYXIsIEhvZmZtYW5uIEVzdGF0ZXMsIElMLiZuYnNwOyBUaGlzIGlzIGFuIGFubnVhbCBzZW1pbmFyIHNwb25zb3JlZCBieSBNY0Nsb3VkIFNlcnZpY2VzIHRvIHRyYWluIHBlb3BsZSB3b3JraW5nIGluIGFuZCBhcm91bmQgdGhlIGZvb2QgaW5kdXN0cnksIGluY2x1ZGluZyBmb29kIHBsYW50IHByb2Zlc3Npb25hbHMsIHBlc3QgbWFuYWdlbWVudCBwcm9mZXNzaW9uYWxzLCBhbmQgaGVhbHRoIGRlcGFydG1lbnQgZW1wbG95ZWVzIGZyb20gYWNyb3NzIHRoZSBjb3VudHJ5LCB0byBiZXR0ZXIgbWFuYWdlIHBlc3RzLjwvUD4gCjxQPjxTVFJPTkc+QVJTIEVudG9tb2xvZ2lzdHMgVHJhaW4gQXpvcmFuIFNjaWVudGlzdHMgaW4gRnVuZ3VzIFByb2R1Y3Rpb246PC9TVFJPTkc+IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpIE5QQVJMIFJlc2VhcmNoIEVudG9tb2xvZ2lzdCBTdGVmYW4gSmFyb25za2kgYW5kIGZlbGxvdyBBUlMgZW50b21vbG9naXN0IExhd3JlbmNlIExhY2V5IChBUlMvV2FwYXRvIFdBKSBhcmUgdGVhY2hpbmcgYSBzaG9ydCBjb3Vyc2UgaW4gTWV0YXJoaXppdW0gZnVuZ3VzIHByb2R1Y3Rpb24gYXQgdGhlIGludml0YXRpb24gb2YgdGhlIEF6b3JlcyBSZWdpb25hbCBTZXJ2aWNlIG9mIENyb3AgUHJvdGVjdGlvbiBNYXJjaCA3LTE4LiBBem9yYW4gc2NpZW50aXN0cyBoYXZlIGJlZW4gZGV2ZWxvcGluZyB0aGUgaW5zZWN0IHBhdGhvZ2VuaWMgZnVuZ3VzIHRvIGNvbnRyb2wgSmFwYW5lc2UgQmVldGxlLCB3aGljaCBpcyBhIHNldmVyZSBjcm9wIHBlc3Qgb24gdGhlIGlzbGFuZHMsIGJ1dCBuZWVkIHRvIGNyZWF0ZSBhIHByb2R1Y3Rpb24gY2FwYWJpbGl0eS4gSmFyb25za2kgaGFzIGRldmVsb3BlZCBhIGZ1bmd1cyBwcm9kdWN0aW9uIGZhY2lsaXR5IGF0IGhpcyBBUlMgbG9jYXRpb24gaW4gU2lkbmV5LCB1c2luZyBzaW1wbGUgdGVjaG5vbG9neSwgdG8gc2VydmUgaGlzIG93biBhbmQgb3RoZXJz4oCZIGZpZWxkIHRyaWFsIG5lZWRzIGZvciBNZXRhcmhpeml1bSBhbmQgYW5vdGhlciByZWxhdGVkIGZ1bmd1cywgQmVhdXZlcmlhIGJhc3NpYW5hLiBIZSBoYXMgc3Vic2VxdWVudGx5IHRhdWdodCBoaXMgbWV0aG9kcyB0byBvdGhlciBBUlMgc2NpZW50aXN0cywgdG8gcGxhbnQgcHJvdGVjdGlvbiBzY2llbnRpc3RzIGZyb20gdGhlIFJlcHVibGljIG9mIEdlb3JnaWEsIGFuZCB0byBBZ3JpY3VsdHVyZSBBZ3JpRm9vZCBDYW5hZGEgZW50b21vbG9naXN0cy4gTGFjZXksIHdob3NlIHJlc2VhcmNoIGF0IFdhcGF0byBoYXMgY2VudGVyZWQgdXBvbiBtaWNyb2JpYWwgYW5kIG5lbWF0b2RlIGNvbnRyb2wgb2YgdHJlZSBmcnVpdCBwZXN0cyBhbmQgcG90YXRvZXMsIGhhcyBoYWQgYSBsb25nIHN0YW5kaW5nIHJlc2VhcmNoIGludm9sdmVtZW50IGluIHVzaW5nIE1ldGFyaGl6aXVtIGFnYWluc3QgdGhlIEphcGFuZXNlIEJlZXRsZSBpbiB0aGUgQXpvcmVzLiBKYXJvbnNraSBpcyBhIG1lbWJlciBvZiBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQuPC9QPiAKPFA+RmVicnVhcnkgMTMsIDIwMDg8L1A+IAo8UD48U1RST05HPkFSUyBFbnRvbW9sb2dpc3QgVG8gTWVldCBXaXRoIEZvb2QgUHJvdGVjdGlvbiBDb21taXR0ZWUgT2YgVGhlIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gT2YgT3BlcmF0aXZlIE1pbGxlcnM8L1NUUk9ORz46Jm5ic3A7IE9uIDI2LTI3IEZlYnJ1YXJ5LCBlbnRvbW9sb2dpc3QgSmltIENhbXBiZWxsLCBBUlMgR3JhaW4gTWFya2V0aW5nIGFuZCBQcm9kdWN0aW9uIFJlc2VhcmNoIENlbnRlciwgTWFuaGF0dGFuLCBLUywgd2lsbCBtZWV0IHdpdGggdGhlIEZvb2QgUHJvdGVjdGlvbiBDb21taXR0ZWUgb2YgdGhlIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgT3BlcmF0aXZlIE1pbGxlcnMgYXQgdGhlIEFSUyBDZW50ZXIgZm9yIE1lZGljYWwsIEFncmljdWx0dXJhbCwgYW5kIFZldGVyaW5hcnkgRW50b21vbG9neSBpbiBHYWluZXN2aWxsZSwgRkwsIHRvIHJlcG9ydCBvbiByZWNlbnQgQVJTIHN0b3JlZC1wcm9kdWN0IHJlc2VhcmNoIG9mIGludGVyZXN0IHRvIHRoZSBjb21taXR0ZWUgYW5kIHRvIGRpc2N1c3MgdGhlIGdyYWluIHByb2Nlc3NpbmcgaW5kdXN0cnnigJlzIHJlc2VhcmNoIG5lZWRzLiZuYnNwOyBUaGUgY29tbWl0dGVlIGNvbnNpc3RzIG9mIGFib3V0IHR3byBkb3plbiBtZW1iZXJzIGZyb20gbW9zdCBvZiB0aGUgbWFqb3IgVS5TLiBncmFpbiBwcm9jZXNzaW5nIGNvbXBhbmllcy48L1A+IAo8UD5KYW51YXJ5IDIzLCAyMDA4PC9QPiAKPFA+PFNUUk9ORz5OR1BSTCBTY2llbnRpc3QgUHJlc2VudHMgYXQgRGlyZWN0IFNlZWQgV2ludGVyIENvbmZlcmVuY2UuPC9TVFJPTkc+Jm5ic3A7IERyLiBLcmlzdGluZSBOaWNob2xzIChVU0RBLUFSUyBOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSwgTWFuZGFuLCBORCkgd2lsbCBwcmVzZW50IGEgc2VtaW5hciB0aXRsZWQg4oCYSHVudGluZyBmb3IgTnV0cmllbnRzIGFuZCBUcmFwcGluZyBDYXJib27igJkgYXQgdGhlIDExdGggQW5udWFsIERpcmVjdCBTZWVkIENyb3BwaW5nIFN5c3RlbXMgQ29uZmVyZW5jZSDigJMgRWZmaWNpZW50IFVzZSBvZiBSZXNvdXJjZXMsIEphbi4gMjMtMjQsIGluIEtlbm5ld2ljaywgV0EuJm5ic3A7IERyLiBOaWNob2xzIHdpbGwgYWxzbyBiZSBwYXJ0aWNpcGF0aW5nIGluIGEgY29uY3VycmVudCBzZXNzaW9uIGF0IHRoZSBjb25mZXJlbmNlIG9uIERpcmVjdCBTZWVkIEdyb3dpbmcgU29pbCBIZWFsdGguIFRoZSBQYWNpZmljIE5vcnRod2VzdCBEaXJlY3QgU2VlZCBBc3NvY2lhdGlvbiBwcm92aWRlcyBpbmZvcm1hdGlvbiBleGNoYW5nZSBhbmQgYWR2b2NhY3kgb24gY29uc2VydmF0aW9uIHBvbGljeSBpc3N1ZXMgYW5kIHJlc2VhcmNoIGNvb3JkaW5hdGlvbiB0byBuby10aWxsLCBkaXJlY3Qgc2VlZCBwcm9kdWNlcnMgaW4gdGhlIFBhY2lmaWMgTm9ydGh3ZXN0LjwvUD4gCjxQPjxTVFJPTkc+TkdQUkwgU2NpZW50aXN0IFByZXNlbnRzIGF0IE5vLVRpbGwgb24gdGhlIFBsYWlucyBXaW50ZXIgQ29uZmVyZW5jZTwvU1RST05HPi4mbmJzcDsgRHIuIEtyaXN0aW5lIE5pY2hvbHMgKFVTREEtQVJTIE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5LCBNYW5kYW4sIE5EKSB3aWxsIHByZXNlbnQgdHdvIHNlbWluYXJzIHRpdGxlZCDigJhNaWNyb2JpYWwgRW5naW5lZXJpbmcgdG8gRW5oYW5jZSB5b3VyIEJvdHRvbSBMaW5lLCBQYXJ0cyBJIGFuZCBJSeKAmSBhdCB0aGUgMTJ0aCBBbm51YWwgTm8gVGlsbCBvbiBUaGUgUGxhaW5zIENvbmZlcmVuY2UsIEphbi4gMjktMzAsIGluIFNhbGluYSwgS1MuJm5ic3A7IERyLiBOaWNob2xzIHdpbGwgYWxzbyBiZSBwYXJ0aWNpcGF0aW5nIGluIHRoZSBBZ3JpY3VsdHVyZeKAmXMgSW5ub3ZhdGl2ZSBNaW5kcyAoQUlNKSBzeW1wb3NpdW0gZm9sbG93aW5nIHRoZSBXaW50ZXIgQ29uZmVyZW5jZSBvbiBKYW4uIDMxc3QuJm5ic3A7IFRoaXMgcHJlbWllciBzeW1wb3NpdW0gaXMgZGVzaWduZWQgdG8g4oCccHVzaCBrbm93bGVkZ2UgdG8gdGhlIGxpbWl04oCdIGJ5IHByb3ZpZGluZyBzcGVha2VycyB3aXRoIHN0cm9uZyBiYWNrZ3JvdW5kcyBhbmQga25vd2xlZGdlIHRvIGludGVyYWN0IHdpdGggcHJvZHVjZXJzIGFuZCBnaXZlIHRoZW0gYSBtb3JlIGNvbXByZWhlbnNpdmUgZXhwbG9yYXRpb24gaW50byBhZ3JpY3VsdHVyYWwgc3lzdGVtcyB0aGF0IHdpbGwgZ2l2ZSB0aGVtIGFuIGVkZ2UuIDwvUD4gCjxQPjxTVFJPTkc+TkdQUkwgU2NpZW50aXN0IFByZXNlbnRzIGF0IE5vcnRoZXJuIFBsYWlucyBTdXN0YWluYWJsZSBBZyBXaW50ZXIgQ29uZmVyZW5jZS48L1NUUk9ORz4mbmJzcDsgRHIuIEtyaXN0aW5lIE5pY2hvbHMgKFVTREEtQVJTIE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5LCBNYW5kYW4sIE5EKSB3aWxsIHByZXNlbnQgYSBzZW1pbmFyIHRpdGxlZCDigJhVc2luZyBTb2lsIEJpb3RhIHRvIEFkdmFuY2UgU29pbCBRdWFsaXR5IGFuZCBQZXN0IE1hbmFnZW1lbnTigJkgYXQgdGhlIE5vcnRoZXJuIFBsYWlucyBTdXN0YWluYWJsZSBBZ3JpY3VsdHVyZSBTb2NpZXR54oCZcyAyMDA4IFdpbnRlciBDb25mZXJlbmNlLCBGZWIuIDgtOSwgaW4gTWFuZGFuLCBORC4mbmJzcDsgVGhlIE5vcnRoZXJuIFBsYWlucyBTdXN0YWluYWJsZSBBZ3JpY3VsdHVyZSBTb2NpZXR5IGlzIHRoZSBvcmdhbmljIGFncmljdWx0dXJlIHNvY2lldHkgaW4gdGhlIE5vcnRoZXJuIEdyZWF0IFBsYWlucy48L1A+IAo8UD48U1RST05HPkFSUyBJbnNlY3QgUGF0aG9sb2dpc3QgVHJhaW5zIEdlb3JnaWFuIFNjaWVudGlzdHMgYXQgTVQgTGFiPC9TVFJPTkc+LiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSBOUEFSTCBFbnRvbW9sb2dpc3QgYW5kIEluc2VjdCBQYXRob2xvZ2lzdCBTdGVmYW4gSmFyb25za2kgaXMgaG9zdGluZyBEcnMuJm5ic3A7IEVsZWFub3JhIEFiYXNoaWR6ZSBvZiB0aGUgR2VvcmdpYW4gSW5zdGl0dXRlIG9mIFBsYW50IFByb3RlY3Rpb24sIGFuZCBNZWRlYSBBYmFzaGlkemUsIEdlb3JnaWFuIEFjYWRlbXkgb2YgU2NpZW5jZXMsIGFsb25nIHdpdGggb25lIG9mIHRoZWlyIGdyYWR1YXRlIHN0dWRlbnRzLCBKYW51YXJ5IDIxLTI4LCBhdCB0aGUgU2lkbmV5LCBNVCBBUlMgbGFiLiBUaGUgR2VvcmdpYW4gc2NpZW50aXN0cyBhcmUgdmlzaXRpbmcgdGhlIFNpZG5leSBsYWIgZm9yIGFkZGl0aW9uYWwgdHJhaW5pbmcgaW4gbWFzcyBwcm9kdWN0aW9uIG9mIGluc2VjdCBwYXRob2dlbmljIGZ1bmdpLCBjb25kdWN0IG9mIGdyYXNzaG9wcGVyIGJpb2Fzc2F5cywgYW5kIGdlbmVyYWwgbXljb2xvZ2ljYWwgbWV0aG9kcy4gVGhpcyB0cmFpbmluZyBwcm9ncmFtIGlzIHBhcnQgb2YgYW4gb25nb2luZyBVU0FJRC1mdW5kZWQgcHJvamVjdCB0byBidWlsZCBhbiBpbnNlY3QgcGF0aG9sb2d5IGluZnJhc3RydWN0dXJlIGluIHRoZSBSZXB1YmxpYyBvZiBHZW9yZ2lhLiBEci4gSmFyb25za2kgcHJldmlvdXNseSB2aXNpdGVkIEdlb3JnaWEgaW4gMjAwNiBhbmQgMjAwNyB0byBwcm92aWRlIG9uc2l0ZSB0cmFpbmluZyBhbmQgaGVscCBlc3RhYmxpc2ggaW5zZWN0IHBhdGhvbG9neSBsYWJvcmF0b3JpZXMgaW4gdGhlIEluc3RpdHV0ZSBvZiBQbGFudCBQcm90ZWN0aW9uIGFuZCBhdCBUYmlsaXNpIFN0YXRlIFVuaXZlcnNpdHkuPC9QPiAKPFA+RGVjZW1iZXIgNSwgMjAwNzwvUD4gCjxQPjxTVFJPTkc+U3ltcG9zaXVtIG9uIEFncmljdWx0dXJhbCBCaW90ZWNobm9sb2d5IFJpc2sgQW5hbHlzaXMgUmVzZWFyY2g8L1NUUk9ORz46Jm5ic3A7IE9uIERlY2VtYmVyIDUtNi4mbmJzcDsgSmVmZiZuYnNwOyBQZWRlcnNlbiwgUmVzZWFyY2ggR2VuZXRpY2lzdCwgR3JhaW4sIEZvcmFnZSwgYW5kIEJpb2VuZXJneSBSZXNlYXJjaCBVbml0LCBMaW5jb2xuLCBORSZuYnNwOyB3aWxsIGJlIGFuIGludml0ZWQgc3BlYWtlciBhdCB0aGUgMm5kIFN5bXBvc2l1bSBmb3IgQWdyaWN1bHR1cmFsIEJpb3RlY2hub2xvZ3kgUmlzayBBbmFseXNpcyBSZXNlYXJjaCBpbiBDb2xsZWdlIFBhcmssIE1ELiZuYnNwOyBUaGUgc3ltcG9zaXVtIGlzIHNwb25zb3JlZCBieSB0aGUgQWdyaWN1bHR1cmFsIEJpb3RlY2hub2xvZ3kgUmlzayBBbmFseXNpcyBSZXNlYXJjaCBUYXNrIEdyb3VwLCBhIG11bHRpcGxlIGZlZGVyYWwgYWdlbmN5IHRhc2sgZ3JvdXAgdGhhdCBpbmNsdWRlcyBVU0RBLCBET0UsIE5TRiwgTklILCBGREEsIFVTQUlELCBhbmQgb3RoZXIgZGVwYXJ0bWVudHMuJm5ic3A7IERyLiBQZWRlcnNlbiB3aWxsIHJlcG9ydCBvbiBwb3RlbnRpYWwgZ2VuZSBmbG93IGlzc3VlcyBpbiBzb3JnaHVtIGFuZCBzd2l0Y2hncmFzcy48L1A+IAo8UCBhbGlnbj1yaWdodD48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1A+IAo8UD5Ob3ZlbWJlciAyOCwgMjAwNzwvUD4gCjxQPjxTVFJPTkc+Qmlvc2NpZW5jZXMgUmVzZWFyY2ggTGFib3JhdG9yeSBTY2llbnRpc3QgUGFydGljaXBhdGVzIEluIFByb2plY3QgTk9STUFOOjwvU1RST05HPiZuYnNwOyBPbiBPY3RvYmVyIDIyLCBEci4gTmFuY3kgU2hhcHBlbGwgcGFydGljaXBhdGVkIGluIHRoZSBzZWNvbmQgb2YgdHdvIHdvcmtzaG9wcyBzdXBwb3J0aW5nIHRoZSBlZmZvcnRzIG9mIGEgbWV0aG9kIHZhbGlkYXRpb24gZXhlcmNpc2UgYnkgdGhlIEVVIEZyYW1ld29yayBQcm9ncmFtbWUgQ29udHJhY3Qgb2YgUmVzZWFyY2ggZW50aXRsZWQg4oCcTmV0d29yayBvZiBSZWZlcmVuY2UgTGFib3JhdG9yaWVzIGFuZCBSZWxhdGVkIE9yZ2FuaXNhdGlvbnMgZm9yIChCaW8tKSBNb25pdG9yaW5nIG9mIEVtZXJnaW5nIEVudmlyb25tZW50YWwgUG9sbHV0YW50cyzigJ0gb3IgUHJvamVjdCBOT1JNQU4uJm5ic3A7IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2plY3QgY2FuIGJlIGZvdW5kIGF0IDxBIGhyZWY9Imh0dHA6Ly93d3cuZW1lcmdpbmctcG9sbHV0YW50cy5uZXQvIj48Rk9OVCBjb2xvcj0jMDAwMGZmPnd3dy5lbWVyZ2luZy1wb2xsdXRhbnRzLm5ldDwvRk9OVD48L0E+LiZuYnNwOyBEci4gU2hhcHBlbGwgd2FzIGFza2VkIHRvIHBhcnRpY2lwYXRlIGFzIHRoZSBtZXRob2QgZm9yIHNhbXBsZSBleHRyYWN0aW9uIGFuZCBxdWFudGlmaWNhdGlvbiBvZiBlc3Ryb2dlbmljIGFjdGl2aXR5IHNoZSBwdWJsaXNoZWQgaW4gdGhlIEpvdXJuYWwgb2YgRW52aXJvbm1lbnRhbCBRdWFsaXR5IHdhcyBpbmNsdWRlZCBmb3IgZXZhbHVhdGlvbi4mbmJzcDsgUGFydGljaXBhbnRzIGF0IHRoZSBPY3RvYmVyIDIyIG1lZXRpbmcgaGVsZCBhdCB0aGUgVW5pdmVyc2l0eSBvZiBCZXJnZW4sIE5vcndheSBpbmNsdWRlZCBzY2llbnRpc3RzIGZyb20gdGhlIFVuaXRlZCBLaW5nZG9t4oCZcyBFbnZpcm9ubWVudCBBZ2VuY3ksIE5vcndheeKAmXMgQmlvc2Vuc2UgQ29ycG9yYXRpb24sIGFuZCBIb2xsYW5k4oCZcyBJVk0gVnJpamUgVW5pdmVyc2l0eSwgd2hvbSB3ZXJlIHJlc3BvbnNpYmxlIGZvciBwcm9qZWN0IGRlc2lnbiwgY29vcmRpbmF0aW9uLCBhbmQgc2FtcGxlL2RhdGEgYW5hbHlzaXMuJm5ic3A7IFRoZSBwdXJwb3NlIG9mIHRoaXMgd29ya3Nob3Agd2FzIHRvIHJldmlldyB0aGUgZmluZGluZ3Mgb2YgdGhlIHZhcmlvdXMgcGFydGljaXBhbnRzIGFuZCBwcmVwYXJlIGEgcmVwb3J0LiZuYnNwOyBUaGUgRVUgaXMgaW4gdGhlIHByb2Nlc3Mgb2YgZXN0YWJsaXNoaW5nIGNvbmNlbnRyYXRpb25zIG9mIOKAnE5vIENvbmNlcm4sIFBvc3NpYmxlIENvbmNlcm4sIGFuZCBSZXF1aXJpbmcgQWN0aW9u4oCdIGZvciB3YXN0ZXdhdGVyIGVmZmx1ZW50cy4mbmJzcDsgVGhlIGFzc2F5cyB3ZXJlIGJlaW5nIGV2YWx1YXRlZCBhcyB0byDigJxmaXQgZm9yIHB1cnBvc2XigJ0gaW4gYXNzZXNzaW5nIHJlbGF0aXZlIGVzdHJvZ2VuaWMgYWN0aXZpdHkvY29udGFtaW5hdGlvbiBvZiB3YXN0ZXdhdGVyIGVmZmx1ZW50cy48L1A+IAo8UD5PY3RvYmVyIDE3LCAyMDA3PC9QPiAKPFA+PFNUUk9ORz5BUlMgU2NpZW50aXN0cyBUcmF2ZWwgVG8gQ2Fpcm8sIEVneXB0IFRvIEZvc3RlciBDb29wZXJhdGl2ZSBSZXNlYXJjaCBPbiBSaWZ0IFZhbGxleSBGZXZlcjo8L1NUUk9ORz4mbmJzcDsgRHIuIEtyaXN0aW5lIEJlbm5ldHQsIE1vbGVjdWxhciBCaW9sb2dpc3QgYW5kIERyLiBKYW1lcyBNZWNoYW0sIE1pY3JvYmlvbG9naXN0IHdpdGggdGhlIEFydGhyb3BvZC1Cb3JuZSBBbmltYWwgRGlzZWFzZXMgUmVzZWFyY2ggTGFib3JhdG9yeSAoQUJBRFJMKSB0cmF2ZWxlZCB0byBDYWlybywgRWd5cHQgU2VwdGVtYmVyIDIwIOKAkyAyOSwgMjAwNyB0byBtZWV0IHdpdGggY29sbGVhZ3VlcyB3aG8gaGF2ZSBiZWVuIGludm9sdmVkIHdpdGggUmlmdCBWYWxsZXkgZmV2ZXIgKFJWRikgb3V0YnJlYWtzIGluIE5vcnRoIEFmcmljYSBhbmQgdGhlIEFyYWJpYW4gUGVuaW5zdWxhLiZuYnNwOyBUaGV5IHdlcmUgam9pbmVkIGJ5IERyLiBLZW4gTGludGhpY3VtLCBDZW50ZXIgRGlyZWN0b3Igd2l0aCB0aGUgQ2VudGVyIGZvciBNZWRpY2FsLCBBZ3JpY3VsdHVyYWwsIGFuZCBWZXRlcmluYXJ5IEVudG9tb2xvZ3kgKENNQVZFKSwgU291dGggQXRsYW50aWMgQXJlYS4mbmJzcDsgVGhlIHRyaXAgd2FzIG1hZGUgcG9zc2libGUgYnkgdGhlIERlcGFydG1lbnQgb2YgU3RhdGUgdGhyb3VnaCBhIHByb2dyYW0gYWRtaW5pc3RlcmVkIGJ5IHRoZSBPZmZpY2Ugb2YgSW50ZXJuYXRpb25hbCBSZXNlYXJjaCBQcm9ncmFtcyAoT0lSUCkgd2l0aCBmdW5kaW5nIGF3YXJkZWQgdG8gQ01BVkUgYW5kIEFCQURSTCBmb3IgZW5yaWNoaW5nIGNvb3BlcmF0aXZlIHJlc2VhcmNoIG9uIFJpZnQgVmFsbGV5IGZldmVyIGluIGVuZGVtaWMvZXBpZGVtaWMgY291bnRyaWVzLiZuYnNwOyBXaGlsZSBpbiBDYWlybywgdGhlIEFSUyBzY2llbnRpc3RzIHZpc2l0ZWQgY29sbGVhZ3VlcyBhdCB0aGUgQ2Fpcm8gb2ZmaWNlcyBvZiBVU0RBLUFQSElTIGFuZCBVU0RBLUZBUzsgdGhlIFUuUy4gTmF2YWwgTWVkaWNhbCBSZXNlYXJjaCBVbml0ICMzIChOQU1SVS0zKSB0aGUgRGVwYXJ0bWVudCBvZiBFbnZpcm9ubWVudGFsIFN0dWRpZXMgYW5kIFJlc2VhcmNoLCBBaW4gU2hhbXMgVW5pdmVyc2l0eTsgdGhlIFZldGVyaW5hcnkgU2VydW0gYW5kIFZhY2NpbmUgUmVzZWFyY2ggSW5zdGl0dXRlOyBhbmQgdGhlIE5hdGlvbmFsIEF1dGhvcml0eSBmb3IgUmVtb3RlIFNlbnNpbmcgYW5kIFNwYWNlIFNjaWVuY2VzLiZuYnNwOyBTY2llbnRpZmljIHByZXNlbnRhdGlvbnMgd2VyZSBnaXZlbiBhbmQgY29udGFjdHMgbWFkZSB3aXRoIG51bWVyb3VzIGluZGl2aWR1YWxzIGF0IHRoZSBhYm92ZSBpbnN0aXR1dGlvbnMgaW52b2x2ZWQgd2l0aCByZXNlYXJjaC4mbmJzcDsgVGhlc2UgZXhjaGFuZ2VzIGhhdmUgbGFpZCB0aGUgZ3JvdW5kd29yayBmb3IgZnV0dXJlIGludGVybmF0aW9uYWwgc2NpZW50aWZpYyBjb2xsYWJvcmF0aW9ucy4mbmJzcDsgPC9QPiAKPFA+PFNUUk9ORz5Ob3J0aGVybiBQbGFpbnMgQXJlYSBDb250cmlidXRlcyB0byBOb2JlbCBQcml6ZS1XaW5uaW5nIEludGVyZ292ZXJubWVudGFsIFBhbmVsIG9uIENsaW1hdGUgQ2hhbmdlOjwvU1RST05HPiZuYnNwOyBPbiBGcmlkYXksIE9jdG9iZXIgMTIsIDIwMDcsIHRoZSBOb3J3ZWdpYW4gTm9iZWwgQ29tbWl0dGVlIGFubm91bmNlZCB0aGUgam9pbnQgYXdhcmQgb2YgdGhlIDIwMDcgTm9iZWwgUGVhY2UgUHJpemUgdG8gdGhlIEludGVyZ292ZXJubWVudGFsIFBhbmVsIG9uIENsaW1hdGUgQ2hhbmdlIChJUENDKSBhbmQgdG8gQWxiZXJ0IEdvcmUgSnIuIGZvciDigJx0aGVpciBlZmZvcnRzIHRvIGJ1aWxkIHVwIGFuZCBkaXNzZW1pbmF0ZSBncmVhdGVyIGtub3dsZWRnZSBhYm91dCBtYW4tbWFkZSBjbGltYXRlIGNoYW5nZSwgYW5kIHRvIGxheSB0aGUgZm91bmRhdGlvbnMgZm9yIHRoZSBtZWFzdXJlcyB0aGF0IGFyZSBuZWVkZWQgdG8gY291bnRlcmFjdCBzdWNoIGNoYW5nZeKAnS4mbmJzcDsgU2luY2UgMTk4OCwgdGhlIElQQ0MgaGFzIGlzc3VlZCBhIHNlcmllcyBvZiByZXBvcnRzIGV2ZXJ5IGZpdmUgb3Igc2l4IHllYXJzIHByZXNlbnRpbmcgdGhlIGxhdGVzdCBmaW5kaW5ncyBjb25jZXJuaW5nIGNsaW1hdGUgY2hhbmdlLCBpbmNsdWRpbmcgaW1wbGljYXRpb25zIGZvciBhZ3JpY3VsdHVyZSBhbmQgaXRzIHJvbGUgaW4gbWl0aWdhdGluZyBjbGltYXRlIGNoYW5nZS4mbmJzcDsgU2NpZW50aXN0cyBmcm9tIG92ZXIgYSBodW5kcmVkIGNvdW50cmllcyBoYXZlIGNvbnRyaWJ1dGVkIHRvIHJlcG9ydHMgaXNzdWVkIGJ5IHRoZSBJUENDIHNpbmNlIGl0cyBpbmNlcHRpb24gdHdvIGRlY2FkZXMgYWdvLCBpbmNsdWRpbmcgRHIuIEphY2sgTW9yZ2FuLCBVU0RBLUFSUy1OUEEgUmFuZ2VsYW5kIFJlc291cmNlcyBSZXNlYXJjaCBVbml0LCBGb3J0IENvbGxpbnMsIENPLCB3aG8gc2VydmVkIGFzIGEgY29udHJpYnV0aW5nIGF1dGhvciB0byBDaGFwdGVyIDUsIEVjb3N5c3RlbXMgYW5kIFRoZWlyIEdvb2RzIGFuZCBTZXJ2aWNlcyBvZiB0aGUgMjAwMSBXb3JraW5nIEdyb3VwIElJIFJlcG9ydCwgYW5kIGFsc28gYXMgYW4gZXhwZXJ0IHJldmlld2VyIG9mIHRoZSA0dGggYXNzZXNzbWVudCByZXBvcnQgaW4gMjAwNy4mbmJzcDsgQVJTIHNjaWVudGlzdHMgZnJvbSBvdGhlciBhcmVhcyB3aG8gaGF2ZSBjb250cmlidXRlZCB0byB0aGUgSVBDQyBpbmNsdWRlIERyLiBCcnVjZSBLaW1iYWxsLCBNYXJpY29wYSwgQVo7IERyLiBMLiBIYXJ0d2VsbCBBbGxlbiwgR2FpbnN2aWxsZSwgRkw7IERyLiBXYXluZSBQb2xsZXksIFRlbXBsZSwgVFg7IGFuZCBEci4gTGV3aXMgWmlza2EsIEJlbHRzdmlsbGUsIE1ELjwvUD4gCjxQPk9jdG9iZXIgMywgMjAwNzwvUD4gCjxQPjxTVFJPTkc+QVJTIFNjaWVudGlzdCBUbyBQcmVzZW50IFJlc2VhcmNoIEF0IEFncmljdWx0dXJlIENhbmFkYSBBbmQgVGhlIFVuaXZlcnNpdHkgT2YgTWFuaXRvYmEgSW4gV2lubmlwZWcsIENhbmFkYTwvU1RST05HPjombmJzcDsgT24gOC0xMSBPY3RvYmVyLCBSZXNlYXJjaCBFbnRvbW9sb2dpc3QgRnJhbmsgQXJ0aHVyLCBmcm9tIHRoZSBBUlMgR3JhaW4gTWFya2V0aW5nIGFuZCBQcm9kdWN0aW9uIFJlc2VhcmNoIENlbnRlciBpbiBNYW5oYXR0YW4sIEtTLCB3aWxsIHZpc2l0IHdpdGggc2NpZW50aXN0cyBhdCBBZ3JpY3VsdHVyZSBDYW5hZGEgaW4gV2lubmlwZWcsIE1hbml0b2JhLCBhbmQgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFuaXRvYmEsIERlcGFydG1lbnQgb2YgRW50b21vbG9neS4mbmJzcDsgRHIuIEFydGh1ciB3aWxsIGJlIGRpc2N1c3Npbmcgc2V2ZXJhbCBvbmdvaW5nIGNvbGxhYm9yYXRpdmUgcHJvamVjdHMgd2l0aCB0aGUgQWdyaWN1bHR1cmUgQ2FuYWRhIHNjaWVudGlzdHMsIGFuZCBoZSB3aWxsIHByZXNlbnQgYW4gaW52aXRlZCBzZW1pbmFyIHRvIHRoZSBVbml2ZXJzaXR5IG9mIE1hbml0b2JhLCBEZXBhcnRtZW50IG9mIEVudG9tb2xvZ3kgb24gMTEgT2N0b2JlciBlbnRpdGxlZCAiU3RvcmVkIFByb2R1Y3QgSW5zZWN0cyBhcyBVcmJhbiBhbmQgU3RydWN0dXJhbCBQZXN0cyIuIDwvUD4gCjxQPjxTVFJPTkc+U2NpZW50aXN0cyBGcm9tIEFSUyBMYWIgSW4gS2Fuc2FzIFRvIFJlcG9ydCBUaGVpciBXb3JrIEF0IFRoZSBBbWVyaWNhbiBBc3NvY2lhdGlvbiBPZiBDZXJlYWwgQ2hlbWlzdHMgSW50ZXJuYXRpb25hbDo8L1NUUk9ORz4gVGhlIHdlZWsgb2YgT2N0b2JlciA3dGgg4oCTIDEwdGggc2NpZW50aXN0cyBmcm9tIHRoZSBHcmFpbiBNYXJrZXRpbmcgUHJvZHVjdGlvbiBSZXNlYXJjaCBDZW50ZXIgKEdNUFJDKSBHcmFpbiBRdWFsaXR5IFVuaXQgYW5kIHRoZSBFbmdpbmVlcmluZyBSZXNlYXJjaCBVbml0IGluIE1hbmhhdHRhbiwgS1MsIHdpbGwgYmUgYXR0ZW5kaW5nIEFtZXJpY2FuIEFzc29jaWF0aW9uIG9mIENlcmVhbCBDaGVtaXN0cyBJbnRlcm5hdGlvbmFsIChBQUNDSSkgYW5udWFsIG1lZXRpbmcgaW4gU2FuIEFudG9uaW8sIFRYLiBUaGUgdGhlbWUgZm9yIHRoaXMgeWVhcnMgbWVldGluZyBpcyDigJxEeW5hbWljcyBvZiBHcmFpbiBVdGlsaXphdGlvbuKAnSBhbmQgd2lsbCBiZSBwcmVzZW50aW5nIHdvcmsgaW4gdGhlIGFyZWFzIG9mOiZuYnNwOyBkb3VnaCB2aXNjb2VsYXN0aWMgcHJvcGVydGllcywgYnJlYWQgcXVhbGl0eSBjaGFyYWN0ZXJpc3RpY3MsIGltYWdlIGFuYWx5c2lzIG9mIGNlcmVhbHMsIHRoZSBpbXBhY3Qgc3RhcmNoIGhhcyBvbiBicmVhZCBxdWFsaXR5LCB3YXh5IGFuZCBub24td2F4eSB3aGVhdCBrZXJuZWwgc2VwYXJhdGlvbiwgbm9vZGxlIGFuZCB0b3J0aWxsYSBxdWFsaXR5LiBUaGlzIGlzIGFuIG9wcG9ydHVuaXR5IHRvIHNoYXJlIHJlc2VhcmNoIHJlc3VsdHMgYW5kIGlkZWFzIGNvbmNlcm5pbmcgY2VyZWFsIHF1YWxpdHkgYXQgYm90aCB0aGUgZG9tZXN0aWMgYW5kIGludGVybmF0aW9uYWwgbGV2ZWwuPC9QPiAKPFA+PFNUUk9ORz5BUlMgU2NpZW50aXN0IFRvIFByZXNlbnQgUmVzZWFyY2ggVG8gTmF0aW9uYWwgUGVzdCBNYW5hZ2VtZW50IEFzc29jaWF0aW9uOjwvU1RST05HPiZuYnNwOyBPbiA3LTE5IE9jdG9iZXIsIFJlc2VhcmNoIEVudG9tb2xvZ2lzdCBKaW0gQ2FtcGJlbGwsIGZyb20gdGhlIEFSUyBHcmFpbiBNYXJrZXRpbmcgYW5kIFByb2R1Y3Rpb24gUmVzZWFyY2ggQ2VudGVyIGluIE1hbmhhdHRhbiwgS1MsIHdpbGwgcHJlc2VudCBhbiBpbnZpdGVkIHRhbGsgZW50aXRsZWQgIkFkdmFuY2VzIGluIFVuZGVyc3RhbmRpbmcgU3RvcmVkLVByb2R1Y3QgUGVzdHMgaW4gRm9vZCBGYWNpbGl0aWVzIiBhdCB0aGUgYW5udWFsIG1lZXRpbmcgb2YgdGhlIE5hdGlvbmFsIFBlc3QgTWFuYWdlbWVudCBBc3NvY2lhdGlvbiBpbiBLaXNzaW1tZWUsIEZsb3JpZGEuPC9QPiAKPFA+QXVndXN0IDI5LCAyMDA3PC9QPiAKPFA+PFNUUk9ORz5BUlMgR2xvYmFsIENoYW5nZSBSZXNlYXJjaCBEcmF3cyBJbnRlcm5hdGlvbmFsIEF0dGVudGlvbjo8L1NUUk9ORz4mbmJzcDsgSW4gYW4gYXJ0aWNsZSB0byBiZSBwdWJsaXNoZWQgdGhlIHdlZWsgb2YgQXVndXN0IDI3LTMxIGluIHRoZSBvbmxpbmUgRWFybHkgRWRpdGlvbiBvZiB0aGUgUHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgKDxBIGhyZWY9Imh0dHA6Ly93d3cucG5hcy5vcmcvcGFwYnlyZWNlbnQuc2h0bWwiPjxGT05UIGNvbG9yPSMwMDAwZmY+aHR0cDovL3d3dy5wbmFzLm9yZy9wYXBieXJlY2VudC5zaHRtbDwvRk9OVD48L0E+KSwgRHIuIEphY2sgTW9yZ2FuIGFuZCBjb2xsZWFndWVzIERhbiBNaWxjaHVuYXMgKENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkpLCBEYW4gTGVDYWluLCBNYXJrIFdlc3QsIGFuZCBBcnZpbiBNb3NpZXIgKGxhc3QgdGhyZWUgQVJTKSByZXBvcnQgdGhhdCBpbmNyZWFzZWQgbGV2ZWxzIG9mIGF0bW9zcGhlcmljIENPMiBsZWQgdG8gYSA0MC1mb2xkIGluY3JlYXNlIGluIGFib3ZlZ3JvdW5kIGJpb21hc3Mgb2YgYSBzbWFsbCBzdWItc2hydWIgaW4gbmF0aXZlIENvbG9yYWRvIHNob3J0Z3Jhc3Mgc3RlcHBlLiZuYnNwOyBUaGVzZSBmaW5kaW5ncyBhcmUgdGhlIGZpcnN0IGZyb20gYSBtYW5pcHVsYXRpdmUgZXhwZXJpbWVudCB0byBzdXBwb3J0IHRoZSBub3Rpb24gdGhhdCByaXNpbmcgQ08yIG1heSBiZSBpbnZvbHZlZCBpbiB0aGUgZW5jcm9hY2htZW50IG9mIGdyYXNzbGFuZHMgYnkgd29vZHkgcGxhbnRzLCBhIHBoZW5vbWVub24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGRlZ3JhZGF0aW9uIG9mIG1hbnkgd29ybGQgcmFuZ2VsYW5kcy4mbmJzcDsgRHIuIE1vcmdhbiBoYXMgYmVlbiBjb250YWN0ZWQgYnkgbmV3cyBvcmdhbml6YXRpb25zIGFuZCBuZXdzcGFwZXJzIGZyb20gYXJvdW5kIHRoZSB3b3JsZCwgaW5jbHVkaW5nIHRoZSBMb3MgQW5nZWxlcyBUaW1lcywgd2hpY2ggYXJlIHdyaXRpbmcgZmVhdHVyZSBzdG9yaWVzIG9uIHRoZSByZXNlYXJjaC48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIFRvIFByZXNlbnQgUmVzZWFyY2ggT24gUmljZSBQZXN0IE1hbmFnZW1lbnQgQXQgQ29uZmVyZW5jZSBJbiBQb3J0dWdhbDo8L1NUUk9ORz4mbmJzcDsgT24gMTctMTkgU2VwdGVtYmVyLCBSZXNlYXJjaCBFbnRvbW9sb2dpc3RzIEZyYW5rIEFydGh1ciwgSmltIENhbXBiZWxsLCBhbmQgSmltIFRocm9uZSBhbmQgUmVzZWFyY2ggQmlvbG9naXN0IFBhdWwgRmxpbm4gd2lsbCBwcmVzZW50IGludml0ZWQgdGFsa3MgYXQgdGhlIEludGVybmF0aW9uYWwgV29ya3Nob3Agb24gSW50ZWdyYXRlZCBNYW5hZ2VtZW50IG9mIFN0b3JlZCBSaWNlIFBlc3RzIGluIEFsY8OhY2VyIGRvIFNhbCwgUG9ydHVnYWwuJm5ic3A7IEFydGh1ciB3aWxsIHByZXNlbnQgIkNvbWJpbmF0aW9uIHRyZWF0bWVudHMgd2l0aCBkaWF0b21hY2VvdXMgZWFydGggYW5kIG1ldGhvcHJlbmUgdG8gY29udHJvbCB0aGUgbGVzc2VyIGdyYWluIGJvcmVyLCBSaHl6b3BlcnRoYSBkb21pbmljYSwgaW4gc3RvcmVkIHJvdWdoIHJpY2UiLCBDYW1wYmVsbCdzIHByZXNlbnRhdGlvbiBpcyAiRXZhbHVhdGluZyBzb3VyY2VzIG9mIHN0b3JlZCBwcm9kdWN0IGluc2VjdCBpbmZlc3RhdGlvbiIsIFRocm9uZSdzIGlzICJEZXRlY3Rpb24gb2YgaW5zZWN0cyBpbiBncmFpbiIsIGFuZCBGbGlubidzIGlzICJBdXRvbWF0aWMgbW9uaXRvcmluZyBvZiBpbnNlY3QgcGVzdHMgaW4gc3RvcmVkIGdyYWluIGFuZCByaWNlIi4mbmJzcDsgRm9sbG93aW5nIHRoZSBtZWV0aW5nLCB0aGV5IHdpbGwgbWVldCB3aXRoIGNvbGxlYWd1ZXMgYXQgdGhlIFRyb3BpY2FsIFJlc2VhcmNoIEluc3RpdHV0ZSBvZiBQb3J0dWdhbCBpbiBMaXNib24gdG8gZGlzY3VzcyBjb2xsYWJvcmF0aXZlIHJlc2VhcmNoLjwvUD4gCjxQPkF1Z3VzdCAyMiwgMjAwNzwvUD4gCjxQPjxTVFJPTkc+VVNEQS1BUlMgVGVjaG5pY2FsIEluZm9ybWF0aW9uIFNwZWNpYWxpc3QgUmVjb2duaXplZCBmb3IgRXhjZWxsZW5jZSBpbiBUZWNoIFRyYW5zZmVyPC9TVFJPTkc+OiBVU0RBLUFSUyBUZWNobmljYWwgSW5mb3JtYXRpb24gU3BlY2lhbGlzdCBDYWwgVGhvcnNvbiBoYXMgYmVlbiBzZWxlY3RlZCBhcyB0aGUgMjAwNyBSZWdpb25hbCBMYWJvcmF0b3J5IFJlcHJlc2VudGF0aXZlIGZvciB0aGUgRmVkZXJhbCBMYWJvcmF0b3J5IENvbnNvcnRpdW0gTWlkLUNvbnRpbmVudCBSZWdpb24uIFRob3Jzb24gbWFuYWdlcyB0aGUgcHVibGljIG91dHJlYWNoIGVmZm9ydHMgb2YgdGhlIE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5IGluIE1hbmRhbiwgTm9ydGggRGFrb3RhLiBUaGUgVVNEQS1BUlMgbmF0dXJhbCByZXNvdXJjZXMgbGFib3JhdG9yeSBmb2N1c2VzIG9uIHJlc2VhcmNoIGFuZCBkZXZlbG9wbWVudCBvZiBpbm5vdmF0aXZlIGludGVncmF0ZWQgYWdyaWN1bHR1cmFsIHN5c3RlbXMgYW5kIGR5bmFtaWMgY3JvcHBpbmcgc3lzdGVtcyB3aGljaCBpbmNsdWRlcyBpbXByb3ZlZCBjcm9wIHNlcXVlbmNpbmcsIGludGVncmF0aW5nIG5ldyBiaW9mdWVsIGNyb3BzLCBldmFsdWF0aW5nIGNhcmJvbiBzZXF1ZXN0cmF0aW9uLCBhbmQgZGV2ZWxvcGluZyBuZXcgcmVtb3RlIHNlbnNpbmcgdG9vbHMgZm9yIGxhbmQgbWFuYWdlcnMuIFRob3Jzb24gZm9jdXNlcyBvbiB0aGUgcGVycGV0dWF0aW9uIG9mIG5ldyBVU0RBLUFSUyByZXNlYXJjaCBpbnRvIHB1YmxpYyB1c2UuIOKAnENhbCBpcyBhIGZpbmUgZXhhbXBsZSBvZiB0aGUgY2FsaWJlciBvZiBwZW9wbGUgaW52b2x2ZWQgaW4gdGhlIEFSUyBhcyB3ZWxsIGFzIHRoZSBGTEMgTWlkLUNvbnRpbmVudCBSZWdpb24uIFdlIGFyZSB0aHJpbGxlZCB0byBiZSBhYmxlIHRvIGhvbm9yIGhpbSBhbmQgc2hvd2Nhc2UgaGlzIGZpbmUgd29yay7igJ0gVGhvcnNvbiB3aWxsIGJlIGhvbm9yZWQgYXQgdGhlIHVwY29taW5nIEZlZGVyYWwgTGFib3JhdG9yeSBDb25zb3J0aXVtIE1pZC1Db250aW5lbnQgUmVnaW9uYWwgbWVldGluZyBvbiBTZXB0ZW1iZXIgMTJ0aCBpbiBTYW4gRGllZ28sIENhbGlmb3JuaWEuPC9QPiAKPFA+PFNUUk9ORz5BUlMgU2NpZW50aXN0IEFzc2lzdHMgVGhlIENlbnRlcnMgRm9yIERpc2Vhc2UgQ29udHJvbCBJbiBNYWxhcmlhIFJlc2VhcmNoOjwvU1RST05HPiZuYnNwOyBGcm9tIEF1Z3VzdCAyNi1TZXB0ZW1iZXIgNywgYWdyaWN1bHR1cmFsIGVuZ2luZWVyIGFuZCByZXNlYXJjaCBsZWFkZXIgRmxveWQgRG93ZWxsIHdpbGwgd29yayB3aXRoIHNjaWVudGlzdHMgYXQgdGhlIElmYWthcmEgSGVhbHRoIFJlc2VhcmNoIGFuZCBEZXZlbG9wbWVudCBDZW50cmUgaW4gVGFuemFuaWEgdG8gYXBwbHkgbmVhci1pbmZyYXJlZCBzcGVjdHJvc2NvcHkgdGVjaG5pcXVlcyB0byBkZXRlcm1pbmluZyBtb3NxdWl0byBzcGVjaWVzIGFuZCBhZ2UuJm5ic3A7IFRoaXMgcmVzZWFyY2ggaXMgaW4gY29vcGVyYXRpb24gd2l0aCB0aGUgQ0RDIGFuZCBzdXBwb3J0cyBpbnRlcm5hdGlvbmFsIGVmZm9ydHMgdG8gY29udHJvbCBtYWxhcmlhLjwvUD4gCjxQPkF1Z3VzdCAxNSwgMjAwNzwvUD4gCjxQPjxTVFJPTkc+QVJTIFNjaWVudGlzdCBQcmVzZW50ZWQgSW52aXRlZCBUYWxrIE9uIFVzaW5nIFN3aXRjaGdyYXNzIEZvciBCaW9lbmVyZ3k6PC9TVFJPTkc+Jm5ic3A7IE9uIEF1Z3VzdCA5LCByZXNlYXJjaCBhZ3Jvbm9taXN0IFJvYiBNaXRjaGVsbCwgR3JhaW4sIEZvcmFnZSwgYW5kIEJpb2VuZXJneSBSZXNlYXJjaCBVbml0LCBMaW5jb2xuLCBORSwgZ2F2ZSBhbiBpbnZpdGVkIHByZXNlbnRhdGlvbiBhdCB0aGUgOTJuZCBhbm51YWwgbWVldGluZyBvZiB0aGUgRWNvbG9naWNhbCBTb2NpZXR5IG9mIEFtZXJpY2EsIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDE4dGggYW5udWFsIG1lZXRpbmcgb2YgdGhlIFNvY2lldHkgZm9yIEVjb2xvZ2ljYWwgUmVzdG9yYXRpb24gaGVsZCBpbiBTYW4gSm9zZSwgQ0EuJm5ic3A7IFRoZSBwcmVzZW50YXRpb24sICJCaW9mdWVsIHByb2R1Y3Rpb24gZnJvbSBzd2l0Y2hncmFzcyIsIGZvY3VzZWQgb24gdGhlIGVjb25vbWljcyBhbmQgdGhlIG5ldCBlbmVyZ3kgYmFsYW5jZSBvZiBncm93aW5nIHN3aXRjaGdyYXNzIGZvciBiaW9lbmVyZ3kgdXNpbmcgZGF0YSBmcm9tIGEgbGFyZ2Ugc2NhbGUgdHJpYWwgaW52b2x2aW5nIGZpZWxkcyBvbiB0ZW4gZmFybXMgZm9yIGEgZml2ZSB5ZWFyIHBlcmlvZC48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIFRvIFByZXNlbnQgQmlvZW5lcmd5IFJlc2VhcmNoIEZpbmRpbmdzOjwvU1RST05HPiZuYnNwOyBPbiBBdWd1c3QgMjAsIGdlbmV0aWNpc3QgS2VuIFZvZ2VsLCBHcmFpbiwgRm9yYWdlIGFuZCBCaW9lbmVyZ3kgUmVzZWFyY2ggVW5pdCwgTGluY29sbiwgTkUgYW5kIHBsYW50IHBoeXNpb2xvZ2lzdCBXYWxsYWNlIFdpbGhlbG0sIEFncm9lY29zeXN0ZW0gTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LCBMaW5jb2xuLCBORSZuYnNwOyB3aWxsIHByZXNlbnQgaW52aXRlZCBwcmVzZW50YXRpb25zIGF0IHRoZSBVU0RBIEdsb2JhbCBDb25mZXJlbmNlIG9uIEFncmljdWx0dXJhbCBCaW9mdWVsczogUmVzZWFyY2ggYW5kIEVjb25vbWljcyBhdCBNaW5uZWFwb2xpcywgTU4uJm5ic3A7IFZvZ2VsIHdpbGwgcHJlc2VudCBpbmZvcm1hdGlvbiBvbiB0aGUgZWNvbm9taWNzIGFuZCBuZXQgZW5lcmd5IG9mIHN3aXRjaGdyYXNzIHByb2R1Y3Rpb24gZm9yIGJpb21hc3MgZW5lcmd5IGFuZCBXaWxoZWxtIHdpbGwgcHJlc2VudCBpbmZvcm1hdGlvbiBvbiBtYWtpbmcgY3JvcCByZXNpZHVlcyBhIHN1c3RhaW5hYmxlIGZlZWRzdG9jayBmb3IgYmlvZnVlbCBwcm9kdWN0aW9uLjwvUD4gCjxQPkF1Z3VzdCA4LCAyMDA3PC9QPiAKPFA+PFNUUk9ORz43OHRoIFJvY2t5IE1vdW50YWluIENvbmZlcmVuY2Ugb2YgRW50b21vbG9naXN0czo8L1NUUk9ORz4mbmJzcDsgT24gQXVndXN0IDMwdGgsIERyLiBXaWxsIFJlZXZlcywgcmVzZWFyY2ggZW50b21vbG9naXN0LCBnYXZlIGEgc2NpZW50aWZpYyBwcmVzZW50YXRpb24gYXQgdGhlIDc4dGggUm9ja3kgTW91bnRhaW4gQ29uZmVyZW5jZSBvZiBFbnRvbW9sb2dpc3RzIGluIFdvb2RsYW5kIFBhcmssIENvbG9yYWRvLiBUaGUgdGl0bGUgb2YgaGlzIHByZXNlbnRhdGlvbiB3YXMgIk1vbGVjdWxhciBTdHVkaWVzIG9mIEZseS1Cb3JuZSBQYXRob2dlbnMiLiZuYnNwOyBUaGUgcHJlc2VudGF0aW9uIGZvY3VzZWQgb24gZGV2ZWxvcGluZyBhbmQgdGVzdGluZyB0ZWNobm9sb2dpZXMgZGV2ZWxvcGVkIGZvciBwYXRob2dlbiBkZXRlY3Rpb24gaW4gbW9zcXVpdG9lcyBvbiBvdGhlciBmbGllcyBzdWNoIGFzIGJsYWNrIGZsaWVzLCBrZWRzLCBhbmQgc3RhYmxlIGZsaWVzLjwvUD4gCjxQPkF1Z3VzdCAxLCAyMDA3PC9QPiAKPFA+PFNUUk9ORz5GcmllbmRzICYgTmVpZ2hib3JzIHN1cHBvcnQgVVNEQS1BUlMgTGFib3JhdG9yeTo8L1NUUk9ORz4gT24gSnVseSAxOXRoIE92ZXIgODAwIGd1ZXN0cyBqb2luZWQgdGhlIHN0YWZmIG9mIHRoZSBVU0RBLUFSUyBOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSBmb3Ig4oCcUmVzZWFyY2ggUm91bmR1cOKAnSwgdGhlaXIgYW5udWFsIOKAmEZyaWVuZHMgJiBOZWlnaGJvcnMgRGF5LuKAmSBDYW1wdXMgYWN0aXZpdGllcyBpbmNsdWRlZCB0b3VycyBvZiB0aGUgbWF0dXJlIHRyZWVzIGF0IHRoZSA5NCB5ZWFyIG9sZCBjYW1wdXMgYW5kIHRoZSBVU0RBLUFSUyBHcmFuZCBGb3JrcyBIdW1hbiBOdXRyaXRpb24gQ2VudGVy4oCZcyDigJhNb2JpbGUgTnV0cml0aW9uIExhYuKAmSwgYW5kIHByZXNlbnRhdGlvbnMgb24gd2F0ZXIgZ2FyZGVucyBhbmQgZmFybSB3aW5kYnJlYWsgcmVub3ZhdGlvbi4gQ2hpbGRyZW4gd2VyZSB0cmVhdGVkIHRvIGEgY2hpbGRyZW7igJlzIGNyYWZ0IGFjdGl2aXR5IGNlbnRlciwgUmVuZGV6dm91cyBUZW50IGFuZCBob3JzZS1kcmF3biB3YWdvbiByaWRlcy4gVGhlIHNjaWVudGlzdHMgZXhoaWJpdGVkIG1hbnkgcmVzZWFyY2ggcG9zdGVycyB0aHJvdWdob3V0IHRoZSBjYW1wdXMuIFRoZSBzdGFmZiBhbHNvIHByb3ZpZGVkIGNvbnRpbnVvdXMgc2hvd2luZyBvZiBwcmVzZW50YXRpb25zIG9uIHRoZSBoaXN0b3J5IG9mIFVTREEtQVJTIHJlc2VhcmNoIGF0IHRoZSBmYWNpbGl0eS4gT24gdGhlIHJlc2VhcmNoIHRvdXIsIHNjaWVudGlzdHMgZm9jdXNlZCBvbiBzb2lscyByZXNlYXJjaCwgaG93IHRvIHN1c3RhaW5hYmx5IHNlcXVlbmNlIGNvcm4gaW4gY3JvcCByb3RhdGlvbnMsIGFuZCBlZmZlY3RzIG9mIG9pbHNlZWQgc3VwcGxlbWVudGF0aW9uIG9uIGJlZWYgY293IHJlcHJvZHVjdGlvbi4gU2NpZW50aXN0cyBmcm9tIE5vcnRoIERha290YSBTdGF0ZSBVbml2ZXJzaXR5IGpvaW5lZCB0aGVpciBVU0RBIGNvbGxlYWd1ZXMgaW4gc2V2ZXJhbCBwcmVzZW50YXRpb25zLiZuYnNwOyBNZXJyaWxsIFBpZXBrb3JuLCBob3N0IG9mIFByYWlyaWUgUHVibGljIFJhZGlv4oCZcyDigJxIZWFyIEl0IE5vd+KAnSBwcm9ncmFtLCB3aGljaCBpcyBoZWFyZCB0aHJvdWdob3V0IHRoZSBtdWx0aS1zdGF0ZSByZWdpb24sIHdhcyB0aGUgbXVzaWNhbCBlbnRlcnRhaW5tZW50IGZvbGxvd2luZyB0aGUgZXZlbmluZyBiYXJiZWN1ZS4gT3ZlciA2MCBzcG9uc29ycyBjb250cmlidXRlZCB0byBzdXBwb3J0IHRoaXMgYW5udWFsIGV2ZW50IHdoaWNoIHdhcyBob3N0ZWQgYnkgdGhlIEFyZWEgNCBTb2lsIENvbnNlcnZhdGlvbiBEaXN0cmljdCBDb29wZXJhdGl2ZSBSZXNlYXJjaCBGYXJtIHdoaWNoIHN1cHBvcnRzIHRoZSB3b3JrIG9mIHRoZSBVU0RBLUFSUyBzY2llbnRpc3RzIGluIE1hbmRhbiwgTm9ydGggRGFrb3RhLjwvUD4gCjxQPjxTVFJPTkc+QVJTIFNjaWVudGlzdCBUbyBTcGVhayBBdCBUaGUgU29pbCBBbmQgV2F0ZXIgQ29uc2VydmF0aW9uIFNvY2lldHkgQW5udWFsIE1lZXRpbmcgVG8gQmUgSGVsZCBJbiBUYW1wYSwgRkwsIEp1bHkgMjEtMjUsIDIwMDc8L1NUUk9ORz46Jm5ic3A7IEphbWVzIEMuIEFzY291Z2ggSUksIGh5ZHJvbG9naWMgZW5naW5lZXIsIEFSUyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggVW5pdCwgRm9ydCBDb2xsaW5zLCBDTyB3aWxsIHNwZWFrIG9uIE9iamVjdCBNb2RlbGluZyBhbmQgU2NhbGluZyBvZiBMYW5kc2NhcGUgUHJvY2Vzc2VzIGFuZCBDb25zZXJ2YXRpb24gRWZmZWN0cyBpbiBBZ3JpY3VsdHVyYWwgU3lzdGVtcy4mbmJzcDsgSGlzIHByZXNlbnRhdGlvbiBkZXNjcmliZXMgbmV3IGNvbXB1dGVyIG1vZGVsaW5nIHRvb2xzIGZvciBhc3Nlc3NpbmcgdGhlIGltcGFjdHMgb2YgY29uc2VydmF0aW9uIHByYWN0aWNlIGltcGxlbWVudGF0aW9uIGF0IGZpZWxkIHRvIHdhdGVyc2hlZCBzY2FsZXMuJm5ic3A7IENvbXBsZXggaW50ZXJhY3Rpb25zIGJldHdlZW4gc3lzdGVtIGNvbXBvbmVudHMgYW5kIHNwYXRpYWwgdW5pdHMsIHNjYWxpbmcgYXBwcm9hY2hlcywgYW5kIHVuY2VydGFpbnRpZXMgYXJlIGJlaW5nIHF1YW50aWZpZWQgdXNpbmcgc3BhdGlhbC10ZW1wb3JhbCBmaWVsZCBtZWFzdXJlbWVudHMgYW5kIGR5bmFtaWMgbW9kZWxpbmcgdXNpbmcgYW4gT2JqZWN0IE1vZGVsaW5nIFN5c3RlbSAoT01TKSB3aXRoIGEgbW9kdWxhciBlbnZpcm9ubWVudGFsIG1vZGVsaW5nIHN0cnVjdHVyZS48L1A+IAo8UD48U1RST05HPkZhcm0gQ3JlZGl0IFNlcnZpY2VzIFJlcHMgVmlzaXQgTW9udGFuYSBBUlMgTGFiPC9TVFJPTkc+OiBPbiBUdWVzZGF5LCBKdWx5IDEwLCBOUEFSTCBob3N0ZWQgdGhlIEVhc3Rlcm4gTW9udGFuYSBSZWdpb25hbCBMb2NhbCBBZHZpc29yeSBDb21taXR0ZWUgTWVldGluZyBmb3IgTm9ydGh3ZXN0IEZhcm0gQ3JlZGl0IFNlcnZpY2VzLiBOb3J0aHdlc3QgRmFybSBDcmVkaXQgU2VydmljZXMgcHJvdmlkZXMgZmluYW5jaW5nIGFuZCByZWxhdGVkIHNlcnZpY2VzIHRvIGZhcm1lcnMsIHJhbmNoZXJzLCBhZ3JpYnVzaW5lc3NlcywgY29tbWVyY2lhbCBmaXNoZXJtZW4sIHRpbWJlciBwcm9kdWNlcnMsIHJ1cmFsIGhvbWVvd25lcnMsIGFuZCBjcm9wIGluc3VyYW5jZSBjdXN0b21lcnMgaW4gTW9udGFuYSwgSWRhaG8sIE9yZWdvbiwgV2FzaGluZ3RvbiwgYW5kIEFsYXNrYS4gVGhlIHJlZ2lvbmFsIG1lZXRpbmcgaW5jbHVkZWQgc3RhZmYgYW5kIGFkdmlzb3J5IGNvbW1pdHRlZSBtZW1iZXJzIGZyb20gZm91ciBlYXN0ZXJuIE1vbnRhbmEgb2ZmaWNlcywgaW5jbHVkaW5nIEJpbGxpbmdzLCBNaWxlcyBDaXR5LCBHbGFzZ293IGFuZCBTaWRuZXksIGFsb25nIHdpdGggcmVwcmVzZW50YXRpdmVzIGZyb20gTm9ydGh3ZXN04oCZcyBTcG9rYW5lLCBXQSBoZWFkcXVhcnRlcnMuIEFzIHBhcnQgb2YgdGhlIG1lZXRpbmcsIE5QQVJMIFdlZWQgRWNvbG9naXN0IEFuZHkgTGVuc3NlbiBwcmVzZW50ZWQgYW4gb3ZlcnZpZXcgb2YgdGhlIFNpZG5leSBBUlMgbGFi4oCZcyBkcnlsYW5kIHJlc2VhcmNoIHdvcmsgd2hpY2ggaW5jbHVkZXMgdW5pdCBzdHVkaWVzIGxvb2tpbmcgYXQgdGlsbGFnZSBzeXN0ZW1zLCBjdWx0dXJhbCBwcmFjdGljZXMgYW5kIGNyb3Agcm90YXRpb25zIGFuZCB0aGVpciBpbXBhY3Qgb24gd2VlZHMsIGRpc2Vhc2VzIGFuZCBzb2lsIGFuZCB3YXRlciBxdWFsaXR5LiBUaGUgZ3JvdXAgdGhlbiB3YXMgZ2l2ZW4gYSB0b3VyIG9mIHRoZSBmYWNpbGl0eSBieSBEci4gUm9iZXJ0IEV2YW5zLCBSZXNlYXJjaCBMZWFkZXIgb2YgdGhlIEFncmljdWx0dXJhbCBTeXN0ZW1zIFVuaXQuIDwvUD4gCjxQIGFsaWduPXJpZ2h0PjxBIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9BPjwvUD4gCjxQPjxTVFJPTkc+SmFwYW5lc2UgU2NpZW50aXN0IFZpc2l0cyBBUlMgTGFiPC9TVFJPTkc+IDogTlBBUkwgU29pbCBTY2llbnRpc3QgVXBlbmRyYSBTYWluanUgaG9zdGVkIERyLiBIYWppbWUgQXJha2kgZnJvbSB0aGUgSG9ra2FpZG8gVW5pdmVyc2l0eSwgSmFwYW4gYXQgdGhlIFNpZG5leSwgTVQgQVJTIGxhYiwgRnJpZGF5LCBKdWx5IDEzLiBEci4gQXJha2kgd2FzIHZpc2l0aW5nIE5QQVJMIHRvIGRpc2N1c3MgcG90ZW50aWFsIHNvaWxzIHJlc2VhcmNoIGNvbGxhYm9yYXRpb25zIGluIGNhcmJvbiBhbmQgbml0cm9nZW4gY3ljbGluZyBiZXR3ZWVuIHNjaWVudGlzdHMgYXQgSG9ra2FpZG8gVW5pdmVyc2l0eSBhbmQgTlBBUkwuIFdoaWxlIGF0IE5QQVJMLCBEci4gQXJha2kgdG91cmVkIHRoZSBBUlMgZmFjaWxpdHkgYW5kIGFyZWEgcmVzZWFyY2ggcGxvdHMgd2l0aCBEci4gU2Fpbmp1LCBhIG1lbWJlciBvZiBOUEFSTOKAmXMgQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdC48L1A+IAo8UD48U1RST05HPkFSUyBTb2lsIFNjaWVudGlzdCBJbnZpdGVkIFRvIFNwZWFrIEF0IEludGVybmF0aW9uYWwgU3ltcG9zaXVtPC9TVFJPTkc+OiBOUEFSTCBTb2lsIFNjaWVudGlzdCBVcGVuZHJhIFNhaW5qdSBoYXMgYmVlbiBpbnZpdGVkIHRvIHByZXNlbnQgdHdvIHBhcGVycyAob25lIG9yYWwgYW5kIG9uZSBwb3N0ZXIpIGF0IHRoZSDigJxJbnRlcm5hdGlvbmFsIFN5bXBvc2l1bSBvbiBPcmdhbmljIE1hdHRlciBEeW5hbWljcyBpbiBBZ3JvLUVjb3N5c3RlbXMs4oCdIEp1bHkgMTYtMTkgaW4gUG9pdGllcnMsIEZyYW5jZS4gVGhlIHN5bXBvc2l1bSBicmluZ3MgdG9nZXRoZXIgc2NpZW50aXN0cyBmcm9tIGFyb3VuZCB0aGUgd29ybGQgaW50ZXJlc3RlZCBpbiBpbXByb3ZpbmcgdW5kZXJzdGFuZGluZyBvZiB0aGUgcHJvY2Vzc2VzIHRoYXQgZ292ZXJuIEMgc2VxdWVzdHJhdGlvbiBhbmQgZHluYW1pY3MgYW5kIGl0cyByZWxhdGlvbnNoaXAgdG8gZ2xvYmFsIGNsaW1hdGUgY2hhbmdlIGFuZCBlbnZpcm9ubWVudGFsIHF1YWxpdHkuIFRoZSBzeW1wb3NpdW0gYWxzbyBsb29rcyBhdCB0aGUgaW1wYWN0cyBvZiBsYW5kIHVzZSBhbmQgbWFuYWdlbWVudCB0ZWNobmlxdWVzIG9uIHRoZSBkeW5hbWljcywgZmx1eGVzIGFuZCBmYXRlIG9mIG9yZ2FuaWMgbWF0dGVyIGluIHNvaWxzIChTT00pLCBhbiBlc3NlbnRpYWwgZWNvc3lzdGVtcyBjb21wb25lbnQuIEZvciBoaXMgcGFydCwgRHIuIFNhaW5qdSB3aWxsIGRpc2N1c3MgaGlzIHdvcmsgb24g4oCcQ2FyYm9uIGFuZCBOaXRyb2dlbiBzdG9yYWdlIGluIGRyeWxhbmQgc29pbCBhZ2dyZWdhdGVzIGFzIGluZmx1ZW5jZWQgYnkgbG9uZy10ZXJtIHRpbGxhZ2UgYW5kIGNyb3BwaW5nIHN5c3RlbeKAnSBXZWRuZXNkYXkgYW5kIGZvbGxvdyB1cCB3aXRoIGEgcG9zdGVyIHByZXNlbnRhdGlvbiBvbiB3b3JrIGhlIGhhcyBkb25lIHdpdGggWi5OLiBTZW53bywgRS5aLiBOeWFrYXRhd2EsIEkuQS4gVGF6aXNvbmcsIGFuZCBLLkMuIFJlZGR5LCBhbGwgb2YgQWxhYmFtYSBBICYgTSBVbml2ZXJzaXR5LCBOb3JtYWwsIEFsYWJhbWEgZW50aXRsZWQg4oCcVGlsbGFnZSwgY3JvcHBpbmcgc3lzdGVtLCBhbmQgbml0cm9nZW4gZmVydGlsaXplciBzb3VyY2UgZWZmZWN0cyBvbiBzb2lsIGNhcmJvbiBhbmQgbml0cm9nZW4gc2VxdWVzdHJhdGlvbi7igJ0gVGhlIGxhdHRlciByZXNlYXJjaCBleGFtaW5lZCB0aGUgbG9uZy10ZXJtICgxMCB5cikgZWZmZWN0cyBvZiB0aWxsYWdlLCBjcm9wcGluZyBzeXN0ZW0sIGFuZCBOIGZlcnRpbGl6YXRpb24gZnJvbSBwb3VsdHJ5IGxpdHRlciBvciBpbm9yZ2FuaWMgTiBmZXJ0aWxpemVyIG9uIHRoZSBhbW91bnQgb2YgY3JvcCByZXNpZHVlIHJldHVybmVkIHRvIHRoZSBzb2lsIGFuZCBzb2lsIG9yZ2FuaWMgQyBhbmQgTiBzZXF1ZXN0cmF0aW9uIGFuZCBkZXRlcm1pbmVkIHRoYXQgc3VjaCBsb25nLXRlcm0gYXBwbGljYXRpb24gb2YgcG91bHRyeSBsaXR0ZXIgY2FuIGluY3JlYXNlIHNvaWwgQyBhbmQgTiBzZXF1ZXN0cmF0aW9uIGNvbXBhcmVkIHdpdGggaW5vcmdhbmljIE4gZmVydGlsaXphdGlvbiwgcmVnYXJkbGVzcyBvZiB0aWxsYWdlIGFuZCBjcm9wcGluZyBzeXN0ZW1zLiBEci4gU2Fpbmp1IGlzIGEgbWVtYmVyIG9mIE5QQVJM4oCZcyBBZ3JpY3VsdHVyYWwgU3lzdGVtcyBSZXNlYXJjaCBVbml0LjwvUD4gCjxQPjxCUj48U1RST05HPlNvdXRoIEFmcmljYW5zIFZpc2l0IEdNUFJDIEZhY2lsaXR5OjwvU1RST05HPiZuYnNwOyBPbiBKdW5lIDE4dGgsIGEgZ3JvdXAgZnJvbSB0aGUgU291dGggQWZyaWNhbiBDcm9wIEFzc2Vzc21lbnQgVGVhbSwgYWxvbmcgd2l0aCByZXByZXNlbnRhdGl2ZXMgZnJvbSBVLlMuIFdoZWF0IEFzc29jaWF0ZXMgYW5kIHRoZSBLYW5zYXMgV2hlYXQgQ29tbWlzc2lvbiwgdG91cmVkIHRoZSBIYXJkIFdpbnRlciBXaGVhdCBRdWFsaXR5IExhYm9yYXRvcnkgKEhXV1FMKSBhbmQgdGhlIEFSUyBHcmFpbiBNYXJrZXRpbmcgJiBQcm9kdWN0aW9uIFJlc2VhcmNoIENlbnRlciBpbiBNYW5oYXR0YW4sIEtTLiZuYnNwOyBUaGUgZ3JvdXAgd2FzIGdpdmVuIGFuIG92ZXJ2aWV3IGFuZCBndWlkZWQgdG91ciBvZiB0aGUgSFdXUUwgYnkgRHIuIEJyYWQgU2VhYm91cm4sIEhXV1FMIERpcmVjdG9yLCBhbmQgYSBzaG9ydCBwcmVzZW50YXRpb24gb24gaGFyZCB3aW50ZXIgd2hlYXQgcXVhbGl0eSB0ZXN0aW5nLjwvUD4gCjxQPjxTVFJPTkc+QWdyaWN1bHR1cmFsIFJlc2VhcmNoIFNlcnZpY2UgKEFSUykgU2NpZW50aXN0IFRvIFBhcnRpY2lwYXRlIGluIGEgRGVwYXJ0bWVudCBvZiBIb21lbGFuZCBTZWN1cml0eSBOYXRpb25hbCBDZW50ZXIgZm9yIEZvcmVpZ24gQW5pbWFsIGFuZCBab29ub3RpYyBEaXNlYXNlIERlZmVuc2XigJlzIFN1YmplY3QgTWF0dGVyIEV4cGVydHMgKFNNRSkgd29ya3Nob3A8L1NUUk9ORz46Jm5ic3A7IE9uIEFwcmlsIDIzLTI0LCZuYnNwOyBEci4gV2lsbGlhbSBXaWxzb24sIE1pY3JvYmlvbG9naXN0LCBBcnRocm9wb2QtQm9ybmUgQW5pbWFsIERpc2Vhc2VzIFJlc2VhcmNoIExhYm9yYXRvcnkgd2lsbCBwYXJ0aWNpcGF0ZSBpbiB0aGUmbmJzcDsg4oCcTW9kZWxpbmcgdGhlIFBvdGVudGlhbCBFY29ub21pYyBJbXBhY3RzIG9mIGFuIFJpZnQgVmFsbGV5IEZldmVyIChSVkYpIE91dGJyZWFrIGluIHRoZSBVbml0ZWQgU3RhdGVzIG9uIHRoZSBCZWVmIENhdHRsZSBhbmQgRGFpcnkgSW5kdXN0cmllc+KAnSB0byBiZSBoZWxkIGluIFdhc2hpbmd0b24gRC5DLiZuYnNwOyBSVkYgaXMgYW4gZXhvdGljIHZpcmFsIGRpc2Vhc2UgZm91bmQgaW4gQWZyaWNhIGFuZCB0aGUgQXJhYmlhbiBQZW5pbnN1bGEgYW5kIGlzIG9uIGJvdGggdGhlIEhIUyBhbmQgVVNEQSBiaW9sb2dpY2FsIHRocmVhdCBsaXN0LiZuYnNwOyBJZiBpbnRyb2R1Y2VkIGludG8gdGhlIFUuUy4sIFJWRiB3b3VsZCBsaWtlbHkgYWZmZWN0IGh1bWFuIGFuZCBhZ3JpY3VsdHVyYWwgaGVhbHRoIHJlc3VsdGluZyBpbiBzaWduaWZpY2FudCBlY29ub21pYyBsb3NzZXMuJm5ic3A7IFdvcmtzaG9wIHBhcnRpY2lwYW50cyB3aWxsIGRpc2N1c3MgZXhpc3RpbmcgZ2VvZ3JhcGhpYyBpbmZvcm1hdGlvbiBzeXN0ZW0gbW9kZWxzLCB2YWxpZGF0aW9uIG9mIG1vZGVscyBhbmQgaG93IHRvIGltcHJvdmUgYW5kIHJlZmluZSB0aGUgbW9kZWxzIGFuZCBlc3RpbWF0ZXMgb2YgZWNvbm9taWMgaW1wYWN0LjwvUD4gCjxQPjxTVFJPTkc+QVJTIFNjaWVudGlzdCBNZWV0cyBXaXRoIHRoZSBDYWxpZm9ybmlhIERlcGFydG1lbnQgb2YgRm9vZCBBbmQgQWdyaWN1bHR1cmUmbmJzcDsgQW5kIHRoZSBDYWxpZm9ybmlhIERlcGFydG1lbnQgb2YgUGVzdGljaWRlIFJlZ3VsYXRpb25zPC9TVFJPTkc+OiBPbiBBcHJpbCAxOSwgRHJzLiBUb20gVHJvdXQsIFdhdGVyIE1hbmFnZW1lbnQgUmVzZWFyY2gsIEZ0LiBDb2xsaW5zLCBDTywgYWxvbmcgd2l0aCBTdWR1YW4gR2FvIGFuZCBEb25nIFdhbmcsIFBhcmxpZXIsIENBLCB3aWxsIGJlIG1lZXRpbmcgd2l0aCB0aGUgQ2FsaWZvcm5pYSBEZXBhcnRtZW50IG9mIEZvb2QgYW5kIEFncmljdWx0dXJlIGFuZCB0aGUgQ2FsaWZvcm5pYSBEZXBhcnRtZW50IG9mIFBlc3RpY2lkZSBSZWd1bGF0aW9uIHRvIHNoYXJlIHJlY2VudCBBUlMgcmVzZWFyY2ggb24gc29pbCBhbmQgd2F0ZXIgbWFuYWdlbWVudCBwcmFjdGljZXMgdGhhdCByZWR1Y2Ugdm9sYXRpbGUgb3JnYW5pYyBjb21wb3VuZCAoVk9DKSBlbWlzc2lvbnMgZnJvbSBzb2lsIGZ1bWlnYW50cy4mbmJzcDsgQ2FsaWZvcm5pYSBpcyBkZXZlbG9waW5nIHJlZ3VsYXRpb25zIHRvIHJlZHVjZSBWT0MgZW1pc3Npb25zIGZyb20gcGVzdGljaWRlcy48L1A+IAo8UCBhbGlnbj1yaWdodD48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1A+IAo8UD48U1RST05HPkFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlIChBUlMpIFNjaWVudGlzdCBUbyBQYXJ0aWNpcGF0ZSBpbiBJbnRlcm5hdGlvbmFsIE1pY3JvbnV0cmllbnQgRm9ydW08L1NUUk9ORz46IE9uIEFwcmlsIDE2IHRvIDE4LCBKYW5ldCBIdW50LCByZXNlYXJjaCBudXRyaXRpb25pc3QsIEdyYW5kIEZvcmtzIEh1bWFuIE51dHJpdGlvbiBSZXNlYXJjaCBDZW50ZXIgKEdGSE5SQyksIHdpbGwgcGFydGljaXBhdGUgaW4gdGhpcyBpbnRlcm5hdGlvbmFsIHN5bXBvc2l1bSBvbiB0aGUg4oCcQ29uc2VxdWVuY2VzIGFuZCBDb250cm9sIG9mIE1pY3JvbnV0cmllbnQgRGVmaWNpZW5jaWVz4oCdIGluIElzdGFuYnVsLCBUdXJrZXkuIERyLiBIdW50IHdpbGwgcHJlc2VudCByZXNlYXJjaCBjb25kdWN0ZWQgd2l0aCBzdXBwb3J0IGZyb20gYm90aCBIYXJ2ZXN0UGx1cyBhbmQgdGhlIEludGVybmF0aW9uYWwgSW5zdGl0dXRlIG9mIFRyb3BpY2FsIEFncmljdWx0dXJlIChJSVRBKSwgaW52b2x2aW5nIEFSUyByZXNlYXJjaGVycyBpbiBHcmFuZCBGb3JrcyBhbmQgSXRoYWNhLCBOLlkuIGFzIHdlbGwgYXMgSUlUQSByZXNlYXJjaGVycyBpbiBOaWdlcmlhLiBIZXIgcmVzZWFyY2ggcHJlc2VudGF0aW9uIGlzIGVudGl0bGVkIOKAnElyb24gQmlvYXZhaWxhYmlsaXR5IGZyb20gTWFpemUgYW5kIEJlYW5zOiBBIENvbXBhcmlzb24gb2YgSHVtYW4gYW5kIENhY28tMiBDZWxsIE1lYXN1cmVtZW50cy7igJ08L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIEludml0ZWQgVG8gU3BlYWsgQXQgTmF0aW9uYWwgSW5zdGl0dXRlIG9mIEhlYWx0aDwvU1RST05HPjombmJzcDsgT24gQXByaWwgMTAtMTEsIERycy4gUHVyZHkgYW5kIEJsYWNrYnVybiBoYXZlIGJlZW4gaW52aXRlZCB0byBzcGVhayBhdCBhIE5hdGlvbmFsIEluc3RpdHV0ZSBvZiBIZWFsdGggd29ya3Nob3AgZW50aXRsZWQgIkFjaGlldmluZyBIaWdoIFRocm91Z2hwdXQgUmVwb3NpdG9yaWVzIGZvciBCaW9tZWRpY2FsIEdlcm1wbGFzbSBQcmVzZXJ2YXRpb24iLiBBdCB0aGlzIHdvcmtzaG9wIHRoZXkgd2lsbCBkaXNjdXNzIHRoZSBpbmZyYXN0cnVjdHVyZSBhbmQgcHJvdG9jb2xzIHJlcXVpcmVkIGZvciBoaWdoIHRocm91Z2hwdXQgcHJvY2Vzc2luZyBvZiBsaXZlc3RvY2sgZ2VuZXRpYyByZXNvdXJjZXMuPFNUUk9ORz5SZXRpcmVkIEFSUyBTY2llbnRpc3QgSG9ub3JlZCBmb3IgUG9sbGluYXRvciBDb25zZXJ2YXRpb24gUmVzZWFyY2g8L1NUUk9ORz46Jm5ic3A7IERyLiBWaW5jZSBUZXBlZGlubyB3aWxsIHJlY2VpdmUgdGhlIFBvbGxpbmF0b3IgQWR2b2NhdGUgQXdhcmQgZnJvbSB0aGUgTm9ydGggQW1lcmljYW4gUG9sbGluYXRvciBQcm90ZWN0aW9uIENhbXBhaWduLiZuYnNwOyBIZSByZWNlaXZlcyB0aGlzIGhvbm9yIGluIHJlY29nbml0aW9uIG9mIHRoZSBzaWduaWZpY2FudCBjb250cmlidXRpb25zIGhlIG1hZGUgdG93YXJkIHRoZSBjb25zZXJ2YXRpb24gb2YmbmJzcDsgYmVlIHNwZWNpZXMsIGFuZCBmb3IgaW5jcmVhc2luZyBwdWJsaWMgYXdhcmVuZXNzIG9mIHRoZSBpbXBvcnRhbmNlIG9mIG5hdGl2ZSBiZWVzIHRocm91Z2ggc2NpZW50aWZpYyByZXNlYXJjaCBvbiBwb2xsaW5hdGlvbiBvZiByYXJlIGFuZCBlbmRhbmdlcmVkIHBsYW50cy4gVGhpcyByZXNlYXJjaCB3YXMgY29uZHVjdGVkIHdoaWxlIGhlIHdhcyBhIHNjaWVudGlzdCBhdCB0aGUgQVJTIFBvbGxpbmF0aW5nIEluc2VjdCBCaW9sb2d5LCBNYW5hZ2VtZW50LCBhbmQgU3lzdGVtYXRpY3MgUmVzZWFyY2ggVW5pdCBpbiBMb2dhbiwgVVQsIGZvciAyNiB5ZWFycy4gVGhlIGF3YXJkcyBhcmUgZ2l2ZW4gdG8gd29ydGh5IHJlY2lwaWVudHMgaW4gdGhlIFUuUy4sIE1leGljbyBhbmQgQ2FuYWRhLiZuYnNwOyBUaGlzIHllYXLigJlzIHJlY2lwaWVudHMgd2lsbCBiZSByZWNvZ25pemVkIGF0IHRoZSBOQVBQQyBldmVuaW5nIHJlY2VwdGlvbiBhdCB0aGUgVW5pdGVkIFN0YXRlcyBCb3RhbmljIEdhcmRlbiBpbiBXYXNoaW5ndG9uLCBEQywgb24gV2VkbmVzZGF5LCBPY3RvYmVyIDE4LCAyMDA2IGZyb20gNiB0byA4IFBNLiA8L1A+IAo8UD48U1RST05HPkFSUyBSZXNlYXJjaCBDZW50ZXIgTmFtZWQgT25lIG9mIEJlc3QgUGxhY2VzIHRvIFdvcmsgaW4gMjAwNjo8L1NUUk9ORz4mbmJzcDsgVGhlIFUuUy4gTWVhdCBBbmltYWwgUmVzZWFyY2ggQ2VudGVyIGluIENsYXkgQ2VudGVyLCBORSB3YXMgcmVjZW50bHkgbmFtZWQgKE9jdC4gMjAwNikgb25lIG9mIHRoZSB0b3AgNDAgQmVzdCBQbGFjZXMgdG8gd29yayBpbiBhY2FkZW1pYSBieSAiVGhlIFNjaWVudGlzdCIgbWFnYXppbmUuJm5ic3A7QSBzdXJ2ZXkgY29uZHVjdGVkIGJ5IHRoZSBtYWdhemluZSBmb3VuZCB0aGF0IHRoZSBpbnN0aXR1dGlvbnMgbmFtZWQgdG8gdGhlIGxpc3QgcHJvdmlkZWQgYmFsYW5jZSB3aGljaCBpbmNsdWRlZCB0aGUgcmlnaHQgbWl4IG9mIHJlc2VhcmNoLCB0ZWFjaGluZywgYW5kIGFkbWluaXN0cmF0aXZlIHJlc3BvbnNpYmlsaXRpZXM7IG9wcG9ydHVuaXRpZXMgZm9yIGludGVyYWN0aW9uIGFuZCBjb2xsYWJvcmF0aW9uIHdpdGggY29sbGVhZ3VlczsgYXZlbnVlcyBmb3IgY2FyZWVyIGRldmVsb3BtZW50IGFuZCBhZHZhbmNlbWVudDsgYW5kIGZyZWVkb20gdG8gZm9sbG93IHJlc2VhcmNoIGludGVyZXN0cy48L1A+IAo8UD48U1RST05HPkFSUyBFbnRvbW9sb2dpc3QgSW52aXRlZCBUbyBTcGVhayBBdCBUYW1hcmlzayBSZXNlYXJjaCBDb25mZXJlbmNlOjwvU1RST05HPiBOUEFSTCBFbnRvbW9sb2dpc3QgRGF2ZSBLYXptZXIgaGFzIGJlZW4gaW52aXRlZCB0byBzcGVhayBhdCB0aGUgMjAwNiBUYW1hcmlzayBSZXNlYXJjaCBDb25mZXJlbmNlOiBDdXJyZW50IFN0YXR1cyBhbmQgRnV0dXJlIERpcmVjdGlvbnMgdG8gYmUgaGVsZCBPY3QuMy00IGluIEZvcnQgQ29sbGlucywgQ08uIERyLiBLYXptZXIgd2lsbCBnaXZlIGEgcHJlc2VudGF0aW9uIG9uIOKAnEJpb2xvZ2ljYWwgY29udHJvbCBvZiB0YW1hcmlzazogRXN0YWJsaXNobWVudCwgcG9wdWxhdGlvbiBpbmNyZWFzZSwgYW5kIGltcGFjdHMgb2YgRGlvcmhhYmRhIHNwcC4gYXQgZXhwZXJpbWVudGFsIHJlbGVhc2Ugc2l0ZXMgaW4gdGhlIHdlc3Rlcm4gVS5TLuKAnSBJbiBhZGRpdGlvbiB0byBEci4gS2F6bWVy4oCZcyBwcmVzZW50YXRpb24sIE5QQVJMIEJvdGFuaXN0IEpvaG4gR2Fza2luIHdpbGwgaGF2ZSB0d28gcG9zdGVycyBvbiBkaXNwbGF5IGF0IHRoZSBldmVudCwgdGhlIGZpcnN0IGNvLWF1dGhvcmVkIHdpdGggRHIuIEthem1lciwgaXMgZW50aXRsZWQg4oCcQ29tcGFyaXNvbiBvZiBvcm5hbWVudGFsIGFuZCB3aWxkIHNhbHRjZWRhciAoVGFtYXJpeCBzcHAuKSBhbG9uZyBlYXN0ZXJuIE1vbnRhbmEgcml2ZXJ3YXlzIHVzaW5nIGNobG9yb3BsYXN0IGFuZCBudWNsZWFyIEROQSBzZXF1ZW5jZSBtYXJrZXJz4oCdIGFuZCB0aGUgc2Vjb25kLCBjb2F1dGhvcmVkIHdpdGggUGF0cmljayBCLiBTaGFmcm90aCBvZiB0aGUgVS5TLiBHZW9sb2dpY2FsIFN1cnZleSwgRm9ydCBDb2xsaW5zIFNjaWVuY2UgQ2VudGVyLCBpcyBlbnRpdGxlZCDigJxIeWJyaWRpemF0aW9uIG9mIFRhbWFyaXggcmFtb3Npc3NpbWEgYW5kIFQuIGNoaW5lbnNpcyAoc2FsdGNlZGFycykgd2l0aCBULiBhcGh5bGxhIChhdGhlbCkgKGZhbWlseSBUYW1hcmljYWNlYWUpIGluIHRoZSBzb3V0aHdlc3Rlcm4mbmJzcDsgVVNBIGRldGVybWluZWQgZnJvbSBETkEgc2VxdWVuY2UgZGF0YS7igJ0gRHJzLiBLYXptZXIgYW5kIEdhc2tpbiBhcmUgbWVtYmVycyBvZiBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQuIFRoZSBwdXJwb3NlIG9mIHRoZSBjb25mZXJlbmNlIGlzIHRvIGJyaW5nIHRhbWFyaXNrIHJlc2VhcmNoZXJzIHRvZ2V0aGVyIHRvIHNoYXJlIHRoZWlyIHJlc3VsdHMgd2l0aCBvdGhlciBzY2llbnRpc3RzIGFuZCB3ZXN0ZXJuIGxhbmQgbWFuYWdlcnMgYW5kIHRvIHByb21vdGUgZGlhbG9ndWUgYmV0d2VlbiByZXNlYXJjaGVycyBhbmQgbWFuYWdlcnMgdG8gaWRlbnRpZnkgZnV0dXJlIHJlc2VhcmNoIG5lZWRzIGZvciB0aGUgZGV2ZWxvcG1lbnQgb2YgZWZmZWN0aXZlIHBvbGljeSBhbmQgbWFuYWdlbWVudCBkZWNpc2lvbnMuIEN1cnJlbnRseSwgdGhlIG5vbi1uYXRpdmUgdGFtYXJpc2sgKFRhbWFyaXggc3BwLiksIGFsc28ga25vd24gYXMgc2FsdGNlZGFyLCBvY2N1cGllcyBodW5kcmVkcyBvZiB0aG91c2FuZHMgb2YgYWNyZXMgaW4gYXJpZCBhbmQgc2VtaS1hcmlkIHdlc3Rlcm4gTm9ydGggQW1lcmljYS4gVGhlIGNvbmZlcmVuY2UgaXMgc3BvbnNvcmVkIGJ5IG1vcmUgdGhhbiBhIGRvemVuIHB1YmxpYyBhbmQgcHJpdmF0ZSBhZ2VuY2llcyBhbmQgb3JnYW5pemF0aW9ucywgaW5jbHVkaW5nIEFSUy48L1A+IAo8UD48U1RST05HPkFSUyBSZXByZXNlbnRhdGl2ZXMgVG8gQWRkcmVzcyBXb21lbiBJbiBBZyBDb25mZXJlbmNlPC9TVFJPTkc+OiBPbiBTZXB0ZW1iZXIgMjYtMjcsIERyLiBSb2JlcnQgRXZhbnMsIFJlc2VhcmNoIExlYWRlciBvZiBOUEFSTOKAmXMgQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdCBoYXMgYmVlbiBpbnZpdGVkIHRvIHNwZWFrIG9uIHRoZSBsYXRlc3QgcmVzZWFyY2ggYWN0aXZpdGllcyBhdCBOUEFSTCBhdCB0aGUgNnRoIGFubnVhbCBXb21lbiBTdGVwcGluZyBGb3J3YXJkIGZvciBBZ3JpY3VsdHVyZSBTeW1wb3NpdW0gdG8gYmUgaGVsZCBpbiBTaWRuZXksIE1vbnRhbmEuIEFsc28gaW52aXRlZCB0byBzcGVhayBhdCB0aGUgZXZlbnQgaXMgYW5vdGhlciBBUlMgcmVwcmVzZW50YXRpdmUsIERyLiBSb2QgSGVpdHNjaG1pZHQsIFJlc2VhcmNoIExlYWRlciBmcm9tIHRoZSBGb3J0IEtlb2doIEFSUyBMaXZlc3RvY2sgYW5kIFJhbmdlbGFuZCBSZXNlYXJjaCBMYWJvcmF0b3J5IGF0IE1pbGVzIENpdHksIE1ULCBhbG9uZyB3aXRoIHJlcHJlc2VudGF0aXZlcyBmcm9tIHNldmVyYWwgb3RoZXIgc3RhdGUgYW5kIGZlZGVyYWwgQWcgYWdlbmNpZXMgYW5kIG9yZ2FuaXphdGlvbnMgYW5kIHByaXZhdGUgaW5kdXN0cnkuIFRoZSBzeW1wb3NpdW0gaXMgc3BvbnNvcmVkIGJ5IHRoZSBVU0RBIFN0YXRlIEZvb2QgYW5kIEFncmljdWx0dXJlIENvdW5jaWwsIE1vbnRhbmEgQWdyaS1Xb21lbiwgTW9udGFuYSBDYXR0bGV3b21lbiwgTW9udGFuYSBGYXJtIEJ1cmVhdSBXb21lbiBhbmQgV29tZW4gaW52b2x2ZWQgaW4gRmFybSBFY29ub21pY3MgKFdJRkUpIGFuZCB3ZXJlIG9yaWdpbmFsbHkgaW5zdGl0dXRlZCB0byBwcm92aWRlIGEgcGxhdGZvcm0gZm9yIHdvbWVuIGludm9sdmVkIGluIHRoZSBwcm9tb3Rpb24gb2YgTW9udGFuYeKAmXMgYWdyaWN1bHR1cmUuPC9QPiAKPFA+PFNUUk9ORz5BZ3JpY3VsdHVyYWwgUmVzZWFyY2ggU2VydmljZSAoQVJTKSBTY2llbnRpc3QgQ2hhaXJzIFZldGVyaW5hcnkgUGF0aG9sb2d5IEV4YW06PC9TVFJPTkc+IE9uIFNlcHRlbWJlciAyMC0yMiwgQnJ5YW4gU3RlZ2VsbWVpZXIsIFZldGVyaW5hcnkgTWVkaWNhbCBPZmZpY2VyLCBBUlMgUG9pc29ub3VzIFBsYW50IFJlc2VhcmNoIExhYm9yYXRvcnksIExvZ2FuLCBVVCwgd2lsbCBiZSB0aGUgZ2VuZXJhbCBjaGFpciBvdmVyIHRoZSAyMDA2IEFtZXJpY2FuIENvbGxlZ2Ugb2YgVmV0ZXJpbmFyeSBQYXRob2xvZ3kgKEFDVlApIGNlcnRpZmljYXRpb24gZXhhbXMgaW4gQW1lcywgSUEuJm5ic3A7IFRoZSB0d28gQUNWUCBjZXJ0aWZpY2F0aW9uIGV4YW1zLCBWZXRlcmluYXJ5IEFuYXRvbWljIFBhdGhvbG9neSBhbmQgVmV0ZXJpbmFyeSBDbGluaWNhbCBQYXRob2xvZ3ksIGVhY2ggaGF2ZSBmb3VyIHBhcnRzIGFuZCBhcmUgZ2l2ZW4gYW5udWFsbHkuIEluIGFkZGl0aW9uIHRvIGJlaW5nIGdlbmVyYWwgY2hhaXIsIFN0ZWdlbG1laWVyIGlzIGFsc28gY2hhaXIgb2YgdGhlIFZldGVyaW5hcnkgQW5hdG9taWMgUGF0aG9sb2d5IGV4YW0uPC9QPiAKPFA+PFNUUk9ORz5VRFNBLUFSUyBMYWJvcmF0b3J5IEhvc3RzIFNhZmUgQ2F0dGxlIEhhbmRsaW5nIFNlbWluYXIgZm9yIFJhbmNoZXJzOjwvU1RST05HPiBPbiBTZXB0ZW1iZXIgMjB0aCwgRHJzLiBTY290dCBLcm9uYmVyZyBhbmQgRXJpYyBTY2hvbGxqZWdlcmRlcywgYW5pbWFsIHNjaWVudGlzdHMgYXQgdGhlIE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5IChOR1BSTCkgYXQgTWFuZGFuLCBOb3J0aCBEYWtvdGEgaG9zdGVkIDU1IG1ham9yIHJhbmNoZXJzIGFuZCBsYW5kLWdyYW50IGNvbGxlZ2UgZWR1Y2F0b3JzIGZyb20gdGhyb3VnaG91dCB0aGUgcmVnaW9uIGZvciBhIGRheS1sb25nIHNlc3Npb24gb24gd29ya2luZyBjYXR0bGUgd2l0aCBjYWxtaW5nIG1ldGhvZHMsIGtlZXBpbmcgdGhlbSBzYWZlIGFuZCBwcm9kdWN0aXZlLiBEci4gVG9tIE5vZmZzaW5nZXIgb2YgVHdpbiBGb3JrcyBWZXRlcmluYXJ5IENsaW5pYyBhdCBCaW5rZWxtYW4gTmVicmFza2Egd2FzIHRoZSBzZW1pbmFyIGxlYWRlci4gVGhlIG1vcm5pbmcgY2xhc3Nyb29tIHBvcnRpb24gZm9jdXNlZCBoZWF2aWx5IG9uIHZpZGVvcyBzaG93aW5nIHByb3BlciBhbmQgaW1wcm9wZXIgY2F0dGxlIGhhbmRsaW5nLCB3aXRoIGVtcGhhc2lzIG9mIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSByZXN1bHRzIG9mIGVhY2guIFRoZSBhZnRlcm5vb24gcG9ydGlvbiB1dGlsaXplZCBOR1BSTCBjYXR0bGUgaGFuZGxpbmcgZmFjaWxpdGllcyBmb3Ig4oCYaGFuZHMtb27igJkgZXhwZXJpZW5jZS4gVGhlIGVkdWNhdGlvbmFsIGV4cGVuc2Ugd2FzIHN1cHBvcnRlZCBieSBhIFN1c3RhaW5hYmxlIEFncmljdWx0dXJlIFJlc2VhcmNoIGFuZCBFZHVjYXRpb24gKFNBUkUpIEdyYW50IHRocm91Z2ggdGhlIE5vcnRoIERha290YSBSdXJhbCBFbGVjdHJpYyBDb29wZXJhdGl2ZXMuIEx1bmNoIHdhcyBmdW5kZWQgYnkgdGhlIEFyZWEgNCBTQ0QgQ29vcGVyYXRpdmUgUmVzZWFyY2ggRmFybSB3aGljaCBzdXBwb3J0cyBOR1BSTCByZXNlYXJjaCwgYW5kIG9yZ2FuaXplZCBhbmQgcHJlcGFyZWQgYnkgdGhlIE5HUFJMIFRlY2huaWNhbCBJbmZvcm1hdGlvbiBTcGVjaWFsaXN0LiBKb2huIExlZSBOam9zLCBhIHJhbmNoZXIgYW5kIGFjdGl2ZSBtZW1iZXIgb2YgdGhlIE5HUFJMIEN1c3RvbWVyIEZvY3VzIEdyb3VwLCBzcGVhcmhlYWRlZCB0aGUgb3JnYW5pemluZyBvZiB0aGlzIGZyZWUgZXZlbnQuPC9QPiAKPFA+PFNUUk9ORz5VU0RBLUFSUyBGYWNpbGl0eSBIYXMgU2ltdWxhdGVkIEhvc3RhZ2UgU2l0dWF0aW9uOiA8L1NUUk9ORz5PbiBTZXB0ZW1iZXIgMTN0aCwmbmJzcDsgdGhlIE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5IGF0IE1hbmRhbiwgTm9ydGggRGFrb3RhIHdhcyB0aGUgc2NlbmUgb2YgYSB0cmFpbmluZyBleGVyY2lzZSBieSB0aGUgQmlzbWFyY2stTWFuZGFuIFJhcGlkIERlcGxveW1lbnQgSW5jaWRlbnQgVGVhbSAoZm9ybWVybHkgU1dBVCkuIFRoZSBzaW11bGF0ZWQgaG9zdGFnZSBzaXR1YXRpb24gd2FzIGVuYWN0ZWQgaW4gb25lIG9mIHRoZSBzb2lscyByZXNlYXJjaCBidWlsZGluZ3Mgb24gdGhlIDE1IGFjcmUgY2FtcHVzLiBGaXZlIHNpbXVsYXRlZCBwZXJwZXRyYXRvcnMgd2l0aCB0aHJlZSB3ZWFwb25zIGhlbGQgc2ltdWxhdGVkIGhvc3RhZ2VzIGFzIHBvbGljZSBkZXBsb3llZCBhbmQgZXZlbnR1YWxseSB3ZXJlIHRhbGtlZCBkb3duIGJ5IGxvY2FsIHBvbGljZSBuZWdvdGlhdG9ycyBpbiByb3V0aW5lIHRyYWluaW5nLiBUaGUgcGxhbm5lZCB0d2VsdmUgaG91ciBleGVyY2lzZSB3YXMgY3V0IHNob3J0IGJ5IGEgcmVhbC1saWZlIGhvc3RhZ2Ugc2l0dWF0aW9uIDEwMCBtaWxlcyBhd2F5LiBUaGUgbmVnb3RpYXRvcnMtaW4tdHJhaW5pbmcgYXQgVVNEQS1BUlMgcGFydGljaXBhdGVkIGluIHRoZSBzdWNjZXNzZnVsIHJlYWwtbGlmZSBuZWdvdGlhdGluZyBvZiBhIG1hbGUgd2l0aCBmaXJlYXJtIGhvbGRpbmcgYSBmZW1hbGUgaW4gaGVyIGhvbWUgYSBmZXcgaG91cnMgYWZ0ZXIgY29tcGxldGluZyB0aGUgZXhlcmNpc2UuIE1hbmRhbiBVU0RBLUFSUyBDb2xsYXRlcmFsIER1dHkgU2FmZXR5IE9mZmljZXIgTGFycnkgUmVubmVyIHJlY2VpdmVkIGFwcHJvcHJpYXRlIGFwcHJvdmFscyBmcm9tIFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBcmVhIGZvciB0aGUgZXhlcmNpc2UgYW5kIG1vbml0b3JlZCB0aGUgdHJhaW5pbmcsIGVuc3VyaW5nIG5vIGFtbXVuaXRpb24gd2FzIHByZXNlbnQuIE5vIEFSUyBlbXBsb3llZXMgd2VyZSBpbnZvbHZlZCBvciByZXNlYXJjaCBpbXBhY3RlZC4gPC9QPiAKPFA+PFNUUk9ORz5VU0RBLUFSUyBUZWNobmljYWwgSW5mb3JtYXRpb24gU3BlY2lhbGlzdCBHdWVzdCBMZWN0dXJlcnM6PC9TVFJPTkc+Jm5ic3A7IE9uIFNlcHRlbWJlciAyMm5kLCBUZWNobmljYWwgSW5mb3JtYXRpb24gU3BlY2lhbGlzdCBhdCB0aGUgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnkgYXQgTWFuZGFuLCBOb3J0aCBEYWtvdGEsIENhbCBUaG9yc29uIHdhcyBhc2tlZCB0byBsZWN0dXJlIG9uIHRoZSB2YWx1ZSBvZiBjdXN0b21lciBzZXJ2aWNlIHRvIHRoZSBBZ3JpY3VsdHVyYWwgU2FsZXMgQ2xhc3MgYXQgQmlzbWFyY2sgU3RhdGUgQ29sbGVnZS4gVGhvcnNvbiwgYSAyMCB5ZWFyIHByb2Zlc3Npb25hbCBpbiBtYXJrZXRpbmcgYW5kIHNhbGVzIGFuZCBmb3JtZXIgcHJlc2lkZW50IHRvIHRoZSBzdGF0ZeKAmXMgYWdyaWJ1c2luZXNzIHRyYWRlIGFzc29jaWF0aW9uIHByaW9yIHRvIGpvaW5pbmcgVVNEQS1BUlMsIHNoYXJlZCBpbnNpZ2h0cyBvbiB0aGUgYWRkZWQtdmFsdWUgdGhhdCBmcm9udC1saW5lIHBlb3BsZSBjYW4gYnJpbmcgdG8gYSBwcm9kdWN0IG9yIGNvbXBhbnkgd2hlbiBpbnRlcmZhY2luZyB3aXRoIGZhcm1lcnMgYW5kIHJhbmNoZXJzLiBUaG9yc29uIHdhcyBzZWxlY3RlZCB0byBiZSB0aGUgZmlyc3QgVGVjaG5pY2FsIEluZm9ybWF0aW9uIFNwZWNpYWxpc3Qgd2l0aGluIHRoZSBVU0RBLUFSUy4gSGUgYWxzbyBkaXNjdXNzZWQgdGhlIEdvdmVybm1lbnQgUGVyZm9ybWFuY2UgYW5kIFJlc3VsdHMgQWN0IG9mIDE5OTMgYW5kIHRoZSBzaWduaWZpY2FudCBlZmZvcnRzIG9mIFVTREEtQVJTIGFuZCB0aGUgZmVkZXJhbCBnb3Zlcm5tZW50IHRvIGVuaGFuY2UgY3VzdG9tZXIgZm9jdXMgYW5kIHByb3ZpZGUgdmFsdWUgdG8gdGF4cGF5ZXJzIGZyb20gdGhlaXIgaW52ZXN0bWVudC48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3QgSW52aXRlZCBUbyBSZXBvcnQgT24gUmFuZ2UgUmVzcG9uc2UgVG8gRmlyZTo8L1NUUk9ORz4gQVJTIHNjaWVudGlzdCwgTGFuY2UgVmVybWVpcmUsIG9mIHRoZSBMaXZlc3RvY2sgYW5kIFJhbmdlIFJlc2VhcmNoIExhYm9yYXRvcnksIE1pbGVzIENpdHksIE1vbnRhbmEsIGhhcyBiZWVuIGludml0ZWQgdG8gYW4gaW5mb3JtYXRpb25hbCBtZWV0aW5nIGZvciBwcm9kdWNlcnMgYW5kIGxhbmQgb3duZXJzIGFmZmVjdGVkIGJ5IGZpcmUgZW50aXRsZWQgIkFmdGVyIHRoZSBEZXJieSBGaXJlIiB3aGljaCBidXJuZWQgbW9yZSB0aGFuIDIwNywwMDAgYWNyZXMgaW4gTW9udGFuYSBlYXJsaWVyIHRoaXMgbW9udGguIERyLiBWZXJtZWlyZSdzIHRhbGsgaXMgIlJhbmdlIFJlc3BvbnNlIHRvIEZpcmUiIGluIHdoaWNoIGhlIHdpbGwgZGlzY3VzcyB0aGUgZGlmZmVyZW50IG9wdGlvbnMgZm9yIGxhbmQgcmVjb3ZlcnkgYWZ0ZXIgYSBtYWpvciBmaXJlIGV2ZW50LiBUaGUgbWVldGluZyBpcyBiZWluZyBzcG9uc29yZWQgYnkgdGhlIE1vbnRhbmEgU3RhdGUgVW5pdmVyc2l0eSBFeHRlbnNpb24gU2VydmljZS48L1A+IAo8UCBhbGlnbj1yaWdodD48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3QgSW52aXRlZCBUbyAyMDA2IEJpb2xvZ2ljYWwgV29ya3Nob3A6PC9TVFJPTkc+IEFSUyBzY2llbnRpc3QsIExhbmNlIFZlcm1laXJlLCBvZiB0aGUgTGl2ZXN0b2NrIGFuZCBSYW5nZSBSZXNlYXJjaCBMYWJvcmF0b3J5LCBNaWxlcyBDaXR5LCBNb250YW5hLCBoYXMgYmVlbiBpbnZpdGVkIHRvIHRoZSAyMDA2IEJpb2xvZ2ljYWwgV29ya3Nob3AgaW4gTWFsdGEsIE1vbnRhbmEsIHRvIGdpdmUgYSB0YWxrIHRpdGxlZCAiVXNpbmcgZmlyZSBhcyBhIG1hbmFnZW1lbnQgdG9vbC4iIFRoZSB3b3Jrc2hvcCBpcyB0cmFpbmluZyBmb3IgVVNEQS1GaXNoIGFuZCBXaWxkbGlmZSBTZXJ2aWNlIFJlZnVnZSBNYW5hZ2VycyBhbmQgQmlvbG9naXN0cyBleHBsYWluaW5nIHRoZSBlY29sb2dpY2FsIHJlc3BvbnNlcyB0byBmaXJlLjwvUD4gCjxQPiAKPFA+PC9QPiAKPFA+PFNUUk9ORz5BUlMgU2NpZW50aXN0IGZyb20gRmFyZ28gUGFydGljaXBhdGVzIGluIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiBGcnVpdCBGbGllcyBpbiBCcmF6aWw6PC9TVFJPTkc+Jm5ic3A7IE9uIFNlcHRlbWJlciA5LTE1LCAyMDA2LCBEci4gUm9nZXIgTGVvcG9sZCwgUmVzZWFyY2ggRW50b21vbG9naXN0LCBJbnNlY3QgR2VuZXRpY3MgYW5kIEJpb2NoZW1pc3RyeSBSZXNlYXJjaCBVbml0LCBSZWQgUml2ZXIgVmFsbGV5IEFncmljdWx0dXJhbCBSZXNlYXJjaCBDZW50ZXIsIEZhcmdvLCBORCwgYXR0ZW5kZWQgdGhlIDd0aCBJbnRlcm5hdGlvbmFsIFN5bXBvc2l1bSBvbiBGcnVpdCBGbGllcyBvZiBFY29ub21pYyBJbXBvcnRhbmNlIGFuZCB0aGUgNnRoIE1lZXRpbmcgb2YgdGhlIFdvcmtpbmcgR3JvdXAgb24gRnJ1aXQgRmxpZXMgb2YgdGhlIFdlc3Rlcm4gSGVtaXNwaGVyZSBpbiBTYWx2YWRvciwgQmFoaWEsIEJyYXppbC4mbmJzcDsgRHIuIFJvZ2VyIExlb3BvbGTigJlzIHByZXNlbnRhdGlvbiDigJxDcnlvcHJlc2VydmF0aW9uIG9mIE1leGljYW4gRnJ1aXQgRmx5IEVtYnJ5b3MgYnkgVml0cmlmaWNhdGlvbuKAnSB3YXMgd2VsbCByZWNlaXZlZCBieSBzY2llbnRpc3RzIGZyb20gYXJvdW5kIHRoZSB3b3JsZCBhbmQgcGFydGljdWxhcmx5LCB0aG9zZSBmcm9tIEJyYXppbCBhbmQgR2VybWFueSB3aG8gYXJlIG1haW50YWluaW5nIGxhcmdlIG51bWJlcnMgb2YgZnJ1aXQgZmx5IHN0cmFpbnMuJm5ic3A7IEltcG9ydGFudCBpbmZvcm1hdGlvbiB3YXMgZ2FpbmVkIGZvciB0aGUgdXRpbGl0eSBvZiB0aGlzIG1ldGhvZCBhbmQgaXQgcmVzdWx0ZWQgaW4gYW4gaW52aXRhdGlvbiBieSBhIEJyYXppbGlhbiBzY2llbnRpc3QgZm9yIERyLiBMZW9wb2xkIHRvIHRyYXZlbCB0byBTYW8gUGF1bG8gYW5kIHRlYWNoIGhpbSBhbmQgaGlzIHN0YWZmIGNyeW9wcmVzZXJ2YXRpb24gdGVjaG5pcXVlcyBmb3IgdGhlaXIgdGVwaHJpdGlkIHN0cmFpbnMuJm5ic3A7IERpc2N1c3Npb25zIHdpdGggc2NpZW50aXN0cyBmcm9tIE1leGljbyBvbiB0aGUgcmVhcmluZyBhbmQgZGV2ZWxvcG1lbnQgb2YgRm9waXVzIGFyaXNhbnVzLCBhIHBhcmFzaXRpYyB3YXNwIG9mIHNldmVyYWwgdGVwaHJpdGlkIHNwZWNpZXMsIHJlc3VsdGVkIGluIGFycmFuZ2VtZW50cyBmb3Igb2J0YWluaW5nIGEgc3RyYWluIG9mIHRoaXMgaW5zZWN0IHRvIGJlIHJlYXJlZCBvbiB0aGUgTWV4aWNhbiBmcnVpdCBmbHkgZm9yIERyLiBMZW9wb2xk4oCZcyByZXNlYXJjaCBwcm9qZWN0IG9uIHRoZSBjcnlvcHJlc2VydmF0aW9uIG9mIHRoZSBob3N0IGFuZCBpdHMgcGFyYXNpdG9pZC48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIExlYWRpbmcgTmF0aW9uYWwgQmlvZW5lcmd5IFJlc2VhcmNoIEVmZm9ydHM6PC9TVFJPTkc+IEFSUyBzY2llbnRpc3RzLCBLZW5uZXRoIFZvZ2VsIGFuZCBXYWxsYWNlIFdpbGhlbG0gZ2F2ZSBpbnZpdGVkIHBhcGVycyBvbiBpbXByb3Zpbmcgc3dpdGNoZ3Jhc3MgYXMgYSBiaW9tYXNzIGVuZXJneSBjcm9wIGFuZCBvbiB0aGUgc3VzdGFpbmFiaWxpdHkgb2YgdXNpbmcgY29ybiBzdG92ZXIgZm9yIGJpb2VuZXJneSwgcmVzcGVjdGl2ZWx5LCBhdCB0aGUgVGhpcmQgQW5udWFsIFdvcmxkIENvbmdyZXNzIG9uIEluZHVzdHJpYWwgQmlvdGVjaG5vbG9neSBhbmQgQmlvcHJvY2Vzc2luZyB3aGljaCB3YXMgaGVsZCBpbiBUb3JvbnRvLCBpbiBtaWQtSnVseS4gQWRkaXRpb25hbGx5LCBWb2dlbCBhbmQgV2lsaGVsbSB3ZXJlIHR3byBvZiBzZXZlbiBVU0RBIHNjaWVudGlzdHMgd2hvIHdlcmUgYW1vbmcgMTUwIGludml0ZWQgcGFydGljaXBhbnRzIGluIFUuUy4gRGVwYXJ0bWVudCBvZiBFbmVyZ3ksIE9mZmljZSBvZiB0aGUgQmlvbWFzcyBQcm9ncmFtIChPQlApIDMweDMwIFdvcmtzaG9wIHRoYXQgd2FzIGhlbGQgaW4gV2FzaGluZ3RvbiwgRC5DLiBpbiBlYXJseSBBdWd1c3QuIFB1cnBvc2Ugb2YgdGhlIHdvcmtzaG9wIHdhcyB0byBkZXZlbG9wIHNob3J0IGFuZCBsb25nIHJhbmdlIHBsYW5zIHRvIHJlYWNoIG5hdGlvbmFsIGJpb2VuZXJneSBnb2Fscy4mbmJzcDsgSW4gbWlkLUF1Z3VzdCwgRHIuIFZvZ2VsLCBieSBpbnZpdGF0aW9uLCBsZWQgYW5kIGZhY2lsaXRhdGVkIHRoZSBMaWdub2NlbGx1bG9zaWMgQ3JvcCBEZXZlbG9wbWVudCBXb3JrZ3JvdXAgYXQgdGhlIE5vcnRoIENlbnRyYWwgRmVlZHN0b2NrIFdvcmtzaG9wLCBTaW91eCBGYWxscywgU0QuJm5ic3A7IFdvcmtzaG9wIHdhcyBzcG9uc29yZWQgYnkgdGhlIFUuUy4gRGVwYXJ0bWVudCBvZiBFbmVyZ3ksIFN1bkdyYW50IEluaXRpYXRpdmUg4oCTIE5vcnRoIENlbnRyYWwgQ2VudGVyLCBXZXN0ZXJuIEdvdmVybm9ycyBDb25mZXJlbmNlLCBhbmQgdGhlIENvdW5jaWwgb2YgR3JlYXQgTGFrZXMgR292ZXJub3JzLiBXYWxsYWNlIFdpbGhlbG0gZmFjaWxpdGF0ZWQgdGhlIHdvcmtncm91cCBvbiBjcm9wIHJlc2lkdWVzLiBPdGhlciBBUlMgc2NpZW50aXN0IHN0YXRpb25lZCBhdCBMaW5jb2xuLCBORSwgTWFkaXNvbiwgV0ksIFN0LiBQYXVsIGFuZCBNb3JyaXMsIE1OLCBhbmQgTWFuZGFuLCBORCBhbHNvIHBhcnRpY2lwYXRlZC4gPC9QPiAKPFA+PFNUUk9ORz5BUlMgU3dpdGNoZ3Jhc3MgQmlvbWFzcyBFbmVyZ3kgUmVzZWFyY2ggUmVjZWl2aW5nIE5hdGlvbmFsIGFuZCBJbnRlcm5hdGlvbmFsIEF0dGVudGlvbjo8L1NUUk9ORz4mbmJzcDsgVGhlIHN3aXRjaGdyYXNzIGJpb2VuZXJneSByZXNlYXJjaCBwcm9qZWN0IGluIHRoZSBBUlMgR3JhaW4sIEZvcmFnZSwgYW5kIEJpb2VuZXJneSBSZXNlYXJjaCBVbml0LCBMaW5jb2xuLCBORSBoYXMgcHJvdmlkZWQgZmllbGQgdG91cnMgYW5kIGJyaWVmaW5ncyBvbiBzd2l0Y2hncmFzcyBiaW9lbmVyZ3kgcmVzZWFyY2ggdG8gc2V2ZXJhbCBncm91cHMgaW4gQXVndXN0IGluIGFkZGl0aW9uIHRvIHJlc3BvbmRpbmcgdG8gYWxtb3N0IGRhaWx5IHJlcXVlc3RzIGZvciBpbmZvcm1hdGlvbi4mbmJzcDsgT24gQXVndXN0IDksIHRoZSBwcm9qZWN0IGJyaWVmZWQgdGhlIFByZXNpZGVudCBhbmQgVmljZS1QcmVzaWRlbnQgb2YgTWVuZGVsIEJpb3RlY2hvbG9neSwgSGF5d2FyZCwgQ0EuJm5ic3A7IE9uIEF1Z3VzdCAxMCwgdGhlIHByb2plY3QgcHJvdmlkZWQgYSBicmllZmluZyB0byBhIHJlcHJlc2VudGF0aXZlIG9mIGEgTmV2YWRhIEluZGlhbiB0cmliZSBvbiB0aGUgZmVhc2liaWxpdHkgb2YgcHJvZHVjaW5nIGJpb2VuZXJneSBmcm9tIHN3aXRjaGdyYXNzIG9uIHRoZSBQeXJhbWlkIExha2UgUmVzZXJ2YXRpb24gaW4gTmV2YWRhLiZuYnNwOyBMaW5jb2xuIEFSUyBzY2llbnRpc3RzIHByb3ZpZGVkIGEgYnJpZWZpbmcgYW5kIGEgZmllbGQgdG91ciB0byBDaGluZXNlIHJlc2VhcmNoIGFkbWluaXN0cmF0b3JzIGFuZCBzY2llbnRpc3RzIG9uIHRoZSBzd2l0Y2hncmFzcyBiaW9lbmVyZ3kgcHJvamVjdCBvbiBBdWd1c3QgMTEuJm5ic3A7IFRoZSBDaGluZXNlIHNjaWVudGlzdHMgYW5kIGFkbWluaXN0cmF0b3JzIHdlcmUgdW5kZXIgdGhlIHNwb25zb3JzaGlwIG9mIFVTREHigJlzIENvY2hyYW4gRmVsbG93c2hpcCBQcm9ncmFtLiZuYnNwOyBUaGUgdmlzaXQgdG8gdGhlIEFSUyBzd2l0Y2hncmFzcyByZXNlYXJjaCBhdCBMaW5jb2xuIHdhcyBvbmUgb2YgdGhlaXIgcHJpbmNpcGFsIHJlcXVlc3RzLiZuYnNwOyBBZGRpdGlvbmFsIHBsYW5uZWQgYnJpZWZpbmdzIGluIGxhdGUgQXVndXN0IGFuZCBTZXB0ZW1iZXIgaW5jbHVkZSBhIHNpdGUgdmlzaXQgYnkgdGhlIFByZXNpZGVudCBvZiBFZGVuc3BhY2UsIGEgYmlvdGVjaG5vbG9neSBjb21wYW55LCBhIHNpdGUgdmlzaXQgYnkgYSBWaWNlLVByZXNpZGVudCBvZiBJb2dlbiwgYSBDYW5hZGlhbiBiaW9yZWZpbmVyeSBjb21wYW55LCBhbmQgYSBzY2llbnRpc3QgZnJvbSB0aGUgVW5pdGVkIEtpbmdkb20gd2hvIGlzIHByb3ZpZGVkIGFncm9ub21pYyBzdXBwb3J0IGZvciBhIHN3aXRjaGdyYXNzIGJpb2VuZXJneSBwcm9qZWN0IGluIHRoZSBVSy48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIFRvIFJlcG9ydCBPbiBTdW5mbG93ZXIgUmVzZWFyY2ggQXQgRXVyb3BlYW4gU3ltcG9zaWE6PC9TVFJPTkc+IE9uIFNlcHRlbWJlciA0LTYsIEppbmd1byBIdSwgUmVzZWFyY2ggTW9sZWN1bGFyIEdlbmV0aWNpc3QsIHdpbGwgcHJlc2VudCBhIHRhbGsgb24gdGhlIGludGVncmF0aW9uIG9mIEROQSBUUkFQIG1hcmtlcnMgaW50byBhIHN1bmZsb3dlciBTU1IgbWFya2VyIGxpbmthZ2UgbWFwIGF0IHRoZSBTZXZlbnRoIEV1cm9wZWFuIENvbmZlcmVuY2Ugb24gU3VuZmxvd2VyIEJpb3RlY2hub2xvZ3kgKFNVTkJJTyAyMDA2KSBpbiBHZW5nZW5iYWNoLCBHZXJtYW55LiZuYnNwOyBUaGUgcmVzZWFyY2ggY29uZmVyZW5jZSwgaGVsZCBldmVyeSB0d28gdG8gdGhyZWUgeWVhcnMsIGJyaW5ncyB0b2dldGhlciBFdXJvcGVhbiBzdW5mbG93ZXIgcmVzZWFyY2hlcnMsIGFsb25nIHdpdGggcmVzZWFyY2hlcnMgZnJvbSBvdGhlciBtYWpvciBzdW5mbG93ZXIgcHJvZHVjaW5nIGNvdW50cmllcy4mbmJzcDsgR2VyYWxkIFNlaWxlciwgUmVzZWFyY2ggQm90YW5pc3QsIGlzIGFuIGludml0ZWQgc3BlYWtlciBhdCB0aGUgRmlyc3QgU3ltcG9zaXVtIG9uIFN1bmZsb3dlciBJbmR1c3RyaWFsIFVzZXMgdG8gYmUgaGVsZCBpbiBVZGluZSwgSXRhbHksIFNlcHRlbWJlciAxMC0xNC4mbmJzcDsgU2VpbGVyIHdpbGwgc3BlYWsgdG8gdGhlIHBhcnRpY2lwYW50cyBvbiB0aGUgcG90ZW50aWFsIG9mIHdpbGQgc3VuZmxvd2VyIHNwZWNpZXMgZm9yIGluZHVzdHJpYWwgdXNlcy4mbmJzcDsgVGhpcyBtZWV0aW5nIGlzIHRoZSBmaXJzdCBvZiBpdHMga2luZCBpbiBFdXJvcGUgdG8gZm9jdXMgb24gdGhlIHVzZSBvZiBzdW5mbG93ZXIgb2lsLCBiaW9tYXNzLCBhbmQgbmF0dXJhbCBwcm9kdWN0cyBmb3IgbHVicmljYW50cywgYmlvZnVlbCwgcnViYmVyLCBhbmQgb3RoZXIgaW5kdXN0cmlhbCB1c2VzLjwvUD4gCjxQPjxTVFJPTkc+TW9udGFuYSBBUlMgTGFiIEhvc3RzIFNlbmF0ZSBBcHByb3ByaWF0aW9ucyBTdWJjb21taXR0ZWUgRmllbGQgSGVhcmluZzo8L1NUUk9ORz4gT24gQXVndXN0IDI2dGgsIE5QQVJMIGhvc3RlZCBhIGZpZWxkIGhlYXJpbmcgb2YgdGhlIFUuUy4gU2VuYXRlIENvbW1pdHRlZSBvbiBBcHByb3ByaWF0aW9ucyBTdWJjb21taXR0ZWUgb24gQWdyaWN1bHR1cmUsIFJ1cmFsIERldmVsb3BtZW50LCBhbmQgUmVsYXRlZCBBZ2VuY2llcyBVLlMuIFNlbmF0b3IgQ29ucmFkIEJ1cm5zIGNvbmR1Y3RlZCB0aGUgaGVhcmluZyB3aGljaCBmb2N1c2VkIG9uIHRoZSBmdXR1cmUgb2YgcmVuZXdhYmxlIGZ1ZWxzIHdpdGggYSBzcGVjaWFsIGVtcGhhc2lzIG9uIGV0aGFub2wgYW5kIGJpb2RpZXNlbC4gVGhlIHBhbmVsIG9mIGV4cGVydCB3aXRuZXNzZXMgaW5jbHVkZWQ6IFRob21hcyBDLiBEb3JyLCBVbmRlcnNlY3JldGFyeSBmb3IgUnVyYWwgRGV2ZWxvcG1lbnQsIFUuUy4gRGVwYXJ0bWVudCBvZiBBZ3JpY3VsdHVyZSwgV2FzaGluZ3RvbiBEQyBhbmQgRHIuIEpvaG4gQXNod29ydGgsIFRlYW0gTGVhZGVyLCBQYXJ0bmVyc2hpcCBEZXZlbG9wbWVudCB3aXRoIHRoZSBOYXRpb25hbCBCaW9lbmVyZ3kgQ2VudGVyLCBHb2xkZW4gQ08uIEEgc2Vjb25kIGZpdmUtbWVtYmVyIHBhbmVsIHJlcHJlc2VudGluZyBNb250YW5hIGludGVyZXN0cyBpbmNsdWRlZCBEYW4gRG93bnMsIGJvYXJkIG1lbWJlciBNb250YW5hIEZhcm1lcnMgVW5pb247IEpvbiBTdG9uZXIsIHByZXNpZGVudCBvZiB0aGUgTW9udGFuYSBHcmFpbiBHcm93ZXJzIEFzc29jaWF0aW9uOyBEci4gSmVyYWxkIEJlcmdtYW4sIGRpcmVjdG9yIG9mIE1vbnRhbmEgU3RhdGUgVW5pdmVyc2l0eeKAmXMgRWFzdGVybiBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggQ2VudGVyOyBHYXJ0aCBLYWxsZXZpZywgcmVwcmVzZW50aW5nIE1vbnRhbmEgSW5kZXBlbmRlbnQgQmFua2VycywgYW5kIFRoYWQgV2lsbGlzLCByZXByZXNlbnRpbmcgdGhlIE1vbnRhbmEgRmFybSBCdXJlYXUgRmVkZXJhdGlvbi4gRm9sbG93aW5nIHRoZSBmb3JtYWwgdGVzdGltb255LCB0aGUgaGVhcmluZyB3YXMgYWRqb3VybmVkIGFuZCB2aXNpdG9ycyBhbGxvd2VkIHRvIHF1ZXN0aW9uIFNlbi4gQnVybnMgYW5kIHBhbmVsIG1lbWJlcnMuPC9QPiAKPFA+PFNUUk9ORz5Nb250YW5hIFUuUy4gU2VuYXRvciBWaXNpdHMgQVJTIExhYjo8L1NUUk9ORz4mbmJzcDsgT24gQXVndXN0IDksIE5QQVJMIGhvc3RlZCBVLlMuIFNlbmF0b3IgTWF4IEJhdWN1cy4gVGhlIE1vbnRhbmEgU2VuYXRvciBoZWxkIGEgcHVibGljIGxpc3RlbmluZyBzZXNzaW9uIGF0IHRoZSBsYWIgdG8gZ2F0aGVyIHByb2R1Y2VyIGFuZCBpbmR1c3RyeSBvcGluaW9ucyBvbiB0aGUgbmV3IGZhcm0gYmlsbCBhbmQgb3RoZXIgQWcgaXNzdWVzLiBEaXNjdXNzaW9uIHRvcGljcyByYW5nZWQgZnJvbSBzdWdhciB0byByZXNlYXJjaCB0byB0cmFkZSBhZ3JlZW1lbnRzIGR1cmluZyB0aGUgc2Vzc2lvbi4mbmJzcDsgU2VuYXRvciBCYXVjdXMgaXMgYSBtZW1iZXIgb2YgdGhlIFNlbmF0ZeKAmXMgQWdyaWN1bHR1cmUgQ29tbWl0dGVlIGNoYXJnZWQgd2l0aCBkcmFmdGluZyBhIG5ldyBmYXJtIGJpbGwgaW4gMjAwNy48L1A+IAo8UD48U1RST05HPlVTREEtQVJTIEFubnVhbCBGcmllbmRzICYgTmVpZ2hib3JzIERheSBCcmluZ3MgTmVlZGVkIFJhaW46PC9TVFJPTkc+Jm5ic3A7IFRoZSBiaWdnZXIgdGhlIG91dGRvb3IgYWN0aXZpdHkgcGxhbm5lZCwgdGhlIGdyZWF0ZXIgdGhlIGxpa2VsaWhvb2Qgb2YgdHVybmluZyBhIDIwJSBjaGFuY2Ugb2YgcmFpbiBpbnRvIHRoZSBtb3N0IHNpZ25pZmljYW50IG1vaXN0dXJlIGV2ZW50IGluIDEyIG1vbnRocyEgT24gSnVseSAyMHRoLCB0aGUgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnkgaG9zdGVkIHRoZWlyIGFubnVhbCBGcmllbmRzICYgTmVpZ2hib3JzIERheSB3aGljaCByb3V0aW5lbHkgYXR0cmFjdHMgNjAwLTgwMCBndWVzdHMgdG8gdGhlIE1hbmRhbiBVU0RBLUFSUyBjYW1wdXMuIER1ZSB0byByYWluZmFsbCwgYXR0ZW5kYW5jZSB0aGlzIHllYXIgd2FzIGFwcHJveGltYXRlbHkgaGFsZiBvZiBwcmV2aW91cyB5ZWFycywgYnV0IG5vIG9uZSBjb21wbGFpbmVkLiBPdmVyIGEgdGhpcmQgaW5jaCBvZiBwcmVjaXBpdGF0aW9uIHNsb3dseSBzb2FrZWQgdGhlIG1hbnkgY2FtcHVzIGV4aGliaXRvcnMgYW5kIGd1ZXN0cyBhbGwgYWZ0ZXJub29uLiBUaGlzIHdhcyB0aGUgbGFyZ2VzdCByYWluZmFsbCBpbiBNYW5kYW4gc2luY2UgdGhlIEp1bHkgMjAwNSBGcmllbmRzICYgTmVpZ2hib3JzIERheSBldmVudCwgd2hpY2ggd2FzIGFsc28gc29ha2VkISBUaGUgaGFyZHkgTWFuZGFuIFVTREEtQVJTIHNjaWVudGlzdHMgc2hhcmVkIHRoZWlyIGludGVncmF0ZWQgY3JvcCwgbGl2ZXN0b2NrLCBhbmQgZW52aXJvbm1lbnRhbCByZXNlYXJjaCBpbmZvcm1hdGlvbiBpbiB0aGUgcmFpbi4gVGhlIFVTREEtQVJTIEdyYW5kIEZvcmtzIEh1bWFuIE51dHJpdGlvbiBSZXNlYXJjaCBDZW50ZXIgYW5kIFVTREEtQVJTIFJlZCBSaXZlciBWYWxsZXkgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIENlbnRlciBleGhpYml0cyB3ZXJlIGFtb25nIHRoZSBudW1lcm91cyBmZWRlcmFsLCBzdGF0ZSwgYW5kIGxvY2FsIHJlc2VhcmNoIG9yZ2FuaXphdGlvbnMgZnJvbSB0aHJvdWdob3V0IHRoZSByZWdpb25hbCBleGhpYml0aW5nIGF0IHRoaXMgZXZlbnQuIDwvUD4gCjxQPjxTVFJPTkc+TkdQUkwgU2NpZW50aXN0IFByZXNlbnRzIFNvaWwgQmlvbG9neSBJbmZvcm1hdGlvbiB0byBmYXJtZXJzIGZyb20gTm8gVGlsbCBPbiBUaGUgUGxhaW5zOjwvU1RST05HPiZuYnNwOyBPbiBBdWd1c3QgM3JkLCBEci4gS3Jpc3RpbmUgTmljaG9scyAoVVNEQS1BUlMgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnksIE1hbmRhbiwgTkQpIHByZXNlbnRlZCBpbmZvcm1hdGlvbiBvbiBzb2lsIGJpb2xvZ3kgYW5kIHNvaWwgcXVhbGl0eSB0byBhIGdyb3VwIG9mIGFib3V0IDI1IGZhcm1lcnMgZnJvbSBLYW5zYXMgYW5kIE9rbGFob21hIGFzIHBhcnQgb2YgYSDigJxQb2ludHMgTm9ydGjigJ0gYnVzIHRvdXIgZm9yIE5vIFRpbGwgT24gVGhlIFBsYWlucyBJbmMuLCDigJhhIG5vbi1wcm9maXQgZWR1Y2F0aW9uYWwgb3JnYW5pemF0aW9ucHJvdmlkaW5nIGluZm9ybWF0aW9uIHRvZmFybWVyc29uIGFkb3B0aW5nIG5vLXRpbGwgYW5kIG90aGVyIHN1c3RhaW5hYmxlcHJvZHVjdGlvbiBtZXRob2RzLuKAmSBUb3VyIHBhcnRpY2lwYW50cyB2aXNpdGVkIDUgc3RhdGVzIChLUywgQ08sIFNELCBORCwgYW5kIE5FKSBpbiA1IGRheXMg4oCYdG8gZ2V0IHByYWN0aWNhbCBhbmQgcmVsZXZhbnQgbm8tdGlsbCBpbmZvcm1hdGlvbiBmcm9tIG90aGVyIGZhcm1lcnMgYW5kIG5vLXRpbGwgZXhwZXJ0cy7igJkmbmJzcDsgQXQgR2FiZSBCcm93buKAmXMgZmFybSBuZWFyIEJpc21hcmNrLCBORCwgTmljaG9scyBkZW1vbnN0cmF0ZWQgaG93IGluY3JlYXNpbmcgc29pbCBvcmdhbmljIG1hdHRlciBhbmQgc29pbCBzdHJ1Y3R1cmUgdXNpbmcgbm8gdGlsbCBhbmQgZGl2ZXJzZSBjcm9wcGluZyBzeXN0ZW1zIG1heSBpbXByb3ZlIHdhdGVyIGluZmlsdHJhdGlvbiwgd2F0ZXIgaG9sZGluZyBjYXBhY2l0eSwgYW5kIG51dHJpZW50IGN5Y2xpbmcuJm5ic3A7IFRoZXNlIHRvcGljcyBhZGRyZXNzZWQgdGhlIG9yZ2FuaXphdGlvbuKAmXMgbWlzc2lvbiB0byBkZW1vbnN0cmF0ZSBob3cg4oCYYWRvcHRpbmcgbm8tdGlsbCBhbmQgZ29vZCBhZ3Jvbm9teSAoZ29vZCBiaW9sb2d5KSBoYXMgdGhlIHBvdGVudGlhbCB0byBncmVhdGx5IGltcHJvdmUgZmFybWVycycgZWZmaWNpZW5jeSBhbmQgcHJvZml0YWJpbGl0eeKAmSBhbmQgbWFueSBvdGhlciBzb2NpZXRhbCwg4oCYc3VjaCBhcyBncmVhdGx5IHJlZHVjZWQgc29pbCBlcm9zaW9uIG9mIGNyb3BsYW5kLCBsZXNzIHNlZGltZW50YXRpb24gb2Ygcml2ZXJzIGFuZCBsYWtlcyxiZXR0ZXIgd2lsZGxpZmUgaGFiaXRhdCBpbiBmaWVsZHMsIGFuZCB0aGUgc2VxdWVzdGVyaW5nIG9mIGF0bW9zcGhlcmljY2FyYm9uIGRpb3hpZGUgaW4gc29pbCBvcmdhbmljIG1hdHRlci7igJk8L1A+IAo8UD48U1RST05HPk1vbnRhbmEgQVJTIExhYiBUbyBCZSBSZWNvZ25pemVkIEFzIE5XUyBTdG9ybVJlYWR5IFN1cHBvcnRlcjwvU1RST05HPjogKFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkgTlBBUkwgaXMgYmVpbmcgcmVjb2duaXplZCBBdWd1c3QgMTB0aCBhcyBhIOKAnFN0b3JtUmVhZHkgU3VwcG9ydGVyIGJ5IHRoZSBOYXRpb25hbCBXZWF0aGVyIFNlcnZpY2UgKE5XUykuIEluIGFubm91bmNpbmcgdGhlIGF3YXJkLCBUYW5qYSBGcmFuc2VuIG9mIHRoZSBHbGFzZ293LCBNVCB3ZWF0aGVyIGZvcmVjYXN0IG9mZmljZSBub3RlZDog4oCcVGhlIFVTREEgc3RhdGlvbiBpbiBTaWRuZXkgaGFzIGJlZW4gZXh0cmVtZWx5IHByby1hY3RpdmUgb3ZlciB0aGUgbGFzdCBmZXcgeWVhcnMgaW4gYmVpbmcgcHJlcGFyZWQsIG5vdCBqdXN0IGZvciBoYXphcmRzIHdpdGhpbiB0aGUgZmFjaWxpdHkgYnV0IGFsc28gdG8gaGVscCB3aXRoIHByZXBhcmVkbmVzcyBhY3Rpdml0aWVzIHdpdGhpbiB0aGUgY29tbXVuaXR5LiBVU0RBIHNhZmV0eSBvZmZpY2VyIEphY2tpZSBDb3V0dXJlIGlzIHRoZSBjaGFpciBvZiB0aGUgUmljaGxhbmQgQ291bnR5IExvY2FsIEVtZXJnZW5jeSBQbGFubmluZyBDb21taXR0ZWUgYW5kIGFjdGl2ZWx5IGludm9sdmVkIHdpdGggdGhlIENvbW11bml0eSBFbWVyZ2VuY3kgUmVzcG9uc2UgVGVhbS4gVGhpcyBpcyBqdXN0IGEgbmF0dXJhbCBleHRlbnNpb24gb2YgYWxsIHRoZSBncmVhdCB3b3JrIHRoZXkgaGF2ZSBiZWVuIGRvaW5nIHRvIGhlbHAgd2l0aCBwcmVwYXJlZG5lc3MgaW4gdGhlaXIgd29ya3BsYWNlIGFuZCB0aGUgY29tbXVuaXR5LuKAnSZuYnNwOyBUaGUgU2lkbmV5LCBNVCBBUlMgbGFiIHJlZ3VsYXJseSBob3N0cyBzZXZlcmUgd2VhdGhlciB0cmFpbmluZyBjb3Vyc2VzIGFuZCB3aW50ZXIgd2VhdGhlciBzYWZldHkgcHJvZ3JhbXMgZm9yIGJvdGggaXRzIGVtcGxveWVlcyBhbmQgdGhlIGNvbW11bml0eSBhdCBsYXJnZS4gRmlmdGVlbiBOUEFSTCBlbXBsb3llZXMgaGF2ZSBiZWVuIGNlcnRpZmllZCBhcyBOV1Mgd2VhdGhlciBzcG90dGVycy4mbmJzcDsgTlBBUkwgY29tcGxldGVkIGEgc2VyaWVzIG9mIHJpZ29yb3VzIHdhcm5pbmcgY3JpdGVyaWEgbmVjZXNzYXJ5IHRvIGVhcm4gdGhlIGRpc3RpbmN0aW9uIG9mIGJlaW5nIHRoZSBmaXJzdCBTdG9ybSBSZWFkeSBTdXBwb3J0ZXIgaW4gTW9udGFuYSBhbmQgb25seSB0aGUgMTd0aCBpbiB0aGUgbmF0aW9uLiBUaGUgU2lkbmV5LCBNVCByZXNlYXJjaCBmYWNpbGl0eSBpcyBhbHNvIHRoZSBvbmx5IEFSUyBmYWNpbGl0eSBpbiB0aGUgbmF0aW9uIHRvIGJlIHNvIHJlY29nbml6ZWQuPC9QPiAKPFAgYWxpZ249cmlnaHQ+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9QPiAKPFA+PFNUUk9ORz5TdGF0ZSBBZ2VuY3kgQWRvcHRzIE1vbnRhbmEgQVJTIExhYuKAmXMgRS13YXN0ZSBQcm9ncmFtIE1hdGVyaWFsczwvU1RST05HPjogKFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkgSW4gYSBKdWx5IDE5dGggbWVldGluZyB3aXRoIE5QQVJMIGFuZCBjb21tdW5pdHkgcmVwcmVzZW50YXRpdmVzIG9yZ2FuaXppbmcgdGhlaXIgc2Vjb25kIOKAnGUtcmFzZSB5b3VyIGUtd2FzdGXigJ0gZXZlbnQsIHRoZSBNb250YW5hIERlcGFydG1lbnQgb2YgRW52aXJvbm1lbnRhbCBRdWFsaXR5IGFubm91bmNlZCB0aGF0IGl0IHdhcyBhZG9wdGluZyB0aGUgZ3JvdXDigJlzIHNsb2dhbiBhbmQgbG9nbyBmb3IgYSBzZXJpZXMgb2Ygc3RhdGV3aWRlIGUtY3ljbGluZyBwaWxvdCBwcm9ncmFtcy4gSW4gYW5ub3VuY2luZyB0aGUgZGVjaXNpb24sIE1vbnRhbmEgREVRIFJlY3ljbGluZyBhbmQgTWFya2V0aW5nIERldmVsb3BtZW50IFNwZWNpYWxpc3Q7IFNhbmRyYSBCb2dncywgbm90ZWQgdGhhdCB0aGUg4oCcZS1yYXNlIHlvdXIgZS13YXN0ZeKAnSBtYXRlcmlhbHMgZnJvbSBBUlMgcHJvdmlkZWQgYSDigJxjYXRjaHkgdGl0bGUgYW5kIGdyYXBoaWNzICh0aGF0KSBhcmUgZWFzaWx5IHJlbWVtYmVyZWQgYW5kIHF1aWNrbHkgYmVjb21lIHJlY29nbml6YWJsZSBieSB0aGUgcHVibGljLiBXZSBhcHByZWNpYXRlIHlvdXIgZGV2ZWxvcG1lbnQgb2YgdGhlc2UgaXRlbXMgYW5kIGVzcGVjaWFsbHkgeW91ciB3aWxsaW5nbmVzcyB0byBzaGFyZSB0aGVtIHdpdGggTW9udGFuYSBjb21tdW5pdGllcy4gV2UgYmVsaWV2ZSB0aGUgY29uc2lzdGVudCB1c2Ugb2YgYSB1bmlmb3JtIG5hbWUgYW5kIGxvZ28gZm9yIHRoZXNlIGV2ZW50cyBhcmUgYW4gaW1wb3J0YW50IHBhcnQgb2YgREVRJ3MgZWR1Y2F0aW9uYWwgY2FtcGFpZ24gcmVnYXJkaW5nIGVsZWN0cm9uaWMgd2FzdGUuIE9uY2UgYWdhaW4gLSB0aGFuayB5b3UgZm9yIGFsbCB5b3VyIGhhcmQgd29yayBwcm9tb3RpbmcgZWxlY3Ryb25pYyB3YXN0ZSByZWN5Y2xpbmch4oCdIE5QQVJMIFRlY2huaWNhbCBJbmZvcm1hdGlvbiBTcGVjaWFsaXN0IEJldGhhbnkgUmVkbGluIGRldmVsb3BlZCB0aGUgb3JpZ2luYWwgbWF0ZXJpYWxzIHdpdGggYWlkIGZyb20gTlBBUkwgT2NjdXBhdGlvbmFsIEhlYWx0aCBhbmQgU2FmZXR5IE9mZmljZXIgSmFja2llIENvdXR1cmUgdG8gcHJvbW90ZSBhIGNvbW11bml0eS13aWRlIGUtY3ljbGluZyBldmVudCBoZWxkIGF0IHRoZSBTaWRuZXksIE1UIEFSUyBsYWIgbGFzdCBzdW1tZXIuIFRoZSBldmVudCBjb2xsZWN0ZWQgbW9yZSB0aGFuIDQuMiB0b25zIG9mIGUtd2FzdGUgYW5kIGEgaG9zdCBvZiBjYWxscyBmcm9tIG90aGVyIGNvbW11bml0aWVzLCBidXNpbmVzc2VzIGFuZCBpbmRpdmlkdWFscyBpbnRlcmVzdGVkIGluIHB1dHRpbmcgdG9nZXRoZXIgc2ltaWxhciBlLWN5Y2xpbmcgcHJvZ3JhbXMuIEluIHJlc3BvbnNlLCBOUEFSTCByZXByZXNlbnRhdGl2ZXMgZGV2ZWxvcGVkIHRlbXBsYXRlcyBvZiB0aGUgcHJvbW90aW9uYWwgbWF0ZXJpYWxzIGFuZCBwb3N0ZWQgdGhlbSBvbiB0aGUgbGFi4oCZcyB3ZWJzaXRlICh1bmRlciDigJxTYWZldHkgSW5mb3JtYXRpb27igJ0gYXQgPEEgaHJlZj0iaHR0cDovL3d3dy5hcnMudXNkYS5nb3YvbnBhL25wYXJsIj48Rk9OVCBjb2xvcj0jMDAwMGZmPnd3dy5hcnMudXNkYS5nb3YvbnBhL25wYXJsPC9GT05UPjwvQT4sKSBmb3IgYW55b25lIHRvIHVzZSwgYWxvbmcgd2l0aCB0aXBzIG9uIGhvdyB0byBvcmdhbml6ZSBhbiDigJxlLXJhc2UgeW91ciBlLXdhc3Rl4oCdIGNhbXBhaWduLiBTaW5jZSB0aGVuLCBzZXZlcmFsIGVudGl0aWVzIGhhdmUgYWRhcHRlZCB0aGUgbWF0ZXJpYWxzIGZvciB0aGVpciBlLWN5Y2xpbmcgZWZmb3J0cyBpbmNsdWRpbmcgbmVpZ2hib3JpbmcgV2lsbGlzdG9uLCBORDsgRWFzdCBDb250cmEgQ29zdGEgQ291bnR5LCBDQSBhbmQgbW9zdCByZWNlbnRseSBNb250YW5hIERFUS48L1A+IAo8UD48U1RST05HPkFSUyBMYWIgVG8gUGFydGljaXBhdGUgSW4gTlBT4oCZcyBMZXdpcyAmIENsYXJrIENvcnBzIElJIEV2ZW50PC9TVFJPTkc+OiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSBUd28gTlBBUkwgcmVwcmVzZW50YXRpdmVzIHdpbGwgYmUgc3BlYWtpbmcgaW4gdGhlIFRlbnQgb2YgTWFueSBWb2ljZXMgYXMgcGFydCBvZiBTaWRuZXksIE1U4oCZcyZuYnNwOyDigJxMYXN0LCBCZXN0IFN0b3DigJ0gc2hvd2luZyBvZiB0aGUgTmF0aW9uYWwgUGFyayBTZXJ2aWNl4oCZcyBDb3JwcyBvZiBEaXNjb3ZlcnkgSUkgbW9iaWxlIGV4aGliaXQgQXVndXN0IDgtMTIuIEJpb2xvZ2ljYWwgU2NpZW5jZSBUZWNobmljaWFucyBLaW1iZXJseSBNYW5uIG9mIEZhaXJ2aWV3IGFuZCBEZWIgV2F0ZXJzIG9mIFNpZG5leSB3aWxsIGRpc2N1c3Mg4oCcVGhlIHBsYW50cyBvZiBMZXdpcyAmIENsYXJrIGFuZCB3aGF0IHRoZXkgbWlnaHQgZmluZCB0b2RheS7igJ0mbmJzcDsgVGhlIHdvbWVuLCBib3RoIHdpdGggdGhlIGxhYuKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQsIHdpbGwgZGlzY3VzcyB0aGUgcGxhbnRzIGlkZW50aWZpZWQgYXMgbmV3IHRvIFdlc3Rlcm4gU2NpZW5jZSBieSBMZXdpcyBhbmQgQ2xhcmsgYXMgdGhleSBwYXNzZWQgdGhyb3VnaCB0aGUgWWVsbG93c3RvbmUgYW5kIE1pc3NvdXJpIFJpdmVyIENvbmZsdWVuY2UgYXJlYSAyMDAgeWVhcnMgYWdvLiBNYW5uIGFuZCBXYXRlcnMgd2lsbCBoYXZlIHNldmVyYWwgbGl2ZSBzYW1wbGVzIG9mIHRob3NlIG5hdGl2ZSBwbGFudHMgYXZhaWxhYmxlLCBhbG9uZyB3aXRoIHNvbWUgb2YgdGhlIOKAnG5ld+KAnSBwbGFudHMgdGhlIHBpb25lZXJpbmcgbmF0dXJhbGlzdHMgd291bGQgZmluZCB0b2RheTombmJzcDsgbm94aW91cyB3ZWVkcy4gVGhlIHRlY2huaWNpYW5zIHdpbGwgYWxzbyBkcmF3IG9uIG1hdGVyaWFscyBwcm92aWRlZCBieSB0aGUgSGVsZW5hIE5hdGlvbmFsIEZvcmVzdCBpbiB0aGVpciBzcGVjaWFsIOKAnE1vbnRhbmEgTmF0aXZlIFBsYW50cyBhbmQgTGV3aXMgJiBDbGFya+KAnSB0cmF2ZWxpbmcgdHJ1bmsuIEluIGFkZGl0aW9uIHRvIHRoZSBwcmVzZW50YXRpb25zLCBOUEFSTCB3aWxsIGFsc28gaGF2ZSBhbiBpbmZvcm1hdGlvbmFsIGJvb3RoIGF0IHRoZSBsb2NhbCBDb3JwcyBJSSBldmVudCBlbnRpdGxlZCDigJxBIE5ldyBDb3JwcyBvZiBEaXNjb3Zlcnk6IEZvbGxvd2luZyBpbiB0aGUgTGVnYWN5IG9mIExld2lzICYgQ2xhcmsu4oCdIFQgaGUgYm9vdGggd2lsbCBmZWF0dXJlIHBvc3RlcnMgZGVzY3JpYmluZyBzb21lIG9mIHRoZSBzY2llbnRpZmljIGRpc2NvdmVyaWVzIG9mIExld2lzICYgQ2xhcmsgYW5kIGNvbXBhcmluZyB0aGVtIHdpdGggY29udGVtcG9yYXJ5IHJlc2VhcmNoIGVmZm9ydHMgdW5kZXJ3YXkgdG9kYXkgYXQgdGhlIGxvY2FsIEFSUyByZXNlYXJjaCBsYWIuPC9QPiAKPFA+PFNUUk9ORz5BUlMgU2NpZW50aXN0cyBSZXBvcnQgb24gSXJyaWdhdGlvbiBvZiBIb3J0aWN1bHR1cmFsIENyb3BzPC9TVFJPTkc+OiZuYnNwOyBPbiBBdWd1c3QgMjcg4oCTIFNlcHQgMiwgVG9tIFRyb3V0LCBBZ3JpY3VsdHVyYWwgRW5naW5lZXIgZnJvbSB0aGUgV2F0ZXIgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LCBGdC4gQ29sbGlucywgQ08sIGFuZCBEYXZpZCBCcnlsYSBhbmQgS3Jpc3RhIFNoZWxsaWUsIFJlc2VhcmNoIEhvcnRpY3VsdHVyYWxpc3RzIGZyb20gdGhlIEhvcnRpY3VsdHVyYWwgQ3JvcCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBDb3J2YWxsaXMsIE9SIHdpbGwgYmUgYXR0ZW5kaW5nIHRoZSA1dGggSW50ZXJuYXRpb25hbCBTeW1wb3NpdW0gb24gSXJyaWdhdGlvbiBvZiBIb3J0aWN1bHR1cmFsIENyb3BzIGluIE1pbGR1cmEsIEF1c3RyYWxpYS4mbmJzcDsgVGhleSB3aWxsIGJlIHJlcG9ydGluZyBvbiBpbXByb3ZlZCBpcnJpZ2F0aW9uIG1hbmFnZW1lbnQgcHJhY3RpY2VzIGZvciBiZWxsIHBlcHBlcnMsIGxldHR1Y2UsIGFuZCBnYXJsaWMgKFRyb3V0KSwgYW5kIGZvciBibHVlYmVycmllcyAoQnJ5bGEpIGFuZCB3aW5lIGdyYXBlcyAoU2hlbGxpZSkuJm5ic3A7IFRoZSBTeW1wb3NpdW0gaXMgc3BvbnNvcmVkIGV2ZXJ5IHRocmVlIHllYXJzIGJ5IHRoZSBJbnRlcm5hdGlvbmFsIFNvY2lldHkgZm9yIEhvcnRpY3VsdHVyYWwgU2NpZW5jZS48L1A+IAo8UD48U1RST05HPkJpb3NjaWVuY2VzIFJlc2VhcmNoIExhYm9yYXRvcnkgU2NpZW50aXN0cyB0byBQYXJ0aWNpcGF0ZSBpbiB0aGUgMjZ0aCBJbnRlcm5hdGlvbmFsIFN5bXBvc2l1bSBvbiBIYWxvZ2VuYXRlZCBFbnZpcm9ubWVudGFsIE9yZ2FuaWMgUG9sbHV0YW50czwvU1RST05HPjogKEFSUy1SZWQgUml2ZXIgVmFsbGV5IEFncmljdWx0dXJhbCBSZXNlYXJjaCBDZW50ZXIsIEFuaW1hbCBNZXRhYm9saXNtLUFncmljdWx0dXJhbCBDaGVtaWNhbHMgUmVzZWFyY2ggVW5pdCwgRmFyZ28sIE5EKS4mbmJzcDsgT24gQXVndXN0IDIxLTI1LCBEcnMuIEphbmljZSBIdXdlIGFuZCBXZWlsaW4gU2hlbHZlciB3aWxsIHByZXNlbnQgcGFwZXJzIGF0IHRoZSBEaW94aW4gMjAwNiBjb25mZXJlbmNlIGluIE9zbG8sIE5vcndheS4mbmJzcDsgRHIuIEh1d2Ugd2lsbCBwcmVzZW50IGEgc2VtaW5hciBlbnRpdGxlZCwg4oCcVXB0YWtlIG9mIGRpb3hpbi1saWtlIGNvbXBvdW5kcyBpbiBncm93aW5nIHN3aW5lOiBjb3JyZWxhdGlvbiBiZXR3ZWVuIGV4cGVyaW1lbnRhbCBhbmQgcHJlZGljdGVkIGRhdGEu4oCdJm5ic3A7IERyLiBTaGVsdmVyIHdpbGwgcHJlc2VudCBhIHNlbWluYXIgZW50aXRsZWQsIOKAnENvbXBhcmlzb24gb2Ygc29pbCBQQkRFIGxldmVscyB1c2luZyBIUkdDLUhSTVMgYW5kIG1hZ25ldGljIHBhcnRpY2xlIGVuenltZSBpbW11bm9hc3NheeKAnSBhbmQgYSBwb3N0ZXIgcHJlc2VudGF0aW9uIGVudGl0bGVkLCDigJxEZXZlbG9wbWVudCBvZiBhIG1hZ25ldGljIHBhcnRpY2xlIGltbXVub2Fzc2F5IGFuZCBpdHMgYXBwbGljYXRpb24gdG8gdGhlIG1lYXN1cmVtZW50IG9mIHRyaWNsb3NhbiBpbiB3YXRlciBhbmQgd2FzdGV3YXRlci7igJ0mbmJzcDsgVGhpcyBjb25mZXJlbmNlIGlzIGF0dGVuZGVkIGJ5IHNjaWVudGlzdHMgZnJvbSBpbmR1c3RyeSwgZ292ZXJubWVudCwgYW5kIGFjYWRlbWlhIHJlcHJlc2VudGluZyBtb3N0IGRldmVsb3BlZCBjb3VudHJpZXMgb2YgdGhlIHdvcmxkLjwvUD4gCjxQPjxTVFJPTkc+QVJTIFJlc2VhcmNoZXIgVG8gU3BlYWsgQXQgQm90YW5pY2FsIFNvY2lldHkgQ2VudGVubmlhbCBDb25mZXJlbmNlOjwvU1RST05HPiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSBOUEFSTCBCb3RhbmlzdCBKb2huIEdhc2tpbiB3aWxsIGJlIGF0dGVuZGluZyB0aGUgQm90YW5pY2FsIFNvY2lldHkgb2YgQW1lcmljYSBhbm51YWwgY29uZmVyZW5jZSBKdWx5IDI5LUF1Zy4gMiBhdCBDaGljbywgQ0EuIERyLiBHYXNraW4gd2lsbCBiZSBwcmVzZW50aW5nIGEgcGFwZXIgQXVnLiAyIG9uIOKAnE5vdmVsIGh5YnJpZHMgcHJvZHVjZWQgc2luY2UgdGhlIGludHJvZHVjdGlvbiBvZiBzYWx0Y2VkYXIgYW5kIHRoZSBpbmZsdWVuY2Ugb2YgZ2FyZGVuIHBsYW50aW5ncyBvbiBuZWFyYnkgaW52YXNpb25zLuKAnSBBZGRpdGlvbmFsIGF1dGhvcnMgb2YgdGhlIHByZXNlbnRhdGlvbiBpbmNsdWRlIERyLiBEYXZpZCBLYXptZXIsIGFsc28gd2l0aCBVU0RBLUFSUyBpbiBTaWRuZXksIE1ULCBhbmQgUGF0IFNoYWZyb3RoIChVU0dTLCBGdC4gQ29sbGlucywgQ08pLiBEci4gR2Fza2luIGlzIGEgbWVtYmVyIG9mIE5QQVJM4oCZcyBQZXN0IE1hbmFnZW1lbnQgUmVzZWFyY2ggVW5pdC4gTW9yZSB0aGFuIDEwMDAgcGFydGljaXBhbnRzIHdpbGwgcHJlc2VudCBvdmVyIDcwMCBzY2llbnRpZmljIGNvbnRyaWJ1dGlvbnMgaW5jbHVkaW5nIHBhcGVycywgcG9zdGVycywgc3BlY2lhbCBsZWN0dXJlcyBhbmQgMTUgc3ltcG9zaWEgYXQgdGhlIGNvbmZlcmVuY2UsIHdoaWNoIG1hcmtzIHRoZSBTb2NpZXR54oCZcyAxMDB0aCB5ZWFyLjwvUD4gCjxQPjxTVFJPTkc+QVJTIFNjaWVudGlzdCBIZWxwaW5nIFRvIE9yZ2FuaXplIDFzdCBJbnRlcm5hdGlvbmFsIENlcmNvc3BvcmEgU3ltcG9zaXVtOjwvU1RST05HPiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSBOUEFSTCBQbGFudCBQYXRob2xvZ2lzdCBSb2JlcnQgTGFydGV5IGlzIGFtb25nIGZpdmUgb3JnYW5pemVycyBwdXR0aW5nIHRvZ2V0aGVyIHRoZSAxc3QgSW50ZXJuYXRpb25hbCBTeW1wb3NpdW0gb24gQ2VyY29zcG9yYSBMZWFmIFNwb3Qgb2YgU3VnYXIgQmVldCB0byBiZSBoZWxkIEF1Zy4gMiBkdXJpbmcgdGhlIGpvaW50IG1lZXRpbmcgb2YgdGhlIEFtZXJpY2FuIGFuZCBDYW5hZGlhbiBQaHl0b3BhdGhvbG9naWNhbCBTb2NpZXRpZXMgYW5kIHRoZSBNeWNvbG9naWNhbCBTb2NpZXR5IG9mIEFtZXJpY2EgdG8gYmUgaGVsZCBpbiBRdWViZWMgQ2l0eSwgUXVlYmVjLCBDYW5hZGEgSnVseSAyOS1BdWcuIDIuIFR3byBvdGhlciBBUlMgcmVzZWFyY2hlcnMgYXJlIGFsc28gaGVscGluZyBjb29yZGluYXRlIHRoaXMgZmlyc3QtZXZlciBldmVudC4gVGhleSBpbmNsdWRlIERycy4gTGVlIFBhbmVsbGEgKFVTREEtQVJTLCBGdC4gQ29sbGluLCBDTykgYW5kIEpvaG4gV2VpbGFuZCAoVVNEQS1BUlMgRmFyZ28sIE5EKS4gTmVhcmx5IHR3byBkb3plbiByZXNlYXJjaGVycyBmcm9tIE5vcnRoIEFtZXJpY2EgYW5kIEV1cm9wZSBhcmUgcGFydGljaXBhdGluZyBpbiB0aGUgZGF5LWxvbmcgc3ltcG9zaXVtIEF1Zy4gMiB3aGljaCBpcyB0aGUgZmlyc3QgdG8gYnJpbmcgdG9nZXRoZXIgcmVzZWFyY2hlcnMgZnJvbSBhcm91bmQgdGhlIHdvcmxkIHN0dWR5aW5nIHRoaXMgdmVyeSBzZXJpb3VzIGFuZCBkZXN0cnVjdGl2ZSBmdW5nYWwgZGlzZWFzZSBpbiBzdWdhciBiZWV0LiBGb3IgaGlzIHBhcnQsIERyLiBMYXJ0ZXkgd2lsbCBwcmVzZW50IGEgcGFwZXIgZW50aXRsZWQg4oCcQmlvbG9naWNhbCBSZWxhdGlvbnMgb2YgQ2VyY29zcG9yYSBiZXRpY29sYSB3aXRoIEhvc3QgUGxhbnRzIGFuZCBGdW5nYWwgQW50YWdvbmlzdHMu4oCdIEFkZGl0aW9uYWwgYXV0aG9ycyBvbiB0aGF0IHBhcGVyIGluY2x1ZGUgU291bWl0cmEgR2hvc2hyb3kgb2YgTmV3IE1leGljbyBTdGF0ZSBVbml2ZXJzaXR5LCBMYXMgQ3J1Y2VzLCBOTSwgYW5kIFRoZUNhbiBDYWVzYXItVG9uVGhhdCwgQW5keSBMZW5zc2VuIGFuZCBSb2JlcnQgRXZhbnMsIGFsbCB3aXRoIFVTREEtQVJTIGluIFNpZG5leSwgTVQuIERyLiBMYXJ0ZXkgaXMgYSBtZW1iZXIgb2YgTlBBUkzigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQuPC9QPiAKPFAgYWxpZ249cmlnaHQ+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9QPiAKPFA+PFNUUk9ORz5BZ3JpY3VsdHVyYWwgUmVzZWFyY2ggU2VydmljZSAoQVJTKSBSZXNlYXJjaCBMZWFkZXIgVG8gR2l2ZSBMZWN0dXJlIE9uIE51dHJpZW50IFN1cHBsZW1lbnRzPC9TVFJPTkc+OiBPbiBPY3QuIDEzLTIwLCBKYW5ldCBIdW50LCBSZXNlYXJjaCBMZWFkZXIsIEFSUyBHcmFuZCBGb3JrcyBIdW1hbiBOdXRyaXRpb24gUmVzZWFyY2ggQ2VudGVyLCBHcmFuZCBGb3JrcywgTkQsIHdpbGwgZ2l2ZSBhIGxlY3R1cmUgaW4gTW9zY293IHRvIFJ1c3NpYW4gbWVkaWNhbCBzcGVjaWFsaXN0cyAoaW5jbHVkaW5nIHByYWN0aWNpbmcgcGh5c2ljaWFucyBhbmQgcmVzZWFyY2hlcnMgZnJvbSBnb3Zlcm5tZW50IG1lZGljYWwgY2VudGVycywgY2xpbmljcywgYW5kIGluc3RpdHV0ZXMpIG9uIHRoZSBlZmZlY3Qgb2YgY2FsY2l1bSBzdXBwbGVtZW50YXRpb24gb24gaXJvbiBhYnNvcnB0aW9uLiA8L1A+IAo8UD48U1RST05HPkFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlIChBUlMpIFNjaWVudGlzdCBUbyBBdHRlbmQgQm9yb24gU3ltcG9zaXVtPC9TVFJPTkc+OiBPbiBPY3QuIDI4LU5vdi4gNiwgQ3VydGlzcyBIdW50LCBSZXNlYXJjaCBCaW9sb2dpc3QsIEFSUyBHcmFuZCBGb3JrcyBIdW1hbiBOdXRyaXRpb24gUmVzZWFyY2ggQ2VudGVyLCBHcmFuZCBGb3JrcywgTkQsIHdpbGwgZ2l2ZSBhIHByZXNlbnRhdGlvbiwg4oCcRGlldGFyeSBCb3JvbjogUHJvZ3Jlc3MgaW4gRXN0YWJsaXNoaW5nIEVzc2VudGlhbCBSb2xlcyBpbiBIdW1hbiBhbmQgQW5pbWFsIFBoeXNpb2xvZ3ks4oCdIGF0IHRoZSBUaGlyZCBJbnRlcm5hdGlvbmFsIEJvcm9uIFN5bXBvc2l1bSBpbiBBbmthcmEsIFR1cmtleS48L1A+IAo8UD48U1RST05HPkFSUyBSZXNlYXJjaGVycyBUbyBEaXNjdXNzIFByZWNpc2lvbiBBZywgU3VnYXIgQmVldCBSZXNlYXJjaCBBdCBGaWVsZCBEYXk8L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpIE5QQVJMIFJlc2VhcmNoIEFncm9ub21pc3QgQmFydCBTdGV2ZW5zIGFuZCBQaHlzaWNhbCBTY2llbnRpc3QgQmlsbCBJdmVyc2VuIGhhdmUgYmVlbiBpbnZpdGVkIHRvIHNwZWFrIGF0IE1vbnRhbmEgU3RhdGUgVW5pdmVyc2l0eeKAmXMgRWFzdGVybiBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggQ2VudGVyIChFQVJDKSBGaWVsZCBEYXkgaW4gU2lkbmV5LCBNVCBvbiBKdWx5IDIwLiBUaGUgcmVzZWFyY2hlcnMsIGJvdGggd2l0aCBOUEFSTOKAmXMgQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdCwgd2lsbCBkaXNjdXNzIOKAnFByZWNpc2lvbiBpcnJpZ2F0aW9uIGFuZCBzdHJpcCB0aWxsIHN1Z2FyIGJlZXQgcHJvZHVjdGlvbuKAnSBpbiB0aGVpciBwcmVzZW50YXRpb24uIE90aGVyIHByZXNlbnRlcnMgYXQgdGhlIGV2ZW50IGluY2x1ZGUgdW5pdmVyc2l0eSBhbmQgaW5kdXN0cnkgcmVwcmVzZW50YXRpdmVzIGZyb20gTVNVLUJvemVtYW47IE5vcnRoIERha290YSBTdGF0ZSBVbml2ZXJzaXR54oCZcyBXaWxsaXN0b24gUmVzZWFyY2ggYW5kIEV4dGVuc2lvbiBDZW50ZXIsIFdpbGxpc3RvbiwgTkQ7IFNpZG5leSBTdWdhcnMsIEluYy4gYW5kIEJ1c2NoIEFncmljdWx0dXJhbCBSZXNvdXJjZXMsIEluYy4uIEluIGFkZGl0aW9uLCBjb29wZXJhdGl2ZSByZXNlYXJjaCBiZXR3ZWVuIEVBUkMgYW5kIE5QQVJMIHdpbGwgYWxzbyBiZSBkaXNjdXNzZWQgZHVyaW5nIHRoZSBNb250YW5hIEFncmljdWx0dXJhbCBSZXNlYXJjaCBDZW50ZXJz4oCZIHN1bW1lciBjb25mZXJlbmNlIGhvc3RlZCBieSBFQVJDIEp1bHkgMjAtMjEsIGZvbGxvd2luZyB0aGUgZmllbGQgZGF5LiBUaGUgZ2F0aGVyaW5nIGJyaW5ncyB0b2dldGhlciByZXNlYXJjaCBzdGFmZiBmcm9tIE1TVeKAmXMgc2V2ZW4gb3V0bHlpbmcgcmVzZWFyY2ggY2VudGVycyB0byBsZWFybiBhYm91dCByZXNlYXJjaCB3b3JrIGF0IHRoZSBob3N0IHNpdGUgYW5kIGlkZW50aWZ5IHBvc3NpYmxlIGNvbGxhYm9yYXRpdmUgcHJvamVjdHMuPC9QPiAKPFAgYWxpZ249cmlnaHQ+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9QPiAKPFA+PFNUUk9ORz5BUlMgRWNvbG9naXN0LCBUZWNobmljaWFuIFRvIFBhcnRpY2lwYXRlIEluIE1vbnRhbmEgRmFybSBUb3VyPC9TVFJPTkc+OiZuYnNwOyAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSBOUEFSTCBXZWVkIEVjb2xvZ2lzdCBBbmR5IExlbnNzZW4gYW5kIEJpb2xvZ2ljYWwgU2NpZW5jZSBUZWNobmljaWFuIERlYiBXYXRlcnMgYXJlIHBhcnRpY2lwYXRpbmcgaW4gdGhlIERhbmllbHMgQ291bnR5IEZhcm0gVG91ciBpbiBTY29iZXksIE1ULCBKdWx5IDE3LiBXYXRlcnMsIHdobyB3b3JrIGZvciBOUEFSTCBFbnRvbW9sb2dpc3QgVG9tIFNoYW5vd2VyIChjdXJyZW50bHkgaW4gQ2hpbmEgdG8gY29sbGVjdCBwYXJhc2l0ZXMgYXR0YWNraW5nIHRoZSB3aGVhdCBzdGVtIHNhd2ZseSksIHdpbGwgam9pbiBSZXNlYXJjaCBBZ3Jvbm9taXN0IEJpbGwgQmVyem9uc2t5IGZyb20gTm9ydGggRGFrb3RhIFN0YXRlIFVuaXZlcnNpdHkgdG8gZGlzY3VzcyBzYXdmbHkgcmVzZWFyY2ggZWZmb3J0cyB1bmRlcndheSBpbiBNb250YW5hIGFuZCBOb3J0aCBEYWtvdGEuIERyLiBMZW5uc2VuIHdpbGwgZGlzY3VzcyDigJxXZWVkIG1hbmFnZW1lbnQgaW4gZHJ5bGFuZCBjcm9wcGluZyBzeXN0ZW1z4oCdIGR1cmluZyBoaXMgcHJlc2VudGF0aW9uLiBPdGhlciB1bml2ZXJzaXR5LCBnb3Zlcm5tZW50IGFuZCBpbmR1c3RyeSByZXBzIHdpbGwgZGlzY3VzcyB0b3BpY3MgcmFuZ2luZyBmcm9tIHBlc3RpY2lkZSByZWNvcmQga2VlcGluZywgd2VlZCBjb250cm9sIGluIG9yZ2FuaWMgcHJvZHVjdGlvbiBhbmQgc3ByaW5nIHdoZWF0IGFuZCBkdXJ1bSB2YXJpZXR5IHBsb3RzLjQgV2F0ZXJzIGlzIHdpdGggTlBBUkzigJlzIFBlc3QgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LCB3aGlsZSBMZW5zc2VuIGlzIHdpdGggdGhlIGxhYuKAmXMgQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdC48L1A+IAo8UD48U1RST05HPkFSUyBXZWVkIEVjb2xvZ2lzdCBUbyBTcGVhayBBdCAyNnRoIEFubnVhbCBTd2FuayBWYXJpZXR5IFRvdXI8L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpIE5QQVJMIFdlZWQgRWNvbG9naXN0IEFuZHkgTGVuc3NlbiBoYXMgYmVlbiBpbnZpdGVkIHRvIHBhcnRpY2lwYXRlIGluIHRoZSAyNnRoIGFubnVhbCBTd2FuayBWYXJpZXR5IFRvdXIgYXQgdGhlIFN3YW5rIGZhcm0gaW4gZWFzdGVybiBNb250YW5hIEp1bmUgMjAuIERyLiBMZW5zc2Vu4oCZcyBwcmVzZW50YXRpb24gd2lsbCBhZGRyZXNzIOKAnFdlZWQgc2VlZCBiYW5rIG1hbmFnZW1lbnQu4oCdIFRoZSB0b3VyIGlzIHNwb25zb3JlZCBieSBhcmVhIGFncmljdWx0dXJhbCBjaGVtaWNhbCByZXByZXNlbnRhdGl2ZXMsIHRoZSBDdWxiZXJ0c28gbiBhbmQgUG9wbGFyLCBNVCBDaGFtYmVycyBvZiBDb21tZXJjZSwgTW9udGFuYSBTdGF0ZSBVbml2ZXJzaXR5IGFuZCBSb29zZXZlbHQgQ291bnR5LiBMZW5zc2VuIGlzIGEgbWVtYmVyIG9mIE5QQVJM4oCZcyBBZ3JpY3VsdHVyYWwgU3lzdGVtcyBSZXNlYXJjaCBVbml0LjwvUD4gCjxQPjxTVFJPTkc+S2F6YWtoc3RhbiBSZXNlYXJjaGVyIE1lZXRzIFdpdGggTW9udGFuYSBBUlMgU2FsdGNlZGFyIFNjaWVudGlzdHM8L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpIEthemFraHN0YW4gem9vbG9neSBzZW5pb3IgcmVzZWFyY2hlciBSb21hbiBKYXNoZW5rbyB2aXNpdGVkIHRoZSBTaWRuZXksIE1vbnRhbmEgQVJTIHJlc2VhcmNoIGxhYm9yYXRvcnkgYXMgdGhlIGd1ZXN0IG9mIE5QQVJMIHNhbHRjZWRhciByZXNlYXJjaGVycywgRW50b21vbG9naXN0IERhdmUgS2F6bWVyIGFuZCBCb3RhbmlzdCBKb2huIEdhc2tpbiBKdWx5IDgtMTEuIEphc2hlbmtvIHdvcmtzIHdpdGggVVNEQSB0byBpZGVudGlmeSBpbnNlY3RzIHdpdGggdGhlIHBvdGVudGlhbCB0byBzZXJ2ZSBhcyBiaW9sb2dpY2FsIGNvbnRyb2wgYWdlbnRzIGZvciBzYWx0Y2VkYXIgYW5kIG90aGVyIG5veGlvdXMgd2VlZHMgdGhhdCBvcmlnaW5hdGVkIGluIEthemFraHN0YW4uIEphc2hlbmtvIGhlbHBlZCBpZGVudGlmeSB0aGUgQ2hpbmVzZSBsZWFmIGJlZXRsZSwgRGlvcmhhYmRhIGVsb25nYXRhLCB0aGF0IGhhcyBiZWVuIHN1Y2Nlc3NmdWwgaW4gY29tYmF0aW5nIHNhbHRjZWRhciBhdCBhIFd5b21pbmcgcmVzZWFyY2ggc2l0ZSBvdmVyc2VlbiBieSBEci4gS2F6bWVyLCBidXQgd2hpY2ggaGFzIGJlZW4gc3ViamVjdCB0byBzZXZlcmUgcHJlZGF0aW9uIGF0IGFub3RoZXIgc2l0ZSBsb2NhdGVkIG5lYXIgRm9ydCBQZWNrLCBNb250YW5hLiBKYXNoZW5rbyBhbmQgS2F6bWVyIHRvdXJlZCB0aGUgTW9udGFuYSBzaXRlIEp1bHkgMTAgYW5kIEphc2hlbmtvIHdpbGwgbm93IHR1cm4gaGlzIGF0dGVudGlvbiB0byBpZGVudGlmeWluZyBwb3RlbnRpYWwgcHJlZGF0b3ItcmVzaXN0YW50IGJpb2NvbnRyb2wgaW5zZWN0cyBmb3IgdXNlIGluIHRoYXQgYXJlYS4gRHJzLiBLYXptZXIgYW5kIEdhc2tpbiBhcmUgYm90aCBtZW1iZXJzIG9mIE5QQVJM4oCZcyBQZXN0IE1hbmFnZW1lbnQgUmVzZWFyY2ggVW5pdC48L1A+IAo8UD48U1RST05HPlVTREEtQVJTIExhYm9yYXRvcnkgSG9zdHMgSGlnaCBTY2hvb2wgQmlvbG9neSBDbGFzczo8L1NUUk9ORz4mbmJzcDsmbmJzcDsgT24gSnVuZSAyMHRoIHRoZSBzY2llbnRpc3RzIGFuZCBzdGFmZiBvZiB0aGUgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnkgaGVscGVkIHRoZSB0ZWFjaGVycyBvZiB0aGUgQmlzbWFyY2sgSGlnaCBTY2hvb2wgU3VtbWVyIEJpb2xvZ3kgY2xhc3NlcyBtYWtlIHNjaWVuY2UgY29tZSBhbGl2ZS4gRHJzLiBLcmlzIE5pY2hvbHMsIChTb2lsIE1pY3JvYmlvbG9naXN0KSwgUmViZWNjYSBQaGlsbGlwcyAoUGxhbnQgUGh5c2lvbG9naXN0KSwgYW5kIEVyaWMgU2Nob2xsamVnZXJkZXMgKEFuaW1hbCBTY2llbnRpc3QpIHByb3ZpZGVkIHRoZSA0MCBzdHVkZW50cyBhbmQgdGhlaXIgaW5zdHJ1Y3RvcnMg4oCYaGFuZHMgb27igJkgYmlvbG9neSBleHBlcmllbmNlIGF0IHRoZSBNYW5kYW4sIE5EIHJlc2VhcmNoIGNhbXB1cy4gQXMgdGhleSBzaG93ZWQgdGhlIHN0dWRlbnRzIHRoZWlyIHJlc2VhcmNoLCBlYWNoIEFSUyBzY2llbnRpc3QgZW1waGFzaXplZCB0aGUgc3ltYmlvdGljIGludGVycmVsYXRpb25zaGlwcyBiZXR3ZWVuIGh1bWFucywgYW5pbWFscywgcGxhbnRzLCBzb2lscywgYW5kIHRoZSBlbnZpcm9ubWVudCB3ZSBhbGwgbGl2ZSBpbi4gQWZ0ZXIgdGhlaXIgdGltZSB3aXRoIHRoZSBzY2llbnRpc3RzIGFuZCBsdW5jaCBwcm92aWRlZCBieSB0aGUgQXJlYSA0IFNDRCBDb29wZXJhdGl2ZSBSZXNlYXJjaCBGYXJtLCB0aGUgc3R1ZGVudHMgYXZhaWxlZCB0aGVtc2VsdmVzIG9mIHRoZSBiZWF1dGlmdWwgOTAgeWVhci1vbGQsIDE1IGFjcmUgY2FtcHVzIGZvciB0cmVlIGFuZCBuYXRpdmUgZ3Jhc3MgaWRlbnRpZmljYXRpb24sIGFuZCBjaGFzaW5nIGluc2VjdHMgZm9yIHRoZWlyIGJpb2xvZ3kgY2xhc3MgY29sbGVjdGlvbnMuJm5ic3A7IFNjb3R0IEJ5bGluLCBNYXJpYSBTdHJpcGVkIEZhY2Ug4oCTIENvbGxpbnMsIENsYXkgRXJpY2tzb24sIGFuZCBDYWwgVGhvcnNvbiBoZWxwZWQgd2l0aCB0aGUgYWN0aXZpdGllcy48L1A+IAo8UD48U1RST05HPkFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlIChBUlMpIFJlc2VhcmNoIExlYWRlciB0byBhZGRyZXNzIHdvcmtzaG9wIG9uIERpZXRhcnkgUmVmZXJlbmNlIEludGFrZXMgUmVzZWFyY2ggU3ludGhlc2lzPC9TVFJPTkc+LiBPbiBKdW5lIDctOCwgSmFuZXQgSHVudCwgUmVzZWFyY2ggTGVhZGVyLCBBUlMgR3JhbmQgRm9ya3MgSHVtYW4gTnV0cml0aW9uIFJlc2VhcmNoIENlbnRlciwgR3JhbmQgRm9ya3MsIE5ELCB3aWxsIGF0dGVuZCBhIHdvcmtzaG9wIHNwb25zb3JlZCBieSB0aGUgSW5zdGl0dXRlIG9mIE1lZGljaW5lIG9mIHRoZSBOYXRpb25hbCBBY2FkZW1pZXMgdG8gZGlzY3VzcyBpc3N1ZXMgcmVsYXRlZCB0byBrbm93bGVkZ2UgZ2FwcyBhbmQgcmVzZWFyY2ggbmVlZHMgaW4gZGV2ZWxvcGluZyBhbmQgYWR2YW5jaW5nIHRoZSBEaWV0YXJ5IFJlZmVyZW5jZSBJbnRha2VzLiZuYnNwOyBTaGUgaGFzIGJlZW4gaW52aXRlZCBhcyBhIOKAnGZyZXNoIHBlcnNwZWN0aXZlIHNwZWFrZXLigJ0gdG8gYWRkcmVzcyByZXNlYXJjaCBuZWVkcyByZWxhdGVkIHRvIHRyYWNlIGVsZW1lbnQgbnV0cml0aW9uLiBUaGUgd29ya3Nob3Agd2lsbCBiZSBoZWxkIGF0IHRoZSBLZWNrIENlbnRlciBvZiB0aGUgTmF0aW9uYWwgQWNhZGVtaWVzIGluIFdhc2hpbmd0b24sIERDLjwvUD4gCjxQPjxTVFJPTkc+WW914oCZcmUgTmV2ZXIgVG9vIFlvdW5nIFRvIExlYXJuIEF0IEFSUzo8L1NUUk9ORz4mbmJzcDsgT24gTWF5IDIsIE5QQVJMIGhvc3RlZCAyMCBwbHVzIFNpZG5leSwgTW9udGFuYSwgcHJlc2Nob29sIHN0dWRlbnRzLCBhZ2VzIDMgdG8gNiwgYXQgdGhlIFNpZG5leSwgQVJTIGZhY2lsaXR5LiBUaGUgeW91bmdzdGVycyBjYW1lIHRvIGxlYXJuIG1vcmUgYWJvdXQgaW5zZWN0cyB0aHJvdWdoIGNvbG9yZnVsIGRpc3BsYXlzIGFuZCBmdW4gZXhlcmNpc2VzIHNldCB1cCBpbiB0aGUgbGFi4oCZcyB0ZWNoIHRyYW5zZmVyIHJvb20uIEluIGFkZGl0aW9uIHRvIHZpZXdpbmcgZGlzcGxheXMgb2YgcGlubmVkIGluc2VjdHMsIHRoZSB5b3VuZ3N0ZXJzIGxlYXJuZWQgYWJvdXQ6IGluc2VjdCBib2R5IHBhcnRzLCB3aGF0IGluc2VjdHMgZWF0LCB3aGF0IGVhdHMgaW5zZWN0cywgaG93IGluc2VjdHMgZWF0LCBpbnNlY3Qgc291bmRzIGFuZCBob3cgaW5zZWN0cyBtYWtlIHNvdW5kcy4gVGhlIHlvdW5nc3RlcnMgdGhlbiBsZWFybmVkIGFib3V0IGdvb2QgYW5kIGJhZCBpbnNlY3RzIGFuZCBob3cgZ29vZCBpbnNlY3RzIGNhbiBiZSB1c2VkIHRvIGhlbHAgY29udHJvbCBub3hpb3VzIHdlZWRzIHRocm91Z2ggYmlvbG9naWNhbCBjb250cm9sLCBhIG1ham9yIGZvY3VzIG9mIHRoZSBsYWLigJlzIFBlc3QgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LiBIZWxwaW5nIHdpdGggdGhlIHByZXNlbnRhdGlvbnMgd2VyZSBUZWNobmljYWwgSW5mb3JtYXRpb24gU3BlY2lhbGlzdCBCZXRoIFJlZGxpbiBhbmQgUE1SVSBCaW9sb2dpY2FsIFNjaWVuY2UgVGVjaG5pY2lhbiBLaW1iZXJseSBNYW5uLiBUaGlzIGlzIHRoZSBzZWNvbmQgeWVhciB0aGUgcHJlc2Nob29sZXJzIGhhdmUgdmlzaXRlZCB0aGUgU2lkbmV5LCBNVCBsYWIuPEJSPjwvUD4gCjxQPjxTVFJPTkc+QVBISVMgRGVzaWduYXRlZCBUU0UgRXBpZGVtaW9sb2d5IHdvcmtzaG9wIGF0IFVTTUFSQzo8L1NUUk9ORz4mbmJzcDsgQVBISVMgd2lsbCBiZSBjb25kdWN0aW5nIGEgd2Vlay1sb25nIHdvcmtzaG9wIG9uICJEZXNpZ25hdGVkIFRTRSBFcGlkZW1pb2xvZ3kiIGF0IHRoZSBDZW50ZXIuJm5ic3A7IFRoZSB0cmFpbmluZyB3aWxsIGJlZ2luIGF0IDg6MDAgQU0gb24gTW9uZGF5LCBNYXkgMSwgYW5kIGVuZCBhdCAxMTowMCBBTSBvbiBGcmlkYXksIE1heSA1LiZuYnNwOyBUaGV5IGFyZSBleHBlY3RpbmcgYWJvdXQgMTI1IGF0dGVuZGVlcyAoaW5jbHVkaW5nIHByZXNlbnRlcnMpLiZuYnNwOyBUaGUgYXR0ZW5kZWVzIGFyZSBBUEhJUyB2ZXRlcmluYXJpYW5zIGZyb20gYWxsIG92ZXIgdGhlIFVTQSAob25lIG9yIHR3byBwZXIgc3RhdGUpLiZuYnNwOyBUaGV5IHdpbGwgYmUgdXNpbmcgdGhlIEJ1aWxkaW5nIDE5IEF1ZGl0b3JpdW0sIGFuZCBCdWlsZGluZ3MgMiBhbmQgMjAsIGFzIHdlbGwgYXMgR1BWRUMgZmFjaWxpdGllcy4mbmJzcDsgVGhlIHdlZWsgbG9uZyBhZ2VuZGEgaXMgcG9zdGVkIG9uIFVTTUFSQyBpbnRyYW5ldC4mbmJzcDsgU2NvdHQgT3Bicm9laywgU2h1bmEgSm9uZXMsIE1pa2UgV2FsbGFjZSwgYW5kIFRlcnJ5IE1hZHNvbiBoYXZlIHNwZW50IGEgZ3JlYXQgZGVhbCBvZiB0aW1lIHdpdGggb3VyIEFQSElTIGNvbGxlYWd1ZXMgaW4gcGxhbm5pbmcgZm9yIHRoaXMgbWVldGluZy4mbmJzcDsgU2NvdHQsIFNodW5hIGFuZCBNaWtlIHdpbGwgYmUgaGVhdmlseSBpbnZvbHZlZCBkdXJpbmcgdGhlIHdlZWsuJm5ic3A7IEJydWNlIExhcnNlbiBhbmQgQnV0Y2ggSGFzc2xlciB3aWxsIGFsc28gaGVscC48L1A+IAo8UD48U1RST05HPk5vcnRoIENlbnRyYWwgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnkgVG8gSG9sZCBCdWlsZGluZyBEZWRpY2F0aW9uPC9TVFJPTkc+OiZuYnNwOyBPbiBBcHJpbCAyMHRoLCB0aGUgTm9ydGggQ2VudHJhbCBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSB3aWxsIGhvbGQgYSBzcGVjaWFsIGNlcmVtb255IHRvIGNlbGVicmF0ZSB0aGUgY29tcGxldGlvbiBvZiAxMywwMDAgc3F1YXJlIGZlZXQgb2YgbmV3IGxhYm9yYXRvcnkvb2ZmaWNlIHNwYWNlLCBhIG5ldyBUZWNobm9sb2d5IFRyYW5zZmVyIENlbnRlciwgYW5kIHRoZSByZW5vdmF0aW9uIG9mIGV4aXN0aW5nIGZhY2lsaXRpZXMgdGhhdCB3aWxsIGVuaGFuY2UgdGhlIGFncmljdWx0dXJhbCByZXNlYXJjaCBjYXJyaWVkIG91dCBhdCB0aGUgbG9jYXRpb24uJm5ic3A7IEZvbGxvd2luZyB0aGUgZGVkaWNhdGlvbiBjZXJlbW9ueSwgTkNBUkwgc3RhZmYgd2lsbCBiZSBvZmZlcmluZyBndWlkZWQgdG91cnMgb2YgdGhlIGVudGlyZSBmYWNpbGl0eS4mbmJzcDsgVGhleeKAmWxsIGFsc28gYmUgaG9zdGluZyBhbiBvcGVuIGhvdXNlIGluIHRoZSBsYXRlIGFmdGVybm9vbiBmb3IgY29tbXVuaXR5IG1lbWJlcnMgdW5hYmxlIHRvIGF0dGVuZCB0aGUgbW9ybmluZyBjZXJlbW9ueS4mbmJzcDsgU3BlY2lhbCBndWVzdHMgaW5jbHVkZSBTZW5hdG9yIFRpbSBKb2huc29uLCBTb3V0aCBEYWtvdGE7IFVTREEgVW5kZXIgU2VjcmV0YXJ5IGZvciBSZXNlYXJjaCwgRWR1Y2F0aW9uIGFuZCBFY29ub21pY3MgTWVybGUgUGllcnNvbjsgQVJTIEFkbWluaXN0cmF0b3IgRWR3YXJkIEIuIEtuaXBsaW5nOyBhbmQgU291dGggRGFrb3RhIFN0YXRlIFVuaXZlcnNpdHkgUHJlc2lkZW50IFBlZ2d5IEdvcmRvbiBNaWxsZXIuPC9QPiAKPFAgYWxpZ249cmlnaHQ+PEEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L0E+PC9QPiAKPFA+PC9QPiAKPFA+PFNUUk9ORz5BUlMgUmVwIEluc3RydWN0cyBXU1dTIFdlZWQgTWFuYWdlbWVudCBCaW9jb250cm9sIENvdXJzZTwvU1RST05HPi4mbmJzcDsgT24gQXByaWwgMjQtMjcsIE5QQVJMIEJpb2xvZ2ljYWwgU2NpZW5jZSBUZWNobmljaWFuIE1hcnkgTWF5ZXIgaGFzIGJlZW4gYXNrZWQgdG8gY29uZHVjdCBhIGhhbmRzLW9uIHdvcmtzaG9wIHNlc3Npb24gb24gYmlvbG9naWNhbCBjb250cm9sIG9mIHNhbHRjZWRhciBhbmQgc3BvdHRlZCBhbmQgZGlmZnVzZSBrbmFwd2VlZHMgYXQgQ2hpY28gSG90IFNwcmluZ3MgaW4gUHJheSwgTVQuIE1heWVy4oCZcyBwcmVzZW50YXRpb24gaXMgcGFydCBvZiB0aGUgYW5udWFsIE5veGlvdXMgV2VlZCBTaG9ydCBDb3Vyc2Ugc3BvbnNvcmVkIGJ5IHRoZSBXZXN0ZXJuIFNvY2lldHkgb2YgV2VlZCBTY2llbmNlLiBUaGUgc2hvcnQgY291cnNlIHdhcyBkZXZlbG9wZWQgZm9yIHB1YmxpYyBhbmQgcHJpdmF0ZSBsYW5kIG1hbmFnZXJzIHRoYXQgd2FudCB0byBnYWluIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2Ygbm94aW91cyB3ZWVkIG1hbmFnZW1lbnQuIFRoZSBjb3Vyc2Ugc3VwcG9ydHMgYW5kIHRlYWNoZXMgZWNvbG9naWNhbGx5IHNvdW5kIG1hbmFnZW1lbnQgcHJhY3RpY2VzIGZvciBpbnZhc2l2ZSBwbGFudHMuIFdlZWQgbWFuYWdlbWVudCBwcm9mZXNzaW9uYWxzIGZyb20gdGhyb3VnaG91dCB0aGUgV2VzdCBjb25kdWN0IHRoZSB0cmFpbmkgbmcgcHJvZ3JhbSBkZXNpZ25lZCB0byBlbmNvdXJhZ2UgaW50ZXJhY3Rpb24gYmV0d2VlbiBpbnN0cnVjdG9ycyBhbmQgcGFydGljaXBhbnRzLiBMYWIgYW5kIGZpZWxkIGV4ZXJjaXNlcywgaW4gYWRkaXRpb24gdG8gY2xhc3Nyb29tIHNlc3Npb25zLCBhcmUgdXNlZCBhcyB0ZWFjaGluZyBtZXRob2RzLiBNYXllciwgYSBtZW1iZXIgb2YgTlBBUkzigJlzIFBlc3QgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LCBoYXMgcGFydGljaXBhdGVkIGFzIGEgc2hvcnQgY291cnNlIGluc3RydWN0b3IgaW4gYmlvY29udHJvbCBmb3IgdGhlIHBhc3QgMTAgeWVhcnMuPC9QPiAKPFA+PFNUUk9ORz5BZ3JpY3VsdHVyYWwgUmVzZWFyY2ggU2VydmljZSAoQVJTKSBHcmFuZCBGb3JrcyBIdW1hbiBOdXRyaXRpb24gUmVzZWFyY2ggQ2VudGVyIHNjaWVudGlzdCB0byBwcmVzZW50IG91dHJlYWNoIHNlbWluYXI8L1NUUk9ORz46IE9uIEFwcmlsIDExLCBDdXJ0aXNzIEh1bnQsIHJlc2VhcmNoIGJpb2xvZ2lzdCwgd2lsbCBwcmVzZW50IGEgc2VtaW5hciBlbnRpdGxlZCwgIlRoZSBCcmlja3MgKENhbGNpdW0pIG9yIHRoZSBNb3J0YXIgKEV2ZXJ5dGhpbmcgRWxzZSk6IFdoaWNoIGlzIE1vcmUgSW1wb3J0YW50IGluIGEgSGVhbHRoeSBCb25lPyIgVGhlIHNlbWluYXIgaXMgcGFydCBvZiB0aGUgVW5pdmVyc2l0eSBvZiBOb3J0aCBEYWtvdGEgTWVkaWNhbCBTY2hvb2wgZm9yIHRoZSBQdWJsaWMgbGVjdHVyZSBzZXJpZXMgb24gIkFnaW5nIGZyb20gdGhlIE91dHNpZGUgSW4uIiBUaGUgc2VyaWVzIGludHJvZHVjZXMgdGhlIHB1YmxpYyB0byB0aGUgYmFzaWMgYmlvbG9neSBvZiBhZ2luZyBvZiBvcmdhbiBzeXN0ZW1zLiBUaGUgdmlkZW9jb25mZXJlbmNlIHdpbGwgYmUgYXZhaWxhYmxlIHRvIHBhcnRpY2lwYW50cyBpbiBzZXZlcmFsIGNpdGllcyBpbiBOb3J0aCBEYWtvdGEgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGJ5IHdlYmNhc3QgPEEgaHJlZj0iaHR0cDovL3NtaHMubWVkLnVuZC5ub2Rhay5lZHUvVU5EU01IUy93ZWJjYXN0cy9taW5pbWVkaWNhbHNjaG9vbC5odG1sIj5oZXJlPC9BPi48QlI+PC9QPiAKPFA+PFNUUk9ORz5BUlMgUGFydGljaXBhdGVzIEluIE5QU+KAmSDigJxGdXIgVHJhZGUgTGlmZeKAnSBFZHVjYXRpb24gUHJvZ3JhbTwvU1RST05HPi4mbmJzcDsgT24gQXByaWwgOCwgTlBBUkwgQmlvbG9naWNhbCBTY2llbmNlIFRlY2huaWNpYW4gS2ltYmVybHkgTWFubiBwYXJ0aWNpcGF0ZWQgaW4gdGhlIE5hdGlvbmFsIFBhcmsgU2VydmljZeKAmXMg4oCcRnVyIFRyYWRlIExpZmXigJ0gb3V0cmVhY2ggcHJvZ3JhbSBhdCB0aGUgRm9ydCBVbmlvbiBUcmFkaW5nIFBvc3QgTmF0aW9uYWwgSGlzdG9yaWMgU2l0ZSBuZWFyIFdpbGxpc3RvbiwgTm9ydGggRGFrb3RhLiZuYnNwOyBBcHByb3hpbWF0ZWx5IDUwIG1pZGRsZSBzY2hvb2xzIHN0dWRlbnRzIGZyb20gYXJvdW5kIHRoZSBhcmVhIHBhcnRpY2lwYXRlZCBpbiB0aGUgaGFuZHMtb24gYWN0aXZpdGllcywgd2hpY2ggaW5jbHVkZWQgYSBuYXR1cmUgdHJhaWwgaGlrZSB3aXRoIGRpc2N1c3Npb24gb2YgbmF0aXZlIGFuZCBpbnRyb2R1Y2VkIHBsYW50czsgYnVmZmFsbyBoaWRlIHRhbm5pbmc7IHRyYWRlIHRyYW5zYWN0aW9uczsgdGlwaSBzZXR1cDsgYmxhY2tzbWl0aGluZzsgSW5kaWFuIGdhbWVzOyBiZWFkIHNld2luZyBhbmQgdHJhZGl0aW9uYWwgZm9vZCBwcmVwYXJhdGlvbi4gRm9yIGhlciBwb3J0aW9uIG9mIHRoZSBwcm9ncmFtLCBNYW5uIGRpc2N1c3NlZCBjaGFyYWN0ZXJpc3RpYyBzIG9mIG5hdGl2ZSBhbmQgaW50cm9kdWNlZCBncmFzc2VzIGluIHRoZSBhcmVhLCBhbG9uZyB3aXRoIGluZm9ybWF0aW9uIG9uIHRoZSBjb21wZXRpdGl2ZSBuYXR1cmUgb2YgaW50cm9kdWNlZCB3ZWVkcyBzdWNoIGFzIGxlYWZ5IHNwdXJnZSBhbmQgdGhlIHVzZSBvZiBiaW9sb2dpY2FsIGNvbnRyb2wgdG8gbWFuYWdlIHRoZW0uIE1hbm4sIGEgbWVtYmVyIG9mIE5QQVJM4oCZcyBQZXN0IE1hbmFnZW1lbnQgUmVzZWFyY2ggVW5pdCwgd29ya3MgaW4gdGhlIFNpZG5leSwgTVQgbGFi4oCZcyB3ZWVkIGJpb2NvbnRyb2wgcHJvZ3JhbS48L1A+IAo8UD48U1RST05HPk5vcnRoIERha290YSBIaWdoIFNjaG9vbCBTY2llbmNlIFRlYWNoZXJzIEluc3BlY3QgQVJTIFJlc2VhcmNoOjwvU1RST05HPiBNZW1iZXJzIG9mIHRoZSBOb3J0aCBEYWtvdGEgU2NpZW5jZSBUZWFjaGVycyBBc3NvY2lhdGlvbiB3aWxsIHRvdXIgdGhlIE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5IGFuZCBsaXN0ZW4gdG8gZm9ybWFsIHByZXNlbnRhdGlvbnMgYnkgTkdQUkwgc2NpZW50aXN0cyBvbiBGcmlkYXksIE1hcmNoIDMxc3QuJm5ic3A7IEhvbGx5IEpvaG5zb24sIGFuZCBEcnMuIEtyaXMgTmljaG9scyBhbmQgTWFyayBMaWViaWcgd2lsbCBtYWtlIHByZXNlbnRhdGlvbnMgb24gTkdQUkwgcmVzZWFyY2gsIEFSUyBHbG9iYWwgQ2hhbmdlIHJlc2VhcmNoLCBhbmQgQVJTIHNvaWwgbWljcm9iaW9sb2d5IHJlc2VhcmNoLiBUaGVpciByZXNlYXJjaCB0b3VyIHdpbGwgdmlzaXQgc2V2ZXJhbCByZXNlYXJjaCBsYWJzIGFuZCB0aGUgcmVzZWFyY2ggZ3JlZW5ob3VzZSBmYWNpbGl0aWVzLiBUaGUgZ3JvdXAgb2YgMzAgdGVhY2hlcnMgd2lsbCBjb25jbHVkZSB0aGVpciBleHBlcmllbmNlIHdpdGggYSBicmllZiB2aXNpdCB0byB0aGUgbmV3IEJlZWYgUmVzZWFyY2ggRmFjaWxpdHkgYW5kIEFyZWEgNCBTQ0QgQ29vcGVyYXRpdmUgUmVzZWFyY2ggRmFybSB0aGF0IHN1cHBvcnRzIE5HUFJMIGZpZWxkLXNjYWxlIGNvbnNlcnZhdGlvbiByZXNlYXJjaC48L1A+IAo8UD48U1RST05HPlVTREEtQVJTIFNjaWVudGlzdCBUcmFpbnMgQ2F0dGxlbWVuIG9uIExpdmVzdG9jayBXYXN0ZSBNYW5hZ2VtZW50OjwvU1RST05HPiBPbiBNYXJjaCA3LTE3LCBEci4gU2NvdHQgS3JvbmJlcmcsIFJ1bWluYW50IE51dHJpdGlvbmlzdCBhdCB0aGUgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnksIHBhcnRpY2lwYXRlZCBpbiBmb3VyIHR3by1kYXkg4oCcTGl2ZXN0b2NrIGFuZCBNYW51cmUgTnV0cmllbnQgTWFuYWdlbWVudOKAnSBzZW1pbmFycyBmb3IgZmFybWVycyBhbmQgcmFuY2hlcnMgdGhyb3VnaG91dCB0aGUgcmVnaW9uLiBJbiBoaXMgcHJlc2VudGF0aW9uIHRpdGxlZCwg4oCcTGV0IENhdHRsZSBIdXN0bGUgVGhlaXIgRmVlZDogV2ludGVyaW5nIENvd3MgYW5kIEdyb3dpbmcvRmF0dGVuaW5nIFllYXJsaW5ncyBvbiB0aGUgRmllbGQgd2l0aCBBbm51YWwgRm9yYWdlc+KAnSBwcm9maWxlZCB0aGUgTWFuZGFuLCBORCByZXNlYXJjaCBkZXZlbG9waW5nIGFubnVhbCBub3J0aGVybiBhZ3Jvbm9teSBjcm9wcyBzd2F0aC1ncmF6ZWQgdGhyb3VnaG91dCB0aGUgd2ludGVyIHRvIGluY3JlYXNlIHByb2ZpdGFiaWxpdHkgYW5kIHJlZHVjZSBlbnZpcm9ubWVudGFsIGltcGFjdC4gVGhlIGZvdXIgc2Vzc2lvbnMgYXQgRGV2aWxzIExha2UsIFZhbGxleSBDaXR5LCBEaWNraW5zb24sIGFuZCBNaW5vdCBhdmVyYWdlZCBvZiA1MCBjYXR0bGVtZW4gYXQgZWFjaCBtZWV0aW5nLiBLcm9uYmVyZyByZWNlaXZlZCB2ZXJ5IHBvc2l0aXZlIGZlZWRiYWNrIG9uIHRoaXMgbmV3IGlubm92YXRpdmUgZmVlZGluZyBzdHJhdGVneS4gPC9QPiAKPFA+PFNUUk9ORz5VU0RBLUFSUyBBbmltYWwgU2NpZW50aXN0IFByZXNlbnRzIGF0IFJlZ2lvbmFsIFNjaWVudGlmaWMgQ29uZmVyZW5jZTo8L1NUUk9ORz4gT24gTWFyY2ggMjh0aCwgRHIuIFNjaG9sbGplZ2VyZGVzIG1hZGUgYSBwcmVzZW50YXRpb24gdGl0bGVkLCDigJxGYXQgU3VwcGxlbWVudGF0aW9uIG9mIEJlZWYgQ293cyBvbiBhIEZvcmFnZS1CYXNlZCBEaWV04oCdIGF0IHRoZSDigJxQZml6ZXIvTkRTVSBTY2llbnRpZmljIEV4Y2hhbmdlLuKAnSBUaGUgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnkgcmVzZWFyY2hlciBqb2luZWQgc2NpZW50aWZpYyBjb2xsZWFndWVzIGZyb20gcHJpdmF0ZSBpbmR1c3RyeSBhbmQgb3RoZXIgcHVibGljIHJlc2VhcmNoIG9yZ2FuaXphdGlvbiBmcm9tIHRocm91Z2hvdXQgTm9ydGggRGFrb3RhLCBTb3V0aCBEYWtvdGEgYW5kIE1vbnRhbmEgYXQgdGhpcyBhbm51YWwgcmVzZWFyY2ggY29uZmVyZW5jZSBhdCBEaWNraW5zb24sIE5vcnRoIERha290YS48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIFByZXNlbnQgYXQgUmVzZWFyY2ggUmVzdWx0cyAmIFRlY2hub2xvZ3kgQ29uZmVyZW5jZTwvU1RST05HPjogVGhlIEFyZWEgNCBTQ0QgQ29vcGVyYXRpdmUgUmVzZWFyY2ggRmFybSBoZWxkIHRoZWlyIDIybmQgYW5udWFsIHB1YmxpYyB0ZWNobmljYWwgdHJhbnNmZXIgZXZlbnQgZm9yIGZhcm1lcnMgYW5kIHJhbmNoZXJzIG9uIEZlYnJ1YXJ5IDIxc3QgaW4gQmlzbWFyY2ssIE5vcnRoIERha290YS4gT3ZlciAxNjAgcHJvZHVjZXJzIHBhcnRpY2lwYXRlZCBpbiB0aGUgYWxsLWRheSByZXNlYXJjaCBpbmZvcm1hdGlvbiBldmVudC4gQWdyaWN1bHR1cmFsIFJlc2VhcmNoIFNlcnZpY2Ugc2NpZW50aXN0cyBmcm9tIHRoZSBOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSBpbiBNYW5kYW4sIE5vcnRoIERha290YSBwcm92aWRlZCBwcmVzZW50YXRpb25zIG9uIHRoZWlyIHJlc2VhcmNoIHRvIGFzc2lzdCBBZyBwcm9kdWNlcnMgYmVjb21lIG1vcmUgZmluYW5jaWFsbHkgZWZmZWN0aXZlIGFuZCBlbmVyZ3kgZWZmaWNpZW50IGluIHRoZWlyIGZhcm0gYW5kIHJhbmNoIHByb2R1Y3Rpb24gc3lzdGVtcy4gUGFydGljaXBhdGluZyBzdGFmZiBhbmQgdGhlaXIgdG9waWNzIHdlcmU6IERyLiBTdGV2ZSBNZXJyaWxsLCBBUlMgU29pbCBTY2llbnRpc3QgLSAiQ3JvcCBTZXF1ZW5jaW5nIHRvIFJlZHVjZSBDb3N0cyIsIERyLiBKb2UgS3J1cGluc2t5LCBBUlMgUGxhbnQgUGF0aG9sb2dpc3QgLSAiUmVkdWNlIERpc2Vhc2UgTG9zc2VzIGJ5IFBsYW5uaW5nIEFoZWFkIiwgRHIuIEtyaXMgTmljaG9scywgQVJTIFNvaWwgTWljcm9iaW9sb2dpc3QgLSAiTWFrZSBTb2lsIEJpb2xvZ3kgV29yayBGb3IgWW91IiwgRHIuIFJlYmVjY2EgUGhpbGxpcHMsIEFSUyBQbGFudCBQaHlzaW9sb2dpc3QgLSAiUmVtb3RlIFByb2R1Y3RzIGZvciBJbnRlZ3JhdGVkIEFncmljdWx0dXJhbCBMYW5kc2NhcGVzIiwgRHIuIERvbiBUYW5ha2EsIEFSUyBTb2lsIFNjaWVudGlzdCAtICJXaW50ZXIgRmVlZGluZyBBbm51YWwgQ3JvcHMiLCZuYnNwOyBEci4gRXJpYyBTY2hvbGxqZWdlcmRlcywgQVJTIFJ1bWluYW50IE51dHJpdGlvbmlzdCAtICJMb3cgSW5wdXQgSGlnaCBPdXRwdXQgQ293cyIgYW5kICJMZWFzdCBDb3N0Jm5ic3A7IENhdHRsZSBHcm93aW5nIGFuZCBGaW5pc2hpbmciIChwcmVzZW50YXRpb24gcHJlcGFyZWQgYnkgRHIuIFNjb3R0IEtyb25iZXJnLCBBUlMgQW5pbWFsIFNjaWVudGlzdCksIERyLiBKb2huIEhlbmRyaWNrc29uLCBBUlMgUmFuZ2UgU2NpZW50aXN0IC0gIk1hbmFnaW5nIFJhbmdlIHRvIFJlZHVjZSBDb3N0cyIsIGFuZCBEci4gSm9obiBCZXJkYWhsLCBBUlMgRm9yYWdlIEJyZWVkZXIgLSAiTmV3IEdyYXNzIGZvciBIYXkgJiBHcmF6aW5nIi4gVmVybiBIb2ZmbWFuLCBORFNVIEV4dGVuc2lvbiBBZyBFbmdpbmVlciBwcmVzZW50ZWQgIlB1dCBZb3VyICQkJCBXaGVyZSBJdCBDb3VudHMiLCBhIHJlcG9ydCBvbiB0aGUgTkRTVS9BUlMgY29sbGFib3JhdGl2ZSBzaXRlLXNwZWNpZmljIHZhcmlhYmxlIGFwcGxpY2F0aW9uIHJlc2VhcmNoIGF0IE5HUFJMLiBSb24gV2VkaWVyaG9sZHQsIE5EU1UgTnV0cmllbnQgTWFuYWdlbWVudCBTcGVjaWFsaXN0IHByZXNlbnRlZCAiVmFsdWUgb2YgTWFudXJlIGFzIGEgRmVydGlsaXplci4iIFN0ZXZlIE1ldHpnZXIgb2YgdGhlIE5vcnRoIERha290YSBGYXJtIGFuZCBSYW5jaCBCdXNpbmVzcyBNYW5hZ2VtZW50IEVkdWNhdGlvbiBQcm9ncmFtIHV0aWxpemVkIGFjdHVhbCBvbi1mYXJtIHJlY29yZCBzdGF0aXN0aWNzIHRvIHByZXNlbnQsICJJbnRlZ3JhdGluZyBDcm9wcyBhbmQgTGl2ZXN0b2NrIHRvIFJlZHVjZSBSaXNrLiIgVGltIEZhbGxlciwgbmV3IGRpcmVjdG9yIG9mIHRoZSBOb3J0aGVybiBHcmVhdCBQbGFpbnMgQWdyb0Vjb1N5c3RlbXMgUmVzZWFyY2ggQ2VudGVyIHNoYXJlZCBhbHNvIHRoZWlyIGNvbGxhYm9yYXRpdmUgZGlyZWN0aW9uIHdpdGggdGhlIGF1ZGllbmNlLiBUaGUgNDAwIGFjcmUgQXJlYSA0IFNDRCBDb29wZXJhdGl2ZSBSZXNlYXJjaCBGYXJtIHdhcyBkZXZlbG9wZWQgYnkgdGhlIGxvY2FsIHNvaWwgY29uc2VydmF0aW9uIGRpc3RyaWN0cyAyMiB5ZWFycyBhZ28gdG8gc3VwcG9ydCBuYXR1cmFsIHJlc291cmNlcyByZXNlYXJjaCBvZiB0aGUgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIFNlcnZpY2UuPC9QPiAKPFA+PFNUUk9ORz5BUlMgUGF0aG9sb2dpc3QgSW52aXRlZCB0byBHaXZlIE9wZW5pbmcgS2V5bm90ZSBBZGRyZXNzIHRvIFBhdGhvbG9naXN0cyBpbiBTb3V0aCBBZnJpY2E8L1NUUk9ORz46Jm5ic3A7IChVU0RBLUFSUyBOb3J0aGVybiBDcm9wIFNjaWVuY2UgTGFib3JhdG9yeSwgRmFyZ28sIE5EKSZuYnNwOyBOQ1NMIFBhdGhvbG9naXN0IFRvbSBHdWx5YSBnYXZlIHRoZSBvcGVuaW5nIGtleW5vdGUgYWRkcmVzcyBhdCB0aGUgNDR0aCBDb25ncmVzcyBvZiB0aGUgU291dGhlcm4gQWZyaWNhbiBTb2NpZXR5IGZvciBQbGFudCBQYXRob2xvZ3ksIGhlbGQgYXQgTWFnYWxpZXMgUGFyaywgU291dGggQWZyaWNhLCAyMiB0byAyNSBKYW51YXJ5LiZuYnNwOyZuYnNwOyBEci4gR3VseWHigJlzIGFkZHJlc3Mgd2FzIGVudGl0bGVkIOKAnFJlY2VudCBhZHZhbmNlcyBhbmQgbm92ZWwgY29uY2VwdHMgaW4gbWFuYWdpbmcgU2NsZXJvdGluaWEgZGlzZWFzZXMgb24gc3VuZmxvd2VyIGFuZCBvdGhlciBjcm9wc+KAnSBhbmQgYWxzbyBoaWdobGlnaHRlZCByZXNlYXJjaCBzcG9uc29yZWQgYnkgdGhlIFVTREEgU2NsZXJvdGluaWEgSW5pdGlhdGl2ZS4mbmJzcDsmbmJzcDsgQWZ0ZXJ3YXJkcywgRHIuIEd1bHlhIHZpc2l0ZWQgd2l0aCBzY2llbnRpc3RzIGZyb20gU291dGggQWZyaWNh4oCZcyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggQ291bmNpbCBhbmQgdGhlIFVuaXZlcnNpdHkgb2YgUHJldG9yaWEuJm5ic3A7Jm5ic3A7Jm5ic3A7IERyLiBHdWx5YSBhbHNvIG1ldCB3aXRoIER1dGNoIHNjaWVudGlzdHMgZnJvbSBXYWdlbmluZ2VuIFVuaXZlcnNpdHkgb24gaGlzIHJldHVybiB0cmlwIHRvIGRpc2N1c3MgYSBuZXdseSBmdW5kZWQgRHV0Y2ggcHJvamVjdCB0byBtYW5hZ2UgZG93bnkgbWlsZGV3IG9uIG9ybmFtZW50YWwgc3VuZmxvd2Vycy4mbmJzcDsgRHIuIEd1bHlhIGlzIGEgbWVtYmVyIG9mIHRoZSBTdW5mbG93ZXIgUmVzZWFyY2ggVW5pdC48L1A+IAo8UCBhbGlnbj1yaWdodD48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1A+IAo8UD48U1RST05HPk1lZGlhIENvbnRhY3RzOjwvU1RST05HPjwvUD4gCjxQPjxTVFJPTkc+QVJTIENoZW1pc3QgQ29udGFjdGVkIGJ5IE1lZGlhIE9yZ2FuaXphdGlvbnM6PC9TVFJPTkc+Jm5ic3A7IChVU0RBLUFSUyBOb3J0aGVybiBDcm9wIFNjaWVuY2UgTGFib3JhdG9yeSwgRmFyZ28sIE5EKSZuYnNwOyZuYnNwOyBBUlMgUmVzZWFyY2ggQ2hlbWlzdCBCcmFkeSBWaWNrIHdhcyBjb250YWN0ZWQgYnkgdGhlIEZvcnVtLCBhIHJlZ2lvbmFsIG5ld3NwYXBlciBmcm9tIEZhcmdvLCBORCwgYW5kIHRoZSBsb2NhbCBGT1ggbmV3cyBzdGF0aW9uIGZvciBjb21tZW50IG9uIGEgbmV3cyByZWxlYXNlIGJ5IHJlc2VhcmNoZXJzIGZyb20gdGhlIFVuaXZlcnNpdHkgb2YgQm9ubiwgR2VybWFueS4mbmJzcDsgVGhlIEdlcm1hbiByZXNlYXJjaGVycyByZXBvcnRlZCBvbiBhbiBhbnRpZnVuZ2FsIHRveGluIGlzb2xhdGVkIGZyb20gU2NsZXJvdGluaWEtaW5mZWN0ZWQgc3VuZmxvd2VyIHRoYXQgc2hvd2VkIGFudGl2aXJhbCBhY3Rpdml0eSBhZ2FpbnN0IEhJViBpbiBpbiB2aXRybyBleHBlcmltZW50cy48L1A+IAo8UD48U1RST05HPk11bHRpcGxlIG5ld3MgbWVkaWEgY29udGFjdHMgZm9sbG93aW5nIHRoZSBQcmVzaWRlbnTigJlzIFN0YXRlIG9mIHRoZSBVbmlvbiBhZGRyZXNzOjwvU1RST05HPiZuYnNwOyBPbiBGZWJydWFyeSAxLCBLZW5uZXRoIFAuIFZvZ2VsLCZuYnNwOyBQbGFudCBHZW5ldGljaXN0ICYgUmVzZWFyY2ggTGVhZGVyLCBMaW5jb2xuLCBORSB3YXMgY29udGFjdGVkIGJ5IExpbmNvbiwgTkUgQUJDIGFmZmlsaWF0ZSBhYm91dCBzd2l0Y2hncmFzcy4mbmJzcDsgTWFkZSBhIGJyaWVmIHZpZGVvIHRhcGUgaW4gYSBmaWVsZCBudXJzZXJ5IGNvbnRhaW5pbmcgZG9ybWFudCBzd2l0Y2hncmFzcyBwbGFudHMuJm5ic3A7IFZpZGVvIHdhcyBvbiBMaW5jb2xuIGV2ZW5pbmcgVFYgbmV3cyBhbmQgb24gZm9sbG93aW5nIG1vcm5pbmcgbmV3cy4mbmJzcDsgVm9pY2UgbWFpbCBtZXNzYWdlIGZyb20gQUJDLmNvbSBjb25jZXJuaW5nIHN3aXRjaGdyYXNzLiZuYnNwOyBSZWZlcnJlZCB0aGUgY2FsbGVyIHRvIHRoZSBMaW5jb2xuIEFCQyBhZmZpbGlhdGUuIEZlYnJ1YXJ5IDIsJm5ic3A7IEsuUC4gVm9nZWwmbmJzcDsgaGFkIHRlbGVwaG9uZSBpbnRlcnZpZXcgd2l0aCBSaWNrIE1vbnRnb21lcnksIEthbnNhcyBDaXR5IFN0YXIuJm5ic3A7IFByb3ZpZGVkIGV4dGVuc2l2ZSBiYWNrZ3JvdW5kIGluZm9ybWF0aW9uIG9uIHN3aXRjaGdyYXNzIGFzIGEgYmlvbWFzcyBlbmVyZ3kgY3JvcC4gRmVicnVhcnkgNywmbmJzcDsgSy5QLiBWb2dlbCBoYWQgdGVsZXBob25lIGludGVydmlldyB3aXRoIERhdmlkIENvbGVzIG9mJm5ic3A7IE5ld3Nob3VyIHdpdGggSmltIExlaGVyLiZuYnNwOyBBbHNvIHByb3ZpZGVkIGJhY2tncm91bmQgaW5mb3JtYXRpb24gdmlhIGVsZWN0cm9uaWMgZmlsZXMgb2YmbmJzcDsgcHJldmlvdXNseSBwdWJsaXNoZWQgcmV2aWV3cyBhbmQgc3R1ZGllcy48U1RST05HPkFSUyBNaWNyb2Jpb2xvZ2lzdCB0byBTcGVhayBhdCBaZXJvIFRpbGxhZ2UgV29ya3Nob3A6PC9TVFJPTkc+IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpIE5QQVJMIFJlc2VhcmNoIE1pY3JvYmlvbG9naXN0IFRoZUNhbiBDYWVzYXIgaGFzIGJlZW4gaW52aXRlZCB0byBzcGVhayBhdCB0aGUgMjAwNiBNYW5pdG9iYS1Ob3J0aCBEYWtvdGEgWmVybyBUaWxsYWdlIEZhcm1lcnMgQXNzb2NpYXRpb24gV29ya3Nob3AgdG8gYmUgaGVsZCBpbiBCaXNtYXJjaywgTkQgRmViLiA5LTEwLiBEci4gQ2Flc2Fy4oCZcyBwcmVzZW50YXRpb24gZm9yIHRoZSBldmVudCBpcyBlbnRpdGxlZCDigJxCdWlsZGluZyBhbmQgRW5oYW5jaW5nIFNvaWwgQmlvbG9neS7igJ0gU2hlIGlzIGEgbWVtYmVyIG9mIHRoZSBTaWRuZXksIE1UIEFSUyBsYWLigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFVuaXQuIEluIGFkZGl0aW9uIHRvIGhlciBwcmVzZW50YXRpb24sIERyLiBDYWVzYXIgcGxhbnMgdG8gbWVldCB3aXRoIG90aGVyIGludGVyZXN0ZWQgc2NpZW50aXN0cyBhbmQgcHJvZHVjZXJzIGF0IHRoZSBzZXNzaW9uIHRvIGRpc2N1c3MgcG9zc2libGUgY29sbGFib3JhdGlvbnMgb24gaWRlbnRpZnlpbmcgYW5kIGV2YWx1YXRpbmcgYWx0ZXJuYXRpdmUgZ3Jhc3MgY3JvcHMsIHN1Y2ggYXMgaW50ZXJtZWRpYXRlIHdoZWF0IGdyYXNzLCBUaW1vdGh5IGdyYXNzIG9yIHN3aXRjaGdyYXNzLCB0aGF0IG5vdCBvbmx5IGhhdmUgdmFsdWUgYXMgcG90ZW50aWFsIGNhc2ggY3JvcHMsIGJ1dCB3aGljaCBjYW4gYWxzbyBpbXByb3ZlIHNvaWwgcXVhbGl0eS4gQ3VycmVudGx5IERyLiBDYWVzYXIgaXMgc3R1ZHlpbmcgc3dpdGNoZ3Jhc3MgZm9yIGl0cyBhYmlsaXR5IHRvIGltcHJvdmUgc29pbCBhZ2dyZWdhdGlvbiBpbiByb3RhdGlvbmFsIHN5c3RlbXMuIFN3aXRjaGdyYXNzIGlzIGFsc28gYmVpbmcgc3R1ZGllZCBhcyBhIGJpb2Z1ZWwuIEpvaW5pbmcgRHIuIENhZXNhciBhdCB0aGUgWmVybyBUaWxsYWdlIFdvcmtzaG9wIHdpbGwgYmUgTlBBUkwgU29pbCBTY2llbnRpc3QgQmFydCBTdGV2ZW5zLCBQaHlzaWNhbCBTY2llbnRpc3RzIEJpbGwgSXZlcnNlbiBhbmQgQmlvbG9naWNhbCBTY2llbmNlIFRlY2huaWNpYW4gQnJ5YW4gR2ViaGFyZCwgYWxsIG1lbWJlcnMgb2YgTlBBUkzigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQuIDwvUD4gCjxQPjxTVFJPTkc+QVJTIEVudG9tb2xvZ2lzdCB0byBTcGVhayBhdCBSYW5nZSBTb2NpZXR5IE1lZXRpbmc6PC9TVFJPTkc+IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpIE5QQVJMIEVudG9tb2xvZ2lzdCBEYXZpZCBILiBCcmFuc29uIGhhcyBiZWVuIGludml0ZWQgdG8gc3BlYWsgYXQgdGhlIDl0aCBBbm51YWwgTWVldGluZyBvZiB0aGUgU29jaWV0eSBmb3IgUmFuZ2UgTWFuYWdlbWVudCwgRmViIDEyLTE3LCAyMDA2IGluIFZhbmNvdXZlciwgQnJpdGlzaCBDb2x1bWJpYS4gRHIuIEJyYW5zb27igJlzIHByZXNlbnRhdGlvbiBpcyBlbnRpdGxlZCDigJxFZmZlY3RzIG9mIHN1bW1lciBmaXJlIGFuZCBwb3N0LWZpcmUgZ3JhemluZyBvbiBncmFzc2hvcHBlciBhYnVuZGFuY2UgYW5kIHNwZWNpZXMgY29tcG9zaXRpb27igJ0gYW5kIGRpc2N1c3NlcyByZXNlYXJjaCBiZWluZyBjb25kdWN0ZWQgam9pbnRseSB3aXRoIERyLiBMYW5jZSBULiBWZXJtZWlyZSwgUmFuZ2VsYW5kIEVjb2xvZ2lzdCB3aXRoIFVTREEtQVJT4oCZcyBGb3J0IEtlb2doIExpdmVzdG9jayBhbmQgUmFuZ2VsYW5kIFJlc2VhcmNoIExhYm9yYXRvcnkgaW4gTWlsZXMgQ2l0eSwgTVQuIERyLiBCcmFuc29uIGlzIGEgbWVtYmVyIG9mIE5QQVJM4oCZcyBQZXN0IE1hbmFnZW1lbnQgUmVzZWFyY2ggVW5pdC4gPC9QPiAKPFA+PFNUUk9ORz5BUlMgUGxhbnQgUGF0aG9sb2dpc3QgdG8gU3BlYWsgYXQgV1NTQSBNZWV0aW5nOjwvU1RST05HPiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSBOUEFSTCBQbGFudCBQYXRob2xvZ2lzdCBBbnRob255IENhZXNhciBoYXMgYmVlbiBpbnZpdGVkIHRvIHNwZWFrIGF0IHRoZSA0NnRoIGFubnVhbCBtZWV0aW5nIG9mIHRoZSBXZWVkIFNjaWVuY2UgU29jaWV0eSBvZiBBbWVyaWNhIHRvIGJlIGhlbGQgaW4gTmV3IFlvcmsgQ2l0eSBGZWIuIDEzLTE2LiBEci4gQ2Flc2FyIHdpbGwgcHJlc2VudCBoaXMgcGFwZXIgZW50aXRsZWQg4oCcU29pbGJvcm5lIGZ1bmdpIGFzc29jaWF0ZWQgd2l0aCByb290IGdhbGxzIG9mIExlcGlkaXVtIGRyYWJhIGNhdXNlZCBieSBDZXV0b3JoeW5jaHVzIHNwcC4gRHIuIENhZXNhciBpcyBhIG1lbWJlciBvZiBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQuIFRoaXMgbWVldGluZyBtYXJrcyB0aGUgNTB0aCBBbm5pdmVyc2FyeSBvZiB0aGUgY2hhcnRlciBtZWV0aW5nIG9mIHRoZSBXZWVkIFNvY2lldHkgb2YgQW1lcmljYSwgd2hpY2ggb3JpZ2luYWxseSBtZXQgaW4gTmV3IFlvcmsgQ2l0eSBvbiBKYW51YXJ5IDQtNSwgMTk1Ni4gPC9QPiAKPFA+PFNUUk9ORz5BUlMgRW50b21vbG9naXN0IENvbmR1Y3RzIEluc2VjdCBQZXN0IElEIFdvcmtzaG9wOjwvU1RST05HPiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKSZuYnNwOyBOUEFSTCBFbnRvbW9sb2dpc3QgVG9tIFNoYW5vd2VyIGhlbHBlZCBsZWFkIGFuIEluc2VjdCBJZGVudGlmaWNhdGlvbiBMYWIgV2VkbmVzZGF5LCBGZWIuIDEsIGFzIHBhcnQgb2YgdGhlIDIwMDYgV2VzdGVybiBDcm9wIGFuZCBQZXN0IE1hbmFnZW1lbnQgU2Nob29sIHNwb25zb3JlZCBieSBOb3J0aCBEYWtvdGEgU3RhdGUgVW5pdmVyc2l0eeKAmXMgRXh0ZW5zaW9uIFNlcnZpY2UuIFRoZSB0d28tZGF5IHNjaG9vbCBoZWxkIGF0IERpY2tpbnNvbiwgTkQgaXMgZGVzaWduZWQgZm9yIGluZGl2aWR1YWxzIHNjb3V0aW5nIGNyb3BzIGZvciBwZXN0IGFuZCBwcm9kdWN0aW9uIHByb2JsZW1zIGluIDIwMDYgYW5kIHRhcmdldHMgcHJvYmxlbXMgY29tbW9uIHRvIHdlc3Rlcm4gTm9ydGggRGFrb3RhLiBEci4gU2hhbm93ZXIgd2FzIGpvaW5lZCBieSBEci4gSmFuIEtub2RlbCwgQXNzaXN0YW50IFByb2Zlc3NvciBpbiB0aGUgTkRTVSBFbnRvbW9sb2d5IERlcGFydG1lbnQsIGluIGRpcmVjdGluZyB0aGUgbGFiLiBJbiBhZGRpdGlvbiwgTlBBUkwgQmlvbG9naWNhbCBTY2llbmNlIFRlY2huaWNpYW4gRGViIFdhdGVycyBhbHNvIGhlbHBlZCB3aXRoIHRoZSBoYW5kcy1vbiBjb21wb25lbnQsIGFjcXVhaW50aW5nIHBhcnRpY2lwYW50cyB3aXRoIEhlc3NpYW4gZmx5LCB3aGVhdCBzdGVtIG1hZ2dvdCwgc2F3IGZseSBhbmQgY3V0d29ybS4gT3RoZXIgc3ViamVjdHMgYWRkcmVzc2VkIGF0IHRoZSBFeHRlbnNpb24gc2Nob29sIGluY2x1ZGVkIHdlZWQgaWRlbnRpZmljYXRpb24gYW5kIG1hbmFnZW1lbnQsIGNyb3AgcHJvZHVjdGlvbiBpc3N1ZXMgYW5kIGRpc2Vhc2VzIGFuZCBoZXJiaWNpZGUgdXBkYXRlcy4gRHIuIFNoYW5vd2VyIGlzIHRoZSByZXNlYXJjaCBsZWFkZXIgb2YgTlBBUkzigJlzIFBlc3QgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LiA8L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIHRvIE1lZXQgd2l0aCBUcmliYWwgQ29sbGVnZSBBZyBEZXBhcnRtZW50IEhlYWQ6PC9TVFJPTkc+IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpJm5ic3A7IENhcnJpZSBBcmNoZGFsZSwgRGlyZWN0b3Igb2YgdGhlIEFncmljdWx0dXJlIERlcGFydG1lbnQgYXQgRm9ydCBQZWNrIENvbW11bml0eSBDb2xsZWdlIChGUENDKSBpbiBQb3BsYXIsIE1ULCBhbmQgb3RoZXIgdHJpYmFsIGNvbGxlZ2Ugb2ZmaWNpYWxzLCB3aWxsIHRyYXZlbCB0byBTaWRuZXksIE1UIE1vbmRheSwgRmVicnVhcnkgMTMsIHRvIHRha2UgcGFydCBpbiBhIHJvdW5kdGFibGUgZGlzY3Vzc2lvbiB3aXRoIEFSUyByZXNlYXJjaGVycyBhdCB0aGUgVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5IChOUEFSTCkuIEJlZ2lubmluZyB3aXRoIGFuIG92ZXJ2aWV3IGJ5IEFyY2hkYWxlIG9mIEZQQ0MgYWN0aXZpdGllcywgQVJTIHNjaWVudGlzdHMgYXQgdGhlIGxhYiB3aWxsIGZvbGxvdyB1cCB3aXRoIGJyaWVmIG92ZXJ2aWV3cyBvZiB0aGVpciBvd24gcmVzZWFyY2ggcHJvamVjdHMuIFRoZSBwYXJ0aWNpcGFudHMgd2lsbCB0aGVuIGRpc2N1c3MgY29tbW9uIGludGVyZXN0cyBhbmQvb3IgYWN0aXZpdGllcyB0aGF0IE5QQVJMIGFuZCBGUENDIGNvdWxkIHdvcmsgb24gdG9nZXRoZXIuIFRoZSBtZWV0aW5nIGlzIGFuIG91dGdyb3d0aCBvZiBhbiBlYXJsaWVyIG1lZXRpbmcgbGFzdCBOb3ZlbWJlciBiZXR3ZWVuIE5QQVJMIFJlc2VhcmNoIExlYWRlcnMgRHIuIFJvYmVydCBFdmFucyAoQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdCkgYW5kIERyLiBUb20gU2hhbm93ZXIgKFBlc3QgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0KSBhbmQgYSBkb3plbiBNb250YW5hIFN0YXRlIExlZ2lzbGF0b3JzIGFuZCBUcmliYWwgQ29sbGVnZSByZXByZXNlbnRhdGl2ZXMgdG8gZGlzY3VzcyBzdGVwcyB0byBpbXBsZW1lbnQgTW9udGFuYSBIb3VzZSBKb2ludCBSZXNvbHV0aW9uIDExIHBhc3NlZCBkdXJpbmcgdGhlIHN0YXRl4oCZcyBsYXN0IGxlZ2lzbGF0aXZlIHNlc3Npb24uIFRoZSByZXNvbHV0aW9uIHVyZ2VzIOKAnGNvb3BlcmF0aW9uIGJldHdlZW4gYW5kIGFtb25nIHN0YXRlIGFuZCBmZWRlcmFsIGFncmljdWx0dXJhbCByZXNlYXJjaCBzdGF0aW9ucyBhbmQgdHJpYmFsIGFncmljdWx0dXJhbCByZXNlYXJjaCBwcm9ncmFtcyB0byBmYWNpbGl0YXRlIG9uZ29pbmcgcmVzZWFyY2gsIHNoYXJpbmcgb2YgcmVzZWFyY2ggc2NpZW50aXN0cywgYW5kIGVkdWNhdGlvbmFsIGVmZm9ydHMgaW4gYWRkcmVzc2luZyBjcml0aWNhbCBpc3N1ZXMgY29uY2VybmluZyBkZWxldGVyaW91cyBpbnNlY3RzLCBwZXN0aWNpZGUgdXNlLCBsaXZlc3RvY2sgZGlzZWFzZSwgbm94aW91cyB3ZWVkcyBhbmQgaXJyaWdhdGVkIGFuZCBkcnlsYW5kIGNyb3BwaW5nIHN5c3RlbXMu4oCdIFBhcnRpY2lwYXRpbmcgdHJpYmFsIGdvdmVybm1lbnRzIGluY2x1ZGUgdGhvc2Ugd2l0aCB0aGUgRm9ydCBQZWNrLCBGb3J0IEJlbGtuYXAgYW5kIFJvY2t5IEJveSBSZXNlcnZhdGlvbnMgaW4gTW9udGFuYS4gSW4gYWRkaXRpb24gdG8gZXhwbG9yaW5nIG5ldyBhcmVhcyBvZiByZXNlYXJjaCBjb29wZXJhdGlvbiwgTlBBUkwgaGFzIGFsc28gcHJvdmlkZWQgdHJpYmFsIG9mZmljaWFscyB3aXRoIGluZm9ybWF0aW9uIG9uIHN0dWRlbnQgZW1wbG95bWVudCBvcHBvcnR1bml0aWVzIGF0IHRoZSBTaWRuZXkgbGFiIChhbmQgd2l0aCBBUlMgaW4gZ2VuZXJhbCkgYW5kIGlzIGV4cGxvcmluZyBuZXcgb3Bwb3J0dW5pdGllcyB0byB0cmFpbiB0cmliYWwgZmFjdWx0eSBhcyB3ZWxsIHRocm91Z2ggc3BlY2lhbCBmZWxsb3dzaGlwcy48L1A+IAo8UD48U1RST05HPlNjaWVuY2UgU3R1ZGVudHMgUGFydGljaXBhdGUgaW4gTW9ybW9uIENyaWNrZXQgQnJvd25iYWdnZXIgYXQgTW9udGFuYSBBUlMgTGFiPC9TVFJPTkc+OiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKS4gQXBwcm94aW1hdGVseSB0d28gZG96ZW4gOHRoIGdyYWRlIHN0dWRlbnRzIGF0dGVuZGVkIGEgRnJpZGF5IGJyb3duYmFnZ2VyIGdpdmVuIGJ5IE5QQVJMIEVjb2xvZ2lzdCBHcmVnIFN3b3JkIE5vdi4gMTggZW50aXRsZWQg4oCcTW9ybW9uIGNyaWNrZXRzIGFuZCB0aGUgcGVvcGxlIHdobyBjaGFzZSB0aGVtOiBBIHJldHJvc3BlY3RpdmUu4oCdIFRoZSBzdHVkZW50cywgZnJvbSB0ZWFjaGVyIE1hcmsgSGFsdm9yc2Vu4oCZcyBhZHZhbmNlZCBzY2llbmNlIGNsYXNzIGF0IFNpZG5leSBNaWRkbGUgU2Nob29sIChTaWRuZXksIE1UKSwgd2VyZSBpbnZpdGVkIHRvIHBhcnRpY2lwYXRlIGJlY2F1c2Ugb2YgdGhlaXIgcmVjZW50IHN0dWRpZXMgb24gR2xvYmFsIFBvc2l0aW9uaW5nIFN5c3RlbSB0ZWNobm9sb2d5LiBEci4gU3dvcmTigJlzIHByZXNlbnRhdGlvbiBwcm92aWRlZCB0aGVtIGEgcmVhbC13b3JsZCBwZWVrIGludG8gdGhlIGFwcGxpY2F0aW9uIG9mIEdQUyB0ZWNobm9sb2d5IHRvIGEgc3BlY2lmaWMgcmVzZWFyY2ggcHJvamVjdC4gU3dvcmQsIGEgc2NpZW50aXN0IHdpdGggdGhlIGxhYuKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQsIGRpc2N1c3NlZCB3b3JrIGhlIGFuZCBoaXMgY29sbGFib3JhdG9ycyBoYXZlIGRvbmUgb24gTW9ybW9uIGNyaWNrZXQgYmFuZCBmb3JtYXRpb24gYW5kIG1pZ3JhdGlvbi4gVGhlIGdyb3Vw4oCZcyByZXNlYXJjaCB3YXMgZmVhdHVyZWQgaW4gYSBCcmllZiBDb21tdW5pY2F0aW9ucyBhcnRpY2xlIGluIHRoZSBGZWIuIDE3dGggZWRpdGlvbiBvZiDigJxOYXR1cmXigJ0gYW5kIHNob3dlZCB0aGF0IGZsaWdodGxlc3MgTW9ybW9uIGNyaWNrZXRzIGZvcm0gbGFyZ2UgbW9iaWxlIGdyb3VwcywgY2FsbGVkIG1pZ3JhdG9yeSBiYW5kcywgYXMgYSBtZWFucyBvZiBwcm90ZWN0aW5nIHRoZW1zZWx2ZXMgZnJvbSB0aGVpciBwcmVkYXRvcnMuJm5ic3A7IFNpbWlsYXIgcHJvY2Vzc2VzIGhhdmUgYWxyZWFkeSBiZWVuIHNob3duIGluIGhlcmRpbmcgYW5pbWFscywgZm9yIGV4YW1wbGUsIGJ1dCBoYWQgbm90IGJlZW4gcHJldmlvdXNseSBkZW1vbnN0cmF0ZWQgaW4gbWlncmF0b3J5IGJhbmQtZm9ybWluZyBpbnNlY3RzLiBUaGUgc3R1ZHkgaW52b2x2ZWQgdXNpbmcgc21hbGwgcmFkaW8gdHJhbnNtaXR0ZXJzIHRvIHRyYWNrIGluZGl2aWR1YWwgaW5zZWN0cyB3aXRoaW4gYW5kIG91dHNpZGUgbGFyZ2UgTW9ybW9uIGNyaWNrZXRzIGJhbmRzIHdoaWNoIGhhdmUgYmVlbiBwbGFndWluZyB0aGUgd2VzdGVybiBVUyB0aGUgcGFzdCB0aHJlZSBzdW1tZXJzLiBUaGUgcmVzZWFyY2hlcnMgZm91bmQgdGhhdCA1MC02MCUgb2YgdGhlIGluc2VjdHMgdGhhdCBsZWZ0IGEgYmFuZCB3ZXJlIGtpbGxlZCBieSBwcmVkYXRvcnMgd2l0aGluIHR3byBkYXlzIG9mIGRlcGFydHVyZSwgd2hpbGUgYWxsIG9mIHRoZSBpbnNlY3RzIHJlbWFpbmluZyBpbiB0aGUgYmFuZCBzdXJ2aXZlZC4gV29ya2luZyB3aXRoIFN3b3JkIG9uIHRoZSBwcm9qZWN0IHdlcmUgRHIuIFBhdCBMb3JjaCBvZiB0aGUgVW5pdmVyc2l0eSBvZiBOb3J0aCBDYXJvbGluYSwgQ2hhcGVsIEhpbGwgYW5kIERyLiBEYXJyeWwgR3d5bm5lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIFRvcm9udG8gYXQgTWlzc2lzc2F1Z2EuIDwvUD4gCjxQPjxTVFJPTkc+QVJTIFNjaWVudGlzdHMgTWVldCB3aXRoIE1vbnRhbmEgVHJpYmFsIENvbGxlZ2UgUmVwcyBhbmQgU3RhdGUgTGVnaXNsYXRvcnM8L1NUUk9ORz46Jm5ic3A7KFVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVCkuIE5QQVJMIFJlc2VhcmNoIExlYWRlcnMgRHIuIFJvYmVydCBFdmFucyAoQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdCkgYW5kIERyLiBUb20gU2hhbm93ZXIgKFBlc3QgTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0KSBtZXQgTm92LiAxNSB3aXRoIGEgZG96ZW4gTW9udGFuYSBTdGF0ZSBMZWdpc2xhdG9ycyBhbmQgVHJpYmFsIENvbGxlZ2UgcmVwcmVzZW50YXRpdmVzIHRvIGRpc2N1c3Mgc3RlcHMgdG8gaW1wbGVtZW50IE1vbnRhbmEgSG91c2UgSm9pbnQgUmVzb2x1dGlvbiAxMSBwYXNzZWQgZHVyaW5nIHRoZSBzdGF0ZeKAmXMgbGFzdCBsZWdpc2xhdGl2ZSBzZXNzaW9uLiBUaGUgcmVzb2x1dGlvbiB1cmdlcyDigJxjb29wZXJhdGlvbiBiZXR3ZWVuIGFuZCBhbW9uZyBzdGF0ZSBhbmQgZmVkZXJhbCBhZ3JpY3VsdHVyYWwgcmVzZWFyY2ggc3RhdGlvbnMgYW5kIHRyaWJhbCBhZ3JpY3VsdHVyYWwgcmVzZWFyY2ggcHJvZ3JhbXMgdG8gZmFjaWxpdGF0ZSBvbmdvaW5nIHJlc2VhcmNoLCBzaGFyaW5nIG9mIHJlc2VhcmNoIHNjaWVudGlzdHMsIGFuZCBlZHVjYXRpb25hbCBlZmZvcnRzIGluIGFkZHJlc3NpbmcgY3JpdGljYWwgaXNzdWVzIGNvbmNlcm5pbmcgZGVsZXRlcmlvdXMgaW5zZWN0cywgcGVzdGljaWRlIHVzZSwgbGl2ZXN0b2NrIGRpc2Vhc2UsIG5veGlvdXMgd2VlZHMgYW5kIGlycmlnYXRlZCBhbmQgZHJ5bGFuZCBjcm9wcGluZyBzeXN0ZW1zLuKAnSBQYXJ0aWNpcGF0aW5nIHRyaWJhbCBnb3Zlcm5tZW50cyBpbmNsdWRlIHRob3NlIHdpdGggdGhlIEZvcnQgQmVsa25hcCwgRm9ydCBQZWNrIGFuZCBSb2NreSBCb3kgUmVzZXJ2YXRpb25zIGluIE1vbnRhbmEuIFdoaWxlIGZ1cnRoZXIgcGxhbm5pbmcgc2Vzc2lvbnMgYXJlIG5lZWRlZCB0byBicmluZyBhbGwgcGFydGllcyB0b2dldGhlciwgcmVwcmVzZW50YXRpdmVzIGZyb20gdGhlIFNpZG5leSwgTVQgQVJTIGxhYiBkaWQgYWdyZWUgdG8gcHJvdmlkZSB0aGUgdGhyZWUgcGFydGljaXBhdGluZyB0cmliYWwgY29sbGVnZSByZXByZXNlbnRhdGl2ZXMgd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIHN0dWRlbnQgZW1wbG95bWVudCBvcHBvcnR1bml0aWVzIGF0IHRoZSBTaWRuZXkgQVJTIGxhYiAoYW5kIHdpdGggQVJTIGluIGdlbmVyYWwpIGFuZCB0byBleHBsb3JlIG5ldyBvcHBvcnR1bml0aWVzIHRvIHRyYWluIHRyaWJhbCBmYWN1bHR5IGFzIHdlbGwgdGhyb3VnaCBzcGVjaWFsIGZlbGxvd3NoaXBzLiZuYnNwOyA8L1A+IAo8UCBhbGlnbj1yaWdodD48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1A+IAo8UD48U1RST05HPkFSUyBTY2llbnRpc3RzIFBhcnRpY2lwYXRlIGluIFRyaS1Tb2NpZXRpZXMgQW5udWFsIE1lZXRpbmc8L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpLiBGb3VyIHNjaWVudGlzdHMgd2l0aCBOUEFSTOKAmXMgQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdCBwYXJ0aWNpcGF0ZWQgaW4gdGhlIDIwMDUgQVNBLUNTU0EtU1NTQSBJbnRlcm5hdGlvbmFsIE1lZXRpbmcgaW4gU2FsdCBMYWtlIENpdHksIFVULCBOb3YuIDYtMTAuIFRoZSB5ZWFybHkgbWVldGluZ3Mgb2YgdGhlIEFtZXJpY2FuIFNvY2lldHkgb2YgQWdyb25vbXkgKEFTQSksIHRoZSBDcm9wIFNjaWVuY2UgU29jaWV0eSBvZiBBbWVyaWNhIChDU1NBKSwgYW5kIHRoZSBTb2lsIFNjaWVuY2UgU29jaWV0eSBvZiBBbWVyaWNhIChTU1NBKSBicmluZyB0b2dldGhlciA0LDAwMCsgcGVvcGxlIGZyb20gNDAgY291bnRyaWVzIHJlcHJlc2VudGluZyBhY2FkZW1pYSwgZ292ZXJubWVudCBhbmQgcHJpdmF0ZSBpbmR1c3RyeS4gTlBBUkwgc2NpZW50aXN0cyBwYXJ0aWNpcGF0aW5nIGFuZCB0aGUgdGl0bGUgb2YgdGhlaXIgcG9zdGVycyB3ZXJlOiBTb2lsIFNjaWVudGlzdCBKYXkgSmFicm8sIOKAnFNwYXRpYWwgVmFyaWFiaWxpdHkgb2YgUGh5c2ljYWwgUHJvcGVydGllcyBpbiBMaWhlbiBTYW5keSBMb2FtIFNvaWzigJ0gKGNvYXV0aG9ycyBpbmNsdWRlZCBEcnMuIEJhcnQgU3RldmVucyBhbmQgUm9iZXJ0IEV2YW5zIGFsc28gd2l0aCB0aGUgbGFi4oCZcyBBZyBTeXN0ZW1zIHVuaXQpOyZuYnNwOyBFY29sb2dpc3QgQW5keSBMZW5zc2VuLCDigJxQcmVwbGFudCBXZWVkIE1hbmFnZW1lbnQgYW5kIFBsYW50aW5nIERhdGUgSW5mbHVlbmNlIEJhcmxleSBGb3JhZ2UgWWllbGQgYW5kIFF1YWxpdHk74oCdJm5ic3A7IFNvaWwgU2NpZW50aXN0IEplZCBXYWRkZWxsLCDigJxFZmZlY3Qgb2YgUGhvc3Bob3J1cyBGZXJ0aWxpemF0aW9uIFJhdGVzIG9uIEZpZWxkIFBlYSBOaXRyb2dlbiBQcm9kdWN0aW9u4oCdIChjb2F1dGhvcmVkIHdpdGggRHIuIExlbm5zZW4pLCBhbmQgQWdyb25vbWlzdCBVcGVuZHJhIFNhaW5qdSwg4oCcQ2FyYm9uIHN1cHBseSBhbmQgc3RvcmFnZSBpbiB0aWxsZWQgYW5kIG5vbi10aWxsZWQgc29pbHMgYXMgaW5mbHVlbmNlZCBieSBjb3ZlciBjcm9wcyBhbmQgbml0cm9nZW4gZmVydGlsaXphdGlvbizigJ0gKGNvYXRob3JlZCB3aXRoIEIuUC4gU2luZ2gsIFcuRi4gV2hpdGVoZWFkIGFuZCBTLiBXYW5nLCBhbGwgd2l0aCBGb3J0IFZhbGxleSBTdGF0ZSBVbml2LiwgR0EpLiA8L1A+IAo8UD48U1RST05HPkFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlIChBUlMpIFJhbmdlIFNjaWVudGlzdCBUcmF2ZWxzIHRvIEJyYXppbCBmb3IgQ29sbGFib3JhdGl2ZSBSZXNlYXJjaCBTdHVkaWVzPC9TVFJPTkc+OiBPbiBOb3YuIDI2IHRvIERlYy4gMTYsIEphbWVzIFBmaXN0ZXIsIHJhbmdlIHNjaWVudGlzdCwgQVJTIFBvaXNvbm91cyBQbGFudCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBMb2dhbiwgVVQsIHdpbGwgdHJhdmVsIHRvIEJyYXppbCBhbmQgY29uc3VsdCB3aXRoIGZhY3VsdHkgYW5kIGdyYWR1YXRlIHN0dWRlbnRzIGF0IHRoZSBVbml2ZXJzaXR5IG9mIFNhbyBQYXVsbywgQ2VudGVyIGZvciBWZXRlcmluYXJ5IFRveGljb2xvZ3ksIG9uIHJlc2VhcmNoIHN0dWRpZXMgaW52b2x2aW5nIHR3byB0b3hpYyBwbGFudHMgd2hpY2ggY2F1c2UgbWFqb3IgbGl2ZXN0b2NrIGxvc3NlcyBpbiBCcmF6aWwuIEluIG9uZSBzdHVkeSwgcHJlZ25hbnQgZ29hdHMgd2lsbCBiZSBmZWQgSXBvbW9lYSBjYXJuZWEgdG8gZXhhbWluZSBpdHMgZWZmZWN0IG9uIG1hdGVybmFsIGFuZCBuZW9uYXRlIGJlaGF2aW9yIGF0IGJpcnRoLiZuYnNwOyBBIHNpbWlsYXIgcHJvamVjdCBvbiBpbnRveGljYXRpb24gb2YgZ29hdHMgYnkgU2VubmEgb2NjaWRlbnRhbGlzIHdpbGwgYWxzbyBiZSBjb25kdWN0ZWQuJm5ic3A7IFBmaXN0ZXIgaGFzIGV4cGVyaWVuY2UgaW4gdGhpcyBhcmVhIG9mIHJlc2VhcmNoIGJlY2F1c2Ugb2YgaGlzIG93biB3b3JrIHdpdGggc3dhaW5zb25pbmUtY29udGFpbmluZyBsb2Nvd2VlZHMgaW4gdGhlIFUuUy4gPC9QPiAKPFA+PFNUUk9ORz5VU0RBLUFSUyBTY2llbnRpc3RzIFByZXNlbnQgU3ltcG9zaXVtIEF0IFRyaS1Tb2NpZXRpZXMgQW5udWFsIE1lZXRpbmc8L1NUUk9ORz46IChOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSk6IE9uIE5vdmVtYmVyIDd0aCwgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIFNlcnZpY2Ugc2NpZW50aXN0cyBmcm9tIE1hbmRhbiwgTkQgYW5kIHRoZSBOYXRpb25hbCBTb2lsIEVyb3Npb24gUmVzZWFyY2ggTGFib3JhdG9yeSBjcmVhdGVkIGFuZCBwcmVzZW50ZWQgYSBzeW1wb3NpdW0g4oCcRHluYW1pYyBDcm9wcGluZyBTeXN0ZW1zIGZvciBTb2lsICYgV2F0ZXIgQ29uc2VydmF0aW9u4oCdIGF0IHRoZSAyMDA1IEFTQS1DU1NBLVNTU0EgSW50ZXJuYXRpb25hbCBNZWV0aW5nIGluIFNhbHQgTGFrZSBDaXR5LCBVVC4gRHluYW1pYyBjcm9wcGluZyBzeXN0ZW1zIOKAkyBkZWZpbmVkIGFzIGEgbG9uZy10ZXJtIHN0cmF0ZWd5IG9mIGFubnVhbCBjcm9wIHNlcXVlbmNpbmcgdGhhdCBvcHRpbWl6ZXMgY3JvcCBhbmQgc29pbCB1c2Ugb3B0aW9ucyB0byBhdHRhaW4gcHJvZHVjdGlvbiwgZWNvbm9taWMsIGFuZCByZXNvdXJjZSBjb25zZXJ2YXRpb24gZ29hbHMgdXNpbmcgZWNvbG9naWNhbGx5LWJhc2VkIG1hbmFnZW1lbnQgcHJpbmNpcGxlcyDigJMgcG9zc2VzcyBhbiBpbmhlcmVudCBmbGV4aWJpbGl0eSB0byBhZGFwdCB0byBoaWdoLXJpc2sgY29uZGl0aW9ucywgYW5kIGFyZSB0aGVyZWZvcmUgbW9yZSBzdXN0YWluYWJsZSB0aGFuIHByZXZhbGVudCBjcm9wcGluZyBzeXN0ZW1zLiBUaGUgc3ltcG9zaXVtIGhpZ2hsaWdodGVkIHJlc2VhcmNoIHJlc3VsdHMgZnJvbSBhIGR5bmFtaWMgY3JvcHBpbmcgc3lzdGVtcyBwcm9qZWN0IGNvbmR1Y3RlZCBpbiB0aGUgVS5TLiBub3J0aGVybiBHcmVhdCBQbGFpbnMsIGFuZCBpbmNsdWRlZCBwcmVzZW50YXRpb25zIG9uIGNyb3AgcHJvZHVjdGlvbiwgcGxhbnQgZGlzZWFzZXMsIHNvaWwgd2F0ZXIgdXNlLCBzb2lsIGJpb2xvZ3kvcXVhbGl0eSwgYW5kIHBvdGVudGlhbCBtYW5hZ2VtZW50IGFwcGxpY2F0aW9ucy4gVGhlIHByZXNlbnRhdGlvbiB0aXRsZXMgKGFuZCBwcmVzZW50ZXJzKSB3ZXJlOiDigJxEeW5hbWljIENyb3BwaW5nIFN5c3RlbXMgZm9yIFN1c3RhaW5hYmxlIENyb3AgUHJvZHVjdGlvbuKAnSAoRHIuIERvbmFsZCBUYW5ha2EsIFNvaWwgU2NpZW50aXN0KSzigJxEeW5hbWljIENyb3BwaW5nIFN5c3RlbXMgZm9yIE1hbmFnaW5nIFBsYW50IERpc2Vhc2UgUmlza3PigJ0gKERyLiBKb3NlcGggS3J1cGluc2t5LCBQbGFudCBQYXRob2xvZ2lzdCksIER5bmFtaWMgQ3JvcHBpbmcgU3lzdGVtcyBmb3IgRWZmZWN0aXZlIFVzZSBvZiBTb2lsIFdhdGVyIChTdGVwaGVuIEQuIE1lcnJpbGwsIFNvaWwgU2NpZW50aXN0KSwg4oCcRHluYW1pYyBDcm9wcGluZyBTeXN0ZW1zIEluZmx1ZW5jZSBvbiBTb2lsIEJpb2NoZW1pc3RyeeKAnSAoRGlhbmUgRS4gU3RvdHQsIFVTREEtQVJTIE5hdGlvbmFsIFNvaWwgRXJvc2lvbiBSZXNlYXJjaCBMYWJvcmF0b3J5KSwgYW5kIOKAnEFwcGx5aW5nIER5bmFtaWMgQWdyaWN1bHR1cmFsIFN5c3RlbSBDb25jZXB0cyB0byBNZWV0IEZ1dHVyZSBDaGFsbGVuZ2VzIHRvIFNvaWwgYW5kIFdhdGVyIENvbnNlcnZhdGlvbuKAnSAoRHIuIEpvbiBIYW5zb24sIFN1cGVydmlzb3J5IFJhbmdlbGFuZCBTY2llbnRpc3QpLiBUaGUgc3ltcG9zaXVtIHdhcyBtb2RlcmF0ZWQgYnkgRHIuIE1hcmsgTGllYmlnLCBVU0RBLUFSUyBTb2lsIFNjaWVudGlzdC4gQW4gYXVkaWVuY2Ugb2YgMTAwLTExMCBhdHRlbmRlZCB0aGUgc2NpZW50aWZpYyBzeW1wb3NpdW0uIFB1YmxpY2F0aW9uIG9mIHRoZXNlIHN5bXBvc2l1bSBwYXBlcnMgd2lsbCBiZSBmb3J0aGNvbWluZyBpbiBBZ3Jvbm9teSBKb3VybmFsLiBEci4gQWwgRnJhbmssIFBsYW50IFBoeXNpb2xvZ2lzdCBhbmQgVVNEQS1BUlMgQ29sbGFib3JhdG9yIGFsc28gcHJlc2VudGVkLCDigJxJbnRyYSBTZWFzb25hbCBOZXQgRWNvc3lzdGVtIEZsdXggRHluYW1pY3Mgb2YgQ3JvcCBhbmQgR3Jhc3NsYW5k4oCdIGluIGFub3RoZXIgc2Vzc2lvbiBhdCB0aGUgQVNBLUNTU0EtU1NTQSBJbnRlcm5hdGlvbmFsIE1lZXRpbmcuIFVTREEtQVJTIHNjaWVudGlzdHMgZnJvbSBNYW5kYW4gYXV0aG9yZWQgYW5kL29yIGNvLWF1dGhvcmVkIDM3IHBhcGVycyBmb3IgdGhpcyBhbm51YWwgaW50ZXJuYXRpb25hbCBzY2llbnRpZmljIG1lZXRpbmcuIDwvUD4gCjxQPjxTVFJPTkc+VVNEQS1BUlMgU2NpZW50aXN0cyBGb2N1cyBPbiBDYXJib24gQWJvdmUgQW5kIEJlbG93IEdyb3VuZDwvU1RST05HPjogKE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5KTogT24gTm92ZW1iZXIgN3RoLCBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggU2VydmljZSBzY2llbnRpc3RzIGZyb20gTWFuZGFuLCBORCBzdXBwb3J0ZWQgdGhlIGVkdWNhdGlvbmFsIGVmZm9ydHMgb2YgdGhlIE5vcnRoIERha290YSBBc3NvY2lhdGlvbiBvZiBTb2lsIENvbnNlcnZhdGlvbiBEaXN0cmljdHMgYnkgaGlnaGxpZ2h0aW5nIHRoZWlyIGVkdWNhdGlvbmFsIHByb2dyYW0uIERyLiBSZWJlY2NhIFBoaWxsaXBzIChQbGFudCBQaHlzaW9sb2dpc3QpIHByZXNlbnRlZDog4oCcQWJvdmUgZ3JvdW5kIENhcmJvbiBGbG93IOKAkyBTdXJmYWNlIHRvIFNwYWNlIENvbm5lY3Rpb27igJ0gYW5kIERyLiBLcmlzIE5pY2hvbHMgKFNvaWwgTWljcm9iaW9sb2dpc3QpIHByZXNlbnRlZDog4oCcQmVsb3cgZ3JvdW5kIENhcmJvbiBGbG93IOKAkyBUaGUgR2xvbWFsaW4gQ29ubmVjdGlvbuKAnSB0byBhbiBhdWRpZW5jZSBvZiBhcHByb3hpbWF0ZWx5IDEwMCBjb25zZXJ2YXRpb24gbGVhZGVycyBmcm9tIHRocm91Z2hvdXQgdGhlIHN0YXRlLiA8L1A+IAo8UD48U1RST05HPlVTREEtQVJTIFNjaWVudGlzdCBOb21pbmF0ZWQgRm9yIEludGVybmF0aW9uYWwgUmVjb2duaXRpb248L1NUUk9ORz46IChOb3J0aCBDZW50cmFsIFNvaWwgQ29uc2VydmF0aW9uIFJlc2VhcmNoIExhYm9yYXRvcnkpOiBEci4gRG9uIFJlaWNvc2t5LCBVU0RBLUFSUyBTb2lsIFNjaWVudGlzdCwgaGFzIGJlZW4gbm9taW5hdGVkIGJ5IHRoZSBNYW5pdG9iYS1Ob3J0aCBEYWtvdGEgWmVybyBUaWxsYWdlIEZhcm1lcuKAmXMgQXNzb2NpYXRpb24gZm9yIHJlY29nbml0aW9uIGFzIHRoZWlyIOKAnDIwMDYgVS5TLiBOb24tRmFybWVyIG9mIHRoZSBZZWFy4oCdLiBUaGlzIHJlY29nbml0aW9uIGlzIGJlc3Rvd2VkIGVhY2ggeWVhciBvbiBvbmUgaW5kaXZpZHVhbCBmcm9tIHRoZSBVbml0ZWQgU3RhdGVzIChhbmQgb25lIGZyb20gQ2FuYWRhKSB3aG8gaGFzIG1vc3Qgc2lnbmlmaWNhbnRseSBhZHZhbmNlZCB0aGUgZXRoaWMgYW5kIHNjaWVuY2Ugb2YgY29uc2VydmF0aW9uIHRocm91Z2hvdXQgdGhlIHVwcGVyIEdyZWF0IFBsYWlucyByZWdpb24uIERyLiBSZWljb3NreeKAmXMgcmVzZWFyY2ggYW5kIGV4dGVuc2l2ZSBjb21tdW5pY2F0aW9uIG9uIG1hbmFnaW5nIHRvIGltcHJvdmUgc29pbCBvcmdhbmljIGNhcmJvbiBoYXMgaGFkIHNpZ25pZmljYW50IGltcGFjdCBpbiBpbmZsdWVuY2luZyBmYW1pbHkgZmFybWVycyB0byBmb2N1cyBvbiBtYW5hZ2luZyB0aGVpciBzb2lscyBhcyBhIHJlbmV3YWJsZSByZXNvdXJjZSB3aGljaCBjYW4gYmUgZW5oYW5jZWQgdGhyb3VnaCBwcm9wZXIgbWFuYWdlbWVudC4gVGhlIGF3YXJkIHdpbGwgYmUgcHJlc2VudGVkIGF0IHRoZWlyIGFubnVhbCB3b3Jrc2hvcCBpbiBCaXNtYXJjayBOb3J0aCBEYWtvdGEgb24gRmVicnVhcnkgMTAsIDIwMDYuIFByZXZpb3VzIFVTREEtQVJTIHJlY2lwaWVudHMgb2YgdGhpcyBob25vciBoYXZlIGJlZW4gQWwgQmxhY2ssIERyLiBBcm1hbmQgQmF1ZXIsIERyLiBKb2UgS3J1cGluc2t5LCBhbmQgRHIuIEFyZGVsbCBIYWx2ZXJzb24uIDwvUD4gCjxQPjxTVFJPTkc+VVNEQS1BUlMgTGFib3JhdG9yeSBBbmQgUmVzZWFyY2ggUHJvZmlsZWQgSW4gU291dGggRGFrb3RhIEZhcm0gUHJlc3M8L1NUUk9ORz46IChOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSk6IFRoZSBOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSBhbmQgc2NpZW50aXN0cyB3ZXJlIHRoZSBzdWJqZWN0IG9mIGEgTm92ZW1iZXIgOHRoIHR3by1wYWdlIGFydGljbGUgYnkgdGhlIEFiZXJkZWVuIEFtZXJpY2FuIE5ld3MgRmFybSBGb3J1bS4gUGhvdG9zIG9mIGVhY2ggc2NpZW50aXN0IGFjY29tcGFuaWVkIHRoZWlyIGJpbyBhbmQgYSBzeW5vcHNpcyBvZiB0aGVpciBtYWpvciByZXNlYXJjaC4gVGhpcyBwdWJsaWNhdGlvbiByZWFjaGVzIGFwcHJveGltYXRlbHkgMzQsMDAwIGZhcm1lcnMgYW5kIHJhbmNoZXJzIHRocm91Z2hvdXQgU291dGggRGFrb3RhIGFuZCBOb3J0aCBEYWtvdGEuIDwvUD4gCjxQPjxTVFJPTkc+QVJTIFZldGVyaW5hcmlhbiBJbnZpdGVkIHRvIFNwZWFrIHRvIFNjaWVudGlzdHMgaW4gVXJ1Z3VheTwvU1RST05HPjombmJzcDsgT24gTm92ZW1iZXIgMTYg4oCTIDE5LCBCcnlhbiBTdGVnZWxtZWllciwgVmV0ZXJpbmFyeSBNZWRpY2FsIE9mZmljZXIsIEFSUyBQb2lzb25vdXMgUGxhbnQgUmVzZWFyY2ggTGFib3JhdG9yeSwgTG9nYW4sIFVULCB3aWxsIGF0dGVuZCB0aGUgMTJ0aCBJbnRlcm5hdGlvbmFsIFN5bXBvc2l1bSBvZiB0aGUgQXNzb2NpYXRpb24gb2YgVmV0ZXJpbmFyeSBMYWJvcmF0b3J5IERpYWdub3N0aWNpYW5zLCBpbiBNb250ZXZpZGVvLCBVcnVndWF5LiZuYnNwOyBTdGVnZWxtZWllciB3aWxsIGRpc2N1c3MgY3VycmVudCB0ZWNobmlxdWVzIGluIGlkZW50aWZ5aW5nIGFuZCBtb25pdG9yaW5nIHRveGljIHBsYW50IHByb2JsZW1zIGluIGxpdmVzdG9jayBhbmQgd2lsZGxpZmUuIDwvUD4gCjxQPjxTVFJPTkc+QW1lcmljYW4gTGl2ZXN0b2NrIEJyZWVkcyBDb25zZXJ2YW5jeSBtZWV0cyBhdCBhbmQgdG91cnMgdGhlIE5hdGlvbmFsIEFuaW1hbCBHZXJtcGxhc20gUHJvZ3JhbSBhdCB0aGUgQ2VudGVyIGZvciBHZW5ldGljIFJlc291cmNlcyBQcmVzZXJ2YXRpb248L1NUUk9ORz46IE9uIE9jdG9iZXIgNywgdGhlIEFtZXJpY2FuIExpdmVzdG9jayBCcmVlZHMgQ29uc2VydmFuY3kgaW4gY29sbGFib3JhdGlvbiB3aXRoIHRoZSBBbWVyaWNhbiBHcmFzc2ZlZCBBc3NvY2lhdGlvbiBoZWxkIGEgb25lIGRheSBtZWV0aW5nIGF0IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIEdlbmV0aWMgUmVzb3VyY2VzIFByZXNlcnZhdGlvbiBhcyBwYXJ0IG9mIHRoZWlyIGFubnVhbCBjb25mZXJlbmNlIGFuZCBtZW1iZXJz4oCZIG1lZXRpbmcuIFRoZSB0aGVtZSBvZiB0aGUgbWVldGluZyB3YXMgIkdyZWVuIEdlbmVzOiBTYXZpbmcgQnJlZWRzIENyZWF0ZWQgZm9yIEdyYXNzIi4gRWlnaHR5LWZpdmUgbWVtYmVycyBmcm9tIHRoZSB0d28gb3JnYW5pemF0aW9ucyB3ZXJlIHVwZGF0ZWQgb24gdGhlIHN0YXR1cyBvZiB0aGUgYW5pbWFsIGdlcm1wbGFzbSBjb2xsZWN0aW9uIGFjdGl2aXRpZXMsIGFuZCB0b3VyZWQgdGhlIGxhYm9yYXRvcmllcyBhbmQgc3RvcmFnZSBhcmVhLiA8L1A+IAo8UD48U1RST05HPkFSUyBDYW1wdXMgVmFsdWFibGUgVG8gQW5pbWFsIFNjaWVuY2UgU3R1ZGVudHM8L1NUUk9ORz46IChVU0RBLUFSUyBOb3J0aGVybiBHcmVhdCBQbGFpbnMgUmVzZWFyY2ggTGFib3JhdG9yeSwgTWFuZGFuLCBORCkuIEJpc21hcmNrIFN0YXRlIENvbGxlZ2UgQW5pbWFsIGFuZCBSYW5nZSBTY2llbmNlIHN0dWRlbnRzIHdpbGwgYmUgZGV2ZWxvcGluZyB1bmRlcnN0YW5kaW5nIG9mIGxhYm9yYXRvcnkgYW5kIHJhbmdlIHNjaWVuY2VzIGF0IE5HUFJMIGFzIHBhcnQgb2YgdGhlaXIgY29sbGVnZSBjdXJyaWN1bHVtLiBPbiBPY3RvYmVyIDEydGgsIHRoZSBCU0MgQW5pbWFsIFNjaWVuY2UgY2xhc3MgdmlzaXRlZCB0aGUgcmFuZ2UgcmVub3ZhdGlvbiByZXNlYXJjaCBzaXRlcyBhbmQgd2FzIGxlY3R1cmVkIG9uIHRoZSB2YWx1ZSBvZiBncmF6aW5nIGxhbmRzIGZvciB0aGUgcHJvZHVjdGlvbiBvZiBoaWdoLXZhbHVlIHByb3RlaW4gZm9yIHRoZSBodW1hbiBkaWV0IGJ5IERyLiBKb2huIEhlbmRyaWNrc29uLCBVU0RBLUFSUyBSYW5nZSBTY2llbnRpc3QuIFRoZXkgd2lsbCByZXR1cm4gdG8gd29yayB3aXRoIERyLiBFcmljIFNjaG9sbGplZ2VyZGVzLCBVU0RBLUFSUyBSdW1pbmFudCBOdXRyaXRpb25pc3QgaW4gdGhlIG5ldyAiQW5pbWFsIE51dHJpdGlvbiBMYWJvcmF0b3J5IiBhbnQgTkdQUkwgb24gT2N0b2JlciAxN3RoLiBDYXJtZWwgTWlsbGVyLCBCU0MgQW5pbWFsIEFncmljdWx0dXJlIEluc3RydWN0b3IgYW5kIGFjdGl2ZSBOR1BSTCBDdXN0b21lciBGb2N1cyBHcm91cCBtZW1iZXIgZXhwcmVzc2VkIGhlciBhcHByZWNpYXRpb24gdGhhdCBVU0RBIHN1cHBvcnRzIGludGVncmF0ZWQgY3JvcC9hbmltYWwgcmVzZWFyY2ggaW4gdGhpcyByZWdpb24uIDwvUD4gCjxQPjxTVFJPTkc+R2VvcmdpYW4gU2NpZW50aXN0IFZpc2l0aW5nIE1vbnRhbmEgQVJTIExhYiBUbyBTdHVkeSBJbnNlY3QgTXljb2xvZ3k8L1NUUk9ORz46IERyLiBFbGVhbm9yYSBBYmFzaGlkemUsIG9mIHRoZSBHZW9yZ2lhbiBJbnN0aXR1dGUgZm9yIFBsYW50IFByb3RlY3Rpb24gYW5kIHRoZSBHZW9yZ2lhbiBTdGF0ZSBVbml2ZXJzaXR5LCBUYmxpc2ksIHdpbGwgYmUgdmlzaXRpbmcgdGhlIGxhYiBvZiBEci4gU3RlZmFuIEphcm9uc2tpLCBOUEFSTCwgU2lkbmV5IE1vbnRhbmEgZm9yIHR3byB3ZWVrcyBvZiB0cmFpbmluZyBpbiBpbnNlY3QgbXljb2xvZ3kuIEhlciB2aXNpdCBpcyBiZWluZyBmdW5kZWQgYnkgYSBVLlMuIEFnZW5jeSBmb3IgSW50ZXJuYXRpb25hbCBEZXZlbG9wbWVudCBncmFudCB0byB0aGUgVm9sY2FuaSBJbnN0aXR1dGUgb2YgSXNyYWVsLCBVbml2ZXJzaXR5IG9mIFd5b21pbmcgYW5kIERyLiBKYXJvbnNraSwgZW50aXRsZWQgIkJpb2xvZ2ljYWwgQ29udHJvbCBvZiBMb2N1c3RzIGluIEdlb3JnaWE6IEJ1aWxkaW5nIFNlbGYtU3VmZmljaWVuY3kuIiBUaGUgcHVycG9zZSBvZiB0aGUgMi0geWVhciBwcm9ncmFtIGlzIHRvIHRlYWNoIEdlb3JnaWFuIHNjaWVudGlzdHMgaG93IHRvIHNlbGVjdCBhbmQgZGV2ZWxvcCBhIG1pY3JvYmlhbCBjb250cm9sIGFnZW50IHRvIHRoZSBwb2ludCBvZiBjb21tZXJjaWFsaXphdGlvbiBhbmQgdG8gaGVscCBjcmVhdGUgdGhlIHNjaWVudGlmaWMgaW5mcmFzdHJ1Y3R1cmUgdG8gZG8gc28gaW4gdGhhdCBjb3VudHJ5LiBMYXRlciBpbiB0aGUgeWVhciBEci4gSmFyb25za2kgYW5kIERyLiBBbGV4IExhdGNoaW5pbnNreSAoVW5pdmVyc2l0eSBvZiBXeW9taW5nKSB3aWxsIHRyYXZlbCB0byBUYmxpc2kgdG8gYXNzaXN0IHNldHRpbmcgdXAgdGhlIHJlbGV2YW50IGxhYm9yYXRvcnkgZmFjaWxpdGllcyBhbmQgaW5pdGlhdGUgc2NyZWVuaW5nIHN0dWRpZXMuIDwvUD4gCjxQIGFsaWduPXJpZ2h0PjxBIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9BPjwvUD4gCjxQPjxTVFJPTkc+QVJTIFNjaWVudGlzdCBUbyBQYXJ0aWNpcGF0ZSBJbiBCaW9wZXN0aWNpZGUgTWVldGluZzwvU1RST05HPjogT24gT2N0b2JlciAxMXRoIGFuZCAxMnRoLCBEci4gU3RlZmFuIEphcm9uc2tpLCBTaWRuZXkgTW9udGFuYSwgaGFzIGJlZW4gaW52aXRlZCB0byBhdHRlbmQgdGhlIGFubnVhbCBtZWV0aW5nIG9mIHRoZSBCaW9wZXN0aWNpZGUgSW5kdXN0cnkgQWxsaWFuY2UsIHRvIGJlIGhlbGQgaW4gU2FjcmFtZW50byBDYWxpZm9ybmlhIHRvIHJlcHJlc2VudCBBUlMgaW50ZXJlc3RzIGluIHRoZSBkZXZlbG9wbWVudCBvZiBpbnNlY3QgcGF0aG9nZW5zLiBUaGUgdG9waWMgb2YgdGhlIEJQSUEgbWVldGluZyBpcyAiQWRvcHRpb24gb2YgQmlvcGVzdGljaWRlcyBpbiBJUE0gUHJvZ3JhbXMuIiBCUElBJ3MgZmlyc3QgbWVldGluZyB3YXMgQXByaWwgMTksIDIwMDAuIEl0cyBtZW1iZXJzIGluY2x1ZGUgY29tcGFuaWVzIHRoYXQgaGF2ZSBhIHN1YnN0YW50aWFsIHBvcnRpb24gb2YgdGhlaXIgYnVzaW5lc3MgZGVkaWNhdGVkIHRvIHJlc2VhcmNoLCBkZXZlbG9wbWVudCBhbmQvb3IgbWFya2V0aW5nIG9mIGJpb3Blc3RpY2lkZXMuIFRoZSBtaXNzaW9uIG9mIHRoZSBCUElBIGlzIHRvIGltcHJvdmUgdGhlIGdsb2JhbCBtYXJrZXQgcGVyY2VwdGlvbiBvZiBiaW9wZXN0aWNpZGVzIChtaWNyb2JpYWxzIGFuZCBiaW9jaGVtaWNhbHMpIGFzIGVmZmVjdGl2ZSBwcm9kdWN0cyBhbmQgdG8gZmFjaWxpdGF0ZSB0aGUgc3VjY2Vzc2Z1bCByZWdpc3RyYXRpb24gcHJvY2VzcyBvZiBiaW9wZXN0aWNpZGVzLiBCUElBIGlzIGRldmVsb3BpbmcgaW5kdXN0cnkgc3RhbmRhcmRzIGZvciBiaW9wZXN0aWNpZGVzIHRoYXQgZW5jb21wYXNzIHF1YWxpdHksIGVmZmljYWN5LCBhbmQgcmVndWxhdG9yeSBjcml0ZXJpYS4gQnkgZGV2ZWxvcGluZyB3aGF0IGlzIGVzc2VudGlhbGx5IGFuIGluZHVzdHJ5ICJzZWFsIG9mIGFwcHJvdmFsLCIgdGhlIEJQSUEgYWltcyB0byBmdXJ0aGVyIGRlbW9uc3RyYXRlIHRoYXQgYmlvcGVzdGljaWRlcyBhcmUgZWZmZWN0aXZlIGFuZCBoaWdoIHF1YWxpdHkgYWx0ZXJuYXRpdmVzIHRvIHRyYWRpdGlvbmFsIGNyb3AgcHJvdGVjdGlvbiBwcm9kdWN0cyB0aGF0IGNhbiBiZSB1c2VkIGVpdGhlciBhbG9uZSBvciBpbiBpbnRlZ3JhdGVkIHBlc3QgbWFuYWdlbWVudCBwcm9ncmFtcy4gSW4gYWRkaXRpb24sIEJQSUEgd2lsbCBzZXJ2ZSBhcyBhIHNvdW5kaW5nIGJvYXJkIGZvciB0aGUgRVBBIGFuZCBvdGhlciBhZ2VuY2llcywgYW5kIGFjdCBhcyBhIHJlc291cmNlIHRvIEJQSUEgbWVtYmVycyBpbiBkaXNzZW1pbmF0aW5nIGluZm9ybWF0aW9uIG9uIHJlZ3VsYXRvcnkgcG9saWNpZXMgYW5kIHByb2NlZHVyZXMuIDwvUD4gCjxQPjxTVFJPTkc+QVJTIFJlc2VhcmNoZXJzIFRvIFNwZWFrIEF0IEV4dGVuc2lvbiBBZ2VudCBDcm9wIFRyYWluaW5nPC9TVFJPTkc+OiBPbiBPY3RvYmVyIDV0aCwgZm91ciBOUEFSTCBzY2llbnRpc3RzIHdpbGwgc3BlYWsgYXQgTW9udGFuYSBTdGF0ZSBVbml2ZXJzaXR54oCZcyBFeHRlbnNpb24gU2VydmljZSBFYXN0ZXJuIFJlZ2lvbiBDcm9wIFRyYWluaW5nLCB0byBiZSBoZWxkIGF0IHRoZSBTaWRuZXksIE1vbnRhbmEgQVJTIGxhYi4gTlBBUkwgc3BlYWtlcnMgYW5kIHRoZWlyIHRvcGljcyBpbmNsdWRlOiBSZXNlYXJjaCBTb2lsIFNjaWVudGlzdCBKZWQgV2FkZWxsIGRpc2N1c3NpbmcgIlBob3NwaG9ydXMgRmVydGlsaXR5IGluIERyeWxhbmQgTGVndW1lczsiIFJlc2VhcmNoIFdlZWQgRWNvbG9naXN0IEFuZHkgTGVuc3NlbiBkaXNjdXNzaW5nICJDcm9wcGluZyBTdHJhdGVnaWVzIGZvciBJbXByb3ZlZCBXZWVkIE1hbmFnZW1lbnQ6IFJlc2VhcmNoIFJlc3VsdHM7IiBTdXBlcnZpc29yeSBSZXNlYXJjaCBFbnRvbW9sb2dpc3QgVG9tIFNoYW5vd2VyIGRpc2N1c3NpbmcgIldoZWF0IFN0ZW0gU2F3Zmx5IFJlc2VhcmNoLCIgYW5kIFN1cGVydmlzb3J5IEFncmljdWx0dXJhbCBFbmdpbmVlciBCb2IgRXZhbnMgZGlzY3Vzc2luZyAiSXJyaWdhdGlvbiBTeXN0ZW1zIGFuZCBTdHJpcCBUaWxsYWdlLiIgRHJzLiBXYWRkZWxsLCBMZW5zc2VuIGFuZCBFdmFucyBhcmUgd2l0aCBOUEFSTOKAmXMgQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdCwgd2hpY2ggRHIuIEV2YW5zIGhlYWRzLCB3aGlsZSBEci4gU2hhbm93ZXIgaGVhZHMgdXAgdGhlIGxhYuKAmXMgUGVzdCBNYW5hZ2VtZW50IFVuaXQuIE90aGVyIHNwZWFrZXJzIGZvciB0aGUgZXZlbnQgaW5jbHVkZSBNU1UgU29pbCBGZXJ0aWxpdHkgU3BlY2lhbGlzdCBDbGFpbiBKb25lcywgTVNVIFBsYW50IFBhdGhvbG9naXN0IEphY2sgUmllc3NlbG1hbiwgYW5kIE1TVSBXZWVkIFNjaWVudGlzdCBGYWJpYW4gTWVuYWxsZWQuIDwvUD4gCjxQPjxTVFJPTkc+S1VTRC04OS43IEZNLCBWZXJtaWxsaW9uLCBTb3V0aCBEYWtvdGEsIGNvbnRhY3RlZCBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggU2VydmljZSAoQVJTKSBGb3IgSW5mb3JtYXRpb24gT24gVGhlIFJlc2VhcmNoIFByb2dyYW0gQXQgVGhlIE5vcnRoZXJuIEdyYWluIEluc2VjdHMgUmVzZWFyY2ggTGFib3JhdG9yeTwvU1RST05HPjogT24gU2VwdGVtYmVyIDIzLCBLZW50b24gRGFzaGllbGwsIFJlc2VhcmNoIExlYWRlciwgQVJTIE5vcnRoZXJuIEdyYWluIEluc2VjdHMgUmVzZWFyY2ggTGFib3JhdG9yeSwgQnJvb2tpbmdzLCBTRCB3YXMgY29udGFjdGVkIGJ5IEdhcnkgRWxsZW5ib2x0LCBLVVNELTg5LjcgRk0sIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVzZWFyY2ggYmVpbmcgY29uZHVjdGVkIGF0IHRoZSBBUlMgbGFib3JhdG9yeS4gS1VTRC04OS43IEZNIGlzIHBhcnQgb2YgU291dGggRGFrb3RhIFB1YmxpYyBCcm9hZGNhc3RpbmcuIDwvUD4gCjxQIGFsaWduPWp1c3RpZnk+PFNUUk9ORz5BUlMgU2NpZW50aXN0IExlY3R1cmVzIEF0IERpY2tpbnNvbiBTdGF0ZSBVbml2ZXJzaXR5PC9TVFJPTkc+OiBPbiBPY3RvYmVyIDV0aCwgRHIuIEtyaXN0aW5lIE5pY2hvbHMgd2lsbCBwcmVzZW50IGd1ZXN0IGxlY3R1cmVzIGVudGl0bGVkICJCZWxvd2dyb3VuZCBDYXJib24gRmxvdyAtIFRoZSBHbG9tYWxpbiBDb25uZWN0aW9uIiBmb3IgYm90aCB0aGUgJ0ludHJvZHVjdGlvbiB0byBTb2lsIFNjaWVuY2UnIGFuZCAnSW50cm9kdWN0aW9uIHRvIFJhbmdlIE1hbmFnZW1lbnQnIGNvdXJzZXMgYXQgRGlja2luc29uIFN0YXRlIFVuaXZlcnNpdHkgaW4gRGlja2luc29uLCBORC48L1A+IAo8UCBhbGlnbj1yaWdodD48QSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvQT48L1A+IAo8UCBhbGlnbj1qdXN0aWZ5PjxTVFJPTkc+QWdyaWN1bHR1cmFsIFJlc2VhcmNoIFNlcnZpY2UgKEFSUykgYW5kIFUuUy4gRGVwYXJ0bWVudCBvZiBFbmVyZ3kgKERPRSkgU2NpZW50aXN0cyBQbGFuIENvb3BlcmF0aXZlIFJlc2VhcmNoIE9uIEJpb21hc3MgRW5lcmd5OjwvU1RST05HPiBPbiBBdWd1c3QgMTctMTksIEFSUyBzY2llbnRpc3RzIHN0YXRpb25lZCBhdCBMaW5jb2xuLCBOZWJyYXNrYSB3aG8gYXJlIGNvbmR1Y3RpbmcgcmVzZWFyY2ggdG8gZGV2ZWxvcCBzd2l0Y2hncmFzcyBpbnRvIGEgYmlvbWFzcyBlbmVyZ3kgY3JvcCBtZXQgd2l0aCBzY2llbnRpc3RzIGZyb20gdGhlIElkYWhvIE5hdGlvbmFsIExhYm9yYXRvcnksIERPRSwgYXQgTGluY29sbiwgTmVicmFza2EuIFRoZSBzdWNjZXNzZnVsIG9iamVjdGl2ZSBvZiB0aGUgbWVldGluZyB3YXMgdG8gZGV2ZWxvcCBjb29wZXJhdGl2ZSByZXNlYXJjaCBwbGFucyB0byBpbXByb3ZlIGhhcnZlc3RpbmcsIHN0b3JhZ2UsIGFuZCBwb3N0LWhhcnZlc3QgcHJvY2Vzc2luZyBvZiBzd2l0Y2hncmFzcyBmb3IgdXNlIGluIGJpb21hc3MgZW5lcmd5IGNvbnZlcnNpb24gZmFjaWxpdGllcy4gQXQgYSBwcmV2aW91cyBtZWV0aW5nIGhlbGQgaW4gT21haGEsIE5lYnJhc2thIG9uIEF1Z3VzdCAxMSB3aXRoIEFSUyBzY2llbnRpc3RzIGZyb20gTGluY29sbiwgTmVicmFza2EsIEFtZXMsIElvd2EsIGFuZCBTdC4gUGF1bCwgTWlubmVzb3RhLCBET0Ugc2NpZW50aXN0cyBmcm9tIHRoZSBJZGFobyBOYXRpb25hbCBMYWJvcmF0b3J5LCBhbmQgY29vcGVyYXRpbmcgdW5pdmVyc2l0eSBzdGFmZiBmcm9tIElvd2EgU3RhdGUgVW5pdmVyc2l0eSwgcmVzZWFyY2ggd2FzIHBsYW5uZWQgb24gdGhlIHN1c3RhaW5hYmxlIHVzZSBvZiBjb3JuIHN0b3ZlciBmb3IgYmlvZW5lcmd5LiA8L1A+IAo8UCBhbGlnbj1qdXN0aWZ5PjxTVFJPTkc+QVJTIFNjaWVudGlzdCBJbnZpdGVkIFRvIFNwZWFrIEF0IEZpZWxkIERheTo8L1NUUk9ORz4gT24gQXVndXN0IDE4LCBEci4gU2NvdHQgQmVhbiwgb2YgdGhlIEdyYWluIFF1YWxpdHkgJiBTdHJ1Y3R1cmUgUmVzZWFyY2ggVW5pdCBhdCB0aGUgR3JhaW4gTWFya2V0aW5nIGFuZCBQcm9kdWN0aW9uIFJlc2VhcmNoIENlbnRlciBpbiBNYW5oYXR0YW4sIEtTLCBzcG9rZSBhYm91dCBoaXMgcmVzZWFyY2ggZHVyaW5nIHRoZSBLYW5zYXMgU3RhdGUgVW5pdmVyc2l0eSBBZ3Jvbm9teSBGaWVsZCBEYXksIGluIEhlc3N0b24sIEtTLiBCcmlhbiBJb2VyZ2VyIGFuZCBSaGV0dCBLYXVmbWFuIGFsc28gYXR0ZW5kZWQgdGhlIGZpZWxkIGRheS48L1A+IAo8UD48U1RST05HPkFSUyBCb3RhbmlzdCBUbyBEaXNjdXNzIEdlbmV0aWNzIE9mIFBsYW50IEludmFzaW9uczo8L1NUUk9ORz4gT24gQXVndXN0IDMxLCBOUEFSTCBCb3RhbmlzdCBKb2huIEdhc2tpbiBoYXMgYmVlbiBpbnZpdGVkIHRvIGdpdmUgYSB0YWxrIHRvIHRoZSBDb25zZXJ2YXRpb24gR2VuZXRpY3MgUHJvZ3JhbSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBJZGFobywgTW9zY293LiBIaXMgcHJlc2VudGF0aW9uIGlzIGVudGl0bGVkICJHZW5ldGljIHN0dWRpZXMgYXBwbGllZCB0b3dhcmQgdGhlIGNvbnRyb2wgb2YgcGxhbnQgaW52YXNpb25zOiBmcm9tIGZhbWlseSB0byBwb3B1bGF0aW9uIGxldmVsLiIgRHIuIEdhc2tpbiBpcyBhIG1lbWJlciBvZiBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQgYW5kIHdvcmtzIGluIHRoZSBiaW9sb2dpY2FsIGNvbnRyb2wgb2Ygbm94aW91cyB3ZWVkcyBmaWVsZC4gPC9QPiAKPFA+PFNUUk9ORz5BUlMgU29pbCBTY2llbnRpc3QgVG8gU3BlYWsgQXQgSW50ZXJuYXRpb25hbCBTdXN0YWluYWJsZSBBZyBDb25mZXJlbmNlOjwvU1RST05HPiBPbiBBdWd1c3QgMjItMjcsIE5QQVJMIFNvaWwgU2NpZW50aXN0IFVwZW5kcmEgU2Fpbmp1IHdpbGwgcHJlc2VudCBhIHBhcGVyIGF0IHRoZSBUaGlyZCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb24gU3VzdGFpbmFibGUgQWdyaWN1bHR1cmUgZm9yIEZvb2QsIEVuZXJneSBhbmQgSW5kdXN0cnkgdG8gYmUgaGVsZCBpbiBTdC4gQ2F0aGFyaW5l4oCZcywgQ2FuYWRhLiBUaGUgY29uZmVyZW5jZSB3aWxsIGZvY3VzIG9uIHRoZSBpc3N1ZXM6IFNlY3VyaXR5LCBTYWZldHksIEZydWdhbGl0eSwgYW5kIENvbnNlcnZhdGlvbi4gRHIuIFNhaW5qdeKAmXMgcGFwZXIgaXMgZW50aXRsZWQgIlRpbGxhZ2UsIGNyb3Agcm90YXRpb25zLCBhbmQgY3VsdHVyYWwgcHJhY3RpY2VzIGVmZmVjdHMgb24gZHJ5bGFuZCBzb2lsIGFuZCBjcm9wIHJlc2lkdWUgY2FyYm9uIGFuZCBuaXRyb2dlbiwiIGFuZCBpcyBjb2F1dGhvcmVkIHdpdGggZmVsbG93IE5QQVJMIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQgc2NpZW50aXN0cyBBbmR5IExlbnNzZW4sIFJvYmVydCBFdmFucywgVGhlQ2FuIENhZXNhciBhbmQgSmVkIFdhZGRlbGwuIFRoZSBwYXBlciwgdG8gYmUgcHVibGlzaGVkIGluIHRoZSBjb25mZXJlbmNlIHByb2NlZWRpbmdzLCBkaXNjdXNzZXMgcmVzZWFyY2ggYnkgdGhlIHVuaXQgb24gZHJ5bGFuZCBzb2lsIGFuZCBjcm9wIG1hbmFnZW1lbnQgcHJhY3RpY2VzIHRoYXQgY29uc2VydmUgc29pbCBvcmdhbmljIG1hdHRlciwgaW1wcm92ZSBzb2lsIHF1YWxpdHkgYW5kIHByb2R1Y3Rpdml0eSwgYW5kIHN1c3RhaW4gY3JvcCB5aWVsZHMgaW4gdGhlIG5vcnRoZXJuIEdyZWF0IFBsYWlucy4gVGhlIHB1cnBvc2Ugb2YgdGhlIFN1c3RhaW5hYmxlIEFncmljdWx0dXJlIENvbmZlcmVuY2UgaXMgdG8gcHJvdmlkZSBhbiBpbnRlcm5hdGlvbmFsIGZvcnVtIGZvciBzY2llbnRpc3RzIGFuZCByZXNlYXJjaGVycyB0byBleGNoYW5nZSBpbmZvcm1hdGlvbiBhbmQgYWNoaWV2ZW1lbnRzLCB0byBhc2NlcnRhaW4gdGhlIGNoYWxsZW5nZXMgb2YgdGhlIGZ1dHVyZSwgYW5kIHRvIG9mZmVyIGlkZWFzIGZvciBhZ3JpY3VsdHVyYWwgcHJhY3RpY2VzICLigKZ0aGF0IG1lZXRzIHRoZSBuZWVkcyBvZiB0aGUgcHJlc2VudCB3aXRob3V0IGNvbXByb21pc2luZyB0aGUgYWJpbGl0eSBvZiBmdXR1cmUgZ2VuZXJhdGlvbnMgdG8gbWVldCB0aGVpciBvd24gbmVlZHMuIiA8L1A+IAo8UD48U1RST05HPkFSUyBJbnNlY3QgUGF0aG9sb2dpc3QgdG8gQWlkIEJpb3Blc3RpY2lkZSBSZXNlYXJjaCBFZmZvcnQgaW4gU2VuZWdhbC4gQWZyaWNhPC9TVFJPTkc+OiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKS4gTlBBUkwgUmVzZWFyY2ggRW50b21vbG9naXN0IFN0ZWZhbiBKYXJvbnNraSwgYW4gZXhwZXJ0IGluIGluc2VjdCBwYXRob2xvZ3ksIGhhcyBiZWVuIGFza2VkIHRvIGFpZCBpbiB0aGUgcGxhbm5pbmcgYW5kIGltcGxlbWVudGF0aW9uIG9mIGZpZWxkIHRyaWFscyBvZiB0aGUgbXljb2luc2VjdGljaWRlIEdyZWVuIE11c2NsZSAoTWV0YXJoaXppdW0gYW5pc29wbGlhZSkgYWdhaW5zdCBkZXNlcnQgbG9jdXN0cyBhbmQgZ3Jhc3Nob3BwZXJzIGluIFNlbmVnYWwsIEFmcmljYS4gVGhlIEludGVncmF0ZWQgUGVzdCBNYW5hZ2VtZW50IENvbGxhYm9yYXRpdmUgUmVzZWFyY2ggU3VwcG9ydCBQcm9ncmFtLCBhY3Rpbmcgb24gYSByZXF1ZXN0IGZyb20gdGhlIFUuUy4gQWdlbmN5IGZvciBJbnRlcm5hdGlvbmFsIERldmVsb3BtZW50IGFuZCBVU0RBIEZvcmVpZ24gQWdyaWN1bHR1cmFsIFNlcnZpY2UsIGlzIGNvbmR1Y3RpbmcgdGhlIHRlc3RzIGluIHBhcnQgdG8gcHJvbW90ZSBlbnZpcm9ubWVudGFsbHkgZnJpZW5kbHkgYmlvcGVzdGljaWRlIGFsdGVybmF0aXZlcyB0byBsYXJnZS1zY2FsZSwgc3ludGhldGljIGNoZW1pY2FsIGNvbnRyb2wuIERyLiBKYXJvbnNraSB3aWxsIHRyYXZlbCB0byBEYWthciwgU2VuZWdhbCwgaW4gbGF0ZSBKdWx5IGFuZCBhZ2FpbiBpbiBBdWd1c3QsIHdoZXJlIGhlIHdpbGwgYWlkIGluIHRyYWluaW5nIGZpZWxkIHBlcnNvbm5lbCwgb3ZlcnNlZSB0aGUgZmllbGQgYXBwbGljYXRpb24gb2YgdGhlIGJpb3Blc3RpY2lkZSBtYXRlcmlhbHMgYW5kIGFkdmlzZSBvbiBjb25jdXJyZW50IG5vbnRhcmdldCBlY290b3hpY29sb2d5IHN0dWRpZXMgb2YgYmlvcGVzdGljaWRlIGltcGFjdHMuIERyLiBKYXJvbnNraSBpcyBhIG1lbWJlciBvZiBOUEFSTOKAmXMgUGVzdCBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQuIDwvUD4gCjxQPjxTVFJPTkc+TW9udGFuYSBBUlMgTGFiIEZlYXR1cmVkIE9uIE1hbHRpbmcgQmFybGV5IEluZHVzdHJ5IFRvdXI6PC9TVFJPTkc+IE9uIEp1bHkgMTIsIFNvaWwgU2NpZW50aXN0IEplZCBXYWRkZWxsIHdpbGwgZXNjb3J0IG1lbWJlcnMgb2YgdGhlIEFtZXJpY2FuIE1hbHRpbmcgQmFybGV5IEFzc29jaWF0aW9uLCBJbmMuIChBTUJBKSBpbiBhIHRvdXIgb2YgQVJTIG1hbHRpbmcgYmFybGV5IHJlc2VhcmNoIHBsb3RzIGF0IHRoZSBTaWRuZXksIE1vbnRhbmEgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIFNlcnZpY2UgbGFib3JhdG9yeS4gRHIuIFdhZGRlbGwgaXMgc3R1ZHlpbmcgdGhlIGVmZmVjdHMgb2Ygbml0cm9nZW4gZmVydGlsaXplciBvbiB0aGUgZ3Jvd3RoLCB5aWVsZCwgYW5kIHF1YWxpdHkgb2YgaXJyaWdhdGVkLCBzaXgtcm93IG1hbHRpbmcgYmFybGV5LiBIZSBpcyBhIG1lbWJlciBvZiBOUEFSTOKAmXMgQWdyaWN1bHR1cmFsIFN5c3RlbXMgUmVzZWFyY2ggVW5pdC4gVGhlIEFNQkHigJlzIDIwMDUgSW5kdXN0cnkgQmFybGV5IFRvdXIgd2lsbCBhbHNvIHZpc2l0IE1vbnRhbmEgU3RhdGUgVW5pdmVyc2l0eeKAmXMgRWFzdGVybiBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggQ2VudGVyIGluIFNpZG5leSBhbG9uZyB3aXRoIG90aGVyIHVuaXZlcnNpdHkgcmVzZWFyY2ggZmFjaWxpdGllcyBpbiBXaWxsaXN0b24sIERpY2tpbnNvbiBhbmQgTWlub3QsIE5ELiBUaGUgQU1CQSBpcyBhIG5vbi1wcm9maXQgdHJhZGUgYXNzb2NpYXRpb24gZm9ybWVkIGluIDE5ODIgdG8gaGVscCBlbnN1cmUgYW4gYWRlcXVhdGUgc3VwcGx5IG9mIGhpZ2ggcXVhbGl0eSBtYWx0aW5nIGJhcmxleSBmb3IgdGhlIG1hbHRpbmcgYW5kIGJyZXdpbmcgaW5kdXN0cnkuIE1lbWJlciBidXNpbmVzc2VzIGluY2x1ZGUgQW5oZXVzZXItQnVzY2gsIEluYy4sIEJyaWVzcyBNYWx0ICYgSW5ncmVkaWVudHMgQ28uLCBDYXJnaWxsIE1hbHQsIElNQyAtIFVuaXRlZCBTdGF0ZXMsIFRoZSBHYW1icmludXMgQ29tcGFueSwgR01vZGVsbyBBZ3JpY3VsdHVyZSBJbmMuLCBNaWxsZXIgQnJld2luZyBDby4sIFJhaHIgTWFsdGluZyBDby4sIFNpZXJyYSBOZXZhZGEgQnJld2luZyBDby4sIGFuZCBTdW1taXQgQnJld2luZyBDb21wYW55LiBBTUJBIGZ1bmRlZCByZXNlYXJjaCBpbiB3ZXN0ZXJuIHN0YXRlcyBpcyBhaW1lZCBhdCBkZXZlbG9wbWVudCBvZiBpbXByb3ZlZCBtYWx0aW5nIHR3by1yb3cgYW5kIHNpeC1yb3cgdmFyaWV0aWVzIHRvIHByb3ZpZGUgcHJvZHVjZXJzIGFuIGFsdGVybmF0aXZlIGNyb3AgdG8gZXhpc3RpbmcgZmVlZCBiYXJsZXkgYWNyZWFnZS4gVGhlIGVhc3Rlcm4gTW9udGFuYSBhbmQgd2VzdGVybiBOb3J0aCBEYWtvdGEgcmVnaW9uIGlzIGF0dHJhY3RpdmUgZm9yIG1hbHRpbmcgYmFybGV5IGRldmVsb3BtZW50IGJlY2F1c2UgaXRzIGFtcGxlIHdhdGVyIHJlc291cmNlcyBhbmQgc2VtaSBhcmlkIGNsaW1hdGUgYWlkIHF1YWxpdHkgYW5kIGl0cyBjb29wZXJhdGl2ZSByZXNlYXJjaCBlZmZvcnRzIGJldHdlZW4gZmVkZXJhbCBhbmQgc3RhdGUgYWdlbmNpZXMgY2FuIGFkZHJlc3Mgb3RoZXIgc3R1bWJsaW5nIGJsb2NrcyB0byBnb29kIHJldHVybnMuIDwvUD4gCjxQPjwvU1RST05HPjxTVFJPTkc+QVJTIFBsYW50IFBhdGhvbG9naXN0IFRvIFByZXNlbnQgUGFwZXIgQXQgSW50ZXJuYXRpb25hbCBNb2xlY3VsYXIgQ29uZ3Jlc3M8L1NUUk9ORz46IDwvU1RST05HPlVTREEtQVJTIE5vcnRoZXJuIFBsYWlucyBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggTGFib3JhdG9yeSwgU2lkbmV5LCBNVC4gT24gSnVseSAxNy0yMiwgUm9iZXJ0IFQuIExhcnRleSBoYXMgYmVlbiBpbnZpdGVkaXMgdG8gZ2l2ZSBhIHByZXNlbnRhdGlvbiBhdCB0aGUgWElJIEludGVybmF0aW9uYWwgQ29uZ3Jlc3Mgb24gTW9sZWN1bGFyIFBsYW50LU1pY3JvYmUgSW50ZXJhY3Rpb25zIGluIENhbmN1biwgTWV4aWNvLiBUaGUgYmllbm5pYWwgY29uZ3Jlc3MgaXMgc3BvbnNvcmVkIGJlaW5nIG9yZ2FuaXplZCBieSB0aGUgSW50ZXJuYXRpb25hbCBTb2NpZXR5IGZvciBNb2xlY3VsYXIgUGxhbnQtTWljcm9iZSBJbnRlcmFjdGlvbnMgKElTLU1QTUkpLiBUaGUgZml2ZS1kYXkgY29uZmVyZW5jZSB3aWxsIGZlYXR1cmUgc2V2ZW4gUGxlbmFyeSBzeW1wb3NpYSBhcyB3ZWxsIGFzIDE4IGNvbmN1cnJlbnQgc2Vzc2lvbnMgYW5kIG1pbmktc3ltcG9zaWEgb24gdG9waWNzIHJhbmdpbmcgZnJvbSBpbnRlcmFjdGlvbnMgYmV0d2VlbiBwbGFudHMgYW5kIGZ1bmdpIHRvIGlubmF0ZSBpbW11bmUgcmVzcG9uc2UgaW4gcGxhbnRzLiBEci4gTGFydGV54oCZcyBwcmVzZW50YXRpb24gaXMgZW50aXRsZWQgIkEgbGlnaHQgYW5kIHNjYW5uaW5nIGVsZWN0cm9uIG1pY3Jvc2NvcGljIHN0dWR5IG9mIHByb2dyZXNzaW9uIG9mIENlcmNvc3BvcmEgYmV0aWNvbGEgaW5mZWN0aW9uIGluIHN1Z2FyIGJlZXQgYW5kIHNhZmZsb3dlci4iIEhlIGlzIHRoZSBmaXJzdCBzY2llbnRpc3QgdG8gZXN0YWJsaXNoIHRoYXQgc2FmZmxvd2VyIGlzIGFuIGFsdGVybmF0ZSBob3N0IGZvciBDZXJjb3Nwb3JhIGJldGljb2xhLCB0aGUgY2F1c2FsIGFnZW50IG9mIENlcmNvc3BvcmEgbGVhZiBzcG90IG9mIHN1Z2FyIGJlZXQuIERyLiBMYXJ0ZXkgaXMgYSBtZW1iZXIgb2YgTlBBUkzigJlzIEFncmljdWx0dXJhbCBTeXN0ZW1zIFJlc2VhcmNoIFVuaXQuIDwvUD4gCjxQPjxTVFJPTkc+Tm9ydGggRGFrb3RhIFdhdGVyIFVzZXJzIEFzc29jaWF0aW9uIFRvIFRvdXIgQVJTIFJlc2VhcmNoIEZhY2lsaXR5IFRlc3QgUGxvdHM6PC9TVFJPTkc+IChVU0RBLUFSUyBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnksIFNpZG5leSwgTVQpLiBPbiBKdWx5IDIxLTIyLCBtZW1iZXJzIG9mIHRoZSBOb3J0aCBEYWtvdGEgV2F0ZXIgVXNlcnMgQXNzb2NpYXRpb24gd2lsbCB0b3VyIHRoZSBOb3J0aGVybiBQbGFpbnMgQWdyaWN1bHR1cmFsIFJlc2VhcmNoIExhYm9yYXRvcnkgaW4gU2lkbmV5LCBNb250YW5hLCBhcyBwYXJ0IG9mIGEgc2Vhc29uYWwgdG91ciBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBNaXNzb3VyaSBTbG9wZSBJcnJpZ2F0aW9uIERpc3RyaWN0IG9mIEJpc21hcmNrLCBORC4gTWVtYmVycyB3aWxsIHRvdXIgTlBBUkzigJlzIG5ldyBsYWIgb2ZmaWNlIGNvbXBsZXggYXMgd2VsbCBhcyB2aXNpdCBBUlMgYW5kIE5vcnRoIERha290YSBTdGF0ZSBVbml2ZXJzaXR5IGlycmlnYXRpb24gcmVzZWFyY2ggcGxvdHMgYXQgdGhlIHVuaXZlcnNpdHnigJlzIE5lc3NvbiBWYWxsZXkgcmVzZWFyY2ggc2l0ZS4gVGhlcmUsIERyLiBSb2JlcnQgRXZhbnMsIGFuIGFncmljdWx0dXJhbCBlbmdpbmVlciBhbmQgUmVzZWFyY2ggTGVhZGVyIG9mIE5QQVJM4oCZcyBBZ3JpY3VsdHVyYWwgU3lzdGVt4oCZcyBSZXNlYXJjaCBVbml0LCB3aWxsIGRpc2N1c3MgaGlzIHVuaXTigJlzIGlycmlnYXRpb24gcmVzZWFyY2ggcHJvZ3JhbSBhbmQgc3BlY2lmaWMgQVJTIHJlc2VhcmNoIGJlaW5nIGNvbmR1Y3RlZCBhdCB0aGUgTmVzc29uIFZhbGxleSBzaXRlLCBpbmNsdWRpbmcgcHJlY2lzaW9uIGlycmlnYXRpb24gc3R1ZGllcy4gPC9QPiAKPFA+PFNUUk9ORz5BdXN0cmFsaWFuIE9mZmljaWFsIFRvIFRvdXIgTW9udGFuYSBBUlMgTGFiPC9TVFJPTkc+OiAoVVNEQS1BUlMgTm9ydGhlcm4gUGxhaW5zIEFncmljdWx0dXJhbCBSZXNlYXJjaCBMYWJvcmF0b3J5LCBTaWRuZXksIE1UKS4gT24gSnVseSAyNS0yNiwgTlBBUkwgd2lsbCBob3N0IERyLiBHcmFoYW0gSGFycmlzLCBzZW5pb3IgZGV2ZWxvcG1lbnQgZXh0ZW5zaW9uIG9mZmljZXIgKGlycmlnYXRpb24pIGZvciB0aGUgRGVwYXJ0bWVudCBvZiBQcmltYXJ5IEluZHVzdHJpZXMgYW5kIEZpc2hlcmllcyBpbiBRdWVlbnNsYW5kLCBBdXN0cmFsaWEuIERyLiBIYXJyaXMgaXMgdGhlIHJlY2lwaWVudCBvZiB0aGUgMjAwNCBTd2lyZSBHcm91cCBDaHVyY2hpbGwgRmVsbG93c2hpcCwgd2hpY2ggcHJvdmlkZXMgaGltIHRoZSBvcHBvcnR1bml0eSB0byBleGFtaW5lIGN1cnJlbnQgaW50ZXJuYXRpb25hbCByZXNlYXJjaCBhbmQgY29tbWVyY2lhbCB1c2Ugb2YgcHJlY2lzaW9uIGlycmlnYXRpb24gcHJhY3RpY2VzIGluIGNvdHRvbiBhbmQgYnJvYWRhY3JlIGNyb3BzIGFpbWVkIGF0IGltcHJvdmluZyB3YXRlciB1c2UgZWZmaWNpZW5jeSBhbmQgbWluaW1pemluZyBlbnZpcm9ubWVudGFsIGltcGFjdC4gRHVyaW5nIGhpcyB2aXNpdCB0byB0aGUgU2lkbmV5LCBNVCBBUlMgbGFib3JhdG9yeSwgaGUgd2lsbCBtZWV0IHdpdGggRHIuIFJvYmVydCBFdmFucywgaGVhZCBvZiB0aGUgbGFi4oCZcyBBZ3JpY3VsdHVyYWwgU3lzdGVtcyBSZXNlYXJjaCBVbml0LCBhbmQgb3RoZXIgTlBBUkwgaXJyaWdhdGlvbiBzY2llbnRpc3RzIHRvIGRpc2N1c3MgcmVzZWFyY2ggYmVpbmcgY29uZHVjdGVkIG9uIHRoZSBwcmVjaXNpb24gYXBwbGljYXRpb24gb2YgYWdyb2NoZW1pY2FscyB0aHJvdWdoIGlycmlnYXRpb24gc3lzdGVtcy4gV2hpbGUgYXQgTlBBUkwgaGUgd2lsbCBhbHNvIG1lZXQgd2l0aCBsb2NhbCBpcnJpZ2F0aW9uIHByb2plY3Qgb2ZmaWNpYWxzLiBJbiBhZGRpdGlvbiB0byBoaXMgdmlzaXQgdG8gTW9udGFuYSwgRHIuIEhhcnJpcyBwbGFucyBzZXZlcmFsIHN0b3BzIGF0IG90aGVyIHJlc2VhcmNoIGFuZCBjb21tZXJjaWFsIHNpdGVzIGluIHRoZSBVLlMuIGFuZCBJc3JhZWwuIDwvUD4gCjxQPjxTVFJPTkc+UmFuZ2VsYW5kIFJlc291cmNlcyBSZXNlYXJjaCBVbml0IFNjaWVudGlzdCB0byBSZWNlaXZlIEF3YXJkOjwvU1RST05HPiBPbiBKdW5lIDE5LTIzLCBUaGUgQW1lcmljYW4gU29jaWV0eSBmb3IgTWluaW5nIGFuZCBSZWNsYW1hdGlvbiB3aWxsIHJlY29nbml6ZSBEci4gR2VyYWxkIFNjaHVtYW4gZnJvbSB0aGUgSGlnaCBQbGFpbnMgR3Jhc3NsYW5kcyBSZXNlYXJjaCBTdGF0aW9uLCBDaGV5ZW5uZSwgV1kgYXQgdGhlaXIgMjJuZCBBbm51YWwgTWVldGluZyBvZiB0aGUgU29jaWV0eSwgaW4gQnJlY2tlbnJpZGdlLCBDTy4gRHIuIFNjaHVtYW4gd2lsbCByZWNlaXZlIHRoZSBXaWxsaWFtIFQuIFBsYXNzIEF3YXJkIGZvciBoaXMgb3V0c3RhbmRpbmcgY29udHJpYnV0aW9ucyBpbiB0aGUgYXJlYSBvZiByZWNsYW1hdGlvbiByZXNlYXJjaCwgZGV2ZWxvcG1lbnQgb2YgcmVjbGFtYXRpb24gdGVjaG5vbG9naWVzIGJhc2VkIG9uIGhpcyByZXNlYXJjaCwgYW5kIGluY2x1c2lvbiBvZiBoaXMgcmVzZWFyY2ggZmluZGluZ3MgaW50byBTdGF0ZSBhbmQgRmVkZXJhbCByZWNsYW1hdGlvbiByZWd1bGF0aW9ucy4gRHIuIFNjaHVtYW4gaXMgcmVjb2duaXplZCBpbiB0aGlzIGZpZWxkIGJvdGggbmF0aW9uYWxseSBhbmQgaW50ZXJuYXRpb25hbGx5IGFuZCBoYXMgYmVlbiBpbnZpdGVkIGJ5IGdvdmVybm1lbnQsIHJlc2VhcmNoZXIsIGFuZCBpbmR1c3RyeSByZXByZXNlbnRhdGl2ZXMgZnJvbSBudW1lcm91cyBjb3VudHJpZXMgdG8gYXNzaXN0IHdpdGggdGhlIGFzc2Vzc21lbnQgYW5kIGRldmVsb3BtZW50IG9mIHJlY2xhbWF0aW9uIHRlY2hub2xvZ3kgYW5kIHNjaWVuY2UuIFRoZSBXaWxsaWFtIFQuIFBsYXNzIEF3YXJkIGlzIHRoZSBtb3N0IHByZXN0aWdpb3VzIGF3YXJkIG9mIHRoZSBBbWVyaWNhbiBTb2NpZXR5IG9mIE1pbmluZyBhbmQgUmVjbGFtYXRpb24gYW5kIGlzIG5vdCBnaXZlbiBldmVyeSB5ZWFyLiA8L1A+IAo8UD48U1RST05HPkFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlIChBUlMpIFNjaWVudGlzdCBJbnZpdGVkIHRvIFNwZWFrIGF0IEVudG9tb2xvZ2ljYWwgTWVldGluZzwvU1RST05HPjogT24gTWFyY2ggMjEsIERhdmlkIFRheWxvciwgUmVzZWFyY2ggRW50b21vbG9naXN0LCBBUlMgTWlkd2VzdCBMaXZlc3RvY2sgSW5zZWN0IFJlc2VhcmNoIFVuaXQsIExpbmNvbG4sIE5FLCBoYXMgYmVlbiBpbnZpdGVkIHRvIHByZXNlbnQgYSB0YWxrIGF0IHRoZSBFbnRvbW9sb2dpY2FsIFNvY2lldHkgb2YgQW1lcmljYSBOb3J0aCBDZW50cmFsIEJyYW5jaCBNZWV0aW5nIGluIE5vcnRoIExhZmF5ZXR0ZSwgSU4gaW4gdGhlIEJDRSBTeW1wb3NpdW06IFVyYmFuIEVudG9tb2xvZ3kgUmVzZWFyY2ggYW5kIEV4dGVuc2lvbiBUZWNobm9sb2d5IGluIHRoZSBOb3J0aCBDZW50cmFsIFJlZ2lvbi4gVGhlIHRpdGxlIG9mIGhpcyBwcmVzZW50YXRpb24gd2lsbCBiZTogIlN0YWJsZSBmbGllcyBhcyB1cmJhbiBwZXN0czogSW1wYWN0IG9uIHJlY3JlYXRpb24gYW5kIGhlYWx0aC4iIEFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlIChBUlMpIFNjaWVudGlzdCBJbnZpdGVkIHRvIFNwZWFrIGF0IEVudG9tb2xvZ2ljYWwgTWVldGluZzogT24gRmVicnVhcnkgMjYsIEppbSBDYW1wYmVsbCwgZW50b21vbG9naXN0LCBBUlMgQmlvbG9naWNhbCBSZXNlYXJjaCBVbml0LCBNYW5oYXR0YW4sIEtTLCBoYXMgYmVlbiBpbnZpdGVkIHRvIHByZXNlbnQgYSB0YWxrIGF0IHRoZSBFbnRvbW9sb2dpY2FsIFNvY2lldHkgb2YgQW1lcmljYSBQYWNpZmljIEJyYW5jaCBNZWV0aW5nIGluIFBhY2lmaWMgR3JvdmUsIENBLiBUaGUgdGl0bGUgb2YgaGlzIHByZXNlbnRhdGlvbiBpcyAiRnVtaWdhdGlvbiBvZiBmbG91ciBtaWxscyB0byBtYW5hZ2UgcmVkIGZsb3VyIGJlZXRsZTogYXNzZXNzbWVudCBvZiB0cmVhdG1lbnQgZWZmaWNhY3kiLiBPbiBNYXJjaCA0LCBEci4gQ2FtcGJlbGwgd2lsbCBhbHNvIGdpdmUgYSBkZXBhcnRtZW50YWwgc2VtaW5hciBhdCB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBEYXZpcywgZW50aXRsZWQgIkluZmx1ZW5jZSBvZiBmb29kIHByb2Nlc3NpbmcgZmFjaWxpdHkgbGFuZHNjYXBlcyBvbiB0aGUgYmVoYXZpb3IsIGVjb2xvZ3kgYW5kIG1hbmFnZW1lbnQgb2Ygc3RvcmVkIHByb2R1Y3QgaW5zZWN0IHBlc3RzLiIgPC9QPiAKPFA+PFNUUk9ORz5BZ3JpY3VsdHVyYWwgUmVzZWFyY2ggU2VydmljZSAoQVJTKSBTY2llbnRpc3QgSW52aXRlZCB0byBNYWtlIFByZXNlbnRhdGlvbiBhdCB0aGUgQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eSBFeHRlbnNpb24gU2VydmljZSBXb3Jrc2hvcDwvU1RST05HPjogT24gRmVicnVhcnkgMTYsIEZyYW5rIEFydGh1ciwgZW50b21vbG9naXN0LCBBUlMgQmlvbG9naWNhbCBSZXNlYXJjaCBVbml0LCBNYW5oYXR0YW4sIEtTLCB3aWxsIGdpdmUgYSBwcmVzZW50YXRpb24gZW50aXRsZWQgIlN0b3JlZCBDb21tb2RpdHkgVHJlYXRtZW50IiwgYXQgYSB0cmFpbmluZyBzZXNzaW9uICJDb21tZXJjaWFsIFBlc3RpY2lkZSBBcHBsaWNhdG9ycyBXb3Jrc2hvcCIuIERyLiBBcnRodXIgd2lsbCBkaXNjdXNzIHRoZSBtYWpvciBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgaW5zZWN0IHBlc3RzIG9mIHN0b3JlZCBncmFpbnMsIHJlZ2lzdGVyZWQgaW5zZWN0aWNpZGVzIGFuZCBub24tY2hlbWljYWwgdHJlYXRtZW50cyB0aGF0IGFyZSB1c2VkIGZvciB0aGUgdmFyaW91cyBwaGFzZXMgb2Ygc3RvcmVkIGdyYWluIG1hbmFnZW1lbnQsIGFuZCBwb3RlbnRpYWwgcmVnaXN0cmF0aW9ucyBmb3IgdGhlIG5lYXIgZnV0dXJlLiBEYXRhIGZyb20gc2VsZWN0ZWQgcmVzZWFyY2ggdG9waWNzIHdpbGwgYmUgdXNlZCB0byBpbGx1c3RyYXRlIGNvbmNlcHRzIGFuZCBtYWpvciBkaXNjdXNzaW9uIHBvaW50cy4gVGhlIHNlc3Npb24gd2lsbCBiZSBhdHRlbmRlZCBieSBjb21tZXJjaWFsIHBlc3RpY2lkZSBhcHBsaWNhdG9ycywgZXh0ZW5zaW9uIHBlcnNvbm5lbCwgYW5kIHBlcnNvbnMgZnJvbSB0aGUgZ3JhaW4gaW5kdXN0cmllcyBpbiBDb2xvcmFkby4gPC9QPiAKPFA+PFNUUk9ORz5BZ3JpY3VsdHVyYWwgUmVzZWFyY2ggU2VydmljZSAoQVJTKSBTY2llbnRpc3QgSW52aXRlZCB0byBTcGVhayBhdCBFbnRvbW9sb2dpY2FsIE1lZXRpbmc8L1NUUk9ORz46IE9uIEZlYnJ1YXJ5IDI2LCBKaW0gQ2FtcGJlbGwsIGVudG9tb2xvZ2lzdCwgQVJTIEJpb2xvZ2ljYWwgUmVzZWFyY2ggVW5pdCwgTWFuaGF0dGFuLCBLUywgaGFzIGJlZW4gaW52aXRlZCB0byBwcmVzZW50IGEgdGFsayBhdCB0aGUgRW50b21vbG9naWNhbCBTb2NpZXR5IG9mIEFtZXJpY2EgUGFjaWZpYyBCcmFuY2ggTWVldGluZyBpbiBQYWNpZmljIEdyb3ZlLCBDQS4gVGhlIHRpdGxlIG9mIGhpcyBwcmVzZW50YXRpb24gaXMgIkZ1bWlnYXRpb24gb2YgZmxvdXIgbWlsbHMgdG8gbWFuYWdlIHJlZCBmbG91ciBiZWV0bGU6IGFzc2Vzc21lbnQgb2YgdHJlYXRtZW50IGVmZmljYWN5Ii4gT24gTWFyY2ggNCwgRHIuIENhbXBiZWxsIHdpbGwgYWxzbyBnaXZlIGEgZGVwYXJ0bWVudGFsIHNlbWluYXIgYXQgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgRGF2aXMsIGVudGl0bGVkICJJbmZsdWVuY2Ugb2YgZm9vZCBwcm9jZXNzaW5nIGZhY2lsaXR5IGxhbmRzY2FwZXMgb24gdGhlIGJlaGF2aW9yLCBlY29sb2d5IGFuZCBtYW5hZ2VtZW50IG9mIHN0b3JlZCBwcm9kdWN0IGluc2VjdCBwZXN0cy4iIDwvUD4gCjxQPjxTVFJPTkc+VVNEQS1BUlMgUmVzZWFyY2ggbGVhZGVyIHRvIFNwZWFrIGF0IEVuZXJneSBDb25mZXJlbmNlOjwvU1RST05HPiBPbiBGZWJydWFyeSAyMy0yNCwgRHIuIEpvbiBIYW5zb24sIFJlc2VhcmNoIExlYWRlciBhdCB0aGUgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnkgYXQgTWFuZGFuLCBORCwgaGFzIGJlZW4gaW52aXRlZCB0byBwcmVzZW50IGFuZCBiZSBhIHBhbmVsaXN0IGF0IHRoZSAiQmlvbWFzcyBSZXNvdXJjZXMgYW5kIFByb2Nlc3NpbmciIHNlc3Npb24gb2YgdGhlICJSZW5ld2FibGUgRW5lcmd5IGluIHRoZSBVcHBlciBNaWR3ZXN0IGNvbmZlcmVuY2UgaW4gR3JhbmQgRm9ya3MuIFRoZSBjb25mZXJlbmNlIHdpbGwgYmUgc3BvbnNvcmVkIGJ5IFUuUyAuIFNlbmF0b3IgQnlyb24gRG9yZ2FuLiBEci4gSGFuc29uIHdpbGwgZm9jdXMgb24gdGhlIG9uZ29pbmcgTWFuZGFuIHJlc2VhcmNoIHRvd2FyZCBkZXZlbG9waW5nIHN3aXRjaGdyYXNzIGFzIGFuIGV0aGFub2wgcHJvZHVjdGlvbiByYXcgbWF0ZXJpYWwuIFRoZSBNYW5kYW4gVVNEQS1BUlMgbGFib3JhdG9yeSBoYXMgYmVlbiBzaWduaWZpY2FudGx5IGludm9sdmVkIGluIHJlc2VhcmNoaW5nIHN3aXRjaGdyYXNzIGN1bHRpdmFycyBzdWl0ZWQgZm9yIHRoZSBub3J0aGVybiBHcmVhdCBQbGFpbnMgYXJlYSBmb3IgZ2VybWluYXRpb24gcmF0ZSwgZ3Jvd3RoIGNoYXJhY3RlcmlzdGljcywgcGVyc2lzdGVuY2UsIGRpc2Vhc2UgaW5jaWRlbmNlLCBjYXJib24gc2VxdWVzdHJhdGlvbiBwb3RlbnRpYWwsIGFuZCBwcm9kdWN0aW9uIHlpZWxkIGZvciBmdXR1cmUgZXRoYW5vbCBwcm9kdWN0aW9uIGluIHRoZSByZWdpb24uIDwvUD4gCjxQPjxTVFJPTkc+VVNEQS1BUlMgU2NpZW50aXN0IFNlcnZlcyBvbiBOYXRpb25hbCBHcmFzcyBWYXJpZXR5IFJldmlldyBCb2FyZDo8L1NUUk9ORz4gT24gRmVicnVhcnkgMTctMTgsIERyLiBKb2huIEJlcmRhaGwsIHBsYW50IGdlbmV0aWNpc3QgYXQgdGhlIE5vcnRoZXJuIEdyZWF0IFBsYWlucyBSZXNlYXJjaCBMYWJvcmF0b3J5IGFuZCBNYW5kYW4sIE5ELCB3aWxsIGJlIHNlcnZpbmcgYXMgQVJTIHJlcHJlc2VudGF0aXZlIGF0IHRoZSBhbm51YWwgbWVldGluZyBvZiB0aGUgTmF0aW9uYWwgR3Jhc3MgVmFyaWV0eSBSZXZpZXcgQm9hcmQgYXQgQ29ydmFsbGlzLiBUaGUgTmF0aW9uYWwgR3Jhc3MgVmFyaWV0eSBSZXZpZXcgQm9hcmQgaXMgb25lIG9mIHNldmVyYWwgYm9hcmRzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBPZmZpY2lhbCBTZWVkIENlcnRpZnlpbmcgQWdlbmNpZXMgKEFPU0NBKS4gVGhlIE5hdGlvbmFsIEdyYXNzIFZhcmlldHkgUmV2aWV3IEJvYXJkIGRldGVybWluZXMgaWYgdGhlIGlkZW50aXR5IG9mIGZvcmFnZSBhbmQgdHVyZiBncmFzcyBjdWx0aXZhcnMgc3VibWl0dGVkIHRvIHRoZSBib2FyZCBpcyBkaXN0aW5jdCBhbmQgc3RhYmxlLCB0aHVzLCBlbmFibGluZyB0aGVtIHRvIGJlIGdyb3duIGFzIHBlZGlncmVlZCBzZWVkIG9yIGNsb25lcyBpbiBzdGF0ZSBjZXJ0aWZpY2F0aW9uIHByb2dyYW1zIGluIHRoZSBVbml0ZWQgU3RhdGVzLiA8L1A+IAo8UD48U1RST05HPkFncmljdWx0dXJhbCBSZXNlYXJjaCBTZXJ2aWNlIChBUlMpIFNjaWVudGlzdHMgUGFydGljaXBhdGUgaW4gTm9ydGh3ZXN0IEFsZmFsZmEgU2VlZCBHcm93ZXJzIENvbmZlcmVuY2U8L1NUUk9ORz46IE9uIEphbnVhcnkgMzAgLSBGZWJydWFyeSAxLCByZXNlYXJjaCBlbnRvbW9sb2dpc3RzIEphbWVzIENhbmUsIFJvc2FsaW5kIEphbWVzLCBUaGVyZXNhIFBpdHRzLVNpbmdlciwgYW5kIFdpbGxpYW0gS2VtcCwgQVJTIFBvbGxpbmF0aW5nIEluc2VjdCBCaW9sb2d5LCBNYW5hZ2VtZW50LCAmIFN5c3RlbWF0aWNzIFJlc2VhcmNoIFVuaXQsIExvZ2FuLCBVVCBhdHRlbmRlZCB0aGUgYW5udWFsIG1lZXRpbmcgb2YgdGhlIE5vcnRod2VzdCBBbGZhbGZhIFNlZWQgR3Jvd2VycywgaW4gQm9pc2UsIElELiBUaGUgc2NpZW50aXN0cyBkZWxpdmVyZWQgaW52aXRlZCBvcmFsIGFuZCBwb3N0ZXIgcHJlc2VudGF0aW9ucywgcGFydGljaXBhdGVkIGluIHRlY2huaWNhbCBzZXNzaW9ucywgYW5kIGludGVyYWN0ZWQgZXh0ZW5zaXZlbHkgd2l0aCBzZWVkIHByb2R1Y2VycyBmcm9tIHRocm91Z2hvdXQgdGhlIHdlc3Rlcm4gVW5pdGVkIFN0YXRlcyBvbiB0b3BpY3MgdGhhdCBpbmNsdWRlZCBzb2xpdGFyeSBiZWUgZGlzZWFzZSBtYW5hZ2VtZW50LCBpbmNyZWFzaW5nIHBvbGxpbmF0aW9uIGxldmVscyB0aHJvdWdoIGltcHJvdmVkIGJlZSBoZWFsdGgsIGFuZCBwb2xsaW5hdGlvbiBvZiBub3ZlbCBsZWd1bWUgc2VlZCBjcm9wcy4gPC9QPiAKPFA+PFNUUk9ORz5VU0RBLUFSUyBTdGFmZiBQcmVzZW50IGF0IEFubnVhbCBJbnRlcm5hdGlvbmFsIEZhcm1lcnMgTWVldGluZzo8L1NUUk9ORz4gT24gRmVicnVhcnkgMXN0IGFuZCAybmQsIHNjaWVudGlzdHMgZnJvbSBNYW5kYW4sIE5EIGFuZCBNb3JyaXMsIE1OIG1hZGUgc2V2ZXJhbCBwcmVzZW50YXRpb25zIGF0IHRoZSAyN3RoIEFubnVhbCBNYW5pdG9iYSDigJMgTm9ydGggRGFrb3RhIFplcm8tVGlsbGFnZSBGYXJtZXLigJlzIEFzc29jaWF0aW9uIFdvcmtzaG9wIGluIEJyYW5kb24sIE1hbml0b2JhLiBUaGUgcHJvZ3JhbSB0aXRsZSBmb3IgMjAwNSB3YXMsICJVbmRlcnN0YW5kaW5nIFNvaWxzIG9yIEJldHRlciBDcm9wcyIuIERyLiBTdGV2ZSBNZXJyaWxsLCBTb2lsIFNjaWVudGlzdCBhdCB0aGUgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnkgYXQgTWFuZGFuIHByZXNlbnRlZCwgIkNyb3AgU2VxdWVuY2U6IE1ha2luZyBTb2lsIFdhdGVyIGFuZCBCaW9sb2d5IEltcHJvdmUgU3lzdGVtIEVmZmljaWVuY3kiLiBEci4gRG9uIFJlY29za3ksIFNvaWwgU2NpZW50aXN0IGF0IHRoZSBOb3J0aCBDZW50cmFsIFNvaWwgQ29uc2VydmF0aW9uIFJlc2VhcmNoIExhYiBvZiBNb3JyaXMsIE1OLCBwcmVzZW50ZWQsICJaZXJvIFRpbGxhZ2XigJlzIEltcGFjdCBvbiBPcmdhbmljIE1hdHRlciIuIEVjb25vbWlzdCwgRHIuIERhdmUgQXJjaGVyLCBhbHNvIG9mIHRoZSBNb3JyaXMgVVNEQS1BUlMgbGFiLCBwcmVzZW50ZWQsICJXaWxkIE9hdCBEZWNpc2lvbiBNb2RlbCwiIGZvY3VzaW5nIG9uIHRoZSBoZXJiaWNpZGUgc2VsZWN0aW9uIHNvZnR3YXJlIHByb2R1Y3QgYmVpbmcgZGV2ZWxvcGVkIGF0IHRoZWlyIGxhYm9yYXRvcnkuIERyLiBLcmlzIE5pY2hvbHMsIFNvaWxzIE1pY3JvYmlvbG9naXN0IGF0IHRoZSBNYW5kYW4gbGFiLCB3YXMgc2NoZWR1bGVkIHRvIG1ha2UgdGhlICJrZXlub3RlIiBwcmVzZW50YXRpb24gdG8ga2ljay1vZmYgdGhlIHdvcmtzaG9wLiAiR2xvbWFsaW4tLSBUaGUgU2N1bW15IFNvaWwgQnVpbGRlciIsIGJ1dCBkdWUgdG8gc2lnbmlmaWNhbnQgaWxsbmVzcywgd2FzIHVuYWJsZSB0byBhdHRlbmQuIENhbCBUaG9yc29uLCBUZWNobmljYWwgSW5mb3JtYXRpb24gU3BlY2lhbGlzdCBhdCB0aGUgTWFuZGFuIGxhYiwgcHJlc2VudGVkIERyLiBOaWNob2zigJlzIG1hdGVyaWFscyB0byBvdmVyIDIwMCBDYW5hZGlhbiBhbmQgQW1lcmljYW4gZmFybWVycyBvbiBoZXIgYmVoYWxmLiBUaG9yc29uIHdhcyBlbGVjdGVkIHZpY2UtcHJlc2lkZW50IG9mIHRoZSBvcmdhbml6YXRpb24gYXQgdGhlaXIgYW5udWFsIG1lZXRpbmcuIERyLiBEb24gVGFuYWthLCBTb2lsIFNjaWVudGlzdCBhdCB0aGUgTm9ydGhlcm4gR3JlYXQgUGxhaW5zIFJlc2VhcmNoIExhYm9yYXRvcnksIHNlcnZlZCBhcyB0aGUgZ3JvdXDigJlzIGFkdmlzb3IuIDwvUD4gCjxQIGFsaWduPXJpZ2h0PjxBIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9BPjwvUD4=

Last Modified: 8/13/2016
Footer Content Back to Top of Page