LyoKICogQ29weXJpZ2h0IDIwMDkgo3VrYXN6IFdvam5ps293aWN6CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJ3aW5kZWYuaCIKI2luY2x1ZGUgIm1tZGRrLmgiCgpTVFJJTkdUQUJMRSBMQU5HVUFHRSBMQU5HX1BPTElTSCwgU1VCTEFOR19ORVVUUkFMCkJFR0lOCgovKiBNTVNZUyBlcnJvcnMgKi8KTU1TWVNFUlJfTk9FUlJPUiwgCQkiV3lrb25hbm8gcG9kYW5lIHBvbGVjZW5pZS4iCk1NU1lTRVJSX0VSUk9SLCAJCSJOaWV6ZGVmaW5pb3dhbnkgemV3bup0cnpueSBis7lkLiIKTU1TWVNFUlJfQkFEREVWSUNFSUQsIAkJIlpvc3RhsyB1v3l0eSBpZGVudHlmaWthdG9yIHVyerlkemVuaWEsIGt083J5IGplc3QgcG96YSB6YWtyZXNlbSB0d29qZWdvIHN5c3RlbXUuIgpNTVNZU0VSUl9OT1RFTkFCTEVELCAJCSJTdGVyb3duaWsgbmllIHpvc3RhsyB3s7ljem9ueS4iCk1NU1lTRVJSX0FMTE9DQVRFRCwgCQkiUG9kYW5lIHVyerlkemVuaWUgamVzdCBqdb8gdyB1v3ljaXUuIFBvY3pla2FqLCBhvyBzaeogendvbG5pIGkgc3By82J1aiBwb25vd25pZS4iCk1NU1lTRVJSX0lOVkFMSEFORExFLCAJCSJVY2h3eXQgcG9kYW5lZ28gdXJ6uWR6ZW5pYSBqZXN0IG5pZXBvcHJhd255LiIKTU1TWVNFUlJfTk9EUklWRVIsIAkJIk5hIHR3b2ltIHN5c3RlbWllIG5pZSBtYSB6YWluc3RhbG93YW5lZ28gc3Rlcm93bmlrYSAhXG4iCk1NU1lTRVJSX05PTUVNLCAJCSJNYXN6IHpieXQgbWGzbyBkb3N06nBuZWogcGFtaepjaSBkbyB0ZWdvIHphZGFuaWEuXG4gWmFrb/FjeiBqZWRuuSBsdWIgd2nqY2VqIGFwbGlrYWNqaSwgYWJ5IHp3aeprc3p55iByb3ptaWFyIGRvc3TqcG5laiBwYW1p6mNpIGkgc3By82J1aiBwb25vd25pZS4iCk1NU1lTRVJSX05PVFNVUFBPUlRFRCwgCQkiVGEgZnVua2NqYSBuaWUgamVzdCB3c3BpZXJhbmEuIFW/eWogZnVua2NqaSAnQ2FwYWJpbGl0aWVzJyBhYnkgb2tyZZxsaeYsIGt083JlIGZ1bmtjamUgaSB3aWFkb21vnGNpIHO5IHdzcGllcmFuZSBwcnpleiBzdGVyb3duaWsuIgpNTVNZU0VSUl9CQURFUlJOVU0sIAkJIk9rcmWcbG9ubyBudW1lciBis+pkdSwga3TzcnkgbmllIGplc3QgemRlZmluaW93YW55IHcgc3lzdGVtaWUuIgpNTVNZU0VSUl9JTlZBTEZMQUcsIAkJIlByemVrYXphbm8gbmllcG9wcmF3brkgZmxhZ+ogZG8gZnVua2NqaSBzeXN0ZW1vd2VqLiIKTU1TWVNFUlJfSU5WQUxQQVJBTSwgCQkiUHJ6ZWthemFubyBuaWVwb3ByYXdueSBwYXJhbWV0ciBkbyBmdW5rY2ppIHN5c3RlbW93ZWouIgoKLyogV0FWRSBlcnJvcnMgKi8KV0FWRVJSX0JBREZPUk1BVCwgCQkiT2tyZZxsb255IGZvcm1hdCBuaWUgamVzdCB3c3BpZXJhbnkgbHViIG5pZSBtb79lIGJ55iBwcnpldLN1bWFjem9ueS4gVb95aiBmdW5rY2ppICdDYXBhYmlsaXRpZXMnIGFieSBva3JlnGxp5iB3c3BpZXJhbmUgZm9ybWF0eSIKV0FWRVJSX1NUSUxMUExBWUlORywgCQkiTmllIG1vv25hIHd5a29uYeYgdGVqIG9wZXJhY2ppIHcgY3phc2llIGdkeSBkYW5lIHogbm+cbmlrYSBuYWRhbCBzuSBvZHR3YXJ6YW5lLiBacmVzZXR1aiB1cnq5ZHplbmllIGx1YiBwb2N6ZWthaiwgYb8gZGFuZSBza2/xY3q5IGJ55iBvZHR3YXJ6YW5lLiIKV0FWRVJSX1VOUFJFUEFSRUQsIAkJIk5hZ7Pzd2VrIHdhdid1IG5pZSBqZXN0IHByenlnb3Rvd2FueS4gVb95aiBmdW5rY2ppICdQcmVwYXJlJyBhYnkgcHJ6eWdvdG93YeYgbmFns/N3ZWsgaSBzcHLzYnVqIHBvbm93bmllLiIKV0FWRVJSX1NZTkMsIAkJCSJOaWUgbW+/bmEgb3R3b3J6eeYgdXJ6uWR6ZW5pYSBiZXogdb95Y2lhIGZsYWdpIFdBVkVfQUxMT1dTWU5DLiBVv3lqIHRlaiBmbGFnaSBpIHNwcvNidWogcG9ub3duaWUuIgoKLyogTUlESSBlcnJvcnMgKi8KTUlESUVSUl9VTlBSRVBBUkVELCAJCSJOYWez83dlayBNSURJIG5pZSBqZXN0IHByenlnb3Rvd2FueS4gVb95aiBmdW5rY2ppICdQcmVwYXJlJyBhYnkgcHJ6eWdvdG93YeYgbmFns/N3ZWsgaSBzcHLzYnVqIHBvbm93bmllLiIKTUlESUVSUl9TVElMTFBMQVlJTkcsIAkJIk5pZSBtb79uYSB3eWtvbmHmIHRlaiBvcGVyYWNqaSB3IGN6YXNpZSBnZHkgZGFuZSB6IG5vnG5pa2EgbmFkYWwgc7kgb2R0d2FyemFuZS4gWnJlc2V0dWogdXJ6uWR6ZW5pZSBsdWIgcG9jemVrYWosIGG/IGRhbmUgc2tv8WN6uSBieeYgb2R0d2FyemFuZS4iCk1JRElFUlJfTk9NQVAsIAkJCSJNYXAgTUlESSBuaWUgem5hbGV6aW9uZS4gUHJvYmxlbSBtb79lIGJ55iB6ZSBzdGVyb3duaWtpZW0gbHViIHplcHN1dHltIGFsYm8gYnJha3VquWN5bSBwbGlraWVtIE1JRElNQVAuQ0ZHLiIKTUlESUVSUl9OT1RSRUFEWSwgCQkiUG9ydCBwcnplc3mzYSBkYW5lIGRvIHVyerlkemVuaWEuIFBvY3pla2FqLCBhvyBkYW5lIHpvc3RhbrkgcHJ6ZXOzYW5lIGkgc3By82J1aiBwb25vd25pZS4iCk1JRElFUlJfTk9ERVZJQ0UsIAkJIkFrdHVhbG5lIHVzdGF3aWVuaWUgTUlESSBNYXBlcmEgb2Rub3NpIHNp6iBkbyB1cnq5ZHplbmlhIE1JREkga3TzcmUgbmllIGplc3QgemFpbnN0YWxvd2FuZSB3IHN5c3RlbWllLiBVv3lqIE1JREkgTWFwZXJhIGRvIGVkeWNqaSB1c3Rhd2ll8S4iCk1JRElFUlJfSU5WQUxJRFNFVFVQLCAJCSJBa3R1YWxuZSB1c3Rhd2llbmlhIE1JREkgc7kgdXN6a29kem9uZS4gU2tvcGl1aiBvcnlnaW5hbG55IHBsaWsgTUlESU1BUC5DRkcgZG8gV2luZG93c293ZWdvIGZvbGRlcnUgU1lTVEVNIGkgd3RlZHkgc3By82J1aiBwb25vd25pZS4iCgovKiBNQ0kgZXJyb3JzICovCk1DSUVSUl9JTlZBTElEX0RFVklDRV9JRCwgCSJOaWVwb3ByYXdueSBpZGVudHlmaWthdG9yIHVyerlkemVuaWEgTUNJLiBVv3lqIGlkZW50eWZpa2F0b3JhIHp3cvNjb25lZ28gcG9kY3phcyBvdHdpZXJhbmlhIHVyerlkemVuaWEgTUNJLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9LRVlXT1JELCAJIlN0ZXJvd25payBuaWUgbW+/ZSByb3pwb3puYeYgcG9kYW5lZ28gcGFyYW1ldHJ1IHcgcG9sZWNlbml1LiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9DT01NQU5ELAkiU3Rlcm93bmlrIG5pZSBtb79lIHJvenBvem5h5iBwb2RhbmVnbyBwb2xlY2VuaWEuIgpNQ0lFUlJfSEFSRFdBUkUsIAkJIld5c3S5cGmzIHByb2JsZW0geiB0d29pbSB1cnq5ZHplbmllbSBtdWx0aW1lZGlhbG55bS4gVXBld25paiBzaeosIL9lIGR6aWGzYSBwb3ByYXduaWUgbHViIHNrb250YWt0dWogc2nqIHogcHJvZHVjZW50ZW0gdXJ6uWR6ZW5pYS4iCk1DSUVSUl9JTlZBTElEX0RFVklDRV9OQU1FLCAJIlBvZGFuZSB1cnq5ZHplbmllIG5pZSBqZXN0IG90d2FydGUgbHViIG5pZSBqZXN0IHJvenBvem5hd2FuZSBwcnpleiBNQ0kuIgpNQ0lFUlJfT1VUX09GX01FTU9SWSwgCQkiTWFzeiB6Ynl0IG1hs28gZG9zdOpwbmVqIHBhbWnqY2kgZG8gdGVnbyB6YWRhbmlhLlxuIFpha2/xY3ogamVkbrkgbHViIHdp6mNlaiBhcGxpa2FjamkgYWJ5IHp3aeprc3p55iByb3ptaWFyIGRvc3TqcG5laiBwYW1p6mNpIGkgd3RlZHkgc3By82J1aiBwb25vd25pZS4iCk1DSUVSUl9ERVZJQ0VfT1BFTiwgCQkiTmF6d2EgdXJ6uWR6ZW5pYSB6b3N0YbNhIGp1vyB1v3l0YSBwcnpleiB0uSBhcGxpa2FjauogamFrbyBwc2V1ZG8uIFW/eWogdW5pa2FsbmVnbyBwc2V1ZG8uIgpNQ0lFUlJfQ0FOTk9UX0xPQURfRFJJVkVSLCAJIld5c3S5cGmzIG5pZXd5a3J5d2FsbnkgcHJvYmxlbSBwb2RjemFzILNhZG93YW5pYSBwb2RhbmVnbyBzdGVyb3duaWthIHVyerlkemVuaWEuIgpNQ0lFUlJfTUlTU0lOR19DT01NQU5EX1NUUklORywgCSJCcmFrIHBvZGFuZWdvIHBvbGVjZW5pYS4iCk1DSUVSUl9QQVJBTV9PVkVSRkxPVywgCQkio2HxY3VjaCB6bmFr83cgd3lqnGNpb3d5Y2ggYnmzIHpieXQgZLN1Z2ksIGFieSB6bWllnGNp5iBzaeogZG8gendyYWNhbmVnbyBidWZvcmEuIFp3aeprc3ogcm96bWlhciBidWZvcmEuIgpNQ0lFUlJfTUlTU0lOR19TVFJJTkdfQVJHVU1FTlQsICJQb2RhbmUgcG9sZWNlbmllIHd5bWFnYSB6bmFrdS+zYfFjdWNoYSB6bmFr83cgamFrbyBwYXJhbWV0cnUuIFByb3N66iBwb2Rh5iBqZWRubyB6IHR5Y2guIgpNQ0lFUlJfQkFEX0lOVEVHRVIsIAkJIk9rcmWcbG9uYSBsaWN6YmEgY2Gza293aXRhIGplc3QgbmllcG9wcmF3bmEgZGxhIHRlZ28gcG9sZWNlbmlhLiIKTUNJRVJSX1BBUlNFUl9JTlRFUk5BTCwgCSJTdGVyb3duaWsgdXJ6uWR6ZW5pYSB6d3LzY2mzIG5pZXBvcHJhd255IHR5cCB6d3JhY2FueS4gU3ByYXdknyBjenkgbW+/ZXN6IHBvYnJh5iBub3d5IHN0ZXJvd25payB1IHByb2R1Y2VudGEgdXJ6uWR6ZW5pYS4iCk1DSUVSUl9EUklWRVJfSU5URVJOQUwsIAkiV3lzdLlwabMgcHJvYmxlbSB6ZSBzdGVyb3duaWtpZW0gdXJ6uWR6ZW5pYS4gU3ByYXdknyBjenkgbW+/ZXN6IHBvYnJh5iBub3d5IHN0ZXJvd25payB1IHByb2R1Y2VudGEgdXJ6uWR6ZW5pYS4iCk1DSUVSUl9NSVNTSU5HX1BBUkFNRVRFUiwgCSJQb2RhbmUgcG9sZWNlbmllIHd5bWFnYSBwYXJhbWV0cnUuIFByb3N66iBwb2Rh5iBqYWtpnC4iCk1DSUVSUl9VTlNVUFBPUlRFRF9GVU5DVElPTiwgCSJVcnq5ZHplbmllIE1DSSwga3TzcmVnbyB1v3l3YXN6IG5pZSB3c3BpZXJhIHBvZGFuZWdvIHBvbGVjZW5pYS4iCk1DSUVSUl9GSUxFX05PVF9GT1VORCwgCQkiTmllIG1vv25hIHpuYWxln+YgcG9kYW5lZ28gcGxpa3UuIFVwZXduaWogc2nqLCC/ZSCcY2llv2thIGkgbmF6d2EgcGxpa3Ugc7kgcHJhd2lks293ZS4iCk1DSUVSUl9ERVZJQ0VfTk9UX1JFQURZLCAJIlN0ZXJvd25payB1cnq5ZHplbmlhIG5pZSBqZXN0IGdvdG93eS4iCk1DSUVSUl9JTlRFUk5BTCwgCQkiV3lzdLlwabMgcHJvYmxlbSBwb2RjemFzIGluaWNqYWxpemFjamkgTUNJLiBTcHLzYnVqIHVydWNob21p5iBwb25vd25pZSBXaW5kb3dzYS4iCk1DSUVSUl9EUklWRVIsIAkJCSJXeXN0uXBpsyBwcm9ibGVtIHplIHN0ZXJvd25pa2llbSB1cnq5ZHplbmlhLiBTdGVyb3duaWsgemFrb/FjenmzLiBCs7lkIG5pZW1vv25vnGNpIGRvc3TqcHUuIgpNQ0lFUlJfQ0FOTk9UX1VTRV9BTEwsIAkJIk5pZSBtb79uYSB1v3nmICdhbGwnIGpha28gbmF6d3kgdXJ6uWR6ZW5pYSB6IG9rcmWcbG9ueW0gcG9sZWNlbmllbS4iCk1DSUVSUl9NVUxUSVBMRSwgCQkiV3lzdLlwabN5IGKz6mR5IHcgd2nqY2VqIG5pvyBqZWRueW0gdXJ6uWR6ZW5pdS4gUG9kYWogb2RkemllbG5pZSBrYb9kZSBwb2xlY2VuaWUgaSB1cnq5ZHplbmllLCBhYnkgb2tyZZxsaeYsIGt083JlIHVyerlkemVuaWEgd3l3b7N1arkgYrO5ZCIKTUNJRVJSX0VYVEVOU0lPTl9OT1RfRk9VTkQsIAkiTmllIG1vv25hIG9rcmWcbGnmIHR5cHUgdXJ6uWR6ZW5pYSB6IHBvZGFuZWdvIHJvenN6ZXJ6ZW5pYSBwbGlrdS4iCk1DSUVSUl9PVVRPRlJBTkdFLCAJCSJPa3JlnGxvbnkgcGFyYW1ldHIgamVzdCBzcG96YSB6YWtyZXN1IGRsYSBwb2RhbmVnbyBwb2xlY2VuaWEuIgpNQ0lFUlJfRkxBR1NfTk9UX0NPTVBBVElCTEUsIAkiUG9kYW5lIHBhcmFtZXRyeSBuaWUgbW9nuSBieeYgdb95dGUgcmF6ZW0uIgpNQ0lFUlJfRklMRV9OT1RfU0FWRUQsIAkJIk5pZSBtb79uYSB6YXBpc2HmIHBvZGFuZWdvIHBsaWt1LiBVcGV3bmlqIHNp6iwgv2UgbWFzeiB3eXN0YXJjemFquWNvIG1pZWpzY2EgbmEgZHlza3UgbHViIGN6eSBqZXN0ZZwgamVzemN6ZSBwb2SzuWN6b255bSBkbyBzaWVjaS4iCk1DSUVSUl9ERVZJQ0VfVFlQRV9SRVFVSVJFRCwgCSJOaWUgbW+/bmEgem5hbGWf5iBwb2RhbmVnbyB1cnq5ZHplbmlhLiBVcGV3bmlqIHNp6iwgv2UgamVzdCB6YWluc3RhbG93YW5lIGx1Yiwgv2UgbmF6d2EgamVzdCB3cGlzYW5hIHByYXdpZLNvd28uIgpNQ0lFUlJfREVWSUNFX0xPQ0tFRCwgCQkiUG9kYW5lIHVyerlkemVuaWUgamVzdCB3IHRlaiBjaHdpbGkgemFteWthbmUuIFBvY3pla2FqIGtpbGthIHNla3VuZCBpIHd0ZWR5IHNwcvNidWogcG9ub3duaWUuIgpNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAJIlBvZGFuZSBwc2V1ZG8gamVzdCB3IHRlaiBjaHdpbGkgdb95d2FuZSB3IHRlaiBhcGxpa2FjamkuIFW/eWogdW5pa2FsbmVnbyBwc2V1ZG8uIgpNQ0lFUlJfQkFEX0NPTlNUQU5ULCAJCSJQb2RhbnkgcGFyYW1ldHIgamVzdCBuaWVwb3ByYXdueSBkbGEgdGVnbyBwb2xlY2VuaWEuIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIlVyerlkemVuaWUgamVzdCBqdb8gdyB1v3ljaXUuIEFieSBqZSB3c3Dzs2R6aWVsaeYgdb95aiBwYXJhbWV0cnUgJ3NoYXJlYWJsZScgeiBrYb9keW0gcG9sZWNlbmllbSAnb3BlbicuIgpNQ0lFUlJfTUlTU0lOR19ERVZJQ0VfTkFNRSwgCSJQb2RhbmUgcG9sZWNlbmllIHBvdHJ6ZWJ1amUgcHNldWRvLCBwbGlrdSwgc3Rlcm93bmlrYSwgbHViIG5hend5IHVyerlkemVuaWEuIFByb3N66iBwb2Rh5iBqZWRubyB6IHR5Y2guIgpNQ0lFUlJfQkFEX1RJTUVfRk9STUFULCAJIlBvZGFuYSB3YXJ0b5zmIGRsYSBmb3JtYXR1IGN6YXN1IGplc3QgbmllcG9wcmF3bmEuIE9kbmllnCBzaeogZG8gZG9rdW1lbnRhY2ppIE1DSSB3IHNwcmF3aWUgcG9wcmF3bnljaCBmb3JtYXTzdy4iCk1DSUVSUl9OT19DTE9TSU5HX1FVT1RFLCAJIkJyYWt1amUgemFteWtharljZWdvIGN1ZHp5c7Nvd3UgdyB3YXJ0b5xjaSBwYXJhbWV0cnUuIFByb3N66iB3cGlzeiBnby4iCk1DSUVSUl9EVVBMSUNBVEVfRkxBR1MsIAkiUGFyYW1ldHIgbHViIHdhcnRvnOYgYnmzYSBwb2RhbmEgZHd1a3JvdG5pZS4gUG9kYWogdHlsa28gamVkbm9rcm90bmllLiIKTUNJRVJSX0lOVkFMSURfRklMRSwgCQkiUG9kYW55IHBsaWsgbmllIG1vv2UgYnnmIG9kdHdvcnpvbnkgdyBwb2RhbnltIHVyerlkemVuaXUgTUNJLiBQbGlrIG1vv2UgYnnmIHplcHN1dHkgbHViIHcgbmlld7NhnGNpd3ltIGZvcm1hY2llLiIKTUNJRVJSX05VTExfUEFSQU1FVEVSX0JMT0NLLCAJIlplcm93eSBibG9rIHBhcmFtZXRy83cgem9zdGGzIHByemVrYXphbnkgb2QgTUNJLiIKTUNJRVJSX1VOTkFNRURfUkVTT1VSQ0UsIAkiTmllIG1vv25hIHphcGlzYeYgbmllbmF6d2FuZWdvIHBsaWt1LiBQb2RhaiBuYXp36iBwbGlrdS4iCk1DSUVSUl9ORVdfUkVRVUlSRVNfQUxJQVMsIAkiTXVzaXN6IHBvZGHmIHBzZXVkbyBwcnp5IHW/eWNpdSBwYXJhbWV0cnUgJ25ldycuIgpNQ0lFUlJfTk9USUZZX09OX0FVVE9fT1BFTiwgCSJOaWUgbW+/bmEgdb955iBmbGFnaSAnbm90aWZ5JyB6IGF1dG9tYXR5Y3puaWUgb3R3YXJ0eW1pIHVyerlkemVuaWFtaS4iCk1DSUVSUl9OT19FTEVNRU5UX0FMTE9XRUQsIAkiTmllIG1vv25hIHW/eeYgbmF6d3kgcGxpa3UgeiBwb2RhbnltIHVyerlkemVuaWVtLiIKTUNJRVJSX05PTkFQUExJQ0FCTEVfRlVOQ1RJT04sIAkiTmllIG1vv25hIHd5a29uYeYgcG9sZWNl8SB3IHBvZGFuZWoga29sZWpub5xjaS4gUG9wcmF3IHNla3dlbmNq6iBwb2xlY2XxIGkgc3By82J1aiBwb25vd25pZS4iCk1DSUVSUl9JTExFR0FMX0ZPUl9BVVRPX09QRU4sIAkiTmllIG1vv25hIHd5a29uYeYgcG9kYW55Y2ggcG9sZWNl8SBuYSBhdXRvbWF0eWN6bmllIG90d2FydHltIHVyerlkemVuaXUuIFBvY3pla2FqLCBhvyB1cnq5ZHplbmllIHpha2/xY3p5IGkgc3By82J1aiBwb25vd25pZS4iCk1DSUVSUl9GSUxFTkFNRV9SRVFVSVJFRCwgCSJOYXp3YSBwbGlrdSBqZXN0IG5pZXBvcHJhd25hLiBVcGV3bmlqIHNp6iwgv2UgbmF6d2EgcGxpa3UgbmllIG1hIHdp6mNlaiBuab8gOCB6bmFr83csIHpha2/xY3pvbnljaCBrcm9wa7kgaSByb3pzemVyemVuaWVtLiIKTUNJRVJSX0VYVFJBX0NIQVJBQ1RFUlMsIAkiTmllIG1vv25hIHBvZGHmIGRvZGF0a293eWNoIHpuYWvzdyBwbyB0eW0gamFrILNh8WN1Y2ggem5ha/N3IHpvc3RhsyB6YW1rbmnqdHkgdyBjdWR6eXOzb3dpZS4iCk1DSUVSUl9ERVZJQ0VfTk9UX0lOU1RBTExFRCwgCSJQb2RhbmUgdXJ6uWR6ZW5pZSBuaWUgamVzdCB6YWluc3RhbG93YW5lIHcgc3lzdGVtaWUuIFW/eWogb3BjamkgJ0RyaXZlcnMnIHcgUGFuZWx1IFN0ZXJvd2FuaWEsIGFieSB6YWluc3RhbG93YeYgdXJ6uWR6ZW5pZS4iCk1DSUVSUl9HRVRfQ0QsIAkJCSJCcmFrIGRvc3TqcHUgZG8gcG9kYW5lZ28gcGxpa3UgbHViIHVyerlkemVuaWEgTUNJLiBTcHLzYnVqIHptaWVuaeYgZm9sZGVyeSBsdWIgdXJ1Y2hvbSBwb25vd25pZSBrb21wdXRlci4iCk1DSUVSUl9TRVRfQ0QsIAkJCSJCcmFrIGRvc3TqcHUgZG8gcG9kYW5lZ28gcGxpa3UgbHViIHVyerlkemVuaWEgTUNJLCBwb25pZXdhvyBhcGxpa2FjamEgbmllIG1vv2Ugem1pZW5p5iBmb2xkZXLzdy4iCk1DSUVSUl9TRVRfRFJJVkUsIAkJIkJyYWsgZG9zdOpwdSBkbyBwb2RhbmVnbyBwbGlrdSBsdWIgdXJ6uWR6ZW5pYSBNQ0ksIHBvbmlld2G/IGFwbGlrYWNqYSBuaWUgbW+/ZSB6bWllbmnmIHVyerlkemXxLiIKTUNJRVJSX0RFVklDRV9MRU5HVEgsIAkJIlBvZGFqIHVyerlkemVuaWUgYWxibyBuYXp36iBzdGVyb3duaWthIG8gbGljemJpZSB6bmFr83cgbW5pZWpzemVqIG5pvyA3OS4iCk1DSUVSUl9ERVZJQ0VfT1JEX0xFTkdUSCwgCSJQb2RhaiB1cnq5ZHplbmllIGFsYm8gbmF6d+ogc3Rlcm93bmlrYSBvIGxpY3piaWUgem5ha/N3IG1uaWVqc3plaiBuab8gNjkuIgpNQ0lFUlJfTk9fSU5URUdFUiwgCQkiUG9kYW5lIHBvbGVjZW5pZSB3eW1hZ2EgbGljemJ5IGNhs2tvd2l0ZWogamFrbyBwYXJhbWV0cnUuIFByb3N66iBwb2RhaiBqYWu5nC4iCk1DSUVSUl9XQVZFX09VVFBVVFNJTlVTRSwgCSJXc3p5c3RraWUgdXJ6uWR6ZW5pYSB3YXZlIGt083JlIG1vZ7kgb2R0d2FyemHmIHBsaWtpIHcgYWt0dWFsbnltIGZvcm1hY2llIHO5IHcgdb95Y2l1LiBQb2N6ZWthaiwgYb8gdXJ6uWR6ZW5pZSB3YXZlIHpvc3RhbmllIHp3b2xuaW9uZSBpIHNwcvNidWogcG9ub3duaWUuIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRJTlVTRSwgCSJOaWUgbW+/bmEgdXN0YXdp5iBha3R1YWxuZWdvIHVyerlkemVuaWEgd2F2ZSBuYSBvZHR3YXJ6YW5pZSwgcG9uaWV3Yb8gamVzdCB3IHW/eWNpdS4gUG9jemVrYWosIGG/IHVyerlkemVuaWUgem9zdGFuaWUgendvbG5pb25lIGkgc3By82J1aiBwb25vd25pZS4iCk1DSUVSUl9XQVZFX0lOUFVUU0lOVVNFLCAJIldzenlzdGtpZSB1cnq5ZHplbmlhLCBrdPNyZSBtb2e5IG5hZ3J5d2HmIHBsaWtpIHcgYWt0dWFsbnltIGZvcm1hY2llIHO5IHcgdb95Y2l1LiBQb2N6ZWthaiwgYb8gdXJ6uWR6ZW5pZSB3YXZlIHpvc3RhbmllIHp3b2xuaW9uZSBpIHNwcvNidWogcG9ub3duaWUuIgpNQ0lFUlJfV0FWRV9TRVRJTlBVVElOVVNFLCAJIk5pZSBtb79uYSB1c3Rhd2nmIGFrdHVhbG5lZ28gdXJ6uWR6ZW5pYSB3YXZlIG5hIG5hZ3J5d2FuaWUsIHBvbmlld2G/IGplc3QgdyB1v3ljaXUuIFBvY3pla2FqLCBhvyB1cnq5ZHplbmllIHpvc3RhbmllIHp3b2xuaW9uZSBpIHNwcvNidWogcG9ub3duaWUuIgpNQ0lFUlJfV0FWRV9PVVRQVVRVTlNQRUNJRklFRCwJIkthv2RlIHVyerlkemVuaWUga29tcGF0eWJpbG5lIHogb2R0d2FyemFuaWVtIHdhdmVmb3JtIG1vv2UgYnnmIHW/eXRlLiIKTUNJRVJSX1dBVkVfSU5QVVRVTlNQRUNJRklFRCwgCSJLYb9kZSB1cnq5ZHplbmllIGtvbXBhdHliaWxuZSB6IG5hZ3J5d2FuaWVtIHdhdmVmb3JtIG1vv2UgYnnmIHW/eXRlLiIKTUNJRVJSX1dBVkVfT1VUUFVUU1VOU1VJVEFCTEUsIAkiQnJhayB6YWluc3RhbG93YW5lZ28gdXJ6uWR6ZW5pYSB3YXZlLCBrdPNyZSBtb79lIG9kdHdhcnph5iBwbGlraSB3IGFrdHVhbG55bSBmb3JtYWNpZS4gVb95aiBvcGNqaSAnRHJpdmVycycgYWJ5IHphaW5zdGFsb3dh5iB1cnq5ZHplbmllIHdhdmUuIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRVTlNVSVRBQkxFLCJVcnq5ZHplbmllLCBrdPNyeW0gcHLzYnVqZXN6IG9kdHdvcnp55iBuaWUgbW+/ZSByb3pwb3puYeYgYWt0dWFsbmVnbyBmb3JtYXR1IHBsaWvzdy4iCk1DSUVSUl9XQVZFX0lOUFVUU1VOU1VJVEFCTEUsIAkiQnJhayB6YWluc3RhbG93YW5lZ28gdXJ6uWR6ZW5pYSB3YXZlLCBrdPNyZSBtb79lIG5hZ3J5d2HmIHBsaWtpIHcgYWt0dWFsbnltIGZvcm1hY2llLiBVv3lqIG9wY2ppICdEcml2ZXJzJyBhYnkgemFpbnN0YWxvd2HmIHVyerlkemVuaWUgd2F2ZS4iCk1DSUVSUl9XQVZFX1NFVElOUFVUVU5TVUlUQUJMRSwgIlVyerlkemVuaWUsIGt083J5bSBwcvNidWplc3ogbmFncmHmIG5pZSBtb79lIHJvenBvem5h5iBha3R1YWxuZWdvIGZvcm1hdHUgcGxpa/N3LiIKTUNJRVJSX05PX1dJTkRPVywgCQkiTmllIG1hIG9rbmEgd3mcd2lldGxharljZWdvLiIKTUNJRVJSX0NSRUFURVdJTkRPVywgCQkiTmllIG1vv25hIHN0d29yennmIGx1YiB1v3nmIG9rbmEuIgpNQ0lFUlJfRklMRV9SRUFELCAJCSJOaWUgbW+/bmEgb2Rjenl0YeYgcG9kYW5lZ28gcGxpa3UuIFVwZXduaWogc2nqLCC/ZSBwbGlrIG5hZGFsIGlzdG5pZWplIGx1YiBzcHJhd2SfIHR382ogZHlzayBsdWIgcG+zuWN6ZW5pZSBzaWVjaW93ZS4iCk1DSUVSUl9GSUxFX1dSSVRFLCAJCSJOaWUgbW+/bmEgemFwaXNh5iBkbyBwb2RhbmVnbyBwbGlrdS4gVXBld25paiBzaeogv2UgbWFzeiB3eXN0YXJjemFquWNvIG1pZWpzY2EgbmEgZHlza3UgbHViIGN6eSBqZXN0ZZwgbmFkYWwgcG9ks7ljem9ueSBkbyBzaWVjaS4iCk1DSUVSUl9TRVFfRElWX0lOQ09NUEFUSUJMRSwgCSJGb3JtYXR5IGN6YXN1IGRsYSAiInNvbmcgcG9pbnRlciIiIGkgU01QVEUgc7kgd3phamVtbmllIHd5a2x1Y3pharljZSBzaeouIE5pZSBtb79lc3ogdb955iBpY2ggcmF6ZW0uIgpNQ0lFUlJfU0VRX05PTUlESVBSRVNFTlQsIAkiVXJ6uWR6ZW5pYSBNSURJIG5pZSBzuSB6YWluc3RhbG93YW5lIHcgc3lzdGVtaWUuIFW/eWogb3BjamkgJ0RyaXZlcnMnIHogUGFuZWx1IFN0ZXJvd2FuaWEsIGFieSB6YWluc3RhbG93YeYgc3Rlcm93bmlrIE1JREkuIgpNQ0lFUlJfU0VRX1BPUlRfSU5VU0UsIAkJIlBvZGFueSBwb3J0IE1JREkgamVzdCBqdb8gdyB1v3ljaXUuIFBvY3pla2FqLCBhvyBzaeogendvbG5pIGkgc3By82J1aiBwb25vd25pZS4iCk1DSUVSUl9TRVFfUE9SVF9NQVBOT0RFVklDRSwgCSJBa3R1YWxuZSB1c3Rhd2llbmllIE1hcGVyYSBNSURJIG9kbm9zaSBzaeogZG8gdXJ6uWR6ZW5pYSBNSURJLCBrdPNyZSBuaWUgamVzdCB6YWluc3RhbG93YW5lIHcgc3lzdGVtaWUuIFW/eWogb3BjamkgJ01JREkgTWFwcGVyJyB6IFBhbmVsdSBTdGVyb3dhbmlhLCBhYnkgZWR5dG93YeYgdXN0YXdpZW5pZS4iCk1DSUVSUl9TRVFfUE9SVF9NSVNDRVJST1IsIAkiV3lzdLlwabMgYrO5ZCB6IHBvZGFueW0gcG9ydGVtLiIKTUNJRVJSX1NFUV9QT1JUX05PTkVYSVNURU5ULCAJIlBvZGFuZSB1cnq5ZHplbmllIE1JREkgbmllIGplc3QgemFpbnN0YWxvd2FuZSB3IHN5c3RlbWllLiBVv3lqIG9wY2ppICdEcml2ZXJzJyB6IFBhbmVsdSBTdGVyb3dhbmlhLCBhYnkgemFpbnN0YWxvd2HmIHVyerlkemVuaWUgTUlESS4iCk1DSUVSUl9TRVFfUE9SVFVOU1BFQ0lGSUVELCAJIk5pZSBwb2Rhbm8gYWt0dWFsbmVnbyBwb3J0dSBNSURJIHcgc3lzdGVtaWUuIgpNQ0lFUlJfU0VRX1RJTUVSLCAJCSJXc3p5c3RraWUgd3l6d2FsYWN6ZSBtdWx0aW1lZGlhbG5lIHO5IHW/eXdhbmUgcHJ6ZXogaW5uZSBhcGxpa2FjamUuIFphbWtuaWogamVkbrkgeiB0eWNoIGFwbGlrYWNqaSBpIHNwcvNidWogcG9ub3duaWUuIgoKRU5ECg==