PGh0bWw+PGhlYWQ+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZGVmYXVsdF9zdHlsZS5jc3MiPgo8dGl0bGU+RWNsaXBzZS5vcmcgY29uc29ydGl1bTwvdGl0bGU+PC9oZWFkPgo8Ym9keT4KPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTUgY2VsbHBhZGRpbmc9MiB3aWR0aD0iMTAwJSIgPgogIDx0cj4gCiAgICA8dGQgYWxpZ249bGVmdCB3aWR0aD0iNzIlIj4gPGZvbnQgY2xhc3M9aW5kZXh0b3A+IGVjbGlwc2Uub3JnIGZvcm1hdGlvbjwvZm9udD4gCiAgICAgIDxicj4KICAgICAgPGZvbnQgY2xhc3M9aW5kZXhzdWI+IHRoZSBvcGVuIGNvbW11bml0eSBkcml2aW5nIHRoZSBlY2xpcHNlIHBsYXRmb3JtPC9mb250PiA8L3RkPgogICAgPHRkIHdpZHRoPSIyOCUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvSWRlYS5qcGciIGhlaWdodD04NiB3aWR0aD0xMjA+PC90ZD4KICA8L3RyPgo8L3RhYmxlPgo8dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9NSBjZWxscGFkZGluZz0yIHdpZHRoPSIxMDAlIiA+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMwMDgwQzAiPjxiPjxmb250IGNvbG9yPSIjRkZGRkZGIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiPlByZXNzIHJlbGVhc2U8L2ZvbnQ+PC9iPjwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkPgogICAgPGgxIEFMSUdOPSJDRU5URVIiPkVjbGlwc2Uub3JnIENvbnNvcnRpdW0gRm9ybXMgdG8gRGVsaXZlciBOZXcgRXJhIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IFRvb2xzPC9oMT4KCjxVTD4KPExJPkluZHVzdHJ5IExlYWRlcnMgSm9pbiB0byBGb3JtIEluaXRpYWwgQm9hcmQ8L0xJPgo8TEk+QnJvYWQgQ29tbWVyY2lhbCBTdXBwb3J0IEZvciBPcGVuIFNvdXJjZSBEZXZlbG9wbWVudCBUb29scyA8L0xJPgo8TEk+Q29tbW9uIFB1YmxpYyBMaWNlbnNlIERlbGl2ZXJzIFJveWFsdHkgRnJlZSBTb3VyY2UgQ29kZTwvTEk+PC9VTD4KCgo8UD4mIzk7Q2hpY2Fnb5dOb3YuICAyOSwgMjAwMZZCb3JsYW5kLCBJQk0sIE1lcmFudCwgUU5YIFNvZnR3YXJlIFN5c3RlbXMsIFJhdGlvbmFsIFNvZnR3YXJlLCBSZWRIYXQsIFN1U0UsIGFuZCBUb2dldGhlclNvZnQgdG9kYXkgYW5ub3VuY2VkIHRoZSBmb3JtYXRpb24gb2YgRWNsaXBzZS5vcmcsIGFuIG9wZW4gY29uc29ydGl1bSBvZiBwcm92aWRlcnMgb2YgZGV2ZWxvcG1lbnQgdG9vbHMgdGhhdCBtYW5hZ2VzIHRoZSBFY2xpcHNlIFBsYXRmb3JtLCB3aGljaCBpcyBiZWluZyBtYWRlIGF2YWlsYWJsZSBpbiBvcGVuIHNvdXJjZSB1bmRlciB0aGUgQ29tbW9uIFB1YmxpYyBMaWNlbnNlPFNVUD4xPC9TVVA+LiBUaGVzZSBjb21wYW5pZXMsIGVhY2ggb2Ygd2hpY2ggcGxhbnMgdG8gcmVsZWFzZSBFY2xpcHNlIFBsYXRmb3JtIGNvbXBhdGlibGUgcHJvZHVjdCBvZmZlcmluZ3MsIGZvcm0gdGhlIGluaXRpYWwgRWNsaXBzZS5vcmcgYm9hcmQgb2YgZGlyZWN0b3JzLiBUaGUgYnlsYXdzIGFuZCBvcGVyYXRpbmcgcHJpbmNpcGxlcyBvZiB0aGUgb3JnYW5pemF0aW9uIGFyZSBwdWJsaXNoZWQgYXQgPEEgSFJFRj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L0E+LjwvUD4KPFA+JiM5O1RoZSBFY2xpcHNlIFBsYXRmb3JtIGlzIGEgbmV3IG9wZW4gc291cmNlIGVudmlyb25tZW50IGZvciBjcmVhdGluZywgaW50ZWdyYXRpbmcgYW5kIGRlcGxveWluZyBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCB0b29scyBmb3IgdXNlIGFjcm9zcyBhIGJyb2FkIHJhbmdlIG9mIGNvbXB1dGluZyB0ZWNobm9sb2d5LiBJdCBwcm92aWRlcyBhIGNvbW1vbiBzZXQgb2Ygc2VydmljZXMgYW5kIGVzdGFibGlzaGVzIHRoZSBmcmFtZXdvcmssIGluZnJhc3RydWN0dXJlIGFuZCBpbnRlcmFjdGl2ZSB3b3JrYmVuY2ggdXNlZCBieSBwcm9qZWN0IGRldmVsb3BlcnMgdG8gYnVpbGQgYXBwbGljYXRpb24gc29mdHdhcmUgYW5kIHJlbGF0ZWQgZWxlbWVudHMuIFRocm91Z2ggdGhlIEVjbGlwc2UgUGxhdGZvcm0sIHNlYW1sZXNzIGludGVncmF0aW9uIG9mIHRvb2xzIGZyb20gc2V2ZXJhbCBkaWZmZXJlbnQgdmVuZG9ycyB3aWxsIGJlIHBvc3NpYmxlIG9uIFdpbmRvd3MmdHJhZGU7LCBMaW51eCZyZWc7IGFuZCBRTlgmcmVnOyBkZXZlbG9wZXIgd29ya3N0YXRpb25zLjwvUD4KPFA+JiM5O1RoZSBFY2xpcHNlIFBsYXRmb3JtIHByb3ZpZGVzIHNvdXJjZSBjb2RlIGJ1aWxkaW5nIGJsb2NrcywgcGx1Zy1pbiBmcmFtZXdvcmtzIGFuZCBydW5uaW5nIGV4YW1wbGVzIHRoYXQgZmFjaWxpdGF0ZSBhcHBsaWNhdGlvbiB0b29scyBkZXZlbG9wbWVudC4gQSBjb21wbGV0ZSBzYW1wbGUgcGx1Zy1pbiBiYXNlZCBpbnRlZ3JhdGVkIGRldmVsb3BtZW50IGVudmlyb25tZW50IGZvciBjcmVhdGluZyBKYXZhIGFwcGxpY2F0aW9ucyAoSkRUKSBpcyBpbmNsdWRlZC4gQ29kZSBhY2Nlc3MgYW5kIHVzZSBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIENvbW1vbiBQdWJsaWMgTGljZW5zZTxTVVA+MTwvU1VQPiBhbGxvd3MgaW5kaXZpZHVhbHMgdG8gY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgd2l0aCB3b3JsZHdpZGUgcmUtZGlzdHJpYnV0aW9uIHJpZ2h0cyB0aGF0IGFyZSByb3lhbHR5IGZyZWUuPC9QPgoKPFA+JiM5O0FzIHdpdGggb3RoZXIgb3BlbiBzb3VyY2UgY29tbXVuaXRpZXMsIEVjbGlwc2Uub3JnIGJyaW5ncyB0b2dldGhlciB0aGUgYnJvYWQgcGFydGljaXBhdGlvbiBuZWVkZWQgdG8gZXN0YWJsaXNoLCByZWZpbmUgYW5kIHByb21vdGUgaGlnaC1xdWFsaXR5IHNoYXJlZCBzb2Z0d2FyZSB0ZWNobm9sb2d5LiBCeSB0YWtpbmcgYWR2YW50YWdlIG9mIGNvbW1vbiBFY2xpcHNlIFBsYXRmb3JtIHNlcnZpY2VzLCBzb2Z0d2FyZSB0b29scyBkZXZlbG9wZXJzIGFyZSBmcmVlIHRvIGZvY3VzIG9uIHRoZWlyIGRvbWFpbnMgb2YgZXhwZXJ0aXNlLiBTaW5jZSB0aGUgcGxhdGZvcm0gYmVjYW1lIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgb24gTm92ZW1iZXIgNzxTVVA+dGg8L1NVUD4sIGFuIGF2ZXJhZ2Ugb2YgbW9yZSB0aGFuIDQsMDAwIGRvd25sb2FkcyBoYXZlIGJlZW4gbG9nZ2VkIGRhaWx5LiA8L1A+CjxQPiYjOTtUaGUgRWNsaXBzZSBQbGF0Zm9ybSBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYW5kIG1hbmFnZSBkaXZlcnNlIG9iamVjdHMgbGlrZSB3ZWIgc2l0ZSBlbGVtZW50cywgcHJvY2VzcyBhdXRvbWF0aW9uIGRlZmluaXRpb25zLCBvYmplY3QgbW9kZWxzLCBpbWFnZSBmaWxlcywgQysrIHByb2dyYW1zLCBwZXJ2YXNpdmUgZW50ZXJwcmlzZSBjbGFzcyBKYXZhJnRyYWRlOyBhcHBsaWNhdGlvbnMgYW5kIGVtYmVkZGVkIHRlY2hub2xvZ3kuIFdyaXR0ZW4gaW4gdGhlIEphdmEgbGFuZ3VhZ2UsIGl0IGNvbWVzIHdpdGggcGx1Zy1pbiBjb25zdHJ1Y3Rpb24gdG9vbGtpdHMgYW5kIGV4YW1wbGVzLCBpbmNsdWRpbmcgYSBmdWxseSBvcGVyYXRpb25hbCBKYXZhIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IHRvb2xzIHBhY2thZ2UuIFRoZSBwbGF0Zm9ybSBpbXBsZW1lbnRzIGEgbWVjaGFuaXNtIHRoYXQgZGlzY292ZXJzLCBsb2FkcyBhbmQgaW50ZWdyYXRlcyB0aGUgcGx1Zy1pbnMgZGV2ZWxvcGVycyBuZWVkIGZvciBtYW5pcHVsYXRpbmcgYW5kIHNoYXJpbmcgcHJvamVjdCByZXNvdXJjZXMuIFdoZW4gdGhlIEVjbGlwc2UgUGxhdGZvcm0gaXMgbGF1bmNoZWQsIHRoZSB1c2VyIGlzIHByZXNlbnRlZCB3aXRoIGEgd29ya2JlbmNoLWJhc2VkIGludGVncmF0ZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgY29tcG9zZWQgb2YgdGhlIHVzZXIgaW50ZXJmYWNlcyBvZiBhdmFpbGFibGUgcGx1Zy1pbnMuICAgPC9QPgo8UD4mIzk7IkluIHRoZSBFY2xpcHNlIGVudmlyb25tZW50IGV2ZXJ5dGhpbmcgaXMgYSBwbHVnLWluLiBUaGUgSmF2YSBJREUgZG9lc24ndCBoYXZlIGEgc3BlY2lhbCBzdGF0dXMgYW5kIGlzIGp1c3QgYW5vdGhlciBzZXQgb2YgcGx1Zy1pbnMuIFRoaXMgZGVtb25zdHJhdGVzIHRoZSBzZWFtbGVzcyBleHRlbnNpYmlsaXR5IG9mIHRoZSBwbGF0Zm9ybS4gVHVybmluZyB0aGUgRWNsaXBzZSBQbGF0Zm9ybSBvdmVyIHRvIGFuIG9wZW4gc291cmNlIGluaXRpYXRpdmUgZW5hYmxlcyBhbGwgdG9vbCBidWlsZGVycyB0byBjb250cmlidXRlIG5ldyBwbHVnLWlucyBhbmQgYWxzbyBoZWxwIGltcHJvdmUgdGhlIGV4aXN0aW5nIHBsYXRmb3JtLCIgc2FpZCA8Qj5FcmljaCBHYW1tYTwvQj4sIHRlY2huaWNhbCBkaXJlY3RvciBvZiA8Qj5PYmplY3QgVGVjaG5vbG9neSBJbnRlcm5hdGlvbmFsJ3MgPC9CPlp1cmljaCBsYWIgYW5kIGEgbWVtYmVyIG9mIHRoZSB0ZWFtIHRoYXQgYnVpbHQgdGhlIEpEVCBwbHVnLWlucyBkaXN0cmlidXRlZCB3aXRoIHRoZSBFY2xpcHNlIFBsYXRmb3JtLiA8L1A+Cgo8Qj48ST48UD5Gcm9tIEluZHVzdHJ5IExlYWRlcnMgU2VydmluZyBvbiB0aGUgRWNsaXBzZS5vcmcgQm9hcmQ6IDwvUD4KPC9pPjwvQj48UD4mIzk7JnF1b3Q7PEI+Qm9ybGFuZDwvQj4gaXMgcGxlYXNlZCB0byBiZSBhIGZvdW5kaW5nIGJvYXJkIG1lbWJlciBvZiB0aGUgRWNsaXBzZS5vcmcgY29uc29ydGl1bSwgYW5kIGxvb2tzIGZvcndhcmQgdG8gd29ya2luZyB3aXRoIG90aGVyIGluZHVzdHJ5IGxlYWRlcnMgdG8gZXN0YWJsaXNoIG9wZW4gc3RhbmRhcmRzLCZxdW90OyBzYWlkIDxCPlNpbW9uIFRob3JuaGlsbDwvQj4sIFZQIGFuZCBHTSBvZiByYXBpZCBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBzb2x1dGlvbnMgZm9yIEJvcmxhbmQgU29mdHdhcmUgQ29ycG9yYXRpb24uICAmcXVvdDtPdXIgaW52b2x2ZW1lbnQgd2l0aCBFY2xpcHNlIGZ1cnRoZXIgZXhlbXBsaWZpZXMgb3VyIGNvbnRpbnVlZCBjb21taXRtZW50IHRvIGVuYWJsZSBlbnRlcnByaXNlcyBvZiBhbGwgc2l6ZXMgdG8gZGV2ZWxvcCwgZGVwbG95IGFuZCBpbnRlZ3JhdGUgbmV4dC1nZW5lcmF0aW9uIHNvZnR3YXJlIHNvbHV0aW9ucy4mcXVvdDs8L1A+Cgo8UD4mIzk7IjxCPklCTTwvQj4gaXMgdmVyeSBwcm91ZCB0byBiZSBoZWxwaW5nIG1ha2UgRWNsaXBzZS5vcmcgYSBsZXZlbCBhbmQgb3BlbiBlZmZvcnQsIHN1cHBvcnRlZCBieSBhIGxhcmdlIG51bWJlciBvZiBsZWFkaW5nIGNvbW1lcmNpYWwgdG9vbCBkZXZlbG9wZXJzLCIgc2FpZCA8Qj5MZWUgUi4gTmFja21hbjwvQj4sIHZpY2UgcHJlc2lkZW50LCBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBUb29scywgQXBwbGljYXRpb24gYW5kIEludGVncmF0aW9uIE1pZGRsZXdhcmUgRGl2aXNpb24sIElCTSBTb2Z0d2FyZSBHcm91cC4gIldlIGxvb2sgZm9yd2FyZCB0byBiZW5lZml0cyBhY3Jvc3MgdGhlIGVudGlyZSBjb21wdXRpbmcgaW5kdXN0cnkgYXMgcG93ZXJmdWwgdG9vbHMgZnJvbSBzbyBtYW55IGNvbXBhbmllcyBpbnRlci1vcGVyYXRlIGFuZCBkZWxpdmVyIGltcHJvdmVtZW50cyB0byB0aGUgcHJvamVjdCBkZXZlbG9wbWVudCBwcm9jZXNzIGl0c2VsZi4gV2UgYXJlIGNvbW1pdHRlZCB0byB1c2luZyB0aGUgRWNsaXBzZSBQbGF0Zm9ybSBhcyB0aGUgZm91bmRhdGlvbiBmb3Igc3RyYXRlZ2ljIElCTSBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBwcm9kdWN0cy4mcXVvdDsgPC9QPgo8UD4mIzk7IldlJ3JlIHZlcnkgaW1wcmVzc2VkIGJ5IHRoZSBwb3dlciBhbmQgZmxleGliaWxpdHkgb2YgdGhlIEVjbGlwc2UgUGxhdGZvcm0sIiBzYWlkIDxCPkFuZHJldyBXZWlzcywgTUVSQU5UIDwvQj5jaGllZiB0ZWNobm9sb2d5IG9mZmljZXIuICAiQXMgYSBmb3VuZGluZyBtZW1iZXIgb2YgdGhlIGJvYXJkIG9mIGRpcmVjdG9ycyBmb3IgdGhlIG9wZW4gRWNsaXBzZS5vcmcgY29uc29ydGl1bSwgd2UgYXJlIGNvbW1pdHRlZCB0byBwcm92aWRpbmcgTUVSQU5UJ3MgY3VycmVudCBhbmQgcG90ZW50aWFsIGN1c3RvbWVycyB3aXRoIHBsdWctaW5zIHRvIGV4dGVuZCBhbmQgY29tcGxlbWVudCBFY2xpcHNlIHdpdGggZmFtaWxpYXIgc29sdXRpb25zIGxpa2UgUFZDUywgb3VyIHNvZnR3YXJlIGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudCBhbmQgd2ViIGFuZCBjb250ZW50IG1hbmFnZW1lbnQgdGVjaG5vbG9naWVzLiI8L1A+CjxQPiYjOTsmcXVvdDtFbWJlZGRlZCBkZXZlbG9wZXJzIG5lZWQgYW4gZXh0cmFvcmRpbmFyeSByYW5nZSBvZiB0b29scywgYnV0IHRvIGJlIHRydWx5IHByb2R1Y3RpdmUsIHRoZXkgbmVlZCB0b29scyB0aGF0IGNhbiB3b3JrIHRvZ2V0aGVyIGluIGEgc2VhbWxlc3MsIGludHVpdGl2ZSBmYXNoaW9uLCZxdW90OyBzYWlkIDxCPkRhbiBEb2RnZSwgPC9CPnByZXNpZGVudCBhbmQgQ1RPIG9mPEI+IFFOWCBTb2Z0d2FyZSBTeXN0ZW1zIEx0ZDwvQj4uICZxdW90O1dpdGggdGhlIEVjbGlwc2UgUGxhdGZvcm0sIGl0knMgbm93IG11Y2ggZWFzaWVyIGZvciBkZXZlbG9wZXJzIGFuZCB0b29sIHZlbmRvcnMgdG8gaW50ZWdyYXRlIHRoZWlyIHJpY2ggdG9vbHNldHMgaW50byBhIGNvaGVzaXZlIHdob2xlLiBBdCBRTlggU29mdHdhcmUgU3lzdGVtcywgd2WScmUgcHJvdWQgdG8gc2VydmUgYXMgYSBmb3VuZGluZyBtZW1iZXIgb2YgdGhlIEVjbGlwc2Uub3JnIGNvbnNvcnRpdW0gYW5kIGFyZSBkZWRpY2F0ZWQgdG8gaXRzIHZpc2lvbiBvZiBtYWtpbmcgZW1iZWRkZWQgZGV2ZWxvcG1lbnQgbW9yZSBwcm9kdWN0aXZlIHRocm91Z2ggaW50ZXItb3BlcmFibGUgdG9vbHMuJnF1b3Q7PC9QPgo8UD4mIzk7JnF1b3Q7PEI+UmF0aW9uYWwgU29mdHdhcmU8L0I+IGhhcyBiZWVuIGFuIGVhcmx5IGFkb3B0ZXIgb2YgdGhlIEVjbGlwc2UgcGxhdGZvcm0gYmVjYXVzZSB3ZSBiZWxpZXZlIGl0IGRlbGl2ZXJzIGhpZ2ggdmFsdWUgdG8gc29mdHdhcmUgdGVhbXM8Qj4sJnF1b3Q7IDwvQj5zYWlkPEI+IERhdmUgQmVybnN0ZWluLCA8L0I+c2VuaW9yIHZpY2UgcHJlc2lkZW50IG9mIFByb2R1Y3RzIGZvciBSYXRpb25hbCBTb2Z0d2FyZS4gICZxdW90O1dlknZlIGJlZW4gd29ya2luZyBjbG9zZWx5IHdpdGggSUJNIHRvIGludGVncmF0ZSBvdXIgcHJvZHVjdHMgd2l0aCBFY2xpcHNlIHRvIHVsdGltYXRlbHkgcHJvdmlkZSBhIHNpbmdsZSwgaW50ZWdyYXRlZCB1c2VyIGV4cGVyaWVuY2UgZm9yIGRldmVsb3BlcnMgYW5kIG90aGVyIHByYWN0aXRpb25lcnMgb24gYSBzb2Z0d2FyZSB0ZWFtLiZxdW90OzwvUD4KCjxQPiYjOTsiQXMgdGhlIG9wZW4gc291cmNlIGNvbW11bml0eSBncm93cywgd2UgbmVlZCBvcGVuIHNvdXJjZSBkZXZlbG9wbWVudCB0b29scyB0aGF0IG1lZXQgdGhlIG5lZWRzIG9mIG1vcmUgYW5kIG1vcmUgZGV2ZWxvcGVycywiIHNhaWQgPEI+TWljaGFlbCBUaWVtYW5uLCA8L0I+Q1RPIG9mPEI+IFJlZCBIYXQ8L0I+LiAgIldlIGFyZSBwbGVhc2VkIHRvIGJlIHRha2luZyBhIGxlYWRlcnNoaXAgcG9zaXRpb24gd2l0aCBFY2xpcHNlLm9yZywgbm90IG9ubHkgdG8gaGVscCBwdXQgYmV0dGVyIHRvb2xzIGluIHRoZSBoYW5kcyBvZiBkZXZlbG9wZXJzLCBidXQgdG8gaGVscCBkZXZlbG9wZXJzIHVzZSB0aGUgb3BlbiBzb3VyY2UgbW9kZWwgdG8gdWx0aW1hdGVseSBjcmVhdGUgYmV0dGVyIHRvb2xzLiI8L1A+CjxQPiYjOTs8Qj5KdWVyZ2VuIEdlY2s8L0I+IG9mIDxCPlN1U0UgTGludXggQUc8L0I+IGNvbW1lbnRlZDogJnF1b3Q7VGhlIHN1Y2Nlc3Mgb2YgTGludXggYW5kIHRoZSBPcGVuIFNvdXJjZSBjb21wdXRpbmcgbW9kZWwgaGFzIGNoYW5nZWQgdGhlIElUIGxhbmRzY2FwZS4gQXMgdGhpcyBjaGFuZ2UgbWF0dXJlcywgd2Ugc2VlIG5ldyBvcGVuIHN5c3RlbXMgdGhhdCBleHRlbmQgdGhlIHBvd2VyIG9mIG9wZW4gZGV2ZWxvcG1lbnQuIFN1U0UgaXMgcHJvdWQgdG8gYmUgYW4gYWN0aXZlIHBhcnQgaW4gdGhlIGV2b2x1dGlvbiBvZiB0aGUgRWNsaXBzZSBQbGF0Zm9ybSB3aXRoIGl0cyBleGNlbGxlbnQgY2FwYWJpbGl0aWVzIGZvciBkZXZlbG9waW5nIGFwcGxpY2F0aW9ucyBmb3IgbWlkZGxld2FyZSwgc3VjaCBhcyBkYXRhYmFzZSBhbmQgZ3JvdXB3YXJlIHN5c3RlbXMuJnF1b3Q7PC9QPgo8UD4mIzk7IjxCPlRvZ2V0aGVyU29mdDwvQj4ncyBtaXNzaW9uIG9mICdpbXByb3ZpbmcgdGhlIHdheXMgcGVvcGxlIHdvcmsgdG9nZXRoZXInIGlzIGNlcnRhaW5seSBlbWJyYWNlZCBpbiB0aGUgc3Bpcml0IG9mIHRoZSBFY2xpcHNlIFBsYXRmb3JtLCIgc2FpZCA8Qj5Ub2RkIE9sc29uPC9CPiwgVG9nZXRoZXJTb2Z0J3MgdmljZSBwcmVzaWRlbnQgb2YgVG9nZXRoZXIgUHJvZHVjdHMuICJUb2dldGhlclNvZnQgaXMgY29tbWl0dGVkIHRvIHN1cHBvcnRpbmcgbmV3IHRlY2hub2xvZ2llcyB0aGF0IGJlbmVmaXQgb3VyIGN1c3RvbWVycy4gV2Ugd2VsY29tZSB0aGUgb3Bwb3J0dW5pdHkgdG8gaGVscCBzaGFwZSBhbmQgZW5oYW5jZSB0aGVtIGJ5IGxldmVyYWdpbmcgb3VyIHN0cm9uZyBleHBlcmllbmNlIGJ1aWxkaW5nIHNvZnR3YXJlIGZvciBzb2Z0d2FyZSBkZXZlbG9wZXJzLiI8L1A+Cgo8UD4mIzk7RnVsbCBkZXRhaWxzIG9mIHRoZSBFY2xpcHNlLm9yZyBjb25zb3J0aXVtIGFuZCB0aGUgZGVzaWduIG9mIHRoZSBFY2xpcHNlIFBsYXRmb3JtIGFyZSBhdmFpbGFibGUgYXQgPEEgSFJFRj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L0E+LiA8L1A+CiAgICAKICAgIDwvdGQ+CiAgPC90cj4KICA8L3RhYmxlPgombmJzcDsKCgkJPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTMgYWxpZ249Y2VudGVyPgoJCTx0ciBiZ2NvbG9yPSIjOTk5OTk5Ij4KCQk8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMDA4MEMwIj48Yj48Zm9udCBjb2xvcj0iI0ZGRkZGRiIgZmFjZT0iQXJpYWwsSGVsdmV0aWNhIj5BYm91dCBFY2xpcHNlLm9yZyA8L2ZvbnQ+PC9iPjwvdGQ+CgkJPC9UUj4KCQk8VFI+CgkJPHRkIGFsaWduPWxlZnQ+CgkJPFRBQkxFICB3aWR0aD0iMTAwJSIgQ0VMTFNQQUNJTkc9MCBDRUxMUEFERElORz0zPgoJCTx0cj4KCQk8dGQ+CiAgICAgICAgICAgICAgPHA+RWNsaXBzZS5vcmcgaXMgYW4gb3BlbiBjb25zb3J0aXVtIG9mIHNvZnR3YXJlIGRldmVsb3BtZW50IHRvb2wgdmVuZG9ycyB0aGF0IGhhcyBmb3JtZWQgdGhlIGNvcmUgb2YgYSBjb21tdW5pdHkgaW50ZXJlc3RlZCBpbiBjb2xsYWJvcmF0aW5nIHRvIGNyZWF0ZSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzIGFuZCBwcm9kdWN0IGludGVncmF0aW9uLiBUaGUgY29tbXVuaXR5IHNoYXJlcyBhbiBpbnRlcmVzdCBpbiBjcmVhdGluZyBwcm9kdWN0cyB0aGF0IGFyZSBpbnRlci1vcGVyYWJsZSBpbiBhbiBlYXN5IHRvIHVzZSB3YXkgYmFzZWQgdXBvbiBwbHVnLWluIHRlY2hub2xvZ3kuIEJ5IGNvbGxhYm9yYXRpbmcgYW5kIHNoYXJpbmcgY29yZSBpbnRlZ3JhdGlvbiB0ZWNobm9sb2d5LCB0b29sIHZlbmRvcnMgY2FuIGNvbmNlbnRyYXRlIG9uIHRoZWlyIGFyZWFzIG9mIGV4cGVydGlzZSBhbmQgdGhlIGNyZWF0aW9uIG9mIG5ldyBkZXZlbG9wbWVudCB0ZWNobm9sb2d5LjwvcD4KICAgICAgICA8L3RkPgoJCTwvdHI+CiAgICAgICAgPC90YWJsZT48L3RhYmxlPiZuYnNwOwoKCQk8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPTAgY2VsbHBhZGRpbmc9MyBhbGlnbj1jZW50ZXI+CgkJPHRyIGJnY29sb3I9IiM5OTk5OTkiPgoJCTx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMwMDgwQzAiPjxiPjxmb250IGNvbG9yPSIjRkZGRkZGIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiPk1lZGlhIGNvbnRhY3RzIDwvZm9udD48L2I+PC90ZD4KCQk8L1RSPgoJCTxUUj4KCQk8dGQgYWxpZ249bGVmdD4KCQk8VEFCTEUgIHdpZHRoPSIxMDAlIiBDRUxMU1BBQ0lORz0wIENFTExQQURESU5HPTM+CgkJPHRyPgoJCTx0ZD4KPHA+QmVja3kgV29vZCBEaVNvcmJvPGJyPgpCb3JsYW5kPGJyPgo4MzEtNDMxLTE4OTQ8YnI+CjxBIEhSRUY9Im1haWx0bzpid29vZEBib3JsYW5kLmNvbSI+Yndvb2RAYm9ybGFuZC5jb208L0E+IDwvcD4KCjxwPkxhdXJpZSBGcmllZG1hbjxicj4KSUJNPGJyPgpTb21lcnMsIE5ZPGJyPgo5MTQtNzY2LTEyOTkgPGJyPgo8QSBIUkVGPSJtYWlsdG86bGF1cmllMUB1cy5pYm0uY29tIj5sYXVyaWUxQHVzLmlibS5jb208L0E+IDwvcD4KCjxwPkxhcnJ5IERlkkF0aDxicj4KTWVyYW50PGJyPgozMDEtODM4LTUyMjg8YnI+CjxBIEhSRUY9Im1haWx0bzpsYXJyeS5kZWF0aEBtZXJhbnQuY29tIj5sYXJyeS5kZWF0aEBtZXJhbnQuY29tPC9BPiA8L3A+Cgo8cD5QYXVsIExlcm91eDxicj4KUU5YIFNvZnR3YXJlIFN5c3RlbXMgTHRkLjxicj4KNjEzLTU5MS0wOTMxLCBleHQuIDkzMTQuPGJyPgo8QSBIUkVGPSJtYWlsdG86cGF1bGxAcW54LmNvbSI+cGF1bGxAcW54LmNvbTwvQT4gPC9wPgoKPHA+QmlsbCBEdXJsaW5nPGJyPgpSYXRpb25hbCBTb2Z0d2FyZTxicj4KNzgxLTM3Mi01ODg2PGJyPgo8QSBIUkVGPSJtYWlsdG86YmR1cmxpbmdAcmF0aW9uYWwuY29tIj5iZHVybGluZ0ByYXRpb25hbC5jb208L0E+IDwvcD4KCjxwPkxvcmllbiBHb2xhc2tpPGJyPgpSZWRIYXQ8YnI+CjkxOS01NDctMDAxMiwgZXh0LiAzOTk8YnI+CjxBIEhSRUY9Im1haWx0bzpsZ29sYXNraUByZWRoYXQuY29tIj5sZ29sYXNraUByZWRoYXQuY29tPC9BPiA8L3A+Cgo8cD5DaHJpc3RhbiBFZ2xlPGJyPgpTdVNFIEdtYkg8YnI+Cis0OS0oMCk5MTEtNzQwNTM0NDxicj4KPEEgSFJFRj0ibWFpbHRvOmNlQHN1c2UuZGUiPmNlQHN1c2UuZGU8L0E+IDwvcD4KCjxwPkFsaXNvbiBGcmVlbGFuZDxicj4KVG9nZXRoZXJTb2Z0PGJyPgo5MTktODMzLTU1NTAsIGV4dC4gMTYwMTxicj4KYWxpc29uLmZyZWVsYW5kQHRvZ2V0aGVyc29mdC5jb208L3A+Cgo8aHIgd2lkdGg9Ijg1JSI+CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgPFA+PFNVUD4oMSkgPC9zdXA+U29tZSBjb21wb25lbnRzIG9mIEVjbGlwc2UgbWF5IGJlIGdvdmVybmVkIGJ5IGxpY2Vuc2UgdGVybXMgb3RoZXIgdGhhbiB0aGUgQ1BMLiA8L1A+CjxQPiYjOTtCcmFuZCBvciBwcm9kdWN0IG5hbWVzIGFyZSByZWdpc3RlcmVkIHRyYWRlbWFya3Mgb3IgdHJhZGVtYXJrcyBvZiB0aGVpciByZXNwZWN0aXZlIGhvbGRlcnMuIElCTSwgV2ViU3BoZXJlLiBEQjIsIE1RU2VyaWVzLCBhbmQgVmlzdWFsQWdlIGFyZSB0cmFkZW1hcmtzIG9mIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC4gSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvciByZWdpc3RlcmVkIHRyYWRlbWFya3Mgb2YgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBpbiB0aGUgVW5pdGVkIFN0YXRlcyBhbmQgb3RoZXIgY291bnRyaWVzLiBNaWNyb3NvZnQsIFdpbmRvd3MsIFdpbmRvd3MgTlQgYW5kIHRoZSBXaW5kb3dzIGxvZ28gYXJlIHRyYWRlbWFya3Mgb2YgTWljcm9zb2Z0IENvcnBvcmF0aW9uIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguIDwvUD4KPGhyIHdpZHRoPSI4NSUiPgogICAgICAgICAgICA8cD48YSBocmVmPSJtYWluLmh0bWwiPlJldHVybiB0byB0aGUgZWNsaXBzZS5vcmcgY29uc29ydGl1bSBtYWluIHBhZ2U8L2E+PC9wPgogICAgICAgIDwvdGQ+CgkJPC90cj4KICAgICAgICA8L3RhYmxlPjwvdGFibGU+Jm5ic3A7ICAgICAgICAKJm5ic3A7CjwvYm9keT48L2h0bWw+Cg==