Digital de-ageing is now a common franchise filmmaking tool - but where does it all end? Mark Harrison has some thoughts...
This article first appeared in Film Stories issue 42 in May 2023.
In 1981’s Raiders Of The Lost Ark, Indiana Jones memorably told Marion Ravenwood: “It’s not the years, honey, it’s the mileage.” More than 40 years later, the Man In The Hat is back this summer for his fifth adventure, in which visual effects will wind back both the clock and the odometer on its 78-year-old star Harrison Ford.
Directed by James Mangold, Indiana Jones And The Dial Of Destiny will start with a prologue set in 1944. Most of the film catches up with Indy in the late 1960s, but the marketing for the film has prominently shown off the ever-more-impressive effects used to de-age, in this case, Harrison Ford.
Having worked with Lucasfilm a fair bit in his younger years, there’s a lot of reference footage of a younger Ford to draw upon, and that seems to have been the turning point for the de-ageing effects pioneered by Lola Visual Effects and popularised by Marvel Studios.
There’s always the ‘uncanny valley’ effect, but of course, the paradox is that no matter how realistic the technology gets, we know we’re looking at a special effect because the contemporary Ford is also in the movie. And thus far, Hollywood has largely used it in capacities where the younger digital character can be differentiated from the real actor elsewhere in the film.
In 2019, confirming that he would pick up Dr Jones’s hat and whip for one final outing, Ford told NBC Today: “I’m Indiana Jones […] When I’m gone, he’s gone.”
However, given Disney and Lucasfilm’s taste for de-ageing stars or even resurrecting them with visual effects, it’s just possible that we’ll soon see more of the technology being used to separate returnable characters from ageing or absent actors. An animated Indiana Jones movie sounds like a good idea to us, but might Dial Of Destiny’s prologue lay the groundwork for an Indiana Jones franchise where a Ford facsimile runs around in live-action settings? The rapid recent evolution of – and, more importantly, the use of – de-aging in recent movies suggest it might.
PGRpdiBjbGFzcz0iYWRkdG9hbnlfc2hhcmVfc2F2ZV9jb250YWluZXIgYWRkdG9hbnlfY29udGVudCBhZGR0b2FueV9jb250ZW50X3RvcCI+PGRpdiBjbGFzcz0iYWRkdG9hbnlfaGVhZGVyIj5TaGFyZSB0aGlzIEFydGljbGU6PC9kaXY+PGRpdiBjbGFzcz0iYTJhX2tpdCBhMmFfa2l0X3NpemVfMzIgYWRkdG9hbnlfbGlzdCIgZGF0YS1hMmEtdXJsPSJodHRwczovL2ZpbG1zdG9yaWVzLmNvLnVrL2ZlYXR1cmVzL3doZXJlLWRvZXMtaG9sbHl3b29kLWRlLWFnZWluZy1nby1mcm9tLWhlcmUvIiBkYXRhLWEyYS10aXRsZT0iV2hlcmUgZG9lcyBIb2xseXdvb2QgZGUtYWdlaW5nIGdvIGZyb20gaGVyZT8iPjxhIGNsYXNzPSJhMmFfYnV0dG9uX2ZhY2Vib29rIiBocmVmPSJodHRwczovL3d3dy5hZGR0b2FueS5jb20vYWRkX3RvL2ZhY2Vib29rP2xpbmt1cmw9aHR0cHMlM0ElMkYlMkZmaWxtc3Rvcmllcy5jby51ayUyRmZlYXR1cmVzJTJGd2hlcmUtZG9lcy1ob2xseXdvb2QtZGUtYWdlaW5nLWdvLWZyb20taGVyZSUyRiZhbXA7bGlua25hbWU9V2hlcmUlMjBkb2VzJTIwSG9sbHl3b29kJTIwZGUtYWdlaW5nJTIwZ28lMjBmcm9tJTIwaGVyZSUzRiIgdGl0bGU9IkZhY2Vib29rIiByZWw9Im5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+PC9hPjxhIGNsYXNzPSJhMmFfYnV0dG9uX3R3aXR0ZXIiIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vdHdpdHRlcj9saW5rdXJsPWh0dHBzJTNBJTJGJTJGZmlsbXN0b3JpZXMuY28udWslMkZmZWF0dXJlcyUyRndoZXJlLWRvZXMtaG9sbHl3b29kLWRlLWFnZWluZy1nby1mcm9tLWhlcmUlMkYmYW1wO2xpbmtuYW1lPVdoZXJlJTIwZG9lcyUyMEhvbGx5d29vZCUyMGRlLWFnZWluZyUyMGdvJTIwZnJvbSUyMGhlcmUlM0YiIHRpdGxlPSJUd2l0dGVyIiByZWw9Im5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+PC9hPjxhIGNsYXNzPSJhMmFfYnV0dG9uX2VtYWlsIiBocmVmPSJodHRwczovL3d3dy5hZGR0b2FueS5jb20vYWRkX3RvL2VtYWlsP2xpbmt1cmw9aHR0cHMlM0ElMkYlMkZmaWxtc3Rvcmllcy5jby51ayUyRmZlYXR1cmVzJTJGd2hlcmUtZG9lcy1ob2xseXdvb2QtZGUtYWdlaW5nLWdvLWZyb20taGVyZSUyRiZhbXA7bGlua25hbWU9V2hlcmUlMjBkb2VzJTIwSG9sbHl3b29kJTIwZGUtYWdlaW5nJTIwZ28lMjBmcm9tJTIwaGVyZSUzRiIgdGl0bGU9IkVtYWlsIiByZWw9Im5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+PC9hPjxhIGNsYXNzPSJhMmFfZGQgYWRkdG9hbnlfc2hhcmVfc2F2ZSBhZGR0b2FueV9zaGFyZSIgaHJlZj0iaHR0cHM6Ly93d3cuYWRkdG9hbnkuY29tL3NoYXJlIj48L2E+PC9kaXY+PC9kaXY+CjxwPjxzdHJvbmc+RGlnaXRhbCBkZS1hZ2VpbmcgaXMgbm93IGEgY29tbW9uIGZyYW5jaGlzZSBmaWxtbWFraW5nIHRvb2wgJiM4MjExOyBidXQgd2hlcmUgZG9lcyBpdCBhbGwgZW5kPyBNYXJrIEhhcnJpc29uIGhhcyBzb21lIHRob3VnaHRzJiM4MjMwOzwvc3Ryb25nPjwvcD4KCgoKPGhyIGNsYXNzPSJ3cC1ibG9jay1zZXBhcmF0b3IgaGFzLWFscGhhLWNoYW5uZWwtb3BhY2l0eSIvPgoKCgo8cD48ZW0+VGhpcyBhcnRpY2xlIGZpcnN0IGFwcGVhcmVkIGluIEZpbG0gU3RvcmllcyBpc3N1ZSA0MiBpbiBNYXkgMjAyMy48L2VtPjwvcD4KCgoKPHA+SW4gMTk4MeKAmXMgPGVtPlJhaWRlcnMgT2YgVGhlIExvc3QgQXJrPC9lbT4sIEluZGlhbmEgSm9uZXMgbWVtb3JhYmx5IHRvbGQgTWFyaW9uIFJhdmVud29vZDog4oCcSXTigJlzIG5vdCB0aGUgeWVhcnMsIGhvbmV5LCBpdOKAmXMgdGhlIG1pbGVhZ2Uu4oCdIE1vcmUgdGhhbiA0MCB5ZWFycyBsYXRlciwgdGhlIE1hbiBJbiBUaGUgSGF0IGlzIGJhY2sgdGhpcyBzdW1tZXIgZm9yIGhpcyBmaWZ0aCBhZHZlbnR1cmUsIGluIHdoaWNoIHZpc3VhbCBlZmZlY3RzIHdpbGwgd2luZCBiYWNrIGJvdGggdGhlIGNsb2NrIGFuZCB0aGUgb2RvbWV0ZXIgb24gaXRzIDc4LXllYXItb2xkIHN0YXIgSGFycmlzb24gRm9yZC48L3A+CgoKCjxwPkRpcmVjdGVkIGJ5IEphbWVzIE1hbmdvbGQsIDxlbT5JbmRpYW5hIEpvbmVzIEFuZCBUaGUgRGlhbCBPZiBEZXN0aW55PC9lbT4gd2lsbCBzdGFydCB3aXRoIGEgcHJvbG9ndWUgc2V0IGluIDE5NDQuIE1vc3Qgb2YgdGhlIGZpbG0gY2F0Y2hlcyB1cCB3aXRoIEluZHkgaW4gdGhlIGxhdGUgMTk2MHMsIGJ1dCB0aGUgbWFya2V0aW5nIGZvciB0aGUgZmlsbSBoYXMgcHJvbWluZW50bHkgc2hvd24gb2ZmIHRoZSBldmVyLW1vcmUtaW1wcmVzc2l2ZSBlZmZlY3RzIHVzZWQgdG8gZGUtYWdlLCBpbiB0aGlzIGNhc2UsIEhhcnJpc29uIEZvcmQuPC9wPgoKCgo8cD5IYXZpbmcgd29ya2VkIHdpdGggTHVjYXNmaWxtIGEgZmFpciBiaXQgaW4gaGlzIHlvdW5nZXIgeWVhcnMsIHRoZXJl4oCZcyBhIGxvdCBvZiByZWZlcmVuY2UgZm9vdGFnZSBvZiBhIHlvdW5nZXIgRm9yZCB0byBkcmF3IHVwb24sIGFuZCB0aGF0IHNlZW1zIHRvIGhhdmUgYmVlbiB0aGUgdHVybmluZyBwb2ludCBmb3IgdGhlIGRlLWFnZWluZyBlZmZlY3RzIHBpb25lZXJlZCBieSBMb2xhIFZpc3VhbCBFZmZlY3RzIGFuZCBwb3B1bGFyaXNlZCBieSBNYXJ2ZWwgU3R1ZGlvcy48L3A+CgoKCjxwPlRoZXJl4oCZcyBhbHdheXMgdGhlIOKAmHVuY2FubnkgdmFsbGV54oCZIGVmZmVjdCwgYnV0IG9mIGNvdXJzZSwgdGhlIHBhcmFkb3ggaXMgdGhhdCBubyBtYXR0ZXIgaG93IHJlYWxpc3RpYyB0aGUgdGVjaG5vbG9neSBnZXRzLCB3ZSBrbm93IHdl4oCZcmUgbG9va2luZyBhdCBhIHNwZWNpYWwgZWZmZWN0IGJlY2F1c2UgdGhlIGNvbnRlbXBvcmFyeSBGb3JkIGlzIGFsc28gaW4gdGhlIG1vdmllLiBBbmQgdGh1cyBmYXIsIEhvbGx5d29vZCBoYXMgbGFyZ2VseSB1c2VkIGl0IGluIGNhcGFjaXRpZXMgd2hlcmUgdGhlIHlvdW5nZXIgZGlnaXRhbCBjaGFyYWN0ZXIgY2FuIGJlIGRpZmZlcmVudGlhdGVkIGZyb20gdGhlIHJlYWwgYWN0b3IgZWxzZXdoZXJlIGluIHRoZSBmaWxtLjwvcD4KCgoKPHA+SW4gMjAxOSwgY29uZmlybWluZyB0aGF0IGhlIHdvdWxkIHBpY2sgdXAgRHIgSm9uZXPigJlzIGhhdCBhbmQgd2hpcCBmb3Igb25lIGZpbmFsIG91dGluZywgRm9yZCB0b2xkIE5CQyBUb2RheTog4oCcSeKAmW0gSW5kaWFuYSBKb25lcyBb4oCmXSBXaGVuIEnigJltIGdvbmUsIGhl4oCZcyBnb25lLuKAnTwvcD4KCgoKPHA+SG93ZXZlciwgZ2l2ZW4gRGlzbmV5IGFuZCBMdWNhc2ZpbG3igJlzIHRhc3RlIGZvciBkZS1hZ2Vpbmcgc3RhcnMgb3IgZXZlbiByZXN1cnJlY3RpbmcgdGhlbSB3aXRoIHZpc3VhbCBlZmZlY3RzLCBpdOKAmXMganVzdCBwb3NzaWJsZSB0aGF0IHdl4oCZbGwgc29vbiBzZWUgbW9yZSBvZiB0aGUgdGVjaG5vbG9neSBiZWluZyB1c2VkIHRvIHNlcGFyYXRlIHJldHVybmFibGUgY2hhcmFjdGVycyBmcm9tIGFnZWluZyBvciBhYnNlbnQgYWN0b3JzLiBBbiBhbmltYXRlZCBJbmRpYW5hIEpvbmVzIG1vdmllIHNvdW5kcyBsaWtlIGEgZ29vZCBpZGVhIHRvIHVzLCBidXQgbWlnaHQgPGVtPkRpYWwgT2YgRGVzdGlueTwvZW0+4oCZcyBwcm9sb2d1ZSBsYXkgdGhlIGdyb3VuZHdvcmsgZm9yIGFuIEluZGlhbmEgSm9uZXMgZnJhbmNoaXNlIHdoZXJlIGEgRm9yZCBmYWNzaW1pbGUgcnVucyBhcm91bmQgaW4gbGl2ZS1hY3Rpb24gc2V0dGluZ3M/IFRoZSByYXBpZCByZWNlbnQgZXZvbHV0aW9uIG9mIOKAkyBhbmQsIG1vcmUgaW1wb3J0YW50bHksIHRoZSB1c2Ugb2Yg4oCTIGRlLWFnaW5nIGluIHJlY2VudCBtb3ZpZXMgc3VnZ2VzdCBpdCBtaWdodC48L3A+CgoKCjxzcGFuIGlkPSJtb3JlLTk4NzczIj48L3NwYW4+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtdGVjaG5pY2FsLW1hcnZlbCI+VGVjaG5pY2FsIE1hcnZlbDwvaDI+CgoKCjxwPlRoZSBzdG9yeSBvZiBkaWdpdGFsIGRlLWFnZWluZyBiZWdpbnMgaW4gMTk4Ni4gV2VsbCwgdGhlIHZlcnNpb24gb2YgMTk4NiB3ZSBzZWUgaW4gdGhlIHByb2xvZ3VlIG9mIDIwMDbigJlzIDxlbT5YLU1lbjogVGhlIExhc3QgU3RhbmQ8L2VtPiwgYW55d2F5IOKAkyBpbiB3aGljaCBQcm9mZXNzb3IgWCBhbmQgTWFnbmV0byBmaXJzdCBpbnZpdGUgeW91bmcgSmVhbiBHcmV5IHRvIGpvaW4gdGhlaXIgc2Nob29sIGZvciBnaWZ0ZWQgeW91bmdzdGVycy48L3A+CgoKCjxwPkFtaWQgdGhlIG1peGVkIHJldmlld3MgZm9yIEJyZXR0IFJhdG5lcuKAmXMgdGhyZWVxdWVsLCB0aGVyZSB3YXMgYSBsb3Qgb2YgcHJlLXJlbGVhc2UgcHVibGljaXR5IGFib3V0IHRoZSB2aXN1YWwgZWZmZWN0cyB1c2VkIHRvIG1ha2UgUGF0cmljayBTdGV3YXJ0IGFuZCBJYW4gTWNLZWxsZW4gbG9vayAyMCB5ZWFycyB5b3VuZ2VyLjwvcD4KCgoKPHA+TG9sYSB3YXMgdGhlIGVmZmVjdHMgaG91c2UgYmVoaW5kIHRoaXMgYml0IG9mIG1vdmllIG1hZ2ljLCB3aXRoIGEgdGVjaG5pcXVlIHRoZXkgY2FsbGVkIOKAmGRpZ2l0YWwgc2tpbiBncmFmdGluZ+KAmS4gQmFzZWQgbW9yZSBvbiBpbm5vdmF0aW5nIHdpdGggZXhpc3RpbmcgdG9vbHMgdGhhbiBkZXZlbG9waW5nIG5ldyBvbmVzLCB0aGlzIHByb2Nlc3Mgd2FzIGFwcGxpZWQgdG8gdGhlIGFjdG9ycyBpbiBwb3N0LXByb2R1Y3Rpb24sIHdpdGggbm8gbmVlZCBmb3IgdGhlIHVzdWFsIHRyYWNraW5nIGRvdHMgYXNzb2NpYXRlZCB3aXRoIHBlcmZvcm1hbmNlLWNhcHR1cmUgd29yay48L3A+CgoKCjxwPlRoZSBlZmZlY3RzIGFydGlzdHMsIGluY2x1ZGluZyBmdXR1cmUgZGlyZWN0b3JzIHRoZSBCcm90aGVycyBTdHJhdXNlLCBoYWQgZGV2ZWxvcGVkIHRoZSB0ZWNobmlxdWUgd2hpbGUgdG91Y2hpbmcgdXAgbXVzaWMgdmlkZW9zIGFuZCBhZHZlcnRzLjwvcD4KCgoKPHA+V2l0aGluIGEgY291cGxlIG9mIHllYXJzLCBMb2xhIGhhZCBjb250cmlidXRlZCB0byB0aGUgT3NjYXItIHdpbm5pbmcgZWZmZWN0cyBvZiA8ZW0+VGhlIEN1cmlvdXMgQ2FzZSBPZiBCZW5qYW1pbiBCdXR0b248L2VtPiwgcGVyaGFwcyB0aGUgb25seSBmaWxtIG9mIGl0cyB0aW1lIHdoZXJlIGRlLWFnZWluZyBpcyBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSB0byB0aGUgbmFycmF0aXZlLjwvcD4KCgoKPHA+QmFjayBvbiB0aGUgZnJhbmNoaXNlIGZyb250LCBKZWZmIEJyaWRnZXPigJkgZGlnaXRhbCBjbG9uZSBpbiA8ZW0+VHJvbjogTGVnYWN5PC9lbT4gbWFkZSBtb3JlIGhlYWRsaW5lcywgYnV0IGl04oCZcyBMb2xh4oCZcyBmdXJ0aGVyIHdvcmsgb24gTWFydmVsIG1vdmllcyB0aGF0IG1hZGUgYSBibG9ja2J1c3Rpbmcgc3BsYXNoLjwvcD4KCgoKPHA+QWZ0ZXIgdW4tYmlnZ2VuaW5nIENocmlzIEV2YW5zIGZvciB0aGUgcHJlLXN1cGVyLXNvbGRpZXIgc2VxdWVuY2Ugb2YgdGhlIGZpcnN0IDxlbT5DYXB0YWluIEFtZXJpY2E8L2VtPiBtb3ZpZSBhbmQgYWdlaW5nIHVwIEhheWxleSBBdHdlbGwgaW4gdGhlIHNlcXVlbCwgdGhlIG9wZW5pbmcgc2VxdWVuY2Ugb2YgMjAxNeKAmXMgPGVtPkFudC1NYW48L2VtPiB1bmV4cGVjdGVkbHkgY29uZnJvbnRzIHRoZSBhdWRpZW5jZSB3aXRoIE1pY2hhZWwgRG91Z2xhcyBjaXJjYSAxOTg5LjwvcD4KCgoKPHA+SW4gYSBsaXR0bGUgbGVzcyB0aGFuIGEgZGVjYWRlLCB5b3UgY2FuIGJvdGggc2VlIGhvdyB0aGUgdGVjaG5vbG9neSBoYXMgZGV2ZWxvcGVkIGFuZCBhcHByZWNpYXRlIHdoYXQgdGhlIHZpc3VhbC1lZmZlY3RzIGFydGlzdHMgY2FuIGRvIHdpdGggYSBncmVhdGVyIGNhdGFsb2d1ZSBvZiBjb250ZW1wb3JhcnkgZmlsbSByZWZlcmVuY2VzIG9mIERvdWdsYXMgZWFybGllciBpbiBoaXMgY2FyZWVyIOKAkyBqdXN0IGxpa2UgRm9yZCBpbiB0aGUgbmV3IEluZGlhbmEgSm9uZXMgb3V0aW5nLjwvcD4KCgoKPHA+SXQgYWxzbyBlc3RhYmxpc2hlcyB3aGF0IHRoZSBNYXJ2ZWwgQ2luZW1hdGljIFVuaXZlcnNlIHNwZWNpZmljYWxseSB1c2VzIHRoaXMgdGVjaG5vbG9neSBmb3Ig4oCTIGluc2VydGluZyBmbGFzaGJhY2tzIGFuZCByZXRyb2FjdGl2ZSBjb250aW51aXR5IGludG8gYSB0aW1lbGluZSB0aGF0IHNwcmF3bHMgZnJvbSBXb3JsZCBXYXIgSUkgdG8gdGhlIHByZXNlbnQgZGF5IHdpdGggbGliZXJhbCBDRyBmYWNlIHJlcGxhY2VtZW50cywgd2hldGhlciBpdOKAmXMgUm9iZXJ0IERvd25leSBKciBpbiA8ZW0+Q2FwdGFpbiBBbWVyaWNhOiBDaXZpbCBXYXI8L2VtPiBvciBLdXJ0IFJ1c3NlbGwgaW4gPGVtPkd1YXJkaWFucyBPZiBUaGUgR2FsYXh5IFZvbHVtZSAyLjwvZW0+PC9wPgoKCgo8cD5JdHMgbW9zdCBpbXByZXNzaXZlIGFuZCBleHRlbnNpdmUgdXNlIG9mIGRlLSBhZ2VpbmcgaXMgU2FtdWVsIEwgSmFja3NvbiBpbiAyMDE54oCZcyAxOTkwcy1zZXQgcHJlcXVlbCwgPGVtPkNhcHRhaW4gTWFydmVsPC9lbT4uIFdoZW4gdGhlIGVudGlyZSBmZWF0dXJlIGlzIGEgZmxhc2hiYWNrIHRvIGFuIGFzLXlldC11bnNlZW4gYWR2ZW50dXJlLCBOaWNrIEZ1cnkgYmVjb21lcyB0aGUgc2Vjb25kIGxlYWQsIHdpdGggSmFja3NvbiBkaWdpdGFsbHkgbWFkZSB1cCB0byBsb29rIGxpa2UgaGltc2VsZiBzb21ld2hlcmUgYmV0d2VlbiA8ZW0+VGhlIExvbmcgS2lzcyBHb29kbmlnaHQ8L2VtPiBhbmQgPGVtPlRoZSBOZWdvdGlhdG9yPC9lbT4uPC9wPgoKCgo8cD5PZiBjb3Vyc2UsIDIwMTkgcHJvdmVkIGEgd2F0ZXJzaGVkIG1vbWVudCBmb3IgZGUtYWdlaW5nIFZGWCwgYXMgSW5kdXN0cmlhbCBMaWdodCAmYW1wOyBNYWdpYyBnb3Qgb24gYm9hcmQgd2l0aCB0aGUgZWZmZWN0cyB3b3JrIHVzZWQgdG8gbWFrZSBSb2JlcnQgRGUgTmlybywgQWwgUGFjaW5vLCBhbmQgSm9lIFBlc2NpIGxvb2sgZGVjYWRlcyB5b3VuZ2VyIGluIE1hcnRpbiBTY29yc2VzZeKAmXMgY3JpbWUgb3B1cyA8ZW0+VGhlIElyaXNobWFuPC9lbT4uIEluIHRoaXMgY2FzZSwgbXVjaCBoYXMgYWxyZWFkeSBiZWVuIHdyaXR0ZW4gYWJvdXQgaG93IHRoZSBkcmFtYSBmYWxscyBmbGF0IHdoZW5ldmVyIHRoZSB5b3VuZ2VyIGZhY2VzIGRvbuKAmXQgbWF0Y2ggdGhlIG5vdGljZWFibHkgb2xkZXIgcGh5c2ljYWxpdHkgb2YgdGhlIHBlcmZvcm1lcnMuIEl0IGlzIHBhcnRpY3VsYXJseSBldmlkZW50IGluIGEgc2NlbmUgd2hlcmUgMzAtc29tZXRoaW5nIEZyYW5rIFNoZWVyYW4gcnVucyBhbmQgZmlnaHRzIGxpa2UgYSA3Ni15ZWFyLW9sZCBEZSBOaXJvIOKAkyB3aGljaCBoZSBpcywgdW5kZXIgdGhlIFZGWCBzbGF0aGVyLjwvcD4KCgoKPHA+TmV2ZXJ0aGVsZXNzLCB0aGUgZWZmZWN0cyBsZW5kIHRvIHRoZSBtZXRhdGV4dHVhbCBhbmdsZSBvZiB0aGUgZmlsbSDigJMgU2NvcnNlc2UgaGFzIG5vdCBjb21lIHRvIHByYWlzZSB0aGUgZ2FuZ3N0ZXIgZXBpYyBidXQgdG8gYnVyeSBpdCwgYW5kIGhlIHBlcnN1YXNpdmVseSBtYWtlcyB0aGUgY2FzZSB0aGF0IHlvdSBjYW4gb25seSBkbyB0aGF0IHdpdGggdGhlIGFjdG9ycyB3aG8gd2VyZSB0aGVyZS4gQXMgYSBmdW5lcmFsIGZvciBhIHBhcnRpY3VsYXIgc3R5bGUgb2YgbW92aWUsIHlvdSBleHBlY3QgdG8gc2VlIGZhbWlsaWFyIGZhY2VzIGZyb20gaXRzIHZpb2xlbnQgbGlmZS48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtYmF0dGxlLW9mLXdpbGxzIj5CYXR0bGUgb2YgV2lsbHM8L2gyPgoKCgo8cD5BbmQgdGhlbiB0aGVyZeKAmXMgdGhlIG90aGVyIGJpZyAyMDE5IGRlLWFnZWluZyBtb3ZpZSDigJMgdGhlIFdpbGwgU21pdGggdnMgV2lsbCBTbWl0aCBhY3Rpb24gdmVoaWNsZSwgPGVtPkdlbWluaSBNYW48L2VtPi48L3A+CgoKCjxwPlJlY2VpdmluZyBhIG1vcmUgbXV0ZWQgY3JpdGljYWwgcmVzcG9uc2UgdGhhbiA8ZW0+VGhlIElyaXNobWFuPC9lbT4sIEFuZyBMZWXigJlzIGZpbG0gc2VydmVzIHVwIHRoZSBiaWdnZXN0IG1ldGEtY3JpdGlxdWUgb2YgZGUtYWdlaW5nIHRodXMgZmFyIGJ5IHJlbGF0aW5nIHRoZSByZWR1bmRhbmN5IG9mIGFnZWluZyBhY3Rpb24tbW92aWUgc3RhcnMgdG8gYW4gYW1vcmFsIHNjaS1maSBtaWxpdGFyeS1pbmR1c3RyaWFsIGNvbXBsZXggdGhhdCwgaWYgbGVmdCB1bmNoZWNrZWQsIHdpbGwganVzdCBrZWVwIGNsb25pbmcgbmV3IFdpbGwgU21pdGhzIGZvciBhcyBsb25nIGFzIGl0IHByb2ZpdHMgZnJvbSB0aGVtLjwvcD4KCgoKPHA+PGVtPkdlbWluaSBNYW48L2VtPiBiZWdhbiBsaWZlIGFzIGEgc3BlYyBzY3JpcHQgYnkgRGFycmVuIExlbWtlLiBPcmlnaW5hbGx5IHNvbGQgdG8gV2FybmVyIEJyb3MuIGluIDE5OTcsIGl0IHNwZW50IDIwIHllYXJzIGluIHR1cm5hcm91bmQgYW5kIGRldmVsb3BtZW50IGhlbGwgYXMgdmFyaW91cyBzdHVkaW9zIGF0dGVtcHRlZCB0byBkZXZlbG9wIG5ldyB2aXN1YWwgZWZmZWN0cyBmb3Igc3RhcnMgbGlrZSBNZWwgR2lic29uLCBOaWNvbGFzIENhZ2UsIFNlYW4gQ29ubmVyeSwgYW5kIENsaW50IEVhc3R3b29kIHRvIHBsYXkgZHVhbCBsZWFkIHJvbGVzLiBJbiB0aGUgZW5kLCAxOTkwcyBzdXBlcnN0YXIgU21pdGggd2FzIG9sZCBlbm91Z2ggdG8gcGxheSBhIG1hdHVyZSBhc3Nhc3NpbiBieSB0aGUgdGltZSB0aGUgdmlzdWFsIGVmZmVjdHMgY2F1Z2h0IHVwIHdpdGggdGhlIGNvbmNlcHQgYmVoaW5kIHRoZSBmaWxtLjwvcD4KCgoKPHA+T24gdGhpcyBvbmUsIGl0IHdhcyBXZXRhIERpZ2l0YWwsIG5vdCBMb2xhLCB0aGF0IGRpZCB0aGUgZGUtIGFnZWluZyB3b3JrLCBkZXZlbG9waW5nIGEgYmVsdC1hbmQtYnJhY2VzIGFwcHJvYWNoIG9mIGRpZ2l0YWxseSByZXBsaWNhdGluZyBTbWl0aOKAmXMgYXBwZWFyYW5jZSBhbmQgbW92ZW1lbnRzIGFuZCB0aGVuIGludGVycG9sYXRpbmcgc2NyZWVuIHJlZmVyZW5jZXMgZnJvbSBoaXMgb2xkZXIgbW92aWVzIGludG8gYSBDRyBjaGFyYWN0ZXIuIFRoZSBjaGFyYWN0ZXIgb2Yg4oCYSnVuaW9y4oCZIGlzIGVudGlyZWx5IGRpZ2l0YWwsIHJhdGhlciB0aGFuIGEgZmFjZS1yZXBsYWNlbWVudCBqb2IuIFlldCwgZGVzcGl0ZSBpdHMgbWFueSByZXdyaXRlcyBhbmQgdGhlIG1hc3Mgb2YgVkZYIGlubm92YXRpb25zIG92ZXIgaXRzIHRpbWUgaW4gZGV2ZWxvcG1lbnQsIHRoZSBmaWxtIG5ldmVyIHF1aXRlIHNoYWtlcyBvZmYgaXRzIOKAmTkwcyBhY3Rpb24gbW92aWUgb3JpZ2lucyDigJMgaXTigJlzIGEgPGVtPkZhY2UvT2ZmPC9lbT4tYS1saWtlIEplcnJ5IEJydWNraGVpbWVyIHByb2R1Y3Rpb24gdGhhdCBtZW50aW9ucyB0aGUgY2xvbmluZyBvZiBEb2xseSB0aGUgc2hlZXAgc29tZSAyMiB5ZWFycyBhZnRlciB0aGF0IHdhcyBhIGNvbnRlbXBvcmFyeSByZWZlcmVuY2UuPC9wPgoKCgo8cD5JbmRlZWQsIG5vYm9keSB3aG/igJlzIHNlZW4gKGFuZC9vciBlbmpveWVkKSBMZWXigJlzIHRha2Ugb24gPGVtPkh1bGs8L2VtPiB3aWxsIGJlIHN1cnByaXNlZCBhdCB3aGF0IGl04oCZcyBhY2N1bXVsYXRlZCBvbiBoaXMgd2F0Y2gg4oCTIGl0cyBkb3VibGUgZXhwb3N1cmUgb2YgU21pdGjigJlzIHVuc2V0dGxlZCBleC1NYXJpbmUgSGVucnkgQnJvZ2FuIG1vdmVzIGluIGN5Y2xlcyBvZiBtYWxlIHRyYXVtYSBhbmQgdmlvbGVuY2UuIFdoYXRldmVyIHlvdSB0aGluayBvZiB0aGUgZmlsbSwgaXQgdXNlcyBkZS1hZ2VpbmcgbGlrZSBub3RoaW5nIGVsc2UgaGFzIG1hbmFnZWQgdG8gc28gZmFyLCBkaXJlY3RseSByZWxhdGluZyBpdHMgYXJ0aWZpY2UgdG8gaXRzIGludHJpZ3VlLiBJbmV2aXRhYmx5LCB0aGVyZSBhcmUgYSBjb3VwbGUgb2YgdW5pbnRlbmRlZCB1bmNhbm55IHZhbGxleSBtb21lbnRzIHdpdGggdGhlIGNsb25lIGluIHRoZSBmaWxtLCBidXQgdG8gY2lyY3VtdmVudCB0aGUgdXN1YWwgYXVkaWVuY2UgZGlzY29ubmVjdCwgaGUgaXNu4oCZdCBhbiBleGFjdCBjb3B5IG9mIFNtaXRoIGluIHRoZSAxOTkwcy48L3A+CgoKCjxwPkxpa2UgdGhlIHNhdmFnZSBYLTI0IGNsb25lIGluIDIwMTfigJlzIDxlbT5Mb2dhbjwvZW0+IChhbm90aGVyIE1hcnZlbC1iYWNrZWQsIE1hbmdvbGQtZGlyZWN0ZWQgb3V0aW5nKSwgMjMteWVhci1vbGQgSnVuaW9yIGlzIGEgbWVhbmVyLCBtb3JlIG11c2N1bGFyIHZlcnNpb24gb2YgPGVtPkZyZXNoIFByaW5jZTwvZW0+LWVyYSBTbWl0aCwgb25jZS0gcmVtb3ZlZCBmcm9tIHRoZSBtb3ZpZSBzdGFyIHdlIHJlbWVtYmVyLiBUaGUgY2hhcmFjdGVyaXNhdGlvbiBzZXJ2ZXMgdG8gYmx1ciB0aGUgZWRnZXMgYmV0d2VlbiB0aGUgYWN0b3IgYW5kIHRoZSBmaWN0aW9uLCBhcyB3ZWxsIGFzIHRoZSBhbmltYXRpb24gYW5kIHRoZSByZWFsIHRoaW5nLjwvcD4KCgoKPHA+VGhpcyBsZWF2ZXMgdGhlIOKAmHJlYWzigJkgU21pdGggdG8gcmVja29uIHdpdGggaGlzIG93biBhZHZhbmNpbmcgeWVhcnMgaW4gdGhlIGNvbnRleHQgb2YgdGhlIHR5cGUgb2YgVkZYLSBkcml2ZW4gc2NpLWZpIGFjdGlvbmVyIGhlIGhlbHBlZCBwb3B1bGFyaXNlIHdoZW4gaGUgbG9va2VkIG5vdCBtdWNoIG9sZGVyIHRoYW4gSnVuaW9yLiBUaGF0IG1pZ2h0IGhhdmUgYmVlbiBhIGxvYWQtYmVhcmluZyBmb3VydGggd2FsbCBmb3Igc29tZSBhdWRpZW5jZXMsIG1pbmQg4oCTIHdpdGggcG9vciByZXZpZXdzIGFuZCBhbiB1bmRlcndoZWxtaW5nIGJveC0gb2ZmaWNlIGhhdWwsPGVtPiBHZW1pbmkgTWFuPC9lbT4gd2FzbuKAmXQgdGhlIHR5cGUgb2YgQmlnIFdpbGxpZS1zdHlsZSBoaXQgaXQgbWlnaHQgaGF2ZSBiZWVuIGluIDE5OTcuPC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLWRpZ2l0YWwtYXNzZXRzIj5EaWdpdGFsIGFzc2V0czwvaDI+CgoKCjxwPkludGVyZXN0aW5nbHksIGFoZWFkIG9mIDxlbT5HZW1pbmkgTWFuPC9lbT7igJlzIHJlbGVhc2UsIHZhcmlvdXMgb3V0bGV0cyByZXBvcnRlZCB0aGF0IFNtaXRoIHJldGFpbmVkIHRoZSByaWdodHMgdG8gdXNlIEp1bmlvciBpbiBmaWxtcywgYnV0IGl0IHdhcyB1bmNsZWFyIHdoZXJlIHRoZSByaWdodHMgdG8gdGhlIGRhdGEgZ2F0aGVyZWQgaW4gY3JlYXRpbmcgdGhlIGRpZ2l0YWwgY2hhcmFjdGVyIGxpZS4gPC9wPgoKCgo8cD5UaGUgaW1wbGljYXRpb24gaXMgdGhhdCB3ZSB3b27igJl0IGJlIHNlZWluZyBKdW5pb3IgaW4gYSBtb3ZpZSBhZ2FpbiB1bmxlc3MgU21pdGggd2FudHMgdXMgdG8sIGJ1dCBhcyBuZXcgcHJvY2Vzc2VzIGFyZSBkZXZlbG9wZWQsIGl0IG11c3QgYmUgYSBjb250cmFjdHVhbCBtaW5lZmllbGQgZm9yIGFjdG9ycywgcGFydGljdWxhcmx5IGZvciB3b21lbi4gTGlrZSBtYW55IEhvbGx5d29vZCBkZXZlbG9wbWVudHMsIGRpZ2l0YWwgZGUtYWdlaW5nIGNvdWxkIG9wZW4gdXAgd2hvbGUgbmV3IGRpc2FwcG9pbnRpbmcgZnJvbnRpZXJzIGluIGFnZWlzbSBhbmQgZ2VuZGVyIGluZXF1YWxpdHkuPC9wPgoKCgo8cD5UaGlzIGlzIHBhcnRseSB0aGUgc3ViamVjdCBvZiBBcmkgRm9sbWFu4oCZcyAyMDEzIGFuaW1hdGVkL2xpdmUtYWN0aW9uLWh5YnJpZCBvZHlzc2V5LCA8ZW0+VGhlIENvbmdyZXNzPC9lbT4uIExvb3NlbHkgYmFzZWQgb24gYSBzY2ktZmkgbm92ZWwgYnkgU3RhbmlzbGF3IExlbSwgdGhlIGZpbG0gc3RhcnMgUm9iaW4gV3JpZ2h0IGFzIGEgZmljdGlvbmFsaXNlZCB2ZXJzaW9uIG9mIGhlcnNlbGYsIHdobyBuZWdvdGlhdGVzIHRoZSBzYWxlIG9mIGhlciBhbmltYXRlZCBzY3JlZW4gcGVyc29uYSB0byBIb2xseXdvb2QgYmVoZW1vdGggTWlyYW1vdW50IFN0dWRpb3MgdG8gcmFpc2UgbW9uZXkgZm9yIGhlciBhaWxpbmcgc29u4oCZcyBoZWFsdGhjYXJlLjwvcD4KCgoKPHA+QnV0IHRvIGdldCBoZXIgYmlnIHBheS1vZmYsIHRoZSBmaWN0aW9uYWwgV3JpZ2h0IG11c3QgYWxzbyBhZ3JlZSBuZXZlciB0byBhY3QgYWdhaW4gYmVjYXVzZSwgYXMgRGFubnkgSHVzdG9u4oCZcyBzdHVkaW8gaGVhZCBzbmVlcnM6IOKAnEkgbmVlZCBCdXR0ZXJjdXAgZnJvbSA8ZW0+UHJpbmNlc3MgQnJpZGU8L2VtPi4gSSBuZWVkIEplbm55IGZyb20gPGVtPkZvcnJlc3QgR3VtcDwvZW0+LiBJIGRvbuKAmXQgbmVlZCB5b3Uu4oCdPC9wPgoKCgo8cD5JdCYjODIxNztzIHBvaW50ZWRseSBhIGZpbG0gYWJvdXQgaG93IGZlbWFsZSBtb3ZpZSBzdGFycyBhcmUgY29tbW9kaWZpZWQsIGJ1dCBpdCBub3cgZmVlbHMgdGltZWxpZXIgdGhhbiBldmVyLiBBZnRlciBXcmlnaHQgYmVncnVkZ2luZ2x5IGFncmVlcywgaGVyIGFuaW1hdGVkIGF2YXRhciBpcyBwcm9tcHRseSByZXB1cnBvc2VkIGluIHRoZSBSZWJlbCBSb2JvdCBSb2JpbiBzdXBlcmhlcm8gZnJhbmNoaXNlLCBwZXJoYXBzIGZvcmVzaGFkb3dpbmcgaG93IHdvbWVuIGhhdmUgc2ltaWxhcmx5IGJlZW4gZGVwbG95ZWQgaW4gZnJhbmNoaXNlIG1vdmllIGZsYXNoYmFja3MsIHJhdGhlciB0aGFuIDxlbT5HZW1pbmkgTWFuPC9lbT4tc3R5bGUgdmVoaWNsZXMuPC9wPgoKCgo8cD5Db21pYy1ib29rIG1vdmllIGV4YW1wbGVzIGluY2x1ZGUgTWljaGVsbGUgUGZlaWZmZXIgaW4gPGVtPkFudC0gTWFuIEFuZCBUaGUgV2FzcDwvZW0+IGFuZCBOaWNvbGUgS2lkbWFuIGluIDxlbT5BcXVhbWFuPC9lbT4uIEhlY2ssIHdl4oCZcmUgb2xkIGVub3VnaCB0byByZW1lbWJlciB3aGVuIGJvdGggd29tZW4gd2VyZSB0aGUgZmVtYWxlIGxlYWRzIGluIDE5OTBzIEJhdG1hbiBtb3ZpZXMsIGJ1dCBoZXJlIHRoZXnigJlyZSBjYXN0IGFzIG11bXMgd2l0aCBob3cgdGhleSBsb29rZWQgdGhlbiB2cyBub3cgYXdhcmRlZCBlcXVhbCBzY3JlZW4gdGltZS48L3A+CgoKCjxwPkJvdGggUGZlaWZmZXIgYW5kIEtpZG1hbiBoYWQsIG9yIGFyZSBleHBlY3RlZCB0byBoYXZlLCBsYXJnZXIgcm9sZXMgaW4gdGhpcyB5ZWFy4oCZcyBzZXF1ZWxzIHRvIHRob3NlIG1vdmllcywgYnV0IG9ubHkgb25jZSB0aGV5IHRvbyBoYXZlIGJlY29tZSBvYmplY3RzIG9mIHRoZSBNYXJ2ZWwgYW5kIERDIHVuaXZlcnNlcy4gQXMgcG9ydGVuZGVkIGJ5IDxlbT5HZW1pbmkgTWFuPC9lbT4sIHRoZXNlIGRpZ2l0aXNlZCBhY3RvcnMgYXJlbuKAmXQgY2hhcmFjdGVycyBidXQgb2JqZWN0cywgb3IgYXNzZXRzLCBidXQgaXQgcmVtYWlucyB0aGF0IG1hbGUgYWN0b3JzIHNlZW0gdG8gaGF2ZSBtb3JlIGNvbnRyb2wgb3ZlciB0aGF0IG9iamVjdGlmaWNhdGlvbi48L3A+CgoKCjxwPldoZXRoZXIgZm9yIHRoZW1zZWx2ZXMgb3IgdGhlaXIgYXVkaWVuY2UsIHRoZXkgdXN1YWxseSBnZXQgdG8gc3F1YXJlIHVwIHRvIHRoZWlyIHlvdW5nZXIgZGlnaXRhbCBjbG9uZXMgYW5kIGNvbWUgb2ZmIGJldHRlciwgYXMgd2l0aCB0aGUgZHVlbGxpbmcgVC04MDBzIGluIDxlbT5UZXJtaW5hdG9yIEdlbmlzeXM8L2VtPi4gQW5kIHlldCB3aGVuIFNlYW4gWW91bmfigJlzIHJlcGxpY2FudCBSYWNoYWVsIHRpcHMgdXAgaW4gPGVtPkJsYWRlIFJ1bm5lciAyMDQ5PC9lbT4sIGl04oCZcyBmb3IgYSBjYW1lbyBpbiB3aGljaCBzaGUgY2FuIGJlIHN1bW1hcmlseSBkZW1vbGlzaGVkIGJ5IEphcmVkIExldG8uPC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLW9ic29sZXRlLWFjdG9ycyI+T2Jzb2xldGUgYWN0b3JzPzwvaDI+CgoKCjxwPkVlcmlseSB0aG91Z2gsIHRoZSBwb3J0cmF5YWxzIG9mIFJvYmluIGluIDxlbT5UaGUgQ29uZ3Jlc3M8L2VtPiBhbmQgUmFjaGFlbCBpbiA8ZW0+QmxhZGUgUnVubmVyIDIwNDk8L2VtPiBoYXZlIGVjaG9lcyBpbiBEaXNuZXnigJlzIHVzZSBvZiBkZS1hZ2VpbmcuIEZvciBhIHN0dWRpbyB0aGF0IHRyYWRlcyBpbiBub3N0YWxnaWEgYW5kIGxlZ2FjeSBwcm9wZXJ0aWVzIG1vcmUgdGhhbiBhbnkgb3RoZXIgYXJvdW5kLCBpdCBzZWVtcyBhcyB0aG91Z2ggaXTigJlzIHB1dHRpbmcgY2hhcmFjdGVycyBpbiB0aGUgdG95LSBib3ggZm9yIGxhdGVyLCBldmVuIGlmIHRoZSBhY3RvcnMgZG9u4oCZdCB3YW50IHRvIGNvbWUgYXJvdW5kIHRvIHBsYXkuPC9wPgoKCgo8cD5Gb3IgTWFydmVsLCB0aGUgZ29hbCBpcyB0byBjcmVhdGUgYSB5b3VuZyBOaWNrIEZ1cnkgcmF0aGVyIHRoYW4gYSB5b3VuZyBTYW11ZWwgTCBKYWNrc29uLCBvciBhIHRlZW5hZ2UgVG9ueSBTdGFyayBpbnN0ZWFkIG9mIGEgTGVzcyBUaGFuIFplcm8teWVhci1vbGQgRG93bmV5IEpyLiBBbmQgd2hpbGUgbW9zdCBleGFtcGxlcyB1c2UgYSBwaHlzaWNhbCBwZXJmb3JtYW5jZSBhcyBhIHJlZmVyZW5jZSwgaXTigJlzIERpc25leSB0aGF0IGlzIGxlYWRpbmcgdGhlIHdheSBvbiBmaXJtaW5nIHVwIGNoYXJhY3RlcnMgYXMgbGlicmFyeSBhc3NldHMsIHdpdGggdGhlIG9yaWdpbmFsIGFjdG9yc+KAmSBjb25zZW50LjwvcD4KCgoKPHA+Qm90aCBvZiBGb3Jk4oCZcyA8ZW0+U3RhciBXYXJzPC9lbT4gY28tIGxlYWRzIGhhdmUgYWxyZWFkeSBiZWVuIHJlY3JlYXRlZCB3aXRob3V0IHRoZWlyIGludm9sdmVtZW50LiBTb21lIG9mIHVzIGZvdW5kIG91dCBDYXJyaWUgRmlzaGVyIHBhc3NlZCBhd2F5IGluIERlY2VtYmVyIDIwMTYgcmlnaHQgYWZ0ZXIgd2F0Y2hpbmcgPGVtPlJvZ3VlIE9uZTwvZW0+IGF0IHRoZSBjaW5lbWEgYW5kIGZlYXJlZCB0aGF0IHRoZSB1bmNhbm55LXZhbGxleSDigJhTcGVjaWFsIEVkaXRpb27igJkgb2YgUHJpbmNlc3MgTGVpYSBmcm9tIHRoZSBlbmQgb2YgdGhhdCBmaWxtIG1pZ2h0IGJlIHVzZWQgdG8gY29tcGxldGUgdGhlIHNlcXVlbCB0cmlsb2d5LjwvcD4KCgoKPHA+RGVzcGl0ZSBEaXNuZXnigJlzIGluaXRpYWwgYXNzdXJhbmNlcyB0aGF0IEZpc2hlciB3b3VsZCBhcHBlYXIgb25seSBpbiB1bnVzZWQgZm9vdGFnZSBmcm9tIHByZXZpb3VzIGZpbG1zLCAyMDE54oCZcyA8ZW0+VGhlIFJpc2UgT2YgU2t5d2Fsa2VyIDwvZW0+ZGlkIHVsdGltYXRlbHkgdXNlIENHIGZhY2UtcmVwbGFjZW1lbnQgZm9yIGEgSmVkaSB0cmFpbmluZyBmbGFzaGJhY2sgc2NlbmUgd2l0aCBMZWlhLCBmZWF0dXJpbmcgRmlzaGVy4oCZcyBkYXVnaHRlciBCaWxsaWUgTG91cmQgYXMgaGVyIGJvZHkgZG91YmxlLjwvcD4KCgoKPHA+TWVhbndoaWxlLCBNYXJrIEhhbWlsbCBzZWVtcyB0byBoYXZlIGJlZW4gZGlnaXRhbGx5IGRpdm9yY2VkIGZyb20gTHVrZSBTa3l3YWxrZXLigJlzIGFwcGVhcmFuY2VzIGluIHRoZSBTdGFyIFdhcnMgc3RyZWFtaW5nIHNob3dzIGdvaW5nIGZvcndhcmQuIEhlIHdhcyBkZS1hZ2VkIGZvciBhIG11Y2gtY2VsZWJyYXRlZCBjYW1lbyBpbiA8ZW0+VGhlIE1hbmRhbG9yaWFuPC9lbT4sIGJ1dCBMdWtlIHdhcyBkaWdpdGFsbHkgcmVjcmVhdGVkLCB2b2ljZSBhbmQgYWxsLCBmb3IgPGVtPlRoZSBCb29rIE9mIEJvYmEgRmV0dDwvZW0+LjwvcD4KCgoKPHA+SW4gMjAyMiwgd2UgYWxzbyBsZWFybmVkIHRoYXQgSmFtZXMgRWFybCBKb25lcyBoYXMgcmV0aXJlZCBmcm9tIHZvaWNpbmcgRGFydGggVmFkZXIuIEJ1dCBoZeKAmXMgc2ltaWxhcmx5IGF1dGhvcmlzZWQgTHVjYXNmaWxtIHRvIHByb2Nlc3MgaGlzIGFyY2hpdmUgcmVjb3JkaW5ncyB0aHJvdWdoIEFJIHNvZnR3YXJlIHRvIGNyZWF0ZSBuZXcgY29udGVudCB3aXRob3V0IGhpbS48L3A+CgoKCjxwPldoZW4gRm9yZCBzYXlzIHdoZW4gaGXigJlzIGdvbmUsIHNvIGlzIEluZGlhbmEgSm9uZXMsIGJ1dCB5b3UgY291bGQgYmUgZm9yZ2l2ZW4gZm9yIHdvbmRlcmluZyBpZiB0aGF04oCZcyBmaW5hbC4gRGlzbmV5IGNlcnRhaW5seSBzZWVtcyB1cCBmb3IgcmVjcmVhdGluZyBjaGFyYWN0ZXJzIGRpZ2l0YWxseSB3aGVuIGl0IHN1aXRzIGl0cyBmYW4tc2VydmljZSBkZWxpdmVyeSBzeXN0ZW0uIENydWNpYWxseSwgd2XigJlyZSB1bmxpa2VseSB0byBzZWUgZGlnaXRpc2VkIFNtaXRocyBvciBGb3JkcyBydW5uaW5nIGFib3V0IHdpdGhvdXQgdGhlIHN0YXJz4oCZIHNheS1zbywgYnV0IGluIGEgbWFya2V0cGxhY2Ugd2hlcmUgbW92aWUgc3RhcnMgYXJlIHJhcmVseSBhIHN1cmUgdGhpbmcgYnV0IGZyYW5jaGlzZXMga2VlcCBvbiBjb21pbmcsIHdobyBrbm93cyB3aGVyZSBhbm90aGVyIGRlY2FkZSBvZiBkaWdpdGFsIGRlLWFnZWluZyBtaWdodCB0YWtlIHRoaW5ncz88L3A+CgoKCjxwPkJleW9uZCBJbmRpYW5hIEpvbmVzLCBmb3J0aGNvbWluZyBmcmFuY2hpc2UgZmlsbXMgdGhhdCBmZWF0dXJlIGRlLWFnZWQgY2hhcmFjdGVycyByYW5nZSBmcm9tIDxlbT5UaGUgRmxhc2g8L2VtPiB0byA8ZW0+RmFzdCBYPC9lbT4uIEFsc28gb24gdGhlIGhvcml6b24sIGRpcmVjdG9yIFJvYmVydCBaZW1lY2tpcyBjb250aW51ZXMgYSB0cmVuZCBvZiB1c2luZyBWRlggaW4gaGlzIHN0b3J5dGVsbGluZyB3aXRoIDIwMjTigJlzIDxlbT5IZXJlPC9lbT4sIGFuIGFkYXB0YXRpb24gb2YgUmljaGFyZCBNY0d1aXJl4oCZcyBzY2ktZmkgZ3JhcGhpYyBub3ZlbC48L3A+CgoKCjxwPlNldCBvdmVyIG1hbnkgeWVhcnMsIHRoZSBmaWxtIHdpbGwgcmV1bml0ZSBaZW1lY2tpcyB3aXRoIEZvcnJlc3QgR3VtcCBzdGFycyBUb20gSGFua3MgYW5k4oCmIHlvdSBndWVzc2VkIGl04oCmIFJvYmluIFdyaWdodC4gQm90aCBzdGFycyB3aWxsIGJlIGRpZ2l0YWxseSBkZS1hZ2VkIHRvIHNob3cgdGhlIHBhc3NhZ2Ugb2YgdGltZSBmb3IgdGhlaXIgY2hhcmFjdGVycy4gV2hhdGV2ZXIgaGFwcGVucyB3aXRoIDxlbT5IZXJlPC9lbT4sIHdl4oCZcmUgbG9va2luZyBmb3J3YXJkIHRvIHNlZWluZyBpZiA8ZW0+VGhlIENvbmdyZXNzPC9lbT4gY29tZXMgdXAgb24gdGhlIHByZXNzIHRvdXIuPC9wPgo8ZGl2IGNsYXNzPSJhZGR0b2FueV9zaGFyZV9zYXZlX2NvbnRhaW5lciBhZGR0b2FueV9jb250ZW50IGFkZHRvYW55X2NvbnRlbnRfYm90dG9tIj48ZGl2IGNsYXNzPSJhZGR0b2FueV9oZWFkZXIiPlNoYXJlIHRoaXMgQXJ0aWNsZTo8L2Rpdj48ZGl2IGNsYXNzPSJhMmFfa2l0IGEyYV9raXRfc2l6ZV8zMiBhZGR0b2FueV9saXN0IiBkYXRhLWEyYS11cmw9Imh0dHBzOi8vZmlsbXN0b3JpZXMuY28udWsvZmVhdHVyZXMvd2hlcmUtZG9lcy1ob2xseXdvb2QtZGUtYWdlaW5nLWdvLWZyb20taGVyZS8iIGRhdGEtYTJhLXRpdGxlPSJXaGVyZSBkb2VzIEhvbGx5d29vZCBkZS1hZ2VpbmcgZ28gZnJvbSBoZXJlPyI+PGEgY2xhc3M9ImEyYV9idXR0b25fZmFjZWJvb2siIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vZmFjZWJvb2s/bGlua3VybD1odHRwcyUzQSUyRiUyRmZpbG1zdG9yaWVzLmNvLnVrJTJGZmVhdHVyZXMlMkZ3aGVyZS1kb2VzLWhvbGx5d29vZC1kZS1hZ2VpbmctZ28tZnJvbS1oZXJlJTJGJmFtcDtsaW5rbmFtZT1XaGVyZSUyMGRvZXMlMjBIb2xseXdvb2QlMjBkZS1hZ2VpbmclMjBnbyUyMGZyb20lMjBoZXJlJTNGIiB0aXRsZT0iRmFjZWJvb2siIHJlbD0ibm9mb2xsb3cgbm9vcGVuZXIiIHRhcmdldD0iX2JsYW5rIj48L2E+PGEgY2xhc3M9ImEyYV9idXR0b25fdHdpdHRlciIgaHJlZj0iaHR0cHM6Ly93d3cuYWRkdG9hbnkuY29tL2FkZF90by90d2l0dGVyP2xpbmt1cmw9aHR0cHMlM0ElMkYlMkZmaWxtc3Rvcmllcy5jby51ayUyRmZlYXR1cmVzJTJGd2hlcmUtZG9lcy1ob2xseXdvb2QtZGUtYWdlaW5nLWdvLWZyb20taGVyZSUyRiZhbXA7bGlua25hbWU9V2hlcmUlMjBkb2VzJTIwSG9sbHl3b29kJTIwZGUtYWdlaW5nJTIwZ28lMjBmcm9tJTIwaGVyZSUzRiIgdGl0bGU9IlR3aXR0ZXIiIHJlbD0ibm9mb2xsb3cgbm9vcGVuZXIiIHRhcmdldD0iX2JsYW5rIj48L2E+PGEgY2xhc3M9ImEyYV9idXR0b25fZW1haWwiIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vZW1haWw/bGlua3VybD1odHRwcyUzQSUyRiUyRmZpbG1zdG9yaWVzLmNvLnVrJTJGZmVhdHVyZXMlMkZ3aGVyZS1kb2VzLWhvbGx5d29vZC1kZS1hZ2VpbmctZ28tZnJvbS1oZXJlJTJGJmFtcDtsaW5rbmFtZT1XaGVyZSUyMGRvZXMlMjBIb2xseXdvb2QlMjBkZS1hZ2VpbmclMjBnbyUyMGZyb20lMjBoZXJlJTNGIiB0aXRsZT0iRW1haWwiIHJlbD0ibm9mb2xsb3cgbm9vcGVuZXIiIHRhcmdldD0iX2JsYW5rIj48L2E+PGEgY2xhc3M9ImEyYV9kZCBhZGR0b2FueV9zaGFyZV9zYXZlIGFkZHRvYW55X3NoYXJlIiBocmVmPSJodHRwczovL3d3dy5hZGR0b2FueS5jb20vc2hhcmUiPjwvYT48L2Rpdj48L2Rpdj4=