PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+CjxIVE1MPgo8SEVBRD4KICAgIDxUSVRMRT5BY2tub3dsZWRnbWVudHM8L1RJVExFPgogICAgPExJTksgUkVMPSJzdHlsZXNoZWV0IiBIUkVGPSIuLi8uLi8uLi9ib29zdC5jc3MiPgogICAgPExJTksgUkVMPSJzdHlsZXNoZWV0IiBIUkVGPSJ0aGVtZS9pb3N0cmVhbXMuY3NzIj4KPC9IRUFEPgo8Qk9EWT4KCjwhLS0gQmVnaW4gQmFubmVyIC0tPgoKICAgIDxIMSBDTEFTUz0idGl0bGUiPkFja25vd2xlZGdtZW50czwvSDE+CiAgICA8SFIgQ0xBU1M9ImJhbm5lciI+Cgo8IS0tIEVuZCBCYW5uZXIgLS0+Cgo8SDM+MS4zNTwvSDM+Cgo8UD5OdW1lcm91cyB1c2VycyBzdWJtaXR0ZWQgYnVnIHJlcG9ydHMgYW5kIHBhdGNoZXMgdG8gY29ycmVjdCBhbmQgb3B0aW1pemUgQm9vc3QuSW9zdHJlYW1zIGZvciByZWxlYXNlIDEuMzUuIEZyYW5rIEJpcmJhY2hlciBhbmQgQ2hhZCBXYWx0ZXJzIGRlc2VydmUgc3BlY2lhbCB0aGFua3MgZm9yIGRpYWdub3NpbmcgYW5kIGZpeGluZyBidWdzIGFuZCBmb3IgcHJvZGRpbmcgdGhlIGF1dGhvciB0byByZXN1bWUgYWN0aXZlIG1haW50ZW5hbmNlIG9mIHRoZSBsaWJyYXJ5LgoKPEgzPjEuMzM8L0gzPgoKPFA+CiAgICBUaGUgb3JpZ2luYWwgaWRlYSBmb3IgdGhlIGxpYnJhcnkgY2FtZSBmcm9tIHRoZSBleGFtcGxlIHN0cmVhbSBidWZmZXIgaW1wbGVtZW50YXRpb25zIGluIDxJPlN0YW5kYXJkIEMrKyBJT1N0cmVhbXMgYW5kIExvY2FsZXM8L0k+LCBieSBBbmdlbGlrYSBMYW5nZXIgYW5kIEtsYXVzIEtyZWZ0ICg8QSBDTEFTUz0iYmliX3JlZiIgSFJFRj0iYmlibGlvZ3JhcGh5Lmh0bWwjbGFuZ2VyIj5bTGFuZ2VyXTwvQT4pLiA8QSBIUkVGPSJodHRwOi8vbGlzdHMuYm9vc3Qub3JnL01haWxBcmNoaXZlcy9ib29zdC9tc2c0ODMwMC5waHAiIFRBUkdFVD0iX3RvcCI+Um9iZXJ0IFJhbWV5PC9BPiBzdWdnZXN0ZWQgZXh0ZW5kaW5nIHRoZSBsaWJyYXJ5IHRvIGhhbmRsZSBmaWx0ZXJpbmcuIEluIGFkZGl0aW9uOgo8L1A+Cgo8VUw+CiAgICA8TEkgQ0xBU1M9InNxdWFyZSI+CiAgICAgICAgVGhlIGltcGxlbWVudGF0aW9uIG9mIDxBIEhSRUY9Imd1aWRlL2dlbmVyaWNfc3RyZWFtcy5odG1sI3N0cmVhbV9idWZmZXIiPjxDT0RFPnN0cmVhbV9idWZmZXI8L0NPREU+PC9BPiBpcyBpbmRlYnRlZCB0byB3b3JrIG9mIEFuZ2VsaWthIExhbmdlciBhbmQgS2xhdXMgS3JlZnQgKDxBIENMQVNTPSJiaWJfcmVmIiBIUkVGPSJiaWJsaW9ncmFwaHkuaHRtbCNsYW5nZXIiPltMYW5nZXJdPC9BPiwgPEk+cHAuPC9JPiAyMjgtNDMpLgogICAgPC9MST4KICAgIDxMSSBDTEFTUz0ic3F1YXJlIj4KICAgICAgICBUaGUgZmlsdGVyaW5nIHN0cmVhbSBidWZmZXIgY29uY2VwdCB3YXMgaW52ZW50ZWQgYnkgSmFtZXMgS2FuemUgYW5kIERpZXRtYXIgSyZ1dW1sO2hsLiA8ST5TZWU8L0k+IDxBIENMQVNTPSJiaWJfcmVmIiBIUkVGPSJiaWJsaW9ncmFwaHkuaHRtbCNrYW56ZSI+W0thbnplXTwvQT4uIAogICAgPC9MST4KICAgIDxMST4KICAgICAgICBUaGUgY29uY2VwdHMgPEEgSFJFRj0iY29uY2VwdHMvaW5wdXRfZmlsdGVyLmh0bWwiPklucHV0RmlsdGVyPC9BPiBhbmQgPEEgSFJFRj0iY29uY2VwdHMvb3V0cHV0X2ZpbHRlci5odG1sIj5PdXRwdXRGaWx0ZXI8L0E+IHdlcmUgaW5zcGlyZWQgYnkgSmFtZXMgS2FuemUncyA8ST5leHRyYWN0b3JzPC9JPiBhbmQgPEk+aW5zZXJ0ZXJzPC9JPi4gSW4gYWRkaXRpb24sIHRoZSBuYW1lcyBvZiB0aGUgY29tcG9uZW50cyA8QSBIUkVGPSJjbGFzc2VzL2ZpbHRlcmluZ19zdHJlYW0uaHRtbCI+PENPREU+ZmlsdGVyaW5nX3N0cmVhbTwvQ09ERT48L0E+IGFuZCA8QSBIUkVGPSJjbGFzc2VzL2ZpbHRlcmluZ19zdHJlYW1idWYuaHRtbCI+PENPREU+ZmlsdGVyaW5nX3N0cmVhbWJ1ZjwvQ09ERT48L0E+IGFyZSBib3Jyd2VkIGZyb20gS2FuemUsIGFzIGFyZSBzZXZlcmFsIG9mIHRoZSBGaWx0ZXJzIGZyb20gdGhlIDxBIEhSRUY9InR1dG9yaWFsL3R1dG9yaWFsLmh0bWwiPlR1dG9yaWFsPC9BPi4gPEk+U2VlPC9JPiA8QSBDTEFTUz0iYmliX3JlZiIgSFJFRj0iYmlibGlvZ3JhcGh5Lmh0bWwja2FuemUiPltLYW56ZV08L0E+LiAKICAgIDwvTEk+CiAgICA8TEkgQ0xBU1M9InNxdWFyZSI+CiAgICAgICAgPEEgSFJFRj0iZ3VpZGUvcGlwZWxpbmVzLmh0bWwiPlBpcGVsaW5lczwvQT4gd2VyZSBpbnRyb2R1Y2UgYnkgSmFuIENocmlzdGlhYW4gdmFuIFdpbmtlbCBhbmQgSm9obiB2YW4gS3JpZWtlbi4gPEk+U2VlPC9JPiA8QSBDTEFTUz0iYmliX3JlZiIgSFJFRj0iYmlibGlvZ3JhcGh5Lmh0bWwjdmFuX3dpbmtlbCI+W3ZhbiBXaW5rZWxdLjwvQT4gRGlldG1hciBLJnV1bWw7aGwgc3VnZ2VzdGVkIGFkZGluZyB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIElvc3RyZWFtcyBsaWJyYXJ5LgogICAgPC9MST4KICAgIDxMSSBDTEFTUz0ic3F1YXJlIj4KICAgICAgICBUaGUgZmFjaWxpdHkgZm9yIGFkZGluZyBpdGVyYXRvciByYW5nZXMgYW5kIG91dHB1dCBpdGVyYXRvcnMgdG8gZmlsdGVyIGNoYWlucyB3YXMgaW5zcGlyZWQgYnkgd29yayBvZiBNYXhpbSBFZ29ydXNoa2luLiA8ST5TZWU8L0k+IDxBIENMQVNTPSJiaWJfcmVmIiBIUkVGPSJiaWJsaW9ncmFwaHkuaHRtbCNlZ29ydXNoa2luIj5bRWdvcnVzaGtpbl08L0E+LgogICAgPC9MST4KICAgIDxMSSBDTEFTUz0ic3F1YXJlIj4KICAgICAgICBUaGUgZGV2aWNlcyBmb3IgYWNjZXNzaW5nIDxBIEhSRUY9ImNsYXNzZXMvbWFwcGVkX2ZpbGUuaHRtbCI+bWVtb3J5LW1hcHBlZCBmaWxlPC9BPiBhcmUgYmFzZWQgb24gd29yayBvZiBDcmFpZyBIZW5kZXJzb247IDxJPnNlZTwvST4gKDxBIENMQVNTPSJiaWJfcmVmIiBIUkVGPSJiaWJsaW9ncmFwaHkuaHRtbCNoZW5kZXJzb24iPltIZW5kZXJzb25dPC9BPikuIEpvbmF0aGFuIEdyYWVobCBhZGRlZCBzZXZlcmFsIHVzZWZ1bCBmZWF0dXJlcy4gCiAgICA8L0xJPgogICAgPExJIENMQVNTPSJzcXVhcmUiPgogICAgICAgIFRoZSBkZXZpY2VzIGZvciBhY2Nlc3NpbmcgPEEgSFJFRj0iY2xhc3Nlcy9maWxlX2Rlc2NyaXB0b3IuaHRtbCI+ZmlsZSBkZXNjcmlwdG9yczwvQT4gYXJlIGJhc2VkIG9uIHdvcmsgb2YgTmljb2xhaSBKb3N1dHRpcyAoPEEgQ0xBU1M9ImJpYl9yZWYiIEhSRUY9ImJpYmxpb2dyYXBoeS5odG1sI2pvc3V0dGlzMSI+W0pvc3V0dGlzMV08L0E+IGFuZCA8QSBDTEFTUz0iYmliX3JlZiIgSFJFRj0iYmlibGlvZ3JhcGh5Lmh0bWwjam9zdXR0aXMyIj5bSm9zdXR0aXMyXTwvQT4pLgogICAgPC9MST4KICAgIDxMSSBDTEFTUz0ic3F1YXJlIj4KICAgICAgICBUaGUgPEEgSFJFRj0iY2xhc3Nlcy9hcnJheS5odG1sIj5hcnJheSBkZXZpY2VzPC9BPiBhbmQgPEEgSFJFRj0iY2xhc3Nlcy9udWxsLmh0bWwiPm51bGwgZGV2aWNlczwvQT4gd2VyZSBpbnNwaXJlZCBieSB3b3JrIG9mIERheWxlIFdhbGtlci4KICAgIDwvTEk+CiAgICA8TEkgQ0xBU1M9InNxdWFyZSI+CiAgICAgICAgVGhlIEZpbHRlcnMgZm9yIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uIHdlcmUgaW5mbHVlbmNlZCBieSB0aGUgd29yayBvZiBKZWZmIEdhcmxhbmQgKDxBIENMQVNTPSJiaWJfcmVmIiBIUkVGPSJiaWJsaW9ncmFwaHkuaHRtbCNnYXJsYW5kIj5bR2FybGFuZF08L0E+KSBhbmQgSm9uYXRoYW4gZGUgSGFsbGV1eCAoPEEgQ0xBU1M9ImJpYl9yZWYiIEhSRUY9ImJpYmxpb2dyYXBoeS5odG1sI2RlX2hhbGxldXgiPltkZSBIYWxsZXV4XTwvQT4pLgogICAgPC9MST4KICAgIDxMSSBDTEFTUz0ic3F1YXJlIj4KICAgICAgICBUaGUgdGVtcGxhdGUgPEEgSFJFRj0iY2xhc3Nlcy9zdGRpb19maWx0ZXIuaHRtbCI+PENPREU+YmFzaWNfc3RkaW9fZmlsdGVyPC9DT0RFPjwvQT4gd2FzIGluc3BpcmVkIGJ5IHdvcmsgb2YgQ2hyaXN0b3BoZXIgRGlnZ2lucy4gPEk+U2VlPC9JPiA8QSBDTEFTUz0iYmliX3JlZiIgSFJFRj0iYmlibGlvZ3JhcGh5Lmh0bWwjZGlnZ2lucyI+W0RpZ2dpbnNdPC9BPi4KICAgIDwvTEk+CiAgICA8TEkgQ0xBU1M9InNxdWFyZSI+CiAgICAgICAgVGhlIHRyZWF0bWVudCBvZiA2NC1iaXQgPEEgSFJFRj0iZnVuY3Rpb25zL3Bvc2l0aW9uaW5nLmh0bWwiPnN0cmVhbSBvZmZzZXRzPC9BPiB3YXMgc3VnZ2VzdGVkIGJ5IEdhcmV0aCBTeWx2ZXN0ZXItQnJhZGxleSwgd2hvIGFsc28gc3VwcGxpZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBwb3NpdGlvbmluZyBmdW5jdGlvbnMgdXNlZCB3aXRoIHRoZSBEaW5rdW13YXJlIHN0YW5kYXJkIGxpYnJhcnkuCiAgICA8L0xJPgogICAgPExJIENMQVNTPSJzcXVhcmUiPgogICAgICAgIFRoZSB0ZW1wbGF0ZSA8QSBIUkVGPSJmdW5jdGlvbnMvcmVzdHJpY3QuaHRtbCNyZXN0cmljdGlvbiI+PENPREU+cmVzdGljdGlvbjwvQ09ERT48L0E+IHdhcyBzdWdnZXN0ZWQgYnkgRGF2aWQgQWJyYWhhbXMuIDxJPlNlZTwvST4gIDxBIENMQVNTPSJiaWJfcmVmIiBIUkVGPSJiaWJsaW9ncmFwaHkuaHRtbCNhYnJhaGFtczIiPltBYnJhaGFtczJdPC9BPi4KICAgIDwvTEk+CiAgICA8TEkgQ0xBU1M9InNxdWFyZSI+CiAgICAgICAgTWF4aW0gRWdvcnVzaGtpbiwgTGFycnkgRXZhbnMsIEdlb3JnZSBNLiBHYXJuZXIsIEpvbmF0aGFuIEdyYWVobCwgUm9iZXJ0IFJhbWV5LCBSb2IgU3Rld2FydCwgSm9obiBUb3JqbywgUGF2ZWwgVm96ZW5pbGVrIGFuZCBDYXJsbyBXb29kcyBwcm92aWRlZCBleHRlbnNpdmUgY3JpdGljaXNtIG9mIHZhcmlvdXMgdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnkuCiAgICA8L0xJPgogICAgPExJIENMQVNTPSJzcXVhcmUiPgogICAgICAgIEFuZ2VsaWthIExhbmdlciBhbmQgSmFtZXMgS2FuemUgcHJvdmlkZWQgdXNlZnVsIGluc2lnaHRzIGludG8gdGhlIHByb3BlciByb2xlIG9mIGV4Y2VwdGlvbnMgaW4gdGhlIElvc3RyZWFtIGxpYnJhcnkuCiAgICA8L0xJPgogICAgPExJIENMQVNTPSJzcXVhcmUiPgogICAgICAgIFJvYmVydCBSYW1leSdzIGRvY3VtZW50YXRpb24gZm9yIDxBIEhSRUY9Ii4uLy4uL3NlcmlhbGl6YXRpb24vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj5Cb29zdC5TZXJpYWxpemF0aW9uPC9BPiBwcm92aWRlZCB0aGUgaW5zcGlyYXRpb24gZm9yIHRoZSA8QSBIUkVGPSJodHRwOi8vd3d3Lmthbmdhcm9vbG9naWMuY29tL3RyZWVfY29udHJvbC9kb2MvdHJlZS9kb2MvZGVtby5odG1sP3BhdGg9MSIgVEFSR0VUPSJfdG9wIj5KYXZhc2NyaXB0IFRyZWUgQ29udHJvbDwvQT4gdXNlZCBpbiB0aGlzIGRvY3VtZW5hdGlvbi4KICAgIDwvTEk+CiAgICA8TEkgQ0xBU1M9InNxdWFyZSI+CiAgICAgICAgSmVmZiBHYXJsYW5kIHNlcnZlZCBhcyByZXZpZXcgbWFuYWdlciBhbmQgcHJvdmlkZWQgaGVscGZ1bCBjcml0aWNpc20gYW5kIGd1aWRhbmNlLgogICAgPC9MST4KICAgIDxMSSBDTEFTUz0ic3F1YXJlIj4KICAgICAgICBUaG9zZSB3aG8gcGFydGljaXBhdGVkIGluIHRoZSBmb3JtYWwgcmV2aWV3IG9yIHRoZSBwb3N0LXJldmlldyBkaXNjdXNzaW9ucywgb3Igd2hvIHN1Ym1pdHRlZCBidWcgcmVwb3J0cyBvciBwYXRjaGVzLCBpbmNsdWRlIChpbiBubyBwYXJ0aWN1bGFyIG9yZGVyKSBBZGFtIFBldGVyc29uLCBKb2FxdSZpYWN1dGU7biBNIEwmb2FjdXRlO3BleiBNdSZudGlsZGU7b3osIE5lYWwgRC4gQmVja2VyLCBTdGFzIEdhcmlmdWxpbiwgVmxhZGltaXIgUHJ1cywgUm9iIFN0ZXdhcnQsIFJvYmVydCBSYW1leSwgTWljaGVsIERlY2ltYSwgTWljaGllbCBTYWx0ZXJzLCBQZWRybyBMYW1hciZhdGlsZGU7bywgRGlldG1hciBLJnV1bWw7aGwsIE9sZWcgUmVrdXRpbiwgUmVlY2UgRHVubiwgU3RlZmFuIFNsYXBldGEsIEplZmYgRmxpbm4sIEplZmYgR2FybGFuZCwgRXVnZW5lIExhenV0a2luLCBKb2huIFRvcmpvLCBCcmlhbiBCcmFhdHosIEtlaXRoIEJ1cnRvbiwgS2VpdGggTWFjRG9uYWxkLCBQaGlsIFJpY2hhcmRzLCBBcmplbiBXYWdlbmFhciwgQ2FsZWIgRXBzdGVpbiwgRHlsYW4gVHJvdHRlciwgQmVuIEh1dGNoaW5ncywgRGFuaWVsIEphbWVzLCBEYW5pZWwgU2NobHlkZXIsIEphbiBDaHJpc3RpYWFuIHZhbiBXaW5rZWwsIEpvbmF0aGFuIEdyYWVobCwgSm9uYXRoYW4gV2FrZWx5LCBSZW5lIFJpdmVyYSwgVG9ueSBKdXJpY2ljLCBCcm9uZWsgS296aWNraSwgR2VvcmdlIE0uIEdhcm5lciwgSnIuLCBUaG9yc3RlbiBPdHRvc2VuLCBCZXJ0b2x0IE1pbGRuZXIsIENhcmxvIFdvb2QsIENocmlzdG9wZXIgRGlnZ2lucywgQ2hyaXN0b3BoIEx1ZHdpZywgRGFyeWxlIFdhbGtlciwgRGlyayBHcmlmZmlvZW4sIEdhcmV0aCBTeWx2ZXN0ZXItQnJhZGxleSwgSiZ1dW1sO3JnZW4gSHVub2xkLCBMYXJyeSBFdmFucywgTWFya3VzIFNjaCZvdW1sO3BmbGluLCBNYXJ0aW4gRWNrZXIsIE1hcnRpbiBXaWxsZSwgUnVzc2VsIEhpbmQsIE1hdHRoZXcgVm9ndCwgTWF0dGhpYXMgVHJveWVyLCBQZXRlciBEaW1vdiwgQnJ1bm8gTWFydCZpYWN1dGU7bmV6IEFndWVycmUsIERvdWdsYXMgR3JlZ29yLCBQYXVsIEEuIEJyaXN0b3csIERhdmlkIEIuIEhlbGQsIEtldmluIFdoZWF0bGV5LCBQYXZlbCBWb3plbmlsZWssIEVtbWFudWVsIFRob23pLCBTY290dCBXb29kcywgSXNyYWVsIEZlcm4mYWFjdXRlO25kZXogQ2FicmVyYSwgRmVsaXggR2FydHNtYW4sIFBhdmVsIENoaWt1bGFldiwgTGlzYSBHbGVuZGVubmluZywgWXV2YWwgUm9uZW4gYW5kIFBhdWwgSGFycmlzLgogICAgPC9MST4KPC9VTD4KCjwhLS0gQmVnaW4gRm9vdGVyIC0tPgoKPEhSPgoKPFAgQ0xBU1M9ImNvcHlyaWdodCI+UmV2aXNlZCAwMiBGZWIgMjAwODwvUD4KCjxQIENMQVNTPSJjb3B5cmlnaHQiPiZjb3B5OyBDb3B5cmlnaHQgMjAwOCA8YSBocmVmPSJodHRwOi8vd3d3LmNvZGVyYWdlLmNvbS8iIHRhcmdldD0iX3RvcCI+Q29kZVJhZ2UsIExMQzwvYT48YnIvPiZjb3B5OyBDb3B5cmlnaHQgMjAwNC0yMDA3IDxhIGhyZWY9Imh0dHA6Ly93d3cuY29kZXJhZ2UuY29tL3R1cmthbmlzLyIgdGFyZ2V0PSJfdG9wIj5Kb25hdGhhbiBUdXJrYW5pczwvYT48L1A+CjxQIENMQVNTPSJjb3B5cmlnaHQiPiAKICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCA8QSBIUkVGPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPmh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvQT4pCjwvUD4KPCEtLSBFbmQgRm9vdGVyIC0tPgo8L0JPRFk+Cg==