bGliYXBhY2hlLW1vZC1kdGNsICgwLjExLjYtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogRml4ZWQgcHJvYmxlbSB3aXRoICd2YXInIGNvbW1hbmQuICBWYXJpYWJsZXMgd2l0aCBzaW1pbGFyIG5hbWVzCiAgICBzb21ldGltZXMgYXJlIGNvbmZ1c2VkLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGRlYmlhbi5vcmc+ICBXZWQsIDEzIE1hciAyMDAyIDE2OjU3OjE0ICswMTAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuMTEuNS0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBGaXhlZCBwb3N0aW5zdCBhbmQgcG9zdHJtLCB0aGFua3MgdG8gSuFub3MgSG9s4W55aSA8Y3NhbmlAbG1lLmxpbnV4Lmh1Pi4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BkZWJpYW4ub3JnPiAgTW9uLCAxOSBOb3YgMjAwMSAxMjo0MjowNiArMDEwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjExLjUtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogQ2hlY2sgcmV0dXJuIHZhbHVlIGZvciBBcGFjaGVSZXF1ZXN0X19fcGFyc2UuCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZGViaWFuLm9yZz4gIFNhdCwgIDMgTm92IDIwMDEgMTc6Mzg6MDggKzAxMDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC4xMS40LTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIEZpeGVkIGJ1ZyBpbiBQYXJzZSBjb21tYW5kLgogIAogICogQWRkZWQgRGViaWFuIFNTTCBjb25maWcgc3R1ZmYgZnJvbSBK4W5vcyBIb2zhbnlpIChjbG9zZXM6ICMxMTUzMzMpCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZGViaWFuLm9yZz4gIE1vbiwgMTUgT2N0IDIwMDEgMjA6NDM6NDAgKzAyMDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC4xMS4zLTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIEkxOG4gdXBkYXRlcy4KCiAgKiBGaXhlZCBidWlsZCBzY3JpcHRzLiAoY2xvc2VzOiAjMTExNDg4KQoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGRlYmlhbi5vcmc+ICBUdWUsICA5IE9jdCAyMDAxIDE3OjIyOjM3ICswMjAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuMTEuMi0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBNaW5vciB1cGRhdGVzLgogICogRml4ZXMgYnVpbGQgdmFyaWFibGVzOiAoY2xvc2VzOiAjMTAyMjAwKQoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGRlYmlhbi5vcmc+ICBUaHUsIDMwIEF1ZyAyMDAxIDExOjA4OjE3ICswMjAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuMTEuMS0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKICAKICAqIEZpeGVkIFZBUlMgdmFyaWFibGUsIGRvY3VtZW50YXRpb24gdXBkYXRlcy4gIAogCiAgKiBGaXhlZCBidWlsZCB2YXJpYWJsZXM6IChjbG9zZXM6ICMxMDIyMDgpCiAgCiAtLQoKLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZGViaWFuLm9yZz4gIEZyaSwgMjcgSnVsIDIwMDEgMTM6NTI6MTAgKzAyMDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC4xMS4wLTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIE5ldyB2YXJpYWJsZSBjb21tYW5kICd2YXInLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGRlYmlhbi5vcmc+ICBTYXQsICAyIEp1biAyMDAxIDE5OjE4OjMwICswMjAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuMTAuMS0wKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBGaXhlZCBmaWxlIHVwbG9hZCBidWcuCiAgCiAgKiBBZGRlZCBFcnJvclNjcmlwdCBkaXJlY3RpdmUuCiAgCiAgKiBVcGRhdGUgZG9jcy4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BkZWJpYW4ub3JnPiAgVHVlLCAgMSBNYXkgMjAwMSAxODoxNzowOCArMDIwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjkuMy0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBVcGdyYWRlZCBhcHJlcSogc3R1ZmYgdG8gZGVhbCB3aXRoIGZpbGUgdXBsb2FkcyBkaXJlY3RseSB0byBhcGFjaGUKICAgIHZhcmlhYmxlLgogIAogICogVVBMT0FEIHZhcmlhYmxlcyBjYW4gbm93IGJlIGxpc3RzLgogIAogICogU3dpdGNoZWQgc3ludGF4IHRvIDw/ID8+LgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGRlYmlhbi5vcmc+ICBUdWUsIDIwIE1hciAyMDAxIDIwOjE3OjI5ICswMTAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuOS4zLTIpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIEFkZGVkIGJ1aWxkIGRlcGVuZHMuCiAgCiAgKiBDbG9zZXMgIzg1Nzg3LgogIAogICogQ2xvc2VzICM4NzI1MS4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BkZWJpYW4ub3JnPiAgTW9uLCAyNiBGZWIgMjAwMSAxNDowMTozNCArMDEwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjkuMy0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBOZXcgdmVyc2lvbi4KICAKICAqIENsZWFuZWQgdXAgRGViaWFuIGJ1aWxkIHN0dWZmLCAoRml4ZXMgIzY2NDAyKS4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0Bwcm9zYS5pdD4gIEZyaSwgMTYgRmViIDIwMDEgMTQ6MTE6NTUgKzAxMDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC45LjAtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogTmV3IHZlcnNpb24uCiAgCiAgKiBTdGFydGVkIHVzaW5nIGFwcmVxIGNvZGUgZm9yIGZpbGUgdXBsb2FkcyBhbmQgb3RoZXIgc3R1ZmYuCiAgCiAgKiBEb2N1bWVudGF0aW9uIGNoYW5nZXMuCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZGViaWFuLm9yZz4gIE1vbiwgMTIgRmViIDIwMDEgMTk6NTI6NTkgKzAxMDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC44LjEyLTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIFZhcmlvdXMgY29va2llIGZpeGVzLgogIAogICogTmV3IGJ1aWxkIHN5c3RlbS4KICAKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QHByb3NhLml0PiAgU3VuLCAgNSBOb3YgMjAwMCAyMzo0ODoxMSArMDEwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjguOC0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBDb2RlIHRvIGRlYWwgd2l0aCBiZWZvcmUvYWZ0ZXIgc2NyaXB0cy4KICAKICAqIFJld3JpdGUgb2YgQXBhY2hlIGRpcmVjdGl2ZXMuCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAbGludXhjYXJlLmNvbT4gIFR1ZSwgMjYgU2VwIDIwMDAgMTc6NTk6NTcgKzAyMDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC44LjEtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogUHV0IHNvbWUgY29kZSBpbiBhcyBhIHdvcmthcm91bmQgZm9yIHN5c3RlbXMgd2l0aCBUY2wgY29tcGlsZWQgYWdhaW5zdAogICAgdGhyZWFkcy4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgVGh1LCAyMiBKdW4gMjAwMCAwMTo0MjoyNiArMDIwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjguMC0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCBidWlsZGluZyBvbiBIUFVYLgogICogQWRkZWQgc3VwcG9ydCBmb3IgLnRjbCBmaWxlcy4KICAqIEZpeGVkIGJ1ZyBpbiBIR2V0VmFycyB3aGljaCBtYW5pZmVzdHMgaXRzZWxmIG9ubHkgd2hlbiBjb250ZW50CiAgICBuZWdvdGlhdGlvbiBpcyB1c2VkLgogICogVXBkYXRlZCBkb2N1bWVudGF0aW9uLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBUdWUsIDE2IE1heSAyMDAwIDE5OjAwOjA1ICswMjAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNy41LTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIENoYW5nZWQgaHB1dHMgdG8gdXNlICIiIGluc3RlYWQgb2Yge30sIHNvIHRoYXQgeyBhbmQgfSBtYXkgYmUgZXNjYXBlZAogICAgd2l0aCBiYWNrc2xhc2hlcy4KICAKICAqIENoYW5nZWQgb3V0cHV0IGZvcm1hdCBmb3IgZXJyb3JzLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBXZWQsIDE5IEFwciAyMDAwIDE3OjQ5OjQ3ICswMjAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNy4zLTIpIGZyb3plbiB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBSZW1vdmVkICJjb2RlMmh0bWwiIHRhcmdldCBmcm9tIGJ1aWxkIHRhcmdldC4gIAogICogRml4ZXMgIzU4NDMxLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBGcmksICAzIE1hciAyMDAwIDEzOjExOjIzICswMTAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNy4zLTEpIGZyb3plbiB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBGaXhlcyBHRVQgYXJndW1lbnQgcGFyc2luZyBidWcuCiAgKiBDaGFuZ2VkIGFyZ3VtZW50IHBhcnNpbmcgdG8gY3JlYXRlIG9uZSBsaXN0IGFuZCBhdm9pZCBzdWJsaXN0cy4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgU2F0LCAyMiBKYW4gMjAwMCAyMDo0NjozNCAtMDgwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjcuMC0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBNYWRlIGhwdXRzLCBpbmNsdWRlLCBhbmQgYnVmZmVyX2FkZCBjb21tYW5kcyBzYWZlIGZvciBiaW5hcnkgYW5kCiAgICBzcGFyc2UgZGF0YS4KICAKICAqIE5vdyBhYmxlIHRvIG91dHB1dCBkaWZmZXJlbnQgbWltZSB0eXBlcy4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgU2F0LCAxOCBEZWMgMTk5OSAxODo1MDoyOSAtMDgwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjcuMC0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBNYWpvciBvdmVyaGF1bCBvZiBoZWFkZXIgYW5kIGJ1ZmZlcmluZyBzeXN0ZW0uCiAgKiBTZXZlcmFsIG5ldyBjb21tYW5kcy4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgU3VuLCAgNSBEZWMgMTk5OSAyMToyNDoyMyAtMDgwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjYuNC0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBGaXhlZCBMaW50aWFuIHByb2JsZW1zOgogICogU2V0IGFuZCByZW1vdmUgbGlua3MgYmV0d2VlbiAvdXNyL2RvYyBhbmQgL3Vzci9zaGFyZS9kb2MuCiAgKiBBZGRlZCBkaF9pbnN0YWxsY2hhbmdlbG9ncy4KICAKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBTdW4sIDE0IE5vdiAxOTk5IDE1OjE1OjUxIC0wODAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNi40LTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIFBhdGNoIGZyb20gSmFuIE5panRtYW4gdG8gY29tcGlsZSBtb2RfZHRjbCB1bmRlciB3aW5kb3dzIGFuZCBlbGltaW5hdGUKICAgIHN0cmluZ3MuaC4gIEluY2x1ZGVkIHdpbmRvd3MvIGRpcmVjdG9yeSBpbiBzb3VyY2VzLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBTYXQsICA2IE5vdiAxOTk5IDA5OjU0OjM0IC0wODAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNi4zLTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIEZpeGVkIHNtYWxsIGJ1ZyBpbiB2YXJpYWJsZSBkZWNvZGluZyAoUGF0cmljayBEaWFtb25kKS4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgTW9uLCAxOCBPY3QgMTk5OSAwNzoyNzo0OSAtMDcwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjYuMi0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBBZGRlZCBQYXRyaWNrIERpYW1vbmQncyBmaXggZm9yIHJlbW5hbnQgbmFtZXNwYWNlcy4KICAqIFNpbXBsaWZpZWQgaGFuZGxpbmcgb2YgbGlzdCBDR0kgdmFyaWFibGVzICh0aGFua3MgdG8gQW5kcmV3IE4uIE5lZmVka2luKQoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBGcmksIDEzIEF1ZyAxOTk5IDIxOjIzOjUyIC0wNzAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNi4xLTIpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIE5vdywgImV4YW1wbGVzLnR0bWw/YT0xJmE9MiZhPTMiIGNyZWF0ZXMgYSBUY2wgbGlzdCwgaW5zdGVhZCBvZgogICBvdmVyd3JpdGluZyAnYScgd2l0aCB0aGUgbGFzdCB2YWx1ZS4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgVHVlLCAgMyBBdWcgMTk5OSAyMzo0OTo0NCAtMDcwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjYuMC0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBDcmVhdGVkIFBhcnNlIFRjbCBjb21tYW5kLCB0byBlbmFibGUgcGFyc2luZyBvZiB0dG1sIGZpbGVzIGZyb20KICAgd2l0aGluIHNjcmlwdHMuCgogICogQ2hhbmdlZCB0byBBcGFjaGUgYWxsb2MgY29tbWFuZHMgaW4gcGFyc2VhcmdzLgoKICAqIEZpeGVkIGJ1ZyBpbiBHRVQgdmFyaWFibGUgaGFuZGxpbmcgKGh0dHA6Ly9zb21lc2l0ZS9mb28udHRtbD9mb28KICAgbm93IHdvcmtzKS4KCiAgKiBBZGRlZCBjaGlsZF9pbml0IGFuZCBjaGlsZF9leGl0IGhhbmRsZXJzIGFuZCBkaXJlY3RpdmVzLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBUaHUsIDI5IEp1bCAxOTk5IDIwOjU0OjIzIC0wNzAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNS40LTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIEZpeGVkIGJ1ZyBpbiBQT1NUIGNvZGUuCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZWZuLm9yZz4gIE1vbiwgMTQgSnVuIDE5OTkgMjI6Mzk6MDggLTA3MDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC41LjMtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogRml4ZWQgcHJvYmxlbSB3aXRoIFBPU1QgZGF0YS4KICAqIEludGVncmF0ZWQgUGF0cmljayBEaWFtb25kJ3MgbmV3IEhHZXRWYXJzLmMuCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZWZuLm9yZz4gIFR1ZSwgIDggSnVuIDE5OTkgMjM6NTU6NDAgLTA3MDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC41LjItMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogU21hbGwgZml4IGZyb20gUGFvbG8gQnJ1dHRpIC0gY2hhbmdlICdjJyB0byBjaGFyIGluIHBhcnNlci4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgV2VkLCAyMSBBcHIgMTk5OSAyMDoxMjo0NCAtMDcwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjUuMS0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBjYWNoZVNpemUgZGVmYXVsdHMgdG8gYXBfbWF4X3JlcXVlc3RzX3Blcl9jaGlsZCAvIDIuCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZWZuLm9yZz4gIFR1ZSwgMjAgQXByIDE5OTkgMTI6Mjc6MTggLTA3MDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC41LjAtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogQWRkZWQgInRlc3RkdGNsIiwgZm9yIHN0YXRpYyB0ZXN0aW5nIG9mIHR0bWwgcGFnZXMuCiAgKiBBZGRlZCBuZXcgVGNsIGNvbW1hbmQgImR0Y2xfaW5mbyIsIHdoaWNoIHByaW50cyBzb21lIGluZm8gYWJvdXQgdGhlCiAgaW50ZXJuYWwgc3RhdGUuCiAgKiBBZGRlZCAiRHRjbF9DYWNoZVNpemUiIGdsb2JhbCBjb25maWd1cmF0aW9uLgogICogQ2hhbmdlZCAiR2xvYmFsU2NyaXB0IiB0byAiRHRjbF9HbG9iYWxTY3JpcHQiLgogICogQWRkZWQgUGFvbG8gQnJ1dHRpJ3MgY2hhbmdlcywgd2hpY2ggaW5jbHVkZToKICAqIE1vcmUgY29tcGxldGUgdXNlIG9mIFRjbCBvYmplY3RzLgogICogQ2FjaGluZyBzeXN0ZW0uICBUaGlzIGRvZXMgbm90IGNhY2hlIHRoZSByZXN1bHRzIG9mIHRoZSBzY3JpcHRzLCBqdXN0CiAgdGhlIFRjbCBvYmplY3RzIHJlc3VsdGluZyBmcm9tIHJlYWRpbmcgdGhlIGZpbGVzIGluIGFuZCBwYXJzaW5nIHRoZW0uCiAgKiBVc2Ugb2YgYXBfIGNvbW1hbmRzIHRvIG1hbmFnZSBtZW1vcnkuCiAgKiBUaGUgSW5jbHVkZSBjb21tYW5kIGlzIGltcGxlbWVudGVkIHdpdGggVGNsXyBmaWxlIGludGVyZmFjZSwgd2hpY2gKICBpbXByb3ZlcyBib3RoIHBvcnRhYmlsaXR5IGFuIGVycm9yIG1lc3NhZ2luZy4KICAqIEFsbCAid3JvbmcgYXJncyIgYXJlIGltcGxlbWVudGVkIHdpdGggdGhlIHN0YW5kYXJkIFRjbF9Xcm9uZ051bUFyZ3MgY2FsbC4KICAqIFRoYW5rcyBQYW9sbyEKCQogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZWZuLm9yZz4gIFN1biwgMTQgTWFyIDE5OTkgMTQ6NDc6MDMgLTA4MDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC40LjYtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogQWRkZWQgJ3NldGNvb2tpZScgY29tbWFuZC4KICAqIERyYW1hdGljIGltcHJvdmVtZW50cyB0byBkdGNsLW1vZGUuZWwsIGFsbG93aW5nIHlvdSB0byBhdXRvbWF0aWNhbGx5CiAgc3dpdGNoIGJldHdlZW4gVENMIGFuZCBIVE1MIG1vZGVzIQogICogSW5pdGlhdGVkIHN3aXRjaCB0byBUY2wgJ29iamVjdHMnLgogICogQmVnaW5pbmdzIG9mIGEgdXNlciBtYW51YWwgaW4gdXNlLmh0bWwuCgkKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBTdW4sIDE0IE1hciAxOTk5IDE0OjQ3OjAzIC0wODAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNC41LTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIENoYW5nZWQgJ2NnaS50Y2wnIHRvICdkdGNsLnRjbCcsIGFuZCBhZGRlZCBSb2xmIEFkZSdzIGltcHJvdmVtZW50cy4KICAqIEFkZGVkIGRvY3VtZW50YXRpb24gcGFnZSBmb3IgZHRjbC50Y2wuCiAgKiBVcGRhdGVkIGRvY3VtZW50YXRpb24uCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZWZuLm9yZz4gIFdlZCwgMjQgRmViIDE5OTkgMjM6MzM6MjAgLTA4MDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC40LjQtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogRml4ZWQgbWlub3IgYnVncyBpbiBQT1NUIGNvZGUuCiAgKiBBZGRlZCBkdGNsLW1vZGUuZWwuCiAgKiBEb2N1bWVudGF0aW9uIGNoYW5nZXM6IHVwZGF0ZXMsIGFuZCBleHBsYW5hdGlvbiBvZiBob3cgdG8gY29tcGlsZQogICAgbW9kX2R0Y2wgYXMgYSBzdGF0aWMgbW9kdWxlLgogICogQWRkZWQgJ0NvbmZpZ3VyZScgaGVscCB0byBtb2RfZHRjbC5jCiAgKiBBZGRlZCBSb2xmIEFkZSdzIHByZWxpbWluYXJ5IGNnaS50Y2wuICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgaXMKICAgICphbHBoYSogc29mdHdhcmUuCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZWZuLm9yZz4gIFNhdCwgMjAgRmViIDE5OTkgMTI6NTE6NTEgLTA4MDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC40LjMtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogRml4ZWQgcG9pbnRlciBidWcgaW4gcHRjaGFyIGFuZCBwdHN0ci4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgV2VkLCAgMyBGZWIgMTk5OSAyMTowMDowMiAtMDgwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjQuMi0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBDaGFuZ2VzIGluIGRvY3VtZW50YXRpb24sIGFkZGVkIHNldmVyYWwgZmlsZXMsIGluY2x1ZGluZyAnSU5TVEFMTCcsCiAgICBiZW5jaG1hcmsuaHRtbCwgYW5kIHNldmVyYWwgb3RoZXJzLgogICogRml4ZWQgaGFuZGxpbmcgb2YgPERpcmVjdG9yeT4gT3B0aW9ucywgc28gbm8gY2hhbmdlcyBhcmUgbmVlZGVkIGluIHRoZQogICAgY29uZmlnIGZpbGVzLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBTYXQsIDMwIEphbiAxOTk5IDEzOjU1OjE0IC0wODAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNC4xLTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIEZpeGVkIG1pbm9yIGJ1Z3MgaW4gbmFtZXNwYWNlIGNyZWF0aW9uLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBNb24sIDExIEphbiAxOTk5IDIyOjM1OjIwIC0wODAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuNC0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBBZGRlZCAnLWVycm9yJyB0byBocHV0cyBmb3IgdGNsIGVycm9yIHJlcG9ydGluZy4KICAqIERpc3BlbnNlZCB3aXRoIG5ldyBpbnRlcnByZXRlciBwZXIgcmVxdWVzdCBpbiBmYXZvciBvZiBhIG5ldyBuYW1lc3BhY2UKICBhdCBlYWNoIHJlcXVlc3QsIGFuZCBhIGdsb2JhbCBpbnRlcnByZXRlci4KICAqIEFkZGVkIGNvbmZpZyBvcHRpb24gZm9yIGdsb2JhbCBzdGFydHVwIHNjcmlwdC4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgU2F0LCAxMiBEZWMgMTk5OCAxNjowNToyMCAtMDgwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjMtMSkgZnJvemVuIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIEFkZGVkICdpbmNsdWRlJyBmdW5jdGlvbi4KICAqIENsZWFuZWQgdXAgY29tbWVudHMsIGRvY3VtZW50YXRpb24uCiAgKiBBZGRlZCBwYXRjaCBieSAocm9sZkBwb2ludHNtYW4uZGUpLCB3aGljaCBlbGltaW5hdGVzIG5lZWQgZm9yIGdsb2JhbF9yZXF1ZXN0X3JlYywgYW5kIGluc3RlYWQgbWFrZXMgdXNlIG9mIENsaWVudERhdGEuCiAgKiBBZGRlZCBwcmVsaW1pbmFyeSBQT1NUIGZ1bmN0aW9uYWxpdHksIGNvcGllZCwgYW5kIG1vZGlmaWVkLCBmcm9tIG1vZF9jZ2kuCiAgKiBDb21waWxlZCB1bmRlciBBcGFjaGUgMS4zLjMuCgkKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBNb24sIDIzIE5vdiAxOTk4IDIyOjU0OjAzIC0wODAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuMi0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBGaXhlZCBhIGZldyBidWdzIGFmZmVjdGluZyBwb3J0YWJpbGl0eS4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgV2VkLCAxNCBPY3QgMTk5OCAyMzowNTo0MCAtMDcwMAoKbGliYXBhY2hlLW1vZC1kdGNsICgwLjItMikgdW5zdGFibGU7IHVyZ2VuY3k9bG93CgogICogUmVjb21waWxlZCBmb3IgQXBhY2hlIDEuMy4yLgoKIC0tIERhdmlkIE4uIFdlbHRvbiA8ZGF2aWR3QGVmbi5vcmc+ICBTdW4sIDExIE9jdCAxOTk4IDAwOjE1OjMzIC0wNzAwCgpsaWJhcGFjaGUtbW9kLWR0Y2wgKDAuMi0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKCiAgKiBBZGRlZCBkZXNjcmlwdGlvbiB0byBjb250cm9sIGZpbGUuCiAgKiBVcGRhdGVkIGZvciBBcGFjaGUgMS4zLjEuCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZWZuLm9yZz4gIEZyaSwgIDQgU2VwIDE5OTggMTY6MTg6MDAgLTA3MDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC4xLTMpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIEFkZGVkIGEgZmV3IHRoaW5ncyB0byB0aGUgZG9jcy4gCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZWZuLm9yZz4gIEZyaSwgMjQgSnVsIDE5OTggMTA6MzU6MjAgLTA3MDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC4xLTIpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIFR3ZWFrZWQgcG9zdGluc3QgZmlsZSwgY2hhbmdlZCBkdGNsLnR0bWwgdG8gLmh0bWwuCgogLS0gRGF2aWQgTi4gV2VsdG9uIDxkYXZpZHdAZWZuLm9yZz4gIFNhdCwgMTggSnVsIDE5OTggMTE6MTQ6NDggLTA3MDAKCmxpYmFwYWNoZS1tb2QtZHRjbCAoMC4xLTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwoKICAqIEluaXRpYWwgUmVsZWFzZS4KCiAtLSBEYXZpZCBOLiBXZWx0b24gPGRhdmlkd0BlZm4ub3JnPiAgRnJpLCAxMCBKdWwgMTk5OCAyMDowMTozNSAtMDcwMAoKCg==