PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sPgo8aGVhZD4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vLi4vY29tLmlibS5oZWxwLmRvYy9zd2dfaW5mb19jb21tb24uY3NzIiAvPgo8dGl0bGU+U2V0dGluZyBXZWIgcHJvamVjdCBwcm9wZXJ0aWVzPC90aXRsZT4KPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+CiAgICBmdW5jdGlvbiBwb3B1cF93aW5kb3coIHVybCwgaWQsIHdpZHRoLCBoZWlnaHQgKQogICAgewogICAgICBwb3B1cCA9IHdpbmRvdy5vcGVuKCB1cmwsIGlkLCAndG9vbGJhcj1ubyxzY3JvbGxiYXJzPW5vLGxvY2F0aW9uPW5vLHN0YXR1c2Jhcj1ubyxtZW51YmFyPW5vLHJlc2l6YWJsZT1ubyx3aWR0aD0nICsgd2lkdGggKyAnLGhlaWdodD0nICsgaGVpZ2h0ICsgJyxsZWZ0PSx0b3A9JyApOwogICAgICBwb3B1cC5mb2N1cygpOwogICAgfQo8L3NjcmlwdD48c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiBzcmM9ImhlbHAvbGl2ZUhlbHAuanMiPjwvc2NyaXB0PjwvaGVhZD4KPGJvZHkgaWQ9InR3cHJqc2V0Ij48YSBuYW1lPSJ0d3ByanNldCI+PCEtLSAtLT48L2E+Cgo8aDEgY2xhc3M9InRvcGljdGl0bGUxIj5TZXR0aW5nIFdlYiBwcm9qZWN0IHByb3BlcnRpZXM8L2gxPgo8ZGl2PjxkaXYgY2xhc3M9InNraXBzcGFjZSI+IDxwPlRoZXJlIGFyZSBtYW55IFdlYiBwcm9qZWN0IHByb3BlcnRpZXMgdGhhdCB5b3UgY2FuIHNldCB0aGF0IGFmZmVjdAoKdGhlIHBoYXNlcyBpbiB0aGUgbGlmZWN5Y2xlIG9mIHlvdXIgcHJvamVjdCBhbmQgaXRzIGRlcGVuZGVuY2llcyBvbiBvdGhlcgoKV2ViIHJlc291cmNlcyBhbmQgV2ViIGRldmVsb3BtZW50IHByb2Nlc3Nlcy4gWW91IG1pZ2h0IHdhbnQgdG8gdmVyaWZ5IG9yIHVwZGF0ZQoKdGhlc2UgcHJvcGVydGllcyBhZnRlciB5b3UgaGF2ZSB1cGRhdGVkIGFuIGV4aXN0aW5nIHByb2plY3Qgb3IgaGF2ZSBpbXBvcnRlZAoKV2ViIHJlc291cmNlcyBpbnRvIGEgcHJvamVjdCAuPC9wPgo8cD5UbyB2aWV3IG9yIHNldCBXZWIgcHJvamVjdCBwcm9wZXJ0aWVzLAoKZG8gdGhlIGZvbGxvd2luZzogPC9wPgogPC9kaXY+CjxvbD48bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+UmlnaHQtY2xpY2sgb24gYSBXZWIgUHJvamVjdCwgYW5kIGZyb20gdGhlIHBvcC11cCBtZW51IHNlbGVjdCA8c3Bhbj48c3BhbiBjbGFzcz0idWljb250cm9sIj5Qcm9wZXJ0aWVzPC9zcGFuPjwvc3Bhbj4uPC9zcGFuPjwvbGk+CjxsaSBjbGFzcz0ic2tpcHNwYWNlIj48c3Bhbj5TZWxlY3QgYSBwcm9wZXJ0eSB0eXBlIGluIHRoZSBsZWZ0IHBhbmUgb2YgdGhlIFByb3BlcnRpZXMgZGlhbG9nCgp0byB2aWV3IG9yIHVwZGF0ZSBwcm9wZXJ0aWVzIGluIHRoZSBXZWIgcHJvamVjdC4gRm9yIGVhY2ggcHJvcGVydHksIHlvdSBjYW4KCmFwcGx5IGNoYW5nZXMgYW5kIG1vZGlmeSBkZWZhdWx0IHNldHRpbmdzLiBCYXNlZCBvbiB3aGV0aGVyIHlvdSBoYXZlIGEgc3RhdGljCgpvciBhIGR5bmFtaWMgV2ViIHByb2plY3QsIHRoZSBmb2xsb3dpbmcgcHJvcGVydHkgdHlwZXMgYXJlIGF2YWlsYWJsZTo8L3NwYW4+IDxkbD48ZHQgY2xhc3M9ImJvbGQiPkluZm88L2R0Pgo8ZGQ+UHJvdmlkZXMgZ2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCBwcm9qZWN0IHR5cGUsIGxvY2F0aW9uLCBhbmQgbW9kaWZpY2F0aW9uCgpzdGF0dXMuIDwvZGQ+CjxkdCBjbGFzcz0iYm9sZCI+QmVhbkluZm8gUGF0aCAoRHluYW1pYyBXZWIgcHJvamVjdCBvbmx5KTwvZHQ+CjxkZD5JZiB5b3Ugc2VsZWN0IHRoZSBFbmFibGUgQmVhbmluZm8gSW50cm9zcGVjdGlvbiBvbiB0aGlzIHByb2plY3QsIHlvdSBjYW4KCnNwZWNpZnkgdGhlIGNvbnRlbnRzIGFuZCBvcmRlciBvZiBKYXZhmSBCZWFuIHNlYXJjaCBwYXRocyB0byBwcm92aWRlIEJlYW4gaW5mb3JtYXRpb24KCnJlbGV2YW50IHRvIHRoZSBwcm9qZWN0LiBZb3UgY2FuIGFkZCwgcmVtb3ZlLCBhbmQgcmVvcmRlciAodXNpbmcgdGhlIDxzcGFuPlVwPC9zcGFuPiBhbmQgPHNwYW4+RG93bjwvc3Bhbj4gYnV0dG9ucykKCnRoZSBwYWNrYWdlcyB1c2VkIHRvIGluY2x1ZGUgQmVhbiBpbmZvcm1hdGlvbi48L2RkPgo8ZHQgY2xhc3M9ImJvbGQiPkJ1aWxkZXJzPC9kdD4KPGRkPkFkZCwgcmVtb3ZlLCBvciByZW9yZGVyIGV4dGVybmFsIHRvb2xzIGluIHRoZSBidWlsZCBvcmRlci4gV2hlbiB5b3Ugc2VsZWN0IDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPk5ldzwvc3Bhbj4gdG8KCmNyZWF0ZSBhIG5ldyBleHRlcm5hbCB0b29sIHRvIHRoZSBsaXN0LCB0aGUgTmV3IEV4dGVybmFsIFRvb2wgd2l6YXJkIG9wZW5zLAoKc28gdGhhdCB5b3UgY2FuIGRlZmluZSB0aGUgbmV3IGJ1aWxkIHRvb2wuPC9kZD4KPGR0IGNsYXNzPSJib2xkIj5KMkVFIChEeW5hbWljIFdlYiBwcm9qZWN0IG9ubHkpPC9kdD4KPGRkPklkZW50aWZ5IFdlYiBsZXZlbCBzcGVjaWZpY2F0aW9uIGFuZCBtb2RpZnkgY29udGV4dCByb290IGFuZCBXZWIgY29udGVudAoKZm9sZGVyIG5hbWU8L2RkPgo8ZHQgY2xhc3M9ImJvbGQiPkphdmEgQnVpbGQKClBhdGggKER5bmFtaWMgV2ViIHByb2plY3Qgb25seSk8L2R0Pgo8ZGQ+VmlldyBvciBjaGFuZ2UgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBKYXZhIGJ1aWxkIHBhdGggdGhhdCB5b3Ugc3VwcGxpZWQgd2hlbiBjcmVhdGluZwoKdGhlIHByb2plY3QgdXNpbmcgdGhlIDxzcGFuPkNyZWF0ZSBhIER5bmFtaWNXZWIgUHJvamVjdDwvc3Bhbj4gd2l6YXJkLiBXaGVuZXZlcgoKdGhlIFdlYiBwcm9qZWN0IGlzIHJlYnVpbHQsIGFueSBjbGFzcyBmaWxlcyB0aGF0IGFyZSBjcmVhdGVkIG9yIHVwZGF0ZWQgd2lsbAoKYmUgb3V0cHV0IHRvIHRoZSBzcGVjaWZpZWQgb3V0cHV0IGZvbGRlci4gPGRpdiBjbGFzcz0ibm90ZSI+PHNwYW4gY2xhc3M9Im5vdGV0aXRsZSI+Tm90ZTogPC9zcGFuPkEgbGlicmFyeSBlbnRyeSBvbiB0aGUgSmF2YSBidWlsZAoKcGF0aCB3aWxsIHJlbWFpbiB0aGVyZSB1bmxlc3MgdGhlIGFjdHVhbCBKQVIgZmlsZSBpcyBkZWxldGVkIGZyb20gdGhlIFdFQi1JTkYvbGliCgpmb2xkZXIuIElmIHlvdSByZW1vdmUgYSBsaWJyYXJ5IHBhdGggZW50cnkgYnV0IG5vdCB0aGUgSkFSIGZpbGUsIHRoZSBsaWJyYXJ5CgplbnRyeSB3aWxsIGJlIHJlLWFkZGVkIHRvIHRoZSBwYXRoIGF1dG9tYXRpY2FsbHkuPC9kaXY+CjwvZGQ+CjxkdCBjbGFzcz0iYm9sZCI+SmF2YSBDb21waWxlcgoKKER5bmFtaWMgV2ViIHByb2plY3Qgb25seSk8L2R0Pgo8ZGQ+RGVmaW5lIHdoZXRoZXIgdG8gdXNlIHdvcmtzcGFjZSBzZXR0aW5ncyBvciBwcm9qZWN0IHNldHRpbmcgZm9yIGNvbXBpbGluZyBKYXZhIGNvZGUsCgppbmNsdWRpbmcgc2V0dGluZ3MgZm9yIFByb2JsZW1zLCBTdHlsZSwgQ29tcGxpYW5jZSBhbmQgQ2xhc3NmaWxlcywgYW5kIEJ1aWxkCgpQYXRoLjwvZGQ+CjxkdCBjbGFzcz0iYm9sZCI+SmF2YWRvYyBMb2NhdGlvbiAoRHluYW1pYyBXZWIgcHJvamVjdCBvbmx5KTwvZHQ+CjxkZD5EZWZpbmUgYSBkZWZhdWx0IGxvY2F0aW9uIChVUkwpIGZvciBhbnkgSmF2YWRvYyBhdmFpbGFibGUgdG8gdGhlIHByb2plY3QuPC9kZD4KPGR0IGNsYXNzPSJib2xkIj5KYXZhIEpBUgoKRGVwZW5kZW5jaWVzIChEeW5hbWljIFdlYiBwcm9qZWN0IG9ubHkpPC9kdD4KPGRkPkRlZmluZSBhbmQgcmVvcmRlciBKQVIgZGVwZW5kZW5jaWVzIGZvciB0aGUgcHJvamVjdC4gTm90ZSB0aGF0IHRoZXNlIGRlcGVuZGVuY2llcwoKbWF5IGRpZmZlciBiYXNlZCBvbiBhIFdlYiBwcm9qZWN0J3MgYXNzb2NpYXRpb24gd2l0aCBtdWx0aXBsZSBFbnRlcnByaXNlIGFwcGxpY2F0aW9uCgpwcm9qZWN0cy48L2RkPgo8ZHQgY2xhc3M9ImJvbGQiPkpTUCBUYXNrIFRhZ3M8L2R0Pgo8ZGQ+QWRkLCBlZGl0LCBvciByZW1vdmUgSlNQIHRhc2sgdGFncyBhbmQgYXNzaWduIHRhZyBwcmlvcml0aWVzLiBUaGVzZSAidG8KCmRvIiBpdGVtcyBhcHBlYXIgaW4geW91ciBUYXNrcyB2aWV3LjwvZGQ+CjxkdCBjbGFzcz0iYm9sZCI+SlNQIENvbXBpbGF0aW9uPC9kdD4KPGRkPlNwZWNpZnkgd2hlbiBpbiB0aGUgYnVpbGQgcHJvY2VzcyBhIEpTUCBzaG91bGQgYmUgc2V0IHRvIGNvbXBpbGU8L2RkPgo8ZHQgY2xhc3M9ImJvbGQiPkpTUCBGcmFnbWVudCAoZHluYW1pYyBXZWIgcHJvamVjdCBvbmx5KTwvZHQ+CjxkZD5EZWZpbmUgZGVmYXVsdCBlbmNvZGluZywgcGFnZSBkaXJlY3RpdmUsIGFuZCBjb250ZW50IHR5cGUgdmFsdWVzIGZvciBKU1AKCmZyYWdtZW50IGRvY3VtZW50cyBpbiB0aGUgd2ViIHByb2plY3QuPC9kZD4KPGR0IGNsYXNzPSJib2xkIj5MaW5rcyBWYWxpZGF0aW9uL1JlZmFjdG9yaW5nPC9kdD4KPGRkPkRlZmluZSBwcm9qZWN0LWxldmVsIGxpbmsgbWFuYWdlbWVudCBhbmQgdmFsaWRhdGlvbiBzZXR0aW5ncy4gVGhlc2Ugc2V0dGluZ3MKCm92ZXJyaWRlIGNvcnJlc3BvbmRpbmcgc2V0dGluZ3MgaW4gdGhlIFdvcmtiZW5jaCBQcmVmZXJlbmNlIHNldHRpbmdzIGZvciB0aGUKCmN1cnJlbnQgcHJvamVjdC48L2RkPgo8ZHQgY2xhc3M9ImJvbGQiPlByb2plY3QgUmVmZXJlbmNlczwvZHQ+CjxkZD5SZWZlcmVuY2Ugb3RoZXIgV2ViIHByb2plY3RzIHRoYXQgZXhpc3Qgb24geW91ciB3b3JrYmVuY2ggd29ya3NwYWNlLjwvZGQ+CjxkdCBjbGFzcz0iYm9sZCI+U2VydmVyPC9kdD4KPGRkPlNlbGVjdCB0aGUgc2VydmVyIGluc3RhbmNlIHVzZWQgdG8gcGVyZm9ybSBuZWNlc3NhcnkgZGV2ZWxvcG1lbnQsIHRlc3QsCgphbmQgcHVibGlzaGluZyBmdW5jdGlvbnMgZm9yIHRoZSBwcm9qZWN0LjwvZGQ+CjxkdCBjbGFzcz0iYm9sZCI+VmFsaWRhdGlvbjwvZHQ+CjxkZD5TcGVjaWZ5IHdoaWNoIHZhbGlkYXRvcnMgc2hvdWxkIHJ1biBmb3IgdGhlIHByb2plY3QsIGFuZCB3aGV0aGVyIHZhbGlkYXRpb24KCnNob3VsZCBvY2N1ciBhdXRvbWF0aWNhbGx5IHdoZW4gcmVzb3VyY2UgdXBkYXRlcyBhcmUgd3JpdHRlbiB0byB0aGUgcHJvamVjdC4KClRoZSBhdmFpbGFibGUgdmFsaWRhdG9ycyBhcmUgYmFzZWQgb24gdGhlIHR5cGVzIG9mIHJlc291cmNlcyBpbiB5b3VyIHByb2plY3QuCgpCeSBkZWZhdWx0LCB2YWxpZGF0b3JzIGFyZSBhdXRvbWF0aWNhbGx5IHJ1biB3aGVuIHlvdSBzYXZlIHJlc291cmNlcyBpbiBhCgpXZWIgcHJvamVjdC4gSWYgeW91IGRvIG5vdCB3YW50IHZhbGlkYXRvcnMgdG8gcnVuIGF1dG9tYXRpY2FsbHkgd2hlbiB5b3Ugc2F2ZQoKdGhlc2UgcmVzb3VyY2VzLCBlbmFibGUgdGhlIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPk92ZXJyaWRlIHZhbGlkYXRpb248L3NwYW4+IHByZWZlcmVuY2VzCgpvcHRpb24gYW5kIGRpc2FibGUgdGhlIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPlJ1biB2YWxpZGF0aW9uIGF1dG9tYXRpY2FsbHkgd2hlbiB5b3Ugc2F2ZQoKY2hhbmdlcyB0byByZXNvdXJjZXM8L3NwYW4+IG9wdGlvbi4gPGRpdiBjbGFzcz0ibm90ZSI+PHNwYW4gY2xhc3M9Im5vdGV0aXRsZSI+Tm90ZTogPC9zcGFuPllvdSBjYW4gYWxzbyAgZGlzYWJsZSBhdXRvbWF0aWMKCnZhbGlkYXRpb24gKGFuZCBidWlsZHMpIGZvciBhbGwgcHJvamVjdHMgYnkgZGlzYWJsaW5nIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPlBlcmZvcm0gYnVpbGQKCiBhdXRvbWF0aWNhbGx5IG9uIHJlc291cmNlIG1vZGlmaWNhdGlvbjwvc3Bhbj4gZnJvbSB0aGUgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+V29ya2JlbmNoPC9zcGFuPiBwcm9wZXJ0aWVzLgoKSWYgIHlvdSBkaXNhYmxlIGF1dG9tYXRpYyBidWlsZHMsIHlvdSBjYW4gbWFudWFsbHkgIHJ1biBhIGJ1aWxkIChhbmQgdmFsaWRhdGlvbikKCmJ5IHNlbGVjdGluZyAgPHNwYW4gY2xhc3M9Im1lbnVjYXNjYWRlIj48c3BhbiBjbGFzcz0idWljb250cm9sIj5Qcm9qZWN0PC9zcGFuPiAmZ3Q7IDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPlJlYnVpbGQKCnByb2plY3Q8L3NwYW4+PC9zcGFuPi48L2Rpdj4KPC9kZD4KPGR0IGNsYXNzPSJib2xkIj5XZWIgQ29udGVudCBTZXR0aW5nczwvZHQ+CjxkZD5Qcm92aWRlIGFueSBhcHBsaWNhYmxlIFdlYiBjb250ZW50IHNldHRpbmdzIGZvciBhIFdlYiBwcm9qZWN0LiBZb3UgY2FuCgpzcGVjaWZ5IHRoZSBkb2N1bWVudCB0eXBlLCBDU1MgcHJvZmlsZSwgYW5kIHRhcmdldCBkZXZpY2UuPC9kZD4KPGR0IGNsYXNzPSJib2xkIj5XZWIgUHJvamVjdCBGZWF0dXJlczwvZHQ+CjxkZD5TZWxlY3QgdGhlIGZlYXR1cmVzIHlvdSB3YW50IHRvIGJlIGVuYWJsZWQgZm9yIHlvdXIgV2ViIHByb2plY3QsIHN1Y2gKCmFzIFBhZ2UgVGVtcGxhdGUgc3VwcG9ydC48L2RkPgo8L2RsPgo8L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+V2hlbiB5b3UgaGF2ZSBjb21wbGV0ZWQgdXBkYXRlcyB0byBXZWIgcHJvamVjdCBzZXR0aW5ncywgY2xpY2sgPHNwYW4+PHNwYW4gY2xhc3M9InVpY29udHJvbCI+T0s8L3NwYW4+PC9zcGFuPiB0bwoKc2F2ZSBhbmQgY2xvc2UgdGhlIFByb3BlcnRpZXMgZGlhbG9nLjwvc3Bhbj48L2xpPgo8L29sPgo8L2Rpdj4KCQk8cD4KCQkoQykgQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiAyMDAwLCAyMDA1LiBBbGwgUmlnaHRzIFJlc2VydmVkLgoJCTwvcD4KPC9ib2R5Pgo8L2h0bWw+