LyoKICogQ29weXJpZ2h0IDIwMDggSmVucyBBbGJyZXRzZW4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI2luY2x1ZGUgIndpbmRlZi5oIgojaW5jbHVkZSAibW1kZGsuaCIKClNUUklOR1RBQkxFIExBTkdVQUdFIExBTkdfREFOSVNILCBTVUJMQU5HX0RFRkFVTFQKQkVHSU4KCi8qIE1NU1lTIGVycm9ycyAqLwpNTVNZU0VSUl9OT0VSUk9SLCAgICAgICAgICAgICAgICJEZW4gc3BlY2lmaWNlcmVkZSBrb21tYW5kbyBibGV2IHVkZvhydC4iCk1NU1lTRVJSX0VSUk9SLCAgICAgICAgICAgICAgICAgIlVkZWZpbmVyZXQgZWtzdGVybiBmZWpsLiIKTU1TWVNFUlJfQkFEREVWSUNFSUQsICAgICAgICAgICAiRXQgZW5oZWRzIElEIHNvbSBlciB1ZGVuZm9yIHLma2tldmlkZGUgZXIgYmxldmV0IGJydWd0IHDlIGRpdCBzeXN0ZW0uIgpNTVNZU0VSUl9OT1RFTkFCTEVELCAgICAgICAgICAgICJEcml2ZXJlbiBibGV2IGlra2UgYWt0aXZlcmV0LiIKTU1TWVNFUlJfQUxMT0NBVEVELCAgICAgICAgICAgICAiRGVuIHNwZWNpZmljZXJlZGUgZW5oZWQgZXIgYWxsZXJlZGUgaSBicnVnLiBWZW50IHRpbCBkZW4gZXIgbGVkaWcgb2cgcHL4diBpZ2VuLiIKTU1TWVNFUlJfSU5WQUxIQU5ETEUsIAkgICAgICAgICJEZXQgc3BlY2lmaWNlcmVkZSBlbmhlZHMgaGFuZGxlIGVyIHVneWxkaWd0LiIKTU1TWVNFUlJfTk9EUklWRVIsICAgICAgICAgICAgICAiRGV0IGVyIGluZ2VuIGRyaXZlciBpbnN0YWxsZXJldCBw5SBzeXN0ZW1ldC5cbiIKTU1TWVNFUlJfTk9NRU0sICAgICAgICAgICAgICAgICAiSWtrZSBub2sgaHVrb21tZWxzZSB0aWxy5WRpZyB0aWwgZGVubmUgb3BlcmF0aW9uLiBBZnNsdXQgZXQgZWxsZXIgZmxlcmUgcHJvZ3JhbW1lciBmb3IgYXQgZnJpZ/hyZSBodWtvbW1lbHNlIG9nIHBy+HYgaWdlbi4iCk1NU1lTRVJSX05PVFNVUFBPUlRFRCwgICAgICAgICAgIkRlbm5lIGZ1bmt0aW9uIHVuZGVyc3T4dHRlcyBpa2tlLiBCcnVnIGZ1bmt0aW9uZW4gJ0NhcGFiaWxpdGllcycgZm9yIGF0IGZpbmRlIHVkIGFmIGh2aWxrZSBmdW5rdGlvbmVyIG9nIG1lZGRlbHNlciBkcml2ZXJlbiB1bmRlcnN0+HR0ZXIuIgpNTVNZU0VSUl9CQURFUlJOVU0sICAgICAgICAgICAgICJFdCB1ZGVmaW5lcmV0IGZlamxudW1tZXIgYmxldiBzcGVjaWZpY2VyZXQuIgpNTVNZU0VSUl9JTlZBTEZMQUcsICAgICAgICAgICAgICJFdCB1Z3lsZGlndCBmbGFnIGJsZXYgb3Zlcmb4cnQgdGlsIGVuIHN5c3RlbWZ1bmt0aW9uLiIKTU1TWVNFUlJfSU5WQUxQQVJBTSwgICAgICAgICAgICAiRW4gdWd5bGRpZyBwYXJhbWV0ZXIgYmxldiBvdmVyZvhydCB0aWwgZW4gc3lzdGVtZnVua3Rpb24uIgoKLyogV0FWRSBlcnJvcnMgKi8KV0FWRVJSX0JBREZPUk1BVCwgICAgICAgICAgICAgICAiRGV0IHNwZWNpZmljZXJlZGUgZm9ybWF0IHVuZGVyc3T4dHRlcyBpa2tlIGVsbGVyIGthbiBpa2tlIG92ZXJz5nR0ZXMuIEJydWcgZnVua3Rpb25lbiAnQ2FwYWJpbGl0aWVzJyBmb3IgYXQgc2UgZGUgdW5kZXJzdPh0dGVkZSBmb3JtYXRlci4iCldBVkVSUl9TVElMTFBMQVlJTkcsICAgICAgICAgICAgIkthbiBpa2tlIHVkZvhyZXIgZGVubmUgb3BlcmF0aW9uIG1lbnMgbWVkaWUgZGF0YSBhZnNwaWxsZXMuIEdlbnN0YXJ0IGVuaGVkZW4sIGVsbGVyIHZlbnQgdGlsIGRlbiBlciBm5nJkaWcuIgpXQVZFUlJfVU5QUkVQQVJFRCwgICAgICAgICAgICAgICJXYWZlIGhlYWRlcmVuIHZhciBpa2tlIGtsYXJnam9ydC4gQnJ1ZyBmdW5rdGlvbmVuICdQcmVwYXJlJyBmb3IgYXQga2xhcmf4cmUgaGVhZGVyZW4gb2cgcHL4diBkZXJlZnRlciBpZ2VuLiIKV0FWRVJSX1NZTkMsICAgICAgICAgICAgICAgICAgICAiS2FuIGlra2Ug5WJuZSBlbmhlZGVuIHVkZW4gYXQgYnJ1a2UgZmxhZ2dldCAnV0FWRV9BTExPV1NZTkMuIEJydWcgZmxhZ2dldCBvZyBwcvh2IGlnZW4uIgoKLyogTUlESSBlcnJvcnMgKi8KTUlESUVSUl9VTlBSRVBBUkVELCAgICAgICAgICAgICAiTUlESSBoZWFkZXJlbiB2YXIgaWtrZSBrbGFyZ2pvcnQuIEJydWcgZnVua3Rpb25lbiAnUHJlcGFyZScgZm9yIGF0IGtsYXJn+HJlIGhlYWRlcmVuIG9nIHBy+HYgZGVyZWZ0ZXIgaWdlbi4iCk1JRElFUlJfU1RJTExQTEFZSU5HLCAgICAgICAgICAgIkthbiBpa2tlIHVkZvhyZXIgZGVubmUgb3BlcmF0aW9uIG7lciBtZWRpZSBkYXRhIGFmc3BpbGxlcy4gR2Vuc3RhcnQgZW5oZWRlbiwgZWxsZXIgdmVudCB0aWwgZGVuIGVyIGbmcmRpZy4iCk1JRElFUlJfTk9NQVAsIAkJCSJFbiBNSURJIG1hcCBibGV2IGlra2UgZnVuZGV0LiBEZXIgZXIgbeVza2UgZXQgcHJvYmxlbSBtZWQgZHJpdmVyZW4sIGVsbGVyIG9nc+UgZXIgZmlsZW4gJ01JRElNQVAuQ0ZHJyBrb3JydXB0IGVsbGVyIG1hbmdsZXIuIgpNSURJRVJSX05PVFJFQURZLCAJCSJQb3J0ZW4gc2VuZGVyIGRhdGEgdGlsIGVuaGVkZW4uIFZlbnQgdGlsIGRhdGFlcm5lIGVyIHNlbmR0IG9nIHBy+HYgaWdlbi4iCk1JRElFUlJfTk9ERVZJQ0UsIAkJIkRlbiBudXbmcmVuZGUgTWFwcGVyIG9wc+Z0bmluZyBwZWdlciBw5SBlbiBNSURJIGVuaGVkIGRlciBpa2tlIGVyIGluc3RhbGxlcmV0IGkgc3lzdGVtZXQuIGJydWcgTUlESSBNYXBwZXInZW4gdGlsIGVkaXRlcmUgb3Bz5nRuaW5nZW4uIgpNSURJRVJSX0lOVkFMSURTRVRVUCwgCQkiRGVuIG51duZyZW5kZSBNSURJIG9wc+Z0bmluZyBlciBza2FkZXQuIEtvcGllciBkZW4gb3JpZ2luYWxlIE1JRElNQVAuQ0ZHIGZpbCBpbmQgaSBXaW5kb3dzIFNZU1RFTSBmb2xkZXJlbiwgb2cgcHL4diBpZ2VuLiIKCi8qIE1DSSBlcnJvcnMgKi8KTUNJRVJSX0lOVkFMSURfREVWSUNFX0lELCAJIlVneWxkaWcgTUNJIGVuaGVkcyBJRC4gQnJ1ZyBJRCdldCBzb20gcmV0dXJuZXJlcyBu5XIgTUNJLWVuaGV0ZG4g5WJuZXMuIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsIAkiRHJpdmVyZW4ga3VubmUgaWtrZSBnZW5rZW5kZSBkZW4gc3BlY2lmaWNlcmVkZSBrb21tYW5kb3BhcmFtZXRlci4iCk1DSUVSUl9VTlJFQ09HTklaRURfQ09NTUFORCwJIkRyaXZlcmVuIGt1bm5lIGlra2UgZ2Vua2VuZGUgZGVuIHNwZWNpZmljZXJlZGUga29tbWFuZG8uIgpNQ0lFUlJfSEFSRFdBUkUsIAkJIkRldCBlciBldCBwcm9ibGVtIG1lZCBtZWRpZWVuaGVkZW4uIFP4cmcgZm9yIGF0IGRlbiB2aXJrZXIgb3JkZW50bGlnIGVsbGVyIGtvbnRha3QgbGV2ZXJhbmT4cmVuLiIKTUNJRVJSX0lOVkFMSURfREVWSUNFX05BTUUsIAkiRGVuIHNwZWNpZmljZXJlZGUgZW5oZWQgZXIgaWtrZSDlYmVuLCBlbGxlciBpa2tlIGdlbmtlbmR0IGFmIE1DSS4iCk1DSUVSUl9PVVRfT0ZfTUVNT1JZLCAJCSJJa2tlIG5vayBodWtvbW1lbHNlIHRpbCBkZW5uZSBvcGVyYXRpb24uXG5BZnNsdXQgZXQgZWxsZXIgZmxlcmUgcHJvZ3JhbW1lciBmb3IgYXQgZnJpZ/hyZSBodWtvbW1lbHNlIG9nIHBy+HYgaWdlbi4iCk1DSUVSUl9ERVZJQ0VfT1BFTiwgCQkiRW5oZWRzbmFmbmV0IGJydWdlcyBhbGxlcmVkZSBzb20gZXQgYWxpZXMgYWYgZGV0dGUgcHJvZ3JhbS4gQnJ1ZyBldCB1bmlrdCBhbGlhcy4iCk1DSUVSUl9DQU5OT1RfTE9BRF9EUklWRVIsIAkiRXQgdWtlbmR0IHByb2JsZW0gb3BzdG9kIHVuZGVyIGluZGzmc25pbmdlbiBhZiBkZW4gc3BlY2lmaWNlcmVkZSBkcml2ZXIuIgpNQ0lFUlJfTUlTU0lOR19DT01NQU5EX1NUUklORywgCSJEZXIgYmxldiBpa2tlIHNwZWNpZmljZXJldCBub2dlbiBrb21tYW5kby4iCk1DSUVSUl9QQVJBTV9PVkVSRkxPVywgCQkiRGVuIHNrcmV2bmUgc3RyZW5nIHZhciBmb3Igc3RvciB0aWwgYXQgduZyZSBpIHJldHVyIGJ1ZmZlcmVuLiBGb3L4ZyBzdPhycmVsc2VuIHDlIGJ1ZmZlcmVuLiIKTUNJRVJSX01JU1NJTkdfU1RSSU5HX0FSR1VNRU5ULCAiRGVuIHNwZWNpZmljZXJlZGUga29tbWFuZG8ga3LmdmVyIGVuIHRlZ25zdHJlbmdzIHBhcmFtZXRlci4gQW5naXYgZW4uIgpNQ0lFUlJfQkFEX0lOVEVHRVIsIAkJIkRldCBzcGVjaWZpY2VyZWRlIGhlbHRhbCBlciB1Z3lsZGlndCB0aWwgZGVubmUga29tbWFuZG8uIgpNQ0lFUlJfUEFSU0VSX0lOVEVSTkFMLCAJIkVuaGVkc2RyaXZlcmVuIHJldHVybmVyZWRlIGVuIHVneWxkaWcgcmV0dXIgdHlwZS4gS29udGFrdCBwcm9kdWNlbnRlbiBmb3IgYXQgZuUgZW4gbnkgZHJpdmVyLiIKTUNJRVJSX0RSSVZFUl9JTlRFUk5BTCwgCSJEZXIgZXIgZXQgcHJvYmxlbSBtZWQgZW5oZWRzZHJpdmVyZW4uIEtvbnRha3QgcHJvZHVjZW50ZW4gZm9yIGF0IGblIGVuIG55IGRyaXZlci4iCk1DSUVSUl9NSVNTSU5HX1BBUkFNRVRFUiwgCSJEZW4gc3BlY2lmaWNlcmVkZSBrb21tYW5kbyBrcuZ2ZXIgZW4gcGFyYW1ldGVyLiBBbmdpdiBlbi4iCk1DSUVSUl9VTlNVUFBPUlRFRF9GVU5DVElPTiwgCSJNQ0kgZW5oZWRlbiBzb20gYnJ1Z2VzIHVuZGVyc3T4dHRlciBpa2tlIGRlbiBzcGVjaWZpY2VyZWRlIGtvbW1hbmRvLiIKTUNJRVJSX0ZJTEVfTk9UX0ZPVU5ELCAJCSJLdW5uZSBpa2tlIGZpbmRlIGRlbiBzcGVjaWZpY2VyZWRlIGZpbC4gS29udHJvbGxlciBhdCBzdGllbiBvZyBmaWxuYWZuZXQgZXIgcmlndGlndC4iCk1DSUVSUl9ERVZJQ0VfTk9UX1JFQURZLCAJIkVuaGVkc2RyaXZlcmVuIGVyIGlra2Uga2xhci4iCk1DSUVSUl9JTlRFUk5BTCwgCQkiRXQgcHJvYmxlbSBvcHN0b2QgdW5kZXIgaW5pdGFsaXNlcmluZ2VuIGFmIE1DSS4gUHL4diBhdCBnZW5zdGFydGUgV2luZS4iCk1DSUVSUl9EUklWRVIsIAkJCSJEZXIgZXIgZXQgcHJvYmxlbSBtZWQgZW5oZWRzZHJpdmVyZW4uIERyaXZlcmVuIGJsZXYgbHVra2V0LCBpbmdlbiBhZGdhbmcgZmVqbC4iCk1DSUVSUl9DQU5OT1RfVVNFX0FMTCwgCQkiS2FuIGlra2UgYnJ1Z2UgJ2FsbCcgc29tIGVuaGVkc25hZm4gbWVkIGRlbiBzcGVjaWZpY2VyZWRlIGtvbW1hbmRvLiIKTUNJRVJSX01VTFRJUExFLCAJCSJEZXIgb3BzdG9kIGZlamwgaSBtZXJlIGVuZCBlbiBlbmhlZC4gQW5naXYgaHZlciBrb21tYW5kbyBvZyBlbmhlZCBzZXBlcmF0IGZvciBhdCBmaW5kZSB1ZCBodmlsa2VuIGVuaGVkIHNvbSBmb3LlcnNhZ2VkZSBmZWpsZW4uIgpNQ0lFUlJfRVhURU5TSU9OX05PVF9GT1VORCwgCSJLYW4gaWtrZSBiZXN0ZW1tZSBlbmhlZHN0eXBlbiB1ZCBmcmEgZGVuIG9wZ2l2ZWRlIGZpbCBlZnRlcm5hZm4uIgpNQ0lFUlJfT1VUT0ZSQU5HRSwgCQkiRGVuIHNwZWNpZmljZXJlZGUgcGFyYW1ldGVyIGVyIHVkZW5mb3IgcuZra2V2aWRkZSBmb3IgZGVuIHNwZWNpZmljZXJlZGUga29tbWFuZG8uIgpNQ0lFUlJfRkxBR1NfTk9UX0NPTVBBVElCTEUsIAkiRGUgc3BlY2lmaWNlcmVkZSBwYXJhbWV0ZXJlIGthbiBpa2tlIGJydWdlcyBzYW1tZW4uIgpNQ0lFUlJfRklMRV9OT1RfU0FWRUQsIAkJIkt1bm5lIGlra2UgZ2VtbWUgZGVuIHNwZWNpZmljZXJlZGUgZmlsLiBLb250cm9sbGVyIGF0IGR1IGhhciBub2sgZnJpIGRpc2twbGFkcyBlbGxlciBhdCBkdSBmb3J0c2F0IGVyIHRpbGtvYmxldCBuZXR25nJrZXQuIgpNQ0lFUlJfREVWSUNFX1RZUEVfUkVRVUlSRUQsIAkiRmFuZHQgaWtrZSBkZW4gc3BlY2lmaWNlcmVkZSBlbmhlZG4uIEtvbnRyb2xsZXIgYXQgZGVuIGVyIGluc3RhbGxlcmV0IGVsbGVyIGF0IGVuaGVkc25hZm5ldCBlciByaWd0aWd0IHN0YWZldC4iCk1DSUVSUl9ERVZJQ0VfTE9DS0VELCAJCSJEZW4gc3BlY2lmaWNlcmVkZSBlbmhlZCBlciBpZ2FuZyBtZWQgYXQgYmxpdmUgbHVra2V0LiBWZW50IGV0IHBhciBzZWt1bmRlciBvZyBwcvh2IGlnZW4uIgpNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAJIkRldCBzcGVjaWZpY2VyZWRlIGFsaWFzIGJydWdlcyBhbGxlcmVkZSBpIGRldHRlIHByb2dyYW0uIEJydWcgZXQgdW5pa3QgYWxpYXMuIgpNQ0lFUlJfQkFEX0NPTlNUQU5ULCAJCSJEZW4gc3BlY2lmaWNlcmVkZSBwYXJhbWV0ZXIgZXIgdWd5bGRpZyB0aWwgZGVubmUga29tbWFuZG8uIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIkVuaGVkc2RyaXZlcmVuIGVyIGFsbGVyZWRlIGkgYnJ1Zy4gQnJ1ZyBwYXJhbWV0ZXJlbiAnc2hhcmVhYmxlJyBmb3IgaHZlciAnb3Blbicta29tbWFuZG8gZm9yIGF0IGRlbGUgZGVuLiIKTUNJRVJSX01JU1NJTkdfREVWSUNFX05BTUUsIAkiRGVuIHNwZWNpZmljZXJlZGUga29tbWFuZG8ga3LmdmVyIGV0IGFsaWFzLCBlbiBmaWwsIGRyaXZlciBlbGxlciBldCBlbmhlZHNuYWZuLiIKTUNJRVJSX0JBRF9USU1FX0ZPUk1BVCwgCSJEZW4gc3BlY2lmaWNlcmVkZSB25nJkaSBmb3IgdGlkc2Zvcm1hdGV0IGVyIHVneWxkaWd0LiBTZSBpIE1DSSBkb2t1bWVudGF0aW9uZW4gZWZ0ZXIgZ3lsZGlnZSBmb3JtYXRlci4iCk1DSUVSUl9OT19DTE9TSU5HX1FVT1RFLCAJIkV0IGFmc2x1dHRlbmRlIGFuZvhyZWxzZXN0ZWduIG1hbmdsZXIgaSBwYXJhbWV0ZXIgduZyZGllbi4gVGlsZvhqIGV0LiIKTUNJRVJSX0RVUExJQ0FURV9GTEFHUywgCSJQYXJhbWV0ZXJlbiBlbGxlciB25nJkaWVuIGJsZXYgYW5naXZldCB0byBnYW5nZXIuIEFuZ2l2IGRldCBrdW4gZW4gZ2FuZy4iCk1DSUVSUl9JTlZBTElEX0ZJTEUsIAkJIkRlbiBzcGVjaWZpY2VyZWRlIGZpbCBrYW4gaWtrZSBzcGlsbGVzIGFmIHDlIGRlbiBzcGVjaWZpY2VyZWRlIE1DSSBlbmhlZC4gRmlsZW4gZXIgbeVza2Uga29ycnVwdCwgZWxsZXIgaSBmb3JrZXJ0IGZvcm1hdC4iCk1DSUVSUl9OVUxMX1BBUkFNRVRFUl9CTE9DSywgCSJFbiBudWxsIHBhcmFtZXRlciBibG9rIGJsZXYgZ2l2ZXQgdGlsIE1DSS4iCk1DSUVSUl9VTk5BTUVEX1JFU09VUkNFLCAJIkthbiBpa2tlIGdlbW1lIGVuIGZpbCB1ZGVuIG5hZm4uIEFuZ2l2IGV0IGZpbG5hZm4uIgpNQ0lFUlJfTkVXX1JFUVVJUkVTX0FMSUFTLCAJIkR1IHNrYWwgc3BlY2lmaWNlcmUgZXQgYWxpYXMgbuVyIGR1IGJydWdlciBwYXJhbWV0ZXJlbiAnbmV3Jy4iCk1DSUVSUl9OT1RJRllfT05fQVVUT19PUEVOLCAJIkthbiBpa2tlIGJydWdlIGZsYWdnZXQgJ25vdGlmeScgbWVkIGF1dG9tYXRpc2sg5WJuZWRlIGVuaGVkZXIuIgpNQ0lFUlJfTk9fRUxFTUVOVF9BTExPV0VELCAJIkthbiBpa2tlIGJydWdlIGV0IGZpbG5hZm4gbWVkIGRlbiBzcGVjaWZpY2VyZWRlIGVuaGVkLiIKTUNJRVJSX05PTkFQUExJQ0FCTEVfRlVOQ1RJT04sIAkiS3VubmUgaWtrZSB1ZGb4cmUga29tbWFuZG9lbiBpIGRlbiBzcGVjaWZpY2VyZWRlIHLma2tlZvhsZ2UuIFJldCBy5mtrZWb4bGdlbiBvZyBwcvh2IGlnZW4uIgpNQ0lFUlJfSUxMRUdBTF9GT1JfQVVUT19PUEVOLCAJIkt1bm5lIGlra2UgdWRm+HJlIGRlbiBzcGVjaWZpY2VyZWRlIGtvbW1hbmRvIHDlIGVuIGF1dG9tYXRpc2sg5WJuZXQgZW5oZWQuIFZlbnQgdGlsIGVuaGVkZW4gZXIgbHVra2V0IG9nIHBy+HYgaWdlbi4iCk1DSUVSUl9GSUxFTkFNRV9SRVFVSVJFRCwgCSJGaWxuYWZuZXQgZXIgdWd5bGRpZ3QuIEtvbnRyb2xsZXIgYXQgZmlsbmFmbmV0IGlra2UgZXIgbOZuZ2VyZSBlbmQgOCB0ZWduLCBlZnRlcmZ1bGd0IGFmIGV0IHB1bmt0dW0gb2cgZW4gZmlsIHR5cGUgKDMgdGVnbikuIgpNQ0lFUlJfRVhUUkFfQ0hBUkFDVEVSUywgCSJLYW4gaWtrZSBzcGVjaWZpY2VyZSBla3N0cmEgdGVnbiBlZnRlciBlbiBzdHJlbmcgb21naXZldCBhZiBhbmb4cmVsc2VzdGVnbi4iCk1DSUVSUl9ERVZJQ0VfTk9UX0lOU1RBTExFRCwgCSJEZW4gc3BlY2lmaWNlcmVkZSBlbmhlZCBlciBpa2tlIGluc3RhbGxlcmV0IGkgc3lzdGVtZXQuIEJydWcgdmFsZ2V0ICdEcml2ZXJlJyBpIEtvbnRyb2xwYW5lbGV0IGZvciBhdCBpbnN0YWxsZXJlIGVuaGVkZW4uIgpNQ0lFUlJfR0VUX0NELCAJCQkiS2FuIGlra2UgdGlsZ+UgZGVuIHNwZWNpZmljZXJlZGUgZmlsIGVsbGVyIE1DSSBlbmhlZC4gUHL4diBhdCDmbmRyZSBmb2xkZXIgZWxsZXIgYXQgZ2Vuc3RhcnRlIGRpbiBjb21wdXRlci4iCk1DSUVSUl9TRVRfQ0QsIAkJCSJLYW4gaWtrZSB0aWxn5SBkZW4gc3BlY2lmaWNlcmVkZSBmaWwgZWxsZXIgTUNJIGVuaGVkIGZvcmRpIHByb2dyYW1tZXQgaWtrZSBrYW4gc2tpZnRlIGZvbGRlci4iCk1DSUVSUl9TRVRfRFJJVkUsIAkJIkthbiBpa2tlIHRpbGflIGRlbiBzcGVjaWZpY2VyZWRlIGZpbCBlbGxlciBNQ0kgZW5oZWQgZm9yZGkgcHJvZ3JhbW1ldCBpa2tlIGthbiBza2lmdGUgZHJldi4iCk1DSUVSUl9ERVZJQ0VfTEVOR1RILCAJCSJTcGVjaWZpY2VyIGVuIGVuaGVkIGVsbGVyIGRyaXZlcm5hZm4gc29tIGVyIG1pbmRyZSBlbiA3OSB0ZWduLiIKTUNJRVJSX0RFVklDRV9PUkRfTEVOR1RILCAJIlNwZWNpZmljZXIgZW4gZW5oZWQgZWxsZXIgZHJpdmVybmFmbiBzb20gZXIgbWluZHJlIGVuIDY5IHRlZ24uIgpNQ0lFUlJfTk9fSU5URUdFUiwgCQkiRGVuIHNwZWNpZmljZXJlZGUga29tbWFuZG8gaGFyIGJydWcgZm9yIGVuIGhlbHRhbHMgcGFyYW1ldGVyLiBBbmdpdiBldC4iCk1DSUVSUl9XQVZFX09VVFBVVFNJTlVTRSwgCSJBbGxlIGx5ZGVuaGVkZXIgc29tIGthbiBhZnNwaWxsZSBmaWxlciBpIGRldCBw5WfmbGRlbmRlIGZvcm1hdCBlciBvcHRhZ2VkZS4gVmVudCB0aWwgYXQgZW4gYWYgbHlkZW5oZWRlcm5lIGVyIGxlZGlnZSBvZyBwcvh2IGlnZW4uIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRJTlVTRSwgCSJLdW5uZSBpa2tlIHPmdHRlIGRlbiBn5mxkZW5kZSBseWRlbmhlZCB0aWwgYWZzcGlsbmluZyBmb3JkaSBkZW4gZXIgaSBicnVnLiBWZW50IHRpbCBhdCBlbmhlZGVuIGVyIGxlZGlnIG9nIHBy+HYgaWdlbi4iCk1DSUVSUl9XQVZFX0lOUFVUU0lOVVNFLCAJIkFsbGUgbHlkZW5oZWRlciBzb20ga2FuIG9wdGFnZSBmaWxlciBpIGRldCBn5mxkZW5kZSBmb3JtYXQgZXIgb3B0YWdlZGUuIFZlbnQgdGlsIGF0IGVuIGFmIGx5ZGVuaGVkZXJuZSBlciBsZWRpZ2Ugb2cgcHL4diBpZ2VuLiIKTUNJRVJSX1dBVkVfU0VUSU5QVVRJTlVTRSwgCSJLdW5uZSBpa2tlIHPmdHRlIGRlbiBn5mxkZW5kZSBseWRlbmhlZCB0aWwgYXQgb3B0YWdlIGZvcmRpIGRlbiBlciBpIGJydWcuIFZlbnQgdGlsIGF0IGVuaGVkZW4gZXIgbGVkaWcgb2cgcHL4diBpZ2VuLiIKTUNJRVJSX1dBVkVfT1VUUFVUVU5TUEVDSUZJRUQsCSJFbmh2ZXIga29tcGF0aWJlbCBlbmhlZCB0aWwgbHlkYWZzcGlsbGluZyBrYW4gYnJ1Z2VzLiIKTUNJRVJSX1dBVkVfSU5QVVRVTlNQRUNJRklFRCwgCSJFbmh2ZXIga29tcGF0aWJlbCBlbmhlZCB0aWwgbHlkb3B0YWdlbmluZyBrYW4gYnJ1Z2VzLiIKTUNJRVJSX1dBVkVfT1VUUFVUU1VOU1VJVEFCTEUsIAkiSW5nZW4gbHlkZW5oZWQgc29tIGthbiBhZnNwaWxsZSBmaWxlciBpIGRldCBn5mxkZW5kZSBmb3JtYXRldCBlciBpbnN0YWxsZXJldC4gQnJ1ZyAnRHJpdmVyZScgZm9yIGF0IGluc3RhbGxlcmUgbHlkZW5oZWRlbi4iCk1DSUVSUl9XQVZFX1NFVE9VVFBVVFVOU1VJVEFCTEUsIkVuaGVkZW4gZHUgcHL4dmVyIGF0IGFmc3BpbGxlIGZyYSwgZ2Vua2VuZGVyIGlra2UgZGV0IGfmbGRlbmRlIGZpbGZvcm1hdC4iCk1DSUVSUl9XQVZFX0lOUFVUU1VOU1VJVEFCTEUsIAkiSW5nZW4gbHlkZW5oZWQgc29tIGthbiBvcHRhZ2UgZmlsZXIgaSBkZXQgZ+ZsZGVuZGUgZm9ybWF0IGVyIGluc3RhbGxlcmV0LiBCcnVnICdEcml2ZXJlJyBmb3IgYXQgaW5zdGFsbGVyZSBseWRlbmhlZGVuLiIKTUNJRVJSX1dBVkVfU0VUSU5QVVRVTlNVSVRBQkxFLCAiRW5oZWRlbiBkdSBwcvh2ZXIgYXQgb3B0YWdlIHDlLCBnZW5rZW5kZXIgaWtrZSBkZXQgZ+ZsZGVuZGUgZmlsZm9ybWF0LiIKTUNJRVJSX05PX1dJTkRPVywgCQkiRGVyIGVyIGlra2Ugbm9nZXQgdmluZHVlLiIKTUNJRVJSX0NSRUFURVdJTkRPVywgCQkiS3VubmUgaWtrZSBvcHJldHRlIGVsbGVyIGJydWdlIHZpbmR1ZXQuIgpNQ0lFUlJfRklMRV9SRUFELCAJCSJLdW5uZSBpa2tlIGzmc2UgZGVuIHNwZWNpZmljZXJlZGUgZmlsLiBLb250cm9sbGVyIGF0IGZpbGVuIGZvcnRzYXQgZmluZGVzLCBvZyBrb250cm9sbGVyIGZvcmJpbmRlbHNlbiB0aWwgZGlza2VuIGVsbGVyIG5ldHbmcmtldC4iCk1DSUVSUl9GSUxFX1dSSVRFLCAJCSJLdW5uZSBpa2tlIHNrcml2ZSB0aWwgZGVuIHNwZWNpZmljZXJlZGUgZmlsLiBLb250cm9sbGVyIGF0IGR1IGhhciBub2sgZnJpIGRpc2twbGFkcywgb2cgYXQgZHUgZm9ydHNhdCBlciB0aWxrb2JsZXQgbmV0duZya2V0LiIKTUNJRVJSX1NFUV9ESVZfSU5DT01QQVRJQkxFLCAJIlRpZHNmb3JtYXRldCB0aWwgIiJzb25nIHBvaW50ZXIiIiBvZyAnU01QVEUnIGthbiBpa2tlIGJydWdlcyBzYW1tZW4uIgpNQ0lFUlJfU0VRX05PTUlESVBSRVNFTlQsIAkiU3lzdGVtZXQgaGFyIGlra2Ugbm9nZW4gaW5zdGFsbGVyZWRlIE1JREkgZW5oZWRlci4gQnJ1ZyAnRHJpdmVyZScgaSBLb250cm9scGFuZWxldCBmb3IgYXQgaW5zdGFsbGVyZSBlbiBNSURJIGRyaXZlci4iCk1DSUVSUl9TRVFfUE9SVF9JTlVTRSwgCQkiRGVuIHNwZWNpZmljZXJlZGUgTUlESSBwb3J0IGVyIGFsbGVyZWRlIGkgYnJ1Zy4gVmVudCB0aWwgZGVuIGVyIGxlZGlnIG9nIHBy+HYgaWdlbi4iCk1DSUVSUl9TRVFfUE9SVF9NQVBOT0RFVklDRSwgCSJEZXQgZ+ZsZGVuZGUgb3Bz5nRuaW5nIGZvciBNSURJIG1hcHBlcmVuIHJlZmVyZXJlciB0aWwgZW4gTUlESSBlbmhlZCBzb20gaWtrZSBlciBpbnN0YWxsZXJldCBpIHN5c3RlbWV0LiBCcnVnICdNSURJIG1hcHBlcicgaSBLb250cm9scGFuZWxldCBmb3IgYXQg5m5kcmUgb3Bz5nRuaW5nZW4uIgpNQ0lFUlJfU0VRX1BPUlRfTUlTQ0VSUk9SLCAJIkVuIGZlamwgb3BzdG9kIG1lZCBkZW4gc3BlY2lmaWNlcmVkZSBwb3J0Li4iCk1DSUVSUl9TRVFfUE9SVF9OT05FWElTVEVOVCwgCSJEZW4gc3BlY2lmaWNlcmVkZSBNSURJIGVuaGVkIGVyIGlra2UgaW5zdGFsbGVyZXQgcOUgc3lzdGVtZXQuIEJydWcgJ0RyaXZlcmUnIGkgS29udHJvbGxwYW5lbGV0IGZvciBhdCBpbnN0YWxsZXJlIGVuIE1JREkgZW5oZWQuIgpNQ0lFUlJfU0VRX1BPUlRVTlNQRUNJRklFRCwgCSJTeXN0ZW1ldCBoYXIgaWtrZSBzcGVjaWZpY2VyZXQgZW4gZ+ZsZGVuZGUgTUlESSBwb3J0LiIKTUNJRVJSX1NFUV9USU1FUiwgCQkiQWxsZSBtdWx0aW1lZGlhdGlkc3RhZ2VyZSBicnVnZXMgYWYgYW5kcmUgcHJvZ3JhbW1lci4gTHVrIGV0IGFmIGRlIHByb2dyYW1tZXIgb2cgcHL4diBpZ2VuLiIKCkVORAo=