Ridley Scott chats exclusively to Film Stories about Gladiator II, his career to date, plus the inside scoop on Gladiator III...
This article first appeared in Film Stories issue #52
Ridley Scott had always wanted the rhinoceros. In 1999 he had drawn out, in his typically exquisite detail, an entire sequence for his historical revenge epic, Gladiator, in which Maximus (Russell Crowe) fights an ornery white rhino in front of a baying crowd in Rome's Colosseum.
Scott etched out images of the rhino thundering into the frame, intercut with the leering reactions of the senators and dignitaries in the stands; next to each shot, Scott jotted down little descriptions, one of which read: "A huge white rhino with a bird on his back... it prances in, agile despite its three tons..."
Alas, the scene was ultimately dropped due to budget constraints – a CGI test and Scott’s storyboards, tucked away on Gladiator’s DVD extras being all that remained of what could have been a striking moment in cinema.
Twenty-five years later, Scott finally has his rhino. In one of Gladiator II’s spectacular arena battles, out the beast rumbles, this time with a muscle-bound, armoured combatant riding on its back rather than a bird. It’s one of many obstacles Lucius (Paul Mescal) must overcome on his own revenge mission – this one against Pedro Pascal’s war-weary general Acacius, whose invading army decimated Lucius’s home town in Numidia.
PGRpdiBjbGFzcz0iYWRkdG9hbnlfc2hhcmVfc2F2ZV9jb250YWluZXIgYWRkdG9hbnlfY29udGVudCBhZGR0b2FueV9jb250ZW50X3RvcCI+PGRpdiBjbGFzcz0iYWRkdG9hbnlfaGVhZGVyIj5TaGFyZSB0aGlzIEFydGljbGU6PC9kaXY+PGRpdiBjbGFzcz0iYTJhX2tpdCBhMmFfa2l0X3NpemVfMzIgYWRkdG9hbnlfbGlzdCIgZGF0YS1hMmEtdXJsPSJodHRwczovL2ZpbG1zdG9yaWVzLmNvLnVrL2ZlYXR1cmVzL2dsYWRpYXRvci0yLWludGVydmlldy1yaWRsZXktc2NvdHQtaXNudC1zbG93aW5nLWRvd24vIiBkYXRhLWEyYS10aXRsZT0iUmlkbGV5IFNjb3R04oCZcyBwYXRoIHRvIEdsYWRpYXRvciBJSSI+PGEgY2xhc3M9ImEyYV9idXR0b25fZmFjZWJvb2siIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vZmFjZWJvb2s/bGlua3VybD1odHRwcyUzQSUyRiUyRmZpbG1zdG9yaWVzLmNvLnVrJTJGZmVhdHVyZXMlMkZnbGFkaWF0b3ItMi1pbnRlcnZpZXctcmlkbGV5LXNjb3R0LWlzbnQtc2xvd2luZy1kb3duJTJGJmFtcDtsaW5rbmFtZT1SaWRsZXklMjBTY290dCVFMiU4MCU5OXMlMjBwYXRoJTIwdG8lMjBHbGFkaWF0b3IlMjBJSSIgdGl0bGU9IkZhY2Vib29rIiByZWw9Im5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+PC9hPjxhIGNsYXNzPSJhMmFfYnV0dG9uX3R3aXR0ZXIiIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vdHdpdHRlcj9saW5rdXJsPWh0dHBzJTNBJTJGJTJGZmlsbXN0b3JpZXMuY28udWslMkZmZWF0dXJlcyUyRmdsYWRpYXRvci0yLWludGVydmlldy1yaWRsZXktc2NvdHQtaXNudC1zbG93aW5nLWRvd24lMkYmYW1wO2xpbmtuYW1lPVJpZGxleSUyMFNjb3R0JUUyJTgwJTk5cyUyMHBhdGglMjB0byUyMEdsYWRpYXRvciUyMElJIiB0aXRsZT0iVHdpdHRlciIgcmVsPSJub2ZvbGxvdyBub29wZW5lciIgdGFyZ2V0PSJfYmxhbmsiPjwvYT48YSBjbGFzcz0iYTJhX2J1dHRvbl9lbWFpbCIgaHJlZj0iaHR0cHM6Ly93d3cuYWRkdG9hbnkuY29tL2FkZF90by9lbWFpbD9saW5rdXJsPWh0dHBzJTNBJTJGJTJGZmlsbXN0b3JpZXMuY28udWslMkZmZWF0dXJlcyUyRmdsYWRpYXRvci0yLWludGVydmlldy1yaWRsZXktc2NvdHQtaXNudC1zbG93aW5nLWRvd24lMkYmYW1wO2xpbmtuYW1lPVJpZGxleSUyMFNjb3R0JUUyJTgwJTk5cyUyMHBhdGglMjB0byUyMEdsYWRpYXRvciUyMElJIiB0aXRsZT0iRW1haWwiIHJlbD0ibm9mb2xsb3cgbm9vcGVuZXIiIHRhcmdldD0iX2JsYW5rIj48L2E+PGEgY2xhc3M9ImEyYV9kZCBhZGR0b2FueV9zaGFyZV9zYXZlIGFkZHRvYW55X3NoYXJlIiBocmVmPSJodHRwczovL3d3dy5hZGR0b2FueS5jb20vc2hhcmUiPjwvYT48L2Rpdj48L2Rpdj4KPHA+PHN0cm9uZz5SaWRsZXkgU2NvdHQgY2hhdHMgZXhjbHVzaXZlbHkgdG8gRmlsbSBTdG9yaWVzIGFib3V0IEdsYWRpYXRvciBJSSwgaGlzIGNhcmVlciB0byBkYXRlLCBwbHVzIHRoZSBpbnNpZGUgc2Nvb3Agb24gR2xhZGlhdG9yIElJSSYjODIzMDs8L3N0cm9uZz48L3A+CgoKCjxociBjbGFzcz0id3AtYmxvY2stc2VwYXJhdG9yIGhhcy1hbHBoYS1jaGFubmVsLW9wYWNpdHkiLz4KCgoKPHA+PGVtPlRoaXMgYXJ0aWNsZSBmaXJzdCBhcHBlYXJlZCBpbiBGaWxtIFN0b3JpZXMgaXNzdWUgIzUyPC9lbT48L3A+CgoKCjxwPlJpZGxleSBTY290dCBoYWQgYWx3YXlzIHdhbnRlZCB0aGUgcmhpbm9jZXJvcy4gSW4gMTk5OSBoZSBoYWQgZHJhd24gb3V0LCBpbiBoaXMgdHlwaWNhbGx5IGV4cXVpc2l0ZSBkZXRhaWwsIGFuIGVudGlyZSBzZXF1ZW5jZSBmb3IgaGlzIGhpc3RvcmljYWwgcmV2ZW5nZSBlcGljLCBHbGFkaWF0b3IsIGluIHdoaWNoIE1heGltdXMgKFJ1c3NlbGwgQ3Jvd2UpIGZpZ2h0cyBhbiBvcm5lcnkgd2hpdGUgcmhpbm8gaW4gZnJvbnQgb2YgYSBiYXlpbmcgY3Jvd2QgaW4gUm9tZSYjODIxNztzIENvbG9zc2V1bS48L3A+CgoKCjxwPlNjb3R0IGV0Y2hlZCBvdXQgaW1hZ2VzIG9mIHRoZSByaGlubyB0aHVuZGVyaW5nIGludG8gdGhlIGZyYW1lLCBpbnRlcmN1dCB3aXRoIHRoZSBsZWVyaW5nIHJlYWN0aW9ucyBvZiB0aGUgc2VuYXRvcnMgYW5kIGRpZ25pdGFyaWVzIGluIHRoZSBzdGFuZHM7IG5leHQgdG8gZWFjaCBzaG90LCBTY290dCBqb3R0ZWQgZG93biBsaXR0bGUgZGVzY3JpcHRpb25zLCBvbmUgb2Ygd2hpY2ggcmVhZDogJiM4MjIwO0EgaHVnZSB3aGl0ZSByaGlubyB3aXRoIGEgYmlyZCBvbiBoaXMgYmFjayYjODIzMDsgaXQgcHJhbmNlcyBpbiwgYWdpbGUgZGVzcGl0ZSBpdHMgdGhyZWUgdG9ucyYjODIzMDsmIzgyMjE7PC9wPgoKCgo8cD5BbGFzLCB0aGUgc2NlbmUgd2FzIHVsdGltYXRlbHkgZHJvcHBlZCBkdWUgdG8gYnVkZ2V0IGNvbnN0cmFpbnRzIOKAkyBhIENHSSB0ZXN0IGFuZCBTY290dOKAmXMgc3Rvcnlib2FyZHMsIHR1Y2tlZCBhd2F5IG9uIDxlbT5HbGFkaWF0b3I8L2VtPuKAmXMgRFZEIGV4dHJhcyBiZWluZyBhbGwgdGhhdCByZW1haW5lZCBvZiB3aGF0IGNvdWxkIGhhdmUgYmVlbiBhIHN0cmlraW5nIG1vbWVudCBpbiBjaW5lbWEuPC9wPgoKCgo8cD5Ud2VudHktZml2ZSB5ZWFycyBsYXRlciwgU2NvdHQgZmluYWxseSBoYXMgaGlzIHJoaW5vLiBJbiBvbmUgb2YgPGVtPkdsYWRpYXRvciBJSTwvZW0+4oCZcyBzcGVjdGFjdWxhciBhcmVuYSBiYXR0bGVzLCBvdXQgdGhlIGJlYXN0IHJ1bWJsZXMsIHRoaXMgdGltZSB3aXRoIGEgbXVzY2xlLWJvdW5kLCBhcm1vdXJlZCBjb21iYXRhbnQgcmlkaW5nIG9uIGl0cyBiYWNrIHJhdGhlciB0aGFuIGEgYmlyZC4gSXTigJlzIG9uZSBvZiBtYW55IG9ic3RhY2xlcyBMdWNpdXMgKFBhdWwgTWVzY2FsKSBtdXN0IG92ZXJjb21lIG9uIGhpcyBvd24gcmV2ZW5nZSBtaXNzaW9uIOKAkyB0aGlzIG9uZSBhZ2FpbnN0IFBlZHJvIFBhc2NhbOKAmXMgd2FyLXdlYXJ5IGdlbmVyYWwgQWNhY2l1cywgd2hvc2UgaW52YWRpbmcgYXJteSBkZWNpbWF0ZWQgTHVjaXVz4oCZcyBob21lIHRvd24gaW4gTnVtaWRpYS48L3A+CgoKCjxzcGFuIGlkPSJtb3JlLTkzNzA3Ij48L3NwYW4+CgoKCjxwPjxzdHJvbmc+UmV0dXJuIHRvIHRoZSBhcmVuYTwvc3Ryb25nPjwvcD4KCgoKPHA+R2l2ZW4gdGhlIHByb2R1Y3Rpb24gY2hhbGxlbmdlcyB0aGF0IHRoZSBvcmlnaW5hbCBmYWNlZCBpbiAyMDAwLCBpdCBtaWdodCBzZWVtIHN1cnByaXNpbmcgdGhhdCBTY290dCB3b3VsZCB3YW50IHRvIG1ha2UgYW5vdGhlciA8ZW0+R2xhZGlhdG9yPC9lbT4uIEF0IHRoZSB2b2NhbCBpbnNpc3RlbmNlIG9mIGxlYWRpbmcgbWFuIFJ1c3NlbGwgQ3Jvd2UsIHRoZSBzY3JpcHQgd2FzIGNvbnN0YW50bHkgYmVpbmcgcmV3cml0dGVuIG9uIHNldDsgdGhlIHN1ZGRlbiBkZWF0aCBvZiBjby1zdGFyIE9saXZlciBSZWVkIGR1cmluZyB0aGUgTWFsdGEgc2hvb3QmbmJzcDtmb3JjZWQgU2NvdHQgYW5kIGhpcyBjb2xsYWJvcmF0b3JzIHRvIHJlc29ydCZuYnNwO3RvJm5ic3A7dmlzdWFsJm5ic3A7ZWZmZWN0cyB0byZuYnNwO2ZpbGwgaW4gdGhlIGFjdG9y4oCZcyB1bmZpbG1lZCZuYnNwO3NjZW5lcy48L3A+CgoKCjxwPkJ1ZGdldCBjb25zdHJhaW50cyBzYXcgbm90IGp1c3QgdGhlIHJoaW5vIHNlcXVlbmNlIGN1dCwgYnV0IGFsc28gYW4gZW50aXJlIGNsaW1hY3RpYyBiYXR0bGUgaW52b2x2aW5nIHRob3VzYW5kcyBvZiBleHRyYXMgZHJlc3NlZCBhcyBzb2xkaWVyczsgYSBtb3JlIGxvdy1rZXkgc2hvd2Rvd24gYmV0d2VlbiBNYXhpbXVzIGFuZCB0aGUgb2JqZWN0IG9mIGhpcyB2ZW5nZWFuY2UsIENvbW1vZHVzIChKb2FxdWluIFBob2VuaXgpLCB3YXMgZGV2aXNlZCBpbnN0ZWFkLjwvcD4KCgoKPHA+RGVzcGl0ZSBhbGwgb2YgdGhpcywgPGVtPkdsYWRpYXRvcjwvZW0+IGVtZXJnZWQgYXMgb25lIG9mIHRoZSBtb3N0IHN1Y2Nlc3NmdWwgZmlsbXMgb2YgU2NvdHTigJlzIGNhcmVlci4gSXQgd29uIGZpdmUgQWNhZGVteSBBd2FyZHMsIGFuZCB3aXRoIGEgYm94LW9mZmljZSB0YWtlIG9mIG92ZXIgJDQ1MG0sIG1hZGUgdGhlIHN3b3JkLWFuZC1zYW5kYWwgZ2VucmUgZmFzaGlvbmFibGUgYWdhaW4uIENvbnNlcXVlbnRseSwgYSBzZXF1ZWwgd2FzIGluIHRoZSBwbGFubmluZyBzdGFnZXMgcmlnaHQgZnJvbSB0aGUgZWFybHkgMjAwMHMsIHdpdGggYSB0cnVseSBiaXphcnJlIHNjcmVlbnBsYXkgYnkgTmljayBDYXZlLCBzdWJ0bHkgbmFtZWQgQ2hyaXN0IEtpbGxlciwgYW1vbmcgdGhlIGxlZ2VuZGFyeSBhYm9ydGl2ZSBlZmZvcnRzLiBOb25ldGhlbGVzcywgc29tZXRoaW5nIGFib3V0IHRoZSBwcm9qZWN0IGtlcHQgU2NvdHQgaW50ZXJlc3RlZCwgYW5kIGFsbW9zdCBhIHF1YXJ0ZXIgb2YgYSBjZW50dXJ5IG9uLCBhbG9uZyBjb21lcyA8ZW0+R2xhZGlhdG9yIElJIDwvZW0+4oCTIGEgc2VxdWVsIHRoYXQgbWFuYWdlcyB0byBmaW5kIGludmVudGl2ZSB3YXlzIG9mIGNvbXBsaWNhdGluZyB0aGUgcmV2ZW5nZSBwbG90IG9mIGl0cyBwcmVkZWNlc3Nvci48L3A+CgoKCjxwIGNsYXNzPSJoYXMtdGV4dC1hbGlnbi1jZW50ZXIiPjxzdHJvbmc+UmVhZCBtb3JlOiA8YSBocmVmPSJodHRwczovL2ZpbG1zdG9yaWVzLmNvLnVrL3Jldmlld3MvZ2xhZGlhdG9yLWlpLXJldmlldy1yaWRsZXktc2NvdHQtc2VydmVzLXVwLWFub3RoZXItc3VtcHR1b3VzLXRhbGUtb2YtYmxvb2QtYW5kLWNpcmN1c2VzLyI+R2xhZGlhdG9yIElJIHJldmlldyB8IFJpZGxleSBTY290dCBzZXJ2ZXMgdXAgYW5vdGhlciBzdW1wdHVvdXMgdGFsZSBvZiBibG9vZCBhbmQgY2lyY3VzZXM8L2E+PC9zdHJvbmc+PC9wPgoKCgo8cD7igJxJdCBzZWVtcyB0byBoYXZlIGdyYWJiZWQgdGhlIGltYWdpbmF0aW9uLOKAnSBTY290dCBzYXlzIG9mIHRoZSBvcmlnaW5hbCA8ZW0+R2xhZGlhdG9yPC9lbT4uIOKAnFRoZXJl4oCZcyBtb3JlIHRvIGl0IHRoYW4gYWN0aW9uIGFuZCB2aW9sZW5jZS7igJ08L3A+CgoKCjxwPlRoZSBmaXJzdCBmaWxt4oCZcyB0aGVtZXMgb2YgbW9ydGFsaXR5IGFuZCBpbW1vcnRhbGl0eSDigJMgaWxsdXN0cmF0ZWQgYnkgbHlyaWNhbCBzaG90cyBvZiBNYXhpbXVz4oCZcyBoYW5kIGdsaWRpbmcgdGhyb3VnaCB3aGVhdCBvciBkb29yd2F5cyBvcGVuaW5nIGludG8gdGhlIGFmdGVybGlmZSDigJMgaGVscGVkIGVuZGVhciB0aGUgZmlsbSB0byBhdWRpZW5jZXMsIFNjb3R0Jm5ic3A7c3VnZ2VzdHMuPC9wPgoKCgo8cD7igJxUaGUgaW50ZXJlc3RpbmcgdGhpbmcgdGhhdCB3YXNu4oCZdCBpbiB0aGUgc2NyaXB0IHdhc+KApiBJIHdhbnRlZCB0byBzZWUgW01heGltdXNdIHJlYWNoIGZvciB0aGUgZG9vciBhbmQgam9pbiBoaXMgd2lmZSBhbmQgY2hpbGQuIFRoYXQgd2FzIGFuIGlkZWEgdGhhdCB3YXMgdGhvdWdodCB0byBiZSBhIGJpdCB0b28gbXVjaCwgYnV0IGlyb25pY2FsbHkgaXQgcHJvdmVkIHRvIGJlLCByZWFsbHksIHRoZSBibG9vZGxpbmUgb2YgdGhlIGZpbG0u4oCdPC9wPgoKCgo8cD48c3Ryb25nPkNyZWF0aXZlIGVuZXJneTwvc3Ryb25nPjwvcD4KCgoKPHA+SW4gY29udmVyc2F0aW9uLCBTY290dCBoYXMgYSByZXN0bGVzcywgYWxtb3N0IG1pc2NoaWV2b3VzIGVuZXJneSwgaGlzIGV5ZXMgZ2xpbnRpbmcgYXMgaGUgdmVlcnMgdW5leHBlY3RlZGx5IGZyb20gdG9waWMgdG8gdG9waWMuIEl04oCZcyBhbiBlbmVyZ3kgdGhhdCBoYXMgbGVkIGhpbSB0byBtYWtlLCBvbiBhdmVyYWdlLCByb3VnaGx5IGEgZmlsbSBhIHllYXIgc2luY2UgMjAwMOKAmXMgPGVtPkdsYWRpYXRvcjwvZW0+LCB0aGVpciBzdWJqZWN0cyByYW5naW5nIGZyb20gdGhlIGludGltYXRlIChjb21lZHkgTWF0Y2hzdGljayBNZW4sIHJvbWFudGljIGRyYW1hIDxlbT5BIEdvb2QgWWVhcjwvZW0+KSB0byB0aGUgcmVzb2x1dGVseSBlcGljLCBpbmNsdWRpbmcgMjAyMeKAmXMgPGVtPlRoZSBMYXN0IER1ZWwgPC9lbT5hbmQgdGhlIHJlY2VudCBiaW9waWMsIDxlbT5OYXBvbGVvbjwvZW0+LCByZWxlYXNlZCBpbiAyMDIzLjwvcD4KCgoKPHA+RXZlbiBhdCA4NiDigJMgYWdlIGlzIGEgc3ViamVjdCB0aGF0IGluZXZpdGFibHkgY29tZXMgdXAgaW4gZmVhdHVyZXMgc3VjaCBhcyB0aGlzIOKAkyBTY290dCBjYW4gbWFpbnRhaW4gdGhhdCBwYWNlIGluIG5vIHNtYWxsIHBhcnQgdGhhbmtzIHRvIGhpcyBza2lsbHMgYXMgYW4gYXJ0aXN0LiBXaXRoIGV2ZXJ5dGhpbmcgc3Rvcnlib2FyZGVkIG91dCBpbiBhZHZhbmNlIOKAkyBpbiB3aGF0IGhhdmUgYmVlbiB3aWRlbHkgZHViYmVkIGhpcyDigJhSaWRsZXlncmFtc+KAmSDigJMgU2NvdHQgZXNzZW50aWFsbHkgaGFzIHRoZSBmaWxtIHdvcmtlZCBvdXQgYmVmb3JlIGFueW9uZSBldmVuIGJ1aWxkcyBhIHNldC48L3A+CgoKCjxwPuKAnE9uY2UgSeKAmXZlIGRvbmUgdGhlIGJvYXJkLOKAnSB0aGUgZGlyZWN0b3IgYXNzZXJ0cywg4oCcSSBjYW4gbGl0ZXJhbGx5IHNob290IHRoZSBmaWxtIG9uIE1vbmRheSBiZWNhdXNlIEnigJl2ZSBhbHJlYWR5IGZpbG1lZCBpdCBpbiBteSBoZWFkLuKAnTwvcD4KCgoKPHA+RHJhd2luZyBoYXMgdGhlcmVmb3JlIGZvcm1lZCB0aGUgYmFja2JvbmUgb2YgUmlkbGV5IFNjb3R04oCZcyBmaWxtbWFraW5nIGZyb20gdGhlIGJlZ2lubmluZyBvZiBoaXMgY2FyZWVyLiBXaGVuIFNjb3R0IHdhcyBoaXJlZCBieSAyMHRoIENlbnR1cnkgRm94IHRvIG1ha2UgMTk3OeKAmXMgQWxpZW4sIGhlIHdhcyBvcmlnaW5hbGx5IGdpdmVuIGEgcGFsdHJ5IGJ1ZGdldCBvZiAkNC4ybTsgU2NvdHQgdGhlbiB3ZW50IGF3YXkgYW5kIHNwZW50IGNvdW50bGVzcyBob3VycyBkcmF3aW5nIG91dCB0aGUgZW50aXJlIGZpbG0gaW4gZGV0YWlsLCBzY2VuZSBieSBzY2VuZSwgc2hvdCBieSBzaG90LiBJbiBhIGdyYXBoaWMgc3R5bGUgaW5zcGlyZWQgYnkgRnJlbmNoIGFydGlzdCBNb2ViaXVzIGFuZCBIZWF2eSBNZXRhbCBtYWdhemluZSwgU2NvdHQgaW1hZ2luZWQgYW4gZW50aXJlIHNjaS1maSB3b3JsZCDigJMgYSBjYXZlcm5vdXMgc2hpcCwgbGlrZSBhbiBvaWwgcmVmaW5lcnkgaW4gc3BhY2U7IGl0cyBzZXZlbiBjcmV3LCB3aG8gdG91Y2ggZG93biBvbiBhIHdpbmQtYmxhc3RlZCBwbGFuZXQgYW5kIGRpc2NvdmVyIGFuIGFuY2llbnQgY3JhZnQgY3JhbW1lZCBmdWxsIG9mIGxlYXRoZXJ5IGVnZ3MuIFRoZXNlIHdlcmVu4oCZdCBqdXN0IHNrZXRjaGVzLCBidXQgZnVsbHkgcmVhbGlzZWQsIHNoYWRlZCByZW5kZXJpbmdzIG9mIHdoYXQgdGhlIG1vdmllIGNvdWxkIGxvb2sgbGlrZSwgZnJvbSB0aGUgaGVmdCBhbmQgYnVsayBvZiBhbiBhc3Ryb25hdXTigJlzIHNwYWNlIHN1aXQgdG8gdGhlIHBhcnRpY3VsYXIgd2F5IGEgc2hpcOKAmXMgY29ycmlkb3IgY291bGQgYmUgZnJhbWVkIGFuZCBsaXQuPC9wPgoKCgo8cD5SaWRsZXkgU2NvdHQgd2VudCBpbnRvIGEgbWVldGluZyB3aXRoIEZveOKAmXMgZXhlY3V0aXZlcywgc2hvd2VkIHRoZW0gaGlzIHN0b3J5Ym9hcmRzLCBhbmQgd2Fsa2VkIGJhY2sgb3V0IHdpdGggYSBidWRnZXQgb2YgJDguNW0uIFRoZSBkaXJlY3RvcuKAmXMgYXJ0aXN0cnkgaGFkIGltcHJlc3NlZCB0aGUgbW9uZXltZW4gdG8gc3VjaCBhbiBleHRlbnQgdGhhdCB0aGV5IHdlcmUgd2lsbGluZyB0byBkb3VibGUgdGhlaXIgaW52ZXN0bWVudCBpbiBoaXMgc2NpLWZpIGhvcnJvciB2aXNpb24g4oCTIGEgbW9tZW50IGluIHRoZSBwcm9kdWN0aW9uIHRoYXQgYXJndWFibHkgY2hhbmdlZCB0aGUgY291cnNlIG9mIG1haW5zdHJlYW0gY2luZW1hIGhpc3RvcnkgKGFsbCB0b2xkLCA8ZW0+QWxpZW48L2VtPiB3b3VsZCBjb3N0IEZveCAkMTFtIOKAkyBhIHN1bSBpdCBlYXJuZWQgYmFjayBtb3JlIHRoYW4gdGVuIHRpbWVzIG92ZXIgb24gaXRzIGluaXRpYWwgY2luZW1hIHJ1biBhbG9uZSkuIEl0IHdhcyB0aGFua3MgdG8gU2NvdHTigJlzIGV5ZSwgYW5kIHRoZSBmaW5hbmNpbmcgcmVxdWlyZWQgdG8gYWNoaWV2ZSBpdCwgdGhhdCB3aGF0IGNvdWxkIGhhdmUgYmVlbiBhIEItbW92aWUgYmVjYW1lIHNvbWV0aGluZyBmYXIgbW9yZSBzdHJpa2luZyDigJMgZXZlbiBhcnRpc3RpYy48L3A+CgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWVtYmVkIGlzLXR5cGUtdmlkZW8gaXMtcHJvdmlkZXIteW91dHViZSB3cC1ibG9jay1lbWJlZC15b3V0dWJlIHdwLWVtYmVkLWFzcGVjdC0xNi05IHdwLWhhcy1hc3BlY3QtcmF0aW8iPjxkaXYgY2xhc3M9IndwLWJsb2NrLWVtYmVkX193cmFwcGVyIj4KPGlmcmFtZSBsb2FkaW5nPSJsYXp5IiB0aXRsZT0iR2xhZGlhdG9yIElJIHwgT2ZmaWNpYWwgVHJhaWxlciB8IFBhcmFtb3VudCBQaWN0dXJlcyBVSyIgd2lkdGg9IjE3NzgiIGhlaWdodD0iMTAwMCIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC83UzhFbG5YVHptND9mZWF0dXJlPW9lbWJlZCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlOyB3ZWItc2hhcmUiIHJlZmVycmVycG9saWN5PSJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+CjwvZGl2PjwvZmlndXJlPgoKCgo8cD5TY290dCBoYXMgY29udGludWVkIHRvIHN0b3J5Ym9hcmQgaGlzIGZpbG1zIGV2ZXIgc2luY2UuIEFuZCB3aGV0aGVyIHRoZXnigJlyZSBkcmF3biBhdCBsZWlzdXJlIGxvbmcgYmVmb3JlIHByb2R1Y3Rpb24sIG9yIHNrZXRjaGVkIG91dCBodXJyaWVkbHkgaW4gdGhlIGJhY2sgb2YgYSBjYXIgb24gdGhlIHdheSB0byBzZXQsIHRoZXnigJlyZSBrZXkgdG8gdGhlIGRpcmVjdG9y4oCZcyBmaWxtbWFraW5nLiBEdXJpbmcgdGhlIHByb2R1Y3Rpb24gb2YgPGVtPkdsYWRpYXRvciBJSTwvZW0+LCBmb3IgZXhhbXBsZSwgU2NvdHQgdXNlZCBoaXMgYm9hcmRzIHRvIGhlbHAgaGlzIGFjdG9ycyBmaW5kIHRoZWlyIGNoYXJhY3RlcnMuIEZyZWQgSGVjaGluZ2VyLCBhIHlvdW5nIE5ldyBZb3JrIGFjdG9yIHdobyBwbGF5cyBSb21l4oCZcyBqb2ludCBFbXBlcm9yIENhcmFjYWxsYSBpbiB0aGUgZmluaXNoZWQgZmlsbSAoSm9zZXBoIFF1aW5uIHBsYXlzIGhpcyBicm90aGVyIGFuZCBmZWxsb3cgcnVsZXIsIEdldGEpLCByZWNhbGxzIGxvb2tpbmcgYXQgU2NvdHTigJlzIGJvYXJkcywgYW5kIHRoZSBwYWlyIGNvbWluZyB1cCB3aXRoIGEgbG9vayBmb3IgdGhlIGNoYXJhY3RlciBiYXNlZCBvbiBwdW5rIHJvY2tlciBTaWQgVmljaW91cy48L3A+CgoKCjxwPuKAnFdoZW4gaGUgdGFsa3MgYWJvdXQgdGhpbmdzLCB5b3UgY2FuIHJlYWxseSB0ZWxsIHRoYXQgd2hhdCBzdGFydHMgaGltIG91dCBpbiBldmVyeSBtb3ZpZSBpcyBoaXMgc3Ryb25nIHZpc3VhbCBzZW5zZSzigJ0gSGVjaGluZ2VyIHRlbGxzIHVzLiDigJxTbyBoaXMgc3Rvcnlib2FyZHMgYXJlIGdvcmdlb3VzIGFuZCBzbyBkZXRhaWxlZC4gT25lIG9mIHRoZSBmaXJzdCBjb252ZXJzYXRpb25zIHdlIGhhZCB3YXMgd2hlbiBoZSBzaG93ZWQgbWUgdGhlIHBvcnRyYWl0cyBoZeKAmWQgZHJhd24gb2YgR2V0YSBhbmQgQ2FyYWNhbGxhLiBUaGF04oCZcyB3aGF0IHNldCB1cyBvZmYgb24gdGFsa2luZyBhYm91dCBwdW5rIGZpZ3VyZXMgYW5kIGhpc3RvcnkgYW5kIGFsbCB0aGVzZSBkaWZmZXJlbnQgaW5zcGlyYXRpb25zIGZvciB0aGVzZSBndXlzLiBIZSBoYXMgYSByZWFsIGFydGlzdGljLCB2aXN1YWwgaW1wdWxzZS7igJ08L3A+CgoKCjxwPlBhdWwgTWVzY2FsLCB0aGUgMjgteWVhci1vbGQgYWN0b3Igd2hvIGxlYWRzIDxlbT5HbGFkaWF0b3IgSUk8L2VtPiwgd2FzIHNpbWlsYXJseSBzdHJ1Y2sgYnkgU2NvdHTigJlzIGFydHdvcmsuPC9wPgoKCgo8cD7igJxXaGVuIHlvdeKAmXJlIGluIGEgcm9vbSBvbiB5b3VyIG93biB3aXRoIFJpZGxleSBhbmQgaGXigJlzIHNob3dpbmcgeW91IHRoZXNlIGluZmFtb3VzIHN0b3J5Ym9hcmRzLCB5b3UgZmVlbCBsaWtlIHlvdeKAmXJlIGluIGEgbXVzZXVtIG9mIHNvcnRzLOKAnSB0aGUgYWN0b3IgdGVsbHMgdXMgb24gYSB2aWRlbyBjYWxsIGZyb20gYW4gZXhwZW5zaXZlLWxvb2tpbmcgaG90ZWwgcm9vbS4g4oCcWW914oCZcmUgc2VlaW5nIHRoaXMgZ3JlYXQgZGlyZWN0b3IsIGFuZCB3YXRjaGluZyBob3cgaGlzIHByb2Nlc3MgaXMgdW5mb2xkaW5nLCBhbmQgaG93IHRoaXMgaGFzIGJlZW4gYSBjb3JuZXJzdG9uZSBvZiBldmVyeSBmaWxtIGhl4oCZcyBtYWRlLuKAnTwvcD4KCgoKPHA+V2hlbiBwcm9kdWN0aW9uIG9uIDxlbT5HbGFkaWF0b3ImbmJzcDtJSTwvZW0+IHdyYXBwZWQsIFNjb3R0IGdhdmUgTWVzY2FsIGEgZ2lmdDogdGhyZWUgb3JpZ2luYWwgc3Rvcnlib2FyZHMsIG1vdW50ZWQgYW5kIGZyYW1lZC4g4oCcVGhleSBoYXZlIHByaWRlIG9mIHBsYWNlIGluIG15IGhvdXNlLOKAnSBNZXNjYWwgc2F5cy48L3A+CgoKCjxwPjxzdHJvbmc+RmFzdCBzaG9vdGluZzwvc3Ryb25nPjwvcD4KCgoKPHA+VGhlcmXigJlzIGFub3RoZXIgcHJhY3RpY2Ugb2YgU2NvdHTigJlzIHRoYXQgYWxsb3dzIGhpbSB0byBtYWtlIGhpcyBtb3ZpZXMgYXQgc3VjaCBhIHJhdGU6IGhlIHNob290cyB0aGVtIGF0IGFuIGV4dHJhb3JkaW5hcnkgc3BlZWQsIHdpdGggbWluaW1hbCB0YWtlcyBhbmQgZm9vdGFnZSBjYXB0dXJlZCBvbiBtdWx0aXBsZSBjYW1lcmFzLCBhbGwgcnVubmluZyZuYnNwO3NpbXVsdGFuZW91c2x5LjwvcD4KCgoKPHA+4oCcSSBkaXNjb3ZlcmVkIGEgd2hpbGUgYWdvIHRoYXQgYWN0b3JzIGRvbuKAmXQgd2FudCA0OSB0YWtlcyzigJ0gU2NvdHQgc2F5cyB3aXRoIGEgZHJ5IGNhY2tsZS4g4oCcSWYgeW914oCZcmUgZG9pbmcgNDkgdGFrZXMgdGhlcmXigJlzIHNvbWV0aGluZyBzZXJpb3VzbHkgd3JvbmcsIG9rYXk/IFRoZXkgbG92ZSB0d28gdGFrZXMgYmVjYXVzZSB0aGV54oCZdmUgY29tZSBpbiB0aGVyZSwgdGhleeKAmXZlIGJlZW4gY2FzdOKApiB0aGV5IHR1cm4gdXAgcHJlcGFyZWQuIFNvIEkgc2F5LCDigJhObyByZWhlYXJzYWwuIEFjdGlvbi7igJkgVGhleSZuYnNwO2dvLCZuYnNwO+KAmFdvd+KAmS48L3A+CgoKCjxwPuKAnE5vcm1hbGx5LCBpdOKAmXMgdHdvIG9yIHRocmVlIHRha2VzIGFuZCB3ZeKAmXJlIGRvbmUuIEkgYWx3YXlzIHVzZSBlbGV2ZW4gY2FtZXJhcy4gRm91ciB0byBlbGV2ZW4gY2FtZXJhcy4gU28geW91IHNjaGVkdWxlIGZvciB0aGUgZGF5LCBidXQgeW914oCZcmUgZG9uZSBieSAxMSBv4oCZY2xvY2suIEFuZCB0aGUgYWN0b3JzIHNheSwg4oCYR29kZGFtbiwgd2UgZGlkIDQwIHNldC11cHMgdGhpcyBtb3JuaW5n4oCZLiBBbmQgdGhleeKAmXJlIHRocmlsbGVkIHRvIGJpdHMgd2l0aCB0aGVtc2VsdmVzLuKAnTwvcD4KCgoKPHA+TWVzY2FsIGdpdmVzIHVzIGEgd3J5IHNtaWxlIHdoZW4gd2UgYnJpbmcgdXAgdGhlIHN1YmplY3Qgb2YgaGlzIGRpcmVjdG9y4oCZcyBzdHlsZSBvZiBmaWxtbWFraW5nLiBTY290dCBwcmVmZXJzIOKAnG1heCB0aHJlZeKAnSB0YWtlcywgTWVzY2FsIGxhdWdocy48L3A+CgoKCjxwPuKAnEkga25ldyBmcm9tIHRhbGtpbmcgdG8gYWN0b3JzIHdob+KAmWQgd29ya2VkIHdpdGggaGltIGJlZm9yZSB0aGF0IGhl4oCZcyBpbmZhbW91cyBmb3Igbm90IGRvaW5nIGEgaHVnZSBhbW91bnQgb2YgdGFrZXMs4oCdIHRoZSBhY3RvciBzYXlzLiDigJxCdXQgaGXigJlzIGFsc28gaW5mYW1vdXMgZm9yIGdldHRpbmcgZ3JlYXQgcGVyZm9ybWFuY2VzIG91dCBvZiBhY3RvcnPigKYgWW914oCZcmUgY29taW5nIGluIGFuZCB5b3UgcmVhbGx5IHdhbnQgdG8gYmUgbGFuZGluZyBpdCBvbiB0aGUgZmlyc3QgdGFrZSwgYW5kIHRoZW4gYW55dGhpbmcgeW91IGdldCBhZnRlciB0aGF0IGlzIGEgYm9udXMu4oCdPC9wPgoKCgo8cD5TY290dOKAmXMgZGVjaXNpdmVuZXNzIGV4dGVuZHMgdG8gaGlzIGNhc3RpbmcuIE1lc2NhbCwgaGF2aW5nIGltcHJlc3NlZCBTY290dCB3aXRoIGhpcyBwZXJmb3JtYW5jZSBpbiB0aGUgVFYgc2VyaWVzIDxlbT5Ob3JtYWwgUGVvcGxlPC9lbT4sIHdhcyBjYXN0IGFmdGVyIGEgc2luZ2xlIFpvb20gY2FsbC48L3A+CgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxpbWcgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjMzNCIgc3JjPSJodHRwczovL3NwYWNlcy5maWxtc3Rvcmllcy5jby51ay91cGxvYWRzLzIwMjQvMTEvbWVzY2FsLWx1Y2l1cy1nbGFkaWF0b3ItaWktODAweDMzNC5qcGciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtOTI0NTMiIHNyY3NldD0iaHR0cHM6Ly9zcGFjZXMuZmlsbXN0b3JpZXMuY28udWsvdXBsb2Fkcy8yMDI0LzExL21lc2NhbC1sdWNpdXMtZ2xhZGlhdG9yLWlpLTgwMHgzMzQud2VicCA4MDB3LCBodHRwczovL3NwYWNlcy5maWxtc3Rvcmllcy5jby51ay91cGxvYWRzLzIwMjQvMTEvbWVzY2FsLWx1Y2l1cy1nbGFkaWF0b3ItaWktMzAweDEyNS53ZWJwIDMwMHciIHNpemVzPSIobWF4LXdpZHRoOiA4MDBweCkgMTAwdncsIDgwMHB4IiAvPjwvZmlndXJlPgoKCgo8cD7igJxJdCB3YXMgYWJvdXQgaGFsZiBhbiBob3VyLOKAnSBNZXNjYWwgc2FpZCwg4oCcc28gSSBkZWZpbml0ZWx5IHdhc27igJl0IHRoaW5raW5nIHRoYXQgd291bGQgYmUgaXQuIEkgdGhvdWdodCB0aGVyZSB3b3VsZCBiZSBmdXJ0aGVyIHN0YWdlcywgYnV0IFJpZGxleSBtYWtlcyBoaXMgZGVjaXNpb25zIHF1aWNrbHkg4oCTIHdoaWNoIEkgbGF0ZXIgZm91bmQgb3V0IeKAnTwvcD4KCgoKPHA+SGVjaGluZ2VyLCB3aG8gd2FzIGhpcmVkIHdoZW4gQmFycnkgS2VvZ2hhbiB3YXMgZm9yY2VkIHRvIGRyb3Agb3V0LCB3YXMgY2FzdCB3aXRoIHNpbWlsYXIgc3BlZWQuPC9wPgoKCgo8cD7igJxPbmUgb2YgbWFueSB0aGluZ3MgdGhhdCBpcyBkZWVwbHkgaW5zcGlyaW5nIGFib3V0IFJpZGxleSBpcyB0aGF0IGhlIGRvZXMgbm90IHdhc3RlIHRpbWUgYW5kIGhlIHRydXN0cyBoaXMgZ3V0LOKAnSBIZWNoaW5nZXIgc2F5cy4g4oCcSGUgb3BlcmF0ZXMgaW4gYSB2ZXJ5IGZvY3VzZWQgYW5kIHN0cmFpZ2h0Zm9yd2FyZCBtYW5uZXIuIEFuZCBhcyBhbiBhY3RvciwgdGhhdOKAmXMgdW51c3VhbCwgeW91IGtub3c/IFNvbWV0aW1lcyBbY2FzdGluZ10gY2FuIGJlIGEgbG9uZywgbG9uZyBwcm9jZXNzLiBJdCBkaWQgaGFwcGVuIHVudXN1YWxseSBmYXN0LCBhbmQgSSBkaWQgaGF2ZSB0aGlzIGNhbGwgb2YsIOKAmEkgd2FudCB0byBkbyB0aGlzLCBkbyB5b3Ugd2FudCB0byBkbyBpdD/igJnigInigJ08L3A+CgoKCjxwPkJvdGggTWVzY2FsIGFuZCBIZWNoaW5nZXIgc2VlbWVkIHRvIGZpbmQgU2NvdHTigJlzIGZpbG1tYWtpbmcgc3R5bGUgZXhoaWxhcmF0aW5nIOKAkyBsaWtlIHJhY2luZyB0byBnZXQgb24gYm9hcmQgYSB0cmFpbiB0aGF04oCZcyBhYm91dCB0byBsZWF2ZSB0aGUgc3RhdGlvbi48L3A+CgoKCjxwPuKAnEhpcyBwcm9jZXNzIGlzIHdvbmRlcmZ1bGx5IGxpYmVyYXRpbmcsIGJlY2F1c2UgeW914oCZcmUgc2hvb3RpbmcgdGhlIHdpZGUgYW5kIHRoZSBjbG9zZS11cCBpbiB0aGUgc2FtZSBzZXQtdXAs4oCdIHNheXMgTWVzY2FsLiDigJxZb3XigJl2ZSBnb3QgYSBsb25nIGxlbnMsIHByb2JhYmx5IDc1bW0sIG9uIHlvdXIgZmFjZSwgYW5kIHlvdSBjYW7igJl0IGZlZWwgdGhlIGNhbWVyYS4gSGXigJlzIGFsc28gc2hvb3RpbmcgdGhlIHdpZGUuIFRoZSBjYW1lcmHigJlzIG5ldmVyIHJlYWxseSBpbiB5b3VyIGZhY2Uu4oCdPC9wPgoKCgo8cD48c3Ryb25nPllvdW5nIGFydGlzdDwvc3Ryb25nPjwvcD4KCgoKPHA+V2hlcmV2ZXIgU2NvdHTigJlzIGRyaXZlIGFuZCBjcmVhdGl2ZSB1cmdlbmN5IGNvbWVzIGZyb20sIGl0IGhhcyBwcm9wZWxsZWQgaGltIGZyb20gQ291bnR5IER1cmhhbSDigJMgd2hlcmUgaGUgd2FzIGJvcm4gaW4gMTkzNyDigJMgdG8gYSBsb25nIGFuZCBleHRyYW9yZGluYXJ5IGNhcmVlciBpbiBIb2xseXdvb2QuIEhhdmluZyBzdHJ1Z2dsZWQgd2l0aCBoaXMgZXhhbXMgKOKAnEkgZ290IG9uZSBHQ0UgYW5kIHRoYXQgd2FzIGFydOKAnSksIGEgdGVhY2hlciByZWNvbW1lbmRlZCB0aGF0IFNjb3R0IGdvIHRvIGFydCBzY2hvb2w7IHRoZSB5b3VuZyBhcnRpc3Qgc29vbiBlbmRlZCB1cCBhdCBMb25kb27igJlzIFJveWFsIENvbGxlZ2Ugb2YgQXJ0LCB3aGVyZSBoZSB3YXMgdGF1Z2h0IGJ5IChhbW9uZyBvdGhlcnMpIHRoZSBncmVhdCBGcmFuY2lzIEJhY29uLjwvcD4KCgoKPHA+V2l0aCBhIGZsYWlyIGZvciBkcmF3aW5nIGFuZCBjb21wb3NpdGlvbiwgU2NvdHQgYnJpZWZseSBjb25zaWRlcmVkIGJlY29taW5nIGEgZmFzaGlvbiBwaG90b2dyYXBoZXIgYmVmb3JlIGhlIHBpY2tlZCB1cCBhIDE2bW0gY2FtZXJhIGFuZCBtYWRlIGEgc2hvcnQgZmlsbSBpbiAxOTYyLiA8ZW0+Qm95IEFuZCBCaWN5Y2xlPC9lbT4gc3RhcnJlZCBoaXMgeW91bmdlciBicm90aGVyIFRvbnkgKHRoZSBvbmx5IGFjdG9yIGhlIGNvdWxkIGZpbmQpIGN5Y2xpbmcgYXJvdW5kIHRoZSBjb2xkIGluZHVzdHJpYWwgYmFja2Ryb3BzIG9mIFdlc3QgSGFydGxlcG9vbC4gSXQgd291bGQgc2VydmUgYXMgYSBjYWxsaW5nIGNhcmQsIGxlYWRpbmcgdG8gYSBicmllZiBzdGludCBhdCB0aGUgQkJDLCBhbmQgYWZ0ZXIgdGhhdCwgYSBodWdlbHkgc3VjY2Vzc2Z1bCBjYXJlZXIgaW4gY29tbWVyY2lhbHMuPC9wPgoKCgo8cD7igJxJIGNhdWdodCB0aGUgd2F2ZSBvZiB0aGlzIG5ldyB0aGluZyBjYWxsZWQgY29tbWVyY2lhbCBUViwgYW5kIGluIGEgaGVhcnRiZWF0IEkgd2FzIGRpcmVjdGluZyBjb21tZXJjaWFscyzigJ0gU2NvdHQgcmVjYWxscy4g4oCcQmVjYXVzZSBvZiBteSB2aXN1YWwgbmF0dXJlLCB3aGF0IEnigJltIGdvb2QgYXQsIEkgd2FzIGZ1bmRhbWVudGFsbHkgdG9wIG9mIHRoZSBsaW5l4oCmIEEgbG90IG9mIGFkcyBiYWNrIHRoZW4sIGhvbmVzdGx5LCBsb29rZWQgd2F5IGJldHRlciB0aGFuIGFueSBvZiB0aGUgcHJvZ3JhbW1lcywgYW5kIEkgdGhpbmsgd2UgaW5mbHVlbmNlZCB0aGUgd2F5IHRoaW5ncyBsb29rZWQgYW5kIHdlcmUgbGl0LuKAnTwvcD4KCgoKPHA+QnkgdGhlIHRpbWUgU2NvdHQgd2FzIGluIGhpcyAyMHMsIGhlIHdhcyBhIG1pbGxpb25haXJlLiBIZeKAmWQgc2V0IHVwIGhpcyBvd24gYWR2ZXJ0aXNpbmcgYWdlbmN5LCBSaWRsZXkgU2NvdHQgQXNzb2NpYXRlcywgaW4gMTk2OCwgd2l0aCBoaXMgYnJvdGhlciBUb255IGFzIHBhcnRuZXI7IGFuZCB0aGUgY29tcGFueSBzb29uIGhhZCBvZmZpY2VzIGluIFBhcmlzIGFuZCBOZXcgWW9yay4gU2NvdHQgZXN0aW1hdGVzIHRoYXQgdGhlIG51bWJlciBvZiBjb21tZXJjaWFscyBoZeKAmXMgZGlyZWN0ZWQgaG92ZXJzIGFyb3VuZCB0aGUgMiwwMDAgbWFyaywgd2l0aCBjbGllbnRzIGluY2x1ZGluZyBQZXBzaSBhbmQgQ2hhbmVsLiBIaXMgbW9zdCBmYW1vdXMgY29tbWVyY2lhbHMsIHRob3VnaCwgYXJlIGFyZ3VhYmx5IGhpcyAzMC1zZWNvbmQgYWQgZm9yIEhvdmlzIGluIDE5NzMsIGFuZCBoaXMgT3J3ZWxsaWFuIHNwb3QgZm9yIEFwcGxl4oCZcyBNYWNpbnRvc2ggY29tcHV0ZXIg4oCTIGFwcHJvcHJpYXRlbHkgbWFkZSBpbiAxOTg0LjwvcD4KCgoKPHA+4oCcSSBkaWQgYSBjb21tZXJjaWFsIGZvciBTdGV2ZSBKb2JzLOKAnSBTY290dCBzYXlzLCBjYXN1YWxseS4g4oCcSGUgd2FzIHZlcnkgcHJvLWZpbG1tYWtpbmcgYWZ0ZXIgdGhhdCwgYmVjYXVzZSBoZSB3YXMgYSBiaXQgc3VzcGljaW91cyBvZiBhZHZlcnRpc2luZy7igJ08L3A+CgoKCjxwPldoaWxlIFNjb3R04oCZcyBjYXJlZXIgYXMgYSBjb21tZXJjaWFscyBkaXJlY3RvciBmbG91cmlzaGVkLCBoaXMgZmVhdHVyZSBkZWJ1dCB3YXMgcmF0aGVyIGxvbmdlciBpbiB0aGUgbWFraW5nIHRoYW4geW91IG1heSBoYXZlIHRob3VnaHQuPC9wPgoKCgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWxhcmdlIj48aW1nIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyIgd2lkdGg9IjgwMCIgaGVpZ2h0PSIzMzYiIHNyYz0iaHR0cHM6Ly9zcGFjZXMuZmlsbXN0b3JpZXMuY28udWsvdXBsb2Fkcy8yMDI0LzExL2RlbnplbC1nbGFkaWF0b3ItaWktODAweDMzNi5qcGciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtOTI0NTYiIHNyY3NldD0iaHR0cHM6Ly9zcGFjZXMuZmlsbXN0b3JpZXMuY28udWsvdXBsb2Fkcy8yMDI0LzExL2RlbnplbC1nbGFkaWF0b3ItaWktODAweDMzNi53ZWJwIDgwMHcsIGh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8xMS9kZW56ZWwtZ2xhZGlhdG9yLWlpLTMwMHgxMjYud2VicCAzMDB3IiBzaXplcz0iKG1heC13aWR0aDogODAwcHgpIDEwMHZ3LCA4MDBweCIgLz48L2ZpZ3VyZT4KCgoKPHA+4oCcUmVhbGx5LCBJIHdhcyByZWFkeSBhdCAyNiB0byBkbyBpdCwgYW5kIHRoZXkganVzdCBkaWRu4oCZdCB3YW50IHRvIGtub3cgYmVjYXVzZSBhbGwgSeKAmWQgZG9uZSB3ZXJlIDMwLXNlY29uZCBjb21tZXJjaWFscyzigJ0gc2F5cyBTY290dC4g4oCcSSB0aGluayB0aGV5IHdlcmUganVzdCBzaG9ydC1jaGFuZ2luZyBtZSBiZWNhdXNlIHRoZXkgZGlkbuKAmXQga25vdyB3aGF0IEkgY291bGQgZG8sIHdoaWNoIGlzIGZpbmUu4oCdPC9wPgoKCgo8cD5CeSB0aGUgMTk3MHMsIGhvd2V2ZXIsIFNjb3R0IGhhZCB0aGUgbWVhbnMgdG8gZXNzZW50aWFsbHkgYmFua3JvbGwgPGVtPlRoZSBEdWVsbGlzdHM8L2VtPiBoaW1zZWxmLiBCYXNlZCBvbiB0aGUgSm9zZXBoIENvbnJhZCBzaG9ydCBzdG9yeSA8ZW0+VGhlIER1ZWw8L2VtPiwgaXQgc3RhcnJlZCBLZWl0aCBDYXJyYWRpbmUgYW5kIEhhcnZleSBLZWl0ZWwgYXMgYSBwYWlyIG9mIEZyZW5jaCBzb2xkaWVycyB3aG8sIHdpdGggdGhlIE5hcG9sZW9uaWMgV2FycyBhcyBhIGJsb29keSBiYWNrZHJvcCwgcmVwZWF0ZWRseSwgZnV0aWxlbHkgZmlnaHQgb25lIGFub3RoZXIgb3ZlciB0aGUgY291cnNlIG9mIDE2IHllYXJzLjwvcD4KCgoKPHA+4oCcSSBncmFkdWFsbHkgd29ya2VkIG15IHdheSB1cCB0byBidXlpbmcgYSBib29rLCBwYXlpbmcgdGhlIHdyaXRlciwgYmVjb21pbmcgbXkgb3duIGNvbXBsZXRpb24gYm9uZCwgYW5kIGZ1bmRpbmcgbXkgZmlyc3QgZmlsbSBhbmQgbmV2ZXIgZ2V0dGluZyBwYWlkLOKAnSBTY290dCBzYXlzIHdpdGggYSBjaHVja2xlLiDigJw8ZW0+VGhlIER1ZWxsaXN0czwvZW0+IHRoZW4gd29uIGEgcHJpemUgYXQgQ2FubmVzLiBCb29tIOKAkyBJIHdhcyBvZmYgYW5kIHJ1bm5pbmcuIEJ1dCBJIHdhcyA0MC4gQnV0IHdpdGggbm8gcmVncmV0cywgYmVjYXVzZSB3aGVuIEkgZW50ZXJlZCB0aGUgZmlsbSBidXNpbmVzcywgSSB3YXNu4oCZdCBhIG5ldyBraWQsIEkgd2FzIGtpbmQgb2YgdGhlIGxlYWRlciBvZiB0aGUgcGFjay7igJ08L3A+CgoKCjxwPkEgY3JpdGljYWwgcmF0aGVyIHRoYW4gZmluYW5jaWFsIHN1Y2Nlc3MsIDxlbT5UaGUgRHVlbGxpc3RzPC9lbT4gbmV2ZXJ0aGVsZXNzIGNhdWdodCB0aGUgZXllIG9mIFNhbmR5IExpZWJlcnNvbiwgMjB0aCBDZW50dXJ5IEZveOKAmXMgRXVyb3BlYW4gcHJlc2lkZW50LCBhbmQgU2NvdHQgd2FzIGhpcmVkIHRvIGRpcmVjdCBoaXMgZmlyc3Qgc3R1ZGlvIG1vdmllLCA8ZW0+QWxpZW48L2VtPiwgaW4gMTk3OS4gU2luY2UgdGhlbiwgU2NvdHQgaGFzIHNvdWdodCB0byBzdHJpa2UgYSBiYWxhbmNlIGJldHdlZW4gYXJ0aXN0cnkgYW5kIGNvbW1lcmNpYWwtbWluZGVkbmVzcy4gPGVtPkJsYWRlIFJ1bm5lcjwvZW0+ICgxOTgyKSwgU2NvdHTigJlzIGZpcnN0IGZpbG0gc2hvdCBpbiB0aGUgVW5pdGVkIFN0YXRlcywgd2FzIGEgZnJhdWdodCBwcm9kdWN0aW9uIGFuZCB0aGUgbW92aWUgZmFpbGVkIHRvIGZpbmQgYW4gYXVkaWVuY2Ugb24gaXRzIGluaXRpYWwgcmVsZWFzZSwgYnV0IGl0cyBzdHVubmluZyB2aXN1YWxzIGluZmx1ZW5jZWQgc2NpZW5jZSBmaWN0aW9uIGZvciBkZWNhZGVzIGFmdGVyd2FyZHMuPC9wPgoKCgo8cD5Ob3QgYWxsIG9mIFNjb3R04oCZcyBmaWxtcyBoYXZlIGJlZW4gaGl0cyDigJMgPGVtPkxlZ2VuZDwvZW0+LDxlbT4gMTQ5MjogQ29ucXVlc3QgT2YgUGFyYWRpc2U8L2VtPiw8ZW0+IFdoaXRlIFNxdWFsbDwvZW0+IGFuZCA8ZW0+Ry5JLiBKYW5lPC9lbT4gYWxsIHN0cnVnZ2xlZCDigJMgYnV0IGV2ZXJ5IGZldyB5ZWFycywgdGhlIGRpcmVjdG9yIGhhcyBib3VuY2VkIGJhY2sgd2l0aCBhIGh1Z2Ugc3VjY2Vzcy4gVGhlIHRlcGlkIHJlY2VwdGlvbiB0byBoaXMgMTk4NyBuZW8tbm9pciA8ZW0+U29tZW9uZSBUbyBXYXRjaCBPdmVyIE1lPC9lbT4gd2FzIGZvbGxvd2VkIGJ5IHRoZSAxOTg5IGNvcCB0aHJpbGxlciA8ZW0+QmxhY2sgUmFpbjwvZW0+LCB3aGljaCBtYWRlICQxMzRtLjwvcD4KCgoKPHA+VGhlIOKAmTkwcyB3YXMgYW4gdW5ldmVuIGRlY2FkZSBmb3IgU2NvdHQgYXQgdGhlIGJveCBvZmZpY2UsIGJ1dCBpdCBzdGFydGVkIG9uIGEgc29hcmluZyBub3RlIHdpdGggPGVtPlRoZWxtYSAmYW1wOyBMb3Vpc2U8L2VtPiAoMTk5MSksIHdoaWNoIHdhcyBub21pbmF0ZWQgZm9yIHNpeCBPc2NhcnMuIEFnYWluIG1ldGljdWxvdXNseSBzdG9yeWJvYXJkZWQsIDxlbT5UaGVsbWEgJmFtcDsgTG91aXNlPC9lbT7igJlzIGR1c3R5LCBnb2xkZW4taG91ciBjb25jbHVzaW9uIGluIHRoZSBHcmFuZCBDYW55b24gaXMgb25lIG9mIHRoZSBtb3N0IGljb25pYyBvZiB0aGUgMTk5MHMg4oCTIGFuIGV4YW1wbGUgb2YgaG93IFNjb3R04oCZcyB0YWxlbnQgYXMgYSB2aXN1YWwgc3Rvcnl0ZWxsZXIgY2FuIGJyaW5nIHNvIG11Y2ggdmVydmUgdG8gYW4gYWxyZWFkeSBlZmZlY3RpdmUmbmJzcDtzY3JlZW5wbGF5LjwvcD4KCgoKPHA+U29tZSBvZiBTY290dOKAmXMgZmlsbXMgaGF2ZSB0aGVtc2VsdmVzIGJlZW4gaW5zcGlyZWQgYnkgdGhlIGltYWdlcyBvZiBvdGhlciBhcnRpc3RzLiBXaGVuIGNvLXdyaXRlciBhbmQgcHJvZHVjZXIgRGFuIE/igJlCYW5ub24gaGFuZGVkIHRoZSBkaXJlY3RvciBhIGJvb2sgb2YgYXJ0aXN0IEhSIEdpZ2Vy4oCZcyB3b3JrLCBTY290dCBzYXcgb25lIHBhaW50aW5nLCBlbnRpdGxlZCBOZWNyb25vbSBJViwgYW5kIGltbWVkaWF0ZWx5IGtuZXcgaGXigJlkIGZvdW5kIGhpcyB0aXRsZSBtb25zdGVyIGZvciA8ZW0+QWxpZW48L2VtPi4gU2ltaWxhcmx5LCBTY290dCB3YXMgaGFuZGVkIGFuIGV2b2NhdGl2ZSBwYWludGluZyBvZiBhIHZpY3RvcmlvdXMgY29tYmF0YW50IGJ5IDE5dGggY2VudHVyeSBhcnRpc3QgSmVhbi1Mw6lvbiBHw6lyw7RtZSwgYW5kIHdhcyBzbyB0YWtlbiBieSBpdCB0aGF0IGhlIGFncmVlZCB0byBtYWtlIDxlbT5HbGFkaWF0b3I8L2VtPiB3aXRob3V0IGhhdmluZyByZWFkIHRoZSBzY3JpcHQuPC9wPgoKCgo8cD48c3Ryb25nPlJvbWFuIHJlLWNyZWF0aW9uPC9zdHJvbmc+PC9wPgoKCgo8cD5Gb3IgPGVtPkdsYWRpYXRvciBJSTwvZW0+LCBTY290dCBsb29rZWQgYXQgdGhlIHdvcmsgb2YgUm9tYW50aWMgYXJ0aXN0IExhd3JlbmNlIEFsbWEtVGFkZW1hLCBmYW1vdXMgZm9yIGhpcyBkZXRhaWxlZCBvaWwgcGFpbnRpbmdzIG9mIGFuIGlkZWFsaXNlZCBhbmNpZW50IFJvbWUuPC9wPgoKCgo8cD7igJxIZSB3b3VsZCBwYWludCBhcmlzdG9jcmF0cyBpbiBmdWxsIFJvbWFuIGdlYXIgdG8gaGFuZyBpbiB0aGVpciBvd24gZHJhd2luZyByb29tcyzigJ0gU2NvdHQgc2F5cy4g4oCcQW5kIHNvIGl0IGJlY2FtZSBmYXNoaW9uYWJsZSB0byBiZSBwYWludGVkIGluIGEgUm9tYW4gYmF0aCBvciBzb21ldGhpbmcgbGlrZSB0aGF0LiBUaGUgcXVhbGl0eSBvZiB0aGVpciBwYWludGluZ3MgYXJlIGxpa2UgZ3JlYXQgcGhvdG9ncmFwaHMsIHNvIEnigJlkIGFsd2F5cyBsb29rIGF0IHRob3NlLuKAnTwvcD4KCgoKPHA+U2ltaWxhcmx5LCBTY290dCBhdHRyYWN0ZWQgRGVuemVsIFdhc2hpbmd0b24gdG8gdGhlIHJvbGUgb2YgdGhlIHNjaGVtaW5nIE1hY3JpbnVzIGJ5IHNob3dpbmcgaGltIGFub3RoZXIgMTl0aCBjZW50dXJ5IHBhaW50aW5nLCBUaGUgTW9vciwgd2hpY2ggZGVwaWN0cyBhbiBBZnJpY2FuIG5vYmxlbWFuIGluIGFsbCBoaXMgZmluZXJ5LjwvcD4KCgoKPHA+4oCcSSB0aG91Z2h0LCDigJhUaGVyZeKAmXMgRGVuemVsLOKAmeKAnSBTY290dCByZWNhbGxzLCDigJxhbmQgdGhhdOKAmXMgaG93IEkgZ290IGhpbSBpbnZvbHZlZC4gSSB0aG91Z2h0IGhlIG1pZ2h0IHNheSBubywgYnV0IGhlIHNhaWQgeWVzLuKAnTwvcD4KCgoKPHA+V2FzaGluZ3RvbiBuaXhlZCB0aGUgaWRlYSBvZiBoaXMgY2hhcmFjdGVyIHNoYXJpbmcgdGhlIHNhbWUgZmFjaWFsIGhhaXIgYXMgdGhlIG5vYmxlbWVuIGluIHRoZSBwYWludGluZywgaG93ZXZlci48L3A+CgoKCjxwPuKAnEhlIGhhZCBhIGdyZWF0IHBvaW50eSBiZWFyZCzigJ0gU2NvdHQgcnVlZnVsbHkgbm90ZXMsIOKAnERlbnplbCBkaWRu4oCZdCBnbyBmb3IgdGhlIGJlYXJkLuKAnTwvcD4KCgoKPHA+T24gbG9jYXRpb24gaW4gTW9yb2NjbyBhbmQgTWFsdGEsIFNjb3R0IGFwcHJvYWNoZWQgPGVtPkdsYWRpYXRvciBJSTwvZW0+IGxpa2UgYSB0cnVlIE9sZCBIb2xseXdvb2QgaGlzdG9yaWNhbCBlcGljLCB3aXRoIHZhc3Qgc2V0cyB0ZWVtaW5nIHdpdGggdGhvdXNhbmRzIG9mIGV4dHJhcy4gQXMgaGUgZGlkIHdpdGggdGhlIGZpcnN0IGZpbG0sIFNjb3R0IGhhZCBhIHJlcGxpY2EgQ29sb3NzZXVtIGJ1aWx0LCB3aXRoIGxpYmVyYWwgc3ByaW5rbGluZ3Mgb2YgQ0dJIHVzZWQgdG8gZXh0ZW5kIHRoZSB0b3Agb2YgdGhlIGFyZW5hIGFuZCBhZGQgaW4gZXh0cmEgY3Jvd2QgbWVtYmVycy48L3A+CgoKCjxwPuKAnEl0IHdhcyBzdGFnZ2VyaW5nLOKAnSBIZWNoaW5nZXIgc2FpZCwgcmVjYWxsaW5nIHRoZSBzdGFydCBvZiB0aGUgc2hvb3QuIOKAnEkgd2Fsa2VkIG9uIHNldCB0aGUgZmlyc3QgZGF5IGFuZCBJIGZlbHQgaW1tZXJzZWQgYW5kIHN1cnJvdW5kZWQuIEEgbWl4IG9mIGFic29sdXRlbHkgcGV0cmlmaWVkIGJ5IHRoZSBzY29wZSBhbmQgdGhlIHNjYWxlLCBhbmQgdG90YWxseSBpbnNwaXJlZCBhbmQgaW52aWdvcmF0ZWQu4oCdPC9wPgoKCgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWxhcmdlIj48aW1nIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyIgd2lkdGg9IjgwMCIgaGVpZ2h0PSIzMzQiIHNyYz0iaHR0cHM6Ly9zcGFjZXMuZmlsbXN0b3JpZXMuY28udWsvdXBsb2Fkcy8yMDI0LzExL3BhdWwtbWVzY2FsLWdsYWRpYXRvci1paS1zZXRzLTgwMHgzMzQuanBnIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTkyNDU0IiBzcmNzZXQ9Imh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8xMS9wYXVsLW1lc2NhbC1nbGFkaWF0b3ItaWktc2V0cy04MDB4MzM0LndlYnAgODAwdywgaHR0cHM6Ly9zcGFjZXMuZmlsbXN0b3JpZXMuY28udWsvdXBsb2Fkcy8yMDI0LzExL3BhdWwtbWVzY2FsLWdsYWRpYXRvci1paS1zZXRzLTMwMHgxMjUud2VicCAzMDB3IiBzaXplcz0iKG1heC13aWR0aDogODAwcHgpIDEwMHZ3LCA4MDBweCIgLz48L2ZpZ3VyZT4KCgoKPHA+4oCcSSB0aGluayB0aGUgb25seSBwYXJ0IG9mIHRoZSBhcmVuYSB0aGF0IGRpZG7igJl0IHBoeXNpY2FsbHkgZXhpc3Qgd2FzIGEgcG9ydGlvbiBpbiB0aGUgY29ybmVyIHNvIHRoZXkgY291bGQgZ2V0IHRoZSBjYW1lcmFzIGluLOKAnSBNZXNjYWwgcmVjYWxscyB3aXRoIHNpbWlsYXIgd29uZGVybWVudC4g4oCcQW5kIEkgdGhpbmsgaWYgUmlkbGV5IGNvdWxkIGhhdmUgZ290dGVuIGhpcyB3YXksIGhl4oCZZCBoYXZlIGJ1aWx0IDM2MCEgV2hhdCB5b3Ugc2VlIGlzIGl0IOKAkyB0aGVyZeKAmXMgdmVyeSBsaXR0bGUgQ0dJLiBJIHRoaW5rIHRoZXkgd291bGTigJl2ZSBidWlsdCBhIHRpbnkgYml0IHVwIGF0IHRoZSB0b3AgZW5kLiBUaGUgZ2F0ZXMgd2VyZSB0byBzY2FsZS4gWW91IHdvdWxkIHdhbGsgb3V0IG9mIHRoZSBnYXRlcyBhbmQgZ28gdXAgdGhlIFZpYSBBcHBpYS4gSXQgd2FzIGxpa2UgdGhpcyBtaW5pIGNpdHksIHlvdSBrbm93PyBJdCB3YXMgdGhlIGJpZ2dlc3Qgc2V0IEnigJl2ZSBiZWVuIG9uLCBhbmQgcHJvYmFibHksIHRoZSB3YXkgdGhhdCBmaWxtbWFraW5nIGlzIGdvaW5nLCBwcm9iYWJseSB0aGUgYmlnZ2VzdCBzZXQgSSBldmVyIHdpbGwgYmUgb24gaW4gdGVybXMgb2Ygc2NhbGUu4oCdPC9wPgoKCgo8cD5UaGUgY29tYmluYXRpb24gb2YgZW5vcm1vdXMgc2V0cyBhbmQgYSByYXBpZCBmaWxtaW5nIHNjaGVkdWxlIGFkZGVkIHRvIHRoZSB1cmdlbmN5IG9mIHRoZSBwZXJmb3JtYW5jZXMuPC9wPgoKCgo8cD7igJxZb3UgaGF2ZSB0byByZWNrb24gd2l0aCBldmVyeW9uZSBhcm91bmQgeW91IGF0IGFsbCB0aW1lcyzigJ0gSGVjaGluZ2VyIHNheXMuIOKAnFNvIGlmIHRoZXJl4oCZcyBhIG1vYiBvZiA3MDAgcGVvcGxlIHNjcmVhbWluZyBhdCBmdWxsIHZvbHVtZSwgeW91IGhhdmUgdG8gZmlndXJlIG91dCBob3cgdG8gYmUgaGVhcmQuIFlvdSBoYXZlIHRvIGZpZ2h0IHRocm91Z2ggdGhlIG5vaXNlIGFuZCBjb21tYW5kIHRoZW0gb3IgbWFrZSBzZW5zZSBvZiBpdCDigJMgb3IgZmFpbCwgcHVibGljbHkuIFRob3NlIHN0YWtlcyBhcmUgdXR0ZXJseSBjb25uZWN0ZWQgdG8gdGhlIGNvbnRleHQgb2YgPGVtPkdsYWRpYXRvcjwvZW0+LuKAnTwvcD4KCgoKPHA+SW4gb25lIGVsZWN0cmlmeWluZyBzY2VuZSwgTWVzY2Fs4oCZcyBjaGFyYWN0ZXIgZW5nYWdlcyBpbiBhIGRlYWRseSBib3V0IG9mIGhhbmQtdG8taGFuZCBjb21iYXQgd2l0aCBhbm90aGVyIGdsYWRpYXRvciwgYW5kIGZvbGxvd3MgaXQgYnkgcmVjaXRpbmcgYSBwb2VtIGJ5IFZpcmdpbCwgYWRkcmVzc2VkIGRlZmlhbnRseSB0byBhIHNhdWNlci1leWVkIEdldGEuIFNjb3R04oCZcyBzdHlsZSBvZiBmaWxtaW5nIGJlaW5nIGFzIGl0IGlzLCB0aGUgZmlnaHQgYW5kIHRoZSByZWNpdGFsIHdlcmUgc2hvdCByaWdodCBhZnRlciBlYWNoIG90aGVyLjwvcD4KCgoKPHA+4oCcWWVhaCwgdGhhdCB3YXMgdHdvIHRha2VzLOKAnSBNZXNjYWwgc2F5cywgYSBoaW50IG9mIHByaWRlIGluIGhpcyB2b2ljZS4g4oCcWW91IHJ1biB0aGUgZmlnaHQsIGFuZCB0aGUgY2FtZXJh4oCZcyBbcm9sbGluZ13igKYgSSBqdXN0IGxvdmUgaXQgYmVjYXVzZSB5b3UgY2Fu4oCZdCBmYWtlIHRoZSBhZHJlbmFsaW5lLiBXaGVuIEkgd2F0Y2ggdGhlIGZpbG0sIEkgY2FuIHNlZSB0aGUgaGVhcnRiZWF0IGluIG15IGV5ZSBnb2luZyBkdWgtZHVtLCBkdWgtZHVtLCBkdWgtZHVt4oCm4oCdPC9wPgoKCgo8cD5TY290dOKAmXMgYXV0aG9yaWFsIGNvbnRyb2wgb3ZlciB0aGUgbW92aWUgaXMgc3VjaCB0aGF0IGhl4oCZcyBhYmxlIHRvIHNsb3QgcGVyc29uYWwgaWRlYXMgaW50byB0aGUgbWlkc3Qgb2YgYSBodWdlIHByb2R1Y3Rpb24uIEhlIHJlY2FsbHMgc3RhbmRpbmcgaW4gYSBjYXIgcGFyayBpbiBTb3V0aCBBZnJpY2Egb25lIGRheSBiZWZvcmUgd29yayBvbiA8ZW0+R2xhZGlhdG9yIElJPC9lbT4gYmVnYW4sIGFuZCB3YXRjaGluZyBpbiBob3Jyb3IgYW5kIGZhc2NpbmF0aW9uIGFzIGFuIGVudGlyZSB0cm9vcCBvZiBiYWJvb25zIGNhbWUgZmxvb2Rpbmcgb3ZlciBhIHdhbGwgdG93YXJkcyBhIGdyb3VwIG9mIHRvdXJpc3RzIOKAnHdhbmRlcmluZyBhcm91bmQgdG8gZ2V0IGEgY29mZmVlLuKAnTwvcD4KCgoKPHA+4oCcSXQgd2FzIHVuYmVsaWV2YWJsZSwgYmVjYXVzZSBiYWJvb25zIGFyZSBjYXJuaXZvcmVzLOKAnSBTY290dCBzYXlzIG5vdy4g4oCcQSBiYWJvb24gY2FuIGJlIHNtYWxsLCBidXQgY2FuIHlvdSBoYW5nIGJ5IGEgYmVhbSBmb3IgdHdvIGhvdXJzIGZyb20geW91ciBmb290PyBOby4gV2lsbCB0aGV5IHJpcCB5b3VyIGFybSBvZmY/IFllcy4gV2lsbCB0aGV5IHRha2UgYSBiaXRlIG91dCBvZiB5b3VyIGZhY2U/IFllcy4gU28gSSB0aG91Z2h0LCDigJhJdOKAmXMgZ290IHRvIGJlIHRoZSBiYWJvb25zLuKAmeKAieKAnTwvcD4KCgoKPHA+U28gaXQgd2FzIHRoYXQgb25lIG9mIDxlbT5HbGFkaWF0b3IgSUk8L2VtPuKAmXMgY29tYmF0IHNjZW5lcyBpbnZvbHZlcyBQYXVsIE1lc2NhbOKAmXMgY2hhcmFjdGVyIGZpZ2h0aW5nIGEgcGFjayBvZiBzY3JlYW1pbmcsIHZpY2lvdXMgcHJpbWF0ZXMuPC9wPgoKCgo8cD7igJxXZSBjYXN0IGFsbCB0aGUgc21hbGxlc3Qgc3R1bnRtZW4gSSBjb3VsZCBmaW5kLCB3aG8gYXJlIG11c2N1bGFyIGFuZCBzdHJvbmcs4oCdIHNheXMgU2NvdHQuIOKAnFdlIGdhdmUgdGhlbSBzaG9ydCBjcnV0Y2hlcyB0byB3YWxrIGFyb3VuZCBvbiwgc28gc3VkZGVubHkgeW91IGhhdmUgdGhlIG1vdmVtZW50IG9mIGEgYmFib29uLiBUaGV54oCZcmUgaW4gYmxhY2sgdGlnaHRzLCBwYWludGVkIGZhY2VzLiBXZSBzaG90IHRoZSB3aG9sZSBzZXF1ZW5jZSB3aXRoIHN0dW50bWVuIGluIGJsYWNrIHRpZ2h0cy7igJ08L3A+CgoKCjxwPjxzdHJvbmc+TW9ua2V5IGJ1c2luZXNzPC9zdHJvbmc+PC9wPgoKCgo8cD48ZW0+R2xhZGlhdG9yIElJIDwvZW0+YXMgYSB3aG9sZSBkaXNwbGF5cyBhIHN1cnByaXNpbmcgcHJlb2NjdXBhdGlvbiB3aXRoIGFuaW1hbHMg4oCTIGV2ZW4gbW9yZSBzbyB0aGFuIHRoZSBmaXJzdCBmaWxtLCBpbiB3aGljaCBSdXNzZWxsIENyb3dlIGhhZCB0byBhdm9pZCB0aGUgc3dpcGluZyBwYXcgb2YgYSB0aWdlci4gSW4gdGhlIHNlcXVlbCwgTWVzY2FsIGNvbnRlbmRzIHdpdGggc2hhcmtzIHN3aW1taW5nIGFyb3VuZCBhIGZsb29kZWQgQ29sb3NzZXVtLCB3aGlsZSBGcmVkIEhlY2hpbmdlcuKAmXMgY2hhcmFjdGVyIG93bnMgYSB0aW55IHBldCBtb25rZXksIGNsYWQgaW4gYSBjdXN0b20tbWFkZSBkcmVzcy4gRWNob2luZyBhIGxlZ2VuZGFyeSBzdG9yeSBhYm91dCBDYWxpZ3VsYeKAmXMgZmF2b3VyaXRlIGhvcnNlLCBDYXJhY2FsbGEgbWFrZXMgdGhlIHByaW1hdGUgYSBtZW1iZXIgb2YgaGlzIHNlbmF0ZS48L3A+CgoKCjxwPuKAnEkgcmVoZWFyc2VkIG1vcmUgd2l0aCB0aGF0IG1vbmtleSB0aGFuIHdpdGggYW55Ym9keSBlbHNlLOKAnSBIZWNoaW5nZXIgbGF1Z2hzLiDigJxSaWRsZXksIEkgdGhpbmsgaXTigJlzIGNsZWFyIGZyb20gaGlzIG1vdmllcyB0aGF0IGhlIGxvdmVzIGFuaW1hbHMuIFRoZWlyIGltcHVsc2l2aXR5LCB0aGVpciByYWdlLCB0aGVpciBzd2VldG5lc3MuIEkgdGhpbmsgaGUgcmVzcG9uZHMgdG8gdGhlIHVyZ2VuY3kgYW5kIGJlbGlldmFiaWxpdHkgb2YgYW5pbWFscy4gRnJlcXVlbnRseSwgZXNwZWNpYWxseSBpbiB0aGUgZmlyc3QgPGVtPkdsYWRpYXRvcjwvZW0+LCBoZSBzZWVzIHRoZSB3YXkgaW4gd2hpY2ggaHVtYW5zIGFyZSBhbmltYWxzLiBJIHRoaW5rIGhl4oCZcyB2ZXJ5IHVuYWZyYWlkIHRvIGRlcGljdCB0aGF0IG9uIHNjcmVlbi7igJ08L3A+CgoKCjxwPkFsbCB0aGVzZSBodWdlIHNldHMsIGFuaW1hbHMgYW5kIGV4dHJhb3JkaW5hcnkgZ2xhZGlhdG9yaWFsIHNjZW5lcyBjYW1lIGF0IGEgY29zdCwgaG93ZXZlciwgYW5kIGlmIGVzdGltYXRlcyBhcmUgYWNjdXJhdGUsIDxlbT5HbGFkaWF0b3IgSUk8L2VtPiBjb3N0IHNvbWV3aGVyZSBpbiB0aGUgcmVnaW9uIG9mICQyNTBtLCBvciBwZXJoYXBzIGV2ZW4gYXMgaGlnaCBhcyAkMzEwbSDigJMgYnkgZmFyIHRoZSBiaWdnZXN0IGJ1ZGdldCBTY290dCBoYXMgZXZlciBoYWQgdG8gd29yayB3aXRoLjwvcD4KCgoKPHA+4oCcSeKAmW0gYWx3YXlzIGluIGRlZXAgcmVzcGVjdCBmb3Igc29tZWJvZHkgd2hv4oCZcyBwYXlpbmcgbWUgdG8gZnVsZmlsIGEgZHJlYW0gb24gcGFwZXIs4oCdIFNjb3R0IHNheXMgb2YgaGlzIHN0dWRpbyBiYWNrZXJzIGF0IFBhcmFtb3VudC4g4oCcVHJ1c3QgbWUuIFRoYXTigJlzIHdoeSBvbiA8ZW0+R2xhZGlhdG9yPC9lbT4gd2UgZW5kZWQgdXAgJDEwbSB1bmRlciBidWRnZXQuIEJlY2F1c2Ugd2UgbW92ZWQgc28gZmFzdCBhbmQgSeKAmW0gcmVzcGVjdGZ1bCBvZiBteSBpbnZlc3RvciBwYXJ0bmVyLCB0aGUgc3R1ZGlvLuKAnTwvcD4KCgoKPHAgY2xhc3M9Imhhcy10ZXh0LWFsaWduLWNlbnRlciI+PHN0cm9uZz5SZWFkIG1vcmU6IDxhIGhyZWY9Imh0dHBzOi8vZmlsbXN0b3JpZXMuY28udWsvZmVhdHVyZXMvZ2xhZGlhdG9yLWlpLWlzLXRoaXMtdGhlLWZpcnN0LXBvc3QtamFudWFyeS02dGgtYmxvY2tidXN0ZXIvIj5HbGFkaWF0b3IgSUkgfCBJcyB0aGlzIHRoZSBmaXJzdCBwb3N0LUphbnVhcnkgNnRoIGJsb2NrYnVzdGVyPzwvYT48L3N0cm9uZz48L3A+CgoKCjxwPkFsdGhvdWdoIGxlc3MgYXJkdW91cyBhIHByb2R1Y3Rpb24gdGhhbiBpdHMgcHJlZGVjZXNzb3IsIDxlbT5HbGFkaWF0b3IgSUkgPC9lbT53YXNu4oCZdCB3aXRob3V0IGl0cyB1bmZvcmVzZWVuIGNoYWxsZW5nZXMuIEZpbG1pbmcgd2FzIGludGVycnVwdGVkIGZvciBmaXZlIGxvbmcgbW9udGhzIGJ5IHRoZSBIb2xseXdvb2Qgc3RyaWtlcywgd2hpY2ggY29udHJpYnV0ZWQgdG8gdGhhdCBodWdlIHByb2R1Y3Rpb24gc3BlbmQ7IGFzIHJlY2VudGx5IGFzIEp1bmUgMjAyNCwgdGhlIHByb2R1Y3Rpb24gd2FzIGJyb3VnaHQgYmFjayBpbnRvIGdlYXIg4oCTIHdpdGggZG96ZW5zIG9mIGV4dHJhcyDigJMgaW4gb3JkZXIgdG8gZmlsbSBzb21lIGFkZGl0aW9uYWwgc2NlbmVzIGZvciB0aGUgZW5kaW5nLiBOb3QgdGhhdCBhbnkgb2YgdGhpcyBhcHBlYXJlZCB0byBmYXplIFNjb3R0OyByYXRoZXIgdGhhbiBzaXQgYW5kIGVuam95IHRoZSBicmVhaywgaGUgaW5zdGVhZCBiZWdhbiBzdG9yeWJvYXJkaW5nIG91dCBoaXMgcGxhbnMgZm9yIDxlbT5HbGFkaWF0b3IgSUlJPC9lbT4uPC9wPgoKCgo8cD7igJxMaXN0ZW4sIEkgaGFkIHRvIGZpcmUgS2V2aW4gU3BhY2V5LOKAnSBTY290dCBzYXlzLCByZWZlcnJpbmcgdG8gaGlzIDIwMTcgdGhyaWxsZXIsIDxlbT5BbGwgVGhlIE1vbmV5IEluIFRoZSBXb3JsZDwvZW0+LCBpbiB3aGljaCBzZXJpb3VzIGFsbGVnYXRpb25zIGFnYWluc3QgU3BhY2V5IHNhdyBoaW0gcmVwbGFjZWQgYnkgQ2hyaXN0b3BoZXIgUGx1bW1lciBhdCB0aGUgZWxldmVudGggaG91ci4g4oCcSSByZXNob3QgW1BsdW1tZXJdIGluIG5pbmUgZGF5cy4gSXTigJlzIGFib3V0IGtub3dpbmcgd2hhdCB5b3XigJlyZSBkb2luZyBhbmQgc3BlZWQgYW5kIGRlY2lzaW9uLiBTbyB3aXRoIGZvdXIgbW9udGhzIGRvd24sIEkganVzdCBzYXQgYW5kIHByZXBhcmVkIHRoZSBuZXh0IGZ1Y2tpbuKAmSBtb3ZpZS4gSSBzYXQgYW5kIGRyZXcgYm9hcmRzIGZvciA8ZW0+R2xhZGlhdG9yPC9lbT4gWzxlbT5JSUk8L2VtPl0uIFNvIEnigJl2ZSBnb3QgdGhlIG5leHQgdGhyZWUgeWVhcnMgbGFpZCBvdXQgd2l0aCB0aHJlZSBtb3ZpZXMu4oCdPC9wPgoKCgo8cD5XaXRoIDxlbT5HbGFkaWF0b3IgSTwvZW0+PGVtPklJPC9lbT4g4oCTIHdob3NlIGV4aXN0ZW5jZSB3aWxsIGhpbmdlIG9uIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGlzIHllYXLigJlzIGZpbG0g4oCTIGZ1cnRoZXIgb2ZmLCBTY290dCBpcyBuZXh0IG1ha2luZyA8ZW0+WW91IFNob3VsZCBCZSBEYW5jaW5nPC9lbT4sIGEgbXVzaWMgYmlvcGljIGFib3V0IHRoZSBCZWUgR2VlcywgYW5kIGhl4oCZcyBhbHNvIHBsYW5uZWQgYSBzY2llbmNlLWZpY3Rpb24gcHJvamVjdCBoZeKAmWQgcHJlZmVyIG5vdCB0byB0YWxrIGFib3V0LjwvcD4KCgoKPHA+PHN0cm9uZz5ObyBzdG9wcGluZzwvc3Ryb25nPjwvcD4KCgoKPHA+UGF1bCBNZXNjYWwgbGF1Z2hzIHdoZW4gd2UgcmFpc2UgdGhlIHN1YmplY3Qgb2Y8ZW0+IEdsYWRpYXRvciBJSUk8L2VtPjsgYnkgY29pbmNpZGVuY2UsIFNjb3R0IGhhZCBtZW50aW9uZWQgYSBzZWNvbmQgc2VxdWVsIHRvIGhpbSBvdmVyIHRoZSBwaG9uZSBvbmx5IGEgZGF5IGVhcmxpZXIuPC9wPgoKCgo8cD7igJxXZSBoYXZlbuKAmXQgc3Bva2VuIGFib3V0IGl0LOKAnSB0aGUgYWN0b3IgY2xhcmlmaWVzIHdoZW4gd2UgYXNrIHdoZXRoZXIgaGXigJlsbCBwbGF5IEx1Y2l1cyBhZ2Fpbi4g4oCcW1JpZGxleV0gd2FzIHBob25pbmcgbWUgYWJvdXQgc29tZXRoaW5nIGVsc2UuIEkgc2F5IGl0IGp1c3QgdG8gbGF1Z2ggYWJvdXQgdGhlIGZhY3QgdGhhdCBpdOKAmXMgYSByZWFsIGluc2lnaHQgaW50byBoaXMgYnJhaW47IHRoYXQgYXQgODYgaGUganVzdCBkb2VzbuKAmXQgc3RvcC4gU28gYW55dGltZSBJIHNheSBJ4oCZbSB0aXJlZCB3aGlsZSBJ4oCZbSBzaG9vdGluZyBzb21ldGhpbmcsIGFuZCBJ4oCZbSAyOCwgSeKAmW0gbGlrZTog4oCYVGhpcyBndXnigJlzIG9wZXJhdGluZyBvbiBhIGRpZmZlcmVudCBsZXZlbC7igJnigInigJ08L3A+CgoKCjxwPkRlYXRoIGFuZCBtb3J0YWxpdHkgaXMgYSByZWN1cnJpbmcgdGhlbWUgaW4gU2NvdHTigJlzIHdvcmssIGFuZCBpdOKAmXMgYSB3b25kZXIgd2hldGhlciBpdOKAmXMgdGhhdCBhd2FyZW5lc3Mgb2YgdGltaW5nIHRpY2tpbmcgYXdheSB0aGF0IGtlZXBzIGhpbSBzbyByZWxlbnRsZXNzbHkgYnVzeS48L3A+CgoKCjxwPuKAnEkgZG9u4oCZdCByZWFsbHkgc3RvcCzigJ0gaGUgYWRtaXR0ZWQgd2hlbiBJIGFza2VkIGhpbSBhYm91dCB0aGlzIGluIDIwMTUsIG5vdCBsb25nIGFmdGVyIGhl4oCZZCBmaW5pc2hlZCBhbm90aGVyIGJpZyBoaXQsIDxlbT5UaGUgTWFydGlhbjwvZW0+LiDigJxXaGF0ZXZlciBJIGRvLCBJ4oCZbSBvbi4gQnV0IGl04oCZcyBsaWZlLCBpc27igJl0IGl0PyBXZeKAmXJlIG5vdCBoZXJlIGZvciB0aGF0IGxvbmcuIEkgZG9u4oCZdCBmZWVsIHZ1bG5lcmFibGUgaW4gYW55IHdheS4gSeKAmW0gbHVja3kgdGhhdCBJ4oCZbSBpbiBnb29kIGhlYWx0aCBhbmQgdGhlIGJyYWlu4oCZcyBzdGlsbCBnb2luZ+KApiBNeSBkYWQgcmV0aXJlZCBmaXZlIHllYXJzIHlvdW5nZXIgdGhhbiBtZS4gUmV0aXJlZXMgYXJlIHJldGlyaW5nIGF0IDUwLCA2MC4gV2hhdCB0aGUgaGVsbCBhcmUgeW91IGdvaW5nIHRvIGRvPyBJIGRvbuKAmXQga25vdy4gSXTigJlzIHVudGhpbmthYmxlIGZvciBtZSB0byByZXRpcmUu4oCdPC9wPgoKCgo8cD5TdGlsbCBkcmF3aW5nLCBzdGlsbCBwbGFubmluZywgc3RpbGwgb2JzZXNzZWQgd2l0aCBtYWtpbmcgbW92aWVzLCBSaWRsZXkgU2NvdHTigJlzIGEgbGl0dGxlIGJpdCBsaWtlIHRoZSB3aGl0ZSByaGlubyB0aGF0IGhlIGZpbmFsbHkgZ290IHRvIHJlYWxpc2UgaW4gPGVtPkdsYWRpYXRvciBJSTwvZW0+IOKAkyB0aHJvdWdoIHNjZW5lIGFmdGVyIHNjZW5lLCBwcm9kdWN0aW9uIGFmdGVyIHByb2R1Y3Rpb24sIGhlIGtlZXBzIGNoYXJnaW5nIG9uLCBvYnN0YWNsZXMgYmUgZGFtbmVkLjwvcD4KCgoKPHA+SW4gMjAyMCwgR2xhZGlhdG9yIHByb2R1Y2VyIERvdWdsYXMgV2ljaywgdGhlIHBlcnNvbiB3aG8gZmF0ZWZ1bGx5IHNob3dlZCBTY290dCB0aGF0IEfDqXLDtG1lIHBhaW50aW5nLCBnYXZlIFRoZSBIb2xseXdvb2QgUmVwb3J0ZXIgYW4gYW5lY2RvdGUgd2hpY2ggY291bGQgZWFzaWx5IHN1bSB1cCB0aGUgZGlyZWN0b3IgaGltc2VsZi4gQWhlYWQgb2YgdGhlIGZpbG3igJlzIHNob290IGluIDE5OTksIFdpY2sgYXNrZWQgYW4gYW5pbWFsIHRyYWluZXIgd2hldGhlciB0aGV5IGNvdWxkIGJyaW5nIGEgcmhpbm9jZXJvcyB0byB0aGUgc2V0IGZvciB0aGUgY29tYmF0IHNjZW5lIGhlIGFuZCBTY290dCB3YW50ZWQgdG8gbWFrZS48L3A+CgoKCjxwPuKAnFllYWgsIHdlIGNvdWxkIGRlZmluaXRlbHkgZG8gdGhhdCzigJ0gdGhlIHRyYWluZXIgc2FpZC4g4oCcVGhlcmXigJlzIGp1c3Qgb25lIHByb2JsZW0g4oCTIHdoZW4gdGhleSBzdGFydCBtb3ZpbmcsIHlvdSBjYW7igJl0IHN0b3AgdGhlbS7igJ08L3A+CgoKCjxwPjxzdHJvbmc+PGVtPkdsYWRpYXRvciBJSTwvZW0+IDwvc3Ryb25nPjxlbT5pcyBpbiBjaW5lbWFzIG5vdy48L2VtPjwvcD4KPGRpdiBjbGFzcz0iYWRkdG9hbnlfc2hhcmVfc2F2ZV9jb250YWluZXIgYWRkdG9hbnlfY29udGVudCBhZGR0b2FueV9jb250ZW50X2JvdHRvbSI+PGRpdiBjbGFzcz0iYWRkdG9hbnlfaGVhZGVyIj5TaGFyZSB0aGlzIEFydGljbGU6PC9kaXY+PGRpdiBjbGFzcz0iYTJhX2tpdCBhMmFfa2l0X3NpemVfMzIgYWRkdG9hbnlfbGlzdCIgZGF0YS1hMmEtdXJsPSJodHRwczovL2ZpbG1zdG9yaWVzLmNvLnVrL2ZlYXR1cmVzL2dsYWRpYXRvci0yLWludGVydmlldy1yaWRsZXktc2NvdHQtaXNudC1zbG93aW5nLWRvd24vIiBkYXRhLWEyYS10aXRsZT0iUmlkbGV5IFNjb3R04oCZcyBwYXRoIHRvIEdsYWRpYXRvciBJSSI+PGEgY2xhc3M9ImEyYV9idXR0b25fZmFjZWJvb2siIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vZmFjZWJvb2s/bGlua3VybD1odHRwcyUzQSUyRiUyRmZpbG1zdG9yaWVzLmNvLnVrJTJGZmVhdHVyZXMlMkZnbGFkaWF0b3ItMi1pbnRlcnZpZXctcmlkbGV5LXNjb3R0LWlzbnQtc2xvd2luZy1kb3duJTJGJmFtcDtsaW5rbmFtZT1SaWRsZXklMjBTY290dCVFMiU4MCU5OXMlMjBwYXRoJTIwdG8lMjBHbGFkaWF0b3IlMjBJSSIgdGl0bGU9IkZhY2Vib29rIiByZWw9Im5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+PC9hPjxhIGNsYXNzPSJhMmFfYnV0dG9uX3R3aXR0ZXIiIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vdHdpdHRlcj9saW5rdXJsPWh0dHBzJTNBJTJGJTJGZmlsbXN0b3JpZXMuY28udWslMkZmZWF0dXJlcyUyRmdsYWRpYXRvci0yLWludGVydmlldy1yaWRsZXktc2NvdHQtaXNudC1zbG93aW5nLWRvd24lMkYmYW1wO2xpbmtuYW1lPVJpZGxleSUyMFNjb3R0JUUyJTgwJTk5cyUyMHBhdGglMjB0byUyMEdsYWRpYXRvciUyMElJIiB0aXRsZT0iVHdpdHRlciIgcmVsPSJub2ZvbGxvdyBub29wZW5lciIgdGFyZ2V0PSJfYmxhbmsiPjwvYT48YSBjbGFzcz0iYTJhX2J1dHRvbl9lbWFpbCIgaHJlZj0iaHR0cHM6Ly93d3cuYWRkdG9hbnkuY29tL2FkZF90by9lbWFpbD9saW5rdXJsPWh0dHBzJTNBJTJGJTJGZmlsbXN0b3JpZXMuY28udWslMkZmZWF0dXJlcyUyRmdsYWRpYXRvci0yLWludGVydmlldy1yaWRsZXktc2NvdHQtaXNudC1zbG93aW5nLWRvd24lMkYmYW1wO2xpbmtuYW1lPVJpZGxleSUyMFNjb3R0JUUyJTgwJTk5cyUyMHBhdGglMjB0byUyMEdsYWRpYXRvciUyMElJIiB0aXRsZT0iRW1haWwiIHJlbD0ibm9mb2xsb3cgbm9vcGVuZXIiIHRhcmdldD0iX2JsYW5rIj48L2E+PGEgY2xhc3M9ImEyYV9kZCBhZGR0b2FueV9zaGFyZV9zYXZlIGFkZHRvYW55X3NoYXJlIiBocmVmPSJodHRwczovL3d3dy5hZGR0b2FueS5jb20vc2hhcmUiPjwvYT48L2Rpdj48L2Rpdj4=