PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+CjxodG1sPgo8aGVhZD4KPHRpdGxlPk5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgNS41IFJlbGVhc2UgTm90ZXM8L3RpdGxlPgo8bWV0YSBuYW1lPSJERVNDUklQVElPTiIgY29udGVudD0iUmVsZWFzZSBub3RlcyBmb3IgdGhlIE5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgNS41Ij4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vLi4vLi4vbmV0YmVhbnMuY3NzIj4gICAgIAogPC9oZWFkPgogPGJvZHk+CiA8IS0tIEJlZ2luIENvbnRlbnQgQXJlYSAtLT4KPGEgbmFtZT0idG9wIj48L2E+CjxoMT5OZXRCZWFucyYjODQ4MjsgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUgUmVsZWFzZSBOb3RlczwvaDE+CjxwPldlbGNvbWUgdG8gTmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjay48L3A+Cgo8cD5OZXRCZWFucyYjODQ4MjsgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUgbGV0cyB5b3UgZGV2ZWxvcCBDL0MrKyAKYXBwbGljYXRpb25zIGZvciB0aGUgTWljcm9zb2Z0IFdpbmRvd3MsIExpbnV4LCAKYW5kIFNvbGFyaXMgT3BlcmF0aW5nIFN5c3RlbXMgd2l0aCB0aGUgTmV0QmVhbnMgSURFLgo8L3A+CjxwPgpOZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNSBpcyBjb21wYXRpYmxlIHdpdGggdGhlIE5ldEJlYW5zIElERSA1LjUuCjwvcD4KPHA+PGI+Q29udGVudHM8L2I+PC9wPgo8dWw+Cgo8bGk+PGEgaHJlZj0iI3N5c3RlbV9yZXF1aXJlbWVudHMiPlN5c3RlbSBSZXF1aXJlbWVudHM8L2E+PC9saT4KPGxpPjxhIGhyZWY9IiNjb25maWd1cmF0aW9uIj5Db25maWd1cmF0aW9uIEluZm9ybWF0aW9uPC9hPjwvbGk+CjxsaT48YSBocmVmPSIja25vd25faXNzdWVzIj5Lbm93biBJc3N1ZXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9IiNkb2N1bWVudGF0aW9uIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CjwvdWw+CjxibG9ja3F1b3RlPgo8cD48Yj5Ob3RlOiA8L2I+SWYgeW91IGFyZSBsb29raW5nIGZvciBpbmZvcm1hdGlvbiBhYm91dCBpbnN0YWxsaW5nIHRoZSAKc29mdHdhcmUsIHNlZSB0aGUgPGEgaHJlZj0iY25kLWluc3RhbGwuaHRtbCI+TmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUgSW5zdGFsbGF0aW9uIAphbmQgU2V0dXAgSW5zdHJ1Y3Rpb25zPC9hPi48L3A+Cgo8L2Jsb2NrcXVvdGU+CjxoMj48YSBuYW1lPSJzeXN0ZW1fcmVxdWlyZW1lbnRzIj5TeXN0ZW0gUmVxdWlyZW1lbnRzPC9hPjwvaDI+CjxibG9ja3F1b3RlPgo8IS0tPGEgbmFtZT0icmVxX29zIj48L2E+LS0+CjxoNSBzdHlsZT0iYm9yZGVyLWJvdHRvbTogMHB0IG5vbmU7Ij5TdXBwb3J0ZWQgT3BlcmF0aW5nIFN5c3RlbXM8L2g1Pgo8cD5OZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNSBydW5zIG9uIG9wZXJhdGluZyBzeXN0ZW1zIHRoYXQgCnN1cHBvcnQgdGhlIEphdmEgVk0uIApOZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNSBoYXMgYmVlbiAKdGVzdGVkIG9uIHRoZSBmb2xsb3dpbmcKb3BlcmF0aW5nIHN5c3RlbXM6Cjx1bD4KPGxpPk1pY3Jvc29mdCBXaW5kb3dzIFhQIFByb2Zlc3Npb25hbCBTUDI8L2xpPgo8bGk+UmVkIEhhdCBGZWRvcmEgQ29yZSAzPC9saT4KPGxpPlNvbGFyaXMmIzg0ODI7IDEwIE9wZXJhdGluZyBTeXN0ZW0gKFNvbGFyaXMgT1MpIChTUEFSQ64gYW5kIHg4Ni94NjQgClBsYXRmb3JtIEVkaXRpb24pCjwvdWw+CjwvcD4KPHA+TmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayBhbHNvIHJ1bnMgb24gdGhlIGZvbGxvd2luZyBwbGF0Zm9ybXM6Cjx1bD4KPGxpPk1pY3Jvc29mdCBXaW5kb3dzIDIwMDAgUHJvZmVzc2lvbmFsIFNQNDwvbGk+Cgo8bGk+U29sYXJpcyYjODQ4MjsgOCBPUyAoU1BBUkMmIzE3NCBhbmQgeDg2L3g2NCBQbGF0Zm9ybSBFZGl0aW9uKSBhbmQgU29sYXJpcyYjODQ4MjsgOSBPUyAoU1BBUkMmIzE3NCBhbmQgeDg2L3g2NCBQbGF0Zm9ybSBFZGl0aW9uKTwvbGk+CjxsaT5WYXJpb3VzIG90aGVyIExpbnV4IGRpc3RyaWJ1dGlvbnM8L2xpPgo8L3VsPgogPC9wPgoKPGEgbmFtZT0ibWluX2h3Ij48L2E+CjxoNSBzdHlsZT0iYm9yZGVyLWJvdHRvbTogMHB0IG5vbmU7Ij5NaW5pbXVtIEhhcmR3YXJlIENvbmZpZ3VyYXRpb248L2g1Pgo8YnI+Cgo8ZGl2IGNsYXNzPSJncmV5Ym94Ij4KPHA+PGI+Tm90ZTo8L2I+IFRoZSBOZXRCZWFucyBJREUncyBtaW5pbXVtIHNjcmVlbiByZXNvbHV0aW9uIGlzIDEwMjR4NzY4IHBpeGVscy48L3A+CjwvZGl2Pgo8YnI+Cjx1bD4KPGxpPjxiPk1pY3Jvc29mdCBXaW5kb3dzIG9wZXJhdGluZyBzeXN0ZW1zPC9iPjoKPHVsPgo8bGk+PGI+UHJvY2Vzc29yOiA8L2I+NTAwIE1IeiBJbnRlbCBQZW50aXVtIElJSSB3b3Jrc3RhdGlvbiBvciBlcXVpdmFsZW50PC9saT4KPGxpPjxiPk1lbW9yeTogPC9iPjUxMiBNQjwvbGk+Cgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjg1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2UgPC9saT4KPC91bD4KPGJyPgo8L2xpPgo8bGk+PGI+TGludXggb3BlcmF0aW5nIHN5c3RlbTwvYj46Cjx1bD4KPGxpPjxiPlByb2Nlc3NvcjogPC9iPjUwMCBNSHogSW50ZWwgUGVudGl1bSBJSUkgd29ya3N0YXRpb24gb3IgZXF1aXZhbGVudDwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj41MTIgTUI8L2xpPgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjQ1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2U8L2xpPgoKPC91bD4KPGJyPgo8L2xpPgo8bGk+PGI+U29sYXJpcyBPUyAoU1BBUkMpPC9iPjoKPHVsPgo8bGk+PGI+UHJvY2Vzc29yOiA8L2I+IFVsdHJhU1BBUkMgSUkgNDUwIE1IejwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj41MTIgTUI8L2xpPgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjQ1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2U8L2xpPgo8L3VsPgoKPGJyPgo8L2xpPgo8bGk+PGI+U29sYXJpcyBPUyAoeDg2L3g2NCBQbGF0Zm9ybSBFZGl0aW9uKTwvYj46Cjx1bD4KPGxpPjxiPlByb2Nlc3NvcjogPC9iPkFNRCBPcHRlcm9uIDEwMCBTZXJpZXMgMS44IEdIejwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj41MTIgTUI8L2xpPgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjQ1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2U8L2xpPgo8L3VsPgo8YnI+CjwvbGk+CjwvdWw+CjwvdWw+CjxhIG5hbWU9InJlcV9odyI+PC9hPgo8aDUgc3R5bGU9ImJvcmRlci1ib3R0b206IDBwdCBub25lOyI+UmVjb21tZW5kZWQgSGFyZHdhcmUgQ29uZmlndXJhdGlvbjwvaDU+Cgo8dWw+CjxsaT48Yj5NaWNyb3NvZnQgV2luZG93cyBvcGVyYXRpbmcgc3lzdGVtczwvYj46Cjx1bD4KPGxpPjxiPlByb2Nlc3NvcjogPC9iPjEuNCBHSHogSW50ZWwgUGVudGl1bSBJSUkgd29ya3N0YXRpb24gb3IgZXF1aXZhbGVudDwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj4xIEdCPC9saT4KPGxpPjxiPkRpc2sgc3BhY2U6IDwvYj4xIEdCIG9mIGZyZWUgZGlzayBzcGFjZTwvbGk+CjwvdWw+Cjxicj4KPC9saT4KPGxpPjxiPkxpbnV4IG9wZXJhdGluZyBzeXN0ZW08L2I+OgoKPHVsPgo8bGk+PGI+UHJvY2Vzc29yOiA8L2I+MS40IEdIeiBJbnRlbCBQZW50aXVtIElJSSBvciBlcXVpdmFsZW50PC9saT4KPGxpPjxiPk1lbW9yeTogPC9iPjEgR0I8L2xpPgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjg1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2U8L2xpPgo8L3VsPgo8YnI+CjwvbGk+CjxsaT48Yj5Tb2xhcmlzJiM4NDgyOyBPUyAoU1BBUkMmIzE3NDspPC9iPjoKCjx1bD4KPGxpPjxiPlByb2Nlc3NvcjogPC9iPlVsdHJhU1BBUkMgSUlJaSAxIEdIejwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj4xIEdCPC9saT4KPGxpPjxiPkRpc2sgc3BhY2U6IDwvYj44NTAgTUIgb2YgZnJlZSBkaXNrIHNwYWNlPC9saT4KPC91bD4KPGJyPgo8L2xpPgo8bGk+PGI+U29sYXJpcyYjODQ4MjsgT1MgKHg4Ni94NjQgcGxhdGZvcm0gZWRpdGlvbik8L2I+OgoKPHVsPgo8bGk+PGI+UHJvY2Vzc29yOiA8L2I+QU1EIE9wdGVyb24gMTAwIFNlcmllcyAxLjggR0h6PC9saT4KPGxpPjxiPk1lbW9yeTogPC9iPjEgR0I8L2xpPgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjg1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2U8L2xpPgo8L3VsPgo8YnI+CjwvbGk+CjwvdWw+CjwvbGk+CjwvdWw+CjxhIG5hbWU9InJlcV9zdyI+PC9hPgo8aDUgc3R5bGU9ImJvcmRlci1ib3R0b206IDBwdCBub25lOyI+UmVxdWlyZWQgU29mdHdhcmU8L2g1Pgo8cD5OZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNSBydW5zIG9uIHRoZSBKYXZhIDIgUGxhdGZvcm0gU3RhbmRhcmQgRWRpdGlvbiBEZXZlbG9wbWVudCBLaXQgNS4wIFVwZGF0ZSAxIG9yIGhpZ2hlciAoSkRLIDUuMCwgdmVyc2lvbiAxLjUuMF8wMSBvciBoaWdoZXIpLCB3aGljaCBjb25zaXN0cyBvZiB0aGUgSmF2YSBSdW50aW1lIEVudmlyb25tZW50IHBsdXMgZGV2ZWxvcGVyIHRvb2xzIGZvciBjb21waWxpbmcsIGRlYnVnZ2luZywgYW5kIHJ1bm5pbmcgYXBwbGljYXRpb25zIHdyaXR0ZW4gaW4gdGhlIEphdmEgbGFuZ3VhZ2UuIFN1biBKYXZhIFN5c3RlbSBBcHBsaWNhdGlvbiBTZXJ2ZXIgUGxhdGZvcm0gRWRpdGlvbiA5IGhhcyBiZWVuIHRlc3RlZCB3aXRoIEpESyA1LjAgdXBkYXRlIDYuPC9wPgo8cD4KWW91IGNhbiBkb3dubG9hZCB0aGUgSkRLIGZvciB5b3VyIHBsYXRmb3JtIGZyb20gPGEKaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qMnNlLzEuNS4wL2Rvd25sb2FkLmh0bWwiPmh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8xLjUuMC9kb3dubG9hZC5odG1sPC9hPi4KPC9wPgo8L2Jsb2NrcXVvdGU+Cjxicj4KPHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI3RvcCI+dG9wPC9hPjwvcD4KPGgyPjxhIG5hbWU9ImNvbmZpZ3VyYXRpb24iPkNvbmZpZ3VyYXRpb24gSW5mb3JtYXRpb248L2E+PC9oMj4KPHA+VGhlIE5ldEJlYW5zIElERSBoYXMgYSBkZWZhdWx0IGhlYXAgc2l6ZSBvZiAxMjggTUIuIE5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IApQYWNrIHJ1bnMgd2VsbCB3aXRoIHRoaXMgZGVmYXVsdCBzZXR0aW5nIHdoZW4geW91IGFyZSBkZXZlbG9waW5nIHNtYWxsIHByb2plY3RzICAKd2l0aCB1cCB0byA1MDAgc291cmNlIGFuZCBoZWFkZXIgZmlsZXMuCjwvcD4KPHA+V2hlbiB5b3UgYXJlIGRldmVsb3BpbmcgbGFyZ2VyIHByb2plY3RzLCB5b3Ugd2lsbCBuZWVkIHRvIGluY3JlYXNlIHRoZSBoZWFwIHNpemUuCklmIHlvdSBnZXQgYW4gT3V0T2ZNZW1vcnkgZXhjZXB0aW9uIHdoZW4gZGV2ZWxvcGluZyBhIGxhcmdlIHByb2plY3QsIHRoZSBoZWFwIHNpemUgaXMKYSBsaWtlbHkgY2F1c2UuCjwvcD4KPHA+CllvdSBjYW4gc2V0IHRoZSBoZWFwIHNpemUgZm9yIHRoZSBKYXZhIFZpcnR1YWwgTWFjaGluZSAoSlZNKSogIApvbiB3aGljaCB0aGUgTmV0QmVhbnMgSURFIHJ1bnMgaW4gdGhlIDx0dD5uZXRiZWFucy5jb25mPC90dD4gCmZpbGUuIAo8cD48Yj5UbyBjaGFuZ2UgdGhlIGhlYXAgc2l6ZTo8L2I+PC9wPgo8b2w+CjxsaT5Db3B5IHRoZSA8dHQ+bmV0YmVhbnMuY29uZjwvdHQ+IGZyb20gdGhlIDx0dD5ldGM8L3R0PiAKZm9sZGVyIGluIHRoZSBOZXRCZWFucyAKaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQppbnRvIHlvdXIgTmV0QmVhbnMgdXNlciBkaXJlY3RvcnkgKDx0dD4kSE9NRS8ubmV0YmVhbnMvNS41PC90dD4pLiA8L2xpPgo8bGk+SW4gdGhlIDx0dD5uZXRiZWFucy5jb25mPC90dD4gZmlsZSBpbiB5b3VyIHVzZXIgZGlyZWN0b3J5LCBlZGl0IHRoZSA8dHQ+LUotWG14PC90dD4gCmNvbW1hbmQgbGluZSBKYXZhIHN0YXJ0dXAgc3dpdGNoIChib2xkZWQgYmVsb3cpIGluIHRoZSA8dHQ+bmV0YmVhbnMuY29uZjwvdHQ+IGZpbGUsIAphbmQgdGhlbiByZXN0YXJ0IHRoZSBJREUuIAo8cHJlPgojIGNvbW1hbmQgbGluZSBzd2l0Y2hlcwpuZXRiZWFuc19kZWZhdWx0X29wdGlvbnM9Ii1KLVhtczMybSA8Yj4tSi1YbXgxMjhtPC9iPiAtSi1YWDpQZXJtU2l6ZT0zMm0gCi1KLVhYOk1heFBlcm1TaXplPTk2bSAtSi1YdmVyaWZ5Om5vbmUgLUotRGFwcGxlLmxhZi51c2VTY3JlZW5NZW51QmFyPXRydWUiCjwvcHJlPjwvbGk+Cjwvb2w+PHA+ClRoZSByZWNvbW1lbmRlZCBoZWFwIHNpemVzIGZvciBOZXRCZWFucyBDL0MrKyAKRGV2ZWxvcG1lbnQgUGFjayBmb3IgbWVkaXVtIGFuZCBsYXJnZSBhcHBsaWNhdGlvbnMgYXJlOgo8dWw+CjxsaT5Gb3IgZGV2ZWxvcGluZyBtZWRpdW0gYXBwbGljYXRpb25zICg1MDAtMjAwMCAKc291cmNlIGFuZCBoZWFkZXIgZmlsZXMpIG9uIGEgc3lzdGVtIHdpdGggMSBHQiBvciBtb3JlIG9mIFJBTTogNTEyIE1CPC9saT4KPGxpPkZvciBkZXZlbG9waW5nIGxhcmdlIGFwcGxpY2F0aW9ucyAobW9yZSB0aGFuIDIwMDAgc291cmNlIGFuZCBoZWFkZXIgZmlsZXMpIG9uIGEgCnN5c3RlbSB3aXRoIDIgR0Igb3IgbW9yZSBvZiBSQU0pOiAxIEdCPC9saT4KPC91bD4KPHA+RG8gbm90IGluY3JlYXNlIHRoZSBoZWFwIHNpemUgdG8gbW9yZSB0aGFuIDEgR0IuCjwvcD4KPHA+SWYgeW91IGFyZSBydW5uaW5nIHRoZSBTdW4gSlZNLCB5b3UgY2FuIGFsc28gYWRkIHRoZSBnYXJiYWdlIGNvbGxlY3RvciBzd2l0Y2hlcyA8dHQ+LUotWFg6K1VzZUNvbmNNYXJrU3dlZXBHQzwvdHQ+Cihjb25jdXJyZW50IGNvbGxlY3RvcikgYW5kIDx0dD4tSi1YWDorVXNlUGFyTmV3R0M8L3R0PiAocGFyYWxsZWwgY29sbGVjdG9yKSB0byB0aGUgCjx0dD5uZXRiZWFucy5jb25mPC90dD4gZmlsZS4gVGhlc2Ugb3B0aW9ucyBhbGxvdyB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgdG8gcnVuIGluCnBhcmFsbGVsIHdpdGggdGhlIG1haW4gZXhlY3V0aW9uIGVuZ2luZS4gVGhleSBtaWdodCBub3QgYmUgc3VwcG9ydGVkIGJ5IG5vbi1TdW4KaW1wbGVtZW50YXRpb25zIG9mIHRoZSBKVk0uCjwvcD4KPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gb24gTmV0QmVhbnMgc3dpdGNoIHNldHRpbmdzLCBzZWUgdGhlIDxhCmhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2tiLzU1L3VzaW5nLW5ldGJlYW5zL2NvbmZpZ3VyaW5nLmh0bWwiPkNvbmZpZ3VyaW5nIHRoZSBJREUKc2VjdGlvbiBvZiA8aT5Vc2luZyBOZXRCZWFucyBJREUgNS41PC9pPjwvYT4KPC9wPgo8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBOZXRCZWFucyBwZXJmb3JtYW5jZSB0dW5pbmcsIHNlZSA8YQpocmVmPSJodHRwOi8vcGVyZm9ybWFuY2UubmV0YmVhbnMub3JnL2hvd3RvL2p2bXN3aXRjaGVzL2luZGV4Lmh0bWwiPjxpPlR1bmluZyBKVk0KU3dpdGNoZXMgZm9yIFBlcmZvcm1hbmNlPC9pPjwvYT4uCjwvcD4KPHA+PGI+KiBOb3RlOjwvYj4gVGhlIHRlcm1zICJKYXZhIFZpcnR1YWwgTWFjaGluZSIgYW5kICJKVk0iIG1lYW4gYSBWaXJ0dWFsIE1hY2hpbmUgZm9yIHRoZSAKSmF2YShUTSkgcGxhdGZvcm0uCjwvcD4KPC9ibG9ja3F1b3RlPi9zZS90cHVicy9Xb3JrLwo8YnI+CjxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L3A+Cjxicj4KPGEgbmFtZT0ia25vd25faXNzdWVzIj48L2E+CjxoMj5Lbm93biBJc3N1ZXM8L2gyPgo8cD5UaGlzIE5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgNS41IHJlbGVhc2UKbGV0cyB5b3UgZXhwbG9yZSBhbmQgZXZhbHVhdGUgbmV3IGZ1bmN0aW9uYWxpdHkgaW4gdGhlIElERS4gV2UgZW5jb3VyYWdlIHlvdSB0byBnZXQgCmludm9sdmVkIGFuZCBnaXZlIHVzIGZlZWRiYWNrIGJ5IGxvZ2dpbmcgYW55IGlzc3VlcyB5b3UgZW5jb3VudGVyIGluIHRoZSAKSXNzdWUgVHJhY2tpbmcgc3lzdGVtIGF0IDxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2NvbW11bml0eS9pc3N1ZXMuaHRtbCI+Cmh0dHBzOi8vbmV0YmVhbnMub3JnL2NvbW11bml0eS9pc3N1ZXMuaHRtbDwvYT4uPC9wPgo8cD5UaGUgdW5yZXNvbHZlZCBpc3N1ZXMgZm9yIHRoaXMgcmVsZWFzZSBhcmUgYXMgZm9sbG93czogPC9wPgo8YmxvY2txdW90ZT4KPHVsPgogICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD03NTEyMCI+CglJc3N1ZSAjNzUxMjA6IFRlcm1pbmF0ZSBQcm9jZXNzIGlzIGZhaWxpbmc8L2E+Cgk8YmxvY2txdW90ZT4KCSAgICA8cD48Yj5EZXNjcmlwdGlvbjo8L2I+CgkJQXR0ZW1wdGluZyB0byB0ZXJtaW5hdGUgYSBydW5uaW5nIHByb2Nlc3MgZnJvbSB0aGUgUnVudGltZSB0YWIgZG9lcwoJCW5vdCBhbHdheXMgdGVybWluYXRlIHRoZSBwcm9jZXNzLiBUaGUgUnVudGltZSB0YWIgbGlzdHMgdGhlIHByb2Nlc3MKCQlhcyB0ZXJtaW5hdGVkLCBidXQgbWlnaHQgbm90IHJlYWxseSBiZSB0ZXJtaW5hdGVkLgoJICAgIDwvcD4KCSAgICA8cD48Yj5Xb3JrYXJvdW5kPC9iPjoKCQlCZWZvcmUgdGVybWluYXRpbmcgYSBwcm9jZXNzIGluIHRoZSBJREUsIGNoZWNrIAoJCXRoZSBwcm9jZXNzIElEIGJ5IHVzaW5nIHRoZSA8dHQ+cHM8L3R0PiBjb21tYW5kIG9uIFVOSVggb3IgdGhlIFRhc2sgCgkJTWFuYWdlciBvbiBXaW5kb3dzLiBBZnRlciB0ZXJtaW5hdGluZyB0aGUgcHJvY2VzcyBpbiB0aGUgSURFLCBjaGVjayAKCQl0aGF0IHRoZSBwcm9jZXNzCgkJd2FzIHJlYWxseSB0ZXJtaW5hdGVkLiBJZiBub3QsIHVzZSB0aGUgPHR0PmtpbGw8L3R0PiBjb21tYW5kIG9uIFVOSVggCgkJc3lzdGVtcyBvciBFbmQgUHJvY2VzcyBpbiB0aGUgVGFzayBNYW5hZ2VyIG9uIFdpbmRvd3MuCgkgICAgPC9wPgoKCTwvYmxvY2txdW90ZT4KICAgIDwvbGk+CgogICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD04OTg3MiI+CglJc3N1ZSAjODk4NzI6ICJQYXJzZXIgU2V0dGluZ3MiIGZvciBTdW4gQ29tcGlsZXIgQ29sbGVjdGlvbiBhcmUgaW5jb3JyZWN0PC9hPgoJPGJsb2NrcXVvdGU+CgkgICAgPHA+PGI+RGVzY3JpcHRpb246PC9iPgoJCUluY2x1ZGUgZGlyZWN0aXZlcyBmb3IgPHR0PiZsdDtjc3RkbGliJmd0OzwvdHQ+LAoJCTx0dD4mbHQ7Y3N0cmluZyZndDs8L3R0PiBhbmQgc29tZSBvdGhlcgoJCWZpbGVzIGFyZSB1bmRlcmxpbmVkIGFzIGVycm9uZW91cyB3aGVuIHRoZSBTdW4gQ29tcGlsZXIgQ29sbGVjdGlvbiAKCQlpcyB1c2VkLgoJICAgIDwvcD4KCgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CgkJQWRkIHRoZSBpbmNsdWRlIHNlYXJjaCBwYXRocyBtYW51YWxseToKCQk8b2w+CgkJPGxpPlNlbGVjdCBUb29scyAmZ3Q7IE9wdGlvbnMuPC9saT4KCQk8bGk+SW4gdGhlIE9wdGlvbnMgZGlhbG9nIGJveCwgc2VsZWN0IHRoZSBDL0MrKwoJCW5vZGUgYW5kIGNsaWNrIFBhcnNlciBTZXR0aW5ncy48L2xpPgoJCTxsaT5TZWxlY3QgdGhlIFN1biBDb21waWxlciBDb2xsZWN0aW9uIGluCgkJdGhlIGRyb3AtZG93biBsaXN0LCBhbmQgY2xpY2sgdGhlIFN1biBDKysgQ29tcGlsZXIgdGFiLgoJCTwvbGk+CgkJPGxpPgoJCUFkZCB0aGUgY29ycmVjdAoJCXBhdGhzIHVzaW5nIHRoZSBBZGQgYnV0dG9uLgoJCTwvbGk+CgkJPC9vbD4KCSAgICA8L3A+Cgk8L2Jsb2NrcXVvdGU+CiAgICA8L2xpPgoKICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9OTAwMjYiPgoJSXNzdWUgIzkwMDI2OiBRdWljayBOYXZpZ2F0b3Igd29ya3MgaW5jb3JyZWN0bHkgYWZ0ZXIgc291cmNlIGZpbGUgd2FzIHJlbmFtZWQ8L2E+CgoJPGJsb2NrcXVvdGU+CgkgICAgPHA+PGI+RGVzY3JpcHRpb246PC9iPgoJCVdoZW4geW91IHJlbmFtZSBhIGZpbGUsIHRoZSBRdWljayBOYXZpZ2F0b3IgKGEgZHJvcC1kb3duIGJveCBpbiB0aGUgZWRpdG9yCgkJdG9vbGJhciB0aGF0IGRpc3BsYXlzIHRoZSBvdXRsaW5lIGZvciB0aGUgY3VycmVudCBmaWxlKSBkb2VzIG5vdCB3b3JrCgkJcHJvcGVybHkuCgkgICAgPC9wPgoJICAgIDxwPjxiPldvcmthcm91bmQ6PC9iPgoJCUNsb3NlIHRoZSBmaWxlIGFuZCB0aGVuIHJlb3BlbiBpdC4KCSAgICA8L3A+Cgk8L2Jsb2NrcXVvdGU+CiAgICA8L2xpPgoKICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9ODk4ODAiPgoJSXNzdWUgIzg5ODgwOiBQcm9qZWN0IGlzIG5vdCByZXBhcnNlZCB3aGVuIENvbXBpbGVyIENvbGxlY3Rpb24gaXMgc3dpdGNoZWQ8L2E+Cgk8YmxvY2txdW90ZT4KCSAgICA8cD48Yj5EZXNjcmlwdGlvbjo8L2I+CgkJSWYgeW91IHN3aXRjaCBjb21waWxlciBjb2xsZWN0aW9ucyBmb3IgYSBwcm9qZWN0LCB0aGUgcHJvamVjdCBpcyBub3QKCQlyZXBhcnNlZC4gQWZ0ZXIgdGhlIHN3aXRjaCwgY29kZSBjb21wbGV0aW9uIGFuZCBoeXBlcmxpbmtzIG1pZ2h0IG5vdCB3b3JrIHByb3Blcmx5CgkJZm9yIHRoZSBwcm9qZWN0LgoJICAgIDwvcD4KCSAgICA8cD48Yj5Xb3JrYXJvdW5kOjwvYj4KCgkJQ2xvc2UgdGhlIHByb2plY3QgYW5kIG9wZW4gaXQgYWdhaW4uCgkgICAgPC9wPgoJPC9ibG9ja3F1b3RlPgogICAgPC9saT4KICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9ODk4NzYiPgoJSXNzdWUgIzg5ODc2OiBnZGItbGl0ZSBpcyBicm9rZW4gZm9yIGFwcGxpY2F0aW9ucyBjb21waWxlZCBieSBTdW4gY29tcGlsZXJzIGNvbGxlY3Rpb248L2E+Cgk8YmxvY2txdW90ZT4KCSAgICA8cD48Yj5EZXNjcmlwdGlvbjo8L2I+CiAgICAgICAgICAgICAgICBUaGUgZGVidWdnZXIgZG9lcyBub3QgYWx3YXlzIHdvcmsgcHJvcGVybHkgZm9yIHByb2plY3RzIGNvbXBpbGVkIHdpdGgKCQl0aGUgU3VuIENvbXBpbGVyIENvbGxlY3Rpb24uCgkgICAgPC9wPgoJICAgIDxwPjxiPldvcmthcm91bmQ6PC9iPgoJCSAgICBUaGUgU3VuIFN0dWRpbyBDb21waWxlciBDb2xsZWN0aW9uIGhhcyBoYWQgbGl0dGxlIG9mZmljaWFsIAoJCSAgICB0ZXN0aW5nIHdpdGggdGhlIDx0dD5nZGI8L3R0PiBkZWJ1Z2dlci4gQW4gdW5vZmZpY2lhbCBkZXZlbG9wZXIgc3R1ZHkKCQkgICAgcHJvZHVjZWQgbWl4ZWQgcmVzdWx0cyBpbiB0ZXN0aW5nIHNldmVyYWwgPHR0PmdkYjwvdHQ+IHZlcnNpb25zCiAgICB3aXRoIHRoZSBTdW4gU3R1ZGlvIGNvbXBpbGVycyBvbiBMaW51eCBhbmQgdGhlIFNvbGFyaXMgT1MuIFlvdSBjYW4gc2VlIHRoZXNlCiAgICByZXN1bHRzIGF0CiAgICA8YQogICAgaHJlZj0iaHR0cDovL2NuZC5uZXRiZWFucy5vcmcvZ2RiLXNzY2MuaHRtbCI+PHR0Pmh0dHA6Ly9jbmQubmV0YmVhbnMub3JnL2dkYi1zc2NjLmh0bWw8L3R0PjwvYT4uCgkgICAgPC9wPgoJPC9ibG9ja3F1b3RlPgogICAgPC9saT4KCiAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9uZXRiZWFucy5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTc5MDIzIj4KCUlzc3VlICM3OTAyMzogQ2xhc3MgVmlldyBzaG91bGQgcmVkdWNlIHRpbWUgc3BlbnQgaW4gdXBkYXRpbmcgdHJlZSBmb3IgbGFyZ2UgcHJvamVjdHMuPC9hPgoJPGJsb2NrcXVvdGU+CgkgICAgPHA+PGI+RGVzY3JpcHRpb246PC9iPgoJCUZvciBsYXJnZSBwcm9qZWN0cyBhbmQgZXNwZWNpYWxseSBmb3IgcHJvamVjdHMgd2l0aCBhICJwbGFpbiIgc3RydWN0dXJlCgkJKHByb2plY3RzIHRoYXQgYXJlIG5vdCB3ZWxsIHN0cnVjdHVyZWQgdXNpbmcgbmFtZXNwYWNlcyksIGhhdmluZyB0aGUKCQlDbGFzcyBWaWV3IG9wZW4gd2hpbGUgdGhlIHByb2plY3QgaXMgYmVpbmcgcGFyc2VkIG1pZ2h0IHNsb3cgZG93bgoJCXBhcnNpbmcgbm90aWNlYWJseS4KCSAgICA8L3A+CgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CiAgICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgcGFyc2luZyB5b3VyIHByb2plY3QgaXMgdGFraW5nIHRvbyBsb25nLCBjbG9zZSB0aGUgCgkJQ2xhc3MgVmlldyBhbmQgcmVvcGVuIGl0CgkJYWZ0ZXIgdGhlIHByb2plY3QgaXMgY29tcGxldGVseSBwYXJzZWQuCgkgICAgPC9wPgoJPC9ibG9ja3F1b3RlPgogICAgPC9saT4KCiAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9uZXRiZWFucy5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTc2MTczIj4KCUlzc3VlICM3NjE3MzogTm8gYXV0b21hdGljIGZsdXNoIG9mIG91dHB1dCBiZWZvcmUgaW5wdXQ8L2E+Cgk8YmxvY2txdW90ZT4KCSAgICA8cD48Yj5EZXNjcmlwdGlvbjo8L2I+CiAgICAgICAgICAgICAgICBXaGVuIHJ1bm5pbmcgYSBDIG9yIEMrKyBwcm9ncmFtLCB0aGUgT1MgZmx1c2hlcyA8dHQ+c3Rkb3V0PC90dD4gYmVmb3JlIHJlYWRpbmcgZnJvbSAKICAgICAgICAgICAgICAgIDx0dD5zdGRpbjwvdHQ+LgoJCVRoaXMgZmx1c2hpbmcgZG9lcyBub3Qgb2NjdXIgaWYgeW91IHJ1biB0aGUgcHJvZ3JhbSBpbiB0aGUgT3V0cHV0IHdpbmRvdy4KCSAgICA8L3A+CgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CgkJSW4gdGhlIFJ1bm5pbmcgY2F0ZWdvcnkgb2YgdGhlIHByb2plY3QgcHJvcGVydGllcywgc2V0IHRoZSBDb25zb2xlIAoJCVR5cGUgdG8gRXh0ZXJuYWwgVGVybWluYWwgb3IgRGVmYXVsdC4KCSAgICA8L3A+Cgk8L2Jsb2NrcXVvdGU+CiAgICA8L2xpPgoKICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9ODk1MTQiPgoJSXNzdWUgIzg5NTE0OiBJbnB1dCBmaWVsZCBpbiBPdXRwdXQgcGFuZWwgaXMgbWlzbGVhZGluZyB3aGVuIGV4dGVybmFsIAoJdGVybWluYWwgaXMgdXNlZDwvYT4KCgk8YmxvY2txdW90ZT4KCSAgICA8cD48Yj5EZXNjcmlwdGlvbjo8L2I+CgkJV2hlbiB5b3UgcnVuIGEgcHJvZ3JhbSBpbiBhbiBleHRlcm5hbCB0ZXJtaW5hbCwgdGhlIE91dHB1dCB3aW5kb3cgaW4KCQl0aGUgSURFIGhhcwoJCWFuIElucHV0IGZpZWxkLiBUZXh0IHR5cGVkIGludG8gdGhpcyBmaWVsZCBpcyBpZ25vcmVkCgkJYW5kIGRvZXMgbm90IGdvIHRvIHRoZSBydW5uaW5nIHByb2dyYW0uCgkJVGhlIHByb2dyYW0gcmVhZHMgYWxsIGlucHV0IGZyb20gdGhlIGV4dGVybmFsIHRlcm1pbmFsLgoJICAgIDwvcD4KCSAgICA8cD48Yj5Xb3JrYXJvdW5kOjwvYj4KCQlJZ25vcmUgdGhlIElucHV0IGZpZWxkLiBVc2UgdGhlIGV4dGVybmFsIHRlcm1pbmFsIGZvciBhbGwgcHJvZ3JhbXMgCgkJcmVjZWl2aW5nIHRlcm1pbmFsIGlucHV0LgoJICAgIDwvcD4KCTwvYmxvY2txdW90ZT4KICAgIDwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD04OTk2MiI+CglJc3N1ZSAjODk5NjI6ICRQQVRIIGlzIGNvcnJ1cHRlZCBmb3IgcHJvamVjdHMgd2l0aCBkZXBlbmRlbnQgbGlicmFyeSBwcm9qZWN0czwvYT4KCTxibG9ja3F1b3RlPgoJICAgIDxwPjxiPkRlc2NyaXB0aW9uOjwvYj4KCQlUaGUgSURFIGluY29ycmVjdGx5IG92ZXJyaWRlcyB0aGUgPHR0PlBBVEg8L3R0PiB2YXJpYWJsZSBmb3IgYSAKCQlwcm9qZWN0IG9uIFdpbmRvd3MKCQl0aGF0IGRlcGVuZHMgb24gZWl0aGVyIEMvQysrIFN0YXRpYyBMaWJyYXJ5IG9yIEMvQysrIER5bmFtaWMgTGlicmFyeSAKCQlwcm9qZWN0cy4gVGhlIHByb2dyYW0gbWF5IG5vdCBydW4uCgkgICAgPC9wPgoJICAgIDxwPjxiPldvcmthcm91bmQ6PC9iPgogICAgICAgICAgICAgICAgU3RhcnQgTmV0QmVhbnMgZnJvbSBhIEN5Z3dpbiB0ZXJtaW5hbCBpbnN0ZWFkIG9mIGZyb20gdGhlIERlc2t0b3Agb3IKCQlTdGFydCBtZW51LgoJICAgIDwvcD4KCTwvYmxvY2txdW90ZT4KICAgIDwvbGk+CgogICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD04OTcxOCI+CglJc3N1ZSAjODk3MTg6IENvbmZ1c2luZyBvdXRwdXQgZm9yIHJ1bm5pbmcgcHJvY2Vzcy4gUHJvY2VzcyBpcyBub3Qgc2hvd24gaW4gUnVudGltZSB0YWIuPC9hPgoJPGJsb2NrcXVvdGU+CgkgICAgPHA+PGI+RGVzY3JpcHRpb246PC9iPgoKCQlUaGUgbWVzc2FnZSA8dHQ+UnVuIHN1Y2Nlc3NmdWwuIEV4aXQgdmFsdWUgMC48L3R0PiBhcHBlYXJzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZQoJCXByb2dyYW0gc3RhcnRzLgoJICAgIDwvcD4KCSAgICA8cD48Yj5Xb3JrYXJvdW5kOjwvYj4KCQlJZiB5b3UgbmVlZCB0byBjaGVjayB5b3VyIHByb2dyYW0ncyBleGl0IHZhbHVlIGFuZCBhcmUgbm90IGRvaW5nICAKCQl0ZXJtaW5hbCBpbnB1dCwKCQlzZXQgdGhlIENvbnNvbGUgVHlwZSBpbiB0aGUgUnVubmluZyBub2RlIG9mIHRoZSBwcm9qZWN0IHByb3BlcnRpZXMgdG8gCgkJT3V0cHV0IFdpbmRvdyAoSW5wdXQgT25seSkuIElmIHlvdSBkb24ndAoJCW5lZWQgdG8gY2hlY2sgeW91ciBwcm9ncmFtJ3MgZXhpdCBjb2RlIG9yIGlmIHlvdSBhcmUgZG9pbmcgdGVybWluYWwgCgkJaW5wdXQsIHlvdSBkb24ndCBuZWVkIHRvIGNoYW5nZSBhbnl0aGluZy4gCgkJPC9wPgoJCTxwPlRoZXJlIGlzIG5vIHdvcmthcm91bmQgaWYgeW91IAoJCWFyZSBkb2luZyB0ZXJtaW5hbCBpbnB1dCBhbmQgeW91IG5lZWQgdG8gY2hlY2sgeW91ciBwcm9ncmFtJ3MKCQlleGl0IGNvZGUuIEluIHRoaXMgY2FzZSwgeW91IG1pZ2h0IHdhbnQgdG8gcnVuIHlvdXIgcHJvZ3JhbSBvdXRzaWRlIAoJCXRoZSBJREUuCgkgICAgPC9wPgoJPC9ibG9ja3F1b3RlPgogICAgPC9saT4KCiAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9uZXRiZWFucy5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTg5OTY2Ij4KCUlzc3VlICM4OTk2NjogR25vbWUgdGVybWluYWwgaWdub3JlcyBlbnZpcm9ubWVudCB2YXJpYWJsZXM8L2E+CgoJPGJsb2NrcXVvdGU+CgkgICAgPHA+PGI+RGVzY3JpcHRpb246PC9iPgoJCUlmIHlvdSBydW4gYSBwcm9ncmFtIGluIHRoZSBHbm9tZSB0ZXJtaW5hbCwgZW52aXJvbm1lbnQgdmFyaWFibGVzCgkJYXJlbid0IHBhc3NlZCBwcm9wZXJseSB0byB0aGUgcHJvZ3JhbS4KCSAgICA8L3A+CgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CgkJSW4gdGhlIFJ1bm5pbmcgbm9kZSBvZiB0aGUgcHJvamVjdCBwcm9wZXJ0aWVzLCBzZXQgVGVybWluYWwgVHlwZSB0bwoJCVhUZXJtIG9yIHNldCBDb25zb2xlIFR5cGUgdG8gT3V0cHV0IFdpbmRvdyAoSW5wdXQgT25seSkuCgkgICAgPC9wPgoJPC9ibG9ja3F1b3RlPgogICAgPC9saT4KCiAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9uZXRiZWFucy5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTg5MzM0Ij4KCUlzc3VlICM4OTMzNDogd3JvbmcgcmV0dXJuIGNvZGUgcHJpbnRlZCB3aGVuIHVzaW5nIGV4dGVybmFsIHRlcm1pbmFsIHdpbmRvdzwvYT4KCTxibG9ja3F1b3RlPgoJICAgIDxwPjxiPkRlc2NyaXB0aW9uOjwvYj4KCQlUaGUgT3V0cHV0IHdpbmRvdyBzaG91bGQgZGlzcGxheSB0aGUgcmV0dXJuIGNvZGUgb2YgdGhlCgkJYXBwbGljYXRpb24gYW5kIHByaW50IHNvbWV0aGluZyBsaWtlIDx0dD5GYWlsZWQuIFJldHVybiBjb2RlID0gNTwvdHQ+CgkJd2hlbiB0aGUgYXBwbGljYXRpb24gZmFpbHMgKHJldHVybnMgc29tZXRoaW5nIG90aGVyCgkJdGhhbiAwKS4gQnV0IGl0IGFsd2F5cyBkaXNwbGF5cyA8dHQ+U3VjY2VlZGVkLiBSZXR1cm4gY29kZSA9IDA8L3R0Pi4KCSAgICA8L3A+CgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CiAgICAgICAgICAgICAgICBJZiB5b3UgbmVlZCB0byBzZWUgeW91ciBwcm9ncmFtJ3MgZXhpdCB2YWx1ZSwgc2V0IENvbnNvbGUgVHlwZSB0byAKCQlPdXRwdXQgV2luZG93IChJbnB1dCBPbmx5KSBpbiB0aGUgUnVubmluZyBub2RlIG9mIHRoZSBwcm9qZWN0CgkJcHJvcGVydGllcy4gSWYgeW91IGRvbid0CgkJY2FyZSBhYm91dCB0aGUgZXhpdCB2YWx1ZSwgbm8gY2hhbmdlIGlzIG5lY2Vzc2FyeS4KCSAgICA8L3A+Cgk8L2Jsb2NrcXVvdGU+CiAgICA8L2xpPgogICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD05MDExNyI+CglJc3N1ZSAjOTAxMTc6ICJUZXJtaW5hbCBUeXBlIiBzaG91bGQgYmUgZGlzYWJsZWQgaWYgIk91dHB1dCBXaW5kb3cgKElucHV0IE9ubHkpIgoJaXMgc2VsZWN0ZWQ8L2E+Cgk8YmxvY2txdW90ZT4KCSAgICA8cD48Yj5EZXNjcmlwdGlvbjo8L2I+CgkgICAgICAgIFRoZSBJREUgaWdub3JlcyB0aGUgc2V0dGluZyBvZiBUZXJtaW5hbCBUeXBlIGlmIENvbnNvbGUgVHlwZSBpcyBzZXQgCgkgICAgICAgIHRvIE91dHB1dCBXaW5kb3cgKElucHV0IG9ubHkpLgoJICAgIDwvcD4KCSAgICA8cD48Yj5Xb3JrYXJvdW5kOjwvYj4KCQlJZ25vcmUgdGhlIFRlcm1pbmFsIFR5cGUgb3B0aW9uLgoJICAgIDwvcD4KCTwvYmxvY2txdW90ZT4KICAgIDwvbGk+CgogICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD04OTM0MyI+CglJc3N1ZSAjODkzNDM6IFBhdXNlIGRvZXNuJ3Qgd29yayBvbiBXaW5kb3dzIHdoZW4gcHJvZ3JhbSB3YWl0cyB1c2VyIGlucHV0PC9hPgoKCTxibG9ja3F1b3RlPgoJICAgIDxwPjxiPkRlc2NyaXB0aW9uOjwvYj4KCQlDbGlja2luZyBQYXVzZSB3aGlsZSBhIHByb2dyYW0gaXMgd2FpdGluZyBmb3IgaW5wdXQgZG9lcyAKCQlub3Qgc3RvcCB0aGUgcHJvZ3JhbS4gUGF1c2Ugd29ya3Mgb25seSBhZnRlciB5b3Ugc3VwcGx5IHRoZSBpbnB1dC4KCSAgICA8L3A+CgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CgkJTm8gd29ya2Fyb3VuZC4KCSAgICA8L3A+Cgk8L2Jsb2NrcXVvdGU+CiAgICA8L2xpPgoKICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9OTAxMjAiPgoJSXNzdWUgIzkwMTIwOiAicGF1c2UiIChvbiBXaW5kb3dzKSBkb2VzIG5vdCB3b3JrIG9uIGEgY29ybmVyIGNhc2U8L2E+Cgk8YmxvY2txdW90ZT4KCSAgICA8cD48Yj5EZXNjcmlwdGlvbjo8L2I+CgkJQmVzaWRlcyA8YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9ODkzNDMiPgoJCTg5MzQzPC9hPiwgdGhlcmUgYXJlIHNldmVyYWwgb3RoZXIgY2FzZXMgd2hlbiBQYXVzZSBkb2VzIG5vdCB3b3JrIG9uCgkJV2luZG93cy4gT25lIGNhc2UgaXMgaW4gdmVyeSB0aWdodCBsb29wcy4KCSAgICA8L3A+CgoJICAgIDxwPjxiPldvcmthcm91bmQ6PC9iPgoJCU5vIHdvcmthcm91bmQuCgkgICAgPC9wPgoJPC9ibG9ja3F1b3RlPgogICAgPC9saT4KCiAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9uZXRiZWFucy5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTkwMjIyIj4KCUlzc3VlICM5MDIyMjogQnJlYWtwb2ludHMgZG9uJ3QgdGFrZSBpbW1lZGlhdGUgZWZmZWN0IHdoaWxlIHJ1bm5pbmc8L2E+Cgk8YmxvY2txdW90ZT4KCgkgICAgPHA+PGI+RGVzY3JpcHRpb246PC9iPgoJCUlmIGEgYnJlYWtwb2ludCBpcyBzZXQgb24gYSBydW5uaW5nIHByb2Nlc3MsIHRoZSBicmVha3BvaW50IGlzIG5vdAoJCXBhc3NlZCB0byA8dHQ+Z2RiPC90dD4gdW50aWwgdGhlIG5leHQgdGltZSB0aGUgcHJvY2VzcyBpcyBzdG9wcGVkLgoJICAgIDwvcD4KCSAgICA8cD48Yj5Xb3JrYXJvdW5kOjwvYj4KCQlQYXVzZSB0aGUgcHJvY2Vzcywgc2V0IHRoZSBicmVha3BvaW50LCBhbmQgY29udGludWUuCgkgICAgPC9wPgoJPC9ibG9ja3F1b3RlPgogICAgPC9saT4KICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9OTAyMzUiPgoJSXNzdWUgIzkwMjM1OiBDb25zb2xlIHR5cGUgIk91dHB1dCBXaW5kb3cgKGlucHV0IG9ubHkpIiBzaG91bGQgYmUgIm91dHB1dCBvbmx5IjwvYT4KCTxibG9ja3F1b3RlPgoJICAgIDxwPjxiPkRlc2NyaXB0aW9uOjwvYj4KCQlUaGUgTmV0QmVhbnMgT3V0cHV0IHdpbmRvdyBkb2VzIG5vdCBoYW5kbGUgaW5wdXQgd2VsbC4gTmV0QmVhbnMgCgkJQy9DKysgRGV2ZWxvcG1lbnQgUGFjayBwcm92aWRlcyBhIENvbnNvbGUgVHlwZSBwcm9qZWN0IHByb3BlcnR5IHRoYXQgbGV0cyAKCQl5b3UgZGVjaWRlIHdoZXRoZXIgeW91ciBwcm9ncmFtIGlzIHJ1biB3aXRoIEkvTyBnb2luZyB0byB0aGUgCgkJT3V0cHV0IHdpbmRvdyBvciB0byBhbiBleHRlcm5hbAoJCXRlcm1pbmFsICh3aGljaCBpcyB0aGUgZGVmYXVsdCkuIFRoZSBsYWJlbCBmb3Igc2VuZGluZyBwcm9ncmFtIEkvTyB0bwoJCXRoZSBPdXRwdXQgd2luZG93IHNheXMgImlucHV0IG9ubHkiLiBJdCBzaG91bGQgcmVhZCAib3V0cHV0IG9ubHkiLgoJICAgIDwvcD4KCSAgICA8cD48Yj5Xb3JrYXJvdW5kOjwvYj4KCQlJbiB0aGUgUnVubmluZyBub2RlIG9mIHRoZSBwcm9qZWN0IHByb3BlcnRpZXMsIHVzZSB0aGUgZGVmYXVsdCBDb25zb2xlIFR5cGUgb2YgRXh0ZXJuYWwgVGVybWluYWwuCgkgICAgPC9wPgoKCTwvYmxvY2txdW90ZT4KICAgIDwvbGk+CiAgICA8L3VsPgogICAgPC9ibG9ja3F1b3RlPgo8aDI+PGEgbmFtZT0iZG9jdW1lbnRhdGlvbiI+PC9hPkRvY3VtZW50YXRpb248L2gyPgo8cD4KICAgIERvY3VtZW50YXRpb24gZm9yIHRoZSBOZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNSByZWxlYXNlIGlzIHByb3ZpZGVkIGluIAogICAgdGhlIGZvcm0gb2Ygd2ViLWJhc2VkIGd1aWRlcyBhbmQgdGhlIElERSdzIGhlbHAgc3lzdGVtLiBZb3UgY2FuIHVzZSB0aGUgCiAgICBmb2xsb3dpbmcgZG9jdW1lbnRzIHRvIGdldCBzdGFydGVkOgogICAgIDx1bD4KICAgICAgICA8bGk+PGEgaHJlZj0iY25kLWluc3RhbGwuaHRtbCI+TmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUgCiAgICAgICAgSW5zdGFsbGF0aW9uIGFuZCBTZXR1cCBJbnN0cnVjdGlvbnM8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9uZXRiZWFucy5vcmcva2IvNTUvcXVpY2tzdGFydC1jbmQuaHRtbCI+TmV0QmVhbnMKICAgICAgICBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNSBRdWljayBTdGFydCBHdWlkZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9rYi81NS9pbmRleC5odG1sIj4KICAgICAgICBOZXRCZWFucyA1LjUgRG9jdW1lbnRhdGlvbjwvYT48L2xpPgogICAgICAgIDwvdWw+CgoKCjwvYm9keT4KPC9odG1sPgoKCgoKCg==