Senior AI Engineer
Hackajob
Software Engineering, Data Science
United Kingdom
Posted on Mar 10, 2026
hackajob is collaborating with Tesco to connect them with exceptional professionals for this role.
PHA+PHN0cm9uZz5BYm91dCB1czwvc3Ryb25nPjxicj48YnI+T3VyIHZpc2lvbiBhdCBUZXNjbyBpcyB0byBiZWNvbWUgZXZlcnkgY3VzdG9tZXIncyBmYXZvdXJpdGUgd2F5IHRvIHNob3AsIHdoZXRoZXIgdGhleSBhcmUgYXQgaG9tZSBvciBvdXQgb24gdGhlIG1vdmUuIE91ciBjb3JlIHB1cnBvc2UgaXMmbmJzcDsmbHNxdW87U2VydmluZyBvdXIgY3VzdG9tZXJzLCBjb21tdW5pdGllcyBhbmQgcGxhbmV0IGEgbGl0dGxlIGJldHRlciBldmVyeSBkYXkmcnNxdW87LiBTZXJ2aW5nIG1lYW5zIG1vcmUgdGhhbiBhIHRyYW5zYWN0aW9uYWwgcmVsYXRpb25zaGlwIHdpdGggb3VyJm5ic3A7Y3VzdG9tZXJzLiBJdCBtZWFucyBhY3RpbmcgYXMgYSByZXNwb25zaWJsZSBhbmQgc3VzdGFpbmFibGUgYnVzaW5lc3MgZm9yIGFsbCBzdGFrZWhvbGRlcnMsIGZvciB0aGUgY29tbXVuaXRpZXMgd2UgYXJlIHBhcnQgb2YgYW5kIGZvciB0aGUmbmJzcDtwbGFuZXQuPGJyPjxicj5XZSBhcmUgcHJvdWQgdG8gaGF2ZSBhbiBpbmNsdXNpdmUgY3VsdHVyZSBhdCBUZXNjbyB3aGVyZSBldmVyeW9uZSB0cnVseSBmZWVscyBhYmxlIHRvIGJlIHRoZW1zZWx2ZXMuIEF0IFRlc2NvLCB3ZSBub3Qgb25seSBjZWxlYnJhdGUgZGl2ZXJzaXR5LCZuYnNwO2J1dCByZWNvZ25pc2UgdGhlIHZhbHVlIGFuZCBvcHBvcnR1bml0eSBpdCBicmluZ3MuIFdlJ3JlIGNvbW1pdHRlZCB0byBjcmVhdGluZyBhIHdvcmtwbGFjZSB3aGVyZSBkaWZmZXJlbmNlcyBhcmUgdmFsdWVkLCBhbmQgbWFrZSBzdXJlIHRoYXQmbmJzcDthbGwgY29sbGVhZ3VlcyBhcmUgZ2l2ZW4gdGhlIHNhbWUgb3Bwb3J0dW5pdGllcy4gV2UmcnNxdW87cmUgcHJvdWQgdG8gaGF2ZSBiZWVuIGFjY3JlZGl0ZWQgRGlzYWJpbGl0eSBDb25maWRlbnQgTGVhZGVyIGFuZCB3ZSZyc3F1bztyZSBjb21taXR0ZWQgdG8mbmJzcDtwcm92aWRpbmcgYSBmdWxseSBpbmNsdXNpdmUgYW5kIGFjY2Vzc2libGUgcmVjcnVpdG1lbnQgcHJvY2Vzcy4mbmJzcDs8YnI+PGJyPldlJnJzcXVvO3JlIGEgYmlnIGJ1c2luZXNzIGFuZCB3ZSBjYW4gb2ZmZXIgYSByYW5nZSBvZiBkaXZlcnNlIGZ1bGwtdGltZSAmYW1wOyBwYXJ0LXRpbWUgd29ya2luZyBwYXR0ZXJucyBhY3Jvc3Mgb3VyIG1hbnkgYnVzaW5lc3MgYXJlYXMsIHdoaWNoIG1lYW5zJm5ic3A7dGhhdCB3ZSBjYW4gZmluZCBzb21ldGhpbmcgdGhhdCB3b3JrcyBmb3IgeW91LiBXZSB3b3JrIGluIGEgbW9yZSBibGVuZGVkIHBhdHRlcm4gLSBjb21iaW5pbmcgb2ZmaWNlIGFuZCByZW1vdGUgd29ya2luZy4gT3VyIG9mZmljZXMgd2lsbCZuYnNwO2NvbnRpbnVlIHRvIGJlIHdoZXJlIHdlIGNvbm5lY3QsIGNvbGxhYm9yYXRlIGFuZCBpbm5vdmF0ZS4gSWYgeW91IGFyZSBhcHBseWluZyBpbnRlcm5hbGx5LCBwbGVhc2Ugc3BlYWsgdG8gdGhlIEhpcmluZyBNYW5hZ2VyIGFib3V0IGhvdyB0aGlzJm5ic3A7Y2FuIHdvcmsgZm9yIHlvdSAtIEV2ZXJ5b25lIGlzIHdlbGNvbWUgYXQgVGVzY28uPGJyPjxicj48c3Ryb25nPkFib3V0IHRoZSByb2xlPC9zdHJvbmc+PC9wPgo8cD5BdCBUZXNjbywgb3VyIERhdGEgU2NpZW5jZSB0ZWFtIGJ1aWxkcyBzY2FsYWJsZSBzb2x1dGlvbnMgdG8gY29tcGxleCBidXNpbmVzcyBjaGFsbGVuZ2VzIGFjcm9zcyBzdG9yZXMsIG9ubGluZSwgc3VwcGx5IGNoYWluLCBtYXJrZXRpbmcgYW5kJm5ic3A7Q2x1YmNhcmQuIFdlIGFwcGx5IGFkdmFuY2VkIG1hY2hpbmUgbGVhcm5pbmcsIGdlbmVyYXRpdmUgQUksIGFuZCBsYXJnZSBsYW5ndWFnZSBtb2RlbHMgKExMTXMpIHRvIHBlcnNvbmFsaXNlIGN1c3RvbWVyIGV4cGVyaWVuY2VzLCZuYnNwO29wdGltaXNlIG9wZXJhdGlvbnMgYW5kIGRyaXZlIGlubm92YXRpb24uIFdlIHdvcmsgYWNyb3NzIHNldmVyYWwgYnVzaW5lc3MgZG9tYWlucywgaW5jbHVkaW5nIGN1c3RvbWVyIGV4cGVyaWVuY2UsIG9ubGluZSwgZnVsZmlsbWVudCwmbmJzcDtkaXN0cmlidXRpb24sIGNvbW1vZGl0aWVzLCBzdG9yZSBvcGVyYXRpb25zIGFuZCB0ZWNobm9sb2d5LiBUZWFtIG1lbWJlcnMgcm90YXRlIGFjcm9zcyBkb21haW5zIHRvIGJyb2FkZW4gdGhlaXIgZXhwZXJ0aXNlIGFuZCBpbXBhY3QuPGJyPjxicj5XZSBmb3N0ZXIgYSBjdWx0dXJlIG9mIGNvbnRpbnVvdXMgbGVhcm5pbmcsIGRlZGljYXRpbmcgMTAlIG9mIHRoZSB3b3JraW5nIHdlZWsgdG8gcGVyc29uYWwgZGV2ZWxvcG1lbnQuIE91ciB0ZWFtIGJlbmVmaXRzIGZyb20gYWNhZGVtaWMmbmJzcDtwYXJ0bmVyc2hpcHMsIHJlZ3VsYXIga25vd2xlZGdlLXNoYXJpbmcgZXZlbnRzIGFuZCBhIGNvbGxhYm9yYXRpdmUsIGluY2x1c2l2ZSBlbnZpcm9ubWVudCB0aGF0IHZhbHVlcyB3b3JrLWxpZmUgYmFsYW5jZSBhbmQgcHJvZmVzc2lvbmFsJm5ic3A7Z3Jvd3RoLjxicj48YnI+PHN0cm9uZz5Zb3Ugd2lsbCBiZSByZXNwb25zaWJsZSBmb3I8L3N0cm9uZz48YnI+PGJyPldlIGFyZSBzZWVraW5nIGEgU2VuaW9yIEFJIEVuZ2luZWVyIHRvIGJlIHBhcnQgb2YgYSBmYXN0LXBhY2luZyB0ZWFtLCB0byBjcmVhdGUgbmV3IGN1c3RvbWVyIGdyb3d0aC4mbmJzcDs8L3A+CjxwPkV4cGVjdCBlbmTigJB0b+KAkGVuZCBvd25lcnNoaXAgLSByYXBpZCBleHBlcmltZW50YXRpb24sIGZhc3Qgc2hpcHBpbmcsIGFuZCBsZWFuaW5nIGluIHdoZXJldmVyIHRoZSB3b3JrIHRha2VzIHlvdSwgYmV5b25kIHlvdXIgam9iIHRpdGxlLiBJZiZuYnNwO3lvdSZyc3F1bztyZSBhbWJpdGlvdXMsIGhhcmTigJB3b3JraW5nLCBhbmQgZXhjaXRlZCB0byBidWlsZCAwJnJhcnI7MSBhZ2FpbnN0IHRhbGwgYW1iaXRpb25zLCB5b3UmcnNxdW87bGwgdGhyaXZlIGhlcmUuPGJyPjxicj5EZXNpZ24gYW5kIHNoaXAgcHJvZHVjdGlvbi1ncmFkZSBMTE0gc3lzdGVtcyBhbmQgc2hhcmVkIHBsYXRmb3JtIGNhcGFiaWxpdGllcyB0aGF0IHBvd2VyIGV4cGVyaWVuY2VzIGZvciBtaWxsaW9ucywgc29sdmluZyBjcm9zcy1jdXR0aW5nJm5ic3A7cGFpbiBwb2ludHMgd2l0aCBzbWFydCBidWlsZOKAkHZz4oCQYnV5IGRlY2lzaW9ucy4mbmJzcDtZb3UmcnNxdW87bGwgd29yayBlbmTigJB0b+KAkGVuZCAtIGZyb20gcmFwaWQgcHJvdG90eXBlcyB0byBwcm9kdWN0aW9uIGNvZGUgLSBhY2NlbGVyYXRpbmcgR2VuQUkgdXNlJm5ic3A7Y2FzZXMgYWNyb3NzIHRoZSBidXNpbmVzcy4mbmJzcDs8YnI+PGJyPldoaWxlIGV4aXN0aW5nIGtub3dsZWRnZSBpcyB2YWx1YWJsZSwgYSBzdHJvbmcgYWJpbGl0eSB0byBsZWFybiBxdWlja2x5IGFuZCBhcHBseSBuZXcgc2tpbGxzIGVmZmVjdGl2ZWx5IGlzIGVzc2VudGlhbC4gVGhlIGlkZWFsIGNhbmRpZGF0ZSB3aWxsIGJlJm5ic3A7c29sdXRpb24tb3JpZW50ZWQsIGVhZ2VyIHRvIHN0YXkgY3VycmVudCB3aXRoIHRoZSBsYXRlc3QgZGV2ZWxvcG1lbnRzLCBhbmQgY29tZm9ydGFibGUgaW4gYSBmYXN0LXBhY2VkIGVudmlyb25tZW50IHdpdGggYW1wbGUgcm9vbSBmb3ImbmJzcDtjcmVhdGl2aXR5IGFuZCBwcm9ibGVtLXNvbHZpbmcuPGJyPjxicj48c3Ryb25nPllvdSB3aWxsIG5lZWQ8L3N0cm9uZz48L3A+Cjx1bD4KPGxpPlByb3ZlbiBleHBlcmllbmNlIGJ1aWxkaW5nIGFuZCBkZXBsb3lpbmcgbWFjaGluZSBsZWFybmluZyBzeXN0ZW1zIGJleW9uZCBwcm90b3R5cGluZy48L2xpPgo8bGk+VW5kZXJzdGFuZGluZyBvZiBMTE1zIGFuZCBlbWVyZ2luZyBBSSBFbmdpbmVlcmluZyBzeXN0ZW0gZGVzaWduIHBhdHRlcm5zIGFuZCBjaGFsbGVuZ2VzLjwvbGk+CjxsaT5BYmlsaXR5IHRvIG1ha2Ugd2VsbC1yZWFzb25lZCBkZWNpc2lvbnMgZ3JvdW5kZWQgaW4gdGVjaG5pY2FsIHVuZGVyc3RhbmRpbmcgYW5kIHJlYWwgd29ybGQgY29uc3RyYWludHMuPC9saT4KPGxpPkNvbmZpZGVuY2UgZW5nYWdpbmcgd2l0aCBvdGhlciB0ZWNobmljYWwgdGVhbXMgYW5kIHJ1bm5pbmcgY29sbGFib3JhdGl2ZSB0ZWNobmljYWwgc2Vzc2lvbnMuPC9saT4KPGxpPkZhbWlsaWFyaXR5IHdpdGggTUwgZW5naW5lZXJpbmcgcHJhY3RpY2VzIGFuZCB0b29scyBzdWNoIGFzOjxicj4tIEV4cGVyaW1lbnQgdHJhY2tpbmcgYW5kIHJlcHJvZHVjaWJpbGl0eTxicj4tIE1vZGVsIHZlcnNpb25pbmcgYW5kIGxpZmVjeWNsZSBtYW5hZ2VtZW50PGJyPi0gUm9idXN0IHN0YXRpc3RpY2FsIGV2YWx1YXRpb248L2xpPgo8bGk+SGFuZHMtb24gZW5kLXRvLWVuZCBzb2Z0d2FyZSBleHBlcmllbmNlIGluY2x1ZGluZzxicj4tIFN5c3RlbSBkZXNpZ248YnI+LSBCYWNrZW5kL0FQSXM8YnI+LSBEZXZPcHMgYW5kIEluZnJhc3RydWN0dXJlPGJyPi0gRXhwZXJpZW5jZSB3aXRoIFB5dGhvbiBhbmQgY29tbW9uIFB5dGhvbiBsaWJyYXJpZXM8YnI+LSBGYW1pbGlhcml0eSB3aXRoIExMTSBmcmFtZXdvcmtzIHN1Y2ggYXMgTGFuZ0dyYXBoLCBMYW5nQ2hhaW48YnI+LSBFeHBlcmllbmNlIHdpdGggTkxQPC9saT4KPC91bD4KPHA+PHN0cm9uZz5XaGF0J3MgaW4gaXQgZm9yIHlvdTwvc3Ryb25nPjwvcD4KPHA+V2UmcnNxdW87cmUgYWxsIGFib3V0IHRoZSBsaXR0bGUgaGVscHMuIFRoYXQmcnNxdW87cyB3aHkgd2UgbWFrZSBzdXJlIG91ciBUZXNjbyBjb2xsZWFndWUgYmVuZWZpdHMgcGFja2FnZSB0YWtlcyBjYXJlIG9mIHlvdSAmbmRhc2g7IGJvdGggaW4gYW5kIG91dCBvZiB3b3JrLjwvcD4KPHVsPgo8bGk+QW5udWFsIGJvbnVzIHNjaGVtZSBvZiB1cCB0byAyMCUgb2YgYmFzZSBzYWxhcnk8L2xpPgo8bGk+SG9saWRheSBzdGFydGluZyBhdCAyNSBkYXlzIHBsdXMgYSBwZXJzb25hbCBkYXkgKHBsdXMgQmFuayBob2xpZGF5cyk8L2xpPgo8bGk+UHJpdmF0ZSBtZWRpY2FsIGluc3VyYW5jZTwvbGk+CjxsaT4yNiB3ZWVrcyBtYXRlcm5pdHkgYW5kIGFkb3B0aW9uIGxlYXZlIChhZnRlciAxIHllYXJzJnJzcXVvOyBzZXJ2aWNlKSBhdCBmdWxsIHBheSwgZm9sbG93ZWQgYnkgMTMgd2Vla3Mgb2YgU3RhdHV0b3J5IE1hdGVybml0eSBQYXkgb3ImbmJzcDtTdGF0dXRvcnkgQWRvcHRpb24gUGF5LCB3ZSBhbHNvIG9mZmVyIDYgd2Vla3MgZnVsbHkgcGFpZCBwYXRlcm5pdHkgbGVhdmU8L2xpPgo8bGk+RnJlZSAyNC83IHZpcnR1YWwgR1Agc2VydmljZSwgRW1wbG95ZWUgQXNzaXN0YW5jZSBQcm9ncmFtbWUgKEVBUCkgZm9yIHlvdSBhbmQgeW91ciBmYW1pbHksIGZyZWUgYWNjZXNzIHRvIGEgcmFuZ2Ugb2YgZXhwZXJ0cyB0byZuYnNwO3N1cHBvcnQgeW91ciBtZW50YWwgd2VsbGJlaW5nPC9saT4KPC91bD4=
PHA+PHN0cm9uZz5BYm91dCB1czwvc3Ryb25nPjxicj48YnI+T3VyIHZpc2lvbiBhdCBUZXNjbyBpcyB0byBiZWNvbWUgZXZlcnkgY3VzdG9tZXIncyBmYXZvdXJpdGUgd2F5IHRvIHNob3AsIHdoZXRoZXIgdGhleSBhcmUgYXQgaG9tZSBvciBvdXQgb24gdGhlIG1vdmUuIE91ciBjb3JlIHB1cnBvc2UgaXMmbmJzcDsmbHNxdW87U2VydmluZyBvdXIgY3VzdG9tZXJzLCBjb21tdW5pdGllcyBhbmQgcGxhbmV0IGEgbGl0dGxlIGJldHRlciBldmVyeSBkYXkmcnNxdW87LiBTZXJ2aW5nIG1lYW5zIG1vcmUgdGhhbiBhIHRyYW5zYWN0aW9uYWwgcmVsYXRpb25zaGlwIHdpdGggb3VyJm5ic3A7Y3VzdG9tZXJzLiBJdCBtZWFucyBhY3RpbmcgYXMgYSByZXNwb25zaWJsZSBhbmQgc3VzdGFpbmFibGUgYnVzaW5lc3MgZm9yIGFsbCBzdGFrZWhvbGRlcnMsIGZvciB0aGUgY29tbXVuaXRpZXMgd2UgYXJlIHBhcnQgb2YgYW5kIGZvciB0aGUmbmJzcDtwbGFuZXQuPGJyPjxicj5XZSBhcmUgcHJvdWQgdG8gaGF2ZSBhbiBpbmNsdXNpdmUgY3VsdHVyZSBhdCBUZXNjbyB3aGVyZSBldmVyeW9uZSB0cnVseSBmZWVscyBhYmxlIHRvIGJlIHRoZW1zZWx2ZXMuIEF0IFRlc2NvLCB3ZSBub3Qgb25seSBjZWxlYnJhdGUgZGl2ZXJzaXR5LCZuYnNwO2J1dCByZWNvZ25pc2UgdGhlIHZhbHVlIGFuZCBvcHBvcnR1bml0eSBpdCBicmluZ3MuIFdlJ3JlIGNvbW1pdHRlZCB0byBjcmVhdGluZyBhIHdvcmtwbGFjZSB3aGVyZSBkaWZmZXJlbmNlcyBhcmUgdmFsdWVkLCBhbmQgbWFrZSBzdXJlIHRoYXQmbmJzcDthbGwgY29sbGVhZ3VlcyBhcmUgZ2l2ZW4gdGhlIHNhbWUgb3Bwb3J0dW5pdGllcy4gV2UmcnNxdW87cmUgcHJvdWQgdG8gaGF2ZSBiZWVuIGFjY3JlZGl0ZWQgRGlzYWJpbGl0eSBDb25maWRlbnQgTGVhZGVyIGFuZCB3ZSZyc3F1bztyZSBjb21taXR0ZWQgdG8mbmJzcDtwcm92aWRpbmcgYSBmdWxseSBpbmNsdXNpdmUgYW5kIGFjY2Vzc2libGUgcmVjcnVpdG1lbnQgcHJvY2Vzcy4mbmJzcDs8YnI+PGJyPldlJnJzcXVvO3JlIGEgYmlnIGJ1c2luZXNzIGFuZCB3ZSBjYW4gb2ZmZXIgYSByYW5nZSBvZiBkaXZlcnNlIGZ1bGwtdGltZSAmYW1wOyBwYXJ0LXRpbWUgd29ya2luZyBwYXR0ZXJucyBhY3Jvc3Mgb3VyIG1hbnkgYnVzaW5lc3MgYXJlYXMsIHdoaWNoIG1lYW5zJm5ic3A7dGhhdCB3ZSBjYW4gZmluZCBzb21ldGhpbmcgdGhhdCB3b3JrcyBmb3IgeW91LiBXZSB3b3JrIGluIGEgbW9yZSBibGVuZGVkIHBhdHRlcm4gLSBjb21iaW5pbmcgb2ZmaWNlIGFuZCByZW1vdGUgd29ya2luZy4gT3VyIG9mZmljZXMgd2lsbCZuYnNwO2NvbnRpbnVlIHRvIGJlIHdoZXJlIHdlIGNvbm5lY3QsIGNvbGxhYm9yYXRlIGFuZCBpbm5vdmF0ZS4gSWYgeW91IGFyZSBhcHBseWluZyBpbnRlcm5hbGx5LCBwbGVhc2Ugc3BlYWsgdG8gdGhlIEhpcmluZyBNYW5hZ2VyIGFib3V0IGhvdyB0aGlzJm5ic3A7Y2FuIHdvcmsgZm9yIHlvdSAtIEV2ZXJ5b25lIGlzIHdlbGNvbWUgYXQgVGVzY28uPGJyPjxicj48c3Ryb25nPkFib3V0IHRoZSByb2xlPC9zdHJvbmc+PC9wPgo8cD5BdCBUZXNjbywgb3VyIERhdGEgU2NpZW5jZSB0ZWFtIGJ1aWxkcyBzY2FsYWJsZSBzb2x1dGlvbnMgdG8gY29tcGxleCBidXNpbmVzcyBjaGFsbGVuZ2VzIGFjcm9zcyBzdG9yZXMsIG9ubGluZSwgc3VwcGx5IGNoYWluLCBtYXJrZXRpbmcgYW5kJm5ic3A7Q2x1YmNhcmQuIFdlIGFwcGx5IGFkdmFuY2VkIG1hY2hpbmUgbGVhcm5pbmcsIGdlbmVyYXRpdmUgQUksIGFuZCBsYXJnZSBsYW5ndWFnZSBtb2RlbHMgKExMTXMpIHRvIHBlcnNvbmFsaXNlIGN1c3RvbWVyIGV4cGVyaWVuY2VzLCZuYnNwO29wdGltaXNlIG9wZXJhdGlvbnMgYW5kIGRyaXZlIGlubm92YXRpb24uIFdlIHdvcmsgYWNyb3NzIHNldmVyYWwgYnVzaW5lc3MgZG9tYWlucywgaW5jbHVkaW5nIGN1c3RvbWVyIGV4cGVyaWVuY2UsIG9ubGluZSwgZnVsZmlsbWVudCwmbmJzcDtkaXN0cmlidXRpb24sIGNvbW1vZGl0aWVzLCBzdG9yZSBvcGVyYXRpb25zIGFuZCB0ZWNobm9sb2d5LiBUZWFtIG1lbWJlcnMgcm90YXRlIGFjcm9zcyBkb21haW5zIHRvIGJyb2FkZW4gdGhlaXIgZXhwZXJ0aXNlIGFuZCBpbXBhY3QuPGJyPjxicj5XZSBmb3N0ZXIgYSBjdWx0dXJlIG9mIGNvbnRpbnVvdXMgbGVhcm5pbmcsIGRlZGljYXRpbmcgMTAlIG9mIHRoZSB3b3JraW5nIHdlZWsgdG8gcGVyc29uYWwgZGV2ZWxvcG1lbnQuIE91ciB0ZWFtIGJlbmVmaXRzIGZyb20gYWNhZGVtaWMmbmJzcDtwYXJ0bmVyc2hpcHMsIHJlZ3VsYXIga25vd2xlZGdlLXNoYXJpbmcgZXZlbnRzIGFuZCBhIGNvbGxhYm9yYXRpdmUsIGluY2x1c2l2ZSBlbnZpcm9ubWVudCB0aGF0IHZhbHVlcyB3b3JrLWxpZmUgYmFsYW5jZSBhbmQgcHJvZmVzc2lvbmFsJm5ic3A7Z3Jvd3RoLjxicj48YnI+PHN0cm9uZz5Zb3Ugd2lsbCBiZSByZXNwb25zaWJsZSBmb3I8L3N0cm9uZz48YnI+PGJyPldlIGFyZSBzZWVraW5nIGEgU2VuaW9yIEFJIEVuZ2luZWVyIHRvIGJlIHBhcnQgb2YgYSBmYXN0LXBhY2luZyB0ZWFtLCB0byBjcmVhdGUgbmV3IGN1c3RvbWVyIGdyb3d0aC4mbmJzcDs8L3A+CjxwPkV4cGVjdCBlbmTigJB0b+KAkGVuZCBvd25lcnNoaXAgLSByYXBpZCBleHBlcmltZW50YXRpb24sIGZhc3Qgc2hpcHBpbmcsIGFuZCBsZWFuaW5nIGluIHdoZXJldmVyIHRoZSB3b3JrIHRha2VzIHlvdSwgYmV5b25kIHlvdXIgam9iIHRpdGxlLiBJZiZuYnNwO3lvdSZyc3F1bztyZSBhbWJpdGlvdXMsIGhhcmTigJB3b3JraW5nLCBhbmQgZXhjaXRlZCB0byBidWlsZCAwJnJhcnI7MSBhZ2FpbnN0IHRhbGwgYW1iaXRpb25zLCB5b3UmcnNxdW87bGwgdGhyaXZlIGhlcmUuPGJyPjxicj5EZXNpZ24gYW5kIHNoaXAgcHJvZHVjdGlvbi1ncmFkZSBMTE0gc3lzdGVtcyBhbmQgc2hhcmVkIHBsYXRmb3JtIGNhcGFiaWxpdGllcyB0aGF0IHBvd2VyIGV4cGVyaWVuY2VzIGZvciBtaWxsaW9ucywgc29sdmluZyBjcm9zcy1jdXR0aW5nJm5ic3A7cGFpbiBwb2ludHMgd2l0aCBzbWFydCBidWlsZOKAkHZz4oCQYnV5IGRlY2lzaW9ucy4mbmJzcDtZb3UmcnNxdW87bGwgd29yayBlbmTigJB0b+KAkGVuZCAtIGZyb20gcmFwaWQgcHJvdG90eXBlcyB0byBwcm9kdWN0aW9uIGNvZGUgLSBhY2NlbGVyYXRpbmcgR2VuQUkgdXNlJm5ic3A7Y2FzZXMgYWNyb3NzIHRoZSBidXNpbmVzcy4mbmJzcDs8YnI+PGJyPldoaWxlIGV4aXN0aW5nIGtub3dsZWRnZSBpcyB2YWx1YWJsZSwgYSBzdHJvbmcgYWJpbGl0eSB0byBsZWFybiBxdWlja2x5IGFuZCBhcHBseSBuZXcgc2tpbGxzIGVmZmVjdGl2ZWx5IGlzIGVzc2VudGlhbC4gVGhlIGlkZWFsIGNhbmRpZGF0ZSB3aWxsIGJlJm5ic3A7c29sdXRpb24tb3JpZW50ZWQsIGVhZ2VyIHRvIHN0YXkgY3VycmVudCB3aXRoIHRoZSBsYXRlc3QgZGV2ZWxvcG1lbnRzLCBhbmQgY29tZm9ydGFibGUgaW4gYSBmYXN0LXBhY2VkIGVudmlyb25tZW50IHdpdGggYW1wbGUgcm9vbSBmb3ImbmJzcDtjcmVhdGl2aXR5IGFuZCBwcm9ibGVtLXNvbHZpbmcuPGJyPjxicj48c3Ryb25nPllvdSB3aWxsIG5lZWQ8L3N0cm9uZz48L3A+Cjx1bD4KPGxpPlByb3ZlbiBleHBlcmllbmNlIGJ1aWxkaW5nIGFuZCBkZXBsb3lpbmcgbWFjaGluZSBsZWFybmluZyBzeXN0ZW1zIGJleW9uZCBwcm90b3R5cGluZy48L2xpPgo8bGk+VW5kZXJzdGFuZGluZyBvZiBMTE1zIGFuZCBlbWVyZ2luZyBBSSBFbmdpbmVlcmluZyBzeXN0ZW0gZGVzaWduIHBhdHRlcm5zIGFuZCBjaGFsbGVuZ2VzLjwvbGk+CjxsaT5BYmlsaXR5IHRvIG1ha2Ugd2VsbC1yZWFzb25lZCBkZWNpc2lvbnMgZ3JvdW5kZWQgaW4gdGVjaG5pY2FsIHVuZGVyc3RhbmRpbmcgYW5kIHJlYWwgd29ybGQgY29uc3RyYWludHMuPC9saT4KPGxpPkNvbmZpZGVuY2UgZW5nYWdpbmcgd2l0aCBvdGhlciB0ZWNobmljYWwgdGVhbXMgYW5kIHJ1bm5pbmcgY29sbGFib3JhdGl2ZSB0ZWNobmljYWwgc2Vzc2lvbnMuPC9saT4KPGxpPkZhbWlsaWFyaXR5IHdpdGggTUwgZW5naW5lZXJpbmcgcHJhY3RpY2VzIGFuZCB0b29scyBzdWNoIGFzOjxicj4tIEV4cGVyaW1lbnQgdHJhY2tpbmcgYW5kIHJlcHJvZHVjaWJpbGl0eTxicj4tIE1vZGVsIHZlcnNpb25pbmcgYW5kIGxpZmVjeWNsZSBtYW5hZ2VtZW50PGJyPi0gUm9idXN0IHN0YXRpc3RpY2FsIGV2YWx1YXRpb248L2xpPgo8bGk+SGFuZHMtb24gZW5kLXRvLWVuZCBzb2Z0d2FyZSBleHBlcmllbmNlIGluY2x1ZGluZzxicj4tIFN5c3RlbSBkZXNpZ248YnI+LSBCYWNrZW5kL0FQSXM8YnI+LSBEZXZPcHMgYW5kIEluZnJhc3RydWN0dXJlPGJyPi0gRXhwZXJpZW5jZSB3aXRoIFB5dGhvbiBhbmQgY29tbW9uIFB5dGhvbiBsaWJyYXJpZXM8YnI+LSBGYW1pbGlhcml0eSB3aXRoIExMTSBmcmFtZXdvcmtzIHN1Y2ggYXMgTGFuZ0dyYXBoLCBMYW5nQ2hhaW48YnI+LSBFeHBlcmllbmNlIHdpdGggTkxQPC9saT4KPC91bD4KPHA+PHN0cm9uZz5XaGF0J3MgaW4gaXQgZm9yIHlvdTwvc3Ryb25nPjwvcD4KPHA+V2UmcnNxdW87cmUgYWxsIGFib3V0IHRoZSBsaXR0bGUgaGVscHMuIFRoYXQmcnNxdW87cyB3aHkgd2UgbWFrZSBzdXJlIG91ciBUZXNjbyBjb2xsZWFndWUgYmVuZWZpdHMgcGFja2FnZSB0YWtlcyBjYXJlIG9mIHlvdSAmbmRhc2g7IGJvdGggaW4gYW5kIG91dCBvZiB3b3JrLjwvcD4KPHVsPgo8bGk+QW5udWFsIGJvbnVzIHNjaGVtZSBvZiB1cCB0byAyMCUgb2YgYmFzZSBzYWxhcnk8L2xpPgo8bGk+SG9saWRheSBzdGFydGluZyBhdCAyNSBkYXlzIHBsdXMgYSBwZXJzb25hbCBkYXkgKHBsdXMgQmFuayBob2xpZGF5cyk8L2xpPgo8bGk+UHJpdmF0ZSBtZWRpY2FsIGluc3VyYW5jZTwvbGk+CjxsaT4yNiB3ZWVrcyBtYXRlcm5pdHkgYW5kIGFkb3B0aW9uIGxlYXZlIChhZnRlciAxIHllYXJzJnJzcXVvOyBzZXJ2aWNlKSBhdCBmdWxsIHBheSwgZm9sbG93ZWQgYnkgMTMgd2Vla3Mgb2YgU3RhdHV0b3J5IE1hdGVybml0eSBQYXkgb3ImbmJzcDtTdGF0dXRvcnkgQWRvcHRpb24gUGF5LCB3ZSBhbHNvIG9mZmVyIDYgd2Vla3MgZnVsbHkgcGFpZCBwYXRlcm5pdHkgbGVhdmU8L2xpPgo8bGk+RnJlZSAyNC83IHZpcnR1YWwgR1Agc2VydmljZSwgRW1wbG95ZWUgQXNzaXN0YW5jZSBQcm9ncmFtbWUgKEVBUCkgZm9yIHlvdSBhbmQgeW91ciBmYW1pbHksIGZyZWUgYWNjZXNzIHRvIGEgcmFuZ2Ugb2YgZXhwZXJ0cyB0byZuYnNwO3N1cHBvcnQgeW91ciBtZW50YWwgd2VsbGJlaW5nPC9saT4KPC91bD4=