PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sPgo8aGVhZD4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vLi4vY29tLmlibS5oZWxwLmRvYy9zd2dfaW5mb19jb21tb24uY3NzIiAvPgo8dGl0bGU+RWRpdGluZyBpbiB0aGUgRGVzaWduIHZpZXc8L3RpdGxlPgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KICAgIGZ1bmN0aW9uIHBvcHVwX3dpbmRvdyggdXJsLCBpZCwgd2lkdGgsIGhlaWdodCApCiAgICB7CiAgICAgIHBvcHVwID0gd2luZG93Lm9wZW4oIHVybCwgaWQsICd0b29sYmFyPW5vLHNjcm9sbGJhcnM9bm8sbG9jYXRpb249bm8sc3RhdHVzYmFyPW5vLG1lbnViYXI9bm8scmVzaXphYmxlPW5vLHdpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLGxlZnQ9LHRvcD0nICk7CiAgICAgIHBvcHVwLmZvY3VzKCk7CiAgICB9Cjwvc2NyaXB0PjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHNyYz0iaGVscC9saXZlSGVscC5qcyI+PC9zY3JpcHQ+PC9oZWFkPgo8Ym9keSBpZD0idHhlZHRkZXMiPjxhIG5hbWU9InR4ZWR0ZGVzIj48IS0tIC0tPjwvYT4KCjxoMSBjbGFzcz0idG9waWN0aXRsZTEiPkVkaXRpbmcgaW4gdGhlIERlc2lnbiB2aWV3PC9oMT4KPGRpdj48cD5UaGUgWE1MIGVkaXRvciBoYXMgYSBEZXNpZ24gdmlldywgd2hpY2ggcmVwcmVzZW50cyB0aGUgWE1MIGZpbGUKc2ltdWx0YW5lb3VzbHkgYXMgYSB0YWJsZSBhbmQgYSB0cmVlLiBUaGlzIGhlbHBzIG1ha2UgbmF2aWdhdGlvbiBhbmQgZWRpdGluZwplYXNpZXIuIENvbnRlbnQgYW5kIGF0dHJpYnV0ZSB2YWx1ZXMgY2FuIGJlIGVkaXRlZCBkaXJlY3RseSBpbiB0aGUgdGFibGUgY2VsbHMsCndoaWxlIHBvcC11cCBtZW51cyBvbiB0aGUgdHJlZSBlbGVtZW50cyBnaXZlIGFsdGVybmF0aXZlcyB0aGF0IGFyZSB2YWxpZCBmb3IKdGhhdCBwYXJ0aWN1bGFyIGVsZW1lbnQuPC9wPjxkaXYgY2xhc3M9InNraXBzcGFjZSI+PHA+IEZvciBleGFtcGxlLCB0aGUgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+QWRkIGNoaWxkPC9zcGFuPiBtZW51IGl0ZW0gd2lsbApsaXN0IG9ubHkgdGhvc2UgZWxlbWVudHMgZnJvbSBhIERURCBvciBYTUwgc2NoZW1hIHdoaWNoIHdvdWxkIGJlIHZhbGlkIGNoaWxkcmVuCmF0IHRoYXQgcG9pbnQuPC9wPgo8cD5XaGVuIHlvdSBoYXZlIGFuIFhNTCBmaWxlIGFzc29jaWF0ZWQgd2l0aCBhbiBYTUwgc2NoZW1hCm9yIERURCBmaWxlLCBjZXJ0YWluIHRhZ3MgYW5kIHJ1bGVzIGZvciB0aGF0IGZpbGUgaGF2ZSBhbHJlYWR5IGJlZW4gZXN0YWJsaXNoZWQsCndoaWNoIGlzIHdoeSB0aGUgRGVzaWduIHZpZXcgY2FuIHByb3ZpZGUgcHJvbXB0cyAodmlhIGEgcG9wLXVwIG1lbnUpIGZvciB0aG9zZQp0YWdzLiBXaGVuIHlvdSBjcmVhdGUgYW4gWE1MIGZpbGUgdGhhdCBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGFuIFhNTCBzY2hlbWEKb3IgRFREIGZpbGUsIGl0IGhhcyBubyB0YWdzIG9yIHJ1bGVzIGFzc29jaWF0ZWQgd2l0aCBpdCwgc28gdGhlIERlc2lnbiB2aWV3CmNhbm5vdCBwcm92aWRlIHByb21wdHMgZm9yIHNwZWNpZmljIHRhZ3MsIGJ1dCBpdCBjYW4gcHJvdmlkZSBwcm9tcHRzIHRvIGNyZWF0ZQpuZXcgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXMuPC9wPgo8cD5Gb3IgYW55IFhNTCBmaWxlIGFzc29jaWF0ZWQgd2l0aCBhbiBYTUwKc2NoZW1hIG9yIERURCBmaWxlLCB5b3UgY2FuIHVzZSB0aGUgRGVzaWduIHZpZXcgdG8gYWRkIGFueSBpdGVtcyBkZWZpbmVkIGluCnRoZSBYTUwgc2NoZW1hIG9yIERURCAoc3VjaCBhcyBlbGVtZW50cyBhbmQgYXR0cmlidXRlcykgdG8gdGhlIFhNTCBmaWxlLiBZb3UKY2FuIGFsc28gdXNlIGl0IHRvIGFkZCBwcm9jZXNzaW5nIGluc3RydWN0aW9ucyBhbmQgY29tbWVudHMgdG8gYWxsIFhNTCBmaWxlcy6gPC9wPgo8cD5Gb3IKbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgaWNvbnMgdXNlZCBpbiB0aGUgRGVzaWduIHZpZXcsIHJlZmVyIHRvIHRoZSByZWxhdGVkCnJlZmVyZW5jZS48L3A+CjxwPlRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb25zIHdlcmUgd3JpdHRlbiBmb3IgdGhlIFJlc291cmNlCnBlcnNwZWN0aXZlLCBidXQgdGhleSB3aWxsIGFsc28gd29yayBpbiBtYW55IG90aGVyIHBlcnNwZWN0aXZlcy48L3A+CjxwPlRvCmVkaXQgYW4gWE1MIGZpbGUgaW4gdGhlIERlc2lnbiB2aWV3LCBmb2xsb3cgdGhlc2Ugc3RlcHM6PC9wPgo8L2Rpdj4KPG9sPjxsaSBjbGFzcz0ic2tpcHNwYWNlIj48c3Bhbj5PcGVuIHRoZSBYTUwgZmlsZSB0aGF0IHlvdSB3YW50IHRvIHdvcmsgd2l0aCBpbiB0aGUgWE1MIGVkaXRvcgoocmlnaHQtY2xpY2sgdGhlIGZpbGUgaW4gdGhlIE5hdmlnYXRvciB2aWV3IGFuZCBjbGljayA8c3BhbiBjbGFzcz0idWljb250cm9sIj5PcGVuIFdpdGgKJmd0OyBYTUwgRWRpdG9yPC9zcGFuPikuIElmIG5lY2Vzc2FyeSwgY2xpY2sgdGhlIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkRlc2lnbjwvc3Bhbj4gdGFiLjwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+VG8gZXhwYW5kIGFsbCB0aGUgaXRlbXMgaW4geW91ciBYTUwgZmlsZSwgY2xpY2sgdGhlIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkV4cGFuZApBbGw8L3NwYW4+IHRvb2xiYXIgYnV0dG9uICA8aW1nIHNyYz0iLi4vaW1hZ2VzL2V4cGFuZF9hbGwuZ2lmIiAvPi48L3NwYW4+PC9saT4KPGxpIGNsYXNzPSJza2lwc3BhY2UiPjxzcGFuPlRvIGNvbGxhcHNlIHRoZW0sIGNsaWNrIHRoZSA8c3BhbiBjbGFzcz0idWljb250cm9sIj5Db2xsYXBzZSBBbGw8L3NwYW4+IHRvb2xiYXIKYnV0dG9uICA8aW1nIHNyYz0iLi4vaW1hZ2VzL2NvbGxhcHNlX2FsbC5naWYiIC8+Ljwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+UmlnaHQtY2xpY2sgdGhlIGl0ZW0gdGhhdCB5b3Ugd2FudCB0byB3b3JrIHdpdGguPC9zcGFuPiBTb21lCm9yIGFsbCBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMgKGFzIGFwcGxpY2FibGUpIHdpbGwgYmUgYXZhaWxhYmxlIGZyb20gdGhlCnBvcC11cCBtZW51IHRoYXQgYXBwZWFycy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlc2Ugb3B0aW9ucywgcmVmZXIgdG8KdGhlIHJlbGF0ZWQgdGFza3M6PHVsPjxsaT4gPHNwYW4gY2xhc3M9InVpY29udHJvbCI+QWRkIERURCBJbmZvcm1hdGlvbjwvc3Bhbj4gLSBDbGljayB0aGlzIGlmIHlvdSB3YW50IHRvCmFzc29jaWF0ZSB0aGUgWE1MIGZpbGUgd2l0aCBhIERURDwvbGk+CjxsaT4gPHNwYW4gY2xhc3M9InVpY29udHJvbCI+RWRpdCBET0NUWVBFPC9zcGFuPiAtIENsaWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gZWRpdAp0aGUgRE9DVFlQRSBkZWNsYXJhdGlvbi48L2xpPgo8bGk+IDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkVkaXQgTmFtZXNwYWNlczwvc3Bhbj4gLSBDbGljayB0aGlzIGlmIHlvdSB3YW50IHRvIGVkaXQKdGhlIGV4aXN0aW5nIG5hbWVzcGFjZSBpbmZvcm1hdGlvbiBvciBjcmVhdGUgYSBuZXcgYXNzb2NpYXRpb24gd2l0aCBhIG5hbWVzcGFjZS48L2xpPgo8bGk+IDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkVkaXQgUHJvY2Vzc2luZyBJbnN0cnVjdGlvbjwvc3Bhbj4gLSBDbGljayB0aGlzIGlmIHlvdQp3YW50IHRvIGVkaXQgdGhlIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24uPC9saT4KPGxpPiA8c3BhbiBjbGFzcz0idWljb250cm9sIj5SZW1vdmU8L3NwYW4+IC0gQ2xpY2sgdGhpcyBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlCml0ZW0gdGhhdCB5b3UgaGF2ZSBzZWxlY3RlZCBmcm9tIHRoZSBYTUwgZmlsZS4gVGhpcyBvcHRpb24gd2lsbCBub3QgYmUgYXZhaWxhYmxlCmlmIHRoZSBpdGVtIHlvdSB3YW50IHRvIHJlbW92ZSBtdXN0IGV4aXN0IChmb3IgZXhhbXBsZSwgaW4geW91ciBEVEQsIHlvdSBoYXZlCmRlY2xhcmVkIHRoYXQgIk9uZSBvciBtb3JlIiBvZiB0aGUgaXRlbSBtdXN0IGFsd2F5cyBleGlzdCBpbiB5b3VyIFhNTCBmaWxlLAphbmQgdGhlIGl0ZW0geW91IGhhdmUgc2VsZWN0ZWQgaXMgdGhlIG9ubHkgb25lIHRoYXQgZXhpc3RzIGluIHlvdXIgWE1MIGZpbGUpLjwvbGk+CjxsaT4gPHNwYW4gY2xhc3M9InVpY29udHJvbCI+QWRkIEF0dHJpYnV0ZTwvc3Bhbj4gLSBDbGljayB0aGlzIGlmIHlvdSB3YW50IHRvIGFkZAphbiBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQgdGhhdCB5b3Ugc2VsZWN0ZWQuIEFueSBhdHRyaWJ1dGVzIHlvdSBhcmUgYWxsb3dlZAp0byBhZGQgdG8gdGhlIGVsZW1lbnQgd2lsbCBiZSBsaXN0ZWQuIEFmdGVyIHlvdSBoYXZlIGFkZGVkIHRoZSBhdHRyaWJ1dGUgdG8KdGhlIFhNTCBmaWxlLCB5b3UgY2FuIGNsaWNrIGluIHRoZSByaWdodC1oYW5kIGNvbHVtbiB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mCnRoZSBhdHRyaWJ1dGUuIElmIHRoZSBhdHRyaWJ1dGUgaGFzIHNldCB2YWx1ZXMsIHRoZXkgd2lsbCBhcHBlYXIgaW4gYSBsaXN0LqA8L2xpPgo8bGk+IDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkFkZCBDaGlsZDwvc3Bhbj4gLSBDbGljayB0aGlzIHRvIGFkZCBhbm90aGVyIGVsZW1lbnQsCmEgY29tbWVudCwgb3IgYSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGFzIGEgY2hpbGQgb2YgdGhlIHBhcmVudCBlbGVtZW50LjwvbGk+CjxsaT4gPHNwYW4gY2xhc3M9InVpY29udHJvbCI+QWRkIEJlZm9yZTwvc3Bhbj4gIC0gQ2xpY2sgdGhpcyB0byBhZGQgYSBjaGlsZCBlbGVtZW50LApjb21tZW50LCBvciBwcm9jZXNzaW5nIGluc3RydWN0aW9uIHRoYXQgY2FuIGdvIGJlZm9yZSB0aGUgaXRlbSB5b3UgaGF2ZSBzZWxlY3RlZC4KRm9yIGV4YW1wbGUsIGlmIHlvdSBoYXZlIGEgcGFyZW50IGVsZW1lbnQgY2FsbGVkICJDRCBDb2xsZWN0aW9ucyIgdGhhdCBjYW4KY29udGFpbiBhbiB1bmxpbWl0ZWQgYW1vdW50IG9mIGNoaWxkcmVuIGNhbGxlZCAiQ0QiLCB5b3UgY291bGQgY2xpY2sgYSBDRAplbGVtZW50IGFuZCBjbGljayA8c3BhbiBjbGFzcz0ibWVudWNhc2NhZGUiPjxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkFkZCBCZWZvcmU8L3NwYW4+ICZndDsgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+IENEPC9zcGFuPjwvc3Bhbj4gLCBhcyBhIENEIGVsZW1lbnQgY2FuIGdvIGJlZm9yZSBhbm90aGVyIENEIGVsZW1lbnQuPC9saT4KPGxpPiA8c3BhbiBjbGFzcz0idWljb250cm9sIj5BZGQgQWZ0ZXI8L3NwYW4+IC0gQ2xpY2sgdGhpcyB0byBhZGQgYSBjaGlsZCBlbGVtZW50LApjb21tZW50LCBvciBwcm9jZXNzaW5nIGluc3RydWN0aW9uIHRoYXQgY2FuIGdvIGFmdGVyIHRoZSBpdGVtIHlvdSBoYXZlIHNlbGVjdGVkLgpGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgYSBwYXJlbnQgZWxlbWVudCBjYWxsZWQgIkNEIENvbGxlY3Rpb25zIiB0aGF0IGNhbgpjb250YWluIGFuIHVubGltaXRlZCBhbW91bnQgb2YgY2hpbGRyZW4gY2FsbGVkICJDRCIsIHlvdSBjb3VsZCBjbGljayBhIENECmVsZW1lbnQgYW5kIGNsaWNrICA8c3BhbiBjbGFzcz0ibWVudWNhc2NhZGUiPjxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkFkZCBBZnRlcjwvc3Bhbj4gJmd0OyA8c3BhbiBjbGFzcz0idWljb250cm9sIj4gQ0Q8L3NwYW4+PC9zcGFuPiwgYXMgYSBDRCBlbGVtZW50IGNhbiBnbyBhZnRlciBhbm90aGVyIENEIGVsZW1lbnQuPC9saT4KPGxpPiA8c3BhbiBjbGFzcz0idWljb250cm9sIj5SZXBsYWNlIFdpdGg8L3NwYW4+IC0gQ2xpY2sgdGhpcyBpZiB5b3Ugd2FudCB0byByZXBsYWNlCm9uZSBpdGVtIHdpdGggYW5vdGhlci4gVGhpcyBvcHRpb24gaXMgbm90IGF2YWlsYWJsZSBpZiB5b3UgdHVybiBncmFtbWFyIGNvbnN0cmFpbnRzCm9mZiBvciBpZiB0aGVyZSBhcmUgbm8gdmFsaWQgYWx0ZXJuYXRpdmVzIGZvciB5b3UgdG8gcmVwbGFjZSB0aGUgaXRlbSB3aXRoLjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBjbGFzcz0ic2tpcHNwYWNlIj48c3Bhbj5DbGljayB0aGUgYXBwcm9wcmlhdGUgb3B0aW9uLjwvc3Bhbj48L2xpPgo8L29sPgo8ZGl2IGNsYXNzPSJza2lwc3BhY2UiPjxwPkFueSBjaGFuZ2VzIHlvdSBtYWtlIGluIHRoZSBEZXNpZ24gdmlldyBhcmUgYWxzbyByZWZsZWN0ZWQgaW4gdGhlClNvdXJjZSB2aWV3IGFuZCB0aGUgT3V0bGluZSB2aWV3LjwvcD4KPC9kaXY+CjwvZGl2PgoKPGRpdj4KPGJsb2NrcXVvdGU+CjxkaXYgY2xhc3M9InVsY2hpbGRsaW5rIj48Yj48YSBocmVmPSIuLi90b3BpY3MvdGVkdGRvYy5odG1sIj5FZGl0aW5nIHlvdXIgRE9DVFlQRSBkZWNsYXJhdGlvbjwvYT48L2I+PGJyIC8+ClRoZSBET0NUWVBFIGRlY2xhcmF0aW9uIGluIGFuIFhNTCBmaWxlIGlzIHVzZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBpdCB0byBhc3NvY2lhdGUgaXQgd2l0aCBhIERURCBmaWxlLiBZb3UgY2FuIGVkaXQgeW91ciBET0NUWVBFIGRlY2xhcmF0aW9uIHRvIGNoYW5nZSB0aGUgRFREIGZpbGUgeW91ciBYTUwgZmlsZSBpcyBhc3NvY2lhdGVkIHdpdGguPC9kaXY+CjxkaXYgY2xhc3M9InVsY2hpbGRsaW5rIj48Yj48YSBocmVmPSIuLi90b3BpY3MvdGVkdHNjaC5odG1sIj5FZGl0aW5nIHlvdXIgbmFtZXNwYWNlIGluZm9ybWF0aW9uPC9hPjwvYj48YnIgLz4KWW91ciBuYW1lc3BhY2UgaW5mb3JtYXRpb24gaXMgdXNlZCB0byBwcm92aWRlIHZhcmlvdXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFhNTCBmaWxlLCBzdWNoIGFzIHRoZSBYTUwgc2NoZW1hIGl0IGlzIGFzc29jaWF0ZWQgd2l0aC6gPC9kaXY+CjxkaXYgY2xhc3M9InVsY2hpbGRsaW5rIj48Yj48YSBocmVmPSIuLi90b3BpY3MvdGVkdHByb2MuaHRtbCI+RWRpdGluZyB5b3VyIFhNTCBwcm9jZXNzaW5nIGluc3RydWN0aW9uczwvYT48L2I+PGJyIC8+CkEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBpcyBhIHN5bnRheCBpbiBYTUwgZm9yIHBhc3NpbmcgaW5zdHJ1Y3Rpb25zIGFsb25nIHRvIHRoZSBhcHBsaWNhdGlvbiB1c2luZyBhbiBYTUwgZG9jdW1lbnQuPC9kaXY+CjwvYmxvY2txdW90ZT4KCgo8cD48YiBjbGFzcz0icmVsY29uY2VwdHNoZCI+UmVsYXRlZCBjb25jZXB0czwvYj48YnIgLz4KPGEgaHJlZj0iLi4vdG9waWNzL2N3eG1sZWR0Lmh0bWwiIHRpdGxlPSJUaGUgWE1MIGVkaXRvciBpcyBhIHRvb2wgZm9yIGNyZWF0aW5nIGFuZCB2aWV3aW5nIFhNTCBmaWxlcyI+WE1MIGVkaXRvcjwvYT48YnIgLz4KPGEgaHJlZj0iLi4vdG9waWNzL2N4bWxjYXQuaHRtbCIgdGl0bGU9IlRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHdheXMgdG8gYXNzb2NpYXRlIFhNTCBmaWxlcyB3aXRoIERURHMgb3IgWE1MIHNjaGVtYXMuIj5YTUwgZmlsZSBhc3NvY2lhdGlvbnMgd2l0aCBEVERzIGFuZCBYTUwgc2NoZW1hczwvYT48YnIgLz4KPC9wPgo8cD48YiBjbGFzcz0icmVsdGFza3NoZCI+UmVsYXRlZCB0YXNrczwvYj48YnIgLz4KPGEgaHJlZj0iLi4vdG9waWNzL3R4ZWR0c3JjLmh0bWwiIHRpdGxlPSJZb3UgY2FuIHVzZSB0aGUgU291cmNlIHZpZXcgdG8gdmlldyBhbmQgd29yayB3aXRoIGEgZmlsZSdzIHNvdXJjZSBjb2RlIGRpcmVjdGx5LiI+RWRpdGluZyBpbiB0aGUgU291cmNlIHZpZXc8L2E+PGJyIC8+CjwvcD4KPC9kaXY+PHA+CgkJKEMpIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24gMjAwMCwgMjAwNS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPC9wPgo8L2JvZHk+CjwvaHRtbD4=