LyoKICogQ29weXJpZ2h0IDIwMDItMjAwMyBSb2sgTWFuZGVsamMgPHJvay5tYW5kZWxqY0BnaW1iLm9yZz4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqCiAqIFRPRE86CiAqCXRyYW5zbGF0ZSBmb2xsb3dpbmcgc3RyaW5nczoKICoJCU1JRElFUlJfTk9NQVAKICoJCU1JRElFUlJfTk9ERVZJQ0UKICoJCU1JRElFUlJfSU5WQUxJRFNFVFVQCiAqCQlNQ0lFUlJfRVhURU5TSU9OX05PVF9GT1VORAogKgkJTUNJRVJSX1NFUV9OT01JRElQUkVTRU5UCiAqCQlNQ0lFUlJfU0VRX1BPUlRfTUlTQ0VSUk9SCiAqCQlNQ0lFUlJfU0VRX1BPUlRVTlNQRUNJRklFRAogKgkJTUNJRVJSX1NFUV9USU1FUgogKi8KClNUUklOR1RBQkxFIExBTkdVQUdFIExBTkdfU0xPVkVOSUFOLCBTVUJMQU5HX0RFRkFVTFQKQkVHSU4KCi8qIE1NU1lTIGVycm9ycyAqLwpNTVNZU0VSUl9OT0VSUk9SLCAJCSJOYXZlZGVuaSB1a2F6IGplIGJpbCBpenZlZGVuLiIKTU1TWVNFUlJfRVJST1IsIAkJIk5lem5hbmEgenVuYW5qYSBuYXBha2EuIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgCQkiVXBvcmFibGplbmEgaWRlbnRpZmlrYWNpanNrYSBvem5ha2EgbmFwcmF2ZSBqZSB6dW5haiBkb3B1c3RuZWdhIG9ic2VnYSB6YSB2YZogc2lzdGVtLiIKTU1TWVNFUlJfTk9URU5BQkxFRCwgCQkiR29uaWxuaWsgbmkgYmlsIG9tb2dv6GVuLiIKTU1TWVNFUlJfQUxMT0NBVEVELCAJCSJOYXZlZGVuYSBuYXByYXZhIGplIJ5lIHYgdXBvcmFiaS4gUG/oYWthanRlLCBkYSBibyBzcGV0IHByb3N0YSwgaW4gcG9za3VzaXRlIHpub3ZhLiIKTU1TWVNFUlJfSU5WQUxIQU5ETEUsIAkJIk5hdmVkZW5hIGtvZGEgemEgZG9zdG9wIGRvIG5hcHJhdmUgbmkgdmVsamF2bmEuIgpNTVNZU0VSUl9OT0RSSVZFUiwgCQkiTm9iZW4gZ29uaWxuaWsgbmkgbmFtZZroZW4gIVxuIgpNTVNZU0VSUl9OT01FTSwgCQkiWmEgdG8gb3ByYXZpbG8gbmkgbmEgdm9sam8gZG92b2xqIHBvbW5pbG5pa2EuIEtvbuhhanRlIGVuZWdhIGFsaSB2ZeggcHJvZ3JhbW92IGluIHBvc2t1c2l0ZSB6bm92YS4iCk1NU1lTRVJSX05PVFNVUFBPUlRFRCwgCQkiVGEgZnVua2NpamEgbmkgcG9kcHJ0YS4gyGUgnmVsaXRlIHVnb3Rvdml0aSwga2F0ZXJlIGZ1bmtjaWplIHBvZHBpcmEgZ29uaWxuaWssIHVwb3JhYml0ZSBtb55ub3N0ICdGdW5rY2lqZScuIgpNTVNZU0VSUl9CQURFUlJOVU0sIAkJIk5hdmVkZW5hIGplIGJpbGEgmnRldmlsa2EgbmFwYWtlLCBraSB2IHNpc3RlbXUgbmkgZGVmaW5pcmFuYS4iCk1NU1lTRVJSX0lOVkFMRkxBRywgCQkiU2lzdGVtc2thIGZ1bmtjaWphIGplIHByZWplbGEgbmV2ZWxqYXZubyB6YXN0YXZpY28uIgpNTVNZU0VSUl9JTlZBTFBBUkFNLCAJCSJTaXN0ZW1za2EgZnVua2NpamEgamUgcHJlamVsYSBuZXZlbGphdmVuIHBhcmFtZXRlci4iCgovKiBXQVZFIGVycm9ycyAqLwpXQVZFUlJfQkFERk9STUFULCAJCSJOYXZlZGVuYSBvYmxpa2EgemFwaXNhIG5pIHBvZHBydGEgYWxpIHBhIGplIG5pIG1vZ2/oZSBwcmV2ZXN0aS4gyGUgnmVsaXRlIHVnb3Rvdml0aSwga2F0ZXJlIG9ibGlrZSBzbyBwb2RwcnRlLCB1cG9yYWJpdGUgbW+ebm9zdCAnRnVua2NpamUnLiIKV0FWRVJSX1NUSUxMUExBWUlORywgCQkiUHJlZHZhamFuamUgmmUgdHJhamEuIFBvbmFzdGF2aXRlIG5hcHJhdm8gYWxpIHBhIHBv6GFrYWp0ZSBkbyBrb25jYSBwcmVkdmFqYW5qYS4iCldBVkVSUl9VTlBSRVBBUkVELCAJCSJHbGF2YSBwb2RhdGtvdiB2cnN0ZSB3YXZlIG5pIGJpbGEgcHJpcHJhdmxqZW5hLiBQcmlwcmF2aXRlIGdsYXZvLCB0YWtvIGRhIHVwb3JhYml0ZSBmdW5rY2lqbyAnUHJpcHJhdmknIChQcmVwYXJlKSwgaW4gcG9za3VzaXRlIHpub3ZhLiIKV0FWRVJSX1NZTkMsIAkJCSJCcmV6IHphc3RhdmljZSBXQVZFX0FMTE9XU1lOQyBuaSBtb2dv6GUgb2RwcmV0aSBuYXByYXZlLiBVcG9yYWJpdGUgam8gaW4gcG9za3VzaXRlIHpub3ZhLiIKCi8qIE1JREkgZXJyb3JzICovCk1JRElFUlJfVU5QUkVQQVJFRCwgCQkiTUlESSBnbGF2YSBuaSBiaWxhIHByaXByYXZsamVuYS4gUHJpcHJhdml0ZSBnbGF2bywgdGFrbyBkYSB1cG9yYWJpdGUgZnVua2Npam8gJ1ByaXByYXZpJyAoUHJlcGFyZSksIGluIHBvc2t1c2l0ZSB6bm92YS4iCk1JRElFUlJfU1RJTExQTEFZSU5HLCAJCSJQcmVkdmFqYW5qZSCaZSB0cmFqYS4gUG9uYXN0YXZpdGUgbmFwcmF2byBhbGkgcGEgcG/oYWthanRlIGRvIGtvbmNhIHByZWR2YWphbmphLiIKTUlESUVSUl9OT01BUCwgCQkJIlJhenBvcmVkaXR2ZSBNSURJIG5pIG1vZ28xZSBuYWp0aS4gVG8gamUgbGFoa28gcG9zbGVkaWNhIHRlnmF2IHogZ29uaWxuaWtvbSwgYWxpIHBhIG1hbmprYWpv6CBhbGkgcG+aa29kb3ZhbmUgZGF0b3Rla2UgTUlESU1BUC5DRkcuIgpNSURJRVJSX05PVFJFQURZLCAJCSJQcmVrIHZyYXQgcG90ZWthIHByZW5vcyBwb2RhdGtvdiBkbyBuYXByYXZlLiBQb+hha2FqdGUsIGRhIHNlIHByZW5vcyBrb27oYSBpbiBwb3NrdXNpdGUgem5vdmEuIgpNSURJRVJSX05PREVWSUNFLCAJCSJUcmVudXRuYSBuYXN0YXZpdGV2IE1JREkgc2Ugc2tsaWN1amUgbmEgTUlESSBuYXByYXZvLCBraSBuaSBwcmlzb3RuYS4gVXBvcmFiaXRlIE1JREkgTWFwcGVyIGluIHNwcmVtZW5pdGUgbmFzdGF2aXR2ZS4iCk1JRElFUlJfSU5WQUxJRFNFVFVQLCAJCSJUcmVudXRuYSBuYXN0YXZpdGV2IE1JREkgamUgcG+ab2RvdmFuYS4gTmFtZXN0aXRlIG9yaWdpbmFsbm8gZGF0b3Rla28gTUlESU1BUC5DRkcgdiBzaXN0ZW1za28gbWFwbyBXaW5kb3dzIChTeXN0ZW0pIGluIHBvc2t1c2l0ZSB6bm92YS4iCgovKiBNQ0kgZXJyb3JzICovCk1DSUVSUl9JTlZBTElEX0RFVklDRV9JRCwgCSJOZXZlbGphdm5hIGlkZW50aWZpa2FjaWpza2Egb3puYWthIE1DSSBuYXByYXZlLiBVcG9yYWJpdGUgb3puYWtvLCBraSBqbyB2cm5lIG9kcGlyYW5qZSBNQ0kgbmFwcmF2ZS4iCk1DSUVSUl9VTlJFQ09HTklaRURfS0VZV09SRCwgCSJOYXZlZGVuIHBhcmFtZXRlciB1a2F6YSBuaSBkZWZpbmlyYW4gdiBuYWJvcnUgTUNJIHVrYXpvdi4iCk1DSUVSUl9VTlJFQ09HTklaRURfQ09NTUFORCwJIk5hdmVkZW4gdWtheiBuaSB2ZWxqYXZlbiBNQ0kgdWthei4iCk1DSUVSUl9IQVJEV0FSRSwgCQkiUyBwcmVkc3Rhdm5vc3RubyBuYXByYXZvIHNvIHRlnmF2ZS4gUHJldmVyaXRlLCBhbGkgbmFwcmF2YSBkZWx1amUgcHJhdmlsbm8gYWxpIHBhIHNlIHBvc3ZldHVqdGUgeiBpemRlbG92YWxjZW0uIgpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfTkFNRSwgCSJUbyBuaSByZWdpc3RyaXJhbmEgTUNJIG5hcHJhdmEuIgpNQ0lFUlJfT1VUX09GX01FTU9SWSwgCQkiWmEgdG8gb3ByYXZpbG8gbmkgbmEgdm9sam8gZG92b2xqIHBvbW5pbG5pa2EuIFxuS29u6GFqdGUgZW5lZ2EgYWxpIHZl6CBwcm9ncmFtb3YgaW4gcG9za3VzaXRlIHpub3ZhLiIKTUNJRVJSX0RFVklDRV9PUEVOLCAJCSJUYSBwcm9ncmFtIJ5lIHVwb3JhYmxqYSB0YSB2emRldmVrLiBOYW1lc3RvIGltZW5hIG5hcHJhdmUgdXBvcmFiaXRlIJplIG5ldXBvcmFibGplbiAgdnpkZXZlay4iCk1DSUVSUl9DQU5OT1RfTE9BRF9EUklWRVIsIAkiTmFwcmF2ZSBuaSBiaWxvIG1vZ2/oZSBuYWxvnml0aS4gUHJldmVyaXRlLCBhbGkgamUgZ29uaWxuaWsgcHJhdmlsbm8gbmFtZZroZW4uIgpNQ0lFUlJfTUlTU0lOR19DT01NQU5EX1NUUklORywgCSJVa2F6bmkgbml6IGplIHByYXplbi4iCk1DSUVSUl9QQVJBTV9PVkVSRkxPVywgCQkiSXpob2RuaSBuaXogamUgYmlsIHByZXZlbGlrLCBkYSBiaSBnYSBiaWxvIG1vZ2/oZSBzaHJhbml0aSB2IHBvdnJhdG5pIG1lZHBvbW5pbG5pay4gUG92ZehhanRlIG1lZHBvbW5pbG5pay4iCk1DSUVSUl9NSVNTSU5HX1NUUklOR19BUkdVTUVOVCwgIk5hdmVkZW5pIHVrYXogemFodGV2YSBwYXJhbWV0ZXIgKG5peiB6bmFrb3YpLiBWbmVzaXRlIGdhLiIKTUNJRVJSX0JBRF9JTlRFR0VSLCAJCSJWbmVzZW5vIGNlbG8gmnRldmlsbyB6YSB0YSB1a2F6IG5pIHZlbGphdm5vLiBWbmVzaXRlIJp0ZXZpbG8uIgpNQ0lFUlJfUEFSU0VSX0lOVEVSTkFMLCAJIkdvbmlsbmlrIHphIG5hcHJhdm8gamUgdnJuaWwgbmV2ZWxqYXZubyB2cnN0byB2cmVkbm9zdGkuIE9kIGl6ZGVsb3ZhbGNhIG5hcHJhdmUgcG9za3VzaXRlIGRvYml0aSBub3YgZ29uaWxuaWsuIgpNQ0lFUlJfRFJJVkVSX0lOVEVSTkFMLCAJIlogZ29uaWxuaWtvbSB6YSBuYXByYXZvIHNvIHRlnmF2ZS4gT2QgaXpkZWxvdmFsY2EgbmFwcmF2ZSBwb3NrdXNpdGUgZG9iaXRpIG5vdiBnb25pbG5pay4iCk1DSUVSUl9NSVNTSU5HX1BBUkFNRVRFUiwgCSJWIG5hdmVkZW5lbSB1a2F6dSBtYW5qa2EgcGFyYW1ldGVyLiBWbmVzaXRlIGdhLiIKTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAJIk1DSSBuYXByYXZhLCBraSBqbyB1cG9yYWJsamF0ZSwgbmUgcG9kcGlyYSBuYXZlZGVuZWdhIHVrYXphLiIKTUNJRVJSX0ZJTEVfTk9UX0ZPVU5ELCAJCSJOYXZlZGVuZSBkYXRvdGVrZSBuaSBtb2dv6GUgbmFqdGkuIFByZXZlcml0ZSwgYWxpIHN0ZSBwcmF2aWxubyB2bmVzbGkgaW1lIGluIHBvdCBkbyBkYXRvdGVrZS4iCk1DSUVSUl9ERVZJQ0VfTk9UX1JFQURZLCAJIkdvbmlsbmlrIHphIG5hcHJhdm8gbmkgcHJpcHJhdmxqZW4uIE1hbG8gcG/oYWthanRlIGluIG5hdG8gcG9za3VzaXRlIHpub3ZhLiIKTUNJRVJSX0lOVEVSTkFMLCAJCSJQcmkgaW5pY2lhbGl6YWNpamkgTUNJIG5hcHJhdmUgamUgcHJpmmxvIGRvIHRlnmF2LiBabm92YSB6YZ5lbml0ZSBXaW5kb3dzLiIKTUNJRVJSX0RSSVZFUiwgCQkJIlphcmFkaSBuYXBha2UsIHpuYehpbG5lIHphIGdvbmlsbmlrLCBqZSBiaWwgZ29uaWxuaWsgemFwcnQuIFBvbm92aXRlIHVrYXouIgpNQ0lFUlJfQ0FOTk9UX1VTRV9BTEwsIAkJIlYgdGVtIHVrYXp1IHVwb3JhYml0ZSBpbWUgdG/obm8gZG9sb+hlbmUgbmFwcmF2ZS4iCk1DSUVSUl9NVUxUSVBMRSwgCQkiViB2ZeggbmFwcmF2YWggamUgcHJpmmxvIGRvIG5hcGFrLiBMb+hlbm8gdm5lc2l0ZSB2c2FrIHVrYXogaW4gdnNha28gbmFwcmF2by4gVGFrbyBib3N0ZSBsYWhrbyB1Z290b3ZpbGksIGthdGVyZSBuYXByYXZlIHBvdnpyb+hham8gbmFwYWtlLiIKTUNJRVJSX0VYVEVOU0lPTl9OT1RfRk9VTkQsIAkiSXogcHJpcG9uZSBkYXRvdGVrZSBuaSBtb2dv6GUgdWdvdG92aXRpIHZyc3RlIHphaHRldmFuZSBuYXByYXZlLiIKTUNJRVJSX09VVE9GUkFOR0UsIAkJIlBhcmFtZXRlciBqZSB6dW5haiBkb3ZvbGplbmVnYSBvYnNlZ2EgemEgbmF2ZWRlbiB1a2F6LiIKTUNJRVJSX0ZMQUdTX05PVF9DT01QQVRJQkxFLCAJIk5hdmVkZW5paCBwYXJhbWV0cm92IG5lIHNtZXRlIHVwb3JhYml0aSBoa3JhdGkuIgpNQ0lFUlJfRklMRV9OT1RfU0FWRUQsIAkJIk5hdmVkZW5lIGRhdG90ZWtlIG5pIG1vZ2/oZSBzaHJhbml0aS4gUHJldmVyaXRlLCBhbGkgamUgbmEgZGlza3UgZG92b2xqIHByb3N0b3JhIG96LiBhbGkgamUgdmGaIHJh6HVuYWxuaWsgmmUgcG92ZXphbiB6IG9tcmWeamVtLiIKTUNJRVJSX0RFVklDRV9UWVBFX1JFUVVJUkVELCAJIk5hdmVkZW5lIG5hcHJhdmUgbmkgbW9nb+hlIG5hanRpLiBQcmV2ZXJpdGUsIGFsaSBqZSBuYXByYXZhIG5hbWWa6GVuYSBvei4gYWxpIGplIGJpbG8gbmplbm8gaW1lIHByYXZpbG5vIG5hdmVkZW5vLiIKTUNJRVJSX0RFVklDRV9MT0NLRUQsIAkJIlBvdGVrYSB6YXBpcmFuamUgbmF2ZWRlbmUgbmFwcmF2ZS4gTWFsbyBwb+hha2FqdGUgaW4gcG9za3VzaXRlIHpub3ZhLiIKTUNJRVJSX0RVUExJQ0FURV9BTElBUywgCSJUYSBwcm9ncmFtIJ5lIHVwb3JhYmxqYSBuYXZlZGVuaSB2emRldmVrLiBVcG9yYWJpdGUgmmUgbmV1cG9yYWJsamVuIHZ6ZGV2ZWsuIgpNQ0lFUlJfQkFEX0NPTlNUQU5ULCAJCSJVcG9yYWJsamVuYSBrb25zdGFudGEgdiB0ZW0gdWthenUgbmkgdmVsamF2bmEuIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIkdvbmlsbmlrIG5hcHJhdmUgamUgnmUgdiB1cG9yYWJpLiDIZSBnYSCeZWxpdGUgZGF0aSB2IHNrdXBubyByYWJvLCB6IHZzYWtpbSB1a2F6b20gJ29wZW4nIHVwb3JhYml0ZSBwYXJhbWV0ZXIgJ3NoYXJlYWJsZScuIgpNQ0lFUlJfTUlTU0lOR19ERVZJQ0VfTkFNRSwgCSJOYXZlZGVuaSB1a2F6IHphaHRldmEgdnpkZXZlaywgZGF0b3Rla28sIGdvbmlsbmlrIGFsaSBpbWUgbmFwcmF2ZS4gVm5lc2l0ZSB1c3RyZXpubyBpbWUuIgpNQ0lFUlJfQkFEX1RJTUVfRk9STUFULCAJIk5hdmVkZW5hIHZyZWRub3N0IHphIG9ibGlrbyB6YXBpc2Eg6GFzYSBuaSB2ZWxqYXZuYS4gVmVsamF2bmUgb2JsaWtlIHBvaZroaXRlIHYgZG9rdW1lbnRhY2lqaSBNQ0kgbmFwcmF2ZS4iCk1DSUVSUl9OT19DTE9TSU5HX1FVT1RFLCAJIlYgdnJlZG5vc3RpIHphIHBhcmFtZXRlciBtYW5qa2EgemFrbGp16G5pIGR2b2puaSBuYXJla292YWouIFZuZXNpdGUgZ2EuIgpNQ0lFUlJfRFVQTElDQVRFX0ZMQUdTLCAJIlBhcmFtZXRlciBhbGkgdnJlZG5vc3Qgc3RlIG5hdmVkbGkgZHZha3JhdC4gTmF2ZWRpdGUgZ2Egc2FtbyBlbmtyYXQuIgpNQ0lFUlJfSU5WQUxJRF9GSUxFLCAJCSJUZSBkYXRvdGVrZSBuZSBtb3JldGUgcHJlZHZhamF0aSB6IG5hdmVkZW5vIE1DSSBuYXByYXZvLiBEYXRvdGVrYSBqZSBtb3JkYSBwb5prb2RvdmFuYSBhbGkgcGEgaW1hIG5hcGHobm8gb2JsaWtvIHphcGlzYS4iCk1DSUVSUl9OVUxMX1BBUkFNRVRFUl9CTE9DSywgCSJNQ0kgbmFwcmF2aSBqZSBiaWwgcHJlZGFuICdudWxsIHBhcmFtZXRlciBibG9jaycuIgpNQ0lFUlJfVU5OQU1FRF9SRVNPVVJDRSwgCSJEYXRvdGVrZSBicmV6IGltZW5hIG5pIG1vZ2/oZSBzaHJhbml0aS4gVm5lc2l0ZSBpbWUuIgpNQ0lFUlJfTkVXX1JFUVVJUkVTX0FMSUFTLCAJIktvIHVwb3JhYmxqYXRlIHBhcmFtZXRlciAnbmV3JywgbW9yYXRlIG5hdmVzdGkgdnpkZXZlay4iCk1DSUVSUl9OT1RJRllfT05fQVVUT19PUEVOLCAJIlphc3RhdmljZSAnbm90aWZ5JyBuaSBtb2dv6GUgdXBvcmFiaXRpIHByaSBuYXByYXZhaCwga2kgc2Ugc2Ftb2Rlam5vIG9kcGlyYWpvLiIKTUNJRVJSX05PX0VMRU1FTlRfQUxMT1dFRCwgCSJWIHBvdmV6YXZpIHogbmF2ZWRlbm8gbmFwcmF2byBuZSBtb3JldGUgdXBvcmFiaXRpIGltZW5hIGRhdG90ZWtlLiIKTUNJRVJSX05PTkFQUExJQ0FCTEVfRlVOQ1RJT04sIAkiVWthem92IHYgbmF2ZWRlbmVtIHphcG9yZWRqdSBuaSBtb2dv6GUgaXp2ZXN0aS4gU3ByZW1lbml0ZSB6YXBvcmVkamUgaW4gcG9za3VzaXRlIHpub3ZhLiIKTUNJRVJSX0lMTEVHQUxfRk9SX0FVVE9fT1BFTiwgCSJVa2F6YSBuaSBtb2dv6GUgaXp2ZXN0aSB2IHBvdmV6YXZpIHogbmFwcmF2bywga2kgc2Ugc2Ftb2Rlam5vIG9kcHJlLiBQb+hha2FqdGUsIGRhIHNlIG5hcHJhdmEgemFwcmUsIGluIHBvc2t1c2l0ZSB6bm92YS4iCk1DSUVSUl9GSUxFTkFNRV9SRVFVSVJFRCwgCSJJbWUgZGF0b3Rla2UgbmkgdmVsamF2bm8uIgpNQ0lFUlJfRVhUUkFfQ0hBUkFDVEVSUywgCSJaYSBuaXpvbSB6bmFrb3YsIGtpIGplIG9iZGFuIHogbmFyZWtvdmFqaSwgbmkgbW9nb+hlIHphcGlzYXRpIGRvZGF0bmloIHpuYWtvdi4iCk1DSUVSUl9ERVZJQ0VfTk9UX0lOU1RBTExFRCwgCSJOYXByYXZhIG5pIG5hbWWa6GVuYS4gyGUgnmVsaXRlIG5hbWVzdGl0aSBub3YgZ29uaWxuaWssIG5hIG5hZHpvcm5pIHBsb5roaSBkdm9rbGlrbml0ZSBpa29ubyAnRG9kYWphbmplIHN0cm9qbmUgb3ByZW1lJy4iCk1DSUVSUl9HRVRfQ0QsIAkJCSJEb3N0b3AgZG8gbmF2ZWRlbmUgZGF0b3Rla2UgYWxpIE1DSSBuYXByYXZlIG5pIG1vZ2/oLiBaYW1lbmphanRlIGltZW5payBhbGkgcGEgem5vdmEgemGeZW5pdGUgcmHodW5hbG5pay4iCk1DSUVSUl9TRVRfQ0QsIAkJCSJEb3N0b3AgZG8gbmF2ZWRlbmUgZGF0b3Rla2UgYWxpIE1DSSBuYXByYXZlIG5pIG1vZ2/oLCBrZXIgcHJvZ3JhbSBuZSBtb3JlIHphbWVuamF0aSBpbWVuaWthLiIKTUNJRVJSX1NFVF9EUklWRSwgCQkiRG9zdG9wIGRvIG5hdmVkZW5lIGRhdG90ZWtlIGFsaSBNQ0kgbmFwcmF2ZSBuaSBtb2dv6Cwga2VyIHByb2dyYW0gbmUgbW9yZSB6YW1lbmphdGkgcG9nb25hLiIKTUNJRVJSX0RFVklDRV9MRU5HVEgsIAkJIk5hdmVkaXRlIGltZSB6YSBuYXByYXZvIGFsaSBnb25pbG5paywga2kgamUga3JhapplIG9kIDc5IHpuYWtvdi4iCk1DSUVSUl9ERVZJQ0VfT1JEX0xFTkdUSCwgCSJOYXZlZGl0ZSBpbWUgemEgbmFwcmF2byBhbGkgZ29uaWxuaWssIGtpIGplIGtyYWqaZSBvZCA2OSB6bmFrb3YuIgpNQ0lFUlJfTk9fSU5URUdFUiwgCQkiTmF2ZWRlbmkgdWtheiB6YWh0ZXZhIJp0ZXZpbOhuaSBwYXJhbWV0ZXIgKG5wci4gJ3BsYXkgdG8gMTAnKS4gVm5lc2l0ZSBnYS4iCk1DSUVSUl9XQVZFX09VVFBVVFNJTlVTRSwgCSJWc2UgbmFwcmF2ZSwga2kgbGFoa28gcHJlZHZhamFqbyBkYXRvdGVrZSB2IG9ibGlraSB3YXZlLCBzbyB2IHVwb3JhYmkuIFBvc2t1c2l0ZSB6bm92YSwga28gYm8ga2F0ZXJhIG9kIG5qaWggbmEgdm9sam8uIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRJTlVTRSwgCSJUcmVudXRuYSB3YXZlIG5hcHJhdmEgamUgdiB1cG9yYWJpLiBQb+hha2FqdGUsIGRhIGJvIHByb3N0YSwgaW4gcG9za3VzaXRlIHpub3ZhLiIKTUNJRVJSX1dBVkVfSU5QVVRTSU5VU0UsIAkiVnNlIG5hcHJhdmUsIGtpIGxhaGtvIHNuZW1ham8gZGF0b3Rla2UgdiBvYmxpa2kgd2F2ZSwgc28gdiB1cG9yYWJpLiBQb3NrdXNpdGUgem5vdmEsIGtvIGJvIGthdGVyYSBvZCBuamloIG5hIHZvbGpvLiIKTUNJRVJSX1dBVkVfU0VUSU5QVVRJTlVTRSwgCSJUcmVudXRuYSB3YXZlIG5hcHJhdmEgamUgdiB1cG9yYWJpLiBQb+hha2FqdGUsIGRhIGJvIHByb3N0YSwgaW4gcG9za3VzaXRlIHpub3ZhLiIKTUNJRVJSX1dBVkVfT1VUUFVUVU5TUEVDSUZJRUQsCSJQcmVkdmFqYWxuYSBuYXByYXZhIGplIHYgdXBvcmFiaS4gUG9za3VzaXRlIHpub3ZhLCBrbyBibyBwcmVkdmFqYW5qZSBrb27oYW5vLiIKTUNJRVJSX1dBVkVfSU5QVVRVTlNQRUNJRklFRCwgCSJTbmVtYWxuYSBuYXByYXZhIGplIHYgdXBvcmFiaS4gUG9za3VzaXRlIHpub3ZhLCBrbyBibyBzbmVtYW5qZSBrb27oYW5vLiIKTUNJRVJSX1dBVkVfT1VUUFVUU1VOU1VJVEFCTEUsIAkiTmFtZZroZW5hIG5pIG5vYmVuYSBuYXByYXZhIHphIHdhdmUsIGtpIGJpIGxhaGtvIHByZWR2YWphbGEgZGF0b3Rla2UgdiB0cmVudXRuaSBvYmxpa2kuIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRVTlNVSVRBQkxFLCJOYXByYXZhIG5lIHByZXBvem5hIHRyZW51dG5lIG9ibGlrZSB6YXBpc2EgZGF0b3Rla2UuIEl6YmVyaXRlIGRydWdvIG5hcHJhdm8gaW4gcG9za3VzaXRlIHpub3ZhLiIKTUNJRVJSX1dBVkVfSU5QVVRTVU5TVUlUQUJMRSwgCSJOYW1lmuhlbmEgbmkgbm9iZW5hIG5hcHJhdmEgemEgd2F2ZSwga2kgYmkgbGFoa28gc25lbWFsYSBkYXRvdGVrZSB2IHRyZW51dG5pIG9ibGlraS4iCk1DSUVSUl9XQVZFX1NFVElOUFVUVU5TVUlUQUJMRSwgIk5hcHJhdmEgbmUgcHJlcG96bmEgdHJlbnV0bmUgb2JsaWtlIHphcGlzYSBkYXRvdGVrZS4gSXpiZXJpdGUgZHJ1Z28gbmFwcmF2byBpbiBwb3NrdXNpdGUgem5vdmEuIgpNQ0lFUlJfTk9fV0lORE9XLCAJCSJOaSBva25hIHphIHByaWthei4iCk1DSUVSUl9DUkVBVEVXSU5ET1csIAkJIk9rbmEgbmkgYmlsbyBtb2dv6GUgdXN0dmFyaXRpIGFsaSB1cG9yYWJpdGkuIgpNQ0lFUlJfRklMRV9SRUFELCAJCSJUZSBkYXRvdGVrZSBuaSBtb2dv6GUgYnJhdGkuIFByZXZlcml0ZSwgYWxpIG5pIGJpbGEgbW9yZGEgaXpicmlzYW5hLiBQcmV2ZXJpdGUgdHVkaSBzdm9qIGRpc2sgaW4gb21yZZ5uZSBwb3ZlemF2ZS4iCk1DSUVSUl9GSUxFX1dSSVRFLCAJCSJWIG5hdmVkZW5vIGRhdG90ZWtvIG5pIG1vZ2/oZSBwaXNhdGkuIFByZXZlcml0ZSwgYWxpIGplIG5hIGRpc2t1IJplIGRvdm9saiBwcm9zdG9yYSBvei4gYWxpIGplIHZhmiByYeh1bmFsbmlrIJplIHBvdmV6YW4geiBvbXJlnmplbS4iCk1DSUVSUl9TRVFfRElWX0lOQ09NUEFUSUJMRSwgCSJIa3JhdGkgbmkgbW9nb+hlIHVwb3JhYml0aSBvYmxpayB6YXBpc2Eg6GFzYSAnc29uZy1wb2ludGVyJyBpbiBTTVBURS4iCk1DSUVSUl9TRVFfTk9NSURJUFJFU0VOVCwgCSJWIHNpc3RlbXUgbmkgbmFtZZroZW5hIG5vYmVuYSBNSURJIG5hcHJhdmEuIFphIG5hbWVzdGl0ZXYgTUlESSBnb25pbG5pa2EgdXBvcmFiaXRlIG1vnm5vc3QgJ0RyaXZlcnMnIG5hIE5hZHpvcm5pIHBsb5roaS4iCk1DSUVSUl9TRVFfUE9SVF9JTlVTRSwgCQkiTmF2ZWRlbmEgTUlESSBuYXByYXZhIGplIJ5lIHYgdXBvcmFiaS4gUG/oYWthanRlLCBkYSBibyBwcm9zdGEsIGluIHBvc2t1c2l0ZSB6bm92YS4iCk1DSUVSUl9TRVFfUE9SVF9NQVBOT0RFVklDRSwgCSJUcmVudXRuYSBuYXN0YXZpdGV2IE1JREkgc2Ugc2tsaWN1amUgbmEgbmFwcmF2bywga2kgbmkgbmFtZZroZW5hLiBVcG9yYWJpdGUgbW+ebm9zdCAnTUlESSBNYXBwZXInIG5hIE5hZHpvcm5pIHBsb5roaSBpbiBzcHJlbWVuaXRlIG5hc3Rhdml0ZXYuIgpNQ0lFUlJfU0VRX1BPUlRfTUlTQ0VSUk9SLCAJIk5hIG5hdmVkZW5paCB2cmF0aWggamUgcHJpmmxvIGRvIG5hcGFrZS4iCk1DSUVSUl9TRVFfUE9SVF9OT05FWElTVEVOVCwgCSJUYSBuYXByYXZhIG5pIG5hbWWa6GVuYS4gyGUgnmVsaXRlIG5hbWVzdGl0aSBub3YgZ29uaWxuaWssIG5hIG5hZHpvcm5pIHBsb5roaSBkdm9rbGlrbml0ZSBpa29ubyAnRG9kYWphbmplIHN0cm9qbmUgb3ByZW1lJy4iCk1DSUVSUl9TRVFfUE9SVFVOU1BFQ0lGSUVELCAJIlphaHRldmFuYSBNSURJIHZyYXRhIG5pc28gbmFtZZroZW5hLiIKTUNJRVJSX1NFUV9USU1FUiwgCQkiVnNpIHZl6HByZWRzdGF2bm9zdG5pIJp0ZXZjaSBzbyB6YXNlZGVuaS4gWmFwcml0ZSBlbm8gb2QgYXBsaWthY2lqIGluIHBvc2t1c2l0ZSB6bm92YS4iCgpFTkQK